From 575c89a73c97a5013d8980cc96a8d40a2a3fe66f Mon Sep 17 00:00:00 2001 From: Job Noorman Date: Wed, 16 Oct 2024 20:25:32 +0200 Subject: [PATCH] ir3: add codegen for shuffle_{xor,up,down}_uniform_ir3 Signed-off-by: Job Noorman Part-of: --- src/freedreno/ir3/ir3_compiler_nir.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/freedreno/ir3/ir3_compiler_nir.c b/src/freedreno/ir3/ir3_compiler_nir.c index 70f116f115f..2ccbf5af210 100644 --- a/src/freedreno/ir3/ir3_compiler_nir.c +++ b/src/freedreno/ir3/ir3_compiler_nir.c @@ -2483,6 +2483,12 @@ shfl_mode(nir_intrinsic_instr *intr) switch (intr->intrinsic) { case nir_intrinsic_rotate: return SHFL_RDOWN; + case nir_intrinsic_shuffle_up_uniform_ir3: + return SHFL_RUP; + case nir_intrinsic_shuffle_down_uniform_ir3: + return SHFL_RDOWN; + case nir_intrinsic_shuffle_xor_uniform_ir3: + return SHFL_XOR; default: unreachable("unsupported shfl"); } @@ -3285,6 +3291,9 @@ emit_intrinsic(struct ir3_context *ctx, nir_intrinsic_instr *intr) break; } case nir_intrinsic_rotate: + case nir_intrinsic_shuffle_up_uniform_ir3: + case nir_intrinsic_shuffle_down_uniform_ir3: + case nir_intrinsic_shuffle_xor_uniform_ir3: dst[0] = emit_shfl(ctx, intr); break; default: