mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-12 15:51:40 +00:00
[InstCombine] add local name for repeated calls; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294470 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
87ef7ef4f9
commit
0fff202605
@ -2372,8 +2372,8 @@ Instruction *InstCombiner::foldICmpAddConstant(ICmpInst &Cmp,
|
||||
// Fold icmp pred (add X, C2), C.
|
||||
Value *X = Add->getOperand(0);
|
||||
Type *Ty = Add->getType();
|
||||
auto CR =
|
||||
ConstantRange::makeExactICmpRegion(Cmp.getPredicate(), *C).subtract(*C2);
|
||||
CmpInst::Predicate Pred = Cmp.getPredicate();
|
||||
auto CR = ConstantRange::makeExactICmpRegion(Pred, *C).subtract(*C2);
|
||||
const APInt &Upper = CR.getUpper();
|
||||
const APInt &Lower = CR.getLower();
|
||||
if (Cmp.isSigned()) {
|
||||
@ -2394,16 +2394,14 @@ Instruction *InstCombiner::foldICmpAddConstant(ICmpInst &Cmp,
|
||||
// X+C <u C2 -> (X & -C2) == C
|
||||
// iff C & (C2-1) == 0
|
||||
// C2 is a power of 2
|
||||
if (Cmp.getPredicate() == ICmpInst::ICMP_ULT && C->isPowerOf2() &&
|
||||
(*C2 & (*C - 1)) == 0)
|
||||
if (Pred == ICmpInst::ICMP_ULT && C->isPowerOf2() && (*C2 & (*C - 1)) == 0)
|
||||
return new ICmpInst(ICmpInst::ICMP_EQ, Builder->CreateAnd(X, -(*C)),
|
||||
ConstantExpr::getNeg(cast<Constant>(Y)));
|
||||
|
||||
// X+C >u C2 -> (X & ~C2) != C
|
||||
// iff C & C2 == 0
|
||||
// C2+1 is a power of 2
|
||||
if (Cmp.getPredicate() == ICmpInst::ICMP_UGT && (*C + 1).isPowerOf2() &&
|
||||
(*C2 & *C) == 0)
|
||||
if (Pred == ICmpInst::ICMP_UGT && (*C + 1).isPowerOf2() && (*C2 & *C) == 0)
|
||||
return new ICmpInst(ICmpInst::ICMP_NE, Builder->CreateAnd(X, ~(*C)),
|
||||
ConstantExpr::getNeg(cast<Constant>(Y)));
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user