1 ; RUN: llc < %s -mtriple=aarch64-windows | FileCheck %s
3 define dso_local void @func() {
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)
11 declare dso_local void @other(ptr noundef)
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
29 define dso_local void @func2() {
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)
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