44 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -mtriple aarch64-windows -filetype asm -o - < %s | FileCheck %s3; RUN: llc -mtriple aarch64-windows -filetype asm -o - -fast-isel %s | FileCheck %s --check-prefix=FISEL4; RUN: llc -mtriple aarch64-windows -filetype asm -o - -global-isel -global-isel-abort=0 %s | FileCheck %s5 6define void @func() nounwind {7; CHECK-LABEL: func:8; CHECK: // %bb.0:9; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill10; CHECK-NEXT: adrp x8, .refptr.weakfunc11; CHECK-NEXT: ldr x8, [x8, :lo12:.refptr.weakfunc]12; CHECK-NEXT: cbz x8, .LBB0_213; CHECK-NEXT: // %bb.1:14; CHECK-NEXT: blr x815; CHECK-NEXT: .LBB0_2:16; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload17; CHECK-NEXT: ret18;19; FISEL-LABEL: func:20; FISEL: // %bb.0:21; FISEL-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill22; FISEL-NEXT: adrp x8, .refptr.weakfunc23; FISEL-NEXT: ldr x8, [x8, :lo12:.refptr.weakfunc]24; FISEL-NEXT: cbz x8, .LBB0_225; FISEL-NEXT: // %bb.1:26; FISEL-NEXT: adrp x8, .refptr.weakfunc27; FISEL-NEXT: ldr x8, [x8, :lo12:.refptr.weakfunc]28; FISEL-NEXT: blr x829; FISEL-NEXT: .LBB0_2:30; FISEL-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload31; FISEL-NEXT: ret32 %cmp = icmp ne ptr @weakfunc, null33 br i1 %cmp, label %1, label %234 351:36 call void @weakfunc()37 br label %238 392:40 ret void41}42 43declare extern_weak void @weakfunc()44