diff options
Diffstat (limited to 'llvm/test/Transforms/InstSimplify/shift-128-kb.ll')
-rw-r--r-- | llvm/test/Transforms/InstSimplify/shift-128-kb.ll | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/llvm/test/Transforms/InstSimplify/shift-128-kb.ll b/llvm/test/Transforms/InstSimplify/shift-128-kb.ll index 3f69ecccaf5..76f1da57bbf 100644 --- a/llvm/test/Transforms/InstSimplify/shift-128-kb.ll +++ b/llvm/test/Transforms/InstSimplify/shift-128-kb.ll @@ -1,9 +1,21 @@ +; NOTE: Assertions have been autogenerated by update_test_checks.py ; RUN: opt -S -instsimplify < %s | FileCheck %s target datalayout = "E-m:e-i64:64-n32:64" target triple = "powerpc64-unknown-linux-gnu" define zeroext i1 @_Z10isNegativemj(i64 %Val, i32 zeroext %IntegerBitWidth) { +; CHECK-LABEL: @_Z10isNegativemj( +; CHECK: [[CONV:%.*]] = zext i32 %IntegerBitWidth to i64 +; CHECK-NEXT: [[SUB:%.*]] = sub i64 128, [[CONV]] +; CHECK-NEXT: [[CONV1:%.*]] = trunc i64 [[SUB]] to i32 +; CHECK-NEXT: [[CONV2:%.*]] = zext i64 %Val to i128 +; CHECK-NEXT: [[SH_PROM:%.*]] = zext i32 [[CONV1]] to i128 +; CHECK-NEXT: [[SHL:%.*]] = shl i128 [[CONV2]], [[SH_PROM]] +; CHECK-NEXT: [[SHR:%.*]] = ashr i128 [[SHL]], [[SH_PROM]] +; CHECK-NEXT: [[CMP:%.*]] = icmp slt i128 [[SHR]], 0 +; CHECK-NEXT: ret i1 [[CMP]] +; entry: %conv = zext i32 %IntegerBitWidth to i64 %sub = sub i64 128, %conv @@ -16,7 +28,3 @@ entry: ret i1 %cmp } -; CHECK-LABEL: @_Z10isNegativemj -; CHECK-NOT: ret i1 false -; CHECK: ret i1 %cmp - |