Home | History | Annotate | Download | only in X86
      1 ; RUN: llc < %s -march=x86-64 
      2 
      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
      7 }
      8 
      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
     13 }
     14 
     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
     19 }
     20 
     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
     25 }
     26 
     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
     31 }
     32 
     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
     37 }
     38