This should always be signed chars, so use int8_t. This fixes a miscompile when
[llvm/stm8.git] / test / CodeGen / X86 / mmx-bitcast-to-i64.ll
blob8b1840abf61588e27ffd30245b8ebe25f9184aeb
1 ; RUN: llc < %s -march=x86-64 | grep movd | count 4
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
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
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
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
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)