nir/opt_sink: sink more Intel block instructions

Results on my jay branch

SIMD16:
   Totals from 1456 (55.01% of 2647) affected shaders:
   Instrs: 2119110 -> 2116320 (-0.13%); split: -0.23%, +0.10%
   CodeSize: 29561972 -> 29460340 (-0.34%); split: -0.47%, +0.13%

SIMD32:
   Totals from 1462 (55.23% of 2647) affected shaders:
   Instrs: 2421472 -> 2422930 (+0.06%); split: -0.20%, +0.26%
   CodeSize: 34434240 -> 34415840 (-0.05%); split: -0.33%, +0.28%
   Number of fill instructions: 29830 -> 29829 (-0.00%); split: -0.01%, +0.00%

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42102>
This commit is contained in:
Alyssa Rosenzweig 2026-06-08 16:42:23 -04:00 committed by Marge Bot
parent 3da4653d46
commit 09df2ee2ba

View file

@ -241,6 +241,7 @@ can_sink_instr(nir_instr *instr, nir_move_options options, bool *can_mov_out_of_
case nir_intrinsic_load_ubo_vec4:
case nir_intrinsic_load_global_constant_offset:
case nir_intrinsic_load_global_constant_bounded:
case nir_intrinsic_load_global_constant_uniform_block_intel:
*can_mov_out_of_loop =
intrin->intrinsic == nir_intrinsic_load_global_constant_offset ||
intrin->intrinsic == nir_intrinsic_load_global_constant_bounded;
@ -248,6 +249,7 @@ can_sink_instr(nir_instr *instr, nir_move_options options, bool *can_mov_out_of_
case nir_intrinsic_load_ssbo:
case nir_intrinsic_load_ssbo_intel:
case nir_intrinsic_load_ssbo_uniform_block_intel:
case nir_intrinsic_load_global_bounded:
*can_mov_out_of_loop =
intrin->intrinsic == nir_intrinsic_load_global_bounded;