Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / RISCV / branch-relaxation.ll
blob3d48dc9637eaedf11ccbe070b4f86bc662450323
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mtriple=riscv32 -verify-machineinstrs -filetype=obj < %s \
3 ; RUN:   -o /dev/null 2>&1
4 ; RUN: llc -mtriple=riscv32 -relocation-model=pic -verify-machineinstrs \
5 ; RUN:   -filetype=obj < %s -o /dev/null 2>&1
6 ; RUN: llc -mtriple=riscv32 -verify-machineinstrs < %s \
7 ; RUN:   | FileCheck %s --check-prefixes=CHECK,CHECK-RV32
8 ; RUN: llc -mtriple=riscv32 -relocation-model=pic -verify-machineinstrs < %s \
9 ; RUN:   | FileCheck %s --check-prefixes=CHECK,CHECK-RV32
10 ; RUN: llc -mtriple=riscv64 -verify-machineinstrs -filetype=obj < %s \
11 ; RUN:   -o /dev/null 2>&1
12 ; RUN: llc -mtriple=riscv64 -relocation-model=pic -verify-machineinstrs \
13 ; RUN:   -filetype=obj < %s -o /dev/null 2>&1
14 ; RUN: llc -mtriple=riscv64 -verify-machineinstrs < %s \
15 ; RUN:   | FileCheck %s --check-prefixes=CHECK,CHECK-RV64
16 ; RUN: llc -mtriple=riscv64 -relocation-model=pic -verify-machineinstrs < %s \
17 ; RUN:   | FileCheck %s --check-prefixes=CHECK,CHECK-RV64
19 define void @relax_bcc(i1 %a) nounwind {
20 ; CHECK-LABEL: relax_bcc:
21 ; CHECK:       # %bb.0:
22 ; CHECK-NEXT:    andi a0, a0, 1
23 ; CHECK-NEXT:    bnez a0, .LBB0_1
24 ; CHECK-NEXT:    j .LBB0_2
25 ; CHECK-NEXT:  .LBB0_1: # %iftrue
26 ; CHECK-NEXT:    #APP
27 ; CHECK-NEXT:    .zero 4096
28 ; CHECK-NEXT:    #NO_APP
29 ; CHECK-NEXT:  .LBB0_2: # %tail
30 ; CHECK-NEXT:    ret
31   br i1 %a, label %iftrue, label %tail
33 iftrue:
34   call void asm sideeffect ".space 4096", ""()
35   br label %tail
37 tail:
38   ret void
41 define i32 @relax_jal(i1 %a) nounwind {
42 ; CHECK-LABEL: relax_jal:
43 ; CHECK:       # %bb.0:
44 ; CHECK-NEXT:    addi sp, sp, -16
45 ; CHECK-NEXT:    andi a0, a0, 1
46 ; CHECK-NEXT:    bnez a0, .LBB1_1
47 ; CHECK-NEXT:  # %bb.4:
48 ; CHECK-NEXT:    jump .LBB1_2, a0
49 ; CHECK-NEXT:  .LBB1_1: # %iftrue
50 ; CHECK-NEXT:    #APP
51 ; CHECK-NEXT:    #NO_APP
52 ; CHECK-NEXT:    #APP
53 ; CHECK-NEXT:    .zero 1048576
54 ; CHECK-NEXT:    #NO_APP
55 ; CHECK-NEXT:    j .LBB1_3
56 ; CHECK-NEXT:  .LBB1_2: # %jmp
57 ; CHECK-NEXT:    #APP
58 ; CHECK-NEXT:    #NO_APP
59 ; CHECK-NEXT:  .LBB1_3: # %tail
60 ; CHECK-NEXT:    li a0, 1
61 ; CHECK-NEXT:    addi sp, sp, 16
62 ; CHECK-NEXT:    ret
63   br i1 %a, label %iftrue, label %jmp
65 jmp:
66   call void asm sideeffect "", ""()
67   br label %tail
69 iftrue:
70   call void asm sideeffect "", ""()
71   br label %space
73 space:
74   call void asm sideeffect ".space 1048576", ""()
75   br label %tail
77 tail:
78   ret i32 1
81 ; For functions whose names contain 32, only the CHECK-RV32 lines are
82 ; meaningful, and for functions whose names contain 64, only the CHECK-RV64
83 ; lines are meaningful.
85 define void @relax_jal_spill_32() {
86 ; CHECK-RV32-LABEL: relax_jal_spill_32:
87 ; CHECK-RV32:       # %bb.0:
88 ; CHECK-RV32-NEXT:    addi sp, sp, -64
89 ; CHECK-RV32-NEXT:    .cfi_def_cfa_offset 64
90 ; CHECK-RV32-NEXT:    sw ra, 60(sp) # 4-byte Folded Spill
91 ; CHECK-RV32-NEXT:    sw s0, 56(sp) # 4-byte Folded Spill
92 ; CHECK-RV32-NEXT:    sw s1, 52(sp) # 4-byte Folded Spill
93 ; CHECK-RV32-NEXT:    sw s2, 48(sp) # 4-byte Folded Spill
94 ; CHECK-RV32-NEXT:    sw s3, 44(sp) # 4-byte Folded Spill
95 ; CHECK-RV32-NEXT:    sw s4, 40(sp) # 4-byte Folded Spill
96 ; CHECK-RV32-NEXT:    sw s5, 36(sp) # 4-byte Folded Spill
97 ; CHECK-RV32-NEXT:    sw s6, 32(sp) # 4-byte Folded Spill
98 ; CHECK-RV32-NEXT:    sw s7, 28(sp) # 4-byte Folded Spill
99 ; CHECK-RV32-NEXT:    sw s8, 24(sp) # 4-byte Folded Spill
100 ; CHECK-RV32-NEXT:    sw s9, 20(sp) # 4-byte Folded Spill
101 ; CHECK-RV32-NEXT:    sw s10, 16(sp) # 4-byte Folded Spill
102 ; CHECK-RV32-NEXT:    sw s11, 12(sp) # 4-byte Folded Spill
103 ; CHECK-RV32-NEXT:    .cfi_offset ra, -4
104 ; CHECK-RV32-NEXT:    .cfi_offset s0, -8
105 ; CHECK-RV32-NEXT:    .cfi_offset s1, -12
106 ; CHECK-RV32-NEXT:    .cfi_offset s2, -16
107 ; CHECK-RV32-NEXT:    .cfi_offset s3, -20
108 ; CHECK-RV32-NEXT:    .cfi_offset s4, -24
109 ; CHECK-RV32-NEXT:    .cfi_offset s5, -28
110 ; CHECK-RV32-NEXT:    .cfi_offset s6, -32
111 ; CHECK-RV32-NEXT:    .cfi_offset s7, -36
112 ; CHECK-RV32-NEXT:    .cfi_offset s8, -40
113 ; CHECK-RV32-NEXT:    .cfi_offset s9, -44
114 ; CHECK-RV32-NEXT:    .cfi_offset s10, -48
115 ; CHECK-RV32-NEXT:    .cfi_offset s11, -52
116 ; CHECK-RV32-NEXT:    #APP
117 ; CHECK-RV32-NEXT:    li ra, 1
118 ; CHECK-RV32-NEXT:    #NO_APP
119 ; CHECK-RV32-NEXT:    #APP
120 ; CHECK-RV32-NEXT:    li t0, 5
121 ; CHECK-RV32-NEXT:    #NO_APP
122 ; CHECK-RV32-NEXT:    #APP
123 ; CHECK-RV32-NEXT:    li t1, 6
124 ; CHECK-RV32-NEXT:    #NO_APP
125 ; CHECK-RV32-NEXT:    #APP
126 ; CHECK-RV32-NEXT:    li t2, 7
127 ; CHECK-RV32-NEXT:    #NO_APP
128 ; CHECK-RV32-NEXT:    #APP
129 ; CHECK-RV32-NEXT:    li s0, 8
130 ; CHECK-RV32-NEXT:    #NO_APP
131 ; CHECK-RV32-NEXT:    #APP
132 ; CHECK-RV32-NEXT:    li s1, 9
133 ; CHECK-RV32-NEXT:    #NO_APP
134 ; CHECK-RV32-NEXT:    #APP
135 ; CHECK-RV32-NEXT:    li a0, 10
136 ; CHECK-RV32-NEXT:    #NO_APP
137 ; CHECK-RV32-NEXT:    #APP
138 ; CHECK-RV32-NEXT:    li a1, 11
139 ; CHECK-RV32-NEXT:    #NO_APP
140 ; CHECK-RV32-NEXT:    #APP
141 ; CHECK-RV32-NEXT:    li a2, 12
142 ; CHECK-RV32-NEXT:    #NO_APP
143 ; CHECK-RV32-NEXT:    #APP
144 ; CHECK-RV32-NEXT:    li a3, 13
145 ; CHECK-RV32-NEXT:    #NO_APP
146 ; CHECK-RV32-NEXT:    #APP
147 ; CHECK-RV32-NEXT:    li a4, 14
148 ; CHECK-RV32-NEXT:    #NO_APP
149 ; CHECK-RV32-NEXT:    #APP
150 ; CHECK-RV32-NEXT:    li a5, 15
151 ; CHECK-RV32-NEXT:    #NO_APP
152 ; CHECK-RV32-NEXT:    #APP
153 ; CHECK-RV32-NEXT:    li a6, 16
154 ; CHECK-RV32-NEXT:    #NO_APP
155 ; CHECK-RV32-NEXT:    #APP
156 ; CHECK-RV32-NEXT:    li a7, 17
157 ; CHECK-RV32-NEXT:    #NO_APP
158 ; CHECK-RV32-NEXT:    #APP
159 ; CHECK-RV32-NEXT:    li s2, 18
160 ; CHECK-RV32-NEXT:    #NO_APP
161 ; CHECK-RV32-NEXT:    #APP
162 ; CHECK-RV32-NEXT:    li s3, 19
163 ; CHECK-RV32-NEXT:    #NO_APP
164 ; CHECK-RV32-NEXT:    #APP
165 ; CHECK-RV32-NEXT:    li s4, 20
166 ; CHECK-RV32-NEXT:    #NO_APP
167 ; CHECK-RV32-NEXT:    #APP
168 ; CHECK-RV32-NEXT:    li s5, 21
169 ; CHECK-RV32-NEXT:    #NO_APP
170 ; CHECK-RV32-NEXT:    #APP
171 ; CHECK-RV32-NEXT:    li s6, 22
172 ; CHECK-RV32-NEXT:    #NO_APP
173 ; CHECK-RV32-NEXT:    #APP
174 ; CHECK-RV32-NEXT:    li s7, 23
175 ; CHECK-RV32-NEXT:    #NO_APP
176 ; CHECK-RV32-NEXT:    #APP
177 ; CHECK-RV32-NEXT:    li s8, 24
178 ; CHECK-RV32-NEXT:    #NO_APP
179 ; CHECK-RV32-NEXT:    #APP
180 ; CHECK-RV32-NEXT:    li s9, 25
181 ; CHECK-RV32-NEXT:    #NO_APP
182 ; CHECK-RV32-NEXT:    #APP
183 ; CHECK-RV32-NEXT:    li s10, 26
184 ; CHECK-RV32-NEXT:    #NO_APP
185 ; CHECK-RV32-NEXT:    #APP
186 ; CHECK-RV32-NEXT:    li s11, 27
187 ; CHECK-RV32-NEXT:    #NO_APP
188 ; CHECK-RV32-NEXT:    #APP
189 ; CHECK-RV32-NEXT:    li t3, 28
190 ; CHECK-RV32-NEXT:    #NO_APP
191 ; CHECK-RV32-NEXT:    #APP
192 ; CHECK-RV32-NEXT:    li t4, 29
193 ; CHECK-RV32-NEXT:    #NO_APP
194 ; CHECK-RV32-NEXT:    #APP
195 ; CHECK-RV32-NEXT:    li t5, 30
196 ; CHECK-RV32-NEXT:    #NO_APP
197 ; CHECK-RV32-NEXT:    #APP
198 ; CHECK-RV32-NEXT:    li t6, 31
199 ; CHECK-RV32-NEXT:    #NO_APP
200 ; CHECK-RV32-NEXT:    beq t5, t6, .LBB2_1
201 ; CHECK-RV32-NEXT:  # %bb.3:
202 ; CHECK-RV32-NEXT:    sw s11, 0(sp)
203 ; CHECK-RV32-NEXT:    jump .LBB2_4, s11
204 ; CHECK-RV32-NEXT:  .LBB2_1: # %branch_1
205 ; CHECK-RV32-NEXT:    #APP
206 ; CHECK-RV32-NEXT:    .zero 1048576
207 ; CHECK-RV32-NEXT:    #NO_APP
208 ; CHECK-RV32-NEXT:    j .LBB2_2
209 ; CHECK-RV32-NEXT:  .LBB2_4: # %branch_2
210 ; CHECK-RV32-NEXT:    lw s11, 0(sp)
211 ; CHECK-RV32-NEXT:  .LBB2_2: # %branch_2
212 ; CHECK-RV32-NEXT:    #APP
213 ; CHECK-RV32-NEXT:    # reg use ra
214 ; CHECK-RV32-NEXT:    #NO_APP
215 ; CHECK-RV32-NEXT:    #APP
216 ; CHECK-RV32-NEXT:    # reg use t0
217 ; CHECK-RV32-NEXT:    #NO_APP
218 ; CHECK-RV32-NEXT:    #APP
219 ; CHECK-RV32-NEXT:    # reg use t1
220 ; CHECK-RV32-NEXT:    #NO_APP
221 ; CHECK-RV32-NEXT:    #APP
222 ; CHECK-RV32-NEXT:    # reg use t2
223 ; CHECK-RV32-NEXT:    #NO_APP
224 ; CHECK-RV32-NEXT:    #APP
225 ; CHECK-RV32-NEXT:    # reg use s0
226 ; CHECK-RV32-NEXT:    #NO_APP
227 ; CHECK-RV32-NEXT:    #APP
228 ; CHECK-RV32-NEXT:    # reg use s1
229 ; CHECK-RV32-NEXT:    #NO_APP
230 ; CHECK-RV32-NEXT:    #APP
231 ; CHECK-RV32-NEXT:    # reg use a0
232 ; CHECK-RV32-NEXT:    #NO_APP
233 ; CHECK-RV32-NEXT:    #APP
234 ; CHECK-RV32-NEXT:    # reg use a1
235 ; CHECK-RV32-NEXT:    #NO_APP
236 ; CHECK-RV32-NEXT:    #APP
237 ; CHECK-RV32-NEXT:    # reg use a2
238 ; CHECK-RV32-NEXT:    #NO_APP
239 ; CHECK-RV32-NEXT:    #APP
240 ; CHECK-RV32-NEXT:    # reg use a3
241 ; CHECK-RV32-NEXT:    #NO_APP
242 ; CHECK-RV32-NEXT:    #APP
243 ; CHECK-RV32-NEXT:    # reg use a4
244 ; CHECK-RV32-NEXT:    #NO_APP
245 ; CHECK-RV32-NEXT:    #APP
246 ; CHECK-RV32-NEXT:    # reg use a5
247 ; CHECK-RV32-NEXT:    #NO_APP
248 ; CHECK-RV32-NEXT:    #APP
249 ; CHECK-RV32-NEXT:    # reg use a6
250 ; CHECK-RV32-NEXT:    #NO_APP
251 ; CHECK-RV32-NEXT:    #APP
252 ; CHECK-RV32-NEXT:    # reg use a7
253 ; CHECK-RV32-NEXT:    #NO_APP
254 ; CHECK-RV32-NEXT:    #APP
255 ; CHECK-RV32-NEXT:    # reg use s2
256 ; CHECK-RV32-NEXT:    #NO_APP
257 ; CHECK-RV32-NEXT:    #APP
258 ; CHECK-RV32-NEXT:    # reg use s3
259 ; CHECK-RV32-NEXT:    #NO_APP
260 ; CHECK-RV32-NEXT:    #APP
261 ; CHECK-RV32-NEXT:    # reg use s4
262 ; CHECK-RV32-NEXT:    #NO_APP
263 ; CHECK-RV32-NEXT:    #APP
264 ; CHECK-RV32-NEXT:    # reg use s5
265 ; CHECK-RV32-NEXT:    #NO_APP
266 ; CHECK-RV32-NEXT:    #APP
267 ; CHECK-RV32-NEXT:    # reg use s6
268 ; CHECK-RV32-NEXT:    #NO_APP
269 ; CHECK-RV32-NEXT:    #APP
270 ; CHECK-RV32-NEXT:    # reg use s7
271 ; CHECK-RV32-NEXT:    #NO_APP
272 ; CHECK-RV32-NEXT:    #APP
273 ; CHECK-RV32-NEXT:    # reg use s8
274 ; CHECK-RV32-NEXT:    #NO_APP
275 ; CHECK-RV32-NEXT:    #APP
276 ; CHECK-RV32-NEXT:    # reg use s9
277 ; CHECK-RV32-NEXT:    #NO_APP
278 ; CHECK-RV32-NEXT:    #APP
279 ; CHECK-RV32-NEXT:    # reg use s10
280 ; CHECK-RV32-NEXT:    #NO_APP
281 ; CHECK-RV32-NEXT:    #APP
282 ; CHECK-RV32-NEXT:    # reg use s11
283 ; CHECK-RV32-NEXT:    #NO_APP
284 ; CHECK-RV32-NEXT:    #APP
285 ; CHECK-RV32-NEXT:    # reg use t3
286 ; CHECK-RV32-NEXT:    #NO_APP
287 ; CHECK-RV32-NEXT:    #APP
288 ; CHECK-RV32-NEXT:    # reg use t4
289 ; CHECK-RV32-NEXT:    #NO_APP
290 ; CHECK-RV32-NEXT:    #APP
291 ; CHECK-RV32-NEXT:    # reg use t5
292 ; CHECK-RV32-NEXT:    #NO_APP
293 ; CHECK-RV32-NEXT:    #APP
294 ; CHECK-RV32-NEXT:    # reg use t6
295 ; CHECK-RV32-NEXT:    #NO_APP
296 ; CHECK-RV32-NEXT:    lw ra, 60(sp) # 4-byte Folded Reload
297 ; CHECK-RV32-NEXT:    lw s0, 56(sp) # 4-byte Folded Reload
298 ; CHECK-RV32-NEXT:    lw s1, 52(sp) # 4-byte Folded Reload
299 ; CHECK-RV32-NEXT:    lw s2, 48(sp) # 4-byte Folded Reload
300 ; CHECK-RV32-NEXT:    lw s3, 44(sp) # 4-byte Folded Reload
301 ; CHECK-RV32-NEXT:    lw s4, 40(sp) # 4-byte Folded Reload
302 ; CHECK-RV32-NEXT:    lw s5, 36(sp) # 4-byte Folded Reload
303 ; CHECK-RV32-NEXT:    lw s6, 32(sp) # 4-byte Folded Reload
304 ; CHECK-RV32-NEXT:    lw s7, 28(sp) # 4-byte Folded Reload
305 ; CHECK-RV32-NEXT:    lw s8, 24(sp) # 4-byte Folded Reload
306 ; CHECK-RV32-NEXT:    lw s9, 20(sp) # 4-byte Folded Reload
307 ; CHECK-RV32-NEXT:    lw s10, 16(sp) # 4-byte Folded Reload
308 ; CHECK-RV32-NEXT:    lw s11, 12(sp) # 4-byte Folded Reload
309 ; CHECK-RV32-NEXT:    addi sp, sp, 64
310 ; CHECK-RV32-NEXT:    ret
312 ; CHECK-RV64-LABEL: relax_jal_spill_32:
313 ; CHECK-RV64:       # %bb.0:
314 ; CHECK-RV64-NEXT:    addi sp, sp, -128
315 ; CHECK-RV64-NEXT:    .cfi_def_cfa_offset 128
316 ; CHECK-RV64-NEXT:    sd ra, 120(sp) # 8-byte Folded Spill
317 ; CHECK-RV64-NEXT:    sd s0, 112(sp) # 8-byte Folded Spill
318 ; CHECK-RV64-NEXT:    sd s1, 104(sp) # 8-byte Folded Spill
319 ; CHECK-RV64-NEXT:    sd s2, 96(sp) # 8-byte Folded Spill
320 ; CHECK-RV64-NEXT:    sd s3, 88(sp) # 8-byte Folded Spill
321 ; CHECK-RV64-NEXT:    sd s4, 80(sp) # 8-byte Folded Spill
322 ; CHECK-RV64-NEXT:    sd s5, 72(sp) # 8-byte Folded Spill
323 ; CHECK-RV64-NEXT:    sd s6, 64(sp) # 8-byte Folded Spill
324 ; CHECK-RV64-NEXT:    sd s7, 56(sp) # 8-byte Folded Spill
325 ; CHECK-RV64-NEXT:    sd s8, 48(sp) # 8-byte Folded Spill
326 ; CHECK-RV64-NEXT:    sd s9, 40(sp) # 8-byte Folded Spill
327 ; CHECK-RV64-NEXT:    sd s10, 32(sp) # 8-byte Folded Spill
328 ; CHECK-RV64-NEXT:    sd s11, 24(sp) # 8-byte Folded Spill
329 ; CHECK-RV64-NEXT:    .cfi_offset ra, -8
330 ; CHECK-RV64-NEXT:    .cfi_offset s0, -16
331 ; CHECK-RV64-NEXT:    .cfi_offset s1, -24
332 ; CHECK-RV64-NEXT:    .cfi_offset s2, -32
333 ; CHECK-RV64-NEXT:    .cfi_offset s3, -40
334 ; CHECK-RV64-NEXT:    .cfi_offset s4, -48
335 ; CHECK-RV64-NEXT:    .cfi_offset s5, -56
336 ; CHECK-RV64-NEXT:    .cfi_offset s6, -64
337 ; CHECK-RV64-NEXT:    .cfi_offset s7, -72
338 ; CHECK-RV64-NEXT:    .cfi_offset s8, -80
339 ; CHECK-RV64-NEXT:    .cfi_offset s9, -88
340 ; CHECK-RV64-NEXT:    .cfi_offset s10, -96
341 ; CHECK-RV64-NEXT:    .cfi_offset s11, -104
342 ; CHECK-RV64-NEXT:    #APP
343 ; CHECK-RV64-NEXT:    li ra, 1
344 ; CHECK-RV64-NEXT:    #NO_APP
345 ; CHECK-RV64-NEXT:    #APP
346 ; CHECK-RV64-NEXT:    li t0, 5
347 ; CHECK-RV64-NEXT:    #NO_APP
348 ; CHECK-RV64-NEXT:    #APP
349 ; CHECK-RV64-NEXT:    li t1, 6
350 ; CHECK-RV64-NEXT:    #NO_APP
351 ; CHECK-RV64-NEXT:    #APP
352 ; CHECK-RV64-NEXT:    li t2, 7
353 ; CHECK-RV64-NEXT:    #NO_APP
354 ; CHECK-RV64-NEXT:    #APP
355 ; CHECK-RV64-NEXT:    li s0, 8
356 ; CHECK-RV64-NEXT:    #NO_APP
357 ; CHECK-RV64-NEXT:    #APP
358 ; CHECK-RV64-NEXT:    li s1, 9
359 ; CHECK-RV64-NEXT:    #NO_APP
360 ; CHECK-RV64-NEXT:    #APP
361 ; CHECK-RV64-NEXT:    li a0, 10
362 ; CHECK-RV64-NEXT:    #NO_APP
363 ; CHECK-RV64-NEXT:    #APP
364 ; CHECK-RV64-NEXT:    li a1, 11
365 ; CHECK-RV64-NEXT:    #NO_APP
366 ; CHECK-RV64-NEXT:    #APP
367 ; CHECK-RV64-NEXT:    li a2, 12
368 ; CHECK-RV64-NEXT:    #NO_APP
369 ; CHECK-RV64-NEXT:    #APP
370 ; CHECK-RV64-NEXT:    li a3, 13
371 ; CHECK-RV64-NEXT:    #NO_APP
372 ; CHECK-RV64-NEXT:    #APP
373 ; CHECK-RV64-NEXT:    li a4, 14
374 ; CHECK-RV64-NEXT:    #NO_APP
375 ; CHECK-RV64-NEXT:    #APP
376 ; CHECK-RV64-NEXT:    li a5, 15
377 ; CHECK-RV64-NEXT:    #NO_APP
378 ; CHECK-RV64-NEXT:    #APP
379 ; CHECK-RV64-NEXT:    li a6, 16
380 ; CHECK-RV64-NEXT:    #NO_APP
381 ; CHECK-RV64-NEXT:    #APP
382 ; CHECK-RV64-NEXT:    li a7, 17
383 ; CHECK-RV64-NEXT:    #NO_APP
384 ; CHECK-RV64-NEXT:    #APP
385 ; CHECK-RV64-NEXT:    li s2, 18
386 ; CHECK-RV64-NEXT:    #NO_APP
387 ; CHECK-RV64-NEXT:    #APP
388 ; CHECK-RV64-NEXT:    li s3, 19
389 ; CHECK-RV64-NEXT:    #NO_APP
390 ; CHECK-RV64-NEXT:    #APP
391 ; CHECK-RV64-NEXT:    li s4, 20
392 ; CHECK-RV64-NEXT:    #NO_APP
393 ; CHECK-RV64-NEXT:    #APP
394 ; CHECK-RV64-NEXT:    li s5, 21
395 ; CHECK-RV64-NEXT:    #NO_APP
396 ; CHECK-RV64-NEXT:    #APP
397 ; CHECK-RV64-NEXT:    li s6, 22
398 ; CHECK-RV64-NEXT:    #NO_APP
399 ; CHECK-RV64-NEXT:    #APP
400 ; CHECK-RV64-NEXT:    li s7, 23
401 ; CHECK-RV64-NEXT:    #NO_APP
402 ; CHECK-RV64-NEXT:    #APP
403 ; CHECK-RV64-NEXT:    li s8, 24
404 ; CHECK-RV64-NEXT:    #NO_APP
405 ; CHECK-RV64-NEXT:    #APP
406 ; CHECK-RV64-NEXT:    li s9, 25
407 ; CHECK-RV64-NEXT:    #NO_APP
408 ; CHECK-RV64-NEXT:    #APP
409 ; CHECK-RV64-NEXT:    li s10, 26
410 ; CHECK-RV64-NEXT:    #NO_APP
411 ; CHECK-RV64-NEXT:    #APP
412 ; CHECK-RV64-NEXT:    li s11, 27
413 ; CHECK-RV64-NEXT:    #NO_APP
414 ; CHECK-RV64-NEXT:    #APP
415 ; CHECK-RV64-NEXT:    li t3, 28
416 ; CHECK-RV64-NEXT:    #NO_APP
417 ; CHECK-RV64-NEXT:    #APP
418 ; CHECK-RV64-NEXT:    li t4, 29
419 ; CHECK-RV64-NEXT:    #NO_APP
420 ; CHECK-RV64-NEXT:    #APP
421 ; CHECK-RV64-NEXT:    li t5, 30
422 ; CHECK-RV64-NEXT:    #NO_APP
423 ; CHECK-RV64-NEXT:    sd t5, 16(sp) # 8-byte Folded Spill
424 ; CHECK-RV64-NEXT:    sext.w t5, t5
425 ; CHECK-RV64-NEXT:    #APP
426 ; CHECK-RV64-NEXT:    li t6, 31
427 ; CHECK-RV64-NEXT:    #NO_APP
428 ; CHECK-RV64-NEXT:    sd t6, 8(sp) # 8-byte Folded Spill
429 ; CHECK-RV64-NEXT:    sext.w t6, t6
430 ; CHECK-RV64-NEXT:    beq t5, t6, .LBB2_1
431 ; CHECK-RV64-NEXT:  # %bb.3:
432 ; CHECK-RV64-NEXT:    jump .LBB2_2, t5
433 ; CHECK-RV64-NEXT:  .LBB2_1: # %branch_1
434 ; CHECK-RV64-NEXT:    #APP
435 ; CHECK-RV64-NEXT:    .zero 1048576
436 ; CHECK-RV64-NEXT:    #NO_APP
437 ; CHECK-RV64-NEXT:  .LBB2_2: # %branch_2
438 ; CHECK-RV64-NEXT:    #APP
439 ; CHECK-RV64-NEXT:    # reg use ra
440 ; CHECK-RV64-NEXT:    #NO_APP
441 ; CHECK-RV64-NEXT:    #APP
442 ; CHECK-RV64-NEXT:    # reg use t0
443 ; CHECK-RV64-NEXT:    #NO_APP
444 ; CHECK-RV64-NEXT:    #APP
445 ; CHECK-RV64-NEXT:    # reg use t1
446 ; CHECK-RV64-NEXT:    #NO_APP
447 ; CHECK-RV64-NEXT:    #APP
448 ; CHECK-RV64-NEXT:    # reg use t2
449 ; CHECK-RV64-NEXT:    #NO_APP
450 ; CHECK-RV64-NEXT:    #APP
451 ; CHECK-RV64-NEXT:    # reg use s0
452 ; CHECK-RV64-NEXT:    #NO_APP
453 ; CHECK-RV64-NEXT:    #APP
454 ; CHECK-RV64-NEXT:    # reg use s1
455 ; CHECK-RV64-NEXT:    #NO_APP
456 ; CHECK-RV64-NEXT:    #APP
457 ; CHECK-RV64-NEXT:    # reg use a0
458 ; CHECK-RV64-NEXT:    #NO_APP
459 ; CHECK-RV64-NEXT:    #APP
460 ; CHECK-RV64-NEXT:    # reg use a1
461 ; CHECK-RV64-NEXT:    #NO_APP
462 ; CHECK-RV64-NEXT:    #APP
463 ; CHECK-RV64-NEXT:    # reg use a2
464 ; CHECK-RV64-NEXT:    #NO_APP
465 ; CHECK-RV64-NEXT:    #APP
466 ; CHECK-RV64-NEXT:    # reg use a3
467 ; CHECK-RV64-NEXT:    #NO_APP
468 ; CHECK-RV64-NEXT:    #APP
469 ; CHECK-RV64-NEXT:    # reg use a4
470 ; CHECK-RV64-NEXT:    #NO_APP
471 ; CHECK-RV64-NEXT:    #APP
472 ; CHECK-RV64-NEXT:    # reg use a5
473 ; CHECK-RV64-NEXT:    #NO_APP
474 ; CHECK-RV64-NEXT:    #APP
475 ; CHECK-RV64-NEXT:    # reg use a6
476 ; CHECK-RV64-NEXT:    #NO_APP
477 ; CHECK-RV64-NEXT:    #APP
478 ; CHECK-RV64-NEXT:    # reg use a7
479 ; CHECK-RV64-NEXT:    #NO_APP
480 ; CHECK-RV64-NEXT:    #APP
481 ; CHECK-RV64-NEXT:    # reg use s2
482 ; CHECK-RV64-NEXT:    #NO_APP
483 ; CHECK-RV64-NEXT:    #APP
484 ; CHECK-RV64-NEXT:    # reg use s3
485 ; CHECK-RV64-NEXT:    #NO_APP
486 ; CHECK-RV64-NEXT:    #APP
487 ; CHECK-RV64-NEXT:    # reg use s4
488 ; CHECK-RV64-NEXT:    #NO_APP
489 ; CHECK-RV64-NEXT:    #APP
490 ; CHECK-RV64-NEXT:    # reg use s5
491 ; CHECK-RV64-NEXT:    #NO_APP
492 ; CHECK-RV64-NEXT:    #APP
493 ; CHECK-RV64-NEXT:    # reg use s6
494 ; CHECK-RV64-NEXT:    #NO_APP
495 ; CHECK-RV64-NEXT:    #APP
496 ; CHECK-RV64-NEXT:    # reg use s7
497 ; CHECK-RV64-NEXT:    #NO_APP
498 ; CHECK-RV64-NEXT:    #APP
499 ; CHECK-RV64-NEXT:    # reg use s8
500 ; CHECK-RV64-NEXT:    #NO_APP
501 ; CHECK-RV64-NEXT:    #APP
502 ; CHECK-RV64-NEXT:    # reg use s9
503 ; CHECK-RV64-NEXT:    #NO_APP
504 ; CHECK-RV64-NEXT:    #APP
505 ; CHECK-RV64-NEXT:    # reg use s10
506 ; CHECK-RV64-NEXT:    #NO_APP
507 ; CHECK-RV64-NEXT:    #APP
508 ; CHECK-RV64-NEXT:    # reg use s11
509 ; CHECK-RV64-NEXT:    #NO_APP
510 ; CHECK-RV64-NEXT:    #APP
511 ; CHECK-RV64-NEXT:    # reg use t3
512 ; CHECK-RV64-NEXT:    #NO_APP
513 ; CHECK-RV64-NEXT:    #APP
514 ; CHECK-RV64-NEXT:    # reg use t4
515 ; CHECK-RV64-NEXT:    #NO_APP
516 ; CHECK-RV64-NEXT:    ld t5, 16(sp) # 8-byte Folded Reload
517 ; CHECK-RV64-NEXT:    #APP
518 ; CHECK-RV64-NEXT:    # reg use t5
519 ; CHECK-RV64-NEXT:    #NO_APP
520 ; CHECK-RV64-NEXT:    ld t6, 8(sp) # 8-byte Folded Reload
521 ; CHECK-RV64-NEXT:    #APP
522 ; CHECK-RV64-NEXT:    # reg use t6
523 ; CHECK-RV64-NEXT:    #NO_APP
524 ; CHECK-RV64-NEXT:    ld ra, 120(sp) # 8-byte Folded Reload
525 ; CHECK-RV64-NEXT:    ld s0, 112(sp) # 8-byte Folded Reload
526 ; CHECK-RV64-NEXT:    ld s1, 104(sp) # 8-byte Folded Reload
527 ; CHECK-RV64-NEXT:    ld s2, 96(sp) # 8-byte Folded Reload
528 ; CHECK-RV64-NEXT:    ld s3, 88(sp) # 8-byte Folded Reload
529 ; CHECK-RV64-NEXT:    ld s4, 80(sp) # 8-byte Folded Reload
530 ; CHECK-RV64-NEXT:    ld s5, 72(sp) # 8-byte Folded Reload
531 ; CHECK-RV64-NEXT:    ld s6, 64(sp) # 8-byte Folded Reload
532 ; CHECK-RV64-NEXT:    ld s7, 56(sp) # 8-byte Folded Reload
533 ; CHECK-RV64-NEXT:    ld s8, 48(sp) # 8-byte Folded Reload
534 ; CHECK-RV64-NEXT:    ld s9, 40(sp) # 8-byte Folded Reload
535 ; CHECK-RV64-NEXT:    ld s10, 32(sp) # 8-byte Folded Reload
536 ; CHECK-RV64-NEXT:    ld s11, 24(sp) # 8-byte Folded Reload
537 ; CHECK-RV64-NEXT:    addi sp, sp, 128
538 ; CHECK-RV64-NEXT:    ret
540   %ra = call i32 asm sideeffect "addi ra, x0, 1", "={ra}"()
541   %t0 = call i32 asm sideeffect "addi t0, x0, 5", "={t0}"()
542   %t1 = call i32 asm sideeffect "addi t1, x0, 6", "={t1}"()
543   %t2 = call i32 asm sideeffect "addi t2, x0, 7", "={t2}"()
544   %s0 = call i32 asm sideeffect "addi s0, x0, 8", "={s0}"()
545   %s1 = call i32 asm sideeffect "addi s1, x0, 9", "={s1}"()
546   %a0 = call i32 asm sideeffect "addi a0, x0, 10", "={a0}"()
547   %a1 = call i32 asm sideeffect "addi a1, x0, 11", "={a1}"()
548   %a2 = call i32 asm sideeffect "addi a2, x0, 12", "={a2}"()
549   %a3 = call i32 asm sideeffect "addi a3, x0, 13", "={a3}"()
550   %a4 = call i32 asm sideeffect "addi a4, x0, 14", "={a4}"()
551   %a5 = call i32 asm sideeffect "addi a5, x0, 15", "={a5}"()
552   %a6 = call i32 asm sideeffect "addi a6, x0, 16", "={a6}"()
553   %a7 = call i32 asm sideeffect "addi a7, x0, 17", "={a7}"()
554   %s2 = call i32 asm sideeffect "addi s2, x0, 18", "={s2}"()
555   %s3 = call i32 asm sideeffect "addi s3, x0, 19", "={s3}"()
556   %s4 = call i32 asm sideeffect "addi s4, x0, 20", "={s4}"()
557   %s5 = call i32 asm sideeffect "addi s5, x0, 21", "={s5}"()
558   %s6 = call i32 asm sideeffect "addi s6, x0, 22", "={s6}"()
559   %s7 = call i32 asm sideeffect "addi s7, x0, 23", "={s7}"()
560   %s8 = call i32 asm sideeffect "addi s8, x0, 24", "={s8}"()
561   %s9 = call i32 asm sideeffect "addi s9, x0, 25", "={s9}"()
562   %s10 = call i32 asm sideeffect "addi s10, x0, 26", "={s10}"()
563   %s11 = call i32 asm sideeffect "addi s11, x0, 27", "={s11}"()
564   %t3 = call i32 asm sideeffect "addi t3, x0, 28", "={t3}"()
565   %t4 = call i32 asm sideeffect "addi t4, x0, 29", "={t4}"()
566   %t5 = call i32 asm sideeffect "addi t5, x0, 30", "={t5}"()
567   %t6 = call i32 asm sideeffect "addi t6, x0, 31", "={t6}"()
569   %cmp = icmp eq i32 %t5, %t6
570   br i1 %cmp, label %branch_1, label %branch_2
572 branch_1:
573   call void asm sideeffect ".space 1048576", ""()
574   br label %branch_2
576 branch_2:
577   call void asm sideeffect "# reg use $0", "{ra}"(i32 %ra)
578   call void asm sideeffect "# reg use $0", "{t0}"(i32 %t0)
579   call void asm sideeffect "# reg use $0", "{t1}"(i32 %t1)
580   call void asm sideeffect "# reg use $0", "{t2}"(i32 %t2)
581   call void asm sideeffect "# reg use $0", "{s0}"(i32 %s0)
582   call void asm sideeffect "# reg use $0", "{s1}"(i32 %s1)
583   call void asm sideeffect "# reg use $0", "{a0}"(i32 %a0)
584   call void asm sideeffect "# reg use $0", "{a1}"(i32 %a1)
585   call void asm sideeffect "# reg use $0", "{a2}"(i32 %a2)
586   call void asm sideeffect "# reg use $0", "{a3}"(i32 %a3)
587   call void asm sideeffect "# reg use $0", "{a4}"(i32 %a4)
588   call void asm sideeffect "# reg use $0", "{a5}"(i32 %a5)
589   call void asm sideeffect "# reg use $0", "{a6}"(i32 %a6)
590   call void asm sideeffect "# reg use $0", "{a7}"(i32 %a7)
591   call void asm sideeffect "# reg use $0", "{s2}"(i32 %s2)
592   call void asm sideeffect "# reg use $0", "{s3}"(i32 %s3)
593   call void asm sideeffect "# reg use $0", "{s4}"(i32 %s4)
594   call void asm sideeffect "# reg use $0", "{s5}"(i32 %s5)
595   call void asm sideeffect "# reg use $0", "{s6}"(i32 %s6)
596   call void asm sideeffect "# reg use $0", "{s7}"(i32 %s7)
597   call void asm sideeffect "# reg use $0", "{s8}"(i32 %s8)
598   call void asm sideeffect "# reg use $0", "{s9}"(i32 %s9)
599   call void asm sideeffect "# reg use $0", "{s10}"(i32 %s10)
600   call void asm sideeffect "# reg use $0", "{s11}"(i32 %s11)
601   call void asm sideeffect "# reg use $0", "{t3}"(i32 %t3)
602   call void asm sideeffect "# reg use $0", "{t4}"(i32 %t4)
603   call void asm sideeffect "# reg use $0", "{t5}"(i32 %t5)
604   call void asm sideeffect "# reg use $0", "{t6}"(i32 %t6)
606   ret void
609 define void @relax_jal_spill_32_adjust_spill_slot() {
610 ; CHECK-RV32-LABEL: relax_jal_spill_32_adjust_spill_slot:
611 ; CHECK-RV32:       # %bb.0:
612 ; CHECK-RV32-NEXT:    addi sp, sp, -2032
613 ; CHECK-RV32-NEXT:    .cfi_def_cfa_offset 2032
614 ; CHECK-RV32-NEXT:    sw ra, 2028(sp) # 4-byte Folded Spill
615 ; CHECK-RV32-NEXT:    sw s0, 2024(sp) # 4-byte Folded Spill
616 ; CHECK-RV32-NEXT:    sw s1, 2020(sp) # 4-byte Folded Spill
617 ; CHECK-RV32-NEXT:    sw s2, 2016(sp) # 4-byte Folded Spill
618 ; CHECK-RV32-NEXT:    sw s3, 2012(sp) # 4-byte Folded Spill
619 ; CHECK-RV32-NEXT:    sw s4, 2008(sp) # 4-byte Folded Spill
620 ; CHECK-RV32-NEXT:    sw s5, 2004(sp) # 4-byte Folded Spill
621 ; CHECK-RV32-NEXT:    sw s6, 2000(sp) # 4-byte Folded Spill
622 ; CHECK-RV32-NEXT:    sw s7, 1996(sp) # 4-byte Folded Spill
623 ; CHECK-RV32-NEXT:    sw s8, 1992(sp) # 4-byte Folded Spill
624 ; CHECK-RV32-NEXT:    sw s9, 1988(sp) # 4-byte Folded Spill
625 ; CHECK-RV32-NEXT:    sw s10, 1984(sp) # 4-byte Folded Spill
626 ; CHECK-RV32-NEXT:    sw s11, 1980(sp) # 4-byte Folded Spill
627 ; CHECK-RV32-NEXT:    .cfi_offset ra, -4
628 ; CHECK-RV32-NEXT:    .cfi_offset s0, -8
629 ; CHECK-RV32-NEXT:    .cfi_offset s1, -12
630 ; CHECK-RV32-NEXT:    .cfi_offset s2, -16
631 ; CHECK-RV32-NEXT:    .cfi_offset s3, -20
632 ; CHECK-RV32-NEXT:    .cfi_offset s4, -24
633 ; CHECK-RV32-NEXT:    .cfi_offset s5, -28
634 ; CHECK-RV32-NEXT:    .cfi_offset s6, -32
635 ; CHECK-RV32-NEXT:    .cfi_offset s7, -36
636 ; CHECK-RV32-NEXT:    .cfi_offset s8, -40
637 ; CHECK-RV32-NEXT:    .cfi_offset s9, -44
638 ; CHECK-RV32-NEXT:    .cfi_offset s10, -48
639 ; CHECK-RV32-NEXT:    .cfi_offset s11, -52
640 ; CHECK-RV32-NEXT:    addi s0, sp, 2032
641 ; CHECK-RV32-NEXT:    .cfi_def_cfa s0, 0
642 ; CHECK-RV32-NEXT:    lui a0, 2
643 ; CHECK-RV32-NEXT:    addi a0, a0, -2032
644 ; CHECK-RV32-NEXT:    sub sp, sp, a0
645 ; CHECK-RV32-NEXT:    srli a0, sp, 12
646 ; CHECK-RV32-NEXT:    slli sp, a0, 12
647 ; CHECK-RV32-NEXT:    #APP
648 ; CHECK-RV32-NEXT:    li ra, 1
649 ; CHECK-RV32-NEXT:    #NO_APP
650 ; CHECK-RV32-NEXT:    #APP
651 ; CHECK-RV32-NEXT:    li t0, 5
652 ; CHECK-RV32-NEXT:    #NO_APP
653 ; CHECK-RV32-NEXT:    #APP
654 ; CHECK-RV32-NEXT:    li t1, 6
655 ; CHECK-RV32-NEXT:    #NO_APP
656 ; CHECK-RV32-NEXT:    #APP
657 ; CHECK-RV32-NEXT:    li t2, 7
658 ; CHECK-RV32-NEXT:    #NO_APP
659 ; CHECK-RV32-NEXT:    #APP
660 ; CHECK-RV32-NEXT:    li s0, 8
661 ; CHECK-RV32-NEXT:    #NO_APP
662 ; CHECK-RV32-NEXT:    #APP
663 ; CHECK-RV32-NEXT:    li s1, 9
664 ; CHECK-RV32-NEXT:    #NO_APP
665 ; CHECK-RV32-NEXT:    #APP
666 ; CHECK-RV32-NEXT:    li a0, 10
667 ; CHECK-RV32-NEXT:    #NO_APP
668 ; CHECK-RV32-NEXT:    #APP
669 ; CHECK-RV32-NEXT:    li a1, 11
670 ; CHECK-RV32-NEXT:    #NO_APP
671 ; CHECK-RV32-NEXT:    #APP
672 ; CHECK-RV32-NEXT:    li a2, 12
673 ; CHECK-RV32-NEXT:    #NO_APP
674 ; CHECK-RV32-NEXT:    #APP
675 ; CHECK-RV32-NEXT:    li a3, 13
676 ; CHECK-RV32-NEXT:    #NO_APP
677 ; CHECK-RV32-NEXT:    #APP
678 ; CHECK-RV32-NEXT:    li a4, 14
679 ; CHECK-RV32-NEXT:    #NO_APP
680 ; CHECK-RV32-NEXT:    #APP
681 ; CHECK-RV32-NEXT:    li a5, 15
682 ; CHECK-RV32-NEXT:    #NO_APP
683 ; CHECK-RV32-NEXT:    #APP
684 ; CHECK-RV32-NEXT:    li a6, 16
685 ; CHECK-RV32-NEXT:    #NO_APP
686 ; CHECK-RV32-NEXT:    #APP
687 ; CHECK-RV32-NEXT:    li a7, 17
688 ; CHECK-RV32-NEXT:    #NO_APP
689 ; CHECK-RV32-NEXT:    #APP
690 ; CHECK-RV32-NEXT:    li s2, 18
691 ; CHECK-RV32-NEXT:    #NO_APP
692 ; CHECK-RV32-NEXT:    #APP
693 ; CHECK-RV32-NEXT:    li s3, 19
694 ; CHECK-RV32-NEXT:    #NO_APP
695 ; CHECK-RV32-NEXT:    #APP
696 ; CHECK-RV32-NEXT:    li s4, 20
697 ; CHECK-RV32-NEXT:    #NO_APP
698 ; CHECK-RV32-NEXT:    #APP
699 ; CHECK-RV32-NEXT:    li s5, 21
700 ; CHECK-RV32-NEXT:    #NO_APP
701 ; CHECK-RV32-NEXT:    #APP
702 ; CHECK-RV32-NEXT:    li s6, 22
703 ; CHECK-RV32-NEXT:    #NO_APP
704 ; CHECK-RV32-NEXT:    #APP
705 ; CHECK-RV32-NEXT:    li s7, 23
706 ; CHECK-RV32-NEXT:    #NO_APP
707 ; CHECK-RV32-NEXT:    #APP
708 ; CHECK-RV32-NEXT:    li s8, 24
709 ; CHECK-RV32-NEXT:    #NO_APP
710 ; CHECK-RV32-NEXT:    #APP
711 ; CHECK-RV32-NEXT:    li s9, 25
712 ; CHECK-RV32-NEXT:    #NO_APP
713 ; CHECK-RV32-NEXT:    #APP
714 ; CHECK-RV32-NEXT:    li s10, 26
715 ; CHECK-RV32-NEXT:    #NO_APP
716 ; CHECK-RV32-NEXT:    #APP
717 ; CHECK-RV32-NEXT:    li s11, 27
718 ; CHECK-RV32-NEXT:    #NO_APP
719 ; CHECK-RV32-NEXT:    #APP
720 ; CHECK-RV32-NEXT:    li t3, 28
721 ; CHECK-RV32-NEXT:    #NO_APP
722 ; CHECK-RV32-NEXT:    #APP
723 ; CHECK-RV32-NEXT:    li t4, 29
724 ; CHECK-RV32-NEXT:    #NO_APP
725 ; CHECK-RV32-NEXT:    #APP
726 ; CHECK-RV32-NEXT:    li t5, 30
727 ; CHECK-RV32-NEXT:    #NO_APP
728 ; CHECK-RV32-NEXT:    #APP
729 ; CHECK-RV32-NEXT:    li t6, 31
730 ; CHECK-RV32-NEXT:    #NO_APP
731 ; CHECK-RV32-NEXT:    beq t5, t6, .LBB3_1
732 ; CHECK-RV32-NEXT:  # %bb.3:
733 ; CHECK-RV32-NEXT:    sw s11, 0(sp)
734 ; CHECK-RV32-NEXT:    jump .LBB3_4, s11
735 ; CHECK-RV32-NEXT:  .LBB3_1: # %branch_1
736 ; CHECK-RV32-NEXT:    #APP
737 ; CHECK-RV32-NEXT:    .zero 1048576
738 ; CHECK-RV32-NEXT:    #NO_APP
739 ; CHECK-RV32-NEXT:    j .LBB3_2
740 ; CHECK-RV32-NEXT:  .LBB3_4: # %branch_2
741 ; CHECK-RV32-NEXT:    lw s11, 0(sp)
742 ; CHECK-RV32-NEXT:  .LBB3_2: # %branch_2
743 ; CHECK-RV32-NEXT:    #APP
744 ; CHECK-RV32-NEXT:    # reg use ra
745 ; CHECK-RV32-NEXT:    #NO_APP
746 ; CHECK-RV32-NEXT:    #APP
747 ; CHECK-RV32-NEXT:    # reg use t0
748 ; CHECK-RV32-NEXT:    #NO_APP
749 ; CHECK-RV32-NEXT:    #APP
750 ; CHECK-RV32-NEXT:    # reg use t1
751 ; CHECK-RV32-NEXT:    #NO_APP
752 ; CHECK-RV32-NEXT:    #APP
753 ; CHECK-RV32-NEXT:    # reg use t2
754 ; CHECK-RV32-NEXT:    #NO_APP
755 ; CHECK-RV32-NEXT:    #APP
756 ; CHECK-RV32-NEXT:    # reg use s0
757 ; CHECK-RV32-NEXT:    #NO_APP
758 ; CHECK-RV32-NEXT:    #APP
759 ; CHECK-RV32-NEXT:    # reg use s1
760 ; CHECK-RV32-NEXT:    #NO_APP
761 ; CHECK-RV32-NEXT:    #APP
762 ; CHECK-RV32-NEXT:    # reg use a0
763 ; CHECK-RV32-NEXT:    #NO_APP
764 ; CHECK-RV32-NEXT:    #APP
765 ; CHECK-RV32-NEXT:    # reg use a1
766 ; CHECK-RV32-NEXT:    #NO_APP
767 ; CHECK-RV32-NEXT:    #APP
768 ; CHECK-RV32-NEXT:    # reg use a2
769 ; CHECK-RV32-NEXT:    #NO_APP
770 ; CHECK-RV32-NEXT:    #APP
771 ; CHECK-RV32-NEXT:    # reg use a3
772 ; CHECK-RV32-NEXT:    #NO_APP
773 ; CHECK-RV32-NEXT:    #APP
774 ; CHECK-RV32-NEXT:    # reg use a4
775 ; CHECK-RV32-NEXT:    #NO_APP
776 ; CHECK-RV32-NEXT:    #APP
777 ; CHECK-RV32-NEXT:    # reg use a5
778 ; CHECK-RV32-NEXT:    #NO_APP
779 ; CHECK-RV32-NEXT:    #APP
780 ; CHECK-RV32-NEXT:    # reg use a6
781 ; CHECK-RV32-NEXT:    #NO_APP
782 ; CHECK-RV32-NEXT:    #APP
783 ; CHECK-RV32-NEXT:    # reg use a7
784 ; CHECK-RV32-NEXT:    #NO_APP
785 ; CHECK-RV32-NEXT:    #APP
786 ; CHECK-RV32-NEXT:    # reg use s2
787 ; CHECK-RV32-NEXT:    #NO_APP
788 ; CHECK-RV32-NEXT:    #APP
789 ; CHECK-RV32-NEXT:    # reg use s3
790 ; CHECK-RV32-NEXT:    #NO_APP
791 ; CHECK-RV32-NEXT:    #APP
792 ; CHECK-RV32-NEXT:    # reg use s4
793 ; CHECK-RV32-NEXT:    #NO_APP
794 ; CHECK-RV32-NEXT:    #APP
795 ; CHECK-RV32-NEXT:    # reg use s5
796 ; CHECK-RV32-NEXT:    #NO_APP
797 ; CHECK-RV32-NEXT:    #APP
798 ; CHECK-RV32-NEXT:    # reg use s6
799 ; CHECK-RV32-NEXT:    #NO_APP
800 ; CHECK-RV32-NEXT:    #APP
801 ; CHECK-RV32-NEXT:    # reg use s7
802 ; CHECK-RV32-NEXT:    #NO_APP
803 ; CHECK-RV32-NEXT:    #APP
804 ; CHECK-RV32-NEXT:    # reg use s8
805 ; CHECK-RV32-NEXT:    #NO_APP
806 ; CHECK-RV32-NEXT:    #APP
807 ; CHECK-RV32-NEXT:    # reg use s9
808 ; CHECK-RV32-NEXT:    #NO_APP
809 ; CHECK-RV32-NEXT:    #APP
810 ; CHECK-RV32-NEXT:    # reg use s10
811 ; CHECK-RV32-NEXT:    #NO_APP
812 ; CHECK-RV32-NEXT:    #APP
813 ; CHECK-RV32-NEXT:    # reg use s11
814 ; CHECK-RV32-NEXT:    #NO_APP
815 ; CHECK-RV32-NEXT:    #APP
816 ; CHECK-RV32-NEXT:    # reg use t3
817 ; CHECK-RV32-NEXT:    #NO_APP
818 ; CHECK-RV32-NEXT:    #APP
819 ; CHECK-RV32-NEXT:    # reg use t4
820 ; CHECK-RV32-NEXT:    #NO_APP
821 ; CHECK-RV32-NEXT:    #APP
822 ; CHECK-RV32-NEXT:    # reg use t5
823 ; CHECK-RV32-NEXT:    #NO_APP
824 ; CHECK-RV32-NEXT:    #APP
825 ; CHECK-RV32-NEXT:    # reg use t6
826 ; CHECK-RV32-NEXT:    #NO_APP
827 ; CHECK-RV32-NEXT:    lui a0, 2
828 ; CHECK-RV32-NEXT:    sub sp, s0, a0
829 ; CHECK-RV32-NEXT:    addi a0, a0, -2032
830 ; CHECK-RV32-NEXT:    add sp, sp, a0
831 ; CHECK-RV32-NEXT:    lw ra, 2028(sp) # 4-byte Folded Reload
832 ; CHECK-RV32-NEXT:    lw s0, 2024(sp) # 4-byte Folded Reload
833 ; CHECK-RV32-NEXT:    lw s1, 2020(sp) # 4-byte Folded Reload
834 ; CHECK-RV32-NEXT:    lw s2, 2016(sp) # 4-byte Folded Reload
835 ; CHECK-RV32-NEXT:    lw s3, 2012(sp) # 4-byte Folded Reload
836 ; CHECK-RV32-NEXT:    lw s4, 2008(sp) # 4-byte Folded Reload
837 ; CHECK-RV32-NEXT:    lw s5, 2004(sp) # 4-byte Folded Reload
838 ; CHECK-RV32-NEXT:    lw s6, 2000(sp) # 4-byte Folded Reload
839 ; CHECK-RV32-NEXT:    lw s7, 1996(sp) # 4-byte Folded Reload
840 ; CHECK-RV32-NEXT:    lw s8, 1992(sp) # 4-byte Folded Reload
841 ; CHECK-RV32-NEXT:    lw s9, 1988(sp) # 4-byte Folded Reload
842 ; CHECK-RV32-NEXT:    lw s10, 1984(sp) # 4-byte Folded Reload
843 ; CHECK-RV32-NEXT:    lw s11, 1980(sp) # 4-byte Folded Reload
844 ; CHECK-RV32-NEXT:    addi sp, sp, 2032
845 ; CHECK-RV32-NEXT:    ret
847 ; CHECK-RV64-LABEL: relax_jal_spill_32_adjust_spill_slot:
848 ; CHECK-RV64:       # %bb.0:
849 ; CHECK-RV64-NEXT:    addi sp, sp, -2032
850 ; CHECK-RV64-NEXT:    .cfi_def_cfa_offset 2032
851 ; CHECK-RV64-NEXT:    sd ra, 2024(sp) # 8-byte Folded Spill
852 ; CHECK-RV64-NEXT:    sd s0, 2016(sp) # 8-byte Folded Spill
853 ; CHECK-RV64-NEXT:    sd s1, 2008(sp) # 8-byte Folded Spill
854 ; CHECK-RV64-NEXT:    sd s2, 2000(sp) # 8-byte Folded Spill
855 ; CHECK-RV64-NEXT:    sd s3, 1992(sp) # 8-byte Folded Spill
856 ; CHECK-RV64-NEXT:    sd s4, 1984(sp) # 8-byte Folded Spill
857 ; CHECK-RV64-NEXT:    sd s5, 1976(sp) # 8-byte Folded Spill
858 ; CHECK-RV64-NEXT:    sd s6, 1968(sp) # 8-byte Folded Spill
859 ; CHECK-RV64-NEXT:    sd s7, 1960(sp) # 8-byte Folded Spill
860 ; CHECK-RV64-NEXT:    sd s8, 1952(sp) # 8-byte Folded Spill
861 ; CHECK-RV64-NEXT:    sd s9, 1944(sp) # 8-byte Folded Spill
862 ; CHECK-RV64-NEXT:    sd s10, 1936(sp) # 8-byte Folded Spill
863 ; CHECK-RV64-NEXT:    sd s11, 1928(sp) # 8-byte Folded Spill
864 ; CHECK-RV64-NEXT:    .cfi_offset ra, -8
865 ; CHECK-RV64-NEXT:    .cfi_offset s0, -16
866 ; CHECK-RV64-NEXT:    .cfi_offset s1, -24
867 ; CHECK-RV64-NEXT:    .cfi_offset s2, -32
868 ; CHECK-RV64-NEXT:    .cfi_offset s3, -40
869 ; CHECK-RV64-NEXT:    .cfi_offset s4, -48
870 ; CHECK-RV64-NEXT:    .cfi_offset s5, -56
871 ; CHECK-RV64-NEXT:    .cfi_offset s6, -64
872 ; CHECK-RV64-NEXT:    .cfi_offset s7, -72
873 ; CHECK-RV64-NEXT:    .cfi_offset s8, -80
874 ; CHECK-RV64-NEXT:    .cfi_offset s9, -88
875 ; CHECK-RV64-NEXT:    .cfi_offset s10, -96
876 ; CHECK-RV64-NEXT:    .cfi_offset s11, -104
877 ; CHECK-RV64-NEXT:    addi s0, sp, 2032
878 ; CHECK-RV64-NEXT:    .cfi_def_cfa s0, 0
879 ; CHECK-RV64-NEXT:    lui a0, 2
880 ; CHECK-RV64-NEXT:    addiw a0, a0, -2032
881 ; CHECK-RV64-NEXT:    sub sp, sp, a0
882 ; CHECK-RV64-NEXT:    srli a0, sp, 12
883 ; CHECK-RV64-NEXT:    slli sp, a0, 12
884 ; CHECK-RV64-NEXT:    #APP
885 ; CHECK-RV64-NEXT:    li ra, 1
886 ; CHECK-RV64-NEXT:    #NO_APP
887 ; CHECK-RV64-NEXT:    #APP
888 ; CHECK-RV64-NEXT:    li t0, 5
889 ; CHECK-RV64-NEXT:    #NO_APP
890 ; CHECK-RV64-NEXT:    #APP
891 ; CHECK-RV64-NEXT:    li t1, 6
892 ; CHECK-RV64-NEXT:    #NO_APP
893 ; CHECK-RV64-NEXT:    #APP
894 ; CHECK-RV64-NEXT:    li t2, 7
895 ; CHECK-RV64-NEXT:    #NO_APP
896 ; CHECK-RV64-NEXT:    #APP
897 ; CHECK-RV64-NEXT:    li s0, 8
898 ; CHECK-RV64-NEXT:    #NO_APP
899 ; CHECK-RV64-NEXT:    #APP
900 ; CHECK-RV64-NEXT:    li s1, 9
901 ; CHECK-RV64-NEXT:    #NO_APP
902 ; CHECK-RV64-NEXT:    #APP
903 ; CHECK-RV64-NEXT:    li a0, 10
904 ; CHECK-RV64-NEXT:    #NO_APP
905 ; CHECK-RV64-NEXT:    #APP
906 ; CHECK-RV64-NEXT:    li a1, 11
907 ; CHECK-RV64-NEXT:    #NO_APP
908 ; CHECK-RV64-NEXT:    #APP
909 ; CHECK-RV64-NEXT:    li a2, 12
910 ; CHECK-RV64-NEXT:    #NO_APP
911 ; CHECK-RV64-NEXT:    #APP
912 ; CHECK-RV64-NEXT:    li a3, 13
913 ; CHECK-RV64-NEXT:    #NO_APP
914 ; CHECK-RV64-NEXT:    #APP
915 ; CHECK-RV64-NEXT:    li a4, 14
916 ; CHECK-RV64-NEXT:    #NO_APP
917 ; CHECK-RV64-NEXT:    #APP
918 ; CHECK-RV64-NEXT:    li a5, 15
919 ; CHECK-RV64-NEXT:    #NO_APP
920 ; CHECK-RV64-NEXT:    #APP
921 ; CHECK-RV64-NEXT:    li a6, 16
922 ; CHECK-RV64-NEXT:    #NO_APP
923 ; CHECK-RV64-NEXT:    #APP
924 ; CHECK-RV64-NEXT:    li a7, 17
925 ; CHECK-RV64-NEXT:    #NO_APP
926 ; CHECK-RV64-NEXT:    #APP
927 ; CHECK-RV64-NEXT:    li s2, 18
928 ; CHECK-RV64-NEXT:    #NO_APP
929 ; CHECK-RV64-NEXT:    #APP
930 ; CHECK-RV64-NEXT:    li s3, 19
931 ; CHECK-RV64-NEXT:    #NO_APP
932 ; CHECK-RV64-NEXT:    #APP
933 ; CHECK-RV64-NEXT:    li s4, 20
934 ; CHECK-RV64-NEXT:    #NO_APP
935 ; CHECK-RV64-NEXT:    #APP
936 ; CHECK-RV64-NEXT:    li s5, 21
937 ; CHECK-RV64-NEXT:    #NO_APP
938 ; CHECK-RV64-NEXT:    #APP
939 ; CHECK-RV64-NEXT:    li s6, 22
940 ; CHECK-RV64-NEXT:    #NO_APP
941 ; CHECK-RV64-NEXT:    #APP
942 ; CHECK-RV64-NEXT:    li s7, 23
943 ; CHECK-RV64-NEXT:    #NO_APP
944 ; CHECK-RV64-NEXT:    #APP
945 ; CHECK-RV64-NEXT:    li s8, 24
946 ; CHECK-RV64-NEXT:    #NO_APP
947 ; CHECK-RV64-NEXT:    #APP
948 ; CHECK-RV64-NEXT:    li s9, 25
949 ; CHECK-RV64-NEXT:    #NO_APP
950 ; CHECK-RV64-NEXT:    #APP
951 ; CHECK-RV64-NEXT:    li s10, 26
952 ; CHECK-RV64-NEXT:    #NO_APP
953 ; CHECK-RV64-NEXT:    #APP
954 ; CHECK-RV64-NEXT:    li s11, 27
955 ; CHECK-RV64-NEXT:    #NO_APP
956 ; CHECK-RV64-NEXT:    #APP
957 ; CHECK-RV64-NEXT:    li t3, 28
958 ; CHECK-RV64-NEXT:    #NO_APP
959 ; CHECK-RV64-NEXT:    #APP
960 ; CHECK-RV64-NEXT:    li t4, 29
961 ; CHECK-RV64-NEXT:    #NO_APP
962 ; CHECK-RV64-NEXT:    #APP
963 ; CHECK-RV64-NEXT:    li t5, 30
964 ; CHECK-RV64-NEXT:    #NO_APP
965 ; CHECK-RV64-NEXT:    sd t0, 0(sp)
966 ; CHECK-RV64-NEXT:    lui t0, 1
967 ; CHECK-RV64-NEXT:    add t0, sp, t0
968 ; CHECK-RV64-NEXT:    sd t5, -8(t0) # 8-byte Folded Spill
969 ; CHECK-RV64-NEXT:    sext.w t5, t5
970 ; CHECK-RV64-NEXT:    #APP
971 ; CHECK-RV64-NEXT:    li t6, 31
972 ; CHECK-RV64-NEXT:    #NO_APP
973 ; CHECK-RV64-NEXT:    lui t0, 1
974 ; CHECK-RV64-NEXT:    add t0, sp, t0
975 ; CHECK-RV64-NEXT:    sd t6, -16(t0) # 8-byte Folded Spill
976 ; CHECK-RV64-NEXT:    ld t0, 0(sp)
977 ; CHECK-RV64-NEXT:    sext.w t6, t6
978 ; CHECK-RV64-NEXT:    beq t5, t6, .LBB3_1
979 ; CHECK-RV64-NEXT:  # %bb.3:
980 ; CHECK-RV64-NEXT:    jump .LBB3_2, t5
981 ; CHECK-RV64-NEXT:  .LBB3_1: # %branch_1
982 ; CHECK-RV64-NEXT:    #APP
983 ; CHECK-RV64-NEXT:    .zero 1048576
984 ; CHECK-RV64-NEXT:    #NO_APP
985 ; CHECK-RV64-NEXT:  .LBB3_2: # %branch_2
986 ; CHECK-RV64-NEXT:    #APP
987 ; CHECK-RV64-NEXT:    # reg use ra
988 ; CHECK-RV64-NEXT:    #NO_APP
989 ; CHECK-RV64-NEXT:    #APP
990 ; CHECK-RV64-NEXT:    # reg use t0
991 ; CHECK-RV64-NEXT:    #NO_APP
992 ; CHECK-RV64-NEXT:    #APP
993 ; CHECK-RV64-NEXT:    # reg use t1
994 ; CHECK-RV64-NEXT:    #NO_APP
995 ; CHECK-RV64-NEXT:    #APP
996 ; CHECK-RV64-NEXT:    # reg use t2
997 ; CHECK-RV64-NEXT:    #NO_APP
998 ; CHECK-RV64-NEXT:    #APP
999 ; CHECK-RV64-NEXT:    # reg use s0
1000 ; CHECK-RV64-NEXT:    #NO_APP
1001 ; CHECK-RV64-NEXT:    #APP
1002 ; CHECK-RV64-NEXT:    # reg use s1
1003 ; CHECK-RV64-NEXT:    #NO_APP
1004 ; CHECK-RV64-NEXT:    #APP
1005 ; CHECK-RV64-NEXT:    # reg use a0
1006 ; CHECK-RV64-NEXT:    #NO_APP
1007 ; CHECK-RV64-NEXT:    #APP
1008 ; CHECK-RV64-NEXT:    # reg use a1
1009 ; CHECK-RV64-NEXT:    #NO_APP
1010 ; CHECK-RV64-NEXT:    #APP
1011 ; CHECK-RV64-NEXT:    # reg use a2
1012 ; CHECK-RV64-NEXT:    #NO_APP
1013 ; CHECK-RV64-NEXT:    #APP
1014 ; CHECK-RV64-NEXT:    # reg use a3
1015 ; CHECK-RV64-NEXT:    #NO_APP
1016 ; CHECK-RV64-NEXT:    #APP
1017 ; CHECK-RV64-NEXT:    # reg use a4
1018 ; CHECK-RV64-NEXT:    #NO_APP
1019 ; CHECK-RV64-NEXT:    #APP
1020 ; CHECK-RV64-NEXT:    # reg use a5
1021 ; CHECK-RV64-NEXT:    #NO_APP
1022 ; CHECK-RV64-NEXT:    #APP
1023 ; CHECK-RV64-NEXT:    # reg use a6
1024 ; CHECK-RV64-NEXT:    #NO_APP
1025 ; CHECK-RV64-NEXT:    #APP
1026 ; CHECK-RV64-NEXT:    # reg use a7
1027 ; CHECK-RV64-NEXT:    #NO_APP
1028 ; CHECK-RV64-NEXT:    #APP
1029 ; CHECK-RV64-NEXT:    # reg use s2
1030 ; CHECK-RV64-NEXT:    #NO_APP
1031 ; CHECK-RV64-NEXT:    #APP
1032 ; CHECK-RV64-NEXT:    # reg use s3
1033 ; CHECK-RV64-NEXT:    #NO_APP
1034 ; CHECK-RV64-NEXT:    #APP
1035 ; CHECK-RV64-NEXT:    # reg use s4
1036 ; CHECK-RV64-NEXT:    #NO_APP
1037 ; CHECK-RV64-NEXT:    #APP
1038 ; CHECK-RV64-NEXT:    # reg use s5
1039 ; CHECK-RV64-NEXT:    #NO_APP
1040 ; CHECK-RV64-NEXT:    #APP
1041 ; CHECK-RV64-NEXT:    # reg use s6
1042 ; CHECK-RV64-NEXT:    #NO_APP
1043 ; CHECK-RV64-NEXT:    #APP
1044 ; CHECK-RV64-NEXT:    # reg use s7
1045 ; CHECK-RV64-NEXT:    #NO_APP
1046 ; CHECK-RV64-NEXT:    #APP
1047 ; CHECK-RV64-NEXT:    # reg use s8
1048 ; CHECK-RV64-NEXT:    #NO_APP
1049 ; CHECK-RV64-NEXT:    #APP
1050 ; CHECK-RV64-NEXT:    # reg use s9
1051 ; CHECK-RV64-NEXT:    #NO_APP
1052 ; CHECK-RV64-NEXT:    #APP
1053 ; CHECK-RV64-NEXT:    # reg use s10
1054 ; CHECK-RV64-NEXT:    #NO_APP
1055 ; CHECK-RV64-NEXT:    #APP
1056 ; CHECK-RV64-NEXT:    # reg use s11
1057 ; CHECK-RV64-NEXT:    #NO_APP
1058 ; CHECK-RV64-NEXT:    #APP
1059 ; CHECK-RV64-NEXT:    # reg use t3
1060 ; CHECK-RV64-NEXT:    #NO_APP
1061 ; CHECK-RV64-NEXT:    #APP
1062 ; CHECK-RV64-NEXT:    # reg use t4
1063 ; CHECK-RV64-NEXT:    #NO_APP
1064 ; CHECK-RV64-NEXT:    lui a0, 1
1065 ; CHECK-RV64-NEXT:    add a0, sp, a0
1066 ; CHECK-RV64-NEXT:    ld t5, -8(a0) # 8-byte Folded Reload
1067 ; CHECK-RV64-NEXT:    #APP
1068 ; CHECK-RV64-NEXT:    # reg use t5
1069 ; CHECK-RV64-NEXT:    #NO_APP
1070 ; CHECK-RV64-NEXT:    lui a0, 1
1071 ; CHECK-RV64-NEXT:    add a0, sp, a0
1072 ; CHECK-RV64-NEXT:    ld t6, -16(a0) # 8-byte Folded Reload
1073 ; CHECK-RV64-NEXT:    #APP
1074 ; CHECK-RV64-NEXT:    # reg use t6
1075 ; CHECK-RV64-NEXT:    #NO_APP
1076 ; CHECK-RV64-NEXT:    lui a0, 2
1077 ; CHECK-RV64-NEXT:    sub sp, s0, a0
1078 ; CHECK-RV64-NEXT:    addiw a0, a0, -2032
1079 ; CHECK-RV64-NEXT:    add sp, sp, a0
1080 ; CHECK-RV64-NEXT:    ld ra, 2024(sp) # 8-byte Folded Reload
1081 ; CHECK-RV64-NEXT:    ld s0, 2016(sp) # 8-byte Folded Reload
1082 ; CHECK-RV64-NEXT:    ld s1, 2008(sp) # 8-byte Folded Reload
1083 ; CHECK-RV64-NEXT:    ld s2, 2000(sp) # 8-byte Folded Reload
1084 ; CHECK-RV64-NEXT:    ld s3, 1992(sp) # 8-byte Folded Reload
1085 ; CHECK-RV64-NEXT:    ld s4, 1984(sp) # 8-byte Folded Reload
1086 ; CHECK-RV64-NEXT:    ld s5, 1976(sp) # 8-byte Folded Reload
1087 ; CHECK-RV64-NEXT:    ld s6, 1968(sp) # 8-byte Folded Reload
1088 ; CHECK-RV64-NEXT:    ld s7, 1960(sp) # 8-byte Folded Reload
1089 ; CHECK-RV64-NEXT:    ld s8, 1952(sp) # 8-byte Folded Reload
1090 ; CHECK-RV64-NEXT:    ld s9, 1944(sp) # 8-byte Folded Reload
1091 ; CHECK-RV64-NEXT:    ld s10, 1936(sp) # 8-byte Folded Reload
1092 ; CHECK-RV64-NEXT:    ld s11, 1928(sp) # 8-byte Folded Reload
1093 ; CHECK-RV64-NEXT:    addi sp, sp, 2032
1094 ; CHECK-RV64-NEXT:    ret
1096   ; If the stack is large and the offset of BranchRelaxationScratchFrameIndex
1097   ; is out the range of 12-bit signed integer, check whether the spill slot is
1098   ; adjusted to close to the stack base register.
1099   %stack_obj = alloca i32, align 4096
1101   %ra = call i32 asm sideeffect "addi ra, x0, 1", "={ra}"()
1102   %t0 = call i32 asm sideeffect "addi t0, x0, 5", "={t0}"()
1103   %t1 = call i32 asm sideeffect "addi t1, x0, 6", "={t1}"()
1104   %t2 = call i32 asm sideeffect "addi t2, x0, 7", "={t2}"()
1105   %s0 = call i32 asm sideeffect "addi s0, x0, 8", "={s0}"()
1106   %s1 = call i32 asm sideeffect "addi s1, x0, 9", "={s1}"()
1107   %a0 = call i32 asm sideeffect "addi a0, x0, 10", "={a0}"()
1108   %a1 = call i32 asm sideeffect "addi a1, x0, 11", "={a1}"()
1109   %a2 = call i32 asm sideeffect "addi a2, x0, 12", "={a2}"()
1110   %a3 = call i32 asm sideeffect "addi a3, x0, 13", "={a3}"()
1111   %a4 = call i32 asm sideeffect "addi a4, x0, 14", "={a4}"()
1112   %a5 = call i32 asm sideeffect "addi a5, x0, 15", "={a5}"()
1113   %a6 = call i32 asm sideeffect "addi a6, x0, 16", "={a6}"()
1114   %a7 = call i32 asm sideeffect "addi a7, x0, 17", "={a7}"()
1115   %s2 = call i32 asm sideeffect "addi s2, x0, 18", "={s2}"()
1116   %s3 = call i32 asm sideeffect "addi s3, x0, 19", "={s3}"()
1117   %s4 = call i32 asm sideeffect "addi s4, x0, 20", "={s4}"()
1118   %s5 = call i32 asm sideeffect "addi s5, x0, 21", "={s5}"()
1119   %s6 = call i32 asm sideeffect "addi s6, x0, 22", "={s6}"()
1120   %s7 = call i32 asm sideeffect "addi s7, x0, 23", "={s7}"()
1121   %s8 = call i32 asm sideeffect "addi s8, x0, 24", "={s8}"()
1122   %s9 = call i32 asm sideeffect "addi s9, x0, 25", "={s9}"()
1123   %s10 = call i32 asm sideeffect "addi s10, x0, 26", "={s10}"()
1124   %s11 = call i32 asm sideeffect "addi s11, x0, 27", "={s11}"()
1125   %t3 = call i32 asm sideeffect "addi t3, x0, 28", "={t3}"()
1126   %t4 = call i32 asm sideeffect "addi t4, x0, 29", "={t4}"()
1127   %t5 = call i32 asm sideeffect "addi t5, x0, 30", "={t5}"()
1128   %t6 = call i32 asm sideeffect "addi t6, x0, 31", "={t6}"()
1130   %cmp = icmp eq i32 %t5, %t6
1131   br i1 %cmp, label %branch_1, label %branch_2
1133 branch_1:
1134   call void asm sideeffect ".space 1048576", ""()
1135   br label %branch_2
1137 branch_2:
1138   call void asm sideeffect "# reg use $0", "{ra}"(i32 %ra)
1139   call void asm sideeffect "# reg use $0", "{t0}"(i32 %t0)
1140   call void asm sideeffect "# reg use $0", "{t1}"(i32 %t1)
1141   call void asm sideeffect "# reg use $0", "{t2}"(i32 %t2)
1142   call void asm sideeffect "# reg use $0", "{s0}"(i32 %s0)
1143   call void asm sideeffect "# reg use $0", "{s1}"(i32 %s1)
1144   call void asm sideeffect "# reg use $0", "{a0}"(i32 %a0)
1145   call void asm sideeffect "# reg use $0", "{a1}"(i32 %a1)
1146   call void asm sideeffect "# reg use $0", "{a2}"(i32 %a2)
1147   call void asm sideeffect "# reg use $0", "{a3}"(i32 %a3)
1148   call void asm sideeffect "# reg use $0", "{a4}"(i32 %a4)
1149   call void asm sideeffect "# reg use $0", "{a5}"(i32 %a5)
1150   call void asm sideeffect "# reg use $0", "{a6}"(i32 %a6)
1151   call void asm sideeffect "# reg use $0", "{a7}"(i32 %a7)
1152   call void asm sideeffect "# reg use $0", "{s2}"(i32 %s2)
1153   call void asm sideeffect "# reg use $0", "{s3}"(i32 %s3)
1154   call void asm sideeffect "# reg use $0", "{s4}"(i32 %s4)
1155   call void asm sideeffect "# reg use $0", "{s5}"(i32 %s5)
1156   call void asm sideeffect "# reg use $0", "{s6}"(i32 %s6)
1157   call void asm sideeffect "# reg use $0", "{s7}"(i32 %s7)
1158   call void asm sideeffect "# reg use $0", "{s8}"(i32 %s8)
1159   call void asm sideeffect "# reg use $0", "{s9}"(i32 %s9)
1160   call void asm sideeffect "# reg use $0", "{s10}"(i32 %s10)
1161   call void asm sideeffect "# reg use $0", "{s11}"(i32 %s11)
1162   call void asm sideeffect "# reg use $0", "{t3}"(i32 %t3)
1163   call void asm sideeffect "# reg use $0", "{t4}"(i32 %t4)
1164   call void asm sideeffect "# reg use $0", "{t5}"(i32 %t5)
1165   call void asm sideeffect "# reg use $0", "{t6}"(i32 %t6)
1167   ret void
1170 define void @relax_jal_spill_64() {
1171 ; CHECK-RV32-LABEL: relax_jal_spill_64:
1172 ; CHECK-RV32:       # %bb.0:
1173 ; CHECK-RV32-NEXT:    addi sp, sp, -272
1174 ; CHECK-RV32-NEXT:    .cfi_def_cfa_offset 272
1175 ; CHECK-RV32-NEXT:    sw ra, 268(sp) # 4-byte Folded Spill
1176 ; CHECK-RV32-NEXT:    sw s0, 264(sp) # 4-byte Folded Spill
1177 ; CHECK-RV32-NEXT:    sw s1, 260(sp) # 4-byte Folded Spill
1178 ; CHECK-RV32-NEXT:    sw s2, 256(sp) # 4-byte Folded Spill
1179 ; CHECK-RV32-NEXT:    sw s3, 252(sp) # 4-byte Folded Spill
1180 ; CHECK-RV32-NEXT:    sw s4, 248(sp) # 4-byte Folded Spill
1181 ; CHECK-RV32-NEXT:    sw s5, 244(sp) # 4-byte Folded Spill
1182 ; CHECK-RV32-NEXT:    sw s6, 240(sp) # 4-byte Folded Spill
1183 ; CHECK-RV32-NEXT:    sw s7, 236(sp) # 4-byte Folded Spill
1184 ; CHECK-RV32-NEXT:    sw s8, 232(sp) # 4-byte Folded Spill
1185 ; CHECK-RV32-NEXT:    sw s9, 228(sp) # 4-byte Folded Spill
1186 ; CHECK-RV32-NEXT:    sw s10, 224(sp) # 4-byte Folded Spill
1187 ; CHECK-RV32-NEXT:    sw s11, 220(sp) # 4-byte Folded Spill
1188 ; CHECK-RV32-NEXT:    .cfi_offset ra, -4
1189 ; CHECK-RV32-NEXT:    .cfi_offset s0, -8
1190 ; CHECK-RV32-NEXT:    .cfi_offset s1, -12
1191 ; CHECK-RV32-NEXT:    .cfi_offset s2, -16
1192 ; CHECK-RV32-NEXT:    .cfi_offset s3, -20
1193 ; CHECK-RV32-NEXT:    .cfi_offset s4, -24
1194 ; CHECK-RV32-NEXT:    .cfi_offset s5, -28
1195 ; CHECK-RV32-NEXT:    .cfi_offset s6, -32
1196 ; CHECK-RV32-NEXT:    .cfi_offset s7, -36
1197 ; CHECK-RV32-NEXT:    .cfi_offset s8, -40
1198 ; CHECK-RV32-NEXT:    .cfi_offset s9, -44
1199 ; CHECK-RV32-NEXT:    .cfi_offset s10, -48
1200 ; CHECK-RV32-NEXT:    .cfi_offset s11, -52
1201 ; CHECK-RV32-NEXT:    #APP
1202 ; CHECK-RV32-NEXT:    li ra, 1
1203 ; CHECK-RV32-NEXT:    #NO_APP
1204 ; CHECK-RV32-NEXT:    #APP
1205 ; CHECK-RV32-NEXT:    li t0, 5
1206 ; CHECK-RV32-NEXT:    #NO_APP
1207 ; CHECK-RV32-NEXT:    sw t0, 216(sp) # 4-byte Folded Spill
1208 ; CHECK-RV32-NEXT:    sw t1, 212(sp) # 4-byte Folded Spill
1209 ; CHECK-RV32-NEXT:    #APP
1210 ; CHECK-RV32-NEXT:    li t1, 6
1211 ; CHECK-RV32-NEXT:    #NO_APP
1212 ; CHECK-RV32-NEXT:    sw t1, 208(sp) # 4-byte Folded Spill
1213 ; CHECK-RV32-NEXT:    sw t2, 204(sp) # 4-byte Folded Spill
1214 ; CHECK-RV32-NEXT:    #APP
1215 ; CHECK-RV32-NEXT:    li t2, 7
1216 ; CHECK-RV32-NEXT:    #NO_APP
1217 ; CHECK-RV32-NEXT:    sw t2, 200(sp) # 4-byte Folded Spill
1218 ; CHECK-RV32-NEXT:    sw t3, 196(sp) # 4-byte Folded Spill
1219 ; CHECK-RV32-NEXT:    #APP
1220 ; CHECK-RV32-NEXT:    li s0, 8
1221 ; CHECK-RV32-NEXT:    #NO_APP
1222 ; CHECK-RV32-NEXT:    sw s0, 192(sp) # 4-byte Folded Spill
1223 ; CHECK-RV32-NEXT:    sw s1, 188(sp) # 4-byte Folded Spill
1224 ; CHECK-RV32-NEXT:    #APP
1225 ; CHECK-RV32-NEXT:    li s1, 9
1226 ; CHECK-RV32-NEXT:    #NO_APP
1227 ; CHECK-RV32-NEXT:    sw s1, 184(sp) # 4-byte Folded Spill
1228 ; CHECK-RV32-NEXT:    sw s2, 180(sp) # 4-byte Folded Spill
1229 ; CHECK-RV32-NEXT:    #APP
1230 ; CHECK-RV32-NEXT:    li a0, 10
1231 ; CHECK-RV32-NEXT:    #NO_APP
1232 ; CHECK-RV32-NEXT:    sw a1, 176(sp) # 4-byte Folded Spill
1233 ; CHECK-RV32-NEXT:    #APP
1234 ; CHECK-RV32-NEXT:    li a1, 11
1235 ; CHECK-RV32-NEXT:    #NO_APP
1236 ; CHECK-RV32-NEXT:    sw a1, 172(sp) # 4-byte Folded Spill
1237 ; CHECK-RV32-NEXT:    sw a2, 168(sp) # 4-byte Folded Spill
1238 ; CHECK-RV32-NEXT:    #APP
1239 ; CHECK-RV32-NEXT:    li a2, 12
1240 ; CHECK-RV32-NEXT:    #NO_APP
1241 ; CHECK-RV32-NEXT:    sw a2, 164(sp) # 4-byte Folded Spill
1242 ; CHECK-RV32-NEXT:    sw a3, 160(sp) # 4-byte Folded Spill
1243 ; CHECK-RV32-NEXT:    #APP
1244 ; CHECK-RV32-NEXT:    li a3, 13
1245 ; CHECK-RV32-NEXT:    #NO_APP
1246 ; CHECK-RV32-NEXT:    sw a3, 156(sp) # 4-byte Folded Spill
1247 ; CHECK-RV32-NEXT:    sw a4, 152(sp) # 4-byte Folded Spill
1248 ; CHECK-RV32-NEXT:    #APP
1249 ; CHECK-RV32-NEXT:    li a4, 14
1250 ; CHECK-RV32-NEXT:    #NO_APP
1251 ; CHECK-RV32-NEXT:    sw a4, 148(sp) # 4-byte Folded Spill
1252 ; CHECK-RV32-NEXT:    sw a5, 144(sp) # 4-byte Folded Spill
1253 ; CHECK-RV32-NEXT:    #APP
1254 ; CHECK-RV32-NEXT:    li a5, 15
1255 ; CHECK-RV32-NEXT:    #NO_APP
1256 ; CHECK-RV32-NEXT:    sw a5, 140(sp) # 4-byte Folded Spill
1257 ; CHECK-RV32-NEXT:    sw a6, 136(sp) # 4-byte Folded Spill
1258 ; CHECK-RV32-NEXT:    #APP
1259 ; CHECK-RV32-NEXT:    li a6, 16
1260 ; CHECK-RV32-NEXT:    #NO_APP
1261 ; CHECK-RV32-NEXT:    sw a6, 132(sp) # 4-byte Folded Spill
1262 ; CHECK-RV32-NEXT:    sw a7, 128(sp) # 4-byte Folded Spill
1263 ; CHECK-RV32-NEXT:    #APP
1264 ; CHECK-RV32-NEXT:    li a7, 17
1265 ; CHECK-RV32-NEXT:    #NO_APP
1266 ; CHECK-RV32-NEXT:    sw a7, 124(sp) # 4-byte Folded Spill
1267 ; CHECK-RV32-NEXT:    sw t0, 120(sp) # 4-byte Folded Spill
1268 ; CHECK-RV32-NEXT:    #APP
1269 ; CHECK-RV32-NEXT:    li s2, 18
1270 ; CHECK-RV32-NEXT:    #NO_APP
1271 ; CHECK-RV32-NEXT:    sw s2, 116(sp) # 4-byte Folded Spill
1272 ; CHECK-RV32-NEXT:    sw s3, 112(sp) # 4-byte Folded Spill
1273 ; CHECK-RV32-NEXT:    #APP
1274 ; CHECK-RV32-NEXT:    li s3, 19
1275 ; CHECK-RV32-NEXT:    #NO_APP
1276 ; CHECK-RV32-NEXT:    sw s3, 108(sp) # 4-byte Folded Spill
1277 ; CHECK-RV32-NEXT:    sw s4, 104(sp) # 4-byte Folded Spill
1278 ; CHECK-RV32-NEXT:    #APP
1279 ; CHECK-RV32-NEXT:    li s4, 20
1280 ; CHECK-RV32-NEXT:    #NO_APP
1281 ; CHECK-RV32-NEXT:    sw s4, 100(sp) # 4-byte Folded Spill
1282 ; CHECK-RV32-NEXT:    sw s5, 96(sp) # 4-byte Folded Spill
1283 ; CHECK-RV32-NEXT:    #APP
1284 ; CHECK-RV32-NEXT:    li s5, 21
1285 ; CHECK-RV32-NEXT:    #NO_APP
1286 ; CHECK-RV32-NEXT:    sw s5, 92(sp) # 4-byte Folded Spill
1287 ; CHECK-RV32-NEXT:    sw s6, 88(sp) # 4-byte Folded Spill
1288 ; CHECK-RV32-NEXT:    #APP
1289 ; CHECK-RV32-NEXT:    li s6, 22
1290 ; CHECK-RV32-NEXT:    #NO_APP
1291 ; CHECK-RV32-NEXT:    sw s6, 84(sp) # 4-byte Folded Spill
1292 ; CHECK-RV32-NEXT:    sw s7, 80(sp) # 4-byte Folded Spill
1293 ; CHECK-RV32-NEXT:    #APP
1294 ; CHECK-RV32-NEXT:    li s7, 23
1295 ; CHECK-RV32-NEXT:    #NO_APP
1296 ; CHECK-RV32-NEXT:    sw s7, 76(sp) # 4-byte Folded Spill
1297 ; CHECK-RV32-NEXT:    sw s8, 72(sp) # 4-byte Folded Spill
1298 ; CHECK-RV32-NEXT:    #APP
1299 ; CHECK-RV32-NEXT:    li s8, 24
1300 ; CHECK-RV32-NEXT:    #NO_APP
1301 ; CHECK-RV32-NEXT:    sw s8, 68(sp) # 4-byte Folded Spill
1302 ; CHECK-RV32-NEXT:    sw s9, 64(sp) # 4-byte Folded Spill
1303 ; CHECK-RV32-NEXT:    #APP
1304 ; CHECK-RV32-NEXT:    li s9, 25
1305 ; CHECK-RV32-NEXT:    #NO_APP
1306 ; CHECK-RV32-NEXT:    sw s9, 60(sp) # 4-byte Folded Spill
1307 ; CHECK-RV32-NEXT:    sw s10, 56(sp) # 4-byte Folded Spill
1308 ; CHECK-RV32-NEXT:    #APP
1309 ; CHECK-RV32-NEXT:    li s10, 26
1310 ; CHECK-RV32-NEXT:    #NO_APP
1311 ; CHECK-RV32-NEXT:    sw s10, 52(sp) # 4-byte Folded Spill
1312 ; CHECK-RV32-NEXT:    sw s11, 48(sp) # 4-byte Folded Spill
1313 ; CHECK-RV32-NEXT:    #APP
1314 ; CHECK-RV32-NEXT:    li s11, 27
1315 ; CHECK-RV32-NEXT:    #NO_APP
1316 ; CHECK-RV32-NEXT:    sw s11, 44(sp) # 4-byte Folded Spill
1317 ; CHECK-RV32-NEXT:    #APP
1318 ; CHECK-RV32-NEXT:    li t3, 28
1319 ; CHECK-RV32-NEXT:    #NO_APP
1320 ; CHECK-RV32-NEXT:    sw t3, 40(sp) # 4-byte Folded Spill
1321 ; CHECK-RV32-NEXT:    sw t4, 36(sp) # 4-byte Folded Spill
1322 ; CHECK-RV32-NEXT:    #APP
1323 ; CHECK-RV32-NEXT:    li t4, 29
1324 ; CHECK-RV32-NEXT:    #NO_APP
1325 ; CHECK-RV32-NEXT:    sw t4, 32(sp) # 4-byte Folded Spill
1326 ; CHECK-RV32-NEXT:    sw t5, 28(sp) # 4-byte Folded Spill
1327 ; CHECK-RV32-NEXT:    #APP
1328 ; CHECK-RV32-NEXT:    li t5, 30
1329 ; CHECK-RV32-NEXT:    #NO_APP
1330 ; CHECK-RV32-NEXT:    mv a1, t6
1331 ; CHECK-RV32-NEXT:    #APP
1332 ; CHECK-RV32-NEXT:    li t6, 31
1333 ; CHECK-RV32-NEXT:    #NO_APP
1334 ; CHECK-RV32-NEXT:    sw a1, 24(sp) # 4-byte Folded Spill
1335 ; CHECK-RV32-NEXT:    sw s0, 12(sp) # 4-byte Folded Spill
1336 ; CHECK-RV32-NEXT:    xor a1, a1, s0
1337 ; CHECK-RV32-NEXT:    sw t6, 20(sp) # 4-byte Folded Spill
1338 ; CHECK-RV32-NEXT:    sw t5, 16(sp) # 4-byte Folded Spill
1339 ; CHECK-RV32-NEXT:    xor a2, t5, t6
1340 ; CHECK-RV32-NEXT:    or a1, a2, a1
1341 ; CHECK-RV32-NEXT:    beqz a1, .LBB4_1
1342 ; CHECK-RV32-NEXT:  # %bb.3:
1343 ; CHECK-RV32-NEXT:    jump .LBB4_2, a1
1344 ; CHECK-RV32-NEXT:  .LBB4_1: # %branch_1
1345 ; CHECK-RV32-NEXT:    #APP
1346 ; CHECK-RV32-NEXT:    .zero 1048576
1347 ; CHECK-RV32-NEXT:    #NO_APP
1348 ; CHECK-RV32-NEXT:  .LBB4_2: # %branch_2
1349 ; CHECK-RV32-NEXT:    #APP
1350 ; CHECK-RV32-NEXT:    # reg use ra
1351 ; CHECK-RV32-NEXT:    #NO_APP
1352 ; CHECK-RV32-NEXT:    lw t0, 216(sp) # 4-byte Folded Reload
1353 ; CHECK-RV32-NEXT:    lw t1, 212(sp) # 4-byte Folded Reload
1354 ; CHECK-RV32-NEXT:    #APP
1355 ; CHECK-RV32-NEXT:    # reg use t0
1356 ; CHECK-RV32-NEXT:    #NO_APP
1357 ; CHECK-RV32-NEXT:    lw t1, 208(sp) # 4-byte Folded Reload
1358 ; CHECK-RV32-NEXT:    lw t2, 204(sp) # 4-byte Folded Reload
1359 ; CHECK-RV32-NEXT:    #APP
1360 ; CHECK-RV32-NEXT:    # reg use t1
1361 ; CHECK-RV32-NEXT:    #NO_APP
1362 ; CHECK-RV32-NEXT:    lw t2, 200(sp) # 4-byte Folded Reload
1363 ; CHECK-RV32-NEXT:    lw t3, 196(sp) # 4-byte Folded Reload
1364 ; CHECK-RV32-NEXT:    #APP
1365 ; CHECK-RV32-NEXT:    # reg use t2
1366 ; CHECK-RV32-NEXT:    #NO_APP
1367 ; CHECK-RV32-NEXT:    lw s0, 192(sp) # 4-byte Folded Reload
1368 ; CHECK-RV32-NEXT:    lw s1, 188(sp) # 4-byte Folded Reload
1369 ; CHECK-RV32-NEXT:    #APP
1370 ; CHECK-RV32-NEXT:    # reg use s0
1371 ; CHECK-RV32-NEXT:    #NO_APP
1372 ; CHECK-RV32-NEXT:    lw s1, 184(sp) # 4-byte Folded Reload
1373 ; CHECK-RV32-NEXT:    lw s2, 180(sp) # 4-byte Folded Reload
1374 ; CHECK-RV32-NEXT:    #APP
1375 ; CHECK-RV32-NEXT:    # reg use s1
1376 ; CHECK-RV32-NEXT:    #NO_APP
1377 ; CHECK-RV32-NEXT:    lw a1, 176(sp) # 4-byte Folded Reload
1378 ; CHECK-RV32-NEXT:    #APP
1379 ; CHECK-RV32-NEXT:    # reg use a0
1380 ; CHECK-RV32-NEXT:    #NO_APP
1381 ; CHECK-RV32-NEXT:    lw a1, 172(sp) # 4-byte Folded Reload
1382 ; CHECK-RV32-NEXT:    lw a2, 168(sp) # 4-byte Folded Reload
1383 ; CHECK-RV32-NEXT:    #APP
1384 ; CHECK-RV32-NEXT:    # reg use a1
1385 ; CHECK-RV32-NEXT:    #NO_APP
1386 ; CHECK-RV32-NEXT:    lw a2, 164(sp) # 4-byte Folded Reload
1387 ; CHECK-RV32-NEXT:    lw a3, 160(sp) # 4-byte Folded Reload
1388 ; CHECK-RV32-NEXT:    #APP
1389 ; CHECK-RV32-NEXT:    # reg use a2
1390 ; CHECK-RV32-NEXT:    #NO_APP
1391 ; CHECK-RV32-NEXT:    lw a3, 156(sp) # 4-byte Folded Reload
1392 ; CHECK-RV32-NEXT:    lw a4, 152(sp) # 4-byte Folded Reload
1393 ; CHECK-RV32-NEXT:    #APP
1394 ; CHECK-RV32-NEXT:    # reg use a3
1395 ; CHECK-RV32-NEXT:    #NO_APP
1396 ; CHECK-RV32-NEXT:    lw a4, 148(sp) # 4-byte Folded Reload
1397 ; CHECK-RV32-NEXT:    lw a5, 144(sp) # 4-byte Folded Reload
1398 ; CHECK-RV32-NEXT:    #APP
1399 ; CHECK-RV32-NEXT:    # reg use a4
1400 ; CHECK-RV32-NEXT:    #NO_APP
1401 ; CHECK-RV32-NEXT:    lw a5, 140(sp) # 4-byte Folded Reload
1402 ; CHECK-RV32-NEXT:    lw a6, 136(sp) # 4-byte Folded Reload
1403 ; CHECK-RV32-NEXT:    #APP
1404 ; CHECK-RV32-NEXT:    # reg use a5
1405 ; CHECK-RV32-NEXT:    #NO_APP
1406 ; CHECK-RV32-NEXT:    lw a6, 132(sp) # 4-byte Folded Reload
1407 ; CHECK-RV32-NEXT:    lw a7, 128(sp) # 4-byte Folded Reload
1408 ; CHECK-RV32-NEXT:    #APP
1409 ; CHECK-RV32-NEXT:    # reg use a6
1410 ; CHECK-RV32-NEXT:    #NO_APP
1411 ; CHECK-RV32-NEXT:    lw a7, 124(sp) # 4-byte Folded Reload
1412 ; CHECK-RV32-NEXT:    lw t0, 120(sp) # 4-byte Folded Reload
1413 ; CHECK-RV32-NEXT:    #APP
1414 ; CHECK-RV32-NEXT:    # reg use a7
1415 ; CHECK-RV32-NEXT:    #NO_APP
1416 ; CHECK-RV32-NEXT:    lw s2, 116(sp) # 4-byte Folded Reload
1417 ; CHECK-RV32-NEXT:    lw s3, 112(sp) # 4-byte Folded Reload
1418 ; CHECK-RV32-NEXT:    #APP
1419 ; CHECK-RV32-NEXT:    # reg use s2
1420 ; CHECK-RV32-NEXT:    #NO_APP
1421 ; CHECK-RV32-NEXT:    lw s3, 108(sp) # 4-byte Folded Reload
1422 ; CHECK-RV32-NEXT:    lw s4, 104(sp) # 4-byte Folded Reload
1423 ; CHECK-RV32-NEXT:    #APP
1424 ; CHECK-RV32-NEXT:    # reg use s3
1425 ; CHECK-RV32-NEXT:    #NO_APP
1426 ; CHECK-RV32-NEXT:    lw s4, 100(sp) # 4-byte Folded Reload
1427 ; CHECK-RV32-NEXT:    lw s5, 96(sp) # 4-byte Folded Reload
1428 ; CHECK-RV32-NEXT:    #APP
1429 ; CHECK-RV32-NEXT:    # reg use s4
1430 ; CHECK-RV32-NEXT:    #NO_APP
1431 ; CHECK-RV32-NEXT:    lw s5, 92(sp) # 4-byte Folded Reload
1432 ; CHECK-RV32-NEXT:    lw s6, 88(sp) # 4-byte Folded Reload
1433 ; CHECK-RV32-NEXT:    #APP
1434 ; CHECK-RV32-NEXT:    # reg use s5
1435 ; CHECK-RV32-NEXT:    #NO_APP
1436 ; CHECK-RV32-NEXT:    lw s6, 84(sp) # 4-byte Folded Reload
1437 ; CHECK-RV32-NEXT:    lw s7, 80(sp) # 4-byte Folded Reload
1438 ; CHECK-RV32-NEXT:    #APP
1439 ; CHECK-RV32-NEXT:    # reg use s6
1440 ; CHECK-RV32-NEXT:    #NO_APP
1441 ; CHECK-RV32-NEXT:    lw s7, 76(sp) # 4-byte Folded Reload
1442 ; CHECK-RV32-NEXT:    lw s8, 72(sp) # 4-byte Folded Reload
1443 ; CHECK-RV32-NEXT:    #APP
1444 ; CHECK-RV32-NEXT:    # reg use s7
1445 ; CHECK-RV32-NEXT:    #NO_APP
1446 ; CHECK-RV32-NEXT:    lw s8, 68(sp) # 4-byte Folded Reload
1447 ; CHECK-RV32-NEXT:    lw s9, 64(sp) # 4-byte Folded Reload
1448 ; CHECK-RV32-NEXT:    #APP
1449 ; CHECK-RV32-NEXT:    # reg use s8
1450 ; CHECK-RV32-NEXT:    #NO_APP
1451 ; CHECK-RV32-NEXT:    lw s9, 60(sp) # 4-byte Folded Reload
1452 ; CHECK-RV32-NEXT:    lw s10, 56(sp) # 4-byte Folded Reload
1453 ; CHECK-RV32-NEXT:    #APP
1454 ; CHECK-RV32-NEXT:    # reg use s9
1455 ; CHECK-RV32-NEXT:    #NO_APP
1456 ; CHECK-RV32-NEXT:    lw s10, 52(sp) # 4-byte Folded Reload
1457 ; CHECK-RV32-NEXT:    lw s11, 48(sp) # 4-byte Folded Reload
1458 ; CHECK-RV32-NEXT:    #APP
1459 ; CHECK-RV32-NEXT:    # reg use s10
1460 ; CHECK-RV32-NEXT:    #NO_APP
1461 ; CHECK-RV32-NEXT:    lw s11, 44(sp) # 4-byte Folded Reload
1462 ; CHECK-RV32-NEXT:    #APP
1463 ; CHECK-RV32-NEXT:    # reg use s11
1464 ; CHECK-RV32-NEXT:    #NO_APP
1465 ; CHECK-RV32-NEXT:    lw t3, 40(sp) # 4-byte Folded Reload
1466 ; CHECK-RV32-NEXT:    lw t4, 36(sp) # 4-byte Folded Reload
1467 ; CHECK-RV32-NEXT:    #APP
1468 ; CHECK-RV32-NEXT:    # reg use t3
1469 ; CHECK-RV32-NEXT:    #NO_APP
1470 ; CHECK-RV32-NEXT:    lw t4, 32(sp) # 4-byte Folded Reload
1471 ; CHECK-RV32-NEXT:    lw t5, 28(sp) # 4-byte Folded Reload
1472 ; CHECK-RV32-NEXT:    #APP
1473 ; CHECK-RV32-NEXT:    # reg use t4
1474 ; CHECK-RV32-NEXT:    #NO_APP
1475 ; CHECK-RV32-NEXT:    lw t5, 16(sp) # 4-byte Folded Reload
1476 ; CHECK-RV32-NEXT:    lw t6, 24(sp) # 4-byte Folded Reload
1477 ; CHECK-RV32-NEXT:    #APP
1478 ; CHECK-RV32-NEXT:    # reg use t5
1479 ; CHECK-RV32-NEXT:    #NO_APP
1480 ; CHECK-RV32-NEXT:    lw t6, 20(sp) # 4-byte Folded Reload
1481 ; CHECK-RV32-NEXT:    lw s0, 12(sp) # 4-byte Folded Reload
1482 ; CHECK-RV32-NEXT:    #APP
1483 ; CHECK-RV32-NEXT:    # reg use t6
1484 ; CHECK-RV32-NEXT:    #NO_APP
1485 ; CHECK-RV32-NEXT:    lw ra, 268(sp) # 4-byte Folded Reload
1486 ; CHECK-RV32-NEXT:    lw s0, 264(sp) # 4-byte Folded Reload
1487 ; CHECK-RV32-NEXT:    lw s1, 260(sp) # 4-byte Folded Reload
1488 ; CHECK-RV32-NEXT:    lw s2, 256(sp) # 4-byte Folded Reload
1489 ; CHECK-RV32-NEXT:    lw s3, 252(sp) # 4-byte Folded Reload
1490 ; CHECK-RV32-NEXT:    lw s4, 248(sp) # 4-byte Folded Reload
1491 ; CHECK-RV32-NEXT:    lw s5, 244(sp) # 4-byte Folded Reload
1492 ; CHECK-RV32-NEXT:    lw s6, 240(sp) # 4-byte Folded Reload
1493 ; CHECK-RV32-NEXT:    lw s7, 236(sp) # 4-byte Folded Reload
1494 ; CHECK-RV32-NEXT:    lw s8, 232(sp) # 4-byte Folded Reload
1495 ; CHECK-RV32-NEXT:    lw s9, 228(sp) # 4-byte Folded Reload
1496 ; CHECK-RV32-NEXT:    lw s10, 224(sp) # 4-byte Folded Reload
1497 ; CHECK-RV32-NEXT:    lw s11, 220(sp) # 4-byte Folded Reload
1498 ; CHECK-RV32-NEXT:    addi sp, sp, 272
1499 ; CHECK-RV32-NEXT:    ret
1501 ; CHECK-RV64-LABEL: relax_jal_spill_64:
1502 ; CHECK-RV64:       # %bb.0:
1503 ; CHECK-RV64-NEXT:    addi sp, sp, -112
1504 ; CHECK-RV64-NEXT:    .cfi_def_cfa_offset 112
1505 ; CHECK-RV64-NEXT:    sd ra, 104(sp) # 8-byte Folded Spill
1506 ; CHECK-RV64-NEXT:    sd s0, 96(sp) # 8-byte Folded Spill
1507 ; CHECK-RV64-NEXT:    sd s1, 88(sp) # 8-byte Folded Spill
1508 ; CHECK-RV64-NEXT:    sd s2, 80(sp) # 8-byte Folded Spill
1509 ; CHECK-RV64-NEXT:    sd s3, 72(sp) # 8-byte Folded Spill
1510 ; CHECK-RV64-NEXT:    sd s4, 64(sp) # 8-byte Folded Spill
1511 ; CHECK-RV64-NEXT:    sd s5, 56(sp) # 8-byte Folded Spill
1512 ; CHECK-RV64-NEXT:    sd s6, 48(sp) # 8-byte Folded Spill
1513 ; CHECK-RV64-NEXT:    sd s7, 40(sp) # 8-byte Folded Spill
1514 ; CHECK-RV64-NEXT:    sd s8, 32(sp) # 8-byte Folded Spill
1515 ; CHECK-RV64-NEXT:    sd s9, 24(sp) # 8-byte Folded Spill
1516 ; CHECK-RV64-NEXT:    sd s10, 16(sp) # 8-byte Folded Spill
1517 ; CHECK-RV64-NEXT:    sd s11, 8(sp) # 8-byte Folded Spill
1518 ; CHECK-RV64-NEXT:    .cfi_offset ra, -8
1519 ; CHECK-RV64-NEXT:    .cfi_offset s0, -16
1520 ; CHECK-RV64-NEXT:    .cfi_offset s1, -24
1521 ; CHECK-RV64-NEXT:    .cfi_offset s2, -32
1522 ; CHECK-RV64-NEXT:    .cfi_offset s3, -40
1523 ; CHECK-RV64-NEXT:    .cfi_offset s4, -48
1524 ; CHECK-RV64-NEXT:    .cfi_offset s5, -56
1525 ; CHECK-RV64-NEXT:    .cfi_offset s6, -64
1526 ; CHECK-RV64-NEXT:    .cfi_offset s7, -72
1527 ; CHECK-RV64-NEXT:    .cfi_offset s8, -80
1528 ; CHECK-RV64-NEXT:    .cfi_offset s9, -88
1529 ; CHECK-RV64-NEXT:    .cfi_offset s10, -96
1530 ; CHECK-RV64-NEXT:    .cfi_offset s11, -104
1531 ; CHECK-RV64-NEXT:    #APP
1532 ; CHECK-RV64-NEXT:    li ra, 1
1533 ; CHECK-RV64-NEXT:    #NO_APP
1534 ; CHECK-RV64-NEXT:    #APP
1535 ; CHECK-RV64-NEXT:    li t0, 5
1536 ; CHECK-RV64-NEXT:    #NO_APP
1537 ; CHECK-RV64-NEXT:    #APP
1538 ; CHECK-RV64-NEXT:    li t1, 6
1539 ; CHECK-RV64-NEXT:    #NO_APP
1540 ; CHECK-RV64-NEXT:    #APP
1541 ; CHECK-RV64-NEXT:    li t2, 7
1542 ; CHECK-RV64-NEXT:    #NO_APP
1543 ; CHECK-RV64-NEXT:    #APP
1544 ; CHECK-RV64-NEXT:    li s0, 8
1545 ; CHECK-RV64-NEXT:    #NO_APP
1546 ; CHECK-RV64-NEXT:    #APP
1547 ; CHECK-RV64-NEXT:    li s1, 9
1548 ; CHECK-RV64-NEXT:    #NO_APP
1549 ; CHECK-RV64-NEXT:    #APP
1550 ; CHECK-RV64-NEXT:    li a0, 10
1551 ; CHECK-RV64-NEXT:    #NO_APP
1552 ; CHECK-RV64-NEXT:    #APP
1553 ; CHECK-RV64-NEXT:    li a1, 11
1554 ; CHECK-RV64-NEXT:    #NO_APP
1555 ; CHECK-RV64-NEXT:    #APP
1556 ; CHECK-RV64-NEXT:    li a2, 12
1557 ; CHECK-RV64-NEXT:    #NO_APP
1558 ; CHECK-RV64-NEXT:    #APP
1559 ; CHECK-RV64-NEXT:    li a3, 13
1560 ; CHECK-RV64-NEXT:    #NO_APP
1561 ; CHECK-RV64-NEXT:    #APP
1562 ; CHECK-RV64-NEXT:    li a4, 14
1563 ; CHECK-RV64-NEXT:    #NO_APP
1564 ; CHECK-RV64-NEXT:    #APP
1565 ; CHECK-RV64-NEXT:    li a5, 15
1566 ; CHECK-RV64-NEXT:    #NO_APP
1567 ; CHECK-RV64-NEXT:    #APP
1568 ; CHECK-RV64-NEXT:    li a6, 16
1569 ; CHECK-RV64-NEXT:    #NO_APP
1570 ; CHECK-RV64-NEXT:    #APP
1571 ; CHECK-RV64-NEXT:    li a7, 17
1572 ; CHECK-RV64-NEXT:    #NO_APP
1573 ; CHECK-RV64-NEXT:    #APP
1574 ; CHECK-RV64-NEXT:    li s2, 18
1575 ; CHECK-RV64-NEXT:    #NO_APP
1576 ; CHECK-RV64-NEXT:    #APP
1577 ; CHECK-RV64-NEXT:    li s3, 19
1578 ; CHECK-RV64-NEXT:    #NO_APP
1579 ; CHECK-RV64-NEXT:    #APP
1580 ; CHECK-RV64-NEXT:    li s4, 20
1581 ; CHECK-RV64-NEXT:    #NO_APP
1582 ; CHECK-RV64-NEXT:    #APP
1583 ; CHECK-RV64-NEXT:    li s5, 21
1584 ; CHECK-RV64-NEXT:    #NO_APP
1585 ; CHECK-RV64-NEXT:    #APP
1586 ; CHECK-RV64-NEXT:    li s6, 22
1587 ; CHECK-RV64-NEXT:    #NO_APP
1588 ; CHECK-RV64-NEXT:    #APP
1589 ; CHECK-RV64-NEXT:    li s7, 23
1590 ; CHECK-RV64-NEXT:    #NO_APP
1591 ; CHECK-RV64-NEXT:    #APP
1592 ; CHECK-RV64-NEXT:    li s8, 24
1593 ; CHECK-RV64-NEXT:    #NO_APP
1594 ; CHECK-RV64-NEXT:    #APP
1595 ; CHECK-RV64-NEXT:    li s9, 25
1596 ; CHECK-RV64-NEXT:    #NO_APP
1597 ; CHECK-RV64-NEXT:    #APP
1598 ; CHECK-RV64-NEXT:    li s10, 26
1599 ; CHECK-RV64-NEXT:    #NO_APP
1600 ; CHECK-RV64-NEXT:    #APP
1601 ; CHECK-RV64-NEXT:    li s11, 27
1602 ; CHECK-RV64-NEXT:    #NO_APP
1603 ; CHECK-RV64-NEXT:    #APP
1604 ; CHECK-RV64-NEXT:    li t3, 28
1605 ; CHECK-RV64-NEXT:    #NO_APP
1606 ; CHECK-RV64-NEXT:    #APP
1607 ; CHECK-RV64-NEXT:    li t4, 29
1608 ; CHECK-RV64-NEXT:    #NO_APP
1609 ; CHECK-RV64-NEXT:    #APP
1610 ; CHECK-RV64-NEXT:    li t5, 30
1611 ; CHECK-RV64-NEXT:    #NO_APP
1612 ; CHECK-RV64-NEXT:    #APP
1613 ; CHECK-RV64-NEXT:    li t6, 31
1614 ; CHECK-RV64-NEXT:    #NO_APP
1615 ; CHECK-RV64-NEXT:    beq t5, t6, .LBB4_1
1616 ; CHECK-RV64-NEXT:  # %bb.3:
1617 ; CHECK-RV64-NEXT:    sd s11, 0(sp)
1618 ; CHECK-RV64-NEXT:    jump .LBB4_4, s11
1619 ; CHECK-RV64-NEXT:  .LBB4_1: # %branch_1
1620 ; CHECK-RV64-NEXT:    #APP
1621 ; CHECK-RV64-NEXT:    .zero 1048576
1622 ; CHECK-RV64-NEXT:    #NO_APP
1623 ; CHECK-RV64-NEXT:    j .LBB4_2
1624 ; CHECK-RV64-NEXT:  .LBB4_4: # %branch_2
1625 ; CHECK-RV64-NEXT:    ld s11, 0(sp)
1626 ; CHECK-RV64-NEXT:  .LBB4_2: # %branch_2
1627 ; CHECK-RV64-NEXT:    #APP
1628 ; CHECK-RV64-NEXT:    # reg use ra
1629 ; CHECK-RV64-NEXT:    #NO_APP
1630 ; CHECK-RV64-NEXT:    #APP
1631 ; CHECK-RV64-NEXT:    # reg use t0
1632 ; CHECK-RV64-NEXT:    #NO_APP
1633 ; CHECK-RV64-NEXT:    #APP
1634 ; CHECK-RV64-NEXT:    # reg use t1
1635 ; CHECK-RV64-NEXT:    #NO_APP
1636 ; CHECK-RV64-NEXT:    #APP
1637 ; CHECK-RV64-NEXT:    # reg use t2
1638 ; CHECK-RV64-NEXT:    #NO_APP
1639 ; CHECK-RV64-NEXT:    #APP
1640 ; CHECK-RV64-NEXT:    # reg use s0
1641 ; CHECK-RV64-NEXT:    #NO_APP
1642 ; CHECK-RV64-NEXT:    #APP
1643 ; CHECK-RV64-NEXT:    # reg use s1
1644 ; CHECK-RV64-NEXT:    #NO_APP
1645 ; CHECK-RV64-NEXT:    #APP
1646 ; CHECK-RV64-NEXT:    # reg use a0
1647 ; CHECK-RV64-NEXT:    #NO_APP
1648 ; CHECK-RV64-NEXT:    #APP
1649 ; CHECK-RV64-NEXT:    # reg use a1
1650 ; CHECK-RV64-NEXT:    #NO_APP
1651 ; CHECK-RV64-NEXT:    #APP
1652 ; CHECK-RV64-NEXT:    # reg use a2
1653 ; CHECK-RV64-NEXT:    #NO_APP
1654 ; CHECK-RV64-NEXT:    #APP
1655 ; CHECK-RV64-NEXT:    # reg use a3
1656 ; CHECK-RV64-NEXT:    #NO_APP
1657 ; CHECK-RV64-NEXT:    #APP
1658 ; CHECK-RV64-NEXT:    # reg use a4
1659 ; CHECK-RV64-NEXT:    #NO_APP
1660 ; CHECK-RV64-NEXT:    #APP
1661 ; CHECK-RV64-NEXT:    # reg use a5
1662 ; CHECK-RV64-NEXT:    #NO_APP
1663 ; CHECK-RV64-NEXT:    #APP
1664 ; CHECK-RV64-NEXT:    # reg use a6
1665 ; CHECK-RV64-NEXT:    #NO_APP
1666 ; CHECK-RV64-NEXT:    #APP
1667 ; CHECK-RV64-NEXT:    # reg use a7
1668 ; CHECK-RV64-NEXT:    #NO_APP
1669 ; CHECK-RV64-NEXT:    #APP
1670 ; CHECK-RV64-NEXT:    # reg use s2
1671 ; CHECK-RV64-NEXT:    #NO_APP
1672 ; CHECK-RV64-NEXT:    #APP
1673 ; CHECK-RV64-NEXT:    # reg use s3
1674 ; CHECK-RV64-NEXT:    #NO_APP
1675 ; CHECK-RV64-NEXT:    #APP
1676 ; CHECK-RV64-NEXT:    # reg use s4
1677 ; CHECK-RV64-NEXT:    #NO_APP
1678 ; CHECK-RV64-NEXT:    #APP
1679 ; CHECK-RV64-NEXT:    # reg use s5
1680 ; CHECK-RV64-NEXT:    #NO_APP
1681 ; CHECK-RV64-NEXT:    #APP
1682 ; CHECK-RV64-NEXT:    # reg use s6
1683 ; CHECK-RV64-NEXT:    #NO_APP
1684 ; CHECK-RV64-NEXT:    #APP
1685 ; CHECK-RV64-NEXT:    # reg use s7
1686 ; CHECK-RV64-NEXT:    #NO_APP
1687 ; CHECK-RV64-NEXT:    #APP
1688 ; CHECK-RV64-NEXT:    # reg use s8
1689 ; CHECK-RV64-NEXT:    #NO_APP
1690 ; CHECK-RV64-NEXT:    #APP
1691 ; CHECK-RV64-NEXT:    # reg use s9
1692 ; CHECK-RV64-NEXT:    #NO_APP
1693 ; CHECK-RV64-NEXT:    #APP
1694 ; CHECK-RV64-NEXT:    # reg use s10
1695 ; CHECK-RV64-NEXT:    #NO_APP
1696 ; CHECK-RV64-NEXT:    #APP
1697 ; CHECK-RV64-NEXT:    # reg use s11
1698 ; CHECK-RV64-NEXT:    #NO_APP
1699 ; CHECK-RV64-NEXT:    #APP
1700 ; CHECK-RV64-NEXT:    # reg use t3
1701 ; CHECK-RV64-NEXT:    #NO_APP
1702 ; CHECK-RV64-NEXT:    #APP
1703 ; CHECK-RV64-NEXT:    # reg use t4
1704 ; CHECK-RV64-NEXT:    #NO_APP
1705 ; CHECK-RV64-NEXT:    #APP
1706 ; CHECK-RV64-NEXT:    # reg use t5
1707 ; CHECK-RV64-NEXT:    #NO_APP
1708 ; CHECK-RV64-NEXT:    #APP
1709 ; CHECK-RV64-NEXT:    # reg use t6
1710 ; CHECK-RV64-NEXT:    #NO_APP
1711 ; CHECK-RV64-NEXT:    ld ra, 104(sp) # 8-byte Folded Reload
1712 ; CHECK-RV64-NEXT:    ld s0, 96(sp) # 8-byte Folded Reload
1713 ; CHECK-RV64-NEXT:    ld s1, 88(sp) # 8-byte Folded Reload
1714 ; CHECK-RV64-NEXT:    ld s2, 80(sp) # 8-byte Folded Reload
1715 ; CHECK-RV64-NEXT:    ld s3, 72(sp) # 8-byte Folded Reload
1716 ; CHECK-RV64-NEXT:    ld s4, 64(sp) # 8-byte Folded Reload
1717 ; CHECK-RV64-NEXT:    ld s5, 56(sp) # 8-byte Folded Reload
1718 ; CHECK-RV64-NEXT:    ld s6, 48(sp) # 8-byte Folded Reload
1719 ; CHECK-RV64-NEXT:    ld s7, 40(sp) # 8-byte Folded Reload
1720 ; CHECK-RV64-NEXT:    ld s8, 32(sp) # 8-byte Folded Reload
1721 ; CHECK-RV64-NEXT:    ld s9, 24(sp) # 8-byte Folded Reload
1722 ; CHECK-RV64-NEXT:    ld s10, 16(sp) # 8-byte Folded Reload
1723 ; CHECK-RV64-NEXT:    ld s11, 8(sp) # 8-byte Folded Reload
1724 ; CHECK-RV64-NEXT:    addi sp, sp, 112
1725 ; CHECK-RV64-NEXT:    ret
1727   %ra = call i64 asm sideeffect "addi ra, x0, 1", "={ra}"()
1728   %t0 = call i64 asm sideeffect "addi t0, x0, 5", "={t0}"()
1729   %t1 = call i64 asm sideeffect "addi t1, x0, 6", "={t1}"()
1730   %t2 = call i64 asm sideeffect "addi t2, x0, 7", "={t2}"()
1731   %s0 = call i64 asm sideeffect "addi s0, x0, 8", "={s0}"()
1732   %s1 = call i64 asm sideeffect "addi s1, x0, 9", "={s1}"()
1733   %a0 = call i64 asm sideeffect "addi a0, x0, 10", "={a0}"()
1734   %a1 = call i64 asm sideeffect "addi a1, x0, 11", "={a1}"()
1735   %a2 = call i64 asm sideeffect "addi a2, x0, 12", "={a2}"()
1736   %a3 = call i64 asm sideeffect "addi a3, x0, 13", "={a3}"()
1737   %a4 = call i64 asm sideeffect "addi a4, x0, 14", "={a4}"()
1738   %a5 = call i64 asm sideeffect "addi a5, x0, 15", "={a5}"()
1739   %a6 = call i64 asm sideeffect "addi a6, x0, 16", "={a6}"()
1740   %a7 = call i64 asm sideeffect "addi a7, x0, 17", "={a7}"()
1741   %s2 = call i64 asm sideeffect "addi s2, x0, 18", "={s2}"()
1742   %s3 = call i64 asm sideeffect "addi s3, x0, 19", "={s3}"()
1743   %s4 = call i64 asm sideeffect "addi s4, x0, 20", "={s4}"()
1744   %s5 = call i64 asm sideeffect "addi s5, x0, 21", "={s5}"()
1745   %s6 = call i64 asm sideeffect "addi s6, x0, 22", "={s6}"()
1746   %s7 = call i64 asm sideeffect "addi s7, x0, 23", "={s7}"()
1747   %s8 = call i64 asm sideeffect "addi s8, x0, 24", "={s8}"()
1748   %s9 = call i64 asm sideeffect "addi s9, x0, 25", "={s9}"()
1749   %s10 = call i64 asm sideeffect "addi s10, x0, 26", "={s10}"()
1750   %s11 = call i64 asm sideeffect "addi s11, x0, 27", "={s11}"()
1751   %t3 = call i64 asm sideeffect "addi t3, x0, 28", "={t3}"()
1752   %t4 = call i64 asm sideeffect "addi t4, x0, 29", "={t4}"()
1753   %t5 = call i64 asm sideeffect "addi t5, x0, 30", "={t5}"()
1754   %t6 = call i64 asm sideeffect "addi t6, x0, 31", "={t6}"()
1756   %cmp = icmp eq i64 %t5, %t6
1757   br i1 %cmp, label %branch_1, label %branch_2
1759 branch_1:
1760   call void asm sideeffect ".space 1048576", ""()
1761   br label %branch_2
1763 branch_2:
1764   call void asm sideeffect "# reg use $0", "{ra}"(i64 %ra)
1765   call void asm sideeffect "# reg use $0", "{t0}"(i64 %t0)
1766   call void asm sideeffect "# reg use $0", "{t1}"(i64 %t1)
1767   call void asm sideeffect "# reg use $0", "{t2}"(i64 %t2)
1768   call void asm sideeffect "# reg use $0", "{s0}"(i64 %s0)
1769   call void asm sideeffect "# reg use $0", "{s1}"(i64 %s1)
1770   call void asm sideeffect "# reg use $0", "{a0}"(i64 %a0)
1771   call void asm sideeffect "# reg use $0", "{a1}"(i64 %a1)
1772   call void asm sideeffect "# reg use $0", "{a2}"(i64 %a2)
1773   call void asm sideeffect "# reg use $0", "{a3}"(i64 %a3)
1774   call void asm sideeffect "# reg use $0", "{a4}"(i64 %a4)
1775   call void asm sideeffect "# reg use $0", "{a5}"(i64 %a5)
1776   call void asm sideeffect "# reg use $0", "{a6}"(i64 %a6)
1777   call void asm sideeffect "# reg use $0", "{a7}"(i64 %a7)
1778   call void asm sideeffect "# reg use $0", "{s2}"(i64 %s2)
1779   call void asm sideeffect "# reg use $0", "{s3}"(i64 %s3)
1780   call void asm sideeffect "# reg use $0", "{s4}"(i64 %s4)
1781   call void asm sideeffect "# reg use $0", "{s5}"(i64 %s5)
1782   call void asm sideeffect "# reg use $0", "{s6}"(i64 %s6)
1783   call void asm sideeffect "# reg use $0", "{s7}"(i64 %s7)
1784   call void asm sideeffect "# reg use $0", "{s8}"(i64 %s8)
1785   call void asm sideeffect "# reg use $0", "{s9}"(i64 %s9)
1786   call void asm sideeffect "# reg use $0", "{s10}"(i64 %s10)
1787   call void asm sideeffect "# reg use $0", "{s11}"(i64 %s11)
1788   call void asm sideeffect "# reg use $0", "{t3}"(i64 %t3)
1789   call void asm sideeffect "# reg use $0", "{t4}"(i64 %t4)
1790   call void asm sideeffect "# reg use $0", "{t5}"(i64 %t5)
1791   call void asm sideeffect "# reg use $0", "{t6}"(i64 %t6)
1793   ret void
1796 define void @relax_jal_spill_64_adjust_spill_slot() {
1797 ; CHECK-RV32-LABEL: relax_jal_spill_64_adjust_spill_slot:
1798 ; CHECK-RV32:       # %bb.0:
1799 ; CHECK-RV32-NEXT:    addi sp, sp, -2032
1800 ; CHECK-RV32-NEXT:    .cfi_def_cfa_offset 2032
1801 ; CHECK-RV32-NEXT:    sw ra, 2028(sp) # 4-byte Folded Spill
1802 ; CHECK-RV32-NEXT:    sw s0, 2024(sp) # 4-byte Folded Spill
1803 ; CHECK-RV32-NEXT:    sw s1, 2020(sp) # 4-byte Folded Spill
1804 ; CHECK-RV32-NEXT:    sw s2, 2016(sp) # 4-byte Folded Spill
1805 ; CHECK-RV32-NEXT:    sw s3, 2012(sp) # 4-byte Folded Spill
1806 ; CHECK-RV32-NEXT:    sw s4, 2008(sp) # 4-byte Folded Spill
1807 ; CHECK-RV32-NEXT:    sw s5, 2004(sp) # 4-byte Folded Spill
1808 ; CHECK-RV32-NEXT:    sw s6, 2000(sp) # 4-byte Folded Spill
1809 ; CHECK-RV32-NEXT:    sw s7, 1996(sp) # 4-byte Folded Spill
1810 ; CHECK-RV32-NEXT:    sw s8, 1992(sp) # 4-byte Folded Spill
1811 ; CHECK-RV32-NEXT:    sw s9, 1988(sp) # 4-byte Folded Spill
1812 ; CHECK-RV32-NEXT:    sw s10, 1984(sp) # 4-byte Folded Spill
1813 ; CHECK-RV32-NEXT:    sw s11, 1980(sp) # 4-byte Folded Spill
1814 ; CHECK-RV32-NEXT:    .cfi_offset ra, -4
1815 ; CHECK-RV32-NEXT:    .cfi_offset s0, -8
1816 ; CHECK-RV32-NEXT:    .cfi_offset s1, -12
1817 ; CHECK-RV32-NEXT:    .cfi_offset s2, -16
1818 ; CHECK-RV32-NEXT:    .cfi_offset s3, -20
1819 ; CHECK-RV32-NEXT:    .cfi_offset s4, -24
1820 ; CHECK-RV32-NEXT:    .cfi_offset s5, -28
1821 ; CHECK-RV32-NEXT:    .cfi_offset s6, -32
1822 ; CHECK-RV32-NEXT:    .cfi_offset s7, -36
1823 ; CHECK-RV32-NEXT:    .cfi_offset s8, -40
1824 ; CHECK-RV32-NEXT:    .cfi_offset s9, -44
1825 ; CHECK-RV32-NEXT:    .cfi_offset s10, -48
1826 ; CHECK-RV32-NEXT:    .cfi_offset s11, -52
1827 ; CHECK-RV32-NEXT:    addi s0, sp, 2032
1828 ; CHECK-RV32-NEXT:    .cfi_def_cfa s0, 0
1829 ; CHECK-RV32-NEXT:    lui a0, 2
1830 ; CHECK-RV32-NEXT:    addi a0, a0, -2032
1831 ; CHECK-RV32-NEXT:    sub sp, sp, a0
1832 ; CHECK-RV32-NEXT:    srli a0, sp, 12
1833 ; CHECK-RV32-NEXT:    slli sp, a0, 12
1834 ; CHECK-RV32-NEXT:    #APP
1835 ; CHECK-RV32-NEXT:    li ra, 1
1836 ; CHECK-RV32-NEXT:    #NO_APP
1837 ; CHECK-RV32-NEXT:    #APP
1838 ; CHECK-RV32-NEXT:    li t0, 5
1839 ; CHECK-RV32-NEXT:    #NO_APP
1840 ; CHECK-RV32-NEXT:    lui a0, 1
1841 ; CHECK-RV32-NEXT:    add a0, sp, a0
1842 ; CHECK-RV32-NEXT:    sw t0, -4(a0) # 4-byte Folded Spill
1843 ; CHECK-RV32-NEXT:    lui a0, 1
1844 ; CHECK-RV32-NEXT:    add a0, sp, a0
1845 ; CHECK-RV32-NEXT:    sw t1, -8(a0) # 4-byte Folded Spill
1846 ; CHECK-RV32-NEXT:    #APP
1847 ; CHECK-RV32-NEXT:    li t1, 6
1848 ; CHECK-RV32-NEXT:    #NO_APP
1849 ; CHECK-RV32-NEXT:    lui a0, 1
1850 ; CHECK-RV32-NEXT:    add a0, sp, a0
1851 ; CHECK-RV32-NEXT:    sw t1, -12(a0) # 4-byte Folded Spill
1852 ; CHECK-RV32-NEXT:    lui a0, 1
1853 ; CHECK-RV32-NEXT:    add a0, sp, a0
1854 ; CHECK-RV32-NEXT:    sw t2, -16(a0) # 4-byte Folded Spill
1855 ; CHECK-RV32-NEXT:    #APP
1856 ; CHECK-RV32-NEXT:    li t2, 7
1857 ; CHECK-RV32-NEXT:    #NO_APP
1858 ; CHECK-RV32-NEXT:    lui a0, 1
1859 ; CHECK-RV32-NEXT:    add a0, sp, a0
1860 ; CHECK-RV32-NEXT:    sw t2, -20(a0) # 4-byte Folded Spill
1861 ; CHECK-RV32-NEXT:    lui a0, 1
1862 ; CHECK-RV32-NEXT:    add a0, sp, a0
1863 ; CHECK-RV32-NEXT:    sw t3, -24(a0) # 4-byte Folded Spill
1864 ; CHECK-RV32-NEXT:    #APP
1865 ; CHECK-RV32-NEXT:    li s0, 8
1866 ; CHECK-RV32-NEXT:    #NO_APP
1867 ; CHECK-RV32-NEXT:    lui a0, 1
1868 ; CHECK-RV32-NEXT:    add a0, sp, a0
1869 ; CHECK-RV32-NEXT:    sw s0, -28(a0) # 4-byte Folded Spill
1870 ; CHECK-RV32-NEXT:    lui a0, 1
1871 ; CHECK-RV32-NEXT:    add a0, sp, a0
1872 ; CHECK-RV32-NEXT:    sw s1, -32(a0) # 4-byte Folded Spill
1873 ; CHECK-RV32-NEXT:    #APP
1874 ; CHECK-RV32-NEXT:    li s1, 9
1875 ; CHECK-RV32-NEXT:    #NO_APP
1876 ; CHECK-RV32-NEXT:    lui a0, 1
1877 ; CHECK-RV32-NEXT:    add a0, sp, a0
1878 ; CHECK-RV32-NEXT:    sw s1, -36(a0) # 4-byte Folded Spill
1879 ; CHECK-RV32-NEXT:    lui a0, 1
1880 ; CHECK-RV32-NEXT:    add a0, sp, a0
1881 ; CHECK-RV32-NEXT:    sw s2, -40(a0) # 4-byte Folded Spill
1882 ; CHECK-RV32-NEXT:    #APP
1883 ; CHECK-RV32-NEXT:    li a0, 10
1884 ; CHECK-RV32-NEXT:    #NO_APP
1885 ; CHECK-RV32-NEXT:    lui a2, 1
1886 ; CHECK-RV32-NEXT:    add a2, sp, a2
1887 ; CHECK-RV32-NEXT:    sw a1, -44(a2) # 4-byte Folded Spill
1888 ; CHECK-RV32-NEXT:    #APP
1889 ; CHECK-RV32-NEXT:    li a1, 11
1890 ; CHECK-RV32-NEXT:    #NO_APP
1891 ; CHECK-RV32-NEXT:    lui a3, 1
1892 ; CHECK-RV32-NEXT:    add a3, sp, a3
1893 ; CHECK-RV32-NEXT:    sw a1, -48(a3) # 4-byte Folded Spill
1894 ; CHECK-RV32-NEXT:    lui a1, 1
1895 ; CHECK-RV32-NEXT:    add a1, sp, a1
1896 ; CHECK-RV32-NEXT:    sw a2, -52(a1) # 4-byte Folded Spill
1897 ; CHECK-RV32-NEXT:    #APP
1898 ; CHECK-RV32-NEXT:    li a2, 12
1899 ; CHECK-RV32-NEXT:    #NO_APP
1900 ; CHECK-RV32-NEXT:    lui a1, 1
1901 ; CHECK-RV32-NEXT:    add a1, sp, a1
1902 ; CHECK-RV32-NEXT:    sw a2, -56(a1) # 4-byte Folded Spill
1903 ; CHECK-RV32-NEXT:    lui a1, 1
1904 ; CHECK-RV32-NEXT:    add a1, sp, a1
1905 ; CHECK-RV32-NEXT:    sw a3, -60(a1) # 4-byte Folded Spill
1906 ; CHECK-RV32-NEXT:    #APP
1907 ; CHECK-RV32-NEXT:    li a3, 13
1908 ; CHECK-RV32-NEXT:    #NO_APP
1909 ; CHECK-RV32-NEXT:    lui a1, 1
1910 ; CHECK-RV32-NEXT:    add a1, sp, a1
1911 ; CHECK-RV32-NEXT:    sw a3, -64(a1) # 4-byte Folded Spill
1912 ; CHECK-RV32-NEXT:    lui a1, 1
1913 ; CHECK-RV32-NEXT:    add a1, sp, a1
1914 ; CHECK-RV32-NEXT:    sw a4, -68(a1) # 4-byte Folded Spill
1915 ; CHECK-RV32-NEXT:    #APP
1916 ; CHECK-RV32-NEXT:    li a4, 14
1917 ; CHECK-RV32-NEXT:    #NO_APP
1918 ; CHECK-RV32-NEXT:    lui a1, 1
1919 ; CHECK-RV32-NEXT:    add a1, sp, a1
1920 ; CHECK-RV32-NEXT:    sw a4, -72(a1) # 4-byte Folded Spill
1921 ; CHECK-RV32-NEXT:    lui a1, 1
1922 ; CHECK-RV32-NEXT:    add a1, sp, a1
1923 ; CHECK-RV32-NEXT:    sw a5, -76(a1) # 4-byte Folded Spill
1924 ; CHECK-RV32-NEXT:    #APP
1925 ; CHECK-RV32-NEXT:    li a5, 15
1926 ; CHECK-RV32-NEXT:    #NO_APP
1927 ; CHECK-RV32-NEXT:    lui a1, 1
1928 ; CHECK-RV32-NEXT:    add a1, sp, a1
1929 ; CHECK-RV32-NEXT:    sw a5, -80(a1) # 4-byte Folded Spill
1930 ; CHECK-RV32-NEXT:    lui a1, 1
1931 ; CHECK-RV32-NEXT:    add a1, sp, a1
1932 ; CHECK-RV32-NEXT:    sw a6, -84(a1) # 4-byte Folded Spill
1933 ; CHECK-RV32-NEXT:    #APP
1934 ; CHECK-RV32-NEXT:    li a6, 16
1935 ; CHECK-RV32-NEXT:    #NO_APP
1936 ; CHECK-RV32-NEXT:    lui a1, 1
1937 ; CHECK-RV32-NEXT:    add a1, sp, a1
1938 ; CHECK-RV32-NEXT:    sw a6, -88(a1) # 4-byte Folded Spill
1939 ; CHECK-RV32-NEXT:    lui a1, 1
1940 ; CHECK-RV32-NEXT:    add a1, sp, a1
1941 ; CHECK-RV32-NEXT:    sw a7, -92(a1) # 4-byte Folded Spill
1942 ; CHECK-RV32-NEXT:    #APP
1943 ; CHECK-RV32-NEXT:    li a7, 17
1944 ; CHECK-RV32-NEXT:    #NO_APP
1945 ; CHECK-RV32-NEXT:    lui a1, 1
1946 ; CHECK-RV32-NEXT:    add a1, sp, a1
1947 ; CHECK-RV32-NEXT:    sw a7, -96(a1) # 4-byte Folded Spill
1948 ; CHECK-RV32-NEXT:    lui a1, 1
1949 ; CHECK-RV32-NEXT:    add a1, sp, a1
1950 ; CHECK-RV32-NEXT:    sw t0, -100(a1) # 4-byte Folded Spill
1951 ; CHECK-RV32-NEXT:    #APP
1952 ; CHECK-RV32-NEXT:    li s2, 18
1953 ; CHECK-RV32-NEXT:    #NO_APP
1954 ; CHECK-RV32-NEXT:    lui a1, 1
1955 ; CHECK-RV32-NEXT:    add a1, sp, a1
1956 ; CHECK-RV32-NEXT:    sw s2, -104(a1) # 4-byte Folded Spill
1957 ; CHECK-RV32-NEXT:    lui a1, 1
1958 ; CHECK-RV32-NEXT:    add a1, sp, a1
1959 ; CHECK-RV32-NEXT:    sw s3, -108(a1) # 4-byte Folded Spill
1960 ; CHECK-RV32-NEXT:    #APP
1961 ; CHECK-RV32-NEXT:    li s3, 19
1962 ; CHECK-RV32-NEXT:    #NO_APP
1963 ; CHECK-RV32-NEXT:    lui a1, 1
1964 ; CHECK-RV32-NEXT:    add a1, sp, a1
1965 ; CHECK-RV32-NEXT:    sw s3, -112(a1) # 4-byte Folded Spill
1966 ; CHECK-RV32-NEXT:    lui a1, 1
1967 ; CHECK-RV32-NEXT:    add a1, sp, a1
1968 ; CHECK-RV32-NEXT:    sw s4, -116(a1) # 4-byte Folded Spill
1969 ; CHECK-RV32-NEXT:    #APP
1970 ; CHECK-RV32-NEXT:    li s4, 20
1971 ; CHECK-RV32-NEXT:    #NO_APP
1972 ; CHECK-RV32-NEXT:    lui a1, 1
1973 ; CHECK-RV32-NEXT:    add a1, sp, a1
1974 ; CHECK-RV32-NEXT:    sw s4, -120(a1) # 4-byte Folded Spill
1975 ; CHECK-RV32-NEXT:    lui a1, 1
1976 ; CHECK-RV32-NEXT:    add a1, sp, a1
1977 ; CHECK-RV32-NEXT:    sw s5, -124(a1) # 4-byte Folded Spill
1978 ; CHECK-RV32-NEXT:    #APP
1979 ; CHECK-RV32-NEXT:    li s5, 21
1980 ; CHECK-RV32-NEXT:    #NO_APP
1981 ; CHECK-RV32-NEXT:    lui a1, 1
1982 ; CHECK-RV32-NEXT:    add a1, sp, a1
1983 ; CHECK-RV32-NEXT:    sw s5, -128(a1) # 4-byte Folded Spill
1984 ; CHECK-RV32-NEXT:    lui a1, 1
1985 ; CHECK-RV32-NEXT:    add a1, sp, a1
1986 ; CHECK-RV32-NEXT:    sw s6, -132(a1) # 4-byte Folded Spill
1987 ; CHECK-RV32-NEXT:    #APP
1988 ; CHECK-RV32-NEXT:    li s6, 22
1989 ; CHECK-RV32-NEXT:    #NO_APP
1990 ; CHECK-RV32-NEXT:    lui a1, 1
1991 ; CHECK-RV32-NEXT:    add a1, sp, a1
1992 ; CHECK-RV32-NEXT:    sw s6, -136(a1) # 4-byte Folded Spill
1993 ; CHECK-RV32-NEXT:    lui a1, 1
1994 ; CHECK-RV32-NEXT:    add a1, sp, a1
1995 ; CHECK-RV32-NEXT:    sw s7, -140(a1) # 4-byte Folded Spill
1996 ; CHECK-RV32-NEXT:    #APP
1997 ; CHECK-RV32-NEXT:    li s7, 23
1998 ; CHECK-RV32-NEXT:    #NO_APP
1999 ; CHECK-RV32-NEXT:    lui a1, 1
2000 ; CHECK-RV32-NEXT:    add a1, sp, a1
2001 ; CHECK-RV32-NEXT:    sw s7, -144(a1) # 4-byte Folded Spill
2002 ; CHECK-RV32-NEXT:    lui a1, 1
2003 ; CHECK-RV32-NEXT:    add a1, sp, a1
2004 ; CHECK-RV32-NEXT:    sw s8, -148(a1) # 4-byte Folded Spill
2005 ; CHECK-RV32-NEXT:    #APP
2006 ; CHECK-RV32-NEXT:    li s8, 24
2007 ; CHECK-RV32-NEXT:    #NO_APP
2008 ; CHECK-RV32-NEXT:    lui a1, 1
2009 ; CHECK-RV32-NEXT:    add a1, sp, a1
2010 ; CHECK-RV32-NEXT:    sw s8, -152(a1) # 4-byte Folded Spill
2011 ; CHECK-RV32-NEXT:    lui a1, 1
2012 ; CHECK-RV32-NEXT:    add a1, sp, a1
2013 ; CHECK-RV32-NEXT:    sw s9, -156(a1) # 4-byte Folded Spill
2014 ; CHECK-RV32-NEXT:    #APP
2015 ; CHECK-RV32-NEXT:    li s9, 25
2016 ; CHECK-RV32-NEXT:    #NO_APP
2017 ; CHECK-RV32-NEXT:    lui a1, 1
2018 ; CHECK-RV32-NEXT:    add a1, sp, a1
2019 ; CHECK-RV32-NEXT:    sw s9, -160(a1) # 4-byte Folded Spill
2020 ; CHECK-RV32-NEXT:    lui a1, 1
2021 ; CHECK-RV32-NEXT:    add a1, sp, a1
2022 ; CHECK-RV32-NEXT:    sw s10, -164(a1) # 4-byte Folded Spill
2023 ; CHECK-RV32-NEXT:    #APP
2024 ; CHECK-RV32-NEXT:    li s10, 26
2025 ; CHECK-RV32-NEXT:    #NO_APP
2026 ; CHECK-RV32-NEXT:    lui a1, 1
2027 ; CHECK-RV32-NEXT:    add a1, sp, a1
2028 ; CHECK-RV32-NEXT:    sw s10, -168(a1) # 4-byte Folded Spill
2029 ; CHECK-RV32-NEXT:    lui a1, 1
2030 ; CHECK-RV32-NEXT:    add a1, sp, a1
2031 ; CHECK-RV32-NEXT:    sw s11, -172(a1) # 4-byte Folded Spill
2032 ; CHECK-RV32-NEXT:    #APP
2033 ; CHECK-RV32-NEXT:    li s11, 27
2034 ; CHECK-RV32-NEXT:    #NO_APP
2035 ; CHECK-RV32-NEXT:    lui a1, 1
2036 ; CHECK-RV32-NEXT:    add a1, sp, a1
2037 ; CHECK-RV32-NEXT:    sw s11, -176(a1) # 4-byte Folded Spill
2038 ; CHECK-RV32-NEXT:    #APP
2039 ; CHECK-RV32-NEXT:    li t3, 28
2040 ; CHECK-RV32-NEXT:    #NO_APP
2041 ; CHECK-RV32-NEXT:    lui a1, 1
2042 ; CHECK-RV32-NEXT:    add a1, sp, a1
2043 ; CHECK-RV32-NEXT:    sw t3, -180(a1) # 4-byte Folded Spill
2044 ; CHECK-RV32-NEXT:    lui a1, 1
2045 ; CHECK-RV32-NEXT:    add a1, sp, a1
2046 ; CHECK-RV32-NEXT:    sw t4, -184(a1) # 4-byte Folded Spill
2047 ; CHECK-RV32-NEXT:    #APP
2048 ; CHECK-RV32-NEXT:    li t4, 29
2049 ; CHECK-RV32-NEXT:    #NO_APP
2050 ; CHECK-RV32-NEXT:    lui a1, 1
2051 ; CHECK-RV32-NEXT:    add a1, sp, a1
2052 ; CHECK-RV32-NEXT:    sw t4, -188(a1) # 4-byte Folded Spill
2053 ; CHECK-RV32-NEXT:    lui a1, 1
2054 ; CHECK-RV32-NEXT:    add a1, sp, a1
2055 ; CHECK-RV32-NEXT:    sw t5, -192(a1) # 4-byte Folded Spill
2056 ; CHECK-RV32-NEXT:    #APP
2057 ; CHECK-RV32-NEXT:    li t5, 30
2058 ; CHECK-RV32-NEXT:    #NO_APP
2059 ; CHECK-RV32-NEXT:    mv a1, t6
2060 ; CHECK-RV32-NEXT:    #APP
2061 ; CHECK-RV32-NEXT:    li t6, 31
2062 ; CHECK-RV32-NEXT:    #NO_APP
2063 ; CHECK-RV32-NEXT:    lui a2, 1
2064 ; CHECK-RV32-NEXT:    add a2, sp, a2
2065 ; CHECK-RV32-NEXT:    sw s0, -208(a2) # 4-byte Folded Spill
2066 ; CHECK-RV32-NEXT:    lui a2, 1
2067 ; CHECK-RV32-NEXT:    add a2, sp, a2
2068 ; CHECK-RV32-NEXT:    sw a1, -196(a2) # 4-byte Folded Spill
2069 ; CHECK-RV32-NEXT:    xor a1, a1, s0
2070 ; CHECK-RV32-NEXT:    lui a2, 1
2071 ; CHECK-RV32-NEXT:    add a2, sp, a2
2072 ; CHECK-RV32-NEXT:    sw t6, -200(a2) # 4-byte Folded Spill
2073 ; CHECK-RV32-NEXT:    lui a2, 1
2074 ; CHECK-RV32-NEXT:    add a2, sp, a2
2075 ; CHECK-RV32-NEXT:    sw t5, -204(a2) # 4-byte Folded Spill
2076 ; CHECK-RV32-NEXT:    xor a2, t5, t6
2077 ; CHECK-RV32-NEXT:    or a1, a2, a1
2078 ; CHECK-RV32-NEXT:    beqz a1, .LBB5_1
2079 ; CHECK-RV32-NEXT:  # %bb.3:
2080 ; CHECK-RV32-NEXT:    jump .LBB5_2, a1
2081 ; CHECK-RV32-NEXT:  .LBB5_1: # %branch_1
2082 ; CHECK-RV32-NEXT:    #APP
2083 ; CHECK-RV32-NEXT:    .zero 1048576
2084 ; CHECK-RV32-NEXT:    #NO_APP
2085 ; CHECK-RV32-NEXT:  .LBB5_2: # %branch_2
2086 ; CHECK-RV32-NEXT:    #APP
2087 ; CHECK-RV32-NEXT:    # reg use ra
2088 ; CHECK-RV32-NEXT:    #NO_APP
2089 ; CHECK-RV32-NEXT:    lui a1, 1
2090 ; CHECK-RV32-NEXT:    add a1, sp, a1
2091 ; CHECK-RV32-NEXT:    lw t0, -4(a1) # 4-byte Folded Reload
2092 ; CHECK-RV32-NEXT:    lui a1, 1
2093 ; CHECK-RV32-NEXT:    add a1, sp, a1
2094 ; CHECK-RV32-NEXT:    lw t1, -8(a1) # 4-byte Folded Reload
2095 ; CHECK-RV32-NEXT:    #APP
2096 ; CHECK-RV32-NEXT:    # reg use t0
2097 ; CHECK-RV32-NEXT:    #NO_APP
2098 ; CHECK-RV32-NEXT:    lui a1, 1
2099 ; CHECK-RV32-NEXT:    add a1, sp, a1
2100 ; CHECK-RV32-NEXT:    lw t1, -12(a1) # 4-byte Folded Reload
2101 ; CHECK-RV32-NEXT:    lui a1, 1
2102 ; CHECK-RV32-NEXT:    add a1, sp, a1
2103 ; CHECK-RV32-NEXT:    lw t2, -16(a1) # 4-byte Folded Reload
2104 ; CHECK-RV32-NEXT:    #APP
2105 ; CHECK-RV32-NEXT:    # reg use t1
2106 ; CHECK-RV32-NEXT:    #NO_APP
2107 ; CHECK-RV32-NEXT:    lui a1, 1
2108 ; CHECK-RV32-NEXT:    add a1, sp, a1
2109 ; CHECK-RV32-NEXT:    lw t2, -20(a1) # 4-byte Folded Reload
2110 ; CHECK-RV32-NEXT:    lui a1, 1
2111 ; CHECK-RV32-NEXT:    add a1, sp, a1
2112 ; CHECK-RV32-NEXT:    lw t3, -24(a1) # 4-byte Folded Reload
2113 ; CHECK-RV32-NEXT:    #APP
2114 ; CHECK-RV32-NEXT:    # reg use t2
2115 ; CHECK-RV32-NEXT:    #NO_APP
2116 ; CHECK-RV32-NEXT:    lui a1, 1
2117 ; CHECK-RV32-NEXT:    add a1, sp, a1
2118 ; CHECK-RV32-NEXT:    lw s0, -28(a1) # 4-byte Folded Reload
2119 ; CHECK-RV32-NEXT:    lui a1, 1
2120 ; CHECK-RV32-NEXT:    add a1, sp, a1
2121 ; CHECK-RV32-NEXT:    lw s1, -32(a1) # 4-byte Folded Reload
2122 ; CHECK-RV32-NEXT:    #APP
2123 ; CHECK-RV32-NEXT:    # reg use s0
2124 ; CHECK-RV32-NEXT:    #NO_APP
2125 ; CHECK-RV32-NEXT:    lui a1, 1
2126 ; CHECK-RV32-NEXT:    add a1, sp, a1
2127 ; CHECK-RV32-NEXT:    lw s1, -36(a1) # 4-byte Folded Reload
2128 ; CHECK-RV32-NEXT:    lui a1, 1
2129 ; CHECK-RV32-NEXT:    add a1, sp, a1
2130 ; CHECK-RV32-NEXT:    lw s2, -40(a1) # 4-byte Folded Reload
2131 ; CHECK-RV32-NEXT:    #APP
2132 ; CHECK-RV32-NEXT:    # reg use s1
2133 ; CHECK-RV32-NEXT:    #NO_APP
2134 ; CHECK-RV32-NEXT:    lui a1, 1
2135 ; CHECK-RV32-NEXT:    add a1, sp, a1
2136 ; CHECK-RV32-NEXT:    lw a1, -44(a1) # 4-byte Folded Reload
2137 ; CHECK-RV32-NEXT:    #APP
2138 ; CHECK-RV32-NEXT:    # reg use a0
2139 ; CHECK-RV32-NEXT:    #NO_APP
2140 ; CHECK-RV32-NEXT:    lui a0, 1
2141 ; CHECK-RV32-NEXT:    add a0, sp, a0
2142 ; CHECK-RV32-NEXT:    lw a1, -48(a0) # 4-byte Folded Reload
2143 ; CHECK-RV32-NEXT:    lui a0, 1
2144 ; CHECK-RV32-NEXT:    add a0, sp, a0
2145 ; CHECK-RV32-NEXT:    lw a2, -52(a0) # 4-byte Folded Reload
2146 ; CHECK-RV32-NEXT:    #APP
2147 ; CHECK-RV32-NEXT:    # reg use a1
2148 ; CHECK-RV32-NEXT:    #NO_APP
2149 ; CHECK-RV32-NEXT:    lui a0, 1
2150 ; CHECK-RV32-NEXT:    add a0, sp, a0
2151 ; CHECK-RV32-NEXT:    lw a2, -56(a0) # 4-byte Folded Reload
2152 ; CHECK-RV32-NEXT:    lui a0, 1
2153 ; CHECK-RV32-NEXT:    add a0, sp, a0
2154 ; CHECK-RV32-NEXT:    lw a3, -60(a0) # 4-byte Folded Reload
2155 ; CHECK-RV32-NEXT:    #APP
2156 ; CHECK-RV32-NEXT:    # reg use a2
2157 ; CHECK-RV32-NEXT:    #NO_APP
2158 ; CHECK-RV32-NEXT:    lui a0, 1
2159 ; CHECK-RV32-NEXT:    add a0, sp, a0
2160 ; CHECK-RV32-NEXT:    lw a3, -64(a0) # 4-byte Folded Reload
2161 ; CHECK-RV32-NEXT:    lui a0, 1
2162 ; CHECK-RV32-NEXT:    add a0, sp, a0
2163 ; CHECK-RV32-NEXT:    lw a4, -68(a0) # 4-byte Folded Reload
2164 ; CHECK-RV32-NEXT:    #APP
2165 ; CHECK-RV32-NEXT:    # reg use a3
2166 ; CHECK-RV32-NEXT:    #NO_APP
2167 ; CHECK-RV32-NEXT:    lui a0, 1
2168 ; CHECK-RV32-NEXT:    add a0, sp, a0
2169 ; CHECK-RV32-NEXT:    lw a4, -72(a0) # 4-byte Folded Reload
2170 ; CHECK-RV32-NEXT:    lui a0, 1
2171 ; CHECK-RV32-NEXT:    add a0, sp, a0
2172 ; CHECK-RV32-NEXT:    lw a5, -76(a0) # 4-byte Folded Reload
2173 ; CHECK-RV32-NEXT:    #APP
2174 ; CHECK-RV32-NEXT:    # reg use a4
2175 ; CHECK-RV32-NEXT:    #NO_APP
2176 ; CHECK-RV32-NEXT:    lui a0, 1
2177 ; CHECK-RV32-NEXT:    add a0, sp, a0
2178 ; CHECK-RV32-NEXT:    lw a5, -80(a0) # 4-byte Folded Reload
2179 ; CHECK-RV32-NEXT:    lui a0, 1
2180 ; CHECK-RV32-NEXT:    add a0, sp, a0
2181 ; CHECK-RV32-NEXT:    lw a6, -84(a0) # 4-byte Folded Reload
2182 ; CHECK-RV32-NEXT:    #APP
2183 ; CHECK-RV32-NEXT:    # reg use a5
2184 ; CHECK-RV32-NEXT:    #NO_APP
2185 ; CHECK-RV32-NEXT:    lui a0, 1
2186 ; CHECK-RV32-NEXT:    add a0, sp, a0
2187 ; CHECK-RV32-NEXT:    lw a6, -88(a0) # 4-byte Folded Reload
2188 ; CHECK-RV32-NEXT:    lui a0, 1
2189 ; CHECK-RV32-NEXT:    add a0, sp, a0
2190 ; CHECK-RV32-NEXT:    lw a7, -92(a0) # 4-byte Folded Reload
2191 ; CHECK-RV32-NEXT:    #APP
2192 ; CHECK-RV32-NEXT:    # reg use a6
2193 ; CHECK-RV32-NEXT:    #NO_APP
2194 ; CHECK-RV32-NEXT:    lui a0, 1
2195 ; CHECK-RV32-NEXT:    add a0, sp, a0
2196 ; CHECK-RV32-NEXT:    lw a7, -96(a0) # 4-byte Folded Reload
2197 ; CHECK-RV32-NEXT:    lui a0, 1
2198 ; CHECK-RV32-NEXT:    add a0, sp, a0
2199 ; CHECK-RV32-NEXT:    lw t0, -100(a0) # 4-byte Folded Reload
2200 ; CHECK-RV32-NEXT:    #APP
2201 ; CHECK-RV32-NEXT:    # reg use a7
2202 ; CHECK-RV32-NEXT:    #NO_APP
2203 ; CHECK-RV32-NEXT:    lui a0, 1
2204 ; CHECK-RV32-NEXT:    add a0, sp, a0
2205 ; CHECK-RV32-NEXT:    lw s2, -104(a0) # 4-byte Folded Reload
2206 ; CHECK-RV32-NEXT:    lui a0, 1
2207 ; CHECK-RV32-NEXT:    add a0, sp, a0
2208 ; CHECK-RV32-NEXT:    lw s3, -108(a0) # 4-byte Folded Reload
2209 ; CHECK-RV32-NEXT:    #APP
2210 ; CHECK-RV32-NEXT:    # reg use s2
2211 ; CHECK-RV32-NEXT:    #NO_APP
2212 ; CHECK-RV32-NEXT:    lui a0, 1
2213 ; CHECK-RV32-NEXT:    add a0, sp, a0
2214 ; CHECK-RV32-NEXT:    lw s3, -112(a0) # 4-byte Folded Reload
2215 ; CHECK-RV32-NEXT:    lui a0, 1
2216 ; CHECK-RV32-NEXT:    add a0, sp, a0
2217 ; CHECK-RV32-NEXT:    lw s4, -116(a0) # 4-byte Folded Reload
2218 ; CHECK-RV32-NEXT:    #APP
2219 ; CHECK-RV32-NEXT:    # reg use s3
2220 ; CHECK-RV32-NEXT:    #NO_APP
2221 ; CHECK-RV32-NEXT:    lui a0, 1
2222 ; CHECK-RV32-NEXT:    add a0, sp, a0
2223 ; CHECK-RV32-NEXT:    lw s4, -120(a0) # 4-byte Folded Reload
2224 ; CHECK-RV32-NEXT:    lui a0, 1
2225 ; CHECK-RV32-NEXT:    add a0, sp, a0
2226 ; CHECK-RV32-NEXT:    lw s5, -124(a0) # 4-byte Folded Reload
2227 ; CHECK-RV32-NEXT:    #APP
2228 ; CHECK-RV32-NEXT:    # reg use s4
2229 ; CHECK-RV32-NEXT:    #NO_APP
2230 ; CHECK-RV32-NEXT:    lui a0, 1
2231 ; CHECK-RV32-NEXT:    add a0, sp, a0
2232 ; CHECK-RV32-NEXT:    lw s5, -128(a0) # 4-byte Folded Reload
2233 ; CHECK-RV32-NEXT:    lui a0, 1
2234 ; CHECK-RV32-NEXT:    add a0, sp, a0
2235 ; CHECK-RV32-NEXT:    lw s6, -132(a0) # 4-byte Folded Reload
2236 ; CHECK-RV32-NEXT:    #APP
2237 ; CHECK-RV32-NEXT:    # reg use s5
2238 ; CHECK-RV32-NEXT:    #NO_APP
2239 ; CHECK-RV32-NEXT:    lui a0, 1
2240 ; CHECK-RV32-NEXT:    add a0, sp, a0
2241 ; CHECK-RV32-NEXT:    lw s6, -136(a0) # 4-byte Folded Reload
2242 ; CHECK-RV32-NEXT:    lui a0, 1
2243 ; CHECK-RV32-NEXT:    add a0, sp, a0
2244 ; CHECK-RV32-NEXT:    lw s7, -140(a0) # 4-byte Folded Reload
2245 ; CHECK-RV32-NEXT:    #APP
2246 ; CHECK-RV32-NEXT:    # reg use s6
2247 ; CHECK-RV32-NEXT:    #NO_APP
2248 ; CHECK-RV32-NEXT:    lui a0, 1
2249 ; CHECK-RV32-NEXT:    add a0, sp, a0
2250 ; CHECK-RV32-NEXT:    lw s7, -144(a0) # 4-byte Folded Reload
2251 ; CHECK-RV32-NEXT:    lui a0, 1
2252 ; CHECK-RV32-NEXT:    add a0, sp, a0
2253 ; CHECK-RV32-NEXT:    lw s8, -148(a0) # 4-byte Folded Reload
2254 ; CHECK-RV32-NEXT:    #APP
2255 ; CHECK-RV32-NEXT:    # reg use s7
2256 ; CHECK-RV32-NEXT:    #NO_APP
2257 ; CHECK-RV32-NEXT:    lui a0, 1
2258 ; CHECK-RV32-NEXT:    add a0, sp, a0
2259 ; CHECK-RV32-NEXT:    lw s8, -152(a0) # 4-byte Folded Reload
2260 ; CHECK-RV32-NEXT:    lui a0, 1
2261 ; CHECK-RV32-NEXT:    add a0, sp, a0
2262 ; CHECK-RV32-NEXT:    lw s9, -156(a0) # 4-byte Folded Reload
2263 ; CHECK-RV32-NEXT:    #APP
2264 ; CHECK-RV32-NEXT:    # reg use s8
2265 ; CHECK-RV32-NEXT:    #NO_APP
2266 ; CHECK-RV32-NEXT:    lui a0, 1
2267 ; CHECK-RV32-NEXT:    add a0, sp, a0
2268 ; CHECK-RV32-NEXT:    lw s9, -160(a0) # 4-byte Folded Reload
2269 ; CHECK-RV32-NEXT:    lui a0, 1
2270 ; CHECK-RV32-NEXT:    add a0, sp, a0
2271 ; CHECK-RV32-NEXT:    lw s10, -164(a0) # 4-byte Folded Reload
2272 ; CHECK-RV32-NEXT:    #APP
2273 ; CHECK-RV32-NEXT:    # reg use s9
2274 ; CHECK-RV32-NEXT:    #NO_APP
2275 ; CHECK-RV32-NEXT:    lui a0, 1
2276 ; CHECK-RV32-NEXT:    add a0, sp, a0
2277 ; CHECK-RV32-NEXT:    lw s10, -168(a0) # 4-byte Folded Reload
2278 ; CHECK-RV32-NEXT:    lui a0, 1
2279 ; CHECK-RV32-NEXT:    add a0, sp, a0
2280 ; CHECK-RV32-NEXT:    lw s11, -172(a0) # 4-byte Folded Reload
2281 ; CHECK-RV32-NEXT:    #APP
2282 ; CHECK-RV32-NEXT:    # reg use s10
2283 ; CHECK-RV32-NEXT:    #NO_APP
2284 ; CHECK-RV32-NEXT:    lui a0, 1
2285 ; CHECK-RV32-NEXT:    add a0, sp, a0
2286 ; CHECK-RV32-NEXT:    lw s11, -176(a0) # 4-byte Folded Reload
2287 ; CHECK-RV32-NEXT:    #APP
2288 ; CHECK-RV32-NEXT:    # reg use s11
2289 ; CHECK-RV32-NEXT:    #NO_APP
2290 ; CHECK-RV32-NEXT:    lui a0, 1
2291 ; CHECK-RV32-NEXT:    add a0, sp, a0
2292 ; CHECK-RV32-NEXT:    lw t3, -180(a0) # 4-byte Folded Reload
2293 ; CHECK-RV32-NEXT:    lui a0, 1
2294 ; CHECK-RV32-NEXT:    add a0, sp, a0
2295 ; CHECK-RV32-NEXT:    lw t4, -184(a0) # 4-byte Folded Reload
2296 ; CHECK-RV32-NEXT:    #APP
2297 ; CHECK-RV32-NEXT:    # reg use t3
2298 ; CHECK-RV32-NEXT:    #NO_APP
2299 ; CHECK-RV32-NEXT:    lui a0, 1
2300 ; CHECK-RV32-NEXT:    add a0, sp, a0
2301 ; CHECK-RV32-NEXT:    lw t4, -188(a0) # 4-byte Folded Reload
2302 ; CHECK-RV32-NEXT:    lui a0, 1
2303 ; CHECK-RV32-NEXT:    add a0, sp, a0
2304 ; CHECK-RV32-NEXT:    lw t5, -192(a0) # 4-byte Folded Reload
2305 ; CHECK-RV32-NEXT:    #APP
2306 ; CHECK-RV32-NEXT:    # reg use t4
2307 ; CHECK-RV32-NEXT:    #NO_APP
2308 ; CHECK-RV32-NEXT:    lui a0, 1
2309 ; CHECK-RV32-NEXT:    add a0, sp, a0
2310 ; CHECK-RV32-NEXT:    lw t5, -204(a0) # 4-byte Folded Reload
2311 ; CHECK-RV32-NEXT:    lui a0, 1
2312 ; CHECK-RV32-NEXT:    add a0, sp, a0
2313 ; CHECK-RV32-NEXT:    lw t6, -196(a0) # 4-byte Folded Reload
2314 ; CHECK-RV32-NEXT:    #APP
2315 ; CHECK-RV32-NEXT:    # reg use t5
2316 ; CHECK-RV32-NEXT:    #NO_APP
2317 ; CHECK-RV32-NEXT:    lui a0, 1
2318 ; CHECK-RV32-NEXT:    add a0, sp, a0
2319 ; CHECK-RV32-NEXT:    lw s0, -208(a0) # 4-byte Folded Reload
2320 ; CHECK-RV32-NEXT:    lui a0, 1
2321 ; CHECK-RV32-NEXT:    add a0, sp, a0
2322 ; CHECK-RV32-NEXT:    lw t6, -200(a0) # 4-byte Folded Reload
2323 ; CHECK-RV32-NEXT:    #APP
2324 ; CHECK-RV32-NEXT:    # reg use t6
2325 ; CHECK-RV32-NEXT:    #NO_APP
2326 ; CHECK-RV32-NEXT:    lui a0, 2
2327 ; CHECK-RV32-NEXT:    sub sp, s0, a0
2328 ; CHECK-RV32-NEXT:    addi a0, a0, -2032
2329 ; CHECK-RV32-NEXT:    add sp, sp, a0
2330 ; CHECK-RV32-NEXT:    lw ra, 2028(sp) # 4-byte Folded Reload
2331 ; CHECK-RV32-NEXT:    lw s0, 2024(sp) # 4-byte Folded Reload
2332 ; CHECK-RV32-NEXT:    lw s1, 2020(sp) # 4-byte Folded Reload
2333 ; CHECK-RV32-NEXT:    lw s2, 2016(sp) # 4-byte Folded Reload
2334 ; CHECK-RV32-NEXT:    lw s3, 2012(sp) # 4-byte Folded Reload
2335 ; CHECK-RV32-NEXT:    lw s4, 2008(sp) # 4-byte Folded Reload
2336 ; CHECK-RV32-NEXT:    lw s5, 2004(sp) # 4-byte Folded Reload
2337 ; CHECK-RV32-NEXT:    lw s6, 2000(sp) # 4-byte Folded Reload
2338 ; CHECK-RV32-NEXT:    lw s7, 1996(sp) # 4-byte Folded Reload
2339 ; CHECK-RV32-NEXT:    lw s8, 1992(sp) # 4-byte Folded Reload
2340 ; CHECK-RV32-NEXT:    lw s9, 1988(sp) # 4-byte Folded Reload
2341 ; CHECK-RV32-NEXT:    lw s10, 1984(sp) # 4-byte Folded Reload
2342 ; CHECK-RV32-NEXT:    lw s11, 1980(sp) # 4-byte Folded Reload
2343 ; CHECK-RV32-NEXT:    addi sp, sp, 2032
2344 ; CHECK-RV32-NEXT:    ret
2346 ; CHECK-RV64-LABEL: relax_jal_spill_64_adjust_spill_slot:
2347 ; CHECK-RV64:       # %bb.0:
2348 ; CHECK-RV64-NEXT:    addi sp, sp, -2032
2349 ; CHECK-RV64-NEXT:    .cfi_def_cfa_offset 2032
2350 ; CHECK-RV64-NEXT:    sd ra, 2024(sp) # 8-byte Folded Spill
2351 ; CHECK-RV64-NEXT:    sd s0, 2016(sp) # 8-byte Folded Spill
2352 ; CHECK-RV64-NEXT:    sd s1, 2008(sp) # 8-byte Folded Spill
2353 ; CHECK-RV64-NEXT:    sd s2, 2000(sp) # 8-byte Folded Spill
2354 ; CHECK-RV64-NEXT:    sd s3, 1992(sp) # 8-byte Folded Spill
2355 ; CHECK-RV64-NEXT:    sd s4, 1984(sp) # 8-byte Folded Spill
2356 ; CHECK-RV64-NEXT:    sd s5, 1976(sp) # 8-byte Folded Spill
2357 ; CHECK-RV64-NEXT:    sd s6, 1968(sp) # 8-byte Folded Spill
2358 ; CHECK-RV64-NEXT:    sd s7, 1960(sp) # 8-byte Folded Spill
2359 ; CHECK-RV64-NEXT:    sd s8, 1952(sp) # 8-byte Folded Spill
2360 ; CHECK-RV64-NEXT:    sd s9, 1944(sp) # 8-byte Folded Spill
2361 ; CHECK-RV64-NEXT:    sd s10, 1936(sp) # 8-byte Folded Spill
2362 ; CHECK-RV64-NEXT:    sd s11, 1928(sp) # 8-byte Folded Spill
2363 ; CHECK-RV64-NEXT:    .cfi_offset ra, -8
2364 ; CHECK-RV64-NEXT:    .cfi_offset s0, -16
2365 ; CHECK-RV64-NEXT:    .cfi_offset s1, -24
2366 ; CHECK-RV64-NEXT:    .cfi_offset s2, -32
2367 ; CHECK-RV64-NEXT:    .cfi_offset s3, -40
2368 ; CHECK-RV64-NEXT:    .cfi_offset s4, -48
2369 ; CHECK-RV64-NEXT:    .cfi_offset s5, -56
2370 ; CHECK-RV64-NEXT:    .cfi_offset s6, -64
2371 ; CHECK-RV64-NEXT:    .cfi_offset s7, -72
2372 ; CHECK-RV64-NEXT:    .cfi_offset s8, -80
2373 ; CHECK-RV64-NEXT:    .cfi_offset s9, -88
2374 ; CHECK-RV64-NEXT:    .cfi_offset s10, -96
2375 ; CHECK-RV64-NEXT:    .cfi_offset s11, -104
2376 ; CHECK-RV64-NEXT:    addi s0, sp, 2032
2377 ; CHECK-RV64-NEXT:    .cfi_def_cfa s0, 0
2378 ; CHECK-RV64-NEXT:    lui a0, 2
2379 ; CHECK-RV64-NEXT:    addiw a0, a0, -2032
2380 ; CHECK-RV64-NEXT:    sub sp, sp, a0
2381 ; CHECK-RV64-NEXT:    srli a0, sp, 12
2382 ; CHECK-RV64-NEXT:    slli sp, a0, 12
2383 ; CHECK-RV64-NEXT:    #APP
2384 ; CHECK-RV64-NEXT:    li ra, 1
2385 ; CHECK-RV64-NEXT:    #NO_APP
2386 ; CHECK-RV64-NEXT:    #APP
2387 ; CHECK-RV64-NEXT:    li t0, 5
2388 ; CHECK-RV64-NEXT:    #NO_APP
2389 ; CHECK-RV64-NEXT:    #APP
2390 ; CHECK-RV64-NEXT:    li t1, 6
2391 ; CHECK-RV64-NEXT:    #NO_APP
2392 ; CHECK-RV64-NEXT:    #APP
2393 ; CHECK-RV64-NEXT:    li t2, 7
2394 ; CHECK-RV64-NEXT:    #NO_APP
2395 ; CHECK-RV64-NEXT:    #APP
2396 ; CHECK-RV64-NEXT:    li s0, 8
2397 ; CHECK-RV64-NEXT:    #NO_APP
2398 ; CHECK-RV64-NEXT:    #APP
2399 ; CHECK-RV64-NEXT:    li s1, 9
2400 ; CHECK-RV64-NEXT:    #NO_APP
2401 ; CHECK-RV64-NEXT:    #APP
2402 ; CHECK-RV64-NEXT:    li a0, 10
2403 ; CHECK-RV64-NEXT:    #NO_APP
2404 ; CHECK-RV64-NEXT:    #APP
2405 ; CHECK-RV64-NEXT:    li a1, 11
2406 ; CHECK-RV64-NEXT:    #NO_APP
2407 ; CHECK-RV64-NEXT:    #APP
2408 ; CHECK-RV64-NEXT:    li a2, 12
2409 ; CHECK-RV64-NEXT:    #NO_APP
2410 ; CHECK-RV64-NEXT:    #APP
2411 ; CHECK-RV64-NEXT:    li a3, 13
2412 ; CHECK-RV64-NEXT:    #NO_APP
2413 ; CHECK-RV64-NEXT:    #APP
2414 ; CHECK-RV64-NEXT:    li a4, 14
2415 ; CHECK-RV64-NEXT:    #NO_APP
2416 ; CHECK-RV64-NEXT:    #APP
2417 ; CHECK-RV64-NEXT:    li a5, 15
2418 ; CHECK-RV64-NEXT:    #NO_APP
2419 ; CHECK-RV64-NEXT:    #APP
2420 ; CHECK-RV64-NEXT:    li a6, 16
2421 ; CHECK-RV64-NEXT:    #NO_APP
2422 ; CHECK-RV64-NEXT:    #APP
2423 ; CHECK-RV64-NEXT:    li a7, 17
2424 ; CHECK-RV64-NEXT:    #NO_APP
2425 ; CHECK-RV64-NEXT:    #APP
2426 ; CHECK-RV64-NEXT:    li s2, 18
2427 ; CHECK-RV64-NEXT:    #NO_APP
2428 ; CHECK-RV64-NEXT:    #APP
2429 ; CHECK-RV64-NEXT:    li s3, 19
2430 ; CHECK-RV64-NEXT:    #NO_APP
2431 ; CHECK-RV64-NEXT:    #APP
2432 ; CHECK-RV64-NEXT:    li s4, 20
2433 ; CHECK-RV64-NEXT:    #NO_APP
2434 ; CHECK-RV64-NEXT:    #APP
2435 ; CHECK-RV64-NEXT:    li s5, 21
2436 ; CHECK-RV64-NEXT:    #NO_APP
2437 ; CHECK-RV64-NEXT:    #APP
2438 ; CHECK-RV64-NEXT:    li s6, 22
2439 ; CHECK-RV64-NEXT:    #NO_APP
2440 ; CHECK-RV64-NEXT:    #APP
2441 ; CHECK-RV64-NEXT:    li s7, 23
2442 ; CHECK-RV64-NEXT:    #NO_APP
2443 ; CHECK-RV64-NEXT:    #APP
2444 ; CHECK-RV64-NEXT:    li s8, 24
2445 ; CHECK-RV64-NEXT:    #NO_APP
2446 ; CHECK-RV64-NEXT:    #APP
2447 ; CHECK-RV64-NEXT:    li s9, 25
2448 ; CHECK-RV64-NEXT:    #NO_APP
2449 ; CHECK-RV64-NEXT:    #APP
2450 ; CHECK-RV64-NEXT:    li s10, 26
2451 ; CHECK-RV64-NEXT:    #NO_APP
2452 ; CHECK-RV64-NEXT:    #APP
2453 ; CHECK-RV64-NEXT:    li s11, 27
2454 ; CHECK-RV64-NEXT:    #NO_APP
2455 ; CHECK-RV64-NEXT:    #APP
2456 ; CHECK-RV64-NEXT:    li t3, 28
2457 ; CHECK-RV64-NEXT:    #NO_APP
2458 ; CHECK-RV64-NEXT:    #APP
2459 ; CHECK-RV64-NEXT:    li t4, 29
2460 ; CHECK-RV64-NEXT:    #NO_APP
2461 ; CHECK-RV64-NEXT:    #APP
2462 ; CHECK-RV64-NEXT:    li t5, 30
2463 ; CHECK-RV64-NEXT:    #NO_APP
2464 ; CHECK-RV64-NEXT:    #APP
2465 ; CHECK-RV64-NEXT:    li t6, 31
2466 ; CHECK-RV64-NEXT:    #NO_APP
2467 ; CHECK-RV64-NEXT:    beq t5, t6, .LBB5_1
2468 ; CHECK-RV64-NEXT:  # %bb.3:
2469 ; CHECK-RV64-NEXT:    sd s11, 0(sp)
2470 ; CHECK-RV64-NEXT:    jump .LBB5_4, s11
2471 ; CHECK-RV64-NEXT:  .LBB5_1: # %branch_1
2472 ; CHECK-RV64-NEXT:    #APP
2473 ; CHECK-RV64-NEXT:    .zero 1048576
2474 ; CHECK-RV64-NEXT:    #NO_APP
2475 ; CHECK-RV64-NEXT:    j .LBB5_2
2476 ; CHECK-RV64-NEXT:  .LBB5_4: # %branch_2
2477 ; CHECK-RV64-NEXT:    ld s11, 0(sp)
2478 ; CHECK-RV64-NEXT:  .LBB5_2: # %branch_2
2479 ; CHECK-RV64-NEXT:    #APP
2480 ; CHECK-RV64-NEXT:    # reg use ra
2481 ; CHECK-RV64-NEXT:    #NO_APP
2482 ; CHECK-RV64-NEXT:    #APP
2483 ; CHECK-RV64-NEXT:    # reg use t0
2484 ; CHECK-RV64-NEXT:    #NO_APP
2485 ; CHECK-RV64-NEXT:    #APP
2486 ; CHECK-RV64-NEXT:    # reg use t1
2487 ; CHECK-RV64-NEXT:    #NO_APP
2488 ; CHECK-RV64-NEXT:    #APP
2489 ; CHECK-RV64-NEXT:    # reg use t2
2490 ; CHECK-RV64-NEXT:    #NO_APP
2491 ; CHECK-RV64-NEXT:    #APP
2492 ; CHECK-RV64-NEXT:    # reg use s0
2493 ; CHECK-RV64-NEXT:    #NO_APP
2494 ; CHECK-RV64-NEXT:    #APP
2495 ; CHECK-RV64-NEXT:    # reg use s1
2496 ; CHECK-RV64-NEXT:    #NO_APP
2497 ; CHECK-RV64-NEXT:    #APP
2498 ; CHECK-RV64-NEXT:    # reg use a0
2499 ; CHECK-RV64-NEXT:    #NO_APP
2500 ; CHECK-RV64-NEXT:    #APP
2501 ; CHECK-RV64-NEXT:    # reg use a1
2502 ; CHECK-RV64-NEXT:    #NO_APP
2503 ; CHECK-RV64-NEXT:    #APP
2504 ; CHECK-RV64-NEXT:    # reg use a2
2505 ; CHECK-RV64-NEXT:    #NO_APP
2506 ; CHECK-RV64-NEXT:    #APP
2507 ; CHECK-RV64-NEXT:    # reg use a3
2508 ; CHECK-RV64-NEXT:    #NO_APP
2509 ; CHECK-RV64-NEXT:    #APP
2510 ; CHECK-RV64-NEXT:    # reg use a4
2511 ; CHECK-RV64-NEXT:    #NO_APP
2512 ; CHECK-RV64-NEXT:    #APP
2513 ; CHECK-RV64-NEXT:    # reg use a5
2514 ; CHECK-RV64-NEXT:    #NO_APP
2515 ; CHECK-RV64-NEXT:    #APP
2516 ; CHECK-RV64-NEXT:    # reg use a6
2517 ; CHECK-RV64-NEXT:    #NO_APP
2518 ; CHECK-RV64-NEXT:    #APP
2519 ; CHECK-RV64-NEXT:    # reg use a7
2520 ; CHECK-RV64-NEXT:    #NO_APP
2521 ; CHECK-RV64-NEXT:    #APP
2522 ; CHECK-RV64-NEXT:    # reg use s2
2523 ; CHECK-RV64-NEXT:    #NO_APP
2524 ; CHECK-RV64-NEXT:    #APP
2525 ; CHECK-RV64-NEXT:    # reg use s3
2526 ; CHECK-RV64-NEXT:    #NO_APP
2527 ; CHECK-RV64-NEXT:    #APP
2528 ; CHECK-RV64-NEXT:    # reg use s4
2529 ; CHECK-RV64-NEXT:    #NO_APP
2530 ; CHECK-RV64-NEXT:    #APP
2531 ; CHECK-RV64-NEXT:    # reg use s5
2532 ; CHECK-RV64-NEXT:    #NO_APP
2533 ; CHECK-RV64-NEXT:    #APP
2534 ; CHECK-RV64-NEXT:    # reg use s6
2535 ; CHECK-RV64-NEXT:    #NO_APP
2536 ; CHECK-RV64-NEXT:    #APP
2537 ; CHECK-RV64-NEXT:    # reg use s7
2538 ; CHECK-RV64-NEXT:    #NO_APP
2539 ; CHECK-RV64-NEXT:    #APP
2540 ; CHECK-RV64-NEXT:    # reg use s8
2541 ; CHECK-RV64-NEXT:    #NO_APP
2542 ; CHECK-RV64-NEXT:    #APP
2543 ; CHECK-RV64-NEXT:    # reg use s9
2544 ; CHECK-RV64-NEXT:    #NO_APP
2545 ; CHECK-RV64-NEXT:    #APP
2546 ; CHECK-RV64-NEXT:    # reg use s10
2547 ; CHECK-RV64-NEXT:    #NO_APP
2548 ; CHECK-RV64-NEXT:    #APP
2549 ; CHECK-RV64-NEXT:    # reg use s11
2550 ; CHECK-RV64-NEXT:    #NO_APP
2551 ; CHECK-RV64-NEXT:    #APP
2552 ; CHECK-RV64-NEXT:    # reg use t3
2553 ; CHECK-RV64-NEXT:    #NO_APP
2554 ; CHECK-RV64-NEXT:    #APP
2555 ; CHECK-RV64-NEXT:    # reg use t4
2556 ; CHECK-RV64-NEXT:    #NO_APP
2557 ; CHECK-RV64-NEXT:    #APP
2558 ; CHECK-RV64-NEXT:    # reg use t5
2559 ; CHECK-RV64-NEXT:    #NO_APP
2560 ; CHECK-RV64-NEXT:    #APP
2561 ; CHECK-RV64-NEXT:    # reg use t6
2562 ; CHECK-RV64-NEXT:    #NO_APP
2563 ; CHECK-RV64-NEXT:    lui a0, 2
2564 ; CHECK-RV64-NEXT:    sub sp, s0, a0
2565 ; CHECK-RV64-NEXT:    addiw a0, a0, -2032
2566 ; CHECK-RV64-NEXT:    add sp, sp, a0
2567 ; CHECK-RV64-NEXT:    ld ra, 2024(sp) # 8-byte Folded Reload
2568 ; CHECK-RV64-NEXT:    ld s0, 2016(sp) # 8-byte Folded Reload
2569 ; CHECK-RV64-NEXT:    ld s1, 2008(sp) # 8-byte Folded Reload
2570 ; CHECK-RV64-NEXT:    ld s2, 2000(sp) # 8-byte Folded Reload
2571 ; CHECK-RV64-NEXT:    ld s3, 1992(sp) # 8-byte Folded Reload
2572 ; CHECK-RV64-NEXT:    ld s4, 1984(sp) # 8-byte Folded Reload
2573 ; CHECK-RV64-NEXT:    ld s5, 1976(sp) # 8-byte Folded Reload
2574 ; CHECK-RV64-NEXT:    ld s6, 1968(sp) # 8-byte Folded Reload
2575 ; CHECK-RV64-NEXT:    ld s7, 1960(sp) # 8-byte Folded Reload
2576 ; CHECK-RV64-NEXT:    ld s8, 1952(sp) # 8-byte Folded Reload
2577 ; CHECK-RV64-NEXT:    ld s9, 1944(sp) # 8-byte Folded Reload
2578 ; CHECK-RV64-NEXT:    ld s10, 1936(sp) # 8-byte Folded Reload
2579 ; CHECK-RV64-NEXT:    ld s11, 1928(sp) # 8-byte Folded Reload
2580 ; CHECK-RV64-NEXT:    addi sp, sp, 2032
2581 ; CHECK-RV64-NEXT:    ret
2583   ; If the stack is large and the offset of BranchRelaxationScratchFrameIndex
2584   ; is out the range of 12-bit signed integer, check whether the spill slot is
2585   ; adjusted to close to the stack base register.
2586   %stack_obj = alloca i64, align 4096
2588   %ra = call i64 asm sideeffect "addi ra, x0, 1", "={ra}"()
2589   %t0 = call i64 asm sideeffect "addi t0, x0, 5", "={t0}"()
2590   %t1 = call i64 asm sideeffect "addi t1, x0, 6", "={t1}"()
2591   %t2 = call i64 asm sideeffect "addi t2, x0, 7", "={t2}"()
2592   %s0 = call i64 asm sideeffect "addi s0, x0, 8", "={s0}"()
2593   %s1 = call i64 asm sideeffect "addi s1, x0, 9", "={s1}"()
2594   %a0 = call i64 asm sideeffect "addi a0, x0, 10", "={a0}"()
2595   %a1 = call i64 asm sideeffect "addi a1, x0, 11", "={a1}"()
2596   %a2 = call i64 asm sideeffect "addi a2, x0, 12", "={a2}"()
2597   %a3 = call i64 asm sideeffect "addi a3, x0, 13", "={a3}"()
2598   %a4 = call i64 asm sideeffect "addi a4, x0, 14", "={a4}"()
2599   %a5 = call i64 asm sideeffect "addi a5, x0, 15", "={a5}"()
2600   %a6 = call i64 asm sideeffect "addi a6, x0, 16", "={a6}"()
2601   %a7 = call i64 asm sideeffect "addi a7, x0, 17", "={a7}"()
2602   %s2 = call i64 asm sideeffect "addi s2, x0, 18", "={s2}"()
2603   %s3 = call i64 asm sideeffect "addi s3, x0, 19", "={s3}"()
2604   %s4 = call i64 asm sideeffect "addi s4, x0, 20", "={s4}"()
2605   %s5 = call i64 asm sideeffect "addi s5, x0, 21", "={s5}"()
2606   %s6 = call i64 asm sideeffect "addi s6, x0, 22", "={s6}"()
2607   %s7 = call i64 asm sideeffect "addi s7, x0, 23", "={s7}"()
2608   %s8 = call i64 asm sideeffect "addi s8, x0, 24", "={s8}"()
2609   %s9 = call i64 asm sideeffect "addi s9, x0, 25", "={s9}"()
2610   %s10 = call i64 asm sideeffect "addi s10, x0, 26", "={s10}"()
2611   %s11 = call i64 asm sideeffect "addi s11, x0, 27", "={s11}"()
2612   %t3 = call i64 asm sideeffect "addi t3, x0, 28", "={t3}"()
2613   %t4 = call i64 asm sideeffect "addi t4, x0, 29", "={t4}"()
2614   %t5 = call i64 asm sideeffect "addi t5, x0, 30", "={t5}"()
2615   %t6 = call i64 asm sideeffect "addi t6, x0, 31", "={t6}"()
2617   %cmp = icmp eq i64 %t5, %t6
2618   br i1 %cmp, label %branch_1, label %branch_2
2620 branch_1:
2621   call void asm sideeffect ".space 1048576", ""()
2622   br label %branch_2
2624 branch_2:
2625   call void asm sideeffect "# reg use $0", "{ra}"(i64 %ra)
2626   call void asm sideeffect "# reg use $0", "{t0}"(i64 %t0)
2627   call void asm sideeffect "# reg use $0", "{t1}"(i64 %t1)
2628   call void asm sideeffect "# reg use $0", "{t2}"(i64 %t2)
2629   call void asm sideeffect "# reg use $0", "{s0}"(i64 %s0)
2630   call void asm sideeffect "# reg use $0", "{s1}"(i64 %s1)
2631   call void asm sideeffect "# reg use $0", "{a0}"(i64 %a0)
2632   call void asm sideeffect "# reg use $0", "{a1}"(i64 %a1)
2633   call void asm sideeffect "# reg use $0", "{a2}"(i64 %a2)
2634   call void asm sideeffect "# reg use $0", "{a3}"(i64 %a3)
2635   call void asm sideeffect "# reg use $0", "{a4}"(i64 %a4)
2636   call void asm sideeffect "# reg use $0", "{a5}"(i64 %a5)
2637   call void asm sideeffect "# reg use $0", "{a6}"(i64 %a6)
2638   call void asm sideeffect "# reg use $0", "{a7}"(i64 %a7)
2639   call void asm sideeffect "# reg use $0", "{s2}"(i64 %s2)
2640   call void asm sideeffect "# reg use $0", "{s3}"(i64 %s3)
2641   call void asm sideeffect "# reg use $0", "{s4}"(i64 %s4)
2642   call void asm sideeffect "# reg use $0", "{s5}"(i64 %s5)
2643   call void asm sideeffect "# reg use $0", "{s6}"(i64 %s6)
2644   call void asm sideeffect "# reg use $0", "{s7}"(i64 %s7)
2645   call void asm sideeffect "# reg use $0", "{s8}"(i64 %s8)
2646   call void asm sideeffect "# reg use $0", "{s9}"(i64 %s9)
2647   call void asm sideeffect "# reg use $0", "{s10}"(i64 %s10)
2648   call void asm sideeffect "# reg use $0", "{s11}"(i64 %s11)
2649   call void asm sideeffect "# reg use $0", "{t3}"(i64 %t3)
2650   call void asm sideeffect "# reg use $0", "{t4}"(i64 %t4)
2651   call void asm sideeffect "# reg use $0", "{t5}"(i64 %t5)
2652   call void asm sideeffect "# reg use $0", "{t6}"(i64 %t6)
2654   ret void
2657 define void @relax_jal_spill_32_restore_block_correspondence() {
2658 ; CHECK-RV32-LABEL: relax_jal_spill_32_restore_block_correspondence:
2659 ; CHECK-RV32:       # %bb.0: # %entry
2660 ; CHECK-RV32-NEXT:    addi sp, sp, -64
2661 ; CHECK-RV32-NEXT:    .cfi_def_cfa_offset 64
2662 ; CHECK-RV32-NEXT:    sw ra, 60(sp) # 4-byte Folded Spill
2663 ; CHECK-RV32-NEXT:    sw s0, 56(sp) # 4-byte Folded Spill
2664 ; CHECK-RV32-NEXT:    sw s1, 52(sp) # 4-byte Folded Spill
2665 ; CHECK-RV32-NEXT:    sw s2, 48(sp) # 4-byte Folded Spill
2666 ; CHECK-RV32-NEXT:    sw s3, 44(sp) # 4-byte Folded Spill
2667 ; CHECK-RV32-NEXT:    sw s4, 40(sp) # 4-byte Folded Spill
2668 ; CHECK-RV32-NEXT:    sw s5, 36(sp) # 4-byte Folded Spill
2669 ; CHECK-RV32-NEXT:    sw s6, 32(sp) # 4-byte Folded Spill
2670 ; CHECK-RV32-NEXT:    sw s7, 28(sp) # 4-byte Folded Spill
2671 ; CHECK-RV32-NEXT:    sw s8, 24(sp) # 4-byte Folded Spill
2672 ; CHECK-RV32-NEXT:    sw s9, 20(sp) # 4-byte Folded Spill
2673 ; CHECK-RV32-NEXT:    sw s10, 16(sp) # 4-byte Folded Spill
2674 ; CHECK-RV32-NEXT:    sw s11, 12(sp) # 4-byte Folded Spill
2675 ; CHECK-RV32-NEXT:    .cfi_offset ra, -4
2676 ; CHECK-RV32-NEXT:    .cfi_offset s0, -8
2677 ; CHECK-RV32-NEXT:    .cfi_offset s1, -12
2678 ; CHECK-RV32-NEXT:    .cfi_offset s2, -16
2679 ; CHECK-RV32-NEXT:    .cfi_offset s3, -20
2680 ; CHECK-RV32-NEXT:    .cfi_offset s4, -24
2681 ; CHECK-RV32-NEXT:    .cfi_offset s5, -28
2682 ; CHECK-RV32-NEXT:    .cfi_offset s6, -32
2683 ; CHECK-RV32-NEXT:    .cfi_offset s7, -36
2684 ; CHECK-RV32-NEXT:    .cfi_offset s8, -40
2685 ; CHECK-RV32-NEXT:    .cfi_offset s9, -44
2686 ; CHECK-RV32-NEXT:    .cfi_offset s10, -48
2687 ; CHECK-RV32-NEXT:    .cfi_offset s11, -52
2688 ; CHECK-RV32-NEXT:    #APP
2689 ; CHECK-RV32-NEXT:    li ra, 1
2690 ; CHECK-RV32-NEXT:    #NO_APP
2691 ; CHECK-RV32-NEXT:    #APP
2692 ; CHECK-RV32-NEXT:    li t0, 5
2693 ; CHECK-RV32-NEXT:    #NO_APP
2694 ; CHECK-RV32-NEXT:    #APP
2695 ; CHECK-RV32-NEXT:    li t1, 6
2696 ; CHECK-RV32-NEXT:    #NO_APP
2697 ; CHECK-RV32-NEXT:    #APP
2698 ; CHECK-RV32-NEXT:    li t2, 7
2699 ; CHECK-RV32-NEXT:    #NO_APP
2700 ; CHECK-RV32-NEXT:    #APP
2701 ; CHECK-RV32-NEXT:    li s0, 8
2702 ; CHECK-RV32-NEXT:    #NO_APP
2703 ; CHECK-RV32-NEXT:    #APP
2704 ; CHECK-RV32-NEXT:    li s1, 9
2705 ; CHECK-RV32-NEXT:    #NO_APP
2706 ; CHECK-RV32-NEXT:    #APP
2707 ; CHECK-RV32-NEXT:    li a0, 10
2708 ; CHECK-RV32-NEXT:    #NO_APP
2709 ; CHECK-RV32-NEXT:    #APP
2710 ; CHECK-RV32-NEXT:    li a1, 11
2711 ; CHECK-RV32-NEXT:    #NO_APP
2712 ; CHECK-RV32-NEXT:    #APP
2713 ; CHECK-RV32-NEXT:    li a2, 12
2714 ; CHECK-RV32-NEXT:    #NO_APP
2715 ; CHECK-RV32-NEXT:    #APP
2716 ; CHECK-RV32-NEXT:    li a3, 13
2717 ; CHECK-RV32-NEXT:    #NO_APP
2718 ; CHECK-RV32-NEXT:    #APP
2719 ; CHECK-RV32-NEXT:    li a4, 14
2720 ; CHECK-RV32-NEXT:    #NO_APP
2721 ; CHECK-RV32-NEXT:    #APP
2722 ; CHECK-RV32-NEXT:    li a5, 15
2723 ; CHECK-RV32-NEXT:    #NO_APP
2724 ; CHECK-RV32-NEXT:    #APP
2725 ; CHECK-RV32-NEXT:    li a6, 16
2726 ; CHECK-RV32-NEXT:    #NO_APP
2727 ; CHECK-RV32-NEXT:    #APP
2728 ; CHECK-RV32-NEXT:    li a7, 17
2729 ; CHECK-RV32-NEXT:    #NO_APP
2730 ; CHECK-RV32-NEXT:    #APP
2731 ; CHECK-RV32-NEXT:    li s2, 18
2732 ; CHECK-RV32-NEXT:    #NO_APP
2733 ; CHECK-RV32-NEXT:    #APP
2734 ; CHECK-RV32-NEXT:    li s3, 19
2735 ; CHECK-RV32-NEXT:    #NO_APP
2736 ; CHECK-RV32-NEXT:    #APP
2737 ; CHECK-RV32-NEXT:    li s4, 20
2738 ; CHECK-RV32-NEXT:    #NO_APP
2739 ; CHECK-RV32-NEXT:    #APP
2740 ; CHECK-RV32-NEXT:    li s5, 21
2741 ; CHECK-RV32-NEXT:    #NO_APP
2742 ; CHECK-RV32-NEXT:    #APP
2743 ; CHECK-RV32-NEXT:    li s6, 22
2744 ; CHECK-RV32-NEXT:    #NO_APP
2745 ; CHECK-RV32-NEXT:    #APP
2746 ; CHECK-RV32-NEXT:    li s7, 23
2747 ; CHECK-RV32-NEXT:    #NO_APP
2748 ; CHECK-RV32-NEXT:    #APP
2749 ; CHECK-RV32-NEXT:    li s8, 24
2750 ; CHECK-RV32-NEXT:    #NO_APP
2751 ; CHECK-RV32-NEXT:    #APP
2752 ; CHECK-RV32-NEXT:    li s9, 25
2753 ; CHECK-RV32-NEXT:    #NO_APP
2754 ; CHECK-RV32-NEXT:    #APP
2755 ; CHECK-RV32-NEXT:    li s10, 26
2756 ; CHECK-RV32-NEXT:    #NO_APP
2757 ; CHECK-RV32-NEXT:    #APP
2758 ; CHECK-RV32-NEXT:    li s11, 27
2759 ; CHECK-RV32-NEXT:    #NO_APP
2760 ; CHECK-RV32-NEXT:    #APP
2761 ; CHECK-RV32-NEXT:    li t3, 28
2762 ; CHECK-RV32-NEXT:    #NO_APP
2763 ; CHECK-RV32-NEXT:    #APP
2764 ; CHECK-RV32-NEXT:    li t4, 29
2765 ; CHECK-RV32-NEXT:    #NO_APP
2766 ; CHECK-RV32-NEXT:    #APP
2767 ; CHECK-RV32-NEXT:    li t5, 30
2768 ; CHECK-RV32-NEXT:    #NO_APP
2769 ; CHECK-RV32-NEXT:    #APP
2770 ; CHECK-RV32-NEXT:    li t6, 31
2771 ; CHECK-RV32-NEXT:    #NO_APP
2772 ; CHECK-RV32-NEXT:    bne t5, t6, .LBB6_2
2773 ; CHECK-RV32-NEXT:    j .LBB6_1
2774 ; CHECK-RV32-NEXT:  .LBB6_8: # %dest_1
2775 ; CHECK-RV32-NEXT:    lw s11, 0(sp)
2776 ; CHECK-RV32-NEXT:  .LBB6_1: # %dest_1
2777 ; CHECK-RV32-NEXT:    #APP
2778 ; CHECK-RV32-NEXT:    # dest 1
2779 ; CHECK-RV32-NEXT:    #NO_APP
2780 ; CHECK-RV32-NEXT:    j .LBB6_3
2781 ; CHECK-RV32-NEXT:  .LBB6_2: # %cond_2
2782 ; CHECK-RV32-NEXT:    bne t3, t4, .LBB6_5
2783 ; CHECK-RV32-NEXT:  .LBB6_3: # %dest_2
2784 ; CHECK-RV32-NEXT:    #APP
2785 ; CHECK-RV32-NEXT:    # dest 2
2786 ; CHECK-RV32-NEXT:    #NO_APP
2787 ; CHECK-RV32-NEXT:  .LBB6_4: # %dest_3
2788 ; CHECK-RV32-NEXT:    #APP
2789 ; CHECK-RV32-NEXT:    # dest 3
2790 ; CHECK-RV32-NEXT:    #NO_APP
2791 ; CHECK-RV32-NEXT:    #APP
2792 ; CHECK-RV32-NEXT:    # reg use ra
2793 ; CHECK-RV32-NEXT:    #NO_APP
2794 ; CHECK-RV32-NEXT:    #APP
2795 ; CHECK-RV32-NEXT:    # reg use t0
2796 ; CHECK-RV32-NEXT:    #NO_APP
2797 ; CHECK-RV32-NEXT:    #APP
2798 ; CHECK-RV32-NEXT:    # reg use t1
2799 ; CHECK-RV32-NEXT:    #NO_APP
2800 ; CHECK-RV32-NEXT:    #APP
2801 ; CHECK-RV32-NEXT:    # reg use t2
2802 ; CHECK-RV32-NEXT:    #NO_APP
2803 ; CHECK-RV32-NEXT:    #APP
2804 ; CHECK-RV32-NEXT:    # reg use s0
2805 ; CHECK-RV32-NEXT:    #NO_APP
2806 ; CHECK-RV32-NEXT:    #APP
2807 ; CHECK-RV32-NEXT:    # reg use s1
2808 ; CHECK-RV32-NEXT:    #NO_APP
2809 ; CHECK-RV32-NEXT:    #APP
2810 ; CHECK-RV32-NEXT:    # reg use a0
2811 ; CHECK-RV32-NEXT:    #NO_APP
2812 ; CHECK-RV32-NEXT:    #APP
2813 ; CHECK-RV32-NEXT:    # reg use a1
2814 ; CHECK-RV32-NEXT:    #NO_APP
2815 ; CHECK-RV32-NEXT:    #APP
2816 ; CHECK-RV32-NEXT:    # reg use a2
2817 ; CHECK-RV32-NEXT:    #NO_APP
2818 ; CHECK-RV32-NEXT:    #APP
2819 ; CHECK-RV32-NEXT:    # reg use a3
2820 ; CHECK-RV32-NEXT:    #NO_APP
2821 ; CHECK-RV32-NEXT:    #APP
2822 ; CHECK-RV32-NEXT:    # reg use a4
2823 ; CHECK-RV32-NEXT:    #NO_APP
2824 ; CHECK-RV32-NEXT:    #APP
2825 ; CHECK-RV32-NEXT:    # reg use a5
2826 ; CHECK-RV32-NEXT:    #NO_APP
2827 ; CHECK-RV32-NEXT:    #APP
2828 ; CHECK-RV32-NEXT:    # reg use a6
2829 ; CHECK-RV32-NEXT:    #NO_APP
2830 ; CHECK-RV32-NEXT:    #APP
2831 ; CHECK-RV32-NEXT:    # reg use a7
2832 ; CHECK-RV32-NEXT:    #NO_APP
2833 ; CHECK-RV32-NEXT:    #APP
2834 ; CHECK-RV32-NEXT:    # reg use s2
2835 ; CHECK-RV32-NEXT:    #NO_APP
2836 ; CHECK-RV32-NEXT:    #APP
2837 ; CHECK-RV32-NEXT:    # reg use s3
2838 ; CHECK-RV32-NEXT:    #NO_APP
2839 ; CHECK-RV32-NEXT:    #APP
2840 ; CHECK-RV32-NEXT:    # reg use s4
2841 ; CHECK-RV32-NEXT:    #NO_APP
2842 ; CHECK-RV32-NEXT:    #APP
2843 ; CHECK-RV32-NEXT:    # reg use s5
2844 ; CHECK-RV32-NEXT:    #NO_APP
2845 ; CHECK-RV32-NEXT:    #APP
2846 ; CHECK-RV32-NEXT:    # reg use s6
2847 ; CHECK-RV32-NEXT:    #NO_APP
2848 ; CHECK-RV32-NEXT:    #APP
2849 ; CHECK-RV32-NEXT:    # reg use s7
2850 ; CHECK-RV32-NEXT:    #NO_APP
2851 ; CHECK-RV32-NEXT:    #APP
2852 ; CHECK-RV32-NEXT:    # reg use s8
2853 ; CHECK-RV32-NEXT:    #NO_APP
2854 ; CHECK-RV32-NEXT:    #APP
2855 ; CHECK-RV32-NEXT:    # reg use s9
2856 ; CHECK-RV32-NEXT:    #NO_APP
2857 ; CHECK-RV32-NEXT:    #APP
2858 ; CHECK-RV32-NEXT:    # reg use s10
2859 ; CHECK-RV32-NEXT:    #NO_APP
2860 ; CHECK-RV32-NEXT:    #APP
2861 ; CHECK-RV32-NEXT:    # reg use s11
2862 ; CHECK-RV32-NEXT:    #NO_APP
2863 ; CHECK-RV32-NEXT:    #APP
2864 ; CHECK-RV32-NEXT:    # reg use t3
2865 ; CHECK-RV32-NEXT:    #NO_APP
2866 ; CHECK-RV32-NEXT:    #APP
2867 ; CHECK-RV32-NEXT:    # reg use t4
2868 ; CHECK-RV32-NEXT:    #NO_APP
2869 ; CHECK-RV32-NEXT:    #APP
2870 ; CHECK-RV32-NEXT:    # reg use t5
2871 ; CHECK-RV32-NEXT:    #NO_APP
2872 ; CHECK-RV32-NEXT:    #APP
2873 ; CHECK-RV32-NEXT:    # reg use t6
2874 ; CHECK-RV32-NEXT:    #NO_APP
2875 ; CHECK-RV32-NEXT:    lw ra, 60(sp) # 4-byte Folded Reload
2876 ; CHECK-RV32-NEXT:    lw s0, 56(sp) # 4-byte Folded Reload
2877 ; CHECK-RV32-NEXT:    lw s1, 52(sp) # 4-byte Folded Reload
2878 ; CHECK-RV32-NEXT:    lw s2, 48(sp) # 4-byte Folded Reload
2879 ; CHECK-RV32-NEXT:    lw s3, 44(sp) # 4-byte Folded Reload
2880 ; CHECK-RV32-NEXT:    lw s4, 40(sp) # 4-byte Folded Reload
2881 ; CHECK-RV32-NEXT:    lw s5, 36(sp) # 4-byte Folded Reload
2882 ; CHECK-RV32-NEXT:    lw s6, 32(sp) # 4-byte Folded Reload
2883 ; CHECK-RV32-NEXT:    lw s7, 28(sp) # 4-byte Folded Reload
2884 ; CHECK-RV32-NEXT:    lw s8, 24(sp) # 4-byte Folded Reload
2885 ; CHECK-RV32-NEXT:    lw s9, 20(sp) # 4-byte Folded Reload
2886 ; CHECK-RV32-NEXT:    lw s10, 16(sp) # 4-byte Folded Reload
2887 ; CHECK-RV32-NEXT:    lw s11, 12(sp) # 4-byte Folded Reload
2888 ; CHECK-RV32-NEXT:    addi sp, sp, 64
2889 ; CHECK-RV32-NEXT:    ret
2890 ; CHECK-RV32-NEXT:  .LBB6_5: # %cond_3
2891 ; CHECK-RV32-NEXT:    beq t1, t2, .LBB6_4
2892 ; CHECK-RV32-NEXT:  # %bb.6: # %space
2893 ; CHECK-RV32-NEXT:    #APP
2894 ; CHECK-RV32-NEXT:    .zero 1048576
2895 ; CHECK-RV32-NEXT:    #NO_APP
2896 ; CHECK-RV32-NEXT:  # %bb.7: # %space
2897 ; CHECK-RV32-NEXT:    sw s11, 0(sp)
2898 ; CHECK-RV32-NEXT:    jump .LBB6_8, s11
2900 ; CHECK-RV64-LABEL: relax_jal_spill_32_restore_block_correspondence:
2901 ; CHECK-RV64:       # %bb.0: # %entry
2902 ; CHECK-RV64-NEXT:    addi sp, sp, -128
2903 ; CHECK-RV64-NEXT:    .cfi_def_cfa_offset 128
2904 ; CHECK-RV64-NEXT:    sd ra, 120(sp) # 8-byte Folded Spill
2905 ; CHECK-RV64-NEXT:    sd s0, 112(sp) # 8-byte Folded Spill
2906 ; CHECK-RV64-NEXT:    sd s1, 104(sp) # 8-byte Folded Spill
2907 ; CHECK-RV64-NEXT:    sd s2, 96(sp) # 8-byte Folded Spill
2908 ; CHECK-RV64-NEXT:    sd s3, 88(sp) # 8-byte Folded Spill
2909 ; CHECK-RV64-NEXT:    sd s4, 80(sp) # 8-byte Folded Spill
2910 ; CHECK-RV64-NEXT:    sd s5, 72(sp) # 8-byte Folded Spill
2911 ; CHECK-RV64-NEXT:    sd s6, 64(sp) # 8-byte Folded Spill
2912 ; CHECK-RV64-NEXT:    sd s7, 56(sp) # 8-byte Folded Spill
2913 ; CHECK-RV64-NEXT:    sd s8, 48(sp) # 8-byte Folded Spill
2914 ; CHECK-RV64-NEXT:    sd s9, 40(sp) # 8-byte Folded Spill
2915 ; CHECK-RV64-NEXT:    sd s10, 32(sp) # 8-byte Folded Spill
2916 ; CHECK-RV64-NEXT:    sd s11, 24(sp) # 8-byte Folded Spill
2917 ; CHECK-RV64-NEXT:    .cfi_offset ra, -8
2918 ; CHECK-RV64-NEXT:    .cfi_offset s0, -16
2919 ; CHECK-RV64-NEXT:    .cfi_offset s1, -24
2920 ; CHECK-RV64-NEXT:    .cfi_offset s2, -32
2921 ; CHECK-RV64-NEXT:    .cfi_offset s3, -40
2922 ; CHECK-RV64-NEXT:    .cfi_offset s4, -48
2923 ; CHECK-RV64-NEXT:    .cfi_offset s5, -56
2924 ; CHECK-RV64-NEXT:    .cfi_offset s6, -64
2925 ; CHECK-RV64-NEXT:    .cfi_offset s7, -72
2926 ; CHECK-RV64-NEXT:    .cfi_offset s8, -80
2927 ; CHECK-RV64-NEXT:    .cfi_offset s9, -88
2928 ; CHECK-RV64-NEXT:    .cfi_offset s10, -96
2929 ; CHECK-RV64-NEXT:    .cfi_offset s11, -104
2930 ; CHECK-RV64-NEXT:    #APP
2931 ; CHECK-RV64-NEXT:    li ra, 1
2932 ; CHECK-RV64-NEXT:    #NO_APP
2933 ; CHECK-RV64-NEXT:    #APP
2934 ; CHECK-RV64-NEXT:    li t0, 5
2935 ; CHECK-RV64-NEXT:    #NO_APP
2936 ; CHECK-RV64-NEXT:    #APP
2937 ; CHECK-RV64-NEXT:    li t1, 6
2938 ; CHECK-RV64-NEXT:    #NO_APP
2939 ; CHECK-RV64-NEXT:    #APP
2940 ; CHECK-RV64-NEXT:    li t2, 7
2941 ; CHECK-RV64-NEXT:    #NO_APP
2942 ; CHECK-RV64-NEXT:    #APP
2943 ; CHECK-RV64-NEXT:    li s0, 8
2944 ; CHECK-RV64-NEXT:    #NO_APP
2945 ; CHECK-RV64-NEXT:    #APP
2946 ; CHECK-RV64-NEXT:    li s1, 9
2947 ; CHECK-RV64-NEXT:    #NO_APP
2948 ; CHECK-RV64-NEXT:    #APP
2949 ; CHECK-RV64-NEXT:    li a0, 10
2950 ; CHECK-RV64-NEXT:    #NO_APP
2951 ; CHECK-RV64-NEXT:    #APP
2952 ; CHECK-RV64-NEXT:    li a1, 11
2953 ; CHECK-RV64-NEXT:    #NO_APP
2954 ; CHECK-RV64-NEXT:    #APP
2955 ; CHECK-RV64-NEXT:    li a2, 12
2956 ; CHECK-RV64-NEXT:    #NO_APP
2957 ; CHECK-RV64-NEXT:    #APP
2958 ; CHECK-RV64-NEXT:    li a3, 13
2959 ; CHECK-RV64-NEXT:    #NO_APP
2960 ; CHECK-RV64-NEXT:    #APP
2961 ; CHECK-RV64-NEXT:    li a4, 14
2962 ; CHECK-RV64-NEXT:    #NO_APP
2963 ; CHECK-RV64-NEXT:    #APP
2964 ; CHECK-RV64-NEXT:    li a5, 15
2965 ; CHECK-RV64-NEXT:    #NO_APP
2966 ; CHECK-RV64-NEXT:    #APP
2967 ; CHECK-RV64-NEXT:    li a6, 16
2968 ; CHECK-RV64-NEXT:    #NO_APP
2969 ; CHECK-RV64-NEXT:    #APP
2970 ; CHECK-RV64-NEXT:    li a7, 17
2971 ; CHECK-RV64-NEXT:    #NO_APP
2972 ; CHECK-RV64-NEXT:    #APP
2973 ; CHECK-RV64-NEXT:    li s2, 18
2974 ; CHECK-RV64-NEXT:    #NO_APP
2975 ; CHECK-RV64-NEXT:    #APP
2976 ; CHECK-RV64-NEXT:    li s3, 19
2977 ; CHECK-RV64-NEXT:    #NO_APP
2978 ; CHECK-RV64-NEXT:    #APP
2979 ; CHECK-RV64-NEXT:    li s4, 20
2980 ; CHECK-RV64-NEXT:    #NO_APP
2981 ; CHECK-RV64-NEXT:    #APP
2982 ; CHECK-RV64-NEXT:    li s5, 21
2983 ; CHECK-RV64-NEXT:    #NO_APP
2984 ; CHECK-RV64-NEXT:    #APP
2985 ; CHECK-RV64-NEXT:    li s6, 22
2986 ; CHECK-RV64-NEXT:    #NO_APP
2987 ; CHECK-RV64-NEXT:    #APP
2988 ; CHECK-RV64-NEXT:    li s7, 23
2989 ; CHECK-RV64-NEXT:    #NO_APP
2990 ; CHECK-RV64-NEXT:    #APP
2991 ; CHECK-RV64-NEXT:    li s8, 24
2992 ; CHECK-RV64-NEXT:    #NO_APP
2993 ; CHECK-RV64-NEXT:    #APP
2994 ; CHECK-RV64-NEXT:    li s9, 25
2995 ; CHECK-RV64-NEXT:    #NO_APP
2996 ; CHECK-RV64-NEXT:    #APP
2997 ; CHECK-RV64-NEXT:    li s10, 26
2998 ; CHECK-RV64-NEXT:    #NO_APP
2999 ; CHECK-RV64-NEXT:    #APP
3000 ; CHECK-RV64-NEXT:    li s11, 27
3001 ; CHECK-RV64-NEXT:    #NO_APP
3002 ; CHECK-RV64-NEXT:    #APP
3003 ; CHECK-RV64-NEXT:    li t3, 28
3004 ; CHECK-RV64-NEXT:    #NO_APP
3005 ; CHECK-RV64-NEXT:    #APP
3006 ; CHECK-RV64-NEXT:    li t4, 29
3007 ; CHECK-RV64-NEXT:    #NO_APP
3008 ; CHECK-RV64-NEXT:    #APP
3009 ; CHECK-RV64-NEXT:    li t5, 30
3010 ; CHECK-RV64-NEXT:    #NO_APP
3011 ; CHECK-RV64-NEXT:    #APP
3012 ; CHECK-RV64-NEXT:    li t6, 31
3013 ; CHECK-RV64-NEXT:    #NO_APP
3014 ; CHECK-RV64-NEXT:    sd t6, 8(sp) # 8-byte Folded Spill
3015 ; CHECK-RV64-NEXT:    sext.w t6, t6
3016 ; CHECK-RV64-NEXT:    sd t5, 16(sp) # 8-byte Folded Spill
3017 ; CHECK-RV64-NEXT:    sext.w t5, t5
3018 ; CHECK-RV64-NEXT:    bne t5, t6, .LBB6_2
3019 ; CHECK-RV64-NEXT:  .LBB6_1: # %dest_1
3020 ; CHECK-RV64-NEXT:    #APP
3021 ; CHECK-RV64-NEXT:    # dest 1
3022 ; CHECK-RV64-NEXT:    #NO_APP
3023 ; CHECK-RV64-NEXT:    j .LBB6_3
3024 ; CHECK-RV64-NEXT:  .LBB6_2: # %cond_2
3025 ; CHECK-RV64-NEXT:    sext.w t5, t4
3026 ; CHECK-RV64-NEXT:    sext.w t6, t3
3027 ; CHECK-RV64-NEXT:    bne t6, t5, .LBB6_5
3028 ; CHECK-RV64-NEXT:  .LBB6_3: # %dest_2
3029 ; CHECK-RV64-NEXT:    #APP
3030 ; CHECK-RV64-NEXT:    # dest 2
3031 ; CHECK-RV64-NEXT:    #NO_APP
3032 ; CHECK-RV64-NEXT:  .LBB6_4: # %dest_3
3033 ; CHECK-RV64-NEXT:    #APP
3034 ; CHECK-RV64-NEXT:    # dest 3
3035 ; CHECK-RV64-NEXT:    #NO_APP
3036 ; CHECK-RV64-NEXT:    #APP
3037 ; CHECK-RV64-NEXT:    # reg use ra
3038 ; CHECK-RV64-NEXT:    #NO_APP
3039 ; CHECK-RV64-NEXT:    #APP
3040 ; CHECK-RV64-NEXT:    # reg use t0
3041 ; CHECK-RV64-NEXT:    #NO_APP
3042 ; CHECK-RV64-NEXT:    #APP
3043 ; CHECK-RV64-NEXT:    # reg use t1
3044 ; CHECK-RV64-NEXT:    #NO_APP
3045 ; CHECK-RV64-NEXT:    #APP
3046 ; CHECK-RV64-NEXT:    # reg use t2
3047 ; CHECK-RV64-NEXT:    #NO_APP
3048 ; CHECK-RV64-NEXT:    #APP
3049 ; CHECK-RV64-NEXT:    # reg use s0
3050 ; CHECK-RV64-NEXT:    #NO_APP
3051 ; CHECK-RV64-NEXT:    #APP
3052 ; CHECK-RV64-NEXT:    # reg use s1
3053 ; CHECK-RV64-NEXT:    #NO_APP
3054 ; CHECK-RV64-NEXT:    #APP
3055 ; CHECK-RV64-NEXT:    # reg use a0
3056 ; CHECK-RV64-NEXT:    #NO_APP
3057 ; CHECK-RV64-NEXT:    #APP
3058 ; CHECK-RV64-NEXT:    # reg use a1
3059 ; CHECK-RV64-NEXT:    #NO_APP
3060 ; CHECK-RV64-NEXT:    #APP
3061 ; CHECK-RV64-NEXT:    # reg use a2
3062 ; CHECK-RV64-NEXT:    #NO_APP
3063 ; CHECK-RV64-NEXT:    #APP
3064 ; CHECK-RV64-NEXT:    # reg use a3
3065 ; CHECK-RV64-NEXT:    #NO_APP
3066 ; CHECK-RV64-NEXT:    #APP
3067 ; CHECK-RV64-NEXT:    # reg use a4
3068 ; CHECK-RV64-NEXT:    #NO_APP
3069 ; CHECK-RV64-NEXT:    #APP
3070 ; CHECK-RV64-NEXT:    # reg use a5
3071 ; CHECK-RV64-NEXT:    #NO_APP
3072 ; CHECK-RV64-NEXT:    #APP
3073 ; CHECK-RV64-NEXT:    # reg use a6
3074 ; CHECK-RV64-NEXT:    #NO_APP
3075 ; CHECK-RV64-NEXT:    #APP
3076 ; CHECK-RV64-NEXT:    # reg use a7
3077 ; CHECK-RV64-NEXT:    #NO_APP
3078 ; CHECK-RV64-NEXT:    #APP
3079 ; CHECK-RV64-NEXT:    # reg use s2
3080 ; CHECK-RV64-NEXT:    #NO_APP
3081 ; CHECK-RV64-NEXT:    #APP
3082 ; CHECK-RV64-NEXT:    # reg use s3
3083 ; CHECK-RV64-NEXT:    #NO_APP
3084 ; CHECK-RV64-NEXT:    #APP
3085 ; CHECK-RV64-NEXT:    # reg use s4
3086 ; CHECK-RV64-NEXT:    #NO_APP
3087 ; CHECK-RV64-NEXT:    #APP
3088 ; CHECK-RV64-NEXT:    # reg use s5
3089 ; CHECK-RV64-NEXT:    #NO_APP
3090 ; CHECK-RV64-NEXT:    #APP
3091 ; CHECK-RV64-NEXT:    # reg use s6
3092 ; CHECK-RV64-NEXT:    #NO_APP
3093 ; CHECK-RV64-NEXT:    #APP
3094 ; CHECK-RV64-NEXT:    # reg use s7
3095 ; CHECK-RV64-NEXT:    #NO_APP
3096 ; CHECK-RV64-NEXT:    #APP
3097 ; CHECK-RV64-NEXT:    # reg use s8
3098 ; CHECK-RV64-NEXT:    #NO_APP
3099 ; CHECK-RV64-NEXT:    #APP
3100 ; CHECK-RV64-NEXT:    # reg use s9
3101 ; CHECK-RV64-NEXT:    #NO_APP
3102 ; CHECK-RV64-NEXT:    #APP
3103 ; CHECK-RV64-NEXT:    # reg use s10
3104 ; CHECK-RV64-NEXT:    #NO_APP
3105 ; CHECK-RV64-NEXT:    #APP
3106 ; CHECK-RV64-NEXT:    # reg use s11
3107 ; CHECK-RV64-NEXT:    #NO_APP
3108 ; CHECK-RV64-NEXT:    #APP
3109 ; CHECK-RV64-NEXT:    # reg use t3
3110 ; CHECK-RV64-NEXT:    #NO_APP
3111 ; CHECK-RV64-NEXT:    #APP
3112 ; CHECK-RV64-NEXT:    # reg use t4
3113 ; CHECK-RV64-NEXT:    #NO_APP
3114 ; CHECK-RV64-NEXT:    ld t5, 16(sp) # 8-byte Folded Reload
3115 ; CHECK-RV64-NEXT:    #APP
3116 ; CHECK-RV64-NEXT:    # reg use t5
3117 ; CHECK-RV64-NEXT:    #NO_APP
3118 ; CHECK-RV64-NEXT:    ld t6, 8(sp) # 8-byte Folded Reload
3119 ; CHECK-RV64-NEXT:    #APP
3120 ; CHECK-RV64-NEXT:    # reg use t6
3121 ; CHECK-RV64-NEXT:    #NO_APP
3122 ; CHECK-RV64-NEXT:    ld ra, 120(sp) # 8-byte Folded Reload
3123 ; CHECK-RV64-NEXT:    ld s0, 112(sp) # 8-byte Folded Reload
3124 ; CHECK-RV64-NEXT:    ld s1, 104(sp) # 8-byte Folded Reload
3125 ; CHECK-RV64-NEXT:    ld s2, 96(sp) # 8-byte Folded Reload
3126 ; CHECK-RV64-NEXT:    ld s3, 88(sp) # 8-byte Folded Reload
3127 ; CHECK-RV64-NEXT:    ld s4, 80(sp) # 8-byte Folded Reload
3128 ; CHECK-RV64-NEXT:    ld s5, 72(sp) # 8-byte Folded Reload
3129 ; CHECK-RV64-NEXT:    ld s6, 64(sp) # 8-byte Folded Reload
3130 ; CHECK-RV64-NEXT:    ld s7, 56(sp) # 8-byte Folded Reload
3131 ; CHECK-RV64-NEXT:    ld s8, 48(sp) # 8-byte Folded Reload
3132 ; CHECK-RV64-NEXT:    ld s9, 40(sp) # 8-byte Folded Reload
3133 ; CHECK-RV64-NEXT:    ld s10, 32(sp) # 8-byte Folded Reload
3134 ; CHECK-RV64-NEXT:    ld s11, 24(sp) # 8-byte Folded Reload
3135 ; CHECK-RV64-NEXT:    addi sp, sp, 128
3136 ; CHECK-RV64-NEXT:    ret
3137 ; CHECK-RV64-NEXT:  .LBB6_5: # %cond_3
3138 ; CHECK-RV64-NEXT:    sext.w t5, t2
3139 ; CHECK-RV64-NEXT:    sext.w t6, t1
3140 ; CHECK-RV64-NEXT:    beq t6, t5, .LBB6_4
3141 ; CHECK-RV64-NEXT:  # %bb.6: # %space
3142 ; CHECK-RV64-NEXT:    #APP
3143 ; CHECK-RV64-NEXT:    .zero 1048576
3144 ; CHECK-RV64-NEXT:    #NO_APP
3145 ; CHECK-RV64-NEXT:  # %bb.7: # %space
3146 ; CHECK-RV64-NEXT:    jump .LBB6_1, t5
3147 entry:
3148   %ra = call i32 asm sideeffect "addi ra, x0, 1", "={ra}"()
3149   %t0 = call i32 asm sideeffect "addi t0, x0, 5", "={t0}"()
3150   %t1 = call i32 asm sideeffect "addi t1, x0, 6", "={t1}"()
3151   %t2 = call i32 asm sideeffect "addi t2, x0, 7", "={t2}"()
3152   %s0 = call i32 asm sideeffect "addi s0, x0, 8", "={s0}"()
3153   %s1 = call i32 asm sideeffect "addi s1, x0, 9", "={s1}"()
3154   %a0 = call i32 asm sideeffect "addi a0, x0, 10", "={a0}"()
3155   %a1 = call i32 asm sideeffect "addi a1, x0, 11", "={a1}"()
3156   %a2 = call i32 asm sideeffect "addi a2, x0, 12", "={a2}"()
3157   %a3 = call i32 asm sideeffect "addi a3, x0, 13", "={a3}"()
3158   %a4 = call i32 asm sideeffect "addi a4, x0, 14", "={a4}"()
3159   %a5 = call i32 asm sideeffect "addi a5, x0, 15", "={a5}"()
3160   %a6 = call i32 asm sideeffect "addi a6, x0, 16", "={a6}"()
3161   %a7 = call i32 asm sideeffect "addi a7, x0, 17", "={a7}"()
3162   %s2 = call i32 asm sideeffect "addi s2, x0, 18", "={s2}"()
3163   %s3 = call i32 asm sideeffect "addi s3, x0, 19", "={s3}"()
3164   %s4 = call i32 asm sideeffect "addi s4, x0, 20", "={s4}"()
3165   %s5 = call i32 asm sideeffect "addi s5, x0, 21", "={s5}"()
3166   %s6 = call i32 asm sideeffect "addi s6, x0, 22", "={s6}"()
3167   %s7 = call i32 asm sideeffect "addi s7, x0, 23", "={s7}"()
3168   %s8 = call i32 asm sideeffect "addi s8, x0, 24", "={s8}"()
3169   %s9 = call i32 asm sideeffect "addi s9, x0, 25", "={s9}"()
3170   %s10 = call i32 asm sideeffect "addi s10, x0, 26", "={s10}"()
3171   %s11 = call i32 asm sideeffect "addi s11, x0, 27", "={s11}"()
3172   %t3 = call i32 asm sideeffect "addi t3, x0, 28", "={t3}"()
3173   %t4 = call i32 asm sideeffect "addi t4, x0, 29", "={t4}"()
3174   %t5 = call i32 asm sideeffect "addi t5, x0, 30", "={t5}"()
3175   %t6 = call i32 asm sideeffect "addi t6, x0, 31", "={t6}"()
3177   br label %cond_1
3179 cond_1:
3180   %cmp1 = icmp eq i32 %t5, %t6
3181   br i1 %cmp1, label %dest_1, label %cond_2
3183 cond_2:
3184   %cmp2 = icmp eq i32 %t3, %t4
3185   br i1 %cmp2, label %dest_2, label %cond_3
3187 cond_3:
3188   %cmp3 = icmp eq i32 %t1, %t2
3189   br i1 %cmp3, label %dest_3, label %space
3191 space:
3192   call void asm sideeffect ".space 1048576", ""()
3193   br label %dest_1
3195 dest_1:
3196   call void asm sideeffect "# dest 1", ""()
3197   br label %dest_2
3199 dest_2:
3200   call void asm sideeffect "# dest 2", ""()
3201   br label %dest_3
3203 dest_3:
3204   call void asm sideeffect "# dest 3", ""()
3205   br label %tail
3207 tail:
3208   call void asm sideeffect "# reg use $0", "{ra}"(i32 %ra)
3209   call void asm sideeffect "# reg use $0", "{t0}"(i32 %t0)
3210   call void asm sideeffect "# reg use $0", "{t1}"(i32 %t1)
3211   call void asm sideeffect "# reg use $0", "{t2}"(i32 %t2)
3212   call void asm sideeffect "# reg use $0", "{s0}"(i32 %s0)
3213   call void asm sideeffect "# reg use $0", "{s1}"(i32 %s1)
3214   call void asm sideeffect "# reg use $0", "{a0}"(i32 %a0)
3215   call void asm sideeffect "# reg use $0", "{a1}"(i32 %a1)
3216   call void asm sideeffect "# reg use $0", "{a2}"(i32 %a2)
3217   call void asm sideeffect "# reg use $0", "{a3}"(i32 %a3)
3218   call void asm sideeffect "# reg use $0", "{a4}"(i32 %a4)
3219   call void asm sideeffect "# reg use $0", "{a5}"(i32 %a5)
3220   call void asm sideeffect "# reg use $0", "{a6}"(i32 %a6)
3221   call void asm sideeffect "# reg use $0", "{a7}"(i32 %a7)
3222   call void asm sideeffect "# reg use $0", "{s2}"(i32 %s2)
3223   call void asm sideeffect "# reg use $0", "{s3}"(i32 %s3)
3224   call void asm sideeffect "# reg use $0", "{s4}"(i32 %s4)
3225   call void asm sideeffect "# reg use $0", "{s5}"(i32 %s5)
3226   call void asm sideeffect "# reg use $0", "{s6}"(i32 %s6)
3227   call void asm sideeffect "# reg use $0", "{s7}"(i32 %s7)
3228   call void asm sideeffect "# reg use $0", "{s8}"(i32 %s8)
3229   call void asm sideeffect "# reg use $0", "{s9}"(i32 %s9)
3230   call void asm sideeffect "# reg use $0", "{s10}"(i32 %s10)
3231   call void asm sideeffect "# reg use $0", "{s11}"(i32 %s11)
3232   call void asm sideeffect "# reg use $0", "{t3}"(i32 %t3)
3233   call void asm sideeffect "# reg use $0", "{t4}"(i32 %t4)
3234   call void asm sideeffect "# reg use $0", "{t5}"(i32 %t5)
3235   call void asm sideeffect "# reg use $0", "{t6}"(i32 %t6)
3237   ret void