diff --git a/llvm/lib/Target/AMDGPU/SIInstrInfo.td b/llvm/lib/Target/AMDGPU/SIInstrInfo.td index 81f8dcc482dad..84dc0b17e593e 100644 --- a/llvm/lib/Target/AMDGPU/SIInstrInfo.td +++ b/llvm/lib/Target/AMDGPU/SIInstrInfo.td @@ -2388,8 +2388,9 @@ class VOPProfile _ArgVT, bit _EnableF32SrcMods = 0, field ValueType Src1VT = ArgVT[2]; field ValueType Src2VT = ArgVT[3]; field RegisterOperand DstRC = getVALUDstForVT.ret; + field RegisterOperand DstRCDPP = DstRC; field RegisterOperand DstRC64 = DstRC; - field RegisterOperand DstRCDPP = getVALUDstForVT.ret; + field RegisterOperand DstRCVOP3DPP = DstRC64; field RegisterOperand DstRCSDWA = getSDWADstForVT.ret; field RegisterOperand Src0RC32 = getVOPSrc0ForVT.ret; field RegisterOperand Src1RC32 = RegisterOperand.ret>; @@ -2484,9 +2485,9 @@ class VOPProfile _ArgVT, bit _EnableF32SrcMods = 0, field dag Outs32 = Outs; field dag Outs64 = !if(HasDst,(outs DstRC64:$vdst),(outs)); field dag OutsDPP = getOutsDPP.ret; - field dag OutsDPP8 = getOutsDPP.ret; - field dag OutsVOP3DPP = OutsDPP; - field dag OutsVOP3DPP8 = OutsDPP8; + field dag OutsDPP8 = OutsDPP; + field dag OutsVOP3DPP = getOutsDPP.ret; + field dag OutsVOP3DPP8 = OutsVOP3DPP; field dag OutsSDWA = getOutsSDWA.ret; field dag Ins32 = getIns32.ret; @@ -2513,9 +2514,9 @@ class VOPProfile _ArgVT, bit _EnableF32SrcMods = 0, field dag InsVOP3Base = getInsVOP3Base.ret; - field dag InsVOP3DPP = getInsVOP3DPP.ret; - field dag InsVOP3DPP16 = getInsVOP3DPP16.ret; - field dag InsVOP3DPP8 = getInsVOP3DPP8.ret; + field dag InsVOP3DPP = getInsVOP3DPP.ret; + field dag InsVOP3DPP16 = getInsVOP3DPP16.ret; + field dag InsVOP3DPP8 = getInsVOP3DPP8.ret; field dag InsSDWA = getInsSDWA.ret; diff --git a/llvm/lib/Target/AMDGPU/VOP1Instructions.td b/llvm/lib/Target/AMDGPU/VOP1Instructions.td index 73e4eb8cdc240..8df67c7715573 100644 --- a/llvm/lib/Target/AMDGPU/VOP1Instructions.td +++ b/llvm/lib/Target/AMDGPU/VOP1Instructions.td @@ -362,10 +362,9 @@ class VOP_MOVREL : VOPProfile<[untyped, i32, untyped, un dpp_ctrl:$dpp_ctrl, row_mask:$row_mask, bank_mask:$bank_mask, bound_ctrl:$bound_ctrl, FI:$fi); let AsmDPP16 = getAsmDPP16<1, 1, 0>.ret; - - let OutsDPP8 = (outs Src0RC32:$vdst); let InsDPP8 = (ins Src0RC32:$old, Src0RC32:$src0, dpp8:$dpp8, FI:$fi); let AsmDPP8 = getAsmDPP8<1, 1, 0>.ret; + let OutsVOP3DPP = (outs Src0RC64:$vdst); let HasDst = 0; let EmitDst = 1; // force vdst emission