diff options
| author | Craig Topper <craig.topper@gmail.com> | 2017-06-27 17:16:03 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@gmail.com> | 2017-06-27 17:16:03 +0000 |
| commit | 9512332bcb2d2dd10364aa795d4f81e54b8a4a5b (patch) | |
| tree | 3b1659c8c97fc11a596cf5376d4dd9249bc7fdb5 /llvm/test | |
| parent | d068fb8104c61c77704958ea4766fcde5a651f19 (diff) | |
| download | bcm5719-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.ll | 10 |
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 +} |

