Skip to content

Commit 5f4927d

Browse files
author
Chen Zheng
committed
[PowerPC][NFC] refactor some test cases.
1 parent 0205aa4 commit 5f4927d

File tree

2 files changed

+307
-19
lines changed

2 files changed

+307
-19
lines changed

llvm/test/CodeGen/PowerPC/ctrloop-fp128.ll

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
; RUN: llc < %s -verify-machineinstrs -stop-after=hardware-loops -mcpu=pwr9 \
2-
; RUN: -mtriple=powerpc64le-unknown-unknown | FileCheck %s
3-
; RUN: llc < %s -verify-machineinstrs -stop-after=hardware-loops -mcpu=pwr8 \
4-
; RUN: -mtriple=powerpc64le-unknown-unknown | FileCheck %s
1+
; RUN: llc < %s -verify-machineinstrs -mcpu=pwr9 -mtriple=powerpc64le-unknown-unknown | FileCheck %s
2+
; RUN: llc < %s -verify-machineinstrs -mcpu=pwr8 -mtriple=powerpc64le-unknown-unknown | FileCheck %s
53

64
@a = internal global fp128 0xL00000000000000000000000000000000, align 16
75
@x = internal global [4 x fp128] zeroinitializer, align 16
@@ -27,8 +25,7 @@ for.end: ; preds = %for.body
2725
ret void
2826

2927
; CHECK-LABEL: fmul_ctrloop_fp128
30-
; CHECK-NOT: call void @llvm.set.loop.iterations.i64(i64 4)
31-
; CHECK-NOT: call i1 @llvm.loop.decrement.i64(i64 1)
28+
; CHECK-NOT: mtctr
3229
}
3330

3431
define void @fpext_ctrloop_fp128(ptr %a) {
@@ -50,8 +47,7 @@ for.end:
5047
ret void
5148

5249
; CHECK-LABEL: fpext_ctrloop_fp128
53-
; CHECK-NOT: call void @llvm.set.loop.iterations.i64(i64 4)
54-
; CHECK-NOT: call i1 @llvm.loop.decrement.i64(i64 1)
50+
; CHECK-NOT: mtctr
5551
}
5652

5753
define void @fptrunc_ctrloop_fp128(ptr %a) {
@@ -73,8 +69,7 @@ for.end:
7369
ret void
7470

7571
; CHECK-LABEL: fptrunc_ctrloop_fp128
76-
; CHECK-NOT: call void @llvm.set.loop.iterations.i64(i64 4)
77-
; CHECK-NOT: call i1 @llvm.loop.decrement.i64(i64 1)
72+
; CHECK-NOT: mtctr
7873
}
7974

8075
declare void @obfuscate(ptr, ...) local_unnamed_addr #2

llvm/test/CodeGen/PowerPC/ctrloop-sh.ll

Lines changed: 302 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,105 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
12
; RUN: llc -verify-machineinstrs < %s | FileCheck %s
23
target datalayout = "E-m:e-p:32:32-i128:64-n32"
34
target triple = "powerpc-ellcc-linux"
45

56
; Function Attrs: nounwind
67
define void @foo1(ptr %a, ptr readonly %b, ptr readonly %c) #0 {
8+
; CHECK-LABEL: foo1:
9+
; CHECK: # %bb.0: # %entry
10+
; CHECK-NEXT: stwu 1, -48(1)
11+
; CHECK-NEXT: li 6, 2048
12+
; CHECK-NEXT: li 7, 0
13+
; CHECK-NEXT: stw 24, 16(1) # 4-byte Folded Spill
14+
; CHECK-NEXT: stw 25, 20(1) # 4-byte Folded Spill
15+
; CHECK-NEXT: stw 26, 24(1) # 4-byte Folded Spill
16+
; CHECK-NEXT: stw 27, 28(1) # 4-byte Folded Spill
17+
; CHECK-NEXT: stw 28, 32(1) # 4-byte Folded Spill
18+
; CHECK-NEXT: stw 29, 36(1) # 4-byte Folded Spill
19+
; CHECK-NEXT: stw 30, 40(1) # 4-byte Folded Spill
20+
; CHECK-NEXT: .LBB0_1: # %for.body
21+
; CHECK-NEXT: #
22+
; CHECK-NEXT: lwz 10, 12(5)
23+
; CHECK-NEXT: addi 6, 6, -1
24+
; CHECK-NEXT: lwz 12, 12(4)
25+
; CHECK-NEXT: lwz 11, 8(4)
26+
; CHECK-NEXT: subfic 0, 10, 96
27+
; CHECK-NEXT: lwz 8, 4(4)
28+
; CHECK-NEXT: addi 30, 10, -64
29+
; CHECK-NEXT: lwz 9, 0(4)
30+
; CHECK-NEXT: cmplwi 10, 64
31+
; CHECK-NEXT: slw 25, 12, 10
32+
; CHECK-NEXT: addi 29, 10, -96
33+
; CHECK-NEXT: subfic 27, 10, 32
34+
; CHECK-NEXT: srw 0, 12, 0
35+
; CHECK-NEXT: slw 24, 11, 30
36+
; CHECK-NEXT: bc 12, 0, .LBB0_3
37+
; CHECK-NEXT: # %bb.2: # %for.body
38+
; CHECK-NEXT: #
39+
; CHECK-NEXT: ori 25, 7, 0
40+
; CHECK-NEXT: b .LBB0_3
41+
; CHECK-NEXT: .LBB0_3: # %for.body
42+
; CHECK-NEXT: #
43+
; CHECK-NEXT: slw 28, 9, 10
44+
; CHECK-NEXT: or 0, 24, 0
45+
; CHECK-NEXT: srw 24, 8, 27
46+
; CHECK-NEXT: stw 25, 12(3)
47+
; CHECK-NEXT: subfic 25, 10, 64
48+
; CHECK-NEXT: slw 29, 12, 29
49+
; CHECK-NEXT: slw 26, 11, 10
50+
; CHECK-NEXT: or 28, 28, 24
51+
; CHECK-NEXT: srw 24, 12, 27
52+
; CHECK-NEXT: or 29, 0, 29
53+
; CHECK-NEXT: subfic 0, 25, 32
54+
; CHECK-NEXT: or 26, 26, 24
55+
; CHECK-NEXT: addi 24, 10, -32
56+
; CHECK-NEXT: srw 27, 11, 27
57+
; CHECK-NEXT: slw 0, 11, 0
58+
; CHECK-NEXT: srw 11, 11, 25
59+
; CHECK-NEXT: srw 25, 12, 25
60+
; CHECK-NEXT: slw 30, 12, 30
61+
; CHECK-NEXT: slw 12, 12, 24
62+
; CHECK-NEXT: slw 24, 8, 24
63+
; CHECK-NEXT: or 0, 25, 0
64+
; CHECK-NEXT: or 28, 28, 24
65+
; CHECK-NEXT: cmplwi 1, 10, 0
66+
; CHECK-NEXT: slw 10, 8, 10
67+
; CHECK-NEXT: or 0, 0, 27
68+
; CHECK-NEXT: or 11, 28, 11
69+
; CHECK-NEXT: or 10, 10, 0
70+
; CHECK-NEXT: or 12, 26, 12
71+
; CHECK-NEXT: bc 12, 0, .LBB0_5
72+
; CHECK-NEXT: # %bb.4: # %for.body
73+
; CHECK-NEXT: #
74+
; CHECK-NEXT: ori 11, 29, 0
75+
; CHECK-NEXT: ori 10, 30, 0
76+
; CHECK-NEXT: ori 12, 7, 0
77+
; CHECK-NEXT: b .LBB0_5
78+
; CHECK-NEXT: .LBB0_5: # %for.body
79+
; CHECK-NEXT: #
80+
; CHECK-NEXT: cmplwi 6, 0
81+
; CHECK-NEXT: bc 12, 6, .LBB0_7
82+
; CHECK-NEXT: # %bb.6: # %for.body
83+
; CHECK-NEXT: #
84+
; CHECK-NEXT: ori 9, 11, 0
85+
; CHECK-NEXT: ori 8, 10, 0
86+
; CHECK-NEXT: b .LBB0_7
87+
; CHECK-NEXT: .LBB0_7: # %for.body
88+
; CHECK-NEXT: #
89+
; CHECK-NEXT: stw 12, 8(3)
90+
; CHECK-NEXT: stw 9, 0(3)
91+
; CHECK-NEXT: stw 8, 4(3)
92+
; CHECK-NEXT: bne 0, .LBB0_1
93+
; CHECK-NEXT: # %bb.8: # %for.end
94+
; CHECK-NEXT: lwz 30, 40(1) # 4-byte Folded Reload
95+
; CHECK-NEXT: lwz 29, 36(1) # 4-byte Folded Reload
96+
; CHECK-NEXT: lwz 28, 32(1) # 4-byte Folded Reload
97+
; CHECK-NEXT: lwz 27, 28(1) # 4-byte Folded Reload
98+
; CHECK-NEXT: lwz 26, 24(1) # 4-byte Folded Reload
99+
; CHECK-NEXT: lwz 25, 20(1) # 4-byte Folded Reload
100+
; CHECK-NEXT: lwz 24, 16(1) # 4-byte Folded Reload
101+
; CHECK-NEXT: addi 1, 1, 48
102+
; CHECK-NEXT: blr
7103
entry:
8104
br label %for.body
9105

@@ -19,13 +115,121 @@ for.body: ; preds = %for.body, %entry
19115

20116
for.end: ; preds = %for.body
21117
ret void
22-
23-
; CHECK-LABEL: @foo1
24-
; CHECK-NOT: mtctr
25118
}
26119

27120
; Function Attrs: nounwind
28121
define void @foo2(ptr %a, ptr readonly %b, ptr readonly %c) #0 {
122+
; CHECK-LABEL: foo2:
123+
; CHECK: # %bb.0: # %entry
124+
; CHECK-NEXT: stwu 1, -48(1)
125+
; CHECK-NEXT: li 6, 2048
126+
; CHECK-NEXT: stw 23, 12(1) # 4-byte Folded Spill
127+
; CHECK-NEXT: stw 24, 16(1) # 4-byte Folded Spill
128+
; CHECK-NEXT: stw 25, 20(1) # 4-byte Folded Spill
129+
; CHECK-NEXT: stw 26, 24(1) # 4-byte Folded Spill
130+
; CHECK-NEXT: stw 27, 28(1) # 4-byte Folded Spill
131+
; CHECK-NEXT: stw 28, 32(1) # 4-byte Folded Spill
132+
; CHECK-NEXT: stw 29, 36(1) # 4-byte Folded Spill
133+
; CHECK-NEXT: stw 30, 40(1) # 4-byte Folded Spill
134+
; CHECK-NEXT: .LBB1_1: # %for.body
135+
; CHECK-NEXT: #
136+
; CHECK-NEXT: lwz 9, 12(5)
137+
; CHECK-NEXT: addi 6, 6, -1
138+
; CHECK-NEXT: lwz 10, 4(4)
139+
; CHECK-NEXT: lwz 11, 0(4)
140+
; CHECK-NEXT: subfic 12, 9, 96
141+
; CHECK-NEXT: lwz 7, 8(4)
142+
; CHECK-NEXT: addi 0, 9, -64
143+
; CHECK-NEXT: lwz 8, 12(4)
144+
; CHECK-NEXT: subfic 28, 9, 32
145+
; CHECK-NEXT: slw 12, 11, 12
146+
; CHECK-NEXT: srw 24, 10, 0
147+
; CHECK-NEXT: srw 29, 8, 9
148+
; CHECK-NEXT: or 12, 24, 12
149+
; CHECK-NEXT: slw 24, 7, 28
150+
; CHECK-NEXT: srw 26, 10, 9
151+
; CHECK-NEXT: or 29, 29, 24
152+
; CHECK-NEXT: slw 24, 11, 28
153+
; CHECK-NEXT: cmplwi 9, 64
154+
; CHECK-NEXT: srawi 25, 11, 31
155+
; CHECK-NEXT: or 26, 26, 24
156+
; CHECK-NEXT: sraw 24, 11, 9
157+
; CHECK-NEXT: addi 30, 9, -96
158+
; CHECK-NEXT: bc 12, 0, .LBB1_3
159+
; CHECK-NEXT: # %bb.2: # %for.body
160+
; CHECK-NEXT: #
161+
; CHECK-NEXT: ori 24, 25, 0
162+
; CHECK-NEXT: b .LBB1_3
163+
; CHECK-NEXT: .LBB1_3: # %for.body
164+
; CHECK-NEXT: #
165+
; CHECK-NEXT: cmpwi 1, 30, 1
166+
; CHECK-NEXT: sraw 30, 11, 30
167+
; CHECK-NEXT: stw 24, 0(3)
168+
; CHECK-NEXT: subfic 24, 9, 64
169+
; CHECK-NEXT: addi 27, 9, -32
170+
; CHECK-NEXT: bc 12, 4, .LBB1_5
171+
; CHECK-NEXT: # %bb.4: # %for.body
172+
; CHECK-NEXT: #
173+
; CHECK-NEXT: ori 12, 30, 0
174+
; CHECK-NEXT: b .LBB1_5
175+
; CHECK-NEXT: .LBB1_5: # %for.body
176+
; CHECK-NEXT: #
177+
; CHECK-NEXT: subfic 30, 24, 32
178+
; CHECK-NEXT: slw 28, 10, 28
179+
; CHECK-NEXT: srw 30, 10, 30
180+
; CHECK-NEXT: slw 10, 10, 24
181+
; CHECK-NEXT: slw 24, 11, 24
182+
; CHECK-NEXT: sraw 23, 11, 0
183+
; CHECK-NEXT: srw 0, 7, 27
184+
; CHECK-NEXT: sraw 11, 11, 27
185+
; CHECK-NEXT: cmpwi 1, 27, 1
186+
; CHECK-NEXT: or 0, 29, 0
187+
; CHECK-NEXT: or 30, 24, 30
188+
; CHECK-NEXT: bc 12, 4, .LBB1_6
189+
; CHECK-NEXT: b .LBB1_7
190+
; CHECK-NEXT: .LBB1_6: # %for.body
191+
; CHECK-NEXT: #
192+
; CHECK-NEXT: addi 11, 26, 0
193+
; CHECK-NEXT: .LBB1_7: # %for.body
194+
; CHECK-NEXT: #
195+
; CHECK-NEXT: cmplwi 1, 9, 0
196+
; CHECK-NEXT: srw 9, 7, 9
197+
; CHECK-NEXT: or 10, 0, 10
198+
; CHECK-NEXT: or 0, 30, 28
199+
; CHECK-NEXT: or 9, 9, 0
200+
; CHECK-NEXT: bc 12, 0, .LBB1_9
201+
; CHECK-NEXT: # %bb.8: # %for.body
202+
; CHECK-NEXT: #
203+
; CHECK-NEXT: ori 10, 12, 0
204+
; CHECK-NEXT: ori 9, 23, 0
205+
; CHECK-NEXT: ori 11, 25, 0
206+
; CHECK-NEXT: b .LBB1_9
207+
; CHECK-NEXT: .LBB1_9: # %for.body
208+
; CHECK-NEXT: #
209+
; CHECK-NEXT: cmplwi 6, 0
210+
; CHECK-NEXT: bc 12, 6, .LBB1_11
211+
; CHECK-NEXT: # %bb.10: # %for.body
212+
; CHECK-NEXT: #
213+
; CHECK-NEXT: ori 8, 10, 0
214+
; CHECK-NEXT: ori 7, 9, 0
215+
; CHECK-NEXT: b .LBB1_11
216+
; CHECK-NEXT: .LBB1_11: # %for.body
217+
; CHECK-NEXT: #
218+
; CHECK-NEXT: stw 11, 4(3)
219+
; CHECK-NEXT: stw 8, 12(3)
220+
; CHECK-NEXT: stw 7, 8(3)
221+
; CHECK-NEXT: bne 0, .LBB1_1
222+
; CHECK-NEXT: # %bb.12: # %for.end
223+
; CHECK-NEXT: lwz 30, 40(1) # 4-byte Folded Reload
224+
; CHECK-NEXT: lwz 29, 36(1) # 4-byte Folded Reload
225+
; CHECK-NEXT: lwz 28, 32(1) # 4-byte Folded Reload
226+
; CHECK-NEXT: lwz 27, 28(1) # 4-byte Folded Reload
227+
; CHECK-NEXT: lwz 26, 24(1) # 4-byte Folded Reload
228+
; CHECK-NEXT: lwz 25, 20(1) # 4-byte Folded Reload
229+
; CHECK-NEXT: lwz 24, 16(1) # 4-byte Folded Reload
230+
; CHECK-NEXT: lwz 23, 12(1) # 4-byte Folded Reload
231+
; CHECK-NEXT: addi 1, 1, 48
232+
; CHECK-NEXT: blr
29233
entry:
30234
br label %for.body
31235

@@ -41,13 +245,105 @@ for.body: ; preds = %for.body, %entry
41245

42246
for.end: ; preds = %for.body
43247
ret void
44-
45-
; CHECK-LABEL: @foo2
46-
; CHECK-NOT: mtctr
47248
}
48249

49250
; Function Attrs: nounwind
50251
define void @foo3(ptr %a, ptr readonly %b, ptr readonly %c) #0 {
252+
; CHECK-LABEL: foo3:
253+
; CHECK: # %bb.0: # %entry
254+
; CHECK-NEXT: stwu 1, -48(1)
255+
; CHECK-NEXT: li 6, 2048
256+
; CHECK-NEXT: li 7, 0
257+
; CHECK-NEXT: stw 24, 16(1) # 4-byte Folded Spill
258+
; CHECK-NEXT: stw 25, 20(1) # 4-byte Folded Spill
259+
; CHECK-NEXT: stw 26, 24(1) # 4-byte Folded Spill
260+
; CHECK-NEXT: stw 27, 28(1) # 4-byte Folded Spill
261+
; CHECK-NEXT: stw 28, 32(1) # 4-byte Folded Spill
262+
; CHECK-NEXT: stw 29, 36(1) # 4-byte Folded Spill
263+
; CHECK-NEXT: stw 30, 40(1) # 4-byte Folded Spill
264+
; CHECK-NEXT: .LBB2_1: # %for.body
265+
; CHECK-NEXT: #
266+
; CHECK-NEXT: lwz 10, 12(5)
267+
; CHECK-NEXT: addi 6, 6, -1
268+
; CHECK-NEXT: lwz 12, 0(4)
269+
; CHECK-NEXT: lwz 11, 4(4)
270+
; CHECK-NEXT: subfic 0, 10, 96
271+
; CHECK-NEXT: lwz 8, 8(4)
272+
; CHECK-NEXT: addi 30, 10, -64
273+
; CHECK-NEXT: lwz 9, 12(4)
274+
; CHECK-NEXT: cmplwi 10, 64
275+
; CHECK-NEXT: srw 25, 12, 10
276+
; CHECK-NEXT: addi 29, 10, -96
277+
; CHECK-NEXT: subfic 27, 10, 32
278+
; CHECK-NEXT: slw 0, 12, 0
279+
; CHECK-NEXT: srw 24, 11, 30
280+
; CHECK-NEXT: bc 12, 0, .LBB2_3
281+
; CHECK-NEXT: # %bb.2: # %for.body
282+
; CHECK-NEXT: #
283+
; CHECK-NEXT: ori 25, 7, 0
284+
; CHECK-NEXT: b .LBB2_3
285+
; CHECK-NEXT: .LBB2_3: # %for.body
286+
; CHECK-NEXT: #
287+
; CHECK-NEXT: srw 28, 9, 10
288+
; CHECK-NEXT: or 0, 24, 0
289+
; CHECK-NEXT: slw 24, 8, 27
290+
; CHECK-NEXT: stw 25, 0(3)
291+
; CHECK-NEXT: subfic 25, 10, 64
292+
; CHECK-NEXT: srw 29, 12, 29
293+
; CHECK-NEXT: srw 26, 11, 10
294+
; CHECK-NEXT: or 28, 28, 24
295+
; CHECK-NEXT: slw 24, 12, 27
296+
; CHECK-NEXT: or 29, 0, 29
297+
; CHECK-NEXT: subfic 0, 25, 32
298+
; CHECK-NEXT: or 26, 26, 24
299+
; CHECK-NEXT: addi 24, 10, -32
300+
; CHECK-NEXT: slw 27, 11, 27
301+
; CHECK-NEXT: srw 0, 11, 0
302+
; CHECK-NEXT: slw 11, 11, 25
303+
; CHECK-NEXT: slw 25, 12, 25
304+
; CHECK-NEXT: srw 30, 12, 30
305+
; CHECK-NEXT: srw 12, 12, 24
306+
; CHECK-NEXT: srw 24, 8, 24
307+
; CHECK-NEXT: or 0, 25, 0
308+
; CHECK-NEXT: or 28, 28, 24
309+
; CHECK-NEXT: cmplwi 1, 10, 0
310+
; CHECK-NEXT: srw 10, 8, 10
311+
; CHECK-NEXT: or 0, 0, 27
312+
; CHECK-NEXT: or 11, 28, 11
313+
; CHECK-NEXT: or 10, 10, 0
314+
; CHECK-NEXT: or 12, 26, 12
315+
; CHECK-NEXT: bc 12, 0, .LBB2_5
316+
; CHECK-NEXT: # %bb.4: # %for.body
317+
; CHECK-NEXT: #
318+
; CHECK-NEXT: ori 11, 29, 0
319+
; CHECK-NEXT: ori 10, 30, 0
320+
; CHECK-NEXT: ori 12, 7, 0
321+
; CHECK-NEXT: b .LBB2_5
322+
; CHECK-NEXT: .LBB2_5: # %for.body
323+
; CHECK-NEXT: #
324+
; CHECK-NEXT: cmplwi 6, 0
325+
; CHECK-NEXT: bc 12, 6, .LBB2_7
326+
; CHECK-NEXT: # %bb.6: # %for.body
327+
; CHECK-NEXT: #
328+
; CHECK-NEXT: ori 9, 11, 0
329+
; CHECK-NEXT: ori 8, 10, 0
330+
; CHECK-NEXT: b .LBB2_7
331+
; CHECK-NEXT: .LBB2_7: # %for.body
332+
; CHECK-NEXT: #
333+
; CHECK-NEXT: stw 12, 4(3)
334+
; CHECK-NEXT: stw 9, 12(3)
335+
; CHECK-NEXT: stw 8, 8(3)
336+
; CHECK-NEXT: bne 0, .LBB2_1
337+
; CHECK-NEXT: # %bb.8: # %for.end
338+
; CHECK-NEXT: lwz 30, 40(1) # 4-byte Folded Reload
339+
; CHECK-NEXT: lwz 29, 36(1) # 4-byte Folded Reload
340+
; CHECK-NEXT: lwz 28, 32(1) # 4-byte Folded Reload
341+
; CHECK-NEXT: lwz 27, 28(1) # 4-byte Folded Reload
342+
; CHECK-NEXT: lwz 26, 24(1) # 4-byte Folded Reload
343+
; CHECK-NEXT: lwz 25, 20(1) # 4-byte Folded Reload
344+
; CHECK-NEXT: lwz 24, 16(1) # 4-byte Folded Reload
345+
; CHECK-NEXT: addi 1, 1, 48
346+
; CHECK-NEXT: blr
51347
entry:
52348
br label %for.body
53349

@@ -63,9 +359,6 @@ for.body: ; preds = %for.body, %entry
63359

64360
for.end: ; preds = %for.body
65361
ret void
66-
67-
; CHECK-LABEL: @foo3
68-
; CHECK-NOT: mtctr
69362
}
70363

71364
attributes #0 = { nounwind }

0 commit comments

Comments
 (0)