Lines Matching refs:MachineOperand

59   std::optional<int64_t> foldToImm(const MachineOperand &Op) const;
90 MachineOperand *Target; // Operand that would be used in converted instruction
91 MachineOperand *Replaced; // Operand that would be replace by Target
94 SDWAOperand(MachineOperand *TargetOp, MachineOperand *ReplacedOp)
107 MachineOperand *getTargetOperand() const { return Target; }
108 MachineOperand *getReplacedOperand() const { return Replaced; }
131 SDWASrcOperand(MachineOperand *TargetOp, MachineOperand *ReplacedOp,
148 const MachineOperand *SrcOp) const;
162 SDWADstOperand(MachineOperand *TargetOp, MachineOperand *ReplacedOp,
181 MachineOperand *Preserve;
184 SDWADstPreserveOperand(MachineOperand *TargetOp, MachineOperand *ReplacedOp,
185 MachineOperand *PreserveOp, SdwaSel DstSel_ = DWORD)
191 MachineOperand *getPreservedOperand() const { return Preserve; }
258 static void copyRegOperand(MachineOperand &To, const MachineOperand &From) {
270 static bool isSameReg(const MachineOperand &LHS, const MachineOperand &RHS) {
277 static MachineOperand *findSingleRegUse(const MachineOperand *Reg,
282 MachineOperand *ResMO = nullptr;
283 for (MachineOperand &UseMO : MRI->use_nodbg_operands(Reg->getReg())) {
299 static MachineOperand *findSingleRegDef(const MachineOperand *Reg,
318 const MachineOperand *SrcOp) const {
347 MachineOperand *Reg = getReplacedOperand();
358 for (MachineOperand &UseMO : getMRI()->use_nodbg_operands(Reg->getReg())) {
371 MachineOperand *PotentialMO = findSingleRegUse(getReplacedOperand(), getMRI());
391 MachineOperand *Src = TII->getNamedOperand(MI, AMDGPU::OpName::src0);
392 MachineOperand *SrcSel = TII->getNamedOperand(MI, AMDGPU::OpName::src0_sel);
393 MachineOperand *SrcMods =
410 MachineOperand *Dst = TII->getNamedOperand(MI, AMDGPU::OpName::vdst);
411 MachineOperand *DstUnused =
469 MachineOperand *PotentialMO = findSingleRegDef(getReplacedOperand(), MRI);
494 MachineOperand *Operand = TII->getNamedOperand(MI, AMDGPU::OpName::vdst);
499 MachineOperand *DstSel= TII->getNamedOperand(MI, AMDGPU::OpName::dst_sel);
502 MachineOperand *DstUnused= TII->getNamedOperand(MI, AMDGPU::OpName::dst_unused);
517 for (MachineOperand &MO : MI.uses()) {
542 SIPeepholeSDWA::foldToImm(const MachineOperand &Op) const {
550 for (const MachineOperand &Def : MRI->def_operands(Op.getReg())) {
558 const MachineOperand &Copied = DefInst->getOperand(1);
587 MachineOperand *Src0 = TII->getNamedOperand(MI, AMDGPU::OpName::src0);
595 MachineOperand *Src1 = TII->getNamedOperand(MI, AMDGPU::OpName::src1);
596 MachineOperand *Dst = TII->getNamedOperand(MI, AMDGPU::OpName::vdst);
627 MachineOperand *Src0 = TII->getNamedOperand(MI, AMDGPU::OpName::src0);
632 MachineOperand *Src1 = TII->getNamedOperand(MI, AMDGPU::OpName::src1);
633 MachineOperand *Dst = TII->getNamedOperand(MI, AMDGPU::OpName::vdst);
665 MachineOperand *Src1 = TII->getNamedOperand(MI, AMDGPU::OpName::src1);
670 MachineOperand *Src2 = TII->getNamedOperand(MI, AMDGPU::OpName::src2);
694 MachineOperand *Src0 = TII->getNamedOperand(MI, AMDGPU::OpName::src0);
695 MachineOperand *Dst = TII->getNamedOperand(MI, AMDGPU::OpName::vdst);
711 MachineOperand *Src0 = TII->getNamedOperand(MI, AMDGPU::OpName::src0);
712 MachineOperand *Src1 = TII->getNamedOperand(MI, AMDGPU::OpName::src1);
724 MachineOperand *Dst = TII->getNamedOperand(MI, AMDGPU::OpName::vdst);
746 std::optional<std::pair<MachineOperand *, MachineOperand *>>;
748 [&](const MachineOperand *Op1, const MachineOperand *Op2) -> CheckRetType {
752 MachineOperand *Op1Def = findSingleRegDef(Op1, MRI);
760 MachineOperand *Op2Def = findSingleRegDef(Op2, MRI);
767 MachineOperand *OrSDWA = TII->getNamedOperand(MI, AMDGPU::OpName::src0);
768 MachineOperand *OrOther = TII->getNamedOperand(MI, AMDGPU::OpName::src1);
780 MachineOperand *OrSDWADef = Res->first;
781 MachineOperand *OrOtherDef = Res->second;
858 MachineOperand *OrDst = TII->getNamedOperand(MI, AMDGPU::OpName::vdst);
916 const MachineOperand *Sdst = TII->getNamedOperand(MI, AMDGPU::OpName::sdst);
919 MachineOperand *NextOp = findSingleRegUse(Sdst, MRI);
925 MachineOperand *CarryIn = TII->getNamedOperand(MISucc, AMDGPU::OpName::src2);
928 MachineOperand *CarryOut = TII->getNamedOperand(MISucc, AMDGPU::OpName::sdst);
983 const MachineOperand *SDst = TII->getNamedOperand(MI, AMDGPU::OpName::sdst);
1013 if (MachineOperand *Src0 = TII->getNamedOperand(MI, AMDGPU::OpName::src0)) {
1018 if (MachineOperand *Src1 = TII->getNamedOperand(MI, AMDGPU::OpName::src1)) {
1052 MachineOperand *Dst = TII->getNamedOperand(MI, AMDGPU::OpName::vdst);
1066 MachineOperand *Src0 = TII->getNamedOperand(MI, AMDGPU::OpName::src0);
1076 MachineOperand *Src1 = TII->getNamedOperand(MI, AMDGPU::OpName::src1);
1092 MachineOperand *Src2 = TII->getNamedOperand(MI, AMDGPU::OpName::src2);
1099 MachineOperand *Clamp = TII->getNamedOperand(MI, AMDGPU::OpName::clamp);
1108 MachineOperand *OMod = TII->getNamedOperand(MI, AMDGPU::OpName::omod);
1118 MachineOperand *DstSel = TII->getNamedOperand(MI, AMDGPU::OpName::dst_sel);
1128 MachineOperand *DstUnused = TII->getNamedOperand(MI, AMDGPU::OpName::dst_unused);
1138 MachineOperand *Src0Sel = TII->getNamedOperand(MI, AMDGPU::OpName::src0_sel);
1148 MachineOperand *Src1Sel = TII->getNamedOperand(MI, AMDGPU::OpName::src1_sel);
1195 for (MachineOperand &MO : SDWAInst->uses()) {
1219 for (MachineOperand &Op : MI.explicit_uses()) {