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