Lines Matching refs:DemandedElts
2382 APInt DemandedElts = VT.isVector() in GetDemandedBits() local
2385 return GetDemandedBits(V, DemandedBits, DemandedElts); in GetDemandedBits()
2394 const APInt &DemandedElts) { in GetDemandedBits() argument
2397 return TLI->SimplifyMultipleUseDemandedBits(V, DemandedBits, DemandedElts, in GetDemandedBits()
2447 const APInt &DemandedElts, in MaskedValueIsZero() argument
2449 return Mask.isSubsetOf(computeKnownBits(V, DemandedElts, Depth).Zero); in MaskedValueIsZero()
2462 bool SelectionDAG::isSplatValue(SDValue V, const APInt &DemandedElts, in isSplatValue() argument
2467 if (!VT.isScalableVector() && !DemandedElts) in isSplatValue()
2478 ? APInt::getAllOnesValue(DemandedElts.getBitWidth()) in isSplatValue()
2479 : APInt(DemandedElts.getBitWidth(), 0); in isSplatValue()
2489 if (isSplatValue(LHS, DemandedElts, UndefLHS, Depth + 1) && in isSplatValue()
2490 isSplatValue(RHS, DemandedElts, UndefRHS, Depth + 1)) { in isSplatValue()
2500 return isSplatValue(V.getOperand(0), DemandedElts, UndefElts, Depth + 1); in isSplatValue()
2509 assert(NumElts == DemandedElts.getBitWidth() && "Vector size mismatch"); in isSplatValue()
2521 if (!DemandedElts[i]) in isSplatValue()
2540 if (!DemandedElts[i]) in isSplatValue()
2557 APInt DemandedSrcElts = DemandedElts.zextOrSelf(NumSrcElts).shl(Idx); in isSplatValue()
2575 APInt DemandedElts; in isSplatValue() local
2579 DemandedElts = APInt::getAllOnesValue(VT.getVectorNumElements()); in isSplatValue()
2580 return isSplatValue(V, DemandedElts, UndefElts) && in isSplatValue()
2592 APInt DemandedElts; in getSplatSourceVector() local
2595 DemandedElts = APInt::getAllOnesValue(VT.getVectorNumElements()); in getSplatSourceVector()
2597 if (isSplatValue(V, DemandedElts, UndefElts)) { in getSplatSourceVector()
2604 if (DemandedElts.isSubsetOf(UndefElts)) { in getSplatSourceVector()
2608 SplatIdx = (UndefElts & DemandedElts).countTrailingOnes(); in getSplatSourceVector()
2657 const APInt &DemandedElts) const { in getValidShiftAmountConstant()
2662 if (ConstantSDNode *SA = isConstOrConstSplat(V.getOperand(1), DemandedElts)) { in getValidShiftAmountConstant()
2672 SDValue V, const APInt &DemandedElts) const { in getValidMinimumShiftAmountConstant()
2676 if (const APInt *ValidAmt = getValidShiftAmountConstant(V, DemandedElts)) in getValidMinimumShiftAmountConstant()
2684 if (!DemandedElts[i]) in getValidMinimumShiftAmountConstant()
2701 SDValue V, const APInt &DemandedElts) const { in getValidMaximumShiftAmountConstant()
2705 if (const APInt *ValidAmt = getValidShiftAmountConstant(V, DemandedElts)) in getValidMaximumShiftAmountConstant()
2713 if (!DemandedElts[i]) in getValidMaximumShiftAmountConstant()
2742 APInt DemandedElts = VT.isVector() in computeKnownBits() local
2745 return computeKnownBits(Op, DemandedElts, Depth); in computeKnownBits()
2751 KnownBits SelectionDAG::computeKnownBits(SDValue Op, const APInt &DemandedElts, in computeKnownBits() argument
2775 unsigned NumElts = DemandedElts.getBitWidth(); in computeKnownBits()
2780 if (!DemandedElts) in computeKnownBits()
2789 if (!DemandedElts[i]) in computeKnownBits()
2818 if (!DemandedElts[i]) in computeKnownBits()
2860 DemandedElts.extractBits(NumSubVectorElts, i * NumSubVectorElts); in computeKnownBits()
2879 APInt DemandedSubElts = DemandedElts.extractBits(NumSubElts, Idx); in computeKnownBits()
2880 APInt DemandedSrcElts = DemandedElts; in computeKnownBits()
2904 APInt DemandedSrcElts = DemandedElts.zextOrSelf(NumSrcElts).shl(Idx); in computeKnownBits()
2911 if (DemandedElts != 1) in computeKnownBits()
2932 Known = computeKnownBits(N0, DemandedElts, Depth + 1); in computeKnownBits()
2949 if (DemandedElts[i]) in computeKnownBits()
2970 if (DemandedElts[i]) in computeKnownBits()
2977 if (DemandedElts[i]) { in computeKnownBits()
2990 Known = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
2991 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
2996 Known = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
2997 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3002 Known = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3003 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3008 Known = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3009 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3014 Known = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3015 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3020 Known = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3021 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3027 Known = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3028 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3037 Known = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3038 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3046 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3047 Known2 = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3053 Known = computeKnownBits(Op.getOperand(2), DemandedElts, Depth+1); in computeKnownBits()
3057 Known2 = computeKnownBits(Op.getOperand(1), DemandedElts, Depth+1); in computeKnownBits()
3063 Known = computeKnownBits(Op.getOperand(3), DemandedElts, Depth+1); in computeKnownBits()
3067 Known2 = computeKnownBits(Op.getOperand(2), DemandedElts, Depth+1); in computeKnownBits()
3097 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3098 Known2 = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3103 getValidMinimumShiftAmountConstant(Op, DemandedElts)) in computeKnownBits()
3107 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3108 Known2 = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3113 getValidMinimumShiftAmountConstant(Op, DemandedElts)) in computeKnownBits()
3117 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3118 Known2 = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3124 if (ConstantSDNode *C = isConstOrConstSplat(Op.getOperand(2), DemandedElts)) { in computeKnownBits()
3131 DemandedElts, Depth + 1); in computeKnownBits()
3137 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3138 Known2 = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3155 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3162 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3171 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3179 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3211 if (!DemandedElts[i]) in computeKnownBits()
3253 APInt InDemandedElts = DemandedElts.zextOrSelf(InVT.getVectorNumElements()); in computeKnownBits()
3259 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3265 APInt InDemandedElts = DemandedElts.zextOrSelf(InVT.getVectorNumElements()); in computeKnownBits()
3273 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3281 APInt InDemandedElts = DemandedElts.zextOrSelf(InVT.getVectorNumElements()); in computeKnownBits()
3287 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3292 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3333 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3334 Known2 = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3371 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3372 Known2 = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3377 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3378 Known2 = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3383 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3384 Known2 = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3437 APInt DemandedVecElts = DemandedElts; in computeKnownBits()
3441 DemandedVal = !!DemandedElts[EltIdx]; in computeKnownBits()
3457 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3462 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3467 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3473 Known2 = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3478 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3479 Known2 = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3484 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3485 Known2 = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3495 if ((CstLow = isConstOrConstSplat(Op.getOperand(1), DemandedElts))) in computeKnownBits()
3498 isConstOrConstSplat(Op.getOperand(0).getOperand(1), DemandedElts); in computeKnownBits()
3520 Known = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in computeKnownBits()
3521 Known2 = computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in computeKnownBits()
3578 TLI->computeKnownBitsForTargetNode(Op, Known, DemandedElts, *this, Depth); in computeKnownBits()
3665 APInt DemandedElts = VT.isVector() in ComputeNumSignBits() local
3668 return ComputeNumSignBits(Op, DemandedElts, Depth); in ComputeNumSignBits()
3671 unsigned SelectionDAG::ComputeNumSignBits(SDValue Op, const APInt &DemandedElts, in ComputeNumSignBits() argument
3676 unsigned NumElts = DemandedElts.getBitWidth(); in ComputeNumSignBits()
3688 if (!DemandedElts || VT.isScalableVector()) in ComputeNumSignBits()
3704 if (!DemandedElts[i]) in ComputeNumSignBits()
3729 if (!DemandedElts[i]) in ComputeNumSignBits()
3765 return ComputeNumSignBits(N0, DemandedElts, Depth + 1); in ComputeNumSignBits()
3776 if (DemandedElts[i]) in ComputeNumSignBits()
3787 if (DemandedElts[i]) { in ComputeNumSignBits()
3802 return ComputeNumSignBits(Op.getOperand(0), DemandedElts, Depth+1) + Tmp; in ComputeNumSignBits()
3807 Tmp2 = ComputeNumSignBits(Op.getOperand(0), DemandedElts, Depth+1); in ComputeNumSignBits()
3812 APInt DemandedSrcElts = DemandedElts.zextOrSelf(SrcVT.getVectorNumElements()); in ComputeNumSignBits()
3817 Tmp = ComputeNumSignBits(Op.getOperand(0), DemandedElts, Depth + 1); in ComputeNumSignBits()
3820 getValidMinimumShiftAmountConstant(Op, DemandedElts)) in ComputeNumSignBits()
3825 getValidMaximumShiftAmountConstant(Op, DemandedElts)) { in ComputeNumSignBits()
3827 Tmp = ComputeNumSignBits(Op.getOperand(0), DemandedElts, Depth + 1); in ComputeNumSignBits()
3836 Tmp = ComputeNumSignBits(Op.getOperand(0), DemandedElts, Depth+1); in ComputeNumSignBits()
3838 Tmp2 = ComputeNumSignBits(Op.getOperand(1), DemandedElts, Depth+1); in ComputeNumSignBits()
3848 Tmp = ComputeNumSignBits(Op.getOperand(1), DemandedElts, Depth+1); in ComputeNumSignBits()
3850 Tmp2 = ComputeNumSignBits(Op.getOperand(2), DemandedElts, Depth+1); in ComputeNumSignBits()
3853 Tmp = ComputeNumSignBits(Op.getOperand(2), DemandedElts, Depth+1); in ComputeNumSignBits()
3855 Tmp2 = ComputeNumSignBits(Op.getOperand(3), DemandedElts, Depth+1); in ComputeNumSignBits()
3864 if ((CstLow = isConstOrConstSplat(Op.getOperand(1), DemandedElts))) in ComputeNumSignBits()
3867 isConstOrConstSplat(Op.getOperand(0).getOperand(1), DemandedElts); in ComputeNumSignBits()
3879 Tmp = ComputeNumSignBits(Op.getOperand(0), DemandedElts, Depth + 1); in ComputeNumSignBits()
3882 Tmp2 = ComputeNumSignBits(Op.getOperand(1), DemandedElts, Depth + 1); in ComputeNumSignBits()
3887 Tmp = ComputeNumSignBits(Op.getOperand(0), DemandedElts, Depth + 1); in ComputeNumSignBits()
3890 Tmp2 = ComputeNumSignBits(Op.getOperand(1), DemandedElts, Depth + 1); in ComputeNumSignBits()
3920 Tmp = ComputeNumSignBits(Op.getOperand(0), DemandedElts, Depth + 1); in ComputeNumSignBits()
3927 isConstOrConstSplat(Op.getOperand(1), DemandedElts)) { in ComputeNumSignBits()
3943 Tmp = ComputeNumSignBits(Op.getOperand(0), DemandedElts, Depth + 1); in ComputeNumSignBits()
3948 isConstOrConstSplat(Op.getOperand(1), DemandedElts)) in ComputeNumSignBits()
3951 computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1); in ComputeNumSignBits()
3964 Tmp2 = ComputeNumSignBits(Op.getOperand(1), DemandedElts, Depth + 1); in ComputeNumSignBits()
3968 Tmp2 = ComputeNumSignBits(Op.getOperand(1), DemandedElts, Depth + 1); in ComputeNumSignBits()
3973 isConstOrConstSplat(Op.getOperand(0), DemandedElts)) in ComputeNumSignBits()
3976 computeKnownBits(Op.getOperand(1), DemandedElts, Depth + 1); in ComputeNumSignBits()
3992 Tmp = ComputeNumSignBits(Op.getOperand(0), DemandedElts, Depth + 1); in ComputeNumSignBits()
4012 return ComputeNumSignBits(Op.getOperand(0), DemandedElts, Depth + 1); in ComputeNumSignBits()
4042 APInt DemandedVecElts = DemandedElts; in ComputeNumSignBits()
4046 DemandedVal = !!DemandedElts[EltIdx]; in ComputeNumSignBits()
4099 APInt DemandedSrcElts = DemandedElts.zextOrSelf(NumSrcElts).shl(Idx); in ComputeNumSignBits()
4111 DemandedElts.extractBits(NumSubVectorElts, i * NumSubVectorElts); in ComputeNumSignBits()
4127 APInt DemandedSubElts = DemandedElts.extractBits(NumSubElts, Idx); in ComputeNumSignBits()
4128 APInt DemandedSrcElts = DemandedElts; in ComputeNumSignBits()
4195 if (!DemandedElts[i]) in ComputeNumSignBits()
4226 TLI->ComputeNumSignBitsForTargetNode(Op, DemandedElts, *this, Depth); in ComputeNumSignBits()
4233 KnownBits Known = computeKnownBits(Op, DemandedElts, Depth); in ComputeNumSignBits()
4262 APInt DemandedElts = VT.isVector() in isGuaranteedNotToBeUndefOrPoison() local
4265 return isGuaranteedNotToBeUndefOrPoison(Op, DemandedElts, PoisonOnly, Depth); in isGuaranteedNotToBeUndefOrPoison()
4269 const APInt &DemandedElts, in isGuaranteedNotToBeUndefOrPoison() argument
4299 Op, DemandedElts, *this, PoisonOnly, Depth); in isGuaranteedNotToBeUndefOrPoison()
9610 ConstantSDNode *llvm::isConstOrConstSplat(SDValue N, const APInt &DemandedElts, in isConstOrConstSplat() argument
9618 ConstantSDNode *CN = BV->getConstantSplatNode(DemandedElts, &UndefElements); in isConstOrConstSplat()
9653 const APInt &DemandedElts, in isConstOrConstSplatFP() argument
9661 BV->getConstantFPSplatNode(DemandedElts, &UndefElements); in isConstOrConstSplatFP()
10354 SDValue BuildVectorSDNode::getSplatValue(const APInt &DemandedElts, in getSplatValue() argument
10361 assert(NumOps == DemandedElts.getBitWidth() && "Unexpected vector size"); in getSplatValue()
10362 if (!DemandedElts) in getSplatValue()
10366 if (!DemandedElts[i]) in getSplatValue()
10380 unsigned FirstDemandedIdx = DemandedElts.countTrailingZeros(); in getSplatValue()
10390 APInt DemandedElts = APInt::getAllOnesValue(getNumOperands()); in getSplatValue() local
10391 return getSplatValue(DemandedElts, UndefElements); in getSplatValue()
10394 bool BuildVectorSDNode::getRepeatedSequence(const APInt &DemandedElts, in getRepeatedSequence() argument
10403 assert(NumOps == DemandedElts.getBitWidth() && "Unexpected vector size"); in getRepeatedSequence()
10404 if (!DemandedElts || NumOps < 2 || !isPowerOf2_32(NumOps)) in getRepeatedSequence()
10410 if (DemandedElts[I] && getOperand(I).isUndef()) in getRepeatedSequence()
10417 if (!DemandedElts[I]) in getRepeatedSequence()
10442 APInt DemandedElts = APInt::getAllOnesValue(getNumOperands()); in getRepeatedSequence() local
10443 return getRepeatedSequence(DemandedElts, Sequence, UndefElements); in getRepeatedSequence()
10447 BuildVectorSDNode::getConstantSplatNode(const APInt &DemandedElts, in getConstantSplatNode() argument
10450 getSplatValue(DemandedElts, UndefElements)); in getConstantSplatNode()
10459 BuildVectorSDNode::getConstantFPSplatNode(const APInt &DemandedElts, in getConstantFPSplatNode() argument
10462 getSplatValue(DemandedElts, UndefElements)); in getConstantFPSplatNode()