brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.6 KiB · 96159e5 Raw
288 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc --mtriple=loongarch64 -mattr=+d,+lsx --verify-machineinstrs < %s | FileCheck %s3define void @eliminate_frame_index(<16 x i8> %a) nounwind {4; CHECK-LABEL: eliminate_frame_index:5; CHECK:       # %bb.0:6; CHECK-NEXT:    addi.d $sp, $sp, -2407; CHECK-NEXT:    st.d $ra, $sp, 232 # 8-byte Folded Spill8; CHECK-NEXT:    st.d $fp, $sp, 224 # 8-byte Folded Spill9; CHECK-NEXT:    st.d $s0, $sp, 216 # 8-byte Folded Spill10; CHECK-NEXT:    st.d $s1, $sp, 208 # 8-byte Folded Spill11; CHECK-NEXT:    st.d $s2, $sp, 200 # 8-byte Folded Spill12; CHECK-NEXT:    st.d $s3, $sp, 192 # 8-byte Folded Spill13; CHECK-NEXT:    st.d $s4, $sp, 184 # 8-byte Folded Spill14; CHECK-NEXT:    st.d $s5, $sp, 176 # 8-byte Folded Spill15; CHECK-NEXT:    st.d $s6, $sp, 168 # 8-byte Folded Spill16; CHECK-NEXT:    st.d $s7, $sp, 160 # 8-byte Folded Spill17; CHECK-NEXT:    st.d $s8, $sp, 152 # 8-byte Folded Spill18; CHECK-NEXT:    #APP19; CHECK-NEXT:    addi.d $zero, $zero, 120; CHECK-NEXT:    #NO_APP21; CHECK-NEXT:    #APP22; CHECK-NEXT:    addi.d $ra, $zero, 123; CHECK-NEXT:    #NO_APP24; CHECK-NEXT:    #APP25; CHECK-NEXT:    addi.d $tp, $zero, 126; CHECK-NEXT:    #NO_APP27; CHECK-NEXT:    #APP28; CHECK-NEXT:    addi.d $a0, $zero, 129; CHECK-NEXT:    #NO_APP30; CHECK-NEXT:    #APP31; CHECK-NEXT:    addi.d $a1, $zero, 132; CHECK-NEXT:    #NO_APP33; CHECK-NEXT:    #APP34; CHECK-NEXT:    addi.d $a2, $zero, 135; CHECK-NEXT:    #NO_APP36; CHECK-NEXT:    #APP37; CHECK-NEXT:    addi.d $a3, $zero, 138; CHECK-NEXT:    #NO_APP39; CHECK-NEXT:    #APP40; CHECK-NEXT:    addi.d $a4, $zero, 141; CHECK-NEXT:    #NO_APP42; CHECK-NEXT:    #APP43; CHECK-NEXT:    addi.d $a5, $zero, 144; CHECK-NEXT:    #NO_APP45; CHECK-NEXT:    #APP46; CHECK-NEXT:    addi.d $a6, $zero, 147; CHECK-NEXT:    #NO_APP48; CHECK-NEXT:    #APP49; CHECK-NEXT:    addi.d $a7, $zero, 150; CHECK-NEXT:    #NO_APP51; CHECK-NEXT:    #APP52; CHECK-NEXT:    addi.d $t0, $zero, 153; CHECK-NEXT:    #NO_APP54; CHECK-NEXT:    #APP55; CHECK-NEXT:    addi.d $t1, $zero, 156; CHECK-NEXT:    #NO_APP57; CHECK-NEXT:    #APP58; CHECK-NEXT:    addi.d $t2, $zero, 159; CHECK-NEXT:    #NO_APP60; CHECK-NEXT:    #APP61; CHECK-NEXT:    addi.d $t3, $zero, 162; CHECK-NEXT:    #NO_APP63; CHECK-NEXT:    #APP64; CHECK-NEXT:    addi.d $t4, $zero, 165; CHECK-NEXT:    #NO_APP66; CHECK-NEXT:    #APP67; CHECK-NEXT:    addi.d $t5, $zero, 168; CHECK-NEXT:    #NO_APP69; CHECK-NEXT:    #APP70; CHECK-NEXT:    addi.d $t6, $zero, 171; CHECK-NEXT:    #NO_APP72; CHECK-NEXT:    #APP73; CHECK-NEXT:    addi.d $t7, $zero, 174; CHECK-NEXT:    #NO_APP75; CHECK-NEXT:    #APP76; CHECK-NEXT:    addi.d $t8, $zero, 177; CHECK-NEXT:    #NO_APP78; CHECK-NEXT:    #APP79; CHECK-NEXT:    addi.d $fp, $zero, 180; CHECK-NEXT:    #NO_APP81; CHECK-NEXT:    #APP82; CHECK-NEXT:    addi.d $s0, $zero, 183; CHECK-NEXT:    #NO_APP84; CHECK-NEXT:    #APP85; CHECK-NEXT:    addi.d $s1, $zero, 186; CHECK-NEXT:    #NO_APP87; CHECK-NEXT:    #APP88; CHECK-NEXT:    addi.d $s2, $zero, 189; CHECK-NEXT:    #NO_APP90; CHECK-NEXT:    #APP91; CHECK-NEXT:    addi.d $s3, $zero, 192; CHECK-NEXT:    #NO_APP93; CHECK-NEXT:    #APP94; CHECK-NEXT:    addi.d $s4, $zero, 195; CHECK-NEXT:    #NO_APP96; CHECK-NEXT:    #APP97; CHECK-NEXT:    addi.d $s5, $zero, 198; CHECK-NEXT:    #NO_APP99; CHECK-NEXT:    #APP100; CHECK-NEXT:    addi.d $s6, $zero, 1101; CHECK-NEXT:    #NO_APP102; CHECK-NEXT:    #APP103; CHECK-NEXT:    addi.d $s7, $zero, 1104; CHECK-NEXT:    #NO_APP105; CHECK-NEXT:    #APP106; CHECK-NEXT:    addi.d $s8, $zero, 1107; CHECK-NEXT:    #NO_APP108; CHECK-NEXT:    st.d $a0, $sp, 0 # 8-byte Folded Spill109; CHECK-NEXT:    addi.d $a0, $sp, 136110; CHECK-NEXT:    vstelm.b $vr0, $a0, 0, 0111; CHECK-NEXT:    ld.d $a0, $sp, 0 # 8-byte Folded Reload112; CHECK-NEXT:    #APP113; CHECK-NEXT:    # reg use $zero114; CHECK-NEXT:    #NO_APP115; CHECK-NEXT:    #APP116; CHECK-NEXT:    # reg use $ra117; CHECK-NEXT:    #NO_APP118; CHECK-NEXT:    #APP119; CHECK-NEXT:    # reg use $tp120; CHECK-NEXT:    #NO_APP121; CHECK-NEXT:    #APP122; CHECK-NEXT:    # reg use $a0123; CHECK-NEXT:    #NO_APP124; CHECK-NEXT:    #APP125; CHECK-NEXT:    # reg use $a1126; CHECK-NEXT:    #NO_APP127; CHECK-NEXT:    #APP128; CHECK-NEXT:    # reg use $a2129; CHECK-NEXT:    #NO_APP130; CHECK-NEXT:    #APP131; CHECK-NEXT:    # reg use $a3132; CHECK-NEXT:    #NO_APP133; CHECK-NEXT:    #APP134; CHECK-NEXT:    # reg use $a4135; CHECK-NEXT:    #NO_APP136; CHECK-NEXT:    #APP137; CHECK-NEXT:    # reg use $a5138; CHECK-NEXT:    #NO_APP139; CHECK-NEXT:    #APP140; CHECK-NEXT:    # reg use $a6141; CHECK-NEXT:    #NO_APP142; CHECK-NEXT:    #APP143; CHECK-NEXT:    # reg use $a7144; CHECK-NEXT:    #NO_APP145; CHECK-NEXT:    #APP146; CHECK-NEXT:    # reg use $t0147; CHECK-NEXT:    #NO_APP148; CHECK-NEXT:    #APP149; CHECK-NEXT:    # reg use $t1150; CHECK-NEXT:    #NO_APP151; CHECK-NEXT:    #APP152; CHECK-NEXT:    # reg use $t2153; CHECK-NEXT:    #NO_APP154; CHECK-NEXT:    #APP155; CHECK-NEXT:    # reg use $t3156; CHECK-NEXT:    #NO_APP157; CHECK-NEXT:    #APP158; CHECK-NEXT:    # reg use $t4159; CHECK-NEXT:    #NO_APP160; CHECK-NEXT:    #APP161; CHECK-NEXT:    # reg use $t5162; CHECK-NEXT:    #NO_APP163; CHECK-NEXT:    #APP164; CHECK-NEXT:    # reg use $t6165; CHECK-NEXT:    #NO_APP166; CHECK-NEXT:    #APP167; CHECK-NEXT:    # reg use $t7168; CHECK-NEXT:    #NO_APP169; CHECK-NEXT:    #APP170; CHECK-NEXT:    # reg use $t8171; CHECK-NEXT:    #NO_APP172; CHECK-NEXT:    #APP173; CHECK-NEXT:    # reg use $fp174; CHECK-NEXT:    #NO_APP175; CHECK-NEXT:    #APP176; CHECK-NEXT:    # reg use $s0177; CHECK-NEXT:    #NO_APP178; CHECK-NEXT:    #APP179; CHECK-NEXT:    # reg use $s1180; CHECK-NEXT:    #NO_APP181; CHECK-NEXT:    #APP182; CHECK-NEXT:    # reg use $s2183; CHECK-NEXT:    #NO_APP184; CHECK-NEXT:    #APP185; CHECK-NEXT:    # reg use $s3186; CHECK-NEXT:    #NO_APP187; CHECK-NEXT:    #APP188; CHECK-NEXT:    # reg use $s4189; CHECK-NEXT:    #NO_APP190; CHECK-NEXT:    #APP191; CHECK-NEXT:    # reg use $s5192; CHECK-NEXT:    #NO_APP193; CHECK-NEXT:    #APP194; CHECK-NEXT:    # reg use $s6195; CHECK-NEXT:    #NO_APP196; CHECK-NEXT:    #APP197; CHECK-NEXT:    # reg use $s7198; CHECK-NEXT:    #NO_APP199; CHECK-NEXT:    #APP200; CHECK-NEXT:    # reg use $s8201; CHECK-NEXT:    #NO_APP202; CHECK-NEXT:    ld.d $s8, $sp, 152 # 8-byte Folded Reload203; CHECK-NEXT:    ld.d $s7, $sp, 160 # 8-byte Folded Reload204; CHECK-NEXT:    ld.d $s6, $sp, 168 # 8-byte Folded Reload205; CHECK-NEXT:    ld.d $s5, $sp, 176 # 8-byte Folded Reload206; CHECK-NEXT:    ld.d $s4, $sp, 184 # 8-byte Folded Reload207; CHECK-NEXT:    ld.d $s3, $sp, 192 # 8-byte Folded Reload208; CHECK-NEXT:    ld.d $s2, $sp, 200 # 8-byte Folded Reload209; CHECK-NEXT:    ld.d $s1, $sp, 208 # 8-byte Folded Reload210; CHECK-NEXT:    ld.d $s0, $sp, 216 # 8-byte Folded Reload211; CHECK-NEXT:    ld.d $fp, $sp, 224 # 8-byte Folded Reload212; CHECK-NEXT:    ld.d $ra, $sp, 232 # 8-byte Folded Reload213; CHECK-NEXT:    addi.d $sp, $sp, 240214; CHECK-NEXT:    ret215  %s = alloca [16 x i8]216  %ss = alloca [128 x i8]217 218  %zero =  call i64 asm sideeffect "addi.d $$zero, $$zero, 1", "={r0}"()219  %ra =  call i64 asm sideeffect "addi.d $$ra, $$zero, 1", "={r1}"()220  %tp =  call i64 asm sideeffect "addi.d $$tp, $$zero, 1", "={r2}"()221  %a0 =  call i64 asm sideeffect "addi.d $$a0, $$zero, 1", "={r4}"()222  %a1 =  call i64 asm sideeffect "addi.d $$a1, $$zero, 1", "={r5}"()223  %a2 =  call i64 asm sideeffect "addi.d $$a2, $$zero, 1", "={r6}"()224  %a3 =  call i64 asm sideeffect "addi.d $$a3, $$zero, 1", "={r7}"()225  %a4 =  call i64 asm sideeffect "addi.d $$a4, $$zero, 1", "={r8}"()226  %a5 =  call i64 asm sideeffect "addi.d $$a5, $$zero, 1", "={r9}"()227  %a6 =  call i64 asm sideeffect "addi.d $$a6, $$zero, 1", "={r10}"()228  %a7 =  call i64 asm sideeffect "addi.d $$a7, $$zero, 1", "={r11}"()229  %t0 =  call i64 asm sideeffect "addi.d $$t0, $$zero, 1", "={r12}"()230  %t1 =  call i64 asm sideeffect "addi.d $$t1, $$zero, 1", "={r13}"()231  %t2 =  call i64 asm sideeffect "addi.d $$t2, $$zero, 1", "={r14}"()232  %t3 =  call i64 asm sideeffect "addi.d $$t3, $$zero, 1", "={r15}"()233  %t4 =  call i64 asm sideeffect "addi.d $$t4, $$zero, 1", "={r16}"()234  %t5 =  call i64 asm sideeffect "addi.d $$t5, $$zero, 1", "={r17}"()235  %t6 =  call i64 asm sideeffect "addi.d $$t6, $$zero, 1", "={r18}"()236  %t7 =  call i64 asm sideeffect "addi.d $$t7, $$zero, 1", "={r19}"()237  %t8 =  call i64 asm sideeffect "addi.d $$t8, $$zero, 1", "={r20}"()238  ;; r21 Reserved (Non-allocatable)239  %s9 =  call i64 asm sideeffect "addi.d $$s9, $$zero, 1", "={r22}"()240  %s0 =  call i64 asm sideeffect "addi.d $$s0, $$zero, 1", "={r23}"()241  %s1 =  call i64 asm sideeffect "addi.d $$s1, $$zero, 1", "={r24}"()242  %s2 =  call i64 asm sideeffect "addi.d $$s2, $$zero, 1", "={r25}"()243  %s3 =  call i64 asm sideeffect "addi.d $$s3, $$zero, 1", "={r26}"()244  %s4 =  call i64 asm sideeffect "addi.d $$s4, $$zero, 1", "={r27}"()245  %s5 =  call i64 asm sideeffect "addi.d $$s5, $$zero, 1", "={r28}"()246  %s6 =  call i64 asm sideeffect "addi.d $$s6, $$zero, 1", "={r29}"()247  %s7 =  call i64 asm sideeffect "addi.d $$s7, $$zero, 1", "={r30}"()248  %s8 =  call i64 asm sideeffect "addi.d $$s8, $$zero, 1", "={r31}"()249 250  %e = extractelement <16 x i8> %a, i64 0251 252  store volatile i8 %e, ptr %s253 254  call void asm sideeffect "# reg use $0", "{r0}"(i64 %zero)255  call void asm sideeffect "# reg use $0", "{r1}"(i64 %ra)256  call void asm sideeffect "# reg use $0", "{r2}"(i64 %tp)257  call void asm sideeffect "# reg use $0", "{r4}"(i64 %a0)258  call void asm sideeffect "# reg use $0", "{r5}"(i64 %a1)259  call void asm sideeffect "# reg use $0", "{r6}"(i64 %a2)260  call void asm sideeffect "# reg use $0", "{r7}"(i64 %a3)261  call void asm sideeffect "# reg use $0", "{r8}"(i64 %a4)262  call void asm sideeffect "# reg use $0", "{r9}"(i64 %a5)263  call void asm sideeffect "# reg use $0", "{r10}"(i64 %a6)264  call void asm sideeffect "# reg use $0", "{r11}"(i64 %a7)265  call void asm sideeffect "# reg use $0", "{r12}"(i64 %t0)266  call void asm sideeffect "# reg use $0", "{r13}"(i64 %t1)267  call void asm sideeffect "# reg use $0", "{r14}"(i64 %t2)268  call void asm sideeffect "# reg use $0", "{r15}"(i64 %t3)269  call void asm sideeffect "# reg use $0", "{r16}"(i64 %t4)270  call void asm sideeffect "# reg use $0", "{r17}"(i64 %t5)271  call void asm sideeffect "# reg use $0", "{r18}"(i64 %t6)272  call void asm sideeffect "# reg use $0", "{r19}"(i64 %t7)273  call void asm sideeffect "# reg use $0", "{r20}"(i64 %t8)274  ;; r21 Reserved (Non-allocatable)275  call void asm sideeffect "# reg use $0", "{r22}"(i64 %s9)276  call void asm sideeffect "# reg use $0", "{r23}"(i64 %s0)277  call void asm sideeffect "# reg use $0", "{r24}"(i64 %s1)278  call void asm sideeffect "# reg use $0", "{r25}"(i64 %s2)279  call void asm sideeffect "# reg use $0", "{r26}"(i64 %s3)280  call void asm sideeffect "# reg use $0", "{r27}"(i64 %s4)281  call void asm sideeffect "# reg use $0", "{r28}"(i64 %s5)282  call void asm sideeffect "# reg use $0", "{r29}"(i64 %s6)283  call void asm sideeffect "# reg use $0", "{r30}"(i64 %s7)284  call void asm sideeffect "# reg use $0", "{r31}"(i64 %s8)285 286  ret void287}288