7ab7b9770e
We are now extremelly careful when copy propagating a mov that uses relative addressing. The search for readers will trigger abort when it sees any other instruction using a relative addressing, irrespective of the actual used registers or whether an address register load was seen. Additionally, since ntt switch all movs using the relative addressing are actually used only once right on the next line, and are result of ntt converting vec4 32 ssa_10 = intrinsic load_ubo_vec4 (ssa_0, ssa_9) (access=0, base=11, component=0) into 5: ARL ADDR[0].x, TEMP[0].xxxx 6: MOV TEMP[2], CONST[0][ADDR[0].x+11] RV530 shader-db: total instructions in shared programs: 132966 -> 131904 (-0.80%) instructions in affected programs: 29896 -> 28834 (-3.55%) helped: 234 HURT: 2 total temps in shared programs: 16969 -> 16905 (-0.38%) temps in affected programs: 604 -> 540 (-10.60%) helped: 68 HURT: 12 Partial fix for: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7723 Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com> Reviewed-by: Filip Gawin <filip@gawin.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20577>