xref: /llvm-project/llvm/test/CodeGen/RISCV/branch-relaxation-rv32.ll (revision 6d91d7ce6aeb46d948a5a476909825b71b0c84a2)
1*6d91d7ceSSam Elliott; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2*6d91d7ceSSam Elliott; RUN: llc -mtriple=riscv32 -verify-machineinstrs -filetype=obj < %s \
3*6d91d7ceSSam Elliott; RUN:   -o /dev/null 2>&1
4*6d91d7ceSSam Elliott; RUN: llc -mtriple=riscv32 -relocation-model=pic -verify-machineinstrs \
5*6d91d7ceSSam Elliott; RUN:   -filetype=obj < %s -o /dev/null 2>&1
6*6d91d7ceSSam Elliott; RUN: llc -mtriple=riscv32 -verify-machineinstrs < %s \
7*6d91d7ceSSam Elliott; RUN:   | FileCheck %s
8*6d91d7ceSSam Elliott; RUN: llc -mtriple=riscv32 -relocation-model=pic -verify-machineinstrs < %s \
9*6d91d7ceSSam Elliott; RUN:   | FileCheck %s
10*6d91d7ceSSam Elliott
11*6d91d7ceSSam Elliottdefine void @relax_bcc(i1 %a) nounwind {
12*6d91d7ceSSam Elliott; CHECK-LABEL: relax_bcc:
13*6d91d7ceSSam Elliott; CHECK:       # %bb.0:
14*6d91d7ceSSam Elliott; CHECK-NEXT:    andi a0, a0, 1
15*6d91d7ceSSam Elliott; CHECK-NEXT:    bnez a0, .LBB0_1
16*6d91d7ceSSam Elliott; CHECK-NEXT:    j .LBB0_2
17*6d91d7ceSSam Elliott; CHECK-NEXT:  .LBB0_1: # %iftrue
18*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
19*6d91d7ceSSam Elliott; CHECK-NEXT:    .zero 4096
20*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
21*6d91d7ceSSam Elliott; CHECK-NEXT:  .LBB0_2: # %tail
22*6d91d7ceSSam Elliott; CHECK-NEXT:    ret
23*6d91d7ceSSam Elliott  br i1 %a, label %iftrue, label %tail
24*6d91d7ceSSam Elliott
25*6d91d7ceSSam Elliottiftrue:
26*6d91d7ceSSam Elliott  call void asm sideeffect ".space 4096", ""()
27*6d91d7ceSSam Elliott  br label %tail
28*6d91d7ceSSam Elliott
29*6d91d7ceSSam Elliotttail:
30*6d91d7ceSSam Elliott  ret void
31*6d91d7ceSSam Elliott}
32*6d91d7ceSSam Elliott
33*6d91d7ceSSam Elliottdefine i32 @relax_jal(i1 %a) nounwind {
34*6d91d7ceSSam Elliott; CHECK-LABEL: relax_jal:
35*6d91d7ceSSam Elliott; CHECK:       # %bb.0:
36*6d91d7ceSSam Elliott; CHECK-NEXT:    addi sp, sp, -16
37*6d91d7ceSSam Elliott; CHECK-NEXT:    andi a0, a0, 1
38*6d91d7ceSSam Elliott; CHECK-NEXT:    bnez a0, .LBB1_1
39*6d91d7ceSSam Elliott; CHECK-NEXT:  # %bb.4:
40*6d91d7ceSSam Elliott; CHECK-NEXT:    jump .LBB1_2, a0
41*6d91d7ceSSam Elliott; CHECK-NEXT:  .LBB1_1: # %iftrue
42*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
43*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
44*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
45*6d91d7ceSSam Elliott; CHECK-NEXT:    .zero 1048576
46*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
47*6d91d7ceSSam Elliott; CHECK-NEXT:    j .LBB1_3
48*6d91d7ceSSam Elliott; CHECK-NEXT:  .LBB1_2: # %jmp
49*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
50*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
51*6d91d7ceSSam Elliott; CHECK-NEXT:  .LBB1_3: # %tail
52*6d91d7ceSSam Elliott; CHECK-NEXT:    li a0, 1
53*6d91d7ceSSam Elliott; CHECK-NEXT:    addi sp, sp, 16
54*6d91d7ceSSam Elliott; CHECK-NEXT:    ret
55*6d91d7ceSSam Elliott  br i1 %a, label %iftrue, label %jmp
56*6d91d7ceSSam Elliott
57*6d91d7ceSSam Elliottjmp:
58*6d91d7ceSSam Elliott  call void asm sideeffect "", ""()
59*6d91d7ceSSam Elliott  br label %tail
60*6d91d7ceSSam Elliott
61*6d91d7ceSSam Elliottiftrue:
62*6d91d7ceSSam Elliott  call void asm sideeffect "", ""()
63*6d91d7ceSSam Elliott  br label %space
64*6d91d7ceSSam Elliott
65*6d91d7ceSSam Elliottspace:
66*6d91d7ceSSam Elliott  call void asm sideeffect ".space 1048576", ""()
67*6d91d7ceSSam Elliott  br label %tail
68*6d91d7ceSSam Elliott
69*6d91d7ceSSam Elliotttail:
70*6d91d7ceSSam Elliott  ret i32 1
71*6d91d7ceSSam Elliott}
72*6d91d7ceSSam Elliott
73*6d91d7ceSSam Elliottdefine void @relax_jal_spill_32() {
74*6d91d7ceSSam Elliott; CHECK-LABEL: relax_jal_spill_32:
75*6d91d7ceSSam Elliott; CHECK:       # %bb.0:
76*6d91d7ceSSam Elliott; CHECK-NEXT:    addi sp, sp, -64
77*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_def_cfa_offset 64
78*6d91d7ceSSam Elliott; CHECK-NEXT:    sw ra, 60(sp) # 4-byte Folded Spill
79*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s0, 56(sp) # 4-byte Folded Spill
80*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s1, 52(sp) # 4-byte Folded Spill
81*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s2, 48(sp) # 4-byte Folded Spill
82*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s3, 44(sp) # 4-byte Folded Spill
83*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s4, 40(sp) # 4-byte Folded Spill
84*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s5, 36(sp) # 4-byte Folded Spill
85*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s6, 32(sp) # 4-byte Folded Spill
86*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s7, 28(sp) # 4-byte Folded Spill
87*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s8, 24(sp) # 4-byte Folded Spill
88*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s9, 20(sp) # 4-byte Folded Spill
89*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s10, 16(sp) # 4-byte Folded Spill
90*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s11, 12(sp) # 4-byte Folded Spill
91*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset ra, -4
92*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s0, -8
93*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s1, -12
94*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s2, -16
95*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s3, -20
96*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s4, -24
97*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s5, -28
98*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s6, -32
99*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s7, -36
100*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s8, -40
101*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s9, -44
102*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s10, -48
103*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s11, -52
104*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
105*6d91d7ceSSam Elliott; CHECK-NEXT:    li ra, 1
106*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
107*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
108*6d91d7ceSSam Elliott; CHECK-NEXT:    li t0, 5
109*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
110*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
111*6d91d7ceSSam Elliott; CHECK-NEXT:    li t1, 6
112*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
113*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
114*6d91d7ceSSam Elliott; CHECK-NEXT:    li t2, 7
115*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
116*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
117*6d91d7ceSSam Elliott; CHECK-NEXT:    li s0, 8
118*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
119*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
120*6d91d7ceSSam Elliott; CHECK-NEXT:    li s1, 9
121*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
122*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
123*6d91d7ceSSam Elliott; CHECK-NEXT:    li a0, 10
124*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
125*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
126*6d91d7ceSSam Elliott; CHECK-NEXT:    li a1, 11
127*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
128*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
129*6d91d7ceSSam Elliott; CHECK-NEXT:    li a2, 12
130*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
131*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
132*6d91d7ceSSam Elliott; CHECK-NEXT:    li a3, 13
133*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
134*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
135*6d91d7ceSSam Elliott; CHECK-NEXT:    li a4, 14
136*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
137*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
138*6d91d7ceSSam Elliott; CHECK-NEXT:    li a5, 15
139*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
140*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
141*6d91d7ceSSam Elliott; CHECK-NEXT:    li a6, 16
142*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
143*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
144*6d91d7ceSSam Elliott; CHECK-NEXT:    li a7, 17
145*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
146*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
147*6d91d7ceSSam Elliott; CHECK-NEXT:    li s2, 18
148*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
149*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
150*6d91d7ceSSam Elliott; CHECK-NEXT:    li s3, 19
151*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
152*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
153*6d91d7ceSSam Elliott; CHECK-NEXT:    li s4, 20
154*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
155*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
156*6d91d7ceSSam Elliott; CHECK-NEXT:    li s5, 21
157*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
158*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
159*6d91d7ceSSam Elliott; CHECK-NEXT:    li s6, 22
160*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
161*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
162*6d91d7ceSSam Elliott; CHECK-NEXT:    li s7, 23
163*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
164*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
165*6d91d7ceSSam Elliott; CHECK-NEXT:    li s8, 24
166*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
167*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
168*6d91d7ceSSam Elliott; CHECK-NEXT:    li s9, 25
169*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
170*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
171*6d91d7ceSSam Elliott; CHECK-NEXT:    li s10, 26
172*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
173*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
174*6d91d7ceSSam Elliott; CHECK-NEXT:    li s11, 27
175*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
176*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
177*6d91d7ceSSam Elliott; CHECK-NEXT:    li t3, 28
178*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
179*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
180*6d91d7ceSSam Elliott; CHECK-NEXT:    li t4, 29
181*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
182*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
183*6d91d7ceSSam Elliott; CHECK-NEXT:    li t5, 30
184*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
185*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
186*6d91d7ceSSam Elliott; CHECK-NEXT:    li t6, 31
187*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
188*6d91d7ceSSam Elliott; CHECK-NEXT:    beq t5, t6, .LBB2_1
189*6d91d7ceSSam Elliott; CHECK-NEXT:  # %bb.3:
190*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s11, 0(sp)
191*6d91d7ceSSam Elliott; CHECK-NEXT:    jump .LBB2_4, s11
192*6d91d7ceSSam Elliott; CHECK-NEXT:  .LBB2_1: # %branch_1
193*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
194*6d91d7ceSSam Elliott; CHECK-NEXT:    .zero 1048576
195*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
196*6d91d7ceSSam Elliott; CHECK-NEXT:    j .LBB2_2
197*6d91d7ceSSam Elliott; CHECK-NEXT:  .LBB2_4: # %branch_2
198*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s11, 0(sp)
199*6d91d7ceSSam Elliott; CHECK-NEXT:  .LBB2_2: # %branch_2
200*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
201*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use ra
202*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
203*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
204*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use t0
205*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
206*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
207*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use t1
208*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
209*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
210*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use t2
211*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
212*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
213*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s0
214*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
215*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
216*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s1
217*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
218*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
219*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use a0
220*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
221*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
222*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use a1
223*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
224*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
225*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use a2
226*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
227*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
228*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use a3
229*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
230*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
231*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use a4
232*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
233*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
234*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use a5
235*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
236*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
237*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use a6
238*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
239*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
240*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use a7
241*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
242*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
243*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s2
244*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
245*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
246*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s3
247*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
248*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
249*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s4
250*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
251*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
252*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s5
253*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
254*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
255*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s6
256*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
257*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
258*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s7
259*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
260*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
261*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s8
262*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
263*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
264*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s9
265*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
266*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
267*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s10
268*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
269*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
270*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s11
271*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
272*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
273*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use t3
274*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
275*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
276*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use t4
277*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
278*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
279*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use t5
280*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
281*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
282*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use t6
283*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
284*6d91d7ceSSam Elliott; CHECK-NEXT:    lw ra, 60(sp) # 4-byte Folded Reload
285*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s0, 56(sp) # 4-byte Folded Reload
286*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s1, 52(sp) # 4-byte Folded Reload
287*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s2, 48(sp) # 4-byte Folded Reload
288*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s3, 44(sp) # 4-byte Folded Reload
289*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s4, 40(sp) # 4-byte Folded Reload
290*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s5, 36(sp) # 4-byte Folded Reload
291*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s6, 32(sp) # 4-byte Folded Reload
292*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s7, 28(sp) # 4-byte Folded Reload
293*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s8, 24(sp) # 4-byte Folded Reload
294*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s9, 20(sp) # 4-byte Folded Reload
295*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s10, 16(sp) # 4-byte Folded Reload
296*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s11, 12(sp) # 4-byte Folded Reload
297*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore ra
298*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s0
299*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s1
300*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s2
301*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s3
302*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s4
303*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s5
304*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s6
305*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s7
306*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s8
307*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s9
308*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s10
309*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s11
310*6d91d7ceSSam Elliott; CHECK-NEXT:    addi sp, sp, 64
311*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_def_cfa_offset 0
312*6d91d7ceSSam Elliott; CHECK-NEXT:    ret
313*6d91d7ceSSam Elliott  %ra = call i32 asm sideeffect "addi ra, x0, 1", "={ra}"()
314*6d91d7ceSSam Elliott  %t0 = call i32 asm sideeffect "addi t0, x0, 5", "={t0}"()
315*6d91d7ceSSam Elliott  %t1 = call i32 asm sideeffect "addi t1, x0, 6", "={t1}"()
316*6d91d7ceSSam Elliott  %t2 = call i32 asm sideeffect "addi t2, x0, 7", "={t2}"()
317*6d91d7ceSSam Elliott  %s0 = call i32 asm sideeffect "addi s0, x0, 8", "={s0}"()
318*6d91d7ceSSam Elliott  %s1 = call i32 asm sideeffect "addi s1, x0, 9", "={s1}"()
319*6d91d7ceSSam Elliott  %a0 = call i32 asm sideeffect "addi a0, x0, 10", "={a0}"()
320*6d91d7ceSSam Elliott  %a1 = call i32 asm sideeffect "addi a1, x0, 11", "={a1}"()
321*6d91d7ceSSam Elliott  %a2 = call i32 asm sideeffect "addi a2, x0, 12", "={a2}"()
322*6d91d7ceSSam Elliott  %a3 = call i32 asm sideeffect "addi a3, x0, 13", "={a3}"()
323*6d91d7ceSSam Elliott  %a4 = call i32 asm sideeffect "addi a4, x0, 14", "={a4}"()
324*6d91d7ceSSam Elliott  %a5 = call i32 asm sideeffect "addi a5, x0, 15", "={a5}"()
325*6d91d7ceSSam Elliott  %a6 = call i32 asm sideeffect "addi a6, x0, 16", "={a6}"()
326*6d91d7ceSSam Elliott  %a7 = call i32 asm sideeffect "addi a7, x0, 17", "={a7}"()
327*6d91d7ceSSam Elliott  %s2 = call i32 asm sideeffect "addi s2, x0, 18", "={s2}"()
328*6d91d7ceSSam Elliott  %s3 = call i32 asm sideeffect "addi s3, x0, 19", "={s3}"()
329*6d91d7ceSSam Elliott  %s4 = call i32 asm sideeffect "addi s4, x0, 20", "={s4}"()
330*6d91d7ceSSam Elliott  %s5 = call i32 asm sideeffect "addi s5, x0, 21", "={s5}"()
331*6d91d7ceSSam Elliott  %s6 = call i32 asm sideeffect "addi s6, x0, 22", "={s6}"()
332*6d91d7ceSSam Elliott  %s7 = call i32 asm sideeffect "addi s7, x0, 23", "={s7}"()
333*6d91d7ceSSam Elliott  %s8 = call i32 asm sideeffect "addi s8, x0, 24", "={s8}"()
334*6d91d7ceSSam Elliott  %s9 = call i32 asm sideeffect "addi s9, x0, 25", "={s9}"()
335*6d91d7ceSSam Elliott  %s10 = call i32 asm sideeffect "addi s10, x0, 26", "={s10}"()
336*6d91d7ceSSam Elliott  %s11 = call i32 asm sideeffect "addi s11, x0, 27", "={s11}"()
337*6d91d7ceSSam Elliott  %t3 = call i32 asm sideeffect "addi t3, x0, 28", "={t3}"()
338*6d91d7ceSSam Elliott  %t4 = call i32 asm sideeffect "addi t4, x0, 29", "={t4}"()
339*6d91d7ceSSam Elliott  %t5 = call i32 asm sideeffect "addi t5, x0, 30", "={t5}"()
340*6d91d7ceSSam Elliott  %t6 = call i32 asm sideeffect "addi t6, x0, 31", "={t6}"()
341*6d91d7ceSSam Elliott
342*6d91d7ceSSam Elliott  %cmp = icmp eq i32 %t5, %t6
343*6d91d7ceSSam Elliott  br i1 %cmp, label %branch_1, label %branch_2
344*6d91d7ceSSam Elliott
345*6d91d7ceSSam Elliottbranch_1:
346*6d91d7ceSSam Elliott  call void asm sideeffect ".space 1048576", ""()
347*6d91d7ceSSam Elliott  br label %branch_2
348*6d91d7ceSSam Elliott
349*6d91d7ceSSam Elliottbranch_2:
350*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{ra}"(i32 %ra)
351*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{t0}"(i32 %t0)
352*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{t1}"(i32 %t1)
353*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{t2}"(i32 %t2)
354*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s0}"(i32 %s0)
355*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s1}"(i32 %s1)
356*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{a0}"(i32 %a0)
357*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{a1}"(i32 %a1)
358*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{a2}"(i32 %a2)
359*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{a3}"(i32 %a3)
360*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{a4}"(i32 %a4)
361*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{a5}"(i32 %a5)
362*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{a6}"(i32 %a6)
363*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{a7}"(i32 %a7)
364*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s2}"(i32 %s2)
365*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s3}"(i32 %s3)
366*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s4}"(i32 %s4)
367*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s5}"(i32 %s5)
368*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s6}"(i32 %s6)
369*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s7}"(i32 %s7)
370*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s8}"(i32 %s8)
371*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s9}"(i32 %s9)
372*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s10}"(i32 %s10)
373*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s11}"(i32 %s11)
374*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{t3}"(i32 %t3)
375*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{t4}"(i32 %t4)
376*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{t5}"(i32 %t5)
377*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{t6}"(i32 %t6)
378*6d91d7ceSSam Elliott
379*6d91d7ceSSam Elliott  ret void
380*6d91d7ceSSam Elliott}
381*6d91d7ceSSam Elliott
382*6d91d7ceSSam Elliottdefine void @relax_jal_spill_32_adjust_spill_slot() {
383*6d91d7ceSSam Elliott  ; If the stack is large and the offset of BranchRelaxationScratchFrameIndex
384*6d91d7ceSSam Elliott  ; is out the range of 12-bit signed integer, check whether the spill slot is
385*6d91d7ceSSam Elliott  ; adjusted to close to the stack base register.
386*6d91d7ceSSam Elliott; CHECK-LABEL: relax_jal_spill_32_adjust_spill_slot:
387*6d91d7ceSSam Elliott; CHECK:       # %bb.0:
388*6d91d7ceSSam Elliott; CHECK-NEXT:    addi sp, sp, -2032
389*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_def_cfa_offset 2032
390*6d91d7ceSSam Elliott; CHECK-NEXT:    sw ra, 2028(sp) # 4-byte Folded Spill
391*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s0, 2024(sp) # 4-byte Folded Spill
392*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s1, 2020(sp) # 4-byte Folded Spill
393*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s2, 2016(sp) # 4-byte Folded Spill
394*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s3, 2012(sp) # 4-byte Folded Spill
395*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s4, 2008(sp) # 4-byte Folded Spill
396*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s5, 2004(sp) # 4-byte Folded Spill
397*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s6, 2000(sp) # 4-byte Folded Spill
398*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s7, 1996(sp) # 4-byte Folded Spill
399*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s8, 1992(sp) # 4-byte Folded Spill
400*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s9, 1988(sp) # 4-byte Folded Spill
401*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s10, 1984(sp) # 4-byte Folded Spill
402*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s11, 1980(sp) # 4-byte Folded Spill
403*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset ra, -4
404*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s0, -8
405*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s1, -12
406*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s2, -16
407*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s3, -20
408*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s4, -24
409*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s5, -28
410*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s6, -32
411*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s7, -36
412*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s8, -40
413*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s9, -44
414*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s10, -48
415*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s11, -52
416*6d91d7ceSSam Elliott; CHECK-NEXT:    addi s0, sp, 2032
417*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_def_cfa s0, 0
418*6d91d7ceSSam Elliott; CHECK-NEXT:    lui a0, 2
419*6d91d7ceSSam Elliott; CHECK-NEXT:    addi a0, a0, -2032
420*6d91d7ceSSam Elliott; CHECK-NEXT:    sub sp, sp, a0
421*6d91d7ceSSam Elliott; CHECK-NEXT:    srli a0, sp, 12
422*6d91d7ceSSam Elliott; CHECK-NEXT:    slli sp, a0, 12
423*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
424*6d91d7ceSSam Elliott; CHECK-NEXT:    li ra, 1
425*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
426*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
427*6d91d7ceSSam Elliott; CHECK-NEXT:    li t0, 5
428*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
429*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
430*6d91d7ceSSam Elliott; CHECK-NEXT:    li t1, 6
431*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
432*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
433*6d91d7ceSSam Elliott; CHECK-NEXT:    li t2, 7
434*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
435*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
436*6d91d7ceSSam Elliott; CHECK-NEXT:    li s0, 8
437*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
438*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
439*6d91d7ceSSam Elliott; CHECK-NEXT:    li s1, 9
440*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
441*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
442*6d91d7ceSSam Elliott; CHECK-NEXT:    li a0, 10
443*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
444*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
445*6d91d7ceSSam Elliott; CHECK-NEXT:    li a1, 11
446*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
447*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
448*6d91d7ceSSam Elliott; CHECK-NEXT:    li a2, 12
449*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
450*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
451*6d91d7ceSSam Elliott; CHECK-NEXT:    li a3, 13
452*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
453*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
454*6d91d7ceSSam Elliott; CHECK-NEXT:    li a4, 14
455*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
456*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
457*6d91d7ceSSam Elliott; CHECK-NEXT:    li a5, 15
458*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
459*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
460*6d91d7ceSSam Elliott; CHECK-NEXT:    li a6, 16
461*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
462*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
463*6d91d7ceSSam Elliott; CHECK-NEXT:    li a7, 17
464*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
465*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
466*6d91d7ceSSam Elliott; CHECK-NEXT:    li s2, 18
467*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
468*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
469*6d91d7ceSSam Elliott; CHECK-NEXT:    li s3, 19
470*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
471*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
472*6d91d7ceSSam Elliott; CHECK-NEXT:    li s4, 20
473*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
474*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
475*6d91d7ceSSam Elliott; CHECK-NEXT:    li s5, 21
476*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
477*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
478*6d91d7ceSSam Elliott; CHECK-NEXT:    li s6, 22
479*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
480*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
481*6d91d7ceSSam Elliott; CHECK-NEXT:    li s7, 23
482*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
483*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
484*6d91d7ceSSam Elliott; CHECK-NEXT:    li s8, 24
485*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
486*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
487*6d91d7ceSSam Elliott; CHECK-NEXT:    li s9, 25
488*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
489*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
490*6d91d7ceSSam Elliott; CHECK-NEXT:    li s10, 26
491*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
492*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
493*6d91d7ceSSam Elliott; CHECK-NEXT:    li s11, 27
494*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
495*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
496*6d91d7ceSSam Elliott; CHECK-NEXT:    li t3, 28
497*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
498*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
499*6d91d7ceSSam Elliott; CHECK-NEXT:    li t4, 29
500*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
501*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
502*6d91d7ceSSam Elliott; CHECK-NEXT:    li t5, 30
503*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
504*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
505*6d91d7ceSSam Elliott; CHECK-NEXT:    li t6, 31
506*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
507*6d91d7ceSSam Elliott; CHECK-NEXT:    beq t5, t6, .LBB3_1
508*6d91d7ceSSam Elliott; CHECK-NEXT:  # %bb.3:
509*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s11, 0(sp)
510*6d91d7ceSSam Elliott; CHECK-NEXT:    jump .LBB3_4, s11
511*6d91d7ceSSam Elliott; CHECK-NEXT:  .LBB3_1: # %branch_1
512*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
513*6d91d7ceSSam Elliott; CHECK-NEXT:    .zero 1048576
514*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
515*6d91d7ceSSam Elliott; CHECK-NEXT:    j .LBB3_2
516*6d91d7ceSSam Elliott; CHECK-NEXT:  .LBB3_4: # %branch_2
517*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s11, 0(sp)
518*6d91d7ceSSam Elliott; CHECK-NEXT:  .LBB3_2: # %branch_2
519*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
520*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use ra
521*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
522*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
523*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use t0
524*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
525*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
526*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use t1
527*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
528*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
529*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use t2
530*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
531*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
532*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s0
533*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
534*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
535*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s1
536*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
537*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
538*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use a0
539*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
540*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
541*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use a1
542*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
543*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
544*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use a2
545*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
546*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
547*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use a3
548*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
549*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
550*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use a4
551*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
552*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
553*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use a5
554*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
555*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
556*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use a6
557*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
558*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
559*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use a7
560*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
561*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
562*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s2
563*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
564*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
565*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s3
566*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
567*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
568*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s4
569*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
570*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
571*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s5
572*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
573*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
574*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s6
575*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
576*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
577*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s7
578*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
579*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
580*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s8
581*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
582*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
583*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s9
584*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
585*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
586*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s10
587*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
588*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
589*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s11
590*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
591*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
592*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use t3
593*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
594*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
595*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use t4
596*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
597*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
598*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use t5
599*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
600*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
601*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use t6
602*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
603*6d91d7ceSSam Elliott; CHECK-NEXT:    addi sp, s0, -2032
604*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_def_cfa sp, 2032
605*6d91d7ceSSam Elliott; CHECK-NEXT:    lw ra, 2028(sp) # 4-byte Folded Reload
606*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s0, 2024(sp) # 4-byte Folded Reload
607*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s1, 2020(sp) # 4-byte Folded Reload
608*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s2, 2016(sp) # 4-byte Folded Reload
609*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s3, 2012(sp) # 4-byte Folded Reload
610*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s4, 2008(sp) # 4-byte Folded Reload
611*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s5, 2004(sp) # 4-byte Folded Reload
612*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s6, 2000(sp) # 4-byte Folded Reload
613*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s7, 1996(sp) # 4-byte Folded Reload
614*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s8, 1992(sp) # 4-byte Folded Reload
615*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s9, 1988(sp) # 4-byte Folded Reload
616*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s10, 1984(sp) # 4-byte Folded Reload
617*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s11, 1980(sp) # 4-byte Folded Reload
618*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore ra
619*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s0
620*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s1
621*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s2
622*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s3
623*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s4
624*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s5
625*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s6
626*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s7
627*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s8
628*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s9
629*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s10
630*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s11
631*6d91d7ceSSam Elliott; CHECK-NEXT:    addi sp, sp, 2032
632*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_def_cfa_offset 0
633*6d91d7ceSSam Elliott; CHECK-NEXT:    ret
634*6d91d7ceSSam Elliott  %stack_obj = alloca i32, align 4096
635*6d91d7ceSSam Elliott
636*6d91d7ceSSam Elliott  %ra = call i32 asm sideeffect "addi ra, x0, 1", "={ra}"()
637*6d91d7ceSSam Elliott  %t0 = call i32 asm sideeffect "addi t0, x0, 5", "={t0}"()
638*6d91d7ceSSam Elliott  %t1 = call i32 asm sideeffect "addi t1, x0, 6", "={t1}"()
639*6d91d7ceSSam Elliott  %t2 = call i32 asm sideeffect "addi t2, x0, 7", "={t2}"()
640*6d91d7ceSSam Elliott  %s0 = call i32 asm sideeffect "addi s0, x0, 8", "={s0}"()
641*6d91d7ceSSam Elliott  %s1 = call i32 asm sideeffect "addi s1, x0, 9", "={s1}"()
642*6d91d7ceSSam Elliott  %a0 = call i32 asm sideeffect "addi a0, x0, 10", "={a0}"()
643*6d91d7ceSSam Elliott  %a1 = call i32 asm sideeffect "addi a1, x0, 11", "={a1}"()
644*6d91d7ceSSam Elliott  %a2 = call i32 asm sideeffect "addi a2, x0, 12", "={a2}"()
645*6d91d7ceSSam Elliott  %a3 = call i32 asm sideeffect "addi a3, x0, 13", "={a3}"()
646*6d91d7ceSSam Elliott  %a4 = call i32 asm sideeffect "addi a4, x0, 14", "={a4}"()
647*6d91d7ceSSam Elliott  %a5 = call i32 asm sideeffect "addi a5, x0, 15", "={a5}"()
648*6d91d7ceSSam Elliott  %a6 = call i32 asm sideeffect "addi a6, x0, 16", "={a6}"()
649*6d91d7ceSSam Elliott  %a7 = call i32 asm sideeffect "addi a7, x0, 17", "={a7}"()
650*6d91d7ceSSam Elliott  %s2 = call i32 asm sideeffect "addi s2, x0, 18", "={s2}"()
651*6d91d7ceSSam Elliott  %s3 = call i32 asm sideeffect "addi s3, x0, 19", "={s3}"()
652*6d91d7ceSSam Elliott  %s4 = call i32 asm sideeffect "addi s4, x0, 20", "={s4}"()
653*6d91d7ceSSam Elliott  %s5 = call i32 asm sideeffect "addi s5, x0, 21", "={s5}"()
654*6d91d7ceSSam Elliott  %s6 = call i32 asm sideeffect "addi s6, x0, 22", "={s6}"()
655*6d91d7ceSSam Elliott  %s7 = call i32 asm sideeffect "addi s7, x0, 23", "={s7}"()
656*6d91d7ceSSam Elliott  %s8 = call i32 asm sideeffect "addi s8, x0, 24", "={s8}"()
657*6d91d7ceSSam Elliott  %s9 = call i32 asm sideeffect "addi s9, x0, 25", "={s9}"()
658*6d91d7ceSSam Elliott  %s10 = call i32 asm sideeffect "addi s10, x0, 26", "={s10}"()
659*6d91d7ceSSam Elliott  %s11 = call i32 asm sideeffect "addi s11, x0, 27", "={s11}"()
660*6d91d7ceSSam Elliott  %t3 = call i32 asm sideeffect "addi t3, x0, 28", "={t3}"()
661*6d91d7ceSSam Elliott  %t4 = call i32 asm sideeffect "addi t4, x0, 29", "={t4}"()
662*6d91d7ceSSam Elliott  %t5 = call i32 asm sideeffect "addi t5, x0, 30", "={t5}"()
663*6d91d7ceSSam Elliott  %t6 = call i32 asm sideeffect "addi t6, x0, 31", "={t6}"()
664*6d91d7ceSSam Elliott
665*6d91d7ceSSam Elliott  %cmp = icmp eq i32 %t5, %t6
666*6d91d7ceSSam Elliott  br i1 %cmp, label %branch_1, label %branch_2
667*6d91d7ceSSam Elliott
668*6d91d7ceSSam Elliottbranch_1:
669*6d91d7ceSSam Elliott  call void asm sideeffect ".space 1048576", ""()
670*6d91d7ceSSam Elliott  br label %branch_2
671*6d91d7ceSSam Elliott
672*6d91d7ceSSam Elliottbranch_2:
673*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{ra}"(i32 %ra)
674*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{t0}"(i32 %t0)
675*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{t1}"(i32 %t1)
676*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{t2}"(i32 %t2)
677*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s0}"(i32 %s0)
678*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s1}"(i32 %s1)
679*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{a0}"(i32 %a0)
680*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{a1}"(i32 %a1)
681*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{a2}"(i32 %a2)
682*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{a3}"(i32 %a3)
683*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{a4}"(i32 %a4)
684*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{a5}"(i32 %a5)
685*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{a6}"(i32 %a6)
686*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{a7}"(i32 %a7)
687*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s2}"(i32 %s2)
688*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s3}"(i32 %s3)
689*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s4}"(i32 %s4)
690*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s5}"(i32 %s5)
691*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s6}"(i32 %s6)
692*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s7}"(i32 %s7)
693*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s8}"(i32 %s8)
694*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s9}"(i32 %s9)
695*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s10}"(i32 %s10)
696*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s11}"(i32 %s11)
697*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{t3}"(i32 %t3)
698*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{t4}"(i32 %t4)
699*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{t5}"(i32 %t5)
700*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{t6}"(i32 %t6)
701*6d91d7ceSSam Elliott
702*6d91d7ceSSam Elliott  ret void
703*6d91d7ceSSam Elliott}
704*6d91d7ceSSam Elliott
705*6d91d7ceSSam Elliottdefine void @relax_jal_spill_32_restore_block_correspondence() {
706*6d91d7ceSSam Elliott; CHECK-LABEL: relax_jal_spill_32_restore_block_correspondence:
707*6d91d7ceSSam Elliott; CHECK:       # %bb.0: # %entry
708*6d91d7ceSSam Elliott; CHECK-NEXT:    addi sp, sp, -64
709*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_def_cfa_offset 64
710*6d91d7ceSSam Elliott; CHECK-NEXT:    sw ra, 60(sp) # 4-byte Folded Spill
711*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s0, 56(sp) # 4-byte Folded Spill
712*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s1, 52(sp) # 4-byte Folded Spill
713*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s2, 48(sp) # 4-byte Folded Spill
714*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s3, 44(sp) # 4-byte Folded Spill
715*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s4, 40(sp) # 4-byte Folded Spill
716*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s5, 36(sp) # 4-byte Folded Spill
717*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s6, 32(sp) # 4-byte Folded Spill
718*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s7, 28(sp) # 4-byte Folded Spill
719*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s8, 24(sp) # 4-byte Folded Spill
720*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s9, 20(sp) # 4-byte Folded Spill
721*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s10, 16(sp) # 4-byte Folded Spill
722*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s11, 12(sp) # 4-byte Folded Spill
723*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset ra, -4
724*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s0, -8
725*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s1, -12
726*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s2, -16
727*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s3, -20
728*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s4, -24
729*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s5, -28
730*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s6, -32
731*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s7, -36
732*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s8, -40
733*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s9, -44
734*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s10, -48
735*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_offset s11, -52
736*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_remember_state
737*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
738*6d91d7ceSSam Elliott; CHECK-NEXT:    li ra, 1
739*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
740*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
741*6d91d7ceSSam Elliott; CHECK-NEXT:    li t0, 5
742*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
743*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
744*6d91d7ceSSam Elliott; CHECK-NEXT:    li t1, 6
745*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
746*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
747*6d91d7ceSSam Elliott; CHECK-NEXT:    li t2, 7
748*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
749*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
750*6d91d7ceSSam Elliott; CHECK-NEXT:    li s0, 8
751*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
752*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
753*6d91d7ceSSam Elliott; CHECK-NEXT:    li s1, 9
754*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
755*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
756*6d91d7ceSSam Elliott; CHECK-NEXT:    li a0, 10
757*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
758*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
759*6d91d7ceSSam Elliott; CHECK-NEXT:    li a1, 11
760*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
761*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
762*6d91d7ceSSam Elliott; CHECK-NEXT:    li a2, 12
763*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
764*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
765*6d91d7ceSSam Elliott; CHECK-NEXT:    li a3, 13
766*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
767*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
768*6d91d7ceSSam Elliott; CHECK-NEXT:    li a4, 14
769*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
770*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
771*6d91d7ceSSam Elliott; CHECK-NEXT:    li a5, 15
772*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
773*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
774*6d91d7ceSSam Elliott; CHECK-NEXT:    li a6, 16
775*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
776*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
777*6d91d7ceSSam Elliott; CHECK-NEXT:    li a7, 17
778*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
779*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
780*6d91d7ceSSam Elliott; CHECK-NEXT:    li s2, 18
781*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
782*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
783*6d91d7ceSSam Elliott; CHECK-NEXT:    li s3, 19
784*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
785*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
786*6d91d7ceSSam Elliott; CHECK-NEXT:    li s4, 20
787*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
788*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
789*6d91d7ceSSam Elliott; CHECK-NEXT:    li s5, 21
790*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
791*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
792*6d91d7ceSSam Elliott; CHECK-NEXT:    li s6, 22
793*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
794*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
795*6d91d7ceSSam Elliott; CHECK-NEXT:    li s7, 23
796*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
797*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
798*6d91d7ceSSam Elliott; CHECK-NEXT:    li s8, 24
799*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
800*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
801*6d91d7ceSSam Elliott; CHECK-NEXT:    li s9, 25
802*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
803*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
804*6d91d7ceSSam Elliott; CHECK-NEXT:    li s10, 26
805*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
806*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
807*6d91d7ceSSam Elliott; CHECK-NEXT:    li s11, 27
808*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
809*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
810*6d91d7ceSSam Elliott; CHECK-NEXT:    li t3, 28
811*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
812*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
813*6d91d7ceSSam Elliott; CHECK-NEXT:    li t4, 29
814*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
815*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
816*6d91d7ceSSam Elliott; CHECK-NEXT:    li t5, 30
817*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
818*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
819*6d91d7ceSSam Elliott; CHECK-NEXT:    li t6, 31
820*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
821*6d91d7ceSSam Elliott; CHECK-NEXT:    bne t5, t6, .LBB4_2
822*6d91d7ceSSam Elliott; CHECK-NEXT:    j .LBB4_1
823*6d91d7ceSSam Elliott; CHECK-NEXT:  .LBB4_8: # %dest_1
824*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s11, 0(sp)
825*6d91d7ceSSam Elliott; CHECK-NEXT:  .LBB4_1: # %dest_1
826*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
827*6d91d7ceSSam Elliott; CHECK-NEXT:    # dest 1
828*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
829*6d91d7ceSSam Elliott; CHECK-NEXT:    j .LBB4_3
830*6d91d7ceSSam Elliott; CHECK-NEXT:  .LBB4_2: # %cond_2
831*6d91d7ceSSam Elliott; CHECK-NEXT:    bne t3, t4, .LBB4_5
832*6d91d7ceSSam Elliott; CHECK-NEXT:  .LBB4_3: # %dest_2
833*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
834*6d91d7ceSSam Elliott; CHECK-NEXT:    # dest 2
835*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
836*6d91d7ceSSam Elliott; CHECK-NEXT:  .LBB4_4: # %dest_3
837*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
838*6d91d7ceSSam Elliott; CHECK-NEXT:    # dest 3
839*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
840*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
841*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use ra
842*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
843*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
844*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use t0
845*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
846*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
847*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use t1
848*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
849*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
850*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use t2
851*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
852*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
853*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s0
854*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
855*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
856*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s1
857*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
858*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
859*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use a0
860*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
861*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
862*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use a1
863*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
864*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
865*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use a2
866*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
867*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
868*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use a3
869*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
870*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
871*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use a4
872*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
873*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
874*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use a5
875*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
876*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
877*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use a6
878*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
879*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
880*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use a7
881*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
882*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
883*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s2
884*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
885*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
886*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s3
887*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
888*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
889*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s4
890*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
891*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
892*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s5
893*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
894*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
895*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s6
896*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
897*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
898*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s7
899*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
900*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
901*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s8
902*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
903*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
904*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s9
905*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
906*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
907*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s10
908*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
909*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
910*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use s11
911*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
912*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
913*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use t3
914*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
915*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
916*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use t4
917*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
918*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
919*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use t5
920*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
921*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
922*6d91d7ceSSam Elliott; CHECK-NEXT:    # reg use t6
923*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
924*6d91d7ceSSam Elliott; CHECK-NEXT:    lw ra, 60(sp) # 4-byte Folded Reload
925*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s0, 56(sp) # 4-byte Folded Reload
926*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s1, 52(sp) # 4-byte Folded Reload
927*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s2, 48(sp) # 4-byte Folded Reload
928*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s3, 44(sp) # 4-byte Folded Reload
929*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s4, 40(sp) # 4-byte Folded Reload
930*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s5, 36(sp) # 4-byte Folded Reload
931*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s6, 32(sp) # 4-byte Folded Reload
932*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s7, 28(sp) # 4-byte Folded Reload
933*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s8, 24(sp) # 4-byte Folded Reload
934*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s9, 20(sp) # 4-byte Folded Reload
935*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s10, 16(sp) # 4-byte Folded Reload
936*6d91d7ceSSam Elliott; CHECK-NEXT:    lw s11, 12(sp) # 4-byte Folded Reload
937*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore ra
938*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s0
939*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s1
940*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s2
941*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s3
942*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s4
943*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s5
944*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s6
945*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s7
946*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s8
947*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s9
948*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s10
949*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore s11
950*6d91d7ceSSam Elliott; CHECK-NEXT:    addi sp, sp, 64
951*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_def_cfa_offset 0
952*6d91d7ceSSam Elliott; CHECK-NEXT:    ret
953*6d91d7ceSSam Elliott; CHECK-NEXT:  .LBB4_5: # %cond_3
954*6d91d7ceSSam Elliott; CHECK-NEXT:    .cfi_restore_state
955*6d91d7ceSSam Elliott; CHECK-NEXT:    beq t1, t2, .LBB4_4
956*6d91d7ceSSam Elliott; CHECK-NEXT:  # %bb.6: # %space
957*6d91d7ceSSam Elliott; CHECK-NEXT:    #APP
958*6d91d7ceSSam Elliott; CHECK-NEXT:    .zero 1048576
959*6d91d7ceSSam Elliott; CHECK-NEXT:    #NO_APP
960*6d91d7ceSSam Elliott; CHECK-NEXT:  # %bb.7: # %space
961*6d91d7ceSSam Elliott; CHECK-NEXT:    sw s11, 0(sp)
962*6d91d7ceSSam Elliott; CHECK-NEXT:    jump .LBB4_8, s11
963*6d91d7ceSSam Elliottentry:
964*6d91d7ceSSam Elliott  %ra = call i32 asm sideeffect "addi ra, x0, 1", "={ra}"()
965*6d91d7ceSSam Elliott  %t0 = call i32 asm sideeffect "addi t0, x0, 5", "={t0}"()
966*6d91d7ceSSam Elliott  %t1 = call i32 asm sideeffect "addi t1, x0, 6", "={t1}"()
967*6d91d7ceSSam Elliott  %t2 = call i32 asm sideeffect "addi t2, x0, 7", "={t2}"()
968*6d91d7ceSSam Elliott  %s0 = call i32 asm sideeffect "addi s0, x0, 8", "={s0}"()
969*6d91d7ceSSam Elliott  %s1 = call i32 asm sideeffect "addi s1, x0, 9", "={s1}"()
970*6d91d7ceSSam Elliott  %a0 = call i32 asm sideeffect "addi a0, x0, 10", "={a0}"()
971*6d91d7ceSSam Elliott  %a1 = call i32 asm sideeffect "addi a1, x0, 11", "={a1}"()
972*6d91d7ceSSam Elliott  %a2 = call i32 asm sideeffect "addi a2, x0, 12", "={a2}"()
973*6d91d7ceSSam Elliott  %a3 = call i32 asm sideeffect "addi a3, x0, 13", "={a3}"()
974*6d91d7ceSSam Elliott  %a4 = call i32 asm sideeffect "addi a4, x0, 14", "={a4}"()
975*6d91d7ceSSam Elliott  %a5 = call i32 asm sideeffect "addi a5, x0, 15", "={a5}"()
976*6d91d7ceSSam Elliott  %a6 = call i32 asm sideeffect "addi a6, x0, 16", "={a6}"()
977*6d91d7ceSSam Elliott  %a7 = call i32 asm sideeffect "addi a7, x0, 17", "={a7}"()
978*6d91d7ceSSam Elliott  %s2 = call i32 asm sideeffect "addi s2, x0, 18", "={s2}"()
979*6d91d7ceSSam Elliott  %s3 = call i32 asm sideeffect "addi s3, x0, 19", "={s3}"()
980*6d91d7ceSSam Elliott  %s4 = call i32 asm sideeffect "addi s4, x0, 20", "={s4}"()
981*6d91d7ceSSam Elliott  %s5 = call i32 asm sideeffect "addi s5, x0, 21", "={s5}"()
982*6d91d7ceSSam Elliott  %s6 = call i32 asm sideeffect "addi s6, x0, 22", "={s6}"()
983*6d91d7ceSSam Elliott  %s7 = call i32 asm sideeffect "addi s7, x0, 23", "={s7}"()
984*6d91d7ceSSam Elliott  %s8 = call i32 asm sideeffect "addi s8, x0, 24", "={s8}"()
985*6d91d7ceSSam Elliott  %s9 = call i32 asm sideeffect "addi s9, x0, 25", "={s9}"()
986*6d91d7ceSSam Elliott  %s10 = call i32 asm sideeffect "addi s10, x0, 26", "={s10}"()
987*6d91d7ceSSam Elliott  %s11 = call i32 asm sideeffect "addi s11, x0, 27", "={s11}"()
988*6d91d7ceSSam Elliott  %t3 = call i32 asm sideeffect "addi t3, x0, 28", "={t3}"()
989*6d91d7ceSSam Elliott  %t4 = call i32 asm sideeffect "addi t4, x0, 29", "={t4}"()
990*6d91d7ceSSam Elliott  %t5 = call i32 asm sideeffect "addi t5, x0, 30", "={t5}"()
991*6d91d7ceSSam Elliott  %t6 = call i32 asm sideeffect "addi t6, x0, 31", "={t6}"()
992*6d91d7ceSSam Elliott
993*6d91d7ceSSam Elliott  br label %cond_1
994*6d91d7ceSSam Elliott
995*6d91d7ceSSam Elliottcond_1:
996*6d91d7ceSSam Elliott  %cmp1 = icmp eq i32 %t5, %t6
997*6d91d7ceSSam Elliott  br i1 %cmp1, label %dest_1, label %cond_2
998*6d91d7ceSSam Elliott
999*6d91d7ceSSam Elliottcond_2:
1000*6d91d7ceSSam Elliott  %cmp2 = icmp eq i32 %t3, %t4
1001*6d91d7ceSSam Elliott  br i1 %cmp2, label %dest_2, label %cond_3
1002*6d91d7ceSSam Elliott
1003*6d91d7ceSSam Elliottcond_3:
1004*6d91d7ceSSam Elliott  %cmp3 = icmp eq i32 %t1, %t2
1005*6d91d7ceSSam Elliott  br i1 %cmp3, label %dest_3, label %space
1006*6d91d7ceSSam Elliott
1007*6d91d7ceSSam Elliottspace:
1008*6d91d7ceSSam Elliott  call void asm sideeffect ".space 1048576", ""()
1009*6d91d7ceSSam Elliott  br label %dest_1
1010*6d91d7ceSSam Elliott
1011*6d91d7ceSSam Elliottdest_1:
1012*6d91d7ceSSam Elliott  call void asm sideeffect "# dest 1", ""()
1013*6d91d7ceSSam Elliott  br label %dest_2
1014*6d91d7ceSSam Elliott
1015*6d91d7ceSSam Elliottdest_2:
1016*6d91d7ceSSam Elliott  call void asm sideeffect "# dest 2", ""()
1017*6d91d7ceSSam Elliott  br label %dest_3
1018*6d91d7ceSSam Elliott
1019*6d91d7ceSSam Elliottdest_3:
1020*6d91d7ceSSam Elliott  call void asm sideeffect "# dest 3", ""()
1021*6d91d7ceSSam Elliott  br label %tail
1022*6d91d7ceSSam Elliott
1023*6d91d7ceSSam Elliotttail:
1024*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{ra}"(i32 %ra)
1025*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{t0}"(i32 %t0)
1026*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{t1}"(i32 %t1)
1027*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{t2}"(i32 %t2)
1028*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s0}"(i32 %s0)
1029*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s1}"(i32 %s1)
1030*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{a0}"(i32 %a0)
1031*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{a1}"(i32 %a1)
1032*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{a2}"(i32 %a2)
1033*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{a3}"(i32 %a3)
1034*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{a4}"(i32 %a4)
1035*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{a5}"(i32 %a5)
1036*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{a6}"(i32 %a6)
1037*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{a7}"(i32 %a7)
1038*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s2}"(i32 %s2)
1039*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s3}"(i32 %s3)
1040*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s4}"(i32 %s4)
1041*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s5}"(i32 %s5)
1042*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s6}"(i32 %s6)
1043*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s7}"(i32 %s7)
1044*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s8}"(i32 %s8)
1045*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s9}"(i32 %s9)
1046*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s10}"(i32 %s10)
1047*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{s11}"(i32 %s11)
1048*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{t3}"(i32 %t3)
1049*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{t4}"(i32 %t4)
1050*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{t5}"(i32 %t5)
1051*6d91d7ceSSam Elliott  call void asm sideeffect "# reg use $0", "{t6}"(i32 %t6)
1052*6d91d7ceSSam Elliott
1053*6d91d7ceSSam Elliott  ret void
1054*6d91d7ceSSam Elliott}
1055*6d91d7ceSSam Elliott
1056