summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2014-06-05 21:29:49 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2014-06-05 21:29:49 +0000
commit64bcc6d81e8ff51dc0da59ae5df3856fddebc93f (patch)
tree47f8f269aae454b015d448afe7e71fcf9a2697b4
parentecbc72405ea7257f726511e4f4409f8ecc0eb426 (diff)
downloadllvm-64bcc6d81e8ff51dc0da59ae5df3856fddebc93f.tar.gz
llvm-64bcc6d81e8ff51dc0da59ae5df3856fddebc93f.tar.bz2
llvm-64bcc6d81e8ff51dc0da59ae5df3856fddebc93f.tar.xz
Add a testcase where there is an overflow when combining two constants.
I noticed that a proposed optimization would have prevented this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210287 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/Transforms/InstCombine/add2.ll10
1 files changed, 10 insertions, 0 deletions
diff --git a/test/Transforms/InstCombine/add2.ll b/test/Transforms/InstCombine/add2.ll
index 67d560e500..aaf3a7a235 100644
--- a/test/Transforms/InstCombine/add2.ll
+++ b/test/Transforms/InstCombine/add2.ll
@@ -76,3 +76,13 @@ define <2 x i64> @test8(<2 x i64> %A) {
; CHECK-NEXT: %add = sub <2 x i64> <i64 1, i64 2>, %A
; CHECK-NEXT: ret <2 x i64> %add
}
+
+define i16 @test9(i16 %a) {
+ %b = mul i16 %a, 2
+ %c = mul i16 %a, 32767
+ %d = add i16 %b, %c
+ ret i16 %d
+; CHECK-LABEL: @test9(
+; CHECK-NEXT: %d = mul i16 %a, -32767
+; CHECK-NEXT: ret i16 %d
+}