Lines Matching refs:NumElems
166 unsigned NumElems, SelectionDAG &DAG, in Concat128BitVectors() argument
169 return Insert128BitVector(V, V2, NumElems/2, DAG, dl); in Concat128BitVectors()
173 unsigned NumElems, SelectionDAG &DAG, in Concat256BitVectors() argument
176 return Insert256BitVector(V, V2, NumElems/2, DAG, dl); in Concat256BitVectors()
3704 unsigned NumElems) { in CommuteVectorShuffleMask() argument
3705 for (unsigned i = 0; i != NumElems; ++i) { in CommuteVectorShuffleMask()
3709 else if (idx < (int)NumElems) in CommuteVectorShuffleMask()
3710 Mask[i] = idx + NumElems; in CommuteVectorShuffleMask()
3712 Mask[i] = idx - NumElems; in CommuteVectorShuffleMask()
3722 unsigned NumElems = VT.getVectorNumElements(); in isSHUFPMask() local
3724 unsigned NumLaneElems = NumElems/NumLanes; in isSHUFPMask()
3754 for (unsigned l = 0; l != NumElems; l += NumLaneElems) { in isSHUFPMask()
3757 unsigned RngStart = l + ((Commuted == (i<HalfLaneElems)) ? NumElems : 0); in isSHUFPMask()
3783 unsigned NumElems = VT.getVectorNumElements(); in isMOVHLPSMask() local
3785 if (NumElems != 4) in isMOVHLPSMask()
3802 unsigned NumElems = VT.getVectorNumElements(); in isMOVHLPS_v_undef_Mask() local
3804 if (NumElems != 4) in isMOVHLPS_v_undef_Mask()
3819 unsigned NumElems = VT.getVectorNumElements(); in isMOVLPMask() local
3821 if (NumElems != 2 && NumElems != 4) in isMOVLPMask()
3824 for (unsigned i = 0, e = NumElems/2; i != e; ++i) in isMOVLPMask()
3825 if (!isUndefOrEqual(Mask[i], i + NumElems)) in isMOVLPMask()
3828 for (unsigned i = NumElems/2, e = NumElems; i != e; ++i) in isMOVLPMask()
3841 unsigned NumElems = VT.getVectorNumElements(); in isMOVLHPSMask() local
3843 if (NumElems != 2 && NumElems != 4) in isMOVLHPSMask()
3846 for (unsigned i = 0, e = NumElems/2; i != e; ++i) in isMOVLHPSMask()
3850 for (unsigned i = 0, e = NumElems/2; i != e; ++i) in isMOVLHPSMask()
3851 if (!isUndefOrEqual(Mask[i + e], i + NumElems)) in isMOVLHPSMask()
4262 unsigned NumElems = VT.getVectorNumElements(); in isMOVSHDUPMask() local
4264 if ((VT.is128BitVector() && NumElems != 4) || in isMOVSHDUPMask()
4265 (VT.is256BitVector() && NumElems != 8) || in isMOVSHDUPMask()
4266 (VT.is512BitVector() && NumElems != 16)) in isMOVSHDUPMask()
4270 for (unsigned i = 0; i != NumElems; i += 2) in isMOVSHDUPMask()
4286 unsigned NumElems = VT.getVectorNumElements(); in isMOVSLDUPMask() local
4288 if ((VT.is128BitVector() && NumElems != 4) || in isMOVSLDUPMask()
4289 (VT.is256BitVector() && NumElems != 8) || in isMOVSLDUPMask()
4290 (VT.is512BitVector() && NumElems != 16)) in isMOVSLDUPMask()
4294 for (unsigned i = 0; i != NumElems; i += 2) in isMOVSLDUPMask()
4569 unsigned NumElems = VT.getVectorNumElements(); in CommuteVectorShuffle() local
4572 for (unsigned i = 0; i != NumElems; ++i) { in CommuteVectorShuffle()
4575 if (Idx < (int)NumElems) in CommuteVectorShuffle()
4576 Idx += NumElems; in CommuteVectorShuffle()
4578 Idx -= NumElems; in CommuteVectorShuffle()
4658 unsigned NumElems = VT.getVectorNumElements(); in ShouldXformToMOVLP() local
4660 if (NumElems != 2 && NumElems != 4) in ShouldXformToMOVLP()
4662 for (unsigned i = 0, e = NumElems/2; i != e; ++i) in ShouldXformToMOVLP()
4665 for (unsigned i = NumElems/2, e = NumElems; i != e; ++i) in ShouldXformToMOVLP()
4666 if (!isUndefOrEqual(Mask[i], i+NumElems)) in ShouldXformToMOVLP()
4690 unsigned NumElems = N->getValueType(0).getVectorNumElements(); in isZeroShuffle() local
4691 for (unsigned i = 0; i != NumElems; ++i) { in isZeroShuffle()
4693 if (Idx >= (int)NumElems) { in isZeroShuffle()
4698 !X86::isZeroNode(V2.getOperand(Idx-NumElems))) in isZeroShuffle()
4783 static void NormalizeMask(SmallVectorImpl<int> &Mask, unsigned NumElems) { in NormalizeMask() argument
4784 for (unsigned i = 0; i != NumElems; ++i) { in NormalizeMask()
4785 if (Mask[i] > (int)NumElems) { in NormalizeMask()
4786 Mask[i] = NumElems; in NormalizeMask()
4795 unsigned NumElems = VT.getVectorNumElements(); in getMOVL() local
4797 Mask.push_back(NumElems); in getMOVL()
4798 for (unsigned i = 1; i != NumElems; ++i) in getMOVL()
4806 unsigned NumElems = VT.getVectorNumElements(); in getUnpackl() local
4808 for (unsigned i = 0, e = NumElems/2; i != e; ++i) { in getUnpackl()
4810 Mask.push_back(i + NumElems); in getUnpackl()
4818 unsigned NumElems = VT.getVectorNumElements(); in getUnpackh() local
4820 for (unsigned i = 0, Half = NumElems/2; i != Half; ++i) { in getUnpackh()
4822 Mask.push_back(i + NumElems + Half); in getUnpackh()
4833 int NumElems = VT.getVectorNumElements(); in PromoteSplati8i16() local
4836 while (NumElems > 4) { in PromoteSplati8i16()
4837 if (EltNo < NumElems/2) { in PromoteSplati8i16()
4841 EltNo -= NumElems/2; in PromoteSplati8i16()
4843 NumElems >>= 1; in PromoteSplati8i16()
4881 int NumElems = SrcVT.getVectorNumElements(); in PromoteSplat() local
4884 assert(((SrcVT.is128BitVector() && NumElems > 4) || Is256BitVec) && in PromoteSplat()
4891 if (EltNo >= NumElems/2) in PromoteSplat()
4892 EltNo -= NumElems/2; in PromoteSplat()
4924 unsigned NumElems = VT.getVectorNumElements(); in getShuffleVectorZeroOrUndef() local
4926 for (unsigned i = 0; i != NumElems; ++i) in getShuffleVectorZeroOrUndef()
4928 MaskVec.push_back(i == Idx ? NumElems : i); in getShuffleVectorZeroOrUndef()
4937 unsigned NumElems = VT.getVectorNumElements(); in getTargetShuffleMask() local
4953 DecodeMOVHLPSMask(NumElems, Mask); in getTargetShuffleMask()
4956 DecodeMOVLHPSMask(NumElems, Mask); in getTargetShuffleMask()
4988 Mask.push_back(NumElems); in getTargetShuffleMask()
4989 for (unsigned i = 1; i != NumElems; ++i) { in getTargetShuffleMask()
5031 unsigned NumElems = VT.getVectorNumElements(); in getShuffleScalarElt() local
5032 SDValue NewV = (Elt < (int)NumElems) ? SV->getOperand(0) in getShuffleScalarElt()
5034 return getShuffleScalarElt(NewV.getNode(), Elt % NumElems, DAG, Depth+1); in getShuffleScalarElt()
5040 unsigned NumElems = ShufVT.getVectorNumElements(); in getShuffleScalarElt() local
5051 SDValue NewV = (Elt < (int)NumElems) ? N->getOperand(0) in getShuffleScalarElt()
5053 return getShuffleScalarElt(NewV.getNode(), Elt % NumElems, DAG, in getShuffleScalarElt()
5061 unsigned NumElems = VT.getVectorNumElements(); in getShuffleScalarElt() local
5063 if (!SrcVT.isVector() || SrcVT.getVectorNumElements() != NumElems) in getShuffleScalarElt()
5082 unsigned NumElems, bool ZerosFromLeft, in getNumOfConsecutiveZeros() argument
5086 for (unsigned i = 0; i != NumElems; ++i) { in getNumOfConsecutiveZeros()
5087 unsigned Index = ZerosFromLeft ? i : NumElems - i - 1; in getNumOfConsecutiveZeros()
5109 unsigned NumElems, unsigned &OpNum) { in isShuffleMaskConsecutive() argument
5119 if (Idx < (int)NumElems) in isShuffleMaskConsecutive()
5125 if ((Idx % NumElems != OpIdx) || (SeenV1 && SeenV2)) in isShuffleMaskConsecutive()
5137 unsigned NumElems = in isVectorShiftRight() local
5140 SVOp, NumElems, false /* check zeros from right */, DAG, in isVectorShiftRight()
5156 NumElems-NumZeros, // Mask End Index(exclusive) in isVectorShiftRight()
5158 NumElems, // Number of elements in vector in isVectorShiftRight()
5172 unsigned NumElems = in isVectorShiftLeft() local
5175 SVOp, NumElems, true /* check zeros from left */, DAG, in isVectorShiftLeft()
5176 NumElems - SVOp->getMaskElt(NumElems - 1) - 1); in isVectorShiftLeft()
5191 NumElems, // Mask End Index(exclusive) in isVectorShiftLeft()
5193 NumElems, // Number of elements in vector in isVectorShiftLeft()
5371 unsigned NumElems = VT.getVectorNumElements(); in LowerAsSplatVectorLoad() local
5373 EVT NVT = EVT::getVectorVT(*DAG.getContext(), PVT, NumElems); in LowerAsSplatVectorLoad()
5379 for (unsigned i = 0; i != NumElems; ++i) in LowerAsSplatVectorLoad()
5401 unsigned NumElems = Elts.size(); in EltsFromConsecutiveLoads() local
5409 for (unsigned i = 0; i < NumElems; ++i) { in EltsFromConsecutiveLoads()
5434 if (LastLoadedElt == NumElems - 1) { in EltsFromConsecutiveLoads()
5463 if (NumElems == 4 && LastLoadedElt == 1 && in EltsFromConsecutiveLoads()
5638 unsigned NumElems = Op.getNumOperands(); in buildFromShuffleMostly() local
5643 SmallVector<int, 8> Mask(NumElems, -1); in buildFromShuffleMostly()
5645 for (unsigned i = 0; i != NumElems; ++i) { in buildFromShuffleMostly()
5686 Mask[i] = Idx + NumElems; in buildFromShuffleMostly()
5814 unsigned NumElems = Op.getNumOperands(); in LowerBUILD_VECTOR() local
5852 for (unsigned i = 0; i < NumElems; ++i) { in LowerBUILD_VECTOR()
5946 if (NumElems == 2 && Idx == 1 && in LowerBUILD_VECTOR()
5970 for (unsigned i = 0; i != NumElems; ++i) in LowerBUILD_VECTOR()
6000 for (unsigned i = 0; i != NumElems; ++i) in LowerBUILD_VECTOR()
6003 EVT HVT = EVT::getVectorVT(*DAG.getContext(), ExtVT, NumElems/2); in LowerBUILD_VECTOR()
6006 SDValue Lower = DAG.getNode(ISD::BUILD_VECTOR, dl, HVT, &V[0], NumElems/2); in LowerBUILD_VECTOR()
6007 SDValue Upper = DAG.getNode(ISD::BUILD_VECTOR, dl, HVT, &V[NumElems / 2], in LowerBUILD_VECTOR()
6008 NumElems/2); in LowerBUILD_VECTOR()
6011 return Concat128BitVectors(Lower, Upper, VT, NumElems, DAG, dl); in LowerBUILD_VECTOR()
6027 if (EVTBits == 8 && NumElems == 16) { in LowerBUILD_VECTOR()
6033 if (EVTBits == 16 && NumElems == 8) { in LowerBUILD_VECTOR()
6040 SmallVector<SDValue, 8> V(NumElems); in LowerBUILD_VECTOR()
6041 if (NumElems == 4 && NumZero > 0) { in LowerBUILD_VECTOR()
6073 static_cast<int>(Reverse2 ? NumElems+1 : NumElems), in LowerBUILD_VECTOR()
6074 static_cast<int>(Reverse2 ? NumElems : NumElems+1) in LowerBUILD_VECTOR()
6081 for (unsigned i = 0; i < NumElems; ++i) in LowerBUILD_VECTOR()
6102 for (unsigned i = 1; i < NumElems; ++i) { in LowerBUILD_VECTOR()
6113 for (unsigned i = 0; i < NumElems; ++i) { in LowerBUILD_VECTOR()
6124 unsigned EltStride = NumElems >> 1; in LowerBUILD_VECTOR()
6133 EltStride == NumElems/2) in LowerBUILD_VECTOR()
6156 unsigned NumElems = ResVT.getVectorNumElements(); in LowerAVXCONCAT_VECTORS() local
6158 return Concat128BitVectors(V1, V2, ResVT, NumElems, DAG, dl); in LowerAVXCONCAT_VECTORS()
6160 return Concat256BitVectors(V1, V2, ResVT, NumElems, DAG, dl); in LowerAVXCONCAT_VECTORS()
6180 unsigned NumElems = VT.getVectorNumElements(); in LowerVECTOR_SHUFFLEtoBlend() local
6194 unsigned NumLanes = (NumElems-1)/8 + 1; in LowerVECTOR_SHUFFLEtoBlend()
6195 unsigned NumElemsInLane = NumElems / NumLanes; in LowerVECTOR_SHUFFLEtoBlend()
6208 if (((unsigned)EltIdx == (i + NumElems)) && in LowerVECTOR_SHUFFLEtoBlend()
6210 (unsigned)SndLaneEltIdx == i + NumElems + NumElemsInLane)) in LowerVECTOR_SHUFFLEtoBlend()
6221 NumElems); in LowerVECTOR_SHUFFLEtoBlend()
6673 unsigned NumElems = VT.getVectorNumElements(); in RewriteAsNarrowerShuffle() local
6687 for (unsigned i = 0; i != NumElems; i += Scale) { in RewriteAsNarrowerShuffle()
6752 unsigned NumElems = VT.getVectorNumElements(); in LowerVECTOR_SHUFFLE_256() local
6753 unsigned NumLaneElems = NumElems / 2; in LowerVECTOR_SHUFFLE_256()
6819 int Input = Idx / NumElems; in LowerVECTOR_SHUFFLE_256()
6822 Idx -= Input * NumElems; in LowerVECTOR_SHUFFLE_256()
7062 unsigned NumElems = VT.getVectorNumElements(); in getMOVLP() local
7084 if (HasSSE2 && NumElems == 2) in getMOVLP()
7087 if (NumElems == 4) in getMOVLP()
7102 if (NumElems == 2 || !isMOVLMask(SVOp->getMask(), VT)) in getMOVLP()
7131 unsigned NumElems = VT.getVectorNumElements(); in LowerVectorIntExtend() local
7141 while ((1U << Shift) < NumElems) { in LowerVectorIntExtend()
7152 for (unsigned i = 0; i != NumElems; ++i) { in LowerVectorIntExtend()
7162 MVT NVT = MVT::getVectorVT(NeVT, NumElems >> Shift); in LowerVectorIntExtend()
7267 unsigned NumElems = VT.getVectorNumElements(); in LowerVECTOR_SHUFFLE() local
7413 CommuteVectorShuffleMask(M, NumElems); in LowerVECTOR_SHUFFLE()
7440 NormalizeMask(NewMask, NumElems); in LowerVECTOR_SHUFFLE()
7450 CommuteVectorShuffleMask(M, NumElems); in LowerVECTOR_SHUFFLE()
7526 if ((V2IsUndef && HasInt256 && VT.is256BitVector() && NumElems == 8) || in LowerVECTOR_SHUFFLE()
7529 MVT MaskVectorVT = MVT::getVectorVT(MaskEltVT, NumElems); in LowerVECTOR_SHUFFLE()
7531 for (unsigned i = 0; i != NumElems; ++i) { in LowerVECTOR_SHUFFLE()
7536 &permclMask[0], NumElems); in LowerVECTOR_SHUFFLE()
7572 if (NumElems == 4 && VT.is128BitVector()) in LowerVECTOR_SHUFFLE()
9117 unsigned NumElems = VT.getVectorNumElements(); in LowerTRUNCATE() local
9119 NumElems * 2); in LowerTRUNCATE()
9121 SmallVector<int, 16> MaskVec(NumElems * 2, -1); in LowerTRUNCATE()
9123 for (unsigned i = 0; i != NumElems; ++i) in LowerTRUNCATE()
9825 unsigned NumElems = VT.getVectorNumElements(); in Lower256IntVSETCC() local
9832 SDValue LHS2 = Extract128BitVector(LHS, NumElems/2, DAG, dl); in Lower256IntVSETCC()
9837 SDValue RHS2 = Extract128BitVector(RHS, NumElems/2, DAG, dl); in Lower256IntVSETCC()
9841 MVT NewVT = MVT::getVectorVT(EltVT, NumElems/2); in Lower256IntVSETCC()
10447 unsigned NumElems = InVT.getVectorNumElements(); in LowerSIGN_EXTEND() local
10450 SmallVector<int,8> ShufMask1(NumElems, -1); in LowerSIGN_EXTEND()
10451 for (unsigned i = 0; i != NumElems/2; ++i) in LowerSIGN_EXTEND()
10456 SmallVector<int,8> ShufMask2(NumElems, -1); in LowerSIGN_EXTEND()
10457 for (unsigned i = 0; i != NumElems/2; ++i) in LowerSIGN_EXTEND()
10458 ShufMask2[i] = i + NumElems/2; in LowerSIGN_EXTEND()
12411 unsigned NumElems = VT.getVectorNumElements(); in Lower256IntArith() local
12417 SDValue LHS2 = Extract128BitVector(LHS, NumElems/2, DAG, dl); in Lower256IntArith()
12422 SDValue RHS2 = Extract128BitVector(RHS, NumElems/2, DAG, dl); in Lower256IntArith()
12425 EVT NewVT = MVT::getVectorVT(EltVT, NumElems/2); in Lower256IntArith()
12979 unsigned NumElems = VT.getVectorNumElements(); in LowerShift() local
12981 EVT NewVT = MVT::getVectorVT(EltVT, NumElems/2); in LowerShift()
12985 SDValue V2 = Extract128BitVector(R, NumElems/2, DAG, dl); in LowerShift()
12993 for (unsigned i = 0; i != NumElems/2; ++i) in LowerShift()
12995 for (unsigned i = NumElems/2; i != NumElems; ++i) in LowerShift()
12999 &Amt1Csts[0], NumElems/2); in LowerShift()
13001 &Amt2Csts[0], NumElems/2); in LowerShift()
13005 Amt2 = Extract128BitVector(Amt, NumElems/2, DAG, dl); in LowerShift()
13114 unsigned NumElems = VT.getVectorNumElements(); in LowerSIGN_EXTEND_INREG() local
13119 SDValue LHS2 = Extract128BitVector(LHS, NumElems/2, DAG, dl); in LowerSIGN_EXTEND_INREG()
13122 EVT NewVT = MVT::getVectorVT(EltVT, NumElems/2); in LowerSIGN_EXTEND_INREG()
16128 unsigned NumElems = VT.getVectorNumElements(); in isShuffleHigh128VectorInsertLow() local
16131 for (unsigned i = 0, j = NumElems/2; i != NumElems/2; ++i, ++j) in isShuffleHigh128VectorInsertLow()
16144 unsigned NumElems = VT.getVectorNumElements(); in isShuffleLow128VectorInsertHigh() local
16147 for (unsigned i = NumElems/2, j = 0; i != NumElems; ++i, ++j) in isShuffleLow128VectorInsertHigh()
16164 unsigned NumElems = VT.getVectorNumElements(); in PerformShuffleCombine256() local
16189 for (unsigned i = 0; i != NumElems/2; ++i) in PerformShuffleCombine256()
16191 !isUndefOrEqual(SVOp->getMaskElt(i+NumElems/2), NumElems)) in PerformShuffleCombine256()
16236 SDValue V = Extract128BitVector(V1, NumElems/2, DAG, dl); in PerformShuffleCombine256()
16244 SDValue InsV = Insert128BitVector(DAG.getUNDEF(VT), V, NumElems/2, DAG, dl); in PerformShuffleCombine256()
16334 unsigned NumElems = VT.getVectorNumElements(); in XFormVExtractWithShuffleIntoLoad() local
16336 int Idx = (Elt > (int)NumElems) ? -1 : ShuffleMask[Elt]; in XFormVExtractWithShuffleIntoLoad()
16337 SDValue LdNode = (Idx < (int)NumElems) ? InVec.getOperand(0) in XFormVExtractWithShuffleIntoLoad()
16962 unsigned NumElems = VT.getVectorNumElements(); in PerformSELECTCombine() local
16965 SDValue LHS2 = Extract128BitVector(LHS, NumElems/2, DAG, DL); in PerformSELECTCombine()
16969 SDValue RHS2 = Extract128BitVector(RHS, NumElems/2, DAG, DL); in PerformSELECTCombine()
18089 unsigned NumElems = RegVT.getVectorNumElements(); in PerformLOADCombine() local
18090 if (NumElems < 2) in PerformLOADCombine()
18097 NumElems/2); in PerformLOADCombine()
18113 NewVec = Insert128BitVector(NewVec, Load2, NumElems/2, DAG, dl); in PerformLOADCombine()
18129 unsigned NumElems = RegVT.getVectorNumElements(); in PerformLOADCombine() local
18137 if (!isPowerOf2_32(RegSz * MemSz * NumElems)) in PerformLOADCombine()
18230 SmallVector<int, 8> ShuffleVec(NumElems * SizeRatio, -1); in PerformLOADCombine()
18231 for (unsigned i = 0; i != NumElems; ++i) in PerformLOADCombine()
18250 SmallVector<int, 8> ShuffleVec(NumElems * SizeRatio, -1); in PerformLOADCombine()
18251 for (unsigned i = 0; i != NumElems; ++i) in PerformLOADCombine()
18286 unsigned NumElems = VT.getVectorNumElements(); in PerformSTORECombine() local
18287 if (NumElems < 2) in PerformSTORECombine()
18291 SDValue Value1 = Extract128BitVector(StoredVal, NumElems/2, DAG, dl); in PerformSTORECombine()
18312 unsigned NumElems = VT.getVectorNumElements(); in PerformSTORECombine() local
18318 if (!isPowerOf2_32(NumElems * FromSz * ToSz)) return SDValue(); in PerformSTORECombine()
18321 if (0 != (NumElems * FromSz) % ToSz) return SDValue(); in PerformSTORECombine()
18325 assert(SizeRatio * NumElems * ToSz == VT.getSizeInBits()); in PerformSTORECombine()
18329 StVT.getScalarType(), NumElems*SizeRatio); in PerformSTORECombine()
18334 SmallVector<int, 8> ShuffleVec(NumElems * SizeRatio, -1); in PerformSTORECombine()
18335 for (unsigned i = 0; i != NumElems; ++i) in PerformSTORECombine()
18353 if (TLI.isTypeLegal(Tp) && Tp.getSizeInBits() <= NumElems * ToSz) in PerformSTORECombine()
18359 (64 <= NumElems * ToSz)) in PerformSTORECombine()
18373 for (unsigned i=0, e=(ToSz*NumElems)/StoreType.getSizeInBits(); i!=e; ++i) { in PerformSTORECombine()