Lines Matching refs:Lower

34     Lower = Upper = APInt::getMaxValue(BitWidth);
36 Lower = Upper = APInt::getMinValue(BitWidth);
41 ConstantRange::ConstantRange(const APInt &V) : Lower(V), Upper(V + 1) {}
44 Lower(L), Upper(U) {
48 "Lower == Upper, but they aren't min or max value!");
119 return Lower == Upper && Lower.isMaxValue();
125 return Lower == Upper && Lower.isMinValue();
132 return Lower.ugt(Upper);
156 return (Upper - Lower).zext(getBitWidth()+1);
212 if (Lower == Upper)
216 return Lower.ule(V) && V.ult(Upper);
217 return Lower.ule(V) || V.ult(Upper);
232 return Lower.ule(Other.getLower()) && Other.getUpper().ule(Upper);
237 Lower.ule(Other.getLower());
239 return Other.getUpper().ule(Upper) && Lower.ule(Other.getLower());
247 if (Lower == Upper)
249 return ConstantRange(Lower - Val, Upper - Val);
275 if (Lower.ult(CR.Lower)) {
276 if (Upper.ule(CR.Lower))
280 return ConstantRange(CR.Lower, Upper);
287 if (Lower.ult(CR.Upper))
288 return ConstantRange(Lower, CR.Upper);
294 if (CR.Lower.ult(Upper)) {
298 if (CR.Upper.ule(Lower))
299 return ConstantRange(CR.Lower, Upper);
305 if (CR.Lower.ult(Lower)) {
306 if (CR.Upper.ule(Lower))
309 return ConstantRange(Lower, CR.Upper);
315 if (CR.Lower.ult(Upper)) {
321 if (CR.Lower.ult(Lower))
322 return ConstantRange(Lower, CR.Upper);
326 if (CR.Upper.ule(Lower)) {
327 if (CR.Lower.ult(Lower))
330 return ConstantRange(CR.Lower, Upper);
354 if (CR.Upper.ult(Lower) || Upper.ult(CR.Lower)) {
356 APInt d1 = CR.Lower - Upper, d2 = Lower - CR.Upper;
358 return ConstantRange(Lower, CR.Upper);
359 return ConstantRange(CR.Lower, Upper);
362 APInt L = Lower, U = Upper;
363 if (CR.Lower.ult(L))
364 L = CR.Lower;
377 if (CR.Upper.ule(Upper) || CR.Lower.uge(Lower))
382 if (CR.Lower.ule(Upper) && Lower.ule(CR.Upper))
388 if (Upper.ule(CR.Lower) && CR.Upper.ule(Lower)) {
389 APInt d1 = CR.Lower - Upper, d2 = Lower - CR.Upper;
391 return ConstantRange(Lower, CR.Upper);
392 return ConstantRange(CR.Lower, Upper);
397 if (Upper.ult(CR.Lower) && Lower.ult(CR.Upper))
398 return ConstantRange(CR.Lower, Upper);
402 assert(CR.Lower.ult(Upper) && CR.Upper.ult(Lower) &&
404 return ConstantRange(Lower, CR.Upper);
409 if (CR.Lower.ule(Upper) || Lower.ule(CR.Upper))
412 APInt L = Lower, U = Upper;
415 if (CR.Lower.ult(L))
416 L = CR.Lower;
434 LowerExt = Lower.zext(DstTySize);
438 return ConstantRange(Lower.zext(DstTySize), Upper.zext(DstTySize));
455 return ConstantRange(Lower.sext(DstTySize), Upper.sext(DstTySize));
473 APInt LowerDiv(Lower), UpperDiv(Upper);
476 // Analyze wrapped sets in their two parts: [0, Upper) \/ [Lower, MaxValue]
477 // We use the non-wrapped set code to analyze the [Lower, MaxValue) part, and
630 APInt Lower = getUnsignedMin().udiv(RHS.getUnsignedMax());
646 if (Lower == Upper)
649 return ConstantRange(Lower, Upper);
713 return ConstantRange(Upper, Lower);
724 OS << "[" << Lower << "," << Upper << ")";