diff --git a/src/amd/compiler/aco_instruction_selection.cpp b/src/amd/compiler/aco_instruction_selection.cpp index ace9af8f609..c607d8634f8 100644 --- a/src/amd/compiler/aco_instruction_selection.cpp +++ b/src/amd/compiler/aco_instruction_selection.cpp @@ -1732,6 +1732,9 @@ visit_alu_instr(isel_context* ctx, nir_alu_instr* instr) } else if (dst.regClass() == v1 && instr->def.bit_size == 16) { emit_vop3p_instruction(ctx, instr, aco_opcode::v_pk_add_u16, dst); break; + } else if (dst.regClass() == s2 && ctx->program->gfx_level >= GFX12) { + emit_sop2_instruction(ctx, instr, aco_opcode::s_add_u64, dst, false); + break; } Temp src0 = get_alu_src(ctx, instr->src[0]);