Use Align for TFL::TransientStackAlignment
[llvm-core.git] / test / CodeGen / X86 / alloca-align-rounding.ll
blob7bc485eb238682b912701cb0e5c6ba8f144a605c
1 ; RUN: llc < %s -mtriple=x86_64-pc-linux -enable-misched=false | FileCheck %s
2 ; RUN: llc < %s -mtriple=x86_64-pc-linux-gnux32 -enable-misched=false | FileCheck %s -check-prefix=X32ABI
4 declare void @bar(<2 x i64>* %n)
6 define void @foo(i64 %h) {
7   %p = alloca <2 x i64>, i64 %h
8   call void @bar(<2 x i64>* %p)
9   ret void
10 ; CHECK-LABEL: foo
11 ; CHECK-NOT: andq $-32, %rax
12 ; X32ABI-LABEL: foo
13 ; X32ABI-NOT: andl $-32, %eax
16 define void @foo2(i64 %h) {
17   %p = alloca <2 x i64>, i64 %h, align 32
18   call void @bar(<2 x i64>* %p)
19   ret void
20 ; CHECK-LABEL: foo2
21 ; CHECK: andq $-32, %rsp
22 ; CHECK: andq $-32, %rax
23 ; X32ABI-LABEL: foo2
24 ; X32ABI: andl $-32, %esp
25 ; X32ABI: andl $-32, %eax
28 define void @foo3(i64 %h) {
29   %p = alloca <2 x i64>, i64 %h
30   ret void
31 ; CHECK-LABEL: foo3
32 ; CHECK: movq %rbp, %rsp
33 ; X32ABI-LABEL: foo3
34 ; X32ABI: movl %ebp, %esp