1; RUN: llc -mtriple aarch64-windows -filetype asm -o - < %s | FileCheck %s 2; RUN: llc -mtriple aarch64-windows -filetype asm -o - -fast-isel %s | FileCheck %s 3; RUN: llc -mtriple aarch64-windows -filetype asm -o - -global-isel -global-isel-abort=0 %s | FileCheck %s 4 5define void @func() { 6; CHECK-LABEL: func: 7; CHECK: str x30, [sp, #-16]! 8; CHECK-NEXT: adrp x8, .refptr.weakfunc 9; CHECK-NEXT: ldr x8, [x8, .refptr.weakfunc] 10; CHECK-NEXT: cbz x8, .LBB0_2 11; CHECK-NEXT: ; %bb.1: 12; CHECK-NEXT: blr x8 13; CHECK-NEXT: .LBB0_2: 14; CHECK-NEXT: ldr x30, [sp], #16 15; CHECK-NEXT: ret 16 17 br i1 icmp ne (void ()* @weakfunc, void ()* null), label %1, label %2 18 191: 20 call void @weakfunc() 21 br label %2 22 232: 24 ret void 25} 26 27declare extern_weak void @weakfunc() 28