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 \
8 ; RUN: llc -mtriple=riscv32 -relocation-model=pic -verify-machineinstrs < %s \
11 define void @relax_bcc(i1 %a) nounwind {
12 ; CHECK-LABEL: relax_bcc:
14 ; CHECK-NEXT: andi a0, a0, 1
15 ; CHECK-NEXT: bnez a0, .LBB0_1
16 ; CHECK-NEXT: j .LBB0_2
17 ; CHECK-NEXT: .LBB0_1: # %iftrue
19 ; CHECK-NEXT: .zero 4096
21 ; CHECK-NEXT: .LBB0_2: # %tail
23 br i1 %a, label %iftrue, label %tail
26 call void asm sideeffect ".space 4096", ""()
33 define i32 @relax_jal(i1 %a) nounwind {
34 ; CHECK-LABEL: relax_jal:
36 ; CHECK-NEXT: addi sp, sp, -16
37 ; CHECK-NEXT: andi a0, a0, 1
38 ; CHECK-NEXT: bnez a0, .LBB1_1
39 ; CHECK-NEXT: # %bb.4:
40 ; CHECK-NEXT: jump .LBB1_2, a0
41 ; CHECK-NEXT: .LBB1_1: # %iftrue
45 ; CHECK-NEXT: .zero 1048576
47 ; CHECK-NEXT: j .LBB1_3
48 ; CHECK-NEXT: .LBB1_2: # %jmp
51 ; CHECK-NEXT: .LBB1_3: # %tail
52 ; CHECK-NEXT: li a0, 1
53 ; CHECK-NEXT: addi sp, sp, 16
55 br i1 %a, label %iftrue, label %jmp
58 call void asm sideeffect "", ""()
62 call void asm sideeffect "", ""()
66 call void asm sideeffect ".space 1048576", ""()
73 define void @relax_jal_spill_32() {
74 ; CHECK-LABEL: relax_jal_spill_32:
76 ; CHECK-NEXT: addi sp, sp, -64
77 ; CHECK-NEXT: .cfi_def_cfa_offset 64
78 ; CHECK-NEXT: sw ra, 60(sp) # 4-byte Folded Spill
79 ; CHECK-NEXT: sw s0, 56(sp) # 4-byte Folded Spill
80 ; CHECK-NEXT: sw s1, 52(sp) # 4-byte Folded Spill
81 ; CHECK-NEXT: sw s2, 48(sp) # 4-byte Folded Spill
82 ; CHECK-NEXT: sw s3, 44(sp) # 4-byte Folded Spill
83 ; CHECK-NEXT: sw s4, 40(sp) # 4-byte Folded Spill
84 ; CHECK-NEXT: sw s5, 36(sp) # 4-byte Folded Spill
85 ; CHECK-NEXT: sw s6, 32(sp) # 4-byte Folded Spill
86 ; CHECK-NEXT: sw s7, 28(sp) # 4-byte Folded Spill
87 ; CHECK-NEXT: sw s8, 24(sp) # 4-byte Folded Spill
88 ; CHECK-NEXT: sw s9, 20(sp) # 4-byte Folded Spill
89 ; CHECK-NEXT: sw s10, 16(sp) # 4-byte Folded Spill
90 ; CHECK-NEXT: sw s11, 12(sp) # 4-byte Folded Spill
91 ; CHECK-NEXT: .cfi_offset ra, -4
92 ; CHECK-NEXT: .cfi_offset s0, -8
93 ; CHECK-NEXT: .cfi_offset s1, -12
94 ; CHECK-NEXT: .cfi_offset s2, -16
95 ; CHECK-NEXT: .cfi_offset s3, -20
96 ; CHECK-NEXT: .cfi_offset s4, -24
97 ; CHECK-NEXT: .cfi_offset s5, -28
98 ; CHECK-NEXT: .cfi_offset s6, -32
99 ; CHECK-NEXT: .cfi_offset s7, -36
100 ; CHECK-NEXT: .cfi_offset s8, -40
101 ; CHECK-NEXT: .cfi_offset s9, -44
102 ; CHECK-NEXT: .cfi_offset s10, -48
103 ; CHECK-NEXT: .cfi_offset s11, -52
105 ; CHECK-NEXT: li ra, 1
106 ; CHECK-NEXT: #NO_APP
108 ; CHECK-NEXT: li t0, 5
109 ; CHECK-NEXT: #NO_APP
111 ; CHECK-NEXT: li t1, 6
112 ; CHECK-NEXT: #NO_APP
114 ; CHECK-NEXT: li t2, 7
115 ; CHECK-NEXT: #NO_APP
117 ; CHECK-NEXT: li s0, 8
118 ; CHECK-NEXT: #NO_APP
120 ; CHECK-NEXT: li s1, 9
121 ; CHECK-NEXT: #NO_APP
123 ; CHECK-NEXT: li a0, 10
124 ; CHECK-NEXT: #NO_APP
126 ; CHECK-NEXT: li a1, 11
127 ; CHECK-NEXT: #NO_APP
129 ; CHECK-NEXT: li a2, 12
130 ; CHECK-NEXT: #NO_APP
132 ; CHECK-NEXT: li a3, 13
133 ; CHECK-NEXT: #NO_APP
135 ; CHECK-NEXT: li a4, 14
136 ; CHECK-NEXT: #NO_APP
138 ; CHECK-NEXT: li a5, 15
139 ; CHECK-NEXT: #NO_APP
141 ; CHECK-NEXT: li a6, 16
142 ; CHECK-NEXT: #NO_APP
144 ; CHECK-NEXT: li a7, 17
145 ; CHECK-NEXT: #NO_APP
147 ; CHECK-NEXT: li s2, 18
148 ; CHECK-NEXT: #NO_APP
150 ; CHECK-NEXT: li s3, 19
151 ; CHECK-NEXT: #NO_APP
153 ; CHECK-NEXT: li s4, 20
154 ; CHECK-NEXT: #NO_APP
156 ; CHECK-NEXT: li s5, 21
157 ; CHECK-NEXT: #NO_APP
159 ; CHECK-NEXT: li s6, 22
160 ; CHECK-NEXT: #NO_APP
162 ; CHECK-NEXT: li s7, 23
163 ; CHECK-NEXT: #NO_APP
165 ; CHECK-NEXT: li s8, 24
166 ; CHECK-NEXT: #NO_APP
168 ; CHECK-NEXT: li s9, 25
169 ; CHECK-NEXT: #NO_APP
171 ; CHECK-NEXT: li s10, 26
172 ; CHECK-NEXT: #NO_APP
174 ; CHECK-NEXT: li s11, 27
175 ; CHECK-NEXT: #NO_APP
177 ; CHECK-NEXT: li t3, 28
178 ; CHECK-NEXT: #NO_APP
180 ; CHECK-NEXT: li t4, 29
181 ; CHECK-NEXT: #NO_APP
183 ; CHECK-NEXT: li t5, 30
184 ; CHECK-NEXT: #NO_APP
186 ; CHECK-NEXT: li t6, 31
187 ; CHECK-NEXT: #NO_APP
188 ; CHECK-NEXT: beq t5, t6, .LBB2_1
189 ; CHECK-NEXT: # %bb.3:
190 ; CHECK-NEXT: sw s11, 0(sp)
191 ; CHECK-NEXT: jump .LBB2_4, s11
192 ; CHECK-NEXT: .LBB2_1: # %branch_1
194 ; CHECK-NEXT: .zero 1048576
195 ; CHECK-NEXT: #NO_APP
196 ; CHECK-NEXT: j .LBB2_2
197 ; CHECK-NEXT: .LBB2_4: # %branch_2
198 ; CHECK-NEXT: lw s11, 0(sp)
199 ; CHECK-NEXT: .LBB2_2: # %branch_2
201 ; CHECK-NEXT: # reg use ra
202 ; CHECK-NEXT: #NO_APP
204 ; CHECK-NEXT: # reg use t0
205 ; CHECK-NEXT: #NO_APP
207 ; CHECK-NEXT: # reg use t1
208 ; CHECK-NEXT: #NO_APP
210 ; CHECK-NEXT: # reg use t2
211 ; CHECK-NEXT: #NO_APP
213 ; CHECK-NEXT: # reg use s0
214 ; CHECK-NEXT: #NO_APP
216 ; CHECK-NEXT: # reg use s1
217 ; CHECK-NEXT: #NO_APP
219 ; CHECK-NEXT: # reg use a0
220 ; CHECK-NEXT: #NO_APP
222 ; CHECK-NEXT: # reg use a1
223 ; CHECK-NEXT: #NO_APP
225 ; CHECK-NEXT: # reg use a2
226 ; CHECK-NEXT: #NO_APP
228 ; CHECK-NEXT: # reg use a3
229 ; CHECK-NEXT: #NO_APP
231 ; CHECK-NEXT: # reg use a4
232 ; CHECK-NEXT: #NO_APP
234 ; CHECK-NEXT: # reg use a5
235 ; CHECK-NEXT: #NO_APP
237 ; CHECK-NEXT: # reg use a6
238 ; CHECK-NEXT: #NO_APP
240 ; CHECK-NEXT: # reg use a7
241 ; CHECK-NEXT: #NO_APP
243 ; CHECK-NEXT: # reg use s2
244 ; CHECK-NEXT: #NO_APP
246 ; CHECK-NEXT: # reg use s3
247 ; CHECK-NEXT: #NO_APP
249 ; CHECK-NEXT: # reg use s4
250 ; CHECK-NEXT: #NO_APP
252 ; CHECK-NEXT: # reg use s5
253 ; CHECK-NEXT: #NO_APP
255 ; CHECK-NEXT: # reg use s6
256 ; CHECK-NEXT: #NO_APP
258 ; CHECK-NEXT: # reg use s7
259 ; CHECK-NEXT: #NO_APP
261 ; CHECK-NEXT: # reg use s8
262 ; CHECK-NEXT: #NO_APP
264 ; CHECK-NEXT: # reg use s9
265 ; CHECK-NEXT: #NO_APP
267 ; CHECK-NEXT: # reg use s10
268 ; CHECK-NEXT: #NO_APP
270 ; CHECK-NEXT: # reg use s11
271 ; CHECK-NEXT: #NO_APP
273 ; CHECK-NEXT: # reg use t3
274 ; CHECK-NEXT: #NO_APP
276 ; CHECK-NEXT: # reg use t4
277 ; CHECK-NEXT: #NO_APP
279 ; CHECK-NEXT: # reg use t5
280 ; CHECK-NEXT: #NO_APP
282 ; CHECK-NEXT: # reg use t6
283 ; CHECK-NEXT: #NO_APP
284 ; CHECK-NEXT: lw ra, 60(sp) # 4-byte Folded Reload
285 ; CHECK-NEXT: lw s0, 56(sp) # 4-byte Folded Reload
286 ; CHECK-NEXT: lw s1, 52(sp) # 4-byte Folded Reload
287 ; CHECK-NEXT: lw s2, 48(sp) # 4-byte Folded Reload
288 ; CHECK-NEXT: lw s3, 44(sp) # 4-byte Folded Reload
289 ; CHECK-NEXT: lw s4, 40(sp) # 4-byte Folded Reload
290 ; CHECK-NEXT: lw s5, 36(sp) # 4-byte Folded Reload
291 ; CHECK-NEXT: lw s6, 32(sp) # 4-byte Folded Reload
292 ; CHECK-NEXT: lw s7, 28(sp) # 4-byte Folded Reload
293 ; CHECK-NEXT: lw s8, 24(sp) # 4-byte Folded Reload
294 ; CHECK-NEXT: lw s9, 20(sp) # 4-byte Folded Reload
295 ; CHECK-NEXT: lw s10, 16(sp) # 4-byte Folded Reload
296 ; CHECK-NEXT: lw s11, 12(sp) # 4-byte Folded Reload
297 ; CHECK-NEXT: .cfi_restore ra
298 ; CHECK-NEXT: .cfi_restore s0
299 ; CHECK-NEXT: .cfi_restore s1
300 ; CHECK-NEXT: .cfi_restore s2
301 ; CHECK-NEXT: .cfi_restore s3
302 ; CHECK-NEXT: .cfi_restore s4
303 ; CHECK-NEXT: .cfi_restore s5
304 ; CHECK-NEXT: .cfi_restore s6
305 ; CHECK-NEXT: .cfi_restore s7
306 ; CHECK-NEXT: .cfi_restore s8
307 ; CHECK-NEXT: .cfi_restore s9
308 ; CHECK-NEXT: .cfi_restore s10
309 ; CHECK-NEXT: .cfi_restore s11
310 ; CHECK-NEXT: addi sp, sp, 64
311 ; CHECK-NEXT: .cfi_def_cfa_offset 0
313 %ra = call i32 asm sideeffect "addi ra, x0, 1", "={ra}"()
314 %t0 = call i32 asm sideeffect "addi t0, x0, 5", "={t0}"()
315 %t1 = call i32 asm sideeffect "addi t1, x0, 6", "={t1}"()
316 %t2 = call i32 asm sideeffect "addi t2, x0, 7", "={t2}"()
317 %s0 = call i32 asm sideeffect "addi s0, x0, 8", "={s0}"()
318 %s1 = call i32 asm sideeffect "addi s1, x0, 9", "={s1}"()
319 %a0 = call i32 asm sideeffect "addi a0, x0, 10", "={a0}"()
320 %a1 = call i32 asm sideeffect "addi a1, x0, 11", "={a1}"()
321 %a2 = call i32 asm sideeffect "addi a2, x0, 12", "={a2}"()
322 %a3 = call i32 asm sideeffect "addi a3, x0, 13", "={a3}"()
323 %a4 = call i32 asm sideeffect "addi a4, x0, 14", "={a4}"()
324 %a5 = call i32 asm sideeffect "addi a5, x0, 15", "={a5}"()
325 %a6 = call i32 asm sideeffect "addi a6, x0, 16", "={a6}"()
326 %a7 = call i32 asm sideeffect "addi a7, x0, 17", "={a7}"()
327 %s2 = call i32 asm sideeffect "addi s2, x0, 18", "={s2}"()
328 %s3 = call i32 asm sideeffect "addi s3, x0, 19", "={s3}"()
329 %s4 = call i32 asm sideeffect "addi s4, x0, 20", "={s4}"()
330 %s5 = call i32 asm sideeffect "addi s5, x0, 21", "={s5}"()
331 %s6 = call i32 asm sideeffect "addi s6, x0, 22", "={s6}"()
332 %s7 = call i32 asm sideeffect "addi s7, x0, 23", "={s7}"()
333 %s8 = call i32 asm sideeffect "addi s8, x0, 24", "={s8}"()
334 %s9 = call i32 asm sideeffect "addi s9, x0, 25", "={s9}"()
335 %s10 = call i32 asm sideeffect "addi s10, x0, 26", "={s10}"()
336 %s11 = call i32 asm sideeffect "addi s11, x0, 27", "={s11}"()
337 %t3 = call i32 asm sideeffect "addi t3, x0, 28", "={t3}"()
338 %t4 = call i32 asm sideeffect "addi t4, x0, 29", "={t4}"()
339 %t5 = call i32 asm sideeffect "addi t5, x0, 30", "={t5}"()
340 %t6 = call i32 asm sideeffect "addi t6, x0, 31", "={t6}"()
342 %cmp = icmp eq i32 %t5, %t6
343 br i1 %cmp, label %branch_1, label %branch_2
346 call void asm sideeffect ".space 1048576", ""()
350 call void asm sideeffect "# reg use $0", "{ra}"(i32 %ra)
351 call void asm sideeffect "# reg use $0", "{t0}"(i32 %t0)
352 call void asm sideeffect "# reg use $0", "{t1}"(i32 %t1)
353 call void asm sideeffect "# reg use $0", "{t2}"(i32 %t2)
354 call void asm sideeffect "# reg use $0", "{s0}"(i32 %s0)
355 call void asm sideeffect "# reg use $0", "{s1}"(i32 %s1)
356 call void asm sideeffect "# reg use $0", "{a0}"(i32 %a0)
357 call void asm sideeffect "# reg use $0", "{a1}"(i32 %a1)
358 call void asm sideeffect "# reg use $0", "{a2}"(i32 %a2)
359 call void asm sideeffect "# reg use $0", "{a3}"(i32 %a3)
360 call void asm sideeffect "# reg use $0", "{a4}"(i32 %a4)
361 call void asm sideeffect "# reg use $0", "{a5}"(i32 %a5)
362 call void asm sideeffect "# reg use $0", "{a6}"(i32 %a6)
363 call void asm sideeffect "# reg use $0", "{a7}"(i32 %a7)
364 call void asm sideeffect "# reg use $0", "{s2}"(i32 %s2)
365 call void asm sideeffect "# reg use $0", "{s3}"(i32 %s3)
366 call void asm sideeffect "# reg use $0", "{s4}"(i32 %s4)
367 call void asm sideeffect "# reg use $0", "{s5}"(i32 %s5)
368 call void asm sideeffect "# reg use $0", "{s6}"(i32 %s6)
369 call void asm sideeffect "# reg use $0", "{s7}"(i32 %s7)
370 call void asm sideeffect "# reg use $0", "{s8}"(i32 %s8)
371 call void asm sideeffect "# reg use $0", "{s9}"(i32 %s9)
372 call void asm sideeffect "# reg use $0", "{s10}"(i32 %s10)
373 call void asm sideeffect "# reg use $0", "{s11}"(i32 %s11)
374 call void asm sideeffect "# reg use $0", "{t3}"(i32 %t3)
375 call void asm sideeffect "# reg use $0", "{t4}"(i32 %t4)
376 call void asm sideeffect "# reg use $0", "{t5}"(i32 %t5)
377 call void asm sideeffect "# reg use $0", "{t6}"(i32 %t6)
382 define void @relax_jal_spill_32_adjust_spill_slot() {
383 ; If the stack is large and the offset of BranchRelaxationScratchFrameIndex
384 ; is out the range of 12-bit signed integer, check whether the spill slot is
385 ; adjusted to close to the stack base register.
386 ; CHECK-LABEL: relax_jal_spill_32_adjust_spill_slot:
388 ; CHECK-NEXT: addi sp, sp, -2032
389 ; CHECK-NEXT: .cfi_def_cfa_offset 2032
390 ; CHECK-NEXT: sw ra, 2028(sp) # 4-byte Folded Spill
391 ; CHECK-NEXT: sw s0, 2024(sp) # 4-byte Folded Spill
392 ; CHECK-NEXT: sw s1, 2020(sp) # 4-byte Folded Spill
393 ; CHECK-NEXT: sw s2, 2016(sp) # 4-byte Folded Spill
394 ; CHECK-NEXT: sw s3, 2012(sp) # 4-byte Folded Spill
395 ; CHECK-NEXT: sw s4, 2008(sp) # 4-byte Folded Spill
396 ; CHECK-NEXT: sw s5, 2004(sp) # 4-byte Folded Spill
397 ; CHECK-NEXT: sw s6, 2000(sp) # 4-byte Folded Spill
398 ; CHECK-NEXT: sw s7, 1996(sp) # 4-byte Folded Spill
399 ; CHECK-NEXT: sw s8, 1992(sp) # 4-byte Folded Spill
400 ; CHECK-NEXT: sw s9, 1988(sp) # 4-byte Folded Spill
401 ; CHECK-NEXT: sw s10, 1984(sp) # 4-byte Folded Spill
402 ; CHECK-NEXT: sw s11, 1980(sp) # 4-byte Folded Spill
403 ; CHECK-NEXT: .cfi_offset ra, -4
404 ; CHECK-NEXT: .cfi_offset s0, -8
405 ; CHECK-NEXT: .cfi_offset s1, -12
406 ; CHECK-NEXT: .cfi_offset s2, -16
407 ; CHECK-NEXT: .cfi_offset s3, -20
408 ; CHECK-NEXT: .cfi_offset s4, -24
409 ; CHECK-NEXT: .cfi_offset s5, -28
410 ; CHECK-NEXT: .cfi_offset s6, -32
411 ; CHECK-NEXT: .cfi_offset s7, -36
412 ; CHECK-NEXT: .cfi_offset s8, -40
413 ; CHECK-NEXT: .cfi_offset s9, -44
414 ; CHECK-NEXT: .cfi_offset s10, -48
415 ; CHECK-NEXT: .cfi_offset s11, -52
416 ; CHECK-NEXT: addi s0, sp, 2032
417 ; CHECK-NEXT: .cfi_def_cfa s0, 0
418 ; CHECK-NEXT: lui a0, 2
419 ; CHECK-NEXT: addi a0, a0, -2032
420 ; CHECK-NEXT: sub sp, sp, a0
421 ; CHECK-NEXT: srli a0, sp, 12
422 ; CHECK-NEXT: slli sp, a0, 12
424 ; CHECK-NEXT: li ra, 1
425 ; CHECK-NEXT: #NO_APP
427 ; CHECK-NEXT: li t0, 5
428 ; CHECK-NEXT: #NO_APP
430 ; CHECK-NEXT: li t1, 6
431 ; CHECK-NEXT: #NO_APP
433 ; CHECK-NEXT: li t2, 7
434 ; CHECK-NEXT: #NO_APP
436 ; CHECK-NEXT: li s0, 8
437 ; CHECK-NEXT: #NO_APP
439 ; CHECK-NEXT: li s1, 9
440 ; CHECK-NEXT: #NO_APP
442 ; CHECK-NEXT: li a0, 10
443 ; CHECK-NEXT: #NO_APP
445 ; CHECK-NEXT: li a1, 11
446 ; CHECK-NEXT: #NO_APP
448 ; CHECK-NEXT: li a2, 12
449 ; CHECK-NEXT: #NO_APP
451 ; CHECK-NEXT: li a3, 13
452 ; CHECK-NEXT: #NO_APP
454 ; CHECK-NEXT: li a4, 14
455 ; CHECK-NEXT: #NO_APP
457 ; CHECK-NEXT: li a5, 15
458 ; CHECK-NEXT: #NO_APP
460 ; CHECK-NEXT: li a6, 16
461 ; CHECK-NEXT: #NO_APP
463 ; CHECK-NEXT: li a7, 17
464 ; CHECK-NEXT: #NO_APP
466 ; CHECK-NEXT: li s2, 18
467 ; CHECK-NEXT: #NO_APP
469 ; CHECK-NEXT: li s3, 19
470 ; CHECK-NEXT: #NO_APP
472 ; CHECK-NEXT: li s4, 20
473 ; CHECK-NEXT: #NO_APP
475 ; CHECK-NEXT: li s5, 21
476 ; CHECK-NEXT: #NO_APP
478 ; CHECK-NEXT: li s6, 22
479 ; CHECK-NEXT: #NO_APP
481 ; CHECK-NEXT: li s7, 23
482 ; CHECK-NEXT: #NO_APP
484 ; CHECK-NEXT: li s8, 24
485 ; CHECK-NEXT: #NO_APP
487 ; CHECK-NEXT: li s9, 25
488 ; CHECK-NEXT: #NO_APP
490 ; CHECK-NEXT: li s10, 26
491 ; CHECK-NEXT: #NO_APP
493 ; CHECK-NEXT: li s11, 27
494 ; CHECK-NEXT: #NO_APP
496 ; CHECK-NEXT: li t3, 28
497 ; CHECK-NEXT: #NO_APP
499 ; CHECK-NEXT: li t4, 29
500 ; CHECK-NEXT: #NO_APP
502 ; CHECK-NEXT: li t5, 30
503 ; CHECK-NEXT: #NO_APP
505 ; CHECK-NEXT: li t6, 31
506 ; CHECK-NEXT: #NO_APP
507 ; CHECK-NEXT: beq t5, t6, .LBB3_1
508 ; CHECK-NEXT: # %bb.3:
509 ; CHECK-NEXT: sw s11, 0(sp)
510 ; CHECK-NEXT: jump .LBB3_4, s11
511 ; CHECK-NEXT: .LBB3_1: # %branch_1
513 ; CHECK-NEXT: .zero 1048576
514 ; CHECK-NEXT: #NO_APP
515 ; CHECK-NEXT: j .LBB3_2
516 ; CHECK-NEXT: .LBB3_4: # %branch_2
517 ; CHECK-NEXT: lw s11, 0(sp)
518 ; CHECK-NEXT: .LBB3_2: # %branch_2
520 ; CHECK-NEXT: # reg use ra
521 ; CHECK-NEXT: #NO_APP
523 ; CHECK-NEXT: # reg use t0
524 ; CHECK-NEXT: #NO_APP
526 ; CHECK-NEXT: # reg use t1
527 ; CHECK-NEXT: #NO_APP
529 ; CHECK-NEXT: # reg use t2
530 ; CHECK-NEXT: #NO_APP
532 ; CHECK-NEXT: # reg use s0
533 ; CHECK-NEXT: #NO_APP
535 ; CHECK-NEXT: # reg use s1
536 ; CHECK-NEXT: #NO_APP
538 ; CHECK-NEXT: # reg use a0
539 ; CHECK-NEXT: #NO_APP
541 ; CHECK-NEXT: # reg use a1
542 ; CHECK-NEXT: #NO_APP
544 ; CHECK-NEXT: # reg use a2
545 ; CHECK-NEXT: #NO_APP
547 ; CHECK-NEXT: # reg use a3
548 ; CHECK-NEXT: #NO_APP
550 ; CHECK-NEXT: # reg use a4
551 ; CHECK-NEXT: #NO_APP
553 ; CHECK-NEXT: # reg use a5
554 ; CHECK-NEXT: #NO_APP
556 ; CHECK-NEXT: # reg use a6
557 ; CHECK-NEXT: #NO_APP
559 ; CHECK-NEXT: # reg use a7
560 ; CHECK-NEXT: #NO_APP
562 ; CHECK-NEXT: # reg use s2
563 ; CHECK-NEXT: #NO_APP
565 ; CHECK-NEXT: # reg use s3
566 ; CHECK-NEXT: #NO_APP
568 ; CHECK-NEXT: # reg use s4
569 ; CHECK-NEXT: #NO_APP
571 ; CHECK-NEXT: # reg use s5
572 ; CHECK-NEXT: #NO_APP
574 ; CHECK-NEXT: # reg use s6
575 ; CHECK-NEXT: #NO_APP
577 ; CHECK-NEXT: # reg use s7
578 ; CHECK-NEXT: #NO_APP
580 ; CHECK-NEXT: # reg use s8
581 ; CHECK-NEXT: #NO_APP
583 ; CHECK-NEXT: # reg use s9
584 ; CHECK-NEXT: #NO_APP
586 ; CHECK-NEXT: # reg use s10
587 ; CHECK-NEXT: #NO_APP
589 ; CHECK-NEXT: # reg use s11
590 ; CHECK-NEXT: #NO_APP
592 ; CHECK-NEXT: # reg use t3
593 ; CHECK-NEXT: #NO_APP
595 ; CHECK-NEXT: # reg use t4
596 ; CHECK-NEXT: #NO_APP
598 ; CHECK-NEXT: # reg use t5
599 ; CHECK-NEXT: #NO_APP
601 ; CHECK-NEXT: # reg use t6
602 ; CHECK-NEXT: #NO_APP
603 ; CHECK-NEXT: addi sp, s0, -2032
604 ; CHECK-NEXT: .cfi_def_cfa sp, 2032
605 ; CHECK-NEXT: lw ra, 2028(sp) # 4-byte Folded Reload
606 ; CHECK-NEXT: lw s0, 2024(sp) # 4-byte Folded Reload
607 ; CHECK-NEXT: lw s1, 2020(sp) # 4-byte Folded Reload
608 ; CHECK-NEXT: lw s2, 2016(sp) # 4-byte Folded Reload
609 ; CHECK-NEXT: lw s3, 2012(sp) # 4-byte Folded Reload
610 ; CHECK-NEXT: lw s4, 2008(sp) # 4-byte Folded Reload
611 ; CHECK-NEXT: lw s5, 2004(sp) # 4-byte Folded Reload
612 ; CHECK-NEXT: lw s6, 2000(sp) # 4-byte Folded Reload
613 ; CHECK-NEXT: lw s7, 1996(sp) # 4-byte Folded Reload
614 ; CHECK-NEXT: lw s8, 1992(sp) # 4-byte Folded Reload
615 ; CHECK-NEXT: lw s9, 1988(sp) # 4-byte Folded Reload
616 ; CHECK-NEXT: lw s10, 1984(sp) # 4-byte Folded Reload
617 ; CHECK-NEXT: lw s11, 1980(sp) # 4-byte Folded Reload
618 ; CHECK-NEXT: .cfi_restore ra
619 ; CHECK-NEXT: .cfi_restore s0
620 ; CHECK-NEXT: .cfi_restore s1
621 ; CHECK-NEXT: .cfi_restore s2
622 ; CHECK-NEXT: .cfi_restore s3
623 ; CHECK-NEXT: .cfi_restore s4
624 ; CHECK-NEXT: .cfi_restore s5
625 ; CHECK-NEXT: .cfi_restore s6
626 ; CHECK-NEXT: .cfi_restore s7
627 ; CHECK-NEXT: .cfi_restore s8
628 ; CHECK-NEXT: .cfi_restore s9
629 ; CHECK-NEXT: .cfi_restore s10
630 ; CHECK-NEXT: .cfi_restore s11
631 ; CHECK-NEXT: addi sp, sp, 2032
632 ; CHECK-NEXT: .cfi_def_cfa_offset 0
634 %stack_obj = alloca i32, align 4096
636 %ra = call i32 asm sideeffect "addi ra, x0, 1", "={ra}"()
637 %t0 = call i32 asm sideeffect "addi t0, x0, 5", "={t0}"()
638 %t1 = call i32 asm sideeffect "addi t1, x0, 6", "={t1}"()
639 %t2 = call i32 asm sideeffect "addi t2, x0, 7", "={t2}"()
640 %s0 = call i32 asm sideeffect "addi s0, x0, 8", "={s0}"()
641 %s1 = call i32 asm sideeffect "addi s1, x0, 9", "={s1}"()
642 %a0 = call i32 asm sideeffect "addi a0, x0, 10", "={a0}"()
643 %a1 = call i32 asm sideeffect "addi a1, x0, 11", "={a1}"()
644 %a2 = call i32 asm sideeffect "addi a2, x0, 12", "={a2}"()
645 %a3 = call i32 asm sideeffect "addi a3, x0, 13", "={a3}"()
646 %a4 = call i32 asm sideeffect "addi a4, x0, 14", "={a4}"()
647 %a5 = call i32 asm sideeffect "addi a5, x0, 15", "={a5}"()
648 %a6 = call i32 asm sideeffect "addi a6, x0, 16", "={a6}"()
649 %a7 = call i32 asm sideeffect "addi a7, x0, 17", "={a7}"()
650 %s2 = call i32 asm sideeffect "addi s2, x0, 18", "={s2}"()
651 %s3 = call i32 asm sideeffect "addi s3, x0, 19", "={s3}"()
652 %s4 = call i32 asm sideeffect "addi s4, x0, 20", "={s4}"()
653 %s5 = call i32 asm sideeffect "addi s5, x0, 21", "={s5}"()
654 %s6 = call i32 asm sideeffect "addi s6, x0, 22", "={s6}"()
655 %s7 = call i32 asm sideeffect "addi s7, x0, 23", "={s7}"()
656 %s8 = call i32 asm sideeffect "addi s8, x0, 24", "={s8}"()
657 %s9 = call i32 asm sideeffect "addi s9, x0, 25", "={s9}"()
658 %s10 = call i32 asm sideeffect "addi s10, x0, 26", "={s10}"()
659 %s11 = call i32 asm sideeffect "addi s11, x0, 27", "={s11}"()
660 %t3 = call i32 asm sideeffect "addi t3, x0, 28", "={t3}"()
661 %t4 = call i32 asm sideeffect "addi t4, x0, 29", "={t4}"()
662 %t5 = call i32 asm sideeffect "addi t5, x0, 30", "={t5}"()
663 %t6 = call i32 asm sideeffect "addi t6, x0, 31", "={t6}"()
665 %cmp = icmp eq i32 %t5, %t6
666 br i1 %cmp, label %branch_1, label %branch_2
669 call void asm sideeffect ".space 1048576", ""()
673 call void asm sideeffect "# reg use $0", "{ra}"(i32 %ra)
674 call void asm sideeffect "# reg use $0", "{t0}"(i32 %t0)
675 call void asm sideeffect "# reg use $0", "{t1}"(i32 %t1)
676 call void asm sideeffect "# reg use $0", "{t2}"(i32 %t2)
677 call void asm sideeffect "# reg use $0", "{s0}"(i32 %s0)
678 call void asm sideeffect "# reg use $0", "{s1}"(i32 %s1)
679 call void asm sideeffect "# reg use $0", "{a0}"(i32 %a0)
680 call void asm sideeffect "# reg use $0", "{a1}"(i32 %a1)
681 call void asm sideeffect "# reg use $0", "{a2}"(i32 %a2)
682 call void asm sideeffect "# reg use $0", "{a3}"(i32 %a3)
683 call void asm sideeffect "# reg use $0", "{a4}"(i32 %a4)
684 call void asm sideeffect "# reg use $0", "{a5}"(i32 %a5)
685 call void asm sideeffect "# reg use $0", "{a6}"(i32 %a6)
686 call void asm sideeffect "# reg use $0", "{a7}"(i32 %a7)
687 call void asm sideeffect "# reg use $0", "{s2}"(i32 %s2)
688 call void asm sideeffect "# reg use $0", "{s3}"(i32 %s3)
689 call void asm sideeffect "# reg use $0", "{s4}"(i32 %s4)
690 call void asm sideeffect "# reg use $0", "{s5}"(i32 %s5)
691 call void asm sideeffect "# reg use $0", "{s6}"(i32 %s6)
692 call void asm sideeffect "# reg use $0", "{s7}"(i32 %s7)
693 call void asm sideeffect "# reg use $0", "{s8}"(i32 %s8)
694 call void asm sideeffect "# reg use $0", "{s9}"(i32 %s9)
695 call void asm sideeffect "# reg use $0", "{s10}"(i32 %s10)
696 call void asm sideeffect "# reg use $0", "{s11}"(i32 %s11)
697 call void asm sideeffect "# reg use $0", "{t3}"(i32 %t3)
698 call void asm sideeffect "# reg use $0", "{t4}"(i32 %t4)
699 call void asm sideeffect "# reg use $0", "{t5}"(i32 %t5)
700 call void asm sideeffect "# reg use $0", "{t6}"(i32 %t6)
705 define void @relax_jal_spill_32_restore_block_correspondence() {
706 ; CHECK-LABEL: relax_jal_spill_32_restore_block_correspondence:
707 ; CHECK: # %bb.0: # %entry
708 ; CHECK-NEXT: addi sp, sp, -64
709 ; CHECK-NEXT: .cfi_def_cfa_offset 64
710 ; CHECK-NEXT: sw ra, 60(sp) # 4-byte Folded Spill
711 ; CHECK-NEXT: sw s0, 56(sp) # 4-byte Folded Spill
712 ; CHECK-NEXT: sw s1, 52(sp) # 4-byte Folded Spill
713 ; CHECK-NEXT: sw s2, 48(sp) # 4-byte Folded Spill
714 ; CHECK-NEXT: sw s3, 44(sp) # 4-byte Folded Spill
715 ; CHECK-NEXT: sw s4, 40(sp) # 4-byte Folded Spill
716 ; CHECK-NEXT: sw s5, 36(sp) # 4-byte Folded Spill
717 ; CHECK-NEXT: sw s6, 32(sp) # 4-byte Folded Spill
718 ; CHECK-NEXT: sw s7, 28(sp) # 4-byte Folded Spill
719 ; CHECK-NEXT: sw s8, 24(sp) # 4-byte Folded Spill
720 ; CHECK-NEXT: sw s9, 20(sp) # 4-byte Folded Spill
721 ; CHECK-NEXT: sw s10, 16(sp) # 4-byte Folded Spill
722 ; CHECK-NEXT: sw s11, 12(sp) # 4-byte Folded Spill
723 ; CHECK-NEXT: .cfi_offset ra, -4
724 ; CHECK-NEXT: .cfi_offset s0, -8
725 ; CHECK-NEXT: .cfi_offset s1, -12
726 ; CHECK-NEXT: .cfi_offset s2, -16
727 ; CHECK-NEXT: .cfi_offset s3, -20
728 ; CHECK-NEXT: .cfi_offset s4, -24
729 ; CHECK-NEXT: .cfi_offset s5, -28
730 ; CHECK-NEXT: .cfi_offset s6, -32
731 ; CHECK-NEXT: .cfi_offset s7, -36
732 ; CHECK-NEXT: .cfi_offset s8, -40
733 ; CHECK-NEXT: .cfi_offset s9, -44
734 ; CHECK-NEXT: .cfi_offset s10, -48
735 ; CHECK-NEXT: .cfi_offset s11, -52
736 ; CHECK-NEXT: .cfi_remember_state
738 ; CHECK-NEXT: li ra, 1
739 ; CHECK-NEXT: #NO_APP
741 ; CHECK-NEXT: li t0, 5
742 ; CHECK-NEXT: #NO_APP
744 ; CHECK-NEXT: li t1, 6
745 ; CHECK-NEXT: #NO_APP
747 ; CHECK-NEXT: li t2, 7
748 ; CHECK-NEXT: #NO_APP
750 ; CHECK-NEXT: li s0, 8
751 ; CHECK-NEXT: #NO_APP
753 ; CHECK-NEXT: li s1, 9
754 ; CHECK-NEXT: #NO_APP
756 ; CHECK-NEXT: li a0, 10
757 ; CHECK-NEXT: #NO_APP
759 ; CHECK-NEXT: li a1, 11
760 ; CHECK-NEXT: #NO_APP
762 ; CHECK-NEXT: li a2, 12
763 ; CHECK-NEXT: #NO_APP
765 ; CHECK-NEXT: li a3, 13
766 ; CHECK-NEXT: #NO_APP
768 ; CHECK-NEXT: li a4, 14
769 ; CHECK-NEXT: #NO_APP
771 ; CHECK-NEXT: li a5, 15
772 ; CHECK-NEXT: #NO_APP
774 ; CHECK-NEXT: li a6, 16
775 ; CHECK-NEXT: #NO_APP
777 ; CHECK-NEXT: li a7, 17
778 ; CHECK-NEXT: #NO_APP
780 ; CHECK-NEXT: li s2, 18
781 ; CHECK-NEXT: #NO_APP
783 ; CHECK-NEXT: li s3, 19
784 ; CHECK-NEXT: #NO_APP
786 ; CHECK-NEXT: li s4, 20
787 ; CHECK-NEXT: #NO_APP
789 ; CHECK-NEXT: li s5, 21
790 ; CHECK-NEXT: #NO_APP
792 ; CHECK-NEXT: li s6, 22
793 ; CHECK-NEXT: #NO_APP
795 ; CHECK-NEXT: li s7, 23
796 ; CHECK-NEXT: #NO_APP
798 ; CHECK-NEXT: li s8, 24
799 ; CHECK-NEXT: #NO_APP
801 ; CHECK-NEXT: li s9, 25
802 ; CHECK-NEXT: #NO_APP
804 ; CHECK-NEXT: li s10, 26
805 ; CHECK-NEXT: #NO_APP
807 ; CHECK-NEXT: li s11, 27
808 ; CHECK-NEXT: #NO_APP
810 ; CHECK-NEXT: li t3, 28
811 ; CHECK-NEXT: #NO_APP
813 ; CHECK-NEXT: li t4, 29
814 ; CHECK-NEXT: #NO_APP
816 ; CHECK-NEXT: li t5, 30
817 ; CHECK-NEXT: #NO_APP
819 ; CHECK-NEXT: li t6, 31
820 ; CHECK-NEXT: #NO_APP
821 ; CHECK-NEXT: bne t5, t6, .LBB4_2
822 ; CHECK-NEXT: j .LBB4_1
823 ; CHECK-NEXT: .LBB4_8: # %dest_1
824 ; CHECK-NEXT: lw s11, 0(sp)
825 ; CHECK-NEXT: .LBB4_1: # %dest_1
827 ; CHECK-NEXT: # dest 1
828 ; CHECK-NEXT: #NO_APP
829 ; CHECK-NEXT: j .LBB4_3
830 ; CHECK-NEXT: .LBB4_2: # %cond_2
831 ; CHECK-NEXT: bne t3, t4, .LBB4_5
832 ; CHECK-NEXT: .LBB4_3: # %dest_2
834 ; CHECK-NEXT: # dest 2
835 ; CHECK-NEXT: #NO_APP
836 ; CHECK-NEXT: .LBB4_4: # %dest_3
838 ; CHECK-NEXT: # dest 3
839 ; CHECK-NEXT: #NO_APP
841 ; CHECK-NEXT: # reg use ra
842 ; CHECK-NEXT: #NO_APP
844 ; CHECK-NEXT: # reg use t0
845 ; CHECK-NEXT: #NO_APP
847 ; CHECK-NEXT: # reg use t1
848 ; CHECK-NEXT: #NO_APP
850 ; CHECK-NEXT: # reg use t2
851 ; CHECK-NEXT: #NO_APP
853 ; CHECK-NEXT: # reg use s0
854 ; CHECK-NEXT: #NO_APP
856 ; CHECK-NEXT: # reg use s1
857 ; CHECK-NEXT: #NO_APP
859 ; CHECK-NEXT: # reg use a0
860 ; CHECK-NEXT: #NO_APP
862 ; CHECK-NEXT: # reg use a1
863 ; CHECK-NEXT: #NO_APP
865 ; CHECK-NEXT: # reg use a2
866 ; CHECK-NEXT: #NO_APP
868 ; CHECK-NEXT: # reg use a3
869 ; CHECK-NEXT: #NO_APP
871 ; CHECK-NEXT: # reg use a4
872 ; CHECK-NEXT: #NO_APP
874 ; CHECK-NEXT: # reg use a5
875 ; CHECK-NEXT: #NO_APP
877 ; CHECK-NEXT: # reg use a6
878 ; CHECK-NEXT: #NO_APP
880 ; CHECK-NEXT: # reg use a7
881 ; CHECK-NEXT: #NO_APP
883 ; CHECK-NEXT: # reg use s2
884 ; CHECK-NEXT: #NO_APP
886 ; CHECK-NEXT: # reg use s3
887 ; CHECK-NEXT: #NO_APP
889 ; CHECK-NEXT: # reg use s4
890 ; CHECK-NEXT: #NO_APP
892 ; CHECK-NEXT: # reg use s5
893 ; CHECK-NEXT: #NO_APP
895 ; CHECK-NEXT: # reg use s6
896 ; CHECK-NEXT: #NO_APP
898 ; CHECK-NEXT: # reg use s7
899 ; CHECK-NEXT: #NO_APP
901 ; CHECK-NEXT: # reg use s8
902 ; CHECK-NEXT: #NO_APP
904 ; CHECK-NEXT: # reg use s9
905 ; CHECK-NEXT: #NO_APP
907 ; CHECK-NEXT: # reg use s10
908 ; CHECK-NEXT: #NO_APP
910 ; CHECK-NEXT: # reg use s11
911 ; CHECK-NEXT: #NO_APP
913 ; CHECK-NEXT: # reg use t3
914 ; CHECK-NEXT: #NO_APP
916 ; CHECK-NEXT: # reg use t4
917 ; CHECK-NEXT: #NO_APP
919 ; CHECK-NEXT: # reg use t5
920 ; CHECK-NEXT: #NO_APP
922 ; CHECK-NEXT: # reg use t6
923 ; CHECK-NEXT: #NO_APP
924 ; CHECK-NEXT: lw ra, 60(sp) # 4-byte Folded Reload
925 ; CHECK-NEXT: lw s0, 56(sp) # 4-byte Folded Reload
926 ; CHECK-NEXT: lw s1, 52(sp) # 4-byte Folded Reload
927 ; CHECK-NEXT: lw s2, 48(sp) # 4-byte Folded Reload
928 ; CHECK-NEXT: lw s3, 44(sp) # 4-byte Folded Reload
929 ; CHECK-NEXT: lw s4, 40(sp) # 4-byte Folded Reload
930 ; CHECK-NEXT: lw s5, 36(sp) # 4-byte Folded Reload
931 ; CHECK-NEXT: lw s6, 32(sp) # 4-byte Folded Reload
932 ; CHECK-NEXT: lw s7, 28(sp) # 4-byte Folded Reload
933 ; CHECK-NEXT: lw s8, 24(sp) # 4-byte Folded Reload
934 ; CHECK-NEXT: lw s9, 20(sp) # 4-byte Folded Reload
935 ; CHECK-NEXT: lw s10, 16(sp) # 4-byte Folded Reload
936 ; CHECK-NEXT: lw s11, 12(sp) # 4-byte Folded Reload
937 ; CHECK-NEXT: .cfi_restore ra
938 ; CHECK-NEXT: .cfi_restore s0
939 ; CHECK-NEXT: .cfi_restore s1
940 ; CHECK-NEXT: .cfi_restore s2
941 ; CHECK-NEXT: .cfi_restore s3
942 ; CHECK-NEXT: .cfi_restore s4
943 ; CHECK-NEXT: .cfi_restore s5
944 ; CHECK-NEXT: .cfi_restore s6
945 ; CHECK-NEXT: .cfi_restore s7
946 ; CHECK-NEXT: .cfi_restore s8
947 ; CHECK-NEXT: .cfi_restore s9
948 ; CHECK-NEXT: .cfi_restore s10
949 ; CHECK-NEXT: .cfi_restore s11
950 ; CHECK-NEXT: addi sp, sp, 64
951 ; CHECK-NEXT: .cfi_def_cfa_offset 0
953 ; CHECK-NEXT: .LBB4_5: # %cond_3
954 ; CHECK-NEXT: .cfi_restore_state
955 ; CHECK-NEXT: beq t1, t2, .LBB4_4
956 ; CHECK-NEXT: # %bb.6: # %space
958 ; CHECK-NEXT: .zero 1048576
959 ; CHECK-NEXT: #NO_APP
960 ; CHECK-NEXT: # %bb.7: # %space
961 ; CHECK-NEXT: sw s11, 0(sp)
962 ; CHECK-NEXT: jump .LBB4_8, s11
964 %ra = call i32 asm sideeffect "addi ra, x0, 1", "={ra}"()
965 %t0 = call i32 asm sideeffect "addi t0, x0, 5", "={t0}"()
966 %t1 = call i32 asm sideeffect "addi t1, x0, 6", "={t1}"()
967 %t2 = call i32 asm sideeffect "addi t2, x0, 7", "={t2}"()
968 %s0 = call i32 asm sideeffect "addi s0, x0, 8", "={s0}"()
969 %s1 = call i32 asm sideeffect "addi s1, x0, 9", "={s1}"()
970 %a0 = call i32 asm sideeffect "addi a0, x0, 10", "={a0}"()
971 %a1 = call i32 asm sideeffect "addi a1, x0, 11", "={a1}"()
972 %a2 = call i32 asm sideeffect "addi a2, x0, 12", "={a2}"()
973 %a3 = call i32 asm sideeffect "addi a3, x0, 13", "={a3}"()
974 %a4 = call i32 asm sideeffect "addi a4, x0, 14", "={a4}"()
975 %a5 = call i32 asm sideeffect "addi a5, x0, 15", "={a5}"()
976 %a6 = call i32 asm sideeffect "addi a6, x0, 16", "={a6}"()
977 %a7 = call i32 asm sideeffect "addi a7, x0, 17", "={a7}"()
978 %s2 = call i32 asm sideeffect "addi s2, x0, 18", "={s2}"()
979 %s3 = call i32 asm sideeffect "addi s3, x0, 19", "={s3}"()
980 %s4 = call i32 asm sideeffect "addi s4, x0, 20", "={s4}"()
981 %s5 = call i32 asm sideeffect "addi s5, x0, 21", "={s5}"()
982 %s6 = call i32 asm sideeffect "addi s6, x0, 22", "={s6}"()
983 %s7 = call i32 asm sideeffect "addi s7, x0, 23", "={s7}"()
984 %s8 = call i32 asm sideeffect "addi s8, x0, 24", "={s8}"()
985 %s9 = call i32 asm sideeffect "addi s9, x0, 25", "={s9}"()
986 %s10 = call i32 asm sideeffect "addi s10, x0, 26", "={s10}"()
987 %s11 = call i32 asm sideeffect "addi s11, x0, 27", "={s11}"()
988 %t3 = call i32 asm sideeffect "addi t3, x0, 28", "={t3}"()
989 %t4 = call i32 asm sideeffect "addi t4, x0, 29", "={t4}"()
990 %t5 = call i32 asm sideeffect "addi t5, x0, 30", "={t5}"()
991 %t6 = call i32 asm sideeffect "addi t6, x0, 31", "={t6}"()
996 %cmp1 = icmp eq i32 %t5, %t6
997 br i1 %cmp1, label %dest_1, label %cond_2
1000 %cmp2 = icmp eq i32 %t3, %t4
1001 br i1 %cmp2, label %dest_2, label %cond_3
1004 %cmp3 = icmp eq i32 %t1, %t2
1005 br i1 %cmp3, label %dest_3, label %space
1008 call void asm sideeffect ".space 1048576", ""()
1012 call void asm sideeffect "# dest 1", ""()
1016 call void asm sideeffect "# dest 2", ""()
1020 call void asm sideeffect "# dest 3", ""()
1024 call void asm sideeffect "# reg use $0", "{ra}"(i32 %ra)
1025 call void asm sideeffect "# reg use $0", "{t0}"(i32 %t0)
1026 call void asm sideeffect "# reg use $0", "{t1}"(i32 %t1)
1027 call void asm sideeffect "# reg use $0", "{t2}"(i32 %t2)
1028 call void asm sideeffect "# reg use $0", "{s0}"(i32 %s0)
1029 call void asm sideeffect "# reg use $0", "{s1}"(i32 %s1)
1030 call void asm sideeffect "# reg use $0", "{a0}"(i32 %a0)
1031 call void asm sideeffect "# reg use $0", "{a1}"(i32 %a1)
1032 call void asm sideeffect "# reg use $0", "{a2}"(i32 %a2)
1033 call void asm sideeffect "# reg use $0", "{a3}"(i32 %a3)
1034 call void asm sideeffect "# reg use $0", "{a4}"(i32 %a4)
1035 call void asm sideeffect "# reg use $0", "{a5}"(i32 %a5)
1036 call void asm sideeffect "# reg use $0", "{a6}"(i32 %a6)
1037 call void asm sideeffect "# reg use $0", "{a7}"(i32 %a7)
1038 call void asm sideeffect "# reg use $0", "{s2}"(i32 %s2)
1039 call void asm sideeffect "# reg use $0", "{s3}"(i32 %s3)
1040 call void asm sideeffect "# reg use $0", "{s4}"(i32 %s4)
1041 call void asm sideeffect "# reg use $0", "{s5}"(i32 %s5)
1042 call void asm sideeffect "# reg use $0", "{s6}"(i32 %s6)
1043 call void asm sideeffect "# reg use $0", "{s7}"(i32 %s7)
1044 call void asm sideeffect "# reg use $0", "{s8}"(i32 %s8)
1045 call void asm sideeffect "# reg use $0", "{s9}"(i32 %s9)
1046 call void asm sideeffect "# reg use $0", "{s10}"(i32 %s10)
1047 call void asm sideeffect "# reg use $0", "{s11}"(i32 %s11)
1048 call void asm sideeffect "# reg use $0", "{t3}"(i32 %t3)
1049 call void asm sideeffect "# reg use $0", "{t4}"(i32 %t4)
1050 call void asm sideeffect "# reg use $0", "{t5}"(i32 %t5)
1051 call void asm sideeffect "# reg use $0", "{t6}"(i32 %t6)