summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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: