Lines Matching refs:Hi
269 /// Emit a computation of: (V >= Lo && V < Hi) if Inside is true, otherwise
270 /// (V < Lo || V >= Hi). In practice, we emit the more efficient
271 /// (V-Lo) \<u Hi-Lo. This method expects that Lo <= Hi. isSigned indicates
274 Value *InstCombiner::InsertRangeTest(Value *V, Constant *Lo, Constant *Hi,
277 ICmpInst::ICMP_SLE:ICmpInst::ICMP_ULE), Lo, Hi))->getZExtValue() &&
278 "Lo is not <= Hi in range emission code!");
281 if (Lo == Hi) // Trivially false.
284 // V >= Min && V < Hi --> V < Hi
288 return Builder->CreateICmp(pred, V, Hi);
291 // Emit V-Lo <u Hi-Lo
294 Constant *UpperBound = ConstantExpr::getAdd(NegLo, Hi);
298 if (Lo == Hi) // Trivially true.
301 // V < Min || V >= Hi -> V > Hi-1
302 Hi = SubOne(cast<ConstantInt>(Hi));
306 return Builder->CreateICmp(pred, V, Hi);
309 // Emit V-Lo >u Hi-1-Lo
310 // Note that Hi has already had one subtracted from it, above.
313 Constant *LowerBound = ConstantExpr::getAdd(NegLo, Hi);