diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h index 98b9d62415a..c0a904e76cb 100644 --- a/src/compiler/nir/nir.h +++ b/src/compiler/nir/nir.h @@ -1307,6 +1307,7 @@ typedef enum { nir_atomic_op_fcmpxchg, nir_atomic_op_inc_wrap, nir_atomic_op_dec_wrap, + nir_atomic_op_ordered_add_gfx12_amd, } nir_atomic_op; static inline nir_alu_type @@ -1333,6 +1334,7 @@ nir_atomic_op_type(nir_atomic_op op) case nir_atomic_op_umax: case nir_atomic_op_inc_wrap: case nir_atomic_op_dec_wrap: + case nir_atomic_op_ordered_add_gfx12_amd: return nir_type_uint; } diff --git a/src/compiler/nir/nir_opt_uniform_atomics.c b/src/compiler/nir/nir_opt_uniform_atomics.c index 71b3fffc029..34833b2f582 100644 --- a/src/compiler/nir/nir_opt_uniform_atomics.c +++ b/src/compiler/nir/nir_opt_uniform_atomics.c @@ -72,6 +72,7 @@ atomic_op_to_alu(nir_atomic_op op) case nir_atomic_op_fcmpxchg: case nir_atomic_op_inc_wrap: case nir_atomic_op_dec_wrap: + case nir_atomic_op_ordered_add_gfx12_amd: return nir_num_opcodes; } diff --git a/src/compiler/nir/nir_print.c b/src/compiler/nir/nir_print.c index 7c2a84502ba..220e82bf8b4 100644 --- a/src/compiler/nir/nir_print.c +++ b/src/compiler/nir/nir_print.c @@ -1217,6 +1217,9 @@ print_intrinsic_instr(nir_intrinsic_instr *instr, print_state *state) case nir_atomic_op_dec_wrap: fprintf(fp, "dec_wrap"); break; + case nir_atomic_op_ordered_add_gfx12_amd: + fprintf(fp, "ordered_add"); + break; } break; }