1 ; RUN: llc < %s -march=x86-64 -mtriple=i686-pc-linux -enable-misched=false | FileCheck %s 2 ; RUN: llc < %s -march=x86-64 -mtriple=x86_64-pc-linux-gnux32 -enable-misched=false | FileCheck %s -check-prefix=X32ABI 3 4 declare void @bar(<2 x i64>* %n) 5 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 14 } 15 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 26 } 27 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 35 } 36