Lines Matching refs:getReg
87 return MIB.buildSub(Ty, Base, Ctlz).getReg(0); in buildLogBase2()
215 Register DstReg = MI.getOperand(0).getReg(); in matchCombineCopy()
216 Register SrcReg = MI.getOperand(1).getReg(); in matchCombineCopy()
220 Register DstReg = MI.getOperand(0).getReg(); in applyCombineCopy()
221 Register SrcReg = MI.getOperand(1).getReg(); in applyCombineCopy()
229 Register DstOp = MI.getOperand(0).getReg(); in matchFreezeOfSingleMaybePoisonOperand()
230 Register OrigOp = MI.getOperand(1).getReg(); in matchFreezeOfSingleMaybePoisonOperand()
256 if (isGuaranteedNotToBeUndefOrPoison(Operand.getReg(), MRI)) in matchFreezeOfSingleMaybePoisonOperand()
279 Register MaybePoisonOperandReg = MaybePoisonOperand->getReg(); in matchFreezeOfSingleMaybePoisonOperand()
290 Freeze.getReg(0)); in matchFreezeOfSingleMaybePoisonOperand()
307 Register Reg = MO.getReg(); in matchCombineConcatVectors()
318 Ops.push_back(BuildVecMO.getReg()); in matchCombineConcatVectors()
327 assert(MRI.getType(Undef->getOperand(0).getReg()) == in matchCombineConcatVectors()
334 Ops.push_back(Undef->getOperand(0).getReg()); in matchCombineConcatVectors()
343 LLT DstTy = MRI.getType(MI.getOperand(0).getReg()); in matchCombineConcatVectors()
358 Register DstReg = MI.getOperand(0).getReg(); in applyCombineConcatVectors()
380 dyn_cast<GConcatVectors>(MRI.getVRegDef(MI.getOperand(1).getReg())); in matchCombineShuffleConcat()
382 dyn_cast<GConcatVectors>(MRI.getVRegDef(MI.getOperand(2).getReg())); in matchCombineShuffleConcat()
391 LLT ConcatSrcTy = MRI.getType(ConcatMI1->getReg(1)); in matchCombineShuffleConcat()
392 LLT ShuffleSrcTy1 = MRI.getType(MI.getOperand(1).getReg()); in matchCombineShuffleConcat()
430 {MRI.getType(MI.getOperand(0).getReg()), ConcatSrcTy}})) in matchCombineShuffleConcat()
444 UndefReg = Builder.buildUndef(SrcTy).getReg(0); in applyCombineShuffleConcat()
450 Builder.buildConcatVectors(MI.getOperand(0).getReg(), Ops); in applyCombineShuffleConcat()
452 Builder.buildCopy(MI.getOperand(0).getReg(), Ops[0]); in applyCombineShuffleConcat()
469 LLT DstType = MRI.getType(MI.getOperand(0).getReg()); in matchCombineShuffleVector()
470 Register Src1 = MI.getOperand(1).getReg(); in matchCombineShuffleVector()
525 Register Src2 = MI.getOperand(2).getReg(); in matchCombineShuffleVector()
530 UndefReg = Builder.buildUndef(SrcType).getReg(0); in matchCombineShuffleVector()
543 Register DstReg = MI.getOperand(0).getReg(); in applyCombineShuffleVector()
565 Register DstReg = MI.getOperand(0).getReg(); in applyShuffleToExtract()
569 Register Src1 = MI.getOperand(1).getReg(); in applyShuffleToExtract()
574 SrcReg = MI.getOperand(2).getReg(); in applyShuffleToExtract()
757 LLT UseTy = MRI.getType(UseMI.getOperand(0).getReg()); in matchCombineExtendingLoads()
764 MRI.getType(UseMI.getOperand(0).getReg()), in matchCombineExtendingLoads()
783 Register ChosenDstReg = Preferred.MI->getOperand(0).getReg(); in applyCombineExtendingLoads()
794 UseMO.setReg(PreviouslyEmitted->getOperand(0).getReg()); in applyCombineExtendingLoads()
800 Register NewDstReg = MRI.cloneVirtualRegister(MI.getOperand(0).getReg()); in applyCombineExtendingLoads()
813 for (auto &UseMO : MRI.use_operands(LoadValue.getReg())) in applyCombineExtendingLoads()
823 Register UseDstReg = UseMI->getOperand(0).getReg(); in applyCombineExtendingLoads()
898 Register Dst = MI.getOperand(0).getReg(); in matchCombineLoadWithAndMask()
903 getIConstantVRegValWithLookThrough(MI.getOperand(2).getReg(), MRI); in matchCombineLoadWithAndMask()
912 Register SrcReg = MI.getOperand(1).getReg(); in matchCombineLoadWithAndMask()
998 Register SrcReg = MI.getOperand(1).getReg(); in matchSextTruncSextLoad()
1025 Builder.buildCopy(MI.getOperand(0).getReg(), MI.getOperand(1).getReg()); in applySextTruncSextLoad()
1033 Register DstReg = MI.getOperand(0).getReg(); in matchSextInRegOfLoad()
1040 Register SrcReg = MI.getOperand(1).getReg(); in matchSextInRegOfLoad()
1100 Builder.buildLoadInstr(TargetOpcode::G_SEXTLOAD, MI.getOperand(0).getReg(), in applySextInRegOfLoad()
1146 LLT Ty = MRI.getType(LdSt.getReg(0)); in isIndexedLoadStoreLegal()
1188 MachineInstr *StoredValDef = getDefIgnoringCopies(LdSt.getReg(0), MRI); in findPostIndexCandidate()
1199 if (!PtrAdd || MRI.use_nodbg_empty(PtrAdd->getReg(0))) in findPostIndexCandidate()
1239 Register PtrAddDefReg = BasePtrUseDef->getReg(0); in findPostIndexCandidate()
1255 Addr = PtrAdd->getReg(0); in findPostIndexCandidate()
1324 auto *LoadMI = getOpcodeDef<GLoad>(MI.getOperand(1).getReg(), MRI); in matchCombineExtractedVectorLoad()
1328 Register Vector = MI.getOperand(1).getReg(); in matchCombineExtractedVectorLoad()
1331 assert(MRI.getType(MI.getOperand(0).getReg()) == VecEltTy); in matchCombineExtractedVectorLoad()
1406 Register Result = MI.getOperand(0).getReg(); in matchCombineExtractedVectorLoad()
1407 Register Index = MI.getOperand(2).getReg(); in matchCombineExtractedVectorLoad()
1414 LoadMI->getPointerReg(), MRI.getType(LoadMI->getOperand(0).getReg()), in matchCombineExtractedVectorLoad()
1455 MatchInfo.Offset = NewCst.getReg(0); in applyCombineIndexedLoadStore()
1461 MIB.addUse(MI.getOperand(0).getReg()); in applyCombineIndexedLoadStore()
1463 MIB.addDef(MI.getOperand(0).getReg()); in applyCombineIndexedLoadStore()
1499 Register Src1 = MI.getOperand(1).getReg(); in matchCombineDivRem()
1547 DestDivReg = MI.getOperand(0).getReg(); in applyCombineDivRem()
1548 DestRemReg = OtherMI->getOperand(0).getReg(); in applyCombineDivRem()
1550 DestDivReg = OtherMI->getOperand(0).getReg(); in applyCombineDivRem()
1551 DestRemReg = MI.getOperand(0).getReg(); in applyCombineDivRem()
1610 LLT Ty = MRI.getType(BrCond->getOperand(0).getReg()); in applyOptBrCondByInvertingCond()
1626 BrCond->getOperand(0).setReg(Xor.getReg(0)); in applyOptBrCondByInvertingCond()
1665 LLT DstTy = MRI.getType(MI.getOperand(0).getReg()); in constantFoldFpUnary()
1712 Register Add2 = MI.getOperand(1).getReg(); in matchPtrAddImmedChain()
1713 Register Imm1 = MI.getOperand(2).getReg(); in matchPtrAddImmedChain()
1722 Register Base = Add2Def->getOperand(1).getReg(); in matchPtrAddImmedChain()
1723 Register Imm2 = Add2Def->getOperand(2).getReg(); in matchPtrAddImmedChain()
1734 for (auto &UseMI : MRI.use_nodbg_instructions(MI.getOperand(0).getReg())) { in matchPtrAddImmedChain()
1736 AccessTy = getTypeForLLT(MRI.getType(LdSt->getReg(0)), in matchPtrAddImmedChain()
1767 LLT OffsetTy = MRI.getType(MI.getOperand(2).getReg()); in applyPtrAddImmedChain()
1769 setRegBank(NewOffset.getReg(0), MatchInfo.Bank); in applyPtrAddImmedChain()
1772 MI.getOperand(2).setReg(NewOffset.getReg(0)); in applyPtrAddImmedChain()
1791 Register Shl2 = MI.getOperand(1).getReg(); in matchShiftImmedChain()
1792 Register Imm1 = MI.getOperand(2).getReg(); in matchShiftImmedChain()
1801 Register Base = Shl2Def->getOperand(1).getReg(); in matchShiftImmedChain()
1802 Register Imm2 = Shl2Def->getOperand(2).getReg(); in matchShiftImmedChain()
1829 LLT Ty = MRI.getType(MI.getOperand(1).getReg()); in applyShiftImmedChain()
1845 LLT ImmTy = MRI.getType(MI.getOperand(2).getReg()); in applyShiftImmedChain()
1846 Register NewImm = Builder.buildConstant(ImmTy, Imm).getReg(0); in applyShiftImmedChain()
1874 Register LogicDest = MI.getOperand(1).getReg(); in matchShiftOfShiftedLogic()
1885 const Register C1 = MI.getOperand(2).getReg(); in matchShiftOfShiftedLogic()
1895 !MRI.hasOneNonDBGUse(MI->getOperand(0).getReg())) in matchShiftOfShiftedLogic()
1900 getIConstantVRegValWithLookThrough(MI->getOperand(2).getReg(), MRI); in matchShiftOfShiftedLogic()
1909 Register LogicMIReg1 = LogicMI->getOperand(1).getReg(); in matchShiftOfShiftedLogic()
1911 Register LogicMIReg2 = LogicMI->getOperand(2).getReg(); in matchShiftOfShiftedLogic()
1942 LLT ShlType = MRI.getType(MI.getOperand(2).getReg()); in applyShiftOfShiftedLogic()
1943 LLT DestType = MRI.getType(MI.getOperand(0).getReg()); in applyShiftOfShiftedLogic()
1945 Register Const = Builder.buildConstant(ShlType, MatchInfo.ValSum).getReg(0); in applyShiftOfShiftedLogic()
1947 Register Shift1Base = MatchInfo.Shift2->getOperand(1).getReg(); in applyShiftOfShiftedLogic()
1949 Builder.buildInstr(Opcode, {DestType}, {Shift1Base, Const}).getReg(0); in applyShiftOfShiftedLogic()
1958 Register Shift2Const = MI.getOperand(2).getReg(); in applyShiftOfShiftedLogic()
1962 .getReg(0); in applyShiftOfShiftedLogic()
1964 Register Dest = MI.getOperand(0).getReg(); in applyShiftOfShiftedLogic()
1978 Register DstReg = Shl.getReg(0); in matchCommuteShift()
1979 Register SrcReg = Shl.getReg(1); in matchCommuteShift()
1980 Register ShiftReg = Shl.getReg(2); in matchCommuteShift()
2012 getIConstantVRegValWithLookThrough(MI.getOperand(2).getReg(), MRI); in matchCombineMulToShl()
2024 LLT ShiftTy = MRI.getType(MI.getOperand(0).getReg()); in applyCombineMulToShl()
2028 MI.getOperand(2).setReg(ShiftCst.getReg(0)); in applyCombineMulToShl()
2039 Register LHS = MI.getOperand(1).getReg(); in matchCombineShlOfExtend()
2047 Register RHS = MI.getOperand(2).getReg(); in matchCombineShlOfExtend()
2098 if (MergedValues[I] != Unmerge->getReg(I)) in matchCombineMergeUnmerge()
2126 LLT Dst0Ty = MRI.getType(Unmerge.getReg(0)); in matchCombineUnmergeMergeToPlainValues()
2146 LLT DstTy = MRI.getType(MI.getOperand(0).getReg()); in applyCombineUnmergeMergeToPlainValues()
2149 Register DstReg = MI.getOperand(Idx).getReg(); in applyCombineUnmergeMergeToPlainValues()
2156 SrcReg = Builder.buildCopy(MRI.getType(SrcReg), SrcReg).getReg(0); in applyCombineUnmergeMergeToPlainValues()
2171 Register SrcReg = MI.getOperand(SrcIdx).getReg(); in matchCombineUnmergeConstant()
2182 LLT Dst0Ty = MRI.getType(MI.getOperand(0).getReg()); in matchCombineUnmergeConstant()
2201 Register DstReg = MI.getOperand(Idx).getReg(); in applyCombineUnmergeConstant()
2211 Register SrcReg = MI.getOperand(SrcIdx).getReg(); in matchCombineUnmergeUndef()
2215 Register DstReg = MI.getOperand(Idx).getReg(); in matchCombineUnmergeUndef()
2225 if (MRI.getType(MI.getOperand(0).getReg()).isVector() || in matchCombineUnmergeWithDeadLanesToTrunc()
2226 MRI.getType(MI.getOperand(MI.getNumDefs()).getReg()).isVector()) in matchCombineUnmergeWithDeadLanesToTrunc()
2230 if (!MRI.use_nodbg_empty(MI.getOperand(Idx).getReg())) in matchCombineUnmergeWithDeadLanesToTrunc()
2237 Register SrcReg = MI.getOperand(MI.getNumDefs()).getReg(); in applyCombineUnmergeWithDeadLanesToTrunc()
2238 Register Dst0Reg = MI.getOperand(0).getReg(); in applyCombineUnmergeWithDeadLanesToTrunc()
2246 Register Dst0Reg = MI.getOperand(0).getReg(); in matchCombineUnmergeZExtToZExt()
2253 Register SrcReg = MI.getOperand(MI.getNumDefs()).getReg(); in matchCombineUnmergeZExtToZExt()
2273 Register Dst0Reg = MI.getOperand(0).getReg(); in applyCombineUnmergeZExtToZExt()
2276 MRI.getVRegDef(MI.getOperand(MI.getNumDefs()).getReg()); in applyCombineUnmergeZExtToZExt()
2280 Register ZExtSrcReg = ZExtInstr->getOperand(1).getReg(); in applyCombineUnmergeZExtToZExt()
2295 ZeroReg = Builder.buildConstant(Dst0Ty, 0).getReg(0); in applyCombineUnmergeZExtToZExt()
2296 replaceRegWith(MRI, MI.getOperand(Idx).getReg(), ZeroReg); in applyCombineUnmergeZExtToZExt()
2308 LLT Ty = MRI.getType(MI.getOperand(0).getReg()); in matchCombineShiftToUnmerge()
2318 getIConstantVRegValWithLookThrough(MI.getOperand(2).getReg(), MRI); in matchCombineShiftToUnmerge()
2328 Register DstReg = MI.getOperand(0).getReg(); in applyCombineShiftToUnmerge()
2329 Register SrcReg = MI.getOperand(1).getReg(); in applyCombineShiftToUnmerge()
2341 Register Narrowed = Unmerge.getReg(1); in applyCombineShiftToUnmerge()
2350 Builder.buildConstant(HalfTy, NarrowShiftAmt)).getReg(0); in applyCombineShiftToUnmerge()
2356 Register Narrowed = Unmerge.getReg(0); in applyCombineShiftToUnmerge()
2363 Builder.buildConstant(HalfTy, NarrowShiftAmt)).getReg(0); in applyCombineShiftToUnmerge()
2371 HalfTy, Unmerge.getReg(1), in applyCombineShiftToUnmerge()
2377 Builder.buildMergeLikeInstr(DstReg, {Unmerge.getReg(1), Hi}); in applyCombineShiftToUnmerge()
2386 HalfTy, Unmerge.getReg(1), in applyCombineShiftToUnmerge()
2411 Register DstReg = MI.getOperand(0).getReg(); in matchCombineI2PToP2I()
2413 Register SrcReg = MI.getOperand(1).getReg(); in matchCombineI2PToP2I()
2420 Register DstReg = MI.getOperand(0).getReg(); in applyCombineI2PToP2I()
2427 Register DstReg = MI.getOperand(0).getReg(); in applyCombineP2IToI2P()
2435 Register LHS = MI.getOperand(1).getReg(); in matchCombineAddP2IToPtrAdd()
2436 Register RHS = MI.getOperand(2).getReg(); in matchCombineAddP2IToPtrAdd()
2459 Register Dst = MI.getOperand(0).getReg(); in applyCombineAddP2IToPtrAdd()
2460 Register LHS = MI.getOperand(1).getReg(); in applyCombineAddP2IToPtrAdd()
2461 Register RHS = MI.getOperand(2).getReg(); in applyCombineAddP2IToPtrAdd()
2485 auto DstTy = MRI.getType(PtrAdd.getReg(0)); in matchCombineConstPtrAddToI2P()
2499 Register Dst = PtrAdd.getReg(0); in applyCombineConstPtrAddToI2P()
2507 Register DstReg = MI.getOperand(0).getReg(); in matchCombineAnyExtTrunc()
2508 Register SrcReg = MI.getOperand(1).getReg(); in matchCombineAnyExtTrunc()
2519 Register DstReg = MI.getOperand(0).getReg(); in matchCombineZextTrunc()
2520 Register SrcReg = MI.getOperand(1).getReg(); in matchCombineZextTrunc()
2537 Register SrcReg = MI.getOperand(1).getReg(); in matchCombineExtOfExt()
2549 MatchInfo = std::make_tuple(SrcMI->getOperand(1).getReg(), SrcOpc); in matchCombineExtOfExt()
2579 Register DstReg = MI.getOperand(0).getReg(); in applyCombineExtOfExt()
2588 Register SrcReg = MI.getOperand(1).getReg(); in matchCombineTruncOfExt()
2593 MatchInfo = std::make_pair(SrcMI->getOperand(1).getReg(), SrcOpc); in matchCombineTruncOfExt()
2604 Register DstReg = MI.getOperand(0).getReg(); in applyCombineTruncOfExt()
2639 Register DstReg = MI.getOperand(0).getReg(); in matchCombineTruncOfShift()
2640 Register SrcReg = MI.getOperand(1).getReg(); in matchCombineTruncOfShift()
2659 KnownBits Known = KB->getKnownBits(SrcMI->getOperand(2).getReg()); in matchCombineTruncOfShift()
2680 KnownBits Known = KB->getKnownBits(SrcMI->getOperand(2).getReg()); in matchCombineTruncOfShift()
2702 Register Dst = MI.getOperand(0).getReg(); in applyCombineTruncOfShift()
2705 Register ShiftAmt = ShiftMI->getOperand(2).getReg(); in applyCombineTruncOfShift()
2706 Register ShiftSrc = ShiftMI->getOperand(1).getReg(); in applyCombineTruncOfShift()
2707 ShiftSrc = Builder.buildTrunc(NewShiftTy, ShiftSrc).getReg(0); in applyCombineTruncOfShift()
2712 .getReg(0); in applyCombineTruncOfShift()
2725 getOpcodeDef(TargetOpcode::G_IMPLICIT_DEF, MO.getReg(), MRI); in matchAnyExplicitUseIsUndef()
2732 getOpcodeDef(TargetOpcode::G_IMPLICIT_DEF, MO.getReg(), MRI); in matchAllExplicitUsesAreUndef()
2744 return getOpcodeDef(TargetOpcode::G_IMPLICIT_DEF, MI.getOperand(0).getReg(), in matchUndefStore()
2750 return getOpcodeDef(TargetOpcode::G_IMPLICIT_DEF, MI.getOperand(1).getReg(), in matchUndefSelectCmp()
2758 LLT VecTy = MRI.getType(MI.getOperand(1).getReg()); in matchInsertExtractVecEltOutOfBounds()
2761 auto Idx = getIConstantVRegVal(MI.getOperand(IdxIdx).getReg(), MRI); in matchInsertExtractVecEltOutOfBounds()
2783 auto InstAndDef1 = getDefSrcRegIgnoringCopies(MOP1.getReg(), MRI); in matchEqualDefs()
2786 auto InstAndDef2 = getDefSrcRegIgnoringCopies(MOP2.getReg(), MRI); in matchEqualDefs()
2799 return MOP1.getReg() == MOP2.getReg(); in matchEqualDefs()
2845 return MO.isReg() && MO.getReg().isPhysical(); in matchEqualDefs()
2879 auto *MI = MRI.getVRegDef(MOP.getReg()); in matchConstantOp()
2889 if (!mi_match(MOP.getReg(), MRI, m_GFCstOrSplat(MaybeCst))) in matchConstantFPOp()
2898 Register OldReg = MI.getOperand(0).getReg(); in replaceSingleDefInstWithOperand()
2899 Register Replacement = MI.getOperand(OpIdx).getReg(); in replaceSingleDefInstWithOperand()
2908 Register OldReg = MI.getOperand(0).getReg(); in replaceSingleDefInstWithReg()
2916 Register ConstReg = MI.getOperand(ConstIdx).getReg(); in matchConstantLargerBitWidth()
2917 LLT DstTy = MRI.getType(MI.getOperand(0).getReg()); in matchConstantLargerBitWidth()
2933 Register ConstReg = MI.getOperand(3).getReg(); in applyFunnelShiftConstantModulo()
2935 LLT DstTy = MRI.getType(MI.getOperand(0).getReg()); in applyFunnelShiftConstantModulo()
2947 {MI.getOperand(1), MI.getOperand(2), NewConstInstr.getReg(0)}); in applyFunnelShiftConstantModulo()
2956 canReplaceReg(MI.getOperand(0).getReg(), MI.getOperand(2).getReg(), in matchSelectSameVal()
2962 canReplaceReg(MI.getOperand(0).getReg(), MI.getOperand(1).getReg(), in matchBinOpSameVal()
2968 canReplaceReg(MI.getOperand(0).getReg(), MI.getOperand(OpIdx).getReg(), in matchOperandIsZero()
2975 getOpcodeDef(TargetOpcode::G_IMPLICIT_DEF, MO.getReg(), MRI); in matchOperandIsUndef()
2981 return isKnownToBeAPowerOfTwo(MO.getReg(), MRI, KB); in matchOperandIsKnownToBeAPowerOfTwo()
3017 Register LHS = MI.getOperand(1).getReg(); in matchSimplifyAddToSub()
3018 Register RHS = MI.getOperand(2).getReg(); in matchSimplifyAddToSub()
3039 Register DstReg = MI.getOperand(0).getReg(); in matchCombineInsertVecElts()
3054 CurrInst->getOperand(0).getReg(), MRI, in matchCombineInsertVecElts()
3068 MatchInfo[I - 1] = TmpInst->getOperand(I).getReg(); in matchCombineInsertVecElts()
3084 LLT DstTy = MRI.getType(MI.getOperand(0).getReg()); in applyCombineInsertVecElts()
3085 UndefReg = Builder.buildUndef(DstTy.getScalarType()).getReg(0); in applyCombineInsertVecElts()
3092 Builder.buildBuildVector(MI.getOperand(0).getReg(), MatchInfo); in applyCombineInsertVecElts()
3100 Builder.buildSub(MI.getOperand(0).getReg(), SubLHS, SubRHS); in applySimplifyAddToSub()
3117 Register Dst = MI.getOperand(0).getReg(); in matchHoistLogicOpWithSameOpcodeHands()
3118 Register LHSReg = MI.getOperand(1).getReg(); in matchHoistLogicOpWithSameOpcodeHands()
3119 Register RHSReg = MI.getOperand(2).getReg(); in matchHoistLogicOpWithSameOpcodeHands()
3139 Register X = LeftHandInst->getOperand(1).getReg(); in matchHoistLogicOpWithSameOpcodeHands()
3140 Register Y = RightHandInst->getOperand(1).getReg(); in matchHoistLogicOpWithSameOpcodeHands()
3181 ExtraHandOpSrcReg = ZOp.getReg(); in matchHoistLogicOpWithSameOpcodeHands()
3231 if (!mi_match(MI.getOperand(0).getReg(), MRI, in matchAshrShlToSextInreg()
3251 Builder.buildSExtInReg(MI.getOperand(0).getReg(), Src, Size - ShiftAmt); in applyAshShlToSextInreg()
3260 Register Dst = MI.getOperand(0).getReg(); in matchOverlappingAnd()
3277 replaceRegWith(MRI, Dst, Zero->getOperand(0).getReg()); in matchOverlappingAnd()
3303 Register AndDst = MI.getOperand(0).getReg(); in matchRedundantAnd()
3304 Register LHS = MI.getOperand(1).getReg(); in matchRedundantAnd()
3305 Register RHS = MI.getOperand(2).getReg(); in matchRedundantAnd()
3350 Register OrDst = MI.getOperand(0).getReg(); in matchRedundantOr()
3351 Register LHS = MI.getOperand(1).getReg(); in matchRedundantOr()
3352 Register RHS = MI.getOperand(2).getReg(); in matchRedundantOr()
3381 Register Src = MI.getOperand(1).getReg(); in matchRedundantSExtInReg()
3397 LLT Ty = MRI.getType(MI.getOperand(0).getReg()); in matchNotCmp()
3402 if (!mi_match(MI.getOperand(0).getReg(), MRI, in matchNotCmp()
3445 RegsToNegate.push_back(Def->getOperand(1).getReg()); in matchNotCmp()
3446 RegsToNegate.push_back(Def->getOperand(2).getReg()); in matchNotCmp()
3499 replaceRegWith(MRI, MI.getOperand(0).getReg(), MI.getOperand(1).getReg()); in applyNotCmp()
3509 Register AndReg = MI.getOperand(1).getReg(); in matchXorOfAndWithSameReg()
3510 Register SharedReg = MI.getOperand(2).getReg(); in matchXorOfAndWithSameReg()
3542 MI.getOperand(1).setReg(Not->getOperand(0).getReg()); in applyXorOfAndWithSameReg()
3549 Register DstReg = PtrAdd.getReg(0); in matchPtrAddZero()
3568 Builder.buildIntToPtr(PtrAdd.getReg(0), PtrAdd.getOffsetReg()); in applyPtrAddZero()
3574 Register DstReg = MI.getOperand(0).getReg(); in applySimplifyURemByPow2()
3575 Register Src0 = MI.getOperand(1).getReg(); in applySimplifyURemByPow2()
3576 Register Pow2Src1 = MI.getOperand(2).getReg(); in applySimplifyURemByPow2()
3588 Register LHS = MI.getOperand(1).getReg(); in matchFoldBinOpIntoSelect()
3589 Register RHS = MI.getOperand(2).getReg(); in matchFoldBinOpIntoSelect()
3607 MachineInstr *SelectLHS = MRI.getVRegDef(Select->getOperand(2).getReg()); in matchFoldBinOpIntoSelect()
3608 MachineInstr *SelectRHS = MRI.getVRegDef(Select->getOperand(3).getReg()); in matchFoldBinOpIntoSelect()
3642 Register Dst = MI.getOperand(0).getReg(); in applyFoldBinOpIntoSelect()
3643 Register LHS = MI.getOperand(1).getReg(); in applyFoldBinOpIntoSelect()
3644 Register RHS = MI.getOperand(2).getReg(); in applyFoldBinOpIntoSelect()
3645 MachineInstr *Select = MRI.getVRegDef(MI.getOperand(SelectOperand).getReg()); in applyFoldBinOpIntoSelect()
3647 Register SelectCond = Select->getOperand(1).getReg(); in applyFoldBinOpIntoSelect()
3648 Register SelectTrue = Select->getOperand(2).getReg(); in applyFoldBinOpIntoSelect()
3649 Register SelectFalse = Select->getOperand(3).getReg(); in applyFoldBinOpIntoSelect()
3663 FoldTrue = Builder.buildInstr(BinOpcode, {Ty}, {SelectTrue, RHS}).getReg(0); in applyFoldBinOpIntoSelect()
3665 Builder.buildInstr(BinOpcode, {Ty}, {SelectFalse, RHS}).getReg(0); in applyFoldBinOpIntoSelect()
3667 FoldTrue = Builder.buildInstr(BinOpcode, {Ty}, {LHS, SelectTrue}).getReg(0); in applyFoldBinOpIntoSelect()
3669 Builder.buildInstr(BinOpcode, {Ty}, {LHS, SelectFalse}).getReg(0); in applyFoldBinOpIntoSelect()
3708 MRI.getType(Root->getOperand(0).getReg()).getSizeInBytes() - 1; in findCandidatesForLoadOrCombine()
3713 Register OrLHS = Curr->getOperand(1).getReg(); in findCandidatesForLoadOrCombine()
3714 Register OrRHS = Curr->getOperand(2).getReg(); in findCandidatesForLoadOrCombine()
3837 if (!mi_match(Load->getOperand(1).getReg(), MRI, in findLoadOffsetsForLoadOrCombine()
3839 LoadPtr = Load->getOperand(1).getReg(); in findLoadOffsetsForLoadOrCombine()
3922 Register Dst = MI.getOperand(0).getReg(); in matchLoadOrCombine()
4024 Register DstReg = PHI.getReg(0); in matchExtendThroughPhis()
4078 Register DstReg = ExtMI->getOperand(0).getReg(); in applyExtendThroughPhis()
4113 auto *NewSrc = OldToNewSrcMap[MRI.getVRegDef(MO.getReg())]; in applyExtendThroughPhis()
4114 NewPhi.addUse(NewSrc->getOperand(0).getReg()); in applyExtendThroughPhis()
4125 Register SrcVec = MI.getOperand(1).getReg(); in matchExtractVecEltBuildVec()
4128 auto Cst = getIConstantVRegValWithLookThrough(MI.getOperand(2).getReg(), MRI); in matchExtractVecEltBuildVec()
4138 SrcVecMI = MRI.getVRegDef(SrcVecMI->getOperand(1).getReg()); in matchExtractVecEltBuildVec()
4150 Reg = SrcVecMI->getOperand(VecIdx + 1).getReg(); in matchExtractVecEltBuildVec()
4159 Register DstReg = MI.getOperand(0).getReg(); in applyExtractVecEltBuildVec()
4191 Register DstReg = MI.getOperand(0).getReg(); in matchExtractAllEltsFromBuildVector()
4199 auto Cst = getIConstantVRegVal(II.getOperand(2).getReg(), MRI); in matchExtractAllEltsFromBuildVector()
4207 std::make_pair(MI.getOperand(Idx + 1).getReg(), &II)); in matchExtractAllEltsFromBuildVector()
4219 replaceRegWith(MRI, ExtMI->getOperand(0).getReg(), Pair.first); in applyExtractAllEltsFromBuildVector()
4240 Register Dst = MI.getOperand(0).getReg(); in matchOrShiftToFunnelShift()
4293 Register X = MI.getOperand(1).getReg(); in matchFunnelShiftToRotate()
4294 Register Y = MI.getOperand(2).getReg(); in matchFunnelShiftToRotate()
4318 MRI.getType(MI.getOperand(0).getReg()).getScalarSizeInBits(); in matchRotateOutOfRange()
4319 Register AmtReg = MI.getOperand(2).getReg(); in matchRotateOutOfRange()
4333 MRI.getType(MI.getOperand(0).getReg()).getScalarSizeInBits(); in applyRotateOutOfRange()
4334 Register Amt = MI.getOperand(2).getReg(); in applyRotateOutOfRange()
4337 Amt = Builder.buildURem(AmtTy, MI.getOperand(2).getReg(), Bits).getReg(0); in applyRotateOutOfRange()
4356 auto KnownRHS = KB->getKnownBits(MI.getOperand(3).getReg()); in matchICmpToTrueFalseKnownBits()
4371 auto KnownLHS = KB->getKnownBits(MI.getOperand(2).getReg()); in matchICmpToTrueFalseKnownBits()
4414 MRI.getType(MI.getOperand(0).getReg()).isVector(), in matchICmpToTrueFalseKnownBits()
4437 Register Dst = MI.getOperand(0).getReg(); in matchICmpToLHSKnownBits()
4443 if (!mi_match(MI.getOperand(3).getReg(), MRI, m_SpecificICst(OneOrZero))) in matchICmpToLHSKnownBits()
4445 Register LHS = MI.getOperand(2).getReg(); in matchICmpToLHSKnownBits()
4469 LLT Ty = MRI.getType(MI.getOperand(0).getReg()); in matchAndOrDisjointMask()
4489 if (MI.getOperand(1).getReg() == AndMaskReg) in matchAndOrDisjointMask()
4501 Register Dst = MI.getOperand(0).getReg(); in matchBitfieldExtractFromSExtInReg()
4502 Register Src = MI.getOperand(1).getReg(); in matchBitfieldExtractFromSExtInReg()
4530 Register Dst = And->getReg(0); in matchBitfieldExtractFromAnd()
4541 if (!mi_match(And->getReg(0), MRI, in matchBitfieldExtractFromAnd()
4569 const Register Dst = MI.getOperand(0).getReg(); in matchBitfieldExtractFromShr()
4618 const Register Dst = MI.getOperand(0).getReg(); in matchBitfieldExtractFromShrAnd()
4695 for (auto &UseMI : MRI.use_nodbg_instructions(PtrAdd.getReg(0))) { in reassociationCanBreakAddressingModePattern()
4702 Register DefReg = ConvUseMI->getOperand(0).getReg(); in reassociationCanBreakAddressingModePattern()
4739 Register Src1Reg = MI.getOperand(1).getReg(); in matchReassocConstantInnerRHS()
4742 auto C2 = getIConstantVRegVal(RHS->getOperand(2).getReg(), MRI); in matchReassocConstantInnerRHS()
4747 LLT PtrTy = MRI.getType(MI.getOperand(0).getReg()); in matchReassocConstantInnerRHS()
4750 Builder.buildPtrAdd(PtrTy, Src1Reg, RHS->getOperand(1).getReg()); in matchReassocConstantInnerRHS()
4752 MI.getOperand(1).setReg(NewBase.getReg(0)); in matchReassocConstantInnerRHS()
4753 MI.getOperand(2).setReg(RHS->getOperand(2).getReg()); in matchReassocConstantInnerRHS()
4781 MI.getOperand(2).setReg(NewCst.getReg(0)); in matchReassocConstantInnerLHS()
4799 Register Src2Reg = MI.getOperand(2).getReg(); in matchReassocFoldConstantsInSubTree()
4813 MI.getOperand(2).setReg(NewCst.getReg(0)); in matchReassocFoldConstantsInSubTree()
4861 Register OpLHSLHS = OpLHSDef->getOperand(1).getReg(); in tryReassocBinOp()
4862 Register OpLHSRHS = OpLHSDef->getOperand(2).getReg(); in tryReassocBinOp()
4897 Register DstReg = MI.getOperand(0).getReg(); in matchReassocCommBinOp()
4898 Register LHSReg = MI.getOperand(1).getReg(); in matchReassocCommBinOp()
4899 Register RHSReg = MI.getOperand(2).getReg(); in matchReassocCommBinOp()
4909 LLT DstTy = MRI.getType(MI.getOperand(0).getReg()); in matchConstantFoldCastOp()
4910 Register SrcOp = MI.getOperand(1).getReg(); in matchConstantFoldCastOp()
4921 Register Op1 = MI.getOperand(1).getReg(); in matchConstantFoldBinOp()
4922 Register Op2 = MI.getOperand(2).getReg(); in matchConstantFoldBinOp()
4931 Register Op1 = MI.getOperand(1).getReg(); in matchConstantFoldFPBinOp()
4932 Register Op2 = MI.getOperand(2).getReg(); in matchConstantFoldFPBinOp()
4985 Register Dst = MI.getOperand(0).getReg(); in matchNarrowBinopFeedingAnd()
4986 Register AndLHS = MI.getOperand(1).getReg(); in matchNarrowBinopFeedingAnd()
4987 Register AndRHS = MI.getOperand(2).getReg(); in matchNarrowBinopFeedingAnd()
5042 Register BinOpLHS = LHSInst->getOperand(1).getReg(); in matchNarrowBinopFeedingAnd()
5043 Register BinOpRHS = LHSInst->getOperand(2).getReg(); in matchNarrowBinopFeedingAnd()
5051 MI.getOperand(1).setReg(Ext.getReg(0)); in matchNarrowBinopFeedingAnd()
5061 if (!mi_match(MI.getOperand(3).getReg(), MRI, m_SpecificICstOrSplat(2))) in matchMulOBy2()
5069 MI.getOperand(3).setReg(MI.getOperand(2).getReg()); in matchMulOBy2()
5079 if (!mi_match(MI.getOperand(3).getReg(), MRI, m_SpecificICstOrSplat(0))) in matchMulOBy0()
5081 Register Dst = MI.getOperand(0).getReg(); in matchMulOBy0()
5082 Register Carry = MI.getOperand(1).getReg(); in matchMulOBy0()
5100 if (!mi_match(MI.getOperand(4).getReg(), MRI, m_SpecificICstOrSplat(0))) in matchAddEToAddO()
5129 Register Dst = MI.getOperand(0).getReg(); in matchSubAddSameReg()
5173 Register Dst = UDiv.getReg(0); in buildUDivUsingMul()
5174 Register LHS = UDiv.getReg(1); in buildUDivUsingMul()
5175 Register RHS = UDiv.getReg(2); in buildUDivUsingMul()
5207 Shifts.push_back(MIB.buildConstant(ScalarShiftAmtTy, Shift).getReg(0)); in buildUDivUsingMul()
5208 Factors.push_back(MIB.buildConstant(ScalarTy, Factor).getReg(0)); in buildUDivUsingMul()
5219 Shift = MIB.buildBuildVector(ShiftAmtTy, Shifts).getReg(0); in buildUDivUsingMul()
5220 Factor = MIB.buildBuildVector(Ty, Factors).getReg(0); in buildUDivUsingMul()
5229 Res = MIB.buildLShr(Ty, Res, Shift, MachineInstr::IsExact).getReg(0); in buildUDivUsingMul()
5271 MIB.buildConstant(ScalarShiftAmtTy, PreShift).getReg(0)); in buildUDivUsingMul()
5272 MagicFactors.push_back(MIB.buildConstant(ScalarTy, Magic).getReg(0)); in buildUDivUsingMul()
5277 .getReg(0)); in buildUDivUsingMul()
5279 MIB.buildConstant(ScalarShiftAmtTy, PostShift).getReg(0)); in buildUDivUsingMul()
5292 PreShift = MIB.buildBuildVector(ShiftAmtTy, PreShifts).getReg(0); in buildUDivUsingMul()
5293 MagicFactor = MIB.buildBuildVector(Ty, MagicFactors).getReg(0); in buildUDivUsingMul()
5294 NPQFactor = MIB.buildBuildVector(Ty, NPQFactors).getReg(0); in buildUDivUsingMul()
5295 PostShift = MIB.buildBuildVector(ShiftAmtTy, PostShifts).getReg(0); in buildUDivUsingMul()
5305 Q = MIB.buildLShr(Ty, Q, PreShift).getReg(0); in buildUDivUsingMul()
5308 Q = MIB.buildUMulH(Ty, Q, MagicFactor).getReg(0); in buildUDivUsingMul()
5311 Register NPQ = MIB.buildSub(Ty, LHS, Q).getReg(0); in buildUDivUsingMul()
5316 NPQ = MIB.buildUMulH(Ty, NPQ, NPQFactor).getReg(0); in buildUDivUsingMul()
5318 NPQ = MIB.buildLShr(Ty, NPQ, MIB.buildConstant(ShiftAmtTy, 1)).getReg(0); in buildUDivUsingMul()
5320 Q = MIB.buildAdd(Ty, NPQ, Q).getReg(0); in buildUDivUsingMul()
5323 Q = MIB.buildLShr(Ty, Q, PostShift).getReg(0); in buildUDivUsingMul()
5333 Register Dst = MI.getOperand(0).getReg(); in matchUDivByConst()
5334 Register RHS = MI.getOperand(2).getReg(); in matchUDivByConst()
5378 replaceSingleDefInstWithReg(MI, NewMI->getOperand(0).getReg()); in applyUDivByConst()
5383 Register Dst = MI.getOperand(0).getReg(); in matchSDivByConst()
5384 Register RHS = MI.getOperand(2).getReg(); in matchSDivByConst()
5412 replaceSingleDefInstWithReg(MI, NewMI->getOperand(0).getReg()); in applySDivByConst()
5418 Register Dst = SDiv.getReg(0); in buildSDivUsingMul()
5419 Register LHS = SDiv.getReg(1); in buildSDivUsingMul()
5420 Register RHS = SDiv.getReg(2); in buildSDivUsingMul()
5452 Shifts.push_back(MIB.buildConstant(ScalarShiftAmtTy, Shift).getReg(0)); in buildSDivUsingMul()
5453 Factors.push_back(MIB.buildConstant(ScalarTy, Factor).getReg(0)); in buildSDivUsingMul()
5464 Shift = MIB.buildBuildVector(ShiftAmtTy, Shifts).getReg(0); in buildSDivUsingMul()
5465 Factor = MIB.buildBuildVector(Ty, Factors).getReg(0); in buildSDivUsingMul()
5474 Res = MIB.buildAShr(Ty, Res, Shift, MachineInstr::IsExact).getReg(0); in buildSDivUsingMul()
5484 Register RHS = Div.getReg(2); in matchDivByPow2()
5496 Register Dst = SDiv.getReg(0); in applySDivByPow2()
5497 Register LHS = SDiv.getReg(1); in applySDivByPow2()
5498 Register RHS = SDiv.getReg(2); in applySDivByPow2()
5548 Builder.buildSelect(MI.getOperand(0).getReg(), IsNeg, Neg, AShr); in applySDivByPow2()
5555 Register Dst = UDiv.getReg(0); in applyUDivByPow2()
5556 Register LHS = UDiv.getReg(1); in applyUDivByPow2()
5557 Register RHS = UDiv.getReg(2); in applyUDivByPow2()
5562 Builder.buildLShr(MI.getOperand(0).getReg(), LHS, C1); in applyUDivByPow2()
5568 Register RHS = MI.getOperand(2).getReg(); in matchUMulHToLShr()
5569 Register Dst = MI.getOperand(0).getReg(); in matchUMulHToLShr()
5583 Register LHS = MI.getOperand(1).getReg(); in applyUMulHToLShr()
5584 Register RHS = MI.getOperand(2).getReg(); in applyUMulHToLShr()
5585 Register Dst = MI.getOperand(0).getReg(); in applyUMulHToLShr()
5605 Register Dst = MI.getOperand(0).getReg(); in matchRedundantNegOperands()
5606 Register X = MI.getOperand(1).getReg(); in matchRedundantNegOperands()
5607 Register Y = MI.getOperand(2).getReg(); in matchRedundantNegOperands()
5647 Register LHS = MI.getOperand(1).getReg(); in matchFsubToFneg()
5648 MatchInfo = MI.getOperand(2).getReg(); in matchFsubToFneg()
5649 LLT Ty = MRI.getType(MI.getOperand(0).getReg()); in matchFsubToFneg()
5669 Register Dst = MI.getOperand(0).getReg(); in applyFsubToFneg()
5671 Dst, Builder.buildFCanonicalize(MRI.getType(Dst), MatchInfo).getReg(0)); in applyFsubToFneg()
5685 return std::distance(MRI.use_instr_nodbg_begin(MI0.getOperand(0).getReg()), in hasMoreUses()
5687 std::distance(MRI.use_instr_nodbg_begin(MI1.getOperand(0).getReg()), in hasMoreUses()
5699 LLT DstType = MRI.getType(MI.getOperand(0).getReg()); in canCombineFMadOrFMA()
5732 Register Op1 = MI.getOperand(1).getReg(); in matchCombineFAddFMulToFMadOrFMA()
5733 Register Op2 = MI.getOperand(2).getReg(); in matchCombineFAddFMulToFMadOrFMA()
5751 B.buildInstr(PreferredFusedOpcode, {MI.getOperand(0).getReg()}, in matchCombineFAddFMulToFMadOrFMA()
5752 {LHS.MI->getOperand(1).getReg(), in matchCombineFAddFMulToFMadOrFMA()
5753 LHS.MI->getOperand(2).getReg(), RHS.Reg}); in matchCombineFAddFMulToFMadOrFMA()
5762 B.buildInstr(PreferredFusedOpcode, {MI.getOperand(0).getReg()}, in matchCombineFAddFMulToFMadOrFMA()
5763 {RHS.MI->getOperand(1).getReg(), in matchCombineFAddFMulToFMadOrFMA()
5764 RHS.MI->getOperand(2).getReg(), LHS.Reg}); in matchCombineFAddFMulToFMadOrFMA()
5781 Register Op1 = MI.getOperand(1).getReg(); in matchCombineFAddFpExtFMulToFMadOrFMA()
5782 Register Op2 = MI.getOperand(2).getReg(); in matchCombineFAddFpExtFMulToFMadOrFMA()
5785 LLT DstType = MRI.getType(MI.getOperand(0).getReg()); in matchCombineFAddFpExtFMulToFMadOrFMA()
5803 MRI.getType(FpExtSrc->getOperand(1).getReg()))) { in matchCombineFAddFpExtFMulToFMadOrFMA()
5805 auto FpExtX = B.buildFPExt(DstType, FpExtSrc->getOperand(1).getReg()); in matchCombineFAddFpExtFMulToFMadOrFMA()
5806 auto FpExtY = B.buildFPExt(DstType, FpExtSrc->getOperand(2).getReg()); in matchCombineFAddFpExtFMulToFMadOrFMA()
5807 B.buildInstr(PreferredFusedOpcode, {MI.getOperand(0).getReg()}, in matchCombineFAddFpExtFMulToFMadOrFMA()
5808 {FpExtX.getReg(0), FpExtY.getReg(0), RHS.Reg}); in matchCombineFAddFpExtFMulToFMadOrFMA()
5818 MRI.getType(FpExtSrc->getOperand(1).getReg()))) { in matchCombineFAddFpExtFMulToFMadOrFMA()
5820 auto FpExtX = B.buildFPExt(DstType, FpExtSrc->getOperand(1).getReg()); in matchCombineFAddFpExtFMulToFMadOrFMA()
5821 auto FpExtY = B.buildFPExt(DstType, FpExtSrc->getOperand(2).getReg()); in matchCombineFAddFpExtFMulToFMadOrFMA()
5822 B.buildInstr(PreferredFusedOpcode, {MI.getOperand(0).getReg()}, in matchCombineFAddFpExtFMulToFMadOrFMA()
5823 {FpExtX.getReg(0), FpExtY.getReg(0), LHS.Reg}); in matchCombineFAddFpExtFMulToFMadOrFMA()
5839 Register Op1 = MI.getOperand(1).getReg(); in matchCombineFAddFMAFMulToFMadOrFMA()
5840 Register Op2 = MI.getOperand(2).getReg(); in matchCombineFAddFMAFMulToFMadOrFMA()
5843 LLT DstTy = MRI.getType(MI.getOperand(0).getReg()); in matchCombineFAddFMAFMulToFMadOrFMA()
5860 (MRI.getVRegDef(LHS.MI->getOperand(3).getReg())->getOpcode() == in matchCombineFAddFMAFMulToFMadOrFMA()
5862 MRI.hasOneNonDBGUse(LHS.MI->getOperand(0).getReg()) && in matchCombineFAddFMAFMulToFMadOrFMA()
5863 MRI.hasOneNonDBGUse(LHS.MI->getOperand(3).getReg())) { in matchCombineFAddFMAFMulToFMadOrFMA()
5869 (MRI.getVRegDef(RHS.MI->getOperand(3).getReg())->getOpcode() == in matchCombineFAddFMAFMulToFMadOrFMA()
5871 MRI.hasOneNonDBGUse(RHS.MI->getOperand(0).getReg()) && in matchCombineFAddFMAFMulToFMadOrFMA()
5872 MRI.hasOneNonDBGUse(RHS.MI->getOperand(3).getReg())) { in matchCombineFAddFMAFMulToFMadOrFMA()
5878 MachineInstr *FMulMI = MRI.getVRegDef(FMA->getOperand(3).getReg()); in matchCombineFAddFMAFMulToFMadOrFMA()
5879 Register X = FMA->getOperand(1).getReg(); in matchCombineFAddFMAFMulToFMadOrFMA()
5880 Register Y = FMA->getOperand(2).getReg(); in matchCombineFAddFMAFMulToFMadOrFMA()
5881 Register U = FMulMI->getOperand(1).getReg(); in matchCombineFAddFMAFMulToFMadOrFMA()
5882 Register V = FMulMI->getOperand(2).getReg(); in matchCombineFAddFMAFMulToFMadOrFMA()
5887 B.buildInstr(PreferredFusedOpcode, {MI.getOperand(0).getReg()}, in matchCombineFAddFMAFMulToFMadOrFMA()
5908 LLT DstType = MRI.getType(MI.getOperand(0).getReg()); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5909 Register Op1 = MI.getOperand(1).getReg(); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5910 Register Op2 = MI.getOperand(2).getReg(); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5928 Register FpExtU = B.buildFPExt(DstType, U).getReg(0); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5929 Register FpExtV = B.buildFPExt(DstType, V).getReg(0); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5932 .getReg(0); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5933 B.buildInstr(PreferredFusedOpcode, {MI.getOperand(0).getReg()}, in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5941 mi_match(LHS.MI->getOperand(3).getReg(), MRI, in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5945 MRI.getType(FMulMI->getOperand(0).getReg()))) { in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5947 buildMatchInfo(FMulMI->getOperand(1).getReg(), in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5948 FMulMI->getOperand(2).getReg(), RHS.Reg, in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5949 LHS.MI->getOperand(1).getReg(), in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5950 LHS.MI->getOperand(2).getReg(), B); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5962 MachineInstr *FMulMI = MRI.getVRegDef(FMAMI->getOperand(3).getReg()); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5965 MRI.getType(FMAMI->getOperand(0).getReg()))) { in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5967 Register X = FMAMI->getOperand(1).getReg(); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5968 Register Y = FMAMI->getOperand(2).getReg(); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5969 X = B.buildFPExt(DstType, X).getReg(0); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5970 Y = B.buildFPExt(DstType, Y).getReg(0); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5971 buildMatchInfo(FMulMI->getOperand(1).getReg(), in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5972 FMulMI->getOperand(2).getReg(), RHS.Reg, X, Y, B); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5982 mi_match(RHS.MI->getOperand(3).getReg(), MRI, in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5986 MRI.getType(FMulMI->getOperand(0).getReg()))) { in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5988 buildMatchInfo(FMulMI->getOperand(1).getReg(), in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5989 FMulMI->getOperand(2).getReg(), LHS.Reg, in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5990 RHS.MI->getOperand(1).getReg(), in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
5991 RHS.MI->getOperand(2).getReg(), B); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
6003 MachineInstr *FMulMI = MRI.getVRegDef(FMAMI->getOperand(3).getReg()); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
6006 MRI.getType(FMAMI->getOperand(0).getReg()))) { in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
6008 Register X = FMAMI->getOperand(1).getReg(); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
6009 Register Y = FMAMI->getOperand(2).getReg(); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
6010 X = B.buildFPExt(DstType, X).getReg(0); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
6011 Y = B.buildFPExt(DstType, Y).getReg(0); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
6012 buildMatchInfo(FMulMI->getOperand(1).getReg(), in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
6013 FMulMI->getOperand(2).getReg(), LHS.Reg, X, Y, B); in matchCombineFAddFpExtFMulToFMadOrFMAAggressive()
6030 Register Op1 = MI.getOperand(1).getReg(); in matchCombineFSubFMulToFMadOrFMA()
6031 Register Op2 = MI.getOperand(2).getReg(); in matchCombineFSubFMulToFMadOrFMA()
6034 LLT DstTy = MRI.getType(MI.getOperand(0).getReg()); in matchCombineFSubFMulToFMadOrFMA()
6052 Register NegZ = B.buildFNeg(DstTy, RHS.Reg).getReg(0); in matchCombineFSubFMulToFMadOrFMA()
6053 B.buildInstr(PreferredFusedOpcode, {MI.getOperand(0).getReg()}, in matchCombineFSubFMulToFMadOrFMA()
6054 {LHS.MI->getOperand(1).getReg(), in matchCombineFSubFMulToFMadOrFMA()
6055 LHS.MI->getOperand(2).getReg(), NegZ}); in matchCombineFSubFMulToFMadOrFMA()
6064 B.buildFNeg(DstTy, RHS.MI->getOperand(1).getReg()).getReg(0); in matchCombineFSubFMulToFMadOrFMA()
6065 B.buildInstr(PreferredFusedOpcode, {MI.getOperand(0).getReg()}, in matchCombineFSubFMulToFMadOrFMA()
6066 {NegY, RHS.MI->getOperand(2).getReg(), LHS.Reg}); in matchCombineFSubFMulToFMadOrFMA()
6082 Register LHSReg = MI.getOperand(1).getReg(); in matchCombineFSubFNegFMulToFMadOrFMA()
6083 Register RHSReg = MI.getOperand(2).getReg(); in matchCombineFSubFNegFMulToFMadOrFMA()
6084 LLT DstTy = MRI.getType(MI.getOperand(0).getReg()); in matchCombineFSubFNegFMulToFMadOrFMA()
6093 MRI.hasOneNonDBGUse(FMulMI->getOperand(0).getReg()))) && in matchCombineFSubFNegFMulToFMadOrFMA()
6097 B.buildFNeg(DstTy, FMulMI->getOperand(1).getReg()).getReg(0); in matchCombineFSubFNegFMulToFMadOrFMA()
6098 Register NegZ = B.buildFNeg(DstTy, RHSReg).getReg(0); in matchCombineFSubFNegFMulToFMadOrFMA()
6099 B.buildInstr(PreferredFusedOpcode, {MI.getOperand(0).getReg()}, in matchCombineFSubFNegFMulToFMadOrFMA()
6100 {NegX, FMulMI->getOperand(2).getReg(), NegZ}); in matchCombineFSubFNegFMulToFMadOrFMA()
6108 MRI.hasOneNonDBGUse(FMulMI->getOperand(0).getReg()))) && in matchCombineFSubFNegFMulToFMadOrFMA()
6111 B.buildInstr(PreferredFusedOpcode, {MI.getOperand(0).getReg()}, in matchCombineFSubFNegFMulToFMadOrFMA()
6112 {FMulMI->getOperand(1).getReg(), in matchCombineFSubFNegFMulToFMadOrFMA()
6113 FMulMI->getOperand(2).getReg(), LHSReg}); in matchCombineFSubFNegFMulToFMadOrFMA()
6129 Register LHSReg = MI.getOperand(1).getReg(); in matchCombineFSubFpExtFMulToFMadOrFMA()
6130 Register RHSReg = MI.getOperand(2).getReg(); in matchCombineFSubFpExtFMulToFMadOrFMA()
6131 LLT DstTy = MRI.getType(MI.getOperand(0).getReg()); in matchCombineFSubFpExtFMulToFMadOrFMA()
6143 B.buildFPExt(DstTy, FMulMI->getOperand(1).getReg()).getReg(0); in matchCombineFSubFpExtFMulToFMadOrFMA()
6145 B.buildFPExt(DstTy, FMulMI->getOperand(2).getReg()).getReg(0); in matchCombineFSubFpExtFMulToFMadOrFMA()
6146 Register NegZ = B.buildFNeg(DstTy, RHSReg).getReg(0); in matchCombineFSubFpExtFMulToFMadOrFMA()
6147 B.buildInstr(PreferredFusedOpcode, {MI.getOperand(0).getReg()}, in matchCombineFSubFpExtFMulToFMadOrFMA()
6159 B.buildFPExt(DstTy, FMulMI->getOperand(1).getReg()).getReg(0); in matchCombineFSubFpExtFMulToFMadOrFMA()
6160 Register NegY = B.buildFNeg(DstTy, FpExtY).getReg(0); in matchCombineFSubFpExtFMulToFMadOrFMA()
6162 B.buildFPExt(DstTy, FMulMI->getOperand(2).getReg()).getReg(0); in matchCombineFSubFpExtFMulToFMadOrFMA()
6163 B.buildInstr(PreferredFusedOpcode, {MI.getOperand(0).getReg()}, in matchCombineFSubFpExtFMulToFMadOrFMA()
6181 LLT DstTy = MRI.getType(MI.getOperand(0).getReg()); in matchCombineFSubFpExtFNegFMulToFMadOrFMA()
6182 Register LHSReg = MI.getOperand(1).getReg(); in matchCombineFSubFpExtFNegFMulToFMadOrFMA()
6183 Register RHSReg = MI.getOperand(2).getReg(); in matchCombineFSubFpExtFNegFMulToFMadOrFMA()
6190 Register FpExtX = B.buildFPExt(DstTy, X).getReg(0); in matchCombineFSubFpExtFNegFMulToFMadOrFMA()
6191 Register FpExtY = B.buildFPExt(DstTy, Y).getReg(0); in matchCombineFSubFpExtFNegFMulToFMadOrFMA()
6204 MRI.getType(FMulMI->getOperand(0).getReg()))) { in matchCombineFSubFpExtFNegFMulToFMadOrFMA()
6207 buildMatchInfo(FMAReg, FMulMI->getOperand(1).getReg(), in matchCombineFSubFpExtFNegFMulToFMadOrFMA()
6208 FMulMI->getOperand(2).getReg(), RHSReg, B); in matchCombineFSubFpExtFNegFMulToFMadOrFMA()
6209 B.buildFNeg(MI.getOperand(0).getReg(), FMAReg); in matchCombineFSubFpExtFNegFMulToFMadOrFMA()
6220 MRI.getType(FMulMI->getOperand(0).getReg()))) { in matchCombineFSubFpExtFNegFMulToFMadOrFMA()
6222 buildMatchInfo(MI.getOperand(0).getReg(), FMulMI->getOperand(1).getReg(), in matchCombineFSubFpExtFNegFMulToFMadOrFMA()
6223 FMulMI->getOperand(2).getReg(), LHSReg, B); in matchCombineFSubFpExtFNegFMulToFMadOrFMA()
6248 Register MaybeNaNReg = MI.getOperand(Idx).getReg(); in matchCombineFMinMaxNaN()
6261 Register LHS = MI.getOperand(1).getReg(); in matchAddSubSameReg()
6262 Register RHS = MI.getOperand(2).getReg(); in matchAddSubSameReg()
6293 LLT DstVecTy = MRI.getType(MI.getOperand(0).getReg()); in matchBuildVectorIdentityFold()
6325 if (!mi_match(MI.getOperand(1).getReg(), MRI, in matchTruncBuildVectorFold()
6329 return MRI.getType(MatchInfo) == MRI.getType(MI.getOperand(0).getReg()); in matchTruncBuildVectorFold()
6337 if (!mi_match(MI.getOperand(1).getReg(), MRI, in matchTruncLshrBuildVectorFold()
6344 MatchTy == MRI.getType(MI.getOperand(0).getReg()); in matchTruncLshrBuildVectorFold()
6468 Register Cond = MI.getOperand(1).getReg(); in matchSimplifySelectToMinMax()
6472 Register Dst = MI.getOperand(0).getReg(); in matchSimplifySelectToMinMax()
6473 Register TrueVal = MI.getOperand(2).getReg(); in matchSimplifySelectToMinMax()
6474 Register FalseVal = MI.getOperand(3).getReg(); in matchSimplifySelectToMinMax()
6487 Register Dst = MI.getOperand(0).getReg(); in matchRedundantBinOpInEquality()
6511 Register ShiftReg = MI.getOperand(2).getReg(); in matchShiftsTooBig()
6512 LLT ResTy = MRI.getType(MI.getOperand(0).getReg()); in matchShiftsTooBig()
6534 Register LHS = MI.getOperand(LHSOpndIdx).getReg(); in matchCommuteConstantToRHS()
6535 Register RHS = MI.getOperand(RHSOpndIdx).getReg(); in matchCommuteConstantToRHS()
6551 Register LHS = MI.getOperand(1).getReg(); in matchCommuteFPConstantToRHS()
6552 Register RHS = MI.getOperand(2).getReg(); in matchCommuteFPConstantToRHS()
6574 Register LHSReg = MI.getOperand(LHSOpndIdx).getReg(); in applyCommuteBinOpOperands()
6575 Register RHSReg = MI.getOperand(RHSOpndIdx).getReg(); in applyCommuteBinOpOperands()
6683 Register Dest = Select->getReg(0); in tryFoldSelectOfConstants()
6815 Register DstReg = Select->getReg(0); in tryFoldBoolSelectToLogic()
6895 GSelect *Select = cast<GSelect>(MRI.getVRegDef(MO.getReg())); in matchSelectIMinMax()
6898 Register DstReg = Select->getReg(0); in matchSelectIMinMax()
6907 if (!MRI.hasOneNonDBGUse(Cmp->getReg(0))) in matchSelectIMinMax()
6985 Register DstReg = Logic->getReg(0); in tryFoldAndOrOrICmpsUsingRanges()
7001 if (!MRI.hasOneNonDBGUse(Cmp1->getReg(0)) || in tryFoldAndOrOrICmpsUsingRanges()
7002 !MRI.hasOneNonDBGUse(Cmp2->getReg(0))) in tryFoldAndOrOrICmpsUsingRanges()
7023 LLT CmpTy = MRI.getType(Cmp1->getReg(0)); in tryFoldAndOrOrICmpsUsingRanges()
7143 Register DestReg = Logic->getReg(0); in tryFoldLogicOfFCmps()
7158 LLT CmpTy = MRI.getType(Cmp1->getReg(0)); in tryFoldLogicOfFCmps()
7165 !MRI.hasOneNonDBGUse(Logic->getReg(0)) || in tryFoldLogicOfFCmps()
7166 !MRI.hasOneNonDBGUse(Cmp1->getReg(0)) || in tryFoldLogicOfFCmps()
7167 !MRI.hasOneNonDBGUse(Cmp2->getReg(0)) || in tryFoldLogicOfFCmps()
7243 Register Dst = Add->getReg(0); in matchAddOverflow()
7244 Register Carry = Add->getReg(1); in matchAddOverflow()
7305 if (MaybeRHS && AddLHS && MRI.hasOneNonDBGUse(Add->getReg(0)) && in matchAddOverflow()
7408 MachineInstr *Root = getDefIgnoringCopies(MO.getReg(), MRI); in applyBuildFnMO()
7463 GSext *Sext = cast<GSext>(getDefIgnoringCopies(MO.getReg(), MRI)); in matchSextOfTrunc()
7466 Register Dst = Sext->getReg(0); in matchSextOfTrunc()
7496 GZext *Zext = cast<GZext>(getDefIgnoringCopies(MO.getReg(), MRI)); in matchZextOfTrunc()
7499 Register Dst = Zext->getReg(0); in matchZextOfTrunc()
7531 GZext *Zext = cast<GZext>(MRI.getVRegDef(MO.getReg())); in matchNonNegZext()
7533 Register Dst = Zext->getReg(0); in matchNonNegZext()