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
4define void @local() nonlazybind {
5  ret void
6}
7
8declare void @nonlocal() nonlazybind
9
10define 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; CHECK-NORMAL: bl _nonlocal
22
23  call void @local()
24  call void @nonlocal()
25  ret void
26}
27
28define 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