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-LABEL: zext_16i8_16i16:
70 define <16 x i16> @zext_16i8_16i16(<16 x i8> %z) {
71 %t = zext <16 x i8> %z to <16 x i16>
75 ; CHECK-LABEL: sext_16i8_16i16:
79 define <16 x i16> @sext_16i8_16i16(<16 x i8> %z) {
80 %t = sext <16 x i8> %z to <16 x i16>
84 ; CHECK-LABEL: trunc_16i16_16i8:
89 define <16 x i8> @trunc_16i16_16i8(<16 x i16> %z) {
90 %t = trunc <16 x i16> %z to <16 x i8>
94 ; CHECK: load_sext_test1
95 ; CHECK: vpmovsxdq (%r{{[^,]*}}), %ymm{{.*}}
97 define <4 x i64> @load_sext_test1(<4 x i32> *%ptr) {
98 %X = load <4 x i32>* %ptr
99 %Y = sext <4 x i32> %X to <4 x i64>
103 ; CHECK: load_sext_test2
104 ; CHECK: vpmovsxbq (%r{{[^,]*}}), %ymm{{.*}}
106 define <4 x i64> @load_sext_test2(<4 x i8> *%ptr) {
107 %X = load <4 x i8>* %ptr
108 %Y = sext <4 x i8> %X to <4 x i64>
112 ; CHECK: load_sext_test3
113 ; CHECK: vpmovsxwq (%r{{[^,]*}}), %ymm{{.*}}
115 define <4 x i64> @load_sext_test3(<4 x i16> *%ptr) {
116 %X = load <4 x i16>* %ptr
117 %Y = sext <4 x i16> %X to <4 x i64>
121 ; CHECK: load_sext_test4
122 ; CHECK: vpmovsxwd (%r{{[^,]*}}), %ymm{{.*}}
124 define <8 x i32> @load_sext_test4(<8 x i16> *%ptr) {
125 %X = load <8 x i16>* %ptr
126 %Y = sext <8 x i16> %X to <8 x i32>
130 ; CHECK: load_sext_test5
131 ; CHECK: vpmovsxbd (%r{{[^,]*}}), %ymm{{.*}}
133 define <8 x i32> @load_sext_test5(<8 x i8> *%ptr) {
134 %X = load <8 x i8>* %ptr
135 %Y = sext <8 x i8> %X to <8 x i32>