1056 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=riscv32 -verify-machineinstrs -filetype=obj < %s \3; RUN: -o /dev/null 2>&14; RUN: llc -mtriple=riscv32 -relocation-model=pic -verify-machineinstrs \5; RUN: -filetype=obj < %s -o /dev/null 2>&16; RUN: llc -mtriple=riscv32 -verify-machineinstrs < %s \7; RUN: | FileCheck %s8; RUN: llc -mtriple=riscv32 -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 73define void @relax_jal_spill_32() {74; CHECK-LABEL: relax_jal_spill_32:75; CHECK: # %bb.0:76; CHECK-NEXT: addi sp, sp, -6477; CHECK-NEXT: .cfi_def_cfa_offset 6478; CHECK-NEXT: sw ra, 60(sp) # 4-byte Folded Spill79; CHECK-NEXT: sw s0, 56(sp) # 4-byte Folded Spill80; CHECK-NEXT: sw s1, 52(sp) # 4-byte Folded Spill81; CHECK-NEXT: sw s2, 48(sp) # 4-byte Folded Spill82; CHECK-NEXT: sw s3, 44(sp) # 4-byte Folded Spill83; CHECK-NEXT: sw s4, 40(sp) # 4-byte Folded Spill84; CHECK-NEXT: sw s5, 36(sp) # 4-byte Folded Spill85; CHECK-NEXT: sw s6, 32(sp) # 4-byte Folded Spill86; CHECK-NEXT: sw s7, 28(sp) # 4-byte Folded Spill87; CHECK-NEXT: sw s8, 24(sp) # 4-byte Folded Spill88; CHECK-NEXT: sw s9, 20(sp) # 4-byte Folded Spill89; CHECK-NEXT: sw s10, 16(sp) # 4-byte Folded Spill90; CHECK-NEXT: sw s11, 12(sp) # 4-byte Folded Spill91; CHECK-NEXT: .cfi_offset ra, -492; CHECK-NEXT: .cfi_offset s0, -893; CHECK-NEXT: .cfi_offset s1, -1294; CHECK-NEXT: .cfi_offset s2, -1695; CHECK-NEXT: .cfi_offset s3, -2096; CHECK-NEXT: .cfi_offset s4, -2497; CHECK-NEXT: .cfi_offset s5, -2898; CHECK-NEXT: .cfi_offset s6, -3299; CHECK-NEXT: .cfi_offset s7, -36100; CHECK-NEXT: .cfi_offset s8, -40101; CHECK-NEXT: .cfi_offset s9, -44102; CHECK-NEXT: .cfi_offset s10, -48103; CHECK-NEXT: .cfi_offset s11, -52104; CHECK-NEXT: #APP105; CHECK-NEXT: li ra, 1106; CHECK-NEXT: #NO_APP107; CHECK-NEXT: #APP108; CHECK-NEXT: li t0, 5109; CHECK-NEXT: #NO_APP110; CHECK-NEXT: #APP111; CHECK-NEXT: li t1, 6112; CHECK-NEXT: #NO_APP113; CHECK-NEXT: #APP114; CHECK-NEXT: li t2, 7115; CHECK-NEXT: #NO_APP116; CHECK-NEXT: #APP117; CHECK-NEXT: li s0, 8118; CHECK-NEXT: #NO_APP119; CHECK-NEXT: #APP120; CHECK-NEXT: li s1, 9121; CHECK-NEXT: #NO_APP122; CHECK-NEXT: #APP123; CHECK-NEXT: li a0, 10124; CHECK-NEXT: #NO_APP125; CHECK-NEXT: #APP126; CHECK-NEXT: li a1, 11127; CHECK-NEXT: #NO_APP128; CHECK-NEXT: #APP129; CHECK-NEXT: li a2, 12130; CHECK-NEXT: #NO_APP131; CHECK-NEXT: #APP132; CHECK-NEXT: li a3, 13133; CHECK-NEXT: #NO_APP134; CHECK-NEXT: #APP135; CHECK-NEXT: li a4, 14136; CHECK-NEXT: #NO_APP137; CHECK-NEXT: #APP138; CHECK-NEXT: li a5, 15139; CHECK-NEXT: #NO_APP140; CHECK-NEXT: #APP141; CHECK-NEXT: li a6, 16142; CHECK-NEXT: #NO_APP143; CHECK-NEXT: #APP144; CHECK-NEXT: li a7, 17145; CHECK-NEXT: #NO_APP146; CHECK-NEXT: #APP147; CHECK-NEXT: li s2, 18148; CHECK-NEXT: #NO_APP149; CHECK-NEXT: #APP150; CHECK-NEXT: li s3, 19151; CHECK-NEXT: #NO_APP152; CHECK-NEXT: #APP153; CHECK-NEXT: li s4, 20154; CHECK-NEXT: #NO_APP155; CHECK-NEXT: #APP156; CHECK-NEXT: li s5, 21157; CHECK-NEXT: #NO_APP158; CHECK-NEXT: #APP159; CHECK-NEXT: li s6, 22160; CHECK-NEXT: #NO_APP161; CHECK-NEXT: #APP162; CHECK-NEXT: li s7, 23163; CHECK-NEXT: #NO_APP164; CHECK-NEXT: #APP165; CHECK-NEXT: li s8, 24166; CHECK-NEXT: #NO_APP167; CHECK-NEXT: #APP168; CHECK-NEXT: li s9, 25169; CHECK-NEXT: #NO_APP170; CHECK-NEXT: #APP171; CHECK-NEXT: li s10, 26172; CHECK-NEXT: #NO_APP173; CHECK-NEXT: #APP174; CHECK-NEXT: li s11, 27175; CHECK-NEXT: #NO_APP176; CHECK-NEXT: #APP177; CHECK-NEXT: li t3, 28178; CHECK-NEXT: #NO_APP179; CHECK-NEXT: #APP180; CHECK-NEXT: li t4, 29181; CHECK-NEXT: #NO_APP182; CHECK-NEXT: #APP183; CHECK-NEXT: li t5, 30184; CHECK-NEXT: #NO_APP185; CHECK-NEXT: #APP186; CHECK-NEXT: li t6, 31187; CHECK-NEXT: #NO_APP188; CHECK-NEXT: beq t5, t6, .LBB2_1189; CHECK-NEXT: # %bb.3:190; CHECK-NEXT: sw s11, 0(sp)191; CHECK-NEXT: jump .LBB2_4, s11192; CHECK-NEXT: .LBB2_1: # %branch_1193; CHECK-NEXT: #APP194; CHECK-NEXT: .zero 1048576195; CHECK-NEXT: #NO_APP196; CHECK-NEXT: j .LBB2_2197; CHECK-NEXT: .LBB2_4: # %branch_2198; CHECK-NEXT: lw s11, 0(sp)199; CHECK-NEXT: .LBB2_2: # %branch_2200; CHECK-NEXT: #APP201; CHECK-NEXT: # reg use ra202; CHECK-NEXT: #NO_APP203; CHECK-NEXT: #APP204; CHECK-NEXT: # reg use t0205; CHECK-NEXT: #NO_APP206; CHECK-NEXT: #APP207; CHECK-NEXT: # reg use t1208; CHECK-NEXT: #NO_APP209; CHECK-NEXT: #APP210; CHECK-NEXT: # reg use t2211; CHECK-NEXT: #NO_APP212; CHECK-NEXT: #APP213; CHECK-NEXT: # reg use s0214; CHECK-NEXT: #NO_APP215; CHECK-NEXT: #APP216; CHECK-NEXT: # reg use s1217; CHECK-NEXT: #NO_APP218; CHECK-NEXT: #APP219; CHECK-NEXT: # reg use a0220; CHECK-NEXT: #NO_APP221; CHECK-NEXT: #APP222; CHECK-NEXT: # reg use a1223; CHECK-NEXT: #NO_APP224; CHECK-NEXT: #APP225; CHECK-NEXT: # reg use a2226; CHECK-NEXT: #NO_APP227; CHECK-NEXT: #APP228; CHECK-NEXT: # reg use a3229; CHECK-NEXT: #NO_APP230; CHECK-NEXT: #APP231; CHECK-NEXT: # reg use a4232; CHECK-NEXT: #NO_APP233; CHECK-NEXT: #APP234; CHECK-NEXT: # reg use a5235; CHECK-NEXT: #NO_APP236; CHECK-NEXT: #APP237; CHECK-NEXT: # reg use a6238; CHECK-NEXT: #NO_APP239; CHECK-NEXT: #APP240; CHECK-NEXT: # reg use a7241; CHECK-NEXT: #NO_APP242; CHECK-NEXT: #APP243; CHECK-NEXT: # reg use s2244; CHECK-NEXT: #NO_APP245; CHECK-NEXT: #APP246; CHECK-NEXT: # reg use s3247; CHECK-NEXT: #NO_APP248; CHECK-NEXT: #APP249; CHECK-NEXT: # reg use s4250; CHECK-NEXT: #NO_APP251; CHECK-NEXT: #APP252; CHECK-NEXT: # reg use s5253; CHECK-NEXT: #NO_APP254; CHECK-NEXT: #APP255; CHECK-NEXT: # reg use s6256; CHECK-NEXT: #NO_APP257; CHECK-NEXT: #APP258; CHECK-NEXT: # reg use s7259; CHECK-NEXT: #NO_APP260; CHECK-NEXT: #APP261; CHECK-NEXT: # reg use s8262; CHECK-NEXT: #NO_APP263; CHECK-NEXT: #APP264; CHECK-NEXT: # reg use s9265; CHECK-NEXT: #NO_APP266; CHECK-NEXT: #APP267; CHECK-NEXT: # reg use s10268; CHECK-NEXT: #NO_APP269; CHECK-NEXT: #APP270; CHECK-NEXT: # reg use s11271; CHECK-NEXT: #NO_APP272; CHECK-NEXT: #APP273; CHECK-NEXT: # reg use t3274; CHECK-NEXT: #NO_APP275; CHECK-NEXT: #APP276; CHECK-NEXT: # reg use t4277; CHECK-NEXT: #NO_APP278; CHECK-NEXT: #APP279; CHECK-NEXT: # reg use t5280; CHECK-NEXT: #NO_APP281; CHECK-NEXT: #APP282; CHECK-NEXT: # reg use t6283; CHECK-NEXT: #NO_APP284; CHECK-NEXT: lw ra, 60(sp) # 4-byte Folded Reload285; CHECK-NEXT: lw s0, 56(sp) # 4-byte Folded Reload286; CHECK-NEXT: lw s1, 52(sp) # 4-byte Folded Reload287; CHECK-NEXT: lw s2, 48(sp) # 4-byte Folded Reload288; CHECK-NEXT: lw s3, 44(sp) # 4-byte Folded Reload289; CHECK-NEXT: lw s4, 40(sp) # 4-byte Folded Reload290; CHECK-NEXT: lw s5, 36(sp) # 4-byte Folded Reload291; CHECK-NEXT: lw s6, 32(sp) # 4-byte Folded Reload292; CHECK-NEXT: lw s7, 28(sp) # 4-byte Folded Reload293; CHECK-NEXT: lw s8, 24(sp) # 4-byte Folded Reload294; CHECK-NEXT: lw s9, 20(sp) # 4-byte Folded Reload295; CHECK-NEXT: lw s10, 16(sp) # 4-byte Folded Reload296; CHECK-NEXT: lw s11, 12(sp) # 4-byte Folded Reload297; CHECK-NEXT: .cfi_restore ra298; CHECK-NEXT: .cfi_restore s0299; CHECK-NEXT: .cfi_restore s1300; CHECK-NEXT: .cfi_restore s2301; CHECK-NEXT: .cfi_restore s3302; CHECK-NEXT: .cfi_restore s4303; CHECK-NEXT: .cfi_restore s5304; CHECK-NEXT: .cfi_restore s6305; CHECK-NEXT: .cfi_restore s7306; CHECK-NEXT: .cfi_restore s8307; CHECK-NEXT: .cfi_restore s9308; CHECK-NEXT: .cfi_restore s10309; CHECK-NEXT: .cfi_restore s11310; CHECK-NEXT: addi sp, sp, 64311; CHECK-NEXT: .cfi_def_cfa_offset 0312; CHECK-NEXT: ret313 %ra = call i32 asm sideeffect "addi ra, x0, 1", "={ra}"()314 %t0 = call i32 asm sideeffect "addi t0, x0, 5", "={t0}"()315 %t1 = call i32 asm sideeffect "addi t1, x0, 6", "={t1}"()316 %t2 = call i32 asm sideeffect "addi t2, x0, 7", "={t2}"()317 %s0 = call i32 asm sideeffect "addi s0, x0, 8", "={s0}"()318 %s1 = call i32 asm sideeffect "addi s1, x0, 9", "={s1}"()319 %a0 = call i32 asm sideeffect "addi a0, x0, 10", "={a0}"()320 %a1 = call i32 asm sideeffect "addi a1, x0, 11", "={a1}"()321 %a2 = call i32 asm sideeffect "addi a2, x0, 12", "={a2}"()322 %a3 = call i32 asm sideeffect "addi a3, x0, 13", "={a3}"()323 %a4 = call i32 asm sideeffect "addi a4, x0, 14", "={a4}"()324 %a5 = call i32 asm sideeffect "addi a5, x0, 15", "={a5}"()325 %a6 = call i32 asm sideeffect "addi a6, x0, 16", "={a6}"()326 %a7 = call i32 asm sideeffect "addi a7, x0, 17", "={a7}"()327 %s2 = call i32 asm sideeffect "addi s2, x0, 18", "={s2}"()328 %s3 = call i32 asm sideeffect "addi s3, x0, 19", "={s3}"()329 %s4 = call i32 asm sideeffect "addi s4, x0, 20", "={s4}"()330 %s5 = call i32 asm sideeffect "addi s5, x0, 21", "={s5}"()331 %s6 = call i32 asm sideeffect "addi s6, x0, 22", "={s6}"()332 %s7 = call i32 asm sideeffect "addi s7, x0, 23", "={s7}"()333 %s8 = call i32 asm sideeffect "addi s8, x0, 24", "={s8}"()334 %s9 = call i32 asm sideeffect "addi s9, x0, 25", "={s9}"()335 %s10 = call i32 asm sideeffect "addi s10, x0, 26", "={s10}"()336 %s11 = call i32 asm sideeffect "addi s11, x0, 27", "={s11}"()337 %t3 = call i32 asm sideeffect "addi t3, x0, 28", "={t3}"()338 %t4 = call i32 asm sideeffect "addi t4, x0, 29", "={t4}"()339 %t5 = call i32 asm sideeffect "addi t5, x0, 30", "={t5}"()340 %t6 = call i32 asm sideeffect "addi t6, x0, 31", "={t6}"()341 342 %cmp = icmp eq i32 %t5, %t6343 br i1 %cmp, label %branch_1, label %branch_2344 345branch_1:346 call void asm sideeffect ".space 1048576", ""()347 br label %branch_2348 349branch_2:350 call void asm sideeffect "# reg use $0", "{ra}"(i32 %ra)351 call void asm sideeffect "# reg use $0", "{t0}"(i32 %t0)352 call void asm sideeffect "# reg use $0", "{t1}"(i32 %t1)353 call void asm sideeffect "# reg use $0", "{t2}"(i32 %t2)354 call void asm sideeffect "# reg use $0", "{s0}"(i32 %s0)355 call void asm sideeffect "# reg use $0", "{s1}"(i32 %s1)356 call void asm sideeffect "# reg use $0", "{a0}"(i32 %a0)357 call void asm sideeffect "# reg use $0", "{a1}"(i32 %a1)358 call void asm sideeffect "# reg use $0", "{a2}"(i32 %a2)359 call void asm sideeffect "# reg use $0", "{a3}"(i32 %a3)360 call void asm sideeffect "# reg use $0", "{a4}"(i32 %a4)361 call void asm sideeffect "# reg use $0", "{a5}"(i32 %a5)362 call void asm sideeffect "# reg use $0", "{a6}"(i32 %a6)363 call void asm sideeffect "# reg use $0", "{a7}"(i32 %a7)364 call void asm sideeffect "# reg use $0", "{s2}"(i32 %s2)365 call void asm sideeffect "# reg use $0", "{s3}"(i32 %s3)366 call void asm sideeffect "# reg use $0", "{s4}"(i32 %s4)367 call void asm sideeffect "# reg use $0", "{s5}"(i32 %s5)368 call void asm sideeffect "# reg use $0", "{s6}"(i32 %s6)369 call void asm sideeffect "# reg use $0", "{s7}"(i32 %s7)370 call void asm sideeffect "# reg use $0", "{s8}"(i32 %s8)371 call void asm sideeffect "# reg use $0", "{s9}"(i32 %s9)372 call void asm sideeffect "# reg use $0", "{s10}"(i32 %s10)373 call void asm sideeffect "# reg use $0", "{s11}"(i32 %s11)374 call void asm sideeffect "# reg use $0", "{t3}"(i32 %t3)375 call void asm sideeffect "# reg use $0", "{t4}"(i32 %t4)376 call void asm sideeffect "# reg use $0", "{t5}"(i32 %t5)377 call void asm sideeffect "# reg use $0", "{t6}"(i32 %t6)378 379 ret void380}381 382define void @relax_jal_spill_32_adjust_spill_slot() {383 ; If the stack is large and the offset of BranchRelaxationScratchFrameIndex384 ; is out the range of 12-bit signed integer, check whether the spill slot is385 ; adjusted to close to the stack base register.386; CHECK-LABEL: relax_jal_spill_32_adjust_spill_slot:387; CHECK: # %bb.0:388; CHECK-NEXT: addi sp, sp, -2032389; CHECK-NEXT: .cfi_def_cfa_offset 2032390; CHECK-NEXT: sw ra, 2028(sp) # 4-byte Folded Spill391; CHECK-NEXT: sw s0, 2024(sp) # 4-byte Folded Spill392; CHECK-NEXT: sw s1, 2020(sp) # 4-byte Folded Spill393; CHECK-NEXT: sw s2, 2016(sp) # 4-byte Folded Spill394; CHECK-NEXT: sw s3, 2012(sp) # 4-byte Folded Spill395; CHECK-NEXT: sw s4, 2008(sp) # 4-byte Folded Spill396; CHECK-NEXT: sw s5, 2004(sp) # 4-byte Folded Spill397; CHECK-NEXT: sw s6, 2000(sp) # 4-byte Folded Spill398; CHECK-NEXT: sw s7, 1996(sp) # 4-byte Folded Spill399; CHECK-NEXT: sw s8, 1992(sp) # 4-byte Folded Spill400; CHECK-NEXT: sw s9, 1988(sp) # 4-byte Folded Spill401; CHECK-NEXT: sw s10, 1984(sp) # 4-byte Folded Spill402; CHECK-NEXT: sw s11, 1980(sp) # 4-byte Folded Spill403; CHECK-NEXT: .cfi_offset ra, -4404; CHECK-NEXT: .cfi_offset s0, -8405; CHECK-NEXT: .cfi_offset s1, -12406; CHECK-NEXT: .cfi_offset s2, -16407; CHECK-NEXT: .cfi_offset s3, -20408; CHECK-NEXT: .cfi_offset s4, -24409; CHECK-NEXT: .cfi_offset s5, -28410; CHECK-NEXT: .cfi_offset s6, -32411; CHECK-NEXT: .cfi_offset s7, -36412; CHECK-NEXT: .cfi_offset s8, -40413; CHECK-NEXT: .cfi_offset s9, -44414; CHECK-NEXT: .cfi_offset s10, -48415; CHECK-NEXT: .cfi_offset s11, -52416; CHECK-NEXT: addi s0, sp, 2032417; CHECK-NEXT: .cfi_def_cfa s0, 0418; CHECK-NEXT: lui a0, 2419; CHECK-NEXT: addi a0, a0, -2032420; CHECK-NEXT: sub sp, sp, a0421; CHECK-NEXT: srli a0, sp, 12422; CHECK-NEXT: slli sp, a0, 12423; CHECK-NEXT: #APP424; CHECK-NEXT: li ra, 1425; CHECK-NEXT: #NO_APP426; CHECK-NEXT: #APP427; CHECK-NEXT: li t0, 5428; CHECK-NEXT: #NO_APP429; CHECK-NEXT: #APP430; CHECK-NEXT: li t1, 6431; CHECK-NEXT: #NO_APP432; CHECK-NEXT: #APP433; CHECK-NEXT: li t2, 7434; CHECK-NEXT: #NO_APP435; CHECK-NEXT: #APP436; CHECK-NEXT: li s0, 8437; CHECK-NEXT: #NO_APP438; CHECK-NEXT: #APP439; CHECK-NEXT: li s1, 9440; CHECK-NEXT: #NO_APP441; CHECK-NEXT: #APP442; CHECK-NEXT: li a0, 10443; CHECK-NEXT: #NO_APP444; CHECK-NEXT: #APP445; CHECK-NEXT: li a1, 11446; CHECK-NEXT: #NO_APP447; CHECK-NEXT: #APP448; CHECK-NEXT: li a2, 12449; CHECK-NEXT: #NO_APP450; CHECK-NEXT: #APP451; CHECK-NEXT: li a3, 13452; CHECK-NEXT: #NO_APP453; CHECK-NEXT: #APP454; CHECK-NEXT: li a4, 14455; CHECK-NEXT: #NO_APP456; CHECK-NEXT: #APP457; CHECK-NEXT: li a5, 15458; CHECK-NEXT: #NO_APP459; CHECK-NEXT: #APP460; CHECK-NEXT: li a6, 16461; CHECK-NEXT: #NO_APP462; CHECK-NEXT: #APP463; CHECK-NEXT: li a7, 17464; CHECK-NEXT: #NO_APP465; CHECK-NEXT: #APP466; CHECK-NEXT: li s2, 18467; CHECK-NEXT: #NO_APP468; CHECK-NEXT: #APP469; CHECK-NEXT: li s3, 19470; CHECK-NEXT: #NO_APP471; CHECK-NEXT: #APP472; CHECK-NEXT: li s4, 20473; CHECK-NEXT: #NO_APP474; CHECK-NEXT: #APP475; CHECK-NEXT: li s5, 21476; CHECK-NEXT: #NO_APP477; CHECK-NEXT: #APP478; CHECK-NEXT: li s6, 22479; CHECK-NEXT: #NO_APP480; CHECK-NEXT: #APP481; CHECK-NEXT: li s7, 23482; CHECK-NEXT: #NO_APP483; CHECK-NEXT: #APP484; CHECK-NEXT: li s8, 24485; CHECK-NEXT: #NO_APP486; CHECK-NEXT: #APP487; CHECK-NEXT: li s9, 25488; CHECK-NEXT: #NO_APP489; CHECK-NEXT: #APP490; CHECK-NEXT: li s10, 26491; CHECK-NEXT: #NO_APP492; CHECK-NEXT: #APP493; CHECK-NEXT: li s11, 27494; CHECK-NEXT: #NO_APP495; CHECK-NEXT: #APP496; CHECK-NEXT: li t3, 28497; CHECK-NEXT: #NO_APP498; CHECK-NEXT: #APP499; CHECK-NEXT: li t4, 29500; CHECK-NEXT: #NO_APP501; CHECK-NEXT: #APP502; CHECK-NEXT: li t5, 30503; CHECK-NEXT: #NO_APP504; CHECK-NEXT: #APP505; CHECK-NEXT: li t6, 31506; CHECK-NEXT: #NO_APP507; CHECK-NEXT: beq t5, t6, .LBB3_1508; CHECK-NEXT: # %bb.3:509; CHECK-NEXT: sw s11, 0(sp)510; CHECK-NEXT: jump .LBB3_4, s11511; CHECK-NEXT: .LBB3_1: # %branch_1512; CHECK-NEXT: #APP513; CHECK-NEXT: .zero 1048576514; CHECK-NEXT: #NO_APP515; CHECK-NEXT: j .LBB3_2516; CHECK-NEXT: .LBB3_4: # %branch_2517; CHECK-NEXT: lw s11, 0(sp)518; CHECK-NEXT: .LBB3_2: # %branch_2519; CHECK-NEXT: #APP520; CHECK-NEXT: # reg use ra521; CHECK-NEXT: #NO_APP522; CHECK-NEXT: #APP523; CHECK-NEXT: # reg use t0524; CHECK-NEXT: #NO_APP525; CHECK-NEXT: #APP526; CHECK-NEXT: # reg use t1527; CHECK-NEXT: #NO_APP528; CHECK-NEXT: #APP529; CHECK-NEXT: # reg use t2530; CHECK-NEXT: #NO_APP531; CHECK-NEXT: #APP532; CHECK-NEXT: # reg use s0533; CHECK-NEXT: #NO_APP534; CHECK-NEXT: #APP535; CHECK-NEXT: # reg use s1536; CHECK-NEXT: #NO_APP537; CHECK-NEXT: #APP538; CHECK-NEXT: # reg use a0539; CHECK-NEXT: #NO_APP540; CHECK-NEXT: #APP541; CHECK-NEXT: # reg use a1542; CHECK-NEXT: #NO_APP543; CHECK-NEXT: #APP544; CHECK-NEXT: # reg use a2545; CHECK-NEXT: #NO_APP546; CHECK-NEXT: #APP547; CHECK-NEXT: # reg use a3548; CHECK-NEXT: #NO_APP549; CHECK-NEXT: #APP550; CHECK-NEXT: # reg use a4551; CHECK-NEXT: #NO_APP552; CHECK-NEXT: #APP553; CHECK-NEXT: # reg use a5554; CHECK-NEXT: #NO_APP555; CHECK-NEXT: #APP556; CHECK-NEXT: # reg use a6557; CHECK-NEXT: #NO_APP558; CHECK-NEXT: #APP559; CHECK-NEXT: # reg use a7560; CHECK-NEXT: #NO_APP561; CHECK-NEXT: #APP562; CHECK-NEXT: # reg use s2563; CHECK-NEXT: #NO_APP564; CHECK-NEXT: #APP565; CHECK-NEXT: # reg use s3566; CHECK-NEXT: #NO_APP567; CHECK-NEXT: #APP568; CHECK-NEXT: # reg use s4569; CHECK-NEXT: #NO_APP570; CHECK-NEXT: #APP571; CHECK-NEXT: # reg use s5572; CHECK-NEXT: #NO_APP573; CHECK-NEXT: #APP574; CHECK-NEXT: # reg use s6575; CHECK-NEXT: #NO_APP576; CHECK-NEXT: #APP577; CHECK-NEXT: # reg use s7578; CHECK-NEXT: #NO_APP579; CHECK-NEXT: #APP580; CHECK-NEXT: # reg use s8581; CHECK-NEXT: #NO_APP582; CHECK-NEXT: #APP583; CHECK-NEXT: # reg use s9584; CHECK-NEXT: #NO_APP585; CHECK-NEXT: #APP586; CHECK-NEXT: # reg use s10587; CHECK-NEXT: #NO_APP588; CHECK-NEXT: #APP589; CHECK-NEXT: # reg use s11590; CHECK-NEXT: #NO_APP591; CHECK-NEXT: #APP592; CHECK-NEXT: # reg use t3593; CHECK-NEXT: #NO_APP594; CHECK-NEXT: #APP595; CHECK-NEXT: # reg use t4596; CHECK-NEXT: #NO_APP597; CHECK-NEXT: #APP598; CHECK-NEXT: # reg use t5599; CHECK-NEXT: #NO_APP600; CHECK-NEXT: #APP601; CHECK-NEXT: # reg use t6602; CHECK-NEXT: #NO_APP603; CHECK-NEXT: addi sp, s0, -2032604; CHECK-NEXT: .cfi_def_cfa sp, 2032605; CHECK-NEXT: lw ra, 2028(sp) # 4-byte Folded Reload606; CHECK-NEXT: lw s0, 2024(sp) # 4-byte Folded Reload607; CHECK-NEXT: lw s1, 2020(sp) # 4-byte Folded Reload608; CHECK-NEXT: lw s2, 2016(sp) # 4-byte Folded Reload609; CHECK-NEXT: lw s3, 2012(sp) # 4-byte Folded Reload610; CHECK-NEXT: lw s4, 2008(sp) # 4-byte Folded Reload611; CHECK-NEXT: lw s5, 2004(sp) # 4-byte Folded Reload612; CHECK-NEXT: lw s6, 2000(sp) # 4-byte Folded Reload613; CHECK-NEXT: lw s7, 1996(sp) # 4-byte Folded Reload614; CHECK-NEXT: lw s8, 1992(sp) # 4-byte Folded Reload615; CHECK-NEXT: lw s9, 1988(sp) # 4-byte Folded Reload616; CHECK-NEXT: lw s10, 1984(sp) # 4-byte Folded Reload617; CHECK-NEXT: lw s11, 1980(sp) # 4-byte Folded Reload618; CHECK-NEXT: .cfi_restore ra619; CHECK-NEXT: .cfi_restore s0620; CHECK-NEXT: .cfi_restore s1621; CHECK-NEXT: .cfi_restore s2622; CHECK-NEXT: .cfi_restore s3623; CHECK-NEXT: .cfi_restore s4624; CHECK-NEXT: .cfi_restore s5625; CHECK-NEXT: .cfi_restore s6626; CHECK-NEXT: .cfi_restore s7627; CHECK-NEXT: .cfi_restore s8628; CHECK-NEXT: .cfi_restore s9629; CHECK-NEXT: .cfi_restore s10630; CHECK-NEXT: .cfi_restore s11631; CHECK-NEXT: addi sp, sp, 2032632; CHECK-NEXT: .cfi_def_cfa_offset 0633; CHECK-NEXT: ret634 %stack_obj = alloca i32, align 4096635 636 %ra = call i32 asm sideeffect "addi ra, x0, 1", "={ra}"()637 %t0 = call i32 asm sideeffect "addi t0, x0, 5", "={t0}"()638 %t1 = call i32 asm sideeffect "addi t1, x0, 6", "={t1}"()639 %t2 = call i32 asm sideeffect "addi t2, x0, 7", "={t2}"()640 %s0 = call i32 asm sideeffect "addi s0, x0, 8", "={s0}"()641 %s1 = call i32 asm sideeffect "addi s1, x0, 9", "={s1}"()642 %a0 = call i32 asm sideeffect "addi a0, x0, 10", "={a0}"()643 %a1 = call i32 asm sideeffect "addi a1, x0, 11", "={a1}"()644 %a2 = call i32 asm sideeffect "addi a2, x0, 12", "={a2}"()645 %a3 = call i32 asm sideeffect "addi a3, x0, 13", "={a3}"()646 %a4 = call i32 asm sideeffect "addi a4, x0, 14", "={a4}"()647 %a5 = call i32 asm sideeffect "addi a5, x0, 15", "={a5}"()648 %a6 = call i32 asm sideeffect "addi a6, x0, 16", "={a6}"()649 %a7 = call i32 asm sideeffect "addi a7, x0, 17", "={a7}"()650 %s2 = call i32 asm sideeffect "addi s2, x0, 18", "={s2}"()651 %s3 = call i32 asm sideeffect "addi s3, x0, 19", "={s3}"()652 %s4 = call i32 asm sideeffect "addi s4, x0, 20", "={s4}"()653 %s5 = call i32 asm sideeffect "addi s5, x0, 21", "={s5}"()654 %s6 = call i32 asm sideeffect "addi s6, x0, 22", "={s6}"()655 %s7 = call i32 asm sideeffect "addi s7, x0, 23", "={s7}"()656 %s8 = call i32 asm sideeffect "addi s8, x0, 24", "={s8}"()657 %s9 = call i32 asm sideeffect "addi s9, x0, 25", "={s9}"()658 %s10 = call i32 asm sideeffect "addi s10, x0, 26", "={s10}"()659 %s11 = call i32 asm sideeffect "addi s11, x0, 27", "={s11}"()660 %t3 = call i32 asm sideeffect "addi t3, x0, 28", "={t3}"()661 %t4 = call i32 asm sideeffect "addi t4, x0, 29", "={t4}"()662 %t5 = call i32 asm sideeffect "addi t5, x0, 30", "={t5}"()663 %t6 = call i32 asm sideeffect "addi t6, x0, 31", "={t6}"()664 665 %cmp = icmp eq i32 %t5, %t6666 br i1 %cmp, label %branch_1, label %branch_2667 668branch_1:669 call void asm sideeffect ".space 1048576", ""()670 br label %branch_2671 672branch_2:673 call void asm sideeffect "# reg use $0", "{ra}"(i32 %ra)674 call void asm sideeffect "# reg use $0", "{t0}"(i32 %t0)675 call void asm sideeffect "# reg use $0", "{t1}"(i32 %t1)676 call void asm sideeffect "# reg use $0", "{t2}"(i32 %t2)677 call void asm sideeffect "# reg use $0", "{s0}"(i32 %s0)678 call void asm sideeffect "# reg use $0", "{s1}"(i32 %s1)679 call void asm sideeffect "# reg use $0", "{a0}"(i32 %a0)680 call void asm sideeffect "# reg use $0", "{a1}"(i32 %a1)681 call void asm sideeffect "# reg use $0", "{a2}"(i32 %a2)682 call void asm sideeffect "# reg use $0", "{a3}"(i32 %a3)683 call void asm sideeffect "# reg use $0", "{a4}"(i32 %a4)684 call void asm sideeffect "# reg use $0", "{a5}"(i32 %a5)685 call void asm sideeffect "# reg use $0", "{a6}"(i32 %a6)686 call void asm sideeffect "# reg use $0", "{a7}"(i32 %a7)687 call void asm sideeffect "# reg use $0", "{s2}"(i32 %s2)688 call void asm sideeffect "# reg use $0", "{s3}"(i32 %s3)689 call void asm sideeffect "# reg use $0", "{s4}"(i32 %s4)690 call void asm sideeffect "# reg use $0", "{s5}"(i32 %s5)691 call void asm sideeffect "# reg use $0", "{s6}"(i32 %s6)692 call void asm sideeffect "# reg use $0", "{s7}"(i32 %s7)693 call void asm sideeffect "# reg use $0", "{s8}"(i32 %s8)694 call void asm sideeffect "# reg use $0", "{s9}"(i32 %s9)695 call void asm sideeffect "# reg use $0", "{s10}"(i32 %s10)696 call void asm sideeffect "# reg use $0", "{s11}"(i32 %s11)697 call void asm sideeffect "# reg use $0", "{t3}"(i32 %t3)698 call void asm sideeffect "# reg use $0", "{t4}"(i32 %t4)699 call void asm sideeffect "# reg use $0", "{t5}"(i32 %t5)700 call void asm sideeffect "# reg use $0", "{t6}"(i32 %t6)701 702 ret void703}704 705define void @relax_jal_spill_32_restore_block_correspondence() {706; CHECK-LABEL: relax_jal_spill_32_restore_block_correspondence:707; CHECK: # %bb.0: # %entry708; CHECK-NEXT: addi sp, sp, -64709; CHECK-NEXT: .cfi_def_cfa_offset 64710; CHECK-NEXT: sw ra, 60(sp) # 4-byte Folded Spill711; CHECK-NEXT: sw s0, 56(sp) # 4-byte Folded Spill712; CHECK-NEXT: sw s1, 52(sp) # 4-byte Folded Spill713; CHECK-NEXT: sw s2, 48(sp) # 4-byte Folded Spill714; CHECK-NEXT: sw s3, 44(sp) # 4-byte Folded Spill715; CHECK-NEXT: sw s4, 40(sp) # 4-byte Folded Spill716; CHECK-NEXT: sw s5, 36(sp) # 4-byte Folded Spill717; CHECK-NEXT: sw s6, 32(sp) # 4-byte Folded Spill718; CHECK-NEXT: sw s7, 28(sp) # 4-byte Folded Spill719; CHECK-NEXT: sw s8, 24(sp) # 4-byte Folded Spill720; CHECK-NEXT: sw s9, 20(sp) # 4-byte Folded Spill721; CHECK-NEXT: sw s10, 16(sp) # 4-byte Folded Spill722; CHECK-NEXT: sw s11, 12(sp) # 4-byte Folded Spill723; CHECK-NEXT: .cfi_offset ra, -4724; CHECK-NEXT: .cfi_offset s0, -8725; CHECK-NEXT: .cfi_offset s1, -12726; CHECK-NEXT: .cfi_offset s2, -16727; CHECK-NEXT: .cfi_offset s3, -20728; CHECK-NEXT: .cfi_offset s4, -24729; CHECK-NEXT: .cfi_offset s5, -28730; CHECK-NEXT: .cfi_offset s6, -32731; CHECK-NEXT: .cfi_offset s7, -36732; CHECK-NEXT: .cfi_offset s8, -40733; CHECK-NEXT: .cfi_offset s9, -44734; CHECK-NEXT: .cfi_offset s10, -48735; CHECK-NEXT: .cfi_offset s11, -52736; CHECK-NEXT: .cfi_remember_state737; CHECK-NEXT: #APP738; CHECK-NEXT: li ra, 1739; CHECK-NEXT: #NO_APP740; CHECK-NEXT: #APP741; CHECK-NEXT: li t0, 5742; CHECK-NEXT: #NO_APP743; CHECK-NEXT: #APP744; CHECK-NEXT: li t1, 6745; CHECK-NEXT: #NO_APP746; CHECK-NEXT: #APP747; CHECK-NEXT: li t2, 7748; CHECK-NEXT: #NO_APP749; CHECK-NEXT: #APP750; CHECK-NEXT: li s0, 8751; CHECK-NEXT: #NO_APP752; CHECK-NEXT: #APP753; CHECK-NEXT: li s1, 9754; CHECK-NEXT: #NO_APP755; CHECK-NEXT: #APP756; CHECK-NEXT: li a0, 10757; CHECK-NEXT: #NO_APP758; CHECK-NEXT: #APP759; CHECK-NEXT: li a1, 11760; CHECK-NEXT: #NO_APP761; CHECK-NEXT: #APP762; CHECK-NEXT: li a2, 12763; CHECK-NEXT: #NO_APP764; CHECK-NEXT: #APP765; CHECK-NEXT: li a3, 13766; CHECK-NEXT: #NO_APP767; CHECK-NEXT: #APP768; CHECK-NEXT: li a4, 14769; CHECK-NEXT: #NO_APP770; CHECK-NEXT: #APP771; CHECK-NEXT: li a5, 15772; CHECK-NEXT: #NO_APP773; CHECK-NEXT: #APP774; CHECK-NEXT: li a6, 16775; CHECK-NEXT: #NO_APP776; CHECK-NEXT: #APP777; CHECK-NEXT: li a7, 17778; CHECK-NEXT: #NO_APP779; CHECK-NEXT: #APP780; CHECK-NEXT: li s2, 18781; CHECK-NEXT: #NO_APP782; CHECK-NEXT: #APP783; CHECK-NEXT: li s3, 19784; CHECK-NEXT: #NO_APP785; CHECK-NEXT: #APP786; CHECK-NEXT: li s4, 20787; CHECK-NEXT: #NO_APP788; CHECK-NEXT: #APP789; CHECK-NEXT: li s5, 21790; CHECK-NEXT: #NO_APP791; CHECK-NEXT: #APP792; CHECK-NEXT: li s6, 22793; CHECK-NEXT: #NO_APP794; CHECK-NEXT: #APP795; CHECK-NEXT: li s7, 23796; CHECK-NEXT: #NO_APP797; CHECK-NEXT: #APP798; CHECK-NEXT: li s8, 24799; CHECK-NEXT: #NO_APP800; CHECK-NEXT: #APP801; CHECK-NEXT: li s9, 25802; CHECK-NEXT: #NO_APP803; CHECK-NEXT: #APP804; CHECK-NEXT: li s10, 26805; CHECK-NEXT: #NO_APP806; CHECK-NEXT: #APP807; CHECK-NEXT: li s11, 27808; CHECK-NEXT: #NO_APP809; CHECK-NEXT: #APP810; CHECK-NEXT: li t3, 28811; CHECK-NEXT: #NO_APP812; CHECK-NEXT: #APP813; CHECK-NEXT: li t4, 29814; CHECK-NEXT: #NO_APP815; CHECK-NEXT: #APP816; CHECK-NEXT: li t5, 30817; CHECK-NEXT: #NO_APP818; CHECK-NEXT: #APP819; CHECK-NEXT: li t6, 31820; CHECK-NEXT: #NO_APP821; CHECK-NEXT: bne t5, t6, .LBB4_2822; CHECK-NEXT: j .LBB4_1823; CHECK-NEXT: .LBB4_8: # %dest_1824; CHECK-NEXT: lw s11, 0(sp)825; CHECK-NEXT: .LBB4_1: # %dest_1826; CHECK-NEXT: #APP827; CHECK-NEXT: # dest 1828; CHECK-NEXT: #NO_APP829; CHECK-NEXT: j .LBB4_3830; CHECK-NEXT: .LBB4_2: # %cond_2831; CHECK-NEXT: bne t3, t4, .LBB4_5832; CHECK-NEXT: .LBB4_3: # %dest_2833; CHECK-NEXT: #APP834; CHECK-NEXT: # dest 2835; CHECK-NEXT: #NO_APP836; CHECK-NEXT: .LBB4_4: # %dest_3837; CHECK-NEXT: #APP838; CHECK-NEXT: # dest 3839; CHECK-NEXT: #NO_APP840; CHECK-NEXT: #APP841; CHECK-NEXT: # reg use ra842; CHECK-NEXT: #NO_APP843; CHECK-NEXT: #APP844; CHECK-NEXT: # reg use t0845; CHECK-NEXT: #NO_APP846; CHECK-NEXT: #APP847; CHECK-NEXT: # reg use t1848; CHECK-NEXT: #NO_APP849; CHECK-NEXT: #APP850; CHECK-NEXT: # reg use t2851; CHECK-NEXT: #NO_APP852; CHECK-NEXT: #APP853; CHECK-NEXT: # reg use s0854; CHECK-NEXT: #NO_APP855; CHECK-NEXT: #APP856; CHECK-NEXT: # reg use s1857; CHECK-NEXT: #NO_APP858; CHECK-NEXT: #APP859; CHECK-NEXT: # reg use a0860; CHECK-NEXT: #NO_APP861; CHECK-NEXT: #APP862; CHECK-NEXT: # reg use a1863; CHECK-NEXT: #NO_APP864; CHECK-NEXT: #APP865; CHECK-NEXT: # reg use a2866; CHECK-NEXT: #NO_APP867; CHECK-NEXT: #APP868; CHECK-NEXT: # reg use a3869; CHECK-NEXT: #NO_APP870; CHECK-NEXT: #APP871; CHECK-NEXT: # reg use a4872; CHECK-NEXT: #NO_APP873; CHECK-NEXT: #APP874; CHECK-NEXT: # reg use a5875; CHECK-NEXT: #NO_APP876; CHECK-NEXT: #APP877; CHECK-NEXT: # reg use a6878; CHECK-NEXT: #NO_APP879; CHECK-NEXT: #APP880; CHECK-NEXT: # reg use a7881; CHECK-NEXT: #NO_APP882; CHECK-NEXT: #APP883; CHECK-NEXT: # reg use s2884; CHECK-NEXT: #NO_APP885; CHECK-NEXT: #APP886; CHECK-NEXT: # reg use s3887; CHECK-NEXT: #NO_APP888; CHECK-NEXT: #APP889; CHECK-NEXT: # reg use s4890; CHECK-NEXT: #NO_APP891; CHECK-NEXT: #APP892; CHECK-NEXT: # reg use s5893; CHECK-NEXT: #NO_APP894; CHECK-NEXT: #APP895; CHECK-NEXT: # reg use s6896; CHECK-NEXT: #NO_APP897; CHECK-NEXT: #APP898; CHECK-NEXT: # reg use s7899; CHECK-NEXT: #NO_APP900; CHECK-NEXT: #APP901; CHECK-NEXT: # reg use s8902; CHECK-NEXT: #NO_APP903; CHECK-NEXT: #APP904; CHECK-NEXT: # reg use s9905; CHECK-NEXT: #NO_APP906; CHECK-NEXT: #APP907; CHECK-NEXT: # reg use s10908; CHECK-NEXT: #NO_APP909; CHECK-NEXT: #APP910; CHECK-NEXT: # reg use s11911; CHECK-NEXT: #NO_APP912; CHECK-NEXT: #APP913; CHECK-NEXT: # reg use t3914; CHECK-NEXT: #NO_APP915; CHECK-NEXT: #APP916; CHECK-NEXT: # reg use t4917; CHECK-NEXT: #NO_APP918; CHECK-NEXT: #APP919; CHECK-NEXT: # reg use t5920; CHECK-NEXT: #NO_APP921; CHECK-NEXT: #APP922; CHECK-NEXT: # reg use t6923; CHECK-NEXT: #NO_APP924; CHECK-NEXT: lw ra, 60(sp) # 4-byte Folded Reload925; CHECK-NEXT: lw s0, 56(sp) # 4-byte Folded Reload926; CHECK-NEXT: lw s1, 52(sp) # 4-byte Folded Reload927; CHECK-NEXT: lw s2, 48(sp) # 4-byte Folded Reload928; CHECK-NEXT: lw s3, 44(sp) # 4-byte Folded Reload929; CHECK-NEXT: lw s4, 40(sp) # 4-byte Folded Reload930; CHECK-NEXT: lw s5, 36(sp) # 4-byte Folded Reload931; CHECK-NEXT: lw s6, 32(sp) # 4-byte Folded Reload932; CHECK-NEXT: lw s7, 28(sp) # 4-byte Folded Reload933; CHECK-NEXT: lw s8, 24(sp) # 4-byte Folded Reload934; CHECK-NEXT: lw s9, 20(sp) # 4-byte Folded Reload935; CHECK-NEXT: lw s10, 16(sp) # 4-byte Folded Reload936; CHECK-NEXT: lw s11, 12(sp) # 4-byte Folded Reload937; CHECK-NEXT: .cfi_restore ra938; CHECK-NEXT: .cfi_restore s0939; CHECK-NEXT: .cfi_restore s1940; CHECK-NEXT: .cfi_restore s2941; CHECK-NEXT: .cfi_restore s3942; CHECK-NEXT: .cfi_restore s4943; CHECK-NEXT: .cfi_restore s5944; CHECK-NEXT: .cfi_restore s6945; CHECK-NEXT: .cfi_restore s7946; CHECK-NEXT: .cfi_restore s8947; CHECK-NEXT: .cfi_restore s9948; CHECK-NEXT: .cfi_restore s10949; CHECK-NEXT: .cfi_restore s11950; CHECK-NEXT: addi sp, sp, 64951; CHECK-NEXT: .cfi_def_cfa_offset 0952; CHECK-NEXT: ret953; CHECK-NEXT: .LBB4_5: # %cond_3954; CHECK-NEXT: .cfi_restore_state955; CHECK-NEXT: beq t1, t2, .LBB4_4956; CHECK-NEXT: # %bb.6: # %space957; CHECK-NEXT: #APP958; CHECK-NEXT: .zero 1048576959; CHECK-NEXT: #NO_APP960; CHECK-NEXT: # %bb.7: # %space961; CHECK-NEXT: sw s11, 0(sp)962; CHECK-NEXT: jump .LBB4_8, s11963entry:964 %ra = call i32 asm sideeffect "addi ra, x0, 1", "={ra}"()965 %t0 = call i32 asm sideeffect "addi t0, x0, 5", "={t0}"()966 %t1 = call i32 asm sideeffect "addi t1, x0, 6", "={t1}"()967 %t2 = call i32 asm sideeffect "addi t2, x0, 7", "={t2}"()968 %s0 = call i32 asm sideeffect "addi s0, x0, 8", "={s0}"()969 %s1 = call i32 asm sideeffect "addi s1, x0, 9", "={s1}"()970 %a0 = call i32 asm sideeffect "addi a0, x0, 10", "={a0}"()971 %a1 = call i32 asm sideeffect "addi a1, x0, 11", "={a1}"()972 %a2 = call i32 asm sideeffect "addi a2, x0, 12", "={a2}"()973 %a3 = call i32 asm sideeffect "addi a3, x0, 13", "={a3}"()974 %a4 = call i32 asm sideeffect "addi a4, x0, 14", "={a4}"()975 %a5 = call i32 asm sideeffect "addi a5, x0, 15", "={a5}"()976 %a6 = call i32 asm sideeffect "addi a6, x0, 16", "={a6}"()977 %a7 = call i32 asm sideeffect "addi a7, x0, 17", "={a7}"()978 %s2 = call i32 asm sideeffect "addi s2, x0, 18", "={s2}"()979 %s3 = call i32 asm sideeffect "addi s3, x0, 19", "={s3}"()980 %s4 = call i32 asm sideeffect "addi s4, x0, 20", "={s4}"()981 %s5 = call i32 asm sideeffect "addi s5, x0, 21", "={s5}"()982 %s6 = call i32 asm sideeffect "addi s6, x0, 22", "={s6}"()983 %s7 = call i32 asm sideeffect "addi s7, x0, 23", "={s7}"()984 %s8 = call i32 asm sideeffect "addi s8, x0, 24", "={s8}"()985 %s9 = call i32 asm sideeffect "addi s9, x0, 25", "={s9}"()986 %s10 = call i32 asm sideeffect "addi s10, x0, 26", "={s10}"()987 %s11 = call i32 asm sideeffect "addi s11, x0, 27", "={s11}"()988 %t3 = call i32 asm sideeffect "addi t3, x0, 28", "={t3}"()989 %t4 = call i32 asm sideeffect "addi t4, x0, 29", "={t4}"()990 %t5 = call i32 asm sideeffect "addi t5, x0, 30", "={t5}"()991 %t6 = call i32 asm sideeffect "addi t6, x0, 31", "={t6}"()992 993 br label %cond_1994 995cond_1:996 %cmp1 = icmp eq i32 %t5, %t6997 br i1 %cmp1, label %dest_1, label %cond_2998 999cond_2:1000 %cmp2 = icmp eq i32 %t3, %t41001 br i1 %cmp2, label %dest_2, label %cond_31002 1003cond_3:1004 %cmp3 = icmp eq i32 %t1, %t21005 br i1 %cmp3, label %dest_3, label %space1006 1007space:1008 call void asm sideeffect ".space 1048576", ""()1009 br label %dest_11010 1011dest_1:1012 call void asm sideeffect "# dest 1", ""()1013 br label %dest_21014 1015dest_2:1016 call void asm sideeffect "# dest 2", ""()1017 br label %dest_31018 1019dest_3:1020 call void asm sideeffect "# dest 3", ""()1021 br label %tail1022 1023tail:1024 call void asm sideeffect "# reg use $0", "{ra}"(i32 %ra)1025 call void asm sideeffect "# reg use $0", "{t0}"(i32 %t0)1026 call void asm sideeffect "# reg use $0", "{t1}"(i32 %t1)1027 call void asm sideeffect "# reg use $0", "{t2}"(i32 %t2)1028 call void asm sideeffect "# reg use $0", "{s0}"(i32 %s0)1029 call void asm sideeffect "# reg use $0", "{s1}"(i32 %s1)1030 call void asm sideeffect "# reg use $0", "{a0}"(i32 %a0)1031 call void asm sideeffect "# reg use $0", "{a1}"(i32 %a1)1032 call void asm sideeffect "# reg use $0", "{a2}"(i32 %a2)1033 call void asm sideeffect "# reg use $0", "{a3}"(i32 %a3)1034 call void asm sideeffect "# reg use $0", "{a4}"(i32 %a4)1035 call void asm sideeffect "# reg use $0", "{a5}"(i32 %a5)1036 call void asm sideeffect "# reg use $0", "{a6}"(i32 %a6)1037 call void asm sideeffect "# reg use $0", "{a7}"(i32 %a7)1038 call void asm sideeffect "# reg use $0", "{s2}"(i32 %s2)1039 call void asm sideeffect "# reg use $0", "{s3}"(i32 %s3)1040 call void asm sideeffect "# reg use $0", "{s4}"(i32 %s4)1041 call void asm sideeffect "# reg use $0", "{s5}"(i32 %s5)1042 call void asm sideeffect "# reg use $0", "{s6}"(i32 %s6)1043 call void asm sideeffect "# reg use $0", "{s7}"(i32 %s7)1044 call void asm sideeffect "# reg use $0", "{s8}"(i32 %s8)1045 call void asm sideeffect "# reg use $0", "{s9}"(i32 %s9)1046 call void asm sideeffect "# reg use $0", "{s10}"(i32 %s10)1047 call void asm sideeffect "# reg use $0", "{s11}"(i32 %s11)1048 call void asm sideeffect "# reg use $0", "{t3}"(i32 %t3)1049 call void asm sideeffect "# reg use $0", "{t4}"(i32 %t4)1050 call void asm sideeffect "# reg use $0", "{t5}"(i32 %t5)1051 call void asm sideeffect "# reg use $0", "{t6}"(i32 %t6)1052 1053 ret void1054}1055 1056