diff options
| author | Amjad Aboud <amjad.aboud@intel.com> | 2017-08-18 22:56:55 +0000 |
|---|---|---|
| committer | Amjad Aboud <amjad.aboud@intel.com> | 2017-08-18 22:56:55 +0000 |
| commit | 88ffa3afe289b02889957070ba6ac132fd4f2ce4 (patch) | |
| tree | c47525f9947988d97a38d0dc1fec9db93302e61b /llvm/test/Transforms | |
| parent | 0aaf8c16acad178afa75f50252ea58a15d852bd9 (diff) | |
| download | bcm5719-llvm-88ffa3afe289b02889957070ba6ac132fd4f2ce4.tar.gz bcm5719-llvm-88ffa3afe289b02889957070ba6ac132fd4f2ce4.zip | |
[InstCombine] Teach ComputeNumSignBitsImpl to handle integer multiply instruction.
Differential Revision: https://reviews.llvm.org/D36679
llvm-svn: 311206
Diffstat (limited to 'llvm/test/Transforms')
| -rw-r--r-- | llvm/test/Transforms/InstCombine/trunc.ll | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstCombine/trunc.ll b/llvm/test/Transforms/InstCombine/trunc.ll index 40956d3ff8c..0d071da542a 100644 --- a/llvm/test/Transforms/InstCombine/trunc.ll +++ b/llvm/test/Transforms/InstCombine/trunc.ll @@ -89,6 +89,21 @@ define i32 @test6(i64 %A) { ret i32 %D } +define i16 @ashr_mul(i8 %X, i8 %Y) { +; CHECK-LABEL: @ashr_mul( +; CHECK-NEXT: [[A:%.*]] = sext i8 %X to i16 +; CHECK-NEXT: [[B:%.*]] = sext i8 %Y to i16 +; CHECK-NEXT: [[C:%.*]] = mul nsw i16 [[A]], [[B]] +; CHECK-NEXT: [[D:%.*]] = ashr i16 [[C]], 8 +; CHECK-NEXT: ret i16 [[D]] + %A = sext i8 %X to i20 + %B = sext i8 %Y to i20 + %C = mul i20 %A, %B + %D = ashr i20 %C, 8 + %E = trunc i20 %D to i16 + ret i16 %E +} + define i32 @trunc_ashr(i32 %X) { ; CHECK-LABEL: @trunc_ashr( ; CHECK-NEXT: [[B:%.*]] = or i32 [[X:%.*]], -2147483648 |

