Revert a part of r223583, for now. It seems causing different emission between stage2...
authorNAKAMURA Takumi <geek4civic@gmail.com>
Mon, 8 Dec 2014 02:07:22 +0000 (02:07 +0000)
committerNAKAMURA Takumi <geek4civic@gmail.com>
Mon, 8 Dec 2014 02:07:22 +0000 (02:07 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223624 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/InstructionSimplify.cpp
test/Transforms/InstSimplify/AndOrXor.ll

index e58998897c2d1567d504f5f432123bb4bc13eebb..5c536aa79c480c657aefd31481aa65ef1aecddf9 100644 (file)
@@ -1476,11 +1476,6 @@ static Value *simplifyUnsignedRangeCheck(ICmpInst *ZeroICmp,
     return UnsignedICmp;
   }
 
     return UnsignedICmp;
   }
 
-  // X < Y && Y == 0  -->  false
-  if (UnsignedPred == ICmpInst::ICMP_ULT && EqPred == ICmpInst::ICMP_EQ &&
-      IsAnd)
-    return getFalse(UnsignedICmp->getType());
-
   return nullptr;
 }
 
   return nullptr;
 }
 
index ce3c2aa6af222406528ffd1dfc1638770853a0f6..c01c53ec4e1e0cad3f98e95f32eb6a53392ed7a0 100644 (file)
@@ -166,15 +166,6 @@ define i1 @and_icmp1(i32 %x, i32 %y) {
 ; CHECK: %[[cmp:.*]] = icmp ult i32 %x, %y
 ; CHECK: ret i1 %[[cmp]]
 
 ; CHECK: %[[cmp:.*]] = icmp ult i32 %x, %y
 ; CHECK: ret i1 %[[cmp]]
 
-define i1 @and_icmp2(i32 %x, i32 %y) {
-  %1 = icmp ult i32 %x, %y
-  %2 = icmp eq i32 %y, 0
-  %3 = and i1 %1, %2
-  ret i1 %3
-}
-; CHECK-LABEL: @and_icmp2(
-; CHECK: ret i1 false
-
 define i1 @or_icmp1(i32 %x, i32 %y) {
   %1 = icmp ult i32 %x, %y
   %2 = icmp ne i32 %y, 0
 define i1 @or_icmp1(i32 %x, i32 %y) {
   %1 = icmp ult i32 %x, %y
   %2 = icmp ne i32 %y, 0