Skip to content

Commit 6528a77

Browse files
committed
Pre-commit test cases
1 parent 888501b commit 6528a77

File tree

1 file changed

+317
-0
lines changed

1 file changed

+317
-0
lines changed
Lines changed: 317 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,317 @@
1+
# XFAIL: *
2+
# RUN: llc -o - %s -mtriple=loongarch64 \
3+
# RUN: -run-pass=register-coalescer -join-liveintervals=1 -join-splitedges=0 2>&1 | FileCheck %s
4+
5+
--- |
6+
source_filename = "register-coalescer-crash-pr79718.ll"
7+
target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128"
8+
target triple = "loongarch64"
9+
10+
define void @foo(ptr nocapture writeonly %0, i1 %1, i1 %2, i1 %3, i1 %4) local_unnamed_addr #0 {
11+
start:
12+
br label %bb1
13+
bb1: ; preds = %bb6, %start
14+
%5 = phi i64 [ 0, %start ], [ %20, %bb6 ]
15+
%6 = phi i64 [ 0, %start ], [ %21, %bb6 ]
16+
%7 = phi i64 [ undef, %start ], [ %23, %bb6 ]
17+
br label %bb2
18+
19+
bb2: ; preds = %bb6, %bb1
20+
%8 = phi i64 [ %5, %bb1 ], [ %20, %bb6 ]
21+
%9 = phi i64 [ %6, %bb1 ], [ %21, %bb6 ]
22+
%10 = phi i64 [ %6, %bb1 ], [ %22, %bb6 ]
23+
%11 = phi i64 [ %7, %bb1 ], [ %23, %bb6 ]
24+
br i1 %1, label %loopexit, label %preheader.preheader
25+
26+
preheader.preheader: ; preds = %bb2
27+
br label %preheader
28+
29+
preheader: ; preds = %bb4, %preheader.preheader
30+
%12 = phi i64 [ %14, %bb4 ], [ %10, %preheader.preheader ]
31+
%13 = load volatile { i64, i64 }, ptr null, align 4294967296
32+
br i1 %2, label %bb3, label %bb5
33+
34+
bb3: ; preds = %preheader
35+
br i1 %3, label %bb4, label %bb3.bb5_crit_edge
36+
37+
bb4: ; preds = %bb3
38+
%14 = add i64 %12, 1
39+
br i1 %4, label %loopexit, label %preheader
40+
41+
loopexit: ; preds = %bb4, %bb2
42+
%15 = phi i64 [ %9, %bb2 ], [ %14, %bb4 ]
43+
%16 = phi i64 [ %10, %bb2 ], [ %14, %bb4 ]
44+
store i8 0, ptr %0, align 1
45+
br label %bb6
46+
47+
bb3.bb5_crit_edge: ; preds = %bb3
48+
%17 = add i64 %12, 1
49+
br label %bb5
50+
51+
bb5: ; preds = %preheader, %bb3.bb5_crit_edge
52+
%18 = phi i64 [ 1, %bb3.bb5_crit_edge ], [ 0, %preheader ]
53+
%19 = phi i64 [ %17, %bb3.bb5_crit_edge ], [ %11, %preheader ]
54+
store i64 0, ptr %0, align 8
55+
br label %bb6
56+
57+
bb6: ; preds = %bb5, %loopexit
58+
%20 = phi i64 [ %19, %bb5 ], [ %8, %loopexit ]
59+
%21 = phi i64 [ %18, %bb5 ], [ %15, %loopexit ]
60+
%22 = phi i64 [ %18, %bb5 ], [ %16, %loopexit ]
61+
%23 = phi i64 [ %19, %bb5 ], [ %11, %loopexit ]
62+
%24 = icmp eq i64 %5, 1
63+
br i1 %24, label %bb2, label %bb1
64+
}
65+
66+
attributes #0 = { nofree norecurse noreturn nounwind }
67+
68+
...
69+
---
70+
name: foo
71+
alignment: 32
72+
exposesReturnsTwice: false
73+
legalized: false
74+
regBankSelected: false
75+
selected: false
76+
failedISel: false
77+
tracksRegLiveness: true
78+
hasWinCFI: false
79+
callsEHReturn: false
80+
callsUnwindInit: false
81+
hasEHCatchret: false
82+
hasEHScopes: false
83+
hasEHFunclets: false
84+
isOutlined: false
85+
debugInstrRef: false
86+
failsVerification: false
87+
tracksDebugUserValues: false
88+
registers:
89+
- { id: 0, class: gpr, preferred-register: '' }
90+
- { id: 1, class: gpr, preferred-register: '' }
91+
- { id: 2, class: gpr, preferred-register: '' }
92+
- { id: 3, class: gpr, preferred-register: '' }
93+
- { id: 4, class: gpr, preferred-register: '' }
94+
- { id: 5, class: gpr, preferred-register: '' }
95+
- { id: 6, class: gpr, preferred-register: '' }
96+
- { id: 7, class: gpr, preferred-register: '' }
97+
- { id: 8, class: gpr, preferred-register: '' }
98+
- { id: 9, class: gpr, preferred-register: '' }
99+
- { id: 10, class: gpr, preferred-register: '' }
100+
- { id: 11, class: gpr, preferred-register: '' }
101+
- { id: 12, class: gpr, preferred-register: '' }
102+
- { id: 13, class: gpr, preferred-register: '' }
103+
- { id: 14, class: gpr, preferred-register: '' }
104+
- { id: 15, class: gpr, preferred-register: '' }
105+
- { id: 16, class: gpr, preferred-register: '' }
106+
- { id: 17, class: gpr, preferred-register: '' }
107+
- { id: 18, class: gpr, preferred-register: '' }
108+
- { id: 19, class: gpr, preferred-register: '' }
109+
- { id: 20, class: gpr, preferred-register: '' }
110+
- { id: 21, class: gpr, preferred-register: '' }
111+
- { id: 22, class: gpr, preferred-register: '' }
112+
- { id: 23, class: gpr, preferred-register: '' }
113+
- { id: 24, class: gpr, preferred-register: '' }
114+
- { id: 25, class: gpr, preferred-register: '' }
115+
- { id: 26, class: gpr, preferred-register: '' }
116+
- { id: 27, class: gpr, preferred-register: '' }
117+
- { id: 28, class: gpr, preferred-register: '' }
118+
- { id: 29, class: gpr, preferred-register: '' }
119+
- { id: 30, class: gpr, preferred-register: '' }
120+
- { id: 31, class: gpr, preferred-register: '' }
121+
- { id: 32, class: gpr, preferred-register: '' }
122+
- { id: 33, class: gpr, preferred-register: '' }
123+
- { id: 34, class: gpr, preferred-register: '' }
124+
- { id: 35, class: gpr, preferred-register: '' }
125+
- { id: 36, class: gpr, preferred-register: '' }
126+
- { id: 37, class: gpr, preferred-register: '' }
127+
- { id: 38, class: gpr, preferred-register: '' }
128+
- { id: 39, class: gpr, preferred-register: '' }
129+
- { id: 40, class: gpr, preferred-register: '' }
130+
- { id: 41, class: gpr, preferred-register: '' }
131+
- { id: 42, class: gpr, preferred-register: '' }
132+
- { id: 43, class: gpr, preferred-register: '' }
133+
- { id: 44, class: gpr, preferred-register: '' }
134+
- { id: 45, class: gpr, preferred-register: '' }
135+
- { id: 46, class: gpr, preferred-register: '' }
136+
- { id: 47, class: gpr, preferred-register: '' }
137+
- { id: 48, class: gpr, preferred-register: '' }
138+
- { id: 49, class: gpr, preferred-register: '' }
139+
- { id: 50, class: gpr, preferred-register: '' }
140+
- { id: 51, class: gpr, preferred-register: '' }
141+
- { id: 52, class: gpr, preferred-register: '' }
142+
- { id: 53, class: gpr, preferred-register: '' }
143+
- { id: 54, class: gpr, preferred-register: '' }
144+
- { id: 55, class: gpr, preferred-register: '' }
145+
- { id: 56, class: gpr, preferred-register: '' }
146+
- { id: 57, class: gpr, preferred-register: '' }
147+
- { id: 58, class: gpr, preferred-register: '' }
148+
liveins:
149+
- { reg: '$r4', virtual-reg: '%18' }
150+
- { reg: '$r5', virtual-reg: '%19' }
151+
- { reg: '$r6', virtual-reg: '%20' }
152+
- { reg: '$r7', virtual-reg: '%21' }
153+
- { reg: '$r8', virtual-reg: '%22' }
154+
frameInfo:
155+
isFrameAddressTaken: false
156+
isReturnAddressTaken: false
157+
hasStackMap: false
158+
hasPatchPoint: false
159+
stackSize: 0
160+
offsetAdjustment: 0
161+
maxAlignment: 1
162+
adjustsStack: false
163+
hasCalls: false
164+
stackProtector: ''
165+
functionContext: ''
166+
maxCallFrameSize: 4294967295
167+
cvBytesOfCalleeSavedRegisters: 0
168+
hasOpaqueSPAdjustment: false
169+
hasVAStart: false
170+
hasMustTailInVarArgFunc: false
171+
hasTailCall: false
172+
localFrameSize: 0
173+
savePoint: ''
174+
restorePoint: ''
175+
fixedStack: []
176+
stack: []
177+
entry_values: []
178+
callSites: []
179+
debugValueSubstitutions: []
180+
constants: []
181+
machineFunctionInfo: {}
182+
body: |
183+
bb.0.start:
184+
successors: %bb.1(0x80000000)
185+
liveins: $r4, $r5, $r6, $r7, $r8
186+
187+
%22:gpr = COPY killed $r8
188+
%21:gpr = COPY killed $r7
189+
%20:gpr = COPY killed $r6
190+
%19:gpr = COPY killed $r5
191+
%18:gpr = COPY killed $r4
192+
%29:gpr = COPY $r0
193+
%27:gpr = COPY killed %29
194+
%30:gpr = ANDI killed %19, 1
195+
%41:gpr = ORI $r0, 1
196+
%35:gpr = ANDI killed %20, 1
197+
%36:gpr = ANDI killed %21, 1
198+
%39:gpr = ANDI killed %22, 1
199+
%43:gpr = COPY %27
200+
%44:gpr = COPY killed %27
201+
%45:gpr = IMPLICIT_DEF
202+
203+
bb.1.bb1:
204+
successors: %bb.2(0x80000000)
205+
206+
%2:gpr = COPY killed %45
207+
%1:gpr = COPY killed %44
208+
%0:gpr = COPY killed %43
209+
%46:gpr = COPY %0
210+
%47:gpr = COPY %1
211+
%48:gpr = COPY killed %1
212+
%49:gpr = COPY killed %2
213+
214+
bb.2.bb2:
215+
successors: %bb.12(0x40000000), %bb.3(0x40000000)
216+
217+
%6:gpr = COPY killed %49
218+
%5:gpr = COPY killed %48
219+
%4:gpr = COPY killed %47
220+
%3:gpr = COPY killed %46
221+
BEQZ %30, %bb.3
222+
223+
bb.12:
224+
successors: %bb.8(0x80000000)
225+
226+
%51:gpr = COPY killed %4
227+
%52:gpr = COPY killed %5
228+
PseudoBR %bb.8
229+
230+
bb.3.preheader.preheader:
231+
successors: %bb.4(0x80000000)
232+
233+
%50:gpr = COPY killed %5
234+
235+
bb.4.preheader:
236+
successors: %bb.6(0x7c000000), %bb.5(0x04000000)
237+
238+
%7:gpr = COPY killed %50
239+
dead %33:gpr = LD_D $r0, 8 :: (volatile load (s64) from `ptr null` + 8, basealign 4294967296)
240+
dead %34:gpr = LD_D $r0, 0 :: (volatile load (s64) from `ptr null`, align 4294967296)
241+
BNEZ %35, %bb.6
242+
243+
bb.5:
244+
successors: %bb.10(0x80000000)
245+
246+
%32:gpr = COPY $r0
247+
%31:gpr = COPY killed %32
248+
%53:gpr = COPY killed %31
249+
%54:gpr = COPY killed %6
250+
PseudoBR %bb.10
251+
252+
bb.6.bb3:
253+
successors: %bb.7(0x7c000000), %bb.9(0x04000000)
254+
255+
BEQZ %36, %bb.9
256+
PseudoBR %bb.7
257+
258+
bb.7.bb4:
259+
successors: %bb.8(0x04000000), %bb.4(0x7c000000)
260+
261+
%8:gpr = ADDI_D killed %7, 1
262+
%50:gpr = COPY %8
263+
%51:gpr = COPY %8
264+
%52:gpr = COPY killed %8
265+
BEQZ %39, %bb.4
266+
PseudoBR %bb.8
267+
268+
bb.8.loopexit:
269+
successors: %bb.11(0x80000000)
270+
271+
%10:gpr = COPY killed %52
272+
%9:gpr = COPY killed %51
273+
%40:gpr = COPY $r0
274+
ST_B killed %40, %18, 0 :: (store (s8) into %ir.0)
275+
%55:gpr = COPY killed %3
276+
%56:gpr = COPY killed %9
277+
%57:gpr = COPY killed %10
278+
%58:gpr = COPY killed %6
279+
PseudoBR %bb.11
280+
281+
bb.9.bb3.bb5_crit_edge:
282+
successors: %bb.10(0x80000000)
283+
284+
%42:gpr = ADDI_D killed %7, 1
285+
%53:gpr = COPY %41
286+
%54:gpr = COPY killed %42
287+
288+
bb.10.bb5:
289+
successors: %bb.11(0x80000000)
290+
291+
%13:gpr = COPY killed %54
292+
%12:gpr = COPY killed %53
293+
%38:gpr = COPY $r0
294+
ST_D killed %38, %18, 0 :: (store (s64) into %ir.0)
295+
%55:gpr = COPY %13
296+
%56:gpr = COPY %12
297+
%57:gpr = COPY killed %12
298+
%58:gpr = COPY killed %13
299+
300+
bb.11.bb6:
301+
successors: %bb.2(0x7c000000), %bb.1(0x04000000)
302+
303+
%17:gpr = COPY killed %58
304+
%16:gpr = COPY killed %57
305+
%15:gpr = COPY killed %56
306+
%14:gpr = COPY killed %55
307+
%43:gpr = COPY %14
308+
%44:gpr = COPY %15
309+
%45:gpr = COPY %17
310+
%46:gpr = COPY killed %14
311+
%47:gpr = COPY killed %15
312+
%48:gpr = COPY killed %16
313+
%49:gpr = COPY killed %17
314+
BEQ %0, %41, %bb.2
315+
PseudoBR %bb.1
316+
317+
...

0 commit comments

Comments
 (0)