Merge two if-statements into one.
authorBill Wendling <isanbard@gmail.com>
Tue, 2 Dec 2008 06:22:04 +0000 (06:22 +0000)
committerBill Wendling <isanbard@gmail.com>
Tue, 2 Dec 2008 06:22:04 +0000 (06:22 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60402 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/InstructionCombining.cpp

index db2c997d3fbe263b9073efffa7869c88c084766d..b382731586e8755cdb6cb9125c1c388c43fc4130 100644 (file)
@@ -4443,14 +4443,10 @@ Instruction *InstCombiner::FoldOrWithConstants(BinaryOperator &I, Value *Op,
   APInt Xor = CI1->getValue() ^ CI2->getValue();
   if (!Xor.isAllOnesValue()) return 0;
 
-  if (V1 == B) {
+  if (V1 == A || V1 == B)
     Instruction *NewOp =
-      InsertNewInstBefore(BinaryOperator::CreateAnd(A, CI1), I);
-    return BinaryOperator::CreateOr(NewOp, B);
-  } else if (V1 == A) {
-    Instruction *NewOp =
-      InsertNewInstBefore(BinaryOperator::CreateAnd(B, CI1), I);
-    return BinaryOperator::CreateOr(NewOp, A);
+      InsertNewInstBefore(BinaryOperator::CreateAnd((V1 == A) ? B : A, CI1), I);
+    return BinaryOperator::CreateOr(NewOp, V1);
   }
 
   return 0;