[llvm] r239171 - [InstCombine] Fix PR23751.

Sanjoy Das sanjoy at playingwithpointers.com
Fri Jun 5 11:04:42 PDT 2015


Author: sanjoy
Date: Fri Jun  5 13:04:42 2015
New Revision: 239171

URL: http://llvm.org/viewvc/llvm-project?rev=239171&view=rev
Log:
[InstCombine] Fix PR23751.

PR23751 was caused by a missing ``break;`` in r234388.

Added:
    llvm/trunk/test/Transforms/InstCombine/pr23751.ll
Modified:
    llvm/trunk/lib/Transforms/InstCombine/InstCombineCompares.cpp

Modified: llvm/trunk/lib/Transforms/InstCombine/InstCombineCompares.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/InstCombine/InstCombineCompares.cpp?rev=239171&r1=239170&r2=239171&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/InstCombine/InstCombineCompares.cpp (original)
+++ llvm/trunk/lib/Transforms/InstCombine/InstCombineCompares.cpp Fri Jun  5 13:04:42 2015
@@ -2149,6 +2149,7 @@ bool InstCombiner::OptimizeOverflowCheck
       if (WillNotOverflowSignedAdd(LHS, RHS, OrigI))
         return SetResult(Builder->CreateNSWAdd(LHS, RHS), Builder->getFalse(),
                          true);
+    break;
   }
 
   case OCF_UNSIGNED_SUB:

Added: llvm/trunk/test/Transforms/InstCombine/pr23751.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/pr23751.ll?rev=239171&view=auto
==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/pr23751.ll (added)
+++ llvm/trunk/test/Transforms/InstCombine/pr23751.ll Fri Jun  5 13:04:42 2015
@@ -0,0 +1,13 @@
+; RUN: opt -instcombine -S < %s | FileCheck %s
+
+ at d = common global i32 0, align 4
+
+define i1 @f(i8 zeroext %p) #1 {
+; CHECK-NOT: ret i1 false
+  %1 = zext i8 %p to i32
+  %2 = load i32, i32* @d, align 4
+  %3 = or i32 %2, -2
+  %4 = add nsw i32 %3, %1
+  %5 = icmp ugt i32 %1, %4
+  ret i1 %5
+}





More information about the llvm-commits mailing list