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