Revert 93158. It's breaking quite a few x86_64 tests.
[oota-llvm.git] / test / CodeGen / X86 / vec_cast.ll
1 ; RUN: llc < %s -march=x86-64 
2 ; RUN: llc < %s -march=x86-64 -disable-mmx
3
4 define <8 x i32> @a(<8 x i16> %a) nounwind {
5   %c = sext <8 x i16> %a to <8 x i32>
6   ret <8 x i32> %c
7 }
8
9 define <3 x i32> @b(<3 x i16> %a) nounwind {
10   %c = sext <3 x i16> %a to <3 x i32>
11   ret <3 x i32> %c
12 }
13
14 define <1 x i32> @c(<1 x i16> %a) nounwind {
15   %c = sext <1 x i16> %a to <1 x i32>
16   ret <1 x i32> %c
17 }
18
19 define <8 x i32> @d(<8 x i16> %a) nounwind {
20   %c = zext <8 x i16> %a to <8 x i32>
21   ret <8 x i32> %c
22 }
23
24 define <3 x i32> @e(<3 x i16> %a) nounwind {
25   %c = zext <3 x i16> %a to <3 x i32>
26   ret <3 x i32> %c
27 }
28
29 define <1 x i32> @f(<1 x i16> %a) nounwind {
30   %c = zext <1 x i16> %a to <1 x i32>
31   ret <1 x i32> %c
32 }
33
34 ; TODO: Legalize doesn't yet handle this.
35 ;define <8 x i16> @g(<8 x i32> %a) nounwind {
36 ;  %c = trunc <8 x i32> %a to <8 x i16>
37 ;  ret <8 x i16> %c
38 ;}
39
40 define <3 x i16> @h(<3 x i32> %a) nounwind {
41   %c = trunc <3 x i32> %a to <3 x i16>
42   ret <3 x i16> %c
43 }
44
45 define <1 x i16> @i(<1 x i32> %a) nounwind {
46   %c = trunc <1 x i32> %a to <1 x i16>
47   ret <1 x i16> %c
48 }