From ad1cfcc841a18974fbde3e35bb0a4a30e17ada46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Mon, 21 Jul 2025 21:52:31 -0400 Subject: [PATCH] nir: mark inverse_ballot & is_subgroup_invocation_lt_amd as CAN_REORDER nir_can_move_instr already ignores that this flag isn't set. Reviewed-by: Alyssa Rosenzweig Part-of: --- src/compiler/nir/nir_intrinsics.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/compiler/nir/nir_intrinsics.py b/src/compiler/nir/nir_intrinsics.py index 4fa6b66f0e1..d3db475e7b1 100644 --- a/src/compiler/nir/nir_intrinsics.py +++ b/src/compiler/nir/nir_intrinsics.py @@ -530,7 +530,7 @@ intrinsic("read_getlast_ir3", src_comp=[0], dest_comp=0, bit_sizes=src0, flags=S intrinsic("elect", dest_comp=1, flags=SUBGROUP_FLAGS) intrinsic("first_invocation", dest_comp=1, bit_sizes=[32], flags=SUBGROUP_FLAGS) intrinsic("last_invocation", dest_comp=1, bit_sizes=[32], flags=SUBGROUP_FLAGS) -intrinsic("inverse_ballot", src_comp=[0], dest_comp=1, flags=[CAN_ELIMINATE]) +intrinsic("inverse_ballot", src_comp=[0], dest_comp=1, flags=[CAN_ELIMINATE, CAN_REORDER]) barrier("begin_invocation_interlock") barrier("end_invocation_interlock") @@ -1781,7 +1781,8 @@ system_value("streamout_offset_amd", 1, indices=[BASE]) # Whether the current invocation index in the subgroup is less than the source. The source must be # subgroup uniform and the 8 bits starting at the base bit must be less than or equal to the wave size. -intrinsic("is_subgroup_invocation_lt_amd", src_comp=[1], dest_comp=1, bit_sizes=[1], indices=[BASE], flags=[CAN_ELIMINATE]) +intrinsic("is_subgroup_invocation_lt_amd", src_comp=[1], dest_comp=1, bit_sizes=[1], indices=[BASE], + flags=[CAN_ELIMINATE, CAN_REORDER]) # AMD NGG intrinsics