[ExecutionEngine] Fix r227228 tests on Windows
[oota-llvm.git] / test / CodeGen / X86 / mmx-movq2dq.ll
1 ; RUN: llc < %s -march=x86 -mattr=+mmx,+sse2 | FileCheck %s -check-prefix=X86-32
2 ; RUN: llc < %s -march=x86-64 -mattr=+mmx,+sse2 | FileCheck %s -check-prefix=X86-64
3
4 ; X86-32-LABEL: test0
5 ; X86-64-LABEL: test0
6 define i32 @test0(<1 x i64>* %v4) {
7   %v5 = load <1 x i64>* %v4, align 8
8   %v12 = bitcast <1 x i64> %v5 to <4 x i16>
9   %v13 = bitcast <4 x i16> %v12 to x86_mmx
10   ; X86-32: pshufw  $238
11   ; X86-32-NOT: movq
12   ; X86-32-NOT: movsd
13   ; X86-32: movq2dq
14   ; X86-64: pshufw  $238
15   ; X86-64-NOT: movq
16   ; X86-64-NOT: pshufd
17   ; X86-64: movq2dq
18   ; X86-64-NEXT: movd
19   %v14 = tail call x86_mmx @llvm.x86.sse.pshuf.w(x86_mmx %v13, i8 -18)
20   %v15 = bitcast x86_mmx %v14 to <4 x i16>
21   %v16 = bitcast <4 x i16> %v15 to <1 x i64>
22   %v17 = extractelement <1 x i64> %v16, i32 0
23   %v18 = bitcast i64 %v17 to <2 x i32>
24   %v19 = extractelement <2 x i32> %v18, i32 0
25   %v20 = add i32 %v19, 32
26   ret i32 %v20
27 }
28
29 declare x86_mmx @llvm.x86.sse.pshuf.w(x86_mmx, i8)