diff options
| author | Sanjoy Das <sanjoy@playingwithpointers.com> | 2015-06-05 18:04:42 +0000 |
|---|---|---|
| committer | Sanjoy Das <sanjoy@playingwithpointers.com> | 2015-06-05 18:04:42 +0000 |
| commit | 72cb5e1087ff018ba9eb0a226d41a8cc5bfe6a03 (patch) | |
| tree | 28dd464f9fde93ee2476394cd9c0d3c6796b0b09 | |
| parent | cdffc36c119a7933c3e8871ccd0028f41d5b5feb (diff) | |
[InstCombine] Fix PR23751.
PR23751 was caused by a missing ``break;`` in r234388.
llvm-svn: 239171
| -rw-r--r-- | llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp | 1 | ||||
| -rw-r--r-- | llvm/test/Transforms/InstCombine/pr23751.ll | 13 |
2 files changed, 14 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp b/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp index 2dafa58d305e..ab0d1b10c245 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp @@ -2149,6 +2149,7 @@ bool InstCombiner::OptimizeOverflowCheck(OverflowCheckFlavor OCF, Value *LHS, if (WillNotOverflowSignedAdd(LHS, RHS, OrigI)) return SetResult(Builder->CreateNSWAdd(LHS, RHS), Builder->getFalse(), true); + break; } case OCF_UNSIGNED_SUB: diff --git a/llvm/test/Transforms/InstCombine/pr23751.ll b/llvm/test/Transforms/InstCombine/pr23751.ll new file mode 100644 index 000000000000..d7840be2f837 --- /dev/null +++ b/llvm/test/Transforms/InstCombine/pr23751.ll @@ -0,0 +1,13 @@ +; RUN: opt -instcombine -S < %s | FileCheck %s + +@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 +} |
