summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSanjay Patel <spatel@rotateright.com>2022-07-26 13:29:48 -0400
committerSanjay Patel <spatel@rotateright.com>2022-07-26 14:47:21 -0400
commitdcd09467b0b8f462c40ab4ffa3a4e54a321dd55e (patch)
treeae3416cb1c36ca4b3b4721a08e2011de5d0715b2
parent[gn build] Port 4638d7a28f62 (diff)
downloadllvm-project-dcd09467b0b8f462c40ab4ffa3a4e54a321dd55e.tar.gz
llvm-project-dcd09467b0b8f462c40ab4ffa3a4e54a321dd55e.tar.bz2
llvm-project-dcd09467b0b8f462c40ab4ffa3a4e54a321dd55e.zip
[InstSimplify] remove redundant calls to 'isImplied'; NFCI
We already call the more general isImpliedCondition() (which calls isImpliedTrueByMatchingCmp() internally) from simplifyAndInst() and simplifyOrInst(). There was a difference visible with this change on a vector test before a925bef70c6c, but I can't find any gaps now.
-rw-r--r--llvm/lib/Analysis/InstructionSimplify.cpp12
1 files changed, 0 insertions, 12 deletions
diff --git a/llvm/lib/Analysis/InstructionSimplify.cpp b/llvm/lib/Analysis/InstructionSimplify.cpp
index 4691aebbdfe1..21fe448218bc 100644
--- a/llvm/lib/Analysis/InstructionSimplify.cpp
+++ b/llvm/lib/Analysis/InstructionSimplify.cpp
@@ -1591,12 +1591,6 @@ static Value *simplifyAndOfICmpsWithSameOperands(ICmpInst *Op0, ICmpInst *Op1) {
!match(Op1, m_ICmp(Pred1, m_Specific(A), m_Specific(B))))
return nullptr;
- // We have (icmp Pred0, A, B) & (icmp Pred1, A, B).
- // If Op1 is always implied true by Op0, then Op0 is a subset of Op1, and we
- // can eliminate Op1 from this 'and'.
- if (ICmpInst::isImpliedTrueByMatchingCmp(Pred0, Pred1))
- return Op0;
-
// Check for any combination of predicates that are guaranteed to be disjoint.
if ((Pred0 == ICmpInst::getInversePredicate(Pred1)) ||
(Pred0 == ICmpInst::ICMP_EQ && ICmpInst::isFalseWhenEqual(Pred1)) ||
@@ -1616,12 +1610,6 @@ static Value *simplifyOrOfICmpsWithSameOperands(ICmpInst *Op0, ICmpInst *Op1) {
!match(Op1, m_ICmp(Pred1, m_Specific(A), m_Specific(B))))
return nullptr;
- // We have (icmp Pred0, A, B) | (icmp Pred1, A, B).
- // If Op1 is always implied true by Op0, then Op0 is a subset of Op1, and we
- // can eliminate Op0 from this 'or'.
- if (ICmpInst::isImpliedTrueByMatchingCmp(Pred0, Pred1))
- return Op1;
-
// Check for any combination of predicates that cover the entire range of
// possibilities.
if ((Pred0 == ICmpInst::getInversePredicate(Pred1)) ||