1 ; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=core-avx2 -mattr=+avx2 | FileCheck %s
7 define <4 x i32> @trunc4(<4 x i64> %A) nounwind {
8 %B = trunc <4 x i64> %A to <4 x i32>
17 define <8 x i16> @trunc8(<8 x i32> %A) nounwind {
18 %B = trunc <8 x i32> %A to <8 x i16>
26 define <4 x i64> @sext4(<4 x i32> %A) nounwind {
27 %B = sext <4 x i32> %A to <4 x i64>
35 define <8 x i32> @sext8(<8 x i16> %A) nounwind {
36 %B = sext <8 x i16> %A to <8 x i32>
44 define <4 x i64> @zext4(<4 x i32> %A) nounwind {
45 %B = zext <4 x i32> %A to <4 x i64>
53 define <8 x i32> @zext8(<8 x i16> %A) nounwind {
54 %B = zext <8 x i16> %A to <8 x i32>
57 ; CHECK: zext_8i8_8i32
61 define <8 x i32> @zext_8i8_8i32(<8 x i8> %A) nounwind {
62 %B = zext <8 x i8> %A to <8 x i32>
66 ; CHECK: load_sext_test1
67 ; CHECK: vpmovsxdq (%r{{[^,]*}}), %ymm{{.*}}
69 define <4 x i64> @load_sext_test1(<4 x i32> *%ptr) {
70 %X = load <4 x i32>* %ptr
71 %Y = sext <4 x i32> %X to <4 x i64>
75 ; CHECK: load_sext_test2
76 ; CHECK: vpmovsxbq (%r{{[^,]*}}), %ymm{{.*}}
78 define <4 x i64> @load_sext_test2(<4 x i8> *%ptr) {
79 %X = load <4 x i8>* %ptr
80 %Y = sext <4 x i8> %X to <4 x i64>
84 ; CHECK: load_sext_test3
85 ; CHECK: vpmovsxwq (%r{{[^,]*}}), %ymm{{.*}}
87 define <4 x i64> @load_sext_test3(<4 x i16> *%ptr) {
88 %X = load <4 x i16>* %ptr
89 %Y = sext <4 x i16> %X to <4 x i64>
93 ; CHECK: load_sext_test4
94 ; CHECK: vpmovsxwd (%r{{[^,]*}}), %ymm{{.*}}
96 define <8 x i32> @load_sext_test4(<8 x i16> *%ptr) {
97 %X = load <8 x i16>* %ptr
98 %Y = sext <8 x i16> %X to <8 x i32>
102 ; CHECK: load_sext_test5
103 ; CHECK: vpmovsxbd (%r{{[^,]*}}), %ymm{{.*}}
105 define <8 x i32> @load_sext_test5(<8 x i8> *%ptr) {
106 %X = load <8 x i8>* %ptr
107 %Y = sext <8 x i8> %X to <8 x i32>