Lines Matching refs:ConstantIntRanges
28 static ConstantIntRanges computeBoundsBy(ConstArithFn op, const APInt &minLeft, in computeBoundsBy()
35 return ConstantIntRanges::range(*maybeMin, *maybeMax, isSigned); in computeBoundsBy()
36 return ConstantIntRanges::maxRange(minLeft.getBitWidth()); in computeBoundsBy()
41 static ConstantIntRanges minMaxBy(ConstArithFn op, ArrayRef<APInt> lhs, in minMaxBy()
52 return ConstantIntRanges::maxRange(width); in minMaxBy()
58 return ConstantIntRanges::range(min, max, isSigned); in minMaxBy()
65 void arith::ConstantOp::inferResultRanges(ArrayRef<ConstantIntRanges> argRanges, in inferResultRanges()
70 setResultRange(getResult(), ConstantIntRanges::constant(value)); in inferResultRanges()
78 void arith::AddIOp::inferResultRanges(ArrayRef<ConstantIntRanges> argRanges, in inferResultRanges()
80 const ConstantIntRanges &lhs = argRanges[0], &rhs = argRanges[1]; in inferResultRanges()
92 ConstantIntRanges urange = computeBoundsBy( in inferResultRanges()
94 ConstantIntRanges srange = computeBoundsBy( in inferResultRanges()
103 void arith::SubIOp::inferResultRanges(ArrayRef<ConstantIntRanges> argRanges, in inferResultRanges()
105 const ConstantIntRanges &lhs = argRanges[0], &rhs = argRanges[1]; in inferResultRanges()
117 ConstantIntRanges urange = computeBoundsBy( in inferResultRanges()
119 ConstantIntRanges srange = computeBoundsBy( in inferResultRanges()
128 void arith::MulIOp::inferResultRanges(ArrayRef<ConstantIntRanges> argRanges, in inferResultRanges()
130 const ConstantIntRanges &lhs = argRanges[0], &rhs = argRanges[1]; in inferResultRanges()
143 ConstantIntRanges urange = in inferResultRanges()
146 ConstantIntRanges srange = in inferResultRanges()
162 static ConstantIntRanges inferDivUIRange(const ConstantIntRanges &lhs, in inferDivUIRange()
163 const ConstantIntRanges &rhs, in inferDivUIRange()
176 return ConstantIntRanges::maxRange(rhsMin.getBitWidth()); in inferDivUIRange()
179 void arith::DivUIOp::inferResultRanges(ArrayRef<ConstantIntRanges> argRanges, in inferResultRanges()
191 static ConstantIntRanges inferDivSIRange(const ConstantIntRanges &lhs, in inferDivSIRange()
192 const ConstantIntRanges &rhs, in inferDivSIRange()
207 return ConstantIntRanges::maxRange(rhsMin.getBitWidth()); in inferDivSIRange()
210 void arith::DivSIOp::inferResultRanges(ArrayRef<ConstantIntRanges> argRanges, in inferResultRanges()
223 ArrayRef<ConstantIntRanges> argRanges, SetIntRangeFn setResultRange) { in inferResultRanges()
224 const ConstantIntRanges &lhs = argRanges[0], &rhs = argRanges[1]; in inferResultRanges()
244 ArrayRef<ConstantIntRanges> argRanges, SetIntRangeFn setResultRange) { in inferResultRanges()
245 const ConstantIntRanges &lhs = argRanges[0], &rhs = argRanges[1]; in inferResultRanges()
265 ArrayRef<ConstantIntRanges> argRanges, SetIntRangeFn setResultRange) { in inferResultRanges()
266 const ConstantIntRanges &lhs = argRanges[0], &rhs = argRanges[1]; in inferResultRanges()
285 void arith::RemUIOp::inferResultRanges(ArrayRef<ConstantIntRanges> argRanges, in inferResultRanges()
287 const ConstantIntRanges &lhs = argRanges[0], &rhs = argRanges[1]; in inferResultRanges()
309 setResultRange(getResult(), ConstantIntRanges::fromUnsigned(umin, umax)); in inferResultRanges()
316 void arith::RemSIOp::inferResultRanges(ArrayRef<ConstantIntRanges> argRanges, in inferResultRanges()
318 const ConstantIntRanges &lhs = argRanges[0], &rhs = argRanges[1]; in inferResultRanges()
348 setResultRange(getResult(), ConstantIntRanges::fromSigned(smin, smax)); in inferResultRanges()
360 widenBitwiseBounds(const ConstantIntRanges &bound) { in widenBitwiseBounds()
369 void arith::AndIOp::inferResultRanges(ArrayRef<ConstantIntRanges> argRanges, in inferResultRanges()
386 void arith::OrIOp::inferResultRanges(ArrayRef<ConstantIntRanges> argRanges, in inferResultRanges()
403 void arith::XOrIOp::inferResultRanges(ArrayRef<ConstantIntRanges> argRanges, in inferResultRanges()
420 void arith::MaxSIOp::inferResultRanges(ArrayRef<ConstantIntRanges> argRanges, in inferResultRanges()
422 const ConstantIntRanges &lhs = argRanges[0], &rhs = argRanges[1]; in inferResultRanges()
426 setResultRange(getResult(), ConstantIntRanges::fromSigned(smin, smax)); in inferResultRanges()
433 void arith::MaxUIOp::inferResultRanges(ArrayRef<ConstantIntRanges> argRanges, in inferResultRanges()
435 const ConstantIntRanges &lhs = argRanges[0], &rhs = argRanges[1]; in inferResultRanges()
439 setResultRange(getResult(), ConstantIntRanges::fromUnsigned(umin, umax)); in inferResultRanges()
446 void arith::MinSIOp::inferResultRanges(ArrayRef<ConstantIntRanges> argRanges, in inferResultRanges()
448 const ConstantIntRanges &lhs = argRanges[0], &rhs = argRanges[1]; in inferResultRanges()
452 setResultRange(getResult(), ConstantIntRanges::fromSigned(smin, smax)); in inferResultRanges()
459 void arith::MinUIOp::inferResultRanges(ArrayRef<ConstantIntRanges> argRanges, in inferResultRanges()
461 const ConstantIntRanges &lhs = argRanges[0], &rhs = argRanges[1]; in inferResultRanges()
465 setResultRange(getResult(), ConstantIntRanges::fromUnsigned(umin, umax)); in inferResultRanges()
472 void arith::ExtUIOp::inferResultRanges(ArrayRef<ConstantIntRanges> argRanges, in inferResultRanges()
475 unsigned destWidth = ConstantIntRanges::getStorageBitwidth(destType); in inferResultRanges()
478 setResultRange(getResult(), ConstantIntRanges::fromUnsigned(umin, umax)); in inferResultRanges()
485 static ConstantIntRanges extSIRange(const ConstantIntRanges &range, in extSIRange()
487 unsigned destWidth = ConstantIntRanges::getStorageBitwidth(destType); in extSIRange()
490 return ConstantIntRanges::fromSigned(smin, smax); in extSIRange()
493 void arith::ExtSIOp::inferResultRanges(ArrayRef<ConstantIntRanges> argRanges, in inferResultRanges()
503 static ConstantIntRanges truncIRange(const ConstantIntRanges &range, in truncIRange()
505 unsigned destWidth = ConstantIntRanges::getStorageBitwidth(destType); in truncIRange()
513 void arith::TruncIOp::inferResultRanges(ArrayRef<ConstantIntRanges> argRanges, in inferResultRanges()
524 ArrayRef<ConstantIntRanges> argRanges, SetIntRangeFn setResultRange) { in inferResultRanges()
527 unsigned srcWidth = ConstantIntRanges::getStorageBitwidth(sourceType); in inferResultRanges()
528 unsigned destWidth = ConstantIntRanges::getStorageBitwidth(destType); in inferResultRanges()
542 bool isStaticallyTrue(arith::CmpIPredicate pred, const ConstantIntRanges &lhs, in isStaticallyTrue()
543 const ConstantIntRanges &rhs) { in isStaticallyTrue()
577 void arith::CmpIOp::inferResultRanges(ArrayRef<ConstantIntRanges> argRanges, in inferResultRanges()
580 const ConstantIntRanges &lhs = argRanges[0], &rhs = argRanges[1]; in inferResultRanges()
589 setResultRange(getResult(), ConstantIntRanges::fromUnsigned(min, max)); in inferResultRanges()
596 void arith::SelectOp::inferResultRanges(ArrayRef<ConstantIntRanges> argRanges, in inferResultRanges()
614 void arith::ShLIOp::inferResultRanges(ArrayRef<ConstantIntRanges> argRanges, in inferResultRanges()
616 const ConstantIntRanges &lhs = argRanges[0], &rhs = argRanges[1]; in inferResultRanges()
620 ConstantIntRanges urange = in inferResultRanges()
623 ConstantIntRanges srange = in inferResultRanges()
633 void arith::ShRUIOp::inferResultRanges(ArrayRef<ConstantIntRanges> argRanges, in inferResultRanges()
635 const ConstantIntRanges &lhs = argRanges[0], &rhs = argRanges[1]; in inferResultRanges()
649 void arith::ShRSIOp::inferResultRanges(ArrayRef<ConstantIntRanges> argRanges, in inferResultRanges()
651 const ConstantIntRanges &lhs = argRanges[0], &rhs = argRanges[1]; in inferResultRanges()