Add MMX arithmetic testcase.
authorBill Wendling <isanbard@gmail.com>
Thu, 8 Mar 2007 22:14:51 +0000 (22:14 +0000)
committerBill Wendling <isanbard@gmail.com>
Thu, 8 Mar 2007 22:14:51 +0000 (22:14 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35032 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGen/X86/mmx-arith.ll [new file with mode: 0644]

diff --git a/test/CodeGen/X86/mmx-arith.ll b/test/CodeGen/X86/mmx-arith.ll
new file mode 100644 (file)
index 0000000..3911be6
--- /dev/null
@@ -0,0 +1,35 @@
+; RUN: llvm-as < %s | llc -march=x86 -mattr=+mmx
+
+;; A basic sanity check to make sure that MMX arithmetic actually compiles.
+
+define void @foo(<2 x i32>* %A, <2 x i32>* %B) {
+entry:
+       %tmp1 = load <2 x i32>* %A              ; <<2 x i32>> [#uses=1]
+       %tmp3 = load <2 x i32>* %B              ; <<2 x i32>> [#uses=1]
+       %tmp4 = add <2 x i32> %tmp1, %tmp3              ; <<2 x i32>> [#uses=1]
+       store <2 x i32> %tmp4, <2 x i32>* %A
+       tail call void @llvm.x86.mmx.emms( )
+       ret void
+}
+
+define void @bar(<4 x i16>* %A, <4 x i16>* %B) {
+entry:
+       %tmp1 = load <4 x i16>* %A              ; <<4 x i16>> [#uses=1]
+       %tmp3 = load <4 x i16>* %B              ; <<4 x i16>> [#uses=1]
+       %tmp4 = add <4 x i16> %tmp1, %tmp3              ; <<4 x i16>> [#uses=1]
+       store <4 x i16> %tmp4, <4 x i16>* %A
+       tail call void @llvm.x86.mmx.emms( )
+       ret void
+}
+
+define void @baz(<8 x i8>* %A, <8 x i8>* %B) {
+entry:
+       %tmp1 = load <8 x i8>* %A               ; <<8 x i8>> [#uses=1]
+       %tmp3 = load <8 x i8>* %B               ; <<8 x i8>> [#uses=1]
+       %tmp4 = add <8 x i8> %tmp1, %tmp3               ; <<8 x i8>> [#uses=1]
+       store <8 x i8> %tmp4, <8 x i8>* %A
+       tail call void @llvm.x86.mmx.emms( )
+       ret void
+}
+
+declare void @llvm.x86.mmx.emms()