glsl: Fix constant expression handling for <, >, <=, >= on vectors.
commit67b7a3844a1d6140712f5c82df0e281179a7cdfe
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 17 Nov 2010 18:40:28 +0000 (17 10:40 -0800)
committerIan Romanick <ian.d.romanick@intel.com>
Wed, 15 Dec 2010 22:19:16 +0000 (15 14:19 -0800)
treea980e214bf3c90b1741323b21d6a778a486d6719
parent69cc62b907c852647f94ba2f702a6908191a013c
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.
(cherry picked from commit e16c9d5d03a4606b37cbeb84358925913086d6eb)
src/glsl/ir_constant_expression.cpp