41 lines
		
	
	
		
			956 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			956 B
		
	
	
	
		
			LLVM
		
	
	
	
; RUN: llc -mtriple=aarch64-apple-ios %s -o - -aarch64-enable-nonlazybind | FileCheck %s
 | 
						|
; RUN: llc -mtriple=aarch64-apple-ios %s -o - | FileCheck %s --check-prefix=CHECK-NORMAL
 | 
						|
 | 
						|
define void @local() nonlazybind {
 | 
						|
  ret void
 | 
						|
}
 | 
						|
 | 
						|
declare void @nonlocal() nonlazybind
 | 
						|
 | 
						|
define void @test_laziness() {
 | 
						|
; CHECK-LABEL: test_laziness:
 | 
						|
 | 
						|
; CHECK: bl _local
 | 
						|
 | 
						|
; CHECK: adrp x[[TMP:[0-9]+]], _nonlocal@GOTPAGE
 | 
						|
; CHECK: ldr [[FUNC:x[0-9]+]], [x[[TMP]], _nonlocal@GOTPAGEOFF]
 | 
						|
; CHECK: blr [[FUNC]]
 | 
						|
 | 
						|
; CHECK-NORMAL-LABEL: test_laziness:
 | 
						|
; CHECK-NORMAL: bl _local
 | 
						|
; CHECK-NORMAL: bl _nonlocal
 | 
						|
 | 
						|
  call void @local()
 | 
						|
  call void @nonlocal()
 | 
						|
  ret void
 | 
						|
}
 | 
						|
 | 
						|
define void @test_laziness_tail() {
 | 
						|
; CHECK-LABEL: test_laziness_tail:
 | 
						|
 | 
						|
; CHECK: adrp x[[TMP:[0-9]+]], _nonlocal@GOTPAGE
 | 
						|
; CHECK: ldr [[FUNC:x[0-9]+]], [x[[TMP]], _nonlocal@GOTPAGEOFF]
 | 
						|
; CHECK: br [[FUNC]]
 | 
						|
 | 
						|
; CHECK-NORMAL-LABEL: test_laziness_tail:
 | 
						|
; CHECK-NORMAL: b _nonlocal
 | 
						|
 | 
						|
  tail call void @nonlocal()
 | 
						|
  ret void
 | 
						|
}
 |