nir/opt_move_discards_to_top: use semantic
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33410>
diff --git a/src/compiler/nir/nir_opt_move_discards_to_top.c b/src/compiler/nir/nir_opt_move_discards_to_top.c
index f28c2ba..ea046f4 100644
--- a/src/compiler/nir/nir_opt_move_discards_to_top.c
+++ b/src/compiler/nir/nir_opt_move_discards_to_top.c
@@ -160,20 +160,6 @@
return can_move_after_demote | can_move_after_terminate;
switch (intrin->intrinsic) {
- case nir_intrinsic_quad_broadcast:
- case nir_intrinsic_quad_swap_horizontal:
- case nir_intrinsic_quad_swap_vertical:
- case nir_intrinsic_quad_swap_diagonal:
- case nir_intrinsic_quad_vote_all:
- case nir_intrinsic_quad_vote_any:
- case nir_intrinsic_quad_swizzle_amd:
- case nir_intrinsic_ddx:
- case nir_intrinsic_ddx_fine:
- case nir_intrinsic_ddx_coarse:
- case nir_intrinsic_ddy:
- case nir_intrinsic_ddy_fine:
- case nir_intrinsic_ddy_coarse:
- return can_move_after_demote;
case nir_intrinsic_is_helper_invocation:
case nir_intrinsic_load_helper_invocation:
return can_move_after_terminate;
@@ -223,6 +209,9 @@
break;
}
+ if (nir_intrinsic_has_semantic(intrin, NIR_INTRINSIC_QUADGROUP))
+ return can_move_after_demote;
+
return 0;
}