Lines Matching refs:ConstantRange
124 ConstantRange Range = in intersect()
414 std::optional<ConstantRange> getRangeFor(Value *V, Instruction *CxtI,
418 std::function<ConstantRange(const ConstantRange &, const ConstantRange &)>
832 static ConstantRange toConstantRange(const ValueLatticeElement &Val, in toConstantRange()
839 return ConstantRange::getEmpty(BW); in toConstantRange()
840 return ConstantRange::getFull(BW); in toConstantRange()
859 const ConstantRange &TrueCR = toConstantRange(TrueVal, SI->getType()); in solveBlockValueSelect()
860 const ConstantRange &FalseCR = toConstantRange(FalseVal, SI->getType()); in solveBlockValueSelect()
869 ConstantRange ResultCR = [&]() { in solveBlockValueSelect()
898 ConstantRange Zero(APInt::getZero(TrueCR.getBitWidth())); in solveBlockValueSelect()
930 std::optional<ConstantRange>
958 std::optional<ConstantRange> LHSRes = getRangeFor(CI->getOperand(0), CI, BB); in solveBlockValueCast()
962 const ConstantRange &LHSRange = *LHSRes; in solveBlockValueCast()
976 std::function<ConstantRange(const ConstantRange &, const ConstantRange &)> in solveBlockValueBinaryOpImpl() argument
982 std::optional<ConstantRange> LHSRes = getRangeFor(I->getOperand(0), I, BB); in solveBlockValueBinaryOpImpl()
986 std::optional<ConstantRange> RHSRes = getRangeFor(I->getOperand(1), I, BB); in solveBlockValueBinaryOpImpl()
990 const ConstantRange &LHSRange = *LHSRes; in solveBlockValueBinaryOpImpl()
991 const ConstantRange &RHSRange = *RHSRes; in solveBlockValueBinaryOpImpl()
1008 [BO, NoWrapKind](const ConstantRange &CR1, const ConstantRange &CR2) { in solveBlockValueBinaryOp()
1014 BO, BB, [BO](const ConstantRange &CR1, const ConstantRange &CR2) { in solveBlockValueBinaryOp()
1023 WO, BB, [WO](const ConstantRange &CR1, const ConstantRange &CR2) { in solveBlockValueOverflowIntrinsic()
1031 if (!ConstantRange::isIntrinsicSupported(II->getIntrinsicID())) { in solveBlockValueIntrinsic()
1037 SmallVector<ConstantRange, 2> OpRanges; in solveBlockValueIntrinsic()
1039 std::optional<ConstantRange> Range = getRangeFor(Op, II, BB); in solveBlockValueIntrinsic()
1045 return intersect(ValueLatticeElement::getRange(ConstantRange::intrinsic( in solveBlockValueIntrinsic()
1109 ConstantRange RHSRange(RHS->getType()->getIntegerBitWidth(), in getValueFromSimpleICmpCondition()
1112 RHSRange = ConstantRange(CI->getValue()); in getValueFromSimpleICmpCondition()
1124 ConstantRange TrueValues = in getValueFromSimpleICmpCondition()
1125 ConstantRange::makeAllowedICmpRegion(Pred, RHSRange); in getValueFromSimpleICmpCondition()
1129 static std::optional<ConstantRange>
1131 function_ref<std::optional<ConstantRange>(const APInt &)> Fn) { in getRangeViaSLT()
1192 ConstantRange::fromKnownBits(Known, /*IsSigned*/ false)); in getValueFromICmpCondition()
1197 return ValueLatticeElement::getRange(ConstantRange::getNonEmpty( in getValueFromICmpCondition()
1210 ConstantRange CR = ConstantRange::makeExactICmpRegion(EdgePred, *C); in getValueFromICmpCondition()
1212 return ValueLatticeElement::getRange(ConstantRange::getNonEmpty( in getValueFromICmpCondition()
1224 EdgePred, *C, [&](const APInt &RHS) -> std::optional<ConstantRange> { in getValueFromICmpCondition()
1228 return ConstantRange::getNonEmpty( in getValueFromICmpCondition()
1250 ConstantRange NWR = ConstantRange::makeExactNoWrapRegion( in getValueFromOverflowCondition()
1337 return ValueLatticeElement::getRange(ConstantRange(C->getValue())); in constantFoldUser()
1348 return ValueLatticeElement::getRange(ConstantRange(C->getValue())); in constantFoldUser()
1352 return ValueLatticeElement::getRange(ConstantRange(OpConstVal)); in constantFoldUser()
1452 ConstantRange EdgesVals(BitWidth, DefaultCase/*isFullSet*/); in getEdgeValueLocal()
1456 ConstantRange EdgeVal(CaseValue); in getEdgeValueLocal()
1726 const ConstantRange &CR = Result.getConstantRange(); in getConstant()
1733 ConstantRange LazyValueInfo::getConstantRange(Value *V, Instruction *CxtI, in getConstantRange()
1742 ConstantRange LazyValueInfo::getConstantRangeAtUse(const Use &U, in getConstantRangeAtUse()
1762 const ConstantRange &CR = Result.getConstantRange(); in getConstantOnEdge()
1769 ConstantRange LazyValueInfo::getConstantRangeOnEdge(Value *V, in getConstantRangeOnEdge()
1796 const ConstantRange &CR = Val.getConstantRange(); in getPredicateResult()
1811 ConstantRange TrueValues = ConstantRange::makeExactICmpRegion( in getPredicateResult()