nir: Drop legacy atomics in simple cases
authorAlyssa Rosenzweig <alyssa@rosenzweig.io>
Mon, 15 May 2023 14:30:28 +0000 (10:30 -0400)
committerMarge Bot <emma+marge@anholt.net>
Tue, 16 May 2023 22:36:21 +0000 (22:36 +0000)
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>

16 files changed:
src/compiler/nir/nir.c
src/compiler/nir/nir_divergence_analysis.c
src/compiler/nir/nir_gather_info.c
src/compiler/nir/nir_lower_amul.c
src/compiler/nir/nir_lower_cl_images.c
src/compiler/nir/nir_lower_helper_writes.c
src/compiler/nir/nir_lower_mediump.c
src/compiler/nir/nir_lower_memory_model.c
src/compiler/nir/nir_lower_multiview.c
src/compiler/nir/nir_lower_non_uniform_access.c
src/compiler/nir/nir_lower_ssbo.c
src/compiler/nir/nir_opt_access.c
src/compiler/nir/nir_opt_combine_stores.c
src/compiler/nir/nir_opt_copy_prop_vars.c
src/compiler/nir/nir_opt_load_store_vectorize.c
src/compiler/nir/nir_opt_non_uniform_access.c

index 1352d4c..2a1e239 100644 (file)
@@ -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)
index 9fd55f5..c103505 100644 (file)
@@ -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:
index 738b64d..e4e355e 100644 (file)
@@ -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:
index dfb8a0b..8fffeb9 100644 (file)
@@ -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:
index 2751947..d084d98 100644 (file)
@@ -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)
index cb82856..49ffedc 100644 (file)
@@ -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:
index 6f61a3e..e97eb57 100644 (file)
@@ -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;
index a8c20e1..15952e6 100644 (file)
@@ -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;
index 3cf02e4..7a7519c 100644 (file)
@@ -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:
index 75a1ab7..4ab29cd 100644 (file)
@@ -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:
index d9f03c7..54e2ed4 100644 (file)
@@ -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;
index db0b4eb..39fd02d 100644 (file)
@@ -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;
index 87d4cc1..3473f2f 100644 (file)
@@ -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;
index 9fdb4c6..9bcee84 100644 (file)
@@ -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};
index a95f576..2b65320 100644 (file)
@@ -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)
index 0aadf18..84e3808 100644 (file)
@@ -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: