brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · 2cf0f8b Raw
49 lines · plain
1; RUN: llc -mtriple=aarch64-pc-windows-msvc < %s | FileCheck %s --check-prefix=CHECK2 3define dso_local void @normal_call() local_unnamed_addr section "nc_sect" {4entry:5  call void @a()6  call void @a()7  ret void8}9; CHECK-LABEL:  normal_call:10; CHECK:        adrp    [[ADRPREG:x[0-9]+]], __imp_a11; CHECK-NEXT:   ldr     [[LDRREG:x[0-9]+]], [[[ADRPREG]], :lo12:__imp_a]12; CHECK-NEXT:   .Limpcall0:13; CHECK-NEXT:   blr     [[LDRREG]]14; CHECK-NEXT:   .Limpcall1:15; CHECK-NEXT:   blr     [[LDRREG]]16 17define dso_local void @tail_call() local_unnamed_addr section "tc_sect" {18entry:19  tail call void @b()20  ret void21}22; CHECK-LABEL:  tail_call:23; CHECK:        adrp    [[ADRPREG:x[0-9]+]], __imp_b24; CHECK-NEXT:   ldr     [[LDRREG:x[0-9]+]], [[[ADRPREG]], :lo12:__imp_b]25; CHECK-NEXT:   .Limpcall2:26; CHECK-NEXT:   br      [[LDRREG]]27 28declare dllimport void @a() local_unnamed_addr29declare dllimport void @b() local_unnamed_addr30 31; CHECK-LABEL  .section   .impcall,"yi"32; CHECK-NEXT   .asciz  "Imp_Call_V1"33; CHECK-NEXT   .word   3234; CHECK-NEXT   .secnum nc_sect35; CHECK-NEXT   .word   1936; CHECK-NEXT   .secoffset      .Limpcall037; CHECK-NEXT   .symidx __imp_a38; CHECK-NEXT   .word   1939; CHECK-NEXT   .secoffset      .Limpcall140; CHECK-NEXT   .symidx __imp_a41; CHECK-NEXT   .word   2042; CHECK-NEXT   .secnum tc_sect43; CHECK-NEXT   .word   1944; CHECK-NEXT   .secoffset      .Limpcall245; CHECK-NEXT   .symidx __imp_b46 47!llvm.module.flags = !{!0}48!0 = !{i32 1, !"import-call-optimization", i32 1}49