summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/InstSimplify/shift-128-kb.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/Transforms/InstSimplify/shift-128-kb.ll')
-rw-r--r--llvm/test/Transforms/InstSimplify/shift-128-kb.ll16
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
-
OpenPOWER on IntegriCloud