Lines Matching defs:EltSizeInBits

3336   unsigned EltSizeInBits = VT.getScalarSizeInBits();
3337 if (isOperationLegal(ISD::MUL, VT) && EltSizeInBits <= 32 &&
3338 (EltSizeInBits != 32 || !Subtarget.isPMULLDSlow()))
4785 unsigned EltSizeInBits = VT.getScalarSizeInBits();
4786 bool UsePackUS = Subtarget.hasSSE41() || EltSizeInBits == 8;
4789 (EltSizeInBits * 2) == OpVT.getScalarSizeInBits() &&
4791 assert((EltSizeInBits == 8 || EltSizeInBits == 16 || EltSizeInBits == 32) &&
4795 if (EltSizeInBits == 32) {
4812 DAG.computeKnownBits(LHS).countMaxActiveBits() <= EltSizeInBits &&
4813 DAG.computeKnownBits(RHS).countMaxActiveBits() <= EltSizeInBits)
4816 if (DAG.ComputeMaxSignificantBits(LHS) <= EltSizeInBits &&
4817 DAG.ComputeMaxSignificantBits(RHS) <= EltSizeInBits)
4822 SDValue Amt = DAG.getTargetConstant(EltSizeInBits, dl, MVT::i8);
4828 SDValue Mask = DAG.getConstant((1ULL << EltSizeInBits) - 1, dl, OpVT);
4896 static bool getTargetConstantBitsFromNode(SDValue Op, unsigned EltSizeInBits,
4907 assert((SizeInBits % EltSizeInBits) == 0 && "Can't split constant!");
4908 unsigned NumElts = SizeInBits / EltSizeInBits;
4942 EltBits.resize(NumElts, APInt(EltSizeInBits, 0));
4945 unsigned BitOffset = i * EltSizeInBits;
4946 APInt UndefEltBits = UndefBits.extractBits(EltSizeInBits, BitOffset);
4961 EltBits[i] = MaskBits.extractBits(EltSizeInBits, BitOffset);
5007 SmallVector<APInt, 64> SrcEltBits(NumElts, APInt(EltSizeInBits, 0));
5062 EltSizeInBits <= VT.getScalarSizeInBits()) {
5137 bool AllowUndefs = EltSizeInBits >= SrcEltSizeInBits;
5160 if (EltSizeInBits != VT.getScalarSizeInBits())
5163 if (getTargetConstantBitsFromNode(Op.getOperand(0), EltSizeInBits,
5182 if (EltSizeInBits != VT.getScalarSizeInBits())
5193 !getTargetConstantBitsFromNode(Op.getOperand(0), EltSizeInBits,
5198 !getTargetConstantBitsFromNode(Op.getOperand(1), EltSizeInBits,
5208 EltBits.push_back(APInt::getZero(EltSizeInBits));
5851 unsigned EltSizeInBits = VT.getSizeInBits() / Size;
5857 getTargetConstantBitsFromNode(V1, EltSizeInBits, UndefSrcElts[0],
5860 getTargetConstantBitsFromNode(V2, EltSizeInBits, UndefSrcElts[1],
5968 unsigned EltSizeInBits = CondVT.getScalarSizeInBits();
5973 if (!getTargetConstantBitsFromNode(Cond, EltSizeInBits, UndefElts, EltBits,
7154 unsigned EltSizeInBits = Elt.getValueSizeInBits();
7155 if ((NumElems * EltSizeInBits) != VT.getSizeInBits())
7161 if (((ByteOffsets[i] * 8) + EltSizeInBits) > LoadSizeInBits)
9740 unsigned EltSizeInBits,
9743 int LaneSize = LaneSizeInBits / EltSizeInBits;
10326 unsigned EltSizeInBits = VT.getScalarSizeInBits();
10327 unsigned MaxScale = 64 / EltSizeInBits;
10330 unsigned SrcEltBits = EltSizeInBits * Scale;
10339 SrcVT = MVT::getIntegerVT(EltSizeInBits * Scale);
10341 DstVT = MVT::getIntegerVT(EltSizeInBits);
10342 if ((NumSrcElts * EltSizeInBits) >= 128) {
10347 DstVT = MVT::getVectorVT(DstVT, 128 / EltSizeInBits);
10428 unsigned EltSizeInBits = VT.getScalarSizeInBits();
10429 unsigned MaxScale = 64 / EltSizeInBits;
10431 unsigned SrcEltBits = EltSizeInBits * Scale;
10450 ((DAG.ComputeNumSignBits(Src) > EltSizeInBits) ||
10451 (DAG.computeKnownBits(Src).countMinLeadingZeros() >= EltSizeInBits)))
10479 unsigned EltSizeInBits = VT.getScalarSizeInBits();
10480 unsigned MaxScale = 64 / EltSizeInBits;
10483 unsigned SrcEltBits = EltSizeInBits * Scale;
10537 DAG.getTargetConstant(Offset * EltSizeInBits, DL, MVT::i8));
11451 unsigned EltSizeInBits = Input.getScalarValueSizeInBits();
11452 if (!Subtarget.hasAVX2() && (!Subtarget.hasAVX() || EltSizeInBits < 32 ||
11537 static int matchShuffleAsBitRotate(MVT &RotateVT, int EltSizeInBits,
11541 assert(EltSizeInBits < 64 && "Can't rotate 64-bit integers");
11544 int MinSubElts = Subtarget.hasAVX512() ? std::max(32 / EltSizeInBits, 2) : 2;
11545 int MaxSubElts = 64 / EltSizeInBits;
11547 if (!ShuffleVectorInst::isBitRotateMask(Mask, EltSizeInBits, MinSubElts,
11551 MVT RotateSVT = MVT::getIntegerVT(EltSizeInBits * NumSubElts);
18576 unsigned EltSizeInBits = EltVT.getScalarSizeInBits();
18600 (Subtarget.hasAVX512() && EltSizeInBits >= 32) ||
18604 MVT IdxSVT = MVT::getIntegerVT(EltSizeInBits);
18646 (EltSizeInBits >= 16 || (IsZeroElt && !VT.is128BitVector()))) {
18673 unsigned NumEltsIn128 = 128 / EltSizeInBits;
18681 ((Subtarget.hasAVX2() && EltSizeInBits != 8) ||
18682 (Subtarget.hasAVX() && (EltSizeInBits >= 32) &&
22311 unsigned EltSizeInBits = VT.getScalarSizeInBits();
22313 APFloat(Sem, APInt::getSignMask(EltSizeInBits)), dl, LogicVT);
22315 APFloat(Sem, APInt::getSignedMaxValue(EltSizeInBits)), dl, LogicVT);
29830 unsigned EltSizeInBits = VT.getScalarSizeInBits();
29877 if (APIntShiftAmt.uge(EltSizeInBits))
29908 DAG.ComputeNumSignBits(R) == EltSizeInBits) {
30110 unsigned EltSizeInBits = VT.getScalarSizeInBits();
30171 if (A.isUndef() || A->getAsAPIntVal().uge(EltSizeInBits))
30236 int WideEltSizeInBits = EltSizeInBits;
30297 if (EltSizeInBits == 8 && Subtarget.hasGFNI()) {
30325 // FullMask = (1 << EltSizeInBits) - 1
30345 // are `EltSizeInBits-AmtWide` bits wide.
30347 // To convert our `EltSizeInBits-AmtWide` bit unsigned numbers to signed
30348 // numbers as wide as `EltSizeInBits`, we need to replicate the bit at
30349 // position `EltSizeInBits-AmtWide` into the MSBs of each narrow lane. We
30351 // SignBitMask = 1 << (EltSizeInBits-AmtWide-1)
30366 DAG.getConstant(APInt::getSignMask(EltSizeInBits), dl, VT);
30389 SDValue EltBits = DAG.getConstant(EltSizeInBits, dl, VT);
30408 SDValue EltBits = DAG.getConstant(EltSizeInBits, dl, VT);
30788 unsigned EltSizeInBits = VT.getScalarSizeInBits();
30796 if (Subtarget.hasVBMI2() && EltSizeInBits > 8) {
30801 uint64_t ShiftAmt = APIntShiftAmt.urem(EltSizeInBits);
30820 uint64_t ShiftAmt = APIntShiftAmt.urem(EltSizeInBits);
30821 uint64_t ShXAmt = IsFSHR ? (EltSizeInBits - ShiftAmt) : ShiftAmt;
30822 uint64_t ShYAmt = IsFSHR ? ShiftAmt : (EltSizeInBits - ShiftAmt);
30823 assert((ShXAmt + ShYAmt) == EltSizeInBits && "Illegal funnel shift");
30826 if (EltSizeInBits == 8 &&
30855 SDValue AmtMask = DAG.getConstant(EltSizeInBits - 1, DL, VT);
30860 if (IsCst && EltSizeInBits == 16)
30864 MVT ExtSVT = MVT::getIntegerVT(2 * EltSizeInBits);
30869 if ((VT.is256BitVector() && ((Subtarget.hasXOP() && EltSizeInBits < 16) ||
30872 EltSizeInBits < 32)) {
30883 if (EltSizeInBits == 16)
30897 std::min<unsigned>(EltSizeInBits * 2, Subtarget.hasBWI() ? 16 : 32));
30913 EltSizeInBits, DAG);
30918 EltSizeInBits, DAG);
30923 if (((IsCst || !Subtarget.hasAVX512()) && !IsFSHR && EltSizeInBits <= 16) ||
30950 SDValue Mask = DAG.getConstant(EltSizeInBits - 1, DL, Amt.getValueType());
30951 SDValue HiShift = DAG.getConstant(EltSizeInBits, DL, Amt.getValueType());
30989 unsigned EltSizeInBits = VT.getScalarSizeInBits();
30998 if (IsCstSplat && CstSplatValue.urem(EltSizeInBits) == 0)
31004 32 <= EltSizeInBits) {
31008 uint64_t RotAmt = CstSplatValue.urem(EltSizeInBits);
31018 if (Subtarget.hasVBMI2() && 16 == EltSizeInBits) {
31040 uint64_t RotAmt = CstSplatValue.urem(EltSizeInBits);
31059 uint64_t RotAmt = CstSplatValue.urem(EltSizeInBits);
31072 uint64_t RotAmt = CstSplatValue.urem(EltSizeInBits);
31073 uint64_t ShlAmt = IsROTL ? RotAmt : (EltSizeInBits - RotAmt);
31074 uint64_t SrlAmt = IsROTL ? (EltSizeInBits - RotAmt) : RotAmt;
31093 MVT ExtSVT = MVT::getIntegerVT(2 * EltSizeInBits);
31096 SDValue AmtMask = DAG.getConstant(EltSizeInBits - 1, DL, VT);
31102 if (EltSizeInBits == 8 || EltSizeInBits == 16 || EltSizeInBits == 32) {
31105 if (EltSizeInBits == 16 && Subtarget.hasSSE41()) {
31127 if (!(ConstantAmt && EltSizeInBits != 8) &&
31142 if (EltSizeInBits == 8) {
31238 SDValue AmtR = DAG.getConstant(EltSizeInBits, DL, VT);
31263 if (EltSizeInBits == 16) {
39153 unsigned EltSizeInBits = MaskVT.getScalarSizeInBits();
39237 (MaskVT.is256BitVector() && 32 <= EltSizeInBits && Subtarget.hasAVX()) ||
39240 (32 <= EltSizeInBits || Subtarget.hasBWI()))) {
39245 SrcVT = DstVT = (32 == EltSizeInBits ? MVT::v8f32 : MVT::v4f64);
39255 (EltSizeInBits % V1.getScalarValueSizeInBits()) == 0 &&
39256 (EltSizeInBits % V2.getScalarValueSizeInBits()) == 0) {
39348 unsigned EltSizeInBits = MaskVT.getScalarSizeInBits();
39351 if (AllowIntDomain && (EltSizeInBits == 64 || EltSizeInBits == 32) &&
39359 if (EltSizeInBits == 64)
39421 if (AllowFloatDomain && EltSizeInBits == 32 && Subtarget.hasSSE41() &&
39430 if (AllowFloatDomain && EltSizeInBits == 64 &&
39446 if (AllowFloatDomain && EltSizeInBits == 32 &&
39493 if (AllowFloatDomain && EltSizeInBits == 32 && Subtarget.hasSSE41() &&
40450 unsigned EltSizeInBits = RootSizeInBits / Mask.size();
40455 if (isRepeatedTargetShuffleMask(128, EltSizeInBits, Mask, LaneMask) &&
40575 if (isRepeatedTargetShuffleMask(128, EltSizeInBits, Mask, TargetMask128) &&
41063 unsigned EltSizeInBits = RootSizeInBits / Mask.size();
41064 return getTargetConstantBitsFromNode(Op, EltSizeInBits, UndefElts,
41100 unsigned EltSizeInBits = RootSizeInBits / NumExpectedVectorElts;
41101 unsigned NumOpVectorElts = Op.getValueSizeInBits() / EltSizeInBits;
42211 unsigned EltSizeInBits = VT.getScalarSizeInBits();
42213 N0.getOperand(0).getScalarValueSizeInBits() == EltSizeInBits) {
43244 int EltSizeInBits = VT.getScalarSizeInBits();
43245 APInt OpBits = APInt::getAllOnes(EltSizeInBits);
43247 if (getTargetConstantBitsFromNode(Op, EltSizeInBits, UndefElts,
45971 unsigned EltSizeInBits = VecSVT.getSizeInBits();
45972 unsigned NumEltsPerLane = 128 / EltSizeInBits;
45973 unsigned LaneOffset = (Idx & ~(NumEltsPerLane - 1)) * EltSizeInBits;
46202 unsigned EltSizeInBits = VecVT.getScalarSizeInBits();
46293 if (Opc == ISD::ADD && NumElts >= 4 && EltSizeInBits >= 16 &&
46295 (EltSizeInBits == 16 || Rdx.getOpcode() == ISD::ZERO_EXTEND ||
46561 unsigned EltSizeInBits = SVT.getSizeInBits();
46583 if (NumElts > EltSizeInBits) {
46588 assert((NumElts % EltSizeInBits) == 0 && "Unexpected integer scale");
46589 unsigned Scale = NumElts / EltSizeInBits;
46590 EVT BroadcastVT = EVT::getVectorVT(*DAG.getContext(), SclVT, EltSizeInBits);
46599 int Offset = UseBroadcast ? (i * EltSizeInBits) : 0;
46600 ShuffleMask.append(EltSizeInBits, i + Offset);
46603 } else if (Subtarget.hasAVX2() && NumElts < EltSizeInBits &&
46609 assert((EltSizeInBits % NumElts) == 0 && "Unexpected integer scale");
46611 (NumElts * EltSizeInBits) / NumElts);
46623 int BitIdx = (i % EltSizeInBits);
46624 APInt Bit = APInt::getBitsSet(EltSizeInBits, BitIdx, BitIdx + 1);
46640 DAG.getConstant(EltSizeInBits - 1, DL, VT));
49320 unsigned EltSizeInBits = VT.getScalarSizeInBits();
49332 sd_match(Cond, m_SetCC(m_Specific(N1), m_SpecificInt(EltSizeInBits),
49338 sd_match(Cond, m_SetCC(m_Specific(N1), m_SpecificInt(EltSizeInBits),
49456 unsigned EltSizeInBits = VT.getScalarSizeInBits();
49471 sd_match(Cond, m_SetCC(m_Specific(N1), m_SpecificInt(EltSizeInBits),
49477 sd_match(Cond, m_SetCC(m_Specific(N1), m_SpecificInt(EltSizeInBits),
51248 int EltSizeInBits = VT.getScalarSizeInBits();
51249 APInt DemandedBits = APInt::getAllOnes(EltSizeInBits);
51251 if (getTargetConstantBitsFromNode(Op, EltSizeInBits, UndefElts,
51342 unsigned EltSizeInBits = VT.getScalarSizeInBits();
51343 if (!VT.isVector() || (EltSizeInBits % 8) != 0)
51380 MVT OpSVT = EltSizeInBits <= 32 ? MVT::i32 : MVT::i64;
52017 int EltSizeInBits = VT.getScalarSizeInBits();
52018 if (!getTargetConstantBitsFromNode(Op, EltSizeInBits, UndefElts, EltBits))
54718 unsigned EltSizeInBits = VT.getScalarSizeInBits();
54758 if (getTargetConstantBitsFromNode(N0, EltSizeInBits, Undefs0, EltBits0,
54761 if (getTargetConstantBitsFromNode(N1, EltSizeInBits, Undefs1, EltBits1,
54795 APInt DemandedBits = APInt::getAllOnes(EltSizeInBits);
54797 if (getTargetConstantBitsFromNode(Op, EltSizeInBits, UndefElts,
54840 if (DAG.ComputeNumSignBits(N0) == EltSizeInBits) {
57394 unsigned EltSizeInBits = VT.getScalarSizeInBits();
57430 (EltSizeInBits >= 32 &&
57539 (EltSizeInBits >= 32 || Subtarget.hasInt256()) &&
57597 if (!IsSplat && EltSizeInBits >= 32 &&
57622 if (!IsSplat && EltSizeInBits == 32 &&
57677 MVT IntMaskSVT = MVT::getIntegerVT(EltSizeInBits);
57711 MVT IntMaskSVT = MVT::getIntegerVT(EltSizeInBits);
57777 (EltSizeInBits >= 32 || Subtarget.useBWIRegs())))) {
57813 (EltSizeInBits >= 32 || Subtarget.useBWIRegs()))) &&
57863 if (MaxSigBitsLHS == EltSizeInBits && MaxSigBitsRHS == EltSizeInBits)
57872 MVT FpSVT = MVT::getFloatingPointVT(EltSizeInBits);
57919 (EltSizeInBits >= 32 || Subtarget.useBWIRegs())))) {
58004 (EltSizeInBits >= 32 || Subtarget.hasBWI())) {
58019 (EltSizeInBits >= 32 || Subtarget.hasInt256()) &&
58054 if (!getTargetConstantBitsFromNode(Ops[I], EltSizeInBits, OpUndefElts,