Lines Matching refs:MachineOperand
55 Optional<int64_t> foldToImm(const MachineOperand &Op) const;
83 MachineOperand *Target; // Operand that would be used in converted instruction
84 MachineOperand *Replaced; // Operand that would be replace by Target
87 SDWAOperand(MachineOperand *TargetOp, MachineOperand *ReplacedOp) in SDWAOperand()
98 MachineOperand *getTargetOperand() const { return Target; } in getTargetOperand()
99 MachineOperand *getReplacedOperand() const { return Replaced; } in getReplacedOperand()
122 SDWASrcOperand(MachineOperand *TargetOp, MachineOperand *ReplacedOp, in SDWASrcOperand()
137 const MachineOperand *SrcOp) const;
151 SDWADstOperand(MachineOperand *TargetOp, MachineOperand *ReplacedOp, in SDWADstOperand()
168 MachineOperand *Preserve;
171 SDWADstPreserveOperand(MachineOperand *TargetOp, MachineOperand *ReplacedOp, in SDWADstPreserveOperand()
172 MachineOperand *PreserveOp, SdwaSel DstSel_ = DWORD) in SDWADstPreserveOperand()
178 MachineOperand *getPreservedOperand() const { return Preserve; } in getPreservedOperand()
245 static void copyRegOperand(MachineOperand &To, const MachineOperand &From) { in copyRegOperand()
257 static bool isSameReg(const MachineOperand &LHS, const MachineOperand &RHS) { in isSameReg()
264 static MachineOperand *findSingleRegUse(const MachineOperand *Reg, in findSingleRegUse()
269 MachineOperand *ResMO = nullptr; in findSingleRegUse()
270 for (MachineOperand &UseMO : MRI->use_nodbg_operands(Reg->getReg())) { in findSingleRegUse()
286 static MachineOperand *findSingleRegDef(const MachineOperand *Reg, in findSingleRegDef()
305 const MachineOperand *SrcOp) const { in getSrcMods()
332 MachineOperand *PotentialMO = findSingleRegUse(getReplacedOperand(), getMRI()); in potentialToConvert()
343 MachineOperand *Src = TII->getNamedOperand(MI, AMDGPU::OpName::src0); in convertToSDWA()
344 MachineOperand *SrcSel = TII->getNamedOperand(MI, AMDGPU::OpName::src0_sel); in convertToSDWA()
345 MachineOperand *SrcMods = in convertToSDWA()
362 MachineOperand *Dst = TII->getNamedOperand(MI, AMDGPU::OpName::vdst); in convertToSDWA()
363 MachineOperand *DstUnused = in convertToSDWA()
419 MachineOperand *PotentialMO = findSingleRegDef(getReplacedOperand(), MRI); in potentialToConvert()
444 MachineOperand *Operand = TII->getNamedOperand(MI, AMDGPU::OpName::vdst); in convertToSDWA()
449 MachineOperand *DstSel= TII->getNamedOperand(MI, AMDGPU::OpName::dst_sel); in convertToSDWA()
452 MachineOperand *DstUnused= TII->getNamedOperand(MI, AMDGPU::OpName::dst_unused); in convertToSDWA()
467 for (MachineOperand &MO : MI.uses()) { in convertToSDWA()
492 Optional<int64_t> SIPeepholeSDWA::foldToImm(const MachineOperand &Op) const { in foldToImm()
500 for (const MachineOperand &Def : MRI->def_operands(Op.getReg())) { in foldToImm()
508 const MachineOperand &Copied = DefInst->getOperand(1); in foldToImm()
537 MachineOperand *Src0 = TII->getNamedOperand(MI, AMDGPU::OpName::src0); in matchSDWAOperand()
545 MachineOperand *Src1 = TII->getNamedOperand(MI, AMDGPU::OpName::src1); in matchSDWAOperand()
546 MachineOperand *Dst = TII->getNamedOperand(MI, AMDGPU::OpName::vdst); in matchSDWAOperand()
577 MachineOperand *Src0 = TII->getNamedOperand(MI, AMDGPU::OpName::src0); in matchSDWAOperand()
582 MachineOperand *Src1 = TII->getNamedOperand(MI, AMDGPU::OpName::src1); in matchSDWAOperand()
583 MachineOperand *Dst = TII->getNamedOperand(MI, AMDGPU::OpName::vdst); in matchSDWAOperand()
616 MachineOperand *Src1 = TII->getNamedOperand(MI, AMDGPU::OpName::src1); in matchSDWAOperand()
621 MachineOperand *Src2 = TII->getNamedOperand(MI, AMDGPU::OpName::src2); in matchSDWAOperand()
645 MachineOperand *Src0 = TII->getNamedOperand(MI, AMDGPU::OpName::src0); in matchSDWAOperand()
646 MachineOperand *Dst = TII->getNamedOperand(MI, AMDGPU::OpName::vdst); in matchSDWAOperand()
661 MachineOperand *Src0 = TII->getNamedOperand(MI, AMDGPU::OpName::src0); in matchSDWAOperand()
662 MachineOperand *Src1 = TII->getNamedOperand(MI, AMDGPU::OpName::src1); in matchSDWAOperand()
674 MachineOperand *Dst = TII->getNamedOperand(MI, AMDGPU::OpName::vdst); in matchSDWAOperand()
694 using CheckRetType = Optional<std::pair<MachineOperand *, MachineOperand *>>; in matchSDWAOperand()
696 [&](const MachineOperand *Op1, const MachineOperand *Op2) -> CheckRetType { in matchSDWAOperand()
700 MachineOperand *Op1Def = findSingleRegDef(Op1, MRI); in matchSDWAOperand()
708 MachineOperand *Op2Def = findSingleRegDef(Op2, MRI); in matchSDWAOperand()
715 MachineOperand *OrSDWA = TII->getNamedOperand(MI, AMDGPU::OpName::src0); in matchSDWAOperand()
716 MachineOperand *OrOther = TII->getNamedOperand(MI, AMDGPU::OpName::src1); in matchSDWAOperand()
728 MachineOperand *OrSDWADef = Res->first; in matchSDWAOperand()
729 MachineOperand *OrOtherDef = Res->second; in matchSDWAOperand()
806 MachineOperand *OrDst = TII->getNamedOperand(MI, AMDGPU::OpName::vdst); in matchSDWAOperand()
864 const MachineOperand *Sdst = TII->getNamedOperand(MI, AMDGPU::OpName::sdst); in pseudoOpConvertToVOP2()
867 MachineOperand *NextOp = findSingleRegUse(Sdst, MRI); in pseudoOpConvertToVOP2()
876 MachineOperand *CarryIn = TII->getNamedOperand(MISucc, AMDGPU::OpName::src2); in pseudoOpConvertToVOP2()
879 MachineOperand *CarryOut = TII->getNamedOperand(MISucc, AMDGPU::OpName::sdst); in pseudoOpConvertToVOP2()
935 const MachineOperand *SDst = TII->getNamedOperand(MI, AMDGPU::OpName::sdst); in isConvertibleToSDWA()
965 if (MachineOperand *Src0 = TII->getNamedOperand(MI, AMDGPU::OpName::src0)) { in isConvertibleToSDWA()
970 if (MachineOperand *Src1 = TII->getNamedOperand(MI, AMDGPU::OpName::src1)) { in isConvertibleToSDWA()
1003 MachineOperand *Dst = TII->getNamedOperand(MI, AMDGPU::OpName::vdst); in convertToSDWA()
1018 MachineOperand *Src0 = TII->getNamedOperand(MI, AMDGPU::OpName::src0); in convertToSDWA()
1030 MachineOperand *Src1 = TII->getNamedOperand(MI, AMDGPU::OpName::src1); in convertToSDWA()
1047 MachineOperand *Src2 = TII->getNamedOperand(MI, AMDGPU::OpName::src2); in convertToSDWA()
1054 MachineOperand *Clamp = TII->getNamedOperand(MI, AMDGPU::OpName::clamp); in convertToSDWA()
1063 MachineOperand *OMod = TII->getNamedOperand(MI, AMDGPU::OpName::omod); in convertToSDWA()
1073 MachineOperand *DstSel = TII->getNamedOperand(MI, AMDGPU::OpName::dst_sel); in convertToSDWA()
1083 MachineOperand *DstUnused = TII->getNamedOperand(MI, AMDGPU::OpName::dst_unused); in convertToSDWA()
1093 MachineOperand *Src0Sel = TII->getNamedOperand(MI, AMDGPU::OpName::src0_sel); in convertToSDWA()
1103 MachineOperand *Src1Sel = TII->getNamedOperand(MI, AMDGPU::OpName::src1_sel); in convertToSDWA()
1167 for (MachineOperand &Op : MI.explicit_uses()) { in legalizeScalarOperands()