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