Lines Matching refs:APInt

40 static bool addWithOverflow(APInt &Result, const APInt &In1,  in addWithOverflow()
41 const APInt &In2, bool IsSigned = false) { in addWithOverflow()
53 static bool subWithOverflow(APInt &Result, const APInt &In1, in subWithOverflow()
54 const APInt &In2, bool IsSigned = false) { in subWithOverflow()
76 static bool isSignBitCheck(ICmpInst::Predicate Pred, const APInt &RHS, in isSignBitCheck()
105 static bool isSignTest(ICmpInst::Predicate &Pred, const APInt &C) { in isSignTest()
132 APInt &Min, APInt &Max) { in computeSignedMinMaxValuesFromKnownBits()
136 APInt UnknownBits = ~(Known.Zero|Known.One); in computeSignedMinMaxValuesFromKnownBits()
154 APInt &Min, APInt &Max) { in computeUnsignedMinMaxValuesFromKnownBits()
158 APInt UnknownBits = ~(Known.Zero|Known.One); in computeUnsignedMinMaxValuesFromKnownBits()
1082 Instruction *InstCombiner::foldICmpAddOpConst(Value *X, const APInt &C, in foldICmpAddOpConst()
1094 APInt::getMaxValue(C.getBitWidth()) - C); in foldICmpAddOpConst()
1105 APInt SMax = APInt::getSignedMaxValue(C.getBitWidth()); in foldICmpAddOpConst()
1133 const APInt &AP1, in foldICmpShrConstConst()
1134 const APInt &AP2) { in foldICmpShrConstConst()
1192 const APInt &AP1, in foldICmpShlConstConst()
1193 const APInt &AP2) { in foldICmpShlConstConst()
1261 CI1->getValue() != APInt::getLowBitsSet(CI1->getBitWidth(), NewWidth)) in processUGT_ADDCST_ADD()
1394 const APInt *C, *DomC; in foldICmpWithDominatingICmp()
1426 if (const APInt *EqC = Intersection.getSingleElement()) in foldICmpWithDominatingICmp()
1428 if (const APInt *NeC = Difference.getSingleElement()) in foldICmpWithDominatingICmp()
1438 const APInt &C) { in foldICmpTruncConstant()
1459 APInt NewRHS = C.zext(SrcBits); in foldICmpTruncConstant()
1460 NewRHS |= Known.One & APInt::getHighBitsSet(SrcBits, SrcBits - DstBits); in foldICmpTruncConstant()
1471 const APInt &C) { in foldICmpXorConstant()
1474 const APInt *XorC; in foldICmpXorConstant()
1542 const APInt &C1, const APInt &C2) { in foldICmpAndShift()
1554 const APInt *C3; in foldICmpAndShift()
1582 APInt NewCst = IsShl ? C1.lshr(*C3) : C1.shl(*C3); in foldICmpAndShift()
1583 APInt SameAsC1 = IsShl ? NewCst.shl(*C3) : NewCst.lshr(*C3); in foldICmpAndShift()
1595 APInt NewAndCst = IsShl ? C2.lshr(*C3) : C2.shl(*C3); in foldICmpAndShift()
1626 const APInt &C1) { in foldICmpAndConstConst()
1634 const APInt *C2; in foldICmpAndConstConst()
1712 const APInt &C) { in foldICmpAndConstant()
1746 const APInt *C2; in foldICmpAndConstant()
1765 const APInt &C) { in foldICmpOrConstant()
1818 const APInt &C) { in foldICmpMulConstant()
1819 const APInt *MulC; in foldICmpMulConstant()
1838 const APInt &C) { in foldICmpShlOne()
1901 const APInt &C) { in foldICmpShlConstant()
1902 const APInt *ShiftVal; in foldICmpShlConstant()
1906 const APInt *ShiftAmt; in foldICmpShlConstant()
1926 APInt ShiftedC = C.ashr(*ShiftAmt); in foldICmpShlConstant()
1931 APInt ShiftedC = C.ashr(*ShiftAmt); in foldICmpShlConstant()
1940 APInt ShiftedC = (C - 1).ashr(*ShiftAmt) + 1; in foldICmpShlConstant()
1956 APInt ShiftedC = C.lshr(*ShiftAmt); in foldICmpShlConstant()
1961 APInt ShiftedC = C.lshr(*ShiftAmt); in foldICmpShlConstant()
1970 APInt ShiftedC = (C - 1).lshr(*ShiftAmt) + 1; in foldICmpShlConstant()
1979 APInt::getLowBitsSet(TypeBits, TypeBits - ShiftAmt->getZExtValue())); in foldICmpShlConstant()
1991 APInt::getOneBitSet(TypeBits, TypeBits - ShiftAmt->getZExtValue() - 1)); in foldICmpShlConstant()
2020 const APInt &C) { in foldICmpShrConstant()
2029 const APInt *ShiftVal; in foldICmpShrConstant()
2033 const APInt *ShiftAmt; in foldICmpShrConstant()
2055 APInt ShiftedC = C.shl(ShAmtVal); in foldICmpShrConstant()
2061 APInt ShiftedC = (C + 1).shl(ShAmtVal) - 1; in foldICmpShrConstant()
2070 APInt ShiftedC = C.shl(ShAmtVal); in foldICmpShrConstant()
2076 APInt ShiftedC = (C + 1).shl(ShAmtVal) - 1; in foldICmpShrConstant()
2102 APInt Val(APInt::getHighBitsSet(TypeBits, TypeBits - ShAmtVal)); in foldICmpShrConstant()
2114 const APInt &C) { in foldICmpUDivConstant()
2115 const APInt *C2; in foldICmpUDivConstant()
2143 const APInt &C) { in foldICmpDivConstant()
2150 const APInt *C2; in foldICmpDivConstant()
2178 APInt Prod = C * *C2; in foldICmpDivConstant()
2189 APInt RangeSize = Div->isExact() ? APInt(C2->getBitWidth(), 1) : *C2; in foldICmpDivConstant()
2199 APInt LoBound, HiBound; in foldICmpDivConstant()
2225 APInt DivNeg = -RangeSize; in foldICmpDivConstant()
2238 HiBound = APInt(); // e.g. X/INTMIN = 0 --> X > INTMIN in foldICmpDivConstant()
2313 const APInt &C) { in foldICmpSubConstant()
2340 const APInt *C2; in foldICmpSubConstant()
2361 const APInt &C) { in foldICmpAddConstant()
2363 const APInt *C2; in foldICmpAddConstant()
2383 APInt NewC = in foldICmpAddConstant()
2394 const APInt &Upper = CR.getUpper(); in foldICmpAddConstant()
2395 const APInt &Lower = CR.getLower(); in foldICmpAddConstant()
2498 const APInt &C) { in foldICmpBitCastConstant()
2538 const APInt *C; in foldICmpInstWithConstant()
2624 const APInt &C) { in foldICmpBinOpEqualityWithConstant()
2639 const APInt *BOC; in foldICmpBinOpEqualityWithConstant()
2649 const APInt *BOC; in foldICmpBinOpEqualityWithConstant()
2684 const APInt *BOC; in foldICmpBinOpEqualityWithConstant()
2696 const APInt *BOC; in foldICmpBinOpEqualityWithConstant()
2708 const APInt *BOC; in foldICmpBinOpEqualityWithConstant()
2737 const APInt *BOC; in foldICmpBinOpEqualityWithConstant()
2761 const APInt &C) { in foldICmpIntrinsicWithConstant()
2792 APInt Mask1 = IsTrailing ? APInt::getLowBitsSet(BitWidth, Num + 1) in foldICmpIntrinsicWithConstant()
2793 : APInt::getHighBitsSet(BitWidth, Num + 1); in foldICmpIntrinsicWithConstant()
2794 APInt Mask2 = IsTrailing in foldICmpIntrinsicWithConstant()
2795 ? APInt::getOneBitSet(BitWidth, Num) in foldICmpIntrinsicWithConstant()
2796 : APInt::getOneBitSet(BitWidth, BitWidth - Num - 1); in foldICmpIntrinsicWithConstant()
3034 const APInt *C0, *C1; // FIXME: non-splats, potentially with undef. in foldICmpWithTruncSignExtendedVal()
3051 const APInt &MaskedBits = *C0; in foldICmpWithTruncSignExtendedVal()
3075 const APInt BitWidth = APInt(XBitWidth, XBitWidth); in foldICmpWithTruncSignExtendedVal()
3079 const APInt KeptBits = BitWidth - MaskedBits; in foldICmpWithTruncSignExtendedVal()
3082 const APInt ICmpCst = APInt(XBitWidth, 1).shl(KeptBits); in foldICmpWithTruncSignExtendedVal()
3085 const APInt AddCst = ICmpCst.lshr(1); in foldICmpWithTruncSignExtendedVal()
3256 const APInt &AP1 = C1->getValue(); in foldICmpBinOp()
3257 const APInt &AP2 = C2->getValue(); in foldICmpBinOp()
3259 APInt AP1Abs = C1->getValue().abs(); in foldICmpBinOp()
3260 APInt AP2Abs = C2->getValue().abs(); in foldICmpBinOp()
3363 const APInt *C; in foldICmpBinOp()
3386 const APInt *C; in foldICmpBinOp()
3394 APInt::getLowBitsSet(C->getBitWidth(), C->getBitWidth() - TZs)); in foldICmpBinOp()
3621 APInt Pow2 = Cst1->getValue() + 1; in foldICmpEquality()
3639 APInt CmpVal = APInt::getOneBitSet(TypeBits, ShAmt); in foldICmpEquality()
3651 APInt AndVal = APInt::getLowBitsSet(TypeBits, TypeBits - ShAmt); in foldICmpEquality()
3670 APInt MaskV = in foldICmpEquality()
3671 APInt::getLowBitsSet(ASize, Op0->getType()->getPrimitiveSizeInBits()); in foldICmpEquality()
3674 APInt CmpV = Cst1->getValue().zext(ASize); in foldICmpEquality()
3981 const APInt &CVal = CI->getValue(); in processUMulZExtIdiom()
4019 const APInt &CVal = CI->getValue() + 1; in processUMulZExtIdiom()
4033 APInt MaxVal = APInt::getMaxValue(MulWidth); in processUMulZExtIdiom()
4045 APInt MaxVal = APInt::getOneBitSet(CI->getBitWidth(), MulWidth); in processUMulZExtIdiom()
4056 APInt MaxVal = APInt::getMaxValue(MulWidth); in processUMulZExtIdiom()
4068 APInt MaxVal = APInt::getOneBitSet(CI->getBitWidth(), MulWidth); in processUMulZExtIdiom()
4110 APInt ShortMask = CI->getValue().trunc(MulWidth); in processUMulZExtIdiom()
4160 static APInt getDemandedBitsLHSMask(ICmpInst &I, unsigned BitWidth) { in getDemandedBitsLHSMask()
4161 const APInt *RHS; in getDemandedBitsLHSMask()
4163 return APInt::getAllOnesValue(BitWidth); in getDemandedBitsLHSMask()
4169 return APInt::getSignMask(BitWidth); in getDemandedBitsLHSMask()
4177 return APInt::getBitsSetFrom(BitWidth, RHS->countTrailingOnes()); in getDemandedBitsLHSMask()
4182 return APInt::getBitsSetFrom(BitWidth, RHS->countTrailingZeros()); in getDemandedBitsLHSMask()
4185 return APInt::getAllOnesValue(BitWidth); in getDemandedBitsLHSMask()
4349 if (SimplifyDemandedBits(&I, 1, APInt::getAllOnesValue(BitWidth), in foldICmpUsingKnownBits()
4356 APInt Op0Min(BitWidth, 0), Op0Max(BitWidth, 0); in foldICmpUsingKnownBits()
4357 APInt Op1Min(BitWidth, 0), Op1Max(BitWidth, 0); in foldICmpUsingKnownBits()
4390 APInt Op0KnownZeroInverted = ~Op0Known.Zero; in foldICmpUsingKnownBits()
4394 const APInt *LHSC; in foldICmpUsingKnownBits()
4401 APInt ValToCheck = Op0KnownZeroInverted; in foldICmpUsingKnownBits()
4420 const APInt *CI; in foldICmpUsingKnownBits()
4440 const APInt *CmpC; in foldICmpUsingKnownBits()
4462 const APInt *CmpC; in foldICmpUsingKnownBits()
4483 const APInt *CmpC; in foldICmpUsingKnownBits()
4498 const APInt *CmpC; in foldICmpUsingKnownBits()
4843 const APInt *C; in visitICmpInst()
4975 const APInt *C; in visitICmpInst()
5026 const APInt *C; in visitICmpInst()
5159 SMax.convertFromAPInt(APInt::getSignedMaxValue(IntWidth), true, in foldFCmpIntToFPConst()
5171 UMax.convertFromAPInt(APInt::getMaxValue(IntWidth), false, in foldFCmpIntToFPConst()
5184 SMin.convertFromAPInt(APInt::getSignedMinValue(IntWidth), true, in foldFCmpIntToFPConst()
5195 SMin.convertFromAPInt(APInt::getMinValue(IntWidth), true, in foldFCmpIntToFPConst()