25 #error "Never use <avx512bwintrin.h> directly; include <immintrin.h> instead."
28 #ifndef __AVX512BWINTRIN_H
29 #define __AVX512BWINTRIN_H
37 #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512bw")))
40 _mm512_setzero_qi(
void) {
41 return (__v64qi){ 0, 0, 0, 0, 0, 0, 0, 0,
42 0, 0, 0, 0, 0, 0, 0, 0,
43 0, 0, 0, 0, 0, 0, 0, 0,
44 0, 0, 0, 0, 0, 0, 0, 0,
45 0, 0, 0, 0, 0, 0, 0, 0,
46 0, 0, 0, 0, 0, 0, 0, 0,
47 0, 0, 0, 0, 0, 0, 0, 0,
48 0, 0, 0, 0, 0, 0, 0, 0 };
52 _mm512_setzero_hi(
void) {
53 return (__v32hi){ 0, 0, 0, 0, 0, 0, 0, 0,
54 0, 0, 0, 0, 0, 0, 0, 0,
55 0, 0, 0, 0, 0, 0, 0, 0,
56 0, 0, 0, 0, 0, 0, 0, 0 };
62 _mm512_cmpeq_epi8_mask(__m512i __a, __m512i
__b) {
63 return (
__mmask64)__builtin_ia32_pcmpeqb512_mask((__v64qi)__a, (__v64qi)__b,
68 _mm512_mask_cmpeq_epi8_mask(
__mmask64 __u, __m512i __a, __m512i __b) {
69 return (
__mmask64)__builtin_ia32_pcmpeqb512_mask((__v64qi)__a, (__v64qi)__b,
74 _mm512_cmpeq_epu8_mask(__m512i __a, __m512i __b) {
75 return (
__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 0,
80 _mm512_mask_cmpeq_epu8_mask(
__mmask64 __u, __m512i __a, __m512i __b) {
81 return (
__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 0,
86 _mm512_cmpeq_epi16_mask(__m512i __a, __m512i __b) {
87 return (
__mmask32)__builtin_ia32_pcmpeqw512_mask((__v32hi)__a, (__v32hi)__b,
92 _mm512_mask_cmpeq_epi16_mask(
__mmask32 __u, __m512i __a, __m512i __b) {
93 return (
__mmask32)__builtin_ia32_pcmpeqw512_mask((__v32hi)__a, (__v32hi)__b,
98 _mm512_cmpeq_epu16_mask(__m512i __a, __m512i __b) {
99 return (
__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 0,
104 _mm512_mask_cmpeq_epu16_mask(
__mmask32 __u, __m512i __a, __m512i __b) {
105 return (
__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 0,
110 _mm512_cmpge_epi8_mask(__m512i __a, __m512i __b) {
111 return (
__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 5,
116 _mm512_mask_cmpge_epi8_mask(
__mmask64 __u, __m512i __a, __m512i __b) {
117 return (
__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 5,
122 _mm512_cmpge_epu8_mask(__m512i __a, __m512i __b) {
123 return (
__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 5,
128 _mm512_mask_cmpge_epu8_mask(
__mmask64 __u, __m512i __a, __m512i __b) {
129 return (
__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 5,
134 _mm512_cmpge_epi16_mask(__m512i __a, __m512i __b) {
135 return (
__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 5,
140 _mm512_mask_cmpge_epi16_mask(
__mmask32 __u, __m512i __a, __m512i __b) {
141 return (
__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 5,
146 _mm512_cmpge_epu16_mask(__m512i __a, __m512i __b) {
147 return (
__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 5,
152 _mm512_mask_cmpge_epu16_mask(
__mmask32 __u, __m512i __a, __m512i __b) {
153 return (
__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 5,
158 _mm512_cmpgt_epi8_mask(__m512i __a, __m512i __b) {
159 return (
__mmask64)__builtin_ia32_pcmpgtb512_mask((__v64qi)__a, (__v64qi)__b,
164 _mm512_mask_cmpgt_epi8_mask(
__mmask64 __u, __m512i __a, __m512i __b) {
165 return (
__mmask64)__builtin_ia32_pcmpgtb512_mask((__v64qi)__a, (__v64qi)__b,
170 _mm512_cmpgt_epu8_mask(__m512i __a, __m512i __b) {
171 return (
__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 6,
176 _mm512_mask_cmpgt_epu8_mask(
__mmask64 __u, __m512i __a, __m512i __b) {
177 return (
__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 6,
182 _mm512_cmpgt_epi16_mask(__m512i __a, __m512i __b) {
183 return (
__mmask32)__builtin_ia32_pcmpgtw512_mask((__v32hi)__a, (__v32hi)__b,
188 _mm512_mask_cmpgt_epi16_mask(
__mmask32 __u, __m512i __a, __m512i __b) {
189 return (
__mmask32)__builtin_ia32_pcmpgtw512_mask((__v32hi)__a, (__v32hi)__b,
194 _mm512_cmpgt_epu16_mask(__m512i __a, __m512i __b) {
195 return (
__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 6,
200 _mm512_mask_cmpgt_epu16_mask(
__mmask32 __u, __m512i __a, __m512i __b) {
201 return (
__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 6,
206 _mm512_cmple_epi8_mask(__m512i __a, __m512i __b) {
207 return (
__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 2,
212 _mm512_mask_cmple_epi8_mask(
__mmask64 __u, __m512i __a, __m512i __b) {
213 return (
__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 2,
218 _mm512_cmple_epu8_mask(__m512i __a, __m512i __b) {
219 return (
__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 2,
224 _mm512_mask_cmple_epu8_mask(
__mmask64 __u, __m512i __a, __m512i __b) {
225 return (
__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 2,
230 _mm512_cmple_epi16_mask(__m512i __a, __m512i __b) {
231 return (
__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 2,
236 _mm512_mask_cmple_epi16_mask(
__mmask32 __u, __m512i __a, __m512i __b) {
237 return (
__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 2,
242 _mm512_cmple_epu16_mask(__m512i __a, __m512i __b) {
243 return (
__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 2,
248 _mm512_mask_cmple_epu16_mask(
__mmask32 __u, __m512i __a, __m512i __b) {
249 return (
__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 2,
254 _mm512_cmplt_epi8_mask(__m512i __a, __m512i __b) {
255 return (
__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 1,
260 _mm512_mask_cmplt_epi8_mask(
__mmask64 __u, __m512i __a, __m512i __b) {
261 return (
__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 1,
266 _mm512_cmplt_epu8_mask(__m512i __a, __m512i __b) {
267 return (
__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 1,
272 _mm512_mask_cmplt_epu8_mask(
__mmask64 __u, __m512i __a, __m512i __b) {
273 return (
__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 1,
278 _mm512_cmplt_epi16_mask(__m512i __a, __m512i __b) {
279 return (
__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 1,
284 _mm512_mask_cmplt_epi16_mask(
__mmask32 __u, __m512i __a, __m512i __b) {
285 return (
__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 1,
290 _mm512_cmplt_epu16_mask(__m512i __a, __m512i __b) {
291 return (
__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 1,
296 _mm512_mask_cmplt_epu16_mask(
__mmask32 __u, __m512i __a, __m512i __b) {
297 return (
__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 1,
302 _mm512_cmpneq_epi8_mask(__m512i __a, __m512i __b) {
303 return (
__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 4,
308 _mm512_mask_cmpneq_epi8_mask(
__mmask64 __u, __m512i __a, __m512i __b) {
309 return (
__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 4,
314 _mm512_cmpneq_epu8_mask(__m512i __a, __m512i __b) {
315 return (
__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 4,
320 _mm512_mask_cmpneq_epu8_mask(
__mmask64 __u, __m512i __a, __m512i __b) {
321 return (
__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 4,
326 _mm512_cmpneq_epi16_mask(__m512i __a, __m512i __b) {
327 return (
__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 4,
332 _mm512_mask_cmpneq_epi16_mask(
__mmask32 __u, __m512i __a, __m512i __b) {
333 return (
__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 4,
338 _mm512_cmpneq_epu16_mask(__m512i __a, __m512i __b) {
339 return (
__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 4,
344 _mm512_mask_cmpneq_epu16_mask(
__mmask32 __u, __m512i __a, __m512i __b) {
345 return (
__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 4,
350 _mm512_add_epi8 (__m512i __A, __m512i __B) {
351 return (__m512i) ((__v64qi) __A + (__v64qi) __B);
355 _mm512_mask_add_epi8 (__m512i __W,
__mmask64 __U, __m512i __A, __m512i __B) {
356 return (__m512i) __builtin_ia32_paddb512_mask ((__v64qi) __A,
363 _mm512_maskz_add_epi8 (
__mmask64 __U, __m512i __A, __m512i __B) {
364 return (__m512i) __builtin_ia32_paddb512_mask ((__v64qi) __A,
366 (__v64qi) _mm512_setzero_qi(),
371 _mm512_sub_epi8 (__m512i __A, __m512i __B) {
372 return (__m512i) ((__v64qi) __A - (__v64qi) __B);
376 _mm512_mask_sub_epi8 (__m512i __W,
__mmask64 __U, __m512i __A, __m512i __B) {
377 return (__m512i) __builtin_ia32_psubb512_mask ((__v64qi) __A,
384 _mm512_maskz_sub_epi8 (
__mmask64 __U, __m512i __A, __m512i __B) {
385 return (__m512i) __builtin_ia32_psubb512_mask ((__v64qi) __A,
387 (__v64qi) _mm512_setzero_qi(),
392 _mm512_add_epi16 (__m512i __A, __m512i __B) {
393 return (__m512i) ((__v32hi) __A + (__v32hi) __B);
397 _mm512_mask_add_epi16 (__m512i __W,
__mmask32 __U, __m512i __A, __m512i __B) {
398 return (__m512i) __builtin_ia32_paddw512_mask ((__v32hi) __A,
405 _mm512_maskz_add_epi16 (
__mmask32 __U, __m512i __A, __m512i __B) {
406 return (__m512i) __builtin_ia32_paddw512_mask ((__v32hi) __A,
408 (__v32hi) _mm512_setzero_hi(),
413 _mm512_sub_epi16 (__m512i __A, __m512i __B) {
414 return (__m512i) ((__v32hi) __A - (__v32hi) __B);
418 _mm512_mask_sub_epi16 (__m512i __W,
__mmask32 __U, __m512i __A, __m512i __B) {
419 return (__m512i) __builtin_ia32_psubw512_mask ((__v32hi) __A,
426 _mm512_maskz_sub_epi16 (
__mmask32 __U, __m512i __A, __m512i __B) {
427 return (__m512i) __builtin_ia32_psubw512_mask ((__v32hi) __A,
429 (__v32hi) _mm512_setzero_hi(),
434 _mm512_mullo_epi16 (__m512i __A, __m512i __B) {
435 return (__m512i) ((__v32hi) __A * (__v32hi) __B);
439 _mm512_mask_mullo_epi16 (__m512i __W,
__mmask32 __U, __m512i __A, __m512i __B) {
440 return (__m512i) __builtin_ia32_pmullw512_mask ((__v32hi) __A,
447 _mm512_maskz_mullo_epi16 (
__mmask32 __U, __m512i __A, __m512i __B) {
448 return (__m512i) __builtin_ia32_pmullw512_mask ((__v32hi) __A,
450 (__v32hi) _mm512_setzero_hi(),
455 _mm512_mask_blend_epi8 (
__mmask64 __U, __m512i __A, __m512i __W)
457 return (__m512i) __builtin_ia32_blendmb_512_mask ((__v64qi) __A,
463 _mm512_mask_blend_epi16 (
__mmask32 __U, __m512i __A, __m512i __W)
465 return (__m512i) __builtin_ia32_blendmw_512_mask ((__v32hi) __A,
471 _mm512_abs_epi8 (__m512i __A)
473 return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A,
474 (__v64qi) _mm512_setzero_qi(),
479 _mm512_mask_abs_epi8 (__m512i __W,
__mmask64 __U, __m512i __A)
481 return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A,
487 _mm512_maskz_abs_epi8 (
__mmask64 __U, __m512i __A)
489 return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A,
490 (__v64qi) _mm512_setzero_qi(),
495 _mm512_abs_epi16 (__m512i __A)
497 return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A,
498 (__v32hi) _mm512_setzero_hi(),
503 _mm512_mask_abs_epi16 (__m512i __W,
__mmask32 __U, __m512i __A)
505 return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A,
511 _mm512_maskz_abs_epi16 (
__mmask32 __U, __m512i __A)
513 return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A,
514 (__v32hi) _mm512_setzero_hi(),
519 _mm512_packs_epi32 (__m512i __A, __m512i __B)
521 return (__m512i) __builtin_ia32_packssdw512_mask ((__v16si) __A,
523 (__v32hi) _mm512_setzero_hi(),
528 _mm512_maskz_packs_epi32 (
__mmask32 __M, __m512i __A, __m512i __B)
530 return (__m512i) __builtin_ia32_packssdw512_mask ((__v16si) __A,
532 (__v32hi) _mm512_setzero_hi(),
537 _mm512_mask_packs_epi32 (__m512i __W,
__mmask32 __M, __m512i __A,
540 return (__m512i) __builtin_ia32_packssdw512_mask ((__v16si) __A,
547 _mm512_packs_epi16 (__m512i __A, __m512i __B)
549 return (__m512i) __builtin_ia32_packsswb512_mask ((__v32hi) __A,
551 (__v64qi) _mm512_setzero_qi(),
556 _mm512_mask_packs_epi16 (__m512i __W,
__mmask64 __M, __m512i __A,
559 return (__m512i) __builtin_ia32_packsswb512_mask ((__v32hi) __A,
566 _mm512_maskz_packs_epi16 (
__mmask64 __M, __m512i __A, __m512i __B)
568 return (__m512i) __builtin_ia32_packsswb512_mask ((__v32hi) __A,
570 (__v64qi) _mm512_setzero_qi(),
575 _mm512_packus_epi32 (__m512i __A, __m512i __B)
577 return (__m512i) __builtin_ia32_packusdw512_mask ((__v16si) __A,
579 (__v32hi) _mm512_setzero_hi(),
584 _mm512_maskz_packus_epi32 (
__mmask32 __M, __m512i __A, __m512i __B)
586 return (__m512i) __builtin_ia32_packusdw512_mask ((__v16si) __A,
588 (__v32hi) _mm512_setzero_hi(),
593 _mm512_mask_packus_epi32 (__m512i __W,
__mmask32 __M, __m512i __A,
596 return (__m512i) __builtin_ia32_packusdw512_mask ((__v16si) __A,
603 _mm512_packus_epi16 (__m512i __A, __m512i __B)
605 return (__m512i) __builtin_ia32_packuswb512_mask ((__v32hi) __A,
607 (__v64qi) _mm512_setzero_qi(),
612 _mm512_mask_packus_epi16 (__m512i __W,
__mmask64 __M, __m512i __A,
615 return (__m512i) __builtin_ia32_packuswb512_mask ((__v32hi) __A,
622 _mm512_maskz_packus_epi16 (
__mmask64 __M, __m512i __A, __m512i __B)
624 return (__m512i) __builtin_ia32_packuswb512_mask ((__v32hi) __A,
626 (__v64qi) _mm512_setzero_qi(),
631 _mm512_adds_epi8 (__m512i __A, __m512i __B)
633 return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A,
635 (__v64qi) _mm512_setzero_qi(),
640 _mm512_mask_adds_epi8 (__m512i __W,
__mmask64 __U, __m512i __A,
643 return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A,
650 _mm512_maskz_adds_epi8 (
__mmask64 __U, __m512i __A, __m512i __B)
652 return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A,
654 (__v64qi) _mm512_setzero_qi(),
659 _mm512_adds_epi16 (__m512i __A, __m512i __B)
661 return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A,
663 (__v32hi) _mm512_setzero_hi(),
668 _mm512_mask_adds_epi16 (__m512i __W,
__mmask32 __U, __m512i __A,
671 return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A,
678 _mm512_maskz_adds_epi16 (
__mmask32 __U, __m512i __A, __m512i __B)
680 return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A,
682 (__v32hi) _mm512_setzero_hi(),
687 _mm512_adds_epu8 (__m512i __A, __m512i __B)
689 return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A,
691 (__v64qi) _mm512_setzero_qi(),
696 _mm512_mask_adds_epu8 (__m512i __W,
__mmask64 __U, __m512i __A,
699 return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A,
706 _mm512_maskz_adds_epu8 (
__mmask64 __U, __m512i __A, __m512i __B)
708 return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A,
710 (__v64qi) _mm512_setzero_qi(),
715 _mm512_adds_epu16 (__m512i __A, __m512i __B)
717 return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A,
719 (__v32hi) _mm512_setzero_hi(),
724 _mm512_mask_adds_epu16 (__m512i __W,
__mmask32 __U, __m512i __A,
727 return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A,
734 _mm512_maskz_adds_epu16 (
__mmask32 __U, __m512i __A, __m512i __B)
736 return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A,
738 (__v32hi) _mm512_setzero_hi(),
743 _mm512_avg_epu8 (__m512i __A, __m512i __B)
745 return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A,
747 (__v64qi) _mm512_setzero_qi(),
752 _mm512_mask_avg_epu8 (__m512i __W,
__mmask64 __U, __m512i __A,
755 return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A,
762 _mm512_maskz_avg_epu8 (
__mmask64 __U, __m512i __A, __m512i __B)
764 return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A,
766 (__v64qi) _mm512_setzero_qi(),
771 _mm512_avg_epu16 (__m512i __A, __m512i __B)
773 return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A,
775 (__v32hi) _mm512_setzero_hi(),
780 _mm512_mask_avg_epu16 (__m512i __W,
__mmask32 __U, __m512i __A,
783 return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A,
790 _mm512_maskz_avg_epu16 (
__mmask32 __U, __m512i __A, __m512i __B)
792 return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A,
794 (__v32hi) _mm512_setzero_hi(),
799 _mm512_max_epi8 (__m512i __A, __m512i __B)
801 return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A,
803 (__v64qi) _mm512_setzero_qi(),
808 _mm512_maskz_max_epi8 (
__mmask64 __M, __m512i __A, __m512i __B)
810 return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A,
812 (__v64qi) _mm512_setzero_qi(),
817 _mm512_mask_max_epi8 (__m512i __W,
__mmask64 __M, __m512i __A,
820 return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A,
827 _mm512_max_epi16 (__m512i __A, __m512i __B)
829 return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A,
831 (__v32hi) _mm512_setzero_hi(),
836 _mm512_maskz_max_epi16 (
__mmask32 __M, __m512i __A, __m512i __B)
838 return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A,
840 (__v32hi) _mm512_setzero_hi(),
845 _mm512_mask_max_epi16 (__m512i __W,
__mmask32 __M, __m512i __A,
848 return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A,
855 _mm512_max_epu8 (__m512i __A, __m512i __B)
857 return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A,
859 (__v64qi) _mm512_setzero_qi(),
864 _mm512_maskz_max_epu8 (
__mmask64 __M, __m512i __A, __m512i __B)
866 return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A,
868 (__v64qi) _mm512_setzero_qi(),
873 _mm512_mask_max_epu8 (__m512i __W,
__mmask64 __M, __m512i __A,
876 return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A,
883 _mm512_max_epu16 (__m512i __A, __m512i __B)
885 return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A,
887 (__v32hi) _mm512_setzero_hi(),
892 _mm512_maskz_max_epu16 (
__mmask32 __M, __m512i __A, __m512i __B)
894 return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A,
896 (__v32hi) _mm512_setzero_hi(),
901 _mm512_mask_max_epu16 (__m512i __W,
__mmask32 __M, __m512i __A,
904 return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A,
911 _mm512_min_epi8 (__m512i __A, __m512i __B)
913 return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A,
915 (__v64qi) _mm512_setzero_qi(),
920 _mm512_maskz_min_epi8 (
__mmask64 __M, __m512i __A, __m512i __B)
922 return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A,
924 (__v64qi) _mm512_setzero_qi(),
929 _mm512_mask_min_epi8 (__m512i __W,
__mmask64 __M, __m512i __A,
932 return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A,
939 _mm512_min_epi16 (__m512i __A, __m512i __B)
941 return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A,
943 (__v32hi) _mm512_setzero_hi(),
948 _mm512_maskz_min_epi16 (
__mmask32 __M, __m512i __A, __m512i __B)
950 return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A,
952 (__v32hi) _mm512_setzero_hi(),
957 _mm512_mask_min_epi16 (__m512i __W,
__mmask32 __M, __m512i __A,
960 return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A,
967 _mm512_min_epu8 (__m512i __A, __m512i __B)
969 return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A,
971 (__v64qi) _mm512_setzero_qi(),
976 _mm512_maskz_min_epu8 (
__mmask64 __M, __m512i __A, __m512i __B)
978 return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A,
980 (__v64qi) _mm512_setzero_qi(),
985 _mm512_mask_min_epu8 (__m512i __W,
__mmask64 __M, __m512i __A,
988 return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A,
995 _mm512_min_epu16 (__m512i __A, __m512i __B)
997 return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A,
999 (__v32hi) _mm512_setzero_hi(),
1004 _mm512_maskz_min_epu16 (
__mmask32 __M, __m512i __A, __m512i __B)
1006 return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A,
1008 (__v32hi) _mm512_setzero_hi(),
1013 _mm512_mask_min_epu16 (__m512i __W,
__mmask32 __M, __m512i __A,
1016 return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A,
1023 _mm512_shuffle_epi8 (__m512i __A, __m512i __B)
1025 return (__m512i) __builtin_ia32_pshufb512_mask ((__v64qi) __A,
1027 (__v64qi) _mm512_setzero_qi(),
1032 _mm512_mask_shuffle_epi8 (__m512i __W,
__mmask64 __U, __m512i __A,
1035 return (__m512i) __builtin_ia32_pshufb512_mask ((__v64qi) __A,
1042 _mm512_maskz_shuffle_epi8 (
__mmask64 __U, __m512i __A, __m512i __B)
1044 return (__m512i) __builtin_ia32_pshufb512_mask ((__v64qi) __A,
1046 (__v64qi) _mm512_setzero_qi(),
1051 _mm512_subs_epi8 (__m512i __A, __m512i __B)
1053 return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A,
1055 (__v64qi) _mm512_setzero_qi(),
1060 _mm512_mask_subs_epi8 (__m512i __W,
__mmask64 __U, __m512i __A,
1063 return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A,
1070 _mm512_maskz_subs_epi8 (
__mmask64 __U, __m512i __A, __m512i __B)
1072 return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A,
1074 (__v64qi) _mm512_setzero_qi(),
1079 _mm512_subs_epi16 (__m512i __A, __m512i __B)
1081 return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A,
1083 (__v32hi) _mm512_setzero_hi(),
1088 _mm512_mask_subs_epi16 (__m512i __W,
__mmask32 __U, __m512i __A,
1091 return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A,
1098 _mm512_maskz_subs_epi16 (
__mmask32 __U, __m512i __A, __m512i __B)
1100 return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A,
1102 (__v32hi) _mm512_setzero_hi(),
1107 _mm512_subs_epu8 (__m512i __A, __m512i __B)
1109 return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A,
1111 (__v64qi) _mm512_setzero_qi(),
1116 _mm512_mask_subs_epu8 (__m512i __W,
__mmask64 __U, __m512i __A,
1119 return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A,
1126 _mm512_maskz_subs_epu8 (
__mmask64 __U, __m512i __A, __m512i __B)
1128 return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A,
1130 (__v64qi) _mm512_setzero_qi(),
1135 _mm512_subs_epu16 (__m512i __A, __m512i __B)
1137 return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A,
1139 (__v32hi) _mm512_setzero_hi(),
1144 _mm512_mask_subs_epu16 (__m512i __W,
__mmask32 __U, __m512i __A,
1147 return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A,
1154 _mm512_maskz_subs_epu16 (
__mmask32 __U, __m512i __A, __m512i __B)
1156 return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A,
1158 (__v32hi) _mm512_setzero_hi(),
1163 _mm512_mask2_permutex2var_epi16 (__m512i __A, __m512i __I,
1166 return (__m512i) __builtin_ia32_vpermi2varhi512_mask ((__v32hi) __A,
1173 _mm512_permutex2var_epi16 (__m512i __A, __m512i __I, __m512i __B)
1175 return (__m512i) __builtin_ia32_vpermt2varhi512_mask ((__v32hi) __I ,
1182 _mm512_mask_permutex2var_epi16 (__m512i __A,
__mmask32 __U,
1183 __m512i __I, __m512i __B)
1185 return (__m512i) __builtin_ia32_vpermt2varhi512_mask ((__v32hi) __I ,
1192 _mm512_maskz_permutex2var_epi16 (
__mmask32 __U, __m512i __A,
1193 __m512i __I, __m512i __B)
1195 return (__m512i) __builtin_ia32_vpermt2varhi512_maskz ((__v32hi) __I
1203 _mm512_mulhrs_epi16 (__m512i __A, __m512i __B)
1205 return (__m512i) __builtin_ia32_pmulhrsw512_mask ((__v32hi) __A,
1207 (__v32hi) _mm512_setzero_hi(),
1212 _mm512_mask_mulhrs_epi16 (__m512i __W,
__mmask32 __U, __m512i __A,
1215 return (__m512i) __builtin_ia32_pmulhrsw512_mask ((__v32hi) __A,
1222 _mm512_maskz_mulhrs_epi16 (
__mmask32 __U, __m512i __A, __m512i __B)
1224 return (__m512i) __builtin_ia32_pmulhrsw512_mask ((__v32hi) __A,
1226 (__v32hi) _mm512_setzero_hi(),
1231 _mm512_mulhi_epi16 (__m512i __A, __m512i __B)
1233 return (__m512i) __builtin_ia32_pmulhw512_mask ((__v32hi) __A,
1235 (__v32hi) _mm512_setzero_hi(),
1240 _mm512_mask_mulhi_epi16 (__m512i __W,
__mmask32 __U, __m512i __A,
1243 return (__m512i) __builtin_ia32_pmulhw512_mask ((__v32hi) __A,
1250 _mm512_maskz_mulhi_epi16 (
__mmask32 __U, __m512i __A, __m512i __B)
1252 return (__m512i) __builtin_ia32_pmulhw512_mask ((__v32hi) __A,
1254 (__v32hi) _mm512_setzero_hi(),
1259 _mm512_mulhi_epu16 (__m512i __A, __m512i __B)
1261 return (__m512i) __builtin_ia32_pmulhuw512_mask ((__v32hi) __A,
1263 (__v32hi) _mm512_setzero_hi(),
1268 _mm512_mask_mulhi_epu16 (__m512i __W,
__mmask32 __U, __m512i __A,
1271 return (__m512i) __builtin_ia32_pmulhuw512_mask ((__v32hi) __A,
1278 _mm512_maskz_mulhi_epu16 (
__mmask32 __U, __m512i __A, __m512i __B)
1280 return (__m512i) __builtin_ia32_pmulhuw512_mask ((__v32hi) __A,
1282 (__v32hi) _mm512_setzero_hi(),
1287 _mm512_maddubs_epi16 (__m512i __X, __m512i __Y) {
1288 return (__m512i) __builtin_ia32_pmaddubsw512_mask ((__v64qi) __X,
1290 (__v32hi) _mm512_setzero_hi(),
1295 _mm512_mask_maddubs_epi16 (__m512i __W,
__mmask32 __U, __m512i __X,
1297 return (__m512i) __builtin_ia32_pmaddubsw512_mask ((__v64qi) __X,
1304 _mm512_maskz_maddubs_epi16 (
__mmask32 __U, __m512i __X, __m512i __Y) {
1305 return (__m512i) __builtin_ia32_pmaddubsw512_mask ((__v64qi) __X,
1307 (__v32hi) _mm512_setzero_hi(),
1312 _mm512_madd_epi16 (__m512i __A, __m512i __B) {
1313 return (__m512i) __builtin_ia32_pmaddwd512_mask ((__v32hi) __A,
1315 (__v16si) _mm512_setzero_si512(),
1320 _mm512_mask_madd_epi16 (__m512i __W,
__mmask16 __U, __m512i __A,
1322 return (__m512i) __builtin_ia32_pmaddwd512_mask ((__v32hi) __A,
1329 _mm512_maskz_madd_epi16 (
__mmask16 __U, __m512i __A, __m512i __B) {
1330 return (__m512i) __builtin_ia32_pmaddwd512_mask ((__v32hi) __A,
1332 (__v16si) _mm512_setzero_si512(),
1337 _mm512_cvtsepi16_epi8 (__m512i __A) {
1338 return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,
1339 (__v32qi)_mm256_setzero_si256(),
1344 _mm512_mask_cvtsepi16_epi8 (__m256i __O,
__mmask32 __M, __m512i __A) {
1345 return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,
1351 _mm512_maskz_cvtsepi16_epi8 (
__mmask32 __M, __m512i __A) {
1352 return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,
1353 (__v32qi) _mm256_setzero_si256(),
1358 _mm512_cvtusepi16_epi8 (__m512i __A) {
1359 return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,
1360 (__v32qi) _mm256_setzero_si256(),
1365 _mm512_mask_cvtusepi16_epi8 (__m256i __O,
__mmask32 __M, __m512i __A) {
1366 return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,
1372 _mm512_maskz_cvtusepi16_epi8 (
__mmask32 __M, __m512i __A) {
1373 return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,
1374 (__v32qi) _mm256_setzero_si256(),
1379 _mm512_cvtepi16_epi8 (__m512i __A) {
1380 return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A,
1381 (__v32qi) _mm256_setzero_si256(),
1386 _mm512_mask_cvtepi16_epi8 (__m256i __O,
__mmask32 __M, __m512i __A) {
1387 return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A,
1393 _mm512_maskz_cvtepi16_epi8 (
__mmask32 __M, __m512i __A) {
1394 return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A,
1395 (__v32qi) _mm256_setzero_si256(),
1400 _mm512_unpackhi_epi8 (__m512i __A, __m512i __B) {
1401 return (__m512i) __builtin_ia32_punpckhbw512_mask ((__v64qi) __A,
1403 (__v64qi) _mm512_setzero_qi(),
1408 _mm512_mask_unpackhi_epi8 (__m512i __W,
__mmask64 __U, __m512i __A,
1410 return (__m512i) __builtin_ia32_punpckhbw512_mask ((__v64qi) __A,
1417 _mm512_maskz_unpackhi_epi8 (
__mmask64 __U, __m512i __A, __m512i __B) {
1418 return (__m512i) __builtin_ia32_punpckhbw512_mask ((__v64qi) __A,
1420 (__v64qi) _mm512_setzero_qi(),
1425 _mm512_unpackhi_epi16 (__m512i __A, __m512i __B) {
1426 return (__m512i) __builtin_ia32_punpckhwd512_mask ((__v32hi) __A,
1428 (__v32hi) _mm512_setzero_hi(),
1433 _mm512_mask_unpackhi_epi16 (__m512i __W,
__mmask32 __U, __m512i __A,
1435 return (__m512i) __builtin_ia32_punpckhwd512_mask ((__v32hi) __A,
1442 _mm512_maskz_unpackhi_epi16 (
__mmask32 __U, __m512i __A, __m512i __B) {
1443 return (__m512i) __builtin_ia32_punpckhwd512_mask ((__v32hi) __A,
1445 (__v32hi) _mm512_setzero_hi(),
1450 _mm512_unpacklo_epi8 (__m512i __A, __m512i __B) {
1451 return (__m512i) __builtin_ia32_punpcklbw512_mask ((__v64qi) __A,
1453 (__v64qi) _mm512_setzero_qi(),
1458 _mm512_mask_unpacklo_epi8 (__m512i __W,
__mmask64 __U, __m512i __A,
1460 return (__m512i) __builtin_ia32_punpcklbw512_mask ((__v64qi) __A,
1467 _mm512_maskz_unpacklo_epi8 (
__mmask64 __U, __m512i __A, __m512i __B) {
1468 return (__m512i) __builtin_ia32_punpcklbw512_mask ((__v64qi) __A,
1470 (__v64qi) _mm512_setzero_qi(),
1475 _mm512_unpacklo_epi16 (__m512i __A, __m512i __B) {
1476 return (__m512i) __builtin_ia32_punpcklwd512_mask ((__v32hi) __A,
1478 (__v32hi) _mm512_setzero_hi(),
1483 _mm512_mask_unpacklo_epi16 (__m512i __W,
__mmask32 __U, __m512i __A,
1485 return (__m512i) __builtin_ia32_punpcklwd512_mask ((__v32hi) __A,
1492 _mm512_maskz_unpacklo_epi16 (
__mmask32 __U, __m512i __A, __m512i __B) {
1493 return (__m512i) __builtin_ia32_punpcklwd512_mask ((__v32hi) __A,
1495 (__v32hi) _mm512_setzero_hi(),
1499 #define _mm512_cmp_epi8_mask(a, b, p) __extension__ ({ \
1500 (__mmask16)__builtin_ia32_cmpb512_mask((__v64qi)(__m512i)(a), \
1501 (__v64qi)(__m512i)(b), \
1502 (p), (__mmask64)-1); })
1504 #define _mm512_mask_cmp_epi8_mask(m, a, b, p) __extension__ ({ \
1505 (__mmask16)__builtin_ia32_cmpb512_mask((__v64qi)(__m512i)(a), \
1506 (__v64qi)(__m512i)(b), \
1507 (p), (__mmask64)(m)); })
1509 #define _mm512_cmp_epu8_mask(a, b, p) __extension__ ({ \
1510 (__mmask16)__builtin_ia32_ucmpb512_mask((__v64qi)(__m512i)(a), \
1511 (__v64qi)(__m512i)(b), \
1512 (p), (__mmask64)-1); })
1514 #define _mm512_mask_cmp_epu8_mask(m, a, b, p) __extension__ ({ \
1515 (__mmask16)__builtin_ia32_ucmpb512_mask((__v64qi)(__m512i)(a), \
1516 (__v64qi)(__m512i)(b), \
1517 (p), (__mmask64)(m)); })
1519 #define _mm512_cmp_epi16_mask(a, b, p) __extension__ ({ \
1520 (__mmask16)__builtin_ia32_cmpw512_mask((__v32hi)(__m512i)(a), \
1521 (__v32hi)(__m512i)(b), \
1522 (p), (__mmask32)-1); })
1524 #define _mm512_mask_cmp_epi16_mask(m, a, b, p) __extension__ ({ \
1525 (__mmask16)__builtin_ia32_cmpw512_mask((__v32hi)(__m512i)(a), \
1526 (__v32hi)(__m512i)(b), \
1527 (p), (__mmask32)(m)); })
1529 #define _mm512_cmp_epu16_mask(a, b, p) __extension__ ({ \
1530 (__mmask16)__builtin_ia32_ucmpw512_mask((__v32hi)(__m512i)(a), \
1531 (__v32hi)(__m512i)(b), \
1532 (p), (__mmask32)-1); })
1534 #define _mm512_mask_cmp_epu16_mask(m, a, b, p) __extension__ ({ \
1535 (__mmask16)__builtin_ia32_ucmpw512_mask((__v32hi)(__m512i)(a), \
1536 (__v32hi)(__m512i)(b), \
1537 (p), (__mmask32)(m)); })
1540 #undef __DEFAULT_FN_ATTRS
unsigned int __mmask32
Definition: avx512bwintrin.h:31
#define __DEFAULT_FN_ATTRS
Definition: avx512bwintrin.h:37
unsigned long long __mmask64
Definition: avx512bwintrin.h:32
static vector float vector float __b
Definition: altivec.h:419
char __v64qi __attribute__((__vector_size__(64)))
Definition: avx512bwintrin.h:33
unsigned short __mmask16
Definition: avx512fintrin.h:40