This should always be signed chars, so use int8_t. This fixes a miscompile when
[llvm/stm8.git] / test / CodeGen / X86 / vec_ext_inreg.ll
blob02b16a79f4a09b8c6da89a0060c68644ad357c93
1 ; RUN: llc < %s -march=x86-64 
3 define <8 x i32> @a(<8 x i32> %a) nounwind {
4   %b = trunc <8 x i32> %a to <8 x i16>
5   %c = sext <8 x i16> %b to <8 x i32>
6   ret <8 x i32> %c
9 define <3 x i32> @b(<3 x i32> %a) nounwind {
10   %b = trunc <3 x i32> %a to <3 x i16>
11   %c = sext <3 x i16> %b to <3 x i32>
12   ret <3 x i32> %c
15 define <1 x i32> @c(<1 x i32> %a) nounwind {
16   %b = trunc <1 x i32> %a to <1 x i16>
17   %c = sext <1 x i16> %b to <1 x i32>
18   ret <1 x i32> %c
21 define <8 x i32> @d(<8 x i32> %a) nounwind {
22   %b = trunc <8 x i32> %a to <8 x i16>
23   %c = zext <8 x i16> %b to <8 x i32>
24   ret <8 x i32> %c
27 define <3 x i32> @e(<3 x i32> %a) nounwind {
28   %b = trunc <3 x i32> %a to <3 x i16>
29   %c = zext <3 x i16> %b to <3 x i32>
30   ret <3 x i32> %c
33 define <1 x i32> @f(<1 x i32> %a) nounwind {
34   %b = trunc <1 x i32> %a to <1 x i16>
35   %c = zext <1 x i16> %b to <1 x i32>
36   ret <1 x i32> %c