diff --git a/llvm/lib/Target/AMDGPU/SIInstrInfo.td b/llvm/lib/Target/AMDGPU/SIInstrInfo.td --- a/llvm/lib/Target/AMDGPU/SIInstrInfo.td +++ b/llvm/lib/Target/AMDGPU/SIInstrInfo.td @@ -1709,7 +1709,7 @@ Src0Mod, Src1Mod, Src2Mod, 1/*HasOpSel*/, 0>.ret; } -class getInsDPPBase { @@ -1719,45 +1719,45 @@ !if (!eq(NumSrcArgs, 1), !if (HasModifiers, // VOP1_DPP with modifiers - (ins DstRC:$old, Src0Mod:$src0_modifiers, + (ins OldRC:$old, Src0Mod:$src0_modifiers, Src0RC:$src0) /* else */, // VOP1_DPP without modifiers - (ins DstRC:$old, Src0RC:$src0) + (ins OldRC:$old, Src0RC:$src0) /* endif */), !if (HasModifiers, // VOP2_DPP with modifiers - (ins DstRC:$old, + (ins OldRC:$old, Src0Mod:$src0_modifiers, Src0RC:$src0, Src1Mod:$src1_modifiers, Src1RC:$src1) /* else */, // VOP2_DPP without modifiers - (ins DstRC:$old, + (ins OldRC:$old, Src0RC:$src0, Src1RC:$src1) ))); } -class getInsDPP { - dag ret = !con(getInsDPPBase.ret, (ins dpp_ctrl:$dpp_ctrl, row_mask:$row_mask, bank_mask:$bank_mask, bound_ctrl:$bound_ctrl)); } -class getInsDPP16 { - dag ret = !con(getInsDPP.ret, (ins FI:$fi)); } -class getInsDPP8 { - dag ret = !con(getInsDPPBase.ret, (ins dpp8:$dpp8, FI:$fi)); } @@ -2200,7 +2200,9 @@ field string AsmDPP = !if(HasExtDPP, getAsmDPP.ret, ""); field string AsmDPP16 = getAsmDPP16.ret; - field string AsmDPP8 = getAsmDPP8.ret; + // DPP8 encoding has no fields for modifiers, and it is enforced by setting + // the asm operand name via this HasModifiers flag + field string AsmDPP8 = getAsmDPP8.ret; field string AsmSDWA = getAsmSDWA.ret; field string AsmSDWA9 = getAsmSDWA9.ret;