From db0cbb7e9b8fc2be6a9a93711e52adaf674a1bd4 Mon Sep 17 00:00:00 2001 From: Rhys Perry Date: Fri, 27 Sep 2024 15:47:47 +0100 Subject: [PATCH] aco: optimize nir_op_shfr with <32 src1 No fossil-db changes. Signed-off-by: Rhys Perry Reviewed-by: Georg Lehmann Part-of: --- src/amd/compiler/aco_instruction_selection.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/amd/compiler/aco_instruction_selection.cpp b/src/amd/compiler/aco_instruction_selection.cpp index 36b9d34c61e..28ebda7a11e 100644 --- a/src/amd/compiler/aco_instruction_selection.cpp +++ b/src/amd/compiler/aco_instruction_selection.cpp @@ -3616,9 +3616,11 @@ visit_alu_instr(isel_context* ctx, nir_alu_instr* instr) break; } amount = bld.copy(bld.def(s1), Operand::c32(camount)); - } else { + } else if (get_alu_src_ub(ctx, instr, 2) >= 32) { amount = bld.sop2(aco_opcode::s_and_b32, bld.def(s1), bld.def(s1, scc), get_alu_src(ctx, instr->src[2]), Operand::c32(0x1f)); + } else { + amount = get_alu_src(ctx, instr->src[2]); } Temp src = bld.pseudo(aco_opcode::p_create_vector, bld.def(s2), src1, src0);