glsl: Fix constant expression handling for <, >, <=, >= on vectors.
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 17 Nov 2010 18:40:28 +0000 (10:40 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Wed, 17 Nov 2010 19:58:56 +0000 (11:58 -0800)
commite16c9d5d03a4606b37cbeb84358925913086d6eb
tree8d5c7dc1f41f1adc90687f07b1184b253c7b0430
parentfb7ae06f59f534f4a266dc4b85a5f7b8ae04b3a3
glsl: Fix constant expression handling for <, >, <=, >= on vectors.

ir_binop_less, ir_binop_greater, ir_binop_lequal, and ir_binop_gequal
are defined to work on vectors as well as scalars, as long as the two
operands have the same type.

This is evident from both ir_validate.cpp and our use of these opcodes
in the GLSL lessThan, greaterThan, lessThanEqual, greaterThanEqual
built-in functions.

Found by code inspection.  Not known to fix any bugs.  Presumably, our
tests for the built-in comparison functions must pass because C.E.
handling is done on the ir_call of "greaterThan" rather than the inlined
opcode.  The C.E. handling of the built-in function calls is correct.

NOTE: This is a candidate for the 7.9 branch.
src/glsl/ir_constant_expression.cpp