OSDN Git Service

[InstCombine] Remove a And transform that should be handled by SimplifyDemandedInstru...
authorCraig Topper <craig.topper@gmail.com>
Mon, 3 Apr 2017 06:02:09 +0000 (06:02 +0000)
committerCraig Topper <craig.topper@gmail.com>
Mon, 3 Apr 2017 06:02:09 +0000 (06:02 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@299349 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

index de9c957..e2f24cc 100644 (file)
@@ -159,13 +159,6 @@ Instruction *InstCombiner::OptAndOp(BinaryOperator *Op,
     break;
   case Instruction::Or:
     if (Op->hasOneUse()){
-      if (Together != OpRHS) {
-        // (X | C1) & C2 --> (X | (C1&C2)) & C2
-        Value *Or = Builder->CreateOr(X, Together);
-        Or->takeName(Op);
-        return BinaryOperator::CreateAnd(Or, AndRHS);
-      }
-
       ConstantInt *TogetherCI = dyn_cast<ConstantInt>(Together);
       if (TogetherCI && !TogetherCI->isZero()){
         // (X | C1) & C2 --> (X & (C2^(C1&C2))) | C1