[ORC] Add std::tuple support to SimplePackedSerialization.
[llvm-project.git] / llvm / test / CodeGen / X86 / dynamic-allocas-VLAs-stack-align.ll
blob2299cf604f9fec5a902ac811ba10f3c563921f37
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(i32*)
4 declare void @t3_helper(i32*, i32*)
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(i32* %a) nounwind
11   %0 = load i32, i32* %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(i32* %a, i32* %vla) nounwind
29   %0 = load i32, i32* %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}