]>
git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/config/i386/avx512bwintrin.h
1 /* Copyright (C) 2014-2016 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)
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."
28 #ifndef _AVX512BWINTRIN_H_INCLUDED
29 #define _AVX512BWINTRIN_H_INCLUDED
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 __m512i
44 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
45 _mm512_setzero_qi (void)
47 return __extension__ (__m512i
)(__v64qi
){ 0, 0, 0, 0, 0, 0, 0, 0,
48 0, 0, 0, 0, 0, 0, 0, 0,
49 0, 0, 0, 0, 0, 0, 0, 0,
50 0, 0, 0, 0, 0, 0, 0, 0,
51 0, 0, 0, 0, 0, 0, 0, 0,
52 0, 0, 0, 0, 0, 0, 0, 0,
53 0, 0, 0, 0, 0, 0, 0, 0,
54 0, 0, 0, 0, 0, 0, 0, 0 };
57 extern __inline __m512i
58 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
59 _mm512_setzero_hi (void)
61 return __extension__ (__m512i
)(__v32hi
){ 0, 0, 0, 0, 0, 0, 0, 0,
62 0, 0, 0, 0, 0, 0, 0, 0,
63 0, 0, 0, 0, 0, 0, 0, 0,
64 0, 0, 0, 0, 0, 0, 0, 0 };
67 extern __inline __m512i
68 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
69 _mm512_mask_mov_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
)
71 return (__m512i
) __builtin_ia32_movdquhi512_mask ((__v32hi
) __A
,
76 extern __inline __m512i
77 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
78 _mm512_maskz_mov_epi16 (__mmask32 __U
, __m512i __A
)
80 return (__m512i
) __builtin_ia32_movdquhi512_mask ((__v32hi
) __A
,
86 extern __inline __m512i
87 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
88 _mm512_mask_loadu_epi16 (__m512i __W
, __mmask32 __U
, void const *__P
)
90 return (__m512i
) __builtin_ia32_loaddquhi512_mask ((__v32hi
*) __P
,
95 extern __inline __m512i
96 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
97 _mm512_maskz_loadu_epi16 (__mmask32 __U
, void const *__P
)
99 return (__m512i
) __builtin_ia32_loaddquhi512_mask ((__v32hi
*) __P
,
101 _mm512_setzero_hi (),
106 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
107 _mm512_mask_storeu_epi16 (void *__P
, __mmask32 __U
, __m512i __A
)
109 __builtin_ia32_storedquhi512_mask ((__v32hi
*) __P
,
114 extern __inline __m512i
115 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
116 _mm512_mask_mov_epi8 (__m512i __W
, __mmask64 __U
, __m512i __A
)
118 return (__m512i
) __builtin_ia32_movdquqi512_mask ((__v64qi
) __A
,
123 extern __inline __m512i
124 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
125 _mm512_maskz_mov_epi8 (__mmask64 __U
, __m512i __A
)
127 return (__m512i
) __builtin_ia32_movdquqi512_mask ((__v64qi
) __A
,
129 _mm512_setzero_hi (),
133 extern __inline __mmask32
134 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
135 _mm512_kunpackw (__mmask32 __A
, __mmask32 __B
)
137 return (__mmask32
) __builtin_ia32_kunpcksi ((__mmask32
) __A
,
141 extern __inline __mmask64
142 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
143 _mm512_kunpackd (__mmask64 __A
, __mmask64 __B
)
145 return (__mmask64
) __builtin_ia32_kunpckdi ((__mmask64
) __A
,
149 extern __inline __m512i
150 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
151 _mm512_mask_loadu_epi8 (__m512i __W
, __mmask64 __U
, void const *__P
)
153 return (__m512i
) __builtin_ia32_loaddquqi512_mask ((__v64qi
*) __P
,
158 extern __inline __m512i
159 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
160 _mm512_maskz_loadu_epi8 (__mmask64 __U
, void const *__P
)
162 return (__m512i
) __builtin_ia32_loaddquqi512_mask ((__v64qi
*) __P
,
164 _mm512_setzero_hi (),
169 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
170 _mm512_mask_storeu_epi8 (void *__P
, __mmask64 __U
, __m512i __A
)
172 __builtin_ia32_storedquqi512_mask ((__v64qi
*) __P
,
177 extern __inline __m512i
178 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
179 _mm512_sad_epu8 (__m512i __A
, __m512i __B
)
181 return (__m512i
) __builtin_ia32_psadbw512 ((__v64qi
) __A
,
185 extern __inline __m256i
186 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
187 _mm512_cvtepi16_epi8 (__m512i __A
)
189 return (__m256i
) __builtin_ia32_pmovwb512_mask ((__v32hi
) __A
,
190 (__v32qi
) _mm256_undefined_si256(),
194 extern __inline __m256i
195 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
196 _mm512_mask_cvtepi16_epi8 (__m256i __O
, __mmask32 __M
, __m512i __A
)
198 return (__m256i
) __builtin_ia32_pmovwb512_mask ((__v32hi
) __A
,
202 extern __inline __m256i
203 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
204 _mm512_maskz_cvtepi16_epi8 (__mmask32 __M
, __m512i __A
)
206 return (__m256i
) __builtin_ia32_pmovwb512_mask ((__v32hi
) __A
,
208 _mm256_setzero_si256 (),
212 extern __inline __m256i
213 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
214 _mm512_cvtsepi16_epi8 (__m512i __A
)
216 return (__m256i
) __builtin_ia32_pmovswb512_mask ((__v32hi
) __A
,
217 (__v32qi
)_mm256_undefined_si256(),
221 extern __inline __m256i
222 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
223 _mm512_mask_cvtsepi16_epi8 (__m256i __O
, __mmask32 __M
, __m512i __A
)
225 return (__m256i
) __builtin_ia32_pmovswb512_mask ((__v32hi
) __A
,
230 extern __inline __m256i
231 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
232 _mm512_maskz_cvtsepi16_epi8 (__mmask32 __M
, __m512i __A
)
234 return (__m256i
) __builtin_ia32_pmovswb512_mask ((__v32hi
) __A
,
236 _mm256_setzero_si256 (),
240 extern __inline __m256i
241 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
242 _mm512_cvtusepi16_epi8 (__m512i __A
)
244 return (__m256i
) __builtin_ia32_pmovuswb512_mask ((__v32hi
) __A
,
245 (__v32qi
)_mm256_undefined_si256(),
249 extern __inline __m256i
250 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
251 _mm512_mask_cvtusepi16_epi8 (__m256i __O
, __mmask32 __M
, __m512i __A
)
253 return (__m256i
) __builtin_ia32_pmovuswb512_mask ((__v32hi
) __A
,
258 extern __inline __m256i
259 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
260 _mm512_maskz_cvtusepi16_epi8 (__mmask32 __M
, __m512i __A
)
262 return (__m256i
) __builtin_ia32_pmovuswb512_mask ((__v32hi
) __A
,
264 _mm256_setzero_si256 (),
268 extern __inline __m512i
269 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
270 _mm512_broadcastb_epi8 (__m128i __A
)
272 return (__m512i
) __builtin_ia32_pbroadcastb512_mask ((__v16qi
) __A
,
273 (__v64qi
)_mm512_undefined_si512(),
278 extern __inline __m512i
279 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
280 _mm512_mask_broadcastb_epi8 (__m512i __O
, __mmask64 __M
, __m128i __A
)
282 return (__m512i
) __builtin_ia32_pbroadcastb512_mask ((__v16qi
) __A
,
287 extern __inline __m512i
288 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
289 _mm512_maskz_broadcastb_epi8 (__mmask64 __M
, __m128i __A
)
291 return (__m512i
) __builtin_ia32_pbroadcastb512_mask ((__v16qi
) __A
,
297 extern __inline __m512i
298 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
299 _mm512_mask_set1_epi8 (__m512i __O
, __mmask64 __M
, char __A
)
301 return (__m512i
) __builtin_ia32_pbroadcastb512_gpr_mask (__A
,
306 extern __inline __m512i
307 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
308 _mm512_maskz_set1_epi8 (__mmask64 __M
, char __A
)
310 return (__m512i
) __builtin_ia32_pbroadcastb512_gpr_mask (__A
,
316 extern __inline __m512i
317 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
318 _mm512_broadcastw_epi16 (__m128i __A
)
320 return (__m512i
) __builtin_ia32_pbroadcastw512_mask ((__v8hi
) __A
,
321 (__v32hi
)_mm512_undefined_si512(),
325 extern __inline __m512i
326 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
327 _mm512_mask_broadcastw_epi16 (__m512i __O
, __mmask32 __M
, __m128i __A
)
329 return (__m512i
) __builtin_ia32_pbroadcastw512_mask ((__v8hi
) __A
,
334 extern __inline __m512i
335 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
336 _mm512_maskz_broadcastw_epi16 (__mmask32 __M
, __m128i __A
)
338 return (__m512i
) __builtin_ia32_pbroadcastw512_mask ((__v8hi
) __A
,
344 extern __inline __m512i
345 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
346 _mm512_mask_set1_epi16 (__m512i __O
, __mmask32 __M
, short __A
)
348 return (__m512i
) __builtin_ia32_pbroadcastw512_gpr_mask (__A
,
353 extern __inline __m512i
354 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
355 _mm512_maskz_set1_epi16 (__mmask32 __M
, short __A
)
357 return (__m512i
) __builtin_ia32_pbroadcastw512_gpr_mask (__A
,
363 extern __inline __m512i
364 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
365 _mm512_mulhrs_epi16 (__m512i __A
, __m512i __B
)
367 return (__m512i
) __builtin_ia32_pmulhrsw512_mask ((__v32hi
) __A
,
370 _mm512_setzero_hi (),
374 extern __inline __m512i
375 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
376 _mm512_mask_mulhrs_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
379 return (__m512i
) __builtin_ia32_pmulhrsw512_mask ((__v32hi
) __A
,
385 extern __inline __m512i
386 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
387 _mm512_maskz_mulhrs_epi16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
389 return (__m512i
) __builtin_ia32_pmulhrsw512_mask ((__v32hi
) __A
,
392 _mm512_setzero_hi (),
396 extern __inline __m512i
397 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
398 _mm512_mulhi_epi16 (__m512i __A
, __m512i __B
)
400 return (__m512i
) __builtin_ia32_pmulhw512_mask ((__v32hi
) __A
,
403 _mm512_setzero_hi (),
407 extern __inline __m512i
408 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
409 _mm512_mask_mulhi_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
412 return (__m512i
) __builtin_ia32_pmulhw512_mask ((__v32hi
) __A
,
418 extern __inline __m512i
419 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
420 _mm512_maskz_mulhi_epi16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
422 return (__m512i
) __builtin_ia32_pmulhw512_mask ((__v32hi
) __A
,
425 _mm512_setzero_hi (),
429 extern __inline __m512i
430 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
431 _mm512_mulhi_epu16 (__m512i __A
, __m512i __B
)
433 return (__m512i
) __builtin_ia32_pmulhuw512_mask ((__v32hi
) __A
,
436 _mm512_setzero_hi (),
440 extern __inline __m512i
441 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
442 _mm512_mask_mulhi_epu16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
445 return (__m512i
) __builtin_ia32_pmulhuw512_mask ((__v32hi
) __A
,
451 extern __inline __m512i
452 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
453 _mm512_maskz_mulhi_epu16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
455 return (__m512i
) __builtin_ia32_pmulhuw512_mask ((__v32hi
) __A
,
458 _mm512_setzero_hi (),
462 extern __inline __m512i
463 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
464 _mm512_mullo_epi16 (__m512i __A
, __m512i __B
)
466 return (__m512i
) ((__v32hu
) __A
* (__v32hu
) __B
);
469 extern __inline __m512i
470 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
471 _mm512_mask_mullo_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
474 return (__m512i
) __builtin_ia32_pmullw512_mask ((__v32hi
) __A
,
480 extern __inline __m512i
481 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
482 _mm512_maskz_mullo_epi16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
484 return (__m512i
) __builtin_ia32_pmullw512_mask ((__v32hi
) __A
,
487 _mm512_setzero_hi (),
491 extern __inline __m512i
492 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
493 _mm512_cvtepi8_epi16 (__m256i __A
)
495 return (__m512i
) __builtin_ia32_pmovsxbw512_mask ((__v32qi
) __A
,
497 _mm512_setzero_hi (),
501 extern __inline __m512i
502 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
503 _mm512_mask_cvtepi8_epi16 (__m512i __W
, __mmask32 __U
, __m256i __A
)
505 return (__m512i
) __builtin_ia32_pmovsxbw512_mask ((__v32qi
) __A
,
510 extern __inline __m512i
511 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
512 _mm512_maskz_cvtepi8_epi16 (__mmask32 __U
, __m256i __A
)
514 return (__m512i
) __builtin_ia32_pmovsxbw512_mask ((__v32qi
) __A
,
520 extern __inline __m512i
521 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
522 _mm512_cvtepu8_epi16 (__m256i __A
)
524 return (__m512i
) __builtin_ia32_pmovzxbw512_mask ((__v32qi
) __A
,
526 _mm512_setzero_hi (),
530 extern __inline __m512i
531 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
532 _mm512_mask_cvtepu8_epi16 (__m512i __W
, __mmask32 __U
, __m256i __A
)
534 return (__m512i
) __builtin_ia32_pmovzxbw512_mask ((__v32qi
) __A
,
539 extern __inline __m512i
540 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
541 _mm512_maskz_cvtepu8_epi16 (__mmask32 __U
, __m256i __A
)
543 return (__m512i
) __builtin_ia32_pmovzxbw512_mask ((__v32qi
) __A
,
549 extern __inline __m512i
550 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
551 _mm512_permutexvar_epi16 (__m512i __A
, __m512i __B
)
553 return (__m512i
) __builtin_ia32_permvarhi512_mask ((__v32hi
) __B
,
556 _mm512_setzero_hi (),
560 extern __inline __m512i
561 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
562 _mm512_maskz_permutexvar_epi16 (__mmask32 __M
, __m512i __A
,
565 return (__m512i
) __builtin_ia32_permvarhi512_mask ((__v32hi
) __B
,
572 extern __inline __m512i
573 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
574 _mm512_mask_permutexvar_epi16 (__m512i __W
, __mmask32 __M
, __m512i __A
,
577 return (__m512i
) __builtin_ia32_permvarhi512_mask ((__v32hi
) __B
,
583 extern __inline __m512i
584 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
585 _mm512_permutex2var_epi16 (__m512i __A
, __m512i __I
, __m512i __B
)
587 return (__m512i
) __builtin_ia32_vpermt2varhi512_mask ((__v32hi
) __I
595 extern __inline __m512i
596 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
597 _mm512_mask_permutex2var_epi16 (__m512i __A
, __mmask32 __U
,
598 __m512i __I
, __m512i __B
)
600 return (__m512i
) __builtin_ia32_vpermt2varhi512_mask ((__v32hi
) __I
608 extern __inline __m512i
609 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
610 _mm512_mask2_permutex2var_epi16 (__m512i __A
, __m512i __I
,
611 __mmask32 __U
, __m512i __B
)
613 return (__m512i
) __builtin_ia32_vpermi2varhi512_mask ((__v32hi
) __A
,
621 extern __inline __m512i
622 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
623 _mm512_maskz_permutex2var_epi16 (__mmask32 __U
, __m512i __A
,
624 __m512i __I
, __m512i __B
)
626 return (__m512i
) __builtin_ia32_vpermt2varhi512_maskz ((__v32hi
) __I
634 extern __inline __m512i
635 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
636 _mm512_avg_epu8 (__m512i __A
, __m512i __B
)
638 return (__m512i
) __builtin_ia32_pavgb512_mask ((__v64qi
) __A
,
641 _mm512_setzero_qi (),
645 extern __inline __m512i
646 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
647 _mm512_mask_avg_epu8 (__m512i __W
, __mmask64 __U
, __m512i __A
,
650 return (__m512i
) __builtin_ia32_pavgb512_mask ((__v64qi
) __A
,
656 extern __inline __m512i
657 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
658 _mm512_maskz_avg_epu8 (__mmask64 __U
, __m512i __A
, __m512i __B
)
660 return (__m512i
) __builtin_ia32_pavgb512_mask ((__v64qi
) __A
,
667 extern __inline __m512i
668 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
669 _mm512_add_epi8 (__m512i __A
, __m512i __B
)
671 return (__m512i
) ((__v64qu
) __A
+ (__v64qu
) __B
);
674 extern __inline __m512i
675 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
676 _mm512_mask_add_epi8 (__m512i __W
, __mmask64 __U
, __m512i __A
,
679 return (__m512i
) __builtin_ia32_paddb512_mask ((__v64qi
) __A
,
685 extern __inline __m512i
686 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
687 _mm512_maskz_add_epi8 (__mmask64 __U
, __m512i __A
, __m512i __B
)
689 return (__m512i
) __builtin_ia32_paddb512_mask ((__v64qi
) __A
,
692 _mm512_setzero_qi (),
696 extern __inline __m512i
697 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
698 _mm512_sub_epi8 (__m512i __A
, __m512i __B
)
700 return (__m512i
) ((__v64qu
) __A
- (__v64qu
) __B
);
703 extern __inline __m512i
704 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
705 _mm512_mask_sub_epi8 (__m512i __W
, __mmask64 __U
, __m512i __A
,
708 return (__m512i
) __builtin_ia32_psubb512_mask ((__v64qi
) __A
,
714 extern __inline __m512i
715 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
716 _mm512_maskz_sub_epi8 (__mmask64 __U
, __m512i __A
, __m512i __B
)
718 return (__m512i
) __builtin_ia32_psubb512_mask ((__v64qi
) __A
,
721 _mm512_setzero_qi (),
725 extern __inline __m512i
726 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
727 _mm512_avg_epu16 (__m512i __A
, __m512i __B
)
729 return (__m512i
) __builtin_ia32_pavgw512_mask ((__v32hi
) __A
,
732 _mm512_setzero_hi (),
736 extern __inline __m512i
737 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
738 _mm512_mask_avg_epu16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
741 return (__m512i
) __builtin_ia32_pavgw512_mask ((__v32hi
) __A
,
747 extern __inline __m512i
748 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
749 _mm512_maskz_avg_epu16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
751 return (__m512i
) __builtin_ia32_pavgw512_mask ((__v32hi
) __A
,
758 extern __inline __m512i
759 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
760 _mm512_subs_epi8 (__m512i __A
, __m512i __B
)
762 return (__m512i
) __builtin_ia32_psubsb512_mask ((__v64qi
) __A
,
765 _mm512_setzero_qi (),
769 extern __inline __m512i
770 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
771 _mm512_mask_subs_epi8 (__m512i __W
, __mmask64 __U
, __m512i __A
,
774 return (__m512i
) __builtin_ia32_psubsb512_mask ((__v64qi
) __A
,
780 extern __inline __m512i
781 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
782 _mm512_maskz_subs_epi8 (__mmask64 __U
, __m512i __A
, __m512i __B
)
784 return (__m512i
) __builtin_ia32_psubsb512_mask ((__v64qi
) __A
,
787 _mm512_setzero_qi (),
791 extern __inline __m512i
792 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
793 _mm512_subs_epu8 (__m512i __A
, __m512i __B
)
795 return (__m512i
) __builtin_ia32_psubusb512_mask ((__v64qi
) __A
,
798 _mm512_setzero_qi (),
802 extern __inline __m512i
803 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
804 _mm512_mask_subs_epu8 (__m512i __W
, __mmask64 __U
, __m512i __A
,
807 return (__m512i
) __builtin_ia32_psubusb512_mask ((__v64qi
) __A
,
813 extern __inline __m512i
814 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
815 _mm512_maskz_subs_epu8 (__mmask64 __U
, __m512i __A
, __m512i __B
)
817 return (__m512i
) __builtin_ia32_psubusb512_mask ((__v64qi
) __A
,
820 _mm512_setzero_qi (),
824 extern __inline __m512i
825 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
826 _mm512_adds_epi8 (__m512i __A
, __m512i __B
)
828 return (__m512i
) __builtin_ia32_paddsb512_mask ((__v64qi
) __A
,
831 _mm512_setzero_qi (),
835 extern __inline __m512i
836 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
837 _mm512_mask_adds_epi8 (__m512i __W
, __mmask64 __U
, __m512i __A
,
840 return (__m512i
) __builtin_ia32_paddsb512_mask ((__v64qi
) __A
,
846 extern __inline __m512i
847 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
848 _mm512_maskz_adds_epi8 (__mmask64 __U
, __m512i __A
, __m512i __B
)
850 return (__m512i
) __builtin_ia32_paddsb512_mask ((__v64qi
) __A
,
853 _mm512_setzero_qi (),
857 extern __inline __m512i
858 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
859 _mm512_adds_epu8 (__m512i __A
, __m512i __B
)
861 return (__m512i
) __builtin_ia32_paddusb512_mask ((__v64qi
) __A
,
864 _mm512_setzero_qi (),
868 extern __inline __m512i
869 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
870 _mm512_mask_adds_epu8 (__m512i __W
, __mmask64 __U
, __m512i __A
,
873 return (__m512i
) __builtin_ia32_paddusb512_mask ((__v64qi
) __A
,
879 extern __inline __m512i
880 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
881 _mm512_maskz_adds_epu8 (__mmask64 __U
, __m512i __A
, __m512i __B
)
883 return (__m512i
) __builtin_ia32_paddusb512_mask ((__v64qi
) __A
,
886 _mm512_setzero_qi (),
890 extern __inline __m512i
891 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
892 _mm512_sub_epi16 (__m512i __A
, __m512i __B
)
894 return (__m512i
) ((__v32hu
) __A
- (__v32hu
) __B
);
897 extern __inline __m512i
898 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
899 _mm512_mask_sub_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
902 return (__m512i
) __builtin_ia32_psubw512_mask ((__v32hi
) __A
,
908 extern __inline __m512i
909 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
910 _mm512_maskz_sub_epi16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
912 return (__m512i
) __builtin_ia32_psubw512_mask ((__v32hi
) __A
,
915 _mm512_setzero_hi (),
919 extern __inline __m512i
920 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
921 _mm512_subs_epi16 (__m512i __A
, __m512i __B
)
923 return (__m512i
) __builtin_ia32_psubsw512_mask ((__v32hi
) __A
,
926 _mm512_setzero_hi (),
930 extern __inline __m512i
931 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
932 _mm512_mask_subs_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
935 return (__m512i
) __builtin_ia32_psubsw512_mask ((__v32hi
) __A
,
941 extern __inline __m512i
942 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
943 _mm512_maskz_subs_epi16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
945 return (__m512i
) __builtin_ia32_psubsw512_mask ((__v32hi
) __A
,
948 _mm512_setzero_hi (),
952 extern __inline __m512i
953 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
954 _mm512_subs_epu16 (__m512i __A
, __m512i __B
)
956 return (__m512i
) __builtin_ia32_psubusw512_mask ((__v32hi
) __A
,
959 _mm512_setzero_hi (),
963 extern __inline __m512i
964 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
965 _mm512_mask_subs_epu16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
968 return (__m512i
) __builtin_ia32_psubusw512_mask ((__v32hi
) __A
,
974 extern __inline __m512i
975 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
976 _mm512_maskz_subs_epu16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
978 return (__m512i
) __builtin_ia32_psubusw512_mask ((__v32hi
) __A
,
981 _mm512_setzero_hi (),
985 extern __inline __m512i
986 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
987 _mm512_add_epi16 (__m512i __A
, __m512i __B
)
989 return (__m512i
) ((__v32hu
) __A
+ (__v32hu
) __B
);
992 extern __inline __m512i
993 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
994 _mm512_mask_add_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
997 return (__m512i
) __builtin_ia32_paddw512_mask ((__v32hi
) __A
,
1003 extern __inline __m512i
1004 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1005 _mm512_maskz_add_epi16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
1007 return (__m512i
) __builtin_ia32_paddw512_mask ((__v32hi
) __A
,
1010 _mm512_setzero_hi (),
1014 extern __inline __m512i
1015 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1016 _mm512_adds_epi16 (__m512i __A
, __m512i __B
)
1018 return (__m512i
) __builtin_ia32_paddsw512_mask ((__v32hi
) __A
,
1021 _mm512_setzero_hi (),
1025 extern __inline __m512i
1026 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1027 _mm512_mask_adds_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
1030 return (__m512i
) __builtin_ia32_paddsw512_mask ((__v32hi
) __A
,
1036 extern __inline __m512i
1037 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1038 _mm512_maskz_adds_epi16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
1040 return (__m512i
) __builtin_ia32_paddsw512_mask ((__v32hi
) __A
,
1043 _mm512_setzero_hi (),
1047 extern __inline __m512i
1048 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1049 _mm512_adds_epu16 (__m512i __A
, __m512i __B
)
1051 return (__m512i
) __builtin_ia32_paddusw512_mask ((__v32hi
) __A
,
1054 _mm512_setzero_hi (),
1058 extern __inline __m512i
1059 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1060 _mm512_mask_adds_epu16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
1063 return (__m512i
) __builtin_ia32_paddusw512_mask ((__v32hi
) __A
,
1069 extern __inline __m512i
1070 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1071 _mm512_maskz_adds_epu16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
1073 return (__m512i
) __builtin_ia32_paddusw512_mask ((__v32hi
) __A
,
1076 _mm512_setzero_hi (),
1080 extern __inline __m512i
1081 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1082 _mm512_srl_epi16 (__m512i __A
, __m128i __B
)
1084 return (__m512i
) __builtin_ia32_psrlw512_mask ((__v32hi
) __A
,
1087 _mm512_setzero_hi (),
1091 extern __inline __m512i
1092 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1093 _mm512_mask_srl_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
1096 return (__m512i
) __builtin_ia32_psrlw512_mask ((__v32hi
) __A
,
1102 extern __inline __m512i
1103 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1104 _mm512_maskz_srl_epi16 (__mmask32 __U
, __m512i __A
, __m128i __B
)
1106 return (__m512i
) __builtin_ia32_psrlw512_mask ((__v32hi
) __A
,
1109 _mm512_setzero_hi (),
1113 extern __inline __m512i
1114 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1115 _mm512_packs_epi16 (__m512i __A
, __m512i __B
)
1117 return (__m512i
) __builtin_ia32_packsswb512_mask ((__v32hi
) __A
,
1120 _mm512_setzero_qi (),
1124 extern __inline __m512i
1125 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1126 _mm512_sll_epi16 (__m512i __A
, __m128i __B
)
1128 return (__m512i
) __builtin_ia32_psllw512_mask ((__v32hi
) __A
,
1131 _mm512_setzero_hi (),
1135 extern __inline __m512i
1136 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1137 _mm512_mask_sll_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
1140 return (__m512i
) __builtin_ia32_psllw512_mask ((__v32hi
) __A
,
1146 extern __inline __m512i
1147 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1148 _mm512_maskz_sll_epi16 (__mmask32 __U
, __m512i __A
, __m128i __B
)
1150 return (__m512i
) __builtin_ia32_psllw512_mask ((__v32hi
) __A
,
1153 _mm512_setzero_hi (),
1157 extern __inline __m512i
1158 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1159 _mm512_maddubs_epi16 (__m512i __X
, __m512i __Y
)
1161 return (__m512i
) __builtin_ia32_pmaddubsw512_mask ((__v64qi
) __X
,
1164 _mm512_setzero_hi (),
1168 extern __inline __m512i
1169 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1170 _mm512_mask_maddubs_epi16 (__m512i __W
, __mmask32 __U
, __m512i __X
,
1173 return (__m512i
) __builtin_ia32_pmaddubsw512_mask ((__v64qi
) __X
,
1179 extern __inline __m512i
1180 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1181 _mm512_maskz_maddubs_epi16 (__mmask32 __U
, __m512i __X
, __m512i __Y
)
1183 return (__m512i
) __builtin_ia32_pmaddubsw512_mask ((__v64qi
) __X
,
1186 _mm512_setzero_hi (),
1190 extern __inline __m512i
1191 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1192 _mm512_madd_epi16 (__m512i __A
, __m512i __B
)
1194 return (__m512i
) __builtin_ia32_pmaddwd512_mask ((__v32hi
) __A
,
1197 _mm512_setzero_si512 (),
1201 extern __inline __m512i
1202 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1203 _mm512_mask_madd_epi16 (__m512i __W
, __mmask16 __U
, __m512i __A
,
1206 return (__m512i
) __builtin_ia32_pmaddwd512_mask ((__v32hi
) __A
,
1212 extern __inline __m512i
1213 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1214 _mm512_maskz_madd_epi16 (__mmask16 __U
, __m512i __A
, __m512i __B
)
1216 return (__m512i
) __builtin_ia32_pmaddwd512_mask ((__v32hi
) __A
,
1219 _mm512_setzero_si512 (),
1223 extern __inline __m512i
1224 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1225 _mm512_unpackhi_epi8 (__m512i __A
, __m512i __B
)
1227 return (__m512i
) __builtin_ia32_punpckhbw512_mask ((__v64qi
) __A
,
1230 _mm512_setzero_qi (),
1234 extern __inline __m512i
1235 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1236 _mm512_mask_unpackhi_epi8 (__m512i __W
, __mmask64 __U
, __m512i __A
,
1239 return (__m512i
) __builtin_ia32_punpckhbw512_mask ((__v64qi
) __A
,
1245 extern __inline __m512i
1246 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1247 _mm512_maskz_unpackhi_epi8 (__mmask64 __U
, __m512i __A
, __m512i __B
)
1249 return (__m512i
) __builtin_ia32_punpckhbw512_mask ((__v64qi
) __A
,
1252 _mm512_setzero_qi(),
1256 extern __inline __m512i
1257 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1258 _mm512_unpackhi_epi16 (__m512i __A
, __m512i __B
)
1260 return (__m512i
) __builtin_ia32_punpckhwd512_mask ((__v32hi
) __A
,
1263 _mm512_setzero_hi (),
1267 extern __inline __m512i
1268 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1269 _mm512_mask_unpackhi_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
1272 return (__m512i
) __builtin_ia32_punpckhwd512_mask ((__v32hi
) __A
,
1278 extern __inline __m512i
1279 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1280 _mm512_maskz_unpackhi_epi16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
1282 return (__m512i
) __builtin_ia32_punpckhwd512_mask ((__v32hi
) __A
,
1285 _mm512_setzero_hi(),
1289 extern __inline __m512i
1290 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1291 _mm512_unpacklo_epi8 (__m512i __A
, __m512i __B
)
1293 return (__m512i
) __builtin_ia32_punpcklbw512_mask ((__v64qi
) __A
,
1296 _mm512_setzero_qi (),
1300 extern __inline __m512i
1301 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1302 _mm512_mask_unpacklo_epi8 (__m512i __W
, __mmask64 __U
, __m512i __A
,
1305 return (__m512i
) __builtin_ia32_punpcklbw512_mask ((__v64qi
) __A
,
1311 extern __inline __m512i
1312 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1313 _mm512_maskz_unpacklo_epi8 (__mmask64 __U
, __m512i __A
, __m512i __B
)
1315 return (__m512i
) __builtin_ia32_punpcklbw512_mask ((__v64qi
) __A
,
1318 _mm512_setzero_qi(),
1322 extern __inline __m512i
1323 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1324 _mm512_unpacklo_epi16 (__m512i __A
, __m512i __B
)
1326 return (__m512i
) __builtin_ia32_punpcklwd512_mask ((__v32hi
) __A
,
1329 _mm512_setzero_hi (),
1333 extern __inline __m512i
1334 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1335 _mm512_mask_unpacklo_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
1338 return (__m512i
) __builtin_ia32_punpcklwd512_mask ((__v32hi
) __A
,
1344 extern __inline __m512i
1345 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1346 _mm512_maskz_unpacklo_epi16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
1348 return (__m512i
) __builtin_ia32_punpcklwd512_mask ((__v32hi
) __A
,
1351 _mm512_setzero_hi(),
1355 extern __inline __mmask64
1356 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1357 _mm512_cmpeq_epu8_mask (__m512i __A
, __m512i __B
)
1359 return (__mmask64
) __builtin_ia32_ucmpb512_mask ((__v64qi
) __A
,
1364 extern __inline __mmask64
1365 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1366 _mm512_cmpeq_epi8_mask (__m512i __A
, __m512i __B
)
1368 return (__mmask64
) __builtin_ia32_pcmpeqb512_mask ((__v64qi
) __A
,
1373 extern __inline __mmask64
1374 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1375 _mm512_mask_cmpeq_epu8_mask (__mmask64 __U
, __m512i __A
, __m512i __B
)
1377 return (__mmask64
) __builtin_ia32_ucmpb512_mask ((__v64qi
) __A
,
1382 extern __inline __mmask64
1383 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1384 _mm512_mask_cmpeq_epi8_mask (__mmask64 __U
, __m512i __A
, __m512i __B
)
1386 return (__mmask64
) __builtin_ia32_pcmpeqb512_mask ((__v64qi
) __A
,
1391 extern __inline __mmask32
1392 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1393 _mm512_cmpeq_epu16_mask (__m512i __A
, __m512i __B
)
1395 return (__mmask32
) __builtin_ia32_ucmpw512_mask ((__v32hi
) __A
,
1400 extern __inline __mmask32
1401 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1402 _mm512_cmpeq_epi16_mask (__m512i __A
, __m512i __B
)
1404 return (__mmask32
) __builtin_ia32_pcmpeqw512_mask ((__v32hi
) __A
,
1409 extern __inline __mmask32
1410 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1411 _mm512_mask_cmpeq_epu16_mask (__mmask32 __U
, __m512i __A
, __m512i __B
)
1413 return (__mmask32
) __builtin_ia32_ucmpw512_mask ((__v32hi
) __A
,
1418 extern __inline __mmask32
1419 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1420 _mm512_mask_cmpeq_epi16_mask (__mmask32 __U
, __m512i __A
, __m512i __B
)
1422 return (__mmask32
) __builtin_ia32_pcmpeqw512_mask ((__v32hi
) __A
,
1427 extern __inline __mmask64
1428 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1429 _mm512_cmpgt_epu8_mask (__m512i __A
, __m512i __B
)
1431 return (__mmask64
) __builtin_ia32_ucmpb512_mask ((__v64qi
) __A
,
1436 extern __inline __mmask64
1437 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1438 _mm512_cmpgt_epi8_mask (__m512i __A
, __m512i __B
)
1440 return (__mmask64
) __builtin_ia32_pcmpgtb512_mask ((__v64qi
) __A
,
1445 extern __inline __mmask64
1446 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1447 _mm512_mask_cmpgt_epu8_mask (__mmask64 __U
, __m512i __A
, __m512i __B
)
1449 return (__mmask64
) __builtin_ia32_ucmpb512_mask ((__v64qi
) __A
,
1454 extern __inline __mmask64
1455 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1456 _mm512_mask_cmpgt_epi8_mask (__mmask64 __U
, __m512i __A
, __m512i __B
)
1458 return (__mmask64
) __builtin_ia32_pcmpgtb512_mask ((__v64qi
) __A
,
1463 extern __inline __mmask32
1464 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1465 _mm512_cmpgt_epu16_mask (__m512i __A
, __m512i __B
)
1467 return (__mmask32
) __builtin_ia32_ucmpw512_mask ((__v32hi
) __A
,
1472 extern __inline __mmask32
1473 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1474 _mm512_cmpgt_epi16_mask (__m512i __A
, __m512i __B
)
1476 return (__mmask32
) __builtin_ia32_pcmpgtw512_mask ((__v32hi
) __A
,
1481 extern __inline __mmask32
1482 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1483 _mm512_mask_cmpgt_epu16_mask (__mmask32 __U
, __m512i __A
, __m512i __B
)
1485 return (__mmask32
) __builtin_ia32_ucmpw512_mask ((__v32hi
) __A
,
1490 extern __inline __mmask32
1491 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1492 _mm512_mask_cmpgt_epi16_mask (__mmask32 __U
, __m512i __A
, __m512i __B
)
1494 return (__mmask32
) __builtin_ia32_pcmpgtw512_mask ((__v32hi
) __A
,
1499 extern __inline __mmask64
1500 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1501 _mm512_movepi8_mask (__m512i __A
)
1503 return (__mmask64
) __builtin_ia32_cvtb2mask512 ((__v64qi
) __A
);
1506 extern __inline __mmask32
1507 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1508 _mm512_movepi16_mask (__m512i __A
)
1510 return (__mmask32
) __builtin_ia32_cvtw2mask512 ((__v32hi
) __A
);
1513 extern __inline __m512i
1514 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1515 _mm512_movm_epi8 (__mmask64 __A
)
1517 return (__m512i
) __builtin_ia32_cvtmask2b512 (__A
);
1520 extern __inline __m512i
1521 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1522 _mm512_movm_epi16 (__mmask32 __A
)
1524 return (__m512i
) __builtin_ia32_cvtmask2w512 (__A
);
1527 extern __inline __mmask64
1528 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1529 _mm512_test_epi8_mask (__m512i __A
, __m512i __B
)
1531 return (__mmask64
) __builtin_ia32_ptestmb512 ((__v64qi
) __A
,
1536 extern __inline __mmask64
1537 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1538 _mm512_mask_test_epi8_mask (__mmask64 __U
, __m512i __A
, __m512i __B
)
1540 return (__mmask64
) __builtin_ia32_ptestmb512 ((__v64qi
) __A
,
1541 (__v64qi
) __B
, __U
);
1544 extern __inline __mmask32
1545 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1546 _mm512_test_epi16_mask (__m512i __A
, __m512i __B
)
1548 return (__mmask32
) __builtin_ia32_ptestmw512 ((__v32hi
) __A
,
1553 extern __inline __mmask32
1554 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1555 _mm512_mask_test_epi16_mask (__mmask32 __U
, __m512i __A
, __m512i __B
)
1557 return (__mmask32
) __builtin_ia32_ptestmw512 ((__v32hi
) __A
,
1558 (__v32hi
) __B
, __U
);
1561 extern __inline __mmask64
1562 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1563 _mm512_testn_epi8_mask (__m512i __A
, __m512i __B
)
1565 return (__mmask64
) __builtin_ia32_ptestnmb512 ((__v64qi
) __A
,
1570 extern __inline __mmask64
1571 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1572 _mm512_mask_testn_epi8_mask (__mmask64 __U
, __m512i __A
, __m512i __B
)
1574 return (__mmask64
) __builtin_ia32_ptestnmb512 ((__v64qi
) __A
,
1575 (__v64qi
) __B
, __U
);
1578 extern __inline __mmask32
1579 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1580 _mm512_testn_epi16_mask (__m512i __A
, __m512i __B
)
1582 return (__mmask32
) __builtin_ia32_ptestnmw512 ((__v32hi
) __A
,
1587 extern __inline __mmask32
1588 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1589 _mm512_mask_testn_epi16_mask (__mmask32 __U
, __m512i __A
, __m512i __B
)
1591 return (__mmask32
) __builtin_ia32_ptestnmw512 ((__v32hi
) __A
,
1592 (__v32hi
) __B
, __U
);
1595 extern __inline __m512i
1596 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1597 _mm512_shuffle_epi8 (__m512i __A
, __m512i __B
)
1599 return (__m512i
) __builtin_ia32_pshufb512_mask ((__v64qi
) __A
,
1602 _mm512_setzero_qi (),
1606 extern __inline __m512i
1607 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1608 _mm512_mask_shuffle_epi8 (__m512i __W
, __mmask64 __U
, __m512i __A
,
1611 return (__m512i
) __builtin_ia32_pshufb512_mask ((__v64qi
) __A
,
1617 extern __inline __m512i
1618 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1619 _mm512_maskz_shuffle_epi8 (__mmask64 __U
, __m512i __A
, __m512i __B
)
1621 return (__m512i
) __builtin_ia32_pshufb512_mask ((__v64qi
) __A
,
1624 _mm512_setzero_qi (),
1628 extern __inline __m512i
1629 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1630 _mm512_min_epu16 (__m512i __A
, __m512i __B
)
1632 return (__m512i
) __builtin_ia32_pminuw512_mask ((__v32hi
) __A
,
1635 _mm512_setzero_hi (),
1639 extern __inline __m512i
1640 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1641 _mm512_maskz_min_epu16 (__mmask32 __M
, __m512i __A
, __m512i __B
)
1643 return (__m512i
) __builtin_ia32_pminuw512_mask ((__v32hi
) __A
,
1646 _mm512_setzero_hi(),
1650 extern __inline __m512i
1651 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1652 _mm512_mask_min_epu16 (__m512i __W
, __mmask32 __M
, __m512i __A
,
1655 return (__m512i
) __builtin_ia32_pminuw512_mask ((__v32hi
) __A
,
1661 extern __inline __m512i
1662 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1663 _mm512_min_epi16 (__m512i __A
, __m512i __B
)
1665 return (__m512i
) __builtin_ia32_pminsw512_mask ((__v32hi
) __A
,
1668 _mm512_setzero_hi (),
1672 extern __inline __m512i
1673 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1674 _mm512_maskz_min_epi16 (__mmask32 __M
, __m512i __A
, __m512i __B
)
1676 return (__m512i
) __builtin_ia32_pminsw512_mask ((__v32hi
) __A
,
1679 _mm512_setzero_hi(),
1683 extern __inline __m512i
1684 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1685 _mm512_mask_min_epi16 (__m512i __W
, __mmask32 __M
, __m512i __A
,
1688 return (__m512i
) __builtin_ia32_pminsw512_mask ((__v32hi
) __A
,
1694 extern __inline __m512i
1695 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1696 _mm512_max_epu8 (__m512i __A
, __m512i __B
)
1698 return (__m512i
) __builtin_ia32_pmaxub512_mask ((__v64qi
) __A
,
1701 _mm512_setzero_qi (),
1705 extern __inline __m512i
1706 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1707 _mm512_maskz_max_epu8 (__mmask64 __M
, __m512i __A
, __m512i __B
)
1709 return (__m512i
) __builtin_ia32_pmaxub512_mask ((__v64qi
) __A
,
1712 _mm512_setzero_qi(),
1716 extern __inline __m512i
1717 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1718 _mm512_mask_max_epu8 (__m512i __W
, __mmask64 __M
, __m512i __A
,
1721 return (__m512i
) __builtin_ia32_pmaxub512_mask ((__v64qi
) __A
,
1727 extern __inline __m512i
1728 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1729 _mm512_max_epi8 (__m512i __A
, __m512i __B
)
1731 return (__m512i
) __builtin_ia32_pmaxsb512_mask ((__v64qi
) __A
,
1734 _mm512_setzero_qi (),
1738 extern __inline __m512i
1739 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1740 _mm512_maskz_max_epi8 (__mmask64 __M
, __m512i __A
, __m512i __B
)
1742 return (__m512i
) __builtin_ia32_pmaxsb512_mask ((__v64qi
) __A
,
1745 _mm512_setzero_qi(),
1749 extern __inline __m512i
1750 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1751 _mm512_mask_max_epi8 (__m512i __W
, __mmask64 __M
, __m512i __A
,
1754 return (__m512i
) __builtin_ia32_pmaxsb512_mask ((__v64qi
) __A
,
1760 extern __inline __m512i
1761 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1762 _mm512_min_epu8 (__m512i __A
, __m512i __B
)
1764 return (__m512i
) __builtin_ia32_pminub512_mask ((__v64qi
) __A
,
1767 _mm512_setzero_qi (),
1771 extern __inline __m512i
1772 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1773 _mm512_maskz_min_epu8 (__mmask64 __M
, __m512i __A
, __m512i __B
)
1775 return (__m512i
) __builtin_ia32_pminub512_mask ((__v64qi
) __A
,
1778 _mm512_setzero_qi(),
1782 extern __inline __m512i
1783 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1784 _mm512_mask_min_epu8 (__m512i __W
, __mmask64 __M
, __m512i __A
,
1787 return (__m512i
) __builtin_ia32_pminub512_mask ((__v64qi
) __A
,
1793 extern __inline __m512i
1794 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1795 _mm512_min_epi8 (__m512i __A
, __m512i __B
)
1797 return (__m512i
) __builtin_ia32_pminsb512_mask ((__v64qi
) __A
,
1800 _mm512_setzero_qi (),
1804 extern __inline __m512i
1805 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1806 _mm512_maskz_min_epi8 (__mmask64 __M
, __m512i __A
, __m512i __B
)
1808 return (__m512i
) __builtin_ia32_pminsb512_mask ((__v64qi
) __A
,
1811 _mm512_setzero_qi(),
1815 extern __inline __m512i
1816 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1817 _mm512_mask_min_epi8 (__m512i __W
, __mmask64 __M
, __m512i __A
,
1820 return (__m512i
) __builtin_ia32_pminsb512_mask ((__v64qi
) __A
,
1826 extern __inline __m512i
1827 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1828 _mm512_max_epi16 (__m512i __A
, __m512i __B
)
1830 return (__m512i
) __builtin_ia32_pmaxsw512_mask ((__v32hi
) __A
,
1833 _mm512_setzero_hi (),
1837 extern __inline __m512i
1838 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1839 _mm512_maskz_max_epi16 (__mmask32 __M
, __m512i __A
, __m512i __B
)
1841 return (__m512i
) __builtin_ia32_pmaxsw512_mask ((__v32hi
) __A
,
1844 _mm512_setzero_hi(),
1848 extern __inline __m512i
1849 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1850 _mm512_mask_max_epi16 (__m512i __W
, __mmask32 __M
, __m512i __A
,
1853 return (__m512i
) __builtin_ia32_pmaxsw512_mask ((__v32hi
) __A
,
1859 extern __inline __m512i
1860 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1861 _mm512_max_epu16 (__m512i __A
, __m512i __B
)
1863 return (__m512i
) __builtin_ia32_pmaxuw512_mask ((__v32hi
) __A
,
1866 _mm512_setzero_hi (),
1870 extern __inline __m512i
1871 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1872 _mm512_maskz_max_epu16 (__mmask32 __M
, __m512i __A
, __m512i __B
)
1874 return (__m512i
) __builtin_ia32_pmaxuw512_mask ((__v32hi
) __A
,
1877 _mm512_setzero_hi(),
1881 extern __inline __m512i
1882 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1883 _mm512_mask_max_epu16 (__m512i __W
, __mmask32 __M
, __m512i __A
,
1886 return (__m512i
) __builtin_ia32_pmaxuw512_mask ((__v32hi
) __A
,
1892 extern __inline __m512i
1893 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1894 _mm512_sra_epi16 (__m512i __A
, __m128i __B
)
1896 return (__m512i
) __builtin_ia32_psraw512_mask ((__v32hi
) __A
,
1899 _mm512_setzero_hi (),
1903 extern __inline __m512i
1904 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1905 _mm512_mask_sra_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
1908 return (__m512i
) __builtin_ia32_psraw512_mask ((__v32hi
) __A
,
1914 extern __inline __m512i
1915 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1916 _mm512_maskz_sra_epi16 (__mmask32 __U
, __m512i __A
, __m128i __B
)
1918 return (__m512i
) __builtin_ia32_psraw512_mask ((__v32hi
) __A
,
1921 _mm512_setzero_hi (),
1925 extern __inline __m512i
1926 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1927 _mm512_srav_epi16 (__m512i __A
, __m512i __B
)
1929 return (__m512i
) __builtin_ia32_psrav32hi_mask ((__v32hi
) __A
,
1932 _mm512_setzero_hi (),
1936 extern __inline __m512i
1937 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1938 _mm512_mask_srav_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
1941 return (__m512i
) __builtin_ia32_psrav32hi_mask ((__v32hi
) __A
,
1947 extern __inline __m512i
1948 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1949 _mm512_maskz_srav_epi16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
1951 return (__m512i
) __builtin_ia32_psrav32hi_mask ((__v32hi
) __A
,
1954 _mm512_setzero_hi (),
1958 extern __inline __m512i
1959 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1960 _mm512_srlv_epi16 (__m512i __A
, __m512i __B
)
1962 return (__m512i
) __builtin_ia32_psrlv32hi_mask ((__v32hi
) __A
,
1965 _mm512_setzero_hi (),
1969 extern __inline __m512i
1970 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1971 _mm512_mask_srlv_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
1974 return (__m512i
) __builtin_ia32_psrlv32hi_mask ((__v32hi
) __A
,
1980 extern __inline __m512i
1981 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1982 _mm512_maskz_srlv_epi16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
1984 return (__m512i
) __builtin_ia32_psrlv32hi_mask ((__v32hi
) __A
,
1987 _mm512_setzero_hi (),
1991 extern __inline __m512i
1992 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1993 _mm512_sllv_epi16 (__m512i __A
, __m512i __B
)
1995 return (__m512i
) __builtin_ia32_psllv32hi_mask ((__v32hi
) __A
,
1998 _mm512_setzero_hi (),
2002 extern __inline __m512i
2003 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2004 _mm512_mask_sllv_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
2007 return (__m512i
) __builtin_ia32_psllv32hi_mask ((__v32hi
) __A
,
2013 extern __inline __m512i
2014 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2015 _mm512_maskz_sllv_epi16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
2017 return (__m512i
) __builtin_ia32_psllv32hi_mask ((__v32hi
) __A
,
2020 _mm512_setzero_hi (),
2024 extern __inline __m512i
2025 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2026 _mm512_mask_packs_epi16 (__m512i __W
, __mmask64 __M
, __m512i __A
,
2029 return (__m512i
) __builtin_ia32_packsswb512_mask ((__v32hi
) __A
,
2035 extern __inline __m512i
2036 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2037 _mm512_maskz_packs_epi16 (__mmask64 __M
, __m512i __A
, __m512i __B
)
2039 return (__m512i
) __builtin_ia32_packsswb512_mask ((__v32hi
) __A
,
2042 _mm512_setzero_qi(),
2046 extern __inline __m512i
2047 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2048 _mm512_packus_epi16 (__m512i __A
, __m512i __B
)
2050 return (__m512i
) __builtin_ia32_packuswb512_mask ((__v32hi
) __A
,
2053 _mm512_setzero_qi (),
2057 extern __inline __m512i
2058 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2059 _mm512_mask_packus_epi16 (__m512i __W
, __mmask64 __M
, __m512i __A
,
2062 return (__m512i
) __builtin_ia32_packuswb512_mask ((__v32hi
) __A
,
2068 extern __inline __m512i
2069 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2070 _mm512_maskz_packus_epi16 (__mmask64 __M
, __m512i __A
, __m512i __B
)
2072 return (__m512i
) __builtin_ia32_packuswb512_mask ((__v32hi
) __A
,
2075 _mm512_setzero_qi(),
2079 extern __inline __m512i
2080 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2081 _mm512_abs_epi8 (__m512i __A
)
2083 return (__m512i
) __builtin_ia32_pabsb512_mask ((__v64qi
) __A
,
2085 _mm512_setzero_qi (),
2089 extern __inline __m512i
2090 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2091 _mm512_mask_abs_epi8 (__m512i __W
, __mmask64 __U
, __m512i __A
)
2093 return (__m512i
) __builtin_ia32_pabsb512_mask ((__v64qi
) __A
,
2098 extern __inline __m512i
2099 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2100 _mm512_maskz_abs_epi8 (__mmask64 __U
, __m512i __A
)
2102 return (__m512i
) __builtin_ia32_pabsb512_mask ((__v64qi
) __A
,
2104 _mm512_setzero_qi (),
2108 extern __inline __m512i
2109 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2110 _mm512_abs_epi16 (__m512i __A
)
2112 return (__m512i
) __builtin_ia32_pabsw512_mask ((__v32hi
) __A
,
2114 _mm512_setzero_hi (),
2118 extern __inline __m512i
2119 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2120 _mm512_mask_abs_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
)
2122 return (__m512i
) __builtin_ia32_pabsw512_mask ((__v32hi
) __A
,
2127 extern __inline __m512i
2128 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2129 _mm512_maskz_abs_epi16 (__mmask32 __U
, __m512i __A
)
2131 return (__m512i
) __builtin_ia32_pabsw512_mask ((__v32hi
) __A
,
2133 _mm512_setzero_hi (),
2137 extern __inline __mmask64
2138 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2139 _mm512_mask_cmpneq_epu8_mask (__mmask64 __M
, __m512i __X
, __m512i __Y
)
2141 return (__mmask64
) __builtin_ia32_ucmpb512_mask ((__v64qi
) __X
,
2146 extern __inline __mmask64
2147 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2148 _mm512_mask_cmplt_epu8_mask (__mmask64 __M
, __m512i __X
, __m512i __Y
)
2150 return (__mmask64
) __builtin_ia32_ucmpb512_mask ((__v64qi
) __X
,
2155 extern __inline __mmask64
2156 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2157 _mm512_mask_cmpge_epu8_mask (__mmask64 __M
, __m512i __X
, __m512i __Y
)
2159 return (__mmask64
) __builtin_ia32_ucmpb512_mask ((__v64qi
) __X
,
2164 extern __inline __mmask64
2165 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2166 _mm512_mask_cmple_epu8_mask (__mmask64 __M
, __m512i __X
, __m512i __Y
)
2168 return (__mmask64
) __builtin_ia32_ucmpb512_mask ((__v64qi
) __X
,
2173 extern __inline __mmask32
2174 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2175 _mm512_mask_cmpneq_epu16_mask (__mmask32 __M
, __m512i __X
, __m512i __Y
)
2177 return (__mmask32
) __builtin_ia32_ucmpw512_mask ((__v32hi
) __X
,
2182 extern __inline __mmask32
2183 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2184 _mm512_mask_cmplt_epu16_mask (__mmask32 __M
, __m512i __X
, __m512i __Y
)
2186 return (__mmask32
) __builtin_ia32_ucmpw512_mask ((__v32hi
) __X
,
2191 extern __inline __mmask32
2192 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2193 _mm512_mask_cmpge_epu16_mask (__mmask32 __M
, __m512i __X
, __m512i __Y
)
2195 return (__mmask32
) __builtin_ia32_ucmpw512_mask ((__v32hi
) __X
,
2200 extern __inline __mmask32
2201 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2202 _mm512_mask_cmple_epu16_mask (__mmask32 __M
, __m512i __X
, __m512i __Y
)
2204 return (__mmask32
) __builtin_ia32_ucmpw512_mask ((__v32hi
) __X
,
2209 extern __inline __mmask64
2210 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2211 _mm512_mask_cmpneq_epi8_mask (__mmask64 __M
, __m512i __X
, __m512i __Y
)
2213 return (__mmask64
) __builtin_ia32_cmpb512_mask ((__v64qi
) __X
,
2218 extern __inline __mmask64
2219 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2220 _mm512_mask_cmplt_epi8_mask (__mmask64 __M
, __m512i __X
, __m512i __Y
)
2222 return (__mmask64
) __builtin_ia32_cmpb512_mask ((__v64qi
) __X
,
2227 extern __inline __mmask64
2228 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2229 _mm512_mask_cmpge_epi8_mask (__mmask64 __M
, __m512i __X
, __m512i __Y
)
2231 return (__mmask64
) __builtin_ia32_cmpb512_mask ((__v64qi
) __X
,
2236 extern __inline __mmask64
2237 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2238 _mm512_mask_cmple_epi8_mask (__mmask64 __M
, __m512i __X
, __m512i __Y
)
2240 return (__mmask64
) __builtin_ia32_cmpb512_mask ((__v64qi
) __X
,
2245 extern __inline __mmask32
2246 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2247 _mm512_mask_cmpneq_epi16_mask (__mmask32 __M
, __m512i __X
, __m512i __Y
)
2249 return (__mmask32
) __builtin_ia32_cmpw512_mask ((__v32hi
) __X
,
2254 extern __inline __mmask32
2255 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2256 _mm512_mask_cmplt_epi16_mask (__mmask32 __M
, __m512i __X
, __m512i __Y
)
2258 return (__mmask32
) __builtin_ia32_cmpw512_mask ((__v32hi
) __X
,
2263 extern __inline __mmask32
2264 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2265 _mm512_mask_cmpge_epi16_mask (__mmask32 __M
, __m512i __X
, __m512i __Y
)
2267 return (__mmask32
) __builtin_ia32_cmpw512_mask ((__v32hi
) __X
,
2272 extern __inline __mmask32
2273 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2274 _mm512_mask_cmple_epi16_mask (__mmask32 __M
, __m512i __X
, __m512i __Y
)
2276 return (__mmask32
) __builtin_ia32_cmpw512_mask ((__v32hi
) __X
,
2281 extern __inline __mmask64
2282 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2283 _mm512_cmpneq_epu8_mask (__m512i __X
, __m512i __Y
)
2285 return (__mmask64
) __builtin_ia32_ucmpb512_mask ((__v64qi
) __X
,
2290 extern __inline __mmask64
2291 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2292 _mm512_cmplt_epu8_mask (__m512i __X
, __m512i __Y
)
2294 return (__mmask64
) __builtin_ia32_ucmpb512_mask ((__v64qi
) __X
,
2299 extern __inline __mmask64
2300 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2301 _mm512_cmpge_epu8_mask (__m512i __X
, __m512i __Y
)
2303 return (__mmask64
) __builtin_ia32_ucmpb512_mask ((__v64qi
) __X
,
2308 extern __inline __mmask64
2309 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2310 _mm512_cmple_epu8_mask (__m512i __X
, __m512i __Y
)
2312 return (__mmask64
) __builtin_ia32_ucmpb512_mask ((__v64qi
) __X
,
2317 extern __inline __mmask32
2318 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2319 _mm512_cmpneq_epu16_mask (__m512i __X
, __m512i __Y
)
2321 return (__mmask32
) __builtin_ia32_ucmpw512_mask ((__v32hi
) __X
,
2326 extern __inline __mmask32
2327 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2328 _mm512_cmplt_epu16_mask (__m512i __X
, __m512i __Y
)
2330 return (__mmask32
) __builtin_ia32_ucmpw512_mask ((__v32hi
) __X
,
2335 extern __inline __mmask32
2336 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2337 _mm512_cmpge_epu16_mask (__m512i __X
, __m512i __Y
)
2339 return (__mmask32
) __builtin_ia32_ucmpw512_mask ((__v32hi
) __X
,
2344 extern __inline __mmask32
2345 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2346 _mm512_cmple_epu16_mask (__m512i __X
, __m512i __Y
)
2348 return (__mmask32
) __builtin_ia32_ucmpw512_mask ((__v32hi
) __X
,
2353 extern __inline __mmask64
2354 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2355 _mm512_cmpneq_epi8_mask (__m512i __X
, __m512i __Y
)
2357 return (__mmask64
) __builtin_ia32_cmpb512_mask ((__v64qi
) __X
,
2362 extern __inline __mmask64
2363 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2364 _mm512_cmplt_epi8_mask (__m512i __X
, __m512i __Y
)
2366 return (__mmask64
) __builtin_ia32_cmpb512_mask ((__v64qi
) __X
,
2371 extern __inline __mmask64
2372 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2373 _mm512_cmpge_epi8_mask (__m512i __X
, __m512i __Y
)
2375 return (__mmask64
) __builtin_ia32_cmpb512_mask ((__v64qi
) __X
,
2380 extern __inline __mmask64
2381 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2382 _mm512_cmple_epi8_mask (__m512i __X
, __m512i __Y
)
2384 return (__mmask64
) __builtin_ia32_cmpb512_mask ((__v64qi
) __X
,
2389 extern __inline __mmask32
2390 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2391 _mm512_cmpneq_epi16_mask (__m512i __X
, __m512i __Y
)
2393 return (__mmask32
) __builtin_ia32_cmpw512_mask ((__v32hi
) __X
,
2398 extern __inline __mmask32
2399 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2400 _mm512_cmplt_epi16_mask (__m512i __X
, __m512i __Y
)
2402 return (__mmask32
) __builtin_ia32_cmpw512_mask ((__v32hi
) __X
,
2407 extern __inline __mmask32
2408 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2409 _mm512_cmpge_epi16_mask (__m512i __X
, __m512i __Y
)
2411 return (__mmask32
) __builtin_ia32_cmpw512_mask ((__v32hi
) __X
,
2416 extern __inline __mmask32
2417 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2418 _mm512_cmple_epi16_mask (__m512i __X
, __m512i __Y
)
2420 return (__mmask32
) __builtin_ia32_cmpw512_mask ((__v32hi
) __X
,
2426 extern __inline __m512i
2427 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2428 _mm512_alignr_epi8 (__m512i __A
, __m512i __B
, const int __N
)
2430 return (__m512i
) __builtin_ia32_palignr512 ((__v8di
) __A
,
2431 (__v8di
) __B
, __N
* 8);
2434 extern __inline __m512i
2435 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2436 _mm512_mask_alignr_epi8 (__m512i __W
, __mmask64 __U
, __m512i __A
,
2437 __m512i __B
, const int __N
)
2439 return (__m512i
) __builtin_ia32_palignr512_mask ((__v8di
) __A
,
2446 extern __inline __m512i
2447 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2448 _mm512_maskz_alignr_epi8 (__mmask64 __U
, __m512i __A
, __m512i __B
,
2451 return (__m512i
) __builtin_ia32_palignr512_mask ((__v8di
) __A
,
2455 _mm512_setzero_si512 (),
2459 extern __inline __m512i
2460 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2461 _mm512_dbsad_epu8 (__m512i __A
, __m512i __B
, const int __imm
)
2463 return (__m512i
) __builtin_ia32_dbpsadbw512_mask ((__v64qi
) __A
,
2467 _mm512_setzero_hi (),
2471 extern __inline __m512i
2472 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2473 _mm512_mask_dbsad_epu8 (__m512i __W
, __mmask32 __U
, __m512i __A
,
2474 __m512i __B
, const int __imm
)
2476 return (__m512i
) __builtin_ia32_dbpsadbw512_mask ((__v64qi
) __A
,
2483 extern __inline __m512i
2484 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2485 _mm512_maskz_dbsad_epu8 (__mmask32 __U
, __m512i __A
, __m512i __B
,
2488 return (__m512i
) __builtin_ia32_dbpsadbw512_mask ((__v64qi
) __A
,
2492 _mm512_setzero_hi(),
2496 extern __inline __m512i
2497 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2498 _mm512_srli_epi16 (__m512i __A
, const int __imm
)
2500 return (__m512i
) __builtin_ia32_psrlwi512_mask ((__v32hi
) __A
, __imm
,
2502 _mm512_setzero_hi (),
2506 extern __inline __m512i
2507 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2508 _mm512_mask_srli_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
2511 return (__m512i
) __builtin_ia32_psrlwi512_mask ((__v32hi
) __A
, __imm
,
2516 extern __inline __m512i
2517 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2518 _mm512_maskz_srli_epi16 (__mmask32 __U
, __m512i __A
, const int __imm
)
2520 return (__m512i
) __builtin_ia32_psrlwi512_mask ((__v32hi
) __A
, __imm
,
2522 _mm512_setzero_hi (),
2526 extern __inline __m512i
2527 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2528 _mm512_slli_epi16 (__m512i __A
, const int __B
)
2530 return (__m512i
) __builtin_ia32_psllwi512_mask ((__v32hi
) __A
, __B
,
2532 _mm512_setzero_hi (),
2536 extern __inline __m512i
2537 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2538 _mm512_mask_slli_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
2541 return (__m512i
) __builtin_ia32_psllwi512_mask ((__v32hi
) __A
, __B
,
2546 extern __inline __m512i
2547 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2548 _mm512_maskz_slli_epi16 (__mmask32 __U
, __m512i __A
, const int __B
)
2550 return (__m512i
) __builtin_ia32_psllwi512_mask ((__v32hi
) __A
, __B
,
2552 _mm512_setzero_hi (),
2556 extern __inline __m512i
2557 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2558 _mm512_shufflehi_epi16 (__m512i __A
, const int __imm
)
2560 return (__m512i
) __builtin_ia32_pshufhw512_mask ((__v32hi
) __A
,
2563 _mm512_setzero_hi (),
2567 extern __inline __m512i
2568 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2569 _mm512_mask_shufflehi_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
2572 return (__m512i
) __builtin_ia32_pshufhw512_mask ((__v32hi
) __A
,
2578 extern __inline __m512i
2579 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2580 _mm512_maskz_shufflehi_epi16 (__mmask32 __U
, __m512i __A
,
2583 return (__m512i
) __builtin_ia32_pshufhw512_mask ((__v32hi
) __A
,
2586 _mm512_setzero_hi (),
2590 extern __inline __m512i
2591 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2592 _mm512_shufflelo_epi16 (__m512i __A
, const int __imm
)
2594 return (__m512i
) __builtin_ia32_pshuflw512_mask ((__v32hi
) __A
,
2597 _mm512_setzero_hi (),
2601 extern __inline __m512i
2602 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2603 _mm512_mask_shufflelo_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
2606 return (__m512i
) __builtin_ia32_pshuflw512_mask ((__v32hi
) __A
,
2612 extern __inline __m512i
2613 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2614 _mm512_maskz_shufflelo_epi16 (__mmask32 __U
, __m512i __A
,
2617 return (__m512i
) __builtin_ia32_pshuflw512_mask ((__v32hi
) __A
,
2620 _mm512_setzero_hi (),
2624 extern __inline __m512i
2625 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2626 _mm512_srai_epi16 (__m512i __A
, const int __imm
)
2628 return (__m512i
) __builtin_ia32_psrawi512_mask ((__v32hi
) __A
, __imm
,
2630 _mm512_setzero_hi (),
2634 extern __inline __m512i
2635 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2636 _mm512_mask_srai_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
2639 return (__m512i
) __builtin_ia32_psrawi512_mask ((__v32hi
) __A
, __imm
,
2644 extern __inline __m512i
2645 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2646 _mm512_maskz_srai_epi16 (__mmask32 __U
, __m512i __A
, const int __imm
)
2648 return (__m512i
) __builtin_ia32_psrawi512_mask ((__v32hi
) __A
, __imm
,
2650 _mm512_setzero_hi (),
2654 extern __inline __m512i
2655 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2656 _mm512_mask_blend_epi16 (__mmask32 __U
, __m512i __A
, __m512i __W
)
2658 return (__m512i
) __builtin_ia32_blendmw_512_mask ((__v32hi
) __A
,
2663 extern __inline __m512i
2664 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2665 _mm512_mask_blend_epi8 (__mmask64 __U
, __m512i __A
, __m512i __W
)
2667 return (__m512i
) __builtin_ia32_blendmb_512_mask ((__v64qi
) __A
,
2672 extern __inline __mmask32
2673 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2674 _mm512_mask_cmp_epi16_mask (__mmask32 __U
, __m512i __X
, __m512i __Y
,
2677 return (__mmask32
) __builtin_ia32_cmpw512_mask ((__v32hi
) __X
,
2682 extern __inline __mmask32
2683 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2684 _mm512_cmp_epi16_mask (__m512i __X
, __m512i __Y
, const int __P
)
2686 return (__mmask32
) __builtin_ia32_cmpw512_mask ((__v32hi
) __X
,
2691 extern __inline __mmask64
2692 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2693 _mm512_mask_cmp_epi8_mask (__mmask32 __U
, __m512i __X
, __m512i __Y
,
2696 return (__mmask64
) __builtin_ia32_cmpb512_mask ((__v64qi
) __X
,
2701 extern __inline __mmask64
2702 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2703 _mm512_cmp_epi8_mask (__m512i __X
, __m512i __Y
, const int __P
)
2705 return (__mmask64
) __builtin_ia32_cmpb512_mask ((__v64qi
) __X
,
2710 extern __inline __mmask32
2711 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2712 _mm512_mask_cmp_epu16_mask (__mmask32 __U
, __m512i __X
, __m512i __Y
,
2715 return (__mmask32
) __builtin_ia32_ucmpw512_mask ((__v32hi
) __X
,
2720 extern __inline __mmask32
2721 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2722 _mm512_cmp_epu16_mask (__m512i __X
, __m512i __Y
, const int __P
)
2724 return (__mmask32
) __builtin_ia32_ucmpw512_mask ((__v32hi
) __X
,
2729 extern __inline __mmask64
2730 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2731 _mm512_mask_cmp_epu8_mask (__mmask32 __U
, __m512i __X
, __m512i __Y
,
2734 return (__mmask64
) __builtin_ia32_ucmpb512_mask ((__v64qi
) __X
,
2739 extern __inline __mmask64
2740 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2741 _mm512_cmp_epu8_mask (__m512i __X
, __m512i __Y
, const int __P
)
2743 return (__mmask64
) __builtin_ia32_ucmpb512_mask ((__v64qi
) __X
,
2748 extern __inline __m512i
2749 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2750 _mm512_packs_epi32 (__m512i __A
, __m512i __B
)
2752 return (__m512i
) __builtin_ia32_packssdw512_mask ((__v16si
) __A
,
2755 _mm512_setzero_hi (),
2759 extern __inline __m512i
2760 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2761 _mm512_maskz_packs_epi32 (__mmask32 __M
, __m512i __A
, __m512i __B
)
2763 return (__m512i
) __builtin_ia32_packssdw512_mask ((__v16si
) __A
,
2766 _mm512_setzero_hi(),
2770 extern __inline __m512i
2771 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2772 _mm512_mask_packs_epi32 (__m512i __W
, __mmask32 __M
, __m512i __A
,
2775 return (__m512i
) __builtin_ia32_packssdw512_mask ((__v16si
) __A
,
2781 extern __inline __m512i
2782 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2783 _mm512_packus_epi32 (__m512i __A
, __m512i __B
)
2785 return (__m512i
) __builtin_ia32_packusdw512_mask ((__v16si
) __A
,
2788 _mm512_setzero_hi (),
2792 extern __inline __m512i
2793 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2794 _mm512_maskz_packus_epi32 (__mmask32 __M
, __m512i __A
, __m512i __B
)
2796 return (__m512i
) __builtin_ia32_packusdw512_mask ((__v16si
) __A
,
2799 _mm512_setzero_hi(),
2803 extern __inline __m512i
2804 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2805 _mm512_mask_packus_epi32 (__m512i __W
, __mmask32 __M
, __m512i __A
,
2808 return (__m512i
) __builtin_ia32_packusdw512_mask ((__v16si
) __A
,
2814 extern __inline __m512i
2815 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2816 _mm512_bslli_epi128 (__m512i __A
, const int __N
)
2818 return (__m512i
) __builtin_ia32_pslldq512 (__A
, __N
* 8);
2821 extern __inline __m512i
2822 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2823 _mm512_bsrli_epi128 (__m512i __A
, const int __N
)
2825 return (__m512i
) __builtin_ia32_psrldq512 (__A
, __N
* 8);
2829 #define _mm512_alignr_epi8(X, Y, N) \
2830 ((__m512i) __builtin_ia32_palignr512 ((__v8di)(__m512i)(X), \
2831 (__v8di)(__m512i)(Y), \
2834 #define _mm512_mask_alignr_epi8(W, U, X, Y, N) \
2835 ((__m512i) __builtin_ia32_palignr512_mask ((__v8di)(__m512i)(X), \
2836 (__v8di)(__m512i)(Y), (int)(N * 8), \
2837 (__v8di)(__m512i)(W), (__mmask64)(U)))
2839 #define _mm512_maskz_alignr_epi8(U, X, Y, N) \
2840 ((__m512i) __builtin_ia32_palignr512_mask ((__v8di)(__m512i)(X), \
2841 (__v8di)(__m512i)(Y), (int)(N * 8), \
2842 (__v8di)(__m512i)_mm512_setzero_si512 (), \
2845 #define _mm512_dbsad_epu8(X, Y, C) \
2846 ((__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi)(__m512i) (X), \
2847 (__v64qi)(__m512i) (Y), (int) (C), \
2848 (__v32hi)(__m512i)_mm512_setzero_si512 (),\
2851 #define _mm512_mask_dbsad_epu8(W, U, X, Y, C) \
2852 ((__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi)(__m512i) (X), \
2853 (__v64qi)(__m512i) (Y), (int) (C), \
2854 (__v32hi)(__m512i)(W), \
2857 #define _mm512_maskz_dbsad_epu8(U, X, Y, C) \
2858 ((__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi)(__m512i) (X), \
2859 (__v64qi)(__m512i) (Y), (int) (C), \
2860 (__v32hi)(__m512i)_mm512_setzero_si512 (),\
2863 #define _mm512_srli_epi16(A, B) \
2864 ((__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi)(__m512i)(A), \
2865 (int)(B), (__v32hi)_mm512_setzero_hi(), (__mmask32)-1))
2867 #define _mm512_mask_srli_epi16(W, U, A, B) \
2868 ((__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi)(__m512i)(A), \
2869 (int)(B), (__v32hi)(__m512i)(W), (__mmask32)(U)))
2871 #define _mm512_maskz_srli_epi16(U, A, B) \
2872 ((__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi)(__m512i)(A), \
2873 (int)(B), (__v32hi)_mm512_setzero_hi(), (__mmask32)(U)))
2875 #define _mm512_slli_epi16(X, C) \
2876 ((__m512i)__builtin_ia32_psllwi512_mask ((__v32hi)(__m512i)(X), (int)(C),\
2877 (__v32hi)(__m512i)_mm512_setzero_hi(),\
2880 #define _mm512_mask_slli_epi16(W, U, X, C) \
2881 ((__m512i)__builtin_ia32_psllwi512_mask ((__v32hi)(__m512i)(X), (int)(C),\
2882 (__v32hi)(__m512i)(W),\
2885 #define _mm512_maskz_slli_epi16(U, X, C) \
2886 ((__m512i)__builtin_ia32_psllwi512_mask ((__v32hi)(__m512i)(X), (int)(C),\
2887 (__v32hi)(__m512i)_mm512_setzero_hi(),\
2890 #define _mm512_shufflehi_epi16(A, B) \
2891 ((__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi)(__m512i)(A), (int)(B), \
2892 (__v32hi)(__m512i)_mm512_setzero_hi(), \
2895 #define _mm512_mask_shufflehi_epi16(W, U, A, B) \
2896 ((__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi)(__m512i)(A), (int)(B), \
2897 (__v32hi)(__m512i)(W), \
2900 #define _mm512_maskz_shufflehi_epi16(U, A, B) \
2901 ((__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi)(__m512i)(A), (int)(B), \
2902 (__v32hi)(__m512i)_mm512_setzero_hi(), \
2905 #define _mm512_shufflelo_epi16(A, B) \
2906 ((__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi)(__m512i)(A), (int)(B), \
2907 (__v32hi)(__m512i)_mm512_setzero_hi(), \
2910 #define _mm512_mask_shufflelo_epi16(W, U, A, B) \
2911 ((__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi)(__m512i)(A), (int)(B), \
2912 (__v32hi)(__m512i)(W), \
2915 #define _mm512_maskz_shufflelo_epi16(U, A, B) \
2916 ((__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi)(__m512i)(A), (int)(B), \
2917 (__v32hi)(__m512i)_mm512_setzero_hi(), \
2920 #define _mm512_srai_epi16(A, B) \
2921 ((__m512i) __builtin_ia32_psrawi512_mask ((__v32hi)(__m512i)(A), \
2922 (int)(B), (__v32hi)_mm512_setzero_hi(), (__mmask32)-1))
2924 #define _mm512_mask_srai_epi16(W, U, A, B) \
2925 ((__m512i) __builtin_ia32_psrawi512_mask ((__v32hi)(__m512i)(A), \
2926 (int)(B), (__v32hi)(__m512i)(W), (__mmask32)(U)))
2928 #define _mm512_maskz_srai_epi16(U, A, B) \
2929 ((__m512i) __builtin_ia32_psrawi512_mask ((__v32hi)(__m512i)(A), \
2930 (int)(B), (__v32hi)_mm512_setzero_hi(), (__mmask32)(U)))
2932 #define _mm512_mask_blend_epi16(__U, __A, __W) \
2933 ((__m512i) __builtin_ia32_blendmw_512_mask ((__v32hi) (__A), \
2937 #define _mm512_mask_blend_epi8(__U, __A, __W) \
2938 ((__m512i) __builtin_ia32_blendmb_512_mask ((__v64qi) (__A), \
2942 #define _mm512_cmp_epi16_mask(X, Y, P) \
2943 ((__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi)(__m512i)(X), \
2944 (__v32hi)(__m512i)(Y), (int)(P),\
2947 #define _mm512_cmp_epi8_mask(X, Y, P) \
2948 ((__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi)(__m512i)(X), \
2949 (__v64qi)(__m512i)(Y), (int)(P),\
2952 #define _mm512_cmp_epu16_mask(X, Y, P) \
2953 ((__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi)(__m512i)(X), \
2954 (__v32hi)(__m512i)(Y), (int)(P),\
2957 #define _mm512_cmp_epu8_mask(X, Y, P) \
2958 ((__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi)(__m512i)(X), \
2959 (__v64qi)(__m512i)(Y), (int)(P),\
2962 #define _mm512_mask_cmp_epi16_mask(M, X, Y, P) \
2963 ((__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi)(__m512i)(X), \
2964 (__v32hi)(__m512i)(Y), (int)(P),\
2967 #define _mm512_mask_cmp_epi8_mask(M, X, Y, P) \
2968 ((__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi)(__m512i)(X), \
2969 (__v64qi)(__m512i)(Y), (int)(P),\
2972 #define _mm512_mask_cmp_epu16_mask(M, X, Y, P) \
2973 ((__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi)(__m512i)(X), \
2974 (__v32hi)(__m512i)(Y), (int)(P),\
2977 #define _mm512_mask_cmp_epu8_mask(M, X, Y, P) \
2978 ((__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi)(__m512i)(X), \
2979 (__v64qi)(__m512i)(Y), (int)(P),\
2982 #define _mm512_bslli_epi128(A, N) \
2983 ((__m512i)__builtin_ia32_pslldq512 ((__m512i)(A), (int)(N) * 8))
2985 #define _mm512_bsrli_epi128(A, N) \
2986 ((__m512i)__builtin_ia32_psrldq512 ((__m512i)(A), (int)(N) * 8))
2990 #ifdef __DISABLE_AVX512BW__
2991 #undef __DISABLE_AVX512BW__
2992 #pragma GCC pop_options
2993 #endif /* __DISABLE_AVX512BW__ */
2995 #endif /* _AVX512BWINTRIN_H_INCLUDED */