summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2017-06-27 17:16:03 +0000
committerCraig Topper <craig.topper@gmail.com>2017-06-27 17:16:03 +0000
commit9512332bcb2d2dd10364aa795d4f81e54b8a4a5b (patch)
tree3b1659c8c97fc11a596cf5376d4dd9249bc7fdb5 /llvm/test
parentd068fb8104c61c77704958ea4766fcde5a651f19 (diff)
downloadbcm5719-llvm-9512332bcb2d2dd10364aa795d4f81e54b8a4a5b.tar.gz
bcm5719-llvm-9512332bcb2d2dd10364aa795d4f81e54b8a4a5b.zip
[InstCombine] Add test case demonstrating that we don't propagate nsw flag when converting mul by pow2 to shl when the type is larger than 64-bits. NFC
llvm-svn: 306427
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/Transforms/InstCombine/mul.ll10
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstCombine/mul.ll b/llvm/test/Transforms/InstCombine/mul.ll
index ff389a495d3..a775339c7b2 100644
--- a/llvm/test/Transforms/InstCombine/mul.ll
+++ b/llvm/test/Transforms/InstCombine/mul.ll
@@ -324,3 +324,13 @@ define <2 x i32> @test33vec(<2 x i32> %X) {
%mul = mul nsw <2 x i32> %X, <i32 1073741824, i32 1073741824>
ret <2 x i32> %mul
}
+
+; TODO: we should propagate nsw flag to the shift here, but we only handle i64 and smaller
+define i128 @test34(i128 %X) {
+; CHECK-LABEL: @test34(
+; CHECK-NEXT: [[MUL:%.*]] = shl i128 [[X:%.*]], 1
+; CHECK-NEXT: ret i128 [[MUL]]
+;
+ %mul = mul nsw i128 %X, 2
+ ret i128 %mul
+}
OpenPOWER on IntegriCloud