Home | History | Annotate | Download | only in Support

Lines Matching refs:Upper

11 // for an integral value.  This keeps track of a lower and upper bound for the
13 // keeps track of a [lower, upper) bound, which specifies an interval just like
34 Lower = Upper = APInt::getMaxValue(BitWidth);
36 Lower = Upper = APInt::getMinValue(BitWidth);
42 : Lower(llvm_move(V)), Upper(Lower + 1) {}
45 : Lower(llvm_move(L)), Upper(llvm_move(U)) {
46 assert(Lower.getBitWidth() == Upper.getBitWidth() &&
48 assert((Lower != Upper || (Lower.isMaxValue() || Lower.isMinValue())) &&
49 "Lower == Upper, but they aren't min or max value!");
120 return Lower == Upper && Lower.isMaxValue();
126 return Lower == Upper && Lower.isMinValue();
133 return Lower.ugt(Upper);
157 return (Upper - Lower).zext(getBitWidth()+1);
213 if (Lower == Upper)
217 return Lower.ule(V) && V.ult(Upper);
218 return Lower.ule(V) || V.ult(Upper);
233 return Lower.ule(Other.getLower()) && Other.getUpper().ule(Upper);
237 return Other.getUpper().ule(Upper) ||
240 return Other.getUpper().ule(Upper) && Lower.ule(Other.getLower());
248 if (Lower == Upper)
250 return ConstantRange(Lower - Val, Upper - Val);
277 if (Upper.ule(CR.Lower))
280 if (Upper.ult(CR.Upper))
281 return ConstantRange(CR.Lower, Upper);
285 if (Upper.ult(CR.Upper))
288 if (Lower.ult(CR.Upper))
289 return ConstantRange(Lower, CR.Upper);
295 if (CR.Lower.ult(Upper)) {
296 if (CR.Upper.ult(Upper))
299 if (CR.Upper.ule(Lower))
300 return ConstantRange(CR.Lower, Upper);
307 if (CR.Upper.ule(Lower))
310 return ConstantRange(Lower, CR.Upper);
315 if (CR.Upper.ult(Upper)) {
316 if (CR.Lower.ult(Upper)) {
323 return ConstantRange(Lower, CR.Upper);
327 if (CR.Upper.ule(Lower)) {
331 return ConstantRange(CR.Lower, Upper);
355 if (CR.Upper.ult(Lower) || Upper.ult(CR.Lower)) {
357 APInt d1 = CR.Lower - Upper, d2 = Lower - CR.Upper;
359 return ConstantRange(Lower, CR.Upper);
360 return ConstantRange(CR.Lower, Upper);
363 APInt L = Lower, U = Upper;
366 if ((CR.Upper - 1).ugt(U - 1))
367 U = CR.Upper;
378 if (CR.Upper.ule(Upper) || CR.Lower.uge(Lower))
383 if (CR.Lower.ule(Upper) && Lower.ule(CR.Upper))
389 if (Upper.ule(CR.Lower) && CR.Upper.ule(Lower)) {
390 APInt d1 = CR.Lower - Upper, d2 = Lower - CR.Upper;
392 return ConstantRange(Lower, CR.Upper);
393 return ConstantRange(CR.Lower, Upper);
398 if (Upper.ult(CR.Lower) && Lower.ult(CR.Upper))
399 return ConstantRange(CR.Lower, Upper);
403 assert(CR.Lower.ult(Upper) && CR.Upper.ult(Lower) &&
405 return ConstantRange(Lower, CR.Upper);
410 if (CR.Lower.ule(Upper) || Lower.ule(CR.Upper))
413 APInt L = Lower, U = Upper;
414 if (CR.Upper.ugt(U))
415 U = CR.Upper;
434 if (!Upper) // special case: [X, 0) -- not really wrapping around
439 return ConstantRange(Lower.zext(DstTySize), Upper.zext(DstTySize));
456 return ConstantRange(Lower.sext(DstTySize), Upper.sext(DstTySize));
474 APInt LowerDiv(Lower), UpperDiv(Upper);
477 // Analyze wrapped sets in their two parts: [0, Upper) \/ [Lower, MaxValue]
479 // then we do the union with [MaxValue, Upper)
481 // if Upper is greater than Max Value, it covers the whole truncated range.
482 if (Upper.uge(MaxValue))
485 Union = ConstantRange(APInt::getMaxValue(DstTySize),Upper.trunc(DstTySize));
643 APInt Upper = getUnsignedMax().udiv(RHS_umin) + 1;
647 if (Lower == Upper)
650 return ConstantRange(Lower, Upper);
714 return ConstantRange(Upper, Lower);
725 OS << "[" << Lower << "," << Upper << ")";