Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / X86 / alloca-align-rounding.ll
blob38866ceaca32c900410f505ea6feff786d1053fc
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(ptr %n)
6 define void @foo(i64 %h) {
7   %p = alloca <2 x i64>, i64 %h
8   call void @bar(ptr %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(ptr %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