summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/InstCombine/mul.ll
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2014-12-26 09:10:14 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2014-12-26 09:10:14 +0000
commit54c2ca25392d242fcf1e5cdc3d97737c8b002384 (patch)
tree5c6c018a438ea98ddc5274fd43f9d0f358ddba94 /llvm/test/Transforms/InstCombine/mul.ll
parentee9eef2fd865632d7ae8f8f8f05b37b2cc518afe (diff)
downloadbcm5719-llvm-54c2ca25392d242fcf1e5cdc3d97737c8b002384.tar.gz
bcm5719-llvm-54c2ca25392d242fcf1e5cdc3d97737c8b002384.zip
InstCombe: Infer nsw for multiplies
We already utilize this logic for reducing overflow intrinsics, it makes sense to reuse it for normal multiplies as well. llvm-svn: 224847
Diffstat (limited to 'llvm/test/Transforms/InstCombine/mul.ll')
-rw-r--r--llvm/test/Transforms/InstCombine/mul.ll12
1 files changed, 12 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstCombine/mul.ll b/llvm/test/Transforms/InstCombine/mul.ll
index a52c31ab4af..d19338a3c8f 100644
--- a/llvm/test/Transforms/InstCombine/mul.ll
+++ b/llvm/test/Transforms/InstCombine/mul.ll
@@ -255,3 +255,15 @@ define i32 @test28(i32 %A) {
; CHECK-NEXT: %[[shl2:.*]] = shl i32 %[[shl1]], %A
; CHECK-NEXT: ret i32 %[[shl2]]
}
+
+define i64 @test29(i31 %A, i31 %B) {
+; CHECK-LABEL: @test29(
+ %C = zext i31 %A to i64
+ %D = zext i31 %B to i64
+ %E = mul i64 %C, %D
+ ret i64 %E
+; CHECK: %[[zext1:.*]] = zext i31 %A to i64
+; CHECK-NEXT: %[[zext2:.*]] = zext i31 %B to i64
+; CHECK-NEXT: %[[mul:.*]] = mul nsw i64 %[[zext1]], %[[zext2]]
+; CHECK-NEXT: ret i64 %[[mul]]
+}
OpenPOWER on IntegriCloud