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