1 ; RUN: llc -mtriple=aarch64-apple-ios %s -o - -aarch64-enable-nonlazybind | FileCheck %s 2 ; RUN: llc -mtriple=aarch64-apple-ios %s -o - | FileCheck %s --check-prefix=CHECK-NORMAL 3 4 define void @local() nonlazybind { 5 ret void 6 } 7 8 declare void @nonlocal() nonlazybind 9 10 define void @test_laziness() { 11 ; CHECK-LABEL: test_laziness: 12 13 ; CHECK: bl _local 14 15 ; CHECK: adrp x[[TMP:[0-9]+]], _nonlocal@GOTPAGE 16 ; CHECK: ldr [[FUNC:x[0-9]+]], [x[[TMP]], _nonlocal@GOTPAGEOFF] 17 ; CHECK: blr [[FUNC]] 18 19 ; CHECK-NORMAL-LABEL: test_laziness: 20 ; CHECK-NORMAL: bl _local 21 ; CHEKC-NORMAL: bl _nonlocal 22 23 call void @local() 24 call void @nonlocal() 25 ret void 26 } 27 28 define void @test_laziness_tail() { 29 ; CHECK-LABEL: test_laziness_tail: 30 31 ; CHECK: adrp x[[TMP:[0-9]+]], _nonlocal@GOTPAGE 32 ; CHECK: ldr [[FUNC:x[0-9]+]], [x[[TMP]], _nonlocal@GOTPAGEOFF] 33 ; CHECK: br [[FUNC]] 34 35 ; CHECK-NORMAL-LABEL: test_laziness_tail: 36 ; CHECK-NORMAL: b _nonlocal 37 38 tail call void @nonlocal() 39 ret void 40 } 41