brintos

brintos / llvm-project-archived public Read only

0
0
Text · 11.4 KiB · a161fe9 Raw
314 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc --mtriple=loongarch64 -mattr=+d --filetype=obj --verify-machineinstrs < %s \3; RUN:   -o /dev/null 2>&14; RUN: llc --mtriple=loongarch64 -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.d $sp, $sp, -9610; CHECK-NEXT:    .cfi_def_cfa_offset 9611; CHECK-NEXT:    st.d $ra, $sp, 88 # 8-byte Folded Spill12; CHECK-NEXT:    st.d $fp, $sp, 80 # 8-byte Folded Spill13; CHECK-NEXT:    st.d $s0, $sp, 72 # 8-byte Folded Spill14; CHECK-NEXT:    st.d $s1, $sp, 64 # 8-byte Folded Spill15; CHECK-NEXT:    st.d $s2, $sp, 56 # 8-byte Folded Spill16; CHECK-NEXT:    st.d $s3, $sp, 48 # 8-byte Folded Spill17; CHECK-NEXT:    st.d $s4, $sp, 40 # 8-byte Folded Spill18; CHECK-NEXT:    st.d $s5, $sp, 32 # 8-byte Folded Spill19; CHECK-NEXT:    st.d $s6, $sp, 24 # 8-byte Folded Spill20; CHECK-NEXT:    st.d $s7, $sp, 16 # 8-byte Folded Spill21; CHECK-NEXT:    st.d $s8, $sp, 8 # 8-byte Folded Spill22; CHECK-NEXT:    .cfi_offset 1, -823; CHECK-NEXT:    .cfi_offset 22, -1624; CHECK-NEXT:    .cfi_offset 23, -2425; CHECK-NEXT:    .cfi_offset 24, -3226; CHECK-NEXT:    .cfi_offset 25, -4027; CHECK-NEXT:    .cfi_offset 26, -4828; CHECK-NEXT:    .cfi_offset 27, -5629; CHECK-NEXT:    .cfi_offset 28, -6430; CHECK-NEXT:    .cfi_offset 29, -7231; CHECK-NEXT:    .cfi_offset 30, -8032; CHECK-NEXT:    .cfi_offset 31, -8833; CHECK-NEXT:    #APP34; CHECK-NEXT:    addi.d $zero, $zero, 135; CHECK-NEXT:    #NO_APP36; CHECK-NEXT:    #APP37; CHECK-NEXT:    addi.d $ra, $zero, 138; CHECK-NEXT:    #NO_APP39; CHECK-NEXT:    #APP40; CHECK-NEXT:    addi.d $tp, $zero, 141; CHECK-NEXT:    #NO_APP42; CHECK-NEXT:    #APP43; CHECK-NEXT:    addi.d $a0, $zero, 144; CHECK-NEXT:    #NO_APP45; CHECK-NEXT:    #APP46; CHECK-NEXT:    addi.d $a1, $zero, 147; CHECK-NEXT:    #NO_APP48; CHECK-NEXT:    #APP49; CHECK-NEXT:    addi.d $a2, $zero, 150; CHECK-NEXT:    #NO_APP51; CHECK-NEXT:    #APP52; CHECK-NEXT:    addi.d $a3, $zero, 153; CHECK-NEXT:    #NO_APP54; CHECK-NEXT:    #APP55; CHECK-NEXT:    addi.d $a4, $zero, 156; CHECK-NEXT:    #NO_APP57; CHECK-NEXT:    #APP58; CHECK-NEXT:    addi.d $a5, $zero, 159; CHECK-NEXT:    #NO_APP60; CHECK-NEXT:    #APP61; CHECK-NEXT:    addi.d $a6, $zero, 162; CHECK-NEXT:    #NO_APP63; CHECK-NEXT:    #APP64; CHECK-NEXT:    addi.d $a7, $zero, 165; CHECK-NEXT:    #NO_APP66; CHECK-NEXT:    #APP67; CHECK-NEXT:    addi.d $t0, $zero, 168; CHECK-NEXT:    #NO_APP69; CHECK-NEXT:    #APP70; CHECK-NEXT:    addi.d $t1, $zero, 171; CHECK-NEXT:    #NO_APP72; CHECK-NEXT:    #APP73; CHECK-NEXT:    addi.d $t2, $zero, 174; CHECK-NEXT:    #NO_APP75; CHECK-NEXT:    #APP76; CHECK-NEXT:    addi.d $t3, $zero, 177; CHECK-NEXT:    #NO_APP78; CHECK-NEXT:    #APP79; CHECK-NEXT:    addi.d $t4, $zero, 180; CHECK-NEXT:    #NO_APP81; CHECK-NEXT:    #APP82; CHECK-NEXT:    addi.d $t5, $zero, 183; CHECK-NEXT:    #NO_APP84; CHECK-NEXT:    #APP85; CHECK-NEXT:    addi.d $t6, $zero, 186; CHECK-NEXT:    #NO_APP87; CHECK-NEXT:    #APP88; CHECK-NEXT:    addi.d $t7, $zero, 189; CHECK-NEXT:    #NO_APP90; CHECK-NEXT:    #APP91; CHECK-NEXT:    addi.d $t8, $zero, 192; CHECK-NEXT:    #NO_APP93; CHECK-NEXT:    #APP94; CHECK-NEXT:    addi.d $fp, $zero, 195; CHECK-NEXT:    #NO_APP96; CHECK-NEXT:    #APP97; CHECK-NEXT:    addi.d $s0, $zero, 198; CHECK-NEXT:    #NO_APP99; CHECK-NEXT:    #APP100; CHECK-NEXT:    addi.d $s1, $zero, 1101; CHECK-NEXT:    #NO_APP102; CHECK-NEXT:    #APP103; CHECK-NEXT:    addi.d $s2, $zero, 1104; CHECK-NEXT:    #NO_APP105; CHECK-NEXT:    #APP106; CHECK-NEXT:    addi.d $s3, $zero, 1107; CHECK-NEXT:    #NO_APP108; CHECK-NEXT:    #APP109; CHECK-NEXT:    addi.d $s4, $zero, 1110; CHECK-NEXT:    #NO_APP111; CHECK-NEXT:    #APP112; CHECK-NEXT:    addi.d $s5, $zero, 1113; CHECK-NEXT:    #NO_APP114; CHECK-NEXT:    #APP115; CHECK-NEXT:    addi.d $s6, $zero, 1116; CHECK-NEXT:    #NO_APP117; CHECK-NEXT:    #APP118; CHECK-NEXT:    addi.d $s7, $zero, 1119; CHECK-NEXT:    #NO_APP120; CHECK-NEXT:    #APP121; CHECK-NEXT:    addi.d $s8, $zero, 1122; CHECK-NEXT:    #NO_APP123; CHECK-NEXT:    beq $s7, $s8, .LBB0_1124; CHECK-NEXT:  # %bb.4:125; CHECK-NEXT:    st.d $t8, $sp, 0126; CHECK-NEXT:    pcalau12i $t8, %pc_hi20(.LBB0_5)127; CHECK-NEXT:    addi.d $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.d $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.d $s8, $sp, 8 # 8-byte Folded Reload229; CHECK-NEXT:    ld.d $s7, $sp, 16 # 8-byte Folded Reload230; CHECK-NEXT:    ld.d $s6, $sp, 24 # 8-byte Folded Reload231; CHECK-NEXT:    ld.d $s5, $sp, 32 # 8-byte Folded Reload232; CHECK-NEXT:    ld.d $s4, $sp, 40 # 8-byte Folded Reload233; CHECK-NEXT:    ld.d $s3, $sp, 48 # 8-byte Folded Reload234; CHECK-NEXT:    ld.d $s2, $sp, 56 # 8-byte Folded Reload235; CHECK-NEXT:    ld.d $s1, $sp, 64 # 8-byte Folded Reload236; CHECK-NEXT:    ld.d $s0, $sp, 72 # 8-byte Folded Reload237; CHECK-NEXT:    ld.d $fp, $sp, 80 # 8-byte Folded Reload238; CHECK-NEXT:    ld.d $ra, $sp, 88 # 8-byte Folded Reload239; CHECK-NEXT:    addi.d $sp, $sp, 96240; CHECK-NEXT:    ret241  %zero =  call i64 asm sideeffect "addi.d $$zero, $$zero, 1", "={r0}"()242  %ra =  call i64 asm sideeffect "addi.d $$ra, $$zero, 1", "={r1}"()243  %tp =  call i64 asm sideeffect "addi.d $$tp, $$zero, 1", "={r2}"()244  %a0 =  call i64 asm sideeffect "addi.d $$a0, $$zero, 1", "={r4}"()245  %a1 =  call i64 asm sideeffect "addi.d $$a1, $$zero, 1", "={r5}"()246  %a2 =  call i64 asm sideeffect "addi.d $$a2, $$zero, 1", "={r6}"()247  %a3 =  call i64 asm sideeffect "addi.d $$a3, $$zero, 1", "={r7}"()248  %a4 =  call i64 asm sideeffect "addi.d $$a4, $$zero, 1", "={r8}"()249  %a5 =  call i64 asm sideeffect "addi.d $$a5, $$zero, 1", "={r9}"()250  %a6 =  call i64 asm sideeffect "addi.d $$a6, $$zero, 1", "={r10}"()251  %a7 =  call i64 asm sideeffect "addi.d $$a7, $$zero, 1", "={r11}"()252  %t0 =  call i64 asm sideeffect "addi.d $$t0, $$zero, 1", "={r12}"()253  %t1 =  call i64 asm sideeffect "addi.d $$t1, $$zero, 1", "={r13}"()254  %t2 =  call i64 asm sideeffect "addi.d $$t2, $$zero, 1", "={r14}"()255  %t3 =  call i64 asm sideeffect "addi.d $$t3, $$zero, 1", "={r15}"()256  %t4 =  call i64 asm sideeffect "addi.d $$t4, $$zero, 1", "={r16}"()257  %t5 =  call i64 asm sideeffect "addi.d $$t5, $$zero, 1", "={r17}"()258  %t6 =  call i64 asm sideeffect "addi.d $$t6, $$zero, 1", "={r18}"()259  %t7 =  call i64 asm sideeffect "addi.d $$t7, $$zero, 1", "={r19}"()260  %t8 =  call i64 asm sideeffect "addi.d $$t8, $$zero, 1", "={r20}"()261  ;; r21 Reserved (Non-allocatable)262  %s9 =  call i64 asm sideeffect "addi.d $$s9, $$zero, 1", "={r22}"()263  %s0 =  call i64 asm sideeffect "addi.d $$s0, $$zero, 1", "={r23}"()264  %s1 =  call i64 asm sideeffect "addi.d $$s1, $$zero, 1", "={r24}"()265  %s2 =  call i64 asm sideeffect "addi.d $$s2, $$zero, 1", "={r25}"()266  %s3 =  call i64 asm sideeffect "addi.d $$s3, $$zero, 1", "={r26}"()267  %s4 =  call i64 asm sideeffect "addi.d $$s4, $$zero, 1", "={r27}"()268  %s5 =  call i64 asm sideeffect "addi.d $$s5, $$zero, 1", "={r28}"()269  %s6 =  call i64 asm sideeffect "addi.d $$s6, $$zero, 1", "={r29}"()270  %s7 =  call i64 asm sideeffect "addi.d $$s7, $$zero, 1", "={r30}"()271  %s8 =  call i64 asm sideeffect "addi.d $$s8, $$zero, 1", "={r31}"()272 273  %cmp = icmp eq i64 %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}"(i64 %zero)282  call void asm sideeffect "# reg use $0", "{r1}"(i64 %ra)283  call void asm sideeffect "# reg use $0", "{r2}"(i64 %tp)284  call void asm sideeffect "# reg use $0", "{r4}"(i64 %a0)285  call void asm sideeffect "# reg use $0", "{r5}"(i64 %a1)286  call void asm sideeffect "# reg use $0", "{r6}"(i64 %a2)287  call void asm sideeffect "# reg use $0", "{r7}"(i64 %a3)288  call void asm sideeffect "# reg use $0", "{r8}"(i64 %a4)289  call void asm sideeffect "# reg use $0", "{r9}"(i64 %a5)290  call void asm sideeffect "# reg use $0", "{r10}"(i64 %a6)291  call void asm sideeffect "# reg use $0", "{r11}"(i64 %a7)292  call void asm sideeffect "# reg use $0", "{r12}"(i64 %t0)293  call void asm sideeffect "# reg use $0", "{r13}"(i64 %t1)294  call void asm sideeffect "# reg use $0", "{r14}"(i64 %t2)295  call void asm sideeffect "# reg use $0", "{r15}"(i64 %t3)296  call void asm sideeffect "# reg use $0", "{r16}"(i64 %t4)297  call void asm sideeffect "# reg use $0", "{r17}"(i64 %t5)298  call void asm sideeffect "# reg use $0", "{r18}"(i64 %t6)299  call void asm sideeffect "# reg use $0", "{r19}"(i64 %t7)300  call void asm sideeffect "# reg use $0", "{r20}"(i64 %t8)301  ;; r21 Reserved (Non-allocatable)302  call void asm sideeffect "# reg use $0", "{r22}"(i64 %s9)303  call void asm sideeffect "# reg use $0", "{r23}"(i64 %s0)304  call void asm sideeffect "# reg use $0", "{r24}"(i64 %s1)305  call void asm sideeffect "# reg use $0", "{r25}"(i64 %s2)306  call void asm sideeffect "# reg use $0", "{r26}"(i64 %s3)307  call void asm sideeffect "# reg use $0", "{r27}"(i64 %s4)308  call void asm sideeffect "# reg use $0", "{r28}"(i64 %s5)309  call void asm sideeffect "# reg use $0", "{r29}"(i64 %s6)310  call void asm sideeffect "# reg use $0", "{r30}"(i64 %s7)311  call void asm sideeffect "# reg use $0", "{r31}"(i64 %s8)312  ret void313}314