diff options
author | Evan Cheng <evan.cheng@apple.com> | 2008-04-25 19:11:04 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2008-04-25 19:11:04 +0000 |
commit | 2aea0b4370973e5265db7a2e3099995a1103236a (patch) | |
tree | c8ec3d96aa6dc87dcd10768db3c452b11a6546c7 /test/CodeGen | |
parent | 30a71f593f2dc9af3ef7fa13720496d5c9d6fc1a (diff) | |
download | external_llvm-2aea0b4370973e5265db7a2e3099995a1103236a.zip external_llvm-2aea0b4370973e5265db7a2e3099995a1103236a.tar.gz external_llvm-2aea0b4370973e5265db7a2e3099995a1103236a.tar.bz2 |
Special handling for MMX values being passed in either GPR64 or lower 64-bits of XMM registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50289 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen')
-rw-r--r-- | test/CodeGen/X86/mmx-arg-passing2.ll | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/test/CodeGen/X86/mmx-arg-passing2.ll b/test/CodeGen/X86/mmx-arg-passing2.ll new file mode 100644 index 0000000..c30ca1b --- /dev/null +++ b/test/CodeGen/X86/mmx-arg-passing2.ll @@ -0,0 +1,25 @@ +; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin -mattr=+mmx,+sse2 | grep movq2dq +; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin -mattr=+mmx,+sse2 | grep movd | count 1 +; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin -mattr=+mmx,+sse2 | grep movq | count 4 + +@g_v8qi = external global <8 x i8> + +define void @t1() nounwind { + %tmp3 = load <8 x i8>* @g_v8qi, align 8 + %tmp4 = tail call i32 (...)* @pass_v8qi( <8 x i8> %tmp3 ) nounwind + ret void +} + +define void @t2(<8 x i8> %v1, <8 x i8> %v2) nounwind { + %tmp3 = add <8 x i8> %v1, %v2 + %tmp4 = tail call i32 (...)* @pass_v8qi( <8 x i8> %tmp3 ) nounwind + ret void +} + +define void @t3() nounwind { + call void @pass_v1di( <1 x i64> zeroinitializer ) + ret void +} + +declare i32 @pass_v8qi(...) +declare void @pass_v1di(<1 x i64>) |