summaryrefslogtreecommitdiff
path: root/test/Transforms
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2014-11-22 04:52:52 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2014-11-22 04:52:52 +0000
commit156d6ec86b545b43070c61be1b0bcbb38577062e (patch)
treefa6cf8633351f1b42ea4490cf79bd4f393210c2a /test/Transforms
parent0f8991742cda2b191519e1247d7a1027cc760d07 (diff)
InstCombine: Preserve nsw/nuw for ((X << C2)*C1) -> (X * (C1 << C2))
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222605 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms')
-rw-r--r--test/Transforms/InstCombine/mul.ll16
1 files changed, 16 insertions, 0 deletions
diff --git a/test/Transforms/InstCombine/mul.ll b/test/Transforms/InstCombine/mul.ll
index 905c33b501f..469ca5a0b95 100644
--- a/test/Transforms/InstCombine/mul.ll
+++ b/test/Transforms/InstCombine/mul.ll
@@ -204,3 +204,19 @@ define i32 @test22(i32 %A) {
ret i32 %B
; CHECK: sub nsw i32 0, %A
}
+
+define i32 @test23(i32 %A) {
+; CHECK-LABEL: @test23(
+ %B = shl nuw i32 %A, 1
+ %C = mul nuw i32 %B, 3
+ ret i32 %C
+; CHECK: mul nuw i32 %A, 6
+}
+
+define i32 @test24(i32 %A) {
+; CHECK-LABEL: @test24(
+ %B = shl nsw i32 %A, 1
+ %C = mul nsw i32 %B, 3
+ ret i32 %C
+; CHECK: mul nsw i32 %A, 6
+}