1 /* Copyright (C) 2014-2020 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 short __v32hi_u
__attribute__ ((__vector_size__ (64), \
40 __may_alias__
, __aligned__ (1)));
41 typedef char __v64qi
__attribute__ ((__vector_size__ (64)));
42 typedef char __v64qi_u
__attribute__ ((__vector_size__ (64), \
43 __may_alias__
, __aligned__ (1)));
45 typedef unsigned long long __mmask64
;
47 extern __inline
unsigned char
48 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
49 _ktest_mask32_u8 (__mmask32 __A
, __mmask32 __B
, unsigned char *__CF
)
51 *__CF
= (unsigned char) __builtin_ia32_ktestcsi (__A
, __B
);
52 return (unsigned char) __builtin_ia32_ktestzsi (__A
, __B
);
55 extern __inline
unsigned char
56 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
57 _ktest_mask64_u8 (__mmask64 __A
, __mmask64 __B
, unsigned char *__CF
)
59 *__CF
= (unsigned char) __builtin_ia32_ktestcdi (__A
, __B
);
60 return (unsigned char) __builtin_ia32_ktestzdi (__A
, __B
);
63 extern __inline
unsigned char
64 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
65 _ktestz_mask32_u8 (__mmask32 __A
, __mmask32 __B
)
67 return (unsigned char) __builtin_ia32_ktestzsi (__A
, __B
);
70 extern __inline
unsigned char
71 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
72 _ktestz_mask64_u8 (__mmask64 __A
, __mmask64 __B
)
74 return (unsigned char) __builtin_ia32_ktestzdi (__A
, __B
);
77 extern __inline
unsigned char
78 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
79 _ktestc_mask32_u8 (__mmask32 __A
, __mmask32 __B
)
81 return (unsigned char) __builtin_ia32_ktestcsi (__A
, __B
);
84 extern __inline
unsigned char
85 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
86 _ktestc_mask64_u8 (__mmask64 __A
, __mmask64 __B
)
88 return (unsigned char) __builtin_ia32_ktestcdi (__A
, __B
);
91 extern __inline
unsigned char
92 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
93 _kortest_mask32_u8 (__mmask32 __A
, __mmask32 __B
, unsigned char *__CF
)
95 *__CF
= (unsigned char) __builtin_ia32_kortestcsi (__A
, __B
);
96 return (unsigned char) __builtin_ia32_kortestzsi (__A
, __B
);
99 extern __inline
unsigned char
100 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
101 _kortest_mask64_u8 (__mmask64 __A
, __mmask64 __B
, unsigned char *__CF
)
103 *__CF
= (unsigned char) __builtin_ia32_kortestcdi (__A
, __B
);
104 return (unsigned char) __builtin_ia32_kortestzdi (__A
, __B
);
107 extern __inline
unsigned char
108 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
109 _kortestz_mask32_u8 (__mmask32 __A
, __mmask32 __B
)
111 return (unsigned char) __builtin_ia32_kortestzsi (__A
, __B
);
114 extern __inline
unsigned char
115 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
116 _kortestz_mask64_u8 (__mmask64 __A
, __mmask64 __B
)
118 return (unsigned char) __builtin_ia32_kortestzdi (__A
, __B
);
121 extern __inline
unsigned char
122 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
123 _kortestc_mask32_u8 (__mmask32 __A
, __mmask32 __B
)
125 return (unsigned char) __builtin_ia32_kortestcsi (__A
, __B
);
128 extern __inline
unsigned char
129 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
130 _kortestc_mask64_u8 (__mmask64 __A
, __mmask64 __B
)
132 return (unsigned char) __builtin_ia32_kortestcdi (__A
, __B
);
135 extern __inline __mmask32
136 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
137 _kadd_mask32 (__mmask32 __A
, __mmask32 __B
)
139 return (__mmask32
) __builtin_ia32_kaddsi ((__mmask32
) __A
, (__mmask32
) __B
);
142 extern __inline __mmask64
143 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
144 _kadd_mask64 (__mmask64 __A
, __mmask64 __B
)
146 return (__mmask64
) __builtin_ia32_kadddi ((__mmask64
) __A
, (__mmask64
) __B
);
149 extern __inline
unsigned int
150 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
151 _cvtmask32_u32 (__mmask32 __A
)
153 return (unsigned int) __builtin_ia32_kmovd ((__mmask32
) __A
);
156 extern __inline
unsigned long long
157 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
158 _cvtmask64_u64 (__mmask64 __A
)
160 return (unsigned long long) __builtin_ia32_kmovq ((__mmask64
) __A
);
163 extern __inline __mmask32
164 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
165 _cvtu32_mask32 (unsigned int __A
)
167 return (__mmask32
) __builtin_ia32_kmovd ((__mmask32
) __A
);
170 extern __inline __mmask64
171 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
172 _cvtu64_mask64 (unsigned long long __A
)
174 return (__mmask64
) __builtin_ia32_kmovq ((__mmask64
) __A
);
177 extern __inline __mmask32
178 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
179 _load_mask32 (__mmask32
*__A
)
181 return (__mmask32
) __builtin_ia32_kmovd (*__A
);
184 extern __inline __mmask64
185 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
186 _load_mask64 (__mmask64
*__A
)
188 return (__mmask64
) __builtin_ia32_kmovq (*(__mmask64
*) __A
);
192 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
193 _store_mask32 (__mmask32
*__A
, __mmask32 __B
)
195 *(__mmask32
*) __A
= __builtin_ia32_kmovd (__B
);
199 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
200 _store_mask64 (__mmask64
*__A
, __mmask64 __B
)
202 *(__mmask64
*) __A
= __builtin_ia32_kmovq (__B
);
205 extern __inline __mmask32
206 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
207 _knot_mask32 (__mmask32 __A
)
209 return (__mmask32
) __builtin_ia32_knotsi ((__mmask32
) __A
);
212 extern __inline __mmask64
213 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
214 _knot_mask64 (__mmask64 __A
)
216 return (__mmask64
) __builtin_ia32_knotdi ((__mmask64
) __A
);
219 extern __inline __mmask32
220 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
221 _kor_mask32 (__mmask32 __A
, __mmask32 __B
)
223 return (__mmask32
) __builtin_ia32_korsi ((__mmask32
) __A
, (__mmask32
) __B
);
226 extern __inline __mmask64
227 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
228 _kor_mask64 (__mmask64 __A
, __mmask64 __B
)
230 return (__mmask64
) __builtin_ia32_kordi ((__mmask64
) __A
, (__mmask64
) __B
);
233 extern __inline __mmask32
234 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
235 _kxnor_mask32 (__mmask32 __A
, __mmask32 __B
)
237 return (__mmask32
) __builtin_ia32_kxnorsi ((__mmask32
) __A
, (__mmask32
) __B
);
240 extern __inline __mmask64
241 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
242 _kxnor_mask64 (__mmask64 __A
, __mmask64 __B
)
244 return (__mmask64
) __builtin_ia32_kxnordi ((__mmask64
) __A
, (__mmask64
) __B
);
247 extern __inline __mmask32
248 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
249 _kxor_mask32 (__mmask32 __A
, __mmask32 __B
)
251 return (__mmask32
) __builtin_ia32_kxorsi ((__mmask32
) __A
, (__mmask32
) __B
);
254 extern __inline __mmask64
255 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
256 _kxor_mask64 (__mmask64 __A
, __mmask64 __B
)
258 return (__mmask64
) __builtin_ia32_kxordi ((__mmask64
) __A
, (__mmask64
) __B
);
261 extern __inline __mmask32
262 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
263 _kand_mask32 (__mmask32 __A
, __mmask32 __B
)
265 return (__mmask32
) __builtin_ia32_kandsi ((__mmask32
) __A
, (__mmask32
) __B
);
268 extern __inline __mmask64
269 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
270 _kand_mask64 (__mmask64 __A
, __mmask64 __B
)
272 return (__mmask64
) __builtin_ia32_kanddi ((__mmask64
) __A
, (__mmask64
) __B
);
275 extern __inline __mmask32
276 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
277 _kandn_mask32 (__mmask32 __A
, __mmask32 __B
)
279 return (__mmask32
) __builtin_ia32_kandnsi ((__mmask32
) __A
, (__mmask32
) __B
);
282 extern __inline __mmask64
283 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
284 _kandn_mask64 (__mmask64 __A
, __mmask64 __B
)
286 return (__mmask64
) __builtin_ia32_kandndi ((__mmask64
) __A
, (__mmask64
) __B
);
289 extern __inline __m512i
290 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
291 _mm512_mask_mov_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
)
293 return (__m512i
) __builtin_ia32_movdquhi512_mask ((__v32hi
) __A
,
298 extern __inline __m512i
299 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
300 _mm512_maskz_mov_epi16 (__mmask32 __U
, __m512i __A
)
302 return (__m512i
) __builtin_ia32_movdquhi512_mask ((__v32hi
) __A
,
304 _mm512_setzero_si512 (),
308 extern __inline __m512i
309 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
310 _mm512_loadu_epi16 (void const *__P
)
312 return (__m512i
) (*(__v32hi_u
*) __P
);
315 extern __inline __m512i
316 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
317 _mm512_mask_loadu_epi16 (__m512i __W
, __mmask32 __U
, void const *__P
)
319 return (__m512i
) __builtin_ia32_loaddquhi512_mask ((const short *) __P
,
324 extern __inline __m512i
325 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
326 _mm512_maskz_loadu_epi16 (__mmask32 __U
, void const *__P
)
328 return (__m512i
) __builtin_ia32_loaddquhi512_mask ((const short *) __P
,
330 _mm512_setzero_si512 (),
335 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
336 _mm512_storeu_epi16 (void *__P
, __m512i __A
)
338 *(__v32hi_u
*) __P
= (__v32hi_u
) __A
;
342 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
343 _mm512_mask_storeu_epi16 (void *__P
, __mmask32 __U
, __m512i __A
)
345 __builtin_ia32_storedquhi512_mask ((short *) __P
,
350 extern __inline __m512i
351 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
352 _mm512_mask_mov_epi8 (__m512i __W
, __mmask64 __U
, __m512i __A
)
354 return (__m512i
) __builtin_ia32_movdquqi512_mask ((__v64qi
) __A
,
359 extern __inline __m512i
360 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
361 _mm512_maskz_mov_epi8 (__mmask64 __U
, __m512i __A
)
363 return (__m512i
) __builtin_ia32_movdquqi512_mask ((__v64qi
) __A
,
365 _mm512_setzero_si512 (),
369 extern __inline __mmask32
370 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
371 _mm512_kunpackw (__mmask32 __A
, __mmask32 __B
)
373 return (__mmask32
) __builtin_ia32_kunpcksi ((__mmask32
) __A
,
377 extern __inline __mmask32
378 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
379 _kunpackw_mask32 (__mmask16 __A
, __mmask16 __B
)
381 return (__mmask32
) __builtin_ia32_kunpcksi ((__mmask32
) __A
,
385 extern __inline __mmask64
386 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
387 _mm512_kunpackd (__mmask64 __A
, __mmask64 __B
)
389 return (__mmask64
) __builtin_ia32_kunpckdi ((__mmask64
) __A
,
393 extern __inline __mmask64
394 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
395 _kunpackd_mask64 (__mmask32 __A
, __mmask32 __B
)
397 return (__mmask64
) __builtin_ia32_kunpckdi ((__mmask64
) __A
,
401 extern __inline __m512i
402 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
403 _mm512_loadu_epi8 (void const *__P
)
405 return (__m512i
) (*(__v64qi_u
*) __P
);
408 extern __inline __m512i
409 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
410 _mm512_mask_loadu_epi8 (__m512i __W
, __mmask64 __U
, void const *__P
)
412 return (__m512i
) __builtin_ia32_loaddquqi512_mask ((const char *) __P
,
417 extern __inline __m512i
418 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
419 _mm512_maskz_loadu_epi8 (__mmask64 __U
, void const *__P
)
421 return (__m512i
) __builtin_ia32_loaddquqi512_mask ((const char *) __P
,
423 _mm512_setzero_si512 (),
428 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
429 _mm512_storeu_epi8 (void *__P
, __m512i __A
)
431 *(__v64qi_u
*) __P
= (__v64qi_u
) __A
;
435 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
436 _mm512_mask_storeu_epi8 (void *__P
, __mmask64 __U
, __m512i __A
)
438 __builtin_ia32_storedquqi512_mask ((char *) __P
,
443 extern __inline __m512i
444 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
445 _mm512_sad_epu8 (__m512i __A
, __m512i __B
)
447 return (__m512i
) __builtin_ia32_psadbw512 ((__v64qi
) __A
,
451 extern __inline __m256i
452 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
453 _mm512_cvtepi16_epi8 (__m512i __A
)
455 return (__m256i
) __builtin_ia32_pmovwb512_mask ((__v32hi
) __A
,
456 (__v32qi
) _mm256_undefined_si256(),
461 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
462 _mm512_mask_cvtepi16_storeu_epi8 (void * __P
, __mmask32 __M
, __m512i __A
)
464 __builtin_ia32_pmovwb512mem_mask ((__v32qi
*) __P
, (__v32hi
) __A
, __M
);
467 extern __inline __m256i
468 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
469 _mm512_mask_cvtepi16_epi8 (__m256i __O
, __mmask32 __M
, __m512i __A
)
471 return (__m256i
) __builtin_ia32_pmovwb512_mask ((__v32hi
) __A
,
475 extern __inline __m256i
476 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
477 _mm512_maskz_cvtepi16_epi8 (__mmask32 __M
, __m512i __A
)
479 return (__m256i
) __builtin_ia32_pmovwb512_mask ((__v32hi
) __A
,
481 _mm256_setzero_si256 (),
485 extern __inline __m256i
486 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
487 _mm512_cvtsepi16_epi8 (__m512i __A
)
489 return (__m256i
) __builtin_ia32_pmovswb512_mask ((__v32hi
) __A
,
490 (__v32qi
)_mm256_undefined_si256(),
495 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
496 _mm512_mask_cvtsepi16_storeu_epi8 (void * __P
, __mmask32 __M
, __m512i __A
)
498 __builtin_ia32_pmovswb512mem_mask ((__v32qi
*) __P
, (__v32hi
) __A
, __M
);
501 extern __inline __m256i
502 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
503 _mm512_mask_cvtsepi16_epi8 (__m256i __O
, __mmask32 __M
, __m512i __A
)
505 return (__m256i
) __builtin_ia32_pmovswb512_mask ((__v32hi
) __A
,
510 extern __inline __m256i
511 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
512 _mm512_maskz_cvtsepi16_epi8 (__mmask32 __M
, __m512i __A
)
514 return (__m256i
) __builtin_ia32_pmovswb512_mask ((__v32hi
) __A
,
516 _mm256_setzero_si256 (),
520 extern __inline __m256i
521 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
522 _mm512_cvtusepi16_epi8 (__m512i __A
)
524 return (__m256i
) __builtin_ia32_pmovuswb512_mask ((__v32hi
) __A
,
525 (__v32qi
)_mm256_undefined_si256(),
529 extern __inline __m256i
530 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
531 _mm512_mask_cvtusepi16_epi8 (__m256i __O
, __mmask32 __M
, __m512i __A
)
533 return (__m256i
) __builtin_ia32_pmovuswb512_mask ((__v32hi
) __A
,
539 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
540 _mm512_mask_cvtusepi16_storeu_epi8 (void * __P
, __mmask32 __M
, __m512i __A
)
542 __builtin_ia32_pmovuswb512mem_mask ((__v32qi
*) __P
, (__v32hi
) __A
, __M
);
545 extern __inline __m256i
546 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
547 _mm512_maskz_cvtusepi16_epi8 (__mmask32 __M
, __m512i __A
)
549 return (__m256i
) __builtin_ia32_pmovuswb512_mask ((__v32hi
) __A
,
551 _mm256_setzero_si256 (),
555 extern __inline __m512i
556 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
557 _mm512_broadcastb_epi8 (__m128i __A
)
559 return (__m512i
) __builtin_ia32_pbroadcastb512_mask ((__v16qi
) __A
,
560 (__v64qi
)_mm512_undefined_epi32(),
564 extern __inline __m512i
565 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
566 _mm512_mask_broadcastb_epi8 (__m512i __O
, __mmask64 __M
, __m128i __A
)
568 return (__m512i
) __builtin_ia32_pbroadcastb512_mask ((__v16qi
) __A
,
573 extern __inline __m512i
574 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
575 _mm512_maskz_broadcastb_epi8 (__mmask64 __M
, __m128i __A
)
577 return (__m512i
) __builtin_ia32_pbroadcastb512_mask ((__v16qi
) __A
,
579 _mm512_setzero_si512 (),
583 extern __inline __m512i
584 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
585 _mm512_mask_set1_epi8 (__m512i __O
, __mmask64 __M
, char __A
)
587 return (__m512i
) __builtin_ia32_pbroadcastb512_gpr_mask (__A
,
592 extern __inline __m512i
593 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
594 _mm512_maskz_set1_epi8 (__mmask64 __M
, char __A
)
597 __builtin_ia32_pbroadcastb512_gpr_mask (__A
,
599 _mm512_setzero_si512 (),
603 extern __inline __m512i
604 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
605 _mm512_broadcastw_epi16 (__m128i __A
)
607 return (__m512i
) __builtin_ia32_pbroadcastw512_mask ((__v8hi
) __A
,
608 (__v32hi
)_mm512_undefined_epi32(),
612 extern __inline __m512i
613 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
614 _mm512_mask_broadcastw_epi16 (__m512i __O
, __mmask32 __M
, __m128i __A
)
616 return (__m512i
) __builtin_ia32_pbroadcastw512_mask ((__v8hi
) __A
,
621 extern __inline __m512i
622 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
623 _mm512_maskz_broadcastw_epi16 (__mmask32 __M
, __m128i __A
)
625 return (__m512i
) __builtin_ia32_pbroadcastw512_mask ((__v8hi
) __A
,
627 _mm512_setzero_si512 (),
631 extern __inline __m512i
632 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
633 _mm512_mask_set1_epi16 (__m512i __O
, __mmask32 __M
, short __A
)
635 return (__m512i
) __builtin_ia32_pbroadcastw512_gpr_mask (__A
,
640 extern __inline __m512i
641 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
642 _mm512_maskz_set1_epi16 (__mmask32 __M
, short __A
)
645 __builtin_ia32_pbroadcastw512_gpr_mask (__A
,
647 _mm512_setzero_si512 (),
651 extern __inline __m512i
652 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
653 _mm512_mulhrs_epi16 (__m512i __A
, __m512i __B
)
655 return (__m512i
) __builtin_ia32_pmulhrsw512_mask ((__v32hi
) __A
,
658 _mm512_setzero_si512 (),
662 extern __inline __m512i
663 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
664 _mm512_mask_mulhrs_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
667 return (__m512i
) __builtin_ia32_pmulhrsw512_mask ((__v32hi
) __A
,
673 extern __inline __m512i
674 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
675 _mm512_maskz_mulhrs_epi16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
677 return (__m512i
) __builtin_ia32_pmulhrsw512_mask ((__v32hi
) __A
,
680 _mm512_setzero_si512 (),
684 extern __inline __m512i
685 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
686 _mm512_mulhi_epi16 (__m512i __A
, __m512i __B
)
688 return (__m512i
) __builtin_ia32_pmulhw512_mask ((__v32hi
) __A
,
691 _mm512_setzero_si512 (),
695 extern __inline __m512i
696 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
697 _mm512_mask_mulhi_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
700 return (__m512i
) __builtin_ia32_pmulhw512_mask ((__v32hi
) __A
,
706 extern __inline __m512i
707 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
708 _mm512_maskz_mulhi_epi16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
710 return (__m512i
) __builtin_ia32_pmulhw512_mask ((__v32hi
) __A
,
713 _mm512_setzero_si512 (),
717 extern __inline __m512i
718 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
719 _mm512_mulhi_epu16 (__m512i __A
, __m512i __B
)
721 return (__m512i
) __builtin_ia32_pmulhuw512_mask ((__v32hi
) __A
,
724 _mm512_setzero_si512 (),
728 extern __inline __m512i
729 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
730 _mm512_mask_mulhi_epu16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
733 return (__m512i
) __builtin_ia32_pmulhuw512_mask ((__v32hi
) __A
,
739 extern __inline __m512i
740 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
741 _mm512_maskz_mulhi_epu16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
743 return (__m512i
) __builtin_ia32_pmulhuw512_mask ((__v32hi
) __A
,
746 _mm512_setzero_si512 (),
750 extern __inline __m512i
751 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
752 _mm512_mullo_epi16 (__m512i __A
, __m512i __B
)
754 return (__m512i
) ((__v32hu
) __A
* (__v32hu
) __B
);
757 extern __inline __m512i
758 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
759 _mm512_mask_mullo_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
762 return (__m512i
) __builtin_ia32_pmullw512_mask ((__v32hi
) __A
,
768 extern __inline __m512i
769 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
770 _mm512_maskz_mullo_epi16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
772 return (__m512i
) __builtin_ia32_pmullw512_mask ((__v32hi
) __A
,
775 _mm512_setzero_si512 (),
779 extern __inline __m512i
780 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
781 _mm512_cvtepi8_epi16 (__m256i __A
)
783 return (__m512i
) __builtin_ia32_pmovsxbw512_mask ((__v32qi
) __A
,
785 _mm512_setzero_si512 (),
789 extern __inline __m512i
790 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
791 _mm512_mask_cvtepi8_epi16 (__m512i __W
, __mmask32 __U
, __m256i __A
)
793 return (__m512i
) __builtin_ia32_pmovsxbw512_mask ((__v32qi
) __A
,
798 extern __inline __m512i
799 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
800 _mm512_maskz_cvtepi8_epi16 (__mmask32 __U
, __m256i __A
)
802 return (__m512i
) __builtin_ia32_pmovsxbw512_mask ((__v32qi
) __A
,
804 _mm512_setzero_si512 (),
808 extern __inline __m512i
809 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
810 _mm512_cvtepu8_epi16 (__m256i __A
)
812 return (__m512i
) __builtin_ia32_pmovzxbw512_mask ((__v32qi
) __A
,
814 _mm512_setzero_si512 (),
818 extern __inline __m512i
819 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
820 _mm512_mask_cvtepu8_epi16 (__m512i __W
, __mmask32 __U
, __m256i __A
)
822 return (__m512i
) __builtin_ia32_pmovzxbw512_mask ((__v32qi
) __A
,
827 extern __inline __m512i
828 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
829 _mm512_maskz_cvtepu8_epi16 (__mmask32 __U
, __m256i __A
)
831 return (__m512i
) __builtin_ia32_pmovzxbw512_mask ((__v32qi
) __A
,
833 _mm512_setzero_si512 (),
837 extern __inline __m512i
838 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
839 _mm512_permutexvar_epi16 (__m512i __A
, __m512i __B
)
841 return (__m512i
) __builtin_ia32_permvarhi512_mask ((__v32hi
) __B
,
844 _mm512_setzero_si512 (),
848 extern __inline __m512i
849 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
850 _mm512_maskz_permutexvar_epi16 (__mmask32 __M
, __m512i __A
,
853 return (__m512i
) __builtin_ia32_permvarhi512_mask ((__v32hi
) __B
,
856 _mm512_setzero_si512 (),
860 extern __inline __m512i
861 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
862 _mm512_mask_permutexvar_epi16 (__m512i __W
, __mmask32 __M
, __m512i __A
,
865 return (__m512i
) __builtin_ia32_permvarhi512_mask ((__v32hi
) __B
,
871 extern __inline __m512i
872 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
873 _mm512_permutex2var_epi16 (__m512i __A
, __m512i __I
, __m512i __B
)
875 return (__m512i
) __builtin_ia32_vpermt2varhi512_mask ((__v32hi
) __I
882 extern __inline __m512i
883 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
884 _mm512_mask_permutex2var_epi16 (__m512i __A
, __mmask32 __U
,
885 __m512i __I
, __m512i __B
)
887 return (__m512i
) __builtin_ia32_vpermt2varhi512_mask ((__v32hi
) __I
895 extern __inline __m512i
896 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
897 _mm512_mask2_permutex2var_epi16 (__m512i __A
, __m512i __I
,
898 __mmask32 __U
, __m512i __B
)
900 return (__m512i
) __builtin_ia32_vpermi2varhi512_mask ((__v32hi
) __A
,
908 extern __inline __m512i
909 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
910 _mm512_maskz_permutex2var_epi16 (__mmask32 __U
, __m512i __A
,
911 __m512i __I
, __m512i __B
)
913 return (__m512i
) __builtin_ia32_vpermt2varhi512_maskz ((__v32hi
) __I
921 extern __inline __m512i
922 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
923 _mm512_avg_epu8 (__m512i __A
, __m512i __B
)
925 return (__m512i
) __builtin_ia32_pavgb512_mask ((__v64qi
) __A
,
928 _mm512_setzero_si512 (),
932 extern __inline __m512i
933 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
934 _mm512_mask_avg_epu8 (__m512i __W
, __mmask64 __U
, __m512i __A
,
937 return (__m512i
) __builtin_ia32_pavgb512_mask ((__v64qi
) __A
,
943 extern __inline __m512i
944 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
945 _mm512_maskz_avg_epu8 (__mmask64 __U
, __m512i __A
, __m512i __B
)
947 return (__m512i
) __builtin_ia32_pavgb512_mask ((__v64qi
) __A
,
950 _mm512_setzero_si512 (),
954 extern __inline __m512i
955 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
956 _mm512_add_epi8 (__m512i __A
, __m512i __B
)
958 return (__m512i
) ((__v64qu
) __A
+ (__v64qu
) __B
);
961 extern __inline __m512i
962 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
963 _mm512_mask_add_epi8 (__m512i __W
, __mmask64 __U
, __m512i __A
,
966 return (__m512i
) __builtin_ia32_paddb512_mask ((__v64qi
) __A
,
972 extern __inline __m512i
973 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
974 _mm512_maskz_add_epi8 (__mmask64 __U
, __m512i __A
, __m512i __B
)
976 return (__m512i
) __builtin_ia32_paddb512_mask ((__v64qi
) __A
,
979 _mm512_setzero_si512 (),
983 extern __inline __m512i
984 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
985 _mm512_sub_epi8 (__m512i __A
, __m512i __B
)
987 return (__m512i
) ((__v64qu
) __A
- (__v64qu
) __B
);
990 extern __inline __m512i
991 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
992 _mm512_mask_sub_epi8 (__m512i __W
, __mmask64 __U
, __m512i __A
,
995 return (__m512i
) __builtin_ia32_psubb512_mask ((__v64qi
) __A
,
1001 extern __inline __m512i
1002 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1003 _mm512_maskz_sub_epi8 (__mmask64 __U
, __m512i __A
, __m512i __B
)
1005 return (__m512i
) __builtin_ia32_psubb512_mask ((__v64qi
) __A
,
1008 _mm512_setzero_si512 (),
1012 extern __inline __m512i
1013 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1014 _mm512_avg_epu16 (__m512i __A
, __m512i __B
)
1016 return (__m512i
) __builtin_ia32_pavgw512_mask ((__v32hi
) __A
,
1019 _mm512_setzero_si512 (),
1023 extern __inline __m512i
1024 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1025 _mm512_mask_avg_epu16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
1028 return (__m512i
) __builtin_ia32_pavgw512_mask ((__v32hi
) __A
,
1034 extern __inline __m512i
1035 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1036 _mm512_maskz_avg_epu16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
1038 return (__m512i
) __builtin_ia32_pavgw512_mask ((__v32hi
) __A
,
1041 _mm512_setzero_si512 (),
1045 extern __inline __m512i
1046 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1047 _mm512_subs_epi8 (__m512i __A
, __m512i __B
)
1049 return (__m512i
) __builtin_ia32_psubsb512_mask ((__v64qi
) __A
,
1052 _mm512_setzero_si512 (),
1056 extern __inline __m512i
1057 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1058 _mm512_mask_subs_epi8 (__m512i __W
, __mmask64 __U
, __m512i __A
,
1061 return (__m512i
) __builtin_ia32_psubsb512_mask ((__v64qi
) __A
,
1067 extern __inline __m512i
1068 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1069 _mm512_maskz_subs_epi8 (__mmask64 __U
, __m512i __A
, __m512i __B
)
1071 return (__m512i
) __builtin_ia32_psubsb512_mask ((__v64qi
) __A
,
1074 _mm512_setzero_si512 (),
1078 extern __inline __m512i
1079 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1080 _mm512_subs_epu8 (__m512i __A
, __m512i __B
)
1082 return (__m512i
) __builtin_ia32_psubusb512_mask ((__v64qi
) __A
,
1085 _mm512_setzero_si512 (),
1089 extern __inline __m512i
1090 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1091 _mm512_mask_subs_epu8 (__m512i __W
, __mmask64 __U
, __m512i __A
,
1094 return (__m512i
) __builtin_ia32_psubusb512_mask ((__v64qi
) __A
,
1100 extern __inline __m512i
1101 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1102 _mm512_maskz_subs_epu8 (__mmask64 __U
, __m512i __A
, __m512i __B
)
1104 return (__m512i
) __builtin_ia32_psubusb512_mask ((__v64qi
) __A
,
1107 _mm512_setzero_si512 (),
1111 extern __inline __m512i
1112 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1113 _mm512_adds_epi8 (__m512i __A
, __m512i __B
)
1115 return (__m512i
) __builtin_ia32_paddsb512_mask ((__v64qi
) __A
,
1118 _mm512_setzero_si512 (),
1122 extern __inline __m512i
1123 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1124 _mm512_mask_adds_epi8 (__m512i __W
, __mmask64 __U
, __m512i __A
,
1127 return (__m512i
) __builtin_ia32_paddsb512_mask ((__v64qi
) __A
,
1133 extern __inline __m512i
1134 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1135 _mm512_maskz_adds_epi8 (__mmask64 __U
, __m512i __A
, __m512i __B
)
1137 return (__m512i
) __builtin_ia32_paddsb512_mask ((__v64qi
) __A
,
1140 _mm512_setzero_si512 (),
1144 extern __inline __m512i
1145 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1146 _mm512_adds_epu8 (__m512i __A
, __m512i __B
)
1148 return (__m512i
) __builtin_ia32_paddusb512_mask ((__v64qi
) __A
,
1151 _mm512_setzero_si512 (),
1155 extern __inline __m512i
1156 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1157 _mm512_mask_adds_epu8 (__m512i __W
, __mmask64 __U
, __m512i __A
,
1160 return (__m512i
) __builtin_ia32_paddusb512_mask ((__v64qi
) __A
,
1166 extern __inline __m512i
1167 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1168 _mm512_maskz_adds_epu8 (__mmask64 __U
, __m512i __A
, __m512i __B
)
1170 return (__m512i
) __builtin_ia32_paddusb512_mask ((__v64qi
) __A
,
1173 _mm512_setzero_si512 (),
1177 extern __inline __m512i
1178 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1179 _mm512_sub_epi16 (__m512i __A
, __m512i __B
)
1181 return (__m512i
) ((__v32hu
) __A
- (__v32hu
) __B
);
1184 extern __inline __m512i
1185 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1186 _mm512_mask_sub_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
1189 return (__m512i
) __builtin_ia32_psubw512_mask ((__v32hi
) __A
,
1195 extern __inline __m512i
1196 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1197 _mm512_maskz_sub_epi16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
1199 return (__m512i
) __builtin_ia32_psubw512_mask ((__v32hi
) __A
,
1202 _mm512_setzero_si512 (),
1206 extern __inline __m512i
1207 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1208 _mm512_subs_epi16 (__m512i __A
, __m512i __B
)
1210 return (__m512i
) __builtin_ia32_psubsw512_mask ((__v32hi
) __A
,
1213 _mm512_setzero_si512 (),
1217 extern __inline __m512i
1218 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1219 _mm512_mask_subs_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
1222 return (__m512i
) __builtin_ia32_psubsw512_mask ((__v32hi
) __A
,
1228 extern __inline __m512i
1229 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1230 _mm512_maskz_subs_epi16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
1232 return (__m512i
) __builtin_ia32_psubsw512_mask ((__v32hi
) __A
,
1235 _mm512_setzero_si512 (),
1239 extern __inline __m512i
1240 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1241 _mm512_subs_epu16 (__m512i __A
, __m512i __B
)
1243 return (__m512i
) __builtin_ia32_psubusw512_mask ((__v32hi
) __A
,
1246 _mm512_setzero_si512 (),
1250 extern __inline __m512i
1251 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1252 _mm512_mask_subs_epu16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
1255 return (__m512i
) __builtin_ia32_psubusw512_mask ((__v32hi
) __A
,
1261 extern __inline __m512i
1262 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1263 _mm512_maskz_subs_epu16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
1265 return (__m512i
) __builtin_ia32_psubusw512_mask ((__v32hi
) __A
,
1268 _mm512_setzero_si512 (),
1272 extern __inline __m512i
1273 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1274 _mm512_add_epi16 (__m512i __A
, __m512i __B
)
1276 return (__m512i
) ((__v32hu
) __A
+ (__v32hu
) __B
);
1279 extern __inline __m512i
1280 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1281 _mm512_mask_add_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
1284 return (__m512i
) __builtin_ia32_paddw512_mask ((__v32hi
) __A
,
1290 extern __inline __m512i
1291 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1292 _mm512_maskz_add_epi16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
1294 return (__m512i
) __builtin_ia32_paddw512_mask ((__v32hi
) __A
,
1297 _mm512_setzero_si512 (),
1301 extern __inline __m512i
1302 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1303 _mm512_adds_epi16 (__m512i __A
, __m512i __B
)
1305 return (__m512i
) __builtin_ia32_paddsw512_mask ((__v32hi
) __A
,
1308 _mm512_setzero_si512 (),
1312 extern __inline __m512i
1313 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1314 _mm512_mask_adds_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
1317 return (__m512i
) __builtin_ia32_paddsw512_mask ((__v32hi
) __A
,
1323 extern __inline __m512i
1324 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1325 _mm512_maskz_adds_epi16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
1327 return (__m512i
) __builtin_ia32_paddsw512_mask ((__v32hi
) __A
,
1330 _mm512_setzero_si512 (),
1334 extern __inline __m512i
1335 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1336 _mm512_adds_epu16 (__m512i __A
, __m512i __B
)
1338 return (__m512i
) __builtin_ia32_paddusw512_mask ((__v32hi
) __A
,
1341 _mm512_setzero_si512 (),
1345 extern __inline __m512i
1346 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1347 _mm512_mask_adds_epu16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
1350 return (__m512i
) __builtin_ia32_paddusw512_mask ((__v32hi
) __A
,
1356 extern __inline __m512i
1357 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1358 _mm512_maskz_adds_epu16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
1360 return (__m512i
) __builtin_ia32_paddusw512_mask ((__v32hi
) __A
,
1363 _mm512_setzero_si512 (),
1367 extern __inline __m512i
1368 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1369 _mm512_srl_epi16 (__m512i __A
, __m128i __B
)
1371 return (__m512i
) __builtin_ia32_psrlw512_mask ((__v32hi
) __A
,
1374 _mm512_setzero_si512 (),
1378 extern __inline __m512i
1379 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1380 _mm512_mask_srl_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
1383 return (__m512i
) __builtin_ia32_psrlw512_mask ((__v32hi
) __A
,
1389 extern __inline __m512i
1390 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1391 _mm512_maskz_srl_epi16 (__mmask32 __U
, __m512i __A
, __m128i __B
)
1393 return (__m512i
) __builtin_ia32_psrlw512_mask ((__v32hi
) __A
,
1396 _mm512_setzero_si512 (),
1400 extern __inline __m512i
1401 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1402 _mm512_packs_epi16 (__m512i __A
, __m512i __B
)
1404 return (__m512i
) __builtin_ia32_packsswb512_mask ((__v32hi
) __A
,
1407 _mm512_setzero_si512 (),
1411 extern __inline __m512i
1412 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1413 _mm512_sll_epi16 (__m512i __A
, __m128i __B
)
1415 return (__m512i
) __builtin_ia32_psllw512_mask ((__v32hi
) __A
,
1418 _mm512_setzero_si512 (),
1422 extern __inline __m512i
1423 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1424 _mm512_mask_sll_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
1427 return (__m512i
) __builtin_ia32_psllw512_mask ((__v32hi
) __A
,
1433 extern __inline __m512i
1434 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1435 _mm512_maskz_sll_epi16 (__mmask32 __U
, __m512i __A
, __m128i __B
)
1437 return (__m512i
) __builtin_ia32_psllw512_mask ((__v32hi
) __A
,
1440 _mm512_setzero_si512 (),
1444 extern __inline __m512i
1445 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1446 _mm512_maddubs_epi16 (__m512i __X
, __m512i __Y
)
1448 return (__m512i
) __builtin_ia32_pmaddubsw512_mask ((__v64qi
) __X
,
1451 _mm512_setzero_si512 (),
1455 extern __inline __m512i
1456 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1457 _mm512_mask_maddubs_epi16 (__m512i __W
, __mmask32 __U
, __m512i __X
,
1460 return (__m512i
) __builtin_ia32_pmaddubsw512_mask ((__v64qi
) __X
,
1466 extern __inline __m512i
1467 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1468 _mm512_maskz_maddubs_epi16 (__mmask32 __U
, __m512i __X
, __m512i __Y
)
1470 return (__m512i
) __builtin_ia32_pmaddubsw512_mask ((__v64qi
) __X
,
1473 _mm512_setzero_si512 (),
1477 extern __inline __m512i
1478 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1479 _mm512_madd_epi16 (__m512i __A
, __m512i __B
)
1481 return (__m512i
) __builtin_ia32_pmaddwd512_mask ((__v32hi
) __A
,
1484 _mm512_setzero_si512 (),
1488 extern __inline __m512i
1489 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1490 _mm512_mask_madd_epi16 (__m512i __W
, __mmask16 __U
, __m512i __A
,
1493 return (__m512i
) __builtin_ia32_pmaddwd512_mask ((__v32hi
) __A
,
1499 extern __inline __m512i
1500 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1501 _mm512_maskz_madd_epi16 (__mmask16 __U
, __m512i __A
, __m512i __B
)
1503 return (__m512i
) __builtin_ia32_pmaddwd512_mask ((__v32hi
) __A
,
1506 _mm512_setzero_si512 (),
1510 extern __inline __m512i
1511 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1512 _mm512_unpackhi_epi8 (__m512i __A
, __m512i __B
)
1514 return (__m512i
) __builtin_ia32_punpckhbw512_mask ((__v64qi
) __A
,
1517 _mm512_setzero_si512 (),
1521 extern __inline __m512i
1522 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1523 _mm512_mask_unpackhi_epi8 (__m512i __W
, __mmask64 __U
, __m512i __A
,
1526 return (__m512i
) __builtin_ia32_punpckhbw512_mask ((__v64qi
) __A
,
1532 extern __inline __m512i
1533 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1534 _mm512_maskz_unpackhi_epi8 (__mmask64 __U
, __m512i __A
, __m512i __B
)
1536 return (__m512i
) __builtin_ia32_punpckhbw512_mask ((__v64qi
) __A
,
1539 _mm512_setzero_si512 (),
1543 extern __inline __m512i
1544 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1545 _mm512_unpackhi_epi16 (__m512i __A
, __m512i __B
)
1547 return (__m512i
) __builtin_ia32_punpckhwd512_mask ((__v32hi
) __A
,
1550 _mm512_setzero_si512 (),
1554 extern __inline __m512i
1555 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1556 _mm512_mask_unpackhi_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
1559 return (__m512i
) __builtin_ia32_punpckhwd512_mask ((__v32hi
) __A
,
1565 extern __inline __m512i
1566 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1567 _mm512_maskz_unpackhi_epi16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
1569 return (__m512i
) __builtin_ia32_punpckhwd512_mask ((__v32hi
) __A
,
1572 _mm512_setzero_si512 (),
1576 extern __inline __m512i
1577 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1578 _mm512_unpacklo_epi8 (__m512i __A
, __m512i __B
)
1580 return (__m512i
) __builtin_ia32_punpcklbw512_mask ((__v64qi
) __A
,
1583 _mm512_setzero_si512 (),
1587 extern __inline __m512i
1588 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1589 _mm512_mask_unpacklo_epi8 (__m512i __W
, __mmask64 __U
, __m512i __A
,
1592 return (__m512i
) __builtin_ia32_punpcklbw512_mask ((__v64qi
) __A
,
1598 extern __inline __m512i
1599 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1600 _mm512_maskz_unpacklo_epi8 (__mmask64 __U
, __m512i __A
, __m512i __B
)
1602 return (__m512i
) __builtin_ia32_punpcklbw512_mask ((__v64qi
) __A
,
1605 _mm512_setzero_si512 (),
1609 extern __inline __m512i
1610 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1611 _mm512_unpacklo_epi16 (__m512i __A
, __m512i __B
)
1613 return (__m512i
) __builtin_ia32_punpcklwd512_mask ((__v32hi
) __A
,
1616 _mm512_setzero_si512 (),
1620 extern __inline __m512i
1621 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1622 _mm512_mask_unpacklo_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
1625 return (__m512i
) __builtin_ia32_punpcklwd512_mask ((__v32hi
) __A
,
1631 extern __inline __m512i
1632 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1633 _mm512_maskz_unpacklo_epi16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
1635 return (__m512i
) __builtin_ia32_punpcklwd512_mask ((__v32hi
) __A
,
1638 _mm512_setzero_si512 (),
1642 extern __inline __mmask64
1643 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1644 _mm512_cmpeq_epu8_mask (__m512i __A
, __m512i __B
)
1646 return (__mmask64
) __builtin_ia32_ucmpb512_mask ((__v64qi
) __A
,
1651 extern __inline __mmask64
1652 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1653 _mm512_cmpeq_epi8_mask (__m512i __A
, __m512i __B
)
1655 return (__mmask64
) __builtin_ia32_pcmpeqb512_mask ((__v64qi
) __A
,
1660 extern __inline __mmask64
1661 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1662 _mm512_mask_cmpeq_epu8_mask (__mmask64 __U
, __m512i __A
, __m512i __B
)
1664 return (__mmask64
) __builtin_ia32_ucmpb512_mask ((__v64qi
) __A
,
1669 extern __inline __mmask64
1670 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1671 _mm512_mask_cmpeq_epi8_mask (__mmask64 __U
, __m512i __A
, __m512i __B
)
1673 return (__mmask64
) __builtin_ia32_pcmpeqb512_mask ((__v64qi
) __A
,
1678 extern __inline __mmask32
1679 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1680 _mm512_cmpeq_epu16_mask (__m512i __A
, __m512i __B
)
1682 return (__mmask32
) __builtin_ia32_ucmpw512_mask ((__v32hi
) __A
,
1687 extern __inline __mmask32
1688 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1689 _mm512_cmpeq_epi16_mask (__m512i __A
, __m512i __B
)
1691 return (__mmask32
) __builtin_ia32_pcmpeqw512_mask ((__v32hi
) __A
,
1696 extern __inline __mmask32
1697 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1698 _mm512_mask_cmpeq_epu16_mask (__mmask32 __U
, __m512i __A
, __m512i __B
)
1700 return (__mmask32
) __builtin_ia32_ucmpw512_mask ((__v32hi
) __A
,
1705 extern __inline __mmask32
1706 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1707 _mm512_mask_cmpeq_epi16_mask (__mmask32 __U
, __m512i __A
, __m512i __B
)
1709 return (__mmask32
) __builtin_ia32_pcmpeqw512_mask ((__v32hi
) __A
,
1714 extern __inline __mmask64
1715 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1716 _mm512_cmpgt_epu8_mask (__m512i __A
, __m512i __B
)
1718 return (__mmask64
) __builtin_ia32_ucmpb512_mask ((__v64qi
) __A
,
1723 extern __inline __mmask64
1724 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1725 _mm512_cmpgt_epi8_mask (__m512i __A
, __m512i __B
)
1727 return (__mmask64
) __builtin_ia32_pcmpgtb512_mask ((__v64qi
) __A
,
1732 extern __inline __mmask64
1733 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1734 _mm512_mask_cmpgt_epu8_mask (__mmask64 __U
, __m512i __A
, __m512i __B
)
1736 return (__mmask64
) __builtin_ia32_ucmpb512_mask ((__v64qi
) __A
,
1741 extern __inline __mmask64
1742 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1743 _mm512_mask_cmpgt_epi8_mask (__mmask64 __U
, __m512i __A
, __m512i __B
)
1745 return (__mmask64
) __builtin_ia32_pcmpgtb512_mask ((__v64qi
) __A
,
1750 extern __inline __mmask32
1751 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1752 _mm512_cmpgt_epu16_mask (__m512i __A
, __m512i __B
)
1754 return (__mmask32
) __builtin_ia32_ucmpw512_mask ((__v32hi
) __A
,
1759 extern __inline __mmask32
1760 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1761 _mm512_cmpgt_epi16_mask (__m512i __A
, __m512i __B
)
1763 return (__mmask32
) __builtin_ia32_pcmpgtw512_mask ((__v32hi
) __A
,
1768 extern __inline __mmask32
1769 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1770 _mm512_mask_cmpgt_epu16_mask (__mmask32 __U
, __m512i __A
, __m512i __B
)
1772 return (__mmask32
) __builtin_ia32_ucmpw512_mask ((__v32hi
) __A
,
1777 extern __inline __mmask32
1778 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1779 _mm512_mask_cmpgt_epi16_mask (__mmask32 __U
, __m512i __A
, __m512i __B
)
1781 return (__mmask32
) __builtin_ia32_pcmpgtw512_mask ((__v32hi
) __A
,
1786 extern __inline __mmask64
1787 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1788 _mm512_movepi8_mask (__m512i __A
)
1790 return (__mmask64
) __builtin_ia32_cvtb2mask512 ((__v64qi
) __A
);
1793 extern __inline __mmask32
1794 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1795 _mm512_movepi16_mask (__m512i __A
)
1797 return (__mmask32
) __builtin_ia32_cvtw2mask512 ((__v32hi
) __A
);
1800 extern __inline __m512i
1801 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1802 _mm512_movm_epi8 (__mmask64 __A
)
1804 return (__m512i
) __builtin_ia32_cvtmask2b512 (__A
);
1807 extern __inline __m512i
1808 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1809 _mm512_movm_epi16 (__mmask32 __A
)
1811 return (__m512i
) __builtin_ia32_cvtmask2w512 (__A
);
1814 extern __inline __mmask64
1815 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1816 _mm512_test_epi8_mask (__m512i __A
, __m512i __B
)
1818 return (__mmask64
) __builtin_ia32_ptestmb512 ((__v64qi
) __A
,
1823 extern __inline __mmask64
1824 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1825 _mm512_mask_test_epi8_mask (__mmask64 __U
, __m512i __A
, __m512i __B
)
1827 return (__mmask64
) __builtin_ia32_ptestmb512 ((__v64qi
) __A
,
1828 (__v64qi
) __B
, __U
);
1831 extern __inline __mmask32
1832 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1833 _mm512_test_epi16_mask (__m512i __A
, __m512i __B
)
1835 return (__mmask32
) __builtin_ia32_ptestmw512 ((__v32hi
) __A
,
1840 extern __inline __mmask32
1841 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1842 _mm512_mask_test_epi16_mask (__mmask32 __U
, __m512i __A
, __m512i __B
)
1844 return (__mmask32
) __builtin_ia32_ptestmw512 ((__v32hi
) __A
,
1845 (__v32hi
) __B
, __U
);
1848 extern __inline __mmask64
1849 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1850 _mm512_testn_epi8_mask (__m512i __A
, __m512i __B
)
1852 return (__mmask64
) __builtin_ia32_ptestnmb512 ((__v64qi
) __A
,
1857 extern __inline __mmask64
1858 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1859 _mm512_mask_testn_epi8_mask (__mmask64 __U
, __m512i __A
, __m512i __B
)
1861 return (__mmask64
) __builtin_ia32_ptestnmb512 ((__v64qi
) __A
,
1862 (__v64qi
) __B
, __U
);
1865 extern __inline __mmask32
1866 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1867 _mm512_testn_epi16_mask (__m512i __A
, __m512i __B
)
1869 return (__mmask32
) __builtin_ia32_ptestnmw512 ((__v32hi
) __A
,
1874 extern __inline __mmask32
1875 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1876 _mm512_mask_testn_epi16_mask (__mmask32 __U
, __m512i __A
, __m512i __B
)
1878 return (__mmask32
) __builtin_ia32_ptestnmw512 ((__v32hi
) __A
,
1879 (__v32hi
) __B
, __U
);
1882 extern __inline __m512i
1883 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1884 _mm512_shuffle_epi8 (__m512i __A
, __m512i __B
)
1886 return (__m512i
) __builtin_ia32_pshufb512_mask ((__v64qi
) __A
,
1889 _mm512_setzero_si512 (),
1893 extern __inline __m512i
1894 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1895 _mm512_mask_shuffle_epi8 (__m512i __W
, __mmask64 __U
, __m512i __A
,
1898 return (__m512i
) __builtin_ia32_pshufb512_mask ((__v64qi
) __A
,
1904 extern __inline __m512i
1905 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1906 _mm512_maskz_shuffle_epi8 (__mmask64 __U
, __m512i __A
, __m512i __B
)
1908 return (__m512i
) __builtin_ia32_pshufb512_mask ((__v64qi
) __A
,
1911 _mm512_setzero_si512 (),
1915 extern __inline __m512i
1916 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1917 _mm512_min_epu16 (__m512i __A
, __m512i __B
)
1919 return (__m512i
) __builtin_ia32_pminuw512_mask ((__v32hi
) __A
,
1922 _mm512_setzero_si512 (),
1926 extern __inline __m512i
1927 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1928 _mm512_maskz_min_epu16 (__mmask32 __M
, __m512i __A
, __m512i __B
)
1930 return (__m512i
) __builtin_ia32_pminuw512_mask ((__v32hi
) __A
,
1933 _mm512_setzero_si512 (),
1937 extern __inline __m512i
1938 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1939 _mm512_mask_min_epu16 (__m512i __W
, __mmask32 __M
, __m512i __A
,
1942 return (__m512i
) __builtin_ia32_pminuw512_mask ((__v32hi
) __A
,
1948 extern __inline __m512i
1949 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1950 _mm512_min_epi16 (__m512i __A
, __m512i __B
)
1952 return (__m512i
) __builtin_ia32_pminsw512_mask ((__v32hi
) __A
,
1955 _mm512_setzero_si512 (),
1959 extern __inline __m512i
1960 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1961 _mm512_maskz_min_epi16 (__mmask32 __M
, __m512i __A
, __m512i __B
)
1963 return (__m512i
) __builtin_ia32_pminsw512_mask ((__v32hi
) __A
,
1966 _mm512_setzero_si512 (),
1970 extern __inline __m512i
1971 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1972 _mm512_mask_min_epi16 (__m512i __W
, __mmask32 __M
, __m512i __A
,
1975 return (__m512i
) __builtin_ia32_pminsw512_mask ((__v32hi
) __A
,
1981 extern __inline __m512i
1982 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1983 _mm512_max_epu8 (__m512i __A
, __m512i __B
)
1985 return (__m512i
) __builtin_ia32_pmaxub512_mask ((__v64qi
) __A
,
1988 _mm512_setzero_si512 (),
1992 extern __inline __m512i
1993 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1994 _mm512_maskz_max_epu8 (__mmask64 __M
, __m512i __A
, __m512i __B
)
1996 return (__m512i
) __builtin_ia32_pmaxub512_mask ((__v64qi
) __A
,
1999 _mm512_setzero_si512 (),
2003 extern __inline __m512i
2004 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2005 _mm512_mask_max_epu8 (__m512i __W
, __mmask64 __M
, __m512i __A
,
2008 return (__m512i
) __builtin_ia32_pmaxub512_mask ((__v64qi
) __A
,
2014 extern __inline __m512i
2015 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2016 _mm512_max_epi8 (__m512i __A
, __m512i __B
)
2018 return (__m512i
) __builtin_ia32_pmaxsb512_mask ((__v64qi
) __A
,
2021 _mm512_setzero_si512 (),
2025 extern __inline __m512i
2026 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2027 _mm512_maskz_max_epi8 (__mmask64 __M
, __m512i __A
, __m512i __B
)
2029 return (__m512i
) __builtin_ia32_pmaxsb512_mask ((__v64qi
) __A
,
2032 _mm512_setzero_si512 (),
2036 extern __inline __m512i
2037 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2038 _mm512_mask_max_epi8 (__m512i __W
, __mmask64 __M
, __m512i __A
,
2041 return (__m512i
) __builtin_ia32_pmaxsb512_mask ((__v64qi
) __A
,
2047 extern __inline __m512i
2048 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2049 _mm512_min_epu8 (__m512i __A
, __m512i __B
)
2051 return (__m512i
) __builtin_ia32_pminub512_mask ((__v64qi
) __A
,
2054 _mm512_setzero_si512 (),
2058 extern __inline __m512i
2059 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2060 _mm512_maskz_min_epu8 (__mmask64 __M
, __m512i __A
, __m512i __B
)
2062 return (__m512i
) __builtin_ia32_pminub512_mask ((__v64qi
) __A
,
2065 _mm512_setzero_si512 (),
2069 extern __inline __m512i
2070 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2071 _mm512_mask_min_epu8 (__m512i __W
, __mmask64 __M
, __m512i __A
,
2074 return (__m512i
) __builtin_ia32_pminub512_mask ((__v64qi
) __A
,
2080 extern __inline __m512i
2081 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2082 _mm512_min_epi8 (__m512i __A
, __m512i __B
)
2084 return (__m512i
) __builtin_ia32_pminsb512_mask ((__v64qi
) __A
,
2087 _mm512_setzero_si512 (),
2091 extern __inline __m512i
2092 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2093 _mm512_maskz_min_epi8 (__mmask64 __M
, __m512i __A
, __m512i __B
)
2095 return (__m512i
) __builtin_ia32_pminsb512_mask ((__v64qi
) __A
,
2098 _mm512_setzero_si512 (),
2102 extern __inline __m512i
2103 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2104 _mm512_mask_min_epi8 (__m512i __W
, __mmask64 __M
, __m512i __A
,
2107 return (__m512i
) __builtin_ia32_pminsb512_mask ((__v64qi
) __A
,
2113 extern __inline __m512i
2114 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2115 _mm512_max_epi16 (__m512i __A
, __m512i __B
)
2117 return (__m512i
) __builtin_ia32_pmaxsw512_mask ((__v32hi
) __A
,
2120 _mm512_setzero_si512 (),
2124 extern __inline __m512i
2125 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2126 _mm512_maskz_max_epi16 (__mmask32 __M
, __m512i __A
, __m512i __B
)
2128 return (__m512i
) __builtin_ia32_pmaxsw512_mask ((__v32hi
) __A
,
2131 _mm512_setzero_si512 (),
2135 extern __inline __m512i
2136 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2137 _mm512_mask_max_epi16 (__m512i __W
, __mmask32 __M
, __m512i __A
,
2140 return (__m512i
) __builtin_ia32_pmaxsw512_mask ((__v32hi
) __A
,
2146 extern __inline __m512i
2147 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2148 _mm512_max_epu16 (__m512i __A
, __m512i __B
)
2150 return (__m512i
) __builtin_ia32_pmaxuw512_mask ((__v32hi
) __A
,
2153 _mm512_setzero_si512 (),
2157 extern __inline __m512i
2158 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2159 _mm512_maskz_max_epu16 (__mmask32 __M
, __m512i __A
, __m512i __B
)
2161 return (__m512i
) __builtin_ia32_pmaxuw512_mask ((__v32hi
) __A
,
2164 _mm512_setzero_si512 (),
2168 extern __inline __m512i
2169 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2170 _mm512_mask_max_epu16 (__m512i __W
, __mmask32 __M
, __m512i __A
,
2173 return (__m512i
) __builtin_ia32_pmaxuw512_mask ((__v32hi
) __A
,
2179 extern __inline __m512i
2180 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2181 _mm512_sra_epi16 (__m512i __A
, __m128i __B
)
2183 return (__m512i
) __builtin_ia32_psraw512_mask ((__v32hi
) __A
,
2186 _mm512_setzero_si512 (),
2190 extern __inline __m512i
2191 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2192 _mm512_mask_sra_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
2195 return (__m512i
) __builtin_ia32_psraw512_mask ((__v32hi
) __A
,
2201 extern __inline __m512i
2202 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2203 _mm512_maskz_sra_epi16 (__mmask32 __U
, __m512i __A
, __m128i __B
)
2205 return (__m512i
) __builtin_ia32_psraw512_mask ((__v32hi
) __A
,
2208 _mm512_setzero_si512 (),
2212 extern __inline __m512i
2213 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2214 _mm512_srav_epi16 (__m512i __A
, __m512i __B
)
2216 return (__m512i
) __builtin_ia32_psrav32hi_mask ((__v32hi
) __A
,
2219 _mm512_setzero_si512 (),
2223 extern __inline __m512i
2224 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2225 _mm512_mask_srav_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
2228 return (__m512i
) __builtin_ia32_psrav32hi_mask ((__v32hi
) __A
,
2234 extern __inline __m512i
2235 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2236 _mm512_maskz_srav_epi16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
2238 return (__m512i
) __builtin_ia32_psrav32hi_mask ((__v32hi
) __A
,
2241 _mm512_setzero_si512 (),
2245 extern __inline __m512i
2246 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2247 _mm512_srlv_epi16 (__m512i __A
, __m512i __B
)
2249 return (__m512i
) __builtin_ia32_psrlv32hi_mask ((__v32hi
) __A
,
2252 _mm512_setzero_si512 (),
2256 extern __inline __m512i
2257 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2258 _mm512_mask_srlv_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
2261 return (__m512i
) __builtin_ia32_psrlv32hi_mask ((__v32hi
) __A
,
2267 extern __inline __m512i
2268 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2269 _mm512_maskz_srlv_epi16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
2271 return (__m512i
) __builtin_ia32_psrlv32hi_mask ((__v32hi
) __A
,
2274 _mm512_setzero_si512 (),
2278 extern __inline __m512i
2279 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2280 _mm512_sllv_epi16 (__m512i __A
, __m512i __B
)
2282 return (__m512i
) __builtin_ia32_psllv32hi_mask ((__v32hi
) __A
,
2285 _mm512_setzero_si512 (),
2289 extern __inline __m512i
2290 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2291 _mm512_mask_sllv_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
2294 return (__m512i
) __builtin_ia32_psllv32hi_mask ((__v32hi
) __A
,
2300 extern __inline __m512i
2301 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2302 _mm512_maskz_sllv_epi16 (__mmask32 __U
, __m512i __A
, __m512i __B
)
2304 return (__m512i
) __builtin_ia32_psllv32hi_mask ((__v32hi
) __A
,
2307 _mm512_setzero_si512 (),
2311 extern __inline __m512i
2312 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2313 _mm512_mask_packs_epi16 (__m512i __W
, __mmask64 __M
, __m512i __A
,
2316 return (__m512i
) __builtin_ia32_packsswb512_mask ((__v32hi
) __A
,
2322 extern __inline __m512i
2323 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2324 _mm512_maskz_packs_epi16 (__mmask64 __M
, __m512i __A
, __m512i __B
)
2326 return (__m512i
) __builtin_ia32_packsswb512_mask ((__v32hi
) __A
,
2329 _mm512_setzero_si512 (),
2333 extern __inline __m512i
2334 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2335 _mm512_packus_epi16 (__m512i __A
, __m512i __B
)
2337 return (__m512i
) __builtin_ia32_packuswb512_mask ((__v32hi
) __A
,
2340 _mm512_setzero_si512 (),
2344 extern __inline __m512i
2345 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2346 _mm512_mask_packus_epi16 (__m512i __W
, __mmask64 __M
, __m512i __A
,
2349 return (__m512i
) __builtin_ia32_packuswb512_mask ((__v32hi
) __A
,
2355 extern __inline __m512i
2356 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2357 _mm512_maskz_packus_epi16 (__mmask64 __M
, __m512i __A
, __m512i __B
)
2359 return (__m512i
) __builtin_ia32_packuswb512_mask ((__v32hi
) __A
,
2362 _mm512_setzero_si512 (),
2366 extern __inline __m512i
2367 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2368 _mm512_abs_epi8 (__m512i __A
)
2370 return (__m512i
) __builtin_ia32_pabsb512_mask ((__v64qi
) __A
,
2372 _mm512_setzero_si512 (),
2376 extern __inline __m512i
2377 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2378 _mm512_mask_abs_epi8 (__m512i __W
, __mmask64 __U
, __m512i __A
)
2380 return (__m512i
) __builtin_ia32_pabsb512_mask ((__v64qi
) __A
,
2385 extern __inline __m512i
2386 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2387 _mm512_maskz_abs_epi8 (__mmask64 __U
, __m512i __A
)
2389 return (__m512i
) __builtin_ia32_pabsb512_mask ((__v64qi
) __A
,
2391 _mm512_setzero_si512 (),
2395 extern __inline __m512i
2396 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2397 _mm512_abs_epi16 (__m512i __A
)
2399 return (__m512i
) __builtin_ia32_pabsw512_mask ((__v32hi
) __A
,
2401 _mm512_setzero_si512 (),
2405 extern __inline __m512i
2406 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2407 _mm512_mask_abs_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
)
2409 return (__m512i
) __builtin_ia32_pabsw512_mask ((__v32hi
) __A
,
2414 extern __inline __m512i
2415 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2416 _mm512_maskz_abs_epi16 (__mmask32 __U
, __m512i __A
)
2418 return (__m512i
) __builtin_ia32_pabsw512_mask ((__v32hi
) __A
,
2420 _mm512_setzero_si512 (),
2424 extern __inline __mmask64
2425 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2426 _mm512_mask_cmpneq_epu8_mask (__mmask64 __M
, __m512i __X
, __m512i __Y
)
2428 return (__mmask64
) __builtin_ia32_ucmpb512_mask ((__v64qi
) __X
,
2433 extern __inline __mmask64
2434 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2435 _mm512_mask_cmplt_epu8_mask (__mmask64 __M
, __m512i __X
, __m512i __Y
)
2437 return (__mmask64
) __builtin_ia32_ucmpb512_mask ((__v64qi
) __X
,
2442 extern __inline __mmask64
2443 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2444 _mm512_mask_cmpge_epu8_mask (__mmask64 __M
, __m512i __X
, __m512i __Y
)
2446 return (__mmask64
) __builtin_ia32_ucmpb512_mask ((__v64qi
) __X
,
2451 extern __inline __mmask64
2452 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2453 _mm512_mask_cmple_epu8_mask (__mmask64 __M
, __m512i __X
, __m512i __Y
)
2455 return (__mmask64
) __builtin_ia32_ucmpb512_mask ((__v64qi
) __X
,
2460 extern __inline __mmask32
2461 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2462 _mm512_mask_cmpneq_epu16_mask (__mmask32 __M
, __m512i __X
, __m512i __Y
)
2464 return (__mmask32
) __builtin_ia32_ucmpw512_mask ((__v32hi
) __X
,
2469 extern __inline __mmask32
2470 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2471 _mm512_mask_cmplt_epu16_mask (__mmask32 __M
, __m512i __X
, __m512i __Y
)
2473 return (__mmask32
) __builtin_ia32_ucmpw512_mask ((__v32hi
) __X
,
2478 extern __inline __mmask32
2479 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2480 _mm512_mask_cmpge_epu16_mask (__mmask32 __M
, __m512i __X
, __m512i __Y
)
2482 return (__mmask32
) __builtin_ia32_ucmpw512_mask ((__v32hi
) __X
,
2487 extern __inline __mmask32
2488 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2489 _mm512_mask_cmple_epu16_mask (__mmask32 __M
, __m512i __X
, __m512i __Y
)
2491 return (__mmask32
) __builtin_ia32_ucmpw512_mask ((__v32hi
) __X
,
2496 extern __inline __mmask64
2497 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2498 _mm512_mask_cmpneq_epi8_mask (__mmask64 __M
, __m512i __X
, __m512i __Y
)
2500 return (__mmask64
) __builtin_ia32_cmpb512_mask ((__v64qi
) __X
,
2505 extern __inline __mmask64
2506 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2507 _mm512_mask_cmplt_epi8_mask (__mmask64 __M
, __m512i __X
, __m512i __Y
)
2509 return (__mmask64
) __builtin_ia32_cmpb512_mask ((__v64qi
) __X
,
2514 extern __inline __mmask64
2515 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2516 _mm512_mask_cmpge_epi8_mask (__mmask64 __M
, __m512i __X
, __m512i __Y
)
2518 return (__mmask64
) __builtin_ia32_cmpb512_mask ((__v64qi
) __X
,
2523 extern __inline __mmask64
2524 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2525 _mm512_mask_cmple_epi8_mask (__mmask64 __M
, __m512i __X
, __m512i __Y
)
2527 return (__mmask64
) __builtin_ia32_cmpb512_mask ((__v64qi
) __X
,
2532 extern __inline __mmask32
2533 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2534 _mm512_mask_cmpneq_epi16_mask (__mmask32 __M
, __m512i __X
, __m512i __Y
)
2536 return (__mmask32
) __builtin_ia32_cmpw512_mask ((__v32hi
) __X
,
2541 extern __inline __mmask32
2542 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2543 _mm512_mask_cmplt_epi16_mask (__mmask32 __M
, __m512i __X
, __m512i __Y
)
2545 return (__mmask32
) __builtin_ia32_cmpw512_mask ((__v32hi
) __X
,
2550 extern __inline __mmask32
2551 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2552 _mm512_mask_cmpge_epi16_mask (__mmask32 __M
, __m512i __X
, __m512i __Y
)
2554 return (__mmask32
) __builtin_ia32_cmpw512_mask ((__v32hi
) __X
,
2559 extern __inline __mmask32
2560 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2561 _mm512_mask_cmple_epi16_mask (__mmask32 __M
, __m512i __X
, __m512i __Y
)
2563 return (__mmask32
) __builtin_ia32_cmpw512_mask ((__v32hi
) __X
,
2568 extern __inline __mmask64
2569 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2570 _mm512_cmpneq_epu8_mask (__m512i __X
, __m512i __Y
)
2572 return (__mmask64
) __builtin_ia32_ucmpb512_mask ((__v64qi
) __X
,
2577 extern __inline __mmask64
2578 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2579 _mm512_cmplt_epu8_mask (__m512i __X
, __m512i __Y
)
2581 return (__mmask64
) __builtin_ia32_ucmpb512_mask ((__v64qi
) __X
,
2586 extern __inline __mmask64
2587 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2588 _mm512_cmpge_epu8_mask (__m512i __X
, __m512i __Y
)
2590 return (__mmask64
) __builtin_ia32_ucmpb512_mask ((__v64qi
) __X
,
2595 extern __inline __mmask64
2596 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2597 _mm512_cmple_epu8_mask (__m512i __X
, __m512i __Y
)
2599 return (__mmask64
) __builtin_ia32_ucmpb512_mask ((__v64qi
) __X
,
2604 extern __inline __mmask32
2605 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2606 _mm512_cmpneq_epu16_mask (__m512i __X
, __m512i __Y
)
2608 return (__mmask32
) __builtin_ia32_ucmpw512_mask ((__v32hi
) __X
,
2613 extern __inline __mmask32
2614 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2615 _mm512_cmplt_epu16_mask (__m512i __X
, __m512i __Y
)
2617 return (__mmask32
) __builtin_ia32_ucmpw512_mask ((__v32hi
) __X
,
2622 extern __inline __mmask32
2623 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2624 _mm512_cmpge_epu16_mask (__m512i __X
, __m512i __Y
)
2626 return (__mmask32
) __builtin_ia32_ucmpw512_mask ((__v32hi
) __X
,
2631 extern __inline __mmask32
2632 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2633 _mm512_cmple_epu16_mask (__m512i __X
, __m512i __Y
)
2635 return (__mmask32
) __builtin_ia32_ucmpw512_mask ((__v32hi
) __X
,
2640 extern __inline __mmask64
2641 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2642 _mm512_cmpneq_epi8_mask (__m512i __X
, __m512i __Y
)
2644 return (__mmask64
) __builtin_ia32_cmpb512_mask ((__v64qi
) __X
,
2649 extern __inline __mmask64
2650 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2651 _mm512_cmplt_epi8_mask (__m512i __X
, __m512i __Y
)
2653 return (__mmask64
) __builtin_ia32_cmpb512_mask ((__v64qi
) __X
,
2658 extern __inline __mmask64
2659 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2660 _mm512_cmpge_epi8_mask (__m512i __X
, __m512i __Y
)
2662 return (__mmask64
) __builtin_ia32_cmpb512_mask ((__v64qi
) __X
,
2667 extern __inline __mmask64
2668 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2669 _mm512_cmple_epi8_mask (__m512i __X
, __m512i __Y
)
2671 return (__mmask64
) __builtin_ia32_cmpb512_mask ((__v64qi
) __X
,
2676 extern __inline __mmask32
2677 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2678 _mm512_cmpneq_epi16_mask (__m512i __X
, __m512i __Y
)
2680 return (__mmask32
) __builtin_ia32_cmpw512_mask ((__v32hi
) __X
,
2685 extern __inline __mmask32
2686 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2687 _mm512_cmplt_epi16_mask (__m512i __X
, __m512i __Y
)
2689 return (__mmask32
) __builtin_ia32_cmpw512_mask ((__v32hi
) __X
,
2694 extern __inline __mmask32
2695 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2696 _mm512_cmpge_epi16_mask (__m512i __X
, __m512i __Y
)
2698 return (__mmask32
) __builtin_ia32_cmpw512_mask ((__v32hi
) __X
,
2703 extern __inline __mmask32
2704 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2705 _mm512_cmple_epi16_mask (__m512i __X
, __m512i __Y
)
2707 return (__mmask32
) __builtin_ia32_cmpw512_mask ((__v32hi
) __X
,
2712 extern __inline __m512i
2713 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2714 _mm512_packs_epi32 (__m512i __A
, __m512i __B
)
2716 return (__m512i
) __builtin_ia32_packssdw512_mask ((__v16si
) __A
,
2719 _mm512_setzero_si512 (),
2723 extern __inline __m512i
2724 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2725 _mm512_maskz_packs_epi32 (__mmask32 __M
, __m512i __A
, __m512i __B
)
2727 return (__m512i
) __builtin_ia32_packssdw512_mask ((__v16si
) __A
,
2730 _mm512_setzero_si512 (),
2734 extern __inline __m512i
2735 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2736 _mm512_mask_packs_epi32 (__m512i __W
, __mmask32 __M
, __m512i __A
,
2739 return (__m512i
) __builtin_ia32_packssdw512_mask ((__v16si
) __A
,
2745 extern __inline __m512i
2746 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2747 _mm512_packus_epi32 (__m512i __A
, __m512i __B
)
2749 return (__m512i
) __builtin_ia32_packusdw512_mask ((__v16si
) __A
,
2752 _mm512_setzero_si512 (),
2756 extern __inline __m512i
2757 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2758 _mm512_maskz_packus_epi32 (__mmask32 __M
, __m512i __A
, __m512i __B
)
2760 return (__m512i
) __builtin_ia32_packusdw512_mask ((__v16si
) __A
,
2763 _mm512_setzero_si512 (),
2767 extern __inline __m512i
2768 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2769 _mm512_mask_packus_epi32 (__m512i __W
, __mmask32 __M
, __m512i __A
,
2772 return (__m512i
) __builtin_ia32_packusdw512_mask ((__v16si
) __A
,
2779 extern __inline __mmask32
2780 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2781 _kshiftli_mask32 (__mmask32 __A
, unsigned int __B
)
2783 return (__mmask32
) __builtin_ia32_kshiftlisi ((__mmask32
) __A
,
2787 extern __inline __mmask64
2788 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2789 _kshiftli_mask64 (__mmask64 __A
, unsigned int __B
)
2791 return (__mmask64
) __builtin_ia32_kshiftlidi ((__mmask64
) __A
,
2795 extern __inline __mmask32
2796 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2797 _kshiftri_mask32 (__mmask32 __A
, unsigned int __B
)
2799 return (__mmask32
) __builtin_ia32_kshiftrisi ((__mmask32
) __A
,
2803 extern __inline __mmask64
2804 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2805 _kshiftri_mask64 (__mmask64 __A
, unsigned int __B
)
2807 return (__mmask64
) __builtin_ia32_kshiftridi ((__mmask64
) __A
,
2811 extern __inline __m512i
2812 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2813 _mm512_alignr_epi8 (__m512i __A
, __m512i __B
, const int __N
)
2815 return (__m512i
) __builtin_ia32_palignr512 ((__v8di
) __A
,
2816 (__v8di
) __B
, __N
* 8);
2819 extern __inline __m512i
2820 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2821 _mm512_mask_alignr_epi8 (__m512i __W
, __mmask64 __U
, __m512i __A
,
2822 __m512i __B
, const int __N
)
2824 return (__m512i
) __builtin_ia32_palignr512_mask ((__v8di
) __A
,
2831 extern __inline __m512i
2832 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2833 _mm512_maskz_alignr_epi8 (__mmask64 __U
, __m512i __A
, __m512i __B
,
2836 return (__m512i
) __builtin_ia32_palignr512_mask ((__v8di
) __A
,
2840 _mm512_setzero_si512 (),
2844 extern __inline __m512i
2845 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2846 _mm512_dbsad_epu8 (__m512i __A
, __m512i __B
, const int __imm
)
2848 return (__m512i
) __builtin_ia32_dbpsadbw512_mask ((__v64qi
) __A
,
2852 _mm512_setzero_si512 (),
2856 extern __inline __m512i
2857 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2858 _mm512_mask_dbsad_epu8 (__m512i __W
, __mmask32 __U
, __m512i __A
,
2859 __m512i __B
, const int __imm
)
2861 return (__m512i
) __builtin_ia32_dbpsadbw512_mask ((__v64qi
) __A
,
2868 extern __inline __m512i
2869 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2870 _mm512_maskz_dbsad_epu8 (__mmask32 __U
, __m512i __A
, __m512i __B
,
2873 return (__m512i
) __builtin_ia32_dbpsadbw512_mask ((__v64qi
) __A
,
2877 _mm512_setzero_si512 (),
2881 extern __inline __m512i
2882 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2883 _mm512_srli_epi16 (__m512i __A
, const int __imm
)
2885 return (__m512i
) __builtin_ia32_psrlwi512_mask ((__v32hi
) __A
, __imm
,
2887 _mm512_setzero_si512 (),
2891 extern __inline __m512i
2892 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2893 _mm512_mask_srli_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
2896 return (__m512i
) __builtin_ia32_psrlwi512_mask ((__v32hi
) __A
, __imm
,
2901 extern __inline __m512i
2902 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2903 _mm512_maskz_srli_epi16 (__mmask32 __U
, __m512i __A
, const int __imm
)
2905 return (__m512i
) __builtin_ia32_psrlwi512_mask ((__v32hi
) __A
, __imm
,
2907 _mm512_setzero_si512 (),
2911 extern __inline __m512i
2912 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2913 _mm512_slli_epi16 (__m512i __A
, const int __B
)
2915 return (__m512i
) __builtin_ia32_psllwi512_mask ((__v32hi
) __A
, __B
,
2917 _mm512_setzero_si512 (),
2921 extern __inline __m512i
2922 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2923 _mm512_mask_slli_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
2926 return (__m512i
) __builtin_ia32_psllwi512_mask ((__v32hi
) __A
, __B
,
2931 extern __inline __m512i
2932 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2933 _mm512_maskz_slli_epi16 (__mmask32 __U
, __m512i __A
, const int __B
)
2935 return (__m512i
) __builtin_ia32_psllwi512_mask ((__v32hi
) __A
, __B
,
2937 _mm512_setzero_si512 (),
2941 extern __inline __m512i
2942 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2943 _mm512_shufflehi_epi16 (__m512i __A
, const int __imm
)
2945 return (__m512i
) __builtin_ia32_pshufhw512_mask ((__v32hi
) __A
,
2948 _mm512_setzero_si512 (),
2952 extern __inline __m512i
2953 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2954 _mm512_mask_shufflehi_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
2957 return (__m512i
) __builtin_ia32_pshufhw512_mask ((__v32hi
) __A
,
2963 extern __inline __m512i
2964 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2965 _mm512_maskz_shufflehi_epi16 (__mmask32 __U
, __m512i __A
,
2968 return (__m512i
) __builtin_ia32_pshufhw512_mask ((__v32hi
) __A
,
2971 _mm512_setzero_si512 (),
2975 extern __inline __m512i
2976 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2977 _mm512_shufflelo_epi16 (__m512i __A
, const int __imm
)
2979 return (__m512i
) __builtin_ia32_pshuflw512_mask ((__v32hi
) __A
,
2982 _mm512_setzero_si512 (),
2986 extern __inline __m512i
2987 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2988 _mm512_mask_shufflelo_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
2991 return (__m512i
) __builtin_ia32_pshuflw512_mask ((__v32hi
) __A
,
2997 extern __inline __m512i
2998 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2999 _mm512_maskz_shufflelo_epi16 (__mmask32 __U
, __m512i __A
,
3002 return (__m512i
) __builtin_ia32_pshuflw512_mask ((__v32hi
) __A
,
3005 _mm512_setzero_si512 (),
3009 extern __inline __m512i
3010 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3011 _mm512_srai_epi16 (__m512i __A
, const int __imm
)
3013 return (__m512i
) __builtin_ia32_psrawi512_mask ((__v32hi
) __A
, __imm
,
3015 _mm512_setzero_si512 (),
3019 extern __inline __m512i
3020 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3021 _mm512_mask_srai_epi16 (__m512i __W
, __mmask32 __U
, __m512i __A
,
3024 return (__m512i
) __builtin_ia32_psrawi512_mask ((__v32hi
) __A
, __imm
,
3029 extern __inline __m512i
3030 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3031 _mm512_maskz_srai_epi16 (__mmask32 __U
, __m512i __A
, const int __imm
)
3033 return (__m512i
) __builtin_ia32_psrawi512_mask ((__v32hi
) __A
, __imm
,
3035 _mm512_setzero_si512 (),
3039 extern __inline __m512i
3040 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3041 _mm512_mask_blend_epi16 (__mmask32 __U
, __m512i __A
, __m512i __W
)
3043 return (__m512i
) __builtin_ia32_blendmw_512_mask ((__v32hi
) __A
,
3048 extern __inline __m512i
3049 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3050 _mm512_mask_blend_epi8 (__mmask64 __U
, __m512i __A
, __m512i __W
)
3052 return (__m512i
) __builtin_ia32_blendmb_512_mask ((__v64qi
) __A
,
3057 extern __inline __mmask32
3058 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3059 _mm512_mask_cmp_epi16_mask (__mmask32 __U
, __m512i __X
, __m512i __Y
,
3062 return (__mmask32
) __builtin_ia32_cmpw512_mask ((__v32hi
) __X
,
3067 extern __inline __mmask32
3068 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3069 _mm512_cmp_epi16_mask (__m512i __X
, __m512i __Y
, const int __P
)
3071 return (__mmask32
) __builtin_ia32_cmpw512_mask ((__v32hi
) __X
,
3076 extern __inline __mmask64
3077 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3078 _mm512_mask_cmp_epi8_mask (__mmask64 __U
, __m512i __X
, __m512i __Y
,
3081 return (__mmask64
) __builtin_ia32_cmpb512_mask ((__v64qi
) __X
,
3086 extern __inline __mmask64
3087 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3088 _mm512_cmp_epi8_mask (__m512i __X
, __m512i __Y
, const int __P
)
3090 return (__mmask64
) __builtin_ia32_cmpb512_mask ((__v64qi
) __X
,
3095 extern __inline __mmask32
3096 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3097 _mm512_mask_cmp_epu16_mask (__mmask32 __U
, __m512i __X
, __m512i __Y
,
3100 return (__mmask32
) __builtin_ia32_ucmpw512_mask ((__v32hi
) __X
,
3105 extern __inline __mmask32
3106 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3107 _mm512_cmp_epu16_mask (__m512i __X
, __m512i __Y
, const int __P
)
3109 return (__mmask32
) __builtin_ia32_ucmpw512_mask ((__v32hi
) __X
,
3114 extern __inline __mmask64
3115 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3116 _mm512_mask_cmp_epu8_mask (__mmask64 __U
, __m512i __X
, __m512i __Y
,
3119 return (__mmask64
) __builtin_ia32_ucmpb512_mask ((__v64qi
) __X
,
3124 extern __inline __mmask64
3125 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3126 _mm512_cmp_epu8_mask (__m512i __X
, __m512i __Y
, const int __P
)
3128 return (__mmask64
) __builtin_ia32_ucmpb512_mask ((__v64qi
) __X
,
3133 extern __inline __m512i
3134 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3135 _mm512_bslli_epi128 (__m512i __A
, const int __N
)
3137 return (__m512i
) __builtin_ia32_pslldq512 (__A
, __N
* 8);
3140 extern __inline __m512i
3141 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3142 _mm512_bsrli_epi128 (__m512i __A
, const int __N
)
3144 return (__m512i
) __builtin_ia32_psrldq512 (__A
, __N
* 8);
3148 #define _kshiftli_mask32(X, Y) \
3149 ((__mmask32) __builtin_ia32_kshiftlisi ((__mmask32)(X), (__mmask8)(Y)))
3151 #define _kshiftli_mask64(X, Y) \
3152 ((__mmask64) __builtin_ia32_kshiftlidi ((__mmask64)(X), (__mmask8)(Y)))
3154 #define _kshiftri_mask32(X, Y) \
3155 ((__mmask32) __builtin_ia32_kshiftrisi ((__mmask32)(X), (__mmask8)(Y)))
3157 #define _kshiftri_mask64(X, Y) \
3158 ((__mmask64) __builtin_ia32_kshiftridi ((__mmask64)(X), (__mmask8)(Y)))
3160 #define _mm512_alignr_epi8(X, Y, N) \
3161 ((__m512i) __builtin_ia32_palignr512 ((__v8di)(__m512i)(X), \
3162 (__v8di)(__m512i)(Y), \
3165 #define _mm512_mask_alignr_epi8(W, U, X, Y, N) \
3166 ((__m512i) __builtin_ia32_palignr512_mask ((__v8di)(__m512i)(X), \
3167 (__v8di)(__m512i)(Y), (int)((N) * 8), \
3168 (__v8di)(__m512i)(W), (__mmask64)(U)))
3170 #define _mm512_maskz_alignr_epi8(U, X, Y, N) \
3171 ((__m512i) __builtin_ia32_palignr512_mask ((__v8di)(__m512i)(X), \
3172 (__v8di)(__m512i)(Y), (int)((N) * 8), \
3174 _mm512_setzero_si512 (), \
3177 #define _mm512_dbsad_epu8(X, Y, C) \
3178 ((__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi)(__m512i) (X), \
3179 (__v64qi)(__m512i) (Y), (int) (C), \
3180 (__v32hi)(__m512i) \
3181 _mm512_setzero_si512 (), \
3184 #define _mm512_mask_dbsad_epu8(W, U, X, Y, C) \
3185 ((__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi)(__m512i) (X), \
3186 (__v64qi)(__m512i) (Y), (int) (C), \
3187 (__v32hi)(__m512i)(W), \
3190 #define _mm512_maskz_dbsad_epu8(U, X, Y, C) \
3191 ((__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi)(__m512i) (X), \
3192 (__v64qi)(__m512i) (Y), (int) (C), \
3193 (__v32hi)(__m512i) \
3194 _mm512_setzero_si512 (), \
3197 #define _mm512_srli_epi16(A, B) \
3198 ((__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi)(__m512i)(A), \
3199 (int)(B), (__v32hi)_mm512_setzero_si512 (), (__mmask32)-1))
3201 #define _mm512_mask_srli_epi16(W, U, A, B) \
3202 ((__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi)(__m512i)(A), \
3203 (int)(B), (__v32hi)(__m512i)(W), (__mmask32)(U)))
3205 #define _mm512_maskz_srli_epi16(U, A, B) \
3206 ((__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi)(__m512i)(A), \
3207 (int)(B), (__v32hi)_mm512_setzero_si512 (), (__mmask32)(U)))
3209 #define _mm512_slli_epi16(X, C) \
3210 ((__m512i)__builtin_ia32_psllwi512_mask ((__v32hi)(__m512i)(X), (int)(C),\
3211 (__v32hi)(__m512i)_mm512_setzero_si512 (), \
3214 #define _mm512_mask_slli_epi16(W, U, X, C) \
3215 ((__m512i)__builtin_ia32_psllwi512_mask ((__v32hi)(__m512i)(X), (int)(C),\
3216 (__v32hi)(__m512i)(W),\
3219 #define _mm512_maskz_slli_epi16(U, X, C) \
3220 ((__m512i)__builtin_ia32_psllwi512_mask ((__v32hi)(__m512i)(X), (int)(C),\
3221 (__v32hi)(__m512i)_mm512_setzero_si512 (), \
3224 #define _mm512_shufflehi_epi16(A, B) \
3225 ((__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi)(__m512i)(A), (int)(B), \
3226 (__v32hi)(__m512i) \
3227 _mm512_setzero_si512 (), \
3230 #define _mm512_mask_shufflehi_epi16(W, U, A, B) \
3231 ((__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi)(__m512i)(A), (int)(B), \
3232 (__v32hi)(__m512i)(W), \
3235 #define _mm512_maskz_shufflehi_epi16(U, A, B) \
3236 ((__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi)(__m512i)(A), (int)(B), \
3237 (__v32hi)(__m512i) \
3238 _mm512_setzero_si512 (), \
3241 #define _mm512_shufflelo_epi16(A, B) \
3242 ((__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi)(__m512i)(A), (int)(B), \
3243 (__v32hi)(__m512i) \
3244 _mm512_setzero_si512 (), \
3247 #define _mm512_mask_shufflelo_epi16(W, U, A, B) \
3248 ((__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi)(__m512i)(A), (int)(B), \
3249 (__v32hi)(__m512i)(W), \
3252 #define _mm512_maskz_shufflelo_epi16(U, A, B) \
3253 ((__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi)(__m512i)(A), (int)(B), \
3254 (__v32hi)(__m512i) \
3255 _mm512_setzero_si512 (), \
3258 #define _mm512_srai_epi16(A, B) \
3259 ((__m512i) __builtin_ia32_psrawi512_mask ((__v32hi)(__m512i)(A), \
3260 (int)(B), (__v32hi)_mm512_setzero_si512 (), (__mmask32)-1))
3262 #define _mm512_mask_srai_epi16(W, U, A, B) \
3263 ((__m512i) __builtin_ia32_psrawi512_mask ((__v32hi)(__m512i)(A), \
3264 (int)(B), (__v32hi)(__m512i)(W), (__mmask32)(U)))
3266 #define _mm512_maskz_srai_epi16(U, A, B) \
3267 ((__m512i) __builtin_ia32_psrawi512_mask ((__v32hi)(__m512i)(A), \
3268 (int)(B), (__v32hi)_mm512_setzero_si512 (), (__mmask32)(U)))
3270 #define _mm512_mask_blend_epi16(__U, __A, __W) \
3271 ((__m512i) __builtin_ia32_blendmw_512_mask ((__v32hi) (__A), \
3275 #define _mm512_mask_blend_epi8(__U, __A, __W) \
3276 ((__m512i) __builtin_ia32_blendmb_512_mask ((__v64qi) (__A), \
3280 #define _mm512_cmp_epi16_mask(X, Y, P) \
3281 ((__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi)(__m512i)(X), \
3282 (__v32hi)(__m512i)(Y), (int)(P),\
3285 #define _mm512_cmp_epi8_mask(X, Y, P) \
3286 ((__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi)(__m512i)(X), \
3287 (__v64qi)(__m512i)(Y), (int)(P),\
3290 #define _mm512_cmp_epu16_mask(X, Y, P) \
3291 ((__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi)(__m512i)(X), \
3292 (__v32hi)(__m512i)(Y), (int)(P),\
3295 #define _mm512_cmp_epu8_mask(X, Y, P) \
3296 ((__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi)(__m512i)(X), \
3297 (__v64qi)(__m512i)(Y), (int)(P),\
3300 #define _mm512_mask_cmp_epi16_mask(M, X, Y, P) \
3301 ((__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi)(__m512i)(X), \
3302 (__v32hi)(__m512i)(Y), (int)(P),\
3305 #define _mm512_mask_cmp_epi8_mask(M, X, Y, P) \
3306 ((__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi)(__m512i)(X), \
3307 (__v64qi)(__m512i)(Y), (int)(P),\
3310 #define _mm512_mask_cmp_epu16_mask(M, X, Y, P) \
3311 ((__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi)(__m512i)(X), \
3312 (__v32hi)(__m512i)(Y), (int)(P),\
3315 #define _mm512_mask_cmp_epu8_mask(M, X, Y, P) \
3316 ((__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi)(__m512i)(X), \
3317 (__v64qi)(__m512i)(Y), (int)(P),\
3320 #define _mm512_bslli_epi128(A, N) \
3321 ((__m512i)__builtin_ia32_pslldq512 ((__m512i)(A), (int)(N) * 8))
3323 #define _mm512_bsrli_epi128(A, N) \
3324 ((__m512i)__builtin_ia32_psrldq512 ((__m512i)(A), (int)(N) * 8))
3328 #ifdef __DISABLE_AVX512BW__
3329 #undef __DISABLE_AVX512BW__
3330 #pragma GCC pop_options
3331 #endif /* __DISABLE_AVX512BW__ */
3333 #endif /* _AVX512BWINTRIN_H_INCLUDED */