r600g: LIT: swap MUL_LIT operands to fix 0^0
authorVadim Girlin <vadimgirlin@gmail.com>
Wed, 6 Jul 2011 01:29:08 +0000 (05:29 +0400)
committerAlex Deucher <alexdeucher@gmail.com>
Fri, 8 Jul 2011 21:21:32 +0000 (17:21 -0400)
commit86f8b4117f35c788c8a043c2e241eb19eaacae8c
tree79fd4ca2bef28b72342513634ea224398a3646a6
parent4df137691ee29bb812347fa2c5f19095243ede22
r600g: LIT: swap MUL_LIT operands to fix 0^0

For 0^0 case result of "LOG_CLAMPED ...,0" is -MAX_FLOAT, and then result of
"MUL_LIT ...,0,-MAX_FLOAT,..." is -MAX_FLOAT instead of 0 because of special
src1 checks for -MAX_FLOAT. So swap src0/1:
"MUL_LIT ...,-MAX_FLOAT,0,..." to get expected 0, then result of
"EXP_IEEE ...,0" is 1 as expected for LIT.

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
src/gallium/drivers/r600/r600_shader.c