clang  7.0.0svn
avx512bwintrin.h
Go to the documentation of this file.
1 /*===------------- avx512bwintrin.h - AVX512BW intrinsics ------------------===
2  *
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a copy
5  * of this software and associated documentation files (the "Software"), to deal
6  * in the Software without restriction, including without limitation the rights
7  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8  * copies of the Software, and to permit persons to whom the Software is
9  * furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included in
12  * all copies or substantial portions of the Software.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20  * THE SOFTWARE.
21  *
22  *===-----------------------------------------------------------------------===
23  */
24 #ifndef __IMMINTRIN_H
25 #error "Never use <avx512bwintrin.h> directly; include <immintrin.h> instead."
26 #endif
27 
28 #ifndef __AVX512BWINTRIN_H
29 #define __AVX512BWINTRIN_H
30 
31 typedef unsigned int __mmask32;
32 typedef unsigned long long __mmask64;
33 
34 /* Define the default attributes for the functions in this file. */
35 #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512bw")))
36 
37 static __inline __m512i __DEFAULT_FN_ATTRS
39  return (__m512i)(__v64qi){ 0, 0, 0, 0, 0, 0, 0, 0,
40  0, 0, 0, 0, 0, 0, 0, 0,
41  0, 0, 0, 0, 0, 0, 0, 0,
42  0, 0, 0, 0, 0, 0, 0, 0,
43  0, 0, 0, 0, 0, 0, 0, 0,
44  0, 0, 0, 0, 0, 0, 0, 0,
45  0, 0, 0, 0, 0, 0, 0, 0,
46  0, 0, 0, 0, 0, 0, 0, 0 };
47 }
48 
49 static __inline __m512i __DEFAULT_FN_ATTRS
51  return (__m512i)(__v32hi){ 0, 0, 0, 0, 0, 0, 0, 0,
52  0, 0, 0, 0, 0, 0, 0, 0,
53  0, 0, 0, 0, 0, 0, 0, 0,
54  0, 0, 0, 0, 0, 0, 0, 0 };
55 }
56 
57 /* Integer compare */
58 
59 #define _mm512_cmp_epi8_mask(a, b, p) __extension__ ({ \
60  (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)(__m512i)(a), \
61  (__v64qi)(__m512i)(b), (int)(p), \
62  (__mmask64)-1); })
63 
64 #define _mm512_mask_cmp_epi8_mask(m, a, b, p) __extension__ ({ \
65  (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)(__m512i)(a), \
66  (__v64qi)(__m512i)(b), (int)(p), \
67  (__mmask64)(m)); })
68 
69 #define _mm512_cmp_epu8_mask(a, b, p) __extension__ ({ \
70  (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)(__m512i)(a), \
71  (__v64qi)(__m512i)(b), (int)(p), \
72  (__mmask64)-1); })
73 
74 #define _mm512_mask_cmp_epu8_mask(m, a, b, p) __extension__ ({ \
75  (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)(__m512i)(a), \
76  (__v64qi)(__m512i)(b), (int)(p), \
77  (__mmask64)(m)); })
78 
79 #define _mm512_cmp_epi16_mask(a, b, p) __extension__ ({ \
80  (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)(__m512i)(a), \
81  (__v32hi)(__m512i)(b), (int)(p), \
82  (__mmask32)-1); })
83 
84 #define _mm512_mask_cmp_epi16_mask(m, a, b, p) __extension__ ({ \
85  (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)(__m512i)(a), \
86  (__v32hi)(__m512i)(b), (int)(p), \
87  (__mmask32)(m)); })
88 
89 #define _mm512_cmp_epu16_mask(a, b, p) __extension__ ({ \
90  (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)(__m512i)(a), \
91  (__v32hi)(__m512i)(b), (int)(p), \
92  (__mmask32)-1); })
93 
94 #define _mm512_mask_cmp_epu16_mask(m, a, b, p) __extension__ ({ \
95  (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)(__m512i)(a), \
96  (__v32hi)(__m512i)(b), (int)(p), \
97  (__mmask32)(m)); })
98 
99 #define _mm512_cmpeq_epi8_mask(A, B) \
100  _mm512_cmp_epi8_mask((A), (B), _MM_CMPINT_EQ)
101 #define _mm512_mask_cmpeq_epi8_mask(k, A, B) \
102  _mm512_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_EQ)
103 #define _mm512_cmpge_epi8_mask(A, B) \
104  _mm512_cmp_epi8_mask((A), (B), _MM_CMPINT_GE)
105 #define _mm512_mask_cmpge_epi8_mask(k, A, B) \
106  _mm512_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_GE)
107 #define _mm512_cmpgt_epi8_mask(A, B) \
108  _mm512_cmp_epi8_mask((A), (B), _MM_CMPINT_GT)
109 #define _mm512_mask_cmpgt_epi8_mask(k, A, B) \
110  _mm512_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_GT)
111 #define _mm512_cmple_epi8_mask(A, B) \
112  _mm512_cmp_epi8_mask((A), (B), _MM_CMPINT_LE)
113 #define _mm512_mask_cmple_epi8_mask(k, A, B) \
114  _mm512_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_LE)
115 #define _mm512_cmplt_epi8_mask(A, B) \
116  _mm512_cmp_epi8_mask((A), (B), _MM_CMPINT_LT)
117 #define _mm512_mask_cmplt_epi8_mask(k, A, B) \
118  _mm512_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_LT)
119 #define _mm512_cmpneq_epi8_mask(A, B) \
120  _mm512_cmp_epi8_mask((A), (B), _MM_CMPINT_NE)
121 #define _mm512_mask_cmpneq_epi8_mask(k, A, B) \
122  _mm512_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_NE)
123 
124 #define _mm512_cmpeq_epu8_mask(A, B) \
125  _mm512_cmp_epu8_mask((A), (B), _MM_CMPINT_EQ)
126 #define _mm512_mask_cmpeq_epu8_mask(k, A, B) \
127  _mm512_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_EQ)
128 #define _mm512_cmpge_epu8_mask(A, B) \
129  _mm512_cmp_epu8_mask((A), (B), _MM_CMPINT_GE)
130 #define _mm512_mask_cmpge_epu8_mask(k, A, B) \
131  _mm512_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_GE)
132 #define _mm512_cmpgt_epu8_mask(A, B) \
133  _mm512_cmp_epu8_mask((A), (B), _MM_CMPINT_GT)
134 #define _mm512_mask_cmpgt_epu8_mask(k, A, B) \
135  _mm512_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_GT)
136 #define _mm512_cmple_epu8_mask(A, B) \
137  _mm512_cmp_epu8_mask((A), (B), _MM_CMPINT_LE)
138 #define _mm512_mask_cmple_epu8_mask(k, A, B) \
139  _mm512_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_LE)
140 #define _mm512_cmplt_epu8_mask(A, B) \
141  _mm512_cmp_epu8_mask((A), (B), _MM_CMPINT_LT)
142 #define _mm512_mask_cmplt_epu8_mask(k, A, B) \
143  _mm512_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_LT)
144 #define _mm512_cmpneq_epu8_mask(A, B) \
145  _mm512_cmp_epu8_mask((A), (B), _MM_CMPINT_NE)
146 #define _mm512_mask_cmpneq_epu8_mask(k, A, B) \
147  _mm512_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_NE)
148 
149 #define _mm512_cmpeq_epi16_mask(A, B) \
150  _mm512_cmp_epi16_mask((A), (B), _MM_CMPINT_EQ)
151 #define _mm512_mask_cmpeq_epi16_mask(k, A, B) \
152  _mm512_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_EQ)
153 #define _mm512_cmpge_epi16_mask(A, B) \
154  _mm512_cmp_epi16_mask((A), (B), _MM_CMPINT_GE)
155 #define _mm512_mask_cmpge_epi16_mask(k, A, B) \
156  _mm512_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_GE)
157 #define _mm512_cmpgt_epi16_mask(A, B) \
158  _mm512_cmp_epi16_mask((A), (B), _MM_CMPINT_GT)
159 #define _mm512_mask_cmpgt_epi16_mask(k, A, B) \
160  _mm512_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_GT)
161 #define _mm512_cmple_epi16_mask(A, B) \
162  _mm512_cmp_epi16_mask((A), (B), _MM_CMPINT_LE)
163 #define _mm512_mask_cmple_epi16_mask(k, A, B) \
164  _mm512_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_LE)
165 #define _mm512_cmplt_epi16_mask(A, B) \
166  _mm512_cmp_epi16_mask((A), (B), _MM_CMPINT_LT)
167 #define _mm512_mask_cmplt_epi16_mask(k, A, B) \
168  _mm512_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_LT)
169 #define _mm512_cmpneq_epi16_mask(A, B) \
170  _mm512_cmp_epi16_mask((A), (B), _MM_CMPINT_NE)
171 #define _mm512_mask_cmpneq_epi16_mask(k, A, B) \
172  _mm512_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_NE)
173 
174 #define _mm512_cmpeq_epu16_mask(A, B) \
175  _mm512_cmp_epu16_mask((A), (B), _MM_CMPINT_EQ)
176 #define _mm512_mask_cmpeq_epu16_mask(k, A, B) \
177  _mm512_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_EQ)
178 #define _mm512_cmpge_epu16_mask(A, B) \
179  _mm512_cmp_epu16_mask((A), (B), _MM_CMPINT_GE)
180 #define _mm512_mask_cmpge_epu16_mask(k, A, B) \
181  _mm512_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_GE)
182 #define _mm512_cmpgt_epu16_mask(A, B) \
183  _mm512_cmp_epu16_mask((A), (B), _MM_CMPINT_GT)
184 #define _mm512_mask_cmpgt_epu16_mask(k, A, B) \
185  _mm512_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_GT)
186 #define _mm512_cmple_epu16_mask(A, B) \
187  _mm512_cmp_epu16_mask((A), (B), _MM_CMPINT_LE)
188 #define _mm512_mask_cmple_epu16_mask(k, A, B) \
189  _mm512_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_LE)
190 #define _mm512_cmplt_epu16_mask(A, B) \
191  _mm512_cmp_epu16_mask((A), (B), _MM_CMPINT_LT)
192 #define _mm512_mask_cmplt_epu16_mask(k, A, B) \
193  _mm512_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_LT)
194 #define _mm512_cmpneq_epu16_mask(A, B) \
195  _mm512_cmp_epu16_mask((A), (B), _MM_CMPINT_NE)
196 #define _mm512_mask_cmpneq_epu16_mask(k, A, B) \
197  _mm512_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_NE)
198 
199 static __inline__ __m512i __DEFAULT_FN_ATTRS
200 _mm512_add_epi8 (__m512i __A, __m512i __B) {
201  return (__m512i) ((__v64qu) __A + (__v64qu) __B);
202 }
203 
204 static __inline__ __m512i __DEFAULT_FN_ATTRS
205 _mm512_mask_add_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
206  return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
207  (__v64qi)_mm512_add_epi8(__A, __B),
208  (__v64qi)__W);
209 }
210 
211 static __inline__ __m512i __DEFAULT_FN_ATTRS
212 _mm512_maskz_add_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
213  return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
214  (__v64qi)_mm512_add_epi8(__A, __B),
215  (__v64qi)_mm512_setzero_qi());
216 }
217 
218 static __inline__ __m512i __DEFAULT_FN_ATTRS
219 _mm512_sub_epi8 (__m512i __A, __m512i __B) {
220  return (__m512i) ((__v64qu) __A - (__v64qu) __B);
221 }
222 
223 static __inline__ __m512i __DEFAULT_FN_ATTRS
224 _mm512_mask_sub_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
225  return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
226  (__v64qi)_mm512_sub_epi8(__A, __B),
227  (__v64qi)__W);
228 }
229 
230 static __inline__ __m512i __DEFAULT_FN_ATTRS
231 _mm512_maskz_sub_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
232  return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
233  (__v64qi)_mm512_sub_epi8(__A, __B),
234  (__v64qi)_mm512_setzero_qi());
235 }
236 
237 static __inline__ __m512i __DEFAULT_FN_ATTRS
238 _mm512_add_epi16 (__m512i __A, __m512i __B) {
239  return (__m512i) ((__v32hu) __A + (__v32hu) __B);
240 }
241 
242 static __inline__ __m512i __DEFAULT_FN_ATTRS
243 _mm512_mask_add_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
244  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
245  (__v32hi)_mm512_add_epi16(__A, __B),
246  (__v32hi)__W);
247 }
248 
249 static __inline__ __m512i __DEFAULT_FN_ATTRS
250 _mm512_maskz_add_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
251  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
252  (__v32hi)_mm512_add_epi16(__A, __B),
253  (__v32hi)_mm512_setzero_hi());
254 }
255 
256 static __inline__ __m512i __DEFAULT_FN_ATTRS
257 _mm512_sub_epi16 (__m512i __A, __m512i __B) {
258  return (__m512i) ((__v32hu) __A - (__v32hu) __B);
259 }
260 
261 static __inline__ __m512i __DEFAULT_FN_ATTRS
262 _mm512_mask_sub_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
263  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
264  (__v32hi)_mm512_sub_epi16(__A, __B),
265  (__v32hi)__W);
266 }
267 
268 static __inline__ __m512i __DEFAULT_FN_ATTRS
269 _mm512_maskz_sub_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
270  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
271  (__v32hi)_mm512_sub_epi16(__A, __B),
272  (__v32hi)_mm512_setzero_hi());
273 }
274 
275 static __inline__ __m512i __DEFAULT_FN_ATTRS
276 _mm512_mullo_epi16 (__m512i __A, __m512i __B) {
277  return (__m512i) ((__v32hu) __A * (__v32hu) __B);
278 }
279 
280 static __inline__ __m512i __DEFAULT_FN_ATTRS
281 _mm512_mask_mullo_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
282  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
283  (__v32hi)_mm512_mullo_epi16(__A, __B),
284  (__v32hi)__W);
285 }
286 
287 static __inline__ __m512i __DEFAULT_FN_ATTRS
288 _mm512_maskz_mullo_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
289  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
290  (__v32hi)_mm512_mullo_epi16(__A, __B),
291  (__v32hi)_mm512_setzero_hi());
292 }
293 
294 static __inline__ __m512i __DEFAULT_FN_ATTRS
295 _mm512_mask_blend_epi8 (__mmask64 __U, __m512i __A, __m512i __W)
296 {
297  return (__m512i) __builtin_ia32_selectb_512 ((__mmask64) __U,
298  (__v64qi) __W,
299  (__v64qi) __A);
300 }
301 
302 static __inline__ __m512i __DEFAULT_FN_ATTRS
303 _mm512_mask_blend_epi16 (__mmask32 __U, __m512i __A, __m512i __W)
304 {
305  return (__m512i) __builtin_ia32_selectw_512 ((__mmask32) __U,
306  (__v32hi) __W,
307  (__v32hi) __A);
308 }
309 
310 static __inline__ __m512i __DEFAULT_FN_ATTRS
311 _mm512_abs_epi8 (__m512i __A)
312 {
313  return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A,
314  (__v64qi) _mm512_setzero_qi(),
315  (__mmask64) -1);
316 }
317 
318 static __inline__ __m512i __DEFAULT_FN_ATTRS
319 _mm512_mask_abs_epi8 (__m512i __W, __mmask64 __U, __m512i __A)
320 {
321  return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A,
322  (__v64qi) __W,
323  (__mmask64) __U);
324 }
325 
326 static __inline__ __m512i __DEFAULT_FN_ATTRS
328 {
329  return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A,
330  (__v64qi) _mm512_setzero_qi(),
331  (__mmask64) __U);
332 }
333 
334 static __inline__ __m512i __DEFAULT_FN_ATTRS
335 _mm512_abs_epi16 (__m512i __A)
336 {
337  return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A,
338  (__v32hi) _mm512_setzero_hi(),
339  (__mmask32) -1);
340 }
341 
342 static __inline__ __m512i __DEFAULT_FN_ATTRS
343 _mm512_mask_abs_epi16 (__m512i __W, __mmask32 __U, __m512i __A)
344 {
345  return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A,
346  (__v32hi) __W,
347  (__mmask32) __U);
348 }
349 
350 static __inline__ __m512i __DEFAULT_FN_ATTRS
352 {
353  return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A,
354  (__v32hi) _mm512_setzero_hi(),
355  (__mmask32) __U);
356 }
357 
358 static __inline__ __m512i __DEFAULT_FN_ATTRS
359 _mm512_packs_epi32(__m512i __A, __m512i __B)
360 {
361  return (__m512i)__builtin_ia32_packssdw512((__v16si)__A, (__v16si)__B);
362 }
363 
364 static __inline__ __m512i __DEFAULT_FN_ATTRS
365 _mm512_maskz_packs_epi32(__mmask32 __M, __m512i __A, __m512i __B)
366 {
367  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
368  (__v32hi)_mm512_packs_epi32(__A, __B),
369  (__v32hi)_mm512_setzero_hi());
370 }
371 
372 static __inline__ __m512i __DEFAULT_FN_ATTRS
373 _mm512_mask_packs_epi32(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B)
374 {
375  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
376  (__v32hi)_mm512_packs_epi32(__A, __B),
377  (__v32hi)__W);
378 }
379 
380 static __inline__ __m512i __DEFAULT_FN_ATTRS
381 _mm512_packs_epi16(__m512i __A, __m512i __B)
382 {
383  return (__m512i)__builtin_ia32_packsswb512((__v32hi)__A, (__v32hi) __B);
384 }
385 
386 static __inline__ __m512i __DEFAULT_FN_ATTRS
387 _mm512_mask_packs_epi16(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B)
388 {
389  return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
390  (__v64qi)_mm512_packs_epi16(__A, __B),
391  (__v64qi)__W);
392 }
393 
394 static __inline__ __m512i __DEFAULT_FN_ATTRS
395 _mm512_maskz_packs_epi16(__mmask64 __M, __m512i __A, __m512i __B)
396 {
397  return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
398  (__v64qi)_mm512_packs_epi16(__A, __B),
399  (__v64qi)_mm512_setzero_qi());
400 }
401 
402 static __inline__ __m512i __DEFAULT_FN_ATTRS
403 _mm512_packus_epi32(__m512i __A, __m512i __B)
404 {
405  return (__m512i)__builtin_ia32_packusdw512((__v16si) __A, (__v16si) __B);
406 }
407 
408 static __inline__ __m512i __DEFAULT_FN_ATTRS
409 _mm512_maskz_packus_epi32(__mmask32 __M, __m512i __A, __m512i __B)
410 {
411  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
412  (__v32hi)_mm512_packus_epi32(__A, __B),
413  (__v32hi)_mm512_setzero_hi());
414 }
415 
416 static __inline__ __m512i __DEFAULT_FN_ATTRS
417 _mm512_mask_packus_epi32(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B)
418 {
419  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
420  (__v32hi)_mm512_packus_epi32(__A, __B),
421  (__v32hi)__W);
422 }
423 
424 static __inline__ __m512i __DEFAULT_FN_ATTRS
425 _mm512_packus_epi16(__m512i __A, __m512i __B)
426 {
427  return (__m512i)__builtin_ia32_packuswb512((__v32hi) __A, (__v32hi) __B);
428 }
429 
430 static __inline__ __m512i __DEFAULT_FN_ATTRS
431 _mm512_mask_packus_epi16(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B)
432 {
433  return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
434  (__v64qi)_mm512_packus_epi16(__A, __B),
435  (__v64qi)__W);
436 }
437 
438 static __inline__ __m512i __DEFAULT_FN_ATTRS
439 _mm512_maskz_packus_epi16(__mmask64 __M, __m512i __A, __m512i __B)
440 {
441  return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
442  (__v64qi)_mm512_packus_epi16(__A, __B),
443  (__v64qi)_mm512_setzero_qi());
444 }
445 
446 static __inline__ __m512i __DEFAULT_FN_ATTRS
447 _mm512_adds_epi8 (__m512i __A, __m512i __B)
448 {
449  return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A,
450  (__v64qi) __B,
451  (__v64qi) _mm512_setzero_qi(),
452  (__mmask64) -1);
453 }
454 
455 static __inline__ __m512i __DEFAULT_FN_ATTRS
456 _mm512_mask_adds_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
457  __m512i __B)
458 {
459  return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A,
460  (__v64qi) __B,
461  (__v64qi) __W,
462  (__mmask64) __U);
463 }
464 
465 static __inline__ __m512i __DEFAULT_FN_ATTRS
466 _mm512_maskz_adds_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
467 {
468  return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A,
469  (__v64qi) __B,
470  (__v64qi) _mm512_setzero_qi(),
471  (__mmask64) __U);
472 }
473 
474 static __inline__ __m512i __DEFAULT_FN_ATTRS
475 _mm512_adds_epi16 (__m512i __A, __m512i __B)
476 {
477  return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A,
478  (__v32hi) __B,
479  (__v32hi) _mm512_setzero_hi(),
480  (__mmask32) -1);
481 }
482 
483 static __inline__ __m512i __DEFAULT_FN_ATTRS
484 _mm512_mask_adds_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
485  __m512i __B)
486 {
487  return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A,
488  (__v32hi) __B,
489  (__v32hi) __W,
490  (__mmask32) __U);
491 }
492 
493 static __inline__ __m512i __DEFAULT_FN_ATTRS
494 _mm512_maskz_adds_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
495 {
496  return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A,
497  (__v32hi) __B,
498  (__v32hi) _mm512_setzero_hi(),
499  (__mmask32) __U);
500 }
501 
502 static __inline__ __m512i __DEFAULT_FN_ATTRS
503 _mm512_adds_epu8 (__m512i __A, __m512i __B)
504 {
505  return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A,
506  (__v64qi) __B,
507  (__v64qi) _mm512_setzero_qi(),
508  (__mmask64) -1);
509 }
510 
511 static __inline__ __m512i __DEFAULT_FN_ATTRS
512 _mm512_mask_adds_epu8 (__m512i __W, __mmask64 __U, __m512i __A,
513  __m512i __B)
514 {
515  return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A,
516  (__v64qi) __B,
517  (__v64qi) __W,
518  (__mmask64) __U);
519 }
520 
521 static __inline__ __m512i __DEFAULT_FN_ATTRS
522 _mm512_maskz_adds_epu8 (__mmask64 __U, __m512i __A, __m512i __B)
523 {
524  return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A,
525  (__v64qi) __B,
526  (__v64qi) _mm512_setzero_qi(),
527  (__mmask64) __U);
528 }
529 
530 static __inline__ __m512i __DEFAULT_FN_ATTRS
531 _mm512_adds_epu16 (__m512i __A, __m512i __B)
532 {
533  return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A,
534  (__v32hi) __B,
535  (__v32hi) _mm512_setzero_hi(),
536  (__mmask32) -1);
537 }
538 
539 static __inline__ __m512i __DEFAULT_FN_ATTRS
540 _mm512_mask_adds_epu16 (__m512i __W, __mmask32 __U, __m512i __A,
541  __m512i __B)
542 {
543  return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A,
544  (__v32hi) __B,
545  (__v32hi) __W,
546  (__mmask32) __U);
547 }
548 
549 static __inline__ __m512i __DEFAULT_FN_ATTRS
550 _mm512_maskz_adds_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
551 {
552  return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A,
553  (__v32hi) __B,
554  (__v32hi) _mm512_setzero_hi(),
555  (__mmask32) __U);
556 }
557 
558 static __inline__ __m512i __DEFAULT_FN_ATTRS
559 _mm512_avg_epu8 (__m512i __A, __m512i __B)
560 {
561  typedef unsigned short __v64hu __attribute__((__vector_size__(128)));
562  return (__m512i)__builtin_convertvector(
563  ((__builtin_convertvector((__v64qu) __A, __v64hu) +
564  __builtin_convertvector((__v64qu) __B, __v64hu)) + 1)
565  >> 1, __v64qu);
566 }
567 
568 static __inline__ __m512i __DEFAULT_FN_ATTRS
569 _mm512_mask_avg_epu8 (__m512i __W, __mmask64 __U, __m512i __A,
570  __m512i __B)
571 {
572  return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
573  (__v64qi)_mm512_avg_epu8(__A, __B),
574  (__v64qi)__W);
575 }
576 
577 static __inline__ __m512i __DEFAULT_FN_ATTRS
578 _mm512_maskz_avg_epu8 (__mmask64 __U, __m512i __A, __m512i __B)
579 {
580  return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
581  (__v64qi)_mm512_avg_epu8(__A, __B),
582  (__v64qi)_mm512_setzero_qi());
583 }
584 
585 static __inline__ __m512i __DEFAULT_FN_ATTRS
586 _mm512_avg_epu16 (__m512i __A, __m512i __B)
587 {
588  typedef unsigned int __v32su __attribute__((__vector_size__(128)));
589  return (__m512i)__builtin_convertvector(
590  ((__builtin_convertvector((__v32hu) __A, __v32su) +
591  __builtin_convertvector((__v32hu) __B, __v32su)) + 1)
592  >> 1, __v32hu);
593 }
594 
595 static __inline__ __m512i __DEFAULT_FN_ATTRS
596 _mm512_mask_avg_epu16 (__m512i __W, __mmask32 __U, __m512i __A,
597  __m512i __B)
598 {
599  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
600  (__v32hi)_mm512_avg_epu16(__A, __B),
601  (__v32hi)__W);
602 }
603 
604 static __inline__ __m512i __DEFAULT_FN_ATTRS
605 _mm512_maskz_avg_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
606 {
607  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
608  (__v32hi)_mm512_avg_epu16(__A, __B),
609  (__v32hi) _mm512_setzero_hi());
610 }
611 
612 static __inline__ __m512i __DEFAULT_FN_ATTRS
613 _mm512_max_epi8 (__m512i __A, __m512i __B)
614 {
615  return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A,
616  (__v64qi) __B,
617  (__v64qi) _mm512_setzero_qi(),
618  (__mmask64) -1);
619 }
620 
621 static __inline__ __m512i __DEFAULT_FN_ATTRS
622 _mm512_maskz_max_epi8 (__mmask64 __M, __m512i __A, __m512i __B)
623 {
624  return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A,
625  (__v64qi) __B,
626  (__v64qi) _mm512_setzero_qi(),
627  (__mmask64) __M);
628 }
629 
630 static __inline__ __m512i __DEFAULT_FN_ATTRS
631 _mm512_mask_max_epi8 (__m512i __W, __mmask64 __M, __m512i __A,
632  __m512i __B)
633 {
634  return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A,
635  (__v64qi) __B,
636  (__v64qi) __W,
637  (__mmask64) __M);
638 }
639 
640 static __inline__ __m512i __DEFAULT_FN_ATTRS
641 _mm512_max_epi16 (__m512i __A, __m512i __B)
642 {
643  return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A,
644  (__v32hi) __B,
645  (__v32hi) _mm512_setzero_hi(),
646  (__mmask32) -1);
647 }
648 
649 static __inline__ __m512i __DEFAULT_FN_ATTRS
650 _mm512_maskz_max_epi16 (__mmask32 __M, __m512i __A, __m512i __B)
651 {
652  return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A,
653  (__v32hi) __B,
654  (__v32hi) _mm512_setzero_hi(),
655  (__mmask32) __M);
656 }
657 
658 static __inline__ __m512i __DEFAULT_FN_ATTRS
659 _mm512_mask_max_epi16 (__m512i __W, __mmask32 __M, __m512i __A,
660  __m512i __B)
661 {
662  return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A,
663  (__v32hi) __B,
664  (__v32hi) __W,
665  (__mmask32) __M);
666 }
667 
668 static __inline__ __m512i __DEFAULT_FN_ATTRS
669 _mm512_max_epu8 (__m512i __A, __m512i __B)
670 {
671  return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A,
672  (__v64qi) __B,
673  (__v64qi) _mm512_setzero_qi(),
674  (__mmask64) -1);
675 }
676 
677 static __inline__ __m512i __DEFAULT_FN_ATTRS
678 _mm512_maskz_max_epu8 (__mmask64 __M, __m512i __A, __m512i __B)
679 {
680  return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A,
681  (__v64qi) __B,
682  (__v64qi) _mm512_setzero_qi(),
683  (__mmask64) __M);
684 }
685 
686 static __inline__ __m512i __DEFAULT_FN_ATTRS
687 _mm512_mask_max_epu8 (__m512i __W, __mmask64 __M, __m512i __A,
688  __m512i __B)
689 {
690  return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A,
691  (__v64qi) __B,
692  (__v64qi) __W,
693  (__mmask64) __M);
694 }
695 
696 static __inline__ __m512i __DEFAULT_FN_ATTRS
697 _mm512_max_epu16 (__m512i __A, __m512i __B)
698 {
699  return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A,
700  (__v32hi) __B,
701  (__v32hi) _mm512_setzero_hi(),
702  (__mmask32) -1);
703 }
704 
705 static __inline__ __m512i __DEFAULT_FN_ATTRS
706 _mm512_maskz_max_epu16 (__mmask32 __M, __m512i __A, __m512i __B)
707 {
708  return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A,
709  (__v32hi) __B,
710  (__v32hi) _mm512_setzero_hi(),
711  (__mmask32) __M);
712 }
713 
714 static __inline__ __m512i __DEFAULT_FN_ATTRS
715 _mm512_mask_max_epu16 (__m512i __W, __mmask32 __M, __m512i __A,
716  __m512i __B)
717 {
718  return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A,
719  (__v32hi) __B,
720  (__v32hi) __W,
721  (__mmask32) __M);
722 }
723 
724 static __inline__ __m512i __DEFAULT_FN_ATTRS
725 _mm512_min_epi8 (__m512i __A, __m512i __B)
726 {
727  return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A,
728  (__v64qi) __B,
729  (__v64qi) _mm512_setzero_qi(),
730  (__mmask64) -1);
731 }
732 
733 static __inline__ __m512i __DEFAULT_FN_ATTRS
734 _mm512_maskz_min_epi8 (__mmask64 __M, __m512i __A, __m512i __B)
735 {
736  return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A,
737  (__v64qi) __B,
738  (__v64qi) _mm512_setzero_qi(),
739  (__mmask64) __M);
740 }
741 
742 static __inline__ __m512i __DEFAULT_FN_ATTRS
743 _mm512_mask_min_epi8 (__m512i __W, __mmask64 __M, __m512i __A,
744  __m512i __B)
745 {
746  return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A,
747  (__v64qi) __B,
748  (__v64qi) __W,
749  (__mmask64) __M);
750 }
751 
752 static __inline__ __m512i __DEFAULT_FN_ATTRS
753 _mm512_min_epi16 (__m512i __A, __m512i __B)
754 {
755  return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A,
756  (__v32hi) __B,
757  (__v32hi) _mm512_setzero_hi(),
758  (__mmask32) -1);
759 }
760 
761 static __inline__ __m512i __DEFAULT_FN_ATTRS
762 _mm512_maskz_min_epi16 (__mmask32 __M, __m512i __A, __m512i __B)
763 {
764  return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A,
765  (__v32hi) __B,
766  (__v32hi) _mm512_setzero_hi(),
767  (__mmask32) __M);
768 }
769 
770 static __inline__ __m512i __DEFAULT_FN_ATTRS
771 _mm512_mask_min_epi16 (__m512i __W, __mmask32 __M, __m512i __A,
772  __m512i __B)
773 {
774  return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A,
775  (__v32hi) __B,
776  (__v32hi) __W,
777  (__mmask32) __M);
778 }
779 
780 static __inline__ __m512i __DEFAULT_FN_ATTRS
781 _mm512_min_epu8 (__m512i __A, __m512i __B)
782 {
783  return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A,
784  (__v64qi) __B,
785  (__v64qi) _mm512_setzero_qi(),
786  (__mmask64) -1);
787 }
788 
789 static __inline__ __m512i __DEFAULT_FN_ATTRS
790 _mm512_maskz_min_epu8 (__mmask64 __M, __m512i __A, __m512i __B)
791 {
792  return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A,
793  (__v64qi) __B,
794  (__v64qi) _mm512_setzero_qi(),
795  (__mmask64) __M);
796 }
797 
798 static __inline__ __m512i __DEFAULT_FN_ATTRS
799 _mm512_mask_min_epu8 (__m512i __W, __mmask64 __M, __m512i __A,
800  __m512i __B)
801 {
802  return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A,
803  (__v64qi) __B,
804  (__v64qi) __W,
805  (__mmask64) __M);
806 }
807 
808 static __inline__ __m512i __DEFAULT_FN_ATTRS
809 _mm512_min_epu16 (__m512i __A, __m512i __B)
810 {
811  return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A,
812  (__v32hi) __B,
813  (__v32hi) _mm512_setzero_hi(),
814  (__mmask32) -1);
815 }
816 
817 static __inline__ __m512i __DEFAULT_FN_ATTRS
818 _mm512_maskz_min_epu16 (__mmask32 __M, __m512i __A, __m512i __B)
819 {
820  return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A,
821  (__v32hi) __B,
822  (__v32hi) _mm512_setzero_hi(),
823  (__mmask32) __M);
824 }
825 
826 static __inline__ __m512i __DEFAULT_FN_ATTRS
827 _mm512_mask_min_epu16 (__m512i __W, __mmask32 __M, __m512i __A,
828  __m512i __B)
829 {
830  return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A,
831  (__v32hi) __B,
832  (__v32hi) __W,
833  (__mmask32) __M);
834 }
835 
836 static __inline__ __m512i __DEFAULT_FN_ATTRS
837 _mm512_shuffle_epi8(__m512i __A, __m512i __B)
838 {
839  return (__m512i)__builtin_ia32_pshufb512((__v64qi)__A,(__v64qi)__B);
840 }
841 
842 static __inline__ __m512i __DEFAULT_FN_ATTRS
843 _mm512_mask_shuffle_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B)
844 {
845  return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
846  (__v64qi)_mm512_shuffle_epi8(__A, __B),
847  (__v64qi)__W);
848 }
849 
850 static __inline__ __m512i __DEFAULT_FN_ATTRS
851 _mm512_maskz_shuffle_epi8(__mmask64 __U, __m512i __A, __m512i __B)
852 {
853  return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
854  (__v64qi)_mm512_shuffle_epi8(__A, __B),
855  (__v64qi)_mm512_setzero_qi());
856 }
857 
858 static __inline__ __m512i __DEFAULT_FN_ATTRS
859 _mm512_subs_epi8 (__m512i __A, __m512i __B)
860 {
861  return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A,
862  (__v64qi) __B,
863  (__v64qi) _mm512_setzero_qi(),
864  (__mmask64) -1);
865 }
866 
867 static __inline__ __m512i __DEFAULT_FN_ATTRS
868 _mm512_mask_subs_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
869  __m512i __B)
870 {
871  return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A,
872  (__v64qi) __B,
873  (__v64qi) __W,
874  (__mmask64) __U);
875 }
876 
877 static __inline__ __m512i __DEFAULT_FN_ATTRS
878 _mm512_maskz_subs_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
879 {
880  return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A,
881  (__v64qi) __B,
882  (__v64qi) _mm512_setzero_qi(),
883  (__mmask64) __U);
884 }
885 
886 static __inline__ __m512i __DEFAULT_FN_ATTRS
887 _mm512_subs_epi16 (__m512i __A, __m512i __B)
888 {
889  return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A,
890  (__v32hi) __B,
891  (__v32hi) _mm512_setzero_hi(),
892  (__mmask32) -1);
893 }
894 
895 static __inline__ __m512i __DEFAULT_FN_ATTRS
896 _mm512_mask_subs_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
897  __m512i __B)
898 {
899  return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A,
900  (__v32hi) __B,
901  (__v32hi) __W,
902  (__mmask32) __U);
903 }
904 
905 static __inline__ __m512i __DEFAULT_FN_ATTRS
906 _mm512_maskz_subs_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
907 {
908  return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A,
909  (__v32hi) __B,
910  (__v32hi) _mm512_setzero_hi(),
911  (__mmask32) __U);
912 }
913 
914 static __inline__ __m512i __DEFAULT_FN_ATTRS
915 _mm512_subs_epu8 (__m512i __A, __m512i __B)
916 {
917  return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A,
918  (__v64qi) __B,
919  (__v64qi) _mm512_setzero_qi(),
920  (__mmask64) -1);
921 }
922 
923 static __inline__ __m512i __DEFAULT_FN_ATTRS
924 _mm512_mask_subs_epu8 (__m512i __W, __mmask64 __U, __m512i __A,
925  __m512i __B)
926 {
927  return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A,
928  (__v64qi) __B,
929  (__v64qi) __W,
930  (__mmask64) __U);
931 }
932 
933 static __inline__ __m512i __DEFAULT_FN_ATTRS
934 _mm512_maskz_subs_epu8 (__mmask64 __U, __m512i __A, __m512i __B)
935 {
936  return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A,
937  (__v64qi) __B,
938  (__v64qi) _mm512_setzero_qi(),
939  (__mmask64) __U);
940 }
941 
942 static __inline__ __m512i __DEFAULT_FN_ATTRS
943 _mm512_subs_epu16 (__m512i __A, __m512i __B)
944 {
945  return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A,
946  (__v32hi) __B,
947  (__v32hi) _mm512_setzero_hi(),
948  (__mmask32) -1);
949 }
950 
951 static __inline__ __m512i __DEFAULT_FN_ATTRS
952 _mm512_mask_subs_epu16 (__m512i __W, __mmask32 __U, __m512i __A,
953  __m512i __B)
954 {
955  return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A,
956  (__v32hi) __B,
957  (__v32hi) __W,
958  (__mmask32) __U);
959 }
960 
961 static __inline__ __m512i __DEFAULT_FN_ATTRS
962 _mm512_maskz_subs_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
963 {
964  return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A,
965  (__v32hi) __B,
966  (__v32hi) _mm512_setzero_hi(),
967  (__mmask32) __U);
968 }
969 
970 static __inline__ __m512i __DEFAULT_FN_ATTRS
971 _mm512_mask2_permutex2var_epi16 (__m512i __A, __m512i __I,
972  __mmask32 __U, __m512i __B)
973 {
974  return (__m512i) __builtin_ia32_vpermi2varhi512_mask ((__v32hi) __A,
975  (__v32hi) __I /* idx */ ,
976  (__v32hi) __B,
977  (__mmask32) __U);
978 }
979 
980 static __inline__ __m512i __DEFAULT_FN_ATTRS
981 _mm512_permutex2var_epi16 (__m512i __A, __m512i __I, __m512i __B)
982 {
983  return (__m512i) __builtin_ia32_vpermt2varhi512_mask ((__v32hi) __I /* idx */,
984  (__v32hi) __A,
985  (__v32hi) __B,
986  (__mmask32) -1);
987 }
988 
989 static __inline__ __m512i __DEFAULT_FN_ATTRS
991  __m512i __I, __m512i __B)
992 {
993  return (__m512i) __builtin_ia32_vpermt2varhi512_mask ((__v32hi) __I /* idx */,
994  (__v32hi) __A,
995  (__v32hi) __B,
996  (__mmask32) __U);
997 }
998 
999 static __inline__ __m512i __DEFAULT_FN_ATTRS
1001  __m512i __I, __m512i __B)
1002 {
1003  return (__m512i) __builtin_ia32_vpermt2varhi512_maskz ((__v32hi) __I
1004  /* idx */ ,
1005  (__v32hi) __A,
1006  (__v32hi) __B,
1007  (__mmask32) __U);
1008 }
1009 
1010 static __inline__ __m512i __DEFAULT_FN_ATTRS
1011 _mm512_mulhrs_epi16(__m512i __A, __m512i __B)
1012 {
1013  return (__m512i)__builtin_ia32_pmulhrsw512((__v32hi)__A, (__v32hi)__B);
1014 }
1015 
1016 static __inline__ __m512i __DEFAULT_FN_ATTRS
1017 _mm512_mask_mulhrs_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
1018 {
1019  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1020  (__v32hi)_mm512_mulhrs_epi16(__A, __B),
1021  (__v32hi)__W);
1022 }
1023 
1024 static __inline__ __m512i __DEFAULT_FN_ATTRS
1025 _mm512_maskz_mulhrs_epi16(__mmask32 __U, __m512i __A, __m512i __B)
1026 {
1027  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1028  (__v32hi)_mm512_mulhrs_epi16(__A, __B),
1029  (__v32hi)_mm512_setzero_hi());
1030 }
1031 
1032 static __inline__ __m512i __DEFAULT_FN_ATTRS
1033 _mm512_mulhi_epi16(__m512i __A, __m512i __B)
1034 {
1035  return (__m512i)__builtin_ia32_pmulhw512((__v32hi) __A, (__v32hi) __B);
1036 }
1037 
1038 static __inline__ __m512i __DEFAULT_FN_ATTRS
1039 _mm512_mask_mulhi_epi16(__m512i __W, __mmask32 __U, __m512i __A,
1040  __m512i __B)
1041 {
1042  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1043  (__v32hi)_mm512_mulhi_epi16(__A, __B),
1044  (__v32hi)__W);
1045 }
1046 
1047 static __inline__ __m512i __DEFAULT_FN_ATTRS
1048 _mm512_maskz_mulhi_epi16(__mmask32 __U, __m512i __A, __m512i __B)
1049 {
1050  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1051  (__v32hi)_mm512_mulhi_epi16(__A, __B),
1052  (__v32hi)_mm512_setzero_hi());
1053 }
1054 
1055 static __inline__ __m512i __DEFAULT_FN_ATTRS
1056 _mm512_mulhi_epu16(__m512i __A, __m512i __B)
1057 {
1058  return (__m512i)__builtin_ia32_pmulhuw512((__v32hi) __A, (__v32hi) __B);
1059 }
1060 
1061 static __inline__ __m512i __DEFAULT_FN_ATTRS
1062 _mm512_mask_mulhi_epu16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
1063 {
1064  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1065  (__v32hi)_mm512_mulhi_epu16(__A, __B),
1066  (__v32hi)__W);
1067 }
1068 
1069 static __inline__ __m512i __DEFAULT_FN_ATTRS
1070 _mm512_maskz_mulhi_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
1071 {
1072  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1073  (__v32hi)_mm512_mulhi_epu16(__A, __B),
1074  (__v32hi)_mm512_setzero_hi());
1075 }
1076 
1077 static __inline__ __m512i __DEFAULT_FN_ATTRS
1078 _mm512_maddubs_epi16(__m512i __X, __m512i __Y) {
1079  return (__m512i)__builtin_ia32_pmaddubsw512((__v64qi)__X, (__v64qi)__Y);
1080 }
1081 
1082 static __inline__ __m512i __DEFAULT_FN_ATTRS
1083 _mm512_mask_maddubs_epi16(__m512i __W, __mmask32 __U, __m512i __X,
1084  __m512i __Y) {
1085  return (__m512i)__builtin_ia32_selectw_512((__mmask32) __U,
1086  (__v32hi)_mm512_maddubs_epi16(__X, __Y),
1087  (__v32hi)__W);
1088 }
1089 
1090 static __inline__ __m512i __DEFAULT_FN_ATTRS
1091 _mm512_maskz_maddubs_epi16(__mmask32 __U, __m512i __X, __m512i __Y) {
1092  return (__m512i)__builtin_ia32_selectw_512((__mmask32) __U,
1093  (__v32hi)_mm512_maddubs_epi16(__X, __Y),
1094  (__v32hi)_mm512_setzero_hi());
1095 }
1096 
1097 static __inline__ __m512i __DEFAULT_FN_ATTRS
1098 _mm512_madd_epi16(__m512i __A, __m512i __B) {
1099  return (__m512i)__builtin_ia32_pmaddwd512((__v32hi)__A, (__v32hi)__B);
1100 }
1101 
1102 static __inline__ __m512i __DEFAULT_FN_ATTRS
1103 _mm512_mask_madd_epi16(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
1104  return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U,
1105  (__v16si)_mm512_madd_epi16(__A, __B),
1106  (__v16si)__W);
1107 }
1108 
1109 static __inline__ __m512i __DEFAULT_FN_ATTRS
1110 _mm512_maskz_madd_epi16(__mmask16 __U, __m512i __A, __m512i __B) {
1111  return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U,
1112  (__v16si)_mm512_madd_epi16(__A, __B),
1113  (__v16si)_mm512_setzero_si512());
1114 }
1115 
1116 static __inline__ __m256i __DEFAULT_FN_ATTRS
1117 _mm512_cvtsepi16_epi8 (__m512i __A) {
1118  return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,
1119  (__v32qi)_mm256_setzero_si256(),
1120  (__mmask32) -1);
1121 }
1122 
1123 static __inline__ __m256i __DEFAULT_FN_ATTRS
1124 _mm512_mask_cvtsepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) {
1125  return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,
1126  (__v32qi)__O,
1127  __M);
1128 }
1129 
1130 static __inline__ __m256i __DEFAULT_FN_ATTRS
1132  return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,
1133  (__v32qi) _mm256_setzero_si256(),
1134  __M);
1135 }
1136 
1137 static __inline__ __m256i __DEFAULT_FN_ATTRS
1138 _mm512_cvtusepi16_epi8 (__m512i __A) {
1139  return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,
1140  (__v32qi) _mm256_setzero_si256(),
1141  (__mmask32) -1);
1142 }
1143 
1144 static __inline__ __m256i __DEFAULT_FN_ATTRS
1145 _mm512_mask_cvtusepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) {
1146  return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,
1147  (__v32qi) __O,
1148  __M);
1149 }
1150 
1151 static __inline__ __m256i __DEFAULT_FN_ATTRS
1153  return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,
1154  (__v32qi) _mm256_setzero_si256(),
1155  __M);
1156 }
1157 
1158 static __inline__ __m256i __DEFAULT_FN_ATTRS
1159 _mm512_cvtepi16_epi8 (__m512i __A) {
1160  return (__m256i)__builtin_convertvector((__v32hi)__A, __v32qi);
1161 }
1162 
1163 static __inline__ __m256i __DEFAULT_FN_ATTRS
1164 _mm512_mask_cvtepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) {
1165  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
1166  (__v32qi)_mm512_cvtepi16_epi8(__A),
1167  (__v32qi)__O);
1168 }
1169 
1170 static __inline__ __m256i __DEFAULT_FN_ATTRS
1172  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
1173  (__v32qi)_mm512_cvtepi16_epi8(__A),
1174  (__v32qi)_mm256_setzero_si256());
1175 }
1176 
1177 static __inline__ void __DEFAULT_FN_ATTRS
1178 _mm512_mask_cvtepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)
1179 {
1180  __builtin_ia32_pmovwb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M);
1181 }
1182 
1183 static __inline__ void __DEFAULT_FN_ATTRS
1184 _mm512_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)
1185 {
1186  __builtin_ia32_pmovswb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M);
1187 }
1188 
1189 static __inline__ void __DEFAULT_FN_ATTRS
1190 _mm512_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)
1191 {
1192  __builtin_ia32_pmovuswb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M);
1193 }
1194 
1195 static __inline__ __m512i __DEFAULT_FN_ATTRS
1196 _mm512_unpackhi_epi8(__m512i __A, __m512i __B) {
1197  return (__m512i)__builtin_shufflevector((__v64qi)__A, (__v64qi)__B,
1198  8, 64+8, 9, 64+9,
1199  10, 64+10, 11, 64+11,
1200  12, 64+12, 13, 64+13,
1201  14, 64+14, 15, 64+15,
1202  24, 64+24, 25, 64+25,
1203  26, 64+26, 27, 64+27,
1204  28, 64+28, 29, 64+29,
1205  30, 64+30, 31, 64+31,
1206  40, 64+40, 41, 64+41,
1207  42, 64+42, 43, 64+43,
1208  44, 64+44, 45, 64+45,
1209  46, 64+46, 47, 64+47,
1210  56, 64+56, 57, 64+57,
1211  58, 64+58, 59, 64+59,
1212  60, 64+60, 61, 64+61,
1213  62, 64+62, 63, 64+63);
1214 }
1215 
1216 static __inline__ __m512i __DEFAULT_FN_ATTRS
1217 _mm512_mask_unpackhi_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
1218  return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
1219  (__v64qi)_mm512_unpackhi_epi8(__A, __B),
1220  (__v64qi)__W);
1221 }
1222 
1223 static __inline__ __m512i __DEFAULT_FN_ATTRS
1224 _mm512_maskz_unpackhi_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
1225  return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
1226  (__v64qi)_mm512_unpackhi_epi8(__A, __B),
1227  (__v64qi)_mm512_setzero_qi());
1228 }
1229 
1230 static __inline__ __m512i __DEFAULT_FN_ATTRS
1231 _mm512_unpackhi_epi16(__m512i __A, __m512i __B) {
1232  return (__m512i)__builtin_shufflevector((__v32hi)__A, (__v32hi)__B,
1233  4, 32+4, 5, 32+5,
1234  6, 32+6, 7, 32+7,
1235  12, 32+12, 13, 32+13,
1236  14, 32+14, 15, 32+15,
1237  20, 32+20, 21, 32+21,
1238  22, 32+22, 23, 32+23,
1239  28, 32+28, 29, 32+29,
1240  30, 32+30, 31, 32+31);
1241 }
1242 
1243 static __inline__ __m512i __DEFAULT_FN_ATTRS
1244 _mm512_mask_unpackhi_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
1245  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1246  (__v32hi)_mm512_unpackhi_epi16(__A, __B),
1247  (__v32hi)__W);
1248 }
1249 
1250 static __inline__ __m512i __DEFAULT_FN_ATTRS
1251 _mm512_maskz_unpackhi_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
1252  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1253  (__v32hi)_mm512_unpackhi_epi16(__A, __B),
1254  (__v32hi)_mm512_setzero_hi());
1255 }
1256 
1257 static __inline__ __m512i __DEFAULT_FN_ATTRS
1258 _mm512_unpacklo_epi8(__m512i __A, __m512i __B) {
1259  return (__m512i)__builtin_shufflevector((__v64qi)__A, (__v64qi)__B,
1260  0, 64+0, 1, 64+1,
1261  2, 64+2, 3, 64+3,
1262  4, 64+4, 5, 64+5,
1263  6, 64+6, 7, 64+7,
1264  16, 64+16, 17, 64+17,
1265  18, 64+18, 19, 64+19,
1266  20, 64+20, 21, 64+21,
1267  22, 64+22, 23, 64+23,
1268  32, 64+32, 33, 64+33,
1269  34, 64+34, 35, 64+35,
1270  36, 64+36, 37, 64+37,
1271  38, 64+38, 39, 64+39,
1272  48, 64+48, 49, 64+49,
1273  50, 64+50, 51, 64+51,
1274  52, 64+52, 53, 64+53,
1275  54, 64+54, 55, 64+55);
1276 }
1277 
1278 static __inline__ __m512i __DEFAULT_FN_ATTRS
1279 _mm512_mask_unpacklo_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
1280  return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
1281  (__v64qi)_mm512_unpacklo_epi8(__A, __B),
1282  (__v64qi)__W);
1283 }
1284 
1285 static __inline__ __m512i __DEFAULT_FN_ATTRS
1286 _mm512_maskz_unpacklo_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
1287  return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
1288  (__v64qi)_mm512_unpacklo_epi8(__A, __B),
1289  (__v64qi)_mm512_setzero_qi());
1290 }
1291 
1292 static __inline__ __m512i __DEFAULT_FN_ATTRS
1293 _mm512_unpacklo_epi16(__m512i __A, __m512i __B) {
1294  return (__m512i)__builtin_shufflevector((__v32hi)__A, (__v32hi)__B,
1295  0, 32+0, 1, 32+1,
1296  2, 32+2, 3, 32+3,
1297  8, 32+8, 9, 32+9,
1298  10, 32+10, 11, 32+11,
1299  16, 32+16, 17, 32+17,
1300  18, 32+18, 19, 32+19,
1301  24, 32+24, 25, 32+25,
1302  26, 32+26, 27, 32+27);
1303 }
1304 
1305 static __inline__ __m512i __DEFAULT_FN_ATTRS
1306 _mm512_mask_unpacklo_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
1307  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1308  (__v32hi)_mm512_unpacklo_epi16(__A, __B),
1309  (__v32hi)__W);
1310 }
1311 
1312 static __inline__ __m512i __DEFAULT_FN_ATTRS
1313 _mm512_maskz_unpacklo_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
1314  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1315  (__v32hi)_mm512_unpacklo_epi16(__A, __B),
1316  (__v32hi)_mm512_setzero_hi());
1317 }
1318 
1319 static __inline__ __m512i __DEFAULT_FN_ATTRS
1321 {
1322  /* This function always performs a signed extension, but __v32qi is a char
1323  which may be signed or unsigned, so use __v32qs. */
1324  return (__m512i)__builtin_convertvector((__v32qs)__A, __v32hi);
1325 }
1326 
1327 static __inline__ __m512i __DEFAULT_FN_ATTRS
1328 _mm512_mask_cvtepi8_epi16(__m512i __W, __mmask32 __U, __m256i __A)
1329 {
1330  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1331  (__v32hi)_mm512_cvtepi8_epi16(__A),
1332  (__v32hi)__W);
1333 }
1334 
1335 static __inline__ __m512i __DEFAULT_FN_ATTRS
1337 {
1338  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1339  (__v32hi)_mm512_cvtepi8_epi16(__A),
1340  (__v32hi)_mm512_setzero_hi());
1341 }
1342 
1343 static __inline__ __m512i __DEFAULT_FN_ATTRS
1345 {
1346  return (__m512i)__builtin_convertvector((__v32qu)__A, __v32hi);
1347 }
1348 
1349 static __inline__ __m512i __DEFAULT_FN_ATTRS
1350 _mm512_mask_cvtepu8_epi16(__m512i __W, __mmask32 __U, __m256i __A)
1351 {
1352  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1353  (__v32hi)_mm512_cvtepu8_epi16(__A),
1354  (__v32hi)__W);
1355 }
1356 
1357 static __inline__ __m512i __DEFAULT_FN_ATTRS
1359 {
1360  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1361  (__v32hi)_mm512_cvtepu8_epi16(__A),
1362  (__v32hi)_mm512_setzero_hi());
1363 }
1364 
1365 
1366 #define _mm512_shufflehi_epi16(A, imm) __extension__ ({ \
1367  (__m512i)__builtin_shufflevector((__v32hi)(__m512i)(A), \
1368  (__v32hi)_mm512_undefined_epi32(), \
1369  0, 1, 2, 3, \
1370  4 + (((imm) >> 0) & 0x3), \
1371  4 + (((imm) >> 2) & 0x3), \
1372  4 + (((imm) >> 4) & 0x3), \
1373  4 + (((imm) >> 6) & 0x3), \
1374  8, 9, 10, 11, \
1375  12 + (((imm) >> 0) & 0x3), \
1376  12 + (((imm) >> 2) & 0x3), \
1377  12 + (((imm) >> 4) & 0x3), \
1378  12 + (((imm) >> 6) & 0x3), \
1379  16, 17, 18, 19, \
1380  20 + (((imm) >> 0) & 0x3), \
1381  20 + (((imm) >> 2) & 0x3), \
1382  20 + (((imm) >> 4) & 0x3), \
1383  20 + (((imm) >> 6) & 0x3), \
1384  24, 25, 26, 27, \
1385  28 + (((imm) >> 0) & 0x3), \
1386  28 + (((imm) >> 2) & 0x3), \
1387  28 + (((imm) >> 4) & 0x3), \
1388  28 + (((imm) >> 6) & 0x3)); })
1389 
1390 #define _mm512_mask_shufflehi_epi16(W, U, A, imm) __extension__ ({ \
1391  (__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
1392  (__v32hi)_mm512_shufflehi_epi16((A), \
1393  (imm)), \
1394  (__v32hi)(__m512i)(W)); })
1395 
1396 #define _mm512_maskz_shufflehi_epi16(U, A, imm) __extension__ ({ \
1397  (__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
1398  (__v32hi)_mm512_shufflehi_epi16((A), \
1399  (imm)), \
1400  (__v32hi)_mm512_setzero_hi()); })
1401 
1402 #define _mm512_shufflelo_epi16(A, imm) __extension__ ({ \
1403  (__m512i)__builtin_shufflevector((__v32hi)(__m512i)(A), \
1404  (__v32hi)_mm512_undefined_epi32(), \
1405  0 + (((imm) >> 0) & 0x3), \
1406  0 + (((imm) >> 2) & 0x3), \
1407  0 + (((imm) >> 4) & 0x3), \
1408  0 + (((imm) >> 6) & 0x3), \
1409  4, 5, 6, 7, \
1410  8 + (((imm) >> 0) & 0x3), \
1411  8 + (((imm) >> 2) & 0x3), \
1412  8 + (((imm) >> 4) & 0x3), \
1413  8 + (((imm) >> 6) & 0x3), \
1414  12, 13, 14, 15, \
1415  16 + (((imm) >> 0) & 0x3), \
1416  16 + (((imm) >> 2) & 0x3), \
1417  16 + (((imm) >> 4) & 0x3), \
1418  16 + (((imm) >> 6) & 0x3), \
1419  20, 21, 22, 23, \
1420  24 + (((imm) >> 0) & 0x3), \
1421  24 + (((imm) >> 2) & 0x3), \
1422  24 + (((imm) >> 4) & 0x3), \
1423  24 + (((imm) >> 6) & 0x3), \
1424  28, 29, 30, 31); })
1425 
1426 
1427 #define _mm512_mask_shufflelo_epi16(W, U, A, imm) __extension__ ({ \
1428  (__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
1429  (__v32hi)_mm512_shufflelo_epi16((A), \
1430  (imm)), \
1431  (__v32hi)(__m512i)(W)); })
1432 
1433 
1434 #define _mm512_maskz_shufflelo_epi16(U, A, imm) __extension__ ({ \
1435  (__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
1436  (__v32hi)_mm512_shufflelo_epi16((A), \
1437  (imm)), \
1438  (__v32hi)_mm512_setzero_hi()); })
1439 
1440 static __inline__ __m512i __DEFAULT_FN_ATTRS
1441 _mm512_sllv_epi16(__m512i __A, __m512i __B)
1442 {
1443  return (__m512i)__builtin_ia32_psllv32hi((__v32hi) __A, (__v32hi) __B);
1444 }
1445 
1446 static __inline__ __m512i __DEFAULT_FN_ATTRS
1447 _mm512_mask_sllv_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
1448 {
1449  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1450  (__v32hi)_mm512_sllv_epi16(__A, __B),
1451  (__v32hi)__W);
1452 }
1453 
1454 static __inline__ __m512i __DEFAULT_FN_ATTRS
1455 _mm512_maskz_sllv_epi16(__mmask32 __U, __m512i __A, __m512i __B)
1456 {
1457  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1458  (__v32hi)_mm512_sllv_epi16(__A, __B),
1459  (__v32hi)_mm512_setzero_hi());
1460 }
1461 
1462 static __inline__ __m512i __DEFAULT_FN_ATTRS
1463 _mm512_sll_epi16(__m512i __A, __m128i __B)
1464 {
1465  return (__m512i)__builtin_ia32_psllw512((__v32hi) __A, (__v8hi) __B);
1466 }
1467 
1468 static __inline__ __m512i __DEFAULT_FN_ATTRS
1469 _mm512_mask_sll_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B)
1470 {
1471  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1472  (__v32hi)_mm512_sll_epi16(__A, __B),
1473  (__v32hi)__W);
1474 }
1475 
1476 static __inline__ __m512i __DEFAULT_FN_ATTRS
1477 _mm512_maskz_sll_epi16(__mmask32 __U, __m512i __A, __m128i __B)
1478 {
1479  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1480  (__v32hi)_mm512_sll_epi16(__A, __B),
1481  (__v32hi)_mm512_setzero_hi());
1482 }
1483 
1484 static __inline__ __m512i __DEFAULT_FN_ATTRS
1485 _mm512_slli_epi16(__m512i __A, int __B)
1486 {
1487  return (__m512i)__builtin_ia32_psllwi512((__v32hi)__A, __B);
1488 }
1489 
1490 static __inline__ __m512i __DEFAULT_FN_ATTRS
1491 _mm512_mask_slli_epi16(__m512i __W, __mmask32 __U, __m512i __A, int __B)
1492 {
1493  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1494  (__v32hi)_mm512_slli_epi16(__A, __B),
1495  (__v32hi)__W);
1496 }
1497 
1498 static __inline__ __m512i __DEFAULT_FN_ATTRS
1499 _mm512_maskz_slli_epi16(__mmask32 __U, __m512i __A, int __B)
1500 {
1501  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1502  (__v32hi)_mm512_slli_epi16(__A, __B),
1503  (__v32hi)_mm512_setzero_hi());
1504 }
1505 
1506 #define _mm512_bslli_epi128(a, imm) __extension__ ({ \
1507  (__m512i)__builtin_shufflevector( \
1508  (__v64qi)_mm512_setzero_si512(), \
1509  (__v64qi)(__m512i)(a), \
1510  ((char)(imm)&0xF0) ? 0 : ((char)(imm)>0x0 ? 16 : 64) - (char)(imm), \
1511  ((char)(imm)&0xF0) ? 1 : ((char)(imm)>0x1 ? 17 : 65) - (char)(imm), \
1512  ((char)(imm)&0xF0) ? 2 : ((char)(imm)>0x2 ? 18 : 66) - (char)(imm), \
1513  ((char)(imm)&0xF0) ? 3 : ((char)(imm)>0x3 ? 19 : 67) - (char)(imm), \
1514  ((char)(imm)&0xF0) ? 4 : ((char)(imm)>0x4 ? 20 : 68) - (char)(imm), \
1515  ((char)(imm)&0xF0) ? 5 : ((char)(imm)>0x5 ? 21 : 69) - (char)(imm), \
1516  ((char)(imm)&0xF0) ? 6 : ((char)(imm)>0x6 ? 22 : 70) - (char)(imm), \
1517  ((char)(imm)&0xF0) ? 7 : ((char)(imm)>0x7 ? 23 : 71) - (char)(imm), \
1518  ((char)(imm)&0xF0) ? 8 : ((char)(imm)>0x8 ? 24 : 72) - (char)(imm), \
1519  ((char)(imm)&0xF0) ? 9 : ((char)(imm)>0x9 ? 25 : 73) - (char)(imm), \
1520  ((char)(imm)&0xF0) ? 10 : ((char)(imm)>0xA ? 26 : 74) - (char)(imm), \
1521  ((char)(imm)&0xF0) ? 11 : ((char)(imm)>0xB ? 27 : 75) - (char)(imm), \
1522  ((char)(imm)&0xF0) ? 12 : ((char)(imm)>0xC ? 28 : 76) - (char)(imm), \
1523  ((char)(imm)&0xF0) ? 13 : ((char)(imm)>0xD ? 29 : 77) - (char)(imm), \
1524  ((char)(imm)&0xF0) ? 14 : ((char)(imm)>0xE ? 30 : 78) - (char)(imm), \
1525  ((char)(imm)&0xF0) ? 15 : ((char)(imm)>0xF ? 31 : 79) - (char)(imm), \
1526  ((char)(imm)&0xF0) ? 16 : ((char)(imm)>0x0 ? 32 : 80) - (char)(imm), \
1527  ((char)(imm)&0xF0) ? 17 : ((char)(imm)>0x1 ? 33 : 81) - (char)(imm), \
1528  ((char)(imm)&0xF0) ? 18 : ((char)(imm)>0x2 ? 34 : 82) - (char)(imm), \
1529  ((char)(imm)&0xF0) ? 19 : ((char)(imm)>0x3 ? 35 : 83) - (char)(imm), \
1530  ((char)(imm)&0xF0) ? 20 : ((char)(imm)>0x4 ? 36 : 84) - (char)(imm), \
1531  ((char)(imm)&0xF0) ? 21 : ((char)(imm)>0x5 ? 37 : 85) - (char)(imm), \
1532  ((char)(imm)&0xF0) ? 22 : ((char)(imm)>0x6 ? 38 : 86) - (char)(imm), \
1533  ((char)(imm)&0xF0) ? 23 : ((char)(imm)>0x7 ? 39 : 87) - (char)(imm), \
1534  ((char)(imm)&0xF0) ? 24 : ((char)(imm)>0x8 ? 40 : 88) - (char)(imm), \
1535  ((char)(imm)&0xF0) ? 25 : ((char)(imm)>0x9 ? 41 : 89) - (char)(imm), \
1536  ((char)(imm)&0xF0) ? 26 : ((char)(imm)>0xA ? 42 : 90) - (char)(imm), \
1537  ((char)(imm)&0xF0) ? 27 : ((char)(imm)>0xB ? 43 : 91) - (char)(imm), \
1538  ((char)(imm)&0xF0) ? 28 : ((char)(imm)>0xC ? 44 : 92) - (char)(imm), \
1539  ((char)(imm)&0xF0) ? 29 : ((char)(imm)>0xD ? 45 : 93) - (char)(imm), \
1540  ((char)(imm)&0xF0) ? 30 : ((char)(imm)>0xE ? 46 : 94) - (char)(imm), \
1541  ((char)(imm)&0xF0) ? 31 : ((char)(imm)>0xF ? 47 : 95) - (char)(imm), \
1542  ((char)(imm)&0xF0) ? 32 : ((char)(imm)>0x0 ? 48 : 96) - (char)(imm), \
1543  ((char)(imm)&0xF0) ? 33 : ((char)(imm)>0x1 ? 49 : 97) - (char)(imm), \
1544  ((char)(imm)&0xF0) ? 34 : ((char)(imm)>0x2 ? 50 : 98) - (char)(imm), \
1545  ((char)(imm)&0xF0) ? 35 : ((char)(imm)>0x3 ? 51 : 99) - (char)(imm), \
1546  ((char)(imm)&0xF0) ? 36 : ((char)(imm)>0x4 ? 52 : 100) - (char)(imm), \
1547  ((char)(imm)&0xF0) ? 37 : ((char)(imm)>0x5 ? 53 : 101) - (char)(imm), \
1548  ((char)(imm)&0xF0) ? 38 : ((char)(imm)>0x6 ? 54 : 102) - (char)(imm), \
1549  ((char)(imm)&0xF0) ? 39 : ((char)(imm)>0x7 ? 55 : 103) - (char)(imm), \
1550  ((char)(imm)&0xF0) ? 40 : ((char)(imm)>0x8 ? 56 : 104) - (char)(imm), \
1551  ((char)(imm)&0xF0) ? 41 : ((char)(imm)>0x9 ? 57 : 105) - (char)(imm), \
1552  ((char)(imm)&0xF0) ? 42 : ((char)(imm)>0xA ? 58 : 106) - (char)(imm), \
1553  ((char)(imm)&0xF0) ? 43 : ((char)(imm)>0xB ? 59 : 107) - (char)(imm), \
1554  ((char)(imm)&0xF0) ? 44 : ((char)(imm)>0xC ? 60 : 108) - (char)(imm), \
1555  ((char)(imm)&0xF0) ? 45 : ((char)(imm)>0xD ? 61 : 109) - (char)(imm), \
1556  ((char)(imm)&0xF0) ? 46 : ((char)(imm)>0xE ? 62 : 110) - (char)(imm), \
1557  ((char)(imm)&0xF0) ? 47 : ((char)(imm)>0xF ? 63 : 111) - (char)(imm), \
1558  ((char)(imm)&0xF0) ? 48 : ((char)(imm)>0x0 ? 64 : 112) - (char)(imm), \
1559  ((char)(imm)&0xF0) ? 49 : ((char)(imm)>0x1 ? 65 : 113) - (char)(imm), \
1560  ((char)(imm)&0xF0) ? 50 : ((char)(imm)>0x2 ? 66 : 114) - (char)(imm), \
1561  ((char)(imm)&0xF0) ? 51 : ((char)(imm)>0x3 ? 67 : 115) - (char)(imm), \
1562  ((char)(imm)&0xF0) ? 52 : ((char)(imm)>0x4 ? 68 : 116) - (char)(imm), \
1563  ((char)(imm)&0xF0) ? 53 : ((char)(imm)>0x5 ? 69 : 117) - (char)(imm), \
1564  ((char)(imm)&0xF0) ? 54 : ((char)(imm)>0x6 ? 70 : 118) - (char)(imm), \
1565  ((char)(imm)&0xF0) ? 55 : ((char)(imm)>0x7 ? 71 : 119) - (char)(imm), \
1566  ((char)(imm)&0xF0) ? 56 : ((char)(imm)>0x8 ? 72 : 120) - (char)(imm), \
1567  ((char)(imm)&0xF0) ? 57 : ((char)(imm)>0x9 ? 73 : 121) - (char)(imm), \
1568  ((char)(imm)&0xF0) ? 58 : ((char)(imm)>0xA ? 74 : 122) - (char)(imm), \
1569  ((char)(imm)&0xF0) ? 59 : ((char)(imm)>0xB ? 75 : 123) - (char)(imm), \
1570  ((char)(imm)&0xF0) ? 60 : ((char)(imm)>0xC ? 76 : 124) - (char)(imm), \
1571  ((char)(imm)&0xF0) ? 61 : ((char)(imm)>0xD ? 77 : 125) - (char)(imm), \
1572  ((char)(imm)&0xF0) ? 62 : ((char)(imm)>0xE ? 78 : 126) - (char)(imm), \
1573  ((char)(imm)&0xF0) ? 63 : ((char)(imm)>0xF ? 79 : 127) - (char)(imm)); })
1574 
1575 static __inline__ __m512i __DEFAULT_FN_ATTRS
1576 _mm512_srlv_epi16(__m512i __A, __m512i __B)
1577 {
1578  return (__m512i)__builtin_ia32_psrlv32hi((__v32hi)__A, (__v32hi)__B);
1579 }
1580 
1581 static __inline__ __m512i __DEFAULT_FN_ATTRS
1582 _mm512_mask_srlv_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
1583 {
1584  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1585  (__v32hi)_mm512_srlv_epi16(__A, __B),
1586  (__v32hi)__W);
1587 }
1588 
1589 static __inline__ __m512i __DEFAULT_FN_ATTRS
1590 _mm512_maskz_srlv_epi16(__mmask32 __U, __m512i __A, __m512i __B)
1591 {
1592  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1593  (__v32hi)_mm512_srlv_epi16(__A, __B),
1594  (__v32hi)_mm512_setzero_hi());
1595 }
1596 
1597 static __inline__ __m512i __DEFAULT_FN_ATTRS
1598 _mm512_srav_epi16(__m512i __A, __m512i __B)
1599 {
1600  return (__m512i)__builtin_ia32_psrav32hi((__v32hi)__A, (__v32hi)__B);
1601 }
1602 
1603 static __inline__ __m512i __DEFAULT_FN_ATTRS
1604 _mm512_mask_srav_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
1605 {
1606  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1607  (__v32hi)_mm512_srav_epi16(__A, __B),
1608  (__v32hi)__W);
1609 }
1610 
1611 static __inline__ __m512i __DEFAULT_FN_ATTRS
1612 _mm512_maskz_srav_epi16(__mmask32 __U, __m512i __A, __m512i __B)
1613 {
1614  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1615  (__v32hi)_mm512_srav_epi16(__A, __B),
1616  (__v32hi)_mm512_setzero_hi());
1617 }
1618 
1619 static __inline__ __m512i __DEFAULT_FN_ATTRS
1620 _mm512_sra_epi16(__m512i __A, __m128i __B)
1621 {
1622  return (__m512i)__builtin_ia32_psraw512((__v32hi) __A, (__v8hi) __B);
1623 }
1624 
1625 static __inline__ __m512i __DEFAULT_FN_ATTRS
1626 _mm512_mask_sra_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B)
1627 {
1628  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1629  (__v32hi)_mm512_sra_epi16(__A, __B),
1630  (__v32hi)__W);
1631 }
1632 
1633 static __inline__ __m512i __DEFAULT_FN_ATTRS
1634 _mm512_maskz_sra_epi16(__mmask32 __U, __m512i __A, __m128i __B)
1635 {
1636  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1637  (__v32hi)_mm512_sra_epi16(__A, __B),
1638  (__v32hi)_mm512_setzero_hi());
1639 }
1640 
1641 static __inline__ __m512i __DEFAULT_FN_ATTRS
1642 _mm512_srai_epi16(__m512i __A, int __B)
1643 {
1644  return (__m512i)__builtin_ia32_psrawi512((__v32hi)__A, __B);
1645 }
1646 
1647 static __inline__ __m512i __DEFAULT_FN_ATTRS
1648 _mm512_mask_srai_epi16(__m512i __W, __mmask32 __U, __m512i __A, int __B)
1649 {
1650  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1651  (__v32hi)_mm512_srai_epi16(__A, __B),
1652  (__v32hi)__W);
1653 }
1654 
1655 static __inline__ __m512i __DEFAULT_FN_ATTRS
1656 _mm512_maskz_srai_epi16(__mmask32 __U, __m512i __A, int __B)
1657 {
1658  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1659  (__v32hi)_mm512_srai_epi16(__A, __B),
1660  (__v32hi)_mm512_setzero_hi());
1661 }
1662 
1663 static __inline__ __m512i __DEFAULT_FN_ATTRS
1664 _mm512_srl_epi16(__m512i __A, __m128i __B)
1665 {
1666  return (__m512i)__builtin_ia32_psrlw512((__v32hi) __A, (__v8hi) __B);
1667 }
1668 
1669 static __inline__ __m512i __DEFAULT_FN_ATTRS
1670 _mm512_mask_srl_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B)
1671 {
1672  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1673  (__v32hi)_mm512_srl_epi16(__A, __B),
1674  (__v32hi)__W);
1675 }
1676 
1677 static __inline__ __m512i __DEFAULT_FN_ATTRS
1678 _mm512_maskz_srl_epi16(__mmask32 __U, __m512i __A, __m128i __B)
1679 {
1680  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1681  (__v32hi)_mm512_srl_epi16(__A, __B),
1682  (__v32hi)_mm512_setzero_hi());
1683 }
1684 
1685 static __inline__ __m512i __DEFAULT_FN_ATTRS
1686 _mm512_srli_epi16(__m512i __A, int __B)
1687 {
1688  return (__m512i)__builtin_ia32_psrlwi512((__v32hi)__A, __B);
1689 }
1690 
1691 static __inline__ __m512i __DEFAULT_FN_ATTRS
1692 _mm512_mask_srli_epi16(__m512i __W, __mmask32 __U, __m512i __A, int __B)
1693 {
1694  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1695  (__v32hi)_mm512_srli_epi16(__A, __B),
1696  (__v32hi)__W);
1697 }
1698 
1699 static __inline__ __m512i __DEFAULT_FN_ATTRS
1700 _mm512_maskz_srli_epi16(__mmask32 __U, __m512i __A, int __B)
1701 {
1702  return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1703  (__v32hi)_mm512_srli_epi16(__A, __B),
1704  (__v32hi)_mm512_setzero_hi());
1705 }
1706 
1707 #define _mm512_bsrli_epi128(a, imm) __extension__ ({ \
1708  (__m512i)__builtin_shufflevector( \
1709  (__v64qi)(__m512i)(a), \
1710  (__v64qi)_mm512_setzero_si512(), \
1711  ((char)(imm)&0xF0) ? 64 : (char)(imm) + ((char)(imm)>0xF ? 48 : 0), \
1712  ((char)(imm)&0xF0) ? 65 : (char)(imm) + ((char)(imm)>0xE ? 49 : 1), \
1713  ((char)(imm)&0xF0) ? 66 : (char)(imm) + ((char)(imm)>0xD ? 50 : 2), \
1714  ((char)(imm)&0xF0) ? 67 : (char)(imm) + ((char)(imm)>0xC ? 51 : 3), \
1715  ((char)(imm)&0xF0) ? 68 : (char)(imm) + ((char)(imm)>0xB ? 52 : 4), \
1716  ((char)(imm)&0xF0) ? 69 : (char)(imm) + ((char)(imm)>0xA ? 53 : 5), \
1717  ((char)(imm)&0xF0) ? 70 : (char)(imm) + ((char)(imm)>0x9 ? 54 : 6), \
1718  ((char)(imm)&0xF0) ? 71 : (char)(imm) + ((char)(imm)>0x8 ? 55 : 7), \
1719  ((char)(imm)&0xF0) ? 72 : (char)(imm) + ((char)(imm)>0x7 ? 56 : 8), \
1720  ((char)(imm)&0xF0) ? 73 : (char)(imm) + ((char)(imm)>0x6 ? 57 : 9), \
1721  ((char)(imm)&0xF0) ? 74 : (char)(imm) + ((char)(imm)>0x5 ? 58 : 10), \
1722  ((char)(imm)&0xF0) ? 75 : (char)(imm) + ((char)(imm)>0x4 ? 59 : 11), \
1723  ((char)(imm)&0xF0) ? 76 : (char)(imm) + ((char)(imm)>0x3 ? 60 : 12), \
1724  ((char)(imm)&0xF0) ? 77 : (char)(imm) + ((char)(imm)>0x2 ? 61 : 13), \
1725  ((char)(imm)&0xF0) ? 78 : (char)(imm) + ((char)(imm)>0x1 ? 62 : 14), \
1726  ((char)(imm)&0xF0) ? 79 : (char)(imm) + ((char)(imm)>0x0 ? 63 : 15), \
1727  ((char)(imm)&0xF0) ? 80 : (char)(imm) + ((char)(imm)>0xF ? 64 : 16), \
1728  ((char)(imm)&0xF0) ? 81 : (char)(imm) + ((char)(imm)>0xE ? 65 : 17), \
1729  ((char)(imm)&0xF0) ? 82 : (char)(imm) + ((char)(imm)>0xD ? 66 : 18), \
1730  ((char)(imm)&0xF0) ? 83 : (char)(imm) + ((char)(imm)>0xC ? 67 : 19), \
1731  ((char)(imm)&0xF0) ? 84 : (char)(imm) + ((char)(imm)>0xB ? 68 : 20), \
1732  ((char)(imm)&0xF0) ? 85 : (char)(imm) + ((char)(imm)>0xA ? 69 : 21), \
1733  ((char)(imm)&0xF0) ? 86 : (char)(imm) + ((char)(imm)>0x9 ? 70 : 22), \
1734  ((char)(imm)&0xF0) ? 87 : (char)(imm) + ((char)(imm)>0x8 ? 71 : 23), \
1735  ((char)(imm)&0xF0) ? 88 : (char)(imm) + ((char)(imm)>0x7 ? 72 : 24), \
1736  ((char)(imm)&0xF0) ? 89 : (char)(imm) + ((char)(imm)>0x6 ? 73 : 25), \
1737  ((char)(imm)&0xF0) ? 90 : (char)(imm) + ((char)(imm)>0x5 ? 74 : 26), \
1738  ((char)(imm)&0xF0) ? 91 : (char)(imm) + ((char)(imm)>0x4 ? 75 : 27), \
1739  ((char)(imm)&0xF0) ? 92 : (char)(imm) + ((char)(imm)>0x3 ? 76 : 28), \
1740  ((char)(imm)&0xF0) ? 93 : (char)(imm) + ((char)(imm)>0x2 ? 77 : 29), \
1741  ((char)(imm)&0xF0) ? 94 : (char)(imm) + ((char)(imm)>0x1 ? 78 : 30), \
1742  ((char)(imm)&0xF0) ? 95 : (char)(imm) + ((char)(imm)>0x0 ? 79 : 31), \
1743  ((char)(imm)&0xF0) ? 96 : (char)(imm) + ((char)(imm)>0xF ? 80 : 32), \
1744  ((char)(imm)&0xF0) ? 97 : (char)(imm) + ((char)(imm)>0xE ? 81 : 33), \
1745  ((char)(imm)&0xF0) ? 98 : (char)(imm) + ((char)(imm)>0xD ? 82 : 34), \
1746  ((char)(imm)&0xF0) ? 99 : (char)(imm) + ((char)(imm)>0xC ? 83 : 35), \
1747  ((char)(imm)&0xF0) ? 100 : (char)(imm) + ((char)(imm)>0xB ? 84 : 36), \
1748  ((char)(imm)&0xF0) ? 101 : (char)(imm) + ((char)(imm)>0xA ? 85 : 37), \
1749  ((char)(imm)&0xF0) ? 102 : (char)(imm) + ((char)(imm)>0x9 ? 86 : 38), \
1750  ((char)(imm)&0xF0) ? 103 : (char)(imm) + ((char)(imm)>0x8 ? 87 : 39), \
1751  ((char)(imm)&0xF0) ? 104 : (char)(imm) + ((char)(imm)>0x7 ? 88 : 40), \
1752  ((char)(imm)&0xF0) ? 105 : (char)(imm) + ((char)(imm)>0x6 ? 89 : 41), \
1753  ((char)(imm)&0xF0) ? 106 : (char)(imm) + ((char)(imm)>0x5 ? 90 : 42), \
1754  ((char)(imm)&0xF0) ? 107 : (char)(imm) + ((char)(imm)>0x4 ? 91 : 43), \
1755  ((char)(imm)&0xF0) ? 108 : (char)(imm) + ((char)(imm)>0x3 ? 92 : 44), \
1756  ((char)(imm)&0xF0) ? 109 : (char)(imm) + ((char)(imm)>0x2 ? 93 : 45), \
1757  ((char)(imm)&0xF0) ? 110 : (char)(imm) + ((char)(imm)>0x1 ? 94 : 46), \
1758  ((char)(imm)&0xF0) ? 111 : (char)(imm) + ((char)(imm)>0x0 ? 95 : 47), \
1759  ((char)(imm)&0xF0) ? 112 : (char)(imm) + ((char)(imm)>0xF ? 96 : 48), \
1760  ((char)(imm)&0xF0) ? 113 : (char)(imm) + ((char)(imm)>0xE ? 97 : 49), \
1761  ((char)(imm)&0xF0) ? 114 : (char)(imm) + ((char)(imm)>0xD ? 98 : 50), \
1762  ((char)(imm)&0xF0) ? 115 : (char)(imm) + ((char)(imm)>0xC ? 99 : 51), \
1763  ((char)(imm)&0xF0) ? 116 : (char)(imm) + ((char)(imm)>0xB ? 100 : 52), \
1764  ((char)(imm)&0xF0) ? 117 : (char)(imm) + ((char)(imm)>0xA ? 101 : 53), \
1765  ((char)(imm)&0xF0) ? 118 : (char)(imm) + ((char)(imm)>0x9 ? 102 : 54), \
1766  ((char)(imm)&0xF0) ? 119 : (char)(imm) + ((char)(imm)>0x8 ? 103 : 55), \
1767  ((char)(imm)&0xF0) ? 120 : (char)(imm) + ((char)(imm)>0x7 ? 104 : 56), \
1768  ((char)(imm)&0xF0) ? 121 : (char)(imm) + ((char)(imm)>0x6 ? 105 : 57), \
1769  ((char)(imm)&0xF0) ? 122 : (char)(imm) + ((char)(imm)>0x5 ? 106 : 58), \
1770  ((char)(imm)&0xF0) ? 123 : (char)(imm) + ((char)(imm)>0x4 ? 107 : 59), \
1771  ((char)(imm)&0xF0) ? 124 : (char)(imm) + ((char)(imm)>0x3 ? 108 : 60), \
1772  ((char)(imm)&0xF0) ? 125 : (char)(imm) + ((char)(imm)>0x2 ? 109 : 61), \
1773  ((char)(imm)&0xF0) ? 126 : (char)(imm) + ((char)(imm)>0x1 ? 110 : 62), \
1774  ((char)(imm)&0xF0) ? 127 : (char)(imm) + ((char)(imm)>0x0 ? 111 : 63)); })
1775 
1776 static __inline__ __m512i __DEFAULT_FN_ATTRS
1777 _mm512_mask_mov_epi16 (__m512i __W, __mmask32 __U, __m512i __A)
1778 {
1779  return (__m512i) __builtin_ia32_selectw_512 ((__mmask32) __U,
1780  (__v32hi) __A,
1781  (__v32hi) __W);
1782 }
1783 
1784 static __inline__ __m512i __DEFAULT_FN_ATTRS
1786 {
1787  return (__m512i) __builtin_ia32_selectw_512 ((__mmask32) __U,
1788  (__v32hi) __A,
1789  (__v32hi) _mm512_setzero_hi ());
1790 }
1791 
1792 static __inline__ __m512i __DEFAULT_FN_ATTRS
1793 _mm512_mask_mov_epi8 (__m512i __W, __mmask64 __U, __m512i __A)
1794 {
1795  return (__m512i) __builtin_ia32_selectb_512 ((__mmask64) __U,
1796  (__v64qi) __A,
1797  (__v64qi) __W);
1798 }
1799 
1800 static __inline__ __m512i __DEFAULT_FN_ATTRS
1802 {
1803  return (__m512i) __builtin_ia32_selectb_512 ((__mmask64) __U,
1804  (__v64qi) __A,
1805  (__v64qi) _mm512_setzero_hi ());
1806 }
1807 
1808 static __inline__ __m512i __DEFAULT_FN_ATTRS
1809 _mm512_mask_set1_epi8 (__m512i __O, __mmask64 __M, char __A)
1810 {
1811  return (__m512i) __builtin_ia32_selectb_512(__M,
1812  (__v64qi)_mm512_set1_epi8(__A),
1813  (__v64qi) __O);
1814 }
1815 
1816 static __inline__ __m512i __DEFAULT_FN_ATTRS
1818 {
1819  return (__m512i) __builtin_ia32_selectb_512(__M,
1820  (__v64qi) _mm512_set1_epi8(__A),
1821  (__v64qi) _mm512_setzero_si512());
1822 }
1823 
1824 static __inline__ __mmask64 __DEFAULT_FN_ATTRS
1826 {
1827  return (__mmask64) __builtin_ia32_kunpckdi ((__mmask64) __A,
1828  (__mmask64) __B);
1829 }
1830 
1831 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
1833 {
1834  return (__mmask32) __builtin_ia32_kunpcksi ((__mmask32) __A,
1835  (__mmask32) __B);
1836 }
1837 
1838 static __inline__ __m512i __DEFAULT_FN_ATTRS
1839 _mm512_mask_loadu_epi16 (__m512i __W, __mmask32 __U, void const *__P)
1840 {
1841  return (__m512i) __builtin_ia32_loaddquhi512_mask ((__v32hi *) __P,
1842  (__v32hi) __W,
1843  (__mmask32) __U);
1844 }
1845 
1846 static __inline__ __m512i __DEFAULT_FN_ATTRS
1847 _mm512_maskz_loadu_epi16 (__mmask32 __U, void const *__P)
1848 {
1849  return (__m512i) __builtin_ia32_loaddquhi512_mask ((__v32hi *) __P,
1850  (__v32hi)
1851  _mm512_setzero_hi (),
1852  (__mmask32) __U);
1853 }
1854 
1855 static __inline__ __m512i __DEFAULT_FN_ATTRS
1856 _mm512_mask_loadu_epi8 (__m512i __W, __mmask64 __U, void const *__P)
1857 {
1858  return (__m512i) __builtin_ia32_loaddquqi512_mask ((__v64qi *) __P,
1859  (__v64qi) __W,
1860  (__mmask64) __U);
1861 }
1862 
1863 static __inline__ __m512i __DEFAULT_FN_ATTRS
1864 _mm512_maskz_loadu_epi8 (__mmask64 __U, void const *__P)
1865 {
1866  return (__m512i) __builtin_ia32_loaddquqi512_mask ((__v64qi *) __P,
1867  (__v64qi)
1868  _mm512_setzero_hi (),
1869  (__mmask64) __U);
1870 }
1871 static __inline__ void __DEFAULT_FN_ATTRS
1872 _mm512_mask_storeu_epi16 (void *__P, __mmask32 __U, __m512i __A)
1873 {
1874  __builtin_ia32_storedquhi512_mask ((__v32hi *) __P,
1875  (__v32hi) __A,
1876  (__mmask32) __U);
1877 }
1878 
1879 static __inline__ void __DEFAULT_FN_ATTRS
1880 _mm512_mask_storeu_epi8 (void *__P, __mmask64 __U, __m512i __A)
1881 {
1882  __builtin_ia32_storedquqi512_mask ((__v64qi *) __P,
1883  (__v64qi) __A,
1884  (__mmask64) __U);
1885 }
1886 
1887 static __inline__ __mmask64 __DEFAULT_FN_ATTRS
1888 _mm512_test_epi8_mask (__m512i __A, __m512i __B)
1889 {
1890  return _mm512_cmpneq_epi8_mask (_mm512_and_epi32 (__A, __B),
1891  _mm512_setzero_qi());
1892 }
1893 
1894 static __inline__ __mmask64 __DEFAULT_FN_ATTRS
1895 _mm512_mask_test_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B)
1896 {
1897  return _mm512_mask_cmpneq_epi8_mask (__U, _mm512_and_epi32 (__A, __B),
1898  _mm512_setzero_qi());
1899 }
1900 
1901 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
1902 _mm512_test_epi16_mask (__m512i __A, __m512i __B)
1903 {
1904  return _mm512_cmpneq_epi16_mask (_mm512_and_epi32 (__A, __B),
1905  _mm512_setzero_qi());
1906 }
1907 
1908 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
1909 _mm512_mask_test_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B)
1910 {
1911  return _mm512_mask_cmpneq_epi16_mask (__U, _mm512_and_epi32 (__A, __B),
1912  _mm512_setzero_qi());
1913 }
1914 
1915 static __inline__ __mmask64 __DEFAULT_FN_ATTRS
1916 _mm512_testn_epi8_mask (__m512i __A, __m512i __B)
1917 {
1919 }
1920 
1921 static __inline__ __mmask64 __DEFAULT_FN_ATTRS
1922 _mm512_mask_testn_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B)
1923 {
1924  return _mm512_mask_cmpeq_epi8_mask (__U, _mm512_and_epi32 (__A, __B),
1925  _mm512_setzero_qi());
1926 }
1927 
1928 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
1929 _mm512_testn_epi16_mask (__m512i __A, __m512i __B)
1930 {
1931  return _mm512_cmpeq_epi16_mask (_mm512_and_epi32 (__A, __B),
1932  _mm512_setzero_qi());
1933 }
1934 
1935 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
1936 _mm512_mask_testn_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B)
1937 {
1938  return _mm512_mask_cmpeq_epi16_mask (__U, _mm512_and_epi32 (__A, __B),
1939  _mm512_setzero_qi());
1940 }
1941 
1942 static __inline__ __mmask64 __DEFAULT_FN_ATTRS
1943 _mm512_movepi8_mask (__m512i __A)
1944 {
1945  return (__mmask64) __builtin_ia32_cvtb2mask512 ((__v64qi) __A);
1946 }
1947 
1948 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
1950 {
1951  return (__mmask32) __builtin_ia32_cvtw2mask512 ((__v32hi) __A);
1952 }
1953 
1954 static __inline__ __m512i __DEFAULT_FN_ATTRS
1956 {
1957  return (__m512i) __builtin_ia32_cvtmask2b512 (__A);
1958 }
1959 
1960 static __inline__ __m512i __DEFAULT_FN_ATTRS
1962 {
1963  return (__m512i) __builtin_ia32_cvtmask2w512 (__A);
1964 }
1965 
1966 static __inline__ __m512i __DEFAULT_FN_ATTRS
1968 {
1969  return (__m512i)__builtin_shufflevector((__v16qi) __A,
1970  (__v16qi)_mm_undefined_si128(),
1971  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1972  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1973  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1974  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
1975 }
1976 
1977 static __inline__ __m512i __DEFAULT_FN_ATTRS
1978 _mm512_mask_broadcastb_epi8 (__m512i __O, __mmask64 __M, __m128i __A)
1979 {
1980  return (__m512i)__builtin_ia32_selectb_512(__M,
1981  (__v64qi) _mm512_broadcastb_epi8(__A),
1982  (__v64qi) __O);
1983 }
1984 
1985 static __inline__ __m512i __DEFAULT_FN_ATTRS
1987 {
1988  return (__m512i)__builtin_ia32_selectb_512(__M,
1989  (__v64qi) _mm512_broadcastb_epi8(__A),
1990  (__v64qi) _mm512_setzero_si512());
1991 }
1992 
1993 static __inline__ __m512i __DEFAULT_FN_ATTRS
1994 _mm512_mask_set1_epi16 (__m512i __O, __mmask32 __M, short __A)
1995 {
1996  return (__m512i) __builtin_ia32_selectw_512(__M,
1997  (__v32hi) _mm512_set1_epi16(__A),
1998  (__v32hi) __O);
1999 }
2000 
2001 static __inline__ __m512i __DEFAULT_FN_ATTRS
2003 {
2004  return (__m512i) __builtin_ia32_selectw_512(__M,
2005  (__v32hi) _mm512_set1_epi16(__A),
2006  (__v32hi) _mm512_setzero_si512());
2007 }
2008 
2009 static __inline__ __m512i __DEFAULT_FN_ATTRS
2011 {
2012  return (__m512i)__builtin_shufflevector((__v8hi) __A,
2013  (__v8hi)_mm_undefined_si128(),
2014  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2015  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
2016 }
2017 
2018 static __inline__ __m512i __DEFAULT_FN_ATTRS
2019 _mm512_mask_broadcastw_epi16 (__m512i __O, __mmask32 __M, __m128i __A)
2020 {
2021  return (__m512i)__builtin_ia32_selectw_512(__M,
2022  (__v32hi) _mm512_broadcastw_epi16(__A),
2023  (__v32hi) __O);
2024 }
2025 
2026 static __inline__ __m512i __DEFAULT_FN_ATTRS
2028 {
2029  return (__m512i)__builtin_ia32_selectw_512(__M,
2030  (__v32hi) _mm512_broadcastw_epi16(__A),
2031  (__v32hi) _mm512_setzero_si512());
2032 }
2033 
2034 static __inline__ __m512i __DEFAULT_FN_ATTRS
2035 _mm512_permutexvar_epi16 (__m512i __A, __m512i __B)
2036 {
2037  return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B,
2038  (__v32hi) __A,
2039  (__v32hi) _mm512_undefined_epi32 (),
2040  (__mmask32) -1);
2041 }
2042 
2043 static __inline__ __m512i __DEFAULT_FN_ATTRS
2045  __m512i __B)
2046 {
2047  return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B,
2048  (__v32hi) __A,
2049  (__v32hi) _mm512_setzero_hi(),
2050  (__mmask32) __M);
2051 }
2052 
2053 static __inline__ __m512i __DEFAULT_FN_ATTRS
2054 _mm512_mask_permutexvar_epi16 (__m512i __W, __mmask32 __M, __m512i __A,
2055  __m512i __B)
2056 {
2057  return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B,
2058  (__v32hi) __A,
2059  (__v32hi) __W,
2060  (__mmask32) __M);
2061 }
2062 
2063 #define _mm512_alignr_epi8(A, B, N) __extension__ ({\
2064  (__m512i)__builtin_ia32_palignr512_mask((__v64qi)(__m512i)(A), \
2065  (__v64qi)(__m512i)(B), (int)(N), \
2066  (__v64qi)_mm512_undefined_pd(), \
2067  (__mmask64)-1); })
2068 
2069 #define _mm512_mask_alignr_epi8(W, U, A, B, N) __extension__({\
2070  (__m512i)__builtin_ia32_palignr512_mask((__v64qi)(__m512i)(A), \
2071  (__v64qi)(__m512i)(B), (int)(N), \
2072  (__v64qi)(__m512i)(W), \
2073  (__mmask64)(U)); })
2074 
2075 #define _mm512_maskz_alignr_epi8(U, A, B, N) __extension__({\
2076  (__m512i)__builtin_ia32_palignr512_mask((__v64qi)(__m512i)(A), \
2077  (__v64qi)(__m512i)(B), (int)(N), \
2078  (__v64qi)_mm512_setzero_si512(), \
2079  (__mmask64)(U)); })
2080 
2081 #define _mm512_dbsad_epu8(A, B, imm) __extension__ ({\
2082  (__m512i)__builtin_ia32_dbpsadbw512_mask((__v64qi)(__m512i)(A), \
2083  (__v64qi)(__m512i)(B), (int)(imm), \
2084  (__v32hi)_mm512_undefined_epi32(), \
2085  (__mmask32)-1); })
2086 
2087 #define _mm512_mask_dbsad_epu8(W, U, A, B, imm) ({\
2088  (__m512i)__builtin_ia32_dbpsadbw512_mask((__v64qi)(__m512i)(A), \
2089  (__v64qi)(__m512i)(B), (int)(imm), \
2090  (__v32hi)(__m512i)(W), \
2091  (__mmask32)(U)); })
2092 
2093 #define _mm512_maskz_dbsad_epu8(U, A, B, imm) ({\
2094  (__m512i)__builtin_ia32_dbpsadbw512_mask((__v64qi)(__m512i)(A), \
2095  (__v64qi)(__m512i)(B), (int)(imm), \
2096  (__v32hi)_mm512_setzero_hi(), \
2097  (__mmask32)(U)); })
2098 
2099 static __inline__ __m512i __DEFAULT_FN_ATTRS
2100 _mm512_sad_epu8 (__m512i __A, __m512i __B)
2101 {
2102  return (__m512i) __builtin_ia32_psadbw512 ((__v64qi) __A,
2103  (__v64qi) __B);
2104 }
2105 
2106 
2107 
2108 #undef __DEFAULT_FN_ATTRS
2109 
2110 #endif
#define _mm512_cmpeq_epi16_mask(A, B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_min_epi16(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask2_permutex2var_epi16(__m512i __A, __m512i __I, __mmask32 __U, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_unpacklo_epi16(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_mov_epi16(__mmask32 __U, __m512i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_srli_epi16(__mmask32 __U, __m512i __A, int __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_permutexvar_epi16(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B)
static __inline __m512i __DEFAULT_FN_ATTRS _mm512_setzero_qi(void)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_sll_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_max_epu8(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_mulhi_epi16(__mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_set1_epi8(__mmask64 __M, char __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_loadu_epi16(__m512i __W, __mmask32 __U, void const *__P)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_add_epi16(__mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __m256i __DEFAULT_FN_ATTRS _mm512_mask_cvtusepi16_epi8(__m256i __O, __mmask32 __M, __m512i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_mulhi_epu16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_srl_epi16(__mmask32 __U, __m512i __A, __m128i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_sll_epi16(__m512i __A, __m128i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_subs_epi8(__mmask64 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_packs_epi16(__mmask64 __M, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_unpackhi_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B)
static __inline__ __mmask32 __DEFAULT_FN_ATTRS _mm512_movepi16_mask(__m512i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_subs_epu8(__mmask64 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_srli_epi16(__m512i __A, int __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_adds_epi16(__m512i __A, __m512i __B)
#define _mm512_mask_cmpneq_epi8_mask(k, A, B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_srl_epi16(__m512i __A, __m128i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_packus_epi16(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B)
static __inline __m512i __DEFAULT_FN_ATTRS _mm512_set1_epi8(char __w)
#define _mm512_mask_cmpneq_epi16_mask(k, A, B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_shuffle_epi8(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_avg_epu8(__mmask64 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_max_epi8(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_max_epi8(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_movm_epi8(__mmask64 __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_max_epu16(__mmask32 __M, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_sub_epi16(__m512i __A, __m512i __B)
unsigned int __mmask32
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_and_epi32(__m512i __a, __m512i __b)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_adds_epu8(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_adds_epi8(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_shuffle_epi8(__mmask64 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_unpacklo_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mullo_epi16(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_unpacklo_epi8(__mmask64 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_abs_epi8(__mmask64 __U, __m512i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_packs_epi32(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_mullo_epi16(__mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_sra_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_madd_epi16(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_slli_epi16(__m512i __A, int __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_movm_epi16(__mmask32 __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_srav_epi16(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_unpackhi_epi16(__mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_min_epu8(__mmask64 __M, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_loadu_epi8(__m512i __W, __mmask64 __U, void const *__P)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_cvtepu8_epi16(__m256i __A)
static __inline__ void __DEFAULT_FN_ATTRS _mm512_mask_cvtsepi16_storeu_epi8(void *__P, __mmask32 __M, __m512i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_srai_epi16(__m512i __W, __mmask32 __U, __m512i __A, int __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_madd_epi16(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_add_epi8(__mmask64 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_mulhrs_epi16(__mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_unpackhi_epi8(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_add_epi16(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_broadcastb_epi8(__m128i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_adds_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_cvtepi8_epi16(__mmask32 __U, __m256i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_mulhi_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
static __inline __m512i __DEFAULT_FN_ATTRS _mm512_setzero_hi(void)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_mulhi_epu16(__mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_packus_epi32(__m512i __A, __m512i __B)
static __inline__ __mmask32 __DEFAULT_FN_ATTRS _mm512_mask_testn_epi16_mask(__mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_srlv_epi16(__mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __mmask64 __DEFAULT_FN_ATTRS _mm512_movepi8_mask(__m512i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_min_epi8(__m512i __A, __m512i __B)
static __inline__ void __DEFAULT_FN_ATTRS _mm512_mask_cvtusepi16_storeu_epi8(void *__P, __mmask32 __M, __m512i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mulhi_epu16(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_shuffle_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_cvtepi8_epi16(__m256i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_adds_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_sllv_epi16(__mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_subs_epu16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_srlv_epi16(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_avg_epu8(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_subs_epu16(__mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __m256i __DEFAULT_FN_ATTRS _mm512_cvtsepi16_epi8(__m512i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_maddubs_epi16(__m512i __W, __mmask32 __U, __m512i __X, __m512i __Y)
#define _mm512_cmpneq_epi16_mask(A, B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_sllv_epi16(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_broadcastw_epi16(__m128i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_adds_epu8(__mmask64 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_avg_epu8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_cvtepu8_epi16(__m512i __W, __mmask32 __U, __m256i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_avg_epu16(__m512i __A, __m512i __B)
#define _mm512_cmpeq_epi8_mask(A, B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_max_epu8(__mmask64 __M, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_unpackhi_epi8(__mmask64 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_max_epi8(__mmask64 __M, __m512i __A, __m512i __B)
static __inline__ __m256i __DEFAULT_FN_ATTRS _mm512_mask_cvtsepi16_epi8(__m256i __O, __mmask32 __M, __m512i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_mov_epi16(__m512i __W, __mmask32 __U, __m512i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_subs_epu16(__m512i __A, __m512i __B)
char __v64qi __attribute__((__vector_size__(64)))
Definition: avx512fintrin.h:30
static __inline__ void __DEFAULT_FN_ATTRS _mm512_mask_cvtepi16_storeu_epi8(void *__P, __mmask32 __M, __m512i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_undefined_epi32(void)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_subs_epi16(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_unpacklo_epi16(__mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __m256i __DEFAULT_FN_ATTRS _mm512_mask_cvtepi16_epi8(__m256i __O, __mmask32 __M, __m512i __A)
static __inline__ __mmask64 __DEFAULT_FN_ATTRS _mm512_mask_test_epi8_mask(__mmask64 __U, __m512i __A, __m512i __B)
#define __DEFAULT_FN_ATTRS
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_loadu_epi16(__mmask32 __U, void const *__P)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_abs_epi8(__m512i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_broadcastw_epi16(__m512i __O, __mmask32 __M, __m128i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_srai_epi16(__m512i __A, int __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_abs_epi16(__m512i __W, __mmask32 __U, __m512i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_min_epi8(__mmask64 __M, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_min_epu16(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_sub_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B)
unsigned long long __mmask64
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_min_epu16(__mmask32 __M, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_avg_epu16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
#define _mm512_cmpneq_epi8_mask(A, B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_max_epu16(__m512i __A, __m512i __B)
static __inline__ __mmask32 __DEFAULT_FN_ATTRS _mm512_mask_test_epi16_mask(__mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maddubs_epi16(__m512i __X, __m512i __Y)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_sra_epi16(__m512i __A, __m128i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_subs_epu8(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_sad_epu8(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_madd_epi16(__mmask16 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_adds_epi8(__mmask64 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_min_epu8(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B)
static __inline __m512i __DEFAULT_FN_ATTRS _mm512_set1_epi16(short __w)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_packs_epi32(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_broadcastw_epi16(__mmask32 __M, __m128i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_packus_epi16(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_add_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_packs_epi16(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_packus_epi32(__mmask32 __M, __m512i __A, __m512i __B)
static __inline__ void __DEFAULT_FN_ATTRS _mm512_mask_storeu_epi8(void *__P, __mmask64 __U, __m512i __A)
static __inline__ __mmask32 __DEFAULT_FN_ATTRS _mm512_kunpackw(__mmask32 __A, __mmask32 __B)
static __inline__ __mmask32 __DEFAULT_FN_ATTRS _mm512_testn_epi16_mask(__m512i __A, __m512i __B)
static __inline__ __mmask64 __DEFAULT_FN_ATTRS _mm512_kunpackd(__mmask64 __A, __mmask64 __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_set1_epi16(__mmask32 __M, short __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_permutex2var_epi16(__m512i __A, __m512i __I, __m512i __B)
static __inline__ __m256i __DEFAULT_FN_ATTRS _mm512_maskz_cvtepi16_epi8(__mmask32 __M, __m512i __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS _mm512_maskz_cvtusepi16_epi8(__mmask32 __M, __m512i __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS _mm512_cvtepi16_epi8(__m512i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_add_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_avg_epu16(__mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_sub_epi8(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_subs_epu8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_sra_epi16(__mmask32 __U, __m512i __A, __m128i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_maddubs_epi16(__mmask32 __U, __m512i __X, __m512i __Y)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_unpacklo_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B)
static __inline__ __mmask64 __DEFAULT_FN_ATTRS _mm512_test_epi8_mask(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_subs_epi16(__mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_min_epu16(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_sub_epi8(__mmask64 __U, __m512i __A, __m512i __B)
static __inline__ __m256i __DEFAULT_FN_ATTRS _mm512_cvtusepi16_epi8(__m512i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_mov_epi8(__m512i __W, __mmask64 __U, __m512i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_min_epu8(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_max_epi16(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_min_epi16(__m512i __A, __m512i __B)
static __inline__ __mmask32 __DEFAULT_FN_ATTRS _mm512_test_epi16_mask(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_adds_epu8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B)
static __inline__ __m256i __DEFAULT_FN_ATTRS _mm512_maskz_cvtsepi16_epi8(__mmask32 __M, __m512i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_set1_epi16(__m512i __O, __mmask32 __M, short __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_abs_epi16(__mmask32 __U, __m512i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_sub_epi16(__mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __mmask64 __DEFAULT_FN_ATTRS _mm512_testn_epi8_mask(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mulhi_epi16(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_mov_epi8(__mmask64 __U, __m512i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_adds_epu16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_loadu_epi8(__mmask64 __U, void const *__P)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_blend_epi8(__mmask64 __U, __m512i __A, __m512i __W)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_min_epi16(__mmask32 __M, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_mullo_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_srl_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_sub_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_cvtepi8_epi16(__m512i __W, __mmask32 __U, __m256i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_mulhrs_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_permutex2var_epi16(__m512i __A, __mmask32 __U, __m512i __I, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_slli_epi16(__m512i __W, __mmask32 __U, __m512i __A, int __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_adds_epu16(__mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_max_epi16(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_broadcastb_epi8(__mmask64 __M, __m128i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_subs_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_permutex2var_epi16(__mmask32 __U, __m512i __A, __m512i __I, __m512i __B)
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_undefined_si128(void)
Generates a 128-bit vector of [4 x i32] with unspecified content.
Definition: emmintrin.h:3600
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_set1_epi8(__m512i __O, __mmask64 __M, char __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_permutexvar_epi16(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_sll_epi16(__mmask32 __U, __m512i __A, __m128i __B)
static __inline __m512i __DEFAULT_FN_ATTRS _mm512_setzero_si512(void)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_srai_epi16(__mmask32 __U, __m512i __A, int __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_min_epi8(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_unpackhi_epi16(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_max_epu8(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_srlv_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_sllv_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_adds_epu16(__m512i __A, __m512i __B)
static __inline __m256i __DEFAULT_FN_ATTRS _mm256_setzero_si256(void)
Constructs a 256-bit integer vector initialized to zero.
Definition: avxintrin.h:4357
static __inline__ __mmask64 __DEFAULT_FN_ATTRS _mm512_mask_testn_epi8_mask(__mmask64 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_adds_epi16(__mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_max_epi16(__mmask32 __M, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_add_epi8(__m512i __A, __m512i __B)
#define _mm512_mask_cmpeq_epi8_mask(k, A, B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_cvtepu8_epi16(__mmask32 __U, __m256i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_unpacklo_epi8(__m512i __A, __m512i __B)
static __inline__ void __DEFAULT_FN_ATTRS _mm512_mask_storeu_epi16(void *__P, __mmask32 __U, __m512i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_abs_epi8(__m512i __W, __mmask64 __U, __m512i __A)
unsigned short __mmask16
Definition: avx512fintrin.h:48
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_permutexvar_epi16(__mmask32 __M, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_packus_epi32(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_srav_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
#define _mm512_mask_cmpeq_epi16_mask(k, A, B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_slli_epi16(__mmask32 __U, __m512i __A, int __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_packus_epi16(__mmask64 __M, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_packs_epi16(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_unpackhi_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_abs_epi16(__m512i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_srav_epi16(__mmask32 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_packs_epi32(__mmask32 __M, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_blend_epi16(__mmask32 __U, __m512i __A, __m512i __W)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_max_epu16(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_srli_epi16(__m512i __W, __mmask32 __U, __m512i __A, int __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mulhrs_epi16(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_subs_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_subs_epi8(__m512i __A, __m512i __B)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_broadcastb_epi8(__m512i __O, __mmask64 __M, __m128i __A)