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