xref: /aosp_15_r20/external/clang/test/CodeGen/avx512bw-builtins.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512bw -emit-llvm -o - -Werror | FileCheck %s
2*67e74705SXin Li // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512bw -fno-signed-char -emit-llvm -o - -Werror | FileCheck %s
3*67e74705SXin Li 
4*67e74705SXin Li // Don't include mm_malloc.h, it's system specific.
5*67e74705SXin Li #define __MM_MALLOC_H
6*67e74705SXin Li 
7*67e74705SXin Li #include <immintrin.h>
8*67e74705SXin Li 
test_mm512_cmpeq_epi8_mask(__m512i __a,__m512i __b)9*67e74705SXin Li __mmask64 test_mm512_cmpeq_epi8_mask(__m512i __a, __m512i __b) {
10*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpeq_epi8_mask
11*67e74705SXin Li   // CHECK: icmp eq <64 x i8> %{{.*}}, %{{.*}}
12*67e74705SXin Li   return (__mmask64)_mm512_cmpeq_epi8_mask(__a, __b);
13*67e74705SXin Li }
14*67e74705SXin Li 
test_mm512_mask_cmpeq_epi8_mask(__mmask64 __u,__m512i __a,__m512i __b)15*67e74705SXin Li __mmask64 test_mm512_mask_cmpeq_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
16*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpeq_epi8_mask
17*67e74705SXin Li   // CHECK: icmp eq <64 x i8> %{{.*}}, %{{.*}}
18*67e74705SXin Li   // CHECK: and <64 x i1> %{{.*}}, %{{.*}}
19*67e74705SXin Li   return (__mmask64)_mm512_mask_cmpeq_epi8_mask(__u, __a, __b);
20*67e74705SXin Li }
21*67e74705SXin Li 
test_mm512_cmpeq_epi16_mask(__m512i __a,__m512i __b)22*67e74705SXin Li __mmask32 test_mm512_cmpeq_epi16_mask(__m512i __a, __m512i __b) {
23*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpeq_epi16_mask
24*67e74705SXin Li   // CHECK: icmp eq <32 x i16> %{{.*}}, %{{.*}}
25*67e74705SXin Li   return (__mmask32)_mm512_cmpeq_epi16_mask(__a, __b);
26*67e74705SXin Li }
27*67e74705SXin Li 
test_mm512_mask_cmpeq_epi16_mask(__mmask32 __u,__m512i __a,__m512i __b)28*67e74705SXin Li __mmask32 test_mm512_mask_cmpeq_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
29*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpeq_epi16_mask
30*67e74705SXin Li   // CHECK: icmp eq <32 x i16> %{{.*}}, %{{.*}}
31*67e74705SXin Li   // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
32*67e74705SXin Li   return (__mmask32)_mm512_mask_cmpeq_epi16_mask(__u, __a, __b);
33*67e74705SXin Li }
34*67e74705SXin Li 
test_mm512_cmpgt_epi8_mask(__m512i __a,__m512i __b)35*67e74705SXin Li __mmask64 test_mm512_cmpgt_epi8_mask(__m512i __a, __m512i __b) {
36*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpgt_epi8_mask
37*67e74705SXin Li   // CHECK: icmp sgt <64 x i8> %{{.*}}, %{{.*}}
38*67e74705SXin Li   return (__mmask64)_mm512_cmpgt_epi8_mask(__a, __b);
39*67e74705SXin Li }
40*67e74705SXin Li 
test_mm512_mask_cmpgt_epi8_mask(__mmask64 __u,__m512i __a,__m512i __b)41*67e74705SXin Li __mmask64 test_mm512_mask_cmpgt_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
42*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpgt_epi8_mask
43*67e74705SXin Li   // CHECK: icmp sgt <64 x i8> %{{.*}}, %{{.*}}
44*67e74705SXin Li   // CHECK: and <64 x i1> %{{.*}}, %{{.*}}
45*67e74705SXin Li   return (__mmask64)_mm512_mask_cmpgt_epi8_mask(__u, __a, __b);
46*67e74705SXin Li }
47*67e74705SXin Li 
test_mm512_cmpgt_epi16_mask(__m512i __a,__m512i __b)48*67e74705SXin Li __mmask32 test_mm512_cmpgt_epi16_mask(__m512i __a, __m512i __b) {
49*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpgt_epi16_mask
50*67e74705SXin Li   // CHECK: icmp sgt <32 x i16> %{{.*}}, %{{.*}}
51*67e74705SXin Li   return (__mmask32)_mm512_cmpgt_epi16_mask(__a, __b);
52*67e74705SXin Li }
53*67e74705SXin Li 
test_mm512_mask_cmpgt_epi16_mask(__mmask32 __u,__m512i __a,__m512i __b)54*67e74705SXin Li __mmask32 test_mm512_mask_cmpgt_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
55*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpgt_epi16_mask
56*67e74705SXin Li   // CHECK: icmp sgt <32 x i16> %{{.*}}, %{{.*}}
57*67e74705SXin Li   // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
58*67e74705SXin Li   return (__mmask32)_mm512_mask_cmpgt_epi16_mask(__u, __a, __b);
59*67e74705SXin Li }
60*67e74705SXin Li 
test_mm512_cmpeq_epu8_mask(__m512i __a,__m512i __b)61*67e74705SXin Li __mmask64 test_mm512_cmpeq_epu8_mask(__m512i __a, __m512i __b) {
62*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpeq_epu8_mask
63*67e74705SXin Li   // CHECK: icmp eq <64 x i8> %{{.*}}, %{{.*}}
64*67e74705SXin Li   return (__mmask64)_mm512_cmpeq_epu8_mask(__a, __b);
65*67e74705SXin Li }
66*67e74705SXin Li 
test_mm512_mask_cmpeq_epu8_mask(__mmask64 __u,__m512i __a,__m512i __b)67*67e74705SXin Li __mmask64 test_mm512_mask_cmpeq_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
68*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpeq_epu8_mask
69*67e74705SXin Li   // CHECK: icmp eq <64 x i8> %{{.*}}, %{{.*}}
70*67e74705SXin Li   // CHECK: and <64 x i1> %{{.*}}, %{{.*}}
71*67e74705SXin Li   return (__mmask64)_mm512_mask_cmpeq_epu8_mask(__u, __a, __b);
72*67e74705SXin Li }
73*67e74705SXin Li 
test_mm512_cmpeq_epu16_mask(__m512i __a,__m512i __b)74*67e74705SXin Li __mmask32 test_mm512_cmpeq_epu16_mask(__m512i __a, __m512i __b) {
75*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpeq_epu16_mask
76*67e74705SXin Li   // CHECK: icmp eq <32 x i16> %{{.*}}, %{{.*}}
77*67e74705SXin Li   return (__mmask32)_mm512_cmpeq_epu16_mask(__a, __b);
78*67e74705SXin Li }
79*67e74705SXin Li 
test_mm512_mask_cmpeq_epu16_mask(__mmask32 __u,__m512i __a,__m512i __b)80*67e74705SXin Li __mmask32 test_mm512_mask_cmpeq_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
81*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpeq_epu16_mask
82*67e74705SXin Li   // CHECK: icmp eq <32 x i16> %{{.*}}, %{{.*}}
83*67e74705SXin Li   // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
84*67e74705SXin Li   return (__mmask32)_mm512_mask_cmpeq_epu16_mask(__u, __a, __b);
85*67e74705SXin Li }
86*67e74705SXin Li 
test_mm512_cmpgt_epu8_mask(__m512i __a,__m512i __b)87*67e74705SXin Li __mmask64 test_mm512_cmpgt_epu8_mask(__m512i __a, __m512i __b) {
88*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpgt_epu8_mask
89*67e74705SXin Li   // CHECK: icmp ugt <64 x i8> %{{.*}}, %{{.*}}
90*67e74705SXin Li   return (__mmask64)_mm512_cmpgt_epu8_mask(__a, __b);
91*67e74705SXin Li }
92*67e74705SXin Li 
test_mm512_mask_cmpgt_epu8_mask(__mmask64 __u,__m512i __a,__m512i __b)93*67e74705SXin Li __mmask64 test_mm512_mask_cmpgt_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
94*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpgt_epu8_mask
95*67e74705SXin Li   // CHECK: icmp ugt <64 x i8> %{{.*}}, %{{.*}}
96*67e74705SXin Li   // CHECK: and <64 x i1> %{{.*}}, %{{.*}}
97*67e74705SXin Li   return (__mmask64)_mm512_mask_cmpgt_epu8_mask(__u, __a, __b);
98*67e74705SXin Li }
99*67e74705SXin Li 
test_mm512_cmpgt_epu16_mask(__m512i __a,__m512i __b)100*67e74705SXin Li __mmask32 test_mm512_cmpgt_epu16_mask(__m512i __a, __m512i __b) {
101*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpgt_epu16_mask
102*67e74705SXin Li   // CHECK: icmp ugt <32 x i16> %{{.*}}, %{{.*}}
103*67e74705SXin Li   return (__mmask32)_mm512_cmpgt_epu16_mask(__a, __b);
104*67e74705SXin Li }
105*67e74705SXin Li 
test_mm512_mask_cmpgt_epu16_mask(__mmask32 __u,__m512i __a,__m512i __b)106*67e74705SXin Li __mmask32 test_mm512_mask_cmpgt_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
107*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpgt_epu16_mask
108*67e74705SXin Li   // CHECK: icmp ugt <32 x i16> %{{.*}}, %{{.*}}
109*67e74705SXin Li   // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
110*67e74705SXin Li   return (__mmask32)_mm512_mask_cmpgt_epu16_mask(__u, __a, __b);
111*67e74705SXin Li }
112*67e74705SXin Li 
test_mm512_cmpge_epi8_mask(__m512i __a,__m512i __b)113*67e74705SXin Li __mmask64 test_mm512_cmpge_epi8_mask(__m512i __a, __m512i __b) {
114*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpge_epi8_mask
115*67e74705SXin Li   // CHECK: icmp sge <64 x i8> %{{.*}}, %{{.*}}
116*67e74705SXin Li   return (__mmask64)_mm512_cmpge_epi8_mask(__a, __b);
117*67e74705SXin Li }
118*67e74705SXin Li 
test_mm512_mask_cmpge_epi8_mask(__mmask64 __u,__m512i __a,__m512i __b)119*67e74705SXin Li __mmask64 test_mm512_mask_cmpge_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
120*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpge_epi8_mask
121*67e74705SXin Li   // CHECK: icmp sge <64 x i8> %{{.*}}, %{{.*}}
122*67e74705SXin Li   // CHECK: and <64 x i1> %{{.*}}, %{{.*}}
123*67e74705SXin Li   return (__mmask64)_mm512_mask_cmpge_epi8_mask(__u, __a, __b);
124*67e74705SXin Li }
125*67e74705SXin Li 
test_mm512_cmpge_epu8_mask(__m512i __a,__m512i __b)126*67e74705SXin Li __mmask64 test_mm512_cmpge_epu8_mask(__m512i __a, __m512i __b) {
127*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpge_epu8_mask
128*67e74705SXin Li   // CHECK: icmp uge <64 x i8> %{{.*}}, %{{.*}}
129*67e74705SXin Li   return (__mmask64)_mm512_cmpge_epu8_mask(__a, __b);
130*67e74705SXin Li }
131*67e74705SXin Li 
test_mm512_mask_cmpge_epu8_mask(__mmask64 __u,__m512i __a,__m512i __b)132*67e74705SXin Li __mmask64 test_mm512_mask_cmpge_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
133*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpge_epu8_mask
134*67e74705SXin Li   // CHECK: icmp uge <64 x i8> %{{.*}}, %{{.*}}
135*67e74705SXin Li   // CHECK: and <64 x i1> %{{.*}}, %{{.*}}
136*67e74705SXin Li   return (__mmask64)_mm512_mask_cmpge_epu8_mask(__u, __a, __b);
137*67e74705SXin Li }
138*67e74705SXin Li 
test_mm512_cmpge_epi16_mask(__m512i __a,__m512i __b)139*67e74705SXin Li __mmask32 test_mm512_cmpge_epi16_mask(__m512i __a, __m512i __b) {
140*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpge_epi16_mask
141*67e74705SXin Li   // CHECK: icmp sge <32 x i16> %{{.*}}, %{{.*}}
142*67e74705SXin Li   return (__mmask32)_mm512_cmpge_epi16_mask(__a, __b);
143*67e74705SXin Li }
144*67e74705SXin Li 
test_mm512_mask_cmpge_epi16_mask(__mmask32 __u,__m512i __a,__m512i __b)145*67e74705SXin Li __mmask32 test_mm512_mask_cmpge_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
146*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpge_epi16_mask
147*67e74705SXin Li   // CHECK: icmp sge <32 x i16> %{{.*}}, %{{.*}}
148*67e74705SXin Li   // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
149*67e74705SXin Li   return (__mmask32)_mm512_mask_cmpge_epi16_mask(__u, __a, __b);
150*67e74705SXin Li }
151*67e74705SXin Li 
test_mm512_cmpge_epu16_mask(__m512i __a,__m512i __b)152*67e74705SXin Li __mmask32 test_mm512_cmpge_epu16_mask(__m512i __a, __m512i __b) {
153*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpge_epu16_mask
154*67e74705SXin Li   // CHECK: icmp uge <32 x i16> %{{.*}}, %{{.*}}
155*67e74705SXin Li   return (__mmask32)_mm512_cmpge_epu16_mask(__a, __b);
156*67e74705SXin Li }
157*67e74705SXin Li 
test_mm512_mask_cmpge_epu16_mask(__mmask32 __u,__m512i __a,__m512i __b)158*67e74705SXin Li __mmask32 test_mm512_mask_cmpge_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
159*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpge_epu16_mask
160*67e74705SXin Li   // CHECK: icmp uge <32 x i16> %{{.*}}, %{{.*}}
161*67e74705SXin Li   // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
162*67e74705SXin Li   return (__mmask32)_mm512_mask_cmpge_epu16_mask(__u, __a, __b);
163*67e74705SXin Li }
164*67e74705SXin Li 
test_mm512_cmple_epi8_mask(__m512i __a,__m512i __b)165*67e74705SXin Li __mmask64 test_mm512_cmple_epi8_mask(__m512i __a, __m512i __b) {
166*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmple_epi8_mask
167*67e74705SXin Li   // CHECK: icmp sle <64 x i8> %{{.*}}, %{{.*}}
168*67e74705SXin Li   return (__mmask64)_mm512_cmple_epi8_mask(__a, __b);
169*67e74705SXin Li }
170*67e74705SXin Li 
test_mm512_mask_cmple_epi8_mask(__mmask64 __u,__m512i __a,__m512i __b)171*67e74705SXin Li __mmask64 test_mm512_mask_cmple_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
172*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmple_epi8_mask
173*67e74705SXin Li   // CHECK: icmp sle <64 x i8> %{{.*}}, %{{.*}}
174*67e74705SXin Li   // CHECK: and <64 x i1> %{{.*}}, %{{.*}}
175*67e74705SXin Li   return (__mmask64)_mm512_mask_cmple_epi8_mask(__u, __a, __b);
176*67e74705SXin Li }
177*67e74705SXin Li 
test_mm512_cmple_epu8_mask(__m512i __a,__m512i __b)178*67e74705SXin Li __mmask64 test_mm512_cmple_epu8_mask(__m512i __a, __m512i __b) {
179*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmple_epu8_mask
180*67e74705SXin Li   // CHECK: icmp ule <64 x i8> %{{.*}}, %{{.*}}
181*67e74705SXin Li   return (__mmask64)_mm512_cmple_epu8_mask(__a, __b);
182*67e74705SXin Li }
183*67e74705SXin Li 
test_mm512_mask_cmple_epu8_mask(__mmask64 __u,__m512i __a,__m512i __b)184*67e74705SXin Li __mmask64 test_mm512_mask_cmple_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
185*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmple_epu8_mask
186*67e74705SXin Li   // CHECK: icmp ule <64 x i8> %{{.*}}, %{{.*}}
187*67e74705SXin Li   // CHECK: and <64 x i1> %{{.*}}, %{{.*}}
188*67e74705SXin Li   return (__mmask64)_mm512_mask_cmple_epu8_mask(__u, __a, __b);
189*67e74705SXin Li }
190*67e74705SXin Li 
test_mm512_cmple_epi16_mask(__m512i __a,__m512i __b)191*67e74705SXin Li __mmask32 test_mm512_cmple_epi16_mask(__m512i __a, __m512i __b) {
192*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmple_epi16_mask
193*67e74705SXin Li   // CHECK: icmp sle <32 x i16> %{{.*}}, %{{.*}}
194*67e74705SXin Li   return (__mmask32)_mm512_cmple_epi16_mask(__a, __b);
195*67e74705SXin Li }
196*67e74705SXin Li 
test_mm512_mask_cmple_epi16_mask(__mmask32 __u,__m512i __a,__m512i __b)197*67e74705SXin Li __mmask32 test_mm512_mask_cmple_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
198*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmple_epi16_mask
199*67e74705SXin Li   // CHECK: icmp sle <32 x i16> %{{.*}}, %{{.*}}
200*67e74705SXin Li   // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
201*67e74705SXin Li   return (__mmask32)_mm512_mask_cmple_epi16_mask(__u, __a, __b);
202*67e74705SXin Li }
203*67e74705SXin Li 
test_mm512_cmple_epu16_mask(__m512i __a,__m512i __b)204*67e74705SXin Li __mmask32 test_mm512_cmple_epu16_mask(__m512i __a, __m512i __b) {
205*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmple_epu16_mask
206*67e74705SXin Li   // CHECK: icmp ule <32 x i16> %{{.*}}, %{{.*}}
207*67e74705SXin Li   return (__mmask32)_mm512_cmple_epu16_mask(__a, __b);
208*67e74705SXin Li }
209*67e74705SXin Li 
test_mm512_mask_cmple_epu16_mask(__mmask32 __u,__m512i __a,__m512i __b)210*67e74705SXin Li __mmask32 test_mm512_mask_cmple_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
211*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmple_epu16_mask
212*67e74705SXin Li   // CHECK: icmp ule <32 x i16> %{{.*}}, %{{.*}}
213*67e74705SXin Li   // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
214*67e74705SXin Li   return (__mmask32)_mm512_mask_cmple_epu16_mask(__u, __a, __b);
215*67e74705SXin Li }
216*67e74705SXin Li 
test_mm512_cmplt_epi8_mask(__m512i __a,__m512i __b)217*67e74705SXin Li __mmask64 test_mm512_cmplt_epi8_mask(__m512i __a, __m512i __b) {
218*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmplt_epi8_mask
219*67e74705SXin Li   // CHECK: icmp slt <64 x i8> %{{.*}}, %{{.*}}
220*67e74705SXin Li   return (__mmask64)_mm512_cmplt_epi8_mask(__a, __b);
221*67e74705SXin Li }
222*67e74705SXin Li 
test_mm512_mask_cmplt_epi8_mask(__mmask64 __u,__m512i __a,__m512i __b)223*67e74705SXin Li __mmask64 test_mm512_mask_cmplt_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
224*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmplt_epi8_mask
225*67e74705SXin Li   // CHECK: icmp slt <64 x i8> %{{.*}}, %{{.*}}
226*67e74705SXin Li   // CHECK: and <64 x i1> %{{.*}}, %{{.*}}
227*67e74705SXin Li   return (__mmask64)_mm512_mask_cmplt_epi8_mask(__u, __a, __b);
228*67e74705SXin Li }
229*67e74705SXin Li 
test_mm512_cmplt_epu8_mask(__m512i __a,__m512i __b)230*67e74705SXin Li __mmask64 test_mm512_cmplt_epu8_mask(__m512i __a, __m512i __b) {
231*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmplt_epu8_mask
232*67e74705SXin Li   // CHECK: icmp ult <64 x i8> %{{.*}}, %{{.*}}
233*67e74705SXin Li   return (__mmask64)_mm512_cmplt_epu8_mask(__a, __b);
234*67e74705SXin Li }
235*67e74705SXin Li 
test_mm512_mask_cmplt_epu8_mask(__mmask64 __u,__m512i __a,__m512i __b)236*67e74705SXin Li __mmask64 test_mm512_mask_cmplt_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
237*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmplt_epu8_mask
238*67e74705SXin Li   // CHECK: icmp ult <64 x i8> %{{.*}}, %{{.*}}
239*67e74705SXin Li   // CHECK: and <64 x i1> %{{.*}}, %{{.*}}
240*67e74705SXin Li   return (__mmask64)_mm512_mask_cmplt_epu8_mask(__u, __a, __b);
241*67e74705SXin Li }
242*67e74705SXin Li 
test_mm512_cmplt_epi16_mask(__m512i __a,__m512i __b)243*67e74705SXin Li __mmask32 test_mm512_cmplt_epi16_mask(__m512i __a, __m512i __b) {
244*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmplt_epi16_mask
245*67e74705SXin Li   // CHECK: icmp slt <32 x i16> %{{.*}}, %{{.*}}
246*67e74705SXin Li   return (__mmask32)_mm512_cmplt_epi16_mask(__a, __b);
247*67e74705SXin Li }
248*67e74705SXin Li 
test_mm512_mask_cmplt_epi16_mask(__mmask32 __u,__m512i __a,__m512i __b)249*67e74705SXin Li __mmask32 test_mm512_mask_cmplt_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
250*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmplt_epi16_mask
251*67e74705SXin Li   // CHECK: icmp slt <32 x i16> %{{.*}}, %{{.*}}
252*67e74705SXin Li   // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
253*67e74705SXin Li   return (__mmask32)_mm512_mask_cmplt_epi16_mask(__u, __a, __b);
254*67e74705SXin Li }
255*67e74705SXin Li 
test_mm512_cmplt_epu16_mask(__m512i __a,__m512i __b)256*67e74705SXin Li __mmask32 test_mm512_cmplt_epu16_mask(__m512i __a, __m512i __b) {
257*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmplt_epu16_mask
258*67e74705SXin Li   // CHECK: icmp ult <32 x i16> %{{.*}}, %{{.*}}
259*67e74705SXin Li   return (__mmask32)_mm512_cmplt_epu16_mask(__a, __b);
260*67e74705SXin Li }
261*67e74705SXin Li 
test_mm512_mask_cmplt_epu16_mask(__mmask32 __u,__m512i __a,__m512i __b)262*67e74705SXin Li __mmask32 test_mm512_mask_cmplt_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
263*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmplt_epu16_mask
264*67e74705SXin Li   // CHECK: icmp ult <32 x i16> %{{.*}}, %{{.*}}
265*67e74705SXin Li   // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
266*67e74705SXin Li   return (__mmask32)_mm512_mask_cmplt_epu16_mask(__u, __a, __b);
267*67e74705SXin Li }
268*67e74705SXin Li 
test_mm512_cmpneq_epi8_mask(__m512i __a,__m512i __b)269*67e74705SXin Li __mmask64 test_mm512_cmpneq_epi8_mask(__m512i __a, __m512i __b) {
270*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpneq_epi8_mask
271*67e74705SXin Li   // CHECK: icmp ne <64 x i8> %{{.*}}, %{{.*}}
272*67e74705SXin Li   return (__mmask64)_mm512_cmpneq_epi8_mask(__a, __b);
273*67e74705SXin Li }
274*67e74705SXin Li 
test_mm512_mask_cmpneq_epi8_mask(__mmask64 __u,__m512i __a,__m512i __b)275*67e74705SXin Li __mmask64 test_mm512_mask_cmpneq_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
276*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpneq_epi8_mask
277*67e74705SXin Li   // CHECK: icmp ne <64 x i8> %{{.*}}, %{{.*}}
278*67e74705SXin Li   // CHECK: and <64 x i1> %{{.*}}, %{{.*}}
279*67e74705SXin Li   return (__mmask64)_mm512_mask_cmpneq_epi8_mask(__u, __a, __b);
280*67e74705SXin Li }
281*67e74705SXin Li 
test_mm512_cmpneq_epu8_mask(__m512i __a,__m512i __b)282*67e74705SXin Li __mmask64 test_mm512_cmpneq_epu8_mask(__m512i __a, __m512i __b) {
283*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpneq_epu8_mask
284*67e74705SXin Li   // CHECK: icmp ne <64 x i8> %{{.*}}, %{{.*}}
285*67e74705SXin Li   return (__mmask64)_mm512_cmpneq_epu8_mask(__a, __b);
286*67e74705SXin Li }
287*67e74705SXin Li 
test_mm512_mask_cmpneq_epu8_mask(__mmask64 __u,__m512i __a,__m512i __b)288*67e74705SXin Li __mmask64 test_mm512_mask_cmpneq_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
289*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpneq_epu8_mask
290*67e74705SXin Li   // CHECK: icmp ne <64 x i8> %{{.*}}, %{{.*}}
291*67e74705SXin Li   // CHECK: and <64 x i1> %{{.*}}, %{{.*}}
292*67e74705SXin Li   return (__mmask64)_mm512_mask_cmpneq_epu8_mask(__u, __a, __b);
293*67e74705SXin Li }
294*67e74705SXin Li 
test_mm512_cmpneq_epi16_mask(__m512i __a,__m512i __b)295*67e74705SXin Li __mmask32 test_mm512_cmpneq_epi16_mask(__m512i __a, __m512i __b) {
296*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpneq_epi16_mask
297*67e74705SXin Li   // CHECK: icmp ne <32 x i16> %{{.*}}, %{{.*}}
298*67e74705SXin Li   return (__mmask32)_mm512_cmpneq_epi16_mask(__a, __b);
299*67e74705SXin Li }
300*67e74705SXin Li 
test_mm512_mask_cmpneq_epi16_mask(__mmask32 __u,__m512i __a,__m512i __b)301*67e74705SXin Li __mmask32 test_mm512_mask_cmpneq_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
302*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpneq_epi16_mask
303*67e74705SXin Li   // CHECK: icmp ne <32 x i16> %{{.*}}, %{{.*}}
304*67e74705SXin Li   // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
305*67e74705SXin Li   return (__mmask32)_mm512_mask_cmpneq_epi16_mask(__u, __a, __b);
306*67e74705SXin Li }
307*67e74705SXin Li 
test_mm512_cmpneq_epu16_mask(__m512i __a,__m512i __b)308*67e74705SXin Li __mmask32 test_mm512_cmpneq_epu16_mask(__m512i __a, __m512i __b) {
309*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmpneq_epu16_mask
310*67e74705SXin Li   // CHECK: icmp ne <32 x i16> %{{.*}}, %{{.*}}
311*67e74705SXin Li   return (__mmask32)_mm512_cmpneq_epu16_mask(__a, __b);
312*67e74705SXin Li }
313*67e74705SXin Li 
test_mm512_mask_cmpneq_epu16_mask(__mmask32 __u,__m512i __a,__m512i __b)314*67e74705SXin Li __mmask32 test_mm512_mask_cmpneq_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
315*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmpneq_epu16_mask
316*67e74705SXin Li   // CHECK: icmp ne <32 x i16> %{{.*}}, %{{.*}}
317*67e74705SXin Li   // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
318*67e74705SXin Li   return (__mmask32)_mm512_mask_cmpneq_epu16_mask(__u, __a, __b);
319*67e74705SXin Li }
320*67e74705SXin Li 
test_mm512_cmp_epi8_mask(__m512i __a,__m512i __b)321*67e74705SXin Li __mmask64 test_mm512_cmp_epi8_mask(__m512i __a, __m512i __b) {
322*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmp_epi8_mask
323*67e74705SXin Li   // CHECK: icmp eq <64 x i8> %{{.*}}, %{{.*}}
324*67e74705SXin Li   return (__mmask64)_mm512_cmp_epi8_mask(__a, __b, 0);
325*67e74705SXin Li }
326*67e74705SXin Li 
test_mm512_mask_cmp_epi8_mask(__mmask64 __u,__m512i __a,__m512i __b)327*67e74705SXin Li __mmask64 test_mm512_mask_cmp_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
328*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmp_epi8_mask
329*67e74705SXin Li   // CHECK: icmp eq <64 x i8> %{{.*}}, %{{.*}}
330*67e74705SXin Li   // CHECK: and <64 x i1> %{{.*}}, %{{.*}}
331*67e74705SXin Li   return (__mmask64)_mm512_mask_cmp_epi8_mask(__u, __a, __b, 0);
332*67e74705SXin Li }
333*67e74705SXin Li 
test_mm512_cmp_epu8_mask(__m512i __a,__m512i __b)334*67e74705SXin Li __mmask64 test_mm512_cmp_epu8_mask(__m512i __a, __m512i __b) {
335*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmp_epu8_mask
336*67e74705SXin Li   // CHECK: icmp eq <64 x i8> %{{.*}}, %{{.*}}
337*67e74705SXin Li   return (__mmask64)_mm512_cmp_epu8_mask(__a, __b, 0);
338*67e74705SXin Li }
339*67e74705SXin Li 
test_mm512_mask_cmp_epu8_mask(__mmask64 __u,__m512i __a,__m512i __b)340*67e74705SXin Li __mmask64 test_mm512_mask_cmp_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
341*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmp_epu8_mask
342*67e74705SXin Li   // CHECK: icmp eq <64 x i8> %{{.*}}, %{{.*}}
343*67e74705SXin Li   // CHECK: and <64 x i1> %{{.*}}, %{{.*}}
344*67e74705SXin Li   return (__mmask64)_mm512_mask_cmp_epu8_mask(__u, __a, __b, 0);
345*67e74705SXin Li }
346*67e74705SXin Li 
test_mm512_cmp_epi16_mask(__m512i __a,__m512i __b)347*67e74705SXin Li __mmask32 test_mm512_cmp_epi16_mask(__m512i __a, __m512i __b) {
348*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmp_epi16_mask
349*67e74705SXin Li   // CHECK: icmp eq <32 x i16> %{{.*}}, %{{.*}}
350*67e74705SXin Li   return (__mmask32)_mm512_cmp_epi16_mask(__a, __b, 0);
351*67e74705SXin Li }
352*67e74705SXin Li 
test_mm512_mask_cmp_epi16_mask(__mmask32 __u,__m512i __a,__m512i __b)353*67e74705SXin Li __mmask32 test_mm512_mask_cmp_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
354*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmp_epi16_mask
355*67e74705SXin Li   // CHECK: icmp eq <32 x i16> %{{.*}}, %{{.*}}
356*67e74705SXin Li   // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
357*67e74705SXin Li   return (__mmask32)_mm512_mask_cmp_epi16_mask(__u, __a, __b, 0);
358*67e74705SXin Li }
359*67e74705SXin Li 
test_mm512_cmp_epu16_mask(__m512i __a,__m512i __b)360*67e74705SXin Li __mmask32 test_mm512_cmp_epu16_mask(__m512i __a, __m512i __b) {
361*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cmp_epu16_mask
362*67e74705SXin Li   // CHECK: icmp eq <32 x i16> %{{.*}}, %{{.*}}
363*67e74705SXin Li   return (__mmask32)_mm512_cmp_epu16_mask(__a, __b, 0);
364*67e74705SXin Li }
365*67e74705SXin Li 
test_mm512_mask_cmp_epu16_mask(__mmask32 __u,__m512i __a,__m512i __b)366*67e74705SXin Li __mmask32 test_mm512_mask_cmp_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
367*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cmp_epu16_mask
368*67e74705SXin Li   // CHECK: icmp eq <32 x i16> %{{.*}}, %{{.*}}
369*67e74705SXin Li   // CHECK: and <32 x i1> %{{.*}}, %{{.*}}
370*67e74705SXin Li   return (__mmask32)_mm512_mask_cmp_epu16_mask(__u, __a, __b, 0);
371*67e74705SXin Li }
372*67e74705SXin Li 
test_mm512_add_epi8(__m512i __A,__m512i __B)373*67e74705SXin Li __m512i test_mm512_add_epi8 (__m512i __A, __m512i __B) {
374*67e74705SXin Li   //CHECK-LABEL: @test_mm512_add_epi8
375*67e74705SXin Li   //CHECK: add <64 x i8>
376*67e74705SXin Li   return _mm512_add_epi8(__A,__B);
377*67e74705SXin Li }
378*67e74705SXin Li 
test_mm512_mask_add_epi8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)379*67e74705SXin Li __m512i test_mm512_mask_add_epi8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
380*67e74705SXin Li   //CHECK-LABEL: @test_mm512_mask_add_epi8
381*67e74705SXin Li   //CHECK: @llvm.x86.avx512.mask.padd.b.512
382*67e74705SXin Li   return _mm512_mask_add_epi8(__W, __U, __A, __B);
383*67e74705SXin Li }
384*67e74705SXin Li 
test_mm512_maskz_add_epi8(__mmask64 __U,__m512i __A,__m512i __B)385*67e74705SXin Li __m512i test_mm512_maskz_add_epi8 (__mmask64 __U, __m512i __A, __m512i __B) {
386*67e74705SXin Li   //CHECK-LABEL: @test_mm512_maskz_add_epi8
387*67e74705SXin Li   //CHECK: @llvm.x86.avx512.mask.padd.b.512
388*67e74705SXin Li   return _mm512_maskz_add_epi8(__U, __A, __B);
389*67e74705SXin Li }
390*67e74705SXin Li 
test_mm512_sub_epi8(__m512i __A,__m512i __B)391*67e74705SXin Li __m512i test_mm512_sub_epi8 (__m512i __A, __m512i __B) {
392*67e74705SXin Li   //CHECK-LABEL: @test_mm512_sub_epi8
393*67e74705SXin Li   //CHECK: sub <64 x i8>
394*67e74705SXin Li   return _mm512_sub_epi8(__A, __B);
395*67e74705SXin Li }
396*67e74705SXin Li 
test_mm512_mask_sub_epi8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)397*67e74705SXin Li __m512i test_mm512_mask_sub_epi8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
398*67e74705SXin Li   //CHECK-LABEL: @test_mm512_mask_sub_epi8
399*67e74705SXin Li   //CHECK: @llvm.x86.avx512.mask.psub.b.512
400*67e74705SXin Li   return _mm512_mask_sub_epi8(__W, __U, __A, __B);
401*67e74705SXin Li }
402*67e74705SXin Li 
test_mm512_maskz_sub_epi8(__mmask64 __U,__m512i __A,__m512i __B)403*67e74705SXin Li __m512i test_mm512_maskz_sub_epi8 (__mmask64 __U, __m512i __A, __m512i __B) {
404*67e74705SXin Li   //CHECK-LABEL: @test_mm512_maskz_sub_epi8
405*67e74705SXin Li   //CHECK: @llvm.x86.avx512.mask.psub.b.512
406*67e74705SXin Li   return _mm512_maskz_sub_epi8(__U, __A, __B);
407*67e74705SXin Li }
408*67e74705SXin Li 
test_mm512_add_epi16(__m512i __A,__m512i __B)409*67e74705SXin Li __m512i test_mm512_add_epi16 (__m512i __A, __m512i __B) {
410*67e74705SXin Li   //CHECK-LABEL: @test_mm512_add_epi16
411*67e74705SXin Li   //CHECK: add <32 x i16>
412*67e74705SXin Li   return _mm512_add_epi16(__A, __B);
413*67e74705SXin Li }
414*67e74705SXin Li 
test_mm512_mask_add_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)415*67e74705SXin Li __m512i test_mm512_mask_add_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
416*67e74705SXin Li   //CHECK-LABEL: @test_mm512_mask_add_epi16
417*67e74705SXin Li   //CHECK: @llvm.x86.avx512.mask.padd.w.512
418*67e74705SXin Li   return _mm512_mask_add_epi16(__W, __U, __A, __B);
419*67e74705SXin Li }
420*67e74705SXin Li 
test_mm512_maskz_add_epi16(__mmask32 __U,__m512i __A,__m512i __B)421*67e74705SXin Li __m512i test_mm512_maskz_add_epi16 (__mmask32 __U, __m512i __A, __m512i __B) {
422*67e74705SXin Li   //CHECK-LABEL: @test_mm512_maskz_add_epi16
423*67e74705SXin Li   //CHECK: @llvm.x86.avx512.mask.padd.w.512
424*67e74705SXin Li   return _mm512_maskz_add_epi16(__U, __A, __B);
425*67e74705SXin Li }
426*67e74705SXin Li 
test_mm512_sub_epi16(__m512i __A,__m512i __B)427*67e74705SXin Li __m512i test_mm512_sub_epi16 (__m512i __A, __m512i __B) {
428*67e74705SXin Li   //CHECK-LABEL: @test_mm512_sub_epi16
429*67e74705SXin Li   //CHECK: sub <32 x i16>
430*67e74705SXin Li   return _mm512_sub_epi16(__A, __B);
431*67e74705SXin Li }
432*67e74705SXin Li 
test_mm512_mask_sub_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)433*67e74705SXin Li __m512i test_mm512_mask_sub_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
434*67e74705SXin Li   //CHECK-LABEL: @test_mm512_mask_sub_epi16
435*67e74705SXin Li   //CHECK: @llvm.x86.avx512.mask.psub.w.512
436*67e74705SXin Li   return _mm512_mask_sub_epi16(__W, __U, __A, __B);
437*67e74705SXin Li }
438*67e74705SXin Li 
test_mm512_maskz_sub_epi16(__mmask32 __U,__m512i __A,__m512i __B)439*67e74705SXin Li __m512i test_mm512_maskz_sub_epi16 (__mmask32 __U, __m512i __A, __m512i __B) {
440*67e74705SXin Li   //CHECK-LABEL: @test_mm512_maskz_sub_epi16
441*67e74705SXin Li   //CHECK: @llvm.x86.avx512.mask.psub.w.512
442*67e74705SXin Li   return _mm512_maskz_sub_epi16(__U, __A, __B);
443*67e74705SXin Li }
444*67e74705SXin Li 
test_mm512_mullo_epi16(__m512i __A,__m512i __B)445*67e74705SXin Li __m512i test_mm512_mullo_epi16 (__m512i __A, __m512i __B) {
446*67e74705SXin Li   //CHECK-LABEL: @test_mm512_mullo_epi16
447*67e74705SXin Li   //CHECK: mul <32 x i16>
448*67e74705SXin Li   return _mm512_mullo_epi16(__A, __B);
449*67e74705SXin Li }
450*67e74705SXin Li 
test_mm512_mask_mullo_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)451*67e74705SXin Li __m512i test_mm512_mask_mullo_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
452*67e74705SXin Li   //CHECK-LABEL: @test_mm512_mask_mullo_epi16
453*67e74705SXin Li   //CHECK: @llvm.x86.avx512.mask.pmull.w.512
454*67e74705SXin Li   return _mm512_mask_mullo_epi16(__W, __U, __A, __B);
455*67e74705SXin Li }
456*67e74705SXin Li 
test_mm512_maskz_mullo_epi16(__mmask32 __U,__m512i __A,__m512i __B)457*67e74705SXin Li __m512i test_mm512_maskz_mullo_epi16 (__mmask32 __U, __m512i __A, __m512i __B) {
458*67e74705SXin Li   //CHECK-LABEL: @test_mm512_maskz_mullo_epi16
459*67e74705SXin Li   //CHECK: @llvm.x86.avx512.mask.pmull.w.512
460*67e74705SXin Li   return _mm512_maskz_mullo_epi16(__U, __A, __B);
461*67e74705SXin Li }
462*67e74705SXin Li 
test_mm512_mask_blend_epi8(__mmask64 __U,__m512i __A,__m512i __W)463*67e74705SXin Li __m512i test_mm512_mask_blend_epi8(__mmask64 __U, __m512i __A, __m512i __W) {
464*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_blend_epi8
465*67e74705SXin Li   // CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
466*67e74705SXin Li   return _mm512_mask_blend_epi8(__U,__A,__W);
467*67e74705SXin Li }
test_mm512_mask_blend_epi16(__mmask32 __U,__m512i __A,__m512i __W)468*67e74705SXin Li __m512i test_mm512_mask_blend_epi16(__mmask32 __U, __m512i __A, __m512i __W) {
469*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_blend_epi16
470*67e74705SXin Li   // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
471*67e74705SXin Li   return _mm512_mask_blend_epi16(__U,__A,__W);
472*67e74705SXin Li }
test_mm512_abs_epi8(__m512i __A)473*67e74705SXin Li __m512i test_mm512_abs_epi8(__m512i __A) {
474*67e74705SXin Li   // CHECK-LABEL: @test_mm512_abs_epi8
475*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pabs.b.512
476*67e74705SXin Li   return _mm512_abs_epi8(__A);
477*67e74705SXin Li }
test_mm512_mask_abs_epi8(__m512i __W,__mmask64 __U,__m512i __A)478*67e74705SXin Li __m512i test_mm512_mask_abs_epi8(__m512i __W, __mmask64 __U, __m512i __A) {
479*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_abs_epi8
480*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pabs.b.512
481*67e74705SXin Li   return _mm512_mask_abs_epi8(__W,__U,__A);
482*67e74705SXin Li }
test_mm512_maskz_abs_epi8(__mmask64 __U,__m512i __A)483*67e74705SXin Li __m512i test_mm512_maskz_abs_epi8(__mmask64 __U, __m512i __A) {
484*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_abs_epi8
485*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pabs.b.512
486*67e74705SXin Li   return _mm512_maskz_abs_epi8(__U,__A);
487*67e74705SXin Li }
test_mm512_abs_epi16(__m512i __A)488*67e74705SXin Li __m512i test_mm512_abs_epi16(__m512i __A) {
489*67e74705SXin Li   // CHECK-LABEL: @test_mm512_abs_epi16
490*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pabs.w.512
491*67e74705SXin Li   return _mm512_abs_epi16(__A);
492*67e74705SXin Li }
test_mm512_mask_abs_epi16(__m512i __W,__mmask32 __U,__m512i __A)493*67e74705SXin Li __m512i test_mm512_mask_abs_epi16(__m512i __W, __mmask32 __U, __m512i __A) {
494*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_abs_epi16
495*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pabs.w.512
496*67e74705SXin Li   return _mm512_mask_abs_epi16(__W,__U,__A);
497*67e74705SXin Li }
test_mm512_maskz_abs_epi16(__mmask32 __U,__m512i __A)498*67e74705SXin Li __m512i test_mm512_maskz_abs_epi16(__mmask32 __U, __m512i __A) {
499*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_abs_epi16
500*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pabs.w.512
501*67e74705SXin Li   return _mm512_maskz_abs_epi16(__U,__A);
502*67e74705SXin Li }
test_mm512_packs_epi32(__m512i __A,__m512i __B)503*67e74705SXin Li __m512i test_mm512_packs_epi32(__m512i __A, __m512i __B) {
504*67e74705SXin Li   // CHECK-LABEL: @test_mm512_packs_epi32
505*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.packssdw.512
506*67e74705SXin Li   return _mm512_packs_epi32(__A,__B);
507*67e74705SXin Li }
test_mm512_maskz_packs_epi32(__mmask32 __M,__m512i __A,__m512i __B)508*67e74705SXin Li __m512i test_mm512_maskz_packs_epi32(__mmask32 __M, __m512i __A, __m512i __B) {
509*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_packs_epi32
510*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.packssdw.512
511*67e74705SXin Li   return _mm512_maskz_packs_epi32(__M,__A,__B);
512*67e74705SXin Li }
test_mm512_mask_packs_epi32(__m512i __W,__mmask32 __M,__m512i __A,__m512i __B)513*67e74705SXin Li __m512i test_mm512_mask_packs_epi32(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) {
514*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_packs_epi32
515*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.packssdw.512
516*67e74705SXin Li   return _mm512_mask_packs_epi32(__W,__M,__A,__B);
517*67e74705SXin Li }
test_mm512_packs_epi16(__m512i __A,__m512i __B)518*67e74705SXin Li __m512i test_mm512_packs_epi16(__m512i __A, __m512i __B) {
519*67e74705SXin Li   // CHECK-LABEL: @test_mm512_packs_epi16
520*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.packsswb.512
521*67e74705SXin Li   return _mm512_packs_epi16(__A,__B);
522*67e74705SXin Li }
test_mm512_mask_packs_epi16(__m512i __W,__mmask64 __M,__m512i __A,__m512i __B)523*67e74705SXin Li __m512i test_mm512_mask_packs_epi16(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) {
524*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_packs_epi16
525*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.packsswb.512
526*67e74705SXin Li   return _mm512_mask_packs_epi16(__W,__M,__A,__B);
527*67e74705SXin Li }
test_mm512_maskz_packs_epi16(__mmask64 __M,__m512i __A,__m512i __B)528*67e74705SXin Li __m512i test_mm512_maskz_packs_epi16(__mmask64 __M, __m512i __A, __m512i __B) {
529*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_packs_epi16
530*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.packsswb.512
531*67e74705SXin Li   return _mm512_maskz_packs_epi16(__M,__A,__B);
532*67e74705SXin Li }
test_mm512_packus_epi32(__m512i __A,__m512i __B)533*67e74705SXin Li __m512i test_mm512_packus_epi32(__m512i __A, __m512i __B) {
534*67e74705SXin Li   // CHECK-LABEL: @test_mm512_packus_epi32
535*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.packusdw.512
536*67e74705SXin Li   return _mm512_packus_epi32(__A,__B);
537*67e74705SXin Li }
test_mm512_maskz_packus_epi32(__mmask32 __M,__m512i __A,__m512i __B)538*67e74705SXin Li __m512i test_mm512_maskz_packus_epi32(__mmask32 __M, __m512i __A, __m512i __B) {
539*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_packus_epi32
540*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.packusdw.512
541*67e74705SXin Li   return _mm512_maskz_packus_epi32(__M,__A,__B);
542*67e74705SXin Li }
test_mm512_mask_packus_epi32(__m512i __W,__mmask32 __M,__m512i __A,__m512i __B)543*67e74705SXin Li __m512i test_mm512_mask_packus_epi32(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) {
544*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_packus_epi32
545*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.packusdw.512
546*67e74705SXin Li   return _mm512_mask_packus_epi32(__W,__M,__A,__B);
547*67e74705SXin Li }
test_mm512_packus_epi16(__m512i __A,__m512i __B)548*67e74705SXin Li __m512i test_mm512_packus_epi16(__m512i __A, __m512i __B) {
549*67e74705SXin Li   // CHECK-LABEL: @test_mm512_packus_epi16
550*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.packuswb.512
551*67e74705SXin Li   return _mm512_packus_epi16(__A,__B);
552*67e74705SXin Li }
test_mm512_mask_packus_epi16(__m512i __W,__mmask64 __M,__m512i __A,__m512i __B)553*67e74705SXin Li __m512i test_mm512_mask_packus_epi16(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) {
554*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_packus_epi16
555*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.packuswb.512
556*67e74705SXin Li   return _mm512_mask_packus_epi16(__W,__M,__A,__B);
557*67e74705SXin Li }
test_mm512_maskz_packus_epi16(__mmask64 __M,__m512i __A,__m512i __B)558*67e74705SXin Li __m512i test_mm512_maskz_packus_epi16(__mmask64 __M, __m512i __A, __m512i __B) {
559*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_packus_epi16
560*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.packuswb.512
561*67e74705SXin Li   return _mm512_maskz_packus_epi16(__M,__A,__B);
562*67e74705SXin Li }
test_mm512_adds_epi8(__m512i __A,__m512i __B)563*67e74705SXin Li __m512i test_mm512_adds_epi8(__m512i __A, __m512i __B) {
564*67e74705SXin Li   // CHECK-LABEL: @test_mm512_adds_epi8
565*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.padds.b.512
566*67e74705SXin Li   return _mm512_adds_epi8(__A,__B);
567*67e74705SXin Li }
test_mm512_mask_adds_epi8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)568*67e74705SXin Li __m512i test_mm512_mask_adds_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
569*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_adds_epi8
570*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.padds.b.512
571*67e74705SXin Li   return _mm512_mask_adds_epi8(__W,__U,__A,__B);
572*67e74705SXin Li }
test_mm512_maskz_adds_epi8(__mmask64 __U,__m512i __A,__m512i __B)573*67e74705SXin Li __m512i test_mm512_maskz_adds_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
574*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_adds_epi8
575*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.padds.b.512
576*67e74705SXin Li   return _mm512_maskz_adds_epi8(__U,__A,__B);
577*67e74705SXin Li }
test_mm512_adds_epi16(__m512i __A,__m512i __B)578*67e74705SXin Li __m512i test_mm512_adds_epi16(__m512i __A, __m512i __B) {
579*67e74705SXin Li   // CHECK-LABEL: @test_mm512_adds_epi16
580*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.padds.w.512
581*67e74705SXin Li   return _mm512_adds_epi16(__A,__B);
582*67e74705SXin Li }
test_mm512_mask_adds_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)583*67e74705SXin Li __m512i test_mm512_mask_adds_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
584*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_adds_epi16
585*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.padds.w.512
586*67e74705SXin Li   return _mm512_mask_adds_epi16(__W,__U,__A,__B);
587*67e74705SXin Li }
test_mm512_maskz_adds_epi16(__mmask32 __U,__m512i __A,__m512i __B)588*67e74705SXin Li __m512i test_mm512_maskz_adds_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
589*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_adds_epi16
590*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.padds.w.512
591*67e74705SXin Li   return _mm512_maskz_adds_epi16(__U,__A,__B);
592*67e74705SXin Li }
test_mm512_adds_epu8(__m512i __A,__m512i __B)593*67e74705SXin Li __m512i test_mm512_adds_epu8(__m512i __A, __m512i __B) {
594*67e74705SXin Li   // CHECK-LABEL: @test_mm512_adds_epu8
595*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.paddus.b.512
596*67e74705SXin Li   return _mm512_adds_epu8(__A,__B);
597*67e74705SXin Li }
test_mm512_mask_adds_epu8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)598*67e74705SXin Li __m512i test_mm512_mask_adds_epu8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
599*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_adds_epu8
600*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.paddus.b.512
601*67e74705SXin Li   return _mm512_mask_adds_epu8(__W,__U,__A,__B);
602*67e74705SXin Li }
test_mm512_maskz_adds_epu8(__mmask64 __U,__m512i __A,__m512i __B)603*67e74705SXin Li __m512i test_mm512_maskz_adds_epu8(__mmask64 __U, __m512i __A, __m512i __B) {
604*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_adds_epu8
605*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.paddus.b.512
606*67e74705SXin Li   return _mm512_maskz_adds_epu8(__U,__A,__B);
607*67e74705SXin Li }
test_mm512_adds_epu16(__m512i __A,__m512i __B)608*67e74705SXin Li __m512i test_mm512_adds_epu16(__m512i __A, __m512i __B) {
609*67e74705SXin Li   // CHECK-LABEL: @test_mm512_adds_epu16
610*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.paddus.w.512
611*67e74705SXin Li   return _mm512_adds_epu16(__A,__B);
612*67e74705SXin Li }
test_mm512_mask_adds_epu16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)613*67e74705SXin Li __m512i test_mm512_mask_adds_epu16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
614*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_adds_epu16
615*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.paddus.w.512
616*67e74705SXin Li   return _mm512_mask_adds_epu16(__W,__U,__A,__B);
617*67e74705SXin Li }
test_mm512_maskz_adds_epu16(__mmask32 __U,__m512i __A,__m512i __B)618*67e74705SXin Li __m512i test_mm512_maskz_adds_epu16(__mmask32 __U, __m512i __A, __m512i __B) {
619*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_adds_epu16
620*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.paddus.w.512
621*67e74705SXin Li   return _mm512_maskz_adds_epu16(__U,__A,__B);
622*67e74705SXin Li }
test_mm512_avg_epu8(__m512i __A,__m512i __B)623*67e74705SXin Li __m512i test_mm512_avg_epu8(__m512i __A, __m512i __B) {
624*67e74705SXin Li   // CHECK-LABEL: @test_mm512_avg_epu8
625*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pavg.b.512
626*67e74705SXin Li   return _mm512_avg_epu8(__A,__B);
627*67e74705SXin Li }
test_mm512_mask_avg_epu8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)628*67e74705SXin Li __m512i test_mm512_mask_avg_epu8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
629*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_avg_epu8
630*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pavg.b.512
631*67e74705SXin Li   return _mm512_mask_avg_epu8(__W,__U,__A,__B);
632*67e74705SXin Li }
test_mm512_maskz_avg_epu8(__mmask64 __U,__m512i __A,__m512i __B)633*67e74705SXin Li __m512i test_mm512_maskz_avg_epu8(__mmask64 __U, __m512i __A, __m512i __B) {
634*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_avg_epu8
635*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pavg.b.512
636*67e74705SXin Li   return _mm512_maskz_avg_epu8(__U,__A,__B);
637*67e74705SXin Li }
test_mm512_avg_epu16(__m512i __A,__m512i __B)638*67e74705SXin Li __m512i test_mm512_avg_epu16(__m512i __A, __m512i __B) {
639*67e74705SXin Li   // CHECK-LABEL: @test_mm512_avg_epu16
640*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pavg.w.512
641*67e74705SXin Li   return _mm512_avg_epu16(__A,__B);
642*67e74705SXin Li }
test_mm512_mask_avg_epu16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)643*67e74705SXin Li __m512i test_mm512_mask_avg_epu16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
644*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_avg_epu16
645*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pavg.w.512
646*67e74705SXin Li   return _mm512_mask_avg_epu16(__W,__U,__A,__B);
647*67e74705SXin Li }
test_mm512_maskz_avg_epu16(__mmask32 __U,__m512i __A,__m512i __B)648*67e74705SXin Li __m512i test_mm512_maskz_avg_epu16(__mmask32 __U, __m512i __A, __m512i __B) {
649*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_avg_epu16
650*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pavg.w.512
651*67e74705SXin Li   return _mm512_maskz_avg_epu16(__U,__A,__B);
652*67e74705SXin Li }
test_mm512_max_epi8(__m512i __A,__m512i __B)653*67e74705SXin Li __m512i test_mm512_max_epi8(__m512i __A, __m512i __B) {
654*67e74705SXin Li   // CHECK-LABEL: @test_mm512_max_epi8
655*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmaxs.b.512
656*67e74705SXin Li   return _mm512_max_epi8(__A,__B);
657*67e74705SXin Li }
test_mm512_maskz_max_epi8(__mmask64 __M,__m512i __A,__m512i __B)658*67e74705SXin Li __m512i test_mm512_maskz_max_epi8(__mmask64 __M, __m512i __A, __m512i __B) {
659*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_max_epi8
660*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmaxs.b.512
661*67e74705SXin Li   return _mm512_maskz_max_epi8(__M,__A,__B);
662*67e74705SXin Li }
test_mm512_mask_max_epi8(__m512i __W,__mmask64 __M,__m512i __A,__m512i __B)663*67e74705SXin Li __m512i test_mm512_mask_max_epi8(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) {
664*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_max_epi8
665*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmaxs.b.512
666*67e74705SXin Li   return _mm512_mask_max_epi8(__W,__M,__A,__B);
667*67e74705SXin Li }
test_mm512_max_epi16(__m512i __A,__m512i __B)668*67e74705SXin Li __m512i test_mm512_max_epi16(__m512i __A, __m512i __B) {
669*67e74705SXin Li   // CHECK-LABEL: @test_mm512_max_epi16
670*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmaxs.w.512
671*67e74705SXin Li   return _mm512_max_epi16(__A,__B);
672*67e74705SXin Li }
test_mm512_maskz_max_epi16(__mmask32 __M,__m512i __A,__m512i __B)673*67e74705SXin Li __m512i test_mm512_maskz_max_epi16(__mmask32 __M, __m512i __A, __m512i __B) {
674*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_max_epi16
675*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmaxs.w.512
676*67e74705SXin Li   return _mm512_maskz_max_epi16(__M,__A,__B);
677*67e74705SXin Li }
test_mm512_mask_max_epi16(__m512i __W,__mmask32 __M,__m512i __A,__m512i __B)678*67e74705SXin Li __m512i test_mm512_mask_max_epi16(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) {
679*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_max_epi16
680*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmaxs.w.512
681*67e74705SXin Li   return _mm512_mask_max_epi16(__W,__M,__A,__B);
682*67e74705SXin Li }
test_mm512_max_epu8(__m512i __A,__m512i __B)683*67e74705SXin Li __m512i test_mm512_max_epu8(__m512i __A, __m512i __B) {
684*67e74705SXin Li   // CHECK-LABEL: @test_mm512_max_epu8
685*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmaxu.b.512
686*67e74705SXin Li   return _mm512_max_epu8(__A,__B);
687*67e74705SXin Li }
test_mm512_maskz_max_epu8(__mmask64 __M,__m512i __A,__m512i __B)688*67e74705SXin Li __m512i test_mm512_maskz_max_epu8(__mmask64 __M, __m512i __A, __m512i __B) {
689*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_max_epu8
690*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmaxu.b.512
691*67e74705SXin Li   return _mm512_maskz_max_epu8(__M,__A,__B);
692*67e74705SXin Li }
test_mm512_mask_max_epu8(__m512i __W,__mmask64 __M,__m512i __A,__m512i __B)693*67e74705SXin Li __m512i test_mm512_mask_max_epu8(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) {
694*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_max_epu8
695*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmaxu.b.512
696*67e74705SXin Li   return _mm512_mask_max_epu8(__W,__M,__A,__B);
697*67e74705SXin Li }
test_mm512_max_epu16(__m512i __A,__m512i __B)698*67e74705SXin Li __m512i test_mm512_max_epu16(__m512i __A, __m512i __B) {
699*67e74705SXin Li   // CHECK-LABEL: @test_mm512_max_epu16
700*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmaxu.w.512
701*67e74705SXin Li   return _mm512_max_epu16(__A,__B);
702*67e74705SXin Li }
test_mm512_maskz_max_epu16(__mmask32 __M,__m512i __A,__m512i __B)703*67e74705SXin Li __m512i test_mm512_maskz_max_epu16(__mmask32 __M, __m512i __A, __m512i __B) {
704*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_max_epu16
705*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmaxu.w.512
706*67e74705SXin Li   return _mm512_maskz_max_epu16(__M,__A,__B);
707*67e74705SXin Li }
test_mm512_mask_max_epu16(__m512i __W,__mmask32 __M,__m512i __A,__m512i __B)708*67e74705SXin Li __m512i test_mm512_mask_max_epu16(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) {
709*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_max_epu16
710*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmaxu.w.512
711*67e74705SXin Li   return _mm512_mask_max_epu16(__W,__M,__A,__B);
712*67e74705SXin Li }
test_mm512_min_epi8(__m512i __A,__m512i __B)713*67e74705SXin Li __m512i test_mm512_min_epi8(__m512i __A, __m512i __B) {
714*67e74705SXin Li   // CHECK-LABEL: @test_mm512_min_epi8
715*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmins.b.512
716*67e74705SXin Li   return _mm512_min_epi8(__A,__B);
717*67e74705SXin Li }
test_mm512_maskz_min_epi8(__mmask64 __M,__m512i __A,__m512i __B)718*67e74705SXin Li __m512i test_mm512_maskz_min_epi8(__mmask64 __M, __m512i __A, __m512i __B) {
719*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_min_epi8
720*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmins.b.512
721*67e74705SXin Li   return _mm512_maskz_min_epi8(__M,__A,__B);
722*67e74705SXin Li }
test_mm512_mask_min_epi8(__m512i __W,__mmask64 __M,__m512i __A,__m512i __B)723*67e74705SXin Li __m512i test_mm512_mask_min_epi8(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) {
724*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_min_epi8
725*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmins.b.512
726*67e74705SXin Li   return _mm512_mask_min_epi8(__W,__M,__A,__B);
727*67e74705SXin Li }
test_mm512_min_epi16(__m512i __A,__m512i __B)728*67e74705SXin Li __m512i test_mm512_min_epi16(__m512i __A, __m512i __B) {
729*67e74705SXin Li   // CHECK-LABEL: @test_mm512_min_epi16
730*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmins.w.512
731*67e74705SXin Li   return _mm512_min_epi16(__A,__B);
732*67e74705SXin Li }
test_mm512_maskz_min_epi16(__mmask32 __M,__m512i __A,__m512i __B)733*67e74705SXin Li __m512i test_mm512_maskz_min_epi16(__mmask32 __M, __m512i __A, __m512i __B) {
734*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_min_epi16
735*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmins.w.512
736*67e74705SXin Li   return _mm512_maskz_min_epi16(__M,__A,__B);
737*67e74705SXin Li }
test_mm512_mask_min_epi16(__m512i __W,__mmask32 __M,__m512i __A,__m512i __B)738*67e74705SXin Li __m512i test_mm512_mask_min_epi16(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) {
739*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_min_epi16
740*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmins.w.512
741*67e74705SXin Li   return _mm512_mask_min_epi16(__W,__M,__A,__B);
742*67e74705SXin Li }
test_mm512_min_epu8(__m512i __A,__m512i __B)743*67e74705SXin Li __m512i test_mm512_min_epu8(__m512i __A, __m512i __B) {
744*67e74705SXin Li   // CHECK-LABEL: @test_mm512_min_epu8
745*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pminu.b.512
746*67e74705SXin Li   return _mm512_min_epu8(__A,__B);
747*67e74705SXin Li }
test_mm512_maskz_min_epu8(__mmask64 __M,__m512i __A,__m512i __B)748*67e74705SXin Li __m512i test_mm512_maskz_min_epu8(__mmask64 __M, __m512i __A, __m512i __B) {
749*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_min_epu8
750*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pminu.b.512
751*67e74705SXin Li   return _mm512_maskz_min_epu8(__M,__A,__B);
752*67e74705SXin Li }
test_mm512_mask_min_epu8(__m512i __W,__mmask64 __M,__m512i __A,__m512i __B)753*67e74705SXin Li __m512i test_mm512_mask_min_epu8(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) {
754*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_min_epu8
755*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pminu.b.512
756*67e74705SXin Li   return _mm512_mask_min_epu8(__W,__M,__A,__B);
757*67e74705SXin Li }
test_mm512_min_epu16(__m512i __A,__m512i __B)758*67e74705SXin Li __m512i test_mm512_min_epu16(__m512i __A, __m512i __B) {
759*67e74705SXin Li   // CHECK-LABEL: @test_mm512_min_epu16
760*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pminu.w.512
761*67e74705SXin Li   return _mm512_min_epu16(__A,__B);
762*67e74705SXin Li }
test_mm512_maskz_min_epu16(__mmask32 __M,__m512i __A,__m512i __B)763*67e74705SXin Li __m512i test_mm512_maskz_min_epu16(__mmask32 __M, __m512i __A, __m512i __B) {
764*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_min_epu16
765*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pminu.w.512
766*67e74705SXin Li   return _mm512_maskz_min_epu16(__M,__A,__B);
767*67e74705SXin Li }
test_mm512_mask_min_epu16(__m512i __W,__mmask32 __M,__m512i __A,__m512i __B)768*67e74705SXin Li __m512i test_mm512_mask_min_epu16(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) {
769*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_min_epu16
770*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pminu.w.512
771*67e74705SXin Li   return _mm512_mask_min_epu16(__W,__M,__A,__B);
772*67e74705SXin Li }
test_mm512_shuffle_epi8(__m512i __A,__m512i __B)773*67e74705SXin Li __m512i test_mm512_shuffle_epi8(__m512i __A, __m512i __B) {
774*67e74705SXin Li   // CHECK-LABEL: @test_mm512_shuffle_epi8
775*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pshuf.b.512
776*67e74705SXin Li   return _mm512_shuffle_epi8(__A,__B);
777*67e74705SXin Li }
test_mm512_mask_shuffle_epi8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)778*67e74705SXin Li __m512i test_mm512_mask_shuffle_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
779*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_shuffle_epi8
780*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pshuf.b.512
781*67e74705SXin Li   return _mm512_mask_shuffle_epi8(__W,__U,__A,__B);
782*67e74705SXin Li }
test_mm512_maskz_shuffle_epi8(__mmask64 __U,__m512i __A,__m512i __B)783*67e74705SXin Li __m512i test_mm512_maskz_shuffle_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
784*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_shuffle_epi8
785*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pshuf.b.512
786*67e74705SXin Li   return _mm512_maskz_shuffle_epi8(__U,__A,__B);
787*67e74705SXin Li }
test_mm512_subs_epi8(__m512i __A,__m512i __B)788*67e74705SXin Li __m512i test_mm512_subs_epi8(__m512i __A, __m512i __B) {
789*67e74705SXin Li   // CHECK-LABEL: @test_mm512_subs_epi8
790*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psubs.b.512
791*67e74705SXin Li   return _mm512_subs_epi8(__A,__B);
792*67e74705SXin Li }
test_mm512_mask_subs_epi8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)793*67e74705SXin Li __m512i test_mm512_mask_subs_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
794*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_subs_epi8
795*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psubs.b.512
796*67e74705SXin Li   return _mm512_mask_subs_epi8(__W,__U,__A,__B);
797*67e74705SXin Li }
test_mm512_maskz_subs_epi8(__mmask64 __U,__m512i __A,__m512i __B)798*67e74705SXin Li __m512i test_mm512_maskz_subs_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
799*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_subs_epi8
800*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psubs.b.512
801*67e74705SXin Li   return _mm512_maskz_subs_epi8(__U,__A,__B);
802*67e74705SXin Li }
test_mm512_subs_epi16(__m512i __A,__m512i __B)803*67e74705SXin Li __m512i test_mm512_subs_epi16(__m512i __A, __m512i __B) {
804*67e74705SXin Li   // CHECK-LABEL: @test_mm512_subs_epi16
805*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psubs.w.512
806*67e74705SXin Li   return _mm512_subs_epi16(__A,__B);
807*67e74705SXin Li }
test_mm512_mask_subs_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)808*67e74705SXin Li __m512i test_mm512_mask_subs_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
809*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_subs_epi16
810*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psubs.w.512
811*67e74705SXin Li   return _mm512_mask_subs_epi16(__W,__U,__A,__B);
812*67e74705SXin Li }
test_mm512_maskz_subs_epi16(__mmask32 __U,__m512i __A,__m512i __B)813*67e74705SXin Li __m512i test_mm512_maskz_subs_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
814*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_subs_epi16
815*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psubs.w.512
816*67e74705SXin Li   return _mm512_maskz_subs_epi16(__U,__A,__B);
817*67e74705SXin Li }
test_mm512_subs_epu8(__m512i __A,__m512i __B)818*67e74705SXin Li __m512i test_mm512_subs_epu8(__m512i __A, __m512i __B) {
819*67e74705SXin Li   // CHECK-LABEL: @test_mm512_subs_epu8
820*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psubus.b.512
821*67e74705SXin Li   return _mm512_subs_epu8(__A,__B);
822*67e74705SXin Li }
test_mm512_mask_subs_epu8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)823*67e74705SXin Li __m512i test_mm512_mask_subs_epu8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
824*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_subs_epu8
825*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psubus.b.512
826*67e74705SXin Li   return _mm512_mask_subs_epu8(__W,__U,__A,__B);
827*67e74705SXin Li }
test_mm512_maskz_subs_epu8(__mmask64 __U,__m512i __A,__m512i __B)828*67e74705SXin Li __m512i test_mm512_maskz_subs_epu8(__mmask64 __U, __m512i __A, __m512i __B) {
829*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_subs_epu8
830*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psubus.b.512
831*67e74705SXin Li   return _mm512_maskz_subs_epu8(__U,__A,__B);
832*67e74705SXin Li }
test_mm512_subs_epu16(__m512i __A,__m512i __B)833*67e74705SXin Li __m512i test_mm512_subs_epu16(__m512i __A, __m512i __B) {
834*67e74705SXin Li   // CHECK-LABEL: @test_mm512_subs_epu16
835*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psubus.w.512
836*67e74705SXin Li   return _mm512_subs_epu16(__A,__B);
837*67e74705SXin Li }
test_mm512_mask_subs_epu16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)838*67e74705SXin Li __m512i test_mm512_mask_subs_epu16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
839*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_subs_epu16
840*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psubus.w.512
841*67e74705SXin Li   return _mm512_mask_subs_epu16(__W,__U,__A,__B);
842*67e74705SXin Li }
test_mm512_maskz_subs_epu16(__mmask32 __U,__m512i __A,__m512i __B)843*67e74705SXin Li __m512i test_mm512_maskz_subs_epu16(__mmask32 __U, __m512i __A, __m512i __B) {
844*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_subs_epu16
845*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psubus.w.512
846*67e74705SXin Li   return _mm512_maskz_subs_epu16(__U,__A,__B);
847*67e74705SXin Li }
test_mm512_mask2_permutex2var_epi16(__m512i __A,__m512i __I,__mmask32 __U,__m512i __B)848*67e74705SXin Li __m512i test_mm512_mask2_permutex2var_epi16(__m512i __A, __m512i __I, __mmask32 __U, __m512i __B) {
849*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask2_permutex2var_epi16
850*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vpermi2var.hi.512
851*67e74705SXin Li   return _mm512_mask2_permutex2var_epi16(__A,__I,__U,__B);
852*67e74705SXin Li }
test_mm512_permutex2var_epi16(__m512i __A,__m512i __I,__m512i __B)853*67e74705SXin Li __m512i test_mm512_permutex2var_epi16(__m512i __A, __m512i __I, __m512i __B) {
854*67e74705SXin Li   // CHECK-LABEL: @test_mm512_permutex2var_epi16
855*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vpermt2var.hi.512
856*67e74705SXin Li   return _mm512_permutex2var_epi16(__A,__I,__B);
857*67e74705SXin Li }
test_mm512_mask_permutex2var_epi16(__m512i __A,__mmask32 __U,__m512i __I,__m512i __B)858*67e74705SXin Li __m512i test_mm512_mask_permutex2var_epi16(__m512i __A, __mmask32 __U, __m512i __I, __m512i __B) {
859*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_permutex2var_epi16
860*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vpermt2var.hi.512
861*67e74705SXin Li   return _mm512_mask_permutex2var_epi16(__A,__U,__I,__B);
862*67e74705SXin Li }
test_mm512_maskz_permutex2var_epi16(__mmask32 __U,__m512i __A,__m512i __I,__m512i __B)863*67e74705SXin Li __m512i test_mm512_maskz_permutex2var_epi16(__mmask32 __U, __m512i __A, __m512i __I, __m512i __B) {
864*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_permutex2var_epi16
865*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vpermt2var.hi.512
866*67e74705SXin Li   return _mm512_maskz_permutex2var_epi16(__U,__A,__I,__B);
867*67e74705SXin Li }
868*67e74705SXin Li 
test_mm512_mulhrs_epi16(__m512i __A,__m512i __B)869*67e74705SXin Li __m512i test_mm512_mulhrs_epi16(__m512i __A, __m512i __B) {
870*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mulhrs_epi16
871*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmul.hr.sw.512
872*67e74705SXin Li   return _mm512_mulhrs_epi16(__A,__B);
873*67e74705SXin Li }
test_mm512_mask_mulhrs_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)874*67e74705SXin Li __m512i test_mm512_mask_mulhrs_epi16(__m512i __W, __mmask32 __U, __m512i __A,        __m512i __B) {
875*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_mulhrs_epi16
876*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmul.hr.sw.512
877*67e74705SXin Li   return _mm512_mask_mulhrs_epi16(__W,__U,__A,__B);
878*67e74705SXin Li }
test_mm512_maskz_mulhrs_epi16(__mmask32 __U,__m512i __A,__m512i __B)879*67e74705SXin Li __m512i test_mm512_maskz_mulhrs_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
880*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_mulhrs_epi16
881*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmul.hr.sw.512
882*67e74705SXin Li   return _mm512_maskz_mulhrs_epi16(__U,__A,__B);
883*67e74705SXin Li }
test_mm512_mulhi_epi16(__m512i __A,__m512i __B)884*67e74705SXin Li __m512i test_mm512_mulhi_epi16(__m512i __A, __m512i __B) {
885*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mulhi_epi16
886*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmulh.w.512
887*67e74705SXin Li   return _mm512_mulhi_epi16(__A,__B);
888*67e74705SXin Li }
test_mm512_mask_mulhi_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)889*67e74705SXin Li __m512i test_mm512_mask_mulhi_epi16(__m512i __W, __mmask32 __U, __m512i __A,       __m512i __B) {
890*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_mulhi_epi16
891*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmulh.w.512
892*67e74705SXin Li   return _mm512_mask_mulhi_epi16(__W,__U,__A,__B);
893*67e74705SXin Li }
test_mm512_maskz_mulhi_epi16(__mmask32 __U,__m512i __A,__m512i __B)894*67e74705SXin Li __m512i test_mm512_maskz_mulhi_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
895*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_mulhi_epi16
896*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmulh.w.512
897*67e74705SXin Li   return _mm512_maskz_mulhi_epi16(__U,__A,__B);
898*67e74705SXin Li }
test_mm512_mulhi_epu16(__m512i __A,__m512i __B)899*67e74705SXin Li __m512i test_mm512_mulhi_epu16(__m512i __A, __m512i __B) {
900*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mulhi_epu16
901*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmulhu.w.512
902*67e74705SXin Li   return _mm512_mulhi_epu16(__A,__B);
903*67e74705SXin Li }
test_mm512_mask_mulhi_epu16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)904*67e74705SXin Li __m512i test_mm512_mask_mulhi_epu16(__m512i __W, __mmask32 __U, __m512i __A,       __m512i __B) {
905*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_mulhi_epu16
906*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmulhu.w.512
907*67e74705SXin Li   return _mm512_mask_mulhi_epu16(__W,__U,__A,__B);
908*67e74705SXin Li }
test_mm512_maskz_mulhi_epu16(__mmask32 __U,__m512i __A,__m512i __B)909*67e74705SXin Li __m512i test_mm512_maskz_mulhi_epu16(__mmask32 __U, __m512i __A, __m512i __B) {
910*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_mulhi_epu16
911*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmulhu.w.512
912*67e74705SXin Li   return _mm512_maskz_mulhi_epu16(__U,__A,__B);
913*67e74705SXin Li }
914*67e74705SXin Li 
test_mm512_maddubs_epi16(__m512i __X,__m512i __Y)915*67e74705SXin Li __m512i test_mm512_maddubs_epi16(__m512i __X, __m512i __Y) {
916*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maddubs_epi16
917*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmaddubs.w.512
918*67e74705SXin Li   return _mm512_maddubs_epi16(__X,__Y);
919*67e74705SXin Li }
test_mm512_mask_maddubs_epi16(__m512i __W,__mmask32 __U,__m512i __X,__m512i __Y)920*67e74705SXin Li __m512i test_mm512_mask_maddubs_epi16(__m512i __W, __mmask32 __U, __m512i __X,         __m512i __Y) {
921*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_maddubs_epi16
922*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmaddubs.w.512
923*67e74705SXin Li   return _mm512_mask_maddubs_epi16(__W,__U,__X,__Y);
924*67e74705SXin Li }
test_mm512_maskz_maddubs_epi16(__mmask32 __U,__m512i __X,__m512i __Y)925*67e74705SXin Li __m512i test_mm512_maskz_maddubs_epi16(__mmask32 __U, __m512i __X, __m512i __Y) {
926*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_maddubs_epi16
927*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmaddubs.w.512
928*67e74705SXin Li   return _mm512_maskz_maddubs_epi16(__U,__X,__Y);
929*67e74705SXin Li }
test_mm512_madd_epi16(__m512i __A,__m512i __B)930*67e74705SXin Li __m512i test_mm512_madd_epi16(__m512i __A, __m512i __B) {
931*67e74705SXin Li   // CHECK-LABEL: @test_mm512_madd_epi16
932*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmaddw.d.512
933*67e74705SXin Li   return _mm512_madd_epi16(__A,__B);
934*67e74705SXin Li }
test_mm512_mask_madd_epi16(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)935*67e74705SXin Li __m512i test_mm512_mask_madd_epi16(__m512i __W, __mmask16 __U, __m512i __A,      __m512i __B) {
936*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_madd_epi16
937*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmaddw.d.512
938*67e74705SXin Li   return _mm512_mask_madd_epi16(__W,__U,__A,__B);
939*67e74705SXin Li }
test_mm512_maskz_madd_epi16(__mmask16 __U,__m512i __A,__m512i __B)940*67e74705SXin Li __m512i test_mm512_maskz_madd_epi16(__mmask16 __U, __m512i __A, __m512i __B) {
941*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_madd_epi16
942*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmaddw.d.512
943*67e74705SXin Li   return _mm512_maskz_madd_epi16(__U,__A,__B);
944*67e74705SXin Li }
945*67e74705SXin Li 
test_mm512_cvtsepi16_epi8(__m512i __A)946*67e74705SXin Li __m256i test_mm512_cvtsepi16_epi8(__m512i __A) {
947*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtsepi16_epi8
948*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovs.wb.512
949*67e74705SXin Li   return _mm512_cvtsepi16_epi8(__A);
950*67e74705SXin Li }
951*67e74705SXin Li 
test_mm512_mask_cvtsepi16_epi8(__m256i __O,__mmask32 __M,__m512i __A)952*67e74705SXin Li __m256i test_mm512_mask_cvtsepi16_epi8(__m256i __O, __mmask32 __M, __m512i __A) {
953*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtsepi16_epi8
954*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovs.wb.512
955*67e74705SXin Li   return _mm512_mask_cvtsepi16_epi8(__O, __M, __A);
956*67e74705SXin Li }
957*67e74705SXin Li 
test_mm512_maskz_cvtsepi16_epi8(__mmask32 __M,__m512i __A)958*67e74705SXin Li __m256i test_mm512_maskz_cvtsepi16_epi8(__mmask32 __M, __m512i __A) {
959*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtsepi16_epi8
960*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovs.wb.512
961*67e74705SXin Li   return _mm512_maskz_cvtsepi16_epi8(__M, __A);
962*67e74705SXin Li }
963*67e74705SXin Li 
test_mm512_cvtusepi16_epi8(__m512i __A)964*67e74705SXin Li __m256i test_mm512_cvtusepi16_epi8(__m512i __A) {
965*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtusepi16_epi8
966*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovus.wb.512
967*67e74705SXin Li   return _mm512_cvtusepi16_epi8(__A);
968*67e74705SXin Li }
969*67e74705SXin Li 
test_mm512_mask_cvtusepi16_epi8(__m256i __O,__mmask32 __M,__m512i __A)970*67e74705SXin Li __m256i test_mm512_mask_cvtusepi16_epi8(__m256i __O, __mmask32 __M, __m512i __A) {
971*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtusepi16_epi8
972*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovus.wb.512
973*67e74705SXin Li   return _mm512_mask_cvtusepi16_epi8(__O, __M, __A);
974*67e74705SXin Li }
975*67e74705SXin Li 
test_mm512_maskz_cvtusepi16_epi8(__mmask32 __M,__m512i __A)976*67e74705SXin Li __m256i test_mm512_maskz_cvtusepi16_epi8(__mmask32 __M, __m512i __A) {
977*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtusepi16_epi8
978*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovus.wb.512
979*67e74705SXin Li   return _mm512_maskz_cvtusepi16_epi8(__M, __A);
980*67e74705SXin Li }
981*67e74705SXin Li 
test_mm512_cvtepi16_epi8(__m512i __A)982*67e74705SXin Li __m256i test_mm512_cvtepi16_epi8(__m512i __A) {
983*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtepi16_epi8
984*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmov.wb.512
985*67e74705SXin Li   return _mm512_cvtepi16_epi8(__A);
986*67e74705SXin Li }
987*67e74705SXin Li 
test_mm512_mask_cvtepi16_epi8(__m256i __O,__mmask32 __M,__m512i __A)988*67e74705SXin Li __m256i test_mm512_mask_cvtepi16_epi8(__m256i __O, __mmask32 __M, __m512i __A) {
989*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtepi16_epi8
990*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmov.wb.512
991*67e74705SXin Li   return _mm512_mask_cvtepi16_epi8(__O, __M, __A);
992*67e74705SXin Li }
993*67e74705SXin Li 
test_mm512_maskz_cvtepi16_epi8(__mmask32 __M,__m512i __A)994*67e74705SXin Li __m256i test_mm512_maskz_cvtepi16_epi8(__mmask32 __M, __m512i __A) {
995*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtepi16_epi8
996*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmov.wb.512
997*67e74705SXin Li   return _mm512_maskz_cvtepi16_epi8(__M, __A);
998*67e74705SXin Li }
999*67e74705SXin Li 
test_mm512_unpackhi_epi8(__m512i __A,__m512i __B)1000*67e74705SXin Li __m512i test_mm512_unpackhi_epi8(__m512i __A, __m512i __B) {
1001*67e74705SXin Li   // CHECK-LABEL: @test_mm512_unpackhi_epi8
1002*67e74705SXin Li   // CHECK: shufflevector <64 x i8> %{{.*}}, <64 x i8> %{{.*}}, <64 x i32> <i32 8, i32 72, i32 9, i32 73, i32 10, i32 74, i32 11, i32 75, i32 12, i32 76, i32 13, i32 77, i32 14, i32 78, i32 15, i32 79, i32 24, i32 88, i32 25, i32 89, i32 26, i32 90, i32 27, i32 91, i32 28, i32 92, i32 29, i32 93, i32 30, i32 94, i32 31, i32 95, i32 40, i32 104, i32 41, i32 105, i32 42, i32 106, i32 43, i32 107, i32 44, i32 108, i32 45, i32 109, i32 46, i32 110, i32 47, i32 111, i32 56, i32 120, i32 57, i32 121, i32 58, i32 122, i32 59, i32 123, i32 60, i32 124, i32 61, i32 125, i32 62, i32 126, i32 63, i32 127>
1003*67e74705SXin Li   return _mm512_unpackhi_epi8(__A, __B);
1004*67e74705SXin Li }
1005*67e74705SXin Li 
test_mm512_mask_unpackhi_epi8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)1006*67e74705SXin Li __m512i test_mm512_mask_unpackhi_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
1007*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_unpackhi_epi8
1008*67e74705SXin Li   // CHECK: shufflevector <64 x i8> %{{.*}}, <64 x i8> %{{.*}}, <64 x i32> <i32 8, i32 72, i32 9, i32 73, i32 10, i32 74, i32 11, i32 75, i32 12, i32 76, i32 13, i32 77, i32 14, i32 78, i32 15, i32 79, i32 24, i32 88, i32 25, i32 89, i32 26, i32 90, i32 27, i32 91, i32 28, i32 92, i32 29, i32 93, i32 30, i32 94, i32 31, i32 95, i32 40, i32 104, i32 41, i32 105, i32 42, i32 106, i32 43, i32 107, i32 44, i32 108, i32 45, i32 109, i32 46, i32 110, i32 47, i32 111, i32 56, i32 120, i32 57, i32 121, i32 58, i32 122, i32 59, i32 123, i32 60, i32 124, i32 61, i32 125, i32 62, i32 126, i32 63, i32 127>
1009*67e74705SXin Li   // CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
1010*67e74705SXin Li   return _mm512_mask_unpackhi_epi8(__W, __U, __A, __B);
1011*67e74705SXin Li }
1012*67e74705SXin Li 
test_mm512_maskz_unpackhi_epi8(__mmask64 __U,__m512i __A,__m512i __B)1013*67e74705SXin Li __m512i test_mm512_maskz_unpackhi_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
1014*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_unpackhi_epi8
1015*67e74705SXin Li   // CHECK: shufflevector <64 x i8> %{{.*}}, <64 x i8> %{{.*}}, <64 x i32> <i32 8, i32 72, i32 9, i32 73, i32 10, i32 74, i32 11, i32 75, i32 12, i32 76, i32 13, i32 77, i32 14, i32 78, i32 15, i32 79, i32 24, i32 88, i32 25, i32 89, i32 26, i32 90, i32 27, i32 91, i32 28, i32 92, i32 29, i32 93, i32 30, i32 94, i32 31, i32 95, i32 40, i32 104, i32 41, i32 105, i32 42, i32 106, i32 43, i32 107, i32 44, i32 108, i32 45, i32 109, i32 46, i32 110, i32 47, i32 111, i32 56, i32 120, i32 57, i32 121, i32 58, i32 122, i32 59, i32 123, i32 60, i32 124, i32 61, i32 125, i32 62, i32 126, i32 63, i32 127>
1016*67e74705SXin Li   // CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
1017*67e74705SXin Li   return _mm512_maskz_unpackhi_epi8(__U, __A, __B);
1018*67e74705SXin Li }
1019*67e74705SXin Li 
test_mm512_unpackhi_epi16(__m512i __A,__m512i __B)1020*67e74705SXin Li __m512i test_mm512_unpackhi_epi16(__m512i __A, __m512i __B) {
1021*67e74705SXin Li   // CHECK-LABEL: @test_mm512_unpackhi_epi16
1022*67e74705SXin Li   // CHECK: shufflevector <32 x i16> %{{.*}}, <32 x i16> %{{.*}}, <32 x i32> <i32 4, i32 36, i32 5, i32 37, i32 6, i32 38, i32 7, i32 39, i32 12, i32 44, i32 13, i32 45, i32 14, i32 46, i32 15, i32 47, i32 20, i32 52, i32 21, i32 53, i32 22, i32 54, i32 23, i32 55, i32 28, i32 60, i32 29, i32 61, i32 30, i32 62, i32 31, i32 63>
1023*67e74705SXin Li   return _mm512_unpackhi_epi16(__A, __B);
1024*67e74705SXin Li }
1025*67e74705SXin Li 
test_mm512_mask_unpackhi_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)1026*67e74705SXin Li __m512i test_mm512_mask_unpackhi_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
1027*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_unpackhi_epi16
1028*67e74705SXin Li   // CHECK: shufflevector <32 x i16> %{{.*}}, <32 x i16> %{{.*}}, <32 x i32> <i32 4, i32 36, i32 5, i32 37, i32 6, i32 38, i32 7, i32 39, i32 12, i32 44, i32 13, i32 45, i32 14, i32 46, i32 15, i32 47, i32 20, i32 52, i32 21, i32 53, i32 22, i32 54, i32 23, i32 55, i32 28, i32 60, i32 29, i32 61, i32 30, i32 62, i32 31, i32 63>
1029*67e74705SXin Li   // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
1030*67e74705SXin Li   return _mm512_mask_unpackhi_epi16(__W, __U, __A, __B);
1031*67e74705SXin Li }
1032*67e74705SXin Li 
test_mm512_maskz_unpackhi_epi16(__mmask32 __U,__m512i __A,__m512i __B)1033*67e74705SXin Li __m512i test_mm512_maskz_unpackhi_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
1034*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_unpackhi_epi16
1035*67e74705SXin Li   // CHECK: shufflevector <32 x i16> %{{.*}}, <32 x i16> %{{.*}}, <32 x i32> <i32 4, i32 36, i32 5, i32 37, i32 6, i32 38, i32 7, i32 39, i32 12, i32 44, i32 13, i32 45, i32 14, i32 46, i32 15, i32 47, i32 20, i32 52, i32 21, i32 53, i32 22, i32 54, i32 23, i32 55, i32 28, i32 60, i32 29, i32 61, i32 30, i32 62, i32 31, i32 63>
1036*67e74705SXin Li   // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
1037*67e74705SXin Li   return _mm512_maskz_unpackhi_epi16(__U, __A, __B);
1038*67e74705SXin Li }
1039*67e74705SXin Li 
test_mm512_unpacklo_epi8(__m512i __A,__m512i __B)1040*67e74705SXin Li __m512i test_mm512_unpacklo_epi8(__m512i __A, __m512i __B) {
1041*67e74705SXin Li   // CHECK-LABEL: @test_mm512_unpacklo_epi8
1042*67e74705SXin Li   // CHECK: shufflevector <64 x i8> %{{.*}}, <64 x i8> %{{.*}}, <64 x i32> <i32 0, i32 64, i32 1, i32 65, i32 2, i32 66, i32 3, i32 67, i32 4, i32 68, i32 5, i32 69, i32 6, i32 70, i32 7, i32 71, i32 16, i32 80, i32 17, i32 81, i32 18, i32 82, i32 19, i32 83, i32 20, i32 84, i32 21, i32 85, i32 22, i32 86, i32 23, i32 87, i32 32, i32 96, i32 33, i32 97, i32 34, i32 98, i32 35, i32 99, i32 36, i32 100, i32 37, i32 101, i32 38, i32 102, i32 39, i32 103, i32 48, i32 112, i32 49, i32 113, i32 50, i32 114, i32 51, i32 115, i32 52, i32 116, i32 53, i32 117, i32 54, i32 118, i32 55, i32 119>
1043*67e74705SXin Li   return _mm512_unpacklo_epi8(__A, __B);
1044*67e74705SXin Li }
1045*67e74705SXin Li 
test_mm512_mask_unpacklo_epi8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)1046*67e74705SXin Li __m512i test_mm512_mask_unpacklo_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
1047*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_unpacklo_epi8
1048*67e74705SXin Li   // CHECK: shufflevector <64 x i8> %{{.*}}, <64 x i8> %{{.*}}, <64 x i32> <i32 0, i32 64, i32 1, i32 65, i32 2, i32 66, i32 3, i32 67, i32 4, i32 68, i32 5, i32 69, i32 6, i32 70, i32 7, i32 71, i32 16, i32 80, i32 17, i32 81, i32 18, i32 82, i32 19, i32 83, i32 20, i32 84, i32 21, i32 85, i32 22, i32 86, i32 23, i32 87, i32 32, i32 96, i32 33, i32 97, i32 34, i32 98, i32 35, i32 99, i32 36, i32 100, i32 37, i32 101, i32 38, i32 102, i32 39, i32 103, i32 48, i32 112, i32 49, i32 113, i32 50, i32 114, i32 51, i32 115, i32 52, i32 116, i32 53, i32 117, i32 54, i32 118, i32 55, i32 119>
1049*67e74705SXin Li   // CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
1050*67e74705SXin Li   return _mm512_mask_unpacklo_epi8(__W, __U, __A, __B);
1051*67e74705SXin Li }
1052*67e74705SXin Li 
test_mm512_maskz_unpacklo_epi8(__mmask64 __U,__m512i __A,__m512i __B)1053*67e74705SXin Li __m512i test_mm512_maskz_unpacklo_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
1054*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_unpacklo_epi8
1055*67e74705SXin Li   // CHECK: shufflevector <64 x i8> %{{.*}}, <64 x i8> %{{.*}}, <64 x i32> <i32 0, i32 64, i32 1, i32 65, i32 2, i32 66, i32 3, i32 67, i32 4, i32 68, i32 5, i32 69, i32 6, i32 70, i32 7, i32 71, i32 16, i32 80, i32 17, i32 81, i32 18, i32 82, i32 19, i32 83, i32 20, i32 84, i32 21, i32 85, i32 22, i32 86, i32 23, i32 87, i32 32, i32 96, i32 33, i32 97, i32 34, i32 98, i32 35, i32 99, i32 36, i32 100, i32 37, i32 101, i32 38, i32 102, i32 39, i32 103, i32 48, i32 112, i32 49, i32 113, i32 50, i32 114, i32 51, i32 115, i32 52, i32 116, i32 53, i32 117, i32 54, i32 118, i32 55, i32 119>
1056*67e74705SXin Li   // CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
1057*67e74705SXin Li   return _mm512_maskz_unpacklo_epi8(__U, __A, __B);
1058*67e74705SXin Li }
1059*67e74705SXin Li 
test_mm512_unpacklo_epi16(__m512i __A,__m512i __B)1060*67e74705SXin Li __m512i test_mm512_unpacklo_epi16(__m512i __A, __m512i __B) {
1061*67e74705SXin Li   // CHECK-LABEL: @test_mm512_unpacklo_epi16
1062*67e74705SXin Li   // CHECK: shufflevector <32 x i16> %{{.*}}, <32 x i16> %{{.*}}, <32 x i32> <i32 0, i32 32, i32 1, i32 33, i32 2, i32 34, i32 3, i32 35, i32 8, i32 40, i32 9, i32 41, i32 10, i32 42, i32 11, i32 43, i32 16, i32 48, i32 17, i32 49, i32 18, i32 50, i32 19, i32 51, i32 24, i32 56, i32 25, i32 57, i32 26, i32 58, i32 27, i32 59>
1063*67e74705SXin Li   return _mm512_unpacklo_epi16(__A, __B);
1064*67e74705SXin Li }
1065*67e74705SXin Li 
test_mm512_mask_unpacklo_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)1066*67e74705SXin Li __m512i test_mm512_mask_unpacklo_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
1067*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_unpacklo_epi16
1068*67e74705SXin Li   // CHECK: shufflevector <32 x i16> %{{.*}}, <32 x i16> %{{.*}}, <32 x i32> <i32 0, i32 32, i32 1, i32 33, i32 2, i32 34, i32 3, i32 35, i32 8, i32 40, i32 9, i32 41, i32 10, i32 42, i32 11, i32 43, i32 16, i32 48, i32 17, i32 49, i32 18, i32 50, i32 19, i32 51, i32 24, i32 56, i32 25, i32 57, i32 26, i32 58, i32 27, i32 59>
1069*67e74705SXin Li   // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
1070*67e74705SXin Li   return _mm512_mask_unpacklo_epi16(__W, __U, __A, __B);
1071*67e74705SXin Li }
1072*67e74705SXin Li 
test_mm512_maskz_unpacklo_epi16(__mmask32 __U,__m512i __A,__m512i __B)1073*67e74705SXin Li __m512i test_mm512_maskz_unpacklo_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
1074*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_unpacklo_epi16
1075*67e74705SXin Li   // CHECK: shufflevector <32 x i16> %{{.*}}, <32 x i16> %{{.*}}, <32 x i32> <i32 0, i32 32, i32 1, i32 33, i32 2, i32 34, i32 3, i32 35, i32 8, i32 40, i32 9, i32 41, i32 10, i32 42, i32 11, i32 43, i32 16, i32 48, i32 17, i32 49, i32 18, i32 50, i32 19, i32 51, i32 24, i32 56, i32 25, i32 57, i32 26, i32 58, i32 27, i32 59>
1076*67e74705SXin Li   // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
1077*67e74705SXin Li   return _mm512_maskz_unpacklo_epi16(__U, __A, __B);
1078*67e74705SXin Li }
1079*67e74705SXin Li 
test_mm512_cvtepi8_epi16(__m256i __A)1080*67e74705SXin Li __m512i test_mm512_cvtepi8_epi16(__m256i __A) {
1081*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtepi8_epi16
1082*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovsxb.w.512
1083*67e74705SXin Li   return _mm512_cvtepi8_epi16(__A);
1084*67e74705SXin Li }
1085*67e74705SXin Li 
test_mm512_mask_cvtepi8_epi16(__m512i __W,__mmask32 __U,__m256i __A)1086*67e74705SXin Li __m512i test_mm512_mask_cvtepi8_epi16(__m512i __W, __mmask32 __U, __m256i __A) {
1087*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtepi8_epi16
1088*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovsxb.w.512
1089*67e74705SXin Li   return _mm512_mask_cvtepi8_epi16(__W, __U, __A);
1090*67e74705SXin Li }
1091*67e74705SXin Li 
test_mm512_maskz_cvtepi8_epi16(__mmask32 __U,__m256i __A)1092*67e74705SXin Li __m512i test_mm512_maskz_cvtepi8_epi16(__mmask32 __U, __m256i __A) {
1093*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtepi8_epi16
1094*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovsxb.w.512
1095*67e74705SXin Li   return _mm512_maskz_cvtepi8_epi16(__U, __A);
1096*67e74705SXin Li }
1097*67e74705SXin Li 
test_mm512_cvtepu8_epi16(__m256i __A)1098*67e74705SXin Li __m512i test_mm512_cvtepu8_epi16(__m256i __A) {
1099*67e74705SXin Li   // CHECK-LABEL: @test_mm512_cvtepu8_epi16
1100*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovzxb.w.512
1101*67e74705SXin Li   return _mm512_cvtepu8_epi16(__A);
1102*67e74705SXin Li }
1103*67e74705SXin Li 
test_mm512_mask_cvtepu8_epi16(__m512i __W,__mmask32 __U,__m256i __A)1104*67e74705SXin Li __m512i test_mm512_mask_cvtepu8_epi16(__m512i __W, __mmask32 __U, __m256i __A) {
1105*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_cvtepu8_epi16
1106*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovzxb.w.512
1107*67e74705SXin Li   return _mm512_mask_cvtepu8_epi16(__W, __U, __A);
1108*67e74705SXin Li }
1109*67e74705SXin Li 
test_mm512_maskz_cvtepu8_epi16(__mmask32 __U,__m256i __A)1110*67e74705SXin Li __m512i test_mm512_maskz_cvtepu8_epi16(__mmask32 __U, __m256i __A) {
1111*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_cvtepu8_epi16
1112*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmovzxb.w.512
1113*67e74705SXin Li   return _mm512_maskz_cvtepu8_epi16(__U, __A);
1114*67e74705SXin Li }
1115*67e74705SXin Li 
test_mm512_shufflehi_epi16(__m512i __A)1116*67e74705SXin Li __m512i test_mm512_shufflehi_epi16(__m512i __A) {
1117*67e74705SXin Li   // CHECK-LABEL: @test_mm512_shufflehi_epi16
1118*67e74705SXin Li   // CHECK: shufflevector <32 x i16> %{{.*}}, <32 x i16> %{{.*}}, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 5, i32 5, i32 4, i32 4, i32 8, i32 9, i32 10, i32 11, i32 13, i32 13, i32 12, i32 12, i32 16, i32 17, i32 18, i32 19, i32 21, i32 21, i32 20, i32 20, i32 24, i32 25, i32 26, i32 27, i32 29, i32 29, i32 28, i32 28>
1119*67e74705SXin Li   return _mm512_shufflehi_epi16(__A, 5);
1120*67e74705SXin Li }
1121*67e74705SXin Li 
test_mm512_mask_shufflehi_epi16(__m512i __W,__mmask32 __U,__m512i __A)1122*67e74705SXin Li __m512i test_mm512_mask_shufflehi_epi16(__m512i __W, __mmask32 __U, __m512i __A) {
1123*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_shufflehi_epi16
1124*67e74705SXin Li   // CHECK: shufflevector <32 x i16> %{{.*}}, <32 x i16> %{{.*}}, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 5, i32 5, i32 4, i32 4, i32 8, i32 9, i32 10, i32 11, i32 13, i32 13, i32 12, i32 12, i32 16, i32 17, i32 18, i32 19, i32 21, i32 21, i32 20, i32 20, i32 24, i32 25, i32 26, i32 27, i32 29, i32 29, i32 28, i32 28>
1125*67e74705SXin Li   // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
1126*67e74705SXin Li   return _mm512_mask_shufflehi_epi16(__W, __U, __A, 5);
1127*67e74705SXin Li }
1128*67e74705SXin Li 
test_mm512_maskz_shufflehi_epi16(__mmask32 __U,__m512i __A)1129*67e74705SXin Li __m512i test_mm512_maskz_shufflehi_epi16(__mmask32 __U, __m512i __A) {
1130*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_shufflehi_epi16
1131*67e74705SXin Li   // CHECK: shufflevector <32 x i16> %{{.*}}, <32 x i16> %{{.*}}, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 5, i32 5, i32 4, i32 4, i32 8, i32 9, i32 10, i32 11, i32 13, i32 13, i32 12, i32 12, i32 16, i32 17, i32 18, i32 19, i32 21, i32 21, i32 20, i32 20, i32 24, i32 25, i32 26, i32 27, i32 29, i32 29, i32 28, i32 28>
1132*67e74705SXin Li   // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
1133*67e74705SXin Li   return _mm512_maskz_shufflehi_epi16(__U, __A, 5);
1134*67e74705SXin Li }
1135*67e74705SXin Li 
test_mm512_shufflelo_epi16(__m512i __A)1136*67e74705SXin Li __m512i test_mm512_shufflelo_epi16(__m512i __A) {
1137*67e74705SXin Li   // CHECK-LABEL: @test_mm512_shufflelo_epi16
1138*67e74705SXin Li   // CHECK: shufflevector <32 x i16> %{{.*}}, <32 x i16> %{{.*}}, <32 x i32> <i32 1, i32 1, i32 0, i32 0, i32 4, i32 5, i32 6, i32 7, i32 9, i32 9, i32 8, i32 8, i32 12, i32 13, i32 14, i32 15, i32 17, i32 17, i32 16, i32 16, i32 20, i32 21, i32 22, i32 23, i32 25, i32 25, i32 24, i32 24, i32 28, i32 29, i32 30, i32 31>
1139*67e74705SXin Li   return _mm512_shufflelo_epi16(__A, 5);
1140*67e74705SXin Li }
1141*67e74705SXin Li 
test_mm512_mask_shufflelo_epi16(__m512i __W,__mmask32 __U,__m512i __A)1142*67e74705SXin Li __m512i test_mm512_mask_shufflelo_epi16(__m512i __W, __mmask32 __U, __m512i __A) {
1143*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_shufflelo_epi16
1144*67e74705SXin Li   // CHECK: shufflevector <32 x i16> %{{.*}}, <32 x i16> %{{.*}}, <32 x i32> <i32 1, i32 1, i32 0, i32 0, i32 4, i32 5, i32 6, i32 7, i32 9, i32 9, i32 8, i32 8, i32 12, i32 13, i32 14, i32 15, i32 17, i32 17, i32 16, i32 16, i32 20, i32 21, i32 22, i32 23, i32 25, i32 25, i32 24, i32 24, i32 28, i32 29, i32 30, i32 31>
1145*67e74705SXin Li   // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
1146*67e74705SXin Li   return _mm512_mask_shufflelo_epi16(__W, __U, __A, 5);
1147*67e74705SXin Li }
1148*67e74705SXin Li 
test_mm512_maskz_shufflelo_epi16(__mmask32 __U,__m512i __A)1149*67e74705SXin Li __m512i test_mm512_maskz_shufflelo_epi16(__mmask32 __U, __m512i __A) {
1150*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_shufflelo_epi16
1151*67e74705SXin Li   // CHECK: shufflevector <32 x i16> %{{.*}}, <32 x i16> %{{.*}}, <32 x i32> <i32 1, i32 1, i32 0, i32 0, i32 4, i32 5, i32 6, i32 7, i32 9, i32 9, i32 8, i32 8, i32 12, i32 13, i32 14, i32 15, i32 17, i32 17, i32 16, i32 16, i32 20, i32 21, i32 22, i32 23, i32 25, i32 25, i32 24, i32 24, i32 28, i32 29, i32 30, i32 31>
1152*67e74705SXin Li   // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
1153*67e74705SXin Li   return _mm512_maskz_shufflelo_epi16(__U, __A, 5);
1154*67e74705SXin Li }
1155*67e74705SXin Li 
test_mm512_sllv_epi16(__m512i __A,__m512i __B)1156*67e74705SXin Li __m512i test_mm512_sllv_epi16(__m512i __A, __m512i __B) {
1157*67e74705SXin Li   // CHECK-LABEL: @test_mm512_sllv_epi16
1158*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psllv
1159*67e74705SXin Li   return _mm512_sllv_epi16(__A, __B);
1160*67e74705SXin Li }
1161*67e74705SXin Li 
test_mm512_mask_sllv_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)1162*67e74705SXin Li __m512i test_mm512_mask_sllv_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
1163*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_sllv_epi16
1164*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psllv
1165*67e74705SXin Li   return _mm512_mask_sllv_epi16(__W, __U, __A, __B);
1166*67e74705SXin Li }
1167*67e74705SXin Li 
test_mm512_maskz_sllv_epi16(__mmask32 __U,__m512i __A,__m512i __B)1168*67e74705SXin Li __m512i test_mm512_maskz_sllv_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
1169*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_sllv_epi16
1170*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psllv
1171*67e74705SXin Li   return _mm512_maskz_sllv_epi16(__U, __A, __B);
1172*67e74705SXin Li }
1173*67e74705SXin Li 
test_mm512_sll_epi16(__m512i __A,__m128i __B)1174*67e74705SXin Li __m512i test_mm512_sll_epi16(__m512i __A, __m128i __B) {
1175*67e74705SXin Li   // CHECK-LABEL: @test_mm512_sll_epi16
1176*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psll.w.512
1177*67e74705SXin Li   return _mm512_sll_epi16(__A, __B);
1178*67e74705SXin Li }
1179*67e74705SXin Li 
test_mm512_mask_sll_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m128i __B)1180*67e74705SXin Li __m512i test_mm512_mask_sll_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B) {
1181*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_sll_epi16
1182*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psll.w.512
1183*67e74705SXin Li   return _mm512_mask_sll_epi16(__W, __U, __A, __B);
1184*67e74705SXin Li }
1185*67e74705SXin Li 
test_mm512_maskz_sll_epi16(__mmask32 __U,__m512i __A,__m128i __B)1186*67e74705SXin Li __m512i test_mm512_maskz_sll_epi16(__mmask32 __U, __m512i __A, __m128i __B) {
1187*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_sll_epi16
1188*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psll.w.512
1189*67e74705SXin Li   return _mm512_maskz_sll_epi16(__U, __A, __B);
1190*67e74705SXin Li }
1191*67e74705SXin Li 
test_mm512_slli_epi16(__m512i __A)1192*67e74705SXin Li __m512i test_mm512_slli_epi16(__m512i __A) {
1193*67e74705SXin Li   // CHECK-LABEL: @test_mm512_slli_epi16
1194*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psll.wi.512
1195*67e74705SXin Li   return _mm512_slli_epi16(__A, 5);
1196*67e74705SXin Li }
1197*67e74705SXin Li 
test_mm512_mask_slli_epi16(__m512i __W,__mmask32 __U,__m512i __A)1198*67e74705SXin Li __m512i test_mm512_mask_slli_epi16(__m512i __W, __mmask32 __U, __m512i __A) {
1199*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_slli_epi16
1200*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psll.wi.512
1201*67e74705SXin Li   return _mm512_mask_slli_epi16(__W, __U, __A, 5);
1202*67e74705SXin Li }
1203*67e74705SXin Li 
test_mm512_maskz_slli_epi16(__mmask32 __U,__m512i __A)1204*67e74705SXin Li __m512i test_mm512_maskz_slli_epi16(__mmask32 __U, __m512i __A) {
1205*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_slli_epi16
1206*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psll.wi.512
1207*67e74705SXin Li   return _mm512_maskz_slli_epi16(__U, __A, 5);
1208*67e74705SXin Li }
1209*67e74705SXin Li 
test_mm512_bslli_epi128(__m512i __A)1210*67e74705SXin Li __m512i test_mm512_bslli_epi128(__m512i __A) {
1211*67e74705SXin Li   // CHECK-LABEL: @test_mm512_bslli_epi128
1212*67e74705SXin Li   // CHECK: shufflevector <64 x i8> %{{.*}}, <64 x i8> %{{.*}}, <64 x i32> <i32 11, i32 12, i32 13, i32 14, i32 15, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 27, i32 28, i32 29, i32 30, i32 31, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 43, i32 44, i32 45, i32 46, i32 47, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 59, i32 60, i32 61, i32 62, i32 63, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122>
1213*67e74705SXin Li   return _mm512_bslli_epi128(__A, 5);
1214*67e74705SXin Li }
1215*67e74705SXin Li 
test_mm512_srlv_epi16(__m512i __A,__m512i __B)1216*67e74705SXin Li __m512i test_mm512_srlv_epi16(__m512i __A, __m512i __B) {
1217*67e74705SXin Li   // CHECK-LABEL: @test_mm512_srlv_epi16
1218*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrlv
1219*67e74705SXin Li   return _mm512_srlv_epi16(__A, __B);
1220*67e74705SXin Li }
1221*67e74705SXin Li 
test_mm512_mask_srlv_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)1222*67e74705SXin Li __m512i test_mm512_mask_srlv_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
1223*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_srlv_epi16
1224*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrlv
1225*67e74705SXin Li   return _mm512_mask_srlv_epi16(__W, __U, __A, __B);
1226*67e74705SXin Li }
1227*67e74705SXin Li 
test_mm512_maskz_srlv_epi16(__mmask32 __U,__m512i __A,__m512i __B)1228*67e74705SXin Li __m512i test_mm512_maskz_srlv_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
1229*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_srlv_epi16
1230*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrlv
1231*67e74705SXin Li   return _mm512_maskz_srlv_epi16(__U, __A, __B);
1232*67e74705SXin Li }
1233*67e74705SXin Li 
test_mm512_srav_epi16(__m512i __A,__m512i __B)1234*67e74705SXin Li __m512i test_mm512_srav_epi16(__m512i __A, __m512i __B) {
1235*67e74705SXin Li   // CHECK-LABEL: @test_mm512_srav_epi16
1236*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrav
1237*67e74705SXin Li   return _mm512_srav_epi16(__A, __B);
1238*67e74705SXin Li }
1239*67e74705SXin Li 
test_mm512_mask_srav_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)1240*67e74705SXin Li __m512i test_mm512_mask_srav_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
1241*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_srav_epi16
1242*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrav
1243*67e74705SXin Li   return _mm512_mask_srav_epi16(__W, __U, __A, __B);
1244*67e74705SXin Li }
1245*67e74705SXin Li 
test_mm512_maskz_srav_epi16(__mmask32 __U,__m512i __A,__m512i __B)1246*67e74705SXin Li __m512i test_mm512_maskz_srav_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
1247*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_srav_epi16
1248*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrav
1249*67e74705SXin Li   return _mm512_maskz_srav_epi16(__U, __A, __B);
1250*67e74705SXin Li }
1251*67e74705SXin Li 
test_mm512_sra_epi16(__m512i __A,__m128i __B)1252*67e74705SXin Li __m512i test_mm512_sra_epi16(__m512i __A, __m128i __B) {
1253*67e74705SXin Li   // CHECK-LABEL: @test_mm512_sra_epi16
1254*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psra.w.512
1255*67e74705SXin Li   return _mm512_sra_epi16(__A, __B);
1256*67e74705SXin Li }
1257*67e74705SXin Li 
test_mm512_mask_sra_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m128i __B)1258*67e74705SXin Li __m512i test_mm512_mask_sra_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B) {
1259*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_sra_epi16
1260*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psra.w.512
1261*67e74705SXin Li   return _mm512_mask_sra_epi16(__W, __U, __A, __B);
1262*67e74705SXin Li }
1263*67e74705SXin Li 
test_mm512_maskz_sra_epi16(__mmask32 __U,__m512i __A,__m128i __B)1264*67e74705SXin Li __m512i test_mm512_maskz_sra_epi16(__mmask32 __U, __m512i __A, __m128i __B) {
1265*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_sra_epi16
1266*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psra.w.512
1267*67e74705SXin Li   return _mm512_maskz_sra_epi16(__U, __A, __B);
1268*67e74705SXin Li }
1269*67e74705SXin Li 
test_mm512_srai_epi16(__m512i __A)1270*67e74705SXin Li __m512i test_mm512_srai_epi16(__m512i __A) {
1271*67e74705SXin Li   // CHECK-LABEL: @test_mm512_srai_epi16
1272*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psra.wi.512
1273*67e74705SXin Li   return _mm512_srai_epi16(__A, 5);
1274*67e74705SXin Li }
1275*67e74705SXin Li 
test_mm512_mask_srai_epi16(__m512i __W,__mmask32 __U,__m512i __A)1276*67e74705SXin Li __m512i test_mm512_mask_srai_epi16(__m512i __W, __mmask32 __U, __m512i __A) {
1277*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_srai_epi16
1278*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psra.wi.512
1279*67e74705SXin Li   return _mm512_mask_srai_epi16(__W, __U, __A, 5);
1280*67e74705SXin Li }
1281*67e74705SXin Li 
test_mm512_maskz_srai_epi16(__mmask32 __U,__m512i __A)1282*67e74705SXin Li __m512i test_mm512_maskz_srai_epi16(__mmask32 __U, __m512i __A) {
1283*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_srai_epi16
1284*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psra.wi.512
1285*67e74705SXin Li   return _mm512_maskz_srai_epi16(__U, __A, 5);
1286*67e74705SXin Li }
1287*67e74705SXin Li 
test_mm512_srl_epi16(__m512i __A,__m128i __B)1288*67e74705SXin Li __m512i test_mm512_srl_epi16(__m512i __A, __m128i __B) {
1289*67e74705SXin Li   // CHECK-LABEL: @test_mm512_srl_epi16
1290*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrl.w.512
1291*67e74705SXin Li   return _mm512_srl_epi16(__A, __B);
1292*67e74705SXin Li }
1293*67e74705SXin Li 
test_mm512_mask_srl_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m128i __B)1294*67e74705SXin Li __m512i test_mm512_mask_srl_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B) {
1295*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_srl_epi16
1296*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrl.w.512
1297*67e74705SXin Li   return _mm512_mask_srl_epi16(__W, __U, __A, __B);
1298*67e74705SXin Li }
1299*67e74705SXin Li 
test_mm512_maskz_srl_epi16(__mmask32 __U,__m512i __A,__m128i __B)1300*67e74705SXin Li __m512i test_mm512_maskz_srl_epi16(__mmask32 __U, __m512i __A, __m128i __B) {
1301*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_srl_epi16
1302*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrl.w.512
1303*67e74705SXin Li   return _mm512_maskz_srl_epi16(__U, __A, __B);
1304*67e74705SXin Li }
1305*67e74705SXin Li 
test_mm512_srli_epi16(__m512i __A)1306*67e74705SXin Li __m512i test_mm512_srli_epi16(__m512i __A) {
1307*67e74705SXin Li   // CHECK-LABEL: @test_mm512_srli_epi16
1308*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrl.wi.512
1309*67e74705SXin Li   return _mm512_srli_epi16(__A, 5);
1310*67e74705SXin Li }
1311*67e74705SXin Li 
test_mm512_mask_srli_epi16(__m512i __W,__mmask32 __U,__m512i __A)1312*67e74705SXin Li __m512i test_mm512_mask_srli_epi16(__m512i __W, __mmask32 __U, __m512i __A) {
1313*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_srli_epi16
1314*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrl.wi.512
1315*67e74705SXin Li   return _mm512_mask_srli_epi16(__W, __U, __A, 5);
1316*67e74705SXin Li }
1317*67e74705SXin Li 
test_mm512_maskz_srli_epi16(__mmask32 __U,__m512i __A)1318*67e74705SXin Li __m512i test_mm512_maskz_srli_epi16(__mmask32 __U, __m512i __A) {
1319*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_srli_epi16
1320*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.psrl.wi.512
1321*67e74705SXin Li   return _mm512_maskz_srli_epi16(__U, __A, 5);
1322*67e74705SXin Li }
1323*67e74705SXin Li 
test_mm512_bsrli_epi128(__m512i __A)1324*67e74705SXin Li __m512i test_mm512_bsrli_epi128(__m512i __A) {
1325*67e74705SXin Li   // CHECK-LABEL: @test_mm512_bsrli_epi128
1326*67e74705SXin Li   // CHECK: shufflevector <64 x i8> %{{.*}}, <64 x i8> %{{.*}}, <64 x i32> <i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 64, i32 65, i32 66, i32 67, i32 68, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 80, i32 81, i32 82, i32 83, i32 84, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 96, i32 97, i32 98, i32 99, i32 100, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 112, i32 113, i32 114, i32 115, i32 116>
1327*67e74705SXin Li   return _mm512_bsrli_epi128(__A, 5);
1328*67e74705SXin Li }
test_mm512_mask_mov_epi16(__m512i __W,__mmask32 __U,__m512i __A)1329*67e74705SXin Li __m512i test_mm512_mask_mov_epi16(__m512i __W, __mmask32 __U, __m512i __A) {
1330*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_mov_epi16
1331*67e74705SXin Li   // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
1332*67e74705SXin Li   return _mm512_mask_mov_epi16(__W, __U, __A);
1333*67e74705SXin Li }
1334*67e74705SXin Li 
test_mm512_maskz_mov_epi16(__mmask32 __U,__m512i __A)1335*67e74705SXin Li __m512i test_mm512_maskz_mov_epi16(__mmask32 __U, __m512i __A) {
1336*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_mov_epi16
1337*67e74705SXin Li   // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
1338*67e74705SXin Li   return _mm512_maskz_mov_epi16(__U, __A);
1339*67e74705SXin Li }
1340*67e74705SXin Li 
test_mm512_mask_mov_epi8(__m512i __W,__mmask64 __U,__m512i __A)1341*67e74705SXin Li __m512i test_mm512_mask_mov_epi8(__m512i __W, __mmask64 __U, __m512i __A) {
1342*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_mov_epi8
1343*67e74705SXin Li   // CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
1344*67e74705SXin Li   return _mm512_mask_mov_epi8(__W, __U, __A);
1345*67e74705SXin Li }
1346*67e74705SXin Li 
test_mm512_maskz_mov_epi8(__mmask64 __U,__m512i __A)1347*67e74705SXin Li __m512i test_mm512_maskz_mov_epi8(__mmask64 __U, __m512i __A) {
1348*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_mov_epi8
1349*67e74705SXin Li   // CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
1350*67e74705SXin Li   return _mm512_maskz_mov_epi8(__U, __A);
1351*67e74705SXin Li }
1352*67e74705SXin Li 
test_mm512_mask_set1_epi8(__m512i __O,__mmask64 __M,char __A)1353*67e74705SXin Li __m512i test_mm512_mask_set1_epi8(__m512i __O, __mmask64 __M, char __A) {
1354*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_set1_epi8
1355*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pbroadcast.b.gpr.512
1356*67e74705SXin Li   return _mm512_mask_set1_epi8(__O, __M, __A);
1357*67e74705SXin Li }
1358*67e74705SXin Li 
test_mm512_maskz_set1_epi8(__mmask64 __M,char __A)1359*67e74705SXin Li __m512i test_mm512_maskz_set1_epi8(__mmask64 __M, char __A) {
1360*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_set1_epi8
1361*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pbroadcast.b.gpr.512
1362*67e74705SXin Li   return _mm512_maskz_set1_epi8(__M, __A);
1363*67e74705SXin Li }
1364*67e74705SXin Li 
test_mm512_kunpackd(__mmask64 __A,__mmask64 __B)1365*67e74705SXin Li __mmask64 test_mm512_kunpackd(__mmask64 __A, __mmask64 __B) {
1366*67e74705SXin Li   // CHECK-LABEL: @test_mm512_kunpackd
1367*67e74705SXin Li   // CHECK: @llvm.x86.avx512.kunpck.dq
1368*67e74705SXin Li   return _mm512_kunpackd(__A, __B);
1369*67e74705SXin Li }
1370*67e74705SXin Li 
test_mm512_kunpackw(__mmask32 __A,__mmask32 __B)1371*67e74705SXin Li __mmask32 test_mm512_kunpackw(__mmask32 __A, __mmask32 __B) {
1372*67e74705SXin Li   // CHECK-LABEL: @test_mm512_kunpackw
1373*67e74705SXin Li   // CHECK: @llvm.x86.avx512.kunpck.wd
1374*67e74705SXin Li   return _mm512_kunpackw(__A, __B);
1375*67e74705SXin Li }
1376*67e74705SXin Li 
test_mm512_mask_loadu_epi16(__m512i __W,__mmask32 __U,void const * __P)1377*67e74705SXin Li __m512i test_mm512_mask_loadu_epi16(__m512i __W, __mmask32 __U, void const *__P) {
1378*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_loadu_epi16
1379*67e74705SXin Li   // CHECK: @llvm.masked.load.v32i16.p0v32i16(<32 x i16>* %{{.*}}, i32 1, <32 x i1> %{{.*}}, <32 x i16> %{{.*}})
1380*67e74705SXin Li   return _mm512_mask_loadu_epi16(__W, __U, __P);
1381*67e74705SXin Li }
1382*67e74705SXin Li 
test_mm512_maskz_loadu_epi16(__mmask32 __U,void const * __P)1383*67e74705SXin Li __m512i test_mm512_maskz_loadu_epi16(__mmask32 __U, void const *__P) {
1384*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_loadu_epi16
1385*67e74705SXin Li   // CHECK: @llvm.masked.load.v32i16.p0v32i16(<32 x i16>* %{{.*}}, i32 1, <32 x i1> %{{.*}}, <32 x i16> %{{.*}})
1386*67e74705SXin Li   return _mm512_maskz_loadu_epi16(__U, __P);
1387*67e74705SXin Li }
1388*67e74705SXin Li 
test_mm512_mask_loadu_epi8(__m512i __W,__mmask64 __U,void const * __P)1389*67e74705SXin Li __m512i test_mm512_mask_loadu_epi8(__m512i __W, __mmask64 __U, void const *__P) {
1390*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_loadu_epi8
1391*67e74705SXin Li   // CHECK: @llvm.masked.load.v64i8.p0v64i8(<64 x i8>* %{{.*}}, i32 1, <64 x i1> %{{.*}}, <64 x i8> %{{.*}})
1392*67e74705SXin Li   return _mm512_mask_loadu_epi8(__W, __U, __P);
1393*67e74705SXin Li }
1394*67e74705SXin Li 
test_mm512_maskz_loadu_epi8(__mmask64 __U,void const * __P)1395*67e74705SXin Li __m512i test_mm512_maskz_loadu_epi8(__mmask64 __U, void const *__P) {
1396*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_loadu_epi8
1397*67e74705SXin Li   // CHECK: @llvm.masked.load.v64i8.p0v64i8(<64 x i8>* %{{.*}}, i32 1, <64 x i1> %{{.*}}, <64 x i8> %{{.*}})
1398*67e74705SXin Li   return _mm512_maskz_loadu_epi8(__U, __P);
1399*67e74705SXin Li }
test_mm512_mask_storeu_epi16(void * __P,__mmask32 __U,__m512i __A)1400*67e74705SXin Li void test_mm512_mask_storeu_epi16(void *__P, __mmask32 __U, __m512i __A) {
1401*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_storeu_epi16
1402*67e74705SXin Li   // CHECK: @llvm.masked.store.v32i16.p0v32i16(<32 x i16> %{{.*}}, <32 x i16>* %{{.*}}, i32 1, <32 x i1> %{{.*}})
1403*67e74705SXin Li   return _mm512_mask_storeu_epi16(__P, __U, __A);
1404*67e74705SXin Li }
test_mm512_test_epi8_mask(__m512i __A,__m512i __B)1405*67e74705SXin Li __mmask64 test_mm512_test_epi8_mask(__m512i __A, __m512i __B) {
1406*67e74705SXin Li   // CHECK-LABEL: @test_mm512_test_epi8_mask
1407*67e74705SXin Li   // CHECK: @llvm.x86.avx512.ptestm.b.512
1408*67e74705SXin Li   return _mm512_test_epi8_mask(__A, __B);
1409*67e74705SXin Li }
1410*67e74705SXin Li 
test_mm512_mask_storeu_epi8(void * __P,__mmask64 __U,__m512i __A)1411*67e74705SXin Li void test_mm512_mask_storeu_epi8(void *__P, __mmask64 __U, __m512i __A) {
1412*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_storeu_epi8
1413*67e74705SXin Li   // CHECK: @llvm.masked.store.v64i8.p0v64i8(<64 x i8> %{{.*}}, <64 x i8>* %{{.*}}, i32 1, <64 x i1> %{{.*}})
1414*67e74705SXin Li   return _mm512_mask_storeu_epi8(__P, __U, __A);
1415*67e74705SXin Li }
test_mm512_mask_test_epi8_mask(__mmask64 __U,__m512i __A,__m512i __B)1416*67e74705SXin Li __mmask64 test_mm512_mask_test_epi8_mask(__mmask64 __U, __m512i __A, __m512i __B) {
1417*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_test_epi8_mask
1418*67e74705SXin Li   // CHECK: @llvm.x86.avx512.ptestm.b.512
1419*67e74705SXin Li   return _mm512_mask_test_epi8_mask(__U, __A, __B);
1420*67e74705SXin Li }
1421*67e74705SXin Li 
test_mm512_test_epi16_mask(__m512i __A,__m512i __B)1422*67e74705SXin Li __mmask32 test_mm512_test_epi16_mask(__m512i __A, __m512i __B) {
1423*67e74705SXin Li   // CHECK-LABEL: @test_mm512_test_epi16_mask
1424*67e74705SXin Li   // CHECK: @llvm.x86.avx512.ptestm.w.
1425*67e74705SXin Li   return _mm512_test_epi16_mask(__A, __B);
1426*67e74705SXin Li }
1427*67e74705SXin Li 
test_mm512_mask_test_epi16_mask(__mmask32 __U,__m512i __A,__m512i __B)1428*67e74705SXin Li __mmask32 test_mm512_mask_test_epi16_mask(__mmask32 __U, __m512i __A, __m512i __B) {
1429*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_test_epi16_mask
1430*67e74705SXin Li   // CHECK: @llvm.x86.avx512.ptestm.w.
1431*67e74705SXin Li   return _mm512_mask_test_epi16_mask(__U, __A, __B);
1432*67e74705SXin Li }
1433*67e74705SXin Li 
test_mm512_testn_epi8_mask(__m512i __A,__m512i __B)1434*67e74705SXin Li __mmask64 test_mm512_testn_epi8_mask(__m512i __A, __m512i __B) {
1435*67e74705SXin Li   // CHECK-LABEL: @test_mm512_testn_epi8_mask
1436*67e74705SXin Li   // CHECK: @llvm.x86.avx512.ptestnm.b.
1437*67e74705SXin Li   return _mm512_testn_epi8_mask(__A, __B);
1438*67e74705SXin Li }
1439*67e74705SXin Li 
test_mm512_mask_testn_epi8_mask(__mmask64 __U,__m512i __A,__m512i __B)1440*67e74705SXin Li __mmask64 test_mm512_mask_testn_epi8_mask(__mmask64 __U, __m512i __A, __m512i __B) {
1441*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_testn_epi8_mask
1442*67e74705SXin Li   // CHECK: @llvm.x86.avx512.ptestnm.b.
1443*67e74705SXin Li   return _mm512_mask_testn_epi8_mask(__U, __A, __B);
1444*67e74705SXin Li }
1445*67e74705SXin Li 
test_mm512_testn_epi16_mask(__m512i __A,__m512i __B)1446*67e74705SXin Li __mmask32 test_mm512_testn_epi16_mask(__m512i __A, __m512i __B) {
1447*67e74705SXin Li   // CHECK-LABEL: @test_mm512_testn_epi16_mask
1448*67e74705SXin Li   // CHECK: @llvm.x86.avx512.ptestnm.w.
1449*67e74705SXin Li   return _mm512_testn_epi16_mask(__A, __B);
1450*67e74705SXin Li }
1451*67e74705SXin Li 
test_mm512_mask_testn_epi16_mask(__mmask32 __U,__m512i __A,__m512i __B)1452*67e74705SXin Li __mmask32 test_mm512_mask_testn_epi16_mask(__mmask32 __U, __m512i __A, __m512i __B) {
1453*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_testn_epi16_mask
1454*67e74705SXin Li   // CHECK: @llvm.x86.avx512.ptestnm.w.
1455*67e74705SXin Li   return _mm512_mask_testn_epi16_mask(__U, __A, __B);
1456*67e74705SXin Li }
1457*67e74705SXin Li 
test_mm512_movepi8_mask(__m512i __A)1458*67e74705SXin Li __mmask64 test_mm512_movepi8_mask(__m512i __A) {
1459*67e74705SXin Li   // CHECK-LABEL: @test_mm512_movepi8_mask
1460*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvtb2mask.512
1461*67e74705SXin Li   return _mm512_movepi8_mask(__A);
1462*67e74705SXin Li }
1463*67e74705SXin Li 
test_mm512_movm_epi8(__mmask64 __A)1464*67e74705SXin Li __m512i test_mm512_movm_epi8(__mmask64 __A) {
1465*67e74705SXin Li   // CHECK-LABEL: @test_mm512_movm_epi8
1466*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvtmask2b.512
1467*67e74705SXin Li   return _mm512_movm_epi8(__A);
1468*67e74705SXin Li }
1469*67e74705SXin Li 
test_mm512_movm_epi16(__mmask32 __A)1470*67e74705SXin Li __m512i test_mm512_movm_epi16(__mmask32 __A) {
1471*67e74705SXin Li   // CHECK-LABEL: @test_mm512_movm_epi16
1472*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvtmask2w.512
1473*67e74705SXin Li   return _mm512_movm_epi16(__A);
1474*67e74705SXin Li }
1475*67e74705SXin Li 
test_mm512_broadcastb_epi8(__m128i __A)1476*67e74705SXin Li __m512i test_mm512_broadcastb_epi8(__m128i __A) {
1477*67e74705SXin Li   // CHECK-LABEL: @test_mm512_broadcastb_epi8
1478*67e74705SXin Li   // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> undef, <64 x i32> zeroinitializer
1479*67e74705SXin Li   return _mm512_broadcastb_epi8(__A);
1480*67e74705SXin Li }
1481*67e74705SXin Li 
test_mm512_mask_broadcastb_epi8(__m512i __O,__mmask64 __M,__m128i __A)1482*67e74705SXin Li __m512i test_mm512_mask_broadcastb_epi8(__m512i __O, __mmask64 __M, __m128i __A) {
1483*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_broadcastb_epi8
1484*67e74705SXin Li   // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> undef, <64 x i32> zeroinitializer
1485*67e74705SXin Li   // CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
1486*67e74705SXin Li   return _mm512_mask_broadcastb_epi8(__O, __M, __A);
1487*67e74705SXin Li }
1488*67e74705SXin Li 
test_mm512_maskz_broadcastb_epi8(__mmask64 __M,__m128i __A)1489*67e74705SXin Li __m512i test_mm512_maskz_broadcastb_epi8(__mmask64 __M, __m128i __A) {
1490*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_broadcastb_epi8
1491*67e74705SXin Li   // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> undef, <64 x i32> zeroinitializer
1492*67e74705SXin Li   // CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
1493*67e74705SXin Li   return _mm512_maskz_broadcastb_epi8(__M, __A);
1494*67e74705SXin Li }
1495*67e74705SXin Li 
test_mm512_broadcastw_epi16(__m128i __A)1496*67e74705SXin Li __m512i test_mm512_broadcastw_epi16(__m128i __A) {
1497*67e74705SXin Li   // CHECK-LABEL: @test_mm512_broadcastw_epi16
1498*67e74705SXin Li   // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> undef, <32 x i32> zeroinitializer
1499*67e74705SXin Li   return _mm512_broadcastw_epi16(__A);
1500*67e74705SXin Li }
1501*67e74705SXin Li 
test_mm512_mask_broadcastw_epi16(__m512i __O,__mmask32 __M,__m128i __A)1502*67e74705SXin Li __m512i test_mm512_mask_broadcastw_epi16(__m512i __O, __mmask32 __M, __m128i __A) {
1503*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_broadcastw_epi16
1504*67e74705SXin Li   // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> undef, <32 x i32> zeroinitializer
1505*67e74705SXin Li   // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
1506*67e74705SXin Li   return _mm512_mask_broadcastw_epi16(__O, __M, __A);
1507*67e74705SXin Li }
1508*67e74705SXin Li 
test_mm512_maskz_broadcastw_epi16(__mmask32 __M,__m128i __A)1509*67e74705SXin Li __m512i test_mm512_maskz_broadcastw_epi16(__mmask32 __M, __m128i __A) {
1510*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_broadcastw_epi16
1511*67e74705SXin Li   // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> undef, <32 x i32> zeroinitializer
1512*67e74705SXin Li   // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
1513*67e74705SXin Li   return _mm512_maskz_broadcastw_epi16(__M, __A);
1514*67e74705SXin Li }
1515*67e74705SXin Li 
test_mm512_mask_set1_epi16(__m512i __O,__mmask32 __M,short __A)1516*67e74705SXin Li __m512i test_mm512_mask_set1_epi16(__m512i __O, __mmask32 __M, short __A) {
1517*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_set1_epi16
1518*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pbroadcast.w.gpr.512
1519*67e74705SXin Li   return _mm512_mask_set1_epi16(__O, __M, __A);
1520*67e74705SXin Li }
1521*67e74705SXin Li 
test_mm512_maskz_set1_epi16(__mmask32 __M,short __A)1522*67e74705SXin Li __m512i test_mm512_maskz_set1_epi16(__mmask32 __M, short __A) {
1523*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_set1_epi16
1524*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pbroadcast.w.gpr.512
1525*67e74705SXin Li   return _mm512_maskz_set1_epi16(__M, __A);
1526*67e74705SXin Li }
test_mm512_permutexvar_epi16(__m512i __A,__m512i __B)1527*67e74705SXin Li __m512i test_mm512_permutexvar_epi16(__m512i __A, __m512i __B) {
1528*67e74705SXin Li   // CHECK-LABEL: @test_mm512_permutexvar_epi16
1529*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.permvar.hi.512
1530*67e74705SXin Li  return _mm512_permutexvar_epi16(__A, __B);
1531*67e74705SXin Li }
1532*67e74705SXin Li 
test_mm512_maskz_permutexvar_epi16(__mmask32 __M,__m512i __A,__m512i __B)1533*67e74705SXin Li __m512i test_mm512_maskz_permutexvar_epi16(__mmask32 __M, __m512i __A, __m512i __B) {
1534*67e74705SXin Li  // CHECK-LABEL: @test_mm512_maskz_permutexvar_epi16
1535*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.permvar.hi.512
1536*67e74705SXin Li   return _mm512_maskz_permutexvar_epi16(__M, __A, __B);
1537*67e74705SXin Li }
1538*67e74705SXin Li 
test_mm512_mask_permutexvar_epi16(__m512i __W,__mmask32 __M,__m512i __A,__m512i __B)1539*67e74705SXin Li __m512i test_mm512_mask_permutexvar_epi16(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) {
1540*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_permutexvar_epi16
1541*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.permvar.hi.512
1542*67e74705SXin Li   return _mm512_mask_permutexvar_epi16(__W, __M, __A, __B);
1543*67e74705SXin Li }
test_mm512_alignr_epi8(__m512i __A,__m512i __B)1544*67e74705SXin Li __m512i test_mm512_alignr_epi8(__m512i __A,__m512i __B){
1545*67e74705SXin Li     // CHECK-LABEL: @test_mm512_alignr_epi8
1546*67e74705SXin Li     // CHECK: shufflevector <64 x i8> %{{.*}}, <64 x i8> %{{.*}}, <64 x i32> <i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 64, i32 65, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 80, i32 81, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 96, i32 97, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 112, i32 113>
1547*67e74705SXin Li     return _mm512_alignr_epi8(__A, __B, 2);
1548*67e74705SXin Li }
1549*67e74705SXin Li 
test_mm512_mask_alignr_epi8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)1550*67e74705SXin Li __m512i test_mm512_mask_alignr_epi8(__m512i __W, __mmask64 __U, __m512i __A,__m512i __B){
1551*67e74705SXin Li     // CHECK-LABEL: @test_mm512_mask_alignr_epi8
1552*67e74705SXin Li     // CHECK: shufflevector <64 x i8> %{{.*}}, <64 x i8> %{{.*}}, <64 x i32> <i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 64, i32 65, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 80, i32 81, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 96, i32 97, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 112, i32 113>
1553*67e74705SXin Li     // CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
1554*67e74705SXin Li     return _mm512_mask_alignr_epi8(__W, __U, __A, __B, 2);
1555*67e74705SXin Li }
1556*67e74705SXin Li 
test_mm512_maskz_alignr_epi8(__mmask64 __U,__m512i __A,__m512i __B)1557*67e74705SXin Li __m512i test_mm512_maskz_alignr_epi8(__mmask64 __U, __m512i __A,__m512i __B){
1558*67e74705SXin Li     // CHECK-LABEL: @test_mm512_maskz_alignr_epi8
1559*67e74705SXin Li     // CHECK: shufflevector <64 x i8> %{{.*}}, <64 x i8> %{{.*}}, <64 x i32> <i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 64, i32 65, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 80, i32 81, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 96, i32 97, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 112, i32 113>
1560*67e74705SXin Li     // CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
1561*67e74705SXin Li    return _mm512_maskz_alignr_epi8(__U, __A, __B, 2);
1562*67e74705SXin Li }
1563*67e74705SXin Li 
1564*67e74705SXin Li 
1565*67e74705SXin Li 
test_mm512_mm_dbsad_epu8(__m512i __A,__m512i __B)1566*67e74705SXin Li __m512i test_mm512_mm_dbsad_epu8(__m512i __A, __m512i __B) {
1567*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mm_dbsad_epu8
1568*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.dbpsadbw.512
1569*67e74705SXin Li   return _mm512_dbsad_epu8(__A, __B, 170);
1570*67e74705SXin Li }
1571*67e74705SXin Li 
test_mm512_mm_mask_dbsad_epu8(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)1572*67e74705SXin Li __m512i test_mm512_mm_mask_dbsad_epu8(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
1573*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mm_mask_dbsad_epu8
1574*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.dbpsadbw.512
1575*67e74705SXin Li   return _mm512_mask_dbsad_epu8(__W, __U, __A, __B, 170);
1576*67e74705SXin Li }
1577*67e74705SXin Li 
test_mm512_mm_maskz_dbsad_epu8(__mmask32 __U,__m512i __A,__m512i __B)1578*67e74705SXin Li __m512i test_mm512_mm_maskz_dbsad_epu8(__mmask32 __U, __m512i __A, __m512i __B) {
1579*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mm_maskz_dbsad_epu8
1580*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.dbpsadbw.512
1581*67e74705SXin Li   return _mm512_maskz_dbsad_epu8(__U, __A, __B, 170);
1582*67e74705SXin Li }
1583*67e74705SXin Li 
test_mm512_sad_epu8(__m512i __A,__m512i __B)1584*67e74705SXin Li __m512i test_mm512_sad_epu8(__m512i __A, __m512i __B) {
1585*67e74705SXin Li   // CHECK-LABEL: @test_mm512_sad_epu8
1586*67e74705SXin Li   // CHECK: @llvm.x86.avx512.psad.bw.512
1587*67e74705SXin Li   return _mm512_sad_epu8(__A, __B);
1588*67e74705SXin Li }
1589*67e74705SXin Li 
test_mm512_movepi16_mask(__m512i __A)1590*67e74705SXin Li __mmask32 test_mm512_movepi16_mask(__m512i __A) {
1591*67e74705SXin Li   // CHECK-LABEL: @test_mm512_movepi16_mask
1592*67e74705SXin Li   // CHECK: @llvm.x86.avx512.cvtw2mask.512
1593*67e74705SXin Li   return _mm512_movepi16_mask(__A);
1594*67e74705SXin Li }
1595*67e74705SXin Li 
test_mm512_mask_cvtepi16_storeu_epi8(void * __P,__mmask32 __M,__m512i __A)1596*67e74705SXin Li void test_mm512_mask_cvtepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)
1597*67e74705SXin Li {
1598*67e74705SXin Li  // CHECK-LABEL: @test_mm512_mask_cvtepi16_storeu_epi8
1599*67e74705SXin Li  // CHECK: @llvm.x86.avx512.mask.pmov.wb.mem.512
1600*67e74705SXin Li  __builtin_ia32_pmovwb512mem_mask ( __P,  __A, __M);
1601*67e74705SXin Li }
1602*67e74705SXin Li 
test_mm512_mask_cvtsepi16_storeu_epi8(void * __P,__mmask32 __M,__m512i __A)1603*67e74705SXin Li void test_mm512_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)
1604*67e74705SXin Li {
1605*67e74705SXin Li  // CHECK-LABEL: @test_mm512_mask_cvtsepi16_storeu_epi8
1606*67e74705SXin Li  // CHECK: @llvm.x86.avx512.mask.pmovs.wb.mem.512
1607*67e74705SXin Li  __builtin_ia32_pmovswb512mem_mask ( __P,  __A, __M);
1608*67e74705SXin Li }
1609*67e74705SXin Li 
test_mm512_mask_cvtusepi16_storeu_epi8(void * __P,__mmask32 __M,__m512i __A)1610*67e74705SXin Li void test_mm512_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)
1611*67e74705SXin Li {
1612*67e74705SXin Li  // CHECK-LABEL: @test_mm512_mask_cvtusepi16_storeu_epi8
1613*67e74705SXin Li  // CHECK: @llvm.x86.avx512.mask.pmovus.wb.mem.512
1614*67e74705SXin Li  __builtin_ia32_pmovuswb512mem_mask ( __P, __A, __M);
1615*67e74705SXin Li }
1616