Lines Matching refs:getReg

84   return MIB.buildSub(Ty, Base, Ctlz).getReg(0);  in buildLogBase2()
212 Register DstReg = MI.getOperand(0).getReg(); in matchCombineCopy()
213 Register SrcReg = MI.getOperand(1).getReg(); in matchCombineCopy()
217 Register DstReg = MI.getOperand(0).getReg(); in applyCombineCopy()
218 Register SrcReg = MI.getOperand(1).getReg(); in applyCombineCopy()
244 Register Reg = MO.getReg(); in matchCombineConcatVectors()
253 Ops.push_back(BuildVecMO.getReg()); in matchCombineConcatVectors()
262 assert(MRI.getType(Undef->getOperand(0).getReg()) == in matchCombineConcatVectors()
269 Ops.push_back(Undef->getOperand(0).getReg()); in matchCombineConcatVectors()
282 Register DstReg = MI.getOperand(0).getReg(); in applyCombineConcatVectors()
313 LLT DstType = MRI.getType(MI.getOperand(0).getReg()); in matchCombineShuffleVector()
314 Register Src1 = MI.getOperand(1).getReg(); in matchCombineShuffleVector()
369 Register Src2 = MI.getOperand(2).getReg(); in matchCombineShuffleVector()
374 UndefReg = Builder.buildUndef(SrcType).getReg(0); in matchCombineShuffleVector()
387 Register DstReg = MI.getOperand(0).getReg(); in applyCombineShuffleVector()
409 Register DstReg = MI.getOperand(0).getReg(); in applyShuffleToExtract()
413 Register Src1 = MI.getOperand(1).getReg(); in applyShuffleToExtract()
418 SrcReg = MI.getOperand(2).getReg(); in applyShuffleToExtract()
601 LLT UseTy = MRI.getType(UseMI.getOperand(0).getReg()); in matchCombineExtendingLoads()
608 MRI.getType(UseMI.getOperand(0).getReg()), in matchCombineExtendingLoads()
627 Register ChosenDstReg = Preferred.MI->getOperand(0).getReg(); in applyCombineExtendingLoads()
638 UseMO.setReg(PreviouslyEmitted->getOperand(0).getReg()); in applyCombineExtendingLoads()
644 Register NewDstReg = MRI.cloneVirtualRegister(MI.getOperand(0).getReg()); in applyCombineExtendingLoads()
657 for (auto &UseMO : MRI.use_operands(LoadValue.getReg())) in applyCombineExtendingLoads()
667 Register UseDstReg = UseMI->getOperand(0).getReg(); in applyCombineExtendingLoads()
742 Register Dst = MI.getOperand(0).getReg(); in matchCombineLoadWithAndMask()
747 getIConstantVRegValWithLookThrough(MI.getOperand(2).getReg(), MRI); in matchCombineLoadWithAndMask()
756 Register SrcReg = MI.getOperand(1).getReg(); in matchCombineLoadWithAndMask()
841 Register SrcReg = MI.getOperand(1).getReg(); in matchSextTruncSextLoad()
868 Builder.buildCopy(MI.getOperand(0).getReg(), MI.getOperand(1).getReg()); in applySextTruncSextLoad()
876 Register DstReg = MI.getOperand(0).getReg(); in matchSextInRegOfLoad()
883 Register SrcReg = MI.getOperand(1).getReg(); in matchSextInRegOfLoad()
943 Builder.buildLoadInstr(TargetOpcode::G_SEXTLOAD, MI.getOperand(0).getReg(), in applySextInRegOfLoad()
996 LLT Ty = MRI.getType(LdSt.getReg(0)); in isIndexedLoadStoreLegal()
1037 MachineInstr *StoredValDef = getDefIgnoringCopies(LdSt.getReg(0), MRI); in findPostIndexCandidate()
1048 if (!PtrAdd || MRI.use_nodbg_empty(PtrAdd->getReg(0))) in findPostIndexCandidate()
1088 Register PtrAddDefReg = BasePtrUseDef->getReg(0); in findPostIndexCandidate()
1104 Addr = PtrAdd->getReg(0); in findPostIndexCandidate()
1173 auto *LoadMI = getOpcodeDef<GLoad>(MI.getOperand(1).getReg(), MRI); in matchCombineExtractedVectorLoad()
1177 Register Vector = MI.getOperand(1).getReg(); in matchCombineExtractedVectorLoad()
1180 assert(MRI.getType(MI.getOperand(0).getReg()) == VecEltTy); in matchCombineExtractedVectorLoad()
1243 Register Result = MI.getOperand(0).getReg(); in matchCombineExtractedVectorLoad()
1244 Register Index = MI.getOperand(2).getReg(); in matchCombineExtractedVectorLoad()
1251 LoadMI->getPointerReg(), MRI.getType(LoadMI->getOperand(0).getReg()), in matchCombineExtractedVectorLoad()
1293 MatchInfo.Offset = NewCst.getReg(0); in applyCombineIndexedLoadStore()
1299 MIB.addUse(MI.getOperand(0).getReg()); in applyCombineIndexedLoadStore()
1301 MIB.addDef(MI.getOperand(0).getReg()); in applyCombineIndexedLoadStore()
1337 Register Src1 = MI.getOperand(1).getReg(); in matchCombineDivRem()
1385 DestDivReg = MI.getOperand(0).getReg(); in applyCombineDivRem()
1386 DestRemReg = OtherMI->getOperand(0).getReg(); in applyCombineDivRem()
1388 DestDivReg = OtherMI->getOperand(0).getReg(); in applyCombineDivRem()
1389 DestRemReg = MI.getOperand(0).getReg(); in applyCombineDivRem()
1454 LLT Ty = MRI.getType(BrCond->getOperand(0).getReg()); in applyOptBrCondByInvertingCond()
1470 BrCond->getOperand(0).setReg(Xor.getReg(0)); in applyOptBrCondByInvertingCond()
1509 LLT DstTy = MRI.getType(MI.getOperand(0).getReg()); in constantFoldFpUnary()
1557 Register Add2 = MI.getOperand(1).getReg(); in matchPtrAddImmedChain()
1558 Register Imm1 = MI.getOperand(2).getReg(); in matchPtrAddImmedChain()
1567 Register Base = Add2Def->getOperand(1).getReg(); in matchPtrAddImmedChain()
1568 Register Imm2 = Add2Def->getOperand(2).getReg(); in matchPtrAddImmedChain()
1579 for (auto &UseMI : MRI.use_nodbg_instructions(MI.getOperand(0).getReg())) { in matchPtrAddImmedChain()
1581 AccessTy = getTypeForLLT(MRI.getType(LdSt->getReg(0)), in matchPtrAddImmedChain()
1612 LLT OffsetTy = MRI.getType(MI.getOperand(2).getReg()); in applyPtrAddImmedChain()
1614 setRegBank(NewOffset.getReg(0), MatchInfo.Bank); in applyPtrAddImmedChain()
1617 MI.getOperand(2).setReg(NewOffset.getReg(0)); in applyPtrAddImmedChain()
1636 Register Shl2 = MI.getOperand(1).getReg(); in matchShiftImmedChain()
1637 Register Imm1 = MI.getOperand(2).getReg(); in matchShiftImmedChain()
1646 Register Base = Shl2Def->getOperand(1).getReg(); in matchShiftImmedChain()
1647 Register Imm2 = Shl2Def->getOperand(2).getReg(); in matchShiftImmedChain()
1675 LLT Ty = MRI.getType(MI.getOperand(1).getReg()); in applyShiftImmedChain()
1691 LLT ImmTy = MRI.getType(MI.getOperand(2).getReg()); in applyShiftImmedChain()
1692 Register NewImm = Builder.buildConstant(ImmTy, Imm).getReg(0); in applyShiftImmedChain()
1720 Register LogicDest = MI.getOperand(1).getReg(); in matchShiftOfShiftedLogic()
1731 const Register C1 = MI.getOperand(2).getReg(); in matchShiftOfShiftedLogic()
1741 !MRI.hasOneNonDBGUse(MI->getOperand(0).getReg())) in matchShiftOfShiftedLogic()
1746 getIConstantVRegValWithLookThrough(MI->getOperand(2).getReg(), MRI); in matchShiftOfShiftedLogic()
1755 Register LogicMIReg1 = LogicMI->getOperand(1).getReg(); in matchShiftOfShiftedLogic()
1757 Register LogicMIReg2 = LogicMI->getOperand(2).getReg(); in matchShiftOfShiftedLogic()
1788 LLT ShlType = MRI.getType(MI.getOperand(2).getReg()); in applyShiftOfShiftedLogic()
1789 LLT DestType = MRI.getType(MI.getOperand(0).getReg()); in applyShiftOfShiftedLogic()
1792 Register Const = Builder.buildConstant(ShlType, MatchInfo.ValSum).getReg(0); in applyShiftOfShiftedLogic()
1794 Register Shift1Base = MatchInfo.Shift2->getOperand(1).getReg(); in applyShiftOfShiftedLogic()
1796 Builder.buildInstr(Opcode, {DestType}, {Shift1Base, Const}).getReg(0); in applyShiftOfShiftedLogic()
1805 Register Shift2Const = MI.getOperand(2).getReg(); in applyShiftOfShiftedLogic()
1809 .getReg(0); in applyShiftOfShiftedLogic()
1811 Register Dest = MI.getOperand(0).getReg(); in applyShiftOfShiftedLogic()
1825 Register DstReg = Shl.getReg(0); in matchCommuteShift()
1826 Register SrcReg = Shl.getReg(1); in matchCommuteShift()
1827 Register ShiftReg = Shl.getReg(2); in matchCommuteShift()
1859 getIConstantVRegValWithLookThrough(MI.getOperand(2).getReg(), MRI); in matchCombineMulToShl()
1871 LLT ShiftTy = MRI.getType(MI.getOperand(0).getReg()); in applyCombineMulToShl()
1875 MI.getOperand(2).setReg(ShiftCst.getReg(0)); in applyCombineMulToShl()
1886 Register LHS = MI.getOperand(1).getReg(); in matchCombineShlOfExtend()
1894 Register RHS = MI.getOperand(2).getReg(); in matchCombineShlOfExtend()
1946 if (MergedValues[I] != Unmerge->getReg(I)) in matchCombineMergeUnmerge()
1974 LLT Dst0Ty = MRI.getType(Unmerge.getReg(0)); in matchCombineUnmergeMergeToPlainValues()
1994 LLT DstTy = MRI.getType(MI.getOperand(0).getReg()); in applyCombineUnmergeMergeToPlainValues()
1998 Register DstReg = MI.getOperand(Idx).getReg(); in applyCombineUnmergeMergeToPlainValues()
2005 SrcReg = Builder.buildCopy(MRI.getType(SrcReg), SrcReg).getReg(0); in applyCombineUnmergeMergeToPlainValues()
2020 Register SrcReg = MI.getOperand(SrcIdx).getReg(); in matchCombineUnmergeConstant()
2031 LLT Dst0Ty = MRI.getType(MI.getOperand(0).getReg()); in matchCombineUnmergeConstant()
2051 Register DstReg = MI.getOperand(Idx).getReg(); in applyCombineUnmergeConstant()
2061 Register SrcReg = MI.getOperand(SrcIdx).getReg(); in matchCombineUnmergeUndef()
2065 Register DstReg = MI.getOperand(Idx).getReg(); in matchCombineUnmergeUndef()
2077 if (!MRI.use_nodbg_empty(MI.getOperand(Idx).getReg())) in matchCombineUnmergeWithDeadLanesToTrunc()
2085 Register SrcReg = MI.getOperand(MI.getNumDefs()).getReg(); in applyCombineUnmergeWithDeadLanesToTrunc()
2092 Builder.buildCast(LLT::scalar(SrcTy.getSizeInBits()), SrcReg).getReg(0); in applyCombineUnmergeWithDeadLanesToTrunc()
2094 Register Dst0Reg = MI.getOperand(0).getReg(); in applyCombineUnmergeWithDeadLanesToTrunc()
2107 Register Dst0Reg = MI.getOperand(0).getReg(); in matchCombineUnmergeZExtToZExt()
2114 Register SrcReg = MI.getOperand(MI.getNumDefs()).getReg(); in matchCombineUnmergeZExtToZExt()
2134 Register Dst0Reg = MI.getOperand(0).getReg(); in applyCombineUnmergeZExtToZExt()
2137 MRI.getVRegDef(MI.getOperand(MI.getNumDefs()).getReg()); in applyCombineUnmergeZExtToZExt()
2141 Register ZExtSrcReg = ZExtInstr->getOperand(1).getReg(); in applyCombineUnmergeZExtToZExt()
2158 ZeroReg = Builder.buildConstant(Dst0Ty, 0).getReg(0); in applyCombineUnmergeZExtToZExt()
2159 replaceRegWith(MRI, MI.getOperand(Idx).getReg(), ZeroReg); in applyCombineUnmergeZExtToZExt()
2171 LLT Ty = MRI.getType(MI.getOperand(0).getReg()); in matchCombineShiftToUnmerge()
2181 getIConstantVRegValWithLookThrough(MI.getOperand(2).getReg(), MRI); in matchCombineShiftToUnmerge()
2191 Register DstReg = MI.getOperand(0).getReg(); in applyCombineShiftToUnmerge()
2192 Register SrcReg = MI.getOperand(1).getReg(); in applyCombineShiftToUnmerge()
2205 Register Narrowed = Unmerge.getReg(1); in applyCombineShiftToUnmerge()
2214 Builder.buildConstant(HalfTy, NarrowShiftAmt)).getReg(0); in applyCombineShiftToUnmerge()
2220 Register Narrowed = Unmerge.getReg(0); in applyCombineShiftToUnmerge()
2227 Builder.buildConstant(HalfTy, NarrowShiftAmt)).getReg(0); in applyCombineShiftToUnmerge()
2235 HalfTy, Unmerge.getReg(1), in applyCombineShiftToUnmerge()
2241 Builder.buildMergeLikeInstr(DstReg, {Unmerge.getReg(1), Hi}); in applyCombineShiftToUnmerge()
2250 HalfTy, Unmerge.getReg(1), in applyCombineShiftToUnmerge()
2275 Register DstReg = MI.getOperand(0).getReg(); in matchCombineI2PToP2I()
2277 Register SrcReg = MI.getOperand(1).getReg(); in matchCombineI2PToP2I()
2284 Register DstReg = MI.getOperand(0).getReg(); in applyCombineI2PToP2I()
2292 Register DstReg = MI.getOperand(0).getReg(); in applyCombineP2IToI2P()
2301 Register LHS = MI.getOperand(1).getReg(); in matchCombineAddP2IToPtrAdd()
2302 Register RHS = MI.getOperand(2).getReg(); in matchCombineAddP2IToPtrAdd()
2325 Register Dst = MI.getOperand(0).getReg(); in applyCombineAddP2IToPtrAdd()
2326 Register LHS = MI.getOperand(1).getReg(); in applyCombineAddP2IToPtrAdd()
2327 Register RHS = MI.getOperand(2).getReg(); in applyCombineAddP2IToPtrAdd()
2352 auto DstTy = MRI.getType(PtrAdd.getReg(0)); in matchCombineConstPtrAddToI2P()
2366 Register Dst = PtrAdd.getReg(0); in applyCombineConstPtrAddToI2P()
2375 Register DstReg = MI.getOperand(0).getReg(); in matchCombineAnyExtTrunc()
2376 Register SrcReg = MI.getOperand(1).getReg(); in matchCombineAnyExtTrunc()
2387 Register DstReg = MI.getOperand(0).getReg(); in matchCombineZextTrunc()
2388 Register SrcReg = MI.getOperand(1).getReg(); in matchCombineZextTrunc()
2405 Register SrcReg = MI.getOperand(1).getReg(); in matchCombineExtOfExt()
2417 MatchInfo = std::make_tuple(SrcMI->getOperand(1).getReg(), SrcOpc); in matchCombineExtOfExt()
2447 Register DstReg = MI.getOperand(0).getReg(); in applyCombineExtOfExt()
2457 Register SrcReg = MI.getOperand(1).getReg(); in matchCombineTruncOfExt()
2462 MatchInfo = std::make_pair(SrcMI->getOperand(1).getReg(), SrcOpc); in matchCombineTruncOfExt()
2473 Register DstReg = MI.getOperand(0).getReg(); in applyCombineTruncOfExt()
2509 Register DstReg = MI.getOperand(0).getReg(); in matchCombineTruncOfShift()
2510 Register SrcReg = MI.getOperand(1).getReg(); in matchCombineTruncOfShift()
2529 KnownBits Known = KB->getKnownBits(SrcMI->getOperand(2).getReg()); in matchCombineTruncOfShift()
2550 KnownBits Known = KB->getKnownBits(SrcMI->getOperand(2).getReg()); in matchCombineTruncOfShift()
2574 Register Dst = MI.getOperand(0).getReg(); in applyCombineTruncOfShift()
2577 Register ShiftAmt = ShiftMI->getOperand(2).getReg(); in applyCombineTruncOfShift()
2578 Register ShiftSrc = ShiftMI->getOperand(1).getReg(); in applyCombineTruncOfShift()
2579 ShiftSrc = Builder.buildTrunc(NewShiftTy, ShiftSrc).getReg(0); in applyCombineTruncOfShift()
2584 .getReg(0); in applyCombineTruncOfShift()
2597 getOpcodeDef(TargetOpcode::G_IMPLICIT_DEF, MO.getReg(), MRI); in matchAnyExplicitUseIsUndef()
2604 getOpcodeDef(TargetOpcode::G_IMPLICIT_DEF, MO.getReg(), MRI); in matchAllExplicitUsesAreUndef()
2616 return getOpcodeDef(TargetOpcode::G_IMPLICIT_DEF, MI.getOperand(0).getReg(), in matchUndefStore()
2622 return getOpcodeDef(TargetOpcode::G_IMPLICIT_DEF, MI.getOperand(1).getReg(), in matchUndefSelectCmp()
2630 LLT VecTy = MRI.getType(MI.getOperand(1).getReg()); in matchInsertExtractVecEltOutOfBounds()
2633 auto Idx = getIConstantVRegVal(MI.getOperand(IdxIdx).getReg(), MRI); in matchInsertExtractVecEltOutOfBounds()
2655 auto InstAndDef1 = getDefSrcRegIgnoringCopies(MOP1.getReg(), MRI); in matchEqualDefs()
2658 auto InstAndDef2 = getDefSrcRegIgnoringCopies(MOP2.getReg(), MRI); in matchEqualDefs()
2671 return MOP1.getReg() == MOP2.getReg(); in matchEqualDefs()
2717 return MO.isReg() && MO.getReg().isPhysical(); in matchEqualDefs()
2751 auto *MI = MRI.getVRegDef(MOP.getReg()); in matchConstantOp()
2761 if (!mi_match(MOP.getReg(), MRI, m_GFCstOrSplat(MaybeCst))) in matchConstantFPOp()
2770 Register OldReg = MI.getOperand(0).getReg(); in replaceSingleDefInstWithOperand()
2771 Register Replacement = MI.getOperand(OpIdx).getReg(); in replaceSingleDefInstWithOperand()
2780 Register OldReg = MI.getOperand(0).getReg(); in replaceSingleDefInstWithReg()
2788 Register ConstReg = MI.getOperand(ConstIdx).getReg(); in matchConstantLargerBitWidth()
2789 LLT DstTy = MRI.getType(MI.getOperand(0).getReg()); in matchConstantLargerBitWidth()
2805 Register ConstReg = MI.getOperand(3).getReg(); in applyFunnelShiftConstantModulo()
2807 LLT DstTy = MRI.getType(MI.getOperand(0).getReg()); in applyFunnelShiftConstantModulo()
2820 {MI.getOperand(1), MI.getOperand(2), NewConstInstr.getReg(0)}); in applyFunnelShiftConstantModulo()
2829 canReplaceReg(MI.getOperand(0).getReg(), MI.getOperand(2).getReg(), in matchSelectSameVal()
2835 canReplaceReg(MI.getOperand(0).getReg(), MI.getOperand(1).getReg(), in matchBinOpSameVal()
2841 canReplaceReg(MI.getOperand(0).getReg(), MI.getOperand(OpIdx).getReg(), in matchOperandIsZero()
2848 getOpcodeDef(TargetOpcode::G_IMPLICIT_DEF, MO.getReg(), MRI); in matchOperandIsUndef()
2854 return isKnownToBeAPowerOfTwo(MO.getReg(), MRI, KB); in matchOperandIsKnownToBeAPowerOfTwo()
2894 Register LHS = MI.getOperand(1).getReg(); in matchSimplifyAddToSub()
2895 Register RHS = MI.getOperand(2).getReg(); in matchSimplifyAddToSub()
2916 Register DstReg = MI.getOperand(0).getReg(); in matchCombineInsertVecElts()
2931 CurrInst->getOperand(0).getReg(), MRI, in matchCombineInsertVecElts()
2945 MatchInfo[I - 1] = TmpInst->getOperand(I).getReg(); in matchCombineInsertVecElts()
2960 LLT DstTy = MRI.getType(MI.getOperand(0).getReg()); in applyCombineInsertVecElts()
2961 UndefReg = Builder.buildUndef(DstTy.getScalarType()).getReg(0); in applyCombineInsertVecElts()
2968 Builder.buildBuildVector(MI.getOperand(0).getReg(), MatchInfo); in applyCombineInsertVecElts()
2977 Builder.buildSub(MI.getOperand(0).getReg(), SubLHS, SubRHS); in applySimplifyAddToSub()
2994 Register Dst = MI.getOperand(0).getReg(); in matchHoistLogicOpWithSameOpcodeHands()
2995 Register LHSReg = MI.getOperand(1).getReg(); in matchHoistLogicOpWithSameOpcodeHands()
2996 Register RHSReg = MI.getOperand(2).getReg(); in matchHoistLogicOpWithSameOpcodeHands()
3016 Register X = LeftHandInst->getOperand(1).getReg(); in matchHoistLogicOpWithSameOpcodeHands()
3017 Register Y = RightHandInst->getOperand(1).getReg(); in matchHoistLogicOpWithSameOpcodeHands()
3042 ExtraHandOpSrcReg = ZOp.getReg(); in matchHoistLogicOpWithSameOpcodeHands()
3093 if (!mi_match(MI.getOperand(0).getReg(), MRI, in matchAshrShlToSextInreg()
3114 Builder.buildSExtInReg(MI.getOperand(0).getReg(), Src, Size - ShiftAmt); in applyAshShlToSextInreg()
3123 Register Dst = MI.getOperand(0).getReg(); in matchOverlappingAnd()
3140 replaceRegWith(MRI, Dst, Zero->getOperand(0).getReg()); in matchOverlappingAnd()
3166 Register AndDst = MI.getOperand(0).getReg(); in matchRedundantAnd()
3167 Register LHS = MI.getOperand(1).getReg(); in matchRedundantAnd()
3168 Register RHS = MI.getOperand(2).getReg(); in matchRedundantAnd()
3206 Register OrDst = MI.getOperand(0).getReg(); in matchRedundantOr()
3207 Register LHS = MI.getOperand(1).getReg(); in matchRedundantOr()
3208 Register RHS = MI.getOperand(2).getReg(); in matchRedundantOr()
3236 Register Src = MI.getOperand(1).getReg(); in matchRedundantSExtInReg()
3252 LLT Ty = MRI.getType(MI.getOperand(0).getReg()); in matchNotCmp()
3257 if (!mi_match(MI.getOperand(0).getReg(), MRI, in matchNotCmp()
3300 RegsToNegate.push_back(Def->getOperand(1).getReg()); in matchNotCmp()
3301 RegsToNegate.push_back(Def->getOperand(2).getReg()); in matchNotCmp()
3354 replaceRegWith(MRI, MI.getOperand(0).getReg(), MI.getOperand(1).getReg()); in applyNotCmp()
3364 Register AndReg = MI.getOperand(1).getReg(); in matchXorOfAndWithSameReg()
3365 Register SharedReg = MI.getOperand(2).getReg(); in matchXorOfAndWithSameReg()
3398 MI.getOperand(1).setReg(Not->getOperand(0).getReg()); in applyXorOfAndWithSameReg()
3405 Register DstReg = PtrAdd.getReg(0); in matchPtrAddZero()
3425 Builder.buildIntToPtr(PtrAdd.getReg(0), PtrAdd.getOffsetReg()); in applyPtrAddZero()
3431 Register DstReg = MI.getOperand(0).getReg(); in applySimplifyURemByPow2()
3432 Register Src0 = MI.getOperand(1).getReg(); in applySimplifyURemByPow2()
3433 Register Pow2Src1 = MI.getOperand(2).getReg(); in applySimplifyURemByPow2()
3446 Register LHS = MI.getOperand(1).getReg(); in matchFoldBinOpIntoSelect()
3447 Register RHS = MI.getOperand(2).getReg(); in matchFoldBinOpIntoSelect()
3465 MachineInstr *SelectLHS = MRI.getVRegDef(Select->getOperand(2).getReg()); in matchFoldBinOpIntoSelect()
3466 MachineInstr *SelectRHS = MRI.getVRegDef(Select->getOperand(3).getReg()); in matchFoldBinOpIntoSelect()
3502 Register Dst = MI.getOperand(0).getReg(); in applyFoldBinOpIntoSelect()
3503 Register LHS = MI.getOperand(1).getReg(); in applyFoldBinOpIntoSelect()
3504 Register RHS = MI.getOperand(2).getReg(); in applyFoldBinOpIntoSelect()
3505 MachineInstr *Select = MRI.getVRegDef(MI.getOperand(SelectOperand).getReg()); in applyFoldBinOpIntoSelect()
3507 Register SelectCond = Select->getOperand(1).getReg(); in applyFoldBinOpIntoSelect()
3508 Register SelectTrue = Select->getOperand(2).getReg(); in applyFoldBinOpIntoSelect()
3509 Register SelectFalse = Select->getOperand(3).getReg(); in applyFoldBinOpIntoSelect()
3523 FoldTrue = Builder.buildInstr(BinOpcode, {Ty}, {SelectTrue, RHS}).getReg(0); in applyFoldBinOpIntoSelect()
3525 Builder.buildInstr(BinOpcode, {Ty}, {SelectFalse, RHS}).getReg(0); in applyFoldBinOpIntoSelect()
3527 FoldTrue = Builder.buildInstr(BinOpcode, {Ty}, {LHS, SelectTrue}).getReg(0); in applyFoldBinOpIntoSelect()
3529 Builder.buildInstr(BinOpcode, {Ty}, {LHS, SelectFalse}).getReg(0); in applyFoldBinOpIntoSelect()
3568 MRI.getType(Root->getOperand(0).getReg()).getSizeInBytes() - 1; in findCandidatesForLoadOrCombine()
3573 Register OrLHS = Curr->getOperand(1).getReg(); in findCandidatesForLoadOrCombine()
3574 Register OrRHS = Curr->getOperand(2).getReg(); in findCandidatesForLoadOrCombine()
3697 if (!mi_match(Load->getOperand(1).getReg(), MRI, in findLoadOffsetsForLoadOrCombine()
3699 LoadPtr = Load->getOperand(1).getReg(); in findLoadOffsetsForLoadOrCombine()
3782 Register Dst = MI.getOperand(0).getReg(); in matchLoadOrCombine()
3884 Register DstReg = PHI.getReg(0); in matchExtendThroughPhis()
3938 Register DstReg = ExtMI->getOperand(0).getReg(); in applyExtendThroughPhis()
3973 auto *NewSrc = OldToNewSrcMap[MRI.getVRegDef(MO.getReg())]; in applyExtendThroughPhis()
3974 NewPhi.addUse(NewSrc->getOperand(0).getReg()); in applyExtendThroughPhis()
3985 Register SrcVec = MI.getOperand(1).getReg(); in matchExtractVecEltBuildVec()
3988 auto Cst = getIConstantVRegValWithLookThrough(MI.getOperand(2).getReg(), MRI); in matchExtractVecEltBuildVec()
3998 SrcVecMI = MRI.getVRegDef(SrcVecMI->getOperand(1).getReg()); in matchExtractVecEltBuildVec()
4010 Reg = SrcVecMI->getOperand(VecIdx + 1).getReg(); in matchExtractVecEltBuildVec()
4019 Register DstReg = MI.getOperand(0).getReg(); in applyExtractVecEltBuildVec()
4052 Register DstReg = MI.getOperand(0).getReg(); in matchExtractAllEltsFromBuildVector()
4060 auto Cst = getIConstantVRegVal(II.getOperand(2).getReg(), MRI); in matchExtractAllEltsFromBuildVector()
4068 std::make_pair(MI.getOperand(Idx + 1).getReg(), &II)); in matchExtractAllEltsFromBuildVector()
4080 replaceRegWith(MRI, ExtMI->getOperand(0).getReg(), Pair.first); in applyExtractAllEltsFromBuildVector()
4103 Register Dst = MI.getOperand(0).getReg(); in matchOrShiftToFunnelShift()
4156 Register X = MI.getOperand(1).getReg(); in matchFunnelShiftToRotate()
4157 Register Y = MI.getOperand(2).getReg(); in matchFunnelShiftToRotate()
4181 MRI.getType(MI.getOperand(0).getReg()).getScalarSizeInBits(); in matchRotateOutOfRange()
4182 Register AmtReg = MI.getOperand(2).getReg(); in matchRotateOutOfRange()
4196 MRI.getType(MI.getOperand(0).getReg()).getScalarSizeInBits(); in applyRotateOutOfRange()
4198 Register Amt = MI.getOperand(2).getReg(); in applyRotateOutOfRange()
4201 Amt = Builder.buildURem(AmtTy, MI.getOperand(2).getReg(), Bits).getReg(0); in applyRotateOutOfRange()
4211 auto KnownLHS = KB->getKnownBits(MI.getOperand(2).getReg()); in matchICmpToTrueFalseKnownBits()
4212 auto KnownRHS = KB->getKnownBits(MI.getOperand(3).getReg()); in matchICmpToTrueFalseKnownBits()
4254 MRI.getType(MI.getOperand(0).getReg()).isVector(), in matchICmpToTrueFalseKnownBits()
4277 Register Dst = MI.getOperand(0).getReg(); in matchICmpToLHSKnownBits()
4283 if (!mi_match(MI.getOperand(3).getReg(), MRI, m_SpecificICst(OneOrZero))) in matchICmpToLHSKnownBits()
4285 Register LHS = MI.getOperand(2).getReg(); in matchICmpToLHSKnownBits()
4309 LLT Ty = MRI.getType(MI.getOperand(0).getReg()); in matchAndOrDisjointMask()
4329 if (MI.getOperand(1).getReg() == AndMaskReg) in matchAndOrDisjointMask()
4341 Register Dst = MI.getOperand(0).getReg(); in matchBitfieldExtractFromSExtInReg()
4342 Register Src = MI.getOperand(1).getReg(); in matchBitfieldExtractFromSExtInReg()
4370 Register Dst = MI.getOperand(0).getReg(); in matchBitfieldExtractFromAnd()
4379 if (!mi_match(MI.getOperand(0).getReg(), MRI, in matchBitfieldExtractFromAnd()
4407 const Register Dst = MI.getOperand(0).getReg(); in matchBitfieldExtractFromShr()
4456 const Register Dst = MI.getOperand(0).getReg(); in matchBitfieldExtractFromShrAnd()
4533 for (auto &UseMI : MRI.use_nodbg_instructions(PtrAdd.getReg(0))) { in reassociationCanBreakAddressingModePattern()
4540 Register DefReg = ConvUseMI->getOperand(0).getReg(); in reassociationCanBreakAddressingModePattern()
4577 Register Src1Reg = MI.getOperand(1).getReg(); in matchReassocConstantInnerRHS()
4580 auto C2 = getIConstantVRegVal(RHS->getOperand(2).getReg(), MRI); in matchReassocConstantInnerRHS()
4585 LLT PtrTy = MRI.getType(MI.getOperand(0).getReg()); in matchReassocConstantInnerRHS()
4588 Builder.buildPtrAdd(PtrTy, Src1Reg, RHS->getOperand(1).getReg()); in matchReassocConstantInnerRHS()
4590 MI.getOperand(1).setReg(NewBase.getReg(0)); in matchReassocConstantInnerRHS()
4591 MI.getOperand(2).setReg(RHS->getOperand(2).getReg()); in matchReassocConstantInnerRHS()
4619 MI.getOperand(2).setReg(NewCst.getReg(0)); in matchReassocConstantInnerLHS()
4637 Register Src2Reg = MI.getOperand(2).getReg(); in matchReassocFoldConstantsInSubTree()
4651 MI.getOperand(2).setReg(NewCst.getReg(0)); in matchReassocFoldConstantsInSubTree()
4699 Register OpLHSLHS = OpLHSDef->getOperand(1).getReg(); in tryReassocBinOp()
4700 Register OpLHSRHS = OpLHSDef->getOperand(2).getReg(); in tryReassocBinOp()
4735 Register DstReg = MI.getOperand(0).getReg(); in matchReassocCommBinOp()
4736 Register LHSReg = MI.getOperand(1).getReg(); in matchReassocCommBinOp()
4737 Register RHSReg = MI.getOperand(2).getReg(); in matchReassocCommBinOp()
4747 LLT DstTy = MRI.getType(MI.getOperand(0).getReg()); in matchConstantFoldCastOp()
4748 Register SrcOp = MI.getOperand(1).getReg(); in matchConstantFoldCastOp()
4759 Register Op1 = MI.getOperand(1).getReg(); in matchConstantFoldBinOp()
4760 Register Op2 = MI.getOperand(2).getReg(); in matchConstantFoldBinOp()
4769 Register Op1 = MI.getOperand(1).getReg(); in matchConstantFoldFPBinOp()
4770 Register Op2 = MI.getOperand(2).getReg(); in matchConstantFoldFPBinOp()
4823 Register Dst = MI.getOperand(0).getReg(); in matchNarrowBinopFeedingAnd()
4824 Register AndLHS = MI.getOperand(1).getReg(); in matchNarrowBinopFeedingAnd()
4825 Register AndRHS = MI.getOperand(2).getReg(); in matchNarrowBinopFeedingAnd()
4880 Register BinOpLHS = LHSInst->getOperand(1).getReg(); in matchNarrowBinopFeedingAnd()
4881 Register BinOpRHS = LHSInst->getOperand(2).getReg(); in matchNarrowBinopFeedingAnd()
4889 MI.getOperand(1).setReg(Ext.getReg(0)); in matchNarrowBinopFeedingAnd()
4899 if (!mi_match(MI.getOperand(3).getReg(), MRI, m_SpecificICstOrSplat(2))) in matchMulOBy2()
4907 MI.getOperand(3).setReg(MI.getOperand(2).getReg()); in matchMulOBy2()
4917 if (!mi_match(MI.getOperand(3).getReg(), MRI, m_SpecificICstOrSplat(0))) in matchMulOBy0()
4919 Register Dst = MI.getOperand(0).getReg(); in matchMulOBy0()
4920 Register Carry = MI.getOperand(1).getReg(); in matchMulOBy0()
4935 if (!mi_match(MI.getOperand(3).getReg(), MRI, m_SpecificICstOrSplat(0))) in matchAddOBy0()
4937 Register Carry = MI.getOperand(1).getReg(); in matchAddOBy0()
4940 Register Dst = MI.getOperand(0).getReg(); in matchAddOBy0()
4941 Register LHS = MI.getOperand(2).getReg(); in matchAddOBy0()
4956 if (!mi_match(MI.getOperand(4).getReg(), MRI, m_SpecificICstOrSplat(0))) in matchAddEToAddO()
4985 Register Dst = MI.getOperand(0).getReg(); in matchSubAddSameReg()
5029 Register Dst = UDiv.getReg(0); in buildUDivUsingMul()
5030 Register LHS = UDiv.getReg(1); in buildUDivUsingMul()
5031 Register RHS = UDiv.getReg(2); in buildUDivUsingMul()
5071 MIB.buildConstant(ScalarShiftAmtTy, PreShift).getReg(0)); in buildUDivUsingMul()
5072 MagicFactors.push_back(MIB.buildConstant(ScalarTy, Magic).getReg(0)); in buildUDivUsingMul()
5077 .getReg(0)); in buildUDivUsingMul()
5079 MIB.buildConstant(ScalarShiftAmtTy, PostShift).getReg(0)); in buildUDivUsingMul()
5092 PreShift = MIB.buildBuildVector(ShiftAmtTy, PreShifts).getReg(0); in buildUDivUsingMul()
5093 MagicFactor = MIB.buildBuildVector(Ty, MagicFactors).getReg(0); in buildUDivUsingMul()
5094 NPQFactor = MIB.buildBuildVector(Ty, NPQFactors).getReg(0); in buildUDivUsingMul()
5095 PostShift = MIB.buildBuildVector(ShiftAmtTy, PostShifts).getReg(0); in buildUDivUsingMul()
5105 Q = MIB.buildLShr(Ty, Q, PreShift).getReg(0); in buildUDivUsingMul()
5108 Q = MIB.buildUMulH(Ty, Q, MagicFactor).getReg(0); in buildUDivUsingMul()
5111 Register NPQ = MIB.buildSub(Ty, LHS, Q).getReg(0); in buildUDivUsingMul()
5116 NPQ = MIB.buildUMulH(Ty, NPQ, NPQFactor).getReg(0); in buildUDivUsingMul()
5118 NPQ = MIB.buildLShr(Ty, NPQ, MIB.buildConstant(ShiftAmtTy, 1)).getReg(0); in buildUDivUsingMul()
5120 Q = MIB.buildAdd(Ty, NPQ, Q).getReg(0); in buildUDivUsingMul()
5123 Q = MIB.buildLShr(Ty, Q, PostShift).getReg(0); in buildUDivUsingMul()
5133 Register Dst = MI.getOperand(0).getReg(); in matchUDivByConst()
5134 Register RHS = MI.getOperand(2).getReg(); in matchUDivByConst()
5176 replaceSingleDefInstWithReg(MI, NewMI->getOperand(0).getReg()); in applyUDivByConst()
5181 Register Dst = MI.getOperand(0).getReg(); in matchSDivByConst()
5182 Register RHS = MI.getOperand(2).getReg(); in matchSDivByConst()
5210 replaceSingleDefInstWithReg(MI, NewMI->getOperand(0).getReg()); in applySDivByConst()
5216 Register Dst = SDiv.getReg(0); in buildSDivUsingMul()
5217 Register LHS = SDiv.getReg(1); in buildSDivUsingMul()
5218 Register RHS = SDiv.getReg(2); in buildSDivUsingMul()
5254 Shifts.push_back(MIB.buildConstant(ScalarShiftAmtTy, Shift).getReg(0)); in buildSDivUsingMul()
5255 Factors.push_back(MIB.buildConstant(ScalarTy, Factor).getReg(0)); in buildSDivUsingMul()
5266 Shift = MIB.buildBuildVector(ShiftAmtTy, Shifts).getReg(0); in buildSDivUsingMul()
5267 Factor = MIB.buildBuildVector(Ty, Factors).getReg(0); in buildSDivUsingMul()
5276 Res = MIB.buildAShr(Ty, Res, Shift, MachineInstr::IsExact).getReg(0); in buildSDivUsingMul()
5283 Register RHS = MI.getOperand(2).getReg(); in matchUMulHToLShr()
5284 Register Dst = MI.getOperand(0).getReg(); in matchUMulHToLShr()
5298 Register LHS = MI.getOperand(1).getReg(); in applyUMulHToLShr()
5299 Register RHS = MI.getOperand(2).getReg(); in applyUMulHToLShr()
5300 Register Dst = MI.getOperand(0).getReg(); in applyUMulHToLShr()
5321 Register Dst = MI.getOperand(0).getReg(); in matchRedundantNegOperands()
5322 Register X = MI.getOperand(1).getReg(); in matchRedundantNegOperands()
5323 Register Y = MI.getOperand(2).getReg(); in matchRedundantNegOperands()
5363 Register LHS = MI.getOperand(1).getReg(); in matchFsubToFneg()
5364 MatchInfo = MI.getOperand(2).getReg(); in matchFsubToFneg()
5365 LLT Ty = MRI.getType(MI.getOperand(0).getReg()); in matchFsubToFneg()
5386 Register Dst = MI.getOperand(0).getReg(); in applyFsubToFneg()
5388 Dst, Builder.buildFCanonicalize(MRI.getType(Dst), MatchInfo).getReg(0)); in applyFsubToFneg()
5402 return std::distance(MRI.use_instr_nodbg_begin(MI0.getOperand(0).getReg()), in hasMoreUses()
5404 std::distance(MRI.use_instr_nodbg_begin(MI1.getOperand(0).getReg()), in hasMoreUses()
5416 LLT DstType = MRI.getType(MI.getOperand(0).getReg()); in canCombineFMadOrFMA()
5449 Register Op1 = MI.getOperand(1).getReg(); in matchCombineFAddFMulToFMadOrFMA()
5450 Register Op2 = MI.getOperand(2).getReg(); in matchCombineFAddFMulToFMadOrFMA()
5468 B.buildInstr(PreferredFusedOpcode, {MI.getOperand(0).getReg()}, in matchCombineFAddFMulToFMadOrFMA()
5469 {LHS.MI->getOperand(1).getReg(), in matchCombineFAddFMulToFMadOrFMA()
5470 LHS.MI->getOperand(2).getReg(), RHS.Reg}); in matchCombineFAddFMulToFMadOrFMA()
5479 B.buildInstr(PreferredFusedOpcode, {MI.getOperand(0).getReg()}, in matchCombineFAddFMulToFMadOrFMA()
5480 {RHS.MI->getOperand(1).getReg(), in matchCombineFAddFMulToFMadOrFMA()
5481 RHS.MI->getOperand(2).getReg(), LHS.Reg}); in matchCombineFAddFMulToFMadOrFMA()
5498 Register Op1 = MI.getOperand(1).getReg(); in matchCombineFAddFpExtFMulToFMadOrFMA()
5499 Register Op2 = MI.getOperand(2).getReg(); in matchCombineFAddFpExtFMulToFMadOrFMA()
5502 LLT DstType = MRI.getType(MI.getOperand(0).getReg()); in matchCombineFAddFpExtFMulToFMadOrFMA()
5520 MRI.getType(FpExtSrc->getOperand(1).getReg()))) { in matchCombineFAddFpExtFMulToFMadOrFMA()
5522 auto FpExtX = B.buildFPExt(DstType, FpExtSrc->getOperand(1).getReg()); in matchCombineFAddFpExtFMulToFMadOrFMA()
5523 auto FpExtY = B.buildFPExt(DstType, FpExtSrc->getOperand(2).getReg()); in matchCombineFAddFpExtFMulToFMadOrFMA()
5524 B.buildInstr(PreferredFusedOpcode, {MI.getOperand(0).getReg()}, in matchCombineFAddFpExtFMulToFMadOrFMA()
5525 {FpExtX.getReg(0), FpExtY.getReg(0), RHS.Reg}); in matchCombineFAddFpExtFMulToFMadOrFMA()
5535 MRI.getType(FpExtSrc->getOperand(1).getReg()))) { in matchCombineFAddFpExtFMulToFMadOrFMA()
5537 auto FpExtX = B.buildFPExt(DstType, FpExtSrc->getOperand(1).getReg()); in matchCombineFAddFpExtFMulToFMadOrFMA()
5538 auto FpExtY = B.buildFPExt(DstType, FpExtSrc->getOperand(2).getReg()); in matchCombineFAddFpExtFMulToFMadOrFMA()
5539 B.buildInstr(PreferredFusedOpcode, {MI.getOperand(0).getReg()}, in matchCombineFAddFpExtFMulToFMadOrFMA()
5540 {FpExtX.getReg(0), FpExtY.getReg(0), LHS.Reg}); in matchCombineFAddFpExtFMulToFMadOrFMA()
5556 Register Op1 = MI.getOperand(1).getReg(); in matchCombineFAddFMAFMulToFMadOrFMA()
5557 Register Op2 = MI.getOperand(2).getReg(); in matchCombineFAddFMAFMulToFMadOrFMA()
5560 LLT DstTy = MRI.getType(MI.getOperand(0).getReg()); in matchCombineFAddFMAFMulToFMadOrFMA()
5577 (MRI.getVRegDef(LHS.MI->getOperand(3).getReg())->getOpcode() == in matchCombineFAddFMAFMulToFMadOrFMA()
5579 MRI.hasOneNonDBGUse(LHS.MI->getOperand(0).getReg()) && in matchCombineFAddFMAFMulToFMadOrFMA()
5580 MRI.hasOneNonDBGUse(LHS.MI->getOperand(3).getReg())) { in matchCombineFAddFMAFMulToFMadOrFMA()
5586 (MRI.getVRegDef(RHS.MI->getOperand(3).getReg())->getOpcode() == in matchCombineFAddFMAFMulToFMadOrFMA()
5588 MRI.hasOneNonDBGUse(RHS.MI->getOperand(0).getReg()) && in matchCombineFAddFMAFMulToFMadOrFMA()
5589 MRI.hasOneNonDBGUse(RHS.MI->getOperand(3).getReg())) { in matchCombineFAddFMAFMulToFMadOrFMA()
5595 MachineInstr *FMulMI = MRI.getVRegDef(FMA->getOperand(3).getReg()); in matchCombineFAddFMAFMulToFMadOrFMA()
5596 Register X = FMA->getOperand(1).getReg(); in matchCombineFAddFMAFMulToFMadOrFMA()
5597 Register Y = FMA->getOperand(2).getReg(); in matchCombineFAddFMAFMulToFMadOrFMA()
5598 Register U = FMulMI->getOperand(1).getReg(); in matchCombineFAddFMAFMulToFMadOrFMA()
5599 Register V = FMulMI->getOperand(2).getReg(); in matchCombineFAddFMAFMulToFMadOrFMA()
5604 B.buildInstr(PreferredFusedOpcode, {MI.getOperand(0).getReg()}, in matchCombineFAddFMAFMulToFMadOrFMA()
5625 LLT DstType = MRI.getType(MI.getOperand(0).getReg()); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5626 Register Op1 = MI.getOperand(1).getReg(); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5627 Register Op2 = MI.getOperand(2).getReg(); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5645 Register FpExtU = B.buildFPExt(DstType, U).getReg(0); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5646 Register FpExtV = B.buildFPExt(DstType, V).getReg(0); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5649 .getReg(0); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5650 B.buildInstr(PreferredFusedOpcode, {MI.getOperand(0).getReg()}, in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5658 mi_match(LHS.MI->getOperand(3).getReg(), MRI, in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5662 MRI.getType(FMulMI->getOperand(0).getReg()))) { in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5664 buildMatchInfo(FMulMI->getOperand(1).getReg(), in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5665 FMulMI->getOperand(2).getReg(), RHS.Reg, in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5666 LHS.MI->getOperand(1).getReg(), in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5667 LHS.MI->getOperand(2).getReg(), B); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5679 MachineInstr *FMulMI = MRI.getVRegDef(FMAMI->getOperand(3).getReg()); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5682 MRI.getType(FMAMI->getOperand(0).getReg()))) { in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5684 Register X = FMAMI->getOperand(1).getReg(); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5685 Register Y = FMAMI->getOperand(2).getReg(); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5686 X = B.buildFPExt(DstType, X).getReg(0); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5687 Y = B.buildFPExt(DstType, Y).getReg(0); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5688 buildMatchInfo(FMulMI->getOperand(1).getReg(), in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5689 FMulMI->getOperand(2).getReg(), RHS.Reg, X, Y, B); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5699 mi_match(RHS.MI->getOperand(3).getReg(), MRI, in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5703 MRI.getType(FMulMI->getOperand(0).getReg()))) { in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5705 buildMatchInfo(FMulMI->getOperand(1).getReg(), in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5706 FMulMI->getOperand(2).getReg(), LHS.Reg, in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5707 RHS.MI->getOperand(1).getReg(), in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5708 RHS.MI->getOperand(2).getReg(), B); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5720 MachineInstr *FMulMI = MRI.getVRegDef(FMAMI->getOperand(3).getReg()); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5723 MRI.getType(FMAMI->getOperand(0).getReg()))) { in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5725 Register X = FMAMI->getOperand(1).getReg(); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5726 Register Y = FMAMI->getOperand(2).getReg(); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5727 X = B.buildFPExt(DstType, X).getReg(0); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5728 Y = B.buildFPExt(DstType, Y).getReg(0); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5729 buildMatchInfo(FMulMI->getOperand(1).getReg(), in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5730 FMulMI->getOperand(2).getReg(), LHS.Reg, X, Y, B); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5747 Register Op1 = MI.getOperand(1).getReg(); in matchCombineFSubFMulToFMadOrFMA()
5748 Register Op2 = MI.getOperand(2).getReg(); in matchCombineFSubFMulToFMadOrFMA()
5751 LLT DstTy = MRI.getType(MI.getOperand(0).getReg()); in matchCombineFSubFMulToFMadOrFMA()
5769 Register NegZ = B.buildFNeg(DstTy, RHS.Reg).getReg(0); in matchCombineFSubFMulToFMadOrFMA()
5770 B.buildInstr(PreferredFusedOpcode, {MI.getOperand(0).getReg()}, in matchCombineFSubFMulToFMadOrFMA()
5771 {LHS.MI->getOperand(1).getReg(), in matchCombineFSubFMulToFMadOrFMA()
5772 LHS.MI->getOperand(2).getReg(), NegZ}); in matchCombineFSubFMulToFMadOrFMA()
5781 B.buildFNeg(DstTy, RHS.MI->getOperand(1).getReg()).getReg(0); in matchCombineFSubFMulToFMadOrFMA()
5782 B.buildInstr(PreferredFusedOpcode, {MI.getOperand(0).getReg()}, in matchCombineFSubFMulToFMadOrFMA()
5783 {NegY, RHS.MI->getOperand(2).getReg(), LHS.Reg}); in matchCombineFSubFMulToFMadOrFMA()
5799 Register LHSReg = MI.getOperand(1).getReg(); in matchCombineFSubFNegFMulToFMadOrFMA()
5800 Register RHSReg = MI.getOperand(2).getReg(); in matchCombineFSubFNegFMulToFMadOrFMA()
5801 LLT DstTy = MRI.getType(MI.getOperand(0).getReg()); in matchCombineFSubFNegFMulToFMadOrFMA()
5810 MRI.hasOneNonDBGUse(FMulMI->getOperand(0).getReg()))) && in matchCombineFSubFNegFMulToFMadOrFMA()
5814 B.buildFNeg(DstTy, FMulMI->getOperand(1).getReg()).getReg(0); in matchCombineFSubFNegFMulToFMadOrFMA()
5815 Register NegZ = B.buildFNeg(DstTy, RHSReg).getReg(0); in matchCombineFSubFNegFMulToFMadOrFMA()
5816 B.buildInstr(PreferredFusedOpcode, {MI.getOperand(0).getReg()}, in matchCombineFSubFNegFMulToFMadOrFMA()
5817 {NegX, FMulMI->getOperand(2).getReg(), NegZ}); in matchCombineFSubFNegFMulToFMadOrFMA()
5825 MRI.hasOneNonDBGUse(FMulMI->getOperand(0).getReg()))) && in matchCombineFSubFNegFMulToFMadOrFMA()
5828 B.buildInstr(PreferredFusedOpcode, {MI.getOperand(0).getReg()}, in matchCombineFSubFNegFMulToFMadOrFMA()
5829 {FMulMI->getOperand(1).getReg(), in matchCombineFSubFNegFMulToFMadOrFMA()
5830 FMulMI->getOperand(2).getReg(), LHSReg}); in matchCombineFSubFNegFMulToFMadOrFMA()
5846 Register LHSReg = MI.getOperand(1).getReg(); in matchCombineFSubFpExtFMulToFMadOrFMA()
5847 Register RHSReg = MI.getOperand(2).getReg(); in matchCombineFSubFpExtFMulToFMadOrFMA()
5848 LLT DstTy = MRI.getType(MI.getOperand(0).getReg()); in matchCombineFSubFpExtFMulToFMadOrFMA()
5860 B.buildFPExt(DstTy, FMulMI->getOperand(1).getReg()).getReg(0); in matchCombineFSubFpExtFMulToFMadOrFMA()
5862 B.buildFPExt(DstTy, FMulMI->getOperand(2).getReg()).getReg(0); in matchCombineFSubFpExtFMulToFMadOrFMA()
5863 Register NegZ = B.buildFNeg(DstTy, RHSReg).getReg(0); in matchCombineFSubFpExtFMulToFMadOrFMA()
5864 B.buildInstr(PreferredFusedOpcode, {MI.getOperand(0).getReg()}, in matchCombineFSubFpExtFMulToFMadOrFMA()
5876 B.buildFPExt(DstTy, FMulMI->getOperand(1).getReg()).getReg(0); in matchCombineFSubFpExtFMulToFMadOrFMA()
5877 Register NegY = B.buildFNeg(DstTy, FpExtY).getReg(0); in matchCombineFSubFpExtFMulToFMadOrFMA()
5879 B.buildFPExt(DstTy, FMulMI->getOperand(2).getReg()).getReg(0); in matchCombineFSubFpExtFMulToFMadOrFMA()
5880 B.buildInstr(PreferredFusedOpcode, {MI.getOperand(0).getReg()}, in matchCombineFSubFpExtFMulToFMadOrFMA()
5898 LLT DstTy = MRI.getType(MI.getOperand(0).getReg()); in matchCombineFSubFpExtFNegFMulToFMadOrFMA()
5899 Register LHSReg = MI.getOperand(1).getReg(); in matchCombineFSubFpExtFNegFMulToFMadOrFMA()
5900 Register RHSReg = MI.getOperand(2).getReg(); in matchCombineFSubFpExtFNegFMulToFMadOrFMA()
5907 Register FpExtX = B.buildFPExt(DstTy, X).getReg(0); in matchCombineFSubFpExtFNegFMulToFMadOrFMA()
5908 Register FpExtY = B.buildFPExt(DstTy, Y).getReg(0); in matchCombineFSubFpExtFNegFMulToFMadOrFMA()
5921 MRI.getType(FMulMI->getOperand(0).getReg()))) { in matchCombineFSubFpExtFNegFMulToFMadOrFMA()
5924 buildMatchInfo(FMAReg, FMulMI->getOperand(1).getReg(), in matchCombineFSubFpExtFNegFMulToFMadOrFMA()
5925 FMulMI->getOperand(2).getReg(), RHSReg, B); in matchCombineFSubFpExtFNegFMulToFMadOrFMA()
5926 B.buildFNeg(MI.getOperand(0).getReg(), FMAReg); in matchCombineFSubFpExtFNegFMulToFMadOrFMA()
5937 MRI.getType(FMulMI->getOperand(0).getReg()))) { in matchCombineFSubFpExtFNegFMulToFMadOrFMA()
5939 buildMatchInfo(MI.getOperand(0).getReg(), FMulMI->getOperand(1).getReg(), in matchCombineFSubFpExtFNegFMulToFMadOrFMA()
5940 FMulMI->getOperand(2).getReg(), LHSReg, B); in matchCombineFSubFpExtFNegFMulToFMadOrFMA()
5965 Register MaybeNaNReg = MI.getOperand(Idx).getReg(); in matchCombineFMinMaxNaN()
5978 Register LHS = MI.getOperand(1).getReg(); in matchAddSubSameReg()
5979 Register RHS = MI.getOperand(2).getReg(); in matchAddSubSameReg()
6010 LLT DstVecTy = MRI.getType(MI.getOperand(0).getReg()); in matchBuildVectorIdentityFold()
6042 if (!mi_match(MI.getOperand(1).getReg(), MRI, in matchTruncBuildVectorFold()
6046 return MRI.getType(MatchInfo) == MRI.getType(MI.getOperand(0).getReg()); in matchTruncBuildVectorFold()
6054 if (!mi_match(MI.getOperand(1).getReg(), MRI, in matchTruncLshrBuildVectorFold()
6061 MatchTy == MRI.getType(MI.getOperand(0).getReg()); in matchTruncLshrBuildVectorFold()
6185 Register Cond = MI.getOperand(1).getReg(); in matchSimplifySelectToMinMax()
6189 Register Dst = MI.getOperand(0).getReg(); in matchSimplifySelectToMinMax()
6190 Register TrueVal = MI.getOperand(2).getReg(); in matchSimplifySelectToMinMax()
6191 Register FalseVal = MI.getOperand(3).getReg(); in matchSimplifySelectToMinMax()
6204 Register Dst = MI.getOperand(0).getReg(); in matchRedundantBinOpInEquality()
6228 Register ShiftReg = MI.getOperand(2).getReg(); in matchShiftsTooBig()
6229 LLT ResTy = MRI.getType(MI.getOperand(0).getReg()); in matchShiftsTooBig()
6238 Register LHS = MI.getOperand(1).getReg(); in matchCommuteConstantToRHS()
6239 Register RHS = MI.getOperand(2).getReg(); in matchCommuteConstantToRHS()
6254 Register LHS = MI.getOperand(1).getReg(); in matchCommuteFPConstantToRHS()
6255 Register RHS = MI.getOperand(2).getReg(); in matchCommuteFPConstantToRHS()
6264 Register LHSReg = MI.getOperand(1).getReg(); in applyCommuteBinOpOperands()
6265 Register RHSReg = MI.getOperand(2).getReg(); in applyCommuteBinOpOperands()
6353 Register Dest = Select->getReg(0); in tryFoldSelectOfConstants()
6482 Register DstReg = Select->getReg(0); in tryFoldBoolSelectToLogic()
6558 Register DstReg = Select->getReg(0); in tryFoldSelectToIntMinMax()
6573 if (!MRI.hasOneNonDBGUse(Cmp->getReg(0))) in tryFoldSelectToIntMinMax()