Lines Matching refs:NumElems

3903   unsigned NumElems = VT.getVectorNumElements();  in getMOVL()  local
3905 Mask.push_back(NumElems); in getMOVL()
3906 for (unsigned i = 1; i != NumElems; ++i) in getMOVL()
6038 unsigned NumElems = VT.getVectorNumElements(); in splitVector() local
6040 assert((NumElems % 2) == 0 && (SizeInBits % 2) == 0 && in splitVector()
6044 SDValue Hi = extractSubVector(Op, NumElems / 2, DAG, dl, SizeInBits / 2); in splitVector()
6167 unsigned NumElems = OpVT.getVectorNumElements(); in insert1BitVector() local
6172 if ((!Subtarget.hasDQI() && NumElems == 8) || NumElems < 8) in insert1BitVector()
6187 assert(IdxVal + SubVecNumElems <= NumElems && in insert1BitVector()
6220 NumElems = WideOpVT.getVectorNumElements(); in insert1BitVector()
6221 unsigned ShiftLeft = NumElems - SubVecNumElems; in insert1BitVector()
6222 unsigned ShiftRight = NumElems - SubVecNumElems - IdxVal; in insert1BitVector()
6232 if (IdxVal + SubVecNumElems == NumElems) { in insert1BitVector()
6235 if (SubVecNumElems * 2 == NumElems) { in insert1BitVector()
6246 NumElems = WideOpVT.getVectorNumElements(); in insert1BitVector()
6247 SDValue ShiftBits = DAG.getTargetConstant(NumElems - IdxVal, dl, MVT::i8); in insert1BitVector()
6257 NumElems = WideOpVT.getVectorNumElements(); in insert1BitVector()
6262 unsigned ShiftLeft = NumElems - SubVecNumElems; in insert1BitVector()
6263 unsigned ShiftRight = NumElems - SubVecNumElems - IdxVal; in insert1BitVector()
6267 APInt Mask0 = APInt::getBitsSet(NumElems, IdxVal, IdxVal + SubVecNumElems); in insert1BitVector()
6269 SDValue CMask0 = DAG.getConstant(Mask0, dl, MVT::getIntegerVT(NumElems)); in insert1BitVector()
6289 unsigned LowShift = NumElems - IdxVal; in insert1BitVector()
6478 int NumElems = VT.getVectorNumElements(); in getShuffleVectorZeroOrUndef() local
6479 SmallVector<int, 16> MaskVec(NumElems); in getShuffleVectorZeroOrUndef()
6480 for (int i = 0; i != NumElems; ++i) in getShuffleVectorZeroOrUndef()
6482 MaskVec[i] = (i == Idx) ? NumElems : i; in getShuffleVectorZeroOrUndef()
6976 unsigned NumElems = VT.getVectorNumElements(); in getTargetShuffleMask() local
6992 DecodeBLENDMask(NumElems, ImmN, Mask); in getTargetShuffleMask()
6999 DecodeSHUFPMask(NumElems, MaskEltSize, ImmN, Mask); in getTargetShuffleMask()
7015 DecodeEXTRQIMask(NumElems, MaskEltSize, BitLen, BitIdx, Mask); in getTargetShuffleMask()
7026 DecodeINSERTQIMask(NumElems, MaskEltSize, BitLen, BitIdx, Mask); in getTargetShuffleMask()
7033 DecodeUNPCKHMask(NumElems, MaskEltSize, Mask); in getTargetShuffleMask()
7039 DecodeUNPCKLMask(NumElems, MaskEltSize, Mask); in getTargetShuffleMask()
7045 DecodeMOVHLPSMask(NumElems, Mask); in getTargetShuffleMask()
7051 DecodeMOVLHPSMask(NumElems, Mask); in getTargetShuffleMask()
7060 DecodeVALIGNMask(NumElems, ImmN, Mask); in getTargetShuffleMask()
7070 DecodePALIGNRMask(NumElems, ImmN, Mask); in getTargetShuffleMask()
7079 DecodePSLLDQMask(NumElems, ImmN, Mask); in getTargetShuffleMask()
7086 DecodePSRLDQMask(NumElems, ImmN, Mask); in getTargetShuffleMask()
7093 DecodePSHUFMask(NumElems, MaskEltSize, ImmN, Mask); in getTargetShuffleMask()
7099 DecodePSHUFHWMask(NumElems, ImmN, Mask); in getTargetShuffleMask()
7105 DecodePSHUFLWMask(NumElems, ImmN, Mask); in getTargetShuffleMask()
7110 DecodeZeroMoveLowMask(NumElems, Mask); in getTargetShuffleMask()
7118 DecodeVectorBroadcast(NumElems, Mask); in getTargetShuffleMask()
7129 DecodeVPERMILPMask(NumElems, MaskEltSize, RawMask, RawUndefs, Mask); in getTargetShuffleMask()
7149 DecodeVPERMMask(NumElems, ImmN, Mask); in getTargetShuffleMask()
7156 DecodeScalarMoveMask(NumElems, /* IsLoad */ false, Mask); in getTargetShuffleMask()
7162 DecodeVPERM2X128Mask(NumElems, ImmN, Mask); in getTargetShuffleMask()
7169 decodeVSHUF64x2FamilyMask(NumElems, MaskEltSize, ImmN, Mask); in getTargetShuffleMask()
7174 DecodeMOVSLDUPMask(NumElems, Mask); in getTargetShuffleMask()
7179 DecodeMOVSHDUPMask(NumElems, Mask); in getTargetShuffleMask()
7184 DecodeMOVDDUPMask(NumElems, Mask); in getTargetShuffleMask()
7197 DecodeVPERMIL2PMask(NumElems, MaskEltSize, CtrlImm, RawMask, RawUndefs, in getTargetShuffleMask()
8003 unsigned NumElems = VT.getVectorNumElements(); in getShuffleScalarElt() local
8012 SDValue Src = (Elt < (int)NumElems) ? SV->getOperand(0) : SV->getOperand(1); in getShuffleScalarElt()
8013 return getShuffleScalarElt(Src, Elt % NumElems, DAG, Depth + 1); in getShuffleScalarElt()
8020 int NumElems = (int)ShufVT.getVectorNumElements(); in getShuffleScalarElt() local
8034 assert(0 <= Elt && Elt < (2 * NumElems) && "Shuffle index out of range"); in getShuffleScalarElt()
8035 SDValue Src = (Elt < NumElems) ? ShuffleOps[0] : ShuffleOps[1]; in getShuffleScalarElt()
8036 return getShuffleScalarElt(Src, Elt % NumElems, DAG, Depth + 1); in getShuffleScalarElt()
8071 if (SrcVT.isVector() && SrcVT.getVectorNumElements() == NumElems) in getShuffleScalarElt()
8418 unsigned NumElems = VT.getVectorNumElements(); in LowerAsSplatVectorLoad() local
8420 EVT NVT = EVT::getVectorVT(*DAG.getContext(), PVT, NumElems); in LowerAsSplatVectorLoad()
8424 SmallVector<int, 8> Mask(NumElems, EltNo); in LowerAsSplatVectorLoad()
8487 unsigned NumElems = Elts.size(); in EltsFromConsecutiveLoads() local
8490 APInt LoadMask = APInt::getNullValue(NumElems); in EltsFromConsecutiveLoads()
8491 APInt ZeroMask = APInt::getNullValue(NumElems); in EltsFromConsecutiveLoads()
8492 APInt UndefMask = APInt::getNullValue(NumElems); in EltsFromConsecutiveLoads()
8494 SmallVector<LoadSDNode*, 8> Loads(NumElems, nullptr); in EltsFromConsecutiveLoads()
8495 SmallVector<int64_t, 8> ByteOffsets(NumElems, 0); in EltsFromConsecutiveLoads()
8499 for (unsigned i = 0; i < NumElems; ++i) { in EltsFromConsecutiveLoads()
8515 if ((NumElems * EltSizeInBits) != VT.getSizeInBits()) in EltsFromConsecutiveLoads()
8528 LoadMask.countPopulation()) == NumElems && in EltsFromConsecutiveLoads()
8532 if (UndefMask.countPopulation() == NumElems) in EltsFromConsecutiveLoads()
8534 if ((ZeroMask.countPopulation() + UndefMask.countPopulation()) == NumElems) in EltsFromConsecutiveLoads()
8563 return (0 <= BaseIdx && BaseIdx < (int)NumElems && LoadMask[BaseIdx] && in EltsFromConsecutiveLoads()
8611 (NumLoadedElts == (int)NumElems || IsDereferenceable) && in EltsFromConsecutiveLoads()
8622 if (NumElems == 1) in EltsFromConsecutiveLoads()
8632 if ((NumMaskElts % NumElems) == 0) { in EltsFromConsecutiveLoads()
8633 unsigned Scale = NumMaskElts / NumElems; in EltsFromConsecutiveLoads()
8635 for (unsigned i = 0; i < NumElems; ++i) { in EltsFromConsecutiveLoads()
8652 unsigned HalfNumElems = NumElems / 2; in EltsFromConsecutiveLoads()
8691 if (ZeroMask.isNullValue() && isPowerOf2_32(NumElems) && Subtarget.hasAVX() && in EltsFromConsecutiveLoads()
8693 for (unsigned SubElems = 1; SubElems < NumElems; SubElems *= 2) { in EltsFromConsecutiveLoads()
8706 for (unsigned i = 0; i != NumElems && Match; ++i) { in EltsFromConsecutiveLoads()
9101 unsigned NumElems = Op.getNumOperands(); in buildFromShuffleMostly() local
9106 SmallVector<int, 8> Mask(NumElems, -1); in buildFromShuffleMostly()
9108 for (unsigned i = 0; i != NumElems; ++i) { in buildFromShuffleMostly()
9148 Mask[i] = Idx + NumElems; in buildFromShuffleMostly()
9890 unsigned NumElems = VT.getVectorNumElements(); in lowerBuildVectorToBitOp() local
9896 for (unsigned i = 1; i < NumElems; ++i) in lowerBuildVectorToBitOp()
10307 unsigned NumElems = Op.getNumOperands(); in LowerBUILD_VECTOR() local
10317 APInt UndefMask = APInt::getNullValue(NumElems); in LowerBUILD_VECTOR()
10318 APInt ZeroMask = APInt::getNullValue(NumElems); in LowerBUILD_VECTOR()
10319 APInt NonZeroMask = APInt::getNullValue(NumElems); in LowerBUILD_VECTOR()
10322 unsigned NumConstants = NumElems; in LowerBUILD_VECTOR()
10323 for (unsigned i = 0; i < NumElems; ++i) { in LowerBUILD_VECTOR()
10353 unsigned UpperElems = NumElems / 2; in LowerBUILD_VECTOR()
10358 NumUpperUndefsOrZeros >= (NumElems - (NumElems / 4))) in LowerBUILD_VECTOR()
10359 UpperElems = NumElems - (NumElems / 4); in LowerBUILD_VECTOR()
10361 MVT LowerVT = MVT::getVectorVT(EltVT, NumElems - UpperElems); in LowerBUILD_VECTOR()
10386 if (NumConstants == NumElems - 1 && NumNonZero != 1 && in LowerBUILD_VECTOR()
10394 SmallVector<Constant *, 16> ConstVecOps(NumElems, UndefValue::get(EltType)); in LowerBUILD_VECTOR()
10397 for (unsigned i = 0; i != NumElems; ++i) { in LowerBUILD_VECTOR()
10475 if (NumElems == 2 && Idx == 1 && in LowerBUILD_VECTOR()
10524 SmallVector<SDValue, 64> Ops(Op->op_begin(), Op->op_begin() + NumElems); in LowerBUILD_VECTOR()
10536 auto CanSplat = [](SDValue Op, unsigned NumElems, ArrayRef<SDValue> Ops) { in LowerBUILD_VECTOR() argument
10538 for (unsigned i = 2; i != NumElems; ++i) in LowerBUILD_VECTOR()
10543 if (CanSplat(Op, NumElems, Ops)) { in LowerBUILD_VECTOR()
10550 MVT BcastVT = MVT::getVectorVT(WideEltVT, NumElems / 2); in LowerBUILD_VECTOR()
10559 MVT HVT = MVT::getVectorVT(EltVT, NumElems / 2); in LowerBUILD_VECTOR()
10563 DAG.getBuildVector(HVT, dl, Op->ops().slice(0, NumElems / 2)); in LowerBUILD_VECTOR()
10565 HVT, dl, Op->ops().slice(NumElems / 2, NumElems /2)); in LowerBUILD_VECTOR()
10584 if (EVTBits == 8 && NumElems == 16) in LowerBUILD_VECTOR()
10589 if (EVTBits == 16 && NumElems == 8) in LowerBUILD_VECTOR()
10595 if (EVTBits == 32 && NumElems == 4) in LowerBUILD_VECTOR()
10600 if (NumElems == 4 && NumZero > 0) { in LowerBUILD_VECTOR()
10601 SmallVector<SDValue, 8> Ops(NumElems); in LowerBUILD_VECTOR()
10633 static_cast<int>(Reverse2 ? NumElems+1 : NumElems), in LowerBUILD_VECTOR()
10634 static_cast<int>(Reverse2 ? NumElems : NumElems+1) in LowerBUILD_VECTOR()
10653 for (unsigned i = 1; i < NumElems; ++i) { in LowerBUILD_VECTOR()
10664 SmallVector<SDValue, 8> Ops(NumElems); in LowerBUILD_VECTOR()
10665 for (unsigned i = 0; i < NumElems; ++i) { in LowerBUILD_VECTOR()
10676 for (unsigned Scale = 1; Scale < NumElems; Scale *= 2) { in LowerBUILD_VECTOR()
10682 Mask.push_back(NumElems+i); in LowerBUILD_VECTOR()
10683 Mask.append(NumElems - Mask.size(), SM_SentinelUndef); in LowerBUILD_VECTOR()
10685 for (unsigned i = 0, e = NumElems / (2 * Scale); i != e; ++i) in LowerBUILD_VECTOR()
10775 unsigned NumElems = ResVT.getVectorNumElements(); in LowerCONCAT_VECTORSvXi1() local
10783 if ((!Subtarget.hasDQI() && NumElems == 8) || NumElems < 8) in LowerCONCAT_VECTORSvXi1()
10828 DAG.getIntPtrConstant(NumElems/2, dl)); in LowerCONCAT_VECTORSvXi1()
18305 int NumElems = VT.getVectorNumElements(); in lower1BitShuffle() local
18306 if ((Subtarget.hasBWI() && (NumElems >= 32)) || in lower1BitShuffle()
18307 (Subtarget.hasDQI() && (NumElems < 32))) in lower1BitShuffle()
18701 unsigned NumElems = VecVT.getVectorNumElements(); in ExtractBitFromMaskVector() local
18703 if ((!Subtarget.hasDQI() && NumElems == 8) || NumElems < 8) { in ExtractBitFromMaskVector()
19119 unsigned NumElems = VecVT.getVectorNumElements(); in LowerEXTRACT_SUBVECTOR() local
19123 if ((!Subtarget.hasDQI() && NumElems == 8) || NumElems < 8) { in LowerEXTRACT_SUBVECTOR()
20912 unsigned NumElems = SrcVT.getVectorNumElements(); in truncateVectorWithPACK() local
20913 if (!isPowerOf2_32(NumElems)) in truncateVectorWithPACK()
20917 assert(DstVT.getVectorNumElements() == NumElems && "Illegal truncation"); in truncateVectorWithPACK()
20976 EVT PackedVT = EVT::getVectorVT(Ctx, PackedSVT, NumElems); in truncateVectorWithPACK()
20983 EVT PackedVT = EVT::getVectorVT(Ctx, PackedSVT, NumElems / 2); in truncateVectorWithPACK()
20987 PackedVT = EVT::getVectorVT(Ctx, PackedSVT, NumElems); in truncateVectorWithPACK()
24133 unsigned NumElems = InVT.getVectorNumElements(); in LowerSIGN_EXTEND() local
24134 SmallVector<int,8> ShufMask(NumElems, -1); in LowerSIGN_EXTEND()
24135 for (unsigned i = 0; i != NumElems/2; ++i) in LowerSIGN_EXTEND()
24136 ShufMask[i] = i + NumElems/2; in LowerSIGN_EXTEND()
24193 unsigned NumElems = StoreVT.getVectorNumElements(); in scalarizeVectorStore() local
24198 for (unsigned i = 0; i != NumElems; ++i) { in scalarizeVectorStore()
27134 unsigned NumElems = VT.getVectorNumElements(); in LowerVectorCTLZ_AVX512CDI() local
27140 if (NumElems > 16 || in LowerVectorCTLZ_AVX512CDI()
27141 (NumElems == 16 && !Subtarget.canExtendTo512DQ())) in LowerVectorCTLZ_AVX512CDI()
27144 MVT NewVT = MVT::getVectorVT(MVT::i32, NumElems); in LowerVectorCTLZ_AVX512CDI()
28224 unsigned NumElems = VT.getVectorNumElements(); in convertShiftLeftToScale() local
28226 for (unsigned i = 0; i != NumElems; ++i) { in convertShiftLeftToScale()
29463 unsigned NumElems = VT.getVectorNumElements(); in LowerVectorCTPOP() local
29466 if (NumElems < 16 || (NumElems == 16 && Subtarget.canExtendTo512DQ())) { in LowerVectorCTPOP()
29467 MVT NewVT = MVT::getVectorVT(MVT::i32, NumElems); in LowerVectorCTPOP()
45290 unsigned NumElems = VT.getVectorNumElements(); in detectAVGPattern() local
45293 if (!((ScalarVT == MVT::i8 || ScalarVT == MVT::i16) && NumElems >= 2)) in detectAVGPattern()
45346 unsigned NumElemsPow2 = PowerOf2Ceil(NumElems); in detectAVGPattern()
45348 if (NumElemsPow2 != NumElems) { in detectAVGPattern()
45351 for (unsigned i = 0; i != NumElems; ++i) { in detectAVGPattern()
45361 if (NumElemsPow2 == NumElems) in detectAVGPattern()
45451 unsigned NumElems = RegVT.getVectorNumElements(); in combineLoad() local
45452 if (NumElems < 2) in combineLoad()
45460 NumElems / 2); in combineLoad()
45906 unsigned NumElems = VT.getVectorNumElements(); in combineStore() local
45907 if (NumElems < 2) in combineStore()
45919 unsigned NumElems = VT.getVectorNumElements(); in combineStore() local
45920 if (NumElems < 2) in combineStore()
46502 unsigned NumElems = OutVT.getVectorNumElements(); in combineVectorTruncation() local
46511 (OutSVT == MVT::i8 || OutSVT == MVT::i16) && isPowerOf2_32(NumElems) && in combineVectorTruncation()
46512 NumElems >= 8)) in combineVectorTruncation()
46516 if (Subtarget.hasSSSE3() && NumElems == 8 && in combineVectorTruncation()
46687 unsigned NumElems = VT.getVectorNumElements(); in detectPMADDUBSW() local
46689 if (ScalarVT != MVT::i16 || NumElems < 8 || !isPowerOf2_32(NumElems)) in detectPMADDUBSW()
46752 for (unsigned i = 0; i != NumElems; ++i) { in detectPMADDUBSW()