1059 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=riscv64 -verify-machineinstrs -filetype=obj < %s \3; RUN: -o /dev/null 2>&14; RUN: llc -mtriple=riscv64 -relocation-model=pic -verify-machineinstrs \5; RUN: -filetype=obj < %s -o /dev/null 2>&16; RUN: llc -mtriple=riscv64 -verify-machineinstrs < %s \7; RUN: | FileCheck %s8; RUN: llc -mtriple=riscv64 -relocation-model=pic -verify-machineinstrs < %s \9; RUN: | FileCheck %s10 11define void @relax_bcc(i1 %a) nounwind {12; CHECK-LABEL: relax_bcc:13; CHECK: # %bb.0:14; CHECK-NEXT: andi a0, a0, 115; CHECK-NEXT: bnez a0, .LBB0_116; CHECK-NEXT: j .LBB0_217; CHECK-NEXT: .LBB0_1: # %iftrue18; CHECK-NEXT: #APP19; CHECK-NEXT: .zero 409620; CHECK-NEXT: #NO_APP21; CHECK-NEXT: .LBB0_2: # %tail22; CHECK-NEXT: ret23 br i1 %a, label %iftrue, label %tail24 25iftrue:26 call void asm sideeffect ".space 4096", ""()27 br label %tail28 29tail:30 ret void31}32 33define i32 @relax_jal(i1 %a) nounwind {34; CHECK-LABEL: relax_jal:35; CHECK: # %bb.0:36; CHECK-NEXT: addi sp, sp, -1637; CHECK-NEXT: andi a0, a0, 138; CHECK-NEXT: bnez a0, .LBB1_139; CHECK-NEXT: # %bb.4:40; CHECK-NEXT: jump .LBB1_2, a041; CHECK-NEXT: .LBB1_1: # %iftrue42; CHECK-NEXT: #APP43; CHECK-NEXT: #NO_APP44; CHECK-NEXT: #APP45; CHECK-NEXT: .zero 104857646; CHECK-NEXT: #NO_APP47; CHECK-NEXT: j .LBB1_348; CHECK-NEXT: .LBB1_2: # %jmp49; CHECK-NEXT: #APP50; CHECK-NEXT: #NO_APP51; CHECK-NEXT: .LBB1_3: # %tail52; CHECK-NEXT: li a0, 153; CHECK-NEXT: addi sp, sp, 1654; CHECK-NEXT: ret55 br i1 %a, label %iftrue, label %jmp56 57jmp:58 call void asm sideeffect "", ""()59 br label %tail60 61iftrue:62 call void asm sideeffect "", ""()63 br label %space64 65space:66 call void asm sideeffect ".space 1048576", ""()67 br label %tail68 69tail:70 ret i32 171}72 73 74define void @relax_jal_spill_64() {75;76; CHECK-LABEL: relax_jal_spill_64:77; CHECK: # %bb.0:78; CHECK-NEXT: addi sp, sp, -11279; CHECK-NEXT: .cfi_def_cfa_offset 11280; CHECK-NEXT: sd ra, 104(sp) # 8-byte Folded Spill81; CHECK-NEXT: sd s0, 96(sp) # 8-byte Folded Spill82; CHECK-NEXT: sd s1, 88(sp) # 8-byte Folded Spill83; CHECK-NEXT: sd s2, 80(sp) # 8-byte Folded Spill84; CHECK-NEXT: sd s3, 72(sp) # 8-byte Folded Spill85; CHECK-NEXT: sd s4, 64(sp) # 8-byte Folded Spill86; CHECK-NEXT: sd s5, 56(sp) # 8-byte Folded Spill87; CHECK-NEXT: sd s6, 48(sp) # 8-byte Folded Spill88; CHECK-NEXT: sd s7, 40(sp) # 8-byte Folded Spill89; CHECK-NEXT: sd s8, 32(sp) # 8-byte Folded Spill90; CHECK-NEXT: sd s9, 24(sp) # 8-byte Folded Spill91; CHECK-NEXT: sd s10, 16(sp) # 8-byte Folded Spill92; CHECK-NEXT: sd s11, 8(sp) # 8-byte Folded Spill93; CHECK-NEXT: .cfi_offset ra, -894; CHECK-NEXT: .cfi_offset s0, -1695; CHECK-NEXT: .cfi_offset s1, -2496; CHECK-NEXT: .cfi_offset s2, -3297; CHECK-NEXT: .cfi_offset s3, -4098; CHECK-NEXT: .cfi_offset s4, -4899; CHECK-NEXT: .cfi_offset s5, -56100; CHECK-NEXT: .cfi_offset s6, -64101; CHECK-NEXT: .cfi_offset s7, -72102; CHECK-NEXT: .cfi_offset s8, -80103; CHECK-NEXT: .cfi_offset s9, -88104; CHECK-NEXT: .cfi_offset s10, -96105; CHECK-NEXT: .cfi_offset s11, -104106; CHECK-NEXT: #APP107; CHECK-NEXT: li ra, 1108; CHECK-NEXT: #NO_APP109; CHECK-NEXT: #APP110; CHECK-NEXT: li t0, 5111; CHECK-NEXT: #NO_APP112; CHECK-NEXT: #APP113; CHECK-NEXT: li t1, 6114; CHECK-NEXT: #NO_APP115; CHECK-NEXT: #APP116; CHECK-NEXT: li t2, 7117; CHECK-NEXT: #NO_APP118; CHECK-NEXT: #APP119; CHECK-NEXT: li s0, 8120; CHECK-NEXT: #NO_APP121; CHECK-NEXT: #APP122; CHECK-NEXT: li s1, 9123; CHECK-NEXT: #NO_APP124; CHECK-NEXT: #APP125; CHECK-NEXT: li a0, 10126; CHECK-NEXT: #NO_APP127; CHECK-NEXT: #APP128; CHECK-NEXT: li a1, 11129; CHECK-NEXT: #NO_APP130; CHECK-NEXT: #APP131; CHECK-NEXT: li a2, 12132; CHECK-NEXT: #NO_APP133; CHECK-NEXT: #APP134; CHECK-NEXT: li a3, 13135; CHECK-NEXT: #NO_APP136; CHECK-NEXT: #APP137; CHECK-NEXT: li a4, 14138; CHECK-NEXT: #NO_APP139; CHECK-NEXT: #APP140; CHECK-NEXT: li a5, 15141; CHECK-NEXT: #NO_APP142; CHECK-NEXT: #APP143; CHECK-NEXT: li a6, 16144; CHECK-NEXT: #NO_APP145; CHECK-NEXT: #APP146; CHECK-NEXT: li a7, 17147; CHECK-NEXT: #NO_APP148; CHECK-NEXT: #APP149; CHECK-NEXT: li s2, 18150; CHECK-NEXT: #NO_APP151; CHECK-NEXT: #APP152; CHECK-NEXT: li s3, 19153; CHECK-NEXT: #NO_APP154; CHECK-NEXT: #APP155; CHECK-NEXT: li s4, 20156; CHECK-NEXT: #NO_APP157; CHECK-NEXT: #APP158; CHECK-NEXT: li s5, 21159; CHECK-NEXT: #NO_APP160; CHECK-NEXT: #APP161; CHECK-NEXT: li s6, 22162; CHECK-NEXT: #NO_APP163; CHECK-NEXT: #APP164; CHECK-NEXT: li s7, 23165; CHECK-NEXT: #NO_APP166; CHECK-NEXT: #APP167; CHECK-NEXT: li s8, 24168; CHECK-NEXT: #NO_APP169; CHECK-NEXT: #APP170; CHECK-NEXT: li s9, 25171; CHECK-NEXT: #NO_APP172; CHECK-NEXT: #APP173; CHECK-NEXT: li s10, 26174; CHECK-NEXT: #NO_APP175; CHECK-NEXT: #APP176; CHECK-NEXT: li s11, 27177; CHECK-NEXT: #NO_APP178; CHECK-NEXT: #APP179; CHECK-NEXT: li t3, 28180; CHECK-NEXT: #NO_APP181; CHECK-NEXT: #APP182; CHECK-NEXT: li t4, 29183; CHECK-NEXT: #NO_APP184; CHECK-NEXT: #APP185; CHECK-NEXT: li t5, 30186; CHECK-NEXT: #NO_APP187; CHECK-NEXT: #APP188; CHECK-NEXT: li t6, 31189; CHECK-NEXT: #NO_APP190; CHECK-NEXT: beq t5, t6, .LBB2_1191; CHECK-NEXT: # %bb.3:192; CHECK-NEXT: sd s11, 0(sp) # 8-byte Folded Spill193; CHECK-NEXT: jump .LBB2_4, s11194; CHECK-NEXT: .LBB2_1: # %branch_1195; CHECK-NEXT: #APP196; CHECK-NEXT: .zero 1048576197; CHECK-NEXT: #NO_APP198; CHECK-NEXT: j .LBB2_2199; CHECK-NEXT: .LBB2_4: # %branch_2200; CHECK-NEXT: ld s11, 0(sp) # 8-byte Folded Reload201; CHECK-NEXT: .LBB2_2: # %branch_2202; CHECK-NEXT: #APP203; CHECK-NEXT: # reg use ra204; CHECK-NEXT: #NO_APP205; CHECK-NEXT: #APP206; CHECK-NEXT: # reg use t0207; CHECK-NEXT: #NO_APP208; CHECK-NEXT: #APP209; CHECK-NEXT: # reg use t1210; CHECK-NEXT: #NO_APP211; CHECK-NEXT: #APP212; CHECK-NEXT: # reg use t2213; CHECK-NEXT: #NO_APP214; CHECK-NEXT: #APP215; CHECK-NEXT: # reg use s0216; CHECK-NEXT: #NO_APP217; CHECK-NEXT: #APP218; CHECK-NEXT: # reg use s1219; CHECK-NEXT: #NO_APP220; CHECK-NEXT: #APP221; CHECK-NEXT: # reg use a0222; CHECK-NEXT: #NO_APP223; CHECK-NEXT: #APP224; CHECK-NEXT: # reg use a1225; CHECK-NEXT: #NO_APP226; CHECK-NEXT: #APP227; CHECK-NEXT: # reg use a2228; CHECK-NEXT: #NO_APP229; CHECK-NEXT: #APP230; CHECK-NEXT: # reg use a3231; CHECK-NEXT: #NO_APP232; CHECK-NEXT: #APP233; CHECK-NEXT: # reg use a4234; CHECK-NEXT: #NO_APP235; CHECK-NEXT: #APP236; CHECK-NEXT: # reg use a5237; CHECK-NEXT: #NO_APP238; CHECK-NEXT: #APP239; CHECK-NEXT: # reg use a6240; CHECK-NEXT: #NO_APP241; CHECK-NEXT: #APP242; CHECK-NEXT: # reg use a7243; CHECK-NEXT: #NO_APP244; CHECK-NEXT: #APP245; CHECK-NEXT: # reg use s2246; CHECK-NEXT: #NO_APP247; CHECK-NEXT: #APP248; CHECK-NEXT: # reg use s3249; CHECK-NEXT: #NO_APP250; CHECK-NEXT: #APP251; CHECK-NEXT: # reg use s4252; CHECK-NEXT: #NO_APP253; CHECK-NEXT: #APP254; CHECK-NEXT: # reg use s5255; CHECK-NEXT: #NO_APP256; CHECK-NEXT: #APP257; CHECK-NEXT: # reg use s6258; CHECK-NEXT: #NO_APP259; CHECK-NEXT: #APP260; CHECK-NEXT: # reg use s7261; CHECK-NEXT: #NO_APP262; CHECK-NEXT: #APP263; CHECK-NEXT: # reg use s8264; CHECK-NEXT: #NO_APP265; CHECK-NEXT: #APP266; CHECK-NEXT: # reg use s9267; CHECK-NEXT: #NO_APP268; CHECK-NEXT: #APP269; CHECK-NEXT: # reg use s10270; CHECK-NEXT: #NO_APP271; CHECK-NEXT: #APP272; CHECK-NEXT: # reg use s11273; CHECK-NEXT: #NO_APP274; CHECK-NEXT: #APP275; CHECK-NEXT: # reg use t3276; CHECK-NEXT: #NO_APP277; CHECK-NEXT: #APP278; CHECK-NEXT: # reg use t4279; CHECK-NEXT: #NO_APP280; CHECK-NEXT: #APP281; CHECK-NEXT: # reg use t5282; CHECK-NEXT: #NO_APP283; CHECK-NEXT: #APP284; CHECK-NEXT: # reg use t6285; CHECK-NEXT: #NO_APP286; CHECK-NEXT: ld ra, 104(sp) # 8-byte Folded Reload287; CHECK-NEXT: ld s0, 96(sp) # 8-byte Folded Reload288; CHECK-NEXT: ld s1, 88(sp) # 8-byte Folded Reload289; CHECK-NEXT: ld s2, 80(sp) # 8-byte Folded Reload290; CHECK-NEXT: ld s3, 72(sp) # 8-byte Folded Reload291; CHECK-NEXT: ld s4, 64(sp) # 8-byte Folded Reload292; CHECK-NEXT: ld s5, 56(sp) # 8-byte Folded Reload293; CHECK-NEXT: ld s6, 48(sp) # 8-byte Folded Reload294; CHECK-NEXT: ld s7, 40(sp) # 8-byte Folded Reload295; CHECK-NEXT: ld s8, 32(sp) # 8-byte Folded Reload296; CHECK-NEXT: ld s9, 24(sp) # 8-byte Folded Reload297; CHECK-NEXT: ld s10, 16(sp) # 8-byte Folded Reload298; CHECK-NEXT: ld s11, 8(sp) # 8-byte Folded Reload299; CHECK-NEXT: .cfi_restore ra300; CHECK-NEXT: .cfi_restore s0301; CHECK-NEXT: .cfi_restore s1302; CHECK-NEXT: .cfi_restore s2303; CHECK-NEXT: .cfi_restore s3304; CHECK-NEXT: .cfi_restore s4305; CHECK-NEXT: .cfi_restore s5306; CHECK-NEXT: .cfi_restore s6307; CHECK-NEXT: .cfi_restore s7308; CHECK-NEXT: .cfi_restore s8309; CHECK-NEXT: .cfi_restore s9310; CHECK-NEXT: .cfi_restore s10311; CHECK-NEXT: .cfi_restore s11312; CHECK-NEXT: addi sp, sp, 112313; CHECK-NEXT: .cfi_def_cfa_offset 0314; CHECK-NEXT: ret315 %ra = call i64 asm sideeffect "addi ra, x0, 1", "={ra}"()316 %t0 = call i64 asm sideeffect "addi t0, x0, 5", "={t0}"()317 %t1 = call i64 asm sideeffect "addi t1, x0, 6", "={t1}"()318 %t2 = call i64 asm sideeffect "addi t2, x0, 7", "={t2}"()319 %s0 = call i64 asm sideeffect "addi s0, x0, 8", "={s0}"()320 %s1 = call i64 asm sideeffect "addi s1, x0, 9", "={s1}"()321 %a0 = call i64 asm sideeffect "addi a0, x0, 10", "={a0}"()322 %a1 = call i64 asm sideeffect "addi a1, x0, 11", "={a1}"()323 %a2 = call i64 asm sideeffect "addi a2, x0, 12", "={a2}"()324 %a3 = call i64 asm sideeffect "addi a3, x0, 13", "={a3}"()325 %a4 = call i64 asm sideeffect "addi a4, x0, 14", "={a4}"()326 %a5 = call i64 asm sideeffect "addi a5, x0, 15", "={a5}"()327 %a6 = call i64 asm sideeffect "addi a6, x0, 16", "={a6}"()328 %a7 = call i64 asm sideeffect "addi a7, x0, 17", "={a7}"()329 %s2 = call i64 asm sideeffect "addi s2, x0, 18", "={s2}"()330 %s3 = call i64 asm sideeffect "addi s3, x0, 19", "={s3}"()331 %s4 = call i64 asm sideeffect "addi s4, x0, 20", "={s4}"()332 %s5 = call i64 asm sideeffect "addi s5, x0, 21", "={s5}"()333 %s6 = call i64 asm sideeffect "addi s6, x0, 22", "={s6}"()334 %s7 = call i64 asm sideeffect "addi s7, x0, 23", "={s7}"()335 %s8 = call i64 asm sideeffect "addi s8, x0, 24", "={s8}"()336 %s9 = call i64 asm sideeffect "addi s9, x0, 25", "={s9}"()337 %s10 = call i64 asm sideeffect "addi s10, x0, 26", "={s10}"()338 %s11 = call i64 asm sideeffect "addi s11, x0, 27", "={s11}"()339 %t3 = call i64 asm sideeffect "addi t3, x0, 28", "={t3}"()340 %t4 = call i64 asm sideeffect "addi t4, x0, 29", "={t4}"()341 %t5 = call i64 asm sideeffect "addi t5, x0, 30", "={t5}"()342 %t6 = call i64 asm sideeffect "addi t6, x0, 31", "={t6}"()343 344 %cmp = icmp eq i64 %t5, %t6345 br i1 %cmp, label %branch_1, label %branch_2346 347branch_1:348 call void asm sideeffect ".space 1048576", ""()349 br label %branch_2350 351branch_2:352 call void asm sideeffect "# reg use $0", "{ra}"(i64 %ra)353 call void asm sideeffect "# reg use $0", "{t0}"(i64 %t0)354 call void asm sideeffect "# reg use $0", "{t1}"(i64 %t1)355 call void asm sideeffect "# reg use $0", "{t2}"(i64 %t2)356 call void asm sideeffect "# reg use $0", "{s0}"(i64 %s0)357 call void asm sideeffect "# reg use $0", "{s1}"(i64 %s1)358 call void asm sideeffect "# reg use $0", "{a0}"(i64 %a0)359 call void asm sideeffect "# reg use $0", "{a1}"(i64 %a1)360 call void asm sideeffect "# reg use $0", "{a2}"(i64 %a2)361 call void asm sideeffect "# reg use $0", "{a3}"(i64 %a3)362 call void asm sideeffect "# reg use $0", "{a4}"(i64 %a4)363 call void asm sideeffect "# reg use $0", "{a5}"(i64 %a5)364 call void asm sideeffect "# reg use $0", "{a6}"(i64 %a6)365 call void asm sideeffect "# reg use $0", "{a7}"(i64 %a7)366 call void asm sideeffect "# reg use $0", "{s2}"(i64 %s2)367 call void asm sideeffect "# reg use $0", "{s3}"(i64 %s3)368 call void asm sideeffect "# reg use $0", "{s4}"(i64 %s4)369 call void asm sideeffect "# reg use $0", "{s5}"(i64 %s5)370 call void asm sideeffect "# reg use $0", "{s6}"(i64 %s6)371 call void asm sideeffect "# reg use $0", "{s7}"(i64 %s7)372 call void asm sideeffect "# reg use $0", "{s8}"(i64 %s8)373 call void asm sideeffect "# reg use $0", "{s9}"(i64 %s9)374 call void asm sideeffect "# reg use $0", "{s10}"(i64 %s10)375 call void asm sideeffect "# reg use $0", "{s11}"(i64 %s11)376 call void asm sideeffect "# reg use $0", "{t3}"(i64 %t3)377 call void asm sideeffect "# reg use $0", "{t4}"(i64 %t4)378 call void asm sideeffect "# reg use $0", "{t5}"(i64 %t5)379 call void asm sideeffect "# reg use $0", "{t6}"(i64 %t6)380 381 ret void382}383 384define void @relax_jal_spill_64_adjust_spill_slot() {385;386 ; If the stack is large and the offset of BranchRelaxationScratchFrameIndex387 ; is out the range of 12-bit signed integer, check whether the spill slot is388 ; adjusted to close to the stack base register.389; CHECK-LABEL: relax_jal_spill_64_adjust_spill_slot:390; CHECK: # %bb.0:391; CHECK-NEXT: addi sp, sp, -2032392; CHECK-NEXT: .cfi_def_cfa_offset 2032393; CHECK-NEXT: sd ra, 2024(sp) # 8-byte Folded Spill394; CHECK-NEXT: sd s0, 2016(sp) # 8-byte Folded Spill395; CHECK-NEXT: sd s1, 2008(sp) # 8-byte Folded Spill396; CHECK-NEXT: sd s2, 2000(sp) # 8-byte Folded Spill397; CHECK-NEXT: sd s3, 1992(sp) # 8-byte Folded Spill398; CHECK-NEXT: sd s4, 1984(sp) # 8-byte Folded Spill399; CHECK-NEXT: sd s5, 1976(sp) # 8-byte Folded Spill400; CHECK-NEXT: sd s6, 1968(sp) # 8-byte Folded Spill401; CHECK-NEXT: sd s7, 1960(sp) # 8-byte Folded Spill402; CHECK-NEXT: sd s8, 1952(sp) # 8-byte Folded Spill403; CHECK-NEXT: sd s9, 1944(sp) # 8-byte Folded Spill404; CHECK-NEXT: sd s10, 1936(sp) # 8-byte Folded Spill405; CHECK-NEXT: sd s11, 1928(sp) # 8-byte Folded Spill406; CHECK-NEXT: .cfi_offset ra, -8407; CHECK-NEXT: .cfi_offset s0, -16408; CHECK-NEXT: .cfi_offset s1, -24409; CHECK-NEXT: .cfi_offset s2, -32410; CHECK-NEXT: .cfi_offset s3, -40411; CHECK-NEXT: .cfi_offset s4, -48412; CHECK-NEXT: .cfi_offset s5, -56413; CHECK-NEXT: .cfi_offset s6, -64414; CHECK-NEXT: .cfi_offset s7, -72415; CHECK-NEXT: .cfi_offset s8, -80416; CHECK-NEXT: .cfi_offset s9, -88417; CHECK-NEXT: .cfi_offset s10, -96418; CHECK-NEXT: .cfi_offset s11, -104419; CHECK-NEXT: addi s0, sp, 2032420; CHECK-NEXT: .cfi_def_cfa s0, 0421; CHECK-NEXT: lui a0, 2422; CHECK-NEXT: addi a0, a0, -2032423; CHECK-NEXT: sub sp, sp, a0424; CHECK-NEXT: srli a0, sp, 12425; CHECK-NEXT: slli sp, a0, 12426; CHECK-NEXT: #APP427; CHECK-NEXT: li ra, 1428; CHECK-NEXT: #NO_APP429; CHECK-NEXT: #APP430; CHECK-NEXT: li t0, 5431; CHECK-NEXT: #NO_APP432; CHECK-NEXT: #APP433; CHECK-NEXT: li t1, 6434; CHECK-NEXT: #NO_APP435; CHECK-NEXT: #APP436; CHECK-NEXT: li t2, 7437; CHECK-NEXT: #NO_APP438; CHECK-NEXT: #APP439; CHECK-NEXT: li s0, 8440; CHECK-NEXT: #NO_APP441; CHECK-NEXT: #APP442; CHECK-NEXT: li s1, 9443; CHECK-NEXT: #NO_APP444; CHECK-NEXT: #APP445; CHECK-NEXT: li a0, 10446; CHECK-NEXT: #NO_APP447; CHECK-NEXT: #APP448; CHECK-NEXT: li a1, 11449; CHECK-NEXT: #NO_APP450; CHECK-NEXT: #APP451; CHECK-NEXT: li a2, 12452; CHECK-NEXT: #NO_APP453; CHECK-NEXT: #APP454; CHECK-NEXT: li a3, 13455; CHECK-NEXT: #NO_APP456; CHECK-NEXT: #APP457; CHECK-NEXT: li a4, 14458; CHECK-NEXT: #NO_APP459; CHECK-NEXT: #APP460; CHECK-NEXT: li a5, 15461; CHECK-NEXT: #NO_APP462; CHECK-NEXT: #APP463; CHECK-NEXT: li a6, 16464; CHECK-NEXT: #NO_APP465; CHECK-NEXT: #APP466; CHECK-NEXT: li a7, 17467; CHECK-NEXT: #NO_APP468; CHECK-NEXT: #APP469; CHECK-NEXT: li s2, 18470; CHECK-NEXT: #NO_APP471; CHECK-NEXT: #APP472; CHECK-NEXT: li s3, 19473; CHECK-NEXT: #NO_APP474; CHECK-NEXT: #APP475; CHECK-NEXT: li s4, 20476; CHECK-NEXT: #NO_APP477; CHECK-NEXT: #APP478; CHECK-NEXT: li s5, 21479; CHECK-NEXT: #NO_APP480; CHECK-NEXT: #APP481; CHECK-NEXT: li s6, 22482; CHECK-NEXT: #NO_APP483; CHECK-NEXT: #APP484; CHECK-NEXT: li s7, 23485; CHECK-NEXT: #NO_APP486; CHECK-NEXT: #APP487; CHECK-NEXT: li s8, 24488; CHECK-NEXT: #NO_APP489; CHECK-NEXT: #APP490; CHECK-NEXT: li s9, 25491; CHECK-NEXT: #NO_APP492; CHECK-NEXT: #APP493; CHECK-NEXT: li s10, 26494; CHECK-NEXT: #NO_APP495; CHECK-NEXT: #APP496; CHECK-NEXT: li s11, 27497; CHECK-NEXT: #NO_APP498; CHECK-NEXT: #APP499; CHECK-NEXT: li t3, 28500; CHECK-NEXT: #NO_APP501; CHECK-NEXT: #APP502; CHECK-NEXT: li t4, 29503; CHECK-NEXT: #NO_APP504; CHECK-NEXT: #APP505; CHECK-NEXT: li t5, 30506; CHECK-NEXT: #NO_APP507; CHECK-NEXT: #APP508; CHECK-NEXT: li t6, 31509; CHECK-NEXT: #NO_APP510; CHECK-NEXT: beq t5, t6, .LBB3_1511; CHECK-NEXT: # %bb.3:512; CHECK-NEXT: sd s11, 0(sp) # 8-byte Folded Spill513; CHECK-NEXT: jump .LBB3_4, s11514; CHECK-NEXT: .LBB3_1: # %branch_1515; CHECK-NEXT: #APP516; CHECK-NEXT: .zero 1048576517; CHECK-NEXT: #NO_APP518; CHECK-NEXT: j .LBB3_2519; CHECK-NEXT: .LBB3_4: # %branch_2520; CHECK-NEXT: ld s11, 0(sp) # 8-byte Folded Reload521; CHECK-NEXT: .LBB3_2: # %branch_2522; CHECK-NEXT: #APP523; CHECK-NEXT: # reg use ra524; CHECK-NEXT: #NO_APP525; CHECK-NEXT: #APP526; CHECK-NEXT: # reg use t0527; CHECK-NEXT: #NO_APP528; CHECK-NEXT: #APP529; CHECK-NEXT: # reg use t1530; CHECK-NEXT: #NO_APP531; CHECK-NEXT: #APP532; CHECK-NEXT: # reg use t2533; CHECK-NEXT: #NO_APP534; CHECK-NEXT: #APP535; CHECK-NEXT: # reg use s0536; CHECK-NEXT: #NO_APP537; CHECK-NEXT: #APP538; CHECK-NEXT: # reg use s1539; CHECK-NEXT: #NO_APP540; CHECK-NEXT: #APP541; CHECK-NEXT: # reg use a0542; CHECK-NEXT: #NO_APP543; CHECK-NEXT: #APP544; CHECK-NEXT: # reg use a1545; CHECK-NEXT: #NO_APP546; CHECK-NEXT: #APP547; CHECK-NEXT: # reg use a2548; CHECK-NEXT: #NO_APP549; CHECK-NEXT: #APP550; CHECK-NEXT: # reg use a3551; CHECK-NEXT: #NO_APP552; CHECK-NEXT: #APP553; CHECK-NEXT: # reg use a4554; CHECK-NEXT: #NO_APP555; CHECK-NEXT: #APP556; CHECK-NEXT: # reg use a5557; CHECK-NEXT: #NO_APP558; CHECK-NEXT: #APP559; CHECK-NEXT: # reg use a6560; CHECK-NEXT: #NO_APP561; CHECK-NEXT: #APP562; CHECK-NEXT: # reg use a7563; CHECK-NEXT: #NO_APP564; CHECK-NEXT: #APP565; CHECK-NEXT: # reg use s2566; CHECK-NEXT: #NO_APP567; CHECK-NEXT: #APP568; CHECK-NEXT: # reg use s3569; CHECK-NEXT: #NO_APP570; CHECK-NEXT: #APP571; CHECK-NEXT: # reg use s4572; CHECK-NEXT: #NO_APP573; CHECK-NEXT: #APP574; CHECK-NEXT: # reg use s5575; CHECK-NEXT: #NO_APP576; CHECK-NEXT: #APP577; CHECK-NEXT: # reg use s6578; CHECK-NEXT: #NO_APP579; CHECK-NEXT: #APP580; CHECK-NEXT: # reg use s7581; CHECK-NEXT: #NO_APP582; CHECK-NEXT: #APP583; CHECK-NEXT: # reg use s8584; CHECK-NEXT: #NO_APP585; CHECK-NEXT: #APP586; CHECK-NEXT: # reg use s9587; CHECK-NEXT: #NO_APP588; CHECK-NEXT: #APP589; CHECK-NEXT: # reg use s10590; CHECK-NEXT: #NO_APP591; CHECK-NEXT: #APP592; CHECK-NEXT: # reg use s11593; CHECK-NEXT: #NO_APP594; CHECK-NEXT: #APP595; CHECK-NEXT: # reg use t3596; CHECK-NEXT: #NO_APP597; CHECK-NEXT: #APP598; CHECK-NEXT: # reg use t4599; CHECK-NEXT: #NO_APP600; CHECK-NEXT: #APP601; CHECK-NEXT: # reg use t5602; CHECK-NEXT: #NO_APP603; CHECK-NEXT: #APP604; CHECK-NEXT: # reg use t6605; CHECK-NEXT: #NO_APP606; CHECK-NEXT: addi sp, s0, -2032607; CHECK-NEXT: .cfi_def_cfa sp, 2032608; CHECK-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload609; CHECK-NEXT: ld s0, 2016(sp) # 8-byte Folded Reload610; CHECK-NEXT: ld s1, 2008(sp) # 8-byte Folded Reload611; CHECK-NEXT: ld s2, 2000(sp) # 8-byte Folded Reload612; CHECK-NEXT: ld s3, 1992(sp) # 8-byte Folded Reload613; CHECK-NEXT: ld s4, 1984(sp) # 8-byte Folded Reload614; CHECK-NEXT: ld s5, 1976(sp) # 8-byte Folded Reload615; CHECK-NEXT: ld s6, 1968(sp) # 8-byte Folded Reload616; CHECK-NEXT: ld s7, 1960(sp) # 8-byte Folded Reload617; CHECK-NEXT: ld s8, 1952(sp) # 8-byte Folded Reload618; CHECK-NEXT: ld s9, 1944(sp) # 8-byte Folded Reload619; CHECK-NEXT: ld s10, 1936(sp) # 8-byte Folded Reload620; CHECK-NEXT: ld s11, 1928(sp) # 8-byte Folded Reload621; CHECK-NEXT: .cfi_restore ra622; CHECK-NEXT: .cfi_restore s0623; CHECK-NEXT: .cfi_restore s1624; CHECK-NEXT: .cfi_restore s2625; CHECK-NEXT: .cfi_restore s3626; CHECK-NEXT: .cfi_restore s4627; CHECK-NEXT: .cfi_restore s5628; CHECK-NEXT: .cfi_restore s6629; CHECK-NEXT: .cfi_restore s7630; CHECK-NEXT: .cfi_restore s8631; CHECK-NEXT: .cfi_restore s9632; CHECK-NEXT: .cfi_restore s10633; CHECK-NEXT: .cfi_restore s11634; CHECK-NEXT: addi sp, sp, 2032635; CHECK-NEXT: .cfi_def_cfa_offset 0636; CHECK-NEXT: ret637 %stack_obj = alloca i64, align 4096638 639 %ra = call i64 asm sideeffect "addi ra, x0, 1", "={ra}"()640 %t0 = call i64 asm sideeffect "addi t0, x0, 5", "={t0}"()641 %t1 = call i64 asm sideeffect "addi t1, x0, 6", "={t1}"()642 %t2 = call i64 asm sideeffect "addi t2, x0, 7", "={t2}"()643 %s0 = call i64 asm sideeffect "addi s0, x0, 8", "={s0}"()644 %s1 = call i64 asm sideeffect "addi s1, x0, 9", "={s1}"()645 %a0 = call i64 asm sideeffect "addi a0, x0, 10", "={a0}"()646 %a1 = call i64 asm sideeffect "addi a1, x0, 11", "={a1}"()647 %a2 = call i64 asm sideeffect "addi a2, x0, 12", "={a2}"()648 %a3 = call i64 asm sideeffect "addi a3, x0, 13", "={a3}"()649 %a4 = call i64 asm sideeffect "addi a4, x0, 14", "={a4}"()650 %a5 = call i64 asm sideeffect "addi a5, x0, 15", "={a5}"()651 %a6 = call i64 asm sideeffect "addi a6, x0, 16", "={a6}"()652 %a7 = call i64 asm sideeffect "addi a7, x0, 17", "={a7}"()653 %s2 = call i64 asm sideeffect "addi s2, x0, 18", "={s2}"()654 %s3 = call i64 asm sideeffect "addi s3, x0, 19", "={s3}"()655 %s4 = call i64 asm sideeffect "addi s4, x0, 20", "={s4}"()656 %s5 = call i64 asm sideeffect "addi s5, x0, 21", "={s5}"()657 %s6 = call i64 asm sideeffect "addi s6, x0, 22", "={s6}"()658 %s7 = call i64 asm sideeffect "addi s7, x0, 23", "={s7}"()659 %s8 = call i64 asm sideeffect "addi s8, x0, 24", "={s8}"()660 %s9 = call i64 asm sideeffect "addi s9, x0, 25", "={s9}"()661 %s10 = call i64 asm sideeffect "addi s10, x0, 26", "={s10}"()662 %s11 = call i64 asm sideeffect "addi s11, x0, 27", "={s11}"()663 %t3 = call i64 asm sideeffect "addi t3, x0, 28", "={t3}"()664 %t4 = call i64 asm sideeffect "addi t4, x0, 29", "={t4}"()665 %t5 = call i64 asm sideeffect "addi t5, x0, 30", "={t5}"()666 %t6 = call i64 asm sideeffect "addi t6, x0, 31", "={t6}"()667 668 %cmp = icmp eq i64 %t5, %t6669 br i1 %cmp, label %branch_1, label %branch_2670 671branch_1:672 call void asm sideeffect ".space 1048576", ""()673 br label %branch_2674 675branch_2:676 call void asm sideeffect "# reg use $0", "{ra}"(i64 %ra)677 call void asm sideeffect "# reg use $0", "{t0}"(i64 %t0)678 call void asm sideeffect "# reg use $0", "{t1}"(i64 %t1)679 call void asm sideeffect "# reg use $0", "{t2}"(i64 %t2)680 call void asm sideeffect "# reg use $0", "{s0}"(i64 %s0)681 call void asm sideeffect "# reg use $0", "{s1}"(i64 %s1)682 call void asm sideeffect "# reg use $0", "{a0}"(i64 %a0)683 call void asm sideeffect "# reg use $0", "{a1}"(i64 %a1)684 call void asm sideeffect "# reg use $0", "{a2}"(i64 %a2)685 call void asm sideeffect "# reg use $0", "{a3}"(i64 %a3)686 call void asm sideeffect "# reg use $0", "{a4}"(i64 %a4)687 call void asm sideeffect "# reg use $0", "{a5}"(i64 %a5)688 call void asm sideeffect "# reg use $0", "{a6}"(i64 %a6)689 call void asm sideeffect "# reg use $0", "{a7}"(i64 %a7)690 call void asm sideeffect "# reg use $0", "{s2}"(i64 %s2)691 call void asm sideeffect "# reg use $0", "{s3}"(i64 %s3)692 call void asm sideeffect "# reg use $0", "{s4}"(i64 %s4)693 call void asm sideeffect "# reg use $0", "{s5}"(i64 %s5)694 call void asm sideeffect "# reg use $0", "{s6}"(i64 %s6)695 call void asm sideeffect "# reg use $0", "{s7}"(i64 %s7)696 call void asm sideeffect "# reg use $0", "{s8}"(i64 %s8)697 call void asm sideeffect "# reg use $0", "{s9}"(i64 %s9)698 call void asm sideeffect "# reg use $0", "{s10}"(i64 %s10)699 call void asm sideeffect "# reg use $0", "{s11}"(i64 %s11)700 call void asm sideeffect "# reg use $0", "{t3}"(i64 %t3)701 call void asm sideeffect "# reg use $0", "{t4}"(i64 %t4)702 call void asm sideeffect "# reg use $0", "{t5}"(i64 %t5)703 call void asm sideeffect "# reg use $0", "{t6}"(i64 %t6)704 705 ret void706}707 708define void @relax_jal_spill_64_restore_block_correspondence() {709;710; CHECK-LABEL: relax_jal_spill_64_restore_block_correspondence:711; CHECK: # %bb.0: # %entry712; CHECK-NEXT: addi sp, sp, -112713; CHECK-NEXT: .cfi_def_cfa_offset 112714; CHECK-NEXT: sd ra, 104(sp) # 8-byte Folded Spill715; CHECK-NEXT: sd s0, 96(sp) # 8-byte Folded Spill716; CHECK-NEXT: sd s1, 88(sp) # 8-byte Folded Spill717; CHECK-NEXT: sd s2, 80(sp) # 8-byte Folded Spill718; CHECK-NEXT: sd s3, 72(sp) # 8-byte Folded Spill719; CHECK-NEXT: sd s4, 64(sp) # 8-byte Folded Spill720; CHECK-NEXT: sd s5, 56(sp) # 8-byte Folded Spill721; CHECK-NEXT: sd s6, 48(sp) # 8-byte Folded Spill722; CHECK-NEXT: sd s7, 40(sp) # 8-byte Folded Spill723; CHECK-NEXT: sd s8, 32(sp) # 8-byte Folded Spill724; CHECK-NEXT: sd s9, 24(sp) # 8-byte Folded Spill725; CHECK-NEXT: sd s10, 16(sp) # 8-byte Folded Spill726; CHECK-NEXT: sd s11, 8(sp) # 8-byte Folded Spill727; CHECK-NEXT: .cfi_offset ra, -8728; CHECK-NEXT: .cfi_offset s0, -16729; CHECK-NEXT: .cfi_offset s1, -24730; CHECK-NEXT: .cfi_offset s2, -32731; CHECK-NEXT: .cfi_offset s3, -40732; CHECK-NEXT: .cfi_offset s4, -48733; CHECK-NEXT: .cfi_offset s5, -56734; CHECK-NEXT: .cfi_offset s6, -64735; CHECK-NEXT: .cfi_offset s7, -72736; CHECK-NEXT: .cfi_offset s8, -80737; CHECK-NEXT: .cfi_offset s9, -88738; CHECK-NEXT: .cfi_offset s10, -96739; CHECK-NEXT: .cfi_offset s11, -104740; CHECK-NEXT: .cfi_remember_state741; CHECK-NEXT: #APP742; CHECK-NEXT: li ra, 1743; CHECK-NEXT: #NO_APP744; CHECK-NEXT: #APP745; CHECK-NEXT: li t0, 5746; CHECK-NEXT: #NO_APP747; CHECK-NEXT: #APP748; CHECK-NEXT: li t1, 6749; CHECK-NEXT: #NO_APP750; CHECK-NEXT: #APP751; CHECK-NEXT: li t2, 7752; CHECK-NEXT: #NO_APP753; CHECK-NEXT: #APP754; CHECK-NEXT: li s0, 8755; CHECK-NEXT: #NO_APP756; CHECK-NEXT: #APP757; CHECK-NEXT: li s1, 9758; CHECK-NEXT: #NO_APP759; CHECK-NEXT: #APP760; CHECK-NEXT: li a0, 10761; CHECK-NEXT: #NO_APP762; CHECK-NEXT: #APP763; CHECK-NEXT: li a1, 11764; CHECK-NEXT: #NO_APP765; CHECK-NEXT: #APP766; CHECK-NEXT: li a2, 12767; CHECK-NEXT: #NO_APP768; CHECK-NEXT: #APP769; CHECK-NEXT: li a3, 13770; CHECK-NEXT: #NO_APP771; CHECK-NEXT: #APP772; CHECK-NEXT: li a4, 14773; CHECK-NEXT: #NO_APP774; CHECK-NEXT: #APP775; CHECK-NEXT: li a5, 15776; CHECK-NEXT: #NO_APP777; CHECK-NEXT: #APP778; CHECK-NEXT: li a6, 16779; CHECK-NEXT: #NO_APP780; CHECK-NEXT: #APP781; CHECK-NEXT: li a7, 17782; CHECK-NEXT: #NO_APP783; CHECK-NEXT: #APP784; CHECK-NEXT: li s2, 18785; CHECK-NEXT: #NO_APP786; CHECK-NEXT: #APP787; CHECK-NEXT: li s3, 19788; CHECK-NEXT: #NO_APP789; CHECK-NEXT: #APP790; CHECK-NEXT: li s4, 20791; CHECK-NEXT: #NO_APP792; CHECK-NEXT: #APP793; CHECK-NEXT: li s5, 21794; CHECK-NEXT: #NO_APP795; CHECK-NEXT: #APP796; CHECK-NEXT: li s6, 22797; CHECK-NEXT: #NO_APP798; CHECK-NEXT: #APP799; CHECK-NEXT: li s7, 23800; CHECK-NEXT: #NO_APP801; CHECK-NEXT: #APP802; CHECK-NEXT: li s8, 24803; CHECK-NEXT: #NO_APP804; CHECK-NEXT: #APP805; CHECK-NEXT: li s9, 25806; CHECK-NEXT: #NO_APP807; CHECK-NEXT: #APP808; CHECK-NEXT: li s10, 26809; CHECK-NEXT: #NO_APP810; CHECK-NEXT: #APP811; CHECK-NEXT: li s11, 27812; CHECK-NEXT: #NO_APP813; CHECK-NEXT: #APP814; CHECK-NEXT: li t3, 28815; CHECK-NEXT: #NO_APP816; CHECK-NEXT: #APP817; CHECK-NEXT: li t4, 29818; CHECK-NEXT: #NO_APP819; CHECK-NEXT: #APP820; CHECK-NEXT: li t5, 30821; CHECK-NEXT: #NO_APP822; CHECK-NEXT: #APP823; CHECK-NEXT: li t6, 31824; CHECK-NEXT: #NO_APP825; CHECK-NEXT: bne t5, t6, .LBB4_2826; CHECK-NEXT: j .LBB4_1827; CHECK-NEXT: .LBB4_8: # %dest_1828; CHECK-NEXT: ld s11, 0(sp) # 8-byte Folded Reload829; CHECK-NEXT: .LBB4_1: # %dest_1830; CHECK-NEXT: #APP831; CHECK-NEXT: # dest 1832; CHECK-NEXT: #NO_APP833; CHECK-NEXT: j .LBB4_3834; CHECK-NEXT: .LBB4_2: # %cond_2835; CHECK-NEXT: bne t3, t4, .LBB4_5836; CHECK-NEXT: .LBB4_3: # %dest_2837; CHECK-NEXT: #APP838; CHECK-NEXT: # dest 2839; CHECK-NEXT: #NO_APP840; CHECK-NEXT: .LBB4_4: # %dest_3841; CHECK-NEXT: #APP842; CHECK-NEXT: # dest 3843; CHECK-NEXT: #NO_APP844; CHECK-NEXT: #APP845; CHECK-NEXT: # reg use ra846; CHECK-NEXT: #NO_APP847; CHECK-NEXT: #APP848; CHECK-NEXT: # reg use t0849; CHECK-NEXT: #NO_APP850; CHECK-NEXT: #APP851; CHECK-NEXT: # reg use t1852; CHECK-NEXT: #NO_APP853; CHECK-NEXT: #APP854; CHECK-NEXT: # reg use t2855; CHECK-NEXT: #NO_APP856; CHECK-NEXT: #APP857; CHECK-NEXT: # reg use s0858; CHECK-NEXT: #NO_APP859; CHECK-NEXT: #APP860; CHECK-NEXT: # reg use s1861; CHECK-NEXT: #NO_APP862; CHECK-NEXT: #APP863; CHECK-NEXT: # reg use a0864; CHECK-NEXT: #NO_APP865; CHECK-NEXT: #APP866; CHECK-NEXT: # reg use a1867; CHECK-NEXT: #NO_APP868; CHECK-NEXT: #APP869; CHECK-NEXT: # reg use a2870; CHECK-NEXT: #NO_APP871; CHECK-NEXT: #APP872; CHECK-NEXT: # reg use a3873; CHECK-NEXT: #NO_APP874; CHECK-NEXT: #APP875; CHECK-NEXT: # reg use a4876; CHECK-NEXT: #NO_APP877; CHECK-NEXT: #APP878; CHECK-NEXT: # reg use a5879; CHECK-NEXT: #NO_APP880; CHECK-NEXT: #APP881; CHECK-NEXT: # reg use a6882; CHECK-NEXT: #NO_APP883; CHECK-NEXT: #APP884; CHECK-NEXT: # reg use a7885; CHECK-NEXT: #NO_APP886; CHECK-NEXT: #APP887; CHECK-NEXT: # reg use s2888; CHECK-NEXT: #NO_APP889; CHECK-NEXT: #APP890; CHECK-NEXT: # reg use s3891; CHECK-NEXT: #NO_APP892; CHECK-NEXT: #APP893; CHECK-NEXT: # reg use s4894; CHECK-NEXT: #NO_APP895; CHECK-NEXT: #APP896; CHECK-NEXT: # reg use s5897; CHECK-NEXT: #NO_APP898; CHECK-NEXT: #APP899; CHECK-NEXT: # reg use s6900; CHECK-NEXT: #NO_APP901; CHECK-NEXT: #APP902; CHECK-NEXT: # reg use s7903; CHECK-NEXT: #NO_APP904; CHECK-NEXT: #APP905; CHECK-NEXT: # reg use s8906; CHECK-NEXT: #NO_APP907; CHECK-NEXT: #APP908; CHECK-NEXT: # reg use s9909; CHECK-NEXT: #NO_APP910; CHECK-NEXT: #APP911; CHECK-NEXT: # reg use s10912; CHECK-NEXT: #NO_APP913; CHECK-NEXT: #APP914; CHECK-NEXT: # reg use s11915; CHECK-NEXT: #NO_APP916; CHECK-NEXT: #APP917; CHECK-NEXT: # reg use t3918; CHECK-NEXT: #NO_APP919; CHECK-NEXT: #APP920; CHECK-NEXT: # reg use t4921; CHECK-NEXT: #NO_APP922; CHECK-NEXT: #APP923; CHECK-NEXT: # reg use t5924; CHECK-NEXT: #NO_APP925; CHECK-NEXT: #APP926; CHECK-NEXT: # reg use t6927; CHECK-NEXT: #NO_APP928; CHECK-NEXT: ld ra, 104(sp) # 8-byte Folded Reload929; CHECK-NEXT: ld s0, 96(sp) # 8-byte Folded Reload930; CHECK-NEXT: ld s1, 88(sp) # 8-byte Folded Reload931; CHECK-NEXT: ld s2, 80(sp) # 8-byte Folded Reload932; CHECK-NEXT: ld s3, 72(sp) # 8-byte Folded Reload933; CHECK-NEXT: ld s4, 64(sp) # 8-byte Folded Reload934; CHECK-NEXT: ld s5, 56(sp) # 8-byte Folded Reload935; CHECK-NEXT: ld s6, 48(sp) # 8-byte Folded Reload936; CHECK-NEXT: ld s7, 40(sp) # 8-byte Folded Reload937; CHECK-NEXT: ld s8, 32(sp) # 8-byte Folded Reload938; CHECK-NEXT: ld s9, 24(sp) # 8-byte Folded Reload939; CHECK-NEXT: ld s10, 16(sp) # 8-byte Folded Reload940; CHECK-NEXT: ld s11, 8(sp) # 8-byte Folded Reload941; CHECK-NEXT: .cfi_restore ra942; CHECK-NEXT: .cfi_restore s0943; CHECK-NEXT: .cfi_restore s1944; CHECK-NEXT: .cfi_restore s2945; CHECK-NEXT: .cfi_restore s3946; CHECK-NEXT: .cfi_restore s4947; CHECK-NEXT: .cfi_restore s5948; CHECK-NEXT: .cfi_restore s6949; CHECK-NEXT: .cfi_restore s7950; CHECK-NEXT: .cfi_restore s8951; CHECK-NEXT: .cfi_restore s9952; CHECK-NEXT: .cfi_restore s10953; CHECK-NEXT: .cfi_restore s11954; CHECK-NEXT: addi sp, sp, 112955; CHECK-NEXT: .cfi_def_cfa_offset 0956; CHECK-NEXT: ret957; CHECK-NEXT: .LBB4_5: # %cond_3958; CHECK-NEXT: .cfi_restore_state959; CHECK-NEXT: beq t1, t2, .LBB4_4960; CHECK-NEXT: # %bb.6: # %space961; CHECK-NEXT: #APP962; CHECK-NEXT: .zero 1048576963; CHECK-NEXT: #NO_APP964; CHECK-NEXT: # %bb.7: # %space965; CHECK-NEXT: sd s11, 0(sp) # 8-byte Folded Spill966; CHECK-NEXT: jump .LBB4_8, s11967entry:968 %ra = call i64 asm sideeffect "addi ra, x0, 1", "={ra}"()969 %t0 = call i64 asm sideeffect "addi t0, x0, 5", "={t0}"()970 %t1 = call i64 asm sideeffect "addi t1, x0, 6", "={t1}"()971 %t2 = call i64 asm sideeffect "addi t2, x0, 7", "={t2}"()972 %s0 = call i64 asm sideeffect "addi s0, x0, 8", "={s0}"()973 %s1 = call i64 asm sideeffect "addi s1, x0, 9", "={s1}"()974 %a0 = call i64 asm sideeffect "addi a0, x0, 10", "={a0}"()975 %a1 = call i64 asm sideeffect "addi a1, x0, 11", "={a1}"()976 %a2 = call i64 asm sideeffect "addi a2, x0, 12", "={a2}"()977 %a3 = call i64 asm sideeffect "addi a3, x0, 13", "={a3}"()978 %a4 = call i64 asm sideeffect "addi a4, x0, 14", "={a4}"()979 %a5 = call i64 asm sideeffect "addi a5, x0, 15", "={a5}"()980 %a6 = call i64 asm sideeffect "addi a6, x0, 16", "={a6}"()981 %a7 = call i64 asm sideeffect "addi a7, x0, 17", "={a7}"()982 %s2 = call i64 asm sideeffect "addi s2, x0, 18", "={s2}"()983 %s3 = call i64 asm sideeffect "addi s3, x0, 19", "={s3}"()984 %s4 = call i64 asm sideeffect "addi s4, x0, 20", "={s4}"()985 %s5 = call i64 asm sideeffect "addi s5, x0, 21", "={s5}"()986 %s6 = call i64 asm sideeffect "addi s6, x0, 22", "={s6}"()987 %s7 = call i64 asm sideeffect "addi s7, x0, 23", "={s7}"()988 %s8 = call i64 asm sideeffect "addi s8, x0, 24", "={s8}"()989 %s9 = call i64 asm sideeffect "addi s9, x0, 25", "={s9}"()990 %s10 = call i64 asm sideeffect "addi s10, x0, 26", "={s10}"()991 %s11 = call i64 asm sideeffect "addi s11, x0, 27", "={s11}"()992 %t3 = call i64 asm sideeffect "addi t3, x0, 28", "={t3}"()993 %t4 = call i64 asm sideeffect "addi t4, x0, 29", "={t4}"()994 %t5 = call i64 asm sideeffect "addi t5, x0, 30", "={t5}"()995 %t6 = call i64 asm sideeffect "addi t6, x0, 31", "={t6}"()996 997 br label %cond_1998 999cond_1:1000 %cmp1 = icmp eq i64 %t5, %t61001 br i1 %cmp1, label %dest_1, label %cond_21002 1003cond_2:1004 %cmp2 = icmp eq i64 %t3, %t41005 br i1 %cmp2, label %dest_2, label %cond_31006 1007cond_3:1008 %cmp3 = icmp eq i64 %t1, %t21009 br i1 %cmp3, label %dest_3, label %space1010 1011space:1012 call void asm sideeffect ".space 1048576", ""()1013 br label %dest_11014 1015dest_1:1016 call void asm sideeffect "# dest 1", ""()1017 br label %dest_21018 1019dest_2:1020 call void asm sideeffect "# dest 2", ""()1021 br label %dest_31022 1023dest_3:1024 call void asm sideeffect "# dest 3", ""()1025 br label %tail1026 1027tail:1028 call void asm sideeffect "# reg use $0", "{ra}"(i64 %ra)1029 call void asm sideeffect "# reg use $0", "{t0}"(i64 %t0)1030 call void asm sideeffect "# reg use $0", "{t1}"(i64 %t1)1031 call void asm sideeffect "# reg use $0", "{t2}"(i64 %t2)1032 call void asm sideeffect "# reg use $0", "{s0}"(i64 %s0)1033 call void asm sideeffect "# reg use $0", "{s1}"(i64 %s1)1034 call void asm sideeffect "# reg use $0", "{a0}"(i64 %a0)1035 call void asm sideeffect "# reg use $0", "{a1}"(i64 %a1)1036 call void asm sideeffect "# reg use $0", "{a2}"(i64 %a2)1037 call void asm sideeffect "# reg use $0", "{a3}"(i64 %a3)1038 call void asm sideeffect "# reg use $0", "{a4}"(i64 %a4)1039 call void asm sideeffect "# reg use $0", "{a5}"(i64 %a5)1040 call void asm sideeffect "# reg use $0", "{a6}"(i64 %a6)1041 call void asm sideeffect "# reg use $0", "{a7}"(i64 %a7)1042 call void asm sideeffect "# reg use $0", "{s2}"(i64 %s2)1043 call void asm sideeffect "# reg use $0", "{s3}"(i64 %s3)1044 call void asm sideeffect "# reg use $0", "{s4}"(i64 %s4)1045 call void asm sideeffect "# reg use $0", "{s5}"(i64 %s5)1046 call void asm sideeffect "# reg use $0", "{s6}"(i64 %s6)1047 call void asm sideeffect "# reg use $0", "{s7}"(i64 %s7)1048 call void asm sideeffect "# reg use $0", "{s8}"(i64 %s8)1049 call void asm sideeffect "# reg use $0", "{s9}"(i64 %s9)1050 call void asm sideeffect "# reg use $0", "{s10}"(i64 %s10)1051 call void asm sideeffect "# reg use $0", "{s11}"(i64 %s11)1052 call void asm sideeffect "# reg use $0", "{t3}"(i64 %t3)1053 call void asm sideeffect "# reg use $0", "{t4}"(i64 %t4)1054 call void asm sideeffect "# reg use $0", "{t5}"(i64 %t5)1055 call void asm sideeffect "# reg use $0", "{t6}"(i64 %t6)1056 1057 ret void1058}1059