Lines Matching refs:LLT

51 getNarrowTypeBreakDown(LLT OrigTy, LLT NarrowTy, LLT &LeftoverTy) {  in getNarrowTypeBreakDown()
67 LeftoverTy = LLT::scalarOrVector( in getNarrowTypeBreakDown()
70 LeftoverTy = LLT::scalar(LeftoverSize); in getNarrowTypeBreakDown()
77 static Type *getFloatTypeForLLT(LLVMContext &Ctx, LLT Ty) { in getFloatTypeForLLT()
156 void LegalizerHelper::extractParts(Register Reg, LLT Ty, int NumParts, in extractParts()
163 bool LegalizerHelper::extractParts(Register Reg, LLT RegTy, in extractParts()
164 LLT MainTy, LLT &LeftoverTy, in extractParts()
193 LeftoverTy = LLT::scalar(LeftoverSize); in extractParts()
213 LLT RegTy = MRI.getType(Reg); in extractVectorParts()
216 LLT EltTy = RegTy.getElementType(); in extractVectorParts()
217 LLT NarrowTy = (NumElts == 1) ? EltTy : LLT::fixed_vector(NumElts, EltTy); in extractVectorParts()
243 LLT LeftoverTy = LLT::fixed_vector(LeftoverNumElts, EltTy); in extractVectorParts()
250 LLT ResultTy, LLT PartTy, in insertParts()
252 LLT LeftoverTy, in insertParts()
279 LLT GCDTy = getGCDType(getGCDType(ResultTy, LeftoverTy), PartTy); in insertParts()
282 LLT ResultLCMTy = buildLCMMergePieces(ResultTy, LeftoverTy, GCDTy, GCDRegs); in insertParts()
288 LLT Ty = MRI.getType(Reg); in appendVectorElts()
323 LLT GCDTy, Register SrcReg) { in extractGCDType()
324 LLT SrcTy = MRI.getType(SrcReg); in extractGCDType()
336 LLT LegalizerHelper::extractGCDType(SmallVectorImpl<Register> &Parts, LLT DstTy, in extractGCDType()
337 LLT NarrowTy, Register SrcReg) { in extractGCDType()
338 LLT SrcTy = MRI.getType(SrcReg); in extractGCDType()
339 LLT GCDTy = getGCDType(getGCDType(SrcTy, NarrowTy), DstTy); in extractGCDType()
344 LLT LegalizerHelper::buildLCMMergePieces(LLT DstTy, LLT NarrowTy, LLT GCDTy, in buildLCMMergePieces()
347 LLT LCMTy = getLCMType(DstTy, NarrowTy); in buildLCMMergePieces()
367 MIRBuilder.buildConstant(LLT::scalar(64), GCDTy.getSizeInBits() - 1); in buildLCMMergePieces()
435 void LegalizerHelper::buildWidenedRemergeToDst(Register DstReg, LLT LCMTy, in buildWidenedRemergeToDst()
437 LLT DstTy = MRI.getType(DstReg); in buildWidenedRemergeToDst()
681 LLT OpLLT = MRI.getType(Reg); in createMemLibcall()
791 LLT LLTy = MRI.getType(MI.getOperand(0).getReg()); in libcall()
901 LLT NarrowTy) { in narrowScalar()
910 LLT DstTy = MRI.getType(DstReg); in narrowScalar()
919 LLT ImplicitTy = NarrowTy; in narrowScalar()
921 ImplicitTy = LLT::vector(DstTy.getElementCount(), ImplicitTy); in narrowScalar()
944 LLT Ty = MRI.getType(MI.getOperand(0).getReg()); in narrowScalar()
958 LLT LeftoverTy; in narrowScalar()
962 LeftoverTy = LLT::scalar(LeftoverBits); in narrowScalar()
999 LLT Ty = MRI.getType(MI.getOperand(0).getReg()); in narrowScalar()
1036 LLT DstTy = MRI.getType(DstReg); in narrowScalar()
1081 LLT SrcTy = MRI.getType(SrcReg); in narrowScalar()
1204 LLT SrcTy = MRI.getType(LHS); in narrowScalar()
1213 LLT LeftoverTy; // Example: s88 -> s64 (NarrowTy) + s24 (leftover) in narrowScalar()
1219 LLT Unused; // Matches LeftoverTy; G_ICMP LHS and RHS are the same type. in narrowScalar()
1228 LLT ResTy = MRI.getType(Dst); in narrowScalar()
1249 LLT GCDTy = extractGCDType(WidenedXors, NarrowTy, LeftoverTy, Xor); in narrowScalar()
1412 LLT Ty = MRI.getType(Val); in coerceToScalar()
1417 LLT NewTy = LLT::scalar(Ty.getSizeInBits()); in coerceToScalar()
1427 LLT EltTy = Ty.getElementType(); in coerceToScalar()
1433 void LegalizerHelper::widenScalarSrc(MachineInstr &MI, LLT WideTy, in widenScalarSrc()
1440 void LegalizerHelper::narrowScalarSrc(MachineInstr &MI, LLT NarrowTy, in narrowScalarSrc()
1447 void LegalizerHelper::widenScalarDst(MachineInstr &MI, LLT WideTy, in widenScalarDst()
1456 void LegalizerHelper::narrowScalarDst(MachineInstr &MI, LLT NarrowTy, in narrowScalarDst()
1465 void LegalizerHelper::moreElementsVectorDst(MachineInstr &MI, LLT WideTy, in moreElementsVectorDst()
1475 void LegalizerHelper::moreElementsVectorSrc(MachineInstr &MI, LLT MoreTy, in moreElementsVectorSrc()
1482 void LegalizerHelper::bitcastSrc(MachineInstr &MI, LLT CastTy, unsigned OpIdx) { in bitcastSrc()
1487 void LegalizerHelper::bitcastDst(MachineInstr &MI, LLT CastTy, unsigned OpIdx) { in bitcastDst()
1497 LLT WideTy) { in widenScalarMergeValues()
1502 LLT DstTy = MRI.getType(DstReg); in widenScalarMergeValues()
1507 LLT SrcTy = MRI.getType(Src1); in widenScalarMergeValues()
1525 assert(MRI.getType(SrcReg) == LLT::scalar(PartSize)); in widenScalarMergeValues()
1569 LLT GCDTy = LLT::scalar(GCD); in widenScalarMergeValues()
1574 LLT WideDstTy = LLT::scalar(NumMerge * WideSize); in widenScalarMergeValues()
1619 LLT WideTy) { in widenScalarUnmergeValues()
1625 LLT SrcTy = MRI.getType(SrcReg); in widenScalarUnmergeValues()
1630 LLT DstTy = MRI.getType(Dst0Reg); in widenScalarUnmergeValues()
1643 SrcTy = LLT::scalar(SrcTy.getSizeInBits()); in widenScalarUnmergeValues()
1671 LLT LCMTy = getLCMType(SrcTy, WideTy); in widenScalarUnmergeValues()
1701 const LLT GCDTy = getGCDType(WideTy, DstTy); in widenScalarUnmergeValues()
1748 LLT WideTy) { in widenScalarExtract()
1751 LLT SrcTy = MRI.getType(SrcReg); in widenScalarExtract()
1753 LLT DstTy = MRI.getType(DstReg); in widenScalarExtract()
1768 LLT SrcAsIntTy = LLT::scalar(SrcTy.getSizeInBits()); in widenScalarExtract()
1785 LLT ShiftTy = SrcTy; in widenScalarExtract()
1826 LLT WideTy) { in widenScalarInsert()
1838 LLT WideTy) { in widenScalarAddSubOverflow()
1900 LLT CarryOutTy = MRI.getType(MI.getOperand(1).getReg()); in widenScalarAddSubOverflow()
1908 LLT OrigTy = MRI.getType(MI.getOperand(0).getReg()); in widenScalarAddSubOverflow()
1921 LLT WideTy) { in widenScalarAddSubShlSat()
1965 LLT WideTy) { in widenScalarMulo()
1978 LLT SrcTy = MRI.getType(LHS); in widenScalarMulo()
1979 LLT OverflowTy = MRI.getType(OriginalOverflow); in widenScalarMulo()
2024 LegalizerHelper::widenScalar(MachineInstr &MI, unsigned TypeIdx, LLT WideTy) { in widenScalar()
2114 LLT CurTy = MRI.getType(SrcReg); in widenScalar()
2156 LLT Ty = MRI.getType(DstReg); in widenScalar()
2169 LLT Ty = MRI.getType(DstReg); in widenScalar()
2363 LLT Ty = MRI.getType(MI.getOperand(0).getReg()); in widenScalar()
2470 LLT VecTy = MRI.getType(VecReg); in widenScalar()
2474 MI, LLT::vector(VecTy.getElementCount(), WideTy.getSizeInBits()), 1, in widenScalar()
2495 LLT VecTy = MRI.getType(VecReg); in widenScalar()
2496 LLT WideVecTy = LLT::vector(VecTy.getElementCount(), WideTy); in widenScalar()
2584 const LLT WideEltTy = TypeIdx == 1 ? WideTy : WideTy.getElementType(); in widenScalar()
2620 MachineIRBuilder &B, Register Src, LLT Ty) { in getUnmergePieces()
2630 LLT DstTy = MRI.getType(Dst); in lowerBitcast()
2631 LLT SrcTy = MRI.getType(Src); in lowerBitcast()
2634 LLT SrcEltTy = SrcTy.getElementType(); in lowerBitcast()
2641 LLT DstEltTy = DstTy.getElementType(); in lowerBitcast()
2642 LLT DstCastTy = DstEltTy; // Intermediate bitcast result type in lowerBitcast()
2643 LLT SrcPartTy = SrcEltTy; // Original unmerge result type. in lowerBitcast()
2656 DstCastTy = LLT::fixed_vector(NumDstElt / NumSrcElt, DstEltTy); in lowerBitcast()
2668 SrcPartTy = LLT::fixed_vector(NumSrcElt / NumDstElt, SrcEltTy); in lowerBitcast()
2706 LLT IdxTy = B.getMRI()->getType(Idx); in getBitcastWiderVectorElementOffset()
2724 LLT CastTy) { in bitcastExtractVectorElt()
2731 LLT SrcVecTy = MRI.getType(SrcVec); in bitcastExtractVectorElt()
2732 LLT IdxTy = MRI.getType(Idx); in bitcastExtractVectorElt()
2734 LLT SrcEltTy = SrcVecTy.getElementType(); in bitcastExtractVectorElt()
2738 LLT NewEltTy = CastTy.isVector() ? CastTy.getElementType() : CastTy; in bitcastExtractVectorElt()
2759 LLT MidTy = in bitcastExtractVectorElt()
2760 LLT::scalarOrVector(ElementCount::getFixed(NewEltsPerOldElt), NewEltTy); in bitcastExtractVectorElt()
2836 LLT TargetTy = B.getMRI()->getType(TargetReg); in buildBitFieldInsert()
2837 LLT InsertTy = B.getMRI()->getType(InsertReg); in buildBitFieldInsert()
2864 LLT CastTy) { in bitcastInsertVectorElt()
2873 LLT VecTy = MRI.getType(Dst); in bitcastInsertVectorElt()
2874 LLT IdxTy = MRI.getType(Idx); in bitcastInsertVectorElt()
2876 LLT VecEltTy = VecTy.getElementType(); in bitcastInsertVectorElt()
2877 LLT NewEltTy = CastTy.isVector() ? CastTy.getElementType() : CastTy; in bitcastInsertVectorElt()
2930 LLT DstTy = MRI.getType(DstReg); in lowerLoad()
2932 LLT MemTy = MMO.getMemoryType(); in lowerLoad()
2944 LLT WideMemTy = LLT::scalar(MemStoreSizeInBits); in lowerLoad()
2949 LLT LoadTy = DstTy; in lowerLoad()
3029 LLT PtrTy = MRI.getType(PtrReg); in lowerLoad()
3031 LLT AnyExtTy = LLT::scalar(AnyExtSize); in lowerLoad()
3035 auto OffsetCst = MIRBuilder.buildConstant(LLT::scalar(PtrTy.getSizeInBits()), in lowerLoad()
3072 LLT SrcTy = MRI.getType(SrcReg); in lowerStore()
3075 LLT MemTy = MMO.getMemoryType(); in lowerStore()
3087 LLT WideTy = LLT::scalar(StoreSizeInBits); in lowerStore()
3132 const LLT NewSrcTy = LLT::scalar(AnyExtSize); in lowerStore()
3135 const LLT IntPtrTy = LLT::scalar(SrcTy.getSizeInBits()); in lowerStore()
3146 LLT PtrTy = MRI.getType(PtrReg); in lowerStore()
3148 LLT::scalar(PtrTy.getSizeInBits()), LargeSplitSize / 8); in lowerStore()
3163 LegalizerHelper::bitcast(MachineInstr &MI, unsigned TypeIdx, LLT CastTy) { in bitcast()
3240 LegalizerHelper::lower(MachineInstr &MI, unsigned TypeIdx, LLT LowerHintTy) { in lower()
3250 LLT Ty = MRI.getType(MI.getOperand(0).getReg()); in lower()
3274 LLT Ty = MRI.getType(Res); in lower()
3305 LLT Ty = MRI.getType(Res); in lower()
3320 LLT Ty = MRI.getType(Res); in lower()
3389 LLT Ty = MRI.getType(Res); in lower()
3417 const LLT CondTy = MRI.getType(BorrowOut); in lower()
3418 const LLT Ty = MRI.getType(Res); in lower()
3463 LLT DstTy = MRI.getType(DstReg); in lower()
3495 LLT Ty = MRI.getType(MI.getOperand(0).getReg()); in lower()
3502 LLT Ty = MRI.getType(MI.getOperand(0).getReg()); in lower()
3538 Align LegalizerHelper::getStackTemporaryAlignment(LLT Ty, in getStackTemporaryAlignment()
3556 LLT FramePtrTy = LLT::pointer(AddrSpace, DL.getPointerSizeInBits(AddrSpace)); in createStackTemporary()
3563 LLT VecTy) { in clampDynamicVectorIndex()
3568 LLT IdxTy = B.getMRI()->getType(IdxReg); in clampDynamicVectorIndex()
3579 Register LegalizerHelper::getVectorElementPointer(Register VecPtr, LLT VecTy, in getVectorElementPointer()
3581 LLT EltTy = VecTy.getElementType(); in getVectorElementPointer()
3590 LLT IdxTy = MRI.getType(Index); in getVectorElementPointer()
3594 LLT PtrTy = MRI.getType(VecPtr); in getVectorElementPointer()
3607 LLT VecTy = MRI.getType(MI.getReg(0)); in hasSameNumEltsOnAllVectorOperands()
3620 LLT Ty = MRI.getType(Op.getReg()); in hasSameNumEltsOnAllVectorOperands()
3639 static void makeDstOps(SmallVectorImpl<DstOp> &DstOps, LLT Ty, in makeDstOps()
3641 LLT LeftoverTy; in makeDstOps()
3643 LLT EltTy = Ty.getElementType(); in makeDstOps()
3644 LLT NarrowTy = (NumElts == 1) ? EltTy : LLT::fixed_vector(NumElts, EltTy); in makeDstOps()
3809 LLT NarrowTy) { in fewerElementsVectorUnmergeValues()
3812 LLT DstTy = MRI.getType(MI.getOperand(0).getReg()); in fewerElementsVectorUnmergeValues()
3813 LLT SrcTy = MRI.getType(SrcReg); in fewerElementsVectorUnmergeValues()
3857 LLT NarrowTy) { in fewerElementsVectorMerge()
3859 LLT DstTy = MRI.getType(DstReg); in fewerElementsVectorMerge()
3860 LLT SrcTy = MRI.getType(MI.getOperand(1).getReg()); in fewerElementsVectorMerge()
3889 LLT EltTy = MRI.getType(MI.getOperand(1).getReg()).getScalarType(); in fewerElementsVectorMerge()
3944 LLT NarrowVecTy) { in fewerElementsVectorExtractInsertVectorElt()
3960 LLT VecTy = MRI.getType(SrcVec); in fewerElementsVectorExtractInsertVectorElt()
3976 LLT GCDTy = extractGCDType(VecParts, VecTy, NarrowVecTy, SrcVec); in fewerElementsVectorExtractInsertVectorElt()
3979 LLT LCMTy = buildLCMMergePieces(VecTy, NarrowVecTy, GCDTy, VecParts, in fewerElementsVectorExtractInsertVectorElt()
3984 LLT IdxTy = MRI.getType(Idx); in fewerElementsVectorExtractInsertVectorElt()
3990 LLT PartTy = MRI.getType(VecParts[PartIdx]); in fewerElementsVectorExtractInsertVectorElt()
4018 LLT NarrowTy) { in reduceLoadStoreWidth()
4031 LLT ValTy = MRI.getType(ValReg); in reduceLoadStoreWidth()
4041 LLT LeftoverTy; in reduceLoadStoreWidth()
4056 LLT PtrTy = MRI.getType(AddrReg); in reduceLoadStoreWidth()
4057 const LLT OffsetTy = LLT::scalar(PtrTy.getSizeInBits()); in reduceLoadStoreWidth()
4067 auto splitTypePieces = [=](LLT PartTy, SmallVectorImpl<Register> &ValRegs, in reduceLoadStoreWidth()
4113 LLT NarrowTy) { in fewerElementsVector()
4254 MachineInstr &MI, unsigned int TypeIdx, LLT NarrowTy) { in fewerElementsVectorShuffle()
4263 LLT DstTy = MRI.getType(DstReg); in fewerElementsVectorShuffle()
4264 LLT Src1Ty = MRI.getType(Src1Reg); in fewerElementsVectorShuffle()
4265 LLT Src2Ty = MRI.getType(Src2Reg); in fewerElementsVectorShuffle()
4344 LLT EltTy = NarrowTy.getElementType(); in fewerElementsVectorShuffle()
4368 MIRBuilder.buildConstant(LLT::scalar(32), Idx)) in fewerElementsVectorShuffle()
4444 MachineInstr &MI, unsigned int TypeIdx, LLT NarrowTy) { in fewerElementsVectorReductions()
4456 LLT SrcTy = MRI.getType(SrcReg); in fewerElementsVectorReductions()
4458 LLT DstTy = MRI.getType(DstReg); in fewerElementsVectorReductions()
4537 LLT SrcTy, LLT NarrowTy, in tryNarrowPow2Reduction()
4566 const LLT HalfTy, const LLT AmtTy) { in narrowScalarShiftByConstant()
4578 LLT NVT = HalfTy; in narrowScalarShiftByConstant()
4655 LLT RequestedTy) { in narrowScalarShift()
4664 LLT DstTy = MRI.getType(DstReg); in narrowScalarShift()
4669 LLT ShiftAmtTy = MRI.getType(Amt); in narrowScalarShift()
4678 const LLT HalfTy = LLT::scalar(NewBitSize); in narrowScalarShift()
4679 const LLT CondTy = LLT::scalar(1); in narrowScalarShift()
4764 LLT MoreTy) { in moreElementsVectorPhi()
4783 LLT MoreTy) { in moreElementsVector()
4866 LLT DstTy = MRI.getType(DstReg); in moreElementsVector()
4867 LLT CondTy = MRI.getType(CondReg); in moreElementsVector()
4927 unsigned int TypeIdx, LLT MoreTy) { in moreElementsVectorShuffle()
4935 LLT DstTy = MRI.getType(DstReg); in moreElementsVectorShuffle()
4936 LLT Src1Ty = MRI.getType(Src1Reg); in moreElementsVectorShuffle()
4937 LLT Src2Ty = MRI.getType(Src2Reg); in moreElementsVectorShuffle()
4971 LLT NarrowTy) { in multiplyRegisters()
5008 B.buildUAddo(NarrowTy, LLT::scalar(1), Factors[0], Factors[1]); in multiplyRegisters()
5013 B.buildUAddo(NarrowTy, LLT::scalar(1), FactorSum, Factors[i]); in multiplyRegisters()
5033 LLT NarrowTy) { in narrowScalarAddSub()
5038 LLT DstType = MRI.getType(DstReg); in narrowScalarAddSub()
5082 LLT RegTy = MRI.getType(MI.getOperand(0).getReg()); in narrowScalarAddSub()
5083 LLT LeftoverTy, DummyTy; in narrowScalarAddSub()
5098 Register CarryOut = MRI.createGenericVirtualRegister(LLT::scalar(1)); in narrowScalarAddSub()
5126 LegalizerHelper::narrowScalarMul(MachineInstr &MI, LLT NarrowTy) { in narrowScalarMul()
5131 LLT Ty = MRI.getType(DstReg); in narrowScalarMul()
5159 LLT NarrowTy) { in narrowScalarFPTOI()
5166 LLT SrcTy = MRI.getType(Src); in narrowScalarFPTOI()
5171 if (SrcTy.getScalarType() != LLT::scalar(16) || in narrowScalarFPTOI()
5184 LLT NarrowTy) { in narrowScalarExtract()
5231 SegReg = MRI.createGenericVirtualRegister(LLT::scalar(SegSize)); in narrowScalarExtract()
5251 LLT NarrowTy) { in narrowScalarInsert()
5258 LLT RegTy = MRI.getType(MI.getOperand(0).getReg()); in narrowScalarInsert()
5259 LLT LeftoverTy; in narrowScalarInsert()
5311 SegReg = MRI.createGenericVirtualRegister(LLT::scalar(SegSize)); in narrowScalarInsert()
5323 Register MergeReg = MRI.createGenericVirtualRegister(LLT::scalar(WideSize)); in narrowScalarInsert()
5335 LLT NarrowTy) { in narrowScalarBasic()
5337 LLT DstTy = MRI.getType(DstReg); in narrowScalarBasic()
5344 LLT LeftoverTy; in narrowScalarBasic()
5349 LLT Unused; in narrowScalarBasic()
5376 LLT NarrowTy) { in narrowScalarExt()
5383 LLT DstTy = MRI.getType(DstReg); in narrowScalarExt()
5388 LLT GCDTy = extractGCDType(Parts, DstTy, NarrowTy, SrcReg); in narrowScalarExt()
5389 LLT LCMTy = buildLCMMergePieces(DstTy, NarrowTy, GCDTy, Parts, MI.getOpcode()); in narrowScalarExt()
5398 LLT NarrowTy) { in narrowScalarSelect()
5403 LLT CondTy = MRI.getType(CondReg); in narrowScalarSelect()
5408 LLT DstTy = MRI.getType(DstReg); in narrowScalarSelect()
5413 LLT LeftoverTy; in narrowScalarSelect()
5418 LLT Unused; in narrowScalarSelect()
5444 LLT NarrowTy) { in narrowScalarCTLZ()
5450 LLT DstTy = MRI.getType(DstReg); in narrowScalarCTLZ()
5451 LLT SrcTy = MRI.getType(SrcReg); in narrowScalarCTLZ()
5461 auto HiIsZero = B.buildICmp(CmpInst::ICMP_EQ, LLT::scalar(1), in narrowScalarCTLZ()
5480 LLT NarrowTy) { in narrowScalarCTTZ()
5486 LLT DstTy = MRI.getType(DstReg); in narrowScalarCTTZ()
5487 LLT SrcTy = MRI.getType(SrcReg); in narrowScalarCTTZ()
5497 auto LoIsZero = B.buildICmp(CmpInst::ICMP_EQ, LLT::scalar(1), in narrowScalarCTTZ()
5516 LLT NarrowTy) { in narrowScalarCTPOP()
5521 LLT DstTy = MRI.getType(DstReg); in narrowScalarCTPOP()
5522 LLT SrcTy = MRI.getType(MI.getOperand(1).getReg()); in narrowScalarCTPOP()
5560 LLT DstTy = MRI.getType(DstReg); in lowerBitCount()
5561 LLT SrcTy = MRI.getType(SrcReg); in lowerBitCount()
5610 LLT DstTy = MRI.getType(DstReg); in lowerBitCount()
5611 LLT SrcTy = MRI.getType(SrcReg); in lowerBitCount()
5648 LLT Ty = MRI.getType(SrcReg); in lowerBitCount()
5721 LLT Ty = MRI.getType(Dst); in lowerFunnelShiftWithInverse()
5722 LLT ShTy = MRI.getType(Z); in lowerFunnelShiftWithInverse()
5763 LLT Ty = MRI.getType(Dst); in lowerFunnelShiftAsShifts()
5764 LLT ShTy = MRI.getType(Z); in lowerFunnelShiftAsShifts()
5822 LLT Ty = MRI.getType(Dst); in lowerFunnelShift()
5823 LLT ShTy = MRI.getType(MI.getOperand(3).getReg()); in lowerFunnelShift()
5844 LLT AmtTy = MRI.getType(Amt); in lowerRotateWithReverseRotate()
5858 LLT DstTy = MRI.getType(Dst); in lowerRotate()
5859 LLT SrcTy = MRI.getType(Src); in lowerRotate()
5860 LLT AmtTy = MRI.getType(Amt); in lowerRotate()
5932 const LLT S64 = LLT::scalar(64); in lowerU64ToF32BitOps()
5933 const LLT S32 = LLT::scalar(32); in lowerU64ToF32BitOps()
5934 const LLT S1 = LLT::scalar(1); in lowerU64ToF32BitOps()
5988 LLT DstTy = MRI.getType(Dst); in lowerUITOFP()
5989 LLT SrcTy = MRI.getType(Src); in lowerUITOFP()
5991 if (SrcTy == LLT::scalar(1)) { in lowerUITOFP()
5999 if (SrcTy != LLT::scalar(64)) in lowerUITOFP()
6002 if (DstTy == LLT::scalar(32)) { in lowerUITOFP()
6016 LLT DstTy = MRI.getType(Dst); in lowerSITOFP()
6017 LLT SrcTy = MRI.getType(Src); in lowerSITOFP()
6019 const LLT S64 = LLT::scalar(64); in lowerSITOFP()
6020 const LLT S32 = LLT::scalar(32); in lowerSITOFP()
6021 const LLT S1 = LLT::scalar(1); in lowerSITOFP()
6062 LLT DstTy = MRI.getType(Dst); in lowerFPTOUI()
6063 LLT SrcTy = MRI.getType(Src); in lowerFPTOUI()
6064 const LLT S64 = LLT::scalar(64); in lowerFPTOUI()
6065 const LLT S32 = LLT::scalar(32); in lowerFPTOUI()
6092 const LLT S1 = LLT::scalar(1); in lowerFPTOUI()
6105 LLT DstTy = MRI.getType(Dst); in lowerFPTOSI()
6106 LLT SrcTy = MRI.getType(Src); in lowerFPTOSI()
6107 const LLT S64 = LLT::scalar(64); in lowerFPTOSI()
6108 const LLT S32 = LLT::scalar(32); in lowerFPTOSI()
6148 const LLT S1 = LLT::scalar(1); in lowerFPTOSI()
6181 const LLT S32 = LLT::scalar(32); in lowerFPTRUNC_F64_TO_F16()
6182 const LLT S1 = LLT::scalar(1); in lowerFPTRUNC_F64_TO_F16()
6280 LLT DstTy = MRI.getType(Dst); in lowerFPTRUNC()
6281 LLT SrcTy = MRI.getType(Src); in lowerFPTRUNC()
6282 const LLT S64 = LLT::scalar(64); in lowerFPTRUNC()
6283 const LLT S16 = LLT::scalar(16); in lowerFPTRUNC()
6297 LLT Ty = MRI.getType(Dst); in lowerFPOWI()
6326 LLT CmpType = MRI.getType(Dst).changeElementSize(1); in lowerMinMax()
6341 const LLT Src0Ty = MRI.getType(Src0); in lowerFCopySign()
6342 const LLT Src1Ty = MRI.getType(Src1); in lowerFCopySign()
6387 LLT Ty = MRI.getType(Dst); in lowerFMinNumMaxNum()
6413 LLT Ty = MRI.getType(DstReg); in lowerFMad()
6428 const LLT Ty = MRI.getType(DstReg); in lowerIntrinsicRound()
6429 const LLT CondTy = Ty.changeElementSize(1); in lowerIntrinsicRound()
6461 LLT Ty = MRI.getType(DstReg); in lowerFFloor()
6462 const LLT CondTy = Ty.changeElementSize(1); in lowerFFloor()
6488 LLT DstTy = MRI.getType(DstReg); in lowerMergeValues()
6489 LLT SrcTy = MRI.getType(Src0Reg); in lowerMergeValues()
6492 LLT WideTy = LLT::scalar(DstTy.getSizeInBits()); in lowerMergeValues()
6529 LLT DstTy = MRI.getType(Dst0Reg); in lowerUnmergeValues()
6538 LLT IntTy = MRI.getType(SrcReg); in lowerUnmergeValues()
6574 LLT VecTy = MRI.getType(SrcVec); in lowerExtractInsertVectorElt()
6575 LLT EltTy = VecTy.getElementType(); in lowerExtractInsertVectorElt()
6641 LLT Src0Ty = MRI.getType(Src0Reg); in lowerShuffleVector()
6642 LLT DstTy = MRI.getType(DstReg); in lowerShuffleVector()
6643 LLT IdxTy = LLT::scalar(32); in lowerShuffleVector()
6665 LLT EltTy = DstTy.getElementType(); in lowerShuffleVector()
6703 LLT PtrTy = MRI.getType(Dst); in lowerDynStackAlloc()
6704 LLT IntPtrTy = LLT::scalar(PtrTy.getSizeInBits()); in lowerDynStackAlloc()
6735 LLT DstTy = MRI.getType(Dst); in lowerExtract()
6736 LLT SrcTy = MRI.getType(Src); in lowerExtract()
6767 LLT SrcIntTy = SrcTy; in lowerExtract()
6769 SrcIntTy = LLT::scalar(SrcTy.getSizeInBits()); in lowerExtract()
6794 LLT DstTy = MRI.getType(Src); in lowerInsert()
6795 LLT InsertTy = MRI.getType(InsertSrc); in lowerInsert()
6799 LLT EltTy = DstTy.getElementType(); in lowerInsert()
6849 LLT IntDstTy = DstTy; in lowerInsert()
6852 IntDstTy = LLT::scalar(DstTy.getSizeInBits()); in lowerInsert()
6857 const LLT IntInsertTy = LLT::scalar(InsertTy.getSizeInBits()); in lowerInsert()
6887 LLT Ty = MRI.getType(Dst0); in lowerSADDO_SSUBO()
6888 LLT BoolTy = MRI.getType(Dst1); in lowerSADDO_SSUBO()
6920 LLT Ty = MRI.getType(Res); in lowerAddSubSatToMinMax()
6997 LLT Ty = MRI.getType(Res); in lowerAddSubSatToAddoSubo()
6998 LLT BoolTy = Ty.changeElementSize(1); in lowerAddSubSatToAddoSubo()
7069 LLT Ty = MRI.getType(Res); in lowerShlSat()
7070 LLT BoolTy = Ty.changeElementSize(1); in lowerShlSat()
7098 const LLT Ty = MRI.getType(Src); in lowerBswap()
7132 const LLT Ty = Dst.getLLTTy(*B.getMRI()); in SwapN()
7144 const LLT Ty = MRI.getType(Src); in lowerBitreverse()
7180 const LLT Ty = MRI.getType(ValReg); in lowerReadWriteRegister()
7202 LLT OrigTy = MRI.getType(Result); in lowerSMULH_UMULH()
7204 LLT WideTy = OrigTy.changeElementSize(SizeInBits * 2); in lowerSMULH_UMULH()
7225 LLT DstTy = MRI.getType(DstReg); in lowerSelect()
7226 LLT MaskTy = MRI.getType(MaskReg); in lowerSelect()
7238 MaskTy != LLT::scalar(1)) { in lowerSelect()
7286 LLT DstTy = MRI.getType(MI.getOperand(0).getReg()); in lowerAbsToAddXor()
7304 LLT Ty = MRI.getType(SrcReg); in lowerAbsToMaxNeg()
7315 LLT SrcTy = MRI.getType(SrcReg); in lowerVectorReduction()
7316 LLT DstTy = MRI.getType(SrcReg); in lowerVectorReduction()
7341 static bool findGISelOptimalMemOpLowering(std::vector<LLT> &MemOps, in findGISelOptimalMemOpLowering()
7349 LLT Ty = TLI.getOptimalMemOpLLT(Op, FuncAttributes); in findGISelOptimalMemOpLowering()
7351 if (Ty == LLT()) { in findGISelOptimalMemOpLowering()
7355 Ty = LLT::scalar(64); in findGISelOptimalMemOpLowering()
7359 Ty = LLT::scalar(Ty.getSizeInBytes()); in findGISelOptimalMemOpLowering()
7370 LLT NewTy = Ty; in findGISelOptimalMemOpLowering()
7374 NewTy = NewTy.getSizeInBits() > 64 ? LLT::scalar(64) : LLT::scalar(32); in findGISelOptimalMemOpLowering()
7375 NewTy = LLT::scalar(PowerOf2Floor(NewTy.getSizeInBits() - 1)); in findGISelOptimalMemOpLowering()
7406 static Type *getTypeForLLT(LLT Ty, LLVMContext &C) { in getTypeForLLT()
7414 static Register getMemsetValue(Register Val, LLT Ty, MachineIRBuilder &MIB) { in getMemsetValue()
7431 LLT ExtType = Ty.getScalarType(); in getMemsetValue()
7466 std::vector<LLT> MemOps; in lowerMemset()
7498 LLT LargestTy = MemOps[0]; in lowerMemset()
7513 LLT PtrTy = MRI.getType(Dst); in lowerMemset()
7517 LLT Ty = MemOps[I]; in lowerMemset()
7546 MIB.buildConstant(LLT::scalar(PtrTy.getSizeInBits()), DstOff); in lowerMemset()
7624 std::vector<LLT> MemOps; in lowerMemcpy()
7686 LLT SrcTy = MRI.getType(Src); in lowerMemcpy()
7687 Offset = MIB.buildConstant(LLT::scalar(SrcTy.getSizeInBits()), CurrOffset) in lowerMemcpy()
7696 LLT DstTy = MRI.getType(Dst); in lowerMemcpy()
7729 std::vector<LLT> MemOps; in lowerMemmove()
7784 LLT SrcTy = MRI.getType(Src); in lowerMemmove()
7786 MIB.buildConstant(LLT::scalar(SrcTy.getSizeInBits()), CurrOffset); in lowerMemmove()
7795 LLT CopyTy = MemOps[I]; in lowerMemmove()
7802 LLT DstTy = MRI.getType(Dst); in lowerMemmove()
7804 MIB.buildConstant(LLT::scalar(DstTy.getSizeInBits()), CurrOffset); in lowerMemmove()