Fixed some bugs in register stack pass.
[llvm/zpu.git] / test / CodeGen / X86 / vec_ext_inreg.ll
blob8d2a3c31aedfd2e14f44ead49b82c6242796a272
1 ; RUN: llc < %s -march=x86-64 
2 ; RUN: llc < %s -march=x86-64 -disable-mmx
4 define <8 x i32> @a(<8 x i32> %a) nounwind {
5   %b = trunc <8 x i32> %a to <8 x i16>
6   %c = sext <8 x i16> %b to <8 x i32>
7   ret <8 x i32> %c
10 define <3 x i32> @b(<3 x i32> %a) nounwind {
11   %b = trunc <3 x i32> %a to <3 x i16>
12   %c = sext <3 x i16> %b to <3 x i32>
13   ret <3 x i32> %c
16 define <1 x i32> @c(<1 x i32> %a) nounwind {
17   %b = trunc <1 x i32> %a to <1 x i16>
18   %c = sext <1 x i16> %b to <1 x i32>
19   ret <1 x i32> %c
22 define <8 x i32> @d(<8 x i32> %a) nounwind {
23   %b = trunc <8 x i32> %a to <8 x i16>
24   %c = zext <8 x i16> %b to <8 x i32>
25   ret <8 x i32> %c
28 define <3 x i32> @e(<3 x i32> %a) nounwind {
29   %b = trunc <3 x i32> %a to <3 x i16>
30   %c = zext <3 x i16> %b to <3 x i32>
31   ret <3 x i32> %c
34 define <1 x i32> @f(<1 x i32> %a) nounwind {
35   %b = trunc <1 x i32> %a to <1 x i16>
36   %c = zext <1 x i16> %b to <1 x i32>
37   ret <1 x i32> %c