1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
2 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s
4 define i8 @ucmp.8.8(i8 zeroext %x, i8 zeroext %y) nounwind {
5 ; CHECK-LABEL: ucmp.8.8:
7 ; CHECK-NEXT: cr %r2, %r3
8 ; CHECK-NEXT: lhi %r2, 0
9 ; CHECK-NEXT: lochih %r2, 1
10 ; CHECK-NEXT: lochil %r2, -1
12 %1 = call i8 @llvm.ucmp(i8 %x, i8 %y)
16 define i8 @ucmp.8.16(i16 zeroext %x, i16 zeroext %y) nounwind {
17 ; CHECK-LABEL: ucmp.8.16:
19 ; CHECK-NEXT: cr %r2, %r3
20 ; CHECK-NEXT: lhi %r2, 0
21 ; CHECK-NEXT: lochih %r2, 1
22 ; CHECK-NEXT: lochil %r2, -1
24 %1 = call i8 @llvm.ucmp(i16 %x, i16 %y)
28 define i8 @ucmp.8.32(i32 %x, i32 %y) nounwind {
29 ; CHECK-LABEL: ucmp.8.32:
31 ; CHECK-NEXT: clr %r2, %r3
32 ; CHECK-NEXT: lhi %r2, 0
33 ; CHECK-NEXT: lochih %r2, 1
34 ; CHECK-NEXT: lochil %r2, -1
36 %1 = call i8 @llvm.ucmp(i32 %x, i32 %y)
40 define i8 @ucmp.8.64(i64 %x, i64 %y) nounwind {
41 ; CHECK-LABEL: ucmp.8.64:
43 ; CHECK-NEXT: clgr %r2, %r3
44 ; CHECK-NEXT: lhi %r2, 0
45 ; CHECK-NEXT: lochih %r2, 1
46 ; CHECK-NEXT: lochil %r2, -1
48 %1 = call i8 @llvm.ucmp(i64 %x, i64 %y)
52 define i8 @ucmp.8.128(i128 %x, i128 %y) nounwind {
53 ; CHECK-LABEL: ucmp.8.128:
55 ; CHECK-NEXT: vl %v0, 0(%r3), 3
56 ; CHECK-NEXT: vl %v1, 0(%r2), 3
57 ; CHECK-NEXT: veclg %v0, %v1
58 ; CHECK-NEXT: jlh .LBB4_2
59 ; CHECK-NEXT: # %bb.1:
60 ; CHECK-NEXT: vchlgs %v2, %v1, %v0
61 ; CHECK-NEXT: .LBB4_2:
62 ; CHECK-NEXT: lhi %r2, 0
63 ; CHECK-NEXT: lochil %r2, 1
64 ; CHECK-NEXT: veclg %v1, %v0
65 ; CHECK-NEXT: jlh .LBB4_4
66 ; CHECK-NEXT: # %bb.3:
67 ; CHECK-NEXT: vchlgs %v0, %v0, %v1
68 ; CHECK-NEXT: .LBB4_4:
69 ; CHECK-NEXT: lochil %r2, -1
71 %1 = call i8 @llvm.ucmp(i128 %x, i128 %y)
75 define i32 @ucmp.32.32(i32 %x, i32 %y) nounwind {
76 ; CHECK-LABEL: ucmp.32.32:
78 ; CHECK-NEXT: clr %r2, %r3
79 ; CHECK-NEXT: lhi %r2, 0
80 ; CHECK-NEXT: lochih %r2, 1
81 ; CHECK-NEXT: lochil %r2, -1
83 %1 = call i32 @llvm.ucmp(i32 %x, i32 %y)
87 define i32 @ucmp.32.64(i64 %x, i64 %y) nounwind {
88 ; CHECK-LABEL: ucmp.32.64:
90 ; CHECK-NEXT: clgr %r2, %r3
91 ; CHECK-NEXT: lhi %r2, 0
92 ; CHECK-NEXT: lochih %r2, 1
93 ; CHECK-NEXT: lochil %r2, -1
95 %1 = call i32 @llvm.ucmp(i64 %x, i64 %y)
99 define i64 @ucmp.64.64(i64 %x, i64 %y) nounwind {
100 ; CHECK-LABEL: ucmp.64.64:
102 ; CHECK-NEXT: clgr %r2, %r3
103 ; CHECK-NEXT: lghi %r2, 0
104 ; CHECK-NEXT: locghih %r2, 1
105 ; CHECK-NEXT: locghil %r2, -1
106 ; CHECK-NEXT: br %r14
107 %1 = call i64 @llvm.ucmp(i64 %x, i64 %y)