From 0f541367304ecb3be2de5c965525a65a9709fc38 Mon Sep 17 00:00:00 2001 From: Georg Lehmann Date: Thu, 30 Oct 2025 09:32:38 +0100 Subject: [PATCH] aco/isel: emit vop2 v_lshlrev_b64 for gfx12+ Reviewed-by: Rhys Perry Part-of: --- src/amd/compiler/instruction_selection/aco_select_nir_alu.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/amd/compiler/instruction_selection/aco_select_nir_alu.cpp b/src/amd/compiler/instruction_selection/aco_select_nir_alu.cpp index a7b3f7c94da..be45fe24e84 100644 --- a/src/amd/compiler/instruction_selection/aco_select_nir_alu.cpp +++ b/src/amd/compiler/instruction_selection/aco_select_nir_alu.cpp @@ -1128,6 +1128,8 @@ visit_alu_instr(isel_context* ctx, nir_alu_instr* instr) } else if (dst.regClass() == v1) { emit_vop2_instruction(ctx, instr, aco_opcode::v_lshlrev_b32, dst, false, true, false, false, 1); + } else if (dst.regClass() == v2 && ctx->program->gfx_level >= GFX12) { + emit_vop2_instruction(ctx, instr, aco_opcode::v_lshlrev_b64, dst, false, true); } else if (dst.regClass() == v2 && ctx->program->gfx_level >= GFX8) { bld.vop3(aco_opcode::v_lshlrev_b64_e64, Definition(dst), get_alu_src(ctx, instr->src[1]), get_alu_src(ctx, instr->src[0]));