Lines Matching refs:MRI

218 static bool matchREV(MachineInstr &MI, MachineRegisterInfo &MRI,  in matchREV()  argument
224 LLT Ty = MRI.getType(Dst); in matchREV()
247 static bool matchTRN(MachineInstr &MI, MachineRegisterInfo &MRI, in matchTRN() argument
253 unsigned NumElts = MRI.getType(Dst).getNumElements(); in matchTRN()
268 static bool matchUZP(MachineInstr &MI, MachineRegisterInfo &MRI, in matchUZP() argument
274 unsigned NumElts = MRI.getType(Dst).getNumElements(); in matchUZP()
284 static bool matchZip(MachineInstr &MI, MachineRegisterInfo &MRI, in matchZip() argument
290 unsigned NumElts = MRI.getType(Dst).getNumElements(); in matchZip()
302 MachineRegisterInfo &MRI, in matchDupFromInsertVectorElt() argument
322 MI.getOperand(1).getReg(), MRI); in matchDupFromInsertVectorElt()
327 MRI)) in matchDupFromInsertVectorElt()
331 if (!mi_match(InsMI->getOperand(3).getReg(), MRI, m_ZeroInt())) in matchDupFromInsertVectorElt()
341 MachineRegisterInfo &MRI, in matchDupFromBuildVector() argument
347 MI.getOperand(1).getReg(), MRI); in matchDupFromBuildVector()
356 static bool matchDup(MachineInstr &MI, MachineRegisterInfo &MRI, in matchDup() argument
366 if (matchDupFromInsertVectorElt(Lane, MI, MRI, MatchInfo)) in matchDup()
368 if (matchDupFromBuildVector(Lane, MI, MRI, MatchInfo)) in matchDup()
373 static bool matchEXT(MachineInstr &MI, MachineRegisterInfo &MRI, in matchEXT() argument
378 MRI.getType(Dst).getNumElements()); in matchEXT()
388 uint64_t ExtFactor = MRI.getType(V1).getScalarSizeInBits() / 8; in matchEXT()
429 static bool matchINS(MachineInstr &MI, MachineRegisterInfo &MRI, in matchINS() argument
434 int NumElts = MRI.getType(Dst).getNumElements(); in matchINS()
456 static bool applyINS(MachineInstr &MI, MachineRegisterInfo &MRI, in applyINS() argument
461 auto ScalarTy = MRI.getType(Dst).getElementType(); in applyINS()
476 static bool isVShiftRImm(Register Reg, MachineRegisterInfo &MRI, LLT Ty, in isVShiftRImm() argument
479 MachineInstr *MI = MRI.getVRegDef(Reg); in isVShiftRImm()
480 auto Cst = getAArch64VectorSplatScalar(*MI, MRI); in isVShiftRImm()
489 static bool matchVAshrLshrImm(MachineInstr &MI, MachineRegisterInfo &MRI, in matchVAshrLshrImm() argument
493 LLT Ty = MRI.getType(MI.getOperand(1).getReg()); in matchVAshrLshrImm()
496 return isVShiftRImm(MI.getOperand(2).getReg(), MRI, Ty, Imm); in matchVAshrLshrImm()
499 static bool applyVAshrLshrImm(MachineInstr &MI, MachineRegisterInfo &MRI, in applyVAshrLshrImm() argument
521 const MachineRegisterInfo &MRI) { in tryAdjustICmpImmAndPred() argument
522 const auto &Ty = MRI.getType(RHS); in tryAdjustICmpImmAndPred()
530 auto ValAndVReg = getIConstantVRegValWithLookThrough(RHS, MRI); in tryAdjustICmpImmAndPred()
617 MachineInstr &MI, const MachineRegisterInfo &MRI, in matchAdjustICmpImmAndPred() argument
622 if (auto MaybeNewImmAndPred = tryAdjustICmpImmAndPred(RHS, Pred, MRI)) { in matchAdjustICmpImmAndPred()
634 MachineRegisterInfo &MRI = *MIB.getMRI(); in applyAdjustICmpImmAndPred() local
635 auto Cst = MIB.buildConstant(MRI.cloneVirtualRegister(RHS.getReg()), in applyAdjustICmpImmAndPred()
644 bool matchDupLane(MachineInstr &MI, MachineRegisterInfo &MRI, in matchDupLane() argument
648 const LLT SrcTy = MRI.getType(Src1Reg); in matchDupLane()
649 const LLT DstTy = MRI.getType(MI.getOperand(0).getReg()); in matchDupLane()
696 bool applyDupLane(MachineInstr &MI, MachineRegisterInfo &MRI, in applyDupLane() argument
700 const LLT SrcTy = MRI.getType(Src1Reg); in applyDupLane()
709 assert(MRI.getType(MI.getOperand(0).getReg()).getNumElements() == 2 && in applyDupLane()
722 static bool matchBuildVectorToDup(MachineInstr &MI, MachineRegisterInfo &MRI) { in matchBuildVectorToDup() argument
724 auto Splat = getAArch64VectorSplat(MI, MRI); in matchBuildVectorToDup()
736 static bool applyBuildVectorToDup(MachineInstr &MI, MachineRegisterInfo &MRI, in applyBuildVectorToDup() argument
748 const MachineRegisterInfo &MRI) { in getCmpOperandFoldingProfit() argument
750 if (!MRI.hasOneNonDBGUse(CmpOp)) in getCmpOperandFoldingProfit()
760 getIConstantVRegValWithLookThrough(MI.getOperand(2).getReg(), MRI); in getCmpOperandFoldingProfit()
767 MachineInstr *Def = getDefIgnoringCopies(CmpOp, MRI); in getCmpOperandFoldingProfit()
777 getIConstantVRegValWithLookThrough(Def->getOperand(2).getReg(), MRI); in getCmpOperandFoldingProfit()
782 getDefIgnoringCopies(Def->getOperand(1).getReg(), MRI); in getCmpOperandFoldingProfit()
790 LLT Ty = MRI.getType(Def->getOperand(0).getReg()); in getCmpOperandFoldingProfit()
803 const MachineRegisterInfo &MRI) { in trySwapICmpOperands() argument
817 auto RHSCst = getIConstantVRegValWithLookThrough(RHS, MRI); in trySwapICmpOperands()
824 MachineInstr *Def = getDefIgnoringCopies(Reg, MRI); in trySwapICmpOperands()
825 return isCMN(Def, Pred, MRI) ? Def->getOperand(2).getReg() : Reg; in trySwapICmpOperands()
835 return (getCmpOperandFoldingProfit(TheLHS, MRI) > in trySwapICmpOperands()
836 getCmpOperandFoldingProfit(TheRHS, MRI)); in trySwapICmpOperands()
858 bool NoNans, MachineRegisterInfo &MRI) { in getVectorFCMP() argument
859 LLT DstTy = MRI.getType(LHS); in getVectorFCMP()
861 assert(DstTy == MRI.getType(RHS) && "Src and Dst types must match!"); in getVectorFCMP()
911 static bool lowerVectorFCMP(MachineInstr &MI, MachineRegisterInfo &MRI, in lowerVectorFCMP() argument
916 LLT DstTy = MRI.getType(Dst); in lowerVectorFCMP()
923 unsigned EltSize = MRI.getType(LHS).getScalarSizeInBits(); in lowerVectorFCMP()
927 auto Splat = getAArch64VectorSplat(*MRI.getVRegDef(RHS), MRI); in lowerVectorFCMP()
938 auto Cmp = getVectorFCMP(CC, LHS, RHS, IsZero, NoNans, MRI); in lowerVectorFCMP()
943 auto Cmp2 = getVectorFCMP(CC2, LHS, RHS, IsZero, NoNans, MRI); in lowerVectorFCMP()
950 MRI.replaceRegWith(Dst, CmpRes); in lowerVectorFCMP()
955 static bool matchFormTruncstore(MachineInstr &MI, MachineRegisterInfo &MRI, in matchFormTruncstore() argument
959 if (MRI.getType(DstReg).isVector()) in matchFormTruncstore()
962 if (!mi_match(DstReg, MRI, m_GTrunc(m_Reg(SrcReg)))) in matchFormTruncstore()
965 return MRI.getType(SrcReg).getSizeInBits() <= 64; in matchFormTruncstore()
968 static bool applyFormTruncstore(MachineInstr &MI, MachineRegisterInfo &MRI, in applyFormTruncstore() argument