brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · 128d6e5 Raw
79 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc --mtriple=loongarch32 -mattr=+d < %s | FileCheck %s --check-prefix=LA323; RUN: llc --mtriple=loongarch64 -mattr=+d < %s | FileCheck %s --check-prefix=LA644 5declare ptr @llvm.frameaddress(i32)6declare ptr @llvm.returnaddress(i32)7 8define ptr @test_frameaddress_0() nounwind {9; LA32-LABEL: test_frameaddress_0:10; LA32:       # %bb.0:11; LA32-NEXT:    addi.w $sp, $sp, -1612; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill13; LA32-NEXT:    st.w $fp, $sp, 8 # 4-byte Folded Spill14; LA32-NEXT:    addi.w $fp, $sp, 1615; LA32-NEXT:    move $a0, $fp16; LA32-NEXT:    ld.w $fp, $sp, 8 # 4-byte Folded Reload17; LA32-NEXT:    ld.w $ra, $sp, 12 # 4-byte Folded Reload18; LA32-NEXT:    addi.w $sp, $sp, 1619; LA32-NEXT:    ret20;21; LA64-LABEL: test_frameaddress_0:22; LA64:       # %bb.0:23; LA64-NEXT:    addi.d $sp, $sp, -1624; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill25; LA64-NEXT:    st.d $fp, $sp, 0 # 8-byte Folded Spill26; LA64-NEXT:    addi.d $fp, $sp, 1627; LA64-NEXT:    move $a0, $fp28; LA64-NEXT:    ld.d $fp, $sp, 0 # 8-byte Folded Reload29; LA64-NEXT:    ld.d $ra, $sp, 8 # 8-byte Folded Reload30; LA64-NEXT:    addi.d $sp, $sp, 1631; LA64-NEXT:    ret32  %1 = call ptr @llvm.frameaddress(i32 0)33  ret ptr %134}35 36define ptr @test_frameaddress_2() nounwind {37; LA32-LABEL: test_frameaddress_2:38; LA32:       # %bb.0:39; LA32-NEXT:    addi.w $sp, $sp, -1640; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill41; LA32-NEXT:    st.w $fp, $sp, 8 # 4-byte Folded Spill42; LA32-NEXT:    addi.w $fp, $sp, 1643; LA32-NEXT:    ld.w $a0, $fp, -844; LA32-NEXT:    ld.w $a0, $a0, -845; LA32-NEXT:    ld.w $fp, $sp, 8 # 4-byte Folded Reload46; LA32-NEXT:    ld.w $ra, $sp, 12 # 4-byte Folded Reload47; LA32-NEXT:    addi.w $sp, $sp, 1648; LA32-NEXT:    ret49;50; LA64-LABEL: test_frameaddress_2:51; LA64:       # %bb.0:52; LA64-NEXT:    addi.d $sp, $sp, -1653; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill54; LA64-NEXT:    st.d $fp, $sp, 0 # 8-byte Folded Spill55; LA64-NEXT:    addi.d $fp, $sp, 1656; LA64-NEXT:    ld.d $a0, $fp, -1657; LA64-NEXT:    ld.d $a0, $a0, -1658; LA64-NEXT:    ld.d $fp, $sp, 0 # 8-byte Folded Reload59; LA64-NEXT:    ld.d $ra, $sp, 8 # 8-byte Folded Reload60; LA64-NEXT:    addi.d $sp, $sp, 1661; LA64-NEXT:    ret62  %1 = call ptr @llvm.frameaddress(i32 2)63  ret ptr %164}65 66define ptr @test_returnaddress_0() nounwind {67; LA32-LABEL: test_returnaddress_0:68; LA32:       # %bb.0:69; LA32-NEXT:    move $a0, $ra70; LA32-NEXT:    ret71;72; LA64-LABEL: test_returnaddress_0:73; LA64:       # %bb.0:74; LA64-NEXT:    move $a0, $ra75; LA64-NEXT:    ret76  %1 = call ptr @llvm.returnaddress(i32 0)77  ret ptr %178}79