OSDN Git Service

[InstSimplify] Remove some redundant code from InstSimplify now that llvm::isKnownNon...
authorCraig Topper <craig.topper@gmail.com>
Tue, 6 Jun 2017 07:13:17 +0000 (07:13 +0000)
committerCraig Topper <craig.topper@gmail.com>
Tue, 6 Jun 2017 07:13:17 +0000 (07:13 +0000)
isKnownNonEqual is called a little earlier in this function and can handle the case that we were checking here as well as more complex cases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304775 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/InstructionSimplify.cpp

index 55ced96..ea83c83 100644 (file)
@@ -3358,19 +3358,6 @@ static Value *SimplifyICmpInst(unsigned Predicate, Value *LHS, Value *RHS,
     }
   }
 
-  // If a bit is known to be zero for A and known to be one for B,
-  // then A and B cannot be equal.
-  if (ICmpInst::isEquality(Pred)) {
-    const APInt *RHSVal;
-    if (match(RHS, m_APInt(RHSVal))) {
-      KnownBits LHSKnown = computeKnownBits(LHS, Q.DL, /*Depth=*/0, Q.AC, Q.CxtI, Q.DT);
-      if (LHSKnown.Zero.intersects(*RHSVal) ||
-          !LHSKnown.One.isSubsetOf(*RHSVal))
-        return Pred == ICmpInst::ICMP_EQ ? ConstantInt::getFalse(ITy)
-                                         : ConstantInt::getTrue(ITy);
-    }
-  }
-
   // If the comparison is with the result of a select instruction, check whether
   // comparing with either branch of the select always yields the same value.
   if (isa<SelectInst>(LHS) || isa<SelectInst>(RHS))