Lines Matching refs:LLT
47 getNarrowTypeBreakDown(LLT OrigTy, LLT NarrowTy, LLT &LeftoverTy) { in getNarrowTypeBreakDown()
63 LeftoverTy = LLT::scalarOrVector( in getNarrowTypeBreakDown()
66 LeftoverTy = LLT::scalar(LeftoverSize); in getNarrowTypeBreakDown()
73 static Type *getFloatTypeForLLT(LLVMContext &Ctx, LLT Ty) { in getFloatTypeForLLT()
152 void LegalizerHelper::extractParts(Register Reg, LLT Ty, int NumParts, in extractParts()
159 bool LegalizerHelper::extractParts(Register Reg, LLT RegTy, in extractParts()
160 LLT MainTy, LLT &LeftoverTy, in extractParts()
182 LeftoverTy = LLT::scalarOrVector( in extractParts()
185 LeftoverTy = LLT::scalar(LeftoverSize); in extractParts()
206 LLT ResultTy, LLT PartTy, in insertParts()
208 LLT LeftoverTy, in insertParts()
226 LLT GCDTy = getGCDType(getGCDType(ResultTy, LeftoverTy), PartTy); in insertParts()
229 LLT ResultLCMTy = buildLCMMergePieces(ResultTy, LeftoverTy, GCDTy, GCDRegs); in insertParts()
246 LLT GCDTy, Register SrcReg) { in extractGCDType()
247 LLT SrcTy = MRI.getType(SrcReg); in extractGCDType()
259 LLT LegalizerHelper::extractGCDType(SmallVectorImpl<Register> &Parts, LLT DstTy, in extractGCDType()
260 LLT NarrowTy, Register SrcReg) { in extractGCDType()
261 LLT SrcTy = MRI.getType(SrcReg); in extractGCDType()
262 LLT GCDTy = getGCDType(getGCDType(SrcTy, NarrowTy), DstTy); in extractGCDType()
267 LLT LegalizerHelper::buildLCMMergePieces(LLT DstTy, LLT NarrowTy, LLT GCDTy, in buildLCMMergePieces()
270 LLT LCMTy = getLCMType(DstTy, NarrowTy); in buildLCMMergePieces()
290 MIRBuilder.buildConstant(LLT::scalar(64), GCDTy.getSizeInBits() - 1); in buildLCMMergePieces()
358 void LegalizerHelper::buildWidenedRemergeToDst(Register DstReg, LLT LCMTy, in buildWidenedRemergeToDst()
360 LLT DstTy = MRI.getType(DstReg); in buildWidenedRemergeToDst()
604 LLT OpLLT = MRI.getType(Reg); in createMemLibcall()
714 LLT LLTy = MRI.getType(MI.getOperand(0).getReg()); in libcall()
824 LLT NarrowTy) { in narrowScalar()
833 LLT DstTy = MRI.getType(DstReg); in narrowScalar()
842 LLT ImplicitTy = NarrowTy; in narrowScalar()
844 ImplicitTy = LLT::vector(DstTy.getElementCount(), ImplicitTy); in narrowScalar()
867 LLT Ty = MRI.getType(MI.getOperand(0).getReg()); in narrowScalar()
881 LLT LeftoverTy; in narrowScalar()
885 LeftoverTy = LLT::scalar(LeftoverBits); in narrowScalar()
941 LLT DstTy = MRI.getType(DstReg); in narrowScalar()
986 LLT SrcTy = MRI.getType(SrcReg); in narrowScalar()
1109 LLT SrcTy = MRI.getType(LHS); in narrowScalar()
1118 LLT LeftoverTy; // Example: s88 -> s64 (NarrowTy) + s24 (leftover) in narrowScalar()
1124 LLT Unused; // Matches LeftoverTy; G_ICMP LHS and RHS are the same type. in narrowScalar()
1133 LLT ResTy = MRI.getType(Dst); in narrowScalar()
1154 LLT GCDTy = extractGCDType(WidenedXors, NarrowTy, LeftoverTy, Xor); in narrowScalar()
1317 LLT Ty = MRI.getType(Val); in coerceToScalar()
1322 LLT NewTy = LLT::scalar(Ty.getSizeInBits()); in coerceToScalar()
1332 LLT EltTy = Ty.getElementType(); in coerceToScalar()
1338 void LegalizerHelper::widenScalarSrc(MachineInstr &MI, LLT WideTy, in widenScalarSrc()
1345 void LegalizerHelper::narrowScalarSrc(MachineInstr &MI, LLT NarrowTy, in narrowScalarSrc()
1352 void LegalizerHelper::widenScalarDst(MachineInstr &MI, LLT WideTy, in widenScalarDst()
1361 void LegalizerHelper::narrowScalarDst(MachineInstr &MI, LLT NarrowTy, in narrowScalarDst()
1370 void LegalizerHelper::moreElementsVectorDst(MachineInstr &MI, LLT WideTy, in moreElementsVectorDst()
1377 void LegalizerHelper::moreElementsVectorSrc(MachineInstr &MI, LLT MoreTy, in moreElementsVectorSrc()
1381 LLT OldTy = MRI.getType(MO.getReg()); in moreElementsVectorSrc()
1407 void LegalizerHelper::bitcastSrc(MachineInstr &MI, LLT CastTy, unsigned OpIdx) { in bitcastSrc()
1412 void LegalizerHelper::bitcastDst(MachineInstr &MI, LLT CastTy, unsigned OpIdx) { in bitcastDst()
1422 LLT WideTy) { in widenScalarMergeValues()
1427 LLT DstTy = MRI.getType(DstReg); in widenScalarMergeValues()
1432 LLT SrcTy = MRI.getType(Src1); in widenScalarMergeValues()
1450 assert(MRI.getType(SrcReg) == LLT::scalar(PartSize)); in widenScalarMergeValues()
1494 LLT GCDTy = LLT::scalar(GCD); in widenScalarMergeValues()
1499 LLT WideDstTy = LLT::scalar(NumMerge * WideSize); in widenScalarMergeValues()
1542 Register LegalizerHelper::widenWithUnmerge(LLT WideTy, Register OrigReg) { in widenWithUnmerge()
1544 LLT OrigTy = MRI.getType(OrigReg); in widenWithUnmerge()
1545 LLT LCMTy = getLCMType(WideTy, OrigTy); in widenWithUnmerge()
1578 LLT WideTy) { in widenScalarUnmergeValues()
1584 LLT SrcTy = MRI.getType(SrcReg); in widenScalarUnmergeValues()
1589 LLT DstTy = MRI.getType(Dst0Reg); in widenScalarUnmergeValues()
1602 SrcTy = LLT::scalar(SrcTy.getSizeInBits()); in widenScalarUnmergeValues()
1630 LLT LCMTy = getLCMType(SrcTy, WideTy); in widenScalarUnmergeValues()
1660 const LLT GCDTy = getGCDType(WideTy, DstTy); in widenScalarUnmergeValues()
1707 LLT WideTy) { in widenScalarExtract()
1710 LLT SrcTy = MRI.getType(SrcReg); in widenScalarExtract()
1712 LLT DstTy = MRI.getType(DstReg); in widenScalarExtract()
1727 LLT SrcAsIntTy = LLT::scalar(SrcTy.getSizeInBits()); in widenScalarExtract()
1744 LLT ShiftTy = SrcTy; in widenScalarExtract()
1785 LLT WideTy) { in widenScalarInsert()
1797 LLT WideTy) { in widenScalarAddSubOverflow()
1850 LLT CarryOutTy = MRI.getType(MI.getOperand(1).getReg()); in widenScalarAddSubOverflow()
1858 LLT OrigTy = MRI.getType(MI.getOperand(0).getReg()); in widenScalarAddSubOverflow()
1871 LLT WideTy) { in widenScalarAddSubShlSat()
1915 LLT WideTy) { in widenScalarMulo()
1924 LLT SrcTy = MRI.getType(LHS); in widenScalarMulo()
1925 LLT OverflowTy = MRI.getType(OriginalOverflow); in widenScalarMulo()
1970 LegalizerHelper::widenScalar(MachineInstr &MI, unsigned TypeIdx, LLT WideTy) { in widenScalar()
2056 LLT CurTy = MRI.getType(SrcReg); in widenScalar()
2095 LLT Ty = MRI.getType(DstReg); in widenScalar()
2108 LLT Ty = MRI.getType(DstReg); in widenScalar()
2302 LLT Ty = MRI.getType(MI.getOperand(0).getReg()); in widenScalar()
2425 LLT VecTy = MRI.getType(VecReg); in widenScalar()
2429 MI, LLT::vector(VecTy.getElementCount(), WideTy.getSizeInBits()), 1, in widenScalar()
2450 LLT VecTy = MRI.getType(VecReg); in widenScalar()
2451 LLT WideVecTy = LLT::vector(VecTy.getElementCount(), WideTy); in widenScalar()
2539 const LLT WideEltTy = TypeIdx == 1 ? WideTy : WideTy.getElementType(); in widenScalar()
2575 MachineIRBuilder &B, Register Src, LLT Ty) { in getUnmergePieces()
2585 LLT DstTy = MRI.getType(Dst); in lowerBitcast()
2586 LLT SrcTy = MRI.getType(Src); in lowerBitcast()
2589 LLT SrcEltTy = SrcTy.getElementType(); in lowerBitcast()
2596 LLT DstEltTy = DstTy.getElementType(); in lowerBitcast()
2597 LLT DstCastTy = DstEltTy; // Intermediate bitcast result type in lowerBitcast()
2598 LLT SrcPartTy = SrcEltTy; // Original unmerge result type. in lowerBitcast()
2611 DstCastTy = LLT::fixed_vector(NumDstElt / NumSrcElt, DstEltTy); in lowerBitcast()
2623 SrcPartTy = LLT::fixed_vector(NumSrcElt / NumDstElt, SrcEltTy); in lowerBitcast()
2661 LLT IdxTy = B.getMRI()->getType(Idx); in getBitcastWiderVectorElementOffset()
2679 LLT CastTy) { in bitcastExtractVectorElt()
2686 LLT SrcVecTy = MRI.getType(SrcVec); in bitcastExtractVectorElt()
2687 LLT IdxTy = MRI.getType(Idx); in bitcastExtractVectorElt()
2689 LLT SrcEltTy = SrcVecTy.getElementType(); in bitcastExtractVectorElt()
2693 LLT NewEltTy = CastTy.isVector() ? CastTy.getElementType() : CastTy; in bitcastExtractVectorElt()
2714 LLT MidTy = in bitcastExtractVectorElt()
2715 LLT::scalarOrVector(ElementCount::getFixed(NewEltsPerOldElt), NewEltTy); in bitcastExtractVectorElt()
2791 LLT TargetTy = B.getMRI()->getType(TargetReg); in buildBitFieldInsert()
2792 LLT InsertTy = B.getMRI()->getType(InsertReg); in buildBitFieldInsert()
2819 LLT CastTy) { in bitcastInsertVectorElt()
2828 LLT VecTy = MRI.getType(Dst); in bitcastInsertVectorElt()
2829 LLT IdxTy = MRI.getType(Idx); in bitcastInsertVectorElt()
2831 LLT VecEltTy = VecTy.getElementType(); in bitcastInsertVectorElt()
2832 LLT NewEltTy = CastTy.isVector() ? CastTy.getElementType() : CastTy; in bitcastInsertVectorElt()
2885 LLT DstTy = MRI.getType(DstReg); in lowerLoad()
2887 LLT MemTy = MMO.getMemoryType(); in lowerLoad()
2898 LLT WideMemTy = LLT::scalar(MemStoreSizeInBits); in lowerLoad()
2903 LLT LoadTy = DstTy; in lowerLoad()
2961 LLT PtrTy = MRI.getType(PtrReg); in lowerLoad()
2963 LLT AnyExtTy = LLT::scalar(AnyExtSize); in lowerLoad()
2967 auto OffsetCst = MIRBuilder.buildConstant(LLT::scalar(PtrTy.getSizeInBits()), in lowerLoad()
2997 LLT SrcTy = MRI.getType(SrcReg); in lowerStore()
3000 LLT MemTy = MMO.getMemoryType(); in lowerStore()
3012 LLT WideTy = LLT::scalar(StoreSizeInBits); in lowerStore()
3035 const LLT NewSrcTy = LLT::scalar(NextPowerOf2(MemTy.getSizeInBits())); in lowerStore()
3045 LLT PtrTy = MRI.getType(PtrReg); in lowerStore()
3047 LLT::scalar(PtrTy.getSizeInBits()), LargeSplitSize / 8); in lowerStore()
3063 LegalizerHelper::bitcast(MachineInstr &MI, unsigned TypeIdx, LLT CastTy) { in bitcast()
3140 LegalizerHelper::lower(MachineInstr &MI, unsigned TypeIdx, LLT LowerHintTy) { in lower()
3150 LLT Ty = MRI.getType(MI.getOperand(0).getReg()); in lower()
3174 LLT Ty = MRI.getType(Res); in lower()
3205 LLT Ty = MRI.getType(Res); in lower()
3220 LLT Ty = MRI.getType(Res); in lower()
3289 LLT Ty = MRI.getType(Res); in lower()
3317 const LLT CondTy = MRI.getType(BorrowOut); in lower()
3318 const LLT Ty = MRI.getType(Res); in lower()
3363 LLT DstTy = MRI.getType(DstReg); in lower()
3395 LLT Ty = MRI.getType(MI.getOperand(0).getReg()); in lower()
3402 LLT Ty = MRI.getType(MI.getOperand(0).getReg()); in lower()
3430 Align LegalizerHelper::getStackTemporaryAlignment(LLT Ty, in getStackTemporaryAlignment()
3448 LLT FramePtrTy = LLT::pointer(AddrSpace, DL.getPointerSizeInBits(AddrSpace)); in createStackTemporary()
3455 LLT VecTy) { in clampDynamicVectorIndex()
3460 LLT IdxTy = B.getMRI()->getType(IdxReg); in clampDynamicVectorIndex()
3471 Register LegalizerHelper::getVectorElementPointer(Register VecPtr, LLT VecTy, in getVectorElementPointer()
3473 LLT EltTy = VecTy.getElementType(); in getVectorElementPointer()
3482 LLT IdxTy = MRI.getType(Index); in getVectorElementPointer()
3486 LLT PtrTy = MRI.getType(VecPtr); in getVectorElementPointer()
3491 MachineInstr &MI, unsigned TypeIdx, LLT NarrowTy) { in fewerElementsVectorImplicitDef()
3493 LLT DstTy = MRI.getType(DstReg); in fewerElementsVectorImplicitDef()
3494 LLT LCMTy = getLCMType(DstTy, NarrowTy); in fewerElementsVectorImplicitDef()
3520 MachineInstr &MI, unsigned TypeIdx, LLT NarrowTyArg) { in fewerElementsVectorMultiEltType()
3524 const LLT NarrowTy0 = NarrowTyArg; in fewerElementsVectorMultiEltType()
3526 LLT DstTy = MRI.getType(DstReg); in fewerElementsVectorMultiEltType()
3527 LLT LeftoverTy0; in fewerElementsVectorMultiEltType()
3543 LLT SrcTyI = MRI.getType(SrcReg); in fewerElementsVectorMultiEltType()
3546 LLT NarrowTyI = LLT::scalarOrVector(NewEC, SrcTyI.getScalarType()); in fewerElementsVectorMultiEltType()
3547 LLT LeftoverTyI; in fewerElementsVectorMultiEltType()
3602 LLT NarrowTy) { in fewerElementsVectorCasts()
3608 LLT DstTy = MRI.getType(DstReg); in fewerElementsVectorCasts()
3609 LLT SrcTy = MRI.getType(SrcReg); in fewerElementsVectorCasts()
3611 LLT NarrowTy0 = NarrowTy; in fewerElementsVectorCasts()
3612 LLT NarrowTy1; in fewerElementsVectorCasts()
3621 NarrowTy1 = LLT::vector(NarrowTy.getElementCount(), SrcTy.getElementType()); in fewerElementsVectorCasts()
3650 LLT NarrowTy) { in fewerElementsVectorCmp()
3653 LLT DstTy = MRI.getType(DstReg); in fewerElementsVectorCmp()
3654 LLT SrcTy = MRI.getType(Src0Reg); in fewerElementsVectorCmp()
3657 LLT NarrowTy0, NarrowTy1; in fewerElementsVectorCmp()
3665 NarrowTy1 = NarrowTy.isVector() ? LLT::vector(NarrowTy.getElementCount(), in fewerElementsVectorCmp()
3676 LLT::vector(NarrowTy.getElementCount(), DstTy.getScalarSizeInBits()); in fewerElementsVectorCmp()
3717 LLT NarrowTy) { in fewerElementsVectorSelect()
3722 LLT NarrowTy0, NarrowTy1; in fewerElementsVectorSelect()
3724 LLT DstTy = MRI.getType(DstReg); in fewerElementsVectorSelect()
3725 LLT CondTy = MRI.getType(CondReg); in fewerElementsVectorSelect()
3748 LLT::vector(CondTy.getElementCount().divideCoefficientBy(NumParts), in fewerElementsVectorSelect()
3790 LLT NarrowTy) { in fewerElementsVectorPhi()
3792 LLT PhiTy = MRI.getType(DstReg); in fewerElementsVectorPhi()
3793 LLT LeftoverTy; in fewerElementsVectorPhi()
3811 LLT Ty = I < NumParts ? NarrowTy : LeftoverTy; in fewerElementsVectorPhi()
3836 LLT Unused; in fewerElementsVectorPhi()
3858 LLT NarrowTy) { in fewerElementsVectorUnmergeValues()
3864 LLT SrcTy = MRI.getType(SrcReg); in fewerElementsVectorUnmergeValues()
3866 LLT DstTy = MRI.getType(MI.getOperand(0).getReg()); in fewerElementsVectorUnmergeValues()
3872 LLT GCDTy = getGCDType(SrcTy, NarrowTy); in fewerElementsVectorUnmergeValues()
3897 LLT NarrowTy) { in fewerElementsVectorMulo()
3903 LLT SrcTy = MRI.getType(LHS); in fewerElementsVectorMulo()
3907 LLT ElementType = SrcTy.getElementType(); in fewerElementsVectorMulo()
3908 LLT OverflowElementTy = MRI.getType(Overflow).getElementType(); in fewerElementsVectorMulo()
3910 LLT GCDTy = getGCDType(SrcTy, NarrowTy); in fewerElementsVectorMulo()
3918 LLT OverflowTy = LLT::scalarOrVector(PartsPerUnmerge, OverflowElementTy); in fewerElementsVectorMulo()
3919 LLT ResultTy = LLT::scalarOrVector(PartsPerUnmerge, ElementType); in fewerElementsVectorMulo()
3933 LLT ResultLCMTy = buildLCMMergePieces(SrcTy, NarrowTy, GCDTy, ResultParts); in fewerElementsVectorMulo()
3934 LLT OverflowLCMTy = in fewerElementsVectorMulo()
3935 LLT::scalarOrVector(ResultLCMTy.getElementCount(), OverflowElementTy); in fewerElementsVectorMulo()
3961 LLT NarrowTy) { in fewerElementsVectorMerge()
3963 LLT DstTy = MRI.getType(DstReg); in fewerElementsVectorMerge()
3964 LLT SrcTy = MRI.getType(MI.getOperand(1).getReg()); in fewerElementsVectorMerge()
3965 LLT GCDTy = getGCDType(getGCDType(SrcTy, NarrowTy), DstTy); in fewerElementsVectorMerge()
3973 LLT LCMTy = buildLCMMergePieces(DstTy, NarrowTy, GCDTy, Parts, in fewerElementsVectorMerge()
3986 LLT NarrowVecTy) { in fewerElementsVectorExtractInsertVectorElt()
4002 LLT VecTy = MRI.getType(SrcVec); in fewerElementsVectorExtractInsertVectorElt()
4020 LLT GCDTy = extractGCDType(VecParts, VecTy, NarrowVecTy, SrcVec); in fewerElementsVectorExtractInsertVectorElt()
4023 LLT LCMTy = buildLCMMergePieces(VecTy, NarrowVecTy, GCDTy, VecParts, in fewerElementsVectorExtractInsertVectorElt()
4028 LLT IdxTy = MRI.getType(Idx); in fewerElementsVectorExtractInsertVectorElt()
4034 LLT PartTy = MRI.getType(VecParts[PartIdx]); in fewerElementsVectorExtractInsertVectorElt()
4062 LLT NarrowTy) { in reduceLoadStoreWidth()
4075 LLT ValTy = MRI.getType(ValReg); in reduceLoadStoreWidth()
4085 LLT LeftoverTy; in reduceLoadStoreWidth()
4100 LLT PtrTy = MRI.getType(AddrReg); in reduceLoadStoreWidth()
4101 const LLT OffsetTy = LLT::scalar(PtrTy.getSizeInBits()); in reduceLoadStoreWidth()
4110 auto splitTypePieces = [=](LLT PartTy, SmallVectorImpl<Register> &ValRegs, in reduceLoadStoreWidth()
4153 LLT NarrowTy) { in reduceOperationWidth()
4161 const LLT NarrowScalarTy = LLT::scalar(NarrowSize); in reduceOperationWidth()
4173 const LLT DstTy = MRI.getType(DstRegs[0]); in reduceOperationWidth()
4183 LLT SrcTy = MRI.getType(SrcReg); in reduceOperationWidth()
4187 LLT OpNarrowTy; in reduceOperationWidth()
4195 SrcTy = LLT::scalar(SrcTy.getSizeInBits()); in reduceOperationWidth()
4201 OpNarrowTy = LLT::scalarOrVector(NarrowEC, SrcTy.getScalarType()); in reduceOperationWidth()
4204 LLT GCDTy = extractGCDType(ExtractedRegs[I], SrcTy, OpNarrowTy, SrcReg); in reduceOperationWidth()
4218 const LLT DstScalarTy = LLT::scalar(DstSize); in reduceOperationWidth()
4221 LLT DstLCMTy, NarrowDstTy; in reduceOperationWidth()
4281 LLT NarrowTy) { in fewerElementsVectorSextInReg()
4286 LLT DstTy = MRI.getType(DstReg); in fewerElementsVectorSextInReg()
4289 LLT GCDTy = extractGCDType(Parts, DstTy, NarrowTy, SrcReg); in fewerElementsVectorSextInReg()
4290 LLT LCMTy = buildLCMMergePieces(DstTy, NarrowTy, GCDTy, Parts); in fewerElementsVectorSextInReg()
4303 LLT NarrowTy) { in fewerElementsVector()
4434 MachineInstr &MI, unsigned int TypeIdx, LLT NarrowTy) { in fewerElementsVectorShuffle()
4443 LLT DstTy = MRI.getType(DstReg); in fewerElementsVectorShuffle()
4444 LLT Src1Ty = MRI.getType(Src1Reg); in fewerElementsVectorShuffle()
4445 LLT Src2Ty = MRI.getType(Src2Reg); in fewerElementsVectorShuffle()
4524 LLT EltTy = NarrowTy.getElementType(); in fewerElementsVectorShuffle()
4548 MIRBuilder.buildConstant(LLT::scalar(32), Idx)) in fewerElementsVectorShuffle()
4576 MachineInstr &MI, unsigned int TypeIdx, LLT NarrowTy) { in fewerElementsVectorReductions()
4588 LLT SrcTy = MRI.getType(SrcReg); in fewerElementsVectorReductions()
4590 LLT DstTy = MRI.getType(DstReg); in fewerElementsVectorReductions()
4674 LLT SrcTy, LLT NarrowTy, in tryNarrowPow2Reduction()
4703 const LLT HalfTy, const LLT AmtTy) { in narrowScalarShiftByConstant()
4715 LLT NVT = HalfTy; in narrowScalarShiftByConstant()
4792 LLT RequestedTy) { in narrowScalarShift()
4801 LLT DstTy = MRI.getType(DstReg); in narrowScalarShift()
4806 LLT ShiftAmtTy = MRI.getType(Amt); in narrowScalarShift()
4815 const LLT HalfTy = LLT::scalar(NewBitSize); in narrowScalarShift()
4816 const LLT CondTy = LLT::scalar(1); in narrowScalarShift()
4902 LLT MoreTy) { in moreElementsVectorPhi()
4921 LLT MoreTy) { in moreElementsVector()
4992 LLT DstTy = MRI.getType(MI.getOperand(0).getReg()); in moreElementsVector()
5019 unsigned int TypeIdx, LLT MoreTy) { in moreElementsVectorShuffle()
5027 LLT DstTy = MRI.getType(DstReg); in moreElementsVectorShuffle()
5028 LLT Src1Ty = MRI.getType(Src1Reg); in moreElementsVectorShuffle()
5029 LLT Src2Ty = MRI.getType(Src2Reg); in moreElementsVectorShuffle()
5063 LLT NarrowTy) { in multiplyRegisters()
5100 B.buildUAddo(NarrowTy, LLT::scalar(1), Factors[0], Factors[1]); in multiplyRegisters()
5105 B.buildUAddo(NarrowTy, LLT::scalar(1), FactorSum, Factors[i]); in multiplyRegisters()
5125 LLT NarrowTy) { in narrowScalarAddSub()
5130 LLT DstType = MRI.getType(DstReg); in narrowScalarAddSub()
5174 LLT RegTy = MRI.getType(MI.getOperand(0).getReg()); in narrowScalarAddSub()
5175 LLT LeftoverTy, DummyTy; in narrowScalarAddSub()
5190 Register CarryOut = MRI.createGenericVirtualRegister(LLT::scalar(1)); in narrowScalarAddSub()
5218 LegalizerHelper::narrowScalarMul(MachineInstr &MI, LLT NarrowTy) { in narrowScalarMul()
5223 LLT Ty = MRI.getType(DstReg); in narrowScalarMul()
5254 LLT NarrowTy) { in narrowScalarFPTOI()
5261 LLT SrcTy = MRI.getType(Src); in narrowScalarFPTOI()
5266 if (SrcTy.getScalarType() != LLT::scalar(16) || in narrowScalarFPTOI()
5279 LLT NarrowTy) { in narrowScalarExtract()
5326 SegReg = MRI.createGenericVirtualRegister(LLT::scalar(SegSize)); in narrowScalarExtract()
5346 LLT NarrowTy) { in narrowScalarInsert()
5353 LLT RegTy = MRI.getType(MI.getOperand(0).getReg()); in narrowScalarInsert()
5354 LLT LeftoverTy; in narrowScalarInsert()
5406 SegReg = MRI.createGenericVirtualRegister(LLT::scalar(SegSize)); in narrowScalarInsert()
5418 Register MergeReg = MRI.createGenericVirtualRegister(LLT::scalar(WideSize)); in narrowScalarInsert()
5430 LLT NarrowTy) { in narrowScalarBasic()
5432 LLT DstTy = MRI.getType(DstReg); in narrowScalarBasic()
5439 LLT LeftoverTy; in narrowScalarBasic()
5444 LLT Unused; in narrowScalarBasic()
5471 LLT NarrowTy) { in narrowScalarExt()
5478 LLT DstTy = MRI.getType(DstReg); in narrowScalarExt()
5483 LLT GCDTy = extractGCDType(Parts, DstTy, NarrowTy, SrcReg); in narrowScalarExt()
5484 LLT LCMTy = buildLCMMergePieces(DstTy, NarrowTy, GCDTy, Parts, MI.getOpcode()); in narrowScalarExt()
5493 LLT NarrowTy) { in narrowScalarSelect()
5498 LLT CondTy = MRI.getType(CondReg); in narrowScalarSelect()
5503 LLT DstTy = MRI.getType(DstReg); in narrowScalarSelect()
5508 LLT LeftoverTy; in narrowScalarSelect()
5513 LLT Unused; in narrowScalarSelect()
5539 LLT NarrowTy) { in narrowScalarCTLZ()
5545 LLT DstTy = MRI.getType(DstReg); in narrowScalarCTLZ()
5546 LLT SrcTy = MRI.getType(SrcReg); in narrowScalarCTLZ()
5556 auto HiIsZero = B.buildICmp(CmpInst::ICMP_EQ, LLT::scalar(1), in narrowScalarCTLZ()
5575 LLT NarrowTy) { in narrowScalarCTTZ()
5581 LLT DstTy = MRI.getType(DstReg); in narrowScalarCTTZ()
5582 LLT SrcTy = MRI.getType(SrcReg); in narrowScalarCTTZ()
5592 auto LoIsZero = B.buildICmp(CmpInst::ICMP_EQ, LLT::scalar(1), in narrowScalarCTTZ()
5611 LLT NarrowTy) { in narrowScalarCTPOP()
5616 LLT DstTy = MRI.getType(DstReg); in narrowScalarCTPOP()
5617 LLT SrcTy = MRI.getType(MI.getOperand(1).getReg()); in narrowScalarCTPOP()
5655 LLT DstTy = MRI.getType(DstReg); in lowerBitCount()
5656 LLT SrcTy = MRI.getType(SrcReg); in lowerBitCount()
5705 LLT DstTy = MRI.getType(DstReg); in lowerBitCount()
5706 LLT SrcTy = MRI.getType(SrcReg); in lowerBitCount()
5743 LLT Ty = MRI.getType(SrcReg); in lowerBitCount()
5816 LLT Ty = MRI.getType(Dst); in lowerFunnelShiftWithInverse()
5817 LLT ShTy = MRI.getType(Z); in lowerFunnelShiftWithInverse()
5858 LLT Ty = MRI.getType(Dst); in lowerFunnelShiftAsShifts()
5859 LLT ShTy = MRI.getType(Z); in lowerFunnelShiftAsShifts()
5917 LLT Ty = MRI.getType(Dst); in lowerFunnelShift()
5918 LLT ShTy = MRI.getType(MI.getOperand(3).getReg()); in lowerFunnelShift()
5939 LLT AmtTy = MRI.getType(Amt); in lowerRotateWithReverseRotate()
5953 LLT DstTy = MRI.getType(Dst); in lowerRotate()
5954 LLT SrcTy = MRI.getType(Dst); in lowerRotate()
5955 LLT AmtTy = MRI.getType(Amt); in lowerRotate()
6006 const LLT S64 = LLT::scalar(64); in lowerU64ToF32BitOps()
6007 const LLT S32 = LLT::scalar(32); in lowerU64ToF32BitOps()
6008 const LLT S1 = LLT::scalar(1); in lowerU64ToF32BitOps()
6062 LLT DstTy = MRI.getType(Dst); in lowerUITOFP()
6063 LLT SrcTy = MRI.getType(Src); in lowerUITOFP()
6065 if (SrcTy == LLT::scalar(1)) { in lowerUITOFP()
6073 if (SrcTy != LLT::scalar(64)) in lowerUITOFP()
6076 if (DstTy == LLT::scalar(32)) { in lowerUITOFP()
6090 LLT DstTy = MRI.getType(Dst); in lowerSITOFP()
6091 LLT SrcTy = MRI.getType(Src); in lowerSITOFP()
6093 const LLT S64 = LLT::scalar(64); in lowerSITOFP()
6094 const LLT S32 = LLT::scalar(32); in lowerSITOFP()
6095 const LLT S1 = LLT::scalar(1); in lowerSITOFP()
6136 LLT DstTy = MRI.getType(Dst); in lowerFPTOUI()
6137 LLT SrcTy = MRI.getType(Src); in lowerFPTOUI()
6138 const LLT S64 = LLT::scalar(64); in lowerFPTOUI()
6139 const LLT S32 = LLT::scalar(32); in lowerFPTOUI()
6166 const LLT S1 = LLT::scalar(1); in lowerFPTOUI()
6179 LLT DstTy = MRI.getType(Dst); in lowerFPTOSI()
6180 LLT SrcTy = MRI.getType(Src); in lowerFPTOSI()
6181 const LLT S64 = LLT::scalar(64); in lowerFPTOSI()
6182 const LLT S32 = LLT::scalar(32); in lowerFPTOSI()
6222 const LLT S1 = LLT::scalar(1); in lowerFPTOSI()
6255 const LLT S32 = LLT::scalar(32); in lowerFPTRUNC_F64_TO_F16()
6256 const LLT S1 = LLT::scalar(1); in lowerFPTRUNC_F64_TO_F16()
6354 LLT DstTy = MRI.getType(Dst); in lowerFPTRUNC()
6355 LLT SrcTy = MRI.getType(Src); in lowerFPTRUNC()
6356 const LLT S64 = LLT::scalar(64); in lowerFPTRUNC()
6357 const LLT S16 = LLT::scalar(16); in lowerFPTRUNC()
6371 LLT Ty = MRI.getType(Dst); in lowerFPOWI()
6400 LLT CmpType = MRI.getType(Dst).changeElementSize(1); in lowerMinMax()
6415 const LLT Src0Ty = MRI.getType(Src0); in lowerFCopySign()
6416 const LLT Src1Ty = MRI.getType(Src1); in lowerFCopySign()
6461 LLT Ty = MRI.getType(Dst); in lowerFMinNumMaxNum()
6487 LLT Ty = MRI.getType(DstReg); in lowerFMad()
6502 const LLT Ty = MRI.getType(DstReg); in lowerIntrinsicRound()
6503 const LLT CondTy = Ty.changeElementSize(1); in lowerIntrinsicRound()
6535 LLT Ty = MRI.getType(DstReg); in lowerFFloor()
6536 const LLT CondTy = Ty.changeElementSize(1); in lowerFFloor()
6562 LLT DstTy = MRI.getType(DstReg); in lowerMergeValues()
6563 LLT SrcTy = MRI.getType(Src0Reg); in lowerMergeValues()
6566 LLT WideTy = LLT::scalar(DstTy.getSizeInBits()); in lowerMergeValues()
6603 LLT DstTy = MRI.getType(Dst0Reg); in lowerUnmergeValues()
6612 LLT IntTy = MRI.getType(SrcReg); in lowerUnmergeValues()
6648 LLT VecTy = MRI.getType(SrcVec); in lowerExtractInsertVectorElt()
6649 LLT EltTy = VecTy.getElementType(); in lowerExtractInsertVectorElt()
6698 LLT Src0Ty = MRI.getType(Src0Reg); in lowerShuffleVector()
6699 LLT DstTy = MRI.getType(DstReg); in lowerShuffleVector()
6700 LLT IdxTy = LLT::scalar(32); in lowerShuffleVector()
6722 LLT EltTy = DstTy.getElementType(); in lowerShuffleVector()
6760 LLT PtrTy = MRI.getType(Dst); in lowerDynStackAlloc()
6761 LLT IntPtrTy = LLT::scalar(PtrTy.getSizeInBits()); in lowerDynStackAlloc()
6792 LLT DstTy = MRI.getType(Dst); in lowerExtract()
6793 LLT SrcTy = MRI.getType(Src); in lowerExtract()
6798 LLT SrcIntTy = SrcTy; in lowerExtract()
6800 SrcIntTy = LLT::scalar(SrcTy.getSizeInBits()); in lowerExtract()
6825 LLT DstTy = MRI.getType(Src); in lowerInsert()
6826 LLT InsertTy = MRI.getType(InsertSrc); in lowerInsert()
6841 LLT IntDstTy = DstTy; in lowerInsert()
6844 IntDstTy = LLT::scalar(DstTy.getSizeInBits()); in lowerInsert()
6849 const LLT IntInsertTy = LLT::scalar(InsertTy.getSizeInBits()); in lowerInsert()
6879 LLT Ty = MRI.getType(Dst0); in lowerSADDO_SSUBO()
6880 LLT BoolTy = MRI.getType(Dst1); in lowerSADDO_SSUBO()
6912 LLT Ty = MRI.getType(Res); in lowerAddSubSatToMinMax()
6989 LLT Ty = MRI.getType(Res); in lowerAddSubSatToAddoSubo()
6990 LLT BoolTy = Ty.changeElementSize(1); in lowerAddSubSatToAddoSubo()
7061 LLT Ty = MRI.getType(Res); in lowerShlSat()
7062 LLT BoolTy = Ty.changeElementSize(1); in lowerShlSat()
7090 const LLT Ty = MRI.getType(Src); in lowerBswap()
7124 const LLT Ty = Dst.getLLTTy(*B.getMRI()); in SwapN()
7136 const LLT Ty = MRI.getType(Src); in lowerBitreverse()
7172 const LLT Ty = MRI.getType(ValReg); in lowerReadWriteRegister()
7194 LLT OrigTy = MRI.getType(Result); in lowerSMULH_UMULH()
7196 LLT WideTy = OrigTy.changeElementSize(SizeInBits * 2); in lowerSMULH_UMULH()
7217 LLT DstTy = MRI.getType(DstReg); in lowerSelect()
7218 LLT MaskTy = MRI.getType(MaskReg); in lowerSelect()
7219 LLT Op1Ty = MRI.getType(Op1Reg); in lowerSelect()
7271 LLT DstTy = MRI.getType(MI.getOperand(0).getReg()); in lowerAbsToAddXor()
7289 LLT Ty = MRI.getType(SrcReg); in lowerAbsToMaxNeg()