Skip to content

Commit 0b094c0

Browse files
committed
[NFC][Codegen][SystemZ] Autogenerate checklines in int-cmp-47.ll
1 parent b818da2 commit 0b094c0

File tree

1 file changed

+137
-58
lines changed

1 file changed

+137
-58
lines changed

llvm/test/CodeGen/SystemZ/int-cmp-47.ll

Lines changed: 137 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
12
; Test the use of TEST UNDER MASK for 64-bit operations.
23
;
34
; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z10 | FileCheck %s
@@ -8,9 +9,13 @@
89
; Check the lowest useful TMLL value.
910
define void @f1(i64 %a) {
1011
; CHECK-LABEL: f1:
11-
; CHECK: tmll %r2, 1
12-
; CHECK: ber %r14
13-
; CHECK: br %r14
12+
; CHECK: # %bb.0: # %entry
13+
; CHECK-NEXT: tmll %r2, 1
14+
; CHECK-NEXT: ber %r14
15+
; CHECK-NEXT: .LBB0_1: # %store
16+
; CHECK-NEXT: lgrl %r1, g@GOT
17+
; CHECK-NEXT: mvhi 0(%r1), 1
18+
; CHECK-NEXT: br %r14
1419
entry:
1520
%and = and i64 %a, 1
1621
%cmp = icmp eq i64 %and, 0
@@ -27,9 +32,13 @@ exit:
2732
; Check the high end of the TMLL range.
2833
define void @f2(i64 %a) {
2934
; CHECK-LABEL: f2:
30-
; CHECK: tmll %r2, 65535
31-
; CHECK: bner %r14
32-
; CHECK: br %r14
35+
; CHECK: # %bb.0: # %entry
36+
; CHECK-NEXT: tmll %r2, 65535
37+
; CHECK-NEXT: bner %r14
38+
; CHECK-NEXT: .LBB1_1: # %store
39+
; CHECK-NEXT: lgrl %r1, g@GOT
40+
; CHECK-NEXT: mvhi 0(%r1), 1
41+
; CHECK-NEXT: br %r14
3342
entry:
3443
%and = and i64 %a, 65535
3544
%cmp = icmp ne i64 %and, 0
@@ -46,9 +55,13 @@ exit:
4655
; Check the lowest useful TMLH value, which is the next value up.
4756
define void @f3(i64 %a) {
4857
; CHECK-LABEL: f3:
49-
; CHECK: tmlh %r2, 1
50-
; CHECK: bner %r14
51-
; CHECK: br %r14
58+
; CHECK: # %bb.0: # %entry
59+
; CHECK-NEXT: tmlh %r2, 1
60+
; CHECK-NEXT: bner %r14
61+
; CHECK-NEXT: .LBB2_1: # %store
62+
; CHECK-NEXT: lgrl %r1, g@GOT
63+
; CHECK-NEXT: mvhi 0(%r1), 1
64+
; CHECK-NEXT: br %r14
5265
entry:
5366
%and = and i64 %a, 65536
5467
%cmp = icmp ne i64 %and, 0
@@ -65,8 +78,14 @@ exit:
6578
; Check the next value up again, which cannot use TM.
6679
define void @f4(i64 %a) {
6780
; CHECK-LABEL: f4:
68-
; CHECK-NOT: {{tm[lh].}}
69-
; CHECK: br %r14
81+
; CHECK: # %bb.0: # %entry
82+
; CHECK-NEXT: llilf %r0, 4294901759
83+
; CHECK-NEXT: ngr %r0, %r2
84+
; CHECK-NEXT: ber %r14
85+
; CHECK-NEXT: .LBB3_1: # %store
86+
; CHECK-NEXT: lgrl %r1, g@GOT
87+
; CHECK-NEXT: mvhi 0(%r1), 1
88+
; CHECK-NEXT: br %r14
7089
entry:
7190
%and = and i64 %a, 4294901759
7291
%cmp = icmp eq i64 %and, 0
@@ -83,9 +102,13 @@ exit:
83102
; Check the high end of the TMLH range.
84103
define void @f5(i64 %a) {
85104
; CHECK-LABEL: f5:
86-
; CHECK: tmlh %r2, 65535
87-
; CHECK: ber %r14
88-
; CHECK: br %r14
105+
; CHECK: # %bb.0: # %entry
106+
; CHECK-NEXT: tmlh %r2, 65535
107+
; CHECK-NEXT: ber %r14
108+
; CHECK-NEXT: .LBB4_1: # %store
109+
; CHECK-NEXT: lgrl %r1, g@GOT
110+
; CHECK-NEXT: mvhi 0(%r1), 1
111+
; CHECK-NEXT: br %r14
89112
entry:
90113
%and = and i64 %a, 4294901760
91114
%cmp = icmp eq i64 %and, 0
@@ -102,9 +125,13 @@ exit:
102125
; Check the lowest useful TMHL value.
103126
define void @f6(i64 %a) {
104127
; CHECK-LABEL: f6:
105-
; CHECK: tmhl %r2, 1
106-
; CHECK: ber %r14
107-
; CHECK: br %r14
128+
; CHECK: # %bb.0: # %entry
129+
; CHECK-NEXT: tmhl %r2, 1
130+
; CHECK-NEXT: ber %r14
131+
; CHECK-NEXT: .LBB5_1: # %store
132+
; CHECK-NEXT: lgrl %r1, g@GOT
133+
; CHECK-NEXT: mvhi 0(%r1), 1
134+
; CHECK-NEXT: br %r14
108135
entry:
109136
%and = and i64 %a, 4294967296
110137
%cmp = icmp eq i64 %and, 0
@@ -121,8 +148,15 @@ exit:
121148
; Check the next value up again, which cannot use TM.
122149
define void @f7(i64 %a) {
123150
; CHECK-LABEL: f7:
124-
; CHECK-NOT: {{tm[lh].}}
125-
; CHECK: br %r14
151+
; CHECK: # %bb.0: # %entry
152+
; CHECK-NEXT: llihl %r0, 1
153+
; CHECK-NEXT: oill %r0, 1
154+
; CHECK-NEXT: ngr %r0, %r2
155+
; CHECK-NEXT: blr %r14
156+
; CHECK-NEXT: .LBB6_1: # %store
157+
; CHECK-NEXT: lgrl %r1, g@GOT
158+
; CHECK-NEXT: mvhi 0(%r1), 1
159+
; CHECK-NEXT: br %r14
126160
entry:
127161
%and = and i64 %a, 4294967297
128162
%cmp = icmp ne i64 %and, 0
@@ -139,9 +173,13 @@ exit:
139173
; Check the high end of the TMHL range.
140174
define void @f8(i64 %a) {
141175
; CHECK-LABEL: f8:
142-
; CHECK: tmhl %r2, 65535
143-
; CHECK: bner %r14
144-
; CHECK: br %r14
176+
; CHECK: # %bb.0: # %entry
177+
; CHECK-NEXT: tmhl %r2, 65535
178+
; CHECK-NEXT: bner %r14
179+
; CHECK-NEXT: .LBB7_1: # %store
180+
; CHECK-NEXT: lgrl %r1, g@GOT
181+
; CHECK-NEXT: mvhi 0(%r1), 1
182+
; CHECK-NEXT: br %r14
145183
entry:
146184
%and = and i64 %a, 281470681743360
147185
%cmp = icmp ne i64 %and, 0
@@ -158,9 +196,13 @@ exit:
158196
; Check the lowest useful TMHH value.
159197
define void @f9(i64 %a) {
160198
; CHECK-LABEL: f9:
161-
; CHECK: tmhh %r2, 1
162-
; CHECK: bner %r14
163-
; CHECK: br %r14
199+
; CHECK: # %bb.0: # %entry
200+
; CHECK-NEXT: tmhh %r2, 1
201+
; CHECK-NEXT: bner %r14
202+
; CHECK-NEXT: .LBB8_1: # %store
203+
; CHECK-NEXT: lgrl %r1, g@GOT
204+
; CHECK-NEXT: mvhi 0(%r1), 1
205+
; CHECK-NEXT: br %r14
164206
entry:
165207
%and = and i64 %a, 281474976710656
166208
%cmp = icmp ne i64 %and, 0
@@ -177,9 +219,13 @@ exit:
177219
; Check the high end of the TMHH range.
178220
define void @f10(i64 %a) {
179221
; CHECK-LABEL: f10:
180-
; CHECK: tmhh %r2, 65535
181-
; CHECK: ber %r14
182-
; CHECK: br %r14
222+
; CHECK: # %bb.0: # %entry
223+
; CHECK-NEXT: tmhh %r2, 65535
224+
; CHECK-NEXT: ber %r14
225+
; CHECK-NEXT: .LBB9_1: # %store
226+
; CHECK-NEXT: lgrl %r1, g@GOT
227+
; CHECK-NEXT: mvhi 0(%r1), 1
228+
; CHECK-NEXT: br %r14
183229
entry:
184230
%and = and i64 %a, 18446462598732840960
185231
%cmp = icmp eq i64 %and, 0
@@ -196,9 +242,13 @@ exit:
196242
; Check that we can fold an SHL into a TMxx mask.
197243
define void @f11(i64 %a) {
198244
; CHECK-LABEL: f11:
199-
; CHECK: tmhl %r2, 32768
200-
; CHECK: bner %r14
201-
; CHECK: br %r14
245+
; CHECK: # %bb.0: # %entry
246+
; CHECK-NEXT: tmhl %r2, 32768
247+
; CHECK-NEXT: bner %r14
248+
; CHECK-NEXT: .LBB10_1: # %store
249+
; CHECK-NEXT: lgrl %r1, g@GOT
250+
; CHECK-NEXT: mvhi 0(%r1), 1
251+
; CHECK-NEXT: br %r14
202252
entry:
203253
%shl = shl i64 %a, 1
204254
%and = and i64 %shl, 281474976710656
@@ -216,9 +266,13 @@ exit:
216266
; Check that we can fold an SHR into a TMxx mask.
217267
define void @f12(i64 %a) {
218268
; CHECK-LABEL: f12:
219-
; CHECK: tmhh %r2, 256
220-
; CHECK: bner %r14
221-
; CHECK: br %r14
269+
; CHECK: # %bb.0: # %entry
270+
; CHECK-NEXT: tmhh %r2, 256
271+
; CHECK-NEXT: bner %r14
272+
; CHECK-NEXT: .LBB11_1: # %store
273+
; CHECK-NEXT: lgrl %r1, g@GOT
274+
; CHECK-NEXT: mvhi 0(%r1), 1
275+
; CHECK-NEXT: br %r14
222276
entry:
223277
%shr = lshr i64 %a, 56
224278
%and = and i64 %shr, 1
@@ -236,9 +290,13 @@ exit:
236290
; Check a case where TMHH can be used to implement a ult comparison.
237291
define void @f13(i64 %a) {
238292
; CHECK-LABEL: f13:
239-
; CHECK: tmhh %r2, 49152
240-
; CHECK: bnor %r14
241-
; CHECK: br %r14
293+
; CHECK: # %bb.0: # %entry
294+
; CHECK-NEXT: tmhh %r2, 49152
295+
; CHECK-NEXT: bnor %r14
296+
; CHECK-NEXT: .LBB12_1: # %store
297+
; CHECK-NEXT: lgrl %r1, g@GOT
298+
; CHECK-NEXT: mvhi 0(%r1), 1
299+
; CHECK-NEXT: br %r14
242300
entry:
243301
%cmp = icmp ult i64 %a, 13835058055282163712
244302
br i1 %cmp, label %exit, label %store
@@ -254,9 +312,13 @@ exit:
254312
; And again with ule.
255313
define void @f14(i64 %a) {
256314
; CHECK-LABEL: f14:
257-
; CHECK: tmhh %r2, 49152
258-
; CHECK: bnor %r14
259-
; CHECK: br %r14
315+
; CHECK: # %bb.0: # %entry
316+
; CHECK-NEXT: tmhh %r2, 49152
317+
; CHECK-NEXT: bnor %r14
318+
; CHECK-NEXT: .LBB13_1: # %store
319+
; CHECK-NEXT: lgrl %r1, g@GOT
320+
; CHECK-NEXT: mvhi 0(%r1), 1
321+
; CHECK-NEXT: br %r14
260322
entry:
261323
%cmp = icmp ule i64 %a, 13835058055282163711
262324
br i1 %cmp, label %exit, label %store
@@ -272,9 +334,13 @@ exit:
272334
; And again with ugt.
273335
define void @f15(i64 %a) {
274336
; CHECK-LABEL: f15:
275-
; CHECK: tmhh %r2, 49152
276-
; CHECK: bor %r14
277-
; CHECK: br %r14
337+
; CHECK: # %bb.0: # %entry
338+
; CHECK-NEXT: tmhh %r2, 49152
339+
; CHECK-NEXT: bor %r14
340+
; CHECK-NEXT: .LBB14_1: # %store
341+
; CHECK-NEXT: lgrl %r1, g@GOT
342+
; CHECK-NEXT: mvhi 0(%r1), 1
343+
; CHECK-NEXT: br %r14
278344
entry:
279345
%cmp = icmp ugt i64 %a, 13835058055282163711
280346
br i1 %cmp, label %exit, label %store
@@ -290,9 +356,13 @@ exit:
290356
; And again with uge.
291357
define void @f16(i64 %a) {
292358
; CHECK-LABEL: f16:
293-
; CHECK: tmhh %r2, 49152
294-
; CHECK: bor %r14
295-
; CHECK: br %r14
359+
; CHECK: # %bb.0: # %entry
360+
; CHECK-NEXT: tmhh %r2, 49152
361+
; CHECK-NEXT: bor %r14
362+
; CHECK-NEXT: .LBB15_1: # %store
363+
; CHECK-NEXT: lgrl %r1, g@GOT
364+
; CHECK-NEXT: mvhi 0(%r1), 1
365+
; CHECK-NEXT: br %r14
296366
entry:
297367
%cmp = icmp uge i64 %a, 13835058055282163712
298368
br i1 %cmp, label %exit, label %store
@@ -308,11 +378,14 @@ exit:
308378
; Decrease the constant from f13 to make TMHH invalid.
309379
define void @f17(i64 %a) {
310380
; CHECK-LABEL: f17:
311-
; CHECK-NOT: tmhh
312-
; CHECK: srlg [[REG:%r[0-5]]], %r2, 48
313-
; CHECK: cgfi [[REG]], 49151
314-
; CHECK-NOT: tmhh
315-
; CHECK: br %r14
381+
; CHECK: # %bb.0: # %entry
382+
; CHECK-NEXT: srlg %r0, %r2, 48
383+
; CHECK-NEXT: cgfi %r0, 49151
384+
; CHECK-NEXT: blr %r14
385+
; CHECK-NEXT: .LBB16_1: # %store
386+
; CHECK-NEXT: lgrl %r1, g@GOT
387+
; CHECK-NEXT: mvhi 0(%r1), 1
388+
; CHECK-NEXT: br %r14
316389
entry:
317390
%cmp = icmp ult i64 %a, 13834776580305453056
318391
br i1 %cmp, label %exit, label %store
@@ -328,9 +401,12 @@ exit:
328401
; Check that we don't use TMHH just to test the top bit.
329402
define void @f18(i64 %a) {
330403
; CHECK-LABEL: f18:
331-
; CHECK-NOT: tmhh
332-
; CHECK: cgibhe %r2, 0, 0(%r14)
333-
; CHECK: br %r14
404+
; CHECK: # %bb.0: # %entry
405+
; CHECK-NEXT: cgibhe %r2, 0, 0(%r14)
406+
; CHECK-NEXT: .LBB17_1: # %store
407+
; CHECK-NEXT: lgrl %r1, g@GOT
408+
; CHECK-NEXT: mvhi 0(%r1), 1
409+
; CHECK-NEXT: br %r14
334410
entry:
335411
%cmp = icmp ult i64 %a, 9223372036854775808
336412
br i1 %cmp, label %exit, label %store
@@ -347,10 +423,13 @@ exit:
347423
; would need to be shifted out of range
348424
define void @f19(i64 %a) {
349425
; CHECK-LABEL: f19:
350-
; CHECK-NOT: tmhh
351-
; CHECK: srlg [[REG:%r[0-5]]], %r2, 63
352-
; CHECK: cgibl [[REG]], 3, 0(%r14)
353-
; CHECK: br %r14
426+
; CHECK: # %bb.0: # %entry
427+
; CHECK-NEXT: srlg %r0, %r2, 63
428+
; CHECK-NEXT: cgibl %r0, 3, 0(%r14)
429+
; CHECK-NEXT: .LBB18_1: # %store
430+
; CHECK-NEXT: lgrl %r1, g@GOT
431+
; CHECK-NEXT: mvhi 0(%r1), 1
432+
; CHECK-NEXT: br %r14
354433
entry:
355434
%shr = lshr i64 %a, 63
356435
%cmp = icmp ult i64 %shr, 3

0 commit comments

Comments
 (0)