brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.1 KiB · dc41f0f Raw
127 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=aarch64 -relocation-model=static < %s | FileCheck %s --check-prefixes=CHECK,STATIC3; RUN: llc -mtriple=aarch64 -relocation-model=pic < %s | FileCheck %s --check-prefixes=CHECK,PIC4 5@preemptable_var = dso_preemptable global i32 426define ptr @get_preemptable_var() nounwind {7; CHECK-LABEL: get_preemptable_var:8; CHECK:       // %bb.0:9; CHECK-NEXT:    adrp x0, :got:preemptable_var10; CHECK-NEXT:    ldr x0, [x0, :got_lo12:preemptable_var]11; CHECK-NEXT:    ret12  ret ptr @preemptable_var13}14 15@dsolocal_var = dso_local global i32 4216define ptr @get_dsolocal_var() nounwind {17; STATIC-LABEL: get_dsolocal_var:18; STATIC:       // %bb.0:19; STATIC-NEXT:    adrp x0, dsolocal_var20; STATIC-NEXT:    add x0, x0, :lo12:dsolocal_var21; STATIC-NEXT:    ret22;23; PIC-LABEL: get_dsolocal_var:24; PIC:       // %bb.0:25; PIC-NEXT:    adrp x0, .Ldsolocal_var$local26; PIC-NEXT:    add x0, x0, :lo12:.Ldsolocal_var$local27; PIC-NEXT:    ret28  ret ptr @dsolocal_var29}30 31@weak_dsolocal_var = weak dso_local global i32 4232define ptr @get_weak_dsolocal_var() nounwind {33; CHECK-LABEL: get_weak_dsolocal_var:34; CHECK:       // %bb.0:35; CHECK-NEXT:    adrp x0, weak_dsolocal_var36; CHECK-NEXT:    add x0, x0, :lo12:weak_dsolocal_var37; CHECK-NEXT:    ret38  ret ptr @weak_dsolocal_var39}40 41@hidden_var = hidden global i32 4242define ptr @get_hidden_var() nounwind {43; CHECK-LABEL: get_hidden_var:44; CHECK:       // %bb.0:45; CHECK-NEXT:    adrp x0, hidden_var46; CHECK-NEXT:    add x0, x0, :lo12:hidden_var47; CHECK-NEXT:    ret48  ret ptr @hidden_var49}50 51@protected_var = protected global i32 4252define ptr @get_protected_var() nounwind {53; CHECK-LABEL: get_protected_var:54; CHECK:       // %bb.0:55; CHECK-NEXT:    adrp x0, protected_var56; CHECK-NEXT:    add x0, x0, :lo12:protected_var57; CHECK-NEXT:    ret58  ret ptr @protected_var59}60 61define dso_preemptable ptr @preemptable_func() nounwind {62; CHECK-LABEL: preemptable_func:63; CHECK:       // %bb.0:64; CHECK-NEXT:    adrp x0, :got:preemptable_func65; CHECK-NEXT:    ldr x0, [x0, :got_lo12:preemptable_func]66; CHECK-NEXT:    ret67  ret ptr @preemptable_func68}69 70define dso_local ptr @dsolocal_func() nounwind {71; STATIC-LABEL: dsolocal_func:72; STATIC:       // %bb.0:73; STATIC-NEXT:    adrp x0, dsolocal_func74; STATIC-NEXT:    add x0, x0, :lo12:dsolocal_func75; STATIC-NEXT:    ret76;77; PIC-LABEL: dsolocal_func:78; PIC:       .Ldsolocal_func$local:79; PIC-NEXT:    .type .Ldsolocal_func$local,@function80; PIC-NEXT:  // %bb.0:81; PIC-NEXT:    adrp x0, .Ldsolocal_func$local82; PIC-NEXT:    add x0, x0, :lo12:.Ldsolocal_func$local83; PIC-NEXT:    ret84  ret ptr @dsolocal_func85}86; UTC-ARGS: --disable87; PIC: [[END_LABEL:.Lfunc_end.+]]:88; PIC-NEXT: .size	dsolocal_func, [[END_LABEL]]-dsolocal_func89; PIC-NEXT: .size	.Ldsolocal_func$local, [[END_LABEL]]-dsolocal_func90; UTC-ARGS: --enable91 92define weak dso_local ptr @weak_dsolocal_func() nounwind {93; CHECK-LABEL: weak_dsolocal_func:94; CHECK:       // %bb.0:95; CHECK-NEXT:    adrp x0, weak_dsolocal_func96; CHECK-NEXT:    add x0, x0, :lo12:weak_dsolocal_func97; CHECK-NEXT:    ret98  ret ptr @weak_dsolocal_func99}100 101;; bl .Ldsolocal_func$local either resolves to a constant at assembly time102;; or produces a relocation which can potentially cause a veneer.103define dso_local void @call_dsolocal_func() nounwind {104; STATIC-LABEL: call_dsolocal_func:105; STATIC:       // %bb.0:106; STATIC-NEXT:    str x30, [sp, #-16]! // 8-byte Folded Spill107; STATIC-NEXT:    bl dsolocal_func108; STATIC-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload109; STATIC-NEXT:    ret110;111; PIC-LABEL: call_dsolocal_func:112; PIC:       .Lcall_dsolocal_func$local:113; PIC-NEXT:    .type .Lcall_dsolocal_func$local,@function114; PIC-NEXT:  // %bb.0:115; PIC-NEXT:    str x30, [sp, #-16]! // 8-byte Folded Spill116; PIC-NEXT:    bl .Ldsolocal_func$local117; PIC-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload118; PIC-NEXT:    ret119  call ptr @dsolocal_func()120  ret void121}122; UTC-ARGS: --disable123; PIC: [[END_LABEL:.Lfunc_end.+]]:124; PIC-NEXT: .size	call_dsolocal_func, [[END_LABEL]]-call_dsolocal_func125; PIC-NEXT: .size	.Lcall_dsolocal_func$local, [[END_LABEL]]-call_dsolocal_func126; UTC-ARGS: --enable127