summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <alyssa@rosenzweig.io>2023-05-15 10:30:28 -0400
committerMarge Bot <emma+marge@anholt.net>2023-05-16 22:36:21 +0000
commit59e73674c326cdb86d041f45ed1a28f4e730b8f6 (patch)
tree0678a971366472d7d5a44ad76d8ac2e4944c410d
parent9456e9880f58f5436236e069de86176dd69f78cc (diff)
downloadmesa-59e73674c326cdb86d041f45ed1a28f4e730b8f6.tar.gz
nir: Drop legacy atomics in simple cases
This commit drops legacy atomic support from core passes where we can simply delete switch cases with no other changes. As such it's separated from the more complex pass-specific commits for ease of review. Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Reviewed-by: Emma Anholt <emma@anholt.net> Reviewed-by: Jesse Natalie <jenatali@microsoft.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23036>
-rw-r--r--src/compiler/nir/nir.c15
-rw-r--r--src/compiler/nir/nir_divergence_analysis.c143
-rw-r--r--src/compiler/nir/nir_gather_info.c96
-rw-r--r--src/compiler/nir/nir_lower_amul.c42
-rw-r--r--src/compiler/nir/nir_lower_cl_images.c13
-rw-r--r--src/compiler/nir/nir_lower_helper_writes.c27
-rw-r--r--src/compiler/nir/nir_lower_mediump.c61
-rw-r--r--src/compiler/nir/nir_lower_memory_model.c55
-rw-r--r--src/compiler/nir/nir_lower_multiview.c57
-rw-r--r--src/compiler/nir/nir_lower_non_uniform_access.c59
-rw-r--r--src/compiler/nir/nir_lower_ssbo.c43
-rw-r--r--src/compiler/nir/nir_opt_access.c46
-rw-r--r--src/compiler/nir/nir_opt_combine_stores.c12
-rw-r--r--src/compiler/nir/nir_opt_copy_prop_vars.c28
-rw-r--r--src/compiler/nir/nir_opt_load_store_vectorize.c70
-rw-r--r--src/compiler/nir/nir_opt_non_uniform_access.c59
16 files changed, 3 insertions, 823 deletions
diff --git a/src/compiler/nir/nir.c b/src/compiler/nir/nir.c
index 1352d4cd3b4..2a1e2397b5a 100644
--- a/src/compiler/nir/nir.c
+++ b/src/compiler/nir/nir.c
@@ -2801,21 +2801,6 @@ nir_rewrite_image_intrinsic(nir_intrinsic_instr *intrin, nir_ssa_def *src,
CASE(store)
CASE(atomic)
CASE(atomic_swap)
- CASE(atomic_add)
- CASE(atomic_imin)
- CASE(atomic_umin)
- CASE(atomic_imax)
- CASE(atomic_umax)
- CASE(atomic_and)
- CASE(atomic_or)
- CASE(atomic_xor)
- CASE(atomic_exchange)
- CASE(atomic_comp_swap)
- CASE(atomic_fadd)
- CASE(atomic_fmin)
- CASE(atomic_fmax)
- CASE(atomic_inc_wrap)
- CASE(atomic_dec_wrap)
CASE(size)
CASE(samples)
CASE(load_raw_intel)
diff --git a/src/compiler/nir/nir_divergence_analysis.c b/src/compiler/nir/nir_divergence_analysis.c
index 9fd55f5bea7..c10350583fd 100644
--- a/src/compiler/nir/nir_divergence_analysis.c
+++ b/src/compiler/nir/nir_divergence_analysis.c
@@ -494,167 +494,24 @@ visit_intrinsic(nir_shader *shader, nir_intrinsic_instr *instr)
case nir_intrinsic_load_scratch:
case nir_intrinsic_deref_atomic:
case nir_intrinsic_deref_atomic_swap:
- case nir_intrinsic_deref_atomic_add:
- case nir_intrinsic_deref_atomic_imin:
- case nir_intrinsic_deref_atomic_umin:
- case nir_intrinsic_deref_atomic_imax:
- case nir_intrinsic_deref_atomic_umax:
- case nir_intrinsic_deref_atomic_and:
- case nir_intrinsic_deref_atomic_or:
- case nir_intrinsic_deref_atomic_xor:
- case nir_intrinsic_deref_atomic_exchange:
- case nir_intrinsic_deref_atomic_comp_swap:
- case nir_intrinsic_deref_atomic_fadd:
- case nir_intrinsic_deref_atomic_fmin:
- case nir_intrinsic_deref_atomic_fmax:
- case nir_intrinsic_deref_atomic_fcomp_swap:
case nir_intrinsic_ssbo_atomic:
case nir_intrinsic_ssbo_atomic_swap:
- case nir_intrinsic_ssbo_atomic_add:
- case nir_intrinsic_ssbo_atomic_imin:
- case nir_intrinsic_ssbo_atomic_umin:
- case nir_intrinsic_ssbo_atomic_imax:
- case nir_intrinsic_ssbo_atomic_umax:
- case nir_intrinsic_ssbo_atomic_and:
- case nir_intrinsic_ssbo_atomic_or:
- case nir_intrinsic_ssbo_atomic_xor:
- case nir_intrinsic_ssbo_atomic_exchange:
- case nir_intrinsic_ssbo_atomic_comp_swap:
- case nir_intrinsic_ssbo_atomic_fadd:
- case nir_intrinsic_ssbo_atomic_fmax:
- case nir_intrinsic_ssbo_atomic_fmin:
- case nir_intrinsic_ssbo_atomic_fcomp_swap:
case nir_intrinsic_image_deref_atomic:
case nir_intrinsic_image_deref_atomic_swap:
- case nir_intrinsic_image_deref_atomic_add:
- case nir_intrinsic_image_deref_atomic_imin:
- case nir_intrinsic_image_deref_atomic_umin:
- case nir_intrinsic_image_deref_atomic_imax:
- case nir_intrinsic_image_deref_atomic_umax:
- case nir_intrinsic_image_deref_atomic_and:
- case nir_intrinsic_image_deref_atomic_or:
- case nir_intrinsic_image_deref_atomic_xor:
- case nir_intrinsic_image_deref_atomic_exchange:
- case nir_intrinsic_image_deref_atomic_comp_swap:
- case nir_intrinsic_image_deref_atomic_fadd:
- case nir_intrinsic_image_deref_atomic_fmin:
- case nir_intrinsic_image_deref_atomic_fmax:
- case nir_intrinsic_image_deref_atomic_inc_wrap:
- case nir_intrinsic_image_deref_atomic_dec_wrap:
case nir_intrinsic_image_atomic:
case nir_intrinsic_image_atomic_swap:
- case nir_intrinsic_image_atomic_add:
- case nir_intrinsic_image_atomic_imin:
- case nir_intrinsic_image_atomic_umin:
- case nir_intrinsic_image_atomic_imax:
- case nir_intrinsic_image_atomic_umax:
- case nir_intrinsic_image_atomic_and:
- case nir_intrinsic_image_atomic_or:
- case nir_intrinsic_image_atomic_xor:
- case nir_intrinsic_image_atomic_exchange:
- case nir_intrinsic_image_atomic_comp_swap:
- case nir_intrinsic_image_atomic_fadd:
- case nir_intrinsic_image_atomic_fmin:
- case nir_intrinsic_image_atomic_fmax:
- case nir_intrinsic_image_atomic_inc_wrap:
- case nir_intrinsic_image_atomic_dec_wrap:
case nir_intrinsic_bindless_image_atomic:
case nir_intrinsic_bindless_image_atomic_swap:
- case nir_intrinsic_bindless_image_atomic_add:
- case nir_intrinsic_bindless_image_atomic_imin:
- case nir_intrinsic_bindless_image_atomic_umin:
- case nir_intrinsic_bindless_image_atomic_imax:
- case nir_intrinsic_bindless_image_atomic_umax:
- case nir_intrinsic_bindless_image_atomic_and:
- case nir_intrinsic_bindless_image_atomic_or:
- case nir_intrinsic_bindless_image_atomic_xor:
- case nir_intrinsic_bindless_image_atomic_exchange:
- case nir_intrinsic_bindless_image_atomic_comp_swap:
- case nir_intrinsic_bindless_image_atomic_fadd:
- case nir_intrinsic_bindless_image_atomic_fmin:
- case nir_intrinsic_bindless_image_atomic_fmax:
- case nir_intrinsic_bindless_image_atomic_inc_wrap:
- case nir_intrinsic_bindless_image_atomic_dec_wrap:
case nir_intrinsic_shared_atomic:
case nir_intrinsic_shared_atomic_swap:
- case nir_intrinsic_shared_atomic_add:
- case nir_intrinsic_shared_atomic_imin:
- case nir_intrinsic_shared_atomic_umin:
- case nir_intrinsic_shared_atomic_imax:
- case nir_intrinsic_shared_atomic_umax:
- case nir_intrinsic_shared_atomic_and:
- case nir_intrinsic_shared_atomic_or:
- case nir_intrinsic_shared_atomic_xor:
- case nir_intrinsic_shared_atomic_exchange:
- case nir_intrinsic_shared_atomic_comp_swap:
- case nir_intrinsic_shared_atomic_fadd:
- case nir_intrinsic_shared_atomic_fmin:
- case nir_intrinsic_shared_atomic_fmax:
- case nir_intrinsic_shared_atomic_fcomp_swap:
case nir_intrinsic_task_payload_atomic:
case nir_intrinsic_task_payload_atomic_swap:
- case nir_intrinsic_task_payload_atomic_add:
- case nir_intrinsic_task_payload_atomic_imin:
- case nir_intrinsic_task_payload_atomic_umin:
- case nir_intrinsic_task_payload_atomic_imax:
- case nir_intrinsic_task_payload_atomic_umax:
- case nir_intrinsic_task_payload_atomic_and:
- case nir_intrinsic_task_payload_atomic_or:
- case nir_intrinsic_task_payload_atomic_xor:
- case nir_intrinsic_task_payload_atomic_exchange:
- case nir_intrinsic_task_payload_atomic_comp_swap:
- case nir_intrinsic_task_payload_atomic_fadd:
- case nir_intrinsic_task_payload_atomic_fmin:
- case nir_intrinsic_task_payload_atomic_fmax:
- case nir_intrinsic_task_payload_atomic_fcomp_swap:
case nir_intrinsic_global_atomic:
case nir_intrinsic_global_atomic_swap:
- case nir_intrinsic_global_atomic_add:
- case nir_intrinsic_global_atomic_imin:
- case nir_intrinsic_global_atomic_umin:
- case nir_intrinsic_global_atomic_imax:
- case nir_intrinsic_global_atomic_umax:
- case nir_intrinsic_global_atomic_and:
- case nir_intrinsic_global_atomic_or:
- case nir_intrinsic_global_atomic_xor:
- case nir_intrinsic_global_atomic_exchange:
- case nir_intrinsic_global_atomic_comp_swap:
- case nir_intrinsic_global_atomic_fadd:
- case nir_intrinsic_global_atomic_fmin:
- case nir_intrinsic_global_atomic_fmax:
- case nir_intrinsic_global_atomic_fcomp_swap:
case nir_intrinsic_global_atomic_amd:
case nir_intrinsic_global_atomic_swap_amd:
- case nir_intrinsic_global_atomic_add_amd:
- case nir_intrinsic_global_atomic_imin_amd:
- case nir_intrinsic_global_atomic_umin_amd:
- case nir_intrinsic_global_atomic_imax_amd:
- case nir_intrinsic_global_atomic_umax_amd:
- case nir_intrinsic_global_atomic_and_amd:
- case nir_intrinsic_global_atomic_or_amd:
- case nir_intrinsic_global_atomic_xor_amd:
- case nir_intrinsic_global_atomic_exchange_amd:
- case nir_intrinsic_global_atomic_comp_swap_amd:
- case nir_intrinsic_global_atomic_fadd_amd:
- case nir_intrinsic_global_atomic_fmin_amd:
- case nir_intrinsic_global_atomic_fmax_amd:
- case nir_intrinsic_global_atomic_fcomp_swap_amd:
case nir_intrinsic_global_atomic_2x32:
case nir_intrinsic_global_atomic_swap_2x32:
- case nir_intrinsic_global_atomic_add_2x32:
- case nir_intrinsic_global_atomic_imin_2x32:
- case nir_intrinsic_global_atomic_umin_2x32:
- case nir_intrinsic_global_atomic_imax_2x32:
- case nir_intrinsic_global_atomic_umax_2x32:
- case nir_intrinsic_global_atomic_and_2x32:
- case nir_intrinsic_global_atomic_or_2x32:
- case nir_intrinsic_global_atomic_xor_2x32:
- case nir_intrinsic_global_atomic_exchange_2x32:
- case nir_intrinsic_global_atomic_comp_swap_2x32:
- case nir_intrinsic_global_atomic_fadd_2x32:
- case nir_intrinsic_global_atomic_fmin_2x32:
- case nir_intrinsic_global_atomic_fmax_2x32:
- case nir_intrinsic_global_atomic_fcomp_swap_2x32:
case nir_intrinsic_atomic_counter_add:
case nir_intrinsic_atomic_counter_min:
case nir_intrinsic_atomic_counter_max:
diff --git a/src/compiler/nir/nir_gather_info.c b/src/compiler/nir/nir_gather_info.c
index 738b64d1317..e4e355e185a 100644
--- a/src/compiler/nir/nir_gather_info.c
+++ b/src/compiler/nir/nir_gather_info.c
@@ -342,69 +342,16 @@ nir_intrinsic_writes_external_memory(const nir_intrinsic_instr *instr)
case nir_intrinsic_atomic_counter_comp_swap_deref:
case nir_intrinsic_bindless_image_atomic:
case nir_intrinsic_bindless_image_atomic_swap:
- case nir_intrinsic_bindless_image_atomic_add:
- case nir_intrinsic_bindless_image_atomic_and:
- case nir_intrinsic_bindless_image_atomic_comp_swap:
- case nir_intrinsic_bindless_image_atomic_dec_wrap:
- case nir_intrinsic_bindless_image_atomic_exchange:
- case nir_intrinsic_bindless_image_atomic_fadd:
- case nir_intrinsic_bindless_image_atomic_imax:
- case nir_intrinsic_bindless_image_atomic_imin:
- case nir_intrinsic_bindless_image_atomic_inc_wrap:
- case nir_intrinsic_bindless_image_atomic_or:
- case nir_intrinsic_bindless_image_atomic_umax:
- case nir_intrinsic_bindless_image_atomic_umin:
- case nir_intrinsic_bindless_image_atomic_xor:
case nir_intrinsic_bindless_image_store:
case nir_intrinsic_bindless_image_store_raw_intel:
case nir_intrinsic_global_atomic:
case nir_intrinsic_global_atomic_swap:
- case nir_intrinsic_global_atomic_add:
- case nir_intrinsic_global_atomic_and:
- case nir_intrinsic_global_atomic_comp_swap:
- case nir_intrinsic_global_atomic_exchange:
- case nir_intrinsic_global_atomic_fadd:
- case nir_intrinsic_global_atomic_fcomp_swap:
- case nir_intrinsic_global_atomic_fmax:
- case nir_intrinsic_global_atomic_fmin:
- case nir_intrinsic_global_atomic_imax:
- case nir_intrinsic_global_atomic_imin:
- case nir_intrinsic_global_atomic_or:
- case nir_intrinsic_global_atomic_umax:
- case nir_intrinsic_global_atomic_umin:
- case nir_intrinsic_global_atomic_xor:
case nir_intrinsic_global_atomic_ir3:
case nir_intrinsic_global_atomic_swap_ir3:
case nir_intrinsic_image_atomic:
case nir_intrinsic_image_atomic_swap:
- case nir_intrinsic_image_atomic_add:
- case nir_intrinsic_image_atomic_and:
- case nir_intrinsic_image_atomic_comp_swap:
- case nir_intrinsic_image_atomic_dec_wrap:
- case nir_intrinsic_image_atomic_exchange:
- case nir_intrinsic_image_atomic_fadd:
- case nir_intrinsic_image_atomic_imax:
- case nir_intrinsic_image_atomic_imin:
- case nir_intrinsic_image_atomic_inc_wrap:
- case nir_intrinsic_image_atomic_or:
- case nir_intrinsic_image_atomic_umax:
- case nir_intrinsic_image_atomic_umin:
- case nir_intrinsic_image_atomic_xor:
case nir_intrinsic_image_deref_atomic:
case nir_intrinsic_image_deref_atomic_swap:
- case nir_intrinsic_image_deref_atomic_add:
- case nir_intrinsic_image_deref_atomic_and:
- case nir_intrinsic_image_deref_atomic_comp_swap:
- case nir_intrinsic_image_deref_atomic_dec_wrap:
- case nir_intrinsic_image_deref_atomic_exchange:
- case nir_intrinsic_image_deref_atomic_fadd:
- case nir_intrinsic_image_deref_atomic_imax:
- case nir_intrinsic_image_deref_atomic_imin:
- case nir_intrinsic_image_deref_atomic_inc_wrap:
- case nir_intrinsic_image_deref_atomic_or:
- case nir_intrinsic_image_deref_atomic_umax:
- case nir_intrinsic_image_deref_atomic_umin:
- case nir_intrinsic_image_deref_atomic_xor:
case nir_intrinsic_image_deref_store:
case nir_intrinsic_image_deref_store_raw_intel:
case nir_intrinsic_image_store:
@@ -413,20 +360,6 @@ nir_intrinsic_writes_external_memory(const nir_intrinsic_instr *instr)
case nir_intrinsic_ssbo_atomic_swap:
case nir_intrinsic_ssbo_atomic_ir3:
case nir_intrinsic_ssbo_atomic_swap_ir3:
- case nir_intrinsic_ssbo_atomic_add:
- case nir_intrinsic_ssbo_atomic_and:
- case nir_intrinsic_ssbo_atomic_comp_swap:
- case nir_intrinsic_ssbo_atomic_exchange:
- case nir_intrinsic_ssbo_atomic_fadd:
- case nir_intrinsic_ssbo_atomic_fcomp_swap:
- case nir_intrinsic_ssbo_atomic_fmax:
- case nir_intrinsic_ssbo_atomic_fmin:
- case nir_intrinsic_ssbo_atomic_imax:
- case nir_intrinsic_ssbo_atomic_imin:
- case nir_intrinsic_ssbo_atomic_or:
- case nir_intrinsic_ssbo_atomic_umax:
- case nir_intrinsic_ssbo_atomic_umin:
- case nir_intrinsic_ssbo_atomic_xor:
case nir_intrinsic_store_global:
case nir_intrinsic_store_global_ir3:
case nir_intrinsic_store_global_amd:
@@ -437,20 +370,6 @@ nir_intrinsic_writes_external_memory(const nir_intrinsic_instr *instr)
case nir_intrinsic_store_deref:
case nir_intrinsic_deref_atomic:
case nir_intrinsic_deref_atomic_swap:
- case nir_intrinsic_deref_atomic_add:
- case nir_intrinsic_deref_atomic_imin:
- case nir_intrinsic_deref_atomic_umin:
- case nir_intrinsic_deref_atomic_imax:
- case nir_intrinsic_deref_atomic_umax:
- case nir_intrinsic_deref_atomic_and:
- case nir_intrinsic_deref_atomic_or:
- case nir_intrinsic_deref_atomic_xor:
- case nir_intrinsic_deref_atomic_exchange:
- case nir_intrinsic_deref_atomic_comp_swap:
- case nir_intrinsic_deref_atomic_fadd:
- case nir_intrinsic_deref_atomic_fmin:
- case nir_intrinsic_deref_atomic_fmax:
- case nir_intrinsic_deref_atomic_fcomp_swap:
return nir_deref_mode_may_be(nir_src_as_deref(instr->src[0]),
nir_var_mem_ssbo | nir_var_mem_global);
@@ -465,21 +384,6 @@ intrinsic_is_bindless(nir_intrinsic_instr *instr)
switch (instr->intrinsic) {
case nir_intrinsic_bindless_image_atomic:
case nir_intrinsic_bindless_image_atomic_swap:
- case nir_intrinsic_bindless_image_atomic_add:
- case nir_intrinsic_bindless_image_atomic_and:
- case nir_intrinsic_bindless_image_atomic_comp_swap:
- case nir_intrinsic_bindless_image_atomic_dec_wrap:
- case nir_intrinsic_bindless_image_atomic_exchange:
- case nir_intrinsic_bindless_image_atomic_fadd:
- case nir_intrinsic_bindless_image_atomic_fmax:
- case nir_intrinsic_bindless_image_atomic_fmin:
- case nir_intrinsic_bindless_image_atomic_imax:
- case nir_intrinsic_bindless_image_atomic_imin:
- case nir_intrinsic_bindless_image_atomic_inc_wrap:
- case nir_intrinsic_bindless_image_atomic_or:
- case nir_intrinsic_bindless_image_atomic_umax:
- case nir_intrinsic_bindless_image_atomic_umin:
- case nir_intrinsic_bindless_image_atomic_xor:
case nir_intrinsic_bindless_image_descriptor_amd:
case nir_intrinsic_bindless_image_format:
case nir_intrinsic_bindless_image_load:
diff --git a/src/compiler/nir/nir_lower_amul.c b/src/compiler/nir/nir_lower_amul.c
index dfb8a0b42b0..8fffeb97f58 100644
--- a/src/compiler/nir/nir_lower_amul.c
+++ b/src/compiler/nir/nir_lower_amul.c
@@ -144,20 +144,6 @@ lower_intrinsic(lower_state *state, nir_intrinsic_instr *intr)
case nir_intrinsic_ssbo_atomic:
case nir_intrinsic_ssbo_atomic_swap:
- case nir_intrinsic_ssbo_atomic_add:
- case nir_intrinsic_ssbo_atomic_imin:
- case nir_intrinsic_ssbo_atomic_umin:
- case nir_intrinsic_ssbo_atomic_imax:
- case nir_intrinsic_ssbo_atomic_umax:
- case nir_intrinsic_ssbo_atomic_and:
- case nir_intrinsic_ssbo_atomic_or:
- case nir_intrinsic_ssbo_atomic_xor:
- case nir_intrinsic_ssbo_atomic_exchange:
- case nir_intrinsic_ssbo_atomic_comp_swap:
- case nir_intrinsic_ssbo_atomic_fadd:
- case nir_intrinsic_ssbo_atomic_fmin:
- case nir_intrinsic_ssbo_atomic_fmax:
- case nir_intrinsic_ssbo_atomic_fcomp_swap:
/* 0: SSBO index
* 1: offset
*/
@@ -167,20 +153,6 @@ lower_intrinsic(lower_state *state, nir_intrinsic_instr *intr)
case nir_intrinsic_global_atomic:
case nir_intrinsic_global_atomic_swap:
- case nir_intrinsic_global_atomic_add:
- case nir_intrinsic_global_atomic_imin:
- case nir_intrinsic_global_atomic_umin:
- case nir_intrinsic_global_atomic_imax:
- case nir_intrinsic_global_atomic_umax:
- case nir_intrinsic_global_atomic_and:
- case nir_intrinsic_global_atomic_or:
- case nir_intrinsic_global_atomic_xor:
- case nir_intrinsic_global_atomic_exchange:
- case nir_intrinsic_global_atomic_comp_swap:
- case nir_intrinsic_global_atomic_fadd:
- case nir_intrinsic_global_atomic_fmin:
- case nir_intrinsic_global_atomic_fmax:
- case nir_intrinsic_global_atomic_fcomp_swap:
case nir_intrinsic_load_global_constant:
case nir_intrinsic_load_global:
/* just assume we that 24b is not sufficient: */
@@ -195,20 +167,6 @@ lower_intrinsic(lower_state *state, nir_intrinsic_instr *intr)
/* These should all be small enough to unconditionally use imul24: */
case nir_intrinsic_shared_atomic:
case nir_intrinsic_shared_atomic_swap:
- case nir_intrinsic_shared_atomic_add:
- case nir_intrinsic_shared_atomic_imin:
- case nir_intrinsic_shared_atomic_umin:
- case nir_intrinsic_shared_atomic_imax:
- case nir_intrinsic_shared_atomic_umax:
- case nir_intrinsic_shared_atomic_and:
- case nir_intrinsic_shared_atomic_or:
- case nir_intrinsic_shared_atomic_xor:
- case nir_intrinsic_shared_atomic_exchange:
- case nir_intrinsic_shared_atomic_comp_swap:
- case nir_intrinsic_shared_atomic_fadd:
- case nir_intrinsic_shared_atomic_fmin:
- case nir_intrinsic_shared_atomic_fmax:
- case nir_intrinsic_shared_atomic_fcomp_swap:
case nir_intrinsic_load_uniform:
case nir_intrinsic_load_input:
case nir_intrinsic_load_output:
diff --git a/src/compiler/nir/nir_lower_cl_images.c b/src/compiler/nir/nir_lower_cl_images.c
index 275194784e0..d084d984230 100644
--- a/src/compiler/nir/nir_lower_cl_images.c
+++ b/src/compiler/nir/nir_lower_cl_images.c
@@ -250,19 +250,6 @@ nir_lower_cl_images(nir_shader *shader, bool lower_image_derefs, bool lower_samp
case nir_intrinsic_image_deref_store:
case nir_intrinsic_image_deref_atomic:
case nir_intrinsic_image_deref_atomic_swap:
- case nir_intrinsic_image_deref_atomic_add:
- case nir_intrinsic_image_deref_atomic_imin:
- case nir_intrinsic_image_deref_atomic_umin:
- case nir_intrinsic_image_deref_atomic_imax:
- case nir_intrinsic_image_deref_atomic_umax:
- case nir_intrinsic_image_deref_atomic_and:
- case nir_intrinsic_image_deref_atomic_or:
- case nir_intrinsic_image_deref_atomic_xor:
- case nir_intrinsic_image_deref_atomic_exchange:
- case nir_intrinsic_image_deref_atomic_comp_swap:
- case nir_intrinsic_image_deref_atomic_fadd:
- case nir_intrinsic_image_deref_atomic_inc_wrap:
- case nir_intrinsic_image_deref_atomic_dec_wrap:
case nir_intrinsic_image_deref_size:
case nir_intrinsic_image_deref_samples: {
if (!lower_image_derefs)
diff --git a/src/compiler/nir/nir_lower_helper_writes.c b/src/compiler/nir/nir_lower_helper_writes.c
index cb828569f5a..49ffedc4234 100644
--- a/src/compiler/nir/nir_lower_helper_writes.c
+++ b/src/compiler/nir/nir_lower_helper_writes.c
@@ -37,35 +37,8 @@ lower(nir_builder *b, nir_instr *instr, void *data)
switch (intr->intrinsic) {
case nir_intrinsic_global_atomic:
case nir_intrinsic_global_atomic_swap:
- case nir_intrinsic_global_atomic_add:
- case nir_intrinsic_global_atomic_and:
- case nir_intrinsic_global_atomic_comp_swap:
- case nir_intrinsic_global_atomic_exchange:
- case nir_intrinsic_global_atomic_fadd:
- case nir_intrinsic_global_atomic_fcomp_swap:
- case nir_intrinsic_global_atomic_fmax:
- case nir_intrinsic_global_atomic_fmin:
- case nir_intrinsic_global_atomic_imax:
- case nir_intrinsic_global_atomic_imin:
- case nir_intrinsic_global_atomic_or:
- case nir_intrinsic_global_atomic_umax:
- case nir_intrinsic_global_atomic_umin:
- case nir_intrinsic_global_atomic_xor:
case nir_intrinsic_image_atomic:
case nir_intrinsic_image_atomic_swap:
- case nir_intrinsic_image_atomic_add:
- case nir_intrinsic_image_atomic_and:
- case nir_intrinsic_image_atomic_comp_swap:
- case nir_intrinsic_image_atomic_dec_wrap:
- case nir_intrinsic_image_atomic_exchange:
- case nir_intrinsic_image_atomic_fadd:
- case nir_intrinsic_image_atomic_imax:
- case nir_intrinsic_image_atomic_imin:
- case nir_intrinsic_image_atomic_inc_wrap:
- case nir_intrinsic_image_atomic_or:
- case nir_intrinsic_image_atomic_umax:
- case nir_intrinsic_image_atomic_umin:
- case nir_intrinsic_image_atomic_xor:
break;
case nir_intrinsic_store_global:
case nir_intrinsic_image_store:
diff --git a/src/compiler/nir/nir_lower_mediump.c b/src/compiler/nir/nir_lower_mediump.c
index 6f61a3ee2f7..e97eb576146 100644
--- a/src/compiler/nir/nir_lower_mediump.c
+++ b/src/compiler/nir/nir_lower_mediump.c
@@ -569,21 +569,7 @@ nir_lower_mediump_vars(nir_shader *shader, nir_variable_mode modes)
nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr);
switch (intr->intrinsic) {
case nir_intrinsic_deref_atomic:
- case nir_intrinsic_deref_atomic_swap:
- case nir_intrinsic_deref_atomic_add:
- case nir_intrinsic_deref_atomic_imin:
- case nir_intrinsic_deref_atomic_umin:
- case nir_intrinsic_deref_atomic_imax:
- case nir_intrinsic_deref_atomic_umax:
- case nir_intrinsic_deref_atomic_and:
- case nir_intrinsic_deref_atomic_or:
- case nir_intrinsic_deref_atomic_xor:
- case nir_intrinsic_deref_atomic_exchange:
- case nir_intrinsic_deref_atomic_fadd:
- case nir_intrinsic_deref_atomic_fmin:
- case nir_intrinsic_deref_atomic_fmax:
- case nir_intrinsic_deref_atomic_comp_swap:
- case nir_intrinsic_deref_atomic_fcomp_swap: {
+ case nir_intrinsic_deref_atomic_swap: {
nir_deref_instr *deref = nir_src_as_deref(intr->src[0]);
nir_variable *var = nir_deref_instr_get_variable(deref);
@@ -1051,55 +1037,10 @@ fold_16bit_tex_image(nir_builder *b, nir_instr *instr, void *params)
break;
case nir_intrinsic_bindless_image_atomic:
case nir_intrinsic_bindless_image_atomic_swap:
- case nir_intrinsic_bindless_image_atomic_add:
- case nir_intrinsic_bindless_image_atomic_imin:
- case nir_intrinsic_bindless_image_atomic_umin:
- case nir_intrinsic_bindless_image_atomic_imax:
- case nir_intrinsic_bindless_image_atomic_umax:
- case nir_intrinsic_bindless_image_atomic_and:
- case nir_intrinsic_bindless_image_atomic_or:
- case nir_intrinsic_bindless_image_atomic_xor:
- case nir_intrinsic_bindless_image_atomic_exchange:
- case nir_intrinsic_bindless_image_atomic_comp_swap:
- case nir_intrinsic_bindless_image_atomic_fadd:
- case nir_intrinsic_bindless_image_atomic_fmin:
- case nir_intrinsic_bindless_image_atomic_fmax:
- case nir_intrinsic_bindless_image_atomic_inc_wrap:
- case nir_intrinsic_bindless_image_atomic_dec_wrap:
case nir_intrinsic_image_deref_atomic:
case nir_intrinsic_image_deref_atomic_swap:
- case nir_intrinsic_image_deref_atomic_add:
- case nir_intrinsic_image_deref_atomic_umin:
- case nir_intrinsic_image_deref_atomic_imin:
- case nir_intrinsic_image_deref_atomic_umax:
- case nir_intrinsic_image_deref_atomic_imax:
- case nir_intrinsic_image_deref_atomic_and:
- case nir_intrinsic_image_deref_atomic_or:
- case nir_intrinsic_image_deref_atomic_xor:
- case nir_intrinsic_image_deref_atomic_exchange:
- case nir_intrinsic_image_deref_atomic_comp_swap:
- case nir_intrinsic_image_deref_atomic_fadd:
- case nir_intrinsic_image_deref_atomic_fmin:
- case nir_intrinsic_image_deref_atomic_fmax:
- case nir_intrinsic_image_deref_atomic_inc_wrap:
- case nir_intrinsic_image_deref_atomic_dec_wrap:
case nir_intrinsic_image_atomic:
case nir_intrinsic_image_atomic_swap:
- case nir_intrinsic_image_atomic_add:
- case nir_intrinsic_image_atomic_imin:
- case nir_intrinsic_image_atomic_umin:
- case nir_intrinsic_image_atomic_imax:
- case nir_intrinsic_image_atomic_umax:
- case nir_intrinsic_image_atomic_and:
- case nir_intrinsic_image_atomic_or:
- case nir_intrinsic_image_atomic_xor:
- case nir_intrinsic_image_atomic_exchange:
- case nir_intrinsic_image_atomic_comp_swap:
- case nir_intrinsic_image_atomic_fadd:
- case nir_intrinsic_image_atomic_fmin:
- case nir_intrinsic_image_atomic_fmax:
- case nir_intrinsic_image_atomic_inc_wrap:
- case nir_intrinsic_image_atomic_dec_wrap:
if (options->fold_image_srcs)
progress |= fold_16bit_image_srcs(b, intrinsic, -1);
break;
diff --git a/src/compiler/nir/nir_lower_memory_model.c b/src/compiler/nir/nir_lower_memory_model.c
index a8c20e11e6c..15952e693ef 100644
--- a/src/compiler/nir/nir_lower_memory_model.c
+++ b/src/compiler/nir/nir_lower_memory_model.c
@@ -46,19 +46,6 @@ get_intrinsic_info(nir_intrinsic_instr *intrin, nir_variable_mode *modes,
break;
case nir_intrinsic_image_deref_atomic:
case nir_intrinsic_image_deref_atomic_swap:
- case nir_intrinsic_image_deref_atomic_add:
- case nir_intrinsic_image_deref_atomic_fadd:
- case nir_intrinsic_image_deref_atomic_umin:
- case nir_intrinsic_image_deref_atomic_imin:
- case nir_intrinsic_image_deref_atomic_umax:
- case nir_intrinsic_image_deref_atomic_imax:
- case nir_intrinsic_image_deref_atomic_fmin:
- case nir_intrinsic_image_deref_atomic_fmax:
- case nir_intrinsic_image_deref_atomic_and:
- case nir_intrinsic_image_deref_atomic_or:
- case nir_intrinsic_image_deref_atomic_xor:
- case nir_intrinsic_image_deref_atomic_exchange:
- case nir_intrinsic_image_deref_atomic_comp_swap:
*modes = nir_src_as_deref(intrin->src[0])->modes;
*reads = true;
*writes = true;
@@ -73,20 +60,6 @@ get_intrinsic_info(nir_intrinsic_instr *intrin, nir_variable_mode *modes,
break;
case nir_intrinsic_ssbo_atomic:
case nir_intrinsic_ssbo_atomic_swap:
- case nir_intrinsic_ssbo_atomic_add:
- case nir_intrinsic_ssbo_atomic_imin:
- case nir_intrinsic_ssbo_atomic_umin:
- case nir_intrinsic_ssbo_atomic_imax:
- case nir_intrinsic_ssbo_atomic_umax:
- case nir_intrinsic_ssbo_atomic_and:
- case nir_intrinsic_ssbo_atomic_or:
- case nir_intrinsic_ssbo_atomic_xor:
- case nir_intrinsic_ssbo_atomic_exchange:
- case nir_intrinsic_ssbo_atomic_comp_swap:
- case nir_intrinsic_ssbo_atomic_fadd:
- case nir_intrinsic_ssbo_atomic_fcomp_swap:
- case nir_intrinsic_ssbo_atomic_fmax:
- case nir_intrinsic_ssbo_atomic_fmin:
*modes = nir_var_mem_ssbo;
*reads = true;
*writes = true;
@@ -101,20 +74,6 @@ get_intrinsic_info(nir_intrinsic_instr *intrin, nir_variable_mode *modes,
break;
case nir_intrinsic_global_atomic:
case nir_intrinsic_global_atomic_swap:
- case nir_intrinsic_global_atomic_add:
- case nir_intrinsic_global_atomic_imin:
- case nir_intrinsic_global_atomic_umin:
- case nir_intrinsic_global_atomic_imax:
- case nir_intrinsic_global_atomic_umax:
- case nir_intrinsic_global_atomic_and:
- case nir_intrinsic_global_atomic_or:
- case nir_intrinsic_global_atomic_xor:
- case nir_intrinsic_global_atomic_exchange:
- case nir_intrinsic_global_atomic_comp_swap:
- case nir_intrinsic_global_atomic_fadd:
- case nir_intrinsic_global_atomic_fcomp_swap:
- case nir_intrinsic_global_atomic_fmax:
- case nir_intrinsic_global_atomic_fmin:
*modes = nir_var_mem_global;
*reads = true;
*writes = true;
@@ -129,20 +88,6 @@ get_intrinsic_info(nir_intrinsic_instr *intrin, nir_variable_mode *modes,
break;
case nir_intrinsic_deref_atomic:
case nir_intrinsic_deref_atomic_swap:
- case nir_intrinsic_deref_atomic_add:
- case nir_intrinsic_deref_atomic_imin:
- case nir_intrinsic_deref_atomic_umin:
- case nir_intrinsic_deref_atomic_imax:
- case nir_intrinsic_deref_atomic_umax:
- case nir_intrinsic_deref_atomic_and:
- case nir_intrinsic_deref_atomic_or:
- case nir_intrinsic_deref_atomic_xor:
- case nir_intrinsic_deref_atomic_exchange:
- case nir_intrinsic_deref_atomic_comp_swap:
- case nir_intrinsic_deref_atomic_fadd:
- case nir_intrinsic_deref_atomic_fmin:
- case nir_intrinsic_deref_atomic_fmax:
- case nir_intrinsic_deref_atomic_fcomp_swap:
*modes = nir_src_as_deref(intrin->src[0])->modes;
*reads = true;
*writes = true;
diff --git a/src/compiler/nir/nir_lower_multiview.c b/src/compiler/nir/nir_lower_multiview.c
index 3cf02e46c0c..7a7519cb063 100644
--- a/src/compiler/nir/nir_lower_multiview.c
+++ b/src/compiler/nir/nir_lower_multiview.c
@@ -57,75 +57,18 @@ shader_writes_to_memory(nir_shader *shader)
switch (intrin->intrinsic) {
case nir_intrinsic_deref_atomic:
case nir_intrinsic_deref_atomic_swap:
- case nir_intrinsic_deref_atomic_add:
- case nir_intrinsic_deref_atomic_imin:
- case nir_intrinsic_deref_atomic_umin:
- case nir_intrinsic_deref_atomic_imax:
- case nir_intrinsic_deref_atomic_umax:
- case nir_intrinsic_deref_atomic_and:
- case nir_intrinsic_deref_atomic_or:
- case nir_intrinsic_deref_atomic_xor:
- case nir_intrinsic_deref_atomic_exchange:
- case nir_intrinsic_deref_atomic_comp_swap:
case nir_intrinsic_store_ssbo:
case nir_intrinsic_ssbo_atomic:
case nir_intrinsic_ssbo_atomic_swap:
- case nir_intrinsic_ssbo_atomic_add:
- case nir_intrinsic_ssbo_atomic_imin:
- case nir_intrinsic_ssbo_atomic_umin:
- case nir_intrinsic_ssbo_atomic_imax:
- case nir_intrinsic_ssbo_atomic_umax:
- case nir_intrinsic_ssbo_atomic_and:
- case nir_intrinsic_ssbo_atomic_or:
- case nir_intrinsic_ssbo_atomic_xor:
- case nir_intrinsic_ssbo_atomic_exchange:
- case nir_intrinsic_ssbo_atomic_comp_swap:
case nir_intrinsic_store_shared:
case nir_intrinsic_store_shared2_amd:
case nir_intrinsic_shared_atomic:
case nir_intrinsic_shared_atomic_swap:
- case nir_intrinsic_shared_atomic_add:
- case nir_intrinsic_shared_atomic_imin:
- case nir_intrinsic_shared_atomic_umin:
- case nir_intrinsic_shared_atomic_imax:
- case nir_intrinsic_shared_atomic_umax:
- case nir_intrinsic_shared_atomic_and:
- case nir_intrinsic_shared_atomic_or:
- case nir_intrinsic_shared_atomic_xor:
- case nir_intrinsic_shared_atomic_exchange:
- case nir_intrinsic_shared_atomic_comp_swap:
case nir_intrinsic_task_payload_atomic:
case nir_intrinsic_task_payload_atomic_swap:
- case nir_intrinsic_task_payload_atomic_add:
- case nir_intrinsic_task_payload_atomic_imin:
- case nir_intrinsic_task_payload_atomic_umin:
- case nir_intrinsic_task_payload_atomic_imax:
- case nir_intrinsic_task_payload_atomic_umax:
- case nir_intrinsic_task_payload_atomic_and:
- case nir_intrinsic_task_payload_atomic_or:
- case nir_intrinsic_task_payload_atomic_xor:
- case nir_intrinsic_task_payload_atomic_exchange:
- case nir_intrinsic_task_payload_atomic_comp_swap:
- case nir_intrinsic_task_payload_atomic_fadd:
- case nir_intrinsic_task_payload_atomic_fmin:
- case nir_intrinsic_task_payload_atomic_fmax:
- case nir_intrinsic_task_payload_atomic_fcomp_swap:
case nir_intrinsic_image_deref_store:
case nir_intrinsic_image_deref_atomic:
case nir_intrinsic_image_deref_atomic_swap:
- case nir_intrinsic_image_deref_atomic_add:
- case nir_intrinsic_image_deref_atomic_fadd:
- case nir_intrinsic_image_deref_atomic_umin:
- case nir_intrinsic_image_deref_atomic_umax:
- case nir_intrinsic_image_deref_atomic_imin:
- case nir_intrinsic_image_deref_atomic_imax:
- case nir_intrinsic_image_deref_atomic_fmin:
- case nir_intrinsic_image_deref_atomic_fmax:
- case nir_intrinsic_image_deref_atomic_and:
- case nir_intrinsic_image_deref_atomic_or:
- case nir_intrinsic_image_deref_atomic_xor:
- case nir_intrinsic_image_deref_atomic_exchange:
- case nir_intrinsic_image_deref_atomic_comp_swap:
return true;
default:
diff --git a/src/compiler/nir/nir_lower_non_uniform_access.c b/src/compiler/nir/nir_lower_non_uniform_access.c
index 75a1ab782cc..4ab29cd98fc 100644
--- a/src/compiler/nir/nir_lower_non_uniform_access.c
+++ b/src/compiler/nir/nir_lower_non_uniform_access.c
@@ -230,20 +230,6 @@ nir_lower_non_uniform_access_impl(nir_function_impl *impl,
case nir_intrinsic_load_ssbo:
case nir_intrinsic_ssbo_atomic:
case nir_intrinsic_ssbo_atomic_swap:
- case nir_intrinsic_ssbo_atomic_add:
- case nir_intrinsic_ssbo_atomic_imin:
- case nir_intrinsic_ssbo_atomic_umin:
- case nir_intrinsic_ssbo_atomic_imax:
- case nir_intrinsic_ssbo_atomic_umax:
- case nir_intrinsic_ssbo_atomic_and:
- case nir_intrinsic_ssbo_atomic_or:
- case nir_intrinsic_ssbo_atomic_xor:
- case nir_intrinsic_ssbo_atomic_exchange:
- case nir_intrinsic_ssbo_atomic_comp_swap:
- case nir_intrinsic_ssbo_atomic_fadd:
- case nir_intrinsic_ssbo_atomic_fmin:
- case nir_intrinsic_ssbo_atomic_fmax:
- case nir_intrinsic_ssbo_atomic_fcomp_swap:
if ((options->types & nir_lower_non_uniform_ssbo_access) &&
lower_non_uniform_access_intrin(options, &b, intrin, 0))
progress = true;
@@ -267,21 +253,6 @@ nir_lower_non_uniform_access_impl(nir_function_impl *impl,
case nir_intrinsic_image_store:
case nir_intrinsic_image_atomic:
case nir_intrinsic_image_atomic_swap:
- case nir_intrinsic_image_atomic_add:
- case nir_intrinsic_image_atomic_imin:
- case nir_intrinsic_image_atomic_umin:
- case nir_intrinsic_image_atomic_imax:
- case nir_intrinsic_image_atomic_umax:
- case nir_intrinsic_image_atomic_and:
- case nir_intrinsic_image_atomic_or:
- case nir_intrinsic_image_atomic_xor:
- case nir_intrinsic_image_atomic_exchange:
- case nir_intrinsic_image_atomic_comp_swap:
- case nir_intrinsic_image_atomic_inc_wrap:
- case nir_intrinsic_image_atomic_dec_wrap:
- case nir_intrinsic_image_atomic_fadd:
- case nir_intrinsic_image_atomic_fmin:
- case nir_intrinsic_image_atomic_fmax:
case nir_intrinsic_image_size:
case nir_intrinsic_image_samples:
case nir_intrinsic_image_samples_identical:
@@ -291,21 +262,6 @@ nir_lower_non_uniform_access_impl(nir_function_impl *impl,
case nir_intrinsic_bindless_image_store:
case nir_intrinsic_bindless_image_atomic:
case nir_intrinsic_bindless_image_atomic_swap:
- case nir_intrinsic_bindless_image_atomic_add:
- case nir_intrinsic_bindless_image_atomic_imin:
- case nir_intrinsic_bindless_image_atomic_umin:
- case nir_intrinsic_bindless_image_atomic_imax:
- case nir_intrinsic_bindless_image_atomic_umax:
- case nir_intrinsic_bindless_image_atomic_and:
- case nir_intrinsic_bindless_image_atomic_or:
- case nir_intrinsic_bindless_image_atomic_xor:
- case nir_intrinsic_bindless_image_atomic_exchange:
- case nir_intrinsic_bindless_image_atomic_comp_swap:
- case nir_intrinsic_bindless_image_atomic_inc_wrap:
- case nir_intrinsic_bindless_image_atomic_dec_wrap:
- case nir_intrinsic_bindless_image_atomic_fadd:
- case nir_intrinsic_bindless_image_atomic_fmin:
- case nir_intrinsic_bindless_image_atomic_fmax:
case nir_intrinsic_bindless_image_size:
case nir_intrinsic_bindless_image_samples:
case nir_intrinsic_bindless_image_samples_identical:
@@ -315,21 +271,6 @@ nir_lower_non_uniform_access_impl(nir_function_impl *impl,
case nir_intrinsic_image_deref_store:
case nir_intrinsic_image_deref_atomic:
case nir_intrinsic_image_deref_atomic_swap:
- case nir_intrinsic_image_deref_atomic_add:
- case nir_intrinsic_image_deref_atomic_umin:
- case nir_intrinsic_image_deref_atomic_imin:
- case nir_intrinsic_image_deref_atomic_umax:
- case nir_intrinsic_image_deref_atomic_imax:
- case nir_intrinsic_image_deref_atomic_and:
- case nir_intrinsic_image_deref_atomic_or:
- case nir_intrinsic_image_deref_atomic_xor:
- case nir_intrinsic_image_deref_atomic_exchange:
- case nir_intrinsic_image_deref_atomic_comp_swap:
- case nir_intrinsic_image_deref_atomic_inc_wrap:
- case nir_intrinsic_image_deref_atomic_dec_wrap:
- case nir_intrinsic_image_deref_atomic_fadd:
- case nir_intrinsic_image_deref_atomic_fmin:
- case nir_intrinsic_image_deref_atomic_fmax:
case nir_intrinsic_image_deref_size:
case nir_intrinsic_image_deref_samples:
case nir_intrinsic_image_deref_samples_identical:
diff --git a/src/compiler/nir/nir_lower_ssbo.c b/src/compiler/nir/nir_lower_ssbo.c
index d9f03c71c16..54e2ed4c34b 100644
--- a/src/compiler/nir/nir_lower_ssbo.c
+++ b/src/compiler/nir/nir_lower_ssbo.c
@@ -50,35 +50,6 @@ lower_ssbo_op(nir_intrinsic_op op)
return nir_intrinsic_global_atomic;
case nir_intrinsic_ssbo_atomic_swap:
return nir_intrinsic_global_atomic_swap;
- case nir_intrinsic_ssbo_atomic_add:
- return nir_intrinsic_global_atomic_add;
- case nir_intrinsic_ssbo_atomic_imin:
- return nir_intrinsic_global_atomic_imin;
- case nir_intrinsic_ssbo_atomic_umin:
- return nir_intrinsic_global_atomic_umin;
- case nir_intrinsic_ssbo_atomic_imax:
- return nir_intrinsic_global_atomic_imax;
- case nir_intrinsic_ssbo_atomic_umax:
- return nir_intrinsic_global_atomic_umax;
- case nir_intrinsic_ssbo_atomic_and:
- return nir_intrinsic_global_atomic_and;
- case nir_intrinsic_ssbo_atomic_or:
- return nir_intrinsic_global_atomic_or;
- case nir_intrinsic_ssbo_atomic_xor:
- return nir_intrinsic_global_atomic_xor;
- case nir_intrinsic_ssbo_atomic_exchange:
- return nir_intrinsic_global_atomic_exchange;
- case nir_intrinsic_ssbo_atomic_comp_swap:
- return nir_intrinsic_global_atomic_comp_swap;
-
- case nir_intrinsic_ssbo_atomic_fadd:
- return nir_intrinsic_global_atomic_fadd;
- case nir_intrinsic_ssbo_atomic_fmin:
- return nir_intrinsic_global_atomic_fmin;
- case nir_intrinsic_ssbo_atomic_fmax:
- return nir_intrinsic_global_atomic_fmax;
- case nir_intrinsic_ssbo_atomic_fcomp_swap:
- return nir_intrinsic_global_atomic_fcomp_swap;
default:
unreachable("Invalid SSBO op");
@@ -172,20 +143,6 @@ should_lower_ssbo_instr(const nir_instr *instr)
case nir_intrinsic_store_ssbo:
case nir_intrinsic_ssbo_atomic:
case nir_intrinsic_ssbo_atomic_swap:
- case nir_intrinsic_ssbo_atomic_add:
- case nir_intrinsic_ssbo_atomic_imin:
- case nir_intrinsic_ssbo_atomic_umin:
- case nir_intrinsic_ssbo_atomic_imax:
- case nir_intrinsic_ssbo_atomic_umax:
- case nir_intrinsic_ssbo_atomic_and:
- case nir_intrinsic_ssbo_atomic_or:
- case nir_intrinsic_ssbo_atomic_xor:
- case nir_intrinsic_ssbo_atomic_exchange:
- case nir_intrinsic_ssbo_atomic_comp_swap:
- case nir_intrinsic_ssbo_atomic_fadd:
- case nir_intrinsic_ssbo_atomic_fmin:
- case nir_intrinsic_ssbo_atomic_fmax:
- case nir_intrinsic_ssbo_atomic_fcomp_swap:
return true;
default:
return false;
diff --git a/src/compiler/nir/nir_opt_access.c b/src/compiler/nir/nir_opt_access.c
index db0b4ebfa9e..39fd02d843e 100644
--- a/src/compiler/nir/nir_opt_access.c
+++ b/src/compiler/nir/nir_opt_access.c
@@ -85,21 +85,6 @@ gather_intrinsic(struct access_state *state, nir_intrinsic_instr *instr)
case nir_intrinsic_image_deref_sparse_load:
case nir_intrinsic_image_deref_atomic:
case nir_intrinsic_image_deref_atomic_swap:
- case nir_intrinsic_image_deref_atomic_add:
- case nir_intrinsic_image_deref_atomic_imin:
- case nir_intrinsic_image_deref_atomic_umin:
- case nir_intrinsic_image_deref_atomic_imax:
- case nir_intrinsic_image_deref_atomic_umax:
- case nir_intrinsic_image_deref_atomic_and:
- case nir_intrinsic_image_deref_atomic_or:
- case nir_intrinsic_image_deref_atomic_xor:
- case nir_intrinsic_image_deref_atomic_exchange:
- case nir_intrinsic_image_deref_atomic_comp_swap:
- case nir_intrinsic_image_deref_atomic_inc_wrap:
- case nir_intrinsic_image_deref_atomic_dec_wrap:
- case nir_intrinsic_image_deref_atomic_fadd:
- case nir_intrinsic_image_deref_atomic_fmin:
- case nir_intrinsic_image_deref_atomic_fmax:
case nir_intrinsic_image_deref_samples_identical:
var = nir_intrinsic_get_var(instr, 0);
read = instr->intrinsic != nir_intrinsic_image_deref_store;
@@ -132,21 +117,6 @@ gather_intrinsic(struct access_state *state, nir_intrinsic_instr *instr)
case nir_intrinsic_bindless_image_sparse_load:
case nir_intrinsic_bindless_image_atomic:
case nir_intrinsic_bindless_image_atomic_swap:
- case nir_intrinsic_bindless_image_atomic_add:
- case nir_intrinsic_bindless_image_atomic_imin:
- case nir_intrinsic_bindless_image_atomic_umin:
- case nir_intrinsic_bindless_image_atomic_imax:
- case nir_intrinsic_bindless_image_atomic_umax:
- case nir_intrinsic_bindless_image_atomic_and:
- case nir_intrinsic_bindless_image_atomic_or:
- case nir_intrinsic_bindless_image_atomic_xor:
- case nir_intrinsic_bindless_image_atomic_exchange:
- case nir_intrinsic_bindless_image_atomic_comp_swap:
- case nir_intrinsic_bindless_image_atomic_inc_wrap:
- case nir_intrinsic_bindless_image_atomic_dec_wrap:
- case nir_intrinsic_bindless_image_atomic_fadd:
- case nir_intrinsic_bindless_image_atomic_fmin:
- case nir_intrinsic_bindless_image_atomic_fmax:
case nir_intrinsic_bindless_image_samples_identical:
read = instr->intrinsic != nir_intrinsic_bindless_image_store;
write = instr->intrinsic != nir_intrinsic_bindless_image_load &&
@@ -164,21 +134,7 @@ gather_intrinsic(struct access_state *state, nir_intrinsic_instr *instr)
case nir_intrinsic_load_deref:
case nir_intrinsic_store_deref:
case nir_intrinsic_deref_atomic:
- case nir_intrinsic_deref_atomic_swap:
- case nir_intrinsic_deref_atomic_add:
- case nir_intrinsic_deref_atomic_imin:
- case nir_intrinsic_deref_atomic_umin:
- case nir_intrinsic_deref_atomic_imax:
- case nir_intrinsic_deref_atomic_umax:
- case nir_intrinsic_deref_atomic_and:
- case nir_intrinsic_deref_atomic_or:
- case nir_intrinsic_deref_atomic_xor:
- case nir_intrinsic_deref_atomic_exchange:
- case nir_intrinsic_deref_atomic_comp_swap:
- case nir_intrinsic_deref_atomic_fadd:
- case nir_intrinsic_deref_atomic_fmin:
- case nir_intrinsic_deref_atomic_fmax:
- case nir_intrinsic_deref_atomic_fcomp_swap: {
+ case nir_intrinsic_deref_atomic_swap: {
nir_deref_instr *deref = nir_src_as_deref(instr->src[0]);
if (!nir_deref_mode_may_be(deref, nir_var_mem_ssbo | nir_var_mem_global))
break;
diff --git a/src/compiler/nir/nir_opt_combine_stores.c b/src/compiler/nir/nir_opt_combine_stores.c
index 87d4cc1273d..3473f2f88eb 100644
--- a/src/compiler/nir/nir_opt_combine_stores.c
+++ b/src/compiler/nir/nir_opt_combine_stores.c
@@ -403,17 +403,7 @@ combine_stores_block(struct combine_stores_state *state, nir_block *block)
}
case nir_intrinsic_deref_atomic:
- case nir_intrinsic_deref_atomic_swap:
- case nir_intrinsic_deref_atomic_add:
- case nir_intrinsic_deref_atomic_imin:
- case nir_intrinsic_deref_atomic_umin:
- case nir_intrinsic_deref_atomic_imax:
- case nir_intrinsic_deref_atomic_umax:
- case nir_intrinsic_deref_atomic_and:
- case nir_intrinsic_deref_atomic_or:
- case nir_intrinsic_deref_atomic_xor:
- case nir_intrinsic_deref_atomic_exchange:
- case nir_intrinsic_deref_atomic_comp_swap: {
+ case nir_intrinsic_deref_atomic_swap: {
nir_deref_instr *dst = nir_src_as_deref(intrin->src[0]);
combine_stores_with_deref(state, dst);
break;
diff --git a/src/compiler/nir/nir_opt_copy_prop_vars.c b/src/compiler/nir/nir_opt_copy_prop_vars.c
index 9fdb4c63834..9bcee846b60 100644
--- a/src/compiler/nir/nir_opt_copy_prop_vars.c
+++ b/src/compiler/nir/nir_opt_copy_prop_vars.c
@@ -241,20 +241,6 @@ gather_vars_written(struct copy_prop_var_state *state,
case nir_intrinsic_deref_atomic:
case nir_intrinsic_deref_atomic_swap:
- case nir_intrinsic_deref_atomic_add:
- case nir_intrinsic_deref_atomic_fadd:
- case nir_intrinsic_deref_atomic_imin:
- case nir_intrinsic_deref_atomic_umin:
- case nir_intrinsic_deref_atomic_fmin:
- case nir_intrinsic_deref_atomic_imax:
- case nir_intrinsic_deref_atomic_umax:
- case nir_intrinsic_deref_atomic_fmax:
- case nir_intrinsic_deref_atomic_and:
- case nir_intrinsic_deref_atomic_or:
- case nir_intrinsic_deref_atomic_xor:
- case nir_intrinsic_deref_atomic_exchange:
- case nir_intrinsic_deref_atomic_comp_swap:
- case nir_intrinsic_deref_atomic_fcomp_swap:
case nir_intrinsic_store_deref:
case nir_intrinsic_copy_deref:
case nir_intrinsic_memcpy_deref: {
@@ -1316,20 +1302,6 @@ copy_prop_vars_block(struct copy_prop_var_state *state,
case nir_intrinsic_memcpy_deref:
case nir_intrinsic_deref_atomic:
case nir_intrinsic_deref_atomic_swap:
- case nir_intrinsic_deref_atomic_add:
- case nir_intrinsic_deref_atomic_fadd:
- case nir_intrinsic_deref_atomic_imin:
- case nir_intrinsic_deref_atomic_umin:
- case nir_intrinsic_deref_atomic_fmin:
- case nir_intrinsic_deref_atomic_imax:
- case nir_intrinsic_deref_atomic_umax:
- case nir_intrinsic_deref_atomic_fmax:
- case nir_intrinsic_deref_atomic_and:
- case nir_intrinsic_deref_atomic_or:
- case nir_intrinsic_deref_atomic_xor:
- case nir_intrinsic_deref_atomic_exchange:
- case nir_intrinsic_deref_atomic_comp_swap:
- case nir_intrinsic_deref_atomic_fcomp_swap:
if (debug) dump_instr(instr);
nir_deref_and_path dst = {nir_src_as_deref(intrin->src[0]), NULL};
diff --git a/src/compiler/nir/nir_opt_load_store_vectorize.c b/src/compiler/nir/nir_opt_load_store_vectorize.c
index a95f576ffb0..2b653200661 100644
--- a/src/compiler/nir/nir_opt_load_store_vectorize.c
+++ b/src/compiler/nir/nir_opt_load_store_vectorize.c
@@ -88,80 +88,10 @@ case nir_intrinsic_##op: {\
STORE(nir_var_mem_global, global, -1, 1, -1, 0)
LOAD(nir_var_mem_task_payload, task_payload, -1, 0, -1)
STORE(nir_var_mem_task_payload, task_payload, -1, 1, -1, 0)
- ATOMIC(nir_var_mem_ssbo, ssbo, add, 0, 1, -1, 2)
- ATOMIC(nir_var_mem_ssbo, ssbo, imin, 0, 1, -1, 2)
- ATOMIC(nir_var_mem_ssbo, ssbo, umin, 0, 1, -1, 2)
- ATOMIC(nir_var_mem_ssbo, ssbo, imax, 0, 1, -1, 2)
- ATOMIC(nir_var_mem_ssbo, ssbo, umax, 0, 1, -1, 2)
- ATOMIC(nir_var_mem_ssbo, ssbo, and, 0, 1, -1, 2)
- ATOMIC(nir_var_mem_ssbo, ssbo, or, 0, 1, -1, 2)
- ATOMIC(nir_var_mem_ssbo, ssbo, xor, 0, 1, -1, 2)
- ATOMIC(nir_var_mem_ssbo, ssbo, exchange, 0, 1, -1, 2)
- ATOMIC(nir_var_mem_ssbo, ssbo, comp_swap, 0, 1, -1, 2)
- ATOMIC(nir_var_mem_ssbo, ssbo, fadd, 0, 1, -1, 2)
- ATOMIC(nir_var_mem_ssbo, ssbo, fmin, 0, 1, -1, 2)
- ATOMIC(nir_var_mem_ssbo, ssbo, fmax, 0, 1, -1, 2)
- ATOMIC(nir_var_mem_ssbo, ssbo, fcomp_swap, 0, 1, -1, 2)
NEW_ATOMIC(nir_var_mem_ssbo, ssbo, 0, 1, -1, 2)
- ATOMIC(0, deref, add, -1, -1, 0, 1)
- ATOMIC(0, deref, imin, -1, -1, 0, 1)
- ATOMIC(0, deref, umin, -1, -1, 0, 1)
- ATOMIC(0, deref, imax, -1, -1, 0, 1)
- ATOMIC(0, deref, umax, -1, -1, 0, 1)
- ATOMIC(0, deref, and, -1, -1, 0, 1)
- ATOMIC(0, deref, or, -1, -1, 0, 1)
- ATOMIC(0, deref, xor, -1, -1, 0, 1)
- ATOMIC(0, deref, exchange, -1, -1, 0, 1)
- ATOMIC(0, deref, comp_swap, -1, -1, 0, 1)
- ATOMIC(0, deref, fadd, -1, -1, 0, 1)
- ATOMIC(0, deref, fmin, -1, -1, 0, 1)
- ATOMIC(0, deref, fmax, -1, -1, 0, 1)
- ATOMIC(0, deref, fcomp_swap, -1, -1, 0, 1)
NEW_ATOMIC(0, deref, -1, -1, 0, 1)
- ATOMIC(nir_var_mem_shared, shared, add, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_shared, shared, imin, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_shared, shared, umin, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_shared, shared, imax, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_shared, shared, umax, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_shared, shared, and, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_shared, shared, or, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_shared, shared, xor, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_shared, shared, exchange, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_shared, shared, comp_swap, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_shared, shared, fadd, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_shared, shared, fmin, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_shared, shared, fmax, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_shared, shared, fcomp_swap, -1, 0, -1, 1)
NEW_ATOMIC(nir_var_mem_shared, shared, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_global, global, add, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_global, global, imin, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_global, global, umin, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_global, global, imax, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_global, global, umax, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_global, global, and, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_global, global, or, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_global, global, xor, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_global, global, exchange, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_global, global, comp_swap, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_global, global, fadd, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_global, global, fmin, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_global, global, fmax, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_global, global, fcomp_swap, -1, 0, -1, 1)
NEW_ATOMIC(nir_var_mem_global, global, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_task_payload, task_payload, add, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_task_payload, task_payload, imin, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_task_payload, task_payload, umin, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_task_payload, task_payload, imax, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_task_payload, task_payload, umax, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_task_payload, task_payload, and, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_task_payload, task_payload, or, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_task_payload, task_payload, xor, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_task_payload, task_payload, exchange, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_task_payload, task_payload, comp_swap, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_task_payload, task_payload, fadd, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_task_payload, task_payload, fmin, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_task_payload, task_payload, fmax, -1, 0, -1, 1)
- ATOMIC(nir_var_mem_task_payload, task_payload, fcomp_swap, -1, 0, -1, 1)
NEW_ATOMIC(nir_var_mem_task_payload, task_payload, -1, 0, -1, 1)
LOAD(nir_var_shader_temp, stack, -1, -1, -1)
STORE(nir_var_shader_temp, stack, -1, -1, -1, 0)
diff --git a/src/compiler/nir/nir_opt_non_uniform_access.c b/src/compiler/nir/nir_opt_non_uniform_access.c
index 0aadf1846d0..84e380810d1 100644
--- a/src/compiler/nir/nir_opt_non_uniform_access.c
+++ b/src/compiler/nir/nir_opt_non_uniform_access.c
@@ -38,20 +38,6 @@ is_ssbo_intrinsic(nir_intrinsic_instr *intrin)
case nir_intrinsic_store_ssbo:
case nir_intrinsic_ssbo_atomic:
case nir_intrinsic_ssbo_atomic_swap:
- case nir_intrinsic_ssbo_atomic_add:
- case nir_intrinsic_ssbo_atomic_imin:
- case nir_intrinsic_ssbo_atomic_umin:
- case nir_intrinsic_ssbo_atomic_imax:
- case nir_intrinsic_ssbo_atomic_umax:
- case nir_intrinsic_ssbo_atomic_and:
- case nir_intrinsic_ssbo_atomic_or:
- case nir_intrinsic_ssbo_atomic_xor:
- case nir_intrinsic_ssbo_atomic_exchange:
- case nir_intrinsic_ssbo_atomic_comp_swap:
- case nir_intrinsic_ssbo_atomic_fadd:
- case nir_intrinsic_ssbo_atomic_fmin:
- case nir_intrinsic_ssbo_atomic_fmax:
- case nir_intrinsic_ssbo_atomic_fcomp_swap:
return true;
default:
@@ -68,21 +54,6 @@ is_image_intrinsic(nir_intrinsic_instr *intrin)
case nir_intrinsic_image_store:
case nir_intrinsic_image_atomic:
case nir_intrinsic_image_atomic_swap:
- case nir_intrinsic_image_atomic_add:
- case nir_intrinsic_image_atomic_imin:
- case nir_intrinsic_image_atomic_umin:
- case nir_intrinsic_image_atomic_imax:
- case nir_intrinsic_image_atomic_umax:
- case nir_intrinsic_image_atomic_and:
- case nir_intrinsic_image_atomic_or:
- case nir_intrinsic_image_atomic_xor:
- case nir_intrinsic_image_atomic_exchange:
- case nir_intrinsic_image_atomic_comp_swap:
- case nir_intrinsic_image_atomic_inc_wrap:
- case nir_intrinsic_image_atomic_dec_wrap:
- case nir_intrinsic_image_atomic_fadd:
- case nir_intrinsic_image_atomic_fmin:
- case nir_intrinsic_image_atomic_fmax:
case nir_intrinsic_image_size:
case nir_intrinsic_image_samples:
case nir_intrinsic_image_fragment_mask_load_amd:
@@ -91,21 +62,6 @@ is_image_intrinsic(nir_intrinsic_instr *intrin)
case nir_intrinsic_bindless_image_store:
case nir_intrinsic_bindless_image_atomic:
case nir_intrinsic_bindless_image_atomic_swap:
- case nir_intrinsic_bindless_image_atomic_add:
- case nir_intrinsic_bindless_image_atomic_imin:
- case nir_intrinsic_bindless_image_atomic_umin:
- case nir_intrinsic_bindless_image_atomic_imax:
- case nir_intrinsic_bindless_image_atomic_umax:
- case nir_intrinsic_bindless_image_atomic_and:
- case nir_intrinsic_bindless_image_atomic_or:
- case nir_intrinsic_bindless_image_atomic_xor:
- case nir_intrinsic_bindless_image_atomic_exchange:
- case nir_intrinsic_bindless_image_atomic_comp_swap:
- case nir_intrinsic_bindless_image_atomic_inc_wrap:
- case nir_intrinsic_bindless_image_atomic_dec_wrap:
- case nir_intrinsic_bindless_image_atomic_fadd:
- case nir_intrinsic_bindless_image_atomic_fmin:
- case nir_intrinsic_bindless_image_atomic_fmax:
case nir_intrinsic_bindless_image_size:
case nir_intrinsic_bindless_image_samples:
case nir_intrinsic_bindless_image_fragment_mask_load_amd:
@@ -114,21 +70,6 @@ is_image_intrinsic(nir_intrinsic_instr *intrin)
case nir_intrinsic_image_deref_store:
case nir_intrinsic_image_deref_atomic:
case nir_intrinsic_image_deref_atomic_swap:
- case nir_intrinsic_image_deref_atomic_add:
- case nir_intrinsic_image_deref_atomic_umin:
- case nir_intrinsic_image_deref_atomic_imin:
- case nir_intrinsic_image_deref_atomic_umax:
- case nir_intrinsic_image_deref_atomic_imax:
- case nir_intrinsic_image_deref_atomic_and:
- case nir_intrinsic_image_deref_atomic_or:
- case nir_intrinsic_image_deref_atomic_xor:
- case nir_intrinsic_image_deref_atomic_exchange:
- case nir_intrinsic_image_deref_atomic_comp_swap:
- case nir_intrinsic_image_deref_atomic_inc_wrap:
- case nir_intrinsic_image_deref_atomic_dec_wrap:
- case nir_intrinsic_image_deref_atomic_fadd:
- case nir_intrinsic_image_deref_atomic_fmin:
- case nir_intrinsic_image_deref_atomic_fmax:
case nir_intrinsic_image_deref_size:
case nir_intrinsic_image_deref_samples:
case nir_intrinsic_image_deref_fragment_mask_load_amd: