Lines Matching refs:SrcTy
238 LLT SrcTy = MRI.getType(SrcReg); in extractGCDType() local
239 if (SrcTy == GCDTy) { in extractGCDType()
252 LLT SrcTy = MRI.getType(SrcReg); in extractGCDType() local
253 LLT GCDTy = getGCDType(getGCDType(SrcTy, NarrowTy), DstTy); in extractGCDType()
1403 LLT SrcTy = MRI.getType(SrcReg); in narrowScalar() local
1404 if (SrcTy.isVector()) in narrowScalar()
1409 unsigned LeftoverBits = SrcTy.getSizeInBits() - HandledSize; in narrowScalar()
1410 if (SrcTy.isVector() && LeftoverBits != 0) in narrowScalar()
1413 if (8 * StoreMI.getMemSize().getValue() != SrcTy.getSizeInBits()) { in narrowScalar()
1526 LLT SrcTy = MRI.getType(LHS); in narrowScalar() local
1527 uint64_t SrcSize = SrcTy.getSizeInBits(); in narrowScalar()
1537 if (!extractParts(LHS, SrcTy, NarrowTy, LeftoverTy, LHSPartRegs, in narrowScalar()
1543 if (!extractParts(MI.getOperand(3).getReg(), SrcTy, NarrowTy, Unused, in narrowScalar()
1854 LLT SrcTy = MRI.getType(Src1Reg); in widenScalarMergeValues() local
1856 const int SrcSize = SrcTy.getSizeInBits(); in widenScalarMergeValues()
1973 LLT SrcTy = MRI.getType(SrcReg); in widenScalarUnmergeValues() local
1974 if (SrcTy.isVector()) in widenScalarUnmergeValues()
1982 if (WideTy.getSizeInBits() >= SrcTy.getSizeInBits()) { in widenScalarUnmergeValues()
1983 if (SrcTy.isPointer()) { in widenScalarUnmergeValues()
1985 if (DL.isNonIntegralAddressSpace(SrcTy.getAddressSpace())) { in widenScalarUnmergeValues()
1991 SrcTy = LLT::scalar(SrcTy.getSizeInBits()); in widenScalarUnmergeValues()
1992 SrcReg = MIRBuilder.buildPtrToInt(SrcTy, SrcReg).getReg(0); in widenScalarUnmergeValues()
1998 if (WideTy.getSizeInBits() > SrcTy.getSizeInBits()) { in widenScalarUnmergeValues()
1999 SrcTy = WideTy; in widenScalarUnmergeValues()
2009 auto ShiftAmt = MIRBuilder.buildConstant(SrcTy, DstSize * I); in widenScalarUnmergeValues()
2010 auto Shr = MIRBuilder.buildLShr(SrcTy, SrcReg, ShiftAmt); in widenScalarUnmergeValues()
2019 LLT LCMTy = getLCMType(SrcTy, WideTy); in widenScalarUnmergeValues()
2022 if (LCMTy.getSizeInBits() != SrcTy.getSizeInBits()) { in widenScalarUnmergeValues()
2024 if (SrcTy.isPointer()) { in widenScalarUnmergeValues()
2097 auto [DstReg, DstTy, SrcReg, SrcTy] = MI.getFirst2RegLLTs(); in widenScalarExtract()
2101 if (SrcTy.isVector() || DstTy.isVector()) in widenScalarExtract()
2105 if (SrcTy.isPointer()) { in widenScalarExtract()
2109 if (DL.isNonIntegralAddressSpace(SrcTy.getAddressSpace())) in widenScalarExtract()
2112 LLT SrcAsIntTy = LLT::scalar(SrcTy.getSizeInBits()); in widenScalarExtract()
2114 SrcTy = SrcAsIntTy; in widenScalarExtract()
2129 LLT ShiftTy = SrcTy; in widenScalarExtract()
2130 if (WideTy.getSizeInBits() > SrcTy.getSizeInBits()) { in widenScalarExtract()
2142 if (SrcTy.isScalar()) { in widenScalarExtract()
2149 if (!SrcTy.isVector()) in widenScalarExtract()
2152 if (DstTy != SrcTy.getElementType()) in widenScalarExtract()
2155 if (Offset % SrcTy.getScalarSizeInBits() != 0) in widenScalarExtract()
2161 MI.getOperand(2).setImm((WideTy.getSizeInBits() / SrcTy.getSizeInBits()) * in widenScalarExtract()
2319 LLT SrcTy = MRI.getType(LHS); in widenScalarMulo() local
2321 unsigned SrcBitWidth = SrcTy.getScalarSizeInBits(); in widenScalarMulo()
3135 auto [Dst, DstTy, Src, SrcTy] = MI.getFirst2RegLLTs(); in lowerBitcast()
3136 if (SrcTy.isVector()) { in lowerBitcast()
3137 LLT SrcEltTy = SrcTy.getElementType(); in lowerBitcast()
3142 int NumSrcElt = SrcTy.getNumElements(); in lowerBitcast()
3444 auto [DstReg, DstTy, SrcReg, SrcTy] = MI.getFirst2RegLLTs(); in bitcastConcatVector()
3445 LLT SrcScalTy = LLT::scalar(SrcTy.getSizeInBits()); in bitcastConcatVector()
3615 LLT SrcTy = MRI.getType(SrcReg); in lowerStore() local
3624 if (SrcTy.isVector()) in lowerStore()
3632 if (StoreSizeInBits > SrcTy.getSizeInBits()) { in lowerStore()
3635 SrcTy = WideTy; in lowerStore()
3638 auto ZextInReg = MIRBuilder.buildZExtInReg(SrcTy, SrcReg, StoreWidth); in lowerStore()
3649 if (MemTy != SrcTy) in lowerStore()
3654 return reduceLoadStoreWidth(StoreMI, 0, SrcTy.getElementType()); in lowerStore()
3677 if (SrcTy.isPointer()) { in lowerStore()
3678 const LLT IntPtrTy = LLT::scalar(SrcTy.getSizeInBits()); in lowerStore()
4409 LLT SrcTy = MRI.getType(SrcReg); in fewerElementsVectorUnmergeValues() local
4418 assert(SrcTy.isVector() && NarrowTy.isVector() && "Expected vector types"); in fewerElementsVectorUnmergeValues()
4419 assert((SrcTy.getScalarType() == NarrowTy.getScalarType()) && "bad type"); in fewerElementsVectorUnmergeValues()
4421 if ((SrcTy.getSizeInBits() % NarrowTy.getSizeInBits() != 0) || in fewerElementsVectorUnmergeValues()
4454 auto [DstReg, DstTy, SrcReg, SrcTy] = MI.getFirst2RegLLTs(); in fewerElementsVectorMerge()
4460 if (NarrowTy == SrcTy) in fewerElementsVectorMerge()
4468 assert(SrcTy.isVector() && "Expected vector types"); in fewerElementsVectorMerge()
4469 assert((SrcTy.getScalarType() == NarrowTy.getScalarType()) && "bad type"); in fewerElementsVectorMerge()
4471 (NarrowTy.getNumElements() >= SrcTy.getNumElements())) in fewerElementsVectorMerge()
4506 if ((NarrowTy.getSizeInBits() % SrcTy.getSizeInBits() != 0) || in fewerElementsVectorMerge()
4522 unsigned NumSrcElts = SrcTy.isVector() ? SrcTy.getNumElements() : 1; in fewerElementsVectorMerge()
4883 auto [DstReg, DstTy, SrcReg, SrcTy] = MI.getFirst2RegLLTs(); in fewerElementsBitcast()
4885 unsigned SrcScalSize = SrcTy.getScalarSizeInBits(); in fewerElementsBitcast()
5052 auto [DstReg, DstTy, SrcReg, SrcTy] = RdxMI.getFirst2RegLLTs(); in fewerElementsVectorReductions()
5055 (SrcTy.getNumElements() % NarrowTy.getNumElements() != 0)) in fewerElementsVectorReductions()
5062 NarrowTy.isVector() ? SrcTy.getNumElements() / NarrowTy.getNumElements() in fewerElementsVectorReductions()
5063 : SrcTy.getNumElements(); in fewerElementsVectorReductions()
5109 if (isPowerOf2_32(SrcTy.getNumElements()) && in fewerElementsVectorReductions()
5111 return tryNarrowPow2Reduction(MI, SrcReg, SrcTy, NarrowTy, ScalarOpc); in fewerElementsVectorReductions()
5133 auto [DstReg, DstTy, ScalarReg, ScalarTy, SrcReg, SrcTy] = in fewerElementsVectorSeqReductions()
5147 unsigned NumParts = SrcTy.getNumElements(); in fewerElementsVectorSeqReductions()
5161 LLT SrcTy, LLT NarrowTy, in tryNarrowPow2Reduction() argument
5166 SrcTy.getNumElements() / NarrowTy.getNumElements(), SplitSrcs, in tryNarrowPow2Reduction()
5641 LLT SrcTy = MRI.getType(MI.getOperand(1).getReg()); in moreElementsVector() local
5644 unsigned coefficient = SrcTy.getNumElements() * MoreTy.getNumElements(); in moreElementsVector()
5650 LLT NewTy = SrcTy.changeElementCount( in moreElementsVector()
5696 auto [DstReg, DstTy, SrcReg, SrcTy] = MI.getFirst2RegLLTs(); in equalizeVectorShuffleLengths()
5699 unsigned SrcNumElts = SrcTy.getNumElements(); in equalizeVectorShuffleLengths()
5712 moreElementsVectorDst(MI, SrcTy, 0); in equalizeVectorShuffleLengths()
5728 auto Undef = MIRBuilder.buildUndef(SrcTy); in equalizeVectorShuffleLengths()
6007 LLT SrcTy = MRI.getType(Src); in narrowScalarFPTOI() local
6012 if (SrcTy.getScalarType() != LLT::scalar(16) || in narrowScalarFPTOI()
6289 auto [DstReg, DstTy, SrcReg, SrcTy] = MI.getFirst2RegLLTs(); in narrowScalarCTLZ()
6292 if (SrcTy.isScalar() && SrcTy.getSizeInBits() == 2 * NarrowSize) { in narrowScalarCTLZ()
6322 auto [DstReg, DstTy, SrcReg, SrcTy] = MI.getFirst2RegLLTs(); in narrowScalarCTTZ()
6325 if (SrcTy.isScalar() && SrcTy.getSizeInBits() == 2 * NarrowSize) { in narrowScalarCTTZ()
6355 auto [DstReg, DstTy, SrcReg, SrcTy] = MI.getFirst2RegLLTs(); in narrowScalarCTPOP()
6358 if (SrcTy.isScalar() && SrcTy.getSizeInBits() == 2 * NarrowSize) { in narrowScalarCTPOP()
6416 auto [DstReg, DstTy, SrcReg, SrcTy] = MI.getFirst2RegLLTs(); in lowerBitCount()
6417 unsigned Len = SrcTy.getSizeInBits(); in lowerBitCount()
6419 if (isSupported({TargetOpcode::G_CTLZ_ZERO_UNDEF, {DstTy, SrcTy}})) { in lowerBitCount()
6422 auto ZeroSrc = MIRBuilder.buildConstant(SrcTy, 0); in lowerBitCount()
6424 CmpInst::ICMP_EQ, SrcTy.changeElementSize(1), SrcReg, ZeroSrc); in lowerBitCount()
6444 auto MIBShiftAmt = MIRBuilder.buildConstant(SrcTy, 1ULL << i); in lowerBitCount()
6446 SrcTy, Op, MIRBuilder.buildLShr(SrcTy, Op, MIBShiftAmt)); in lowerBitCount()
6463 auto [DstReg, DstTy, SrcReg, SrcTy] = MI.getFirst2RegLLTs(); in lowerBitCount()
6465 unsigned Len = SrcTy.getSizeInBits(); in lowerBitCount()
6466 if (isSupported({TargetOpcode::G_CTTZ_ZERO_UNDEF, {DstTy, SrcTy}})) { in lowerBitCount()
6470 auto Zero = MIRBuilder.buildConstant(SrcTy, 0); in lowerBitCount()
6482 auto MIBCstNeg1 = MIRBuilder.buildConstant(SrcTy, -1); in lowerBitCount()
6483 auto MIBNot = MIRBuilder.buildXor(SrcTy, SrcReg, MIBCstNeg1); in lowerBitCount()
6485 SrcTy, MIBNot, MIRBuilder.buildAdd(SrcTy, SrcReg, MIBCstNeg1)); in lowerBitCount()
6486 if (!isSupported({TargetOpcode::G_CTPOP, {SrcTy, SrcTy}}) && in lowerBitCount()
6487 isSupported({TargetOpcode::G_CTLZ, {SrcTy, SrcTy}})) { in lowerBitCount()
6488 auto MIBCstLen = MIRBuilder.buildConstant(SrcTy, Len); in lowerBitCount()
6490 MIRBuilder.buildCTLZ(SrcTy, MIBTmp)); in lowerBitCount()
6704 LLT SrcTy = MRI.getType(Src); in lowerEXT() local
6708 uint32_t SrcTyScalarSize = SrcTy.getScalarSizeInBits(); in lowerEXT()
6717 LLT MidTy = SrcTy.changeElementSize(SrcTyScalarSize * 2); in lowerEXT()
6759 LLT SrcTy = MRI.getType(SrcReg); in lowerTRUNC() local
6763 isPowerOf2_32(SrcTy.getNumElements()) && in lowerTRUNC()
6764 isPowerOf2_32(SrcTy.getScalarSizeInBits())) { in lowerTRUNC()
6766 LLT SplitSrcTy = SrcTy.changeElementCount( in lowerTRUNC()
6767 SrcTy.getElementCount().divideCoefficientBy(2)); in lowerTRUNC()
6775 if (DstTy.getScalarSizeInBits() * 2 < SrcTy.getScalarSizeInBits()) in lowerTRUNC()
6788 if (DstTy.getScalarSizeInBits() * 2 < SrcTy.getScalarSizeInBits()) in lowerTRUNC()
6802 auto [Dst, DstTy, Src, SrcTy, Amt, AmtTy] = MI.getFirst3RegLLTs(); in lowerRotateWithReverseRotate()
6813 auto [Dst, DstTy, Src, SrcTy, Amt, AmtTy] = MI.getFirst3RegLLTs(); in lowerRotate()
6822 if (LI.isLegalOrCustom({RevRot, {DstTy, SrcTy}}) && in lowerRotate()
6938 auto [Dst, DstTy, Src, SrcTy] = MI.getFirst2RegLLTs(); in lowerUITOFP()
6940 if (SrcTy == LLT::scalar(1)) { in lowerUITOFP()
6948 if (SrcTy != LLT::scalar(64)) in lowerUITOFP()
6963 auto [Dst, DstTy, Src, SrcTy] = MI.getFirst2RegLLTs(); in lowerSITOFP()
6969 if (SrcTy == S1) { in lowerSITOFP()
6977 if (SrcTy != S64) in lowerSITOFP()
7006 auto [Dst, DstTy, Src, SrcTy] = MI.getFirst2RegLLTs(); in lowerFPTOUI()
7010 if (SrcTy != S64 && SrcTy != S32) in lowerFPTOUI()
7020 APFloat TwoPExpFP(SrcTy.getSizeInBits() == 32 ? APFloat::IEEEsingle() in lowerFPTOUI()
7022 APInt::getZero(SrcTy.getSizeInBits())); in lowerFPTOUI()
7027 MachineInstrBuilder Threshold = MIRBuilder.buildFConstant(SrcTy, TwoPExpFP); in lowerFPTOUI()
7030 MachineInstrBuilder FSub = MIRBuilder.buildFSub(SrcTy, Src, Threshold); in lowerFPTOUI()
7046 auto [Dst, DstTy, Src, SrcTy] = MI.getFirst2RegLLTs(); in lowerFPTOSI()
7051 if (SrcTy.getScalarType() != S32 || DstTy.getScalarType() != S64) in lowerFPTOSI()
7058 unsigned SrcEltBits = SrcTy.getScalarSizeInBits(); in lowerFPTOSI()
7060 auto ExponentMask = MIRBuilder.buildConstant(SrcTy, 0x7F800000); in lowerFPTOSI()
7061 auto ExponentLoBit = MIRBuilder.buildConstant(SrcTy, 23); in lowerFPTOSI()
7063 auto AndExpMask = MIRBuilder.buildAnd(SrcTy, Src, ExponentMask); in lowerFPTOSI()
7064 auto ExponentBits = MIRBuilder.buildLShr(SrcTy, AndExpMask, ExponentLoBit); in lowerFPTOSI()
7066 auto SignMask = MIRBuilder.buildConstant(SrcTy, in lowerFPTOSI()
7068 auto AndSignMask = MIRBuilder.buildAnd(SrcTy, Src, SignMask); in lowerFPTOSI()
7069 auto SignLowBit = MIRBuilder.buildConstant(SrcTy, SrcEltBits - 1); in lowerFPTOSI()
7070 auto Sign = MIRBuilder.buildAShr(SrcTy, AndSignMask, SignLowBit); in lowerFPTOSI()
7073 auto MantissaMask = MIRBuilder.buildConstant(SrcTy, 0x007FFFFF); in lowerFPTOSI()
7074 auto AndMantissaMask = MIRBuilder.buildAnd(SrcTy, Src, MantissaMask); in lowerFPTOSI()
7075 auto K = MIRBuilder.buildConstant(SrcTy, 0x00800000); in lowerFPTOSI()
7077 auto R = MIRBuilder.buildOr(SrcTy, AndMantissaMask, K); in lowerFPTOSI()
7080 auto Bias = MIRBuilder.buildConstant(SrcTy, 127); in lowerFPTOSI()
7081 auto Exponent = MIRBuilder.buildSub(SrcTy, ExponentBits, Bias); in lowerFPTOSI()
7082 auto SubExponent = MIRBuilder.buildSub(SrcTy, Exponent, ExponentLoBit); in lowerFPTOSI()
7083 auto ExponentSub = MIRBuilder.buildSub(SrcTy, ExponentLoBit, Exponent); in lowerFPTOSI()
7097 auto ZeroSrcTy = MIRBuilder.buildConstant(SrcTy, 0); in lowerFPTOSI()
7227 auto [DstTy, SrcTy] = MI.getFirst2LLTs(); in lowerFPTRUNC()
7231 if (DstTy.getScalarType() == S16 && SrcTy.getScalarType() == S64) in lowerFPTRUNC()
7794 auto [DstReg, DstTy, SrcReg, SrcTy] = MI.getFirst2RegLLTs(); in lowerExtract()
7798 if (SrcTy.isVector()) { in lowerExtract()
7799 unsigned SrcEltSize = SrcTy.getElementType().getSizeInBits(); in lowerExtract()
7803 (Offset + DstSize <= SrcTy.getSizeInBits())) { in lowerExtract()
7805 auto Unmerge = MIRBuilder.buildUnmerge(SrcTy.getElementType(), SrcReg); in lowerExtract()
7824 (SrcTy.isScalar() || in lowerExtract()
7825 (SrcTy.isVector() && DstTy == SrcTy.getElementType()))) { in lowerExtract()
7826 LLT SrcIntTy = SrcTy; in lowerExtract()
7827 if (!SrcTy.isScalar()) { in lowerExtract()
7828 SrcIntTy = LLT::scalar(SrcTy.getSizeInBits()); in lowerExtract()
8296 auto [DstReg, DstTy, SrcReg, SrcTy] = MI.getFirst2RegLLTs(); in lowerISFPCLASS()
8313 unsigned BitSize = SrcTy.getScalarSizeInBits(); in lowerISFPCLASS()
8314 const fltSemantics &Semantics = getFltSemanticForLLT(SrcTy.getScalarType()); in lowerISFPCLASS()
8317 if (SrcTy.isVector()) in lowerISFPCLASS()
8318 IntTy = LLT::vector(SrcTy.getElementCount(), IntTy); in lowerISFPCLASS()
8590 LLT SrcTy = MRI.getType(SrcReg); in lowerVectorReduction() local
8594 if (SrcTy.isScalar()) { in lowerVectorReduction()
8595 if (DstTy.getSizeInBits() > SrcTy.getSizeInBits()) in lowerVectorReduction()
9000 LLT SrcTy = MRI.getType(Src); in lowerMemcpy() local
9001 Offset = MIB.buildConstant(LLT::scalar(SrcTy.getSizeInBits()), CurrOffset) in lowerMemcpy()
9003 LoadPtr = MIB.buildPtrAdd(SrcTy, Src, Offset).getReg(0); in lowerMemcpy()
9098 LLT SrcTy = MRI.getType(Src); in lowerMemmove() local
9100 MIB.buildConstant(LLT::scalar(SrcTy.getSizeInBits()), CurrOffset); in lowerMemmove()
9101 LoadPtr = MIB.buildPtrAdd(SrcTy, Src, Offset).getReg(0); in lowerMemmove()