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