Lines Matching refs:NumElems

3574   unsigned NumElems = VT.getVectorNumElements();  in getMOVL()  local
3576 Mask.push_back(NumElems); in getMOVL()
3577 for (unsigned i = 1; i != NumElems; ++i) in getMOVL()
5494 unsigned NumElems = OpVT.getVectorNumElements(); in insert1BitVector() local
5500 if ((!Subtarget.hasDQI() && NumElems == 8) || NumElems < 8) in insert1BitVector()
5516 assert(IdxVal + SubVecNumElems <= NumElems && in insert1BitVector()
5549 NumElems = WideOpVT.getVectorNumElements(); in insert1BitVector()
5550 unsigned ShiftLeft = NumElems - SubVecNumElems; in insert1BitVector()
5551 unsigned ShiftRight = NumElems - SubVecNumElems - IdxVal; in insert1BitVector()
5561 if (IdxVal + SubVecNumElems == NumElems) { in insert1BitVector()
5564 if (SubVecNumElems * 2 == NumElems) { in insert1BitVector()
5575 NumElems = WideOpVT.getVectorNumElements(); in insert1BitVector()
5576 SDValue ShiftBits = DAG.getConstant(NumElems - IdxVal, dl, MVT::i8); in insert1BitVector()
5586 NumElems = WideOpVT.getVectorNumElements(); in insert1BitVector()
5596 unsigned ShiftLeft = NumElems - SubVecNumElems; in insert1BitVector()
5600 unsigned ShiftRight = NumElems - SubVecNumElems - IdxVal; in insert1BitVector()
5610 unsigned NumElems, SelectionDAG &DAG, in concatSubVectors() argument
5613 return insertSubVector(V, V2, NumElems / 2, DAG, dl, VectorWidth); in concatSubVectors()
5681 int NumElems = VT.getVectorNumElements(); in getShuffleVectorZeroOrUndef() local
5682 SmallVector<int, 16> MaskVec(NumElems); in getShuffleVectorZeroOrUndef()
5683 for (int i = 0; i != NumElems; ++i) in getShuffleVectorZeroOrUndef()
5685 MaskVec[i] = (i == Idx) ? NumElems : i; in getShuffleVectorZeroOrUndef()
6081 unsigned NumElems = VT.getVectorNumElements(); in getTargetShuffleMask() local
6097 DecodeBLENDMask(NumElems, cast<ConstantSDNode>(ImmN)->getZExtValue(), Mask); in getTargetShuffleMask()
6104 DecodeSHUFPMask(NumElems, MaskEltSize, in getTargetShuffleMask()
6121 DecodeEXTRQIMask(NumElems, MaskEltSize, BitLen, BitIdx, Mask); in getTargetShuffleMask()
6132 DecodeINSERTQIMask(NumElems, MaskEltSize, BitLen, BitIdx, Mask); in getTargetShuffleMask()
6139 DecodeUNPCKHMask(NumElems, MaskEltSize, Mask); in getTargetShuffleMask()
6145 DecodeUNPCKLMask(NumElems, MaskEltSize, Mask); in getTargetShuffleMask()
6151 DecodeMOVHLPSMask(NumElems, Mask); in getTargetShuffleMask()
6157 DecodeMOVLHPSMask(NumElems, Mask); in getTargetShuffleMask()
6165 DecodePALIGNRMask(NumElems, cast<ConstantSDNode>(ImmN)->getZExtValue(), in getTargetShuffleMask()
6175 DecodePSLLDQMask(NumElems, cast<ConstantSDNode>(ImmN)->getZExtValue(), in getTargetShuffleMask()
6183 DecodePSRLDQMask(NumElems, cast<ConstantSDNode>(ImmN)->getZExtValue(), in getTargetShuffleMask()
6191 DecodePSHUFMask(NumElems, MaskEltSize, in getTargetShuffleMask()
6198 DecodePSHUFHWMask(NumElems, cast<ConstantSDNode>(ImmN)->getZExtValue(), in getTargetShuffleMask()
6205 DecodePSHUFLWMask(NumElems, cast<ConstantSDNode>(ImmN)->getZExtValue(), in getTargetShuffleMask()
6211 DecodeZeroMoveLowMask(NumElems, Mask); in getTargetShuffleMask()
6227 DecodeVectorBroadcast(NumElems, Mask); in getTargetShuffleMask()
6239 DecodeVPERMILPMask(NumElems, MaskEltSize, RawMask, RawUndefs, Mask); in getTargetShuffleMask()
6259 DecodeVPERMMask(NumElems, cast<ConstantSDNode>(ImmN)->getZExtValue(), Mask); in getTargetShuffleMask()
6266 DecodeScalarMoveMask(NumElems, /* IsLoad */ false, Mask); in getTargetShuffleMask()
6272 DecodeVPERM2X128Mask(NumElems, cast<ConstantSDNode>(ImmN)->getZExtValue(), in getTargetShuffleMask()
6280 decodeVSHUF64x2FamilyMask(NumElems, MaskEltSize, in getTargetShuffleMask()
6286 DecodeMOVSLDUPMask(NumElems, Mask); in getTargetShuffleMask()
6291 DecodeMOVSHDUPMask(NumElems, Mask); in getTargetShuffleMask()
6296 DecodeMOVDDUPMask(NumElems, Mask); in getTargetShuffleMask()
6309 DecodeVPERMIL2PMask(NumElems, MaskEltSize, CtrlImm, RawMask, RawUndefs, in getTargetShuffleMask()
6810 unsigned NumElems = VT.getVectorNumElements(); in getShuffleScalarElt() local
6811 SDValue NewV = (Elt < (int)NumElems) ? SV->getOperand(0) in getShuffleScalarElt()
6813 return getShuffleScalarElt(NewV.getNode(), Elt % NumElems, DAG, Depth+1); in getShuffleScalarElt()
6820 int NumElems = (int)ShufVT.getVectorNumElements(); in getShuffleScalarElt() local
6835 assert(0 <= Elt && Elt < (2*NumElems) && "Shuffle index out of range"); in getShuffleScalarElt()
6836 SDValue NewV = (Elt < NumElems) ? ShuffleOps[0] : ShuffleOps[1]; in getShuffleScalarElt()
6837 return getShuffleScalarElt(NewV.getNode(), Elt % NumElems, DAG, in getShuffleScalarElt()
6845 unsigned NumElems = VT.getVectorNumElements(); in getShuffleScalarElt() local
6847 if (!SrcVT.isVector() || SrcVT.getVectorNumElements() != NumElems) in getShuffleScalarElt()
7177 unsigned NumElems = VT.getVectorNumElements(); in LowerAsSplatVectorLoad() local
7179 EVT NVT = EVT::getVectorVT(*DAG.getContext(), PVT, NumElems); in LowerAsSplatVectorLoad()
7183 SmallVector<int, 8> Mask(NumElems, EltNo); in LowerAsSplatVectorLoad()
7200 unsigned NumElems = Elts.size(); in EltsFromConsecutiveLoads() local
7203 SmallBitVector LoadMask(NumElems, false); in EltsFromConsecutiveLoads()
7204 SmallBitVector ZeroMask(NumElems, false); in EltsFromConsecutiveLoads()
7205 SmallBitVector UndefMask(NumElems, false); in EltsFromConsecutiveLoads()
7209 for (unsigned i = 0; i < NumElems; ++i) { in EltsFromConsecutiveLoads()
7223 if ((NumElems * Elt.getValueSizeInBits()) != VT.getSizeInBits()) in EltsFromConsecutiveLoads()
7228 assert((ZeroMask | UndefMask | LoadMask).count() == NumElems && in EltsFromConsecutiveLoads()
7232 if (UndefMask.count() == NumElems) in EltsFromConsecutiveLoads()
7236 if ((ZeroMask | UndefMask).count() == NumElems) in EltsFromConsecutiveLoads()
7288 if (FirstLoadedElt == 0 && LastLoadedElt == (int)(NumElems - 1) && in EltsFromConsecutiveLoads()
7294 if (VT.getSizeInBits() != EltVT.getSizeInBits() * NumElems) in EltsFromConsecutiveLoads()
7311 if (!isAfterLegalize && NumElems == VT.getVectorNumElements()) { in EltsFromConsecutiveLoads()
7312 SmallVector<int, 4> ClearMask(NumElems, -1); in EltsFromConsecutiveLoads()
7313 for (unsigned i = 0; i < NumElems; ++i) { in EltsFromConsecutiveLoads()
7315 ClearMask[i] = i + NumElems; in EltsFromConsecutiveLoads()
7693 unsigned NumElems = Op.getNumOperands(); in buildFromShuffleMostly() local
7698 SmallVector<int, 8> Mask(NumElems, -1); in buildFromShuffleMostly()
7700 for (unsigned i = 0; i != NumElems; ++i) { in buildFromShuffleMostly()
7740 Mask[i] = Idx + NumElems; in buildFromShuffleMostly()
8473 unsigned NumElems = VT.getVectorNumElements(); in lowerBuildVectorToBitOp() local
8479 for (unsigned i = 1; i < NumElems; ++i) in lowerBuildVectorToBitOp()
8858 unsigned NumElems = Op.getNumOperands(); in LowerBUILD_VECTOR() local
8884 unsigned NumConstants = NumElems; in LowerBUILD_VECTOR()
8885 for (unsigned i = 0; i < NumElems; ++i) { in LowerBUILD_VECTOR()
8913 if (NumConstants == NumElems - 1 && NumNonZero != 1 && in LowerBUILD_VECTOR()
8921 SmallVector<Constant *, 16> ConstVecOps(NumElems, UndefValue::get(EltType)); in LowerBUILD_VECTOR()
8924 for (unsigned i = 0; i != NumElems; ++i) { in LowerBUILD_VECTOR()
9016 if (NumElems == 2 && Idx == 1 && in LowerBUILD_VECTOR()
9065 SmallVector<SDValue, 64> Ops(Op->op_begin(), Op->op_begin() + NumElems); in LowerBUILD_VECTOR()
9077 auto CanSplat = [](SDValue Op, unsigned NumElems, ArrayRef<SDValue> Ops) { in LowerBUILD_VECTOR() argument
9079 for (unsigned i = 2; i != NumElems; ++i) in LowerBUILD_VECTOR()
9084 if (CanSplat(Op, NumElems, Ops)) { in LowerBUILD_VECTOR()
9091 MVT BcastVT = MVT::getVectorVT(WideEltVT, NumElems/2); in LowerBUILD_VECTOR()
9100 MVT HVT = MVT::getVectorVT(EltVT, NumElems/2); in LowerBUILD_VECTOR()
9104 DAG.getBuildVector(HVT, dl, Op->ops().slice(0, NumElems / 2)); in LowerBUILD_VECTOR()
9106 HVT, dl, Op->ops().slice(NumElems / 2, NumElems /2)); in LowerBUILD_VECTOR()
9109 return concatSubVectors(Lower, Upper, VT, NumElems, DAG, dl, in LowerBUILD_VECTOR()
9126 if (EVTBits == 8 && NumElems == 16) in LowerBUILD_VECTOR()
9131 if (EVTBits == 16 && NumElems == 8) in LowerBUILD_VECTOR()
9137 if (EVTBits == 32 && NumElems == 4) in LowerBUILD_VECTOR()
9142 if (NumElems == 4 && NumZero > 0) { in LowerBUILD_VECTOR()
9143 SmallVector<SDValue, 8> Ops(NumElems); in LowerBUILD_VECTOR()
9175 static_cast<int>(Reverse2 ? NumElems+1 : NumElems), in LowerBUILD_VECTOR()
9176 static_cast<int>(Reverse2 ? NumElems : NumElems+1) in LowerBUILD_VECTOR()
9195 for (unsigned i = 1; i < NumElems; ++i) { in LowerBUILD_VECTOR()
9206 SmallVector<SDValue, 8> Ops(NumElems); in LowerBUILD_VECTOR()
9207 for (unsigned i = 0; i < NumElems; ++i) { in LowerBUILD_VECTOR()
9218 for (unsigned Scale = 1; Scale < NumElems; Scale *= 2) { in LowerBUILD_VECTOR()
9224 Mask.push_back(NumElems+i); in LowerBUILD_VECTOR()
9225 Mask.append(NumElems - Mask.size(), SM_SentinelUndef); in LowerBUILD_VECTOR()
9227 for (unsigned i = 0, e = NumElems / (2 * Scale); i != e; ++i) in LowerBUILD_VECTOR()
9412 unsigned NumElems = ResVT.getVectorNumElements(); in LowerCONCAT_VECTORSvXi1() local
9414 DAG.getIntPtrConstant(NumElems/2, dl)); in LowerCONCAT_VECTORSvXi1()
15941 int NumElems = VT.getVectorNumElements(); in lower1BitVectorShuffle() local
15942 if ((Subtarget.hasBWI() && (NumElems >= 32)) || in lower1BitVectorShuffle()
15943 (Subtarget.hasDQI() && (NumElems < 32))) in lower1BitVectorShuffle()
16335 unsigned NumElems = VecVT.getVectorNumElements(); in ExtractBitFromMaskVector() local
16337 if ((!Subtarget.hasDQI() && NumElems == 8) || NumElems < 8) { in ExtractBitFromMaskVector()
16713 unsigned NumElems = VecVT.getVectorNumElements(); in LowerEXTRACT_SUBVECTOR() local
16717 if ((!Subtarget.hasDQI() && NumElems == 8) || NumElems < 8) { in LowerEXTRACT_SUBVECTOR()
18136 unsigned NumElems = SrcVT.getVectorNumElements(); in truncateVectorWithPACK() local
18137 if (!isPowerOf2_32(NumElems)) in truncateVectorWithPACK()
18141 assert(DstVT.getVectorNumElements() == NumElems && "Illegal truncation"); in truncateVectorWithPACK()
18166 unsigned NumSubElts = NumElems / 2; in truncateVectorWithPACK()
18198 EVT PackedVT = EVT::getVectorVT(Ctx, PackedSVT, NumElems); in truncateVectorWithPACK()
18209 PackedVT = EVT::getVectorVT(Ctx, PackedSVT, NumElems); in truncateVectorWithPACK()
18418 unsigned NumElems = VT.getVectorNumElements(); in LowerTRUNCATE() local
18419 MVT NVT = MVT::getVectorVT(VT.getVectorElementType(), NumElems * 2); in LowerTRUNCATE()
18421 SmallVector<int, 16> MaskVec(NumElems * 2, -1); in LowerTRUNCATE()
18423 for (unsigned i = 0; i != NumElems; ++i) in LowerTRUNCATE()
19251 unsigned NumElems = VT.getVectorNumElements(); in Lower256IntVSETCC() local
19258 SDValue LHS2 = extract128BitVector(LHS, NumElems / 2, DAG, dl); in Lower256IntVSETCC()
19263 SDValue RHS2 = extract128BitVector(RHS, NumElems / 2, DAG, dl); in Lower256IntVSETCC()
19267 MVT NewVT = MVT::getVectorVT(EltVT, NumElems/2); in Lower256IntVSETCC()
20454 unsigned NumElems = InVT.getVectorNumElements(); in LowerSIGN_EXTEND() local
20455 SmallVector<int,8> ShufMask(NumElems, -1); in LowerSIGN_EXTEND()
20456 for (unsigned i = 0; i != NumElems/2; ++i) in LowerSIGN_EXTEND()
20457 ShufMask[i] = i + NumElems/2; in LowerSIGN_EXTEND()
20570 unsigned NumElems = RegVT.getVectorNumElements(); in LowerLoad() local
20601 EVT HalfVecVT = EVT::getVectorVT(*DAG.getContext(), HalfEltVT, NumElems); in LowerLoad()
20617 assert(isPowerOf2_32(RegSz * MemSz * NumElems) && in LowerLoad()
20717 SmallVector<int, 16> ShuffleVec(NumElems * SizeRatio, -1); in LowerLoad()
20718 for (unsigned i = 0; i != NumElems; ++i) in LowerLoad()
23233 unsigned NumElems = VT.getVectorNumElements(); in LowerVectorIntUnary() local
23243 SDValue Hi = extractSubVector(Src, NumElems / 2, DAG, dl, SizeInBits / 2); in LowerVectorIntUnary()
23245 MVT NewVT = MVT::getVectorVT(EltVT, NumElems / 2); in LowerVectorIntUnary()
23279 unsigned NumElems = VT.getVectorNumElements(); in LowerVectorCTLZ_AVX512CDI() local
23285 if (NumElems > 16 || in LowerVectorCTLZ_AVX512CDI()
23286 (NumElems == 16 && !Subtarget.canExtendTo512DQ())) in LowerVectorCTLZ_AVX512CDI()
23289 MVT NewVT = MVT::getVectorVT(MVT::i32, NumElems); in LowerVectorCTLZ_AVX512CDI()
23485 unsigned NumElems = VT.getVectorNumElements(); in split256IntArith() local
23491 SDValue LHS2 = extract128BitVector(LHS, NumElems / 2, DAG, dl); in split256IntArith()
23496 SDValue RHS2 = extract128BitVector(RHS, NumElems / 2, DAG, dl); in split256IntArith()
23499 MVT NewVT = MVT::getVectorVT(EltVT, NumElems/2); in split256IntArith()
23514 unsigned NumElems = VT.getVectorNumElements(); in split512IntArith() local
23520 SDValue LHS2 = extract256BitVector(LHS, NumElems / 2, DAG, dl); in split512IntArith()
23525 SDValue RHS2 = extract256BitVector(RHS, NumElems / 2, DAG, dl); in split512IntArith()
23528 MVT NewVT = MVT::getVectorVT(EltVT, NumElems/2); in split512IntArith()
24386 unsigned NumElems = VT.getVectorNumElements(); in convertShiftLeftToScale() local
24388 for (unsigned i = 0; i != NumElems; ++i) { in convertShiftLeftToScale()
25544 unsigned NumElems = VT.getVectorNumElements(); in LowerVectorCTPOP() local
25547 if (NumElems < 16 || (NumElems == 16 && Subtarget.canExtendTo512DQ())) { in LowerVectorCTPOP()
25548 MVT NewVT = MVT::getVectorVT(MVT::i32, NumElems); in LowerVectorCTPOP()
32820 unsigned NumElems = CurrentVT.getVectorNumElements(); in XFormVExtractWithShuffleIntoLoad() local
32822 int Idx = (Elt > (int)NumElems) ? SM_SentinelUndef : ShuffleMask[Elt]; in XFormVExtractWithShuffleIntoLoad()
32835 assert(0 <= Idx && Idx < (int)(2 * NumElems) && "Shuffle index out of range"); in XFormVExtractWithShuffleIntoLoad()
32836 SDValue LdNode = (Idx < (int)NumElems) ? ShuffleOps[0] : ShuffleOps[1]; in XFormVExtractWithShuffleIntoLoad()
37138 unsigned NumElems = VT.getVectorNumElements(); in detectAVGPattern() local
37142 NumElems >= 2 && isPowerOf2_32(NumElems))) in detectAVGPattern()
37267 unsigned NumElems = RegVT.getVectorNumElements(); in combineLoad() local
37268 if (NumElems < 2) in combineLoad()
37274 NumElems/2); in combineLoad()
37453 unsigned NumElems = VT.getVectorNumElements(); in combineMaskedLoad() local
37461 assert (isPowerOf2_32(NumElems * FromSz * ToSz) && in combineMaskedLoad()
37465 assert(SizeRatio * NumElems * FromSz == VT.getSizeInBits()); in combineMaskedLoad()
37469 LdVT.getScalarType(), NumElems*SizeRatio); in combineMaskedLoad()
37475 SmallVector<int, 16> ShuffleVec(NumElems * SizeRatio, -1); in combineMaskedLoad()
37476 for (unsigned i = 0; i != NumElems; ++i) in combineMaskedLoad()
37492 SmallVector<int, 16> ShuffleVec(NumElems * SizeRatio, -1); in combineMaskedLoad()
37493 for (unsigned i = 0; i != NumElems; ++i) in combineMaskedLoad()
37495 for (unsigned i = NumElems; i != NumElems * SizeRatio; ++i) in combineMaskedLoad()
37496 ShuffleVec[i] = NumElems * SizeRatio; in combineMaskedLoad()
37502 unsigned WidenNumElts = NumElems*SizeRatio; in combineMaskedLoad()
37579 unsigned NumElems = VT.getVectorNumElements(); in combineMaskedStore() local
37597 assert (isPowerOf2_32(NumElems * FromSz * ToSz) && in combineMaskedStore()
37601 assert (((NumElems * FromSz) % ToSz) == 0 && in combineMaskedStore()
37605 assert(SizeRatio * NumElems * ToSz == VT.getSizeInBits()); in combineMaskedStore()
37609 StVT.getScalarType(), NumElems*SizeRatio); in combineMaskedStore()
37614 SmallVector<int, 16> ShuffleVec(NumElems * SizeRatio, -1); in combineMaskedStore()
37615 for (unsigned i = 0; i != NumElems; ++i) in combineMaskedStore()
37631 for (unsigned i = 0; i != NumElems; ++i) in combineMaskedStore()
37633 for (unsigned i = NumElems; i != NumElems*SizeRatio; ++i) in combineMaskedStore()
37634 ShuffleVec[i] = NumElems*SizeRatio; in combineMaskedStore()
37640 unsigned WidenNumElts = NumElems*SizeRatio; in combineMaskedStore()
37744 unsigned NumElems = VT.getVectorNumElements(); in combineStore() local
37745 if (NumElems < 2) in combineStore()
37749 SDValue Value1 = extract128BitVector(StoredVal, NumElems / 2, DAG, dl); in combineStore()
37790 unsigned NumElems = VT.getVectorNumElements(); in combineStore() local
37803 if (!isPowerOf2_32(NumElems * FromSz * ToSz)) return SDValue(); in combineStore()
37806 if (0 != (NumElems * FromSz) % ToSz) return SDValue(); in combineStore()
37810 assert(SizeRatio * NumElems * ToSz == VT.getSizeInBits()); in combineStore()
37814 StVT.getScalarType(), NumElems*SizeRatio); in combineStore()
37819 SmallVector<int, 8> ShuffleVec(NumElems * SizeRatio, -1); in combineStore()
37820 for (unsigned i = 0; i != NumElems; ++i) in combineStore()
37836 if (TLI.isTypeLegal(Tp) && Tp.getSizeInBits() <= NumElems * ToSz) in combineStore()
37842 (64 <= NumElems * ToSz)) in combineStore()
37854 for (unsigned i=0, e=(ToSz*NumElems)/StoreType.getSizeInBits(); i!=e; ++i) { in combineStore()
38266 unsigned NumElems = OutVT.getVectorNumElements(); in combineVectorTruncation() local
38277 (OutSVT == MVT::i8 || OutSVT == MVT::i16) && isPowerOf2_32(NumElems) && in combineVectorTruncation()
38278 NumElems >= 8)) in combineVectorTruncation()
38282 if (Subtarget.hasSSSE3() && NumElems == 8 && in combineVectorTruncation()
38418 unsigned NumElems = VT.getVectorNumElements(); in detectPMADDUBSW() local
38420 if (ScalarVT != MVT::i16 || NumElems < 8 || !isPowerOf2_32(NumElems)) in detectPMADDUBSW()
38483 for (unsigned i = 0; i != NumElems; ++i) { in detectPMADDUBSW()
41231 unsigned NumElems = OpVT.getSizeInBits() / CastVT.getScalarSizeInBits(); in combineInsertSubvector() local
41232 MVT NewVT = MVT::getVectorVT(CastVT.getVectorElementType(), NumElems); in combineInsertSubvector()