Lines Matching defs:NumElems
2951 unsigned NumElems = VT.getVectorNumElements();
2953 Mask.push_back(NumElems);
2954 for (unsigned i = 1; i != NumElems; ++i)
4571 unsigned NumElems = OpVT.getVectorNumElements();
4574 assert(IdxVal + SubVecNumElems <= NumElems &&
4581 // (IdxVal + SubVecNumElems == NumElems)
4611 NumElems = WideOpVT.getVectorNumElements();
4612 unsigned ShiftLeft = NumElems - SubVecNumElems;
4613 unsigned ShiftRight = NumElems - SubVecNumElems - IdxVal;
4636 if (IdxVal + SubVecNumElems == NumElems) {
4651 for (unsigned i = 0; i < NumElems; ++i)
4653 i : i + NumElems);
4662 unsigned NumElems, SelectionDAG &DAG,
4665 return insert128BitVector(V, V2, NumElems / 2, DAG, dl);
4669 unsigned NumElems, SelectionDAG &DAG,
4672 return insert256BitVector(V, V2, NumElems / 2, DAG, dl);
4700 unsigned NumElems = VT.getVectorNumElements();
4701 SmallVector<int, 8> Mask(NumElems);
4702 for (unsigned i = 0, e = NumElems/2; i != e; ++i) {
4704 Mask[i * 2 + 1] = i + NumElems;
4713 unsigned NumElems = VT.getVectorNumElements();
4714 SmallVector<int, 8> Mask(NumElems);
4715 for (unsigned i = 0, Half = NumElems/2; i != Half; ++i) {
4717 Mask[i * 2 + 1] = i + NumElems + Half;
4733 int NumElems = VT.getVectorNumElements();
4734 SmallVector<int, 16> MaskVec(NumElems);
4735 for (int i = 0; i != NumElems; ++i)
4737 MaskVec[i] = (i == Idx) ? NumElems : i;
4855 unsigned NumElems = VT.getVectorNumElements();
4887 DecodeMOVHLPSMask(NumElems, Mask);
4891 DecodeMOVLHPSMask(NumElems, Mask);
5211 unsigned NumElems = VT.getVectorNumElements();
5212 SDValue NewV = (Elt < (int)NumElems) ? SV->getOperand(0)
5214 return getShuffleScalarElt(NewV.getNode(), Elt % NumElems, DAG, Depth+1);
5221 int NumElems = (int)ShufVT.getVectorNumElements();
5236 assert(0 <= Elt && Elt < (2*NumElems) && "Shuffle index out of range");
5237 SDValue NewV = (Elt < NumElems) ? ShuffleOps[0] : ShuffleOps[1];
5238 return getShuffleScalarElt(NewV.getNode(), Elt % NumElems, DAG,
5246 unsigned NumElems = VT.getVectorNumElements();
5248 if (!SrcVT.isVector() || SrcVT.getVectorNumElements() != NumElems)
5542 unsigned NumElems = VT.getVectorNumElements();
5544 EVT NVT = EVT::getVectorVT(*DAG.getContext(), PVT, NumElems);
5549 SmallVector<int, 8> Mask(NumElems, EltNo);
5565 unsigned NumElems = Elts.size();
5568 SmallBitVector LoadMask(NumElems, false);
5569 SmallBitVector ZeroMask(NumElems, false);
5570 SmallBitVector UndefMask(NumElems, false);
5574 for (unsigned i = 0; i < NumElems; ++i) {
5588 if ((NumElems * Elt.getValueSizeInBits()) != VT.getSizeInBits())
5593 assert((ZeroMask | UndefMask | LoadMask).count() == NumElems &&
5597 if (UndefMask.count() == NumElems)
5601 if ((ZeroMask | UndefMask).count() == NumElems)
5654 if (FirstLoadedElt == 0 && LastLoadedElt == (int)(NumElems - 1) &&
5660 if (VT.getSizeInBits() != EltVT.getSizeInBits() * NumElems)
5671 if (!isAfterLegalize && NumElems == VT.getVectorNumElements()) {
5672 SmallVector<int, 4> ClearMask(NumElems, -1);
5673 for (unsigned i = 0; i < NumElems; ++i) {
5675 ClearMask[i] = i + NumElems;
5943 unsigned NumElems = Op.getNumOperands();
5948 SmallVector<int, 8> Mask(NumElems, -1);
5950 for (unsigned i = 0; i != NumElems; ++i) {
5989 Mask[i] = Idx + NumElems;
6505 unsigned NumElems = VT.getVectorNumElements();
6511 for (unsigned i = 1; i < NumElems; ++i)
6582 unsigned NumElems = Op.getNumOperands();
6608 for (unsigned i = 0; i < NumElems; ++i) {
6703 if (NumElems == 2 && Idx == 1 &&
6749 SmallVector<SDValue, 64> Ops(Op->op_begin(), Op->op_begin() + NumElems);
6757 SmallVector<SDValue, 64> Ops(Op->op_begin(), Op->op_begin() + NumElems);
6759 EVT HVT = EVT::getVectorVT(*DAG.getContext(), ExtVT, NumElems/2);
6763 DAG.getBuildVector(HVT, dl, makeArrayRef(&Ops[0], NumElems / 2));
6765 HVT, dl, makeArrayRef(&Ops[NumElems / 2], NumElems / 2));
6769 return concat128BitVectors(Lower, Upper, VT, NumElems, DAG, dl);
6770 return concat256BitVectors(Lower, Upper, VT, NumElems, DAG, dl);
6786 if (EVTBits == 8 && NumElems == 16)
6791 if (EVTBits == 16 && NumElems == 8)
6797 if (EVTBits == 32 && NumElems == 4)
6802 if (NumElems == 4 && NumZero > 0) {
6803 SmallVector<SDValue, 8> Ops(NumElems);
6835 static_cast<int>(Reverse2 ? NumElems+1 : NumElems),
6836 static_cast<int>(Reverse2 ? NumElems : NumElems+1)
6854 for (unsigned i = 1; i < NumElems; ++i) {
6865 SmallVector<SDValue, 8> Ops(NumElems);
6866 for (unsigned i = 0; i < NumElems; ++i) {
6877 unsigned EltStride = NumElems >> 1;
6886 EltStride == NumElems/2)
6909 unsigned NumElems = ResVT.getVectorNumElements();
6911 return concat128BitVectors(V1, V2, ResVT, NumElems, DAG, dl);
6919 concat128BitVectors(V1, V2, HalfVT, NumElems / 2, DAG, dl),
6920 concat128BitVectors(V3, V4, HalfVT, NumElems / 2, DAG, dl), ResVT,
6921 NumElems, DAG, dl);
6923 return concat256BitVectors(V1, V2, ResVT, NumElems, DAG, dl);
6972 unsigned NumElems = ResVT.getVectorNumElements();
6974 V1.getValueType().getVectorNumElements() == NumElems/2 &&
6992 SDValue IdxVal = DAG.getIntPtrConstant(NumElems/2, dl);
14231 unsigned NumElems = VT.getVectorNumElements();
14232 MVT NVT = MVT::getVectorVT(VT.getVectorElementType(), NumElems * 2);
14234 SmallVector<int, 16> MaskVec(NumElems * 2, -1);
14236 for (unsigned i = 0; i != NumElems; ++i)
15112 unsigned NumElems = VT.getVectorNumElements();
15119 SDValue LHS2 = extract128BitVector(LHS, NumElems / 2, DAG, dl);
15124 SDValue RHS2 = extract128BitVector(RHS, NumElems / 2, DAG, dl);
15128 MVT NewVT = MVT::getVectorVT(EltVT, NumElems/2);
16143 unsigned NumElems = InVT.getVectorNumElements();
16146 SmallVector<int,8> ShufMask1(NumElems, -1);
16147 for (unsigned i = 0; i != NumElems/2; ++i)
16152 SmallVector<int,8> ShufMask2(NumElems, -1);
16153 for (unsigned i = 0; i != NumElems/2; ++i)
16154 ShufMask2[i] = i + NumElems/2;
16351 unsigned NumElems = RegVT.getVectorNumElements();
16382 EVT HalfVecVT = EVT::getVectorVT(*DAG.getContext(), HalfEltVT, NumElems);
16399 assert(isPowerOf2_32(RegSz * MemSz * NumElems) &&
16495 SmallVector<int, 16> ShuffleVec(NumElems * SizeRatio, -1);
16496 for (unsigned i = 0; i != NumElems; ++i)
18981 unsigned NumElems = VT.getVectorNumElements();
19002 if (16 < NumElems) {
19006 MVT OutVT = MVT::getVectorVT(EltVT, NumElems/2);
19014 MVT NewVT = MVT::getVectorVT(MVT::i32, NumElems);
19109 unsigned NumElems = VT.getVectorNumElements();
19113 SDValue RHS = extract128BitVector(Op0, NumElems / 2, DAG, DL);
19217 unsigned NumElems = VT.getVectorNumElements();
19223 SDValue LHS2 = extract128BitVector(LHS, NumElems / 2, DAG, dl);
19228 SDValue RHS2 = extract128BitVector(RHS, NumElems / 2, DAG, dl);
19231 MVT NewVT = MVT::getVectorVT(EltVT, NumElems/2);
19246 unsigned NumElems = VT.getVectorNumElements();
19252 SDValue LHS2 = extract256BitVector(LHS, NumElems / 2, DAG, dl);
19257 SDValue RHS2 = extract256BitVector(RHS, NumElems / 2, DAG, dl);
19260 MVT NewVT = MVT::getVectorVT(EltVT, NumElems/2);
19621 unsigned NumElems = VT.getVectorNumElements();
19622 MVT HalfVT = MVT::getVectorVT(VT.getScalarType(), NumElems / 2);
19625 SDValue Hi0 = extract128BitVector(Op0, NumElems / 2, DAG, dl);
19626 SDValue Hi1 = extract128BitVector(Op1, NumElems / 2, DAG, dl);
20076 unsigned NumElems = VT.getVectorNumElements();
20078 for (unsigned i=0; i !=NumElems; ++i) {
21032 unsigned NumElems = VT.getVectorNumElements();
21036 SDValue RHS = extract128BitVector(Op0, NumElems / 2, DAG, DL);
21044 unsigned NumElems = VT.getVectorNumElements();
21048 SDValue RHS = extract256BitVector(Op0, NumElems / 2, DAG, DL);
24680 unsigned NumElems = VT.getVectorNumElements();
24704 for (unsigned i = 0; i != NumElems/2; ++i)
24706 !isUndefOrEqual(SVOp->getMaskElt(i+NumElems/2), NumElems))
26193 unsigned NumElems = CurrentVT.getVectorNumElements();
26195 int Idx = (Elt > (int)NumElems) ? SM_SentinelUndef : ShuffleMask[Elt];
26203 assert(0 <= Idx && Idx < (int)(2 * NumElems) && "Shuffle index out of range");
26204 SDValue LdNode = (Idx < (int)NumElems) ? ShuffleOps[0]
28107 unsigned NumElems = SrcType.getVectorNumElements();
28131 for (unsigned i = 0; i != NumElems; ++i) {
28154 for (unsigned i = 0; i != NumElems; ++i)
28156 Mask.push_back(NumElems);
28667 unsigned NumElems = VT.getVectorNumElements();
28671 isPowerOf2_32(NumElems)))
28798 unsigned NumElems = RegVT.getVectorNumElements();
28799 if (NumElems < 2)
28805 NumElems/2);
28822 NewVec = insert128BitVector(NewVec, Load2, NumElems / 2, DAG, dl);
28980 unsigned NumElems = VT.getVectorNumElements();
28988 assert (isPowerOf2_32(NumElems * FromSz * ToSz) &&
28992 assert(SizeRatio * NumElems * FromSz == VT.getSizeInBits());
28996 LdVT.getScalarType(), NumElems*SizeRatio);
29002 SmallVector<int, 16> ShuffleVec(NumElems * SizeRatio, -1);
29003 for (unsigned i = 0; i != NumElems; ++i)
29018 SmallVector<int, 16> ShuffleVec(NumElems * SizeRatio, -1);
29019 for (unsigned i = 0; i != NumElems; ++i)
29021 for (unsigned i = NumElems; i != NumElems * SizeRatio; ++i)
29022 ShuffleVec[i] = NumElems * SizeRatio;
29028 unsigned WidenNumElts = NumElems*SizeRatio;
29086 unsigned NumElems = VT.getVectorNumElements();
29104 assert (isPowerOf2_32(NumElems * FromSz * ToSz) &&
29108 assert (((NumElems * FromSz) % ToSz) == 0 &&
29112 assert(SizeRatio * NumElems * ToSz == VT.getSizeInBits());
29116 StVT.getScalarType(), NumElems*SizeRatio);
29121 SmallVector<int, 16> ShuffleVec(NumElems * SizeRatio, -1);
29122 for (unsigned i = 0; i != NumElems; ++i)
29138 for (unsigned i = 0; i != NumElems; ++i)
29140 for (unsigned i = NumElems; i != NumElems*SizeRatio; ++i)
29141 ShuffleVec[i] = NumElems*SizeRatio;
29147 unsigned WidenNumElts = NumElems*SizeRatio;
29185 unsigned NumElems = VT.getVectorNumElements();
29186 if (NumElems < 2)
29190 SDValue Value1 = extract128BitVector(StoredVal, NumElems / 2, DAG, dl);
29219 unsigned NumElems = VT.getVectorNumElements();
29232 if (!isPowerOf2_32(NumElems * FromSz * ToSz)) return SDValue();
29235 if (0 != (NumElems * FromSz) % ToSz) return SDValue();
29239 assert(SizeRatio * NumElems * ToSz == VT.getSizeInBits());
29243 StVT.getScalarType(), NumElems*SizeRatio);
29248 SmallVector<int, 8> ShuffleVec(NumElems * SizeRatio, -1);
29249 for (unsigned i = 0; i != NumElems; ++i)
29265 if (TLI.isTypeLegal(Tp) && Tp.getSizeInBits() <= NumElems * ToSz)
29271 (64 <= NumElems * ToSz))
29283 for (unsigned i=0, e=(ToSz*NumElems)/StoreType.getSizeInBits(); i!=e; ++i) {
29668 unsigned NumElems = OutVT.getVectorNumElements();
29679 (OutSVT == MVT::i8 || OutSVT == MVT::i16) && isPowerOf2_32(NumElems) &&
29680 NumElems >= 8))
29684 if (Subtarget.hasSSSE3() && NumElems == 8 &&