Special handling for MMX values being passed in either GPR64 or lower 64-bits of...
[oota-llvm.git] / test / CodeGen / X86 / mmx-arg-passing2.ll
1 ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin -mattr=+mmx,+sse2 | grep movq2dq
2 ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin -mattr=+mmx,+sse2 | grep movd | count 1
3 ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin -mattr=+mmx,+sse2 | grep movq | count 4
4
5 @g_v8qi = external global <8 x i8>
6
7 define void @t1() nounwind  {
8         %tmp3 = load <8 x i8>* @g_v8qi, align 8
9         %tmp4 = tail call i32 (...)* @pass_v8qi( <8 x i8> %tmp3 ) nounwind
10         ret void
11 }
12
13 define void @t2(<8 x i8> %v1, <8 x i8> %v2) nounwind  {
14        %tmp3 = add <8 x i8> %v1, %v2
15        %tmp4 = tail call i32 (...)* @pass_v8qi( <8 x i8> %tmp3 ) nounwind
16        ret void
17 }
18
19 define void @t3() nounwind  {
20         call void @pass_v1di( <1 x i64> zeroinitializer )
21         ret void
22 }
23
24 declare i32 @pass_v8qi(...)
25 declare void @pass_v1di(<1 x i64>)