diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2014-06-05 21:29:49 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2014-06-05 21:29:49 +0000 |
commit | 64bcc6d81e8ff51dc0da59ae5df3856fddebc93f (patch) | |
tree | 47f8f269aae454b015d448afe7e71fcf9a2697b4 | |
parent | ecbc72405ea7257f726511e4f4409f8ecc0eb426 (diff) | |
download | llvm-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.ll | 10 |
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 +} |