brintos

brintos / llvm-project-archived public Read only

0
0
Text · 11.4 KiB · 5c96d5c Raw
314 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc --mtriple=loongarch32 -mattr=+d --filetype=obj --verify-machineinstrs < %s \3; RUN:   -o /dev/null 2>&14; RUN: llc --mtriple=loongarch32 -mattr=+d --verify-machineinstrs < %s | FileCheck %s5 6define void @relax_b28_spill() {7; CHECK-LABEL: relax_b28_spill:8; CHECK:       # %bb.0:9; CHECK-NEXT:    addi.w $sp, $sp, -4810; CHECK-NEXT:    .cfi_def_cfa_offset 4811; CHECK-NEXT:    st.w $ra, $sp, 44 # 4-byte Folded Spill12; CHECK-NEXT:    st.w $fp, $sp, 40 # 4-byte Folded Spill13; CHECK-NEXT:    st.w $s0, $sp, 36 # 4-byte Folded Spill14; CHECK-NEXT:    st.w $s1, $sp, 32 # 4-byte Folded Spill15; CHECK-NEXT:    st.w $s2, $sp, 28 # 4-byte Folded Spill16; CHECK-NEXT:    st.w $s3, $sp, 24 # 4-byte Folded Spill17; CHECK-NEXT:    st.w $s4, $sp, 20 # 4-byte Folded Spill18; CHECK-NEXT:    st.w $s5, $sp, 16 # 4-byte Folded Spill19; CHECK-NEXT:    st.w $s6, $sp, 12 # 4-byte Folded Spill20; CHECK-NEXT:    st.w $s7, $sp, 8 # 4-byte Folded Spill21; CHECK-NEXT:    st.w $s8, $sp, 4 # 4-byte Folded Spill22; CHECK-NEXT:    .cfi_offset 1, -423; CHECK-NEXT:    .cfi_offset 22, -824; CHECK-NEXT:    .cfi_offset 23, -1225; CHECK-NEXT:    .cfi_offset 24, -1626; CHECK-NEXT:    .cfi_offset 25, -2027; CHECK-NEXT:    .cfi_offset 26, -2428; CHECK-NEXT:    .cfi_offset 27, -2829; CHECK-NEXT:    .cfi_offset 28, -3230; CHECK-NEXT:    .cfi_offset 29, -3631; CHECK-NEXT:    .cfi_offset 30, -4032; CHECK-NEXT:    .cfi_offset 31, -4433; CHECK-NEXT:    #APP34; CHECK-NEXT:    addi.w $zero, $zero, 135; CHECK-NEXT:    #NO_APP36; CHECK-NEXT:    #APP37; CHECK-NEXT:    addi.w $ra, $zero, 138; CHECK-NEXT:    #NO_APP39; CHECK-NEXT:    #APP40; CHECK-NEXT:    addi.w $tp, $zero, 141; CHECK-NEXT:    #NO_APP42; CHECK-NEXT:    #APP43; CHECK-NEXT:    addi.w $a0, $zero, 144; CHECK-NEXT:    #NO_APP45; CHECK-NEXT:    #APP46; CHECK-NEXT:    addi.w $a1, $zero, 147; CHECK-NEXT:    #NO_APP48; CHECK-NEXT:    #APP49; CHECK-NEXT:    addi.w $a2, $zero, 150; CHECK-NEXT:    #NO_APP51; CHECK-NEXT:    #APP52; CHECK-NEXT:    addi.w $a3, $zero, 153; CHECK-NEXT:    #NO_APP54; CHECK-NEXT:    #APP55; CHECK-NEXT:    addi.w $a4, $zero, 156; CHECK-NEXT:    #NO_APP57; CHECK-NEXT:    #APP58; CHECK-NEXT:    addi.w $a5, $zero, 159; CHECK-NEXT:    #NO_APP60; CHECK-NEXT:    #APP61; CHECK-NEXT:    addi.w $a6, $zero, 162; CHECK-NEXT:    #NO_APP63; CHECK-NEXT:    #APP64; CHECK-NEXT:    addi.w $a7, $zero, 165; CHECK-NEXT:    #NO_APP66; CHECK-NEXT:    #APP67; CHECK-NEXT:    addi.w $t0, $zero, 168; CHECK-NEXT:    #NO_APP69; CHECK-NEXT:    #APP70; CHECK-NEXT:    addi.w $t1, $zero, 171; CHECK-NEXT:    #NO_APP72; CHECK-NEXT:    #APP73; CHECK-NEXT:    addi.w $t2, $zero, 174; CHECK-NEXT:    #NO_APP75; CHECK-NEXT:    #APP76; CHECK-NEXT:    addi.w $t3, $zero, 177; CHECK-NEXT:    #NO_APP78; CHECK-NEXT:    #APP79; CHECK-NEXT:    addi.w $t4, $zero, 180; CHECK-NEXT:    #NO_APP81; CHECK-NEXT:    #APP82; CHECK-NEXT:    addi.w $t5, $zero, 183; CHECK-NEXT:    #NO_APP84; CHECK-NEXT:    #APP85; CHECK-NEXT:    addi.w $t6, $zero, 186; CHECK-NEXT:    #NO_APP87; CHECK-NEXT:    #APP88; CHECK-NEXT:    addi.w $t7, $zero, 189; CHECK-NEXT:    #NO_APP90; CHECK-NEXT:    #APP91; CHECK-NEXT:    addi.w $t8, $zero, 192; CHECK-NEXT:    #NO_APP93; CHECK-NEXT:    #APP94; CHECK-NEXT:    addi.w $fp, $zero, 195; CHECK-NEXT:    #NO_APP96; CHECK-NEXT:    #APP97; CHECK-NEXT:    addi.w $s0, $zero, 198; CHECK-NEXT:    #NO_APP99; CHECK-NEXT:    #APP100; CHECK-NEXT:    addi.w $s1, $zero, 1101; CHECK-NEXT:    #NO_APP102; CHECK-NEXT:    #APP103; CHECK-NEXT:    addi.w $s2, $zero, 1104; CHECK-NEXT:    #NO_APP105; CHECK-NEXT:    #APP106; CHECK-NEXT:    addi.w $s3, $zero, 1107; CHECK-NEXT:    #NO_APP108; CHECK-NEXT:    #APP109; CHECK-NEXT:    addi.w $s4, $zero, 1110; CHECK-NEXT:    #NO_APP111; CHECK-NEXT:    #APP112; CHECK-NEXT:    addi.w $s5, $zero, 1113; CHECK-NEXT:    #NO_APP114; CHECK-NEXT:    #APP115; CHECK-NEXT:    addi.w $s6, $zero, 1116; CHECK-NEXT:    #NO_APP117; CHECK-NEXT:    #APP118; CHECK-NEXT:    addi.w $s7, $zero, 1119; CHECK-NEXT:    #NO_APP120; CHECK-NEXT:    #APP121; CHECK-NEXT:    addi.w $s8, $zero, 1122; CHECK-NEXT:    #NO_APP123; CHECK-NEXT:    beq $s7, $s8, .LBB0_1124; CHECK-NEXT:  # %bb.4:125; CHECK-NEXT:    st.w $t8, $sp, 0126; CHECK-NEXT:    pcalau12i $t8, %pc_hi20(.LBB0_5)127; CHECK-NEXT:    addi.w $t8, $t8, %pc_lo12(.LBB0_5)128; CHECK-NEXT:    jr $t8129; CHECK-NEXT:  .LBB0_1: # %iftrue130; CHECK-NEXT:    #APP131; CHECK-NEXT:    .space 536870912132; CHECK-NEXT:    #NO_APP133; CHECK-NEXT:    b .LBB0_3134; CHECK-NEXT:  .LBB0_5: # %iffalse135; CHECK-NEXT:    ld.w $t8, $sp, 0136; CHECK-NEXT:  # %bb.2: # %iffalse137; CHECK-NEXT:    #APP138; CHECK-NEXT:    # reg use $zero139; CHECK-NEXT:    #NO_APP140; CHECK-NEXT:    #APP141; CHECK-NEXT:    # reg use $ra142; CHECK-NEXT:    #NO_APP143; CHECK-NEXT:    #APP144; CHECK-NEXT:    # reg use $tp145; CHECK-NEXT:    #NO_APP146; CHECK-NEXT:    #APP147; CHECK-NEXT:    # reg use $a0148; CHECK-NEXT:    #NO_APP149; CHECK-NEXT:    #APP150; CHECK-NEXT:    # reg use $a1151; CHECK-NEXT:    #NO_APP152; CHECK-NEXT:    #APP153; CHECK-NEXT:    # reg use $a2154; CHECK-NEXT:    #NO_APP155; CHECK-NEXT:    #APP156; CHECK-NEXT:    # reg use $a3157; CHECK-NEXT:    #NO_APP158; CHECK-NEXT:    #APP159; CHECK-NEXT:    # reg use $a4160; CHECK-NEXT:    #NO_APP161; CHECK-NEXT:    #APP162; CHECK-NEXT:    # reg use $a5163; CHECK-NEXT:    #NO_APP164; CHECK-NEXT:    #APP165; CHECK-NEXT:    # reg use $a6166; CHECK-NEXT:    #NO_APP167; CHECK-NEXT:    #APP168; CHECK-NEXT:    # reg use $a7169; CHECK-NEXT:    #NO_APP170; CHECK-NEXT:    #APP171; CHECK-NEXT:    # reg use $t0172; CHECK-NEXT:    #NO_APP173; CHECK-NEXT:    #APP174; CHECK-NEXT:    # reg use $t1175; CHECK-NEXT:    #NO_APP176; CHECK-NEXT:    #APP177; CHECK-NEXT:    # reg use $t2178; CHECK-NEXT:    #NO_APP179; CHECK-NEXT:    #APP180; CHECK-NEXT:    # reg use $t3181; CHECK-NEXT:    #NO_APP182; CHECK-NEXT:    #APP183; CHECK-NEXT:    # reg use $t4184; CHECK-NEXT:    #NO_APP185; CHECK-NEXT:    #APP186; CHECK-NEXT:    # reg use $t5187; CHECK-NEXT:    #NO_APP188; CHECK-NEXT:    #APP189; CHECK-NEXT:    # reg use $t6190; CHECK-NEXT:    #NO_APP191; CHECK-NEXT:    #APP192; CHECK-NEXT:    # reg use $t7193; CHECK-NEXT:    #NO_APP194; CHECK-NEXT:    #APP195; CHECK-NEXT:    # reg use $t8196; CHECK-NEXT:    #NO_APP197; CHECK-NEXT:    #APP198; CHECK-NEXT:    # reg use $fp199; CHECK-NEXT:    #NO_APP200; CHECK-NEXT:    #APP201; CHECK-NEXT:    # reg use $s0202; CHECK-NEXT:    #NO_APP203; CHECK-NEXT:    #APP204; CHECK-NEXT:    # reg use $s1205; CHECK-NEXT:    #NO_APP206; CHECK-NEXT:    #APP207; CHECK-NEXT:    # reg use $s2208; CHECK-NEXT:    #NO_APP209; CHECK-NEXT:    #APP210; CHECK-NEXT:    # reg use $s3211; CHECK-NEXT:    #NO_APP212; CHECK-NEXT:    #APP213; CHECK-NEXT:    # reg use $s4214; CHECK-NEXT:    #NO_APP215; CHECK-NEXT:    #APP216; CHECK-NEXT:    # reg use $s5217; CHECK-NEXT:    #NO_APP218; CHECK-NEXT:    #APP219; CHECK-NEXT:    # reg use $s6220; CHECK-NEXT:    #NO_APP221; CHECK-NEXT:    #APP222; CHECK-NEXT:    # reg use $s7223; CHECK-NEXT:    #NO_APP224; CHECK-NEXT:    #APP225; CHECK-NEXT:    # reg use $s8226; CHECK-NEXT:    #NO_APP227; CHECK-NEXT:  .LBB0_3: # %iftrue228; CHECK-NEXT:    ld.w $s8, $sp, 4 # 4-byte Folded Reload229; CHECK-NEXT:    ld.w $s7, $sp, 8 # 4-byte Folded Reload230; CHECK-NEXT:    ld.w $s6, $sp, 12 # 4-byte Folded Reload231; CHECK-NEXT:    ld.w $s5, $sp, 16 # 4-byte Folded Reload232; CHECK-NEXT:    ld.w $s4, $sp, 20 # 4-byte Folded Reload233; CHECK-NEXT:    ld.w $s3, $sp, 24 # 4-byte Folded Reload234; CHECK-NEXT:    ld.w $s2, $sp, 28 # 4-byte Folded Reload235; CHECK-NEXT:    ld.w $s1, $sp, 32 # 4-byte Folded Reload236; CHECK-NEXT:    ld.w $s0, $sp, 36 # 4-byte Folded Reload237; CHECK-NEXT:    ld.w $fp, $sp, 40 # 4-byte Folded Reload238; CHECK-NEXT:    ld.w $ra, $sp, 44 # 4-byte Folded Reload239; CHECK-NEXT:    addi.w $sp, $sp, 48240; CHECK-NEXT:    ret241  %zero =  call i32 asm sideeffect "addi.w $$zero, $$zero, 1", "={r0}"()242  %ra =  call i32 asm sideeffect "addi.w $$ra, $$zero, 1", "={r1}"()243  %tp =  call i32 asm sideeffect "addi.w $$tp, $$zero, 1", "={r2}"()244  %a0 =  call i32 asm sideeffect "addi.w $$a0, $$zero, 1", "={r4}"()245  %a1 =  call i32 asm sideeffect "addi.w $$a1, $$zero, 1", "={r5}"()246  %a2 =  call i32 asm sideeffect "addi.w $$a2, $$zero, 1", "={r6}"()247  %a3 =  call i32 asm sideeffect "addi.w $$a3, $$zero, 1", "={r7}"()248  %a4 =  call i32 asm sideeffect "addi.w $$a4, $$zero, 1", "={r8}"()249  %a5 =  call i32 asm sideeffect "addi.w $$a5, $$zero, 1", "={r9}"()250  %a6 =  call i32 asm sideeffect "addi.w $$a6, $$zero, 1", "={r10}"()251  %a7 =  call i32 asm sideeffect "addi.w $$a7, $$zero, 1", "={r11}"()252  %t0 =  call i32 asm sideeffect "addi.w $$t0, $$zero, 1", "={r12}"()253  %t1 =  call i32 asm sideeffect "addi.w $$t1, $$zero, 1", "={r13}"()254  %t2 =  call i32 asm sideeffect "addi.w $$t2, $$zero, 1", "={r14}"()255  %t3 =  call i32 asm sideeffect "addi.w $$t3, $$zero, 1", "={r15}"()256  %t4 =  call i32 asm sideeffect "addi.w $$t4, $$zero, 1", "={r16}"()257  %t5 =  call i32 asm sideeffect "addi.w $$t5, $$zero, 1", "={r17}"()258  %t6 =  call i32 asm sideeffect "addi.w $$t6, $$zero, 1", "={r18}"()259  %t7 =  call i32 asm sideeffect "addi.w $$t7, $$zero, 1", "={r19}"()260  %t8 =  call i32 asm sideeffect "addi.w $$t8, $$zero, 1", "={r20}"()261  ;; r21 Reserved (Non-allocatable)262  %s9 =  call i32 asm sideeffect "addi.w $$s9, $$zero, 1", "={r22}"()263  %s0 =  call i32 asm sideeffect "addi.w $$s0, $$zero, 1", "={r23}"()264  %s1 =  call i32 asm sideeffect "addi.w $$s1, $$zero, 1", "={r24}"()265  %s2 =  call i32 asm sideeffect "addi.w $$s2, $$zero, 1", "={r25}"()266  %s3 =  call i32 asm sideeffect "addi.w $$s3, $$zero, 1", "={r26}"()267  %s4 =  call i32 asm sideeffect "addi.w $$s4, $$zero, 1", "={r27}"()268  %s5 =  call i32 asm sideeffect "addi.w $$s5, $$zero, 1", "={r28}"()269  %s6 =  call i32 asm sideeffect "addi.w $$s6, $$zero, 1", "={r29}"()270  %s7 =  call i32 asm sideeffect "addi.w $$s7, $$zero, 1", "={r30}"()271  %s8 =  call i32 asm sideeffect "addi.w $$s8, $$zero, 1", "={r31}"()272 273  %cmp = icmp eq i32 %s7, %s8274  br i1 %cmp, label %iftrue, label %iffalse275 276iftrue:277  call void asm sideeffect ".space 536870912", ""()278  ret void279 280iffalse:281  call void asm sideeffect "# reg use $0", "{r0}"(i32 %zero)282  call void asm sideeffect "# reg use $0", "{r1}"(i32 %ra)283  call void asm sideeffect "# reg use $0", "{r2}"(i32 %tp)284  call void asm sideeffect "# reg use $0", "{r4}"(i32 %a0)285  call void asm sideeffect "# reg use $0", "{r5}"(i32 %a1)286  call void asm sideeffect "# reg use $0", "{r6}"(i32 %a2)287  call void asm sideeffect "# reg use $0", "{r7}"(i32 %a3)288  call void asm sideeffect "# reg use $0", "{r8}"(i32 %a4)289  call void asm sideeffect "# reg use $0", "{r9}"(i32 %a5)290  call void asm sideeffect "# reg use $0", "{r10}"(i32 %a6)291  call void asm sideeffect "# reg use $0", "{r11}"(i32 %a7)292  call void asm sideeffect "# reg use $0", "{r12}"(i32 %t0)293  call void asm sideeffect "# reg use $0", "{r13}"(i32 %t1)294  call void asm sideeffect "# reg use $0", "{r14}"(i32 %t2)295  call void asm sideeffect "# reg use $0", "{r15}"(i32 %t3)296  call void asm sideeffect "# reg use $0", "{r16}"(i32 %t4)297  call void asm sideeffect "# reg use $0", "{r17}"(i32 %t5)298  call void asm sideeffect "# reg use $0", "{r18}"(i32 %t6)299  call void asm sideeffect "# reg use $0", "{r19}"(i32 %t7)300  call void asm sideeffect "# reg use $0", "{r20}"(i32 %t8)301  ;; r21 Reserved (Non-allocatable)302  call void asm sideeffect "# reg use $0", "{r22}"(i32 %s9)303  call void asm sideeffect "# reg use $0", "{r23}"(i32 %s0)304  call void asm sideeffect "# reg use $0", "{r24}"(i32 %s1)305  call void asm sideeffect "# reg use $0", "{r25}"(i32 %s2)306  call void asm sideeffect "# reg use $0", "{r26}"(i32 %s3)307  call void asm sideeffect "# reg use $0", "{r27}"(i32 %s4)308  call void asm sideeffect "# reg use $0", "{r28}"(i32 %s5)309  call void asm sideeffect "# reg use $0", "{r29}"(i32 %s6)310  call void asm sideeffect "# reg use $0", "{r30}"(i32 %s7)311  call void asm sideeffect "# reg use $0", "{r31}"(i32 %s8)312  ret void313}314