1; RUN: llc < %s -mtriple=aarch64-windows | FileCheck %s 2 3define dso_local void @func() { 4entry: 5 %buf = alloca [8192 x i8], align 32 6 %arraydecay = getelementptr inbounds [8192 x i8], ptr %buf, i64 0, i64 0 7 call void @other(ptr noundef %arraydecay) 8 ret void 9} 10 11declare dso_local void @other(ptr noundef) 12 13; CHECK-LABEL: func: 14; CHECK-NEXT: .seh_proc func 15; CHECK-NEXT: // %bb.0: 16; CHECK-NEXT: str x28, [sp, #-32]! 17; CHECK-NEXT: .seh_save_reg_x x28, 32 18; CHECK-NEXT: stp x29, x30, [sp, #8] 19; CHECK-NEXT: .seh_save_fplr 8 20; CHECK-NEXT: add x29, sp, #8 21; CHECK-NEXT: .seh_add_fp 8 22; CHECK-NEXT: .seh_endprologue 23; CHECK-NEXT: mov x15, #513 24; CHECK-NEXT: bl __chkstk 25; CHECK-NEXT: sub sp, sp, x15, lsl #4 26; CHECK-NEXT: add x15, sp, #16 27; CHECK-NEXT: and sp, x15, #0xffffffffffffffe0 28 29define dso_local void @func2() { 30entry: 31 %buf = alloca [8192 x i8], align 8192 32 %arraydecay = getelementptr inbounds [8192 x i8], ptr %buf, i64 0, i64 0 33 call void @other(ptr noundef %arraydecay) 34 ret void 35} 36 37; CHECK-LABEL: func2: 38; CHECK-NEXT: .seh_proc func2 39; CHECK-NEXT: // %bb.0: 40; CHECK-NEXT: str x28, [sp, #-32]! 41; CHECK-NEXT: .seh_save_reg_x x28, 32 42; CHECK-NEXT: stp x29, x30, [sp, #8] 43; CHECK-NEXT: .seh_save_fplr 8 44; CHECK-NEXT: add x29, sp, #8 45; CHECK-NEXT: .seh_add_fp 8 46; CHECK-NEXT: .seh_endprologue 47; CHECK-NEXT: mov x15, #1533 48; CHECK-NEXT: bl __chkstk 49; CHECK-NEXT: sub sp, sp, x15, lsl #4 50; CHECK-NEXT: mov x16, #8176 51; CHECK-NEXT: add x15, sp, x16 52; CHECK-NEXT: and sp, x15, #0xffffffffffffe000 53