xref: /llvm-project/llvm/test/CodeGen/SystemZ/scmp.ll (revision e094abde42634e38cda85a6024792f681fc58f32)
1*e094abdeSVolodymyr Vasylkun; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
2*e094abdeSVolodymyr Vasylkun; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s
3*e094abdeSVolodymyr Vasylkun
4*e094abdeSVolodymyr Vasylkundefine i8 @scmp.8.8(i8 signext %x, i8 signext %y) nounwind {
5*e094abdeSVolodymyr Vasylkun; CHECK-LABEL: scmp.8.8:
6*e094abdeSVolodymyr Vasylkun; CHECK:       # %bb.0:
7*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    cr %r2, %r3
8*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    lhi %r2, 0
9*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    lochih %r2, 1
10*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    lochil %r2, -1
11*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    br %r14
12*e094abdeSVolodymyr Vasylkun  %1 = call i8 @llvm.scmp(i8 %x, i8 %y)
13*e094abdeSVolodymyr Vasylkun  ret i8 %1
14*e094abdeSVolodymyr Vasylkun}
15*e094abdeSVolodymyr Vasylkun
16*e094abdeSVolodymyr Vasylkundefine i8 @scmp.8.16(i16 signext %x, i16 signext %y) nounwind {
17*e094abdeSVolodymyr Vasylkun; CHECK-LABEL: scmp.8.16:
18*e094abdeSVolodymyr Vasylkun; CHECK:       # %bb.0:
19*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    cr %r2, %r3
20*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    lhi %r2, 0
21*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    lochih %r2, 1
22*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    lochil %r2, -1
23*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    br %r14
24*e094abdeSVolodymyr Vasylkun  %1 = call i8 @llvm.scmp(i16 %x, i16 %y)
25*e094abdeSVolodymyr Vasylkun  ret i8 %1
26*e094abdeSVolodymyr Vasylkun}
27*e094abdeSVolodymyr Vasylkun
28*e094abdeSVolodymyr Vasylkundefine i8 @scmp.8.32(i32 %x, i32 %y) nounwind {
29*e094abdeSVolodymyr Vasylkun; CHECK-LABEL: scmp.8.32:
30*e094abdeSVolodymyr Vasylkun; CHECK:       # %bb.0:
31*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    cr %r2, %r3
32*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    lhi %r2, 0
33*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    lochih %r2, 1
34*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    lochil %r2, -1
35*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    br %r14
36*e094abdeSVolodymyr Vasylkun  %1 = call i8 @llvm.scmp(i32 %x, i32 %y)
37*e094abdeSVolodymyr Vasylkun  ret i8 %1
38*e094abdeSVolodymyr Vasylkun}
39*e094abdeSVolodymyr Vasylkun
40*e094abdeSVolodymyr Vasylkundefine i8 @scmp.8.64(i64 %x, i64 %y) nounwind {
41*e094abdeSVolodymyr Vasylkun; CHECK-LABEL: scmp.8.64:
42*e094abdeSVolodymyr Vasylkun; CHECK:       # %bb.0:
43*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    cgr %r2, %r3
44*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    lhi %r2, 0
45*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    lochih %r2, 1
46*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    lochil %r2, -1
47*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    br %r14
48*e094abdeSVolodymyr Vasylkun  %1 = call i8 @llvm.scmp(i64 %x, i64 %y)
49*e094abdeSVolodymyr Vasylkun  ret i8 %1
50*e094abdeSVolodymyr Vasylkun}
51*e094abdeSVolodymyr Vasylkun
52*e094abdeSVolodymyr Vasylkundefine i8 @scmp.8.128(i128 %x, i128 %y) nounwind {
53*e094abdeSVolodymyr Vasylkun; CHECK-LABEL: scmp.8.128:
54*e094abdeSVolodymyr Vasylkun; CHECK:       # %bb.0:
55*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    vl %v0, 0(%r3), 3
56*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    vl %v1, 0(%r2), 3
57*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    vecg %v0, %v1
58*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    jlh .LBB4_2
59*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:  # %bb.1:
60*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    vchlgs %v2, %v1, %v0
61*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:  .LBB4_2:
62*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    lhi %r2, 0
63*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    lochil %r2, 1
64*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    vecg %v1, %v0
65*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    jlh .LBB4_4
66*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:  # %bb.3:
67*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    vchlgs %v0, %v0, %v1
68*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:  .LBB4_4:
69*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    lochil %r2, -1
70*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    br %r14
71*e094abdeSVolodymyr Vasylkun  %1 = call i8 @llvm.scmp(i128 %x, i128 %y)
72*e094abdeSVolodymyr Vasylkun  ret i8 %1
73*e094abdeSVolodymyr Vasylkun}
74*e094abdeSVolodymyr Vasylkun
75*e094abdeSVolodymyr Vasylkundefine i32 @scmp.32.32(i32 %x, i32 %y) nounwind {
76*e094abdeSVolodymyr Vasylkun; CHECK-LABEL: scmp.32.32:
77*e094abdeSVolodymyr Vasylkun; CHECK:       # %bb.0:
78*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    cr %r2, %r3
79*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    lhi %r2, 0
80*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    lochih %r2, 1
81*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    lochil %r2, -1
82*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    br %r14
83*e094abdeSVolodymyr Vasylkun  %1 = call i32 @llvm.scmp(i32 %x, i32 %y)
84*e094abdeSVolodymyr Vasylkun  ret i32 %1
85*e094abdeSVolodymyr Vasylkun}
86*e094abdeSVolodymyr Vasylkun
87*e094abdeSVolodymyr Vasylkundefine i32 @scmp.32.64(i64 %x, i64 %y) nounwind {
88*e094abdeSVolodymyr Vasylkun; CHECK-LABEL: scmp.32.64:
89*e094abdeSVolodymyr Vasylkun; CHECK:       # %bb.0:
90*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    cgr %r2, %r3
91*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    lhi %r2, 0
92*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    lochih %r2, 1
93*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    lochil %r2, -1
94*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    br %r14
95*e094abdeSVolodymyr Vasylkun  %1 = call i32 @llvm.scmp(i64 %x, i64 %y)
96*e094abdeSVolodymyr Vasylkun  ret i32 %1
97*e094abdeSVolodymyr Vasylkun}
98*e094abdeSVolodymyr Vasylkun
99*e094abdeSVolodymyr Vasylkundefine i64 @scmp.64.64(i64 %x, i64 %y) nounwind {
100*e094abdeSVolodymyr Vasylkun; CHECK-LABEL: scmp.64.64:
101*e094abdeSVolodymyr Vasylkun; CHECK:       # %bb.0:
102*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    cgr %r2, %r3
103*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    lghi %r2, 0
104*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    locghih %r2, 1
105*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    locghil %r2, -1
106*e094abdeSVolodymyr Vasylkun; CHECK-NEXT:    br %r14
107*e094abdeSVolodymyr Vasylkun  %1 = call i64 @llvm.scmp(i64 %x, i64 %y)
108*e094abdeSVolodymyr Vasylkun  ret i64 %1
109*e094abdeSVolodymyr Vasylkun}
110