[x86] Clean up a bunch of vector shuffle tests with my script. Notably,
[oota-llvm.git] / test / CodeGen / X86 / mmx-bitcast-to-i64.ll
1 ; RUN: llc < %s -march=x86-64 | grep movd | count 4
2
3 define i64 @foo(x86_mmx* %p) {
4   %t = load x86_mmx* %p
5   %u = tail call x86_mmx @llvm.x86.mmx.padd.q(x86_mmx %t, x86_mmx %t)
6   %s = bitcast x86_mmx %u to i64
7   ret i64 %s
8 }
9 define i64 @goo(x86_mmx* %p) {
10   %t = load x86_mmx* %p
11   %u = tail call x86_mmx @llvm.x86.mmx.padd.d(x86_mmx %t, x86_mmx %t)
12   %s = bitcast x86_mmx %u to i64
13   ret i64 %s
14 }
15 define i64 @hoo(x86_mmx* %p) {
16   %t = load x86_mmx* %p
17   %u = tail call x86_mmx @llvm.x86.mmx.padd.w(x86_mmx %t, x86_mmx %t)
18   %s = bitcast x86_mmx %u to i64
19   ret i64 %s
20 }
21 define i64 @ioo(x86_mmx* %p) {
22   %t = load x86_mmx* %p
23   %u = tail call x86_mmx @llvm.x86.mmx.padd.b(x86_mmx %t, x86_mmx %t)
24   %s = bitcast x86_mmx %u to i64
25   ret i64 %s
26 }
27
28 declare x86_mmx @llvm.x86.mmx.padd.b(x86_mmx, x86_mmx)
29 declare x86_mmx @llvm.x86.mmx.padd.w(x86_mmx, x86_mmx)
30 declare x86_mmx @llvm.x86.mmx.padd.d(x86_mmx, x86_mmx)
31 declare x86_mmx @llvm.x86.mmx.padd.q(x86_mmx, x86_mmx)