ir3: Disable copy prop for immediate ldlw offsets
authorBrian Ho <brian@brkho.com>
Fri, 3 Apr 2020 18:53:55 +0000 (11:53 -0700)
committerMarge Bot <eric+marge@anholt.net>
Fri, 3 Apr 2020 19:44:46 +0000 (19:44 +0000)
commit6e7645347288c7dd8a4b95d69a4617278aa7b7c3
tree99c3c80639f189891346e44461d60e3756246680
parentea51f8f79ac43ff00d78cd53266f92125b2d5fd4
ir3: Disable copy prop for immediate ldlw offsets

Immediate offsets are currently collapsed for ldlw, but ldlw does
behave correctly with immediate values. For example,
`ldlw.u32 r0.x, l[4], 1` actually means to use the value of
regid 4 (r1.x) as the offset when we actually want it to use the
imm value of 4 as the offset.

This commit disables copy prop for ldlw offsets so the same
intrinsic gets compiled to:
  mov.u32u32 r0.y, 0x00000004
  ldlw.u32 r0.x, l[r0.y], 1

Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4439>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4439>
src/freedreno/ir3/ir3_cp.c