brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · b52afc6 Raw
73 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=x86_64 -relocation-model=static < %s | \3; RUN:   FileCheck --check-prefixes=COMMON,STATIC %s4; RUN: llc -mtriple=x86_64 -relocation-model=pic < %s | \5; RUN:   FileCheck --check-prefixes=COMMON,CHECK %s6 7;; Test that we use the local alias for dso_local functions in inline assembly.8 9@gv0 = dso_local global i32 010@gv1 = dso_preemptable global i32 111 12define i64 @test_var() nounwind {13; STATIC-LABEL: test_var:14; STATIC:       # %bb.0: # %entry15; STATIC-NEXT:    movq gv1@GOTPCREL(%rip), %rax16; STATIC-NEXT:    #APP17; STATIC-NEXT:    movq gv0(%rip), %rax18; STATIC-NEXT:    movq (%rax), %rax19; STATIC-NEXT:    #NO_APP20; STATIC-NEXT:    retq21;22; CHECK-LABEL: test_var:23; CHECK:       # %bb.0: # %entry24; CHECK-NEXT:    movq gv1@GOTPCREL(%rip), %rax25; CHECK-NEXT:    #APP26; CHECK-NEXT:    movq .Lgv0$local(%rip), %rax27; CHECK-NEXT:    movq (%rax), %rax28; CHECK-NEXT:    #NO_APP29; CHECK-NEXT:    retq30entry:31  %0 = tail call i64 asm "movq $1, $0\0Amovq $2, $0", "=r,*m,*m"(ptr elementtype(i32) @gv0, ptr elementtype(i32) @gv1)32  ret i64 %033}34 35define dso_local void @fun0() nounwind {36; COMMON-LABEL: fun0:37; COMMON:       # %bb.0: # %entry38; COMMON-NEXT:    retq39entry:40  ret void41}42 43define dso_preemptable void @fun1() nounwind {44; COMMON-LABEL: fun1:45; COMMON:       # %bb.0: # %entry46; COMMON-NEXT:    retq47entry:48  ret void49}50 51define i64 @test_fun() nounwind {52; STATIC-LABEL: test_fun:53; STATIC:       # %bb.0: # %entry54; STATIC-NEXT:    movq fun1@GOTPCREL(%rip), %rax55; STATIC-NEXT:    #APP56; STATIC-NEXT:    movq fun0(%rip), %rax57; STATIC-NEXT:    movq (%rax), %rax58; STATIC-NEXT:    #NO_APP59; STATIC-NEXT:    retq60;61; CHECK-LABEL: test_fun:62; CHECK:       # %bb.0: # %entry63; CHECK-NEXT:    movq fun1@GOTPCREL(%rip), %rax64; CHECK-NEXT:    #APP65; CHECK-NEXT:    movq .Lfun0$local(%rip), %rax66; CHECK-NEXT:    movq (%rax), %rax67; CHECK-NEXT:    #NO_APP68; CHECK-NEXT:    retq69entry:70  %0 = tail call i64 asm "movq $1, $0\0Amovq $2, $0", "=r,*m,*m"(ptr elementtype(void ()) nonnull @fun0, ptr elementtype(void ()) nonnull @fun1)71  ret i64 %072}73