[llvm] r314017 - [InstCombine] Simplify check for RHS being a splat constant in foldICmpUsingKnownBits by just checking Op1Min==Op1Max rather than going through m_APInt.
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 22 11:57:22 PDT 2017
Author: ctopper
Date: Fri Sep 22 11:57:22 2017
New Revision: 314017
URL: http://llvm.org/viewvc/llvm-project?rev=314017&view=rev
Log:
[InstCombine] Simplify check for RHS being a splat constant in foldICmpUsingKnownBits by just checking Op1Min==Op1Max rather than going through m_APInt.
Modified:
llvm/trunk/lib/Transforms/InstCombine/InstCombineCompares.cpp
Modified: llvm/trunk/lib/Transforms/InstCombine/InstCombineCompares.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/InstCombine/InstCombineCompares.cpp?rev=314017&r1=314016&r2=314017&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/InstCombine/InstCombineCompares.cpp (original)
+++ llvm/trunk/lib/Transforms/InstCombine/InstCombineCompares.cpp Fri Sep 22 11:57:22 2017
@@ -4223,12 +4223,11 @@ Instruction *InstCombiner::foldICmpUsing
if (Op1Min == Op0Max) // A <u B -> A != B if max(A) == min(B)
return new ICmpInst(ICmpInst::ICMP_NE, Op0, Op1);
- const APInt *CmpC;
- if (match(Op1, m_APInt(CmpC))) {
+ if (Op1Min == Op1Max) {
// A <u C -> A == C-1 if min(A)+1 == C
- if (Op1Max == Op0Min + 1)
+ if (Op1Min == Op0Min + 1)
return new ICmpInst(ICmpInst::ICMP_EQ, Op0,
- ConstantInt::get(Op0->getType(), *CmpC - 1));
+ ConstantInt::get(Op0->getType(), Op1Min - 1));
}
break;
}
@@ -4240,12 +4239,11 @@ Instruction *InstCombiner::foldICmpUsing
if (Op1Max == Op0Min) // A >u B -> A != B if min(A) == max(B)
return new ICmpInst(ICmpInst::ICMP_NE, Op0, Op1);
- const APInt *CmpC;
- if (match(Op1, m_APInt(CmpC))) {
+ if (Op1Min == Op1Max) {
// A >u C -> A == C+1 if max(a)-1 == C
- if (*CmpC == Op0Max - 1)
+ if (Op1Min == Op0Max - 1)
return new ICmpInst(ICmpInst::ICMP_EQ, Op0,
- ConstantInt::get(Op1->getType(), *CmpC + 1));
+ ConstantInt::get(Op1->getType(), Op1Min + 1));
}
break;
}
More information about the llvm-commits
mailing list