* config/i386/avx512bitalgintrin.h (_mm512_mask_bitshuffle_epi64_mask):
[official-gcc.git] / gcc / config / i386 / avx512bwintrin.h
blob24ad5f1e2af7c70df04ef6d3f3b58a148c23a126
1 /* Copyright (C) 2014-2018 Free Software Foundation, Inc.
3 This file is part of GCC.
5 GCC is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 3, or (at your option)
8 any later version.
10 GCC is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 Under Section 7 of GPL version 3, you are granted additional
16 permissions described in the GCC Runtime Library Exception, version
17 3.1, as published by the Free Software Foundation.
19 You should have received a copy of the GNU General Public License and
20 a copy of the GCC Runtime Library Exception along with this program;
21 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
22 <http://www.gnu.org/licenses/>. */
24 #ifndef _IMMINTRIN_H_INCLUDED
25 #error "Never use <avx512bwintrin.h> directly; include <immintrin.h> instead."
26 #endif
28 #ifndef _AVX512BWINTRIN_H_INCLUDED
29 #define _AVX512BWINTRIN_H_INCLUDED
31 #ifndef __AVX512BW__
32 #pragma GCC push_options
33 #pragma GCC target("avx512bw")
34 #define __DISABLE_AVX512BW__
35 #endif /* __AVX512BW__ */
37 /* Internal data types for implementing the intrinsics. */
38 typedef short __v32hi __attribute__ ((__vector_size__ (64)));
39 typedef char __v64qi __attribute__ ((__vector_size__ (64)));
41 typedef unsigned long long __mmask64;
43 extern __inline unsigned char
44 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
45 _ktest_mask32_u8 (__mmask32 __A, __mmask32 __B, unsigned char *__CF)
47 *__CF = (unsigned char) __builtin_ia32_ktestcsi (__A, __B);
48 return (unsigned char) __builtin_ia32_ktestzsi (__A, __B);
51 extern __inline unsigned char
52 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
53 _ktest_mask64_u8 (__mmask64 __A, __mmask64 __B, unsigned char *__CF)
55 *__CF = (unsigned char) __builtin_ia32_ktestcdi (__A, __B);
56 return (unsigned char) __builtin_ia32_ktestzdi (__A, __B);
59 extern __inline unsigned char
60 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
61 _ktestz_mask32_u8 (__mmask32 __A, __mmask32 __B)
63 return (unsigned char) __builtin_ia32_ktestzsi (__A, __B);
66 extern __inline unsigned char
67 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
68 _ktestz_mask64_u8 (__mmask64 __A, __mmask64 __B)
70 return (unsigned char) __builtin_ia32_ktestzdi (__A, __B);
73 extern __inline unsigned char
74 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
75 _ktestc_mask32_u8 (__mmask32 __A, __mmask32 __B)
77 return (unsigned char) __builtin_ia32_ktestcsi (__A, __B);
80 extern __inline unsigned char
81 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
82 _ktestc_mask64_u8 (__mmask64 __A, __mmask64 __B)
84 return (unsigned char) __builtin_ia32_ktestcdi (__A, __B);
87 extern __inline unsigned char
88 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
89 _kortest_mask32_u8 (__mmask32 __A, __mmask32 __B, unsigned char *__CF)
91 *__CF = (unsigned char) __builtin_ia32_kortestcsi (__A, __B);
92 return (unsigned char) __builtin_ia32_kortestzsi (__A, __B);
95 extern __inline unsigned char
96 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
97 _kortest_mask64_u8 (__mmask64 __A, __mmask64 __B, unsigned char *__CF)
99 *__CF = (unsigned char) __builtin_ia32_kortestcdi (__A, __B);
100 return (unsigned char) __builtin_ia32_kortestzdi (__A, __B);
103 extern __inline unsigned char
104 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
105 _kortestz_mask32_u8 (__mmask32 __A, __mmask32 __B)
107 return (unsigned char) __builtin_ia32_kortestzsi (__A, __B);
110 extern __inline unsigned char
111 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
112 _kortestz_mask64_u8 (__mmask64 __A, __mmask64 __B)
114 return (unsigned char) __builtin_ia32_kortestzdi (__A, __B);
117 extern __inline unsigned char
118 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
119 _kortestc_mask32_u8 (__mmask32 __A, __mmask32 __B)
121 return (unsigned char) __builtin_ia32_kortestcsi (__A, __B);
124 extern __inline unsigned char
125 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
126 _kortestc_mask64_u8 (__mmask64 __A, __mmask64 __B)
128 return (unsigned char) __builtin_ia32_kortestcdi (__A, __B);
131 extern __inline __mmask32
132 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
133 _kadd_mask32 (__mmask32 __A, __mmask32 __B)
135 return (__mmask32) __builtin_ia32_kaddsi ((__mmask32) __A, (__mmask32) __B);
138 extern __inline __mmask64
139 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
140 _kadd_mask64 (__mmask64 __A, __mmask64 __B)
142 return (__mmask64) __builtin_ia32_kadddi ((__mmask64) __A, (__mmask64) __B);
145 extern __inline unsigned int
146 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
147 _cvtmask32_u32 (__mmask32 __A)
149 return (unsigned int) __builtin_ia32_kmovd ((__mmask32) __A);
152 extern __inline unsigned long long
153 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
154 _cvtmask64_u64 (__mmask64 __A)
156 return (unsigned long long) __builtin_ia32_kmovq ((__mmask64) __A);
159 extern __inline __mmask32
160 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
161 _cvtu32_mask32 (unsigned int __A)
163 return (__mmask32) __builtin_ia32_kmovd ((__mmask32) __A);
166 extern __inline __mmask64
167 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
168 _cvtu64_mask64 (unsigned long long __A)
170 return (__mmask64) __builtin_ia32_kmovq ((__mmask64) __A);
173 extern __inline __mmask32
174 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
175 _load_mask32 (__mmask32 *__A)
177 return (__mmask32) __builtin_ia32_kmovd (*__A);
180 extern __inline __mmask64
181 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
182 _load_mask64 (__mmask64 *__A)
184 return (__mmask64) __builtin_ia32_kmovq (*(__mmask64 *) __A);
187 extern __inline void
188 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
189 _store_mask32 (__mmask32 *__A, __mmask32 __B)
191 *(__mmask32 *) __A = __builtin_ia32_kmovd (__B);
194 extern __inline void
195 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
196 _store_mask64 (__mmask64 *__A, __mmask64 __B)
198 *(__mmask64 *) __A = __builtin_ia32_kmovq (__B);
201 extern __inline __mmask32
202 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
203 _knot_mask32 (__mmask32 __A)
205 return (__mmask32) __builtin_ia32_knotsi ((__mmask32) __A);
208 extern __inline __mmask64
209 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
210 _knot_mask64 (__mmask64 __A)
212 return (__mmask64) __builtin_ia32_knotdi ((__mmask64) __A);
215 extern __inline __mmask32
216 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
217 _kor_mask32 (__mmask32 __A, __mmask32 __B)
219 return (__mmask32) __builtin_ia32_korsi ((__mmask32) __A, (__mmask32) __B);
222 extern __inline __mmask64
223 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
224 _kor_mask64 (__mmask64 __A, __mmask64 __B)
226 return (__mmask64) __builtin_ia32_kordi ((__mmask64) __A, (__mmask64) __B);
229 extern __inline __mmask32
230 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
231 _kxnor_mask32 (__mmask32 __A, __mmask32 __B)
233 return (__mmask32) __builtin_ia32_kxnorsi ((__mmask32) __A, (__mmask32) __B);
236 extern __inline __mmask64
237 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
238 _kxnor_mask64 (__mmask64 __A, __mmask64 __B)
240 return (__mmask64) __builtin_ia32_kxnordi ((__mmask64) __A, (__mmask64) __B);
243 extern __inline __mmask32
244 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
245 _kxor_mask32 (__mmask32 __A, __mmask32 __B)
247 return (__mmask32) __builtin_ia32_kxorsi ((__mmask32) __A, (__mmask32) __B);
250 extern __inline __mmask64
251 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
252 _kxor_mask64 (__mmask64 __A, __mmask64 __B)
254 return (__mmask64) __builtin_ia32_kxordi ((__mmask64) __A, (__mmask64) __B);
257 extern __inline __mmask32
258 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
259 _kand_mask32 (__mmask32 __A, __mmask32 __B)
261 return (__mmask32) __builtin_ia32_kandsi ((__mmask32) __A, (__mmask32) __B);
264 extern __inline __mmask64
265 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
266 _kand_mask64 (__mmask64 __A, __mmask64 __B)
268 return (__mmask64) __builtin_ia32_kanddi ((__mmask64) __A, (__mmask64) __B);
271 extern __inline __mmask32
272 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
273 _kandn_mask32 (__mmask32 __A, __mmask32 __B)
275 return (__mmask32) __builtin_ia32_kandnsi ((__mmask32) __A, (__mmask32) __B);
278 extern __inline __mmask64
279 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
280 _kandn_mask64 (__mmask64 __A, __mmask64 __B)
282 return (__mmask64) __builtin_ia32_kandndi ((__mmask64) __A, (__mmask64) __B);
285 extern __inline __m512i
286 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
287 _mm512_mask_mov_epi16 (__m512i __W, __mmask32 __U, __m512i __A)
289 return (__m512i) __builtin_ia32_movdquhi512_mask ((__v32hi) __A,
290 (__v32hi) __W,
291 (__mmask32) __U);
294 extern __inline __m512i
295 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
296 _mm512_maskz_mov_epi16 (__mmask32 __U, __m512i __A)
298 return (__m512i) __builtin_ia32_movdquhi512_mask ((__v32hi) __A,
299 (__v32hi)
300 _mm512_setzero_si512 (),
301 (__mmask32) __U);
304 extern __inline __m512i
305 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
306 _mm512_mask_loadu_epi16 (__m512i __W, __mmask32 __U, void const *__P)
308 return (__m512i) __builtin_ia32_loaddquhi512_mask ((const short *) __P,
309 (__v32hi) __W,
310 (__mmask32) __U);
313 extern __inline __m512i
314 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
315 _mm512_maskz_loadu_epi16 (__mmask32 __U, void const *__P)
317 return (__m512i) __builtin_ia32_loaddquhi512_mask ((const short *) __P,
318 (__v32hi)
319 _mm512_setzero_si512 (),
320 (__mmask32) __U);
323 extern __inline void
324 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
325 _mm512_mask_storeu_epi16 (void *__P, __mmask32 __U, __m512i __A)
327 __builtin_ia32_storedquhi512_mask ((short *) __P,
328 (__v32hi) __A,
329 (__mmask32) __U);
332 extern __inline __m512i
333 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
334 _mm512_mask_mov_epi8 (__m512i __W, __mmask64 __U, __m512i __A)
336 return (__m512i) __builtin_ia32_movdquqi512_mask ((__v64qi) __A,
337 (__v64qi) __W,
338 (__mmask64) __U);
341 extern __inline __m512i
342 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
343 _mm512_maskz_mov_epi8 (__mmask64 __U, __m512i __A)
345 return (__m512i) __builtin_ia32_movdquqi512_mask ((__v64qi) __A,
346 (__v64qi)
347 _mm512_setzero_si512 (),
348 (__mmask64) __U);
351 extern __inline __mmask32
352 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
353 _mm512_kunpackw (__mmask32 __A, __mmask32 __B)
355 return (__mmask32) __builtin_ia32_kunpcksi ((__mmask32) __A,
356 (__mmask32) __B);
359 extern __inline __mmask32
360 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
361 _kunpackw_mask32 (__mmask16 __A, __mmask16 __B)
363 return (__mmask32) __builtin_ia32_kunpcksi ((__mmask32) __A,
364 (__mmask32) __B);
367 extern __inline __mmask64
368 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
369 _mm512_kunpackd (__mmask64 __A, __mmask64 __B)
371 return (__mmask64) __builtin_ia32_kunpckdi ((__mmask64) __A,
372 (__mmask64) __B);
375 extern __inline __mmask64
376 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
377 _kunpackd_mask64 (__mmask32 __A, __mmask32 __B)
379 return (__mmask64) __builtin_ia32_kunpckdi ((__mmask64) __A,
380 (__mmask64) __B);
383 extern __inline __m512i
384 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
385 _mm512_mask_loadu_epi8 (__m512i __W, __mmask64 __U, void const *__P)
387 return (__m512i) __builtin_ia32_loaddquqi512_mask ((const char *) __P,
388 (__v64qi) __W,
389 (__mmask64) __U);
392 extern __inline __m512i
393 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
394 _mm512_maskz_loadu_epi8 (__mmask64 __U, void const *__P)
396 return (__m512i) __builtin_ia32_loaddquqi512_mask ((const char *) __P,
397 (__v64qi)
398 _mm512_setzero_si512 (),
399 (__mmask64) __U);
402 extern __inline void
403 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
404 _mm512_mask_storeu_epi8 (void *__P, __mmask64 __U, __m512i __A)
406 __builtin_ia32_storedquqi512_mask ((char *) __P,
407 (__v64qi) __A,
408 (__mmask64) __U);
411 extern __inline __m512i
412 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
413 _mm512_sad_epu8 (__m512i __A, __m512i __B)
415 return (__m512i) __builtin_ia32_psadbw512 ((__v64qi) __A,
416 (__v64qi) __B);
419 extern __inline __m256i
420 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
421 _mm512_cvtepi16_epi8 (__m512i __A)
423 return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A,
424 (__v32qi) _mm256_undefined_si256(),
425 (__mmask32) -1);
428 extern __inline void
429 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
430 _mm512_mask_cvtepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)
432 __builtin_ia32_pmovwb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M);
435 extern __inline __m256i
436 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
437 _mm512_mask_cvtepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A)
439 return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A,
440 (__v32qi) __O, __M);
443 extern __inline __m256i
444 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
445 _mm512_maskz_cvtepi16_epi8 (__mmask32 __M, __m512i __A)
447 return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A,
448 (__v32qi)
449 _mm256_setzero_si256 (),
450 __M);
453 extern __inline __m256i
454 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
455 _mm512_cvtsepi16_epi8 (__m512i __A)
457 return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,
458 (__v32qi)_mm256_undefined_si256(),
459 (__mmask32) -1);
462 extern __inline void
463 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
464 _mm512_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)
466 __builtin_ia32_pmovswb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M);
469 extern __inline __m256i
470 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
471 _mm512_mask_cvtsepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A)
473 return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,
474 (__v32qi)__O,
475 __M);
478 extern __inline __m256i
479 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
480 _mm512_maskz_cvtsepi16_epi8 (__mmask32 __M, __m512i __A)
482 return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,
483 (__v32qi)
484 _mm256_setzero_si256 (),
485 __M);
488 extern __inline __m256i
489 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
490 _mm512_cvtusepi16_epi8 (__m512i __A)
492 return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,
493 (__v32qi)_mm256_undefined_si256(),
494 (__mmask32) -1);
497 extern __inline __m256i
498 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
499 _mm512_mask_cvtusepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A)
501 return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,
502 (__v32qi) __O,
503 __M);
506 extern __inline void
507 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
508 _mm512_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)
510 __builtin_ia32_pmovuswb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M);
513 extern __inline __m256i
514 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
515 _mm512_maskz_cvtusepi16_epi8 (__mmask32 __M, __m512i __A)
517 return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,
518 (__v32qi)
519 _mm256_setzero_si256 (),
520 __M);
523 extern __inline __m512i
524 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
525 _mm512_broadcastb_epi8 (__m128i __A)
527 return (__m512i) __builtin_ia32_pbroadcastb512_mask ((__v16qi) __A,
528 (__v64qi)_mm512_undefined_epi32(),
529 (__mmask64) -1);
532 extern __inline __m512i
533 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
534 _mm512_mask_broadcastb_epi8 (__m512i __O, __mmask64 __M, __m128i __A)
536 return (__m512i) __builtin_ia32_pbroadcastb512_mask ((__v16qi) __A,
537 (__v64qi) __O,
538 __M);
541 extern __inline __m512i
542 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
543 _mm512_maskz_broadcastb_epi8 (__mmask64 __M, __m128i __A)
545 return (__m512i) __builtin_ia32_pbroadcastb512_mask ((__v16qi) __A,
546 (__v64qi)
547 _mm512_setzero_si512 (),
548 __M);
551 extern __inline __m512i
552 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
553 _mm512_mask_set1_epi8 (__m512i __O, __mmask64 __M, char __A)
555 return (__m512i) __builtin_ia32_pbroadcastb512_gpr_mask (__A,
556 (__v64qi) __O,
557 __M);
560 extern __inline __m512i
561 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
562 _mm512_maskz_set1_epi8 (__mmask64 __M, char __A)
564 return (__m512i)
565 __builtin_ia32_pbroadcastb512_gpr_mask (__A,
566 (__v64qi)
567 _mm512_setzero_si512 (),
568 __M);
571 extern __inline __m512i
572 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
573 _mm512_broadcastw_epi16 (__m128i __A)
575 return (__m512i) __builtin_ia32_pbroadcastw512_mask ((__v8hi) __A,
576 (__v32hi)_mm512_undefined_epi32(),
577 (__mmask32) -1);
580 extern __inline __m512i
581 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
582 _mm512_mask_broadcastw_epi16 (__m512i __O, __mmask32 __M, __m128i __A)
584 return (__m512i) __builtin_ia32_pbroadcastw512_mask ((__v8hi) __A,
585 (__v32hi) __O,
586 __M);
589 extern __inline __m512i
590 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
591 _mm512_maskz_broadcastw_epi16 (__mmask32 __M, __m128i __A)
593 return (__m512i) __builtin_ia32_pbroadcastw512_mask ((__v8hi) __A,
594 (__v32hi)
595 _mm512_setzero_si512 (),
596 __M);
599 extern __inline __m512i
600 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
601 _mm512_mask_set1_epi16 (__m512i __O, __mmask32 __M, short __A)
603 return (__m512i) __builtin_ia32_pbroadcastw512_gpr_mask (__A,
604 (__v32hi) __O,
605 __M);
608 extern __inline __m512i
609 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
610 _mm512_maskz_set1_epi16 (__mmask32 __M, short __A)
612 return (__m512i)
613 __builtin_ia32_pbroadcastw512_gpr_mask (__A,
614 (__v32hi)
615 _mm512_setzero_si512 (),
616 __M);
619 extern __inline __m512i
620 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
621 _mm512_mulhrs_epi16 (__m512i __A, __m512i __B)
623 return (__m512i) __builtin_ia32_pmulhrsw512_mask ((__v32hi) __A,
624 (__v32hi) __B,
625 (__v32hi)
626 _mm512_setzero_si512 (),
627 (__mmask32) -1);
630 extern __inline __m512i
631 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
632 _mm512_mask_mulhrs_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
633 __m512i __B)
635 return (__m512i) __builtin_ia32_pmulhrsw512_mask ((__v32hi) __A,
636 (__v32hi) __B,
637 (__v32hi) __W,
638 (__mmask32) __U);
641 extern __inline __m512i
642 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
643 _mm512_maskz_mulhrs_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
645 return (__m512i) __builtin_ia32_pmulhrsw512_mask ((__v32hi) __A,
646 (__v32hi) __B,
647 (__v32hi)
648 _mm512_setzero_si512 (),
649 (__mmask32) __U);
652 extern __inline __m512i
653 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
654 _mm512_mulhi_epi16 (__m512i __A, __m512i __B)
656 return (__m512i) __builtin_ia32_pmulhw512_mask ((__v32hi) __A,
657 (__v32hi) __B,
658 (__v32hi)
659 _mm512_setzero_si512 (),
660 (__mmask32) -1);
663 extern __inline __m512i
664 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
665 _mm512_mask_mulhi_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
666 __m512i __B)
668 return (__m512i) __builtin_ia32_pmulhw512_mask ((__v32hi) __A,
669 (__v32hi) __B,
670 (__v32hi) __W,
671 (__mmask32) __U);
674 extern __inline __m512i
675 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
676 _mm512_maskz_mulhi_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
678 return (__m512i) __builtin_ia32_pmulhw512_mask ((__v32hi) __A,
679 (__v32hi) __B,
680 (__v32hi)
681 _mm512_setzero_si512 (),
682 (__mmask32) __U);
685 extern __inline __m512i
686 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
687 _mm512_mulhi_epu16 (__m512i __A, __m512i __B)
689 return (__m512i) __builtin_ia32_pmulhuw512_mask ((__v32hi) __A,
690 (__v32hi) __B,
691 (__v32hi)
692 _mm512_setzero_si512 (),
693 (__mmask32) -1);
696 extern __inline __m512i
697 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
698 _mm512_mask_mulhi_epu16 (__m512i __W, __mmask32 __U, __m512i __A,
699 __m512i __B)
701 return (__m512i) __builtin_ia32_pmulhuw512_mask ((__v32hi) __A,
702 (__v32hi) __B,
703 (__v32hi) __W,
704 (__mmask32) __U);
707 extern __inline __m512i
708 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
709 _mm512_maskz_mulhi_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
711 return (__m512i) __builtin_ia32_pmulhuw512_mask ((__v32hi) __A,
712 (__v32hi) __B,
713 (__v32hi)
714 _mm512_setzero_si512 (),
715 (__mmask32) __U);
718 extern __inline __m512i
719 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
720 _mm512_mullo_epi16 (__m512i __A, __m512i __B)
722 return (__m512i) ((__v32hu) __A * (__v32hu) __B);
725 extern __inline __m512i
726 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
727 _mm512_mask_mullo_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
728 __m512i __B)
730 return (__m512i) __builtin_ia32_pmullw512_mask ((__v32hi) __A,
731 (__v32hi) __B,
732 (__v32hi) __W,
733 (__mmask32) __U);
736 extern __inline __m512i
737 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
738 _mm512_maskz_mullo_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
740 return (__m512i) __builtin_ia32_pmullw512_mask ((__v32hi) __A,
741 (__v32hi) __B,
742 (__v32hi)
743 _mm512_setzero_si512 (),
744 (__mmask32) __U);
747 extern __inline __m512i
748 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
749 _mm512_cvtepi8_epi16 (__m256i __A)
751 return (__m512i) __builtin_ia32_pmovsxbw512_mask ((__v32qi) __A,
752 (__v32hi)
753 _mm512_setzero_si512 (),
754 (__mmask32) -1);
757 extern __inline __m512i
758 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
759 _mm512_mask_cvtepi8_epi16 (__m512i __W, __mmask32 __U, __m256i __A)
761 return (__m512i) __builtin_ia32_pmovsxbw512_mask ((__v32qi) __A,
762 (__v32hi) __W,
763 (__mmask32) __U);
766 extern __inline __m512i
767 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
768 _mm512_maskz_cvtepi8_epi16 (__mmask32 __U, __m256i __A)
770 return (__m512i) __builtin_ia32_pmovsxbw512_mask ((__v32qi) __A,
771 (__v32hi)
772 _mm512_setzero_si512 (),
773 (__mmask32) __U);
776 extern __inline __m512i
777 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
778 _mm512_cvtepu8_epi16 (__m256i __A)
780 return (__m512i) __builtin_ia32_pmovzxbw512_mask ((__v32qi) __A,
781 (__v32hi)
782 _mm512_setzero_si512 (),
783 (__mmask32) -1);
786 extern __inline __m512i
787 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
788 _mm512_mask_cvtepu8_epi16 (__m512i __W, __mmask32 __U, __m256i __A)
790 return (__m512i) __builtin_ia32_pmovzxbw512_mask ((__v32qi) __A,
791 (__v32hi) __W,
792 (__mmask32) __U);
795 extern __inline __m512i
796 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
797 _mm512_maskz_cvtepu8_epi16 (__mmask32 __U, __m256i __A)
799 return (__m512i) __builtin_ia32_pmovzxbw512_mask ((__v32qi) __A,
800 (__v32hi)
801 _mm512_setzero_si512 (),
802 (__mmask32) __U);
805 extern __inline __m512i
806 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
807 _mm512_permutexvar_epi16 (__m512i __A, __m512i __B)
809 return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B,
810 (__v32hi) __A,
811 (__v32hi)
812 _mm512_setzero_si512 (),
813 (__mmask32) -1);
816 extern __inline __m512i
817 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
818 _mm512_maskz_permutexvar_epi16 (__mmask32 __M, __m512i __A,
819 __m512i __B)
821 return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B,
822 (__v32hi) __A,
823 (__v32hi)
824 _mm512_setzero_si512 (),
825 (__mmask32) __M);
828 extern __inline __m512i
829 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
830 _mm512_mask_permutexvar_epi16 (__m512i __W, __mmask32 __M, __m512i __A,
831 __m512i __B)
833 return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B,
834 (__v32hi) __A,
835 (__v32hi) __W,
836 (__mmask32) __M);
839 extern __inline __m512i
840 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
841 _mm512_permutex2var_epi16 (__m512i __A, __m512i __I, __m512i __B)
843 return (__m512i) __builtin_ia32_vpermt2varhi512_mask ((__v32hi) __I
844 /* idx */ ,
845 (__v32hi) __A,
846 (__v32hi) __B,
847 (__mmask32) -1);
850 extern __inline __m512i
851 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
852 _mm512_mask_permutex2var_epi16 (__m512i __A, __mmask32 __U,
853 __m512i __I, __m512i __B)
855 return (__m512i) __builtin_ia32_vpermt2varhi512_mask ((__v32hi) __I
856 /* idx */ ,
857 (__v32hi) __A,
858 (__v32hi) __B,
859 (__mmask32)
860 __U);
863 extern __inline __m512i
864 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
865 _mm512_mask2_permutex2var_epi16 (__m512i __A, __m512i __I,
866 __mmask32 __U, __m512i __B)
868 return (__m512i) __builtin_ia32_vpermi2varhi512_mask ((__v32hi) __A,
869 (__v32hi) __I
870 /* idx */ ,
871 (__v32hi) __B,
872 (__mmask32)
873 __U);
876 extern __inline __m512i
877 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
878 _mm512_maskz_permutex2var_epi16 (__mmask32 __U, __m512i __A,
879 __m512i __I, __m512i __B)
881 return (__m512i) __builtin_ia32_vpermt2varhi512_maskz ((__v32hi) __I
882 /* idx */ ,
883 (__v32hi) __A,
884 (__v32hi) __B,
885 (__mmask32)
886 __U);
889 extern __inline __m512i
890 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
891 _mm512_avg_epu8 (__m512i __A, __m512i __B)
893 return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A,
894 (__v64qi) __B,
895 (__v64qi)
896 _mm512_setzero_si512 (),
897 (__mmask64) -1);
900 extern __inline __m512i
901 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
902 _mm512_mask_avg_epu8 (__m512i __W, __mmask64 __U, __m512i __A,
903 __m512i __B)
905 return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A,
906 (__v64qi) __B,
907 (__v64qi) __W,
908 (__mmask64) __U);
911 extern __inline __m512i
912 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
913 _mm512_maskz_avg_epu8 (__mmask64 __U, __m512i __A, __m512i __B)
915 return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A,
916 (__v64qi) __B,
917 (__v64qi)
918 _mm512_setzero_si512 (),
919 (__mmask64) __U);
922 extern __inline __m512i
923 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
924 _mm512_add_epi8 (__m512i __A, __m512i __B)
926 return (__m512i) ((__v64qu) __A + (__v64qu) __B);
929 extern __inline __m512i
930 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
931 _mm512_mask_add_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
932 __m512i __B)
934 return (__m512i) __builtin_ia32_paddb512_mask ((__v64qi) __A,
935 (__v64qi) __B,
936 (__v64qi) __W,
937 (__mmask64) __U);
940 extern __inline __m512i
941 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
942 _mm512_maskz_add_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
944 return (__m512i) __builtin_ia32_paddb512_mask ((__v64qi) __A,
945 (__v64qi) __B,
946 (__v64qi)
947 _mm512_setzero_si512 (),
948 (__mmask64) __U);
951 extern __inline __m512i
952 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
953 _mm512_sub_epi8 (__m512i __A, __m512i __B)
955 return (__m512i) ((__v64qu) __A - (__v64qu) __B);
958 extern __inline __m512i
959 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
960 _mm512_mask_sub_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
961 __m512i __B)
963 return (__m512i) __builtin_ia32_psubb512_mask ((__v64qi) __A,
964 (__v64qi) __B,
965 (__v64qi) __W,
966 (__mmask64) __U);
969 extern __inline __m512i
970 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
971 _mm512_maskz_sub_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
973 return (__m512i) __builtin_ia32_psubb512_mask ((__v64qi) __A,
974 (__v64qi) __B,
975 (__v64qi)
976 _mm512_setzero_si512 (),
977 (__mmask64) __U);
980 extern __inline __m512i
981 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
982 _mm512_avg_epu16 (__m512i __A, __m512i __B)
984 return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A,
985 (__v32hi) __B,
986 (__v32hi)
987 _mm512_setzero_si512 (),
988 (__mmask32) -1);
991 extern __inline __m512i
992 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
993 _mm512_mask_avg_epu16 (__m512i __W, __mmask32 __U, __m512i __A,
994 __m512i __B)
996 return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A,
997 (__v32hi) __B,
998 (__v32hi) __W,
999 (__mmask32) __U);
1002 extern __inline __m512i
1003 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1004 _mm512_maskz_avg_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
1006 return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A,
1007 (__v32hi) __B,
1008 (__v32hi)
1009 _mm512_setzero_si512 (),
1010 (__mmask32) __U);
1013 extern __inline __m512i
1014 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1015 _mm512_subs_epi8 (__m512i __A, __m512i __B)
1017 return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A,
1018 (__v64qi) __B,
1019 (__v64qi)
1020 _mm512_setzero_si512 (),
1021 (__mmask64) -1);
1024 extern __inline __m512i
1025 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1026 _mm512_mask_subs_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
1027 __m512i __B)
1029 return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A,
1030 (__v64qi) __B,
1031 (__v64qi) __W,
1032 (__mmask64) __U);
1035 extern __inline __m512i
1036 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1037 _mm512_maskz_subs_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
1039 return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A,
1040 (__v64qi) __B,
1041 (__v64qi)
1042 _mm512_setzero_si512 (),
1043 (__mmask64) __U);
1046 extern __inline __m512i
1047 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1048 _mm512_subs_epu8 (__m512i __A, __m512i __B)
1050 return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A,
1051 (__v64qi) __B,
1052 (__v64qi)
1053 _mm512_setzero_si512 (),
1054 (__mmask64) -1);
1057 extern __inline __m512i
1058 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1059 _mm512_mask_subs_epu8 (__m512i __W, __mmask64 __U, __m512i __A,
1060 __m512i __B)
1062 return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A,
1063 (__v64qi) __B,
1064 (__v64qi) __W,
1065 (__mmask64) __U);
1068 extern __inline __m512i
1069 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1070 _mm512_maskz_subs_epu8 (__mmask64 __U, __m512i __A, __m512i __B)
1072 return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A,
1073 (__v64qi) __B,
1074 (__v64qi)
1075 _mm512_setzero_si512 (),
1076 (__mmask64) __U);
1079 extern __inline __m512i
1080 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1081 _mm512_adds_epi8 (__m512i __A, __m512i __B)
1083 return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A,
1084 (__v64qi) __B,
1085 (__v64qi)
1086 _mm512_setzero_si512 (),
1087 (__mmask64) -1);
1090 extern __inline __m512i
1091 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1092 _mm512_mask_adds_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
1093 __m512i __B)
1095 return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A,
1096 (__v64qi) __B,
1097 (__v64qi) __W,
1098 (__mmask64) __U);
1101 extern __inline __m512i
1102 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1103 _mm512_maskz_adds_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
1105 return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A,
1106 (__v64qi) __B,
1107 (__v64qi)
1108 _mm512_setzero_si512 (),
1109 (__mmask64) __U);
1112 extern __inline __m512i
1113 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1114 _mm512_adds_epu8 (__m512i __A, __m512i __B)
1116 return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A,
1117 (__v64qi) __B,
1118 (__v64qi)
1119 _mm512_setzero_si512 (),
1120 (__mmask64) -1);
1123 extern __inline __m512i
1124 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1125 _mm512_mask_adds_epu8 (__m512i __W, __mmask64 __U, __m512i __A,
1126 __m512i __B)
1128 return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A,
1129 (__v64qi) __B,
1130 (__v64qi) __W,
1131 (__mmask64) __U);
1134 extern __inline __m512i
1135 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1136 _mm512_maskz_adds_epu8 (__mmask64 __U, __m512i __A, __m512i __B)
1138 return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A,
1139 (__v64qi) __B,
1140 (__v64qi)
1141 _mm512_setzero_si512 (),
1142 (__mmask64) __U);
1145 extern __inline __m512i
1146 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1147 _mm512_sub_epi16 (__m512i __A, __m512i __B)
1149 return (__m512i) ((__v32hu) __A - (__v32hu) __B);
1152 extern __inline __m512i
1153 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1154 _mm512_mask_sub_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
1155 __m512i __B)
1157 return (__m512i) __builtin_ia32_psubw512_mask ((__v32hi) __A,
1158 (__v32hi) __B,
1159 (__v32hi) __W,
1160 (__mmask32) __U);
1163 extern __inline __m512i
1164 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1165 _mm512_maskz_sub_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
1167 return (__m512i) __builtin_ia32_psubw512_mask ((__v32hi) __A,
1168 (__v32hi) __B,
1169 (__v32hi)
1170 _mm512_setzero_si512 (),
1171 (__mmask32) __U);
1174 extern __inline __m512i
1175 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1176 _mm512_subs_epi16 (__m512i __A, __m512i __B)
1178 return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A,
1179 (__v32hi) __B,
1180 (__v32hi)
1181 _mm512_setzero_si512 (),
1182 (__mmask32) -1);
1185 extern __inline __m512i
1186 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1187 _mm512_mask_subs_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
1188 __m512i __B)
1190 return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A,
1191 (__v32hi) __B,
1192 (__v32hi) __W,
1193 (__mmask32) __U);
1196 extern __inline __m512i
1197 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1198 _mm512_maskz_subs_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
1200 return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A,
1201 (__v32hi) __B,
1202 (__v32hi)
1203 _mm512_setzero_si512 (),
1204 (__mmask32) __U);
1207 extern __inline __m512i
1208 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1209 _mm512_subs_epu16 (__m512i __A, __m512i __B)
1211 return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A,
1212 (__v32hi) __B,
1213 (__v32hi)
1214 _mm512_setzero_si512 (),
1215 (__mmask32) -1);
1218 extern __inline __m512i
1219 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1220 _mm512_mask_subs_epu16 (__m512i __W, __mmask32 __U, __m512i __A,
1221 __m512i __B)
1223 return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A,
1224 (__v32hi) __B,
1225 (__v32hi) __W,
1226 (__mmask32) __U);
1229 extern __inline __m512i
1230 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1231 _mm512_maskz_subs_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
1233 return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A,
1234 (__v32hi) __B,
1235 (__v32hi)
1236 _mm512_setzero_si512 (),
1237 (__mmask32) __U);
1240 extern __inline __m512i
1241 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1242 _mm512_add_epi16 (__m512i __A, __m512i __B)
1244 return (__m512i) ((__v32hu) __A + (__v32hu) __B);
1247 extern __inline __m512i
1248 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1249 _mm512_mask_add_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
1250 __m512i __B)
1252 return (__m512i) __builtin_ia32_paddw512_mask ((__v32hi) __A,
1253 (__v32hi) __B,
1254 (__v32hi) __W,
1255 (__mmask32) __U);
1258 extern __inline __m512i
1259 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1260 _mm512_maskz_add_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
1262 return (__m512i) __builtin_ia32_paddw512_mask ((__v32hi) __A,
1263 (__v32hi) __B,
1264 (__v32hi)
1265 _mm512_setzero_si512 (),
1266 (__mmask32) __U);
1269 extern __inline __m512i
1270 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1271 _mm512_adds_epi16 (__m512i __A, __m512i __B)
1273 return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A,
1274 (__v32hi) __B,
1275 (__v32hi)
1276 _mm512_setzero_si512 (),
1277 (__mmask32) -1);
1280 extern __inline __m512i
1281 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1282 _mm512_mask_adds_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
1283 __m512i __B)
1285 return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A,
1286 (__v32hi) __B,
1287 (__v32hi) __W,
1288 (__mmask32) __U);
1291 extern __inline __m512i
1292 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1293 _mm512_maskz_adds_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
1295 return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A,
1296 (__v32hi) __B,
1297 (__v32hi)
1298 _mm512_setzero_si512 (),
1299 (__mmask32) __U);
1302 extern __inline __m512i
1303 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1304 _mm512_adds_epu16 (__m512i __A, __m512i __B)
1306 return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A,
1307 (__v32hi) __B,
1308 (__v32hi)
1309 _mm512_setzero_si512 (),
1310 (__mmask32) -1);
1313 extern __inline __m512i
1314 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1315 _mm512_mask_adds_epu16 (__m512i __W, __mmask32 __U, __m512i __A,
1316 __m512i __B)
1318 return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A,
1319 (__v32hi) __B,
1320 (__v32hi) __W,
1321 (__mmask32) __U);
1324 extern __inline __m512i
1325 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1326 _mm512_maskz_adds_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
1328 return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A,
1329 (__v32hi) __B,
1330 (__v32hi)
1331 _mm512_setzero_si512 (),
1332 (__mmask32) __U);
1335 extern __inline __m512i
1336 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1337 _mm512_srl_epi16 (__m512i __A, __m128i __B)
1339 return (__m512i) __builtin_ia32_psrlw512_mask ((__v32hi) __A,
1340 (__v8hi) __B,
1341 (__v32hi)
1342 _mm512_setzero_si512 (),
1343 (__mmask32) -1);
1346 extern __inline __m512i
1347 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1348 _mm512_mask_srl_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
1349 __m128i __B)
1351 return (__m512i) __builtin_ia32_psrlw512_mask ((__v32hi) __A,
1352 (__v8hi) __B,
1353 (__v32hi) __W,
1354 (__mmask32) __U);
1357 extern __inline __m512i
1358 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1359 _mm512_maskz_srl_epi16 (__mmask32 __U, __m512i __A, __m128i __B)
1361 return (__m512i) __builtin_ia32_psrlw512_mask ((__v32hi) __A,
1362 (__v8hi) __B,
1363 (__v32hi)
1364 _mm512_setzero_si512 (),
1365 (__mmask32) __U);
1368 extern __inline __m512i
1369 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1370 _mm512_packs_epi16 (__m512i __A, __m512i __B)
1372 return (__m512i) __builtin_ia32_packsswb512_mask ((__v32hi) __A,
1373 (__v32hi) __B,
1374 (__v64qi)
1375 _mm512_setzero_si512 (),
1376 (__mmask64) -1);
1379 extern __inline __m512i
1380 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1381 _mm512_sll_epi16 (__m512i __A, __m128i __B)
1383 return (__m512i) __builtin_ia32_psllw512_mask ((__v32hi) __A,
1384 (__v8hi) __B,
1385 (__v32hi)
1386 _mm512_setzero_si512 (),
1387 (__mmask32) -1);
1390 extern __inline __m512i
1391 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1392 _mm512_mask_sll_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
1393 __m128i __B)
1395 return (__m512i) __builtin_ia32_psllw512_mask ((__v32hi) __A,
1396 (__v8hi) __B,
1397 (__v32hi) __W,
1398 (__mmask32) __U);
1401 extern __inline __m512i
1402 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1403 _mm512_maskz_sll_epi16 (__mmask32 __U, __m512i __A, __m128i __B)
1405 return (__m512i) __builtin_ia32_psllw512_mask ((__v32hi) __A,
1406 (__v8hi) __B,
1407 (__v32hi)
1408 _mm512_setzero_si512 (),
1409 (__mmask32) __U);
1412 extern __inline __m512i
1413 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1414 _mm512_maddubs_epi16 (__m512i __X, __m512i __Y)
1416 return (__m512i) __builtin_ia32_pmaddubsw512_mask ((__v64qi) __X,
1417 (__v64qi) __Y,
1418 (__v32hi)
1419 _mm512_setzero_si512 (),
1420 (__mmask32) -1);
1423 extern __inline __m512i
1424 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1425 _mm512_mask_maddubs_epi16 (__m512i __W, __mmask32 __U, __m512i __X,
1426 __m512i __Y)
1428 return (__m512i) __builtin_ia32_pmaddubsw512_mask ((__v64qi) __X,
1429 (__v64qi) __Y,
1430 (__v32hi) __W,
1431 (__mmask32) __U);
1434 extern __inline __m512i
1435 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1436 _mm512_maskz_maddubs_epi16 (__mmask32 __U, __m512i __X, __m512i __Y)
1438 return (__m512i) __builtin_ia32_pmaddubsw512_mask ((__v64qi) __X,
1439 (__v64qi) __Y,
1440 (__v32hi)
1441 _mm512_setzero_si512 (),
1442 (__mmask32) __U);
1445 extern __inline __m512i
1446 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1447 _mm512_madd_epi16 (__m512i __A, __m512i __B)
1449 return (__m512i) __builtin_ia32_pmaddwd512_mask ((__v32hi) __A,
1450 (__v32hi) __B,
1451 (__v16si)
1452 _mm512_setzero_si512 (),
1453 (__mmask16) -1);
1456 extern __inline __m512i
1457 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1458 _mm512_mask_madd_epi16 (__m512i __W, __mmask16 __U, __m512i __A,
1459 __m512i __B)
1461 return (__m512i) __builtin_ia32_pmaddwd512_mask ((__v32hi) __A,
1462 (__v32hi) __B,
1463 (__v16si) __W,
1464 (__mmask16) __U);
1467 extern __inline __m512i
1468 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1469 _mm512_maskz_madd_epi16 (__mmask16 __U, __m512i __A, __m512i __B)
1471 return (__m512i) __builtin_ia32_pmaddwd512_mask ((__v32hi) __A,
1472 (__v32hi) __B,
1473 (__v16si)
1474 _mm512_setzero_si512 (),
1475 (__mmask16) __U);
1478 extern __inline __m512i
1479 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1480 _mm512_unpackhi_epi8 (__m512i __A, __m512i __B)
1482 return (__m512i) __builtin_ia32_punpckhbw512_mask ((__v64qi) __A,
1483 (__v64qi) __B,
1484 (__v64qi)
1485 _mm512_setzero_si512 (),
1486 (__mmask64) -1);
1489 extern __inline __m512i
1490 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1491 _mm512_mask_unpackhi_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
1492 __m512i __B)
1494 return (__m512i) __builtin_ia32_punpckhbw512_mask ((__v64qi) __A,
1495 (__v64qi) __B,
1496 (__v64qi) __W,
1497 (__mmask64) __U);
1500 extern __inline __m512i
1501 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1502 _mm512_maskz_unpackhi_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
1504 return (__m512i) __builtin_ia32_punpckhbw512_mask ((__v64qi) __A,
1505 (__v64qi) __B,
1506 (__v64qi)
1507 _mm512_setzero_si512 (),
1508 (__mmask64) __U);
1511 extern __inline __m512i
1512 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1513 _mm512_unpackhi_epi16 (__m512i __A, __m512i __B)
1515 return (__m512i) __builtin_ia32_punpckhwd512_mask ((__v32hi) __A,
1516 (__v32hi) __B,
1517 (__v32hi)
1518 _mm512_setzero_si512 (),
1519 (__mmask32) -1);
1522 extern __inline __m512i
1523 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1524 _mm512_mask_unpackhi_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
1525 __m512i __B)
1527 return (__m512i) __builtin_ia32_punpckhwd512_mask ((__v32hi) __A,
1528 (__v32hi) __B,
1529 (__v32hi) __W,
1530 (__mmask32) __U);
1533 extern __inline __m512i
1534 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1535 _mm512_maskz_unpackhi_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
1537 return (__m512i) __builtin_ia32_punpckhwd512_mask ((__v32hi) __A,
1538 (__v32hi) __B,
1539 (__v32hi)
1540 _mm512_setzero_si512 (),
1541 (__mmask32) __U);
1544 extern __inline __m512i
1545 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1546 _mm512_unpacklo_epi8 (__m512i __A, __m512i __B)
1548 return (__m512i) __builtin_ia32_punpcklbw512_mask ((__v64qi) __A,
1549 (__v64qi) __B,
1550 (__v64qi)
1551 _mm512_setzero_si512 (),
1552 (__mmask64) -1);
1555 extern __inline __m512i
1556 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1557 _mm512_mask_unpacklo_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
1558 __m512i __B)
1560 return (__m512i) __builtin_ia32_punpcklbw512_mask ((__v64qi) __A,
1561 (__v64qi) __B,
1562 (__v64qi) __W,
1563 (__mmask64) __U);
1566 extern __inline __m512i
1567 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1568 _mm512_maskz_unpacklo_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
1570 return (__m512i) __builtin_ia32_punpcklbw512_mask ((__v64qi) __A,
1571 (__v64qi) __B,
1572 (__v64qi)
1573 _mm512_setzero_si512 (),
1574 (__mmask64) __U);
1577 extern __inline __m512i
1578 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1579 _mm512_unpacklo_epi16 (__m512i __A, __m512i __B)
1581 return (__m512i) __builtin_ia32_punpcklwd512_mask ((__v32hi) __A,
1582 (__v32hi) __B,
1583 (__v32hi)
1584 _mm512_setzero_si512 (),
1585 (__mmask32) -1);
1588 extern __inline __m512i
1589 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1590 _mm512_mask_unpacklo_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
1591 __m512i __B)
1593 return (__m512i) __builtin_ia32_punpcklwd512_mask ((__v32hi) __A,
1594 (__v32hi) __B,
1595 (__v32hi) __W,
1596 (__mmask32) __U);
1599 extern __inline __m512i
1600 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1601 _mm512_maskz_unpacklo_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
1603 return (__m512i) __builtin_ia32_punpcklwd512_mask ((__v32hi) __A,
1604 (__v32hi) __B,
1605 (__v32hi)
1606 _mm512_setzero_si512 (),
1607 (__mmask32) __U);
1610 extern __inline __mmask64
1611 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1612 _mm512_cmpeq_epu8_mask (__m512i __A, __m512i __B)
1614 return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __A,
1615 (__v64qi) __B, 0,
1616 (__mmask64) -1);
1619 extern __inline __mmask64
1620 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1621 _mm512_cmpeq_epi8_mask (__m512i __A, __m512i __B)
1623 return (__mmask64) __builtin_ia32_pcmpeqb512_mask ((__v64qi) __A,
1624 (__v64qi) __B,
1625 (__mmask64) -1);
1628 extern __inline __mmask64
1629 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1630 _mm512_mask_cmpeq_epu8_mask (__mmask64 __U, __m512i __A, __m512i __B)
1632 return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __A,
1633 (__v64qi) __B, 0,
1634 __U);
1637 extern __inline __mmask64
1638 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1639 _mm512_mask_cmpeq_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B)
1641 return (__mmask64) __builtin_ia32_pcmpeqb512_mask ((__v64qi) __A,
1642 (__v64qi) __B,
1643 __U);
1646 extern __inline __mmask32
1647 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1648 _mm512_cmpeq_epu16_mask (__m512i __A, __m512i __B)
1650 return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __A,
1651 (__v32hi) __B, 0,
1652 (__mmask32) -1);
1655 extern __inline __mmask32
1656 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1657 _mm512_cmpeq_epi16_mask (__m512i __A, __m512i __B)
1659 return (__mmask32) __builtin_ia32_pcmpeqw512_mask ((__v32hi) __A,
1660 (__v32hi) __B,
1661 (__mmask32) -1);
1664 extern __inline __mmask32
1665 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1666 _mm512_mask_cmpeq_epu16_mask (__mmask32 __U, __m512i __A, __m512i __B)
1668 return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __A,
1669 (__v32hi) __B, 0,
1670 __U);
1673 extern __inline __mmask32
1674 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1675 _mm512_mask_cmpeq_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B)
1677 return (__mmask32) __builtin_ia32_pcmpeqw512_mask ((__v32hi) __A,
1678 (__v32hi) __B,
1679 __U);
1682 extern __inline __mmask64
1683 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1684 _mm512_cmpgt_epu8_mask (__m512i __A, __m512i __B)
1686 return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __A,
1687 (__v64qi) __B, 6,
1688 (__mmask64) -1);
1691 extern __inline __mmask64
1692 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1693 _mm512_cmpgt_epi8_mask (__m512i __A, __m512i __B)
1695 return (__mmask64) __builtin_ia32_pcmpgtb512_mask ((__v64qi) __A,
1696 (__v64qi) __B,
1697 (__mmask64) -1);
1700 extern __inline __mmask64
1701 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1702 _mm512_mask_cmpgt_epu8_mask (__mmask64 __U, __m512i __A, __m512i __B)
1704 return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __A,
1705 (__v64qi) __B, 6,
1706 __U);
1709 extern __inline __mmask64
1710 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1711 _mm512_mask_cmpgt_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B)
1713 return (__mmask64) __builtin_ia32_pcmpgtb512_mask ((__v64qi) __A,
1714 (__v64qi) __B,
1715 __U);
1718 extern __inline __mmask32
1719 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1720 _mm512_cmpgt_epu16_mask (__m512i __A, __m512i __B)
1722 return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __A,
1723 (__v32hi) __B, 6,
1724 (__mmask32) -1);
1727 extern __inline __mmask32
1728 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1729 _mm512_cmpgt_epi16_mask (__m512i __A, __m512i __B)
1731 return (__mmask32) __builtin_ia32_pcmpgtw512_mask ((__v32hi) __A,
1732 (__v32hi) __B,
1733 (__mmask32) -1);
1736 extern __inline __mmask32
1737 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1738 _mm512_mask_cmpgt_epu16_mask (__mmask32 __U, __m512i __A, __m512i __B)
1740 return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __A,
1741 (__v32hi) __B, 6,
1742 __U);
1745 extern __inline __mmask32
1746 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1747 _mm512_mask_cmpgt_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B)
1749 return (__mmask32) __builtin_ia32_pcmpgtw512_mask ((__v32hi) __A,
1750 (__v32hi) __B,
1751 __U);
1754 extern __inline __mmask64
1755 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1756 _mm512_movepi8_mask (__m512i __A)
1758 return (__mmask64) __builtin_ia32_cvtb2mask512 ((__v64qi) __A);
1761 extern __inline __mmask32
1762 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1763 _mm512_movepi16_mask (__m512i __A)
1765 return (__mmask32) __builtin_ia32_cvtw2mask512 ((__v32hi) __A);
1768 extern __inline __m512i
1769 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1770 _mm512_movm_epi8 (__mmask64 __A)
1772 return (__m512i) __builtin_ia32_cvtmask2b512 (__A);
1775 extern __inline __m512i
1776 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1777 _mm512_movm_epi16 (__mmask32 __A)
1779 return (__m512i) __builtin_ia32_cvtmask2w512 (__A);
1782 extern __inline __mmask64
1783 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1784 _mm512_test_epi8_mask (__m512i __A, __m512i __B)
1786 return (__mmask64) __builtin_ia32_ptestmb512 ((__v64qi) __A,
1787 (__v64qi) __B,
1788 (__mmask64) -1);
1791 extern __inline __mmask64
1792 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1793 _mm512_mask_test_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B)
1795 return (__mmask64) __builtin_ia32_ptestmb512 ((__v64qi) __A,
1796 (__v64qi) __B, __U);
1799 extern __inline __mmask32
1800 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1801 _mm512_test_epi16_mask (__m512i __A, __m512i __B)
1803 return (__mmask32) __builtin_ia32_ptestmw512 ((__v32hi) __A,
1804 (__v32hi) __B,
1805 (__mmask32) -1);
1808 extern __inline __mmask32
1809 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1810 _mm512_mask_test_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B)
1812 return (__mmask32) __builtin_ia32_ptestmw512 ((__v32hi) __A,
1813 (__v32hi) __B, __U);
1816 extern __inline __mmask64
1817 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1818 _mm512_testn_epi8_mask (__m512i __A, __m512i __B)
1820 return (__mmask64) __builtin_ia32_ptestnmb512 ((__v64qi) __A,
1821 (__v64qi) __B,
1822 (__mmask64) -1);
1825 extern __inline __mmask64
1826 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1827 _mm512_mask_testn_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B)
1829 return (__mmask64) __builtin_ia32_ptestnmb512 ((__v64qi) __A,
1830 (__v64qi) __B, __U);
1833 extern __inline __mmask32
1834 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1835 _mm512_testn_epi16_mask (__m512i __A, __m512i __B)
1837 return (__mmask32) __builtin_ia32_ptestnmw512 ((__v32hi) __A,
1838 (__v32hi) __B,
1839 (__mmask32) -1);
1842 extern __inline __mmask32
1843 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1844 _mm512_mask_testn_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B)
1846 return (__mmask32) __builtin_ia32_ptestnmw512 ((__v32hi) __A,
1847 (__v32hi) __B, __U);
1850 extern __inline __m512i
1851 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1852 _mm512_shuffle_epi8 (__m512i __A, __m512i __B)
1854 return (__m512i) __builtin_ia32_pshufb512_mask ((__v64qi) __A,
1855 (__v64qi) __B,
1856 (__v64qi)
1857 _mm512_setzero_si512 (),
1858 (__mmask64) -1);
1861 extern __inline __m512i
1862 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1863 _mm512_mask_shuffle_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
1864 __m512i __B)
1866 return (__m512i) __builtin_ia32_pshufb512_mask ((__v64qi) __A,
1867 (__v64qi) __B,
1868 (__v64qi) __W,
1869 (__mmask64) __U);
1872 extern __inline __m512i
1873 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1874 _mm512_maskz_shuffle_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
1876 return (__m512i) __builtin_ia32_pshufb512_mask ((__v64qi) __A,
1877 (__v64qi) __B,
1878 (__v64qi)
1879 _mm512_setzero_si512 (),
1880 (__mmask64) __U);
1883 extern __inline __m512i
1884 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1885 _mm512_min_epu16 (__m512i __A, __m512i __B)
1887 return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A,
1888 (__v32hi) __B,
1889 (__v32hi)
1890 _mm512_setzero_si512 (),
1891 (__mmask32) -1);
1894 extern __inline __m512i
1895 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1896 _mm512_maskz_min_epu16 (__mmask32 __M, __m512i __A, __m512i __B)
1898 return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A,
1899 (__v32hi) __B,
1900 (__v32hi)
1901 _mm512_setzero_si512 (),
1902 (__mmask32) __M);
1905 extern __inline __m512i
1906 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1907 _mm512_mask_min_epu16 (__m512i __W, __mmask32 __M, __m512i __A,
1908 __m512i __B)
1910 return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A,
1911 (__v32hi) __B,
1912 (__v32hi) __W,
1913 (__mmask32) __M);
1916 extern __inline __m512i
1917 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1918 _mm512_min_epi16 (__m512i __A, __m512i __B)
1920 return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A,
1921 (__v32hi) __B,
1922 (__v32hi)
1923 _mm512_setzero_si512 (),
1924 (__mmask32) -1);
1927 extern __inline __m512i
1928 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1929 _mm512_maskz_min_epi16 (__mmask32 __M, __m512i __A, __m512i __B)
1931 return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A,
1932 (__v32hi) __B,
1933 (__v32hi)
1934 _mm512_setzero_si512 (),
1935 (__mmask32) __M);
1938 extern __inline __m512i
1939 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1940 _mm512_mask_min_epi16 (__m512i __W, __mmask32 __M, __m512i __A,
1941 __m512i __B)
1943 return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A,
1944 (__v32hi) __B,
1945 (__v32hi) __W,
1946 (__mmask32) __M);
1949 extern __inline __m512i
1950 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1951 _mm512_max_epu8 (__m512i __A, __m512i __B)
1953 return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A,
1954 (__v64qi) __B,
1955 (__v64qi)
1956 _mm512_setzero_si512 (),
1957 (__mmask64) -1);
1960 extern __inline __m512i
1961 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1962 _mm512_maskz_max_epu8 (__mmask64 __M, __m512i __A, __m512i __B)
1964 return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A,
1965 (__v64qi) __B,
1966 (__v64qi)
1967 _mm512_setzero_si512 (),
1968 (__mmask64) __M);
1971 extern __inline __m512i
1972 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1973 _mm512_mask_max_epu8 (__m512i __W, __mmask64 __M, __m512i __A,
1974 __m512i __B)
1976 return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A,
1977 (__v64qi) __B,
1978 (__v64qi) __W,
1979 (__mmask64) __M);
1982 extern __inline __m512i
1983 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1984 _mm512_max_epi8 (__m512i __A, __m512i __B)
1986 return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A,
1987 (__v64qi) __B,
1988 (__v64qi)
1989 _mm512_setzero_si512 (),
1990 (__mmask64) -1);
1993 extern __inline __m512i
1994 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1995 _mm512_maskz_max_epi8 (__mmask64 __M, __m512i __A, __m512i __B)
1997 return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A,
1998 (__v64qi) __B,
1999 (__v64qi)
2000 _mm512_setzero_si512 (),
2001 (__mmask64) __M);
2004 extern __inline __m512i
2005 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2006 _mm512_mask_max_epi8 (__m512i __W, __mmask64 __M, __m512i __A,
2007 __m512i __B)
2009 return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A,
2010 (__v64qi) __B,
2011 (__v64qi) __W,
2012 (__mmask64) __M);
2015 extern __inline __m512i
2016 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2017 _mm512_min_epu8 (__m512i __A, __m512i __B)
2019 return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A,
2020 (__v64qi) __B,
2021 (__v64qi)
2022 _mm512_setzero_si512 (),
2023 (__mmask64) -1);
2026 extern __inline __m512i
2027 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2028 _mm512_maskz_min_epu8 (__mmask64 __M, __m512i __A, __m512i __B)
2030 return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A,
2031 (__v64qi) __B,
2032 (__v64qi)
2033 _mm512_setzero_si512 (),
2034 (__mmask64) __M);
2037 extern __inline __m512i
2038 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2039 _mm512_mask_min_epu8 (__m512i __W, __mmask64 __M, __m512i __A,
2040 __m512i __B)
2042 return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A,
2043 (__v64qi) __B,
2044 (__v64qi) __W,
2045 (__mmask64) __M);
2048 extern __inline __m512i
2049 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2050 _mm512_min_epi8 (__m512i __A, __m512i __B)
2052 return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A,
2053 (__v64qi) __B,
2054 (__v64qi)
2055 _mm512_setzero_si512 (),
2056 (__mmask64) -1);
2059 extern __inline __m512i
2060 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2061 _mm512_maskz_min_epi8 (__mmask64 __M, __m512i __A, __m512i __B)
2063 return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A,
2064 (__v64qi) __B,
2065 (__v64qi)
2066 _mm512_setzero_si512 (),
2067 (__mmask64) __M);
2070 extern __inline __m512i
2071 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2072 _mm512_mask_min_epi8 (__m512i __W, __mmask64 __M, __m512i __A,
2073 __m512i __B)
2075 return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A,
2076 (__v64qi) __B,
2077 (__v64qi) __W,
2078 (__mmask64) __M);
2081 extern __inline __m512i
2082 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2083 _mm512_max_epi16 (__m512i __A, __m512i __B)
2085 return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A,
2086 (__v32hi) __B,
2087 (__v32hi)
2088 _mm512_setzero_si512 (),
2089 (__mmask32) -1);
2092 extern __inline __m512i
2093 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2094 _mm512_maskz_max_epi16 (__mmask32 __M, __m512i __A, __m512i __B)
2096 return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A,
2097 (__v32hi) __B,
2098 (__v32hi)
2099 _mm512_setzero_si512 (),
2100 (__mmask32) __M);
2103 extern __inline __m512i
2104 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2105 _mm512_mask_max_epi16 (__m512i __W, __mmask32 __M, __m512i __A,
2106 __m512i __B)
2108 return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A,
2109 (__v32hi) __B,
2110 (__v32hi) __W,
2111 (__mmask32) __M);
2114 extern __inline __m512i
2115 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2116 _mm512_max_epu16 (__m512i __A, __m512i __B)
2118 return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A,
2119 (__v32hi) __B,
2120 (__v32hi)
2121 _mm512_setzero_si512 (),
2122 (__mmask32) -1);
2125 extern __inline __m512i
2126 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2127 _mm512_maskz_max_epu16 (__mmask32 __M, __m512i __A, __m512i __B)
2129 return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A,
2130 (__v32hi) __B,
2131 (__v32hi)
2132 _mm512_setzero_si512 (),
2133 (__mmask32) __M);
2136 extern __inline __m512i
2137 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2138 _mm512_mask_max_epu16 (__m512i __W, __mmask32 __M, __m512i __A,
2139 __m512i __B)
2141 return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A,
2142 (__v32hi) __B,
2143 (__v32hi) __W,
2144 (__mmask32) __M);
2147 extern __inline __m512i
2148 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2149 _mm512_sra_epi16 (__m512i __A, __m128i __B)
2151 return (__m512i) __builtin_ia32_psraw512_mask ((__v32hi) __A,
2152 (__v8hi) __B,
2153 (__v32hi)
2154 _mm512_setzero_si512 (),
2155 (__mmask32) -1);
2158 extern __inline __m512i
2159 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2160 _mm512_mask_sra_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
2161 __m128i __B)
2163 return (__m512i) __builtin_ia32_psraw512_mask ((__v32hi) __A,
2164 (__v8hi) __B,
2165 (__v32hi) __W,
2166 (__mmask32) __U);
2169 extern __inline __m512i
2170 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2171 _mm512_maskz_sra_epi16 (__mmask32 __U, __m512i __A, __m128i __B)
2173 return (__m512i) __builtin_ia32_psraw512_mask ((__v32hi) __A,
2174 (__v8hi) __B,
2175 (__v32hi)
2176 _mm512_setzero_si512 (),
2177 (__mmask32) __U);
2180 extern __inline __m512i
2181 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2182 _mm512_srav_epi16 (__m512i __A, __m512i __B)
2184 return (__m512i) __builtin_ia32_psrav32hi_mask ((__v32hi) __A,
2185 (__v32hi) __B,
2186 (__v32hi)
2187 _mm512_setzero_si512 (),
2188 (__mmask32) -1);
2191 extern __inline __m512i
2192 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2193 _mm512_mask_srav_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
2194 __m512i __B)
2196 return (__m512i) __builtin_ia32_psrav32hi_mask ((__v32hi) __A,
2197 (__v32hi) __B,
2198 (__v32hi) __W,
2199 (__mmask32) __U);
2202 extern __inline __m512i
2203 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2204 _mm512_maskz_srav_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
2206 return (__m512i) __builtin_ia32_psrav32hi_mask ((__v32hi) __A,
2207 (__v32hi) __B,
2208 (__v32hi)
2209 _mm512_setzero_si512 (),
2210 (__mmask32) __U);
2213 extern __inline __m512i
2214 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2215 _mm512_srlv_epi16 (__m512i __A, __m512i __B)
2217 return (__m512i) __builtin_ia32_psrlv32hi_mask ((__v32hi) __A,
2218 (__v32hi) __B,
2219 (__v32hi)
2220 _mm512_setzero_si512 (),
2221 (__mmask32) -1);
2224 extern __inline __m512i
2225 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2226 _mm512_mask_srlv_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
2227 __m512i __B)
2229 return (__m512i) __builtin_ia32_psrlv32hi_mask ((__v32hi) __A,
2230 (__v32hi) __B,
2231 (__v32hi) __W,
2232 (__mmask32) __U);
2235 extern __inline __m512i
2236 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2237 _mm512_maskz_srlv_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
2239 return (__m512i) __builtin_ia32_psrlv32hi_mask ((__v32hi) __A,
2240 (__v32hi) __B,
2241 (__v32hi)
2242 _mm512_setzero_si512 (),
2243 (__mmask32) __U);
2246 extern __inline __m512i
2247 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2248 _mm512_sllv_epi16 (__m512i __A, __m512i __B)
2250 return (__m512i) __builtin_ia32_psllv32hi_mask ((__v32hi) __A,
2251 (__v32hi) __B,
2252 (__v32hi)
2253 _mm512_setzero_si512 (),
2254 (__mmask32) -1);
2257 extern __inline __m512i
2258 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2259 _mm512_mask_sllv_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
2260 __m512i __B)
2262 return (__m512i) __builtin_ia32_psllv32hi_mask ((__v32hi) __A,
2263 (__v32hi) __B,
2264 (__v32hi) __W,
2265 (__mmask32) __U);
2268 extern __inline __m512i
2269 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2270 _mm512_maskz_sllv_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
2272 return (__m512i) __builtin_ia32_psllv32hi_mask ((__v32hi) __A,
2273 (__v32hi) __B,
2274 (__v32hi)
2275 _mm512_setzero_si512 (),
2276 (__mmask32) __U);
2279 extern __inline __m512i
2280 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2281 _mm512_mask_packs_epi16 (__m512i __W, __mmask64 __M, __m512i __A,
2282 __m512i __B)
2284 return (__m512i) __builtin_ia32_packsswb512_mask ((__v32hi) __A,
2285 (__v32hi) __B,
2286 (__v64qi) __W,
2287 (__mmask64) __M);
2290 extern __inline __m512i
2291 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2292 _mm512_maskz_packs_epi16 (__mmask64 __M, __m512i __A, __m512i __B)
2294 return (__m512i) __builtin_ia32_packsswb512_mask ((__v32hi) __A,
2295 (__v32hi) __B,
2296 (__v64qi)
2297 _mm512_setzero_si512 (),
2298 __M);
2301 extern __inline __m512i
2302 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2303 _mm512_packus_epi16 (__m512i __A, __m512i __B)
2305 return (__m512i) __builtin_ia32_packuswb512_mask ((__v32hi) __A,
2306 (__v32hi) __B,
2307 (__v64qi)
2308 _mm512_setzero_si512 (),
2309 (__mmask64) -1);
2312 extern __inline __m512i
2313 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2314 _mm512_mask_packus_epi16 (__m512i __W, __mmask64 __M, __m512i __A,
2315 __m512i __B)
2317 return (__m512i) __builtin_ia32_packuswb512_mask ((__v32hi) __A,
2318 (__v32hi) __B,
2319 (__v64qi) __W,
2320 (__mmask64) __M);
2323 extern __inline __m512i
2324 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2325 _mm512_maskz_packus_epi16 (__mmask64 __M, __m512i __A, __m512i __B)
2327 return (__m512i) __builtin_ia32_packuswb512_mask ((__v32hi) __A,
2328 (__v32hi) __B,
2329 (__v64qi)
2330 _mm512_setzero_si512 (),
2331 (__mmask64) __M);
2334 extern __inline __m512i
2335 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2336 _mm512_abs_epi8 (__m512i __A)
2338 return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A,
2339 (__v64qi)
2340 _mm512_setzero_si512 (),
2341 (__mmask64) -1);
2344 extern __inline __m512i
2345 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2346 _mm512_mask_abs_epi8 (__m512i __W, __mmask64 __U, __m512i __A)
2348 return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A,
2349 (__v64qi) __W,
2350 (__mmask64) __U);
2353 extern __inline __m512i
2354 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2355 _mm512_maskz_abs_epi8 (__mmask64 __U, __m512i __A)
2357 return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A,
2358 (__v64qi)
2359 _mm512_setzero_si512 (),
2360 (__mmask64) __U);
2363 extern __inline __m512i
2364 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2365 _mm512_abs_epi16 (__m512i __A)
2367 return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A,
2368 (__v32hi)
2369 _mm512_setzero_si512 (),
2370 (__mmask32) -1);
2373 extern __inline __m512i
2374 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2375 _mm512_mask_abs_epi16 (__m512i __W, __mmask32 __U, __m512i __A)
2377 return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A,
2378 (__v32hi) __W,
2379 (__mmask32) __U);
2382 extern __inline __m512i
2383 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2384 _mm512_maskz_abs_epi16 (__mmask32 __U, __m512i __A)
2386 return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A,
2387 (__v32hi)
2388 _mm512_setzero_si512 (),
2389 (__mmask32) __U);
2392 extern __inline __mmask64
2393 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2394 _mm512_mask_cmpneq_epu8_mask (__mmask64 __M, __m512i __X, __m512i __Y)
2396 return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
2397 (__v64qi) __Y, 4,
2398 (__mmask64) __M);
2401 extern __inline __mmask64
2402 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2403 _mm512_mask_cmplt_epu8_mask (__mmask64 __M, __m512i __X, __m512i __Y)
2405 return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
2406 (__v64qi) __Y, 1,
2407 (__mmask64) __M);
2410 extern __inline __mmask64
2411 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2412 _mm512_mask_cmpge_epu8_mask (__mmask64 __M, __m512i __X, __m512i __Y)
2414 return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
2415 (__v64qi) __Y, 5,
2416 (__mmask64) __M);
2419 extern __inline __mmask64
2420 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2421 _mm512_mask_cmple_epu8_mask (__mmask64 __M, __m512i __X, __m512i __Y)
2423 return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
2424 (__v64qi) __Y, 2,
2425 (__mmask64) __M);
2428 extern __inline __mmask32
2429 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2430 _mm512_mask_cmpneq_epu16_mask (__mmask32 __M, __m512i __X, __m512i __Y)
2432 return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
2433 (__v32hi) __Y, 4,
2434 (__mmask32) __M);
2437 extern __inline __mmask32
2438 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2439 _mm512_mask_cmplt_epu16_mask (__mmask32 __M, __m512i __X, __m512i __Y)
2441 return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
2442 (__v32hi) __Y, 1,
2443 (__mmask32) __M);
2446 extern __inline __mmask32
2447 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2448 _mm512_mask_cmpge_epu16_mask (__mmask32 __M, __m512i __X, __m512i __Y)
2450 return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
2451 (__v32hi) __Y, 5,
2452 (__mmask32) __M);
2455 extern __inline __mmask32
2456 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2457 _mm512_mask_cmple_epu16_mask (__mmask32 __M, __m512i __X, __m512i __Y)
2459 return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
2460 (__v32hi) __Y, 2,
2461 (__mmask32) __M);
2464 extern __inline __mmask64
2465 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2466 _mm512_mask_cmpneq_epi8_mask (__mmask64 __M, __m512i __X, __m512i __Y)
2468 return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
2469 (__v64qi) __Y, 4,
2470 (__mmask64) __M);
2473 extern __inline __mmask64
2474 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2475 _mm512_mask_cmplt_epi8_mask (__mmask64 __M, __m512i __X, __m512i __Y)
2477 return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
2478 (__v64qi) __Y, 1,
2479 (__mmask64) __M);
2482 extern __inline __mmask64
2483 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2484 _mm512_mask_cmpge_epi8_mask (__mmask64 __M, __m512i __X, __m512i __Y)
2486 return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
2487 (__v64qi) __Y, 5,
2488 (__mmask64) __M);
2491 extern __inline __mmask64
2492 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2493 _mm512_mask_cmple_epi8_mask (__mmask64 __M, __m512i __X, __m512i __Y)
2495 return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
2496 (__v64qi) __Y, 2,
2497 (__mmask64) __M);
2500 extern __inline __mmask32
2501 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2502 _mm512_mask_cmpneq_epi16_mask (__mmask32 __M, __m512i __X, __m512i __Y)
2504 return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
2505 (__v32hi) __Y, 4,
2506 (__mmask32) __M);
2509 extern __inline __mmask32
2510 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2511 _mm512_mask_cmplt_epi16_mask (__mmask32 __M, __m512i __X, __m512i __Y)
2513 return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
2514 (__v32hi) __Y, 1,
2515 (__mmask32) __M);
2518 extern __inline __mmask32
2519 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2520 _mm512_mask_cmpge_epi16_mask (__mmask32 __M, __m512i __X, __m512i __Y)
2522 return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
2523 (__v32hi) __Y, 5,
2524 (__mmask32) __M);
2527 extern __inline __mmask32
2528 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2529 _mm512_mask_cmple_epi16_mask (__mmask32 __M, __m512i __X, __m512i __Y)
2531 return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
2532 (__v32hi) __Y, 2,
2533 (__mmask32) __M);
2536 extern __inline __mmask64
2537 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2538 _mm512_cmpneq_epu8_mask (__m512i __X, __m512i __Y)
2540 return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
2541 (__v64qi) __Y, 4,
2542 (__mmask64) -1);
2545 extern __inline __mmask64
2546 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2547 _mm512_cmplt_epu8_mask (__m512i __X, __m512i __Y)
2549 return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
2550 (__v64qi) __Y, 1,
2551 (__mmask64) -1);
2554 extern __inline __mmask64
2555 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2556 _mm512_cmpge_epu8_mask (__m512i __X, __m512i __Y)
2558 return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
2559 (__v64qi) __Y, 5,
2560 (__mmask64) -1);
2563 extern __inline __mmask64
2564 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2565 _mm512_cmple_epu8_mask (__m512i __X, __m512i __Y)
2567 return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
2568 (__v64qi) __Y, 2,
2569 (__mmask64) -1);
2572 extern __inline __mmask32
2573 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2574 _mm512_cmpneq_epu16_mask (__m512i __X, __m512i __Y)
2576 return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
2577 (__v32hi) __Y, 4,
2578 (__mmask32) -1);
2581 extern __inline __mmask32
2582 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2583 _mm512_cmplt_epu16_mask (__m512i __X, __m512i __Y)
2585 return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
2586 (__v32hi) __Y, 1,
2587 (__mmask32) -1);
2590 extern __inline __mmask32
2591 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2592 _mm512_cmpge_epu16_mask (__m512i __X, __m512i __Y)
2594 return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
2595 (__v32hi) __Y, 5,
2596 (__mmask32) -1);
2599 extern __inline __mmask32
2600 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2601 _mm512_cmple_epu16_mask (__m512i __X, __m512i __Y)
2603 return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
2604 (__v32hi) __Y, 2,
2605 (__mmask32) -1);
2608 extern __inline __mmask64
2609 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2610 _mm512_cmpneq_epi8_mask (__m512i __X, __m512i __Y)
2612 return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
2613 (__v64qi) __Y, 4,
2614 (__mmask64) -1);
2617 extern __inline __mmask64
2618 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2619 _mm512_cmplt_epi8_mask (__m512i __X, __m512i __Y)
2621 return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
2622 (__v64qi) __Y, 1,
2623 (__mmask64) -1);
2626 extern __inline __mmask64
2627 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2628 _mm512_cmpge_epi8_mask (__m512i __X, __m512i __Y)
2630 return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
2631 (__v64qi) __Y, 5,
2632 (__mmask64) -1);
2635 extern __inline __mmask64
2636 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2637 _mm512_cmple_epi8_mask (__m512i __X, __m512i __Y)
2639 return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
2640 (__v64qi) __Y, 2,
2641 (__mmask64) -1);
2644 extern __inline __mmask32
2645 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2646 _mm512_cmpneq_epi16_mask (__m512i __X, __m512i __Y)
2648 return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
2649 (__v32hi) __Y, 4,
2650 (__mmask32) -1);
2653 extern __inline __mmask32
2654 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2655 _mm512_cmplt_epi16_mask (__m512i __X, __m512i __Y)
2657 return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
2658 (__v32hi) __Y, 1,
2659 (__mmask32) -1);
2662 extern __inline __mmask32
2663 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2664 _mm512_cmpge_epi16_mask (__m512i __X, __m512i __Y)
2666 return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
2667 (__v32hi) __Y, 5,
2668 (__mmask32) -1);
2671 extern __inline __mmask32
2672 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2673 _mm512_cmple_epi16_mask (__m512i __X, __m512i __Y)
2675 return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
2676 (__v32hi) __Y, 2,
2677 (__mmask32) -1);
2680 extern __inline __m512i
2681 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2682 _mm512_packs_epi32 (__m512i __A, __m512i __B)
2684 return (__m512i) __builtin_ia32_packssdw512_mask ((__v16si) __A,
2685 (__v16si) __B,
2686 (__v32hi)
2687 _mm512_setzero_si512 (),
2688 (__mmask32) -1);
2691 extern __inline __m512i
2692 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2693 _mm512_maskz_packs_epi32 (__mmask32 __M, __m512i __A, __m512i __B)
2695 return (__m512i) __builtin_ia32_packssdw512_mask ((__v16si) __A,
2696 (__v16si) __B,
2697 (__v32hi)
2698 _mm512_setzero_si512 (),
2699 __M);
2702 extern __inline __m512i
2703 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2704 _mm512_mask_packs_epi32 (__m512i __W, __mmask32 __M, __m512i __A,
2705 __m512i __B)
2707 return (__m512i) __builtin_ia32_packssdw512_mask ((__v16si) __A,
2708 (__v16si) __B,
2709 (__v32hi) __W,
2710 __M);
2713 extern __inline __m512i
2714 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2715 _mm512_packus_epi32 (__m512i __A, __m512i __B)
2717 return (__m512i) __builtin_ia32_packusdw512_mask ((__v16si) __A,
2718 (__v16si) __B,
2719 (__v32hi)
2720 _mm512_setzero_si512 (),
2721 (__mmask32) -1);
2724 extern __inline __m512i
2725 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2726 _mm512_maskz_packus_epi32 (__mmask32 __M, __m512i __A, __m512i __B)
2728 return (__m512i) __builtin_ia32_packusdw512_mask ((__v16si) __A,
2729 (__v16si) __B,
2730 (__v32hi)
2731 _mm512_setzero_si512 (),
2732 __M);
2735 extern __inline __m512i
2736 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2737 _mm512_mask_packus_epi32 (__m512i __W, __mmask32 __M, __m512i __A,
2738 __m512i __B)
2740 return (__m512i) __builtin_ia32_packusdw512_mask ((__v16si) __A,
2741 (__v16si) __B,
2742 (__v32hi) __W,
2743 __M);
2746 #ifdef __OPTIMIZE__
2747 extern __inline __mmask32
2748 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2749 _kshiftli_mask32 (__mmask32 __A, unsigned int __B)
2751 return (__mmask32) __builtin_ia32_kshiftlisi ((__mmask32) __A,
2752 (__mmask8) __B);
2755 extern __inline __mmask64
2756 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2757 _kshiftli_mask64 (__mmask64 __A, unsigned int __B)
2759 return (__mmask64) __builtin_ia32_kshiftlidi ((__mmask64) __A,
2760 (__mmask8) __B);
2763 extern __inline __mmask32
2764 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2765 _kshiftri_mask32 (__mmask32 __A, unsigned int __B)
2767 return (__mmask32) __builtin_ia32_kshiftrisi ((__mmask32) __A,
2768 (__mmask8) __B);
2771 extern __inline __mmask64
2772 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2773 _kshiftri_mask64 (__mmask64 __A, unsigned int __B)
2775 return (__mmask64) __builtin_ia32_kshiftridi ((__mmask64) __A,
2776 (__mmask8) __B);
2779 extern __inline __m512i
2780 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2781 _mm512_alignr_epi8 (__m512i __A, __m512i __B, const int __N)
2783 return (__m512i) __builtin_ia32_palignr512 ((__v8di) __A,
2784 (__v8di) __B, __N * 8);
2787 extern __inline __m512i
2788 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2789 _mm512_mask_alignr_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
2790 __m512i __B, const int __N)
2792 return (__m512i) __builtin_ia32_palignr512_mask ((__v8di) __A,
2793 (__v8di) __B,
2794 __N * 8,
2795 (__v8di) __W,
2796 (__mmask64) __U);
2799 extern __inline __m512i
2800 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2801 _mm512_maskz_alignr_epi8 (__mmask64 __U, __m512i __A, __m512i __B,
2802 const int __N)
2804 return (__m512i) __builtin_ia32_palignr512_mask ((__v8di) __A,
2805 (__v8di) __B,
2806 __N * 8,
2807 (__v8di)
2808 _mm512_setzero_si512 (),
2809 (__mmask64) __U);
2812 extern __inline __m512i
2813 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2814 _mm512_dbsad_epu8 (__m512i __A, __m512i __B, const int __imm)
2816 return (__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi) __A,
2817 (__v64qi) __B,
2818 __imm,
2819 (__v32hi)
2820 _mm512_setzero_si512 (),
2821 (__mmask32) -1);
2824 extern __inline __m512i
2825 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2826 _mm512_mask_dbsad_epu8 (__m512i __W, __mmask32 __U, __m512i __A,
2827 __m512i __B, const int __imm)
2829 return (__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi) __A,
2830 (__v64qi) __B,
2831 __imm,
2832 (__v32hi) __W,
2833 (__mmask32) __U);
2836 extern __inline __m512i
2837 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2838 _mm512_maskz_dbsad_epu8 (__mmask32 __U, __m512i __A, __m512i __B,
2839 const int __imm)
2841 return (__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi) __A,
2842 (__v64qi) __B,
2843 __imm,
2844 (__v32hi)
2845 _mm512_setzero_si512 (),
2846 (__mmask32) __U);
2849 extern __inline __m512i
2850 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2851 _mm512_srli_epi16 (__m512i __A, const int __imm)
2853 return (__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi) __A, __imm,
2854 (__v32hi)
2855 _mm512_setzero_si512 (),
2856 (__mmask32) -1);
2859 extern __inline __m512i
2860 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2861 _mm512_mask_srli_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
2862 const int __imm)
2864 return (__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi) __A, __imm,
2865 (__v32hi) __W,
2866 (__mmask32) __U);
2869 extern __inline __m512i
2870 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2871 _mm512_maskz_srli_epi16 (__mmask32 __U, __m512i __A, const int __imm)
2873 return (__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi) __A, __imm,
2874 (__v32hi)
2875 _mm512_setzero_si512 (),
2876 (__mmask32) __U);
2879 extern __inline __m512i
2880 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2881 _mm512_slli_epi16 (__m512i __A, const int __B)
2883 return (__m512i) __builtin_ia32_psllwi512_mask ((__v32hi) __A, __B,
2884 (__v32hi)
2885 _mm512_setzero_si512 (),
2886 (__mmask32) -1);
2889 extern __inline __m512i
2890 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2891 _mm512_mask_slli_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
2892 const int __B)
2894 return (__m512i) __builtin_ia32_psllwi512_mask ((__v32hi) __A, __B,
2895 (__v32hi) __W,
2896 (__mmask32) __U);
2899 extern __inline __m512i
2900 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2901 _mm512_maskz_slli_epi16 (__mmask32 __U, __m512i __A, const int __B)
2903 return (__m512i) __builtin_ia32_psllwi512_mask ((__v32hi) __A, __B,
2904 (__v32hi)
2905 _mm512_setzero_si512 (),
2906 (__mmask32) __U);
2909 extern __inline __m512i
2910 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2911 _mm512_shufflehi_epi16 (__m512i __A, const int __imm)
2913 return (__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi) __A,
2914 __imm,
2915 (__v32hi)
2916 _mm512_setzero_si512 (),
2917 (__mmask32) -1);
2920 extern __inline __m512i
2921 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2922 _mm512_mask_shufflehi_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
2923 const int __imm)
2925 return (__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi) __A,
2926 __imm,
2927 (__v32hi) __W,
2928 (__mmask32) __U);
2931 extern __inline __m512i
2932 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2933 _mm512_maskz_shufflehi_epi16 (__mmask32 __U, __m512i __A,
2934 const int __imm)
2936 return (__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi) __A,
2937 __imm,
2938 (__v32hi)
2939 _mm512_setzero_si512 (),
2940 (__mmask32) __U);
2943 extern __inline __m512i
2944 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2945 _mm512_shufflelo_epi16 (__m512i __A, const int __imm)
2947 return (__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi) __A,
2948 __imm,
2949 (__v32hi)
2950 _mm512_setzero_si512 (),
2951 (__mmask32) -1);
2954 extern __inline __m512i
2955 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2956 _mm512_mask_shufflelo_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
2957 const int __imm)
2959 return (__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi) __A,
2960 __imm,
2961 (__v32hi) __W,
2962 (__mmask32) __U);
2965 extern __inline __m512i
2966 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2967 _mm512_maskz_shufflelo_epi16 (__mmask32 __U, __m512i __A,
2968 const int __imm)
2970 return (__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi) __A,
2971 __imm,
2972 (__v32hi)
2973 _mm512_setzero_si512 (),
2974 (__mmask32) __U);
2977 extern __inline __m512i
2978 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2979 _mm512_srai_epi16 (__m512i __A, const int __imm)
2981 return (__m512i) __builtin_ia32_psrawi512_mask ((__v32hi) __A, __imm,
2982 (__v32hi)
2983 _mm512_setzero_si512 (),
2984 (__mmask32) -1);
2987 extern __inline __m512i
2988 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2989 _mm512_mask_srai_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
2990 const int __imm)
2992 return (__m512i) __builtin_ia32_psrawi512_mask ((__v32hi) __A, __imm,
2993 (__v32hi) __W,
2994 (__mmask32) __U);
2997 extern __inline __m512i
2998 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2999 _mm512_maskz_srai_epi16 (__mmask32 __U, __m512i __A, const int __imm)
3001 return (__m512i) __builtin_ia32_psrawi512_mask ((__v32hi) __A, __imm,
3002 (__v32hi)
3003 _mm512_setzero_si512 (),
3004 (__mmask32) __U);
3007 extern __inline __m512i
3008 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3009 _mm512_mask_blend_epi16 (__mmask32 __U, __m512i __A, __m512i __W)
3011 return (__m512i) __builtin_ia32_blendmw_512_mask ((__v32hi) __A,
3012 (__v32hi) __W,
3013 (__mmask32) __U);
3016 extern __inline __m512i
3017 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3018 _mm512_mask_blend_epi8 (__mmask64 __U, __m512i __A, __m512i __W)
3020 return (__m512i) __builtin_ia32_blendmb_512_mask ((__v64qi) __A,
3021 (__v64qi) __W,
3022 (__mmask64) __U);
3025 extern __inline __mmask32
3026 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3027 _mm512_mask_cmp_epi16_mask (__mmask32 __U, __m512i __X, __m512i __Y,
3028 const int __P)
3030 return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
3031 (__v32hi) __Y, __P,
3032 (__mmask32) __U);
3035 extern __inline __mmask32
3036 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3037 _mm512_cmp_epi16_mask (__m512i __X, __m512i __Y, const int __P)
3039 return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
3040 (__v32hi) __Y, __P,
3041 (__mmask32) -1);
3044 extern __inline __mmask64
3045 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3046 _mm512_mask_cmp_epi8_mask (__mmask64 __U, __m512i __X, __m512i __Y,
3047 const int __P)
3049 return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
3050 (__v64qi) __Y, __P,
3051 (__mmask64) __U);
3054 extern __inline __mmask64
3055 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3056 _mm512_cmp_epi8_mask (__m512i __X, __m512i __Y, const int __P)
3058 return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
3059 (__v64qi) __Y, __P,
3060 (__mmask64) -1);
3063 extern __inline __mmask32
3064 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3065 _mm512_mask_cmp_epu16_mask (__mmask32 __U, __m512i __X, __m512i __Y,
3066 const int __P)
3068 return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
3069 (__v32hi) __Y, __P,
3070 (__mmask32) __U);
3073 extern __inline __mmask32
3074 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3075 _mm512_cmp_epu16_mask (__m512i __X, __m512i __Y, const int __P)
3077 return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
3078 (__v32hi) __Y, __P,
3079 (__mmask32) -1);
3082 extern __inline __mmask64
3083 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3084 _mm512_mask_cmp_epu8_mask (__mmask64 __U, __m512i __X, __m512i __Y,
3085 const int __P)
3087 return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
3088 (__v64qi) __Y, __P,
3089 (__mmask64) __U);
3092 extern __inline __mmask64
3093 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3094 _mm512_cmp_epu8_mask (__m512i __X, __m512i __Y, const int __P)
3096 return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
3097 (__v64qi) __Y, __P,
3098 (__mmask64) -1);
3101 extern __inline __m512i
3102 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3103 _mm512_bslli_epi128 (__m512i __A, const int __N)
3105 return (__m512i) __builtin_ia32_pslldq512 (__A, __N * 8);
3108 extern __inline __m512i
3109 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3110 _mm512_bsrli_epi128 (__m512i __A, const int __N)
3112 return (__m512i) __builtin_ia32_psrldq512 (__A, __N * 8);
3115 #else
3116 #define _kshiftli_mask32(X, Y) \
3117 ((__mmask32) __builtin_ia32_kshiftlisi ((__mmask32)(X), (__mmask8)(Y)))
3119 #define _kshiftli_mask64(X, Y) \
3120 ((__mmask64) __builtin_ia32_kshiftlidi ((__mmask64)(X), (__mmask8)(Y)))
3122 #define _kshiftri_mask32(X, Y) \
3123 ((__mmask32) __builtin_ia32_kshiftrisi ((__mmask32)(X), (__mmask8)(Y)))
3125 #define _kshiftri_mask64(X, Y) \
3126 ((__mmask64) __builtin_ia32_kshiftridi ((__mmask64)(X), (__mmask8)(Y)))
3128 #define _mm512_alignr_epi8(X, Y, N) \
3129 ((__m512i) __builtin_ia32_palignr512 ((__v8di)(__m512i)(X), \
3130 (__v8di)(__m512i)(Y), \
3131 (int)(N * 8)))
3133 #define _mm512_mask_alignr_epi8(W, U, X, Y, N) \
3134 ((__m512i) __builtin_ia32_palignr512_mask ((__v8di)(__m512i)(X), \
3135 (__v8di)(__m512i)(Y), (int)(N * 8), \
3136 (__v8di)(__m512i)(W), (__mmask64)(U)))
3138 #define _mm512_maskz_alignr_epi8(U, X, Y, N) \
3139 ((__m512i) __builtin_ia32_palignr512_mask ((__v8di)(__m512i)(X), \
3140 (__v8di)(__m512i)(Y), (int)(N * 8), \
3141 (__v8di)(__m512i) \
3142 _mm512_setzero_si512 (), \
3143 (__mmask64)(U)))
3145 #define _mm512_dbsad_epu8(X, Y, C) \
3146 ((__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi)(__m512i) (X), \
3147 (__v64qi)(__m512i) (Y), (int) (C), \
3148 (__v32hi)(__m512i) \
3149 _mm512_setzero_si512 (), \
3150 (__mmask32)-1))
3152 #define _mm512_mask_dbsad_epu8(W, U, X, Y, C) \
3153 ((__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi)(__m512i) (X), \
3154 (__v64qi)(__m512i) (Y), (int) (C), \
3155 (__v32hi)(__m512i)(W), \
3156 (__mmask32)(U)))
3158 #define _mm512_maskz_dbsad_epu8(U, X, Y, C) \
3159 ((__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi)(__m512i) (X), \
3160 (__v64qi)(__m512i) (Y), (int) (C), \
3161 (__v32hi)(__m512i) \
3162 _mm512_setzero_si512 (), \
3163 (__mmask32)(U)))
3165 #define _mm512_srli_epi16(A, B) \
3166 ((__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi)(__m512i)(A), \
3167 (int)(B), (__v32hi)_mm512_setzero_si512 (), (__mmask32)-1))
3169 #define _mm512_mask_srli_epi16(W, U, A, B) \
3170 ((__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi)(__m512i)(A), \
3171 (int)(B), (__v32hi)(__m512i)(W), (__mmask32)(U)))
3173 #define _mm512_maskz_srli_epi16(U, A, B) \
3174 ((__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi)(__m512i)(A), \
3175 (int)(B), (__v32hi)_mm512_setzero_si512 (), (__mmask32)(U)))
3177 #define _mm512_slli_epi16(X, C) \
3178 ((__m512i)__builtin_ia32_psllwi512_mask ((__v32hi)(__m512i)(X), (int)(C),\
3179 (__v32hi)(__m512i)_mm512_setzero_si512 (), \
3180 (__mmask32)-1))
3182 #define _mm512_mask_slli_epi16(W, U, X, C) \
3183 ((__m512i)__builtin_ia32_psllwi512_mask ((__v32hi)(__m512i)(X), (int)(C),\
3184 (__v32hi)(__m512i)(W),\
3185 (__mmask32)(U)))
3187 #define _mm512_maskz_slli_epi16(U, X, C) \
3188 ((__m512i)__builtin_ia32_psllwi512_mask ((__v32hi)(__m512i)(X), (int)(C),\
3189 (__v32hi)(__m512i)_mm512_setzero_si512 (), \
3190 (__mmask32)(U)))
3192 #define _mm512_shufflehi_epi16(A, B) \
3193 ((__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi)(__m512i)(A), (int)(B), \
3194 (__v32hi)(__m512i) \
3195 _mm512_setzero_si512 (), \
3196 (__mmask32)-1))
3198 #define _mm512_mask_shufflehi_epi16(W, U, A, B) \
3199 ((__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi)(__m512i)(A), (int)(B), \
3200 (__v32hi)(__m512i)(W), \
3201 (__mmask32)(U)))
3203 #define _mm512_maskz_shufflehi_epi16(U, A, B) \
3204 ((__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi)(__m512i)(A), (int)(B), \
3205 (__v32hi)(__m512i) \
3206 _mm512_setzero_si512 (), \
3207 (__mmask32)(U)))
3209 #define _mm512_shufflelo_epi16(A, B) \
3210 ((__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi)(__m512i)(A), (int)(B), \
3211 (__v32hi)(__m512i) \
3212 _mm512_setzero_si512 (), \
3213 (__mmask32)-1))
3215 #define _mm512_mask_shufflelo_epi16(W, U, A, B) \
3216 ((__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi)(__m512i)(A), (int)(B), \
3217 (__v32hi)(__m512i)(W), \
3218 (__mmask32)(U)))
3220 #define _mm512_maskz_shufflelo_epi16(U, A, B) \
3221 ((__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi)(__m512i)(A), (int)(B), \
3222 (__v32hi)(__m512i) \
3223 _mm512_setzero_si512 (), \
3224 (__mmask32)(U)))
3226 #define _mm512_srai_epi16(A, B) \
3227 ((__m512i) __builtin_ia32_psrawi512_mask ((__v32hi)(__m512i)(A), \
3228 (int)(B), (__v32hi)_mm512_setzero_si512 (), (__mmask32)-1))
3230 #define _mm512_mask_srai_epi16(W, U, A, B) \
3231 ((__m512i) __builtin_ia32_psrawi512_mask ((__v32hi)(__m512i)(A), \
3232 (int)(B), (__v32hi)(__m512i)(W), (__mmask32)(U)))
3234 #define _mm512_maskz_srai_epi16(U, A, B) \
3235 ((__m512i) __builtin_ia32_psrawi512_mask ((__v32hi)(__m512i)(A), \
3236 (int)(B), (__v32hi)_mm512_setzero_si512 (), (__mmask32)(U)))
3238 #define _mm512_mask_blend_epi16(__U, __A, __W) \
3239 ((__m512i) __builtin_ia32_blendmw_512_mask ((__v32hi) (__A), \
3240 (__v32hi) (__W), \
3241 (__mmask32) (__U)))
3243 #define _mm512_mask_blend_epi8(__U, __A, __W) \
3244 ((__m512i) __builtin_ia32_blendmb_512_mask ((__v64qi) (__A), \
3245 (__v64qi) (__W), \
3246 (__mmask64) (__U)))
3248 #define _mm512_cmp_epi16_mask(X, Y, P) \
3249 ((__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi)(__m512i)(X), \
3250 (__v32hi)(__m512i)(Y), (int)(P),\
3251 (__mmask32)(-1)))
3253 #define _mm512_cmp_epi8_mask(X, Y, P) \
3254 ((__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi)(__m512i)(X), \
3255 (__v64qi)(__m512i)(Y), (int)(P),\
3256 (__mmask64)(-1)))
3258 #define _mm512_cmp_epu16_mask(X, Y, P) \
3259 ((__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi)(__m512i)(X), \
3260 (__v32hi)(__m512i)(Y), (int)(P),\
3261 (__mmask32)(-1)))
3263 #define _mm512_cmp_epu8_mask(X, Y, P) \
3264 ((__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi)(__m512i)(X), \
3265 (__v64qi)(__m512i)(Y), (int)(P),\
3266 (__mmask64)(-1)))
3268 #define _mm512_mask_cmp_epi16_mask(M, X, Y, P) \
3269 ((__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi)(__m512i)(X), \
3270 (__v32hi)(__m512i)(Y), (int)(P),\
3271 (__mmask32)(M)))
3273 #define _mm512_mask_cmp_epi8_mask(M, X, Y, P) \
3274 ((__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi)(__m512i)(X), \
3275 (__v64qi)(__m512i)(Y), (int)(P),\
3276 (__mmask64)(M)))
3278 #define _mm512_mask_cmp_epu16_mask(M, X, Y, P) \
3279 ((__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi)(__m512i)(X), \
3280 (__v32hi)(__m512i)(Y), (int)(P),\
3281 (__mmask32)(M)))
3283 #define _mm512_mask_cmp_epu8_mask(M, X, Y, P) \
3284 ((__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi)(__m512i)(X), \
3285 (__v64qi)(__m512i)(Y), (int)(P),\
3286 (__mmask64)(M)))
3288 #define _mm512_bslli_epi128(A, N) \
3289 ((__m512i)__builtin_ia32_pslldq512 ((__m512i)(A), (int)(N) * 8))
3291 #define _mm512_bsrli_epi128(A, N) \
3292 ((__m512i)__builtin_ia32_psrldq512 ((__m512i)(A), (int)(N) * 8))
3294 #endif
3296 #ifdef __DISABLE_AVX512BW__
3297 #undef __DISABLE_AVX512BW__
3298 #pragma GCC pop_options
3299 #endif /* __DISABLE_AVX512BW__ */
3301 #endif /* _AVX512BWINTRIN_H_INCLUDED */