summaryrefslogtreecommitdiff
path: root/ir_to_mesa.cpp
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2010-05-06 17:41:22 -0700
committerEric Anholt <eric@anholt.net>2010-06-24 15:05:20 -0700
commit38315079571512dc5b502d9522d7a8c3eaf2cc8f (patch)
treefd3cb96547c7349ab85aba7b483ce87092d95347 /ir_to_mesa.cpp
parentbf9953335031b3de721245ec7a2986d0b4f70027 (diff)
ir_to_mesa: Add support for comparison operations.
Diffstat (limited to 'ir_to_mesa.cpp')
-rw-r--r--ir_to_mesa.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/ir_to_mesa.cpp b/ir_to_mesa.cpp
index 1bdb61801c..465a8e1916 100644
--- a/ir_to_mesa.cpp
+++ b/ir_to_mesa.cpp
@@ -360,6 +360,26 @@ ir_to_mesa_visitor::visit(ir_expression *ir)
case ir_binop_div:
this->result = this->create_tree(MB_TERM_div_vec4_vec4, ir, op[0], op[1]);
break;
+
+ case ir_binop_less:
+ this->result = this->create_tree(MB_TERM_slt_vec4_vec4, ir, op[0], op[1]);
+ break;
+ case ir_binop_greater:
+ this->result = this->create_tree(MB_TERM_sgt_vec4_vec4, ir, op[0], op[1]);
+ break;
+ case ir_binop_lequal:
+ this->result = this->create_tree(MB_TERM_sle_vec4_vec4, ir, op[0], op[1]);
+ break;
+ case ir_binop_gequal:
+ this->result = this->create_tree(MB_TERM_sge_vec4_vec4, ir, op[0], op[1]);
+ break;
+ case ir_binop_equal:
+ this->result = this->create_tree(MB_TERM_seq_vec4_vec4, ir, op[0], op[1]);
+ break;
+ case ir_binop_nequal:
+ this->result = this->create_tree(MB_TERM_sne_vec4_vec4, ir, op[0], op[1]);
+ break;
+
case ir_binop_dot:
if (ir->operands[0]->type == vec4_type) {
assert(ir->operands[1]->type == vec4_type);