46 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -verify-machineinstrs -mtriple=aarch64-pc-windows-msvc %s -o - -global-isel -global-isel-abort=0 | FileCheck %s3 4; Make sure we correctly fall back to SelectionDAG isel for unsupported stack protectors.5 6define void @caller() sspreq {7; CHECK-LABEL: caller:8; CHECK: .seh_proc caller9; CHECK-NEXT: // %bb.0: // %entry10; CHECK-NEXT: sub sp, sp, #3211; CHECK-NEXT: .seh_stackalloc 3212; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill13; CHECK-NEXT: .seh_save_reg x30, 1614; CHECK-NEXT: .seh_endprologue15; CHECK-NEXT: adrp x8, __security_cookie16; CHECK-NEXT: add x0, sp, #417; CHECK-NEXT: ldr x8, [x8, :lo12:__security_cookie]18; CHECK-NEXT: str x8, [sp, #8]19; CHECK-NEXT: bl callee20; CHECK-NEXT: adrp x8, __security_cookie21; CHECK-NEXT: ldr x9, [sp, #8]22; CHECK-NEXT: ldr x8, [x8, :lo12:__security_cookie]23; CHECK-NEXT: cmp x8, x924; CHECK-NEXT: b.ne .LBB0_225; CHECK-NEXT: // %bb.1: // %entry26; CHECK-NEXT: .seh_startepilogue27; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload28; CHECK-NEXT: .seh_save_reg x30, 1629; CHECK-NEXT: add sp, sp, #3230; CHECK-NEXT: .seh_stackalloc 3231; CHECK-NEXT: .seh_endepilogue32; CHECK-NEXT: ret33; CHECK-NEXT: .LBB0_2: // %entry34; CHECK-NEXT: ldr x0, [sp, #8]35; CHECK-NEXT: bl __security_check_cookie36; CHECK-NEXT: brk #0x137; CHECK-NEXT: .seh_endfunclet38; CHECK-NEXT: .seh_endproc39entry:40 %x = alloca i32, align 441 call void @callee(ptr nonnull %x)42 ret void43}44 45declare void @callee(ptr)46