Lines Matching refs:DemandedElts
2523 const APInt &DemandedElts, in MaskedValueIsZero() argument
2525 return Mask.isSubsetOf(computeKnownBits(V, DemandedElts, Depth).Zero); in MaskedValueIsZero()
2530 bool SelectionDAG::MaskedVectorIsZero(SDValue V, const APInt &DemandedElts, in MaskedVectorIsZero() argument
2532 return computeKnownBits(V, DemandedElts, Depth).isZero(); in MaskedVectorIsZero()
2545 bool SelectionDAG::isSplatValue(SDValue V, const APInt &DemandedElts, in isSplatValue() argument
2551 if (!VT.isScalableVector() && !DemandedElts) in isSplatValue()
2562 ? APInt::getAllOnes(DemandedElts.getBitWidth()) in isSplatValue()
2563 : APInt(DemandedElts.getBitWidth(), 0); in isSplatValue()
2573 if (isSplatValue(LHS, DemandedElts, UndefLHS, Depth + 1) && in isSplatValue()
2574 isSplatValue(RHS, DemandedElts, UndefRHS, Depth + 1)) { in isSplatValue()
2584 return isSplatValue(V.getOperand(0), DemandedElts, UndefElts, Depth + 1); in isSplatValue()
2588 return TLI->isSplatValueForTargetNode(V, DemandedElts, UndefElts, Depth); in isSplatValue()
2598 assert(NumElts == DemandedElts.getBitWidth() && "Vector size mismatch"); in isSplatValue()
2610 if (!DemandedElts[i]) in isSplatValue()
2629 if (!DemandedElts[i]) in isSplatValue()
2665 APInt DemandedSrcElts = DemandedElts.zext(NumSrcElts).shl(Idx); in isSplatValue()
2682 APInt DemandedSrcElts = DemandedElts.zext(NumSrcElts); in isSplatValue()
2706 APIntOps::ScaleBitMask(DemandedElts, NumSrcElts); in isSplatValue()
2733 APInt DemandedElts; in isSplatValue() local
2737 DemandedElts = APInt::getAllOnes(VT.getVectorNumElements()); in isSplatValue()
2738 return isSplatValue(V, DemandedElts, UndefElts) && in isSplatValue()
2750 APInt DemandedElts; in getSplatSourceVector() local
2753 DemandedElts = APInt::getAllOnes(VT.getVectorNumElements()); in getSplatSourceVector()
2755 if (isSplatValue(V, DemandedElts, UndefElts)) { in getSplatSourceVector()
2762 if (DemandedElts.isSubsetOf(UndefElts)) { in getSplatSourceVector()
2766 SplatIdx = (UndefElts & DemandedElts).countTrailingOnes(); in getSplatSourceVector()
2815 const APInt &DemandedElts) const { in getValidShiftAmountConstant()
2820 if (ConstantSDNode *SA = isConstOrConstSplat(V.getOperand(1), DemandedElts)) { in getValidShiftAmountConstant()
2830 SDValue V, const APInt &DemandedElts) const { in getValidMinimumShiftAmountConstant()
2834 if (const APInt *ValidAmt = getValidShiftAmountConstant(V, DemandedElts)) in getValidMinimumShiftAmountConstant()
2842 if (!DemandedElts[i]) in getValidMinimumShiftAmountConstant()
2859 SDValue V, const APInt &DemandedElts) const { in getValidMaximumShiftAmountConstant()
2863 if (const APInt *ValidAmt = getValidShiftAmountConstant(V, DemandedElts)) in getValidMaximumShiftAmountConstant()
2871 if (!DemandedElts[i]) in getValidMaximumShiftAmountConstant()
2900 APInt DemandedElts = VT.isVector() in computeKnownBits() local
2903 return computeKnownBits(Op, DemandedElts, Depth); in computeKnownBits()
2909 KnownBits SelectionDAG::computeKnownBits(SDValue Op, const APInt &DemandedElts, in computeKnownBits() argument
2933 unsigned NumElts = DemandedElts.getBitWidth(); in computeKnownBits()
2938 if (!DemandedElts) in computeKnownBits()
2944 return computeKnownBits(Op.getOperand(Op.getResNo()), DemandedElts, in computeKnownBits()
2950 if (!DemandedElts[i]) in computeKnownBits()
2979 if (!DemandedElts[i]) in computeKnownBits()
3021 DemandedElts.extractBits(NumSubVectorElts, i * NumSubVectorElts); in computeKnownBits()
3040 APInt DemandedSubElts = DemandedElts.extractBits(NumSubElts, Idx); in computeKnownBits()
3041 APInt DemandedSrcElts = DemandedElts; in computeKnownBits()
3065 APInt DemandedSrcElts = DemandedElts.zext(NumSrcElts).shl(Idx); in computeKnownBits()
3072 if (DemandedElts != 1) in computeKnownBits()
3093 Known = computeKnownBits(N0, DemandedElts, Depth + 1); in computeKnownBits()
3110 if (DemandedElts[i]) in computeKnownBits()
3130 APIntOps::ScaleBitMask(DemandedElts, NumElts / SubScale); in computeKnownBits()
3135 if (DemandedElts[i]) { in computeKnownBits()
3148 Known = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3149 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3154 Known = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3155 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3160 Known = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3161 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3166 Known = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3167 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3172 Op.getOperand(0), DemandedElts, false, Depth + 1); in computeKnownBits()
3185 Known = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3186 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3191 Known = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3192 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3198 Known = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3199 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3209 Known = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3210 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3219 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3220 Known2 = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3230 Known = computeKnownBits(Op.getOperand(2), DemandedElts, Depth+1); in computeKnownBits()
3234 Known2 = computeKnownBits(Op.getOperand(1), DemandedElts, Depth+1); in computeKnownBits()
3240 Known = computeKnownBits(Op.getOperand(3), DemandedElts, Depth+1); in computeKnownBits()
3244 Known2 = computeKnownBits(Op.getOperand(2), DemandedElts, Depth+1); in computeKnownBits()
3275 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3276 Known2 = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3281 getValidMinimumShiftAmountConstant(Op, DemandedElts)) in computeKnownBits()
3285 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3286 Known2 = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3291 getValidMinimumShiftAmountConstant(Op, DemandedElts)) in computeKnownBits()
3295 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3296 Known2 = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3302 if (ConstantSDNode *C = isConstOrConstSplat(Op.getOperand(2), DemandedElts)) { in computeKnownBits()
3309 DemandedElts, Depth + 1); in computeKnownBits()
3315 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3316 Known2 = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3341 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3342 Known2 = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3347 Known2 = computeKnownBits(Op.getOperand(2), DemandedElts, Depth + 1); in computeKnownBits()
3365 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3372 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3381 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3389 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3421 if (!DemandedElts[i]) in computeKnownBits()
3463 APInt InDemandedElts = DemandedElts.zext(InVT.getVectorNumElements()); in computeKnownBits()
3469 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3475 APInt InDemandedElts = DemandedElts.zext(InVT.getVectorNumElements()); in computeKnownBits()
3483 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3491 APInt InDemandedElts = DemandedElts.zext(InVT.getVectorNumElements()); in computeKnownBits()
3497 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3502 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3551 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3552 Known2 = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3590 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3591 Known2 = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3596 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3597 Known2 = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3602 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3603 Known2 = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3608 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3609 Known2 = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3662 APInt DemandedVecElts = DemandedElts; in computeKnownBits()
3666 DemandedVal = !!DemandedElts[EltIdx]; in computeKnownBits()
3682 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3687 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3692 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3698 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3703 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3704 Known2 = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3709 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3710 Known2 = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3720 if ((CstLow = isConstOrConstSplat(Op.getOperand(1), DemandedElts))) in computeKnownBits()
3723 isConstOrConstSplat(Op.getOperand(0).getOperand(1), DemandedElts); in computeKnownBits()
3745 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3746 Known2 = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3822 TLI->computeKnownBitsForTargetNode(Op, Known, DemandedElts, *this, Depth); in computeKnownBits()
3921 APInt DemandedElts = VT.isVector() in ComputeNumSignBits() local
3924 return ComputeNumSignBits(Op, DemandedElts, Depth); in ComputeNumSignBits()
3927 unsigned SelectionDAG::ComputeNumSignBits(SDValue Op, const APInt &DemandedElts, in ComputeNumSignBits() argument
3932 unsigned NumElts = DemandedElts.getBitWidth(); in ComputeNumSignBits()
3944 if (!DemandedElts || VT.isScalableVector()) in ComputeNumSignBits()
3957 return ComputeNumSignBits(Op.getOperand(Op.getResNo()), DemandedElts, in ComputeNumSignBits()
3962 if (!DemandedElts[i]) in ComputeNumSignBits()
3987 if (!DemandedElts[i]) in ComputeNumSignBits()
4023 return ComputeNumSignBits(N0, DemandedElts, Depth + 1); in ComputeNumSignBits()
4033 APIntOps::ScaleBitMask(DemandedElts, NumElts / Scale); in ComputeNumSignBits()
4043 if (DemandedElts[i]) { in ComputeNumSignBits()
4062 return ComputeNumSignBits(Op.getOperand(0), DemandedElts, Depth+1) + Tmp; in ComputeNumSignBits()
4067 Tmp2 = ComputeNumSignBits(Op.getOperand(0), DemandedElts, Depth+1); in ComputeNumSignBits()
4072 APInt DemandedSrcElts = DemandedElts.zext(SrcVT.getVectorNumElements()); in ComputeNumSignBits()
4077 Tmp = ComputeNumSignBits(Op.getOperand(0), DemandedElts, Depth + 1); in ComputeNumSignBits()
4080 getValidMinimumShiftAmountConstant(Op, DemandedElts)) in ComputeNumSignBits()
4085 getValidMaximumShiftAmountConstant(Op, DemandedElts)) { in ComputeNumSignBits()
4087 Tmp = ComputeNumSignBits(Op.getOperand(0), DemandedElts, Depth + 1); in ComputeNumSignBits()
4096 Tmp = ComputeNumSignBits(Op.getOperand(0), DemandedElts, Depth+1); in ComputeNumSignBits()
4098 Tmp2 = ComputeNumSignBits(Op.getOperand(1), DemandedElts, Depth+1); in ComputeNumSignBits()
4108 Tmp = ComputeNumSignBits(Op.getOperand(1), DemandedElts, Depth+1); in ComputeNumSignBits()
4110 Tmp2 = ComputeNumSignBits(Op.getOperand(2), DemandedElts, Depth+1); in ComputeNumSignBits()
4113 Tmp = ComputeNumSignBits(Op.getOperand(2), DemandedElts, Depth+1); in ComputeNumSignBits()
4115 Tmp2 = ComputeNumSignBits(Op.getOperand(3), DemandedElts, Depth+1); in ComputeNumSignBits()
4124 if ((CstLow = isConstOrConstSplat(Op.getOperand(1), DemandedElts))) in ComputeNumSignBits()
4127 isConstOrConstSplat(Op.getOperand(0).getOperand(1), DemandedElts); in ComputeNumSignBits()
4139 Tmp = ComputeNumSignBits(Op.getOperand(0), DemandedElts, Depth + 1); in ComputeNumSignBits()
4142 Tmp2 = ComputeNumSignBits(Op.getOperand(1), DemandedElts, Depth + 1); in ComputeNumSignBits()
4147 Tmp = ComputeNumSignBits(Op.getOperand(0), DemandedElts, Depth + 1); in ComputeNumSignBits()
4150 Tmp2 = ComputeNumSignBits(Op.getOperand(1), DemandedElts, Depth + 1); in ComputeNumSignBits()
4185 Tmp = ComputeNumSignBits(Op.getOperand(0), DemandedElts, Depth + 1); in ComputeNumSignBits()
4192 isConstOrConstSplat(Op.getOperand(1), DemandedElts)) { in ComputeNumSignBits()
4208 Tmp = ComputeNumSignBits(Op.getOperand(0), DemandedElts, Depth + 1); in ComputeNumSignBits()
4213 isConstOrConstSplat(Op.getOperand(1), DemandedElts)) in ComputeNumSignBits()
4216 computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in ComputeNumSignBits()
4229 Tmp2 = ComputeNumSignBits(Op.getOperand(1), DemandedElts, Depth + 1); in ComputeNumSignBits()
4233 Tmp2 = ComputeNumSignBits(Op.getOperand(1), DemandedElts, Depth + 1); in ComputeNumSignBits()
4238 isConstOrConstSplat(Op.getOperand(0), DemandedElts)) in ComputeNumSignBits()
4241 computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in ComputeNumSignBits()
4257 Tmp = ComputeNumSignBits(Op.getOperand(0), DemandedElts, Depth + 1); in ComputeNumSignBits()
4277 return ComputeNumSignBits(Op.getOperand(0), DemandedElts, Depth + 1); in ComputeNumSignBits()
4307 APInt DemandedVecElts = DemandedElts; in ComputeNumSignBits()
4311 DemandedVal = !!DemandedElts[EltIdx]; in ComputeNumSignBits()
4364 APInt DemandedSrcElts = DemandedElts.zext(NumSrcElts).shl(Idx); in ComputeNumSignBits()
4376 DemandedElts.extractBits(NumSubVectorElts, i * NumSubVectorElts); in ComputeNumSignBits()
4392 APInt DemandedSubElts = DemandedElts.extractBits(NumSubElts, Idx); in ComputeNumSignBits()
4393 APInt DemandedSrcElts = DemandedElts; in ComputeNumSignBits()
4461 if (!DemandedElts[i]) in ComputeNumSignBits()
4492 TLI->ComputeNumSignBitsForTargetNode(Op, DemandedElts, *this, Depth); in ComputeNumSignBits()
4499 KnownBits Known = computeKnownBits(Op, DemandedElts, Depth); in ComputeNumSignBits()
4510 const APInt &DemandedElts, in ComputeMaxSignificantBits() argument
4512 unsigned SignBits = ComputeNumSignBits(Op, DemandedElts, Depth); in ComputeMaxSignificantBits()
4527 APInt DemandedElts = VT.isVector() in isGuaranteedNotToBeUndefOrPoison() local
4530 return isGuaranteedNotToBeUndefOrPoison(Op, DemandedElts, PoisonOnly, Depth); in isGuaranteedNotToBeUndefOrPoison()
4534 const APInt &DemandedElts, in isGuaranteedNotToBeUndefOrPoison() argument
4557 if (!DemandedElts[i]) in isGuaranteedNotToBeUndefOrPoison()
4574 Op, DemandedElts, *this, PoisonOnly, Depth); in isGuaranteedNotToBeUndefOrPoison()
10702 ConstantSDNode *llvm::isConstOrConstSplat(SDValue N, const APInt &DemandedElts, in isConstOrConstSplat() argument
10710 ConstantSDNode *CN = BV->getConstantSplatNode(DemandedElts, &UndefElements); in isConstOrConstSplat()
10745 const APInt &DemandedElts, in isConstOrConstSplatFP() argument
10753 BV->getConstantFPSplatNode(DemandedElts, &UndefElements); in isConstOrConstSplatFP()
11460 SDValue BuildVectorSDNode::getSplatValue(const APInt &DemandedElts, in getSplatValue() argument
11467 assert(NumOps == DemandedElts.getBitWidth() && "Unexpected vector size"); in getSplatValue()
11468 if (!DemandedElts) in getSplatValue()
11472 if (!DemandedElts[i]) in getSplatValue()
11486 unsigned FirstDemandedIdx = DemandedElts.countTrailingZeros(); in getSplatValue()
11496 APInt DemandedElts = APInt::getAllOnes(getNumOperands()); in getSplatValue() local
11497 return getSplatValue(DemandedElts, UndefElements); in getSplatValue()
11500 bool BuildVectorSDNode::getRepeatedSequence(const APInt &DemandedElts, in getRepeatedSequence() argument
11509 assert(NumOps == DemandedElts.getBitWidth() && "Unexpected vector size"); in getRepeatedSequence()
11510 if (!DemandedElts || NumOps < 2 || !isPowerOf2_32(NumOps)) in getRepeatedSequence()
11516 if (DemandedElts[I] && getOperand(I).isUndef()) in getRepeatedSequence()
11523 if (!DemandedElts[I]) in getRepeatedSequence()
11548 APInt DemandedElts = APInt::getAllOnes(getNumOperands()); in getRepeatedSequence() local
11549 return getRepeatedSequence(DemandedElts, Sequence, UndefElements); in getRepeatedSequence()
11553 BuildVectorSDNode::getConstantSplatNode(const APInt &DemandedElts, in getConstantSplatNode() argument
11556 getSplatValue(DemandedElts, UndefElements)); in getConstantSplatNode()
11565 BuildVectorSDNode::getConstantFPSplatNode(const APInt &DemandedElts, in getConstantFPSplatNode() argument
11568 getSplatValue(DemandedElts, UndefElements)); in getConstantFPSplatNode()