brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.8 KiB · 1718bbb Raw
91 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=csky -verify-machineinstrs -csky-no-aliases -mattr=+2e3 < %s \3; RUN:   | FileCheck %s4 5declare void @notdead(ptr)6declare ptr @llvm.frameaddress(i32)7declare ptr @llvm.returnaddress(i32)8 9define ptr @test_frameaddress_0() nounwind {10; CHECK-LABEL: test_frameaddress_0:11; CHECK:       # %bb.0:12; CHECK-NEXT:    subi16 sp, sp, 413; CHECK-NEXT:    st32.w l4, (sp, 0) # 4-byte Folded Spill14; CHECK-NEXT:    mov16 l4, sp15; CHECK-NEXT:    mov16 a0, l416; CHECK-NEXT:    mov16 sp, l417; CHECK-NEXT:    ld32.w l4, (sp, 0) # 4-byte Folded Reload18; CHECK-NEXT:    addi16 sp, sp, 419; CHECK-NEXT:    rts1620  %1 = call ptr @llvm.frameaddress(i32 0)21  ret ptr %122}23 24define ptr @test_frameaddress_2() nounwind {25; CHECK-LABEL: test_frameaddress_2:26; CHECK:       # %bb.0:27; CHECK-NEXT:    subi16 sp, sp, 428; CHECK-NEXT:    st32.w l4, (sp, 0) # 4-byte Folded Spill29; CHECK-NEXT:    mov16 l4, sp30; CHECK-NEXT:    ld32.w a0, (l4, 0)31; CHECK-NEXT:    ld16.w a0, (a0, 0)32; CHECK-NEXT:    mov16 sp, l433; CHECK-NEXT:    ld32.w l4, (sp, 0) # 4-byte Folded Reload34; CHECK-NEXT:    addi16 sp, sp, 435; CHECK-NEXT:    rts1636  %1 = call ptr @llvm.frameaddress(i32 2)37  ret ptr %138}39 40define ptr @test_frameaddress_3_alloca() nounwind {41; CHECK-LABEL: test_frameaddress_3_alloca:42; CHECK:       # %bb.0:43; CHECK-NEXT:    subi16 sp, sp, 844; CHECK-NEXT:    st32.w lr, (sp, 4) # 4-byte Folded Spill45; CHECK-NEXT:    st32.w l4, (sp, 0) # 4-byte Folded Spill46; CHECK-NEXT:    mov16 l4, sp47; CHECK-NEXT:    subi16 sp, sp, 10048; CHECK-NEXT:    movi16 a0, 049; CHECK-NEXT:    addu16 a0, sp50; CHECK-NEXT:    jsri32 [.LCPI2_0]51; CHECK-NEXT:    ld32.w a0, (l4, 0)52; CHECK-NEXT:    ld16.w a0, (a0, 0)53; CHECK-NEXT:    ld16.w a0, (a0, 0)54; CHECK-NEXT:    mov16 sp, l455; CHECK-NEXT:    ld32.w l4, (sp, 0) # 4-byte Folded Reload56; CHECK-NEXT:    ld32.w lr, (sp, 4) # 4-byte Folded Reload57; CHECK-NEXT:    addi16 sp, sp, 858; CHECK-NEXT:    rts1659  %1 = alloca [100 x i8]60  %2 = bitcast ptr %1 to ptr61  call void @notdead(ptr %2)62  %3 = call ptr @llvm.frameaddress(i32 3)63  ret ptr %364}65 66define ptr @test_returnaddress_0() nounwind {67; CHECK-LABEL: test_returnaddress_0:68; CHECK:       # %bb.0:69; CHECK-NEXT:    mov16 a0, lr70; CHECK-NEXT:    rts1671  %1 = call ptr @llvm.returnaddress(i32 0)72  ret ptr %173}74 75define ptr @test_returnaddress_2() nounwind {76; CHECK-LABEL: test_returnaddress_2:77; CHECK:       # %bb.0:78; CHECK-NEXT:    subi16 sp, sp, 479; CHECK-NEXT:    st32.w l4, (sp, 0) # 4-byte Folded Spill80; CHECK-NEXT:    mov16 l4, sp81; CHECK-NEXT:    ld32.w a0, (l4, 0)82; CHECK-NEXT:    ld16.w a0, (a0, 0)83; CHECK-NEXT:    ld16.w a0, (a0, 4)84; CHECK-NEXT:    mov16 sp, l485; CHECK-NEXT:    ld32.w l4, (sp, 0) # 4-byte Folded Reload86; CHECK-NEXT:    addi16 sp, sp, 487; CHECK-NEXT:    rts1688  %1 = call ptr @llvm.returnaddress(i32 2)89  ret ptr %190}91