[RISCV] Add shrinkwrap test cases showing gaps in current impl
[llvm-project.git] / llvm / test / CodeGen / X86 / dynamic-allocas-VLAs-stack-align.ll
blob70ee7e5e3a6d53a1d2f435aac07b1440b54cee6f
1 ; RUN: llc < %s -stack-symbol-ordering=0 -mcpu=generic -stackrealign -mattr=+avx -mtriple=x86_64-apple-darwin10 | FileCheck %s
2 ; rdar://11496434
3 declare void @t1_helper(ptr)
4 declare void @t3_helper(ptr, ptr)
6 ; Test when forcing stack alignment
7 define i32 @t8() nounwind uwtable {
8 entry:
9   %a = alloca i32, align 4
10   call void @t1_helper(ptr %a) nounwind
11   %0 = load i32, ptr %a, align 4
12   %add = add nsw i32 %0, 13
13   ret i32 %add
15 ; CHECK: _t8
16 ; CHECK:      movq %rsp, %rbp
17 ; CHECK:      andq $-32, %rsp
18 ; CHECK-NEXT: subq $32, %rsp
19 ; CHECK:      movq %rbp, %rsp
20 ; CHECK:      popq %rbp
23 ; VLAs
24 define i32 @t9(i64 %sz) nounwind uwtable {
25 entry:
26   %a = alloca i32, align 4
27   %vla = alloca i32, i64 %sz, align 16
28   call void @t3_helper(ptr %a, ptr %vla) nounwind
29   %0 = load i32, ptr %a, align 4
30   %add = add nsw i32 %0, 13
31   ret i32 %add
33 ; CHECK: _t9
34 ; CHECK: pushq %rbp
35 ; CHECK: movq %rsp, %rbp
36 ; CHECK: pushq %rbx
37 ; CHECK: andq $-32, %rsp
38 ; CHECK: subq $32, %rsp
39 ; CHECK: movq %rsp, %rbx
41 ; CHECK: leaq -8(%rbp), %rsp
42 ; CHECK: popq %rbx
43 ; CHECK: popq %rbp
45 !llvm.module.flags = !{!0}
46 !0 = !{i32 2, !"override-stack-alignment", i32 32}