Home | History | Annotate | Download | only in X86
      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