* config/i386/avx512bitalgintrin.h (_mm512_mask_bitshuffle_epi64_mask):
[official-gcc.git] / gcc / config / i386 / avx512vlbwintrin.h
blob02afce15686ba50f56ce9f1045fa27d6d22cf5d9
1 /* Copyright (C) 2014-2018 Free Software Foundation, Inc.
3 This file is part of GCC.
5 GCC is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 3, or (at your option)
8 any later version.
10 GCC is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 Under Section 7 of GPL version 3, you are granted additional
16 permissions described in the GCC Runtime Library Exception, version
17 3.1, as published by the Free Software Foundation.
19 You should have received a copy of the GNU General Public License and
20 a copy of the GCC Runtime Library Exception along with this program;
21 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
22 <http://www.gnu.org/licenses/>. */
24 #ifndef _IMMINTRIN_H_INCLUDED
25 #error "Never use <avx512vlbwintrin.h> directly; include <immintrin.h> instead."
26 #endif
28 #ifndef _AVX512VLBWINTRIN_H_INCLUDED
29 #define _AVX512VLBWINTRIN_H_INCLUDED
31 #if !defined(__AVX512VL__) || !defined(__AVX512BW__)
32 #pragma GCC push_options
33 #pragma GCC target("avx512vl,avx512bw")
34 #define __DISABLE_AVX512VLBW__
35 #endif /* __AVX512VLBW__ */
38 extern __inline __m256i
39 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
40 _mm256_mask_mov_epi8 (__m256i __W, __mmask32 __U, __m256i __A)
42 return (__m256i) __builtin_ia32_movdquqi256_mask ((__v32qi) __A,
43 (__v32qi) __W,
44 (__mmask32) __U);
47 extern __inline __m256i
48 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
49 _mm256_maskz_mov_epi8 (__mmask32 __U, __m256i __A)
51 return (__m256i) __builtin_ia32_movdquqi256_mask ((__v32qi) __A,
52 (__v32qi)
53 _mm256_setzero_si256 (),
54 (__mmask32) __U);
57 extern __inline __m128i
58 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
59 _mm_mask_mov_epi8 (__m128i __W, __mmask16 __U, __m128i __A)
61 return (__m128i) __builtin_ia32_movdquqi128_mask ((__v16qi) __A,
62 (__v16qi) __W,
63 (__mmask16) __U);
66 extern __inline __m128i
67 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
68 _mm_maskz_mov_epi8 (__mmask16 __U, __m128i __A)
70 return (__m128i) __builtin_ia32_movdquqi128_mask ((__v16qi) __A,
71 (__v16qi)
72 _mm_setzero_si128 (),
73 (__mmask16) __U);
76 extern __inline void
77 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
78 _mm256_mask_storeu_epi8 (void *__P, __mmask32 __U, __m256i __A)
80 __builtin_ia32_storedquqi256_mask ((char *) __P,
81 (__v32qi) __A,
82 (__mmask32) __U);
85 extern __inline void
86 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
87 _mm_mask_storeu_epi8 (void *__P, __mmask16 __U, __m128i __A)
89 __builtin_ia32_storedquqi128_mask ((char *) __P,
90 (__v16qi) __A,
91 (__mmask16) __U);
94 extern __inline __m256i
95 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
96 _mm256_mask_loadu_epi16 (__m256i __W, __mmask16 __U, void const *__P)
98 return (__m256i) __builtin_ia32_loaddquhi256_mask ((const short *) __P,
99 (__v16hi) __W,
100 (__mmask16) __U);
103 extern __inline __m256i
104 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
105 _mm256_maskz_loadu_epi16 (__mmask16 __U, void const *__P)
107 return (__m256i) __builtin_ia32_loaddquhi256_mask ((const short *) __P,
108 (__v16hi)
109 _mm256_setzero_si256 (),
110 (__mmask16) __U);
113 extern __inline __m128i
114 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
115 _mm_mask_loadu_epi16 (__m128i __W, __mmask8 __U, void const *__P)
117 return (__m128i) __builtin_ia32_loaddquhi128_mask ((const short *) __P,
118 (__v8hi) __W,
119 (__mmask8) __U);
122 extern __inline __m128i
123 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
124 _mm_maskz_loadu_epi16 (__mmask8 __U, void const *__P)
126 return (__m128i) __builtin_ia32_loaddquhi128_mask ((const short *) __P,
127 (__v8hi)
128 _mm_setzero_si128 (),
129 (__mmask8) __U);
133 extern __inline __m256i
134 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
135 _mm256_mask_mov_epi16 (__m256i __W, __mmask16 __U, __m256i __A)
137 return (__m256i) __builtin_ia32_movdquhi256_mask ((__v16hi) __A,
138 (__v16hi) __W,
139 (__mmask16) __U);
142 extern __inline __m256i
143 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
144 _mm256_maskz_mov_epi16 (__mmask16 __U, __m256i __A)
146 return (__m256i) __builtin_ia32_movdquhi256_mask ((__v16hi) __A,
147 (__v16hi)
148 _mm256_setzero_si256 (),
149 (__mmask16) __U);
152 extern __inline __m128i
153 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
154 _mm_mask_mov_epi16 (__m128i __W, __mmask8 __U, __m128i __A)
156 return (__m128i) __builtin_ia32_movdquhi128_mask ((__v8hi) __A,
157 (__v8hi) __W,
158 (__mmask8) __U);
161 extern __inline __m128i
162 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
163 _mm_maskz_mov_epi16 (__mmask8 __U, __m128i __A)
165 return (__m128i) __builtin_ia32_movdquhi128_mask ((__v8hi) __A,
166 (__v8hi)
167 _mm_setzero_si128 (),
168 (__mmask8) __U);
171 extern __inline __m256i
172 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
173 _mm256_mask_loadu_epi8 (__m256i __W, __mmask32 __U, void const *__P)
175 return (__m256i) __builtin_ia32_loaddquqi256_mask ((const char *) __P,
176 (__v32qi) __W,
177 (__mmask32) __U);
180 extern __inline __m256i
181 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
182 _mm256_maskz_loadu_epi8 (__mmask32 __U, void const *__P)
184 return (__m256i) __builtin_ia32_loaddquqi256_mask ((const char *) __P,
185 (__v32qi)
186 _mm256_setzero_si256 (),
187 (__mmask32) __U);
190 extern __inline __m128i
191 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
192 _mm_mask_loadu_epi8 (__m128i __W, __mmask16 __U, void const *__P)
194 return (__m128i) __builtin_ia32_loaddquqi128_mask ((const char *) __P,
195 (__v16qi) __W,
196 (__mmask16) __U);
199 extern __inline __m128i
200 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
201 _mm_maskz_loadu_epi8 (__mmask16 __U, void const *__P)
203 return (__m128i) __builtin_ia32_loaddquqi128_mask ((const char *) __P,
204 (__v16qi)
205 _mm_setzero_si128 (),
206 (__mmask16) __U);
209 extern __inline __m128i
210 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
211 _mm256_cvtepi16_epi8 (__m256i __A)
214 return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
215 (__v16qi)_mm_undefined_si128(),
216 (__mmask16) -1);
219 extern __inline void
220 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
221 _mm256_mask_cvtepi16_storeu_epi8 (void * __P, __mmask16 __M,__m256i __A)
223 __builtin_ia32_pmovwb256mem_mask ((__v16qi *) __P , (__v16hi) __A, __M);
226 extern __inline __m128i
227 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
228 _mm256_mask_cvtepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A)
230 return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
231 (__v16qi) __O, __M);
234 extern __inline __m128i
235 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
236 _mm256_maskz_cvtepi16_epi8 (__mmask16 __M, __m256i __A)
238 return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
239 (__v16qi)
240 _mm_setzero_si128 (),
241 __M);
244 extern __inline __m128i
245 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
246 _mm_cvtsepi16_epi8 (__m128i __A)
249 return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
250 (__v16qi)_mm_undefined_si128(),
251 (__mmask8) -1);
254 extern __inline void
255 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
256 _mm_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask8 __M,__m128i __A)
258 __builtin_ia32_pmovswb128mem_mask ((__v8qi *) __P , (__v8hi) __A, __M);
261 extern __inline __m128i
262 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
263 _mm_mask_cvtsepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
265 return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
266 (__v16qi) __O, __M);
269 extern __inline __m128i
270 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
271 _mm_maskz_cvtsepi16_epi8 (__mmask8 __M, __m128i __A)
273 return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
274 (__v16qi)
275 _mm_setzero_si128 (),
276 __M);
279 extern __inline __m128i
280 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
281 _mm256_cvtsepi16_epi8 (__m256i __A)
284 return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
285 (__v16qi)_mm_undefined_si128(),
286 (__mmask16) -1);
289 extern __inline void
290 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
291 _mm256_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask16 __M,__m256i __A)
293 __builtin_ia32_pmovswb256mem_mask ((__v16qi *) __P , (__v16hi) __A, __M);
296 extern __inline __m128i
297 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
298 _mm256_mask_cvtsepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A)
300 return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
301 (__v16qi) __O, __M);
304 extern __inline __m128i
305 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
306 _mm256_maskz_cvtsepi16_epi8 (__mmask16 __M, __m256i __A)
308 return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
309 (__v16qi)
310 _mm_setzero_si128 (),
311 __M);
314 extern __inline __m128i
315 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
316 _mm_cvtusepi16_epi8 (__m128i __A)
319 return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
320 (__v16qi)_mm_undefined_si128(),
321 (__mmask8) -1);
324 extern __inline void
325 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
326 _mm_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask8 __M,__m128i __A)
328 __builtin_ia32_pmovuswb128mem_mask ((__v8qi *) __P , (__v8hi) __A, __M);
331 extern __inline __m128i
332 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
333 _mm_mask_cvtusepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
335 return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
336 (__v16qi) __O,
337 __M);
340 extern __inline __m128i
341 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
342 _mm_maskz_cvtusepi16_epi8 (__mmask8 __M, __m128i __A)
344 return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
345 (__v16qi)
346 _mm_setzero_si128 (),
347 __M);
350 extern __inline __m128i
351 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
352 _mm256_cvtusepi16_epi8 (__m256i __A)
355 return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
356 (__v16qi)_mm_undefined_si128(),
357 (__mmask16) -1);
360 extern __inline void
361 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
362 _mm256_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask16 __M,__m256i __A)
364 __builtin_ia32_pmovuswb256mem_mask ((__v16qi *) __P , (__v16hi) __A, __M);
367 extern __inline __m128i
368 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
369 _mm256_mask_cvtusepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A)
371 return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
372 (__v16qi) __O,
373 __M);
376 extern __inline __m128i
377 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
378 _mm256_maskz_cvtusepi16_epi8 (__mmask16 __M, __m256i __A)
380 return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
381 (__v16qi)
382 _mm_setzero_si128 (),
383 __M);
386 extern __inline __m256i
387 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
388 _mm256_mask_broadcastb_epi8 (__m256i __O, __mmask32 __M, __m128i __A)
390 return (__m256i) __builtin_ia32_pbroadcastb256_mask ((__v16qi) __A,
391 (__v32qi) __O,
392 __M);
395 extern __inline __m256i
396 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
397 _mm256_maskz_broadcastb_epi8 (__mmask32 __M, __m128i __A)
399 return (__m256i) __builtin_ia32_pbroadcastb256_mask ((__v16qi) __A,
400 (__v32qi)
401 _mm256_setzero_si256 (),
402 __M);
405 extern __inline __m256i
406 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
407 _mm256_mask_set1_epi8 (__m256i __O, __mmask32 __M, char __A)
409 return (__m256i) __builtin_ia32_pbroadcastb256_gpr_mask (__A,
410 (__v32qi) __O,
411 __M);
414 extern __inline __m256i
415 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
416 _mm256_maskz_set1_epi8 (__mmask32 __M, char __A)
418 return (__m256i) __builtin_ia32_pbroadcastb256_gpr_mask (__A,
419 (__v32qi)
420 _mm256_setzero_si256 (),
421 __M);
424 extern __inline __m128i
425 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
426 _mm_mask_broadcastb_epi8 (__m128i __O, __mmask16 __M, __m128i __A)
428 return (__m128i) __builtin_ia32_pbroadcastb128_mask ((__v16qi) __A,
429 (__v16qi) __O,
430 __M);
433 extern __inline __m128i
434 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
435 _mm_maskz_broadcastb_epi8 (__mmask16 __M, __m128i __A)
437 return (__m128i) __builtin_ia32_pbroadcastb128_mask ((__v16qi) __A,
438 (__v16qi)
439 _mm_setzero_si128 (),
440 __M);
443 extern __inline __m128i
444 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
445 _mm_mask_set1_epi8 (__m128i __O, __mmask16 __M, char __A)
447 return (__m128i) __builtin_ia32_pbroadcastb128_gpr_mask (__A,
448 (__v16qi) __O,
449 __M);
452 extern __inline __m128i
453 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
454 _mm_maskz_set1_epi8 (__mmask16 __M, char __A)
456 return (__m128i) __builtin_ia32_pbroadcastb128_gpr_mask (__A,
457 (__v16qi)
458 _mm_setzero_si128 (),
459 __M);
462 extern __inline __m256i
463 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
464 _mm256_mask_broadcastw_epi16 (__m256i __O, __mmask16 __M, __m128i __A)
466 return (__m256i) __builtin_ia32_pbroadcastw256_mask ((__v8hi) __A,
467 (__v16hi) __O,
468 __M);
471 extern __inline __m256i
472 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
473 _mm256_maskz_broadcastw_epi16 (__mmask16 __M, __m128i __A)
475 return (__m256i) __builtin_ia32_pbroadcastw256_mask ((__v8hi) __A,
476 (__v16hi)
477 _mm256_setzero_si256 (),
478 __M);
481 extern __inline __m256i
482 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
483 _mm256_mask_set1_epi16 (__m256i __O, __mmask16 __M, short __A)
485 return (__m256i) __builtin_ia32_pbroadcastw256_gpr_mask (__A,
486 (__v16hi) __O,
487 __M);
490 extern __inline __m256i
491 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
492 _mm256_maskz_set1_epi16 (__mmask16 __M, short __A)
494 return (__m256i) __builtin_ia32_pbroadcastw256_gpr_mask (__A,
495 (__v16hi)
496 _mm256_setzero_si256 (),
497 __M);
500 extern __inline __m128i
501 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
502 _mm_mask_broadcastw_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
504 return (__m128i) __builtin_ia32_pbroadcastw128_mask ((__v8hi) __A,
505 (__v8hi) __O,
506 __M);
509 extern __inline __m128i
510 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
511 _mm_maskz_broadcastw_epi16 (__mmask8 __M, __m128i __A)
513 return (__m128i) __builtin_ia32_pbroadcastw128_mask ((__v8hi) __A,
514 (__v8hi)
515 _mm_setzero_si128 (),
516 __M);
519 extern __inline __m128i
520 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
521 _mm_mask_set1_epi16 (__m128i __O, __mmask8 __M, short __A)
523 return (__m128i) __builtin_ia32_pbroadcastw128_gpr_mask (__A,
524 (__v8hi) __O,
525 __M);
528 extern __inline __m128i
529 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
530 _mm_maskz_set1_epi16 (__mmask8 __M, short __A)
532 return (__m128i) __builtin_ia32_pbroadcastw128_gpr_mask (__A,
533 (__v8hi)
534 _mm_setzero_si128 (),
535 __M);
538 extern __inline __m256i
539 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
540 _mm256_permutexvar_epi16 (__m256i __A, __m256i __B)
542 return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
543 (__v16hi) __A,
544 (__v16hi)
545 _mm256_setzero_si256 (),
546 (__mmask16) -1);
549 extern __inline __m256i
550 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
551 _mm256_maskz_permutexvar_epi16 (__mmask16 __M, __m256i __A,
552 __m256i __B)
554 return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
555 (__v16hi) __A,
556 (__v16hi)
557 _mm256_setzero_si256 (),
558 (__mmask16) __M);
561 extern __inline __m256i
562 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
563 _mm256_mask_permutexvar_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
564 __m256i __B)
566 return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
567 (__v16hi) __A,
568 (__v16hi) __W,
569 (__mmask16) __M);
572 extern __inline __m128i
573 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
574 _mm_permutexvar_epi16 (__m128i __A, __m128i __B)
576 return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
577 (__v8hi) __A,
578 (__v8hi)
579 _mm_setzero_si128 (),
580 (__mmask8) -1);
583 extern __inline __m128i
584 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
585 _mm_maskz_permutexvar_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
587 return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
588 (__v8hi) __A,
589 (__v8hi)
590 _mm_setzero_si128 (),
591 (__mmask8) __M);
594 extern __inline __m128i
595 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
596 _mm_mask_permutexvar_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
597 __m128i __B)
599 return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
600 (__v8hi) __A,
601 (__v8hi) __W,
602 (__mmask8) __M);
605 extern __inline __m256i
606 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
607 _mm256_permutex2var_epi16 (__m256i __A, __m256i __I, __m256i __B)
609 return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I
610 /* idx */ ,
611 (__v16hi) __A,
612 (__v16hi) __B,
613 (__mmask16) -1);
616 extern __inline __m256i
617 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
618 _mm256_mask_permutex2var_epi16 (__m256i __A, __mmask16 __U,
619 __m256i __I, __m256i __B)
621 return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I
622 /* idx */ ,
623 (__v16hi) __A,
624 (__v16hi) __B,
625 (__mmask16)
626 __U);
629 extern __inline __m256i
630 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
631 _mm256_mask2_permutex2var_epi16 (__m256i __A, __m256i __I,
632 __mmask16 __U, __m256i __B)
634 return (__m256i) __builtin_ia32_vpermi2varhi256_mask ((__v16hi) __A,
635 (__v16hi) __I
636 /* idx */ ,
637 (__v16hi) __B,
638 (__mmask16)
639 __U);
642 extern __inline __m256i
643 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
644 _mm256_maskz_permutex2var_epi16 (__mmask16 __U, __m256i __A,
645 __m256i __I, __m256i __B)
647 return (__m256i) __builtin_ia32_vpermt2varhi256_maskz ((__v16hi) __I
648 /* idx */ ,
649 (__v16hi) __A,
650 (__v16hi) __B,
651 (__mmask16)
652 __U);
655 extern __inline __m128i
656 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
657 _mm_permutex2var_epi16 (__m128i __A, __m128i __I, __m128i __B)
659 return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I
660 /* idx */ ,
661 (__v8hi) __A,
662 (__v8hi) __B,
663 (__mmask8) -1);
666 extern __inline __m128i
667 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
668 _mm_mask_permutex2var_epi16 (__m128i __A, __mmask8 __U, __m128i __I,
669 __m128i __B)
671 return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I
672 /* idx */ ,
673 (__v8hi) __A,
674 (__v8hi) __B,
675 (__mmask8)
676 __U);
679 extern __inline __m128i
680 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
681 _mm_mask2_permutex2var_epi16 (__m128i __A, __m128i __I, __mmask8 __U,
682 __m128i __B)
684 return (__m128i) __builtin_ia32_vpermi2varhi128_mask ((__v8hi) __A,
685 (__v8hi) __I
686 /* idx */ ,
687 (__v8hi) __B,
688 (__mmask8)
689 __U);
692 extern __inline __m128i
693 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
694 _mm_maskz_permutex2var_epi16 (__mmask8 __U, __m128i __A, __m128i __I,
695 __m128i __B)
697 return (__m128i) __builtin_ia32_vpermt2varhi128_maskz ((__v8hi) __I
698 /* idx */ ,
699 (__v8hi) __A,
700 (__v8hi) __B,
701 (__mmask8)
702 __U);
705 extern __inline __m256i
706 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
707 _mm256_mask_maddubs_epi16 (__m256i __W, __mmask16 __U, __m256i __X,
708 __m256i __Y)
710 return (__m256i) __builtin_ia32_pmaddubsw256_mask ((__v32qi) __X,
711 (__v32qi) __Y,
712 (__v16hi) __W,
713 (__mmask16) __U);
716 extern __inline __m256i
717 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
718 _mm256_maskz_maddubs_epi16 (__mmask16 __U, __m256i __X, __m256i __Y)
720 return (__m256i) __builtin_ia32_pmaddubsw256_mask ((__v32qi) __X,
721 (__v32qi) __Y,
722 (__v16hi)
723 _mm256_setzero_si256 (),
724 (__mmask16) __U);
727 extern __inline __m128i
728 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
729 _mm_mask_maddubs_epi16 (__m128i __W, __mmask8 __U, __m128i __X,
730 __m128i __Y)
732 return (__m128i) __builtin_ia32_pmaddubsw128_mask ((__v16qi) __X,
733 (__v16qi) __Y,
734 (__v8hi) __W,
735 (__mmask8) __U);
738 extern __inline __m128i
739 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
740 _mm_maskz_maddubs_epi16 (__mmask8 __U, __m128i __X, __m128i __Y)
742 return (__m128i) __builtin_ia32_pmaddubsw128_mask ((__v16qi) __X,
743 (__v16qi) __Y,
744 (__v8hi)
745 _mm_setzero_si128 (),
746 (__mmask8) __U);
749 extern __inline __m256i
750 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
751 _mm256_mask_madd_epi16 (__m256i __W, __mmask8 __U, __m256i __A,
752 __m256i __B)
754 return (__m256i) __builtin_ia32_pmaddwd256_mask ((__v16hi) __A,
755 (__v16hi) __B,
756 (__v8si) __W,
757 (__mmask8) __U);
760 extern __inline __m256i
761 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
762 _mm256_maskz_madd_epi16 (__mmask8 __U, __m256i __A, __m256i __B)
764 return (__m256i) __builtin_ia32_pmaddwd256_mask ((__v16hi) __A,
765 (__v16hi) __B,
766 (__v8si)
767 _mm256_setzero_si256 (),
768 (__mmask8) __U);
771 extern __inline __m128i
772 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
773 _mm_mask_madd_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
774 __m128i __B)
776 return (__m128i) __builtin_ia32_pmaddwd128_mask ((__v8hi) __A,
777 (__v8hi) __B,
778 (__v4si) __W,
779 (__mmask8) __U);
782 extern __inline __m128i
783 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
784 _mm_maskz_madd_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
786 return (__m128i) __builtin_ia32_pmaddwd128_mask ((__v8hi) __A,
787 (__v8hi) __B,
788 (__v4si)
789 _mm_setzero_si128 (),
790 (__mmask8) __U);
793 extern __inline __mmask16
794 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
795 _mm_movepi8_mask (__m128i __A)
797 return (__mmask16) __builtin_ia32_cvtb2mask128 ((__v16qi) __A);
800 extern __inline __mmask32
801 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
802 _mm256_movepi8_mask (__m256i __A)
804 return (__mmask32) __builtin_ia32_cvtb2mask256 ((__v32qi) __A);
807 extern __inline __mmask8
808 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
809 _mm_movepi16_mask (__m128i __A)
811 return (__mmask8) __builtin_ia32_cvtw2mask128 ((__v8hi) __A);
814 extern __inline __mmask16
815 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
816 _mm256_movepi16_mask (__m256i __A)
818 return (__mmask16) __builtin_ia32_cvtw2mask256 ((__v16hi) __A);
821 extern __inline __m128i
822 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
823 _mm_movm_epi8 (__mmask16 __A)
825 return (__m128i) __builtin_ia32_cvtmask2b128 (__A);
828 extern __inline __m256i
829 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
830 _mm256_movm_epi8 (__mmask32 __A)
832 return (__m256i) __builtin_ia32_cvtmask2b256 (__A);
835 extern __inline __m128i
836 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
837 _mm_movm_epi16 (__mmask8 __A)
839 return (__m128i) __builtin_ia32_cvtmask2w128 (__A);
842 extern __inline __m256i
843 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
844 _mm256_movm_epi16 (__mmask16 __A)
846 return (__m256i) __builtin_ia32_cvtmask2w256 (__A);
849 extern __inline __mmask16
850 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
851 _mm_test_epi8_mask (__m128i __A, __m128i __B)
853 return (__mmask16) __builtin_ia32_ptestmb128 ((__v16qi) __A,
854 (__v16qi) __B,
855 (__mmask16) -1);
858 extern __inline __mmask16
859 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
860 _mm_mask_test_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
862 return (__mmask16) __builtin_ia32_ptestmb128 ((__v16qi) __A,
863 (__v16qi) __B, __U);
866 extern __inline __mmask32
867 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
868 _mm256_test_epi8_mask (__m256i __A, __m256i __B)
870 return (__mmask32) __builtin_ia32_ptestmb256 ((__v32qi) __A,
871 (__v32qi) __B,
872 (__mmask32) -1);
875 extern __inline __mmask32
876 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
877 _mm256_mask_test_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
879 return (__mmask32) __builtin_ia32_ptestmb256 ((__v32qi) __A,
880 (__v32qi) __B, __U);
883 extern __inline __mmask8
884 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
885 _mm_test_epi16_mask (__m128i __A, __m128i __B)
887 return (__mmask8) __builtin_ia32_ptestmw128 ((__v8hi) __A,
888 (__v8hi) __B,
889 (__mmask8) -1);
892 extern __inline __mmask8
893 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
894 _mm_mask_test_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
896 return (__mmask8) __builtin_ia32_ptestmw128 ((__v8hi) __A,
897 (__v8hi) __B, __U);
900 extern __inline __mmask16
901 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
902 _mm256_test_epi16_mask (__m256i __A, __m256i __B)
904 return (__mmask16) __builtin_ia32_ptestmw256 ((__v16hi) __A,
905 (__v16hi) __B,
906 (__mmask16) -1);
909 extern __inline __mmask16
910 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
911 _mm256_mask_test_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
913 return (__mmask16) __builtin_ia32_ptestmw256 ((__v16hi) __A,
914 (__v16hi) __B, __U);
917 extern __inline __m256i
918 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
919 _mm256_maskz_min_epu16 (__mmask16 __M, __m256i __A, __m256i __B)
921 return (__m256i) __builtin_ia32_pminuw256_mask ((__v16hi) __A,
922 (__v16hi) __B,
923 (__v16hi)
924 _mm256_setzero_si256 (),
925 (__mmask16) __M);
928 extern __inline __m256i
929 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
930 _mm256_mask_min_epu16 (__m256i __W, __mmask16 __M, __m256i __A,
931 __m256i __B)
933 return (__m256i) __builtin_ia32_pminuw256_mask ((__v16hi) __A,
934 (__v16hi) __B,
935 (__v16hi) __W,
936 (__mmask16) __M);
939 extern __inline __m128i
940 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
941 _mm_maskz_min_epu16 (__mmask8 __M, __m128i __A, __m128i __B)
943 return (__m128i) __builtin_ia32_pminuw128_mask ((__v8hi) __A,
944 (__v8hi) __B,
945 (__v8hi)
946 _mm_setzero_si128 (),
947 (__mmask8) __M);
950 extern __inline __m128i
951 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
952 _mm_mask_min_epu16 (__m128i __W, __mmask8 __M, __m128i __A,
953 __m128i __B)
955 return (__m128i) __builtin_ia32_pminuw128_mask ((__v8hi) __A,
956 (__v8hi) __B,
957 (__v8hi) __W,
958 (__mmask8) __M);
961 extern __inline __m256i
962 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
963 _mm256_maskz_min_epi16 (__mmask16 __M, __m256i __A, __m256i __B)
965 return (__m256i) __builtin_ia32_pminsw256_mask ((__v16hi) __A,
966 (__v16hi) __B,
967 (__v16hi)
968 _mm256_setzero_si256 (),
969 (__mmask16) __M);
972 extern __inline __m256i
973 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
974 _mm256_mask_min_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
975 __m256i __B)
977 return (__m256i) __builtin_ia32_pminsw256_mask ((__v16hi) __A,
978 (__v16hi) __B,
979 (__v16hi) __W,
980 (__mmask16) __M);
983 extern __inline __m256i
984 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
985 _mm256_maskz_max_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
987 return (__m256i) __builtin_ia32_pmaxub256_mask ((__v32qi) __A,
988 (__v32qi) __B,
989 (__v32qi)
990 _mm256_setzero_si256 (),
991 (__mmask32) __M);
994 extern __inline __m256i
995 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
996 _mm256_mask_max_epu8 (__m256i __W, __mmask32 __M, __m256i __A,
997 __m256i __B)
999 return (__m256i) __builtin_ia32_pmaxub256_mask ((__v32qi) __A,
1000 (__v32qi) __B,
1001 (__v32qi) __W,
1002 (__mmask32) __M);
1005 extern __inline __m128i
1006 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1007 _mm_maskz_max_epu8 (__mmask16 __M, __m128i __A, __m128i __B)
1009 return (__m128i) __builtin_ia32_pmaxub128_mask ((__v16qi) __A,
1010 (__v16qi) __B,
1011 (__v16qi)
1012 _mm_setzero_si128 (),
1013 (__mmask16) __M);
1016 extern __inline __m128i
1017 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1018 _mm_mask_max_epu8 (__m128i __W, __mmask16 __M, __m128i __A,
1019 __m128i __B)
1021 return (__m128i) __builtin_ia32_pmaxub128_mask ((__v16qi) __A,
1022 (__v16qi) __B,
1023 (__v16qi) __W,
1024 (__mmask16) __M);
1027 extern __inline __m256i
1028 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1029 _mm256_maskz_max_epi8 (__mmask32 __M, __m256i __A, __m256i __B)
1031 return (__m256i) __builtin_ia32_pmaxsb256_mask ((__v32qi) __A,
1032 (__v32qi) __B,
1033 (__v32qi)
1034 _mm256_setzero_si256 (),
1035 (__mmask32) __M);
1038 extern __inline __m256i
1039 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1040 _mm256_mask_max_epi8 (__m256i __W, __mmask32 __M, __m256i __A,
1041 __m256i __B)
1043 return (__m256i) __builtin_ia32_pmaxsb256_mask ((__v32qi) __A,
1044 (__v32qi) __B,
1045 (__v32qi) __W,
1046 (__mmask32) __M);
1049 extern __inline __m128i
1050 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1051 _mm_maskz_max_epi8 (__mmask16 __M, __m128i __A, __m128i __B)
1053 return (__m128i) __builtin_ia32_pmaxsb128_mask ((__v16qi) __A,
1054 (__v16qi) __B,
1055 (__v16qi)
1056 _mm_setzero_si128 (),
1057 (__mmask16) __M);
1060 extern __inline __m128i
1061 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1062 _mm_mask_max_epi8 (__m128i __W, __mmask16 __M, __m128i __A,
1063 __m128i __B)
1065 return (__m128i) __builtin_ia32_pmaxsb128_mask ((__v16qi) __A,
1066 (__v16qi) __B,
1067 (__v16qi) __W,
1068 (__mmask16) __M);
1071 extern __inline __m256i
1072 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1073 _mm256_maskz_min_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
1075 return (__m256i) __builtin_ia32_pminub256_mask ((__v32qi) __A,
1076 (__v32qi) __B,
1077 (__v32qi)
1078 _mm256_setzero_si256 (),
1079 (__mmask32) __M);
1082 extern __inline __m256i
1083 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1084 _mm256_mask_min_epu8 (__m256i __W, __mmask32 __M, __m256i __A,
1085 __m256i __B)
1087 return (__m256i) __builtin_ia32_pminub256_mask ((__v32qi) __A,
1088 (__v32qi) __B,
1089 (__v32qi) __W,
1090 (__mmask32) __M);
1093 extern __inline __m128i
1094 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1095 _mm_maskz_min_epu8 (__mmask16 __M, __m128i __A, __m128i __B)
1097 return (__m128i) __builtin_ia32_pminub128_mask ((__v16qi) __A,
1098 (__v16qi) __B,
1099 (__v16qi)
1100 _mm_setzero_si128 (),
1101 (__mmask16) __M);
1104 extern __inline __m128i
1105 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1106 _mm_mask_min_epu8 (__m128i __W, __mmask16 __M, __m128i __A,
1107 __m128i __B)
1109 return (__m128i) __builtin_ia32_pminub128_mask ((__v16qi) __A,
1110 (__v16qi) __B,
1111 (__v16qi) __W,
1112 (__mmask16) __M);
1115 extern __inline __m256i
1116 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1117 _mm256_maskz_min_epi8 (__mmask32 __M, __m256i __A, __m256i __B)
1119 return (__m256i) __builtin_ia32_pminsb256_mask ((__v32qi) __A,
1120 (__v32qi) __B,
1121 (__v32qi)
1122 _mm256_setzero_si256 (),
1123 (__mmask32) __M);
1126 extern __inline __m256i
1127 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1128 _mm256_mask_min_epi8 (__m256i __W, __mmask32 __M, __m256i __A,
1129 __m256i __B)
1131 return (__m256i) __builtin_ia32_pminsb256_mask ((__v32qi) __A,
1132 (__v32qi) __B,
1133 (__v32qi) __W,
1134 (__mmask32) __M);
1137 extern __inline __m128i
1138 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1139 _mm_maskz_min_epi8 (__mmask16 __M, __m128i __A, __m128i __B)
1141 return (__m128i) __builtin_ia32_pminsb128_mask ((__v16qi) __A,
1142 (__v16qi) __B,
1143 (__v16qi)
1144 _mm_setzero_si128 (),
1145 (__mmask16) __M);
1148 extern __inline __m128i
1149 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1150 _mm_mask_min_epi8 (__m128i __W, __mmask16 __M, __m128i __A,
1151 __m128i __B)
1153 return (__m128i) __builtin_ia32_pminsb128_mask ((__v16qi) __A,
1154 (__v16qi) __B,
1155 (__v16qi) __W,
1156 (__mmask16) __M);
1159 extern __inline __m256i
1160 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1161 _mm256_maskz_max_epi16 (__mmask16 __M, __m256i __A, __m256i __B)
1163 return (__m256i) __builtin_ia32_pmaxsw256_mask ((__v16hi) __A,
1164 (__v16hi) __B,
1165 (__v16hi)
1166 _mm256_setzero_si256 (),
1167 (__mmask16) __M);
1170 extern __inline __m256i
1171 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1172 _mm256_mask_max_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
1173 __m256i __B)
1175 return (__m256i) __builtin_ia32_pmaxsw256_mask ((__v16hi) __A,
1176 (__v16hi) __B,
1177 (__v16hi) __W,
1178 (__mmask16) __M);
1181 extern __inline __m128i
1182 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1183 _mm_maskz_max_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
1185 return (__m128i) __builtin_ia32_pmaxsw128_mask ((__v8hi) __A,
1186 (__v8hi) __B,
1187 (__v8hi)
1188 _mm_setzero_si128 (),
1189 (__mmask8) __M);
1192 extern __inline __m128i
1193 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1194 _mm_mask_max_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
1195 __m128i __B)
1197 return (__m128i) __builtin_ia32_pmaxsw128_mask ((__v8hi) __A,
1198 (__v8hi) __B,
1199 (__v8hi) __W,
1200 (__mmask8) __M);
1203 extern __inline __m256i
1204 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1205 _mm256_maskz_max_epu16 (__mmask16 __M, __m256i __A, __m256i __B)
1207 return (__m256i) __builtin_ia32_pmaxuw256_mask ((__v16hi) __A,
1208 (__v16hi) __B,
1209 (__v16hi)
1210 _mm256_setzero_si256 (),
1211 (__mmask16) __M);
1214 extern __inline __m256i
1215 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1216 _mm256_mask_max_epu16 (__m256i __W, __mmask16 __M, __m256i __A,
1217 __m256i __B)
1219 return (__m256i) __builtin_ia32_pmaxuw256_mask ((__v16hi) __A,
1220 (__v16hi) __B,
1221 (__v16hi) __W,
1222 (__mmask16) __M);
1225 extern __inline __m128i
1226 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1227 _mm_maskz_max_epu16 (__mmask8 __M, __m128i __A, __m128i __B)
1229 return (__m128i) __builtin_ia32_pmaxuw128_mask ((__v8hi) __A,
1230 (__v8hi) __B,
1231 (__v8hi)
1232 _mm_setzero_si128 (),
1233 (__mmask8) __M);
1236 extern __inline __m128i
1237 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1238 _mm_mask_max_epu16 (__m128i __W, __mmask8 __M, __m128i __A,
1239 __m128i __B)
1241 return (__m128i) __builtin_ia32_pmaxuw128_mask ((__v8hi) __A,
1242 (__v8hi) __B,
1243 (__v8hi) __W,
1244 (__mmask8) __M);
1247 extern __inline __m128i
1248 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1249 _mm_maskz_min_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
1251 return (__m128i) __builtin_ia32_pminsw128_mask ((__v8hi) __A,
1252 (__v8hi) __B,
1253 (__v8hi)
1254 _mm_setzero_si128 (),
1255 (__mmask8) __M);
1258 extern __inline __m128i
1259 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1260 _mm_mask_min_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
1261 __m128i __B)
1263 return (__m128i) __builtin_ia32_pminsw128_mask ((__v8hi) __A,
1264 (__v8hi) __B,
1265 (__v8hi) __W,
1266 (__mmask8) __M);
1269 #ifdef __OPTIMIZE__
1270 extern __inline __m256i
1271 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1272 _mm256_mask_alignr_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
1273 __m256i __B, const int __N)
1275 return (__m256i) __builtin_ia32_palignr256_mask ((__v4di) __A,
1276 (__v4di) __B,
1277 __N * 8,
1278 (__v4di) __W,
1279 (__mmask32) __U);
1282 extern __inline __m256i
1283 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1284 _mm256_maskz_alignr_epi8 (__mmask32 __U, __m256i __A, __m256i __B,
1285 const int __N)
1287 return (__m256i) __builtin_ia32_palignr256_mask ((__v4di) __A,
1288 (__v4di) __B,
1289 __N * 8,
1290 (__v4di)
1291 _mm256_setzero_si256 (),
1292 (__mmask32) __U);
1295 extern __inline __m128i
1296 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1297 _mm_mask_alignr_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
1298 __m128i __B, const int __N)
1300 return (__m128i) __builtin_ia32_palignr128_mask ((__v2di) __A,
1301 (__v2di) __B,
1302 __N * 8,
1303 (__v2di) __W,
1304 (__mmask16) __U);
1307 extern __inline __m128i
1308 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1309 _mm_maskz_alignr_epi8 (__mmask16 __U, __m128i __A, __m128i __B,
1310 const int __N)
1312 return (__m128i) __builtin_ia32_palignr128_mask ((__v2di) __A,
1313 (__v2di) __B,
1314 __N * 8,
1315 (__v2di)
1316 _mm_setzero_si128 (),
1317 (__mmask16) __U);
1320 extern __inline __m256i
1321 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1322 _mm256_dbsad_epu8 (__m256i __A, __m256i __B, const int __imm)
1324 return (__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi) __A,
1325 (__v32qi) __B,
1326 __imm,
1327 (__v16hi)
1328 _mm256_setzero_si256 (),
1329 (__mmask16) -1);
1332 extern __inline __m256i
1333 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1334 _mm256_mask_dbsad_epu8 (__m256i __W, __mmask16 __U, __m256i __A,
1335 __m256i __B, const int __imm)
1337 return (__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi) __A,
1338 (__v32qi) __B,
1339 __imm,
1340 (__v16hi) __W,
1341 (__mmask16) __U);
1344 extern __inline __m256i
1345 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1346 _mm256_maskz_dbsad_epu8 (__mmask16 __U, __m256i __A, __m256i __B,
1347 const int __imm)
1349 return (__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi) __A,
1350 (__v32qi) __B,
1351 __imm,
1352 (__v16hi)
1353 _mm256_setzero_si256 (),
1354 (__mmask16) __U);
1357 extern __inline __m128i
1358 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1359 _mm_dbsad_epu8 (__m128i __A, __m128i __B, const int __imm)
1361 return (__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi) __A,
1362 (__v16qi) __B,
1363 __imm,
1364 (__v8hi)
1365 _mm_setzero_si128 (),
1366 (__mmask8) -1);
1369 extern __inline __m128i
1370 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1371 _mm_mask_dbsad_epu8 (__m128i __W, __mmask8 __U, __m128i __A,
1372 __m128i __B, const int __imm)
1374 return (__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi) __A,
1375 (__v16qi) __B,
1376 __imm,
1377 (__v8hi) __W,
1378 (__mmask8) __U);
1381 extern __inline __m128i
1382 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1383 _mm_maskz_dbsad_epu8 (__mmask8 __U, __m128i __A, __m128i __B,
1384 const int __imm)
1386 return (__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi) __A,
1387 (__v16qi) __B,
1388 __imm,
1389 (__v8hi)
1390 _mm_setzero_si128 (),
1391 (__mmask8) __U);
1394 extern __inline __m128i
1395 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1396 _mm_mask_blend_epi16 (__mmask8 __U, __m128i __A, __m128i __W)
1398 return (__m128i) __builtin_ia32_blendmw_128_mask ((__v8hi) __A,
1399 (__v8hi) __W,
1400 (__mmask8) __U);
1403 extern __inline __m128i
1404 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1405 _mm_mask_blend_epi8 (__mmask16 __U, __m128i __A, __m128i __W)
1407 return (__m128i) __builtin_ia32_blendmb_128_mask ((__v16qi) __A,
1408 (__v16qi) __W,
1409 (__mmask16) __U);
1412 extern __inline __m256i
1413 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1414 _mm256_mask_blend_epi16 (__mmask16 __U, __m256i __A, __m256i __W)
1416 return (__m256i) __builtin_ia32_blendmw_256_mask ((__v16hi) __A,
1417 (__v16hi) __W,
1418 (__mmask16) __U);
1421 extern __inline __m256i
1422 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1423 _mm256_mask_blend_epi8 (__mmask32 __U, __m256i __A, __m256i __W)
1425 return (__m256i) __builtin_ia32_blendmb_256_mask ((__v32qi) __A,
1426 (__v32qi) __W,
1427 (__mmask32) __U);
1430 extern __inline __mmask8
1431 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1432 _mm_mask_cmp_epi16_mask (__mmask8 __U, __m128i __X, __m128i __Y,
1433 const int __P)
1435 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
1436 (__v8hi) __Y, __P,
1437 (__mmask8) __U);
1440 extern __inline __mmask8
1441 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1442 _mm_cmp_epi16_mask (__m128i __X, __m128i __Y, const int __P)
1444 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
1445 (__v8hi) __Y, __P,
1446 (__mmask8) -1);
1449 extern __inline __mmask16
1450 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1451 _mm256_mask_cmp_epi16_mask (__mmask16 __U, __m256i __X, __m256i __Y,
1452 const int __P)
1454 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
1455 (__v16hi) __Y, __P,
1456 (__mmask16) __U);
1459 extern __inline __mmask16
1460 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1461 _mm256_cmp_epi16_mask (__m256i __X, __m256i __Y, const int __P)
1463 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
1464 (__v16hi) __Y, __P,
1465 (__mmask16) -1);
1468 extern __inline __mmask16
1469 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1470 _mm_mask_cmp_epi8_mask (__mmask16 __U, __m128i __X, __m128i __Y,
1471 const int __P)
1473 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
1474 (__v16qi) __Y, __P,
1475 (__mmask16) __U);
1478 extern __inline __mmask16
1479 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1480 _mm_cmp_epi8_mask (__m128i __X, __m128i __Y, const int __P)
1482 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
1483 (__v16qi) __Y, __P,
1484 (__mmask16) -1);
1487 extern __inline __mmask32
1488 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1489 _mm256_mask_cmp_epi8_mask (__mmask32 __U, __m256i __X, __m256i __Y,
1490 const int __P)
1492 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
1493 (__v32qi) __Y, __P,
1494 (__mmask32) __U);
1497 extern __inline __mmask32
1498 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1499 _mm256_cmp_epi8_mask (__m256i __X, __m256i __Y, const int __P)
1501 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
1502 (__v32qi) __Y, __P,
1503 (__mmask32) -1);
1506 extern __inline __mmask8
1507 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1508 _mm_mask_cmp_epu16_mask (__mmask8 __U, __m128i __X, __m128i __Y,
1509 const int __P)
1511 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
1512 (__v8hi) __Y, __P,
1513 (__mmask8) __U);
1516 extern __inline __mmask8
1517 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1518 _mm_cmp_epu16_mask (__m128i __X, __m128i __Y, const int __P)
1520 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
1521 (__v8hi) __Y, __P,
1522 (__mmask8) -1);
1525 extern __inline __mmask16
1526 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1527 _mm256_mask_cmp_epu16_mask (__mmask16 __U, __m256i __X, __m256i __Y,
1528 const int __P)
1530 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
1531 (__v16hi) __Y, __P,
1532 (__mmask16) __U);
1535 extern __inline __mmask16
1536 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1537 _mm256_cmp_epu16_mask (__m256i __X, __m256i __Y, const int __P)
1539 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
1540 (__v16hi) __Y, __P,
1541 (__mmask16) -1);
1544 extern __inline __mmask16
1545 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1546 _mm_mask_cmp_epu8_mask (__mmask16 __U, __m128i __X, __m128i __Y,
1547 const int __P)
1549 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
1550 (__v16qi) __Y, __P,
1551 (__mmask16) __U);
1554 extern __inline __mmask16
1555 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1556 _mm_cmp_epu8_mask (__m128i __X, __m128i __Y, const int __P)
1558 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
1559 (__v16qi) __Y, __P,
1560 (__mmask16) -1);
1563 extern __inline __mmask32
1564 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1565 _mm256_mask_cmp_epu8_mask (__mmask32 __U, __m256i __X, __m256i __Y,
1566 const int __P)
1568 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
1569 (__v32qi) __Y, __P,
1570 (__mmask32) __U);
1573 extern __inline __mmask32
1574 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1575 _mm256_cmp_epu8_mask (__m256i __X, __m256i __Y, const int __P)
1577 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
1578 (__v32qi) __Y, __P,
1579 (__mmask32) -1);
1582 extern __inline __m256i
1583 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1584 _mm256_mask_srli_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
1585 const int __imm)
1587 return (__m256i) __builtin_ia32_psrlwi256_mask ((__v16hi) __A, __imm,
1588 (__v16hi) __W,
1589 (__mmask16) __U);
1592 extern __inline __m256i
1593 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1594 _mm256_maskz_srli_epi16 (__mmask16 __U, __m256i __A, const int __imm)
1596 return (__m256i) __builtin_ia32_psrlwi256_mask ((__v16hi) __A, __imm,
1597 (__v16hi)
1598 _mm256_setzero_si256 (),
1599 (__mmask16) __U);
1602 extern __inline __m128i
1603 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1604 _mm_mask_srli_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
1605 const int __imm)
1607 return (__m128i) __builtin_ia32_psrlwi128_mask ((__v8hi) __A, __imm,
1608 (__v8hi) __W,
1609 (__mmask8) __U);
1612 extern __inline __m128i
1613 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1614 _mm_maskz_srli_epi16 (__mmask8 __U, __m128i __A, const int __imm)
1616 return (__m128i) __builtin_ia32_psrlwi128_mask ((__v8hi) __A, __imm,
1617 (__v8hi)
1618 _mm_setzero_si128 (),
1619 (__mmask8) __U);
1622 extern __inline __m256i
1623 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1624 _mm256_mask_shufflehi_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
1625 const int __imm)
1627 return (__m256i) __builtin_ia32_pshufhw256_mask ((__v16hi) __A,
1628 __imm,
1629 (__v16hi) __W,
1630 (__mmask16) __U);
1633 extern __inline __m256i
1634 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1635 _mm256_maskz_shufflehi_epi16 (__mmask16 __U, __m256i __A,
1636 const int __imm)
1638 return (__m256i) __builtin_ia32_pshufhw256_mask ((__v16hi) __A,
1639 __imm,
1640 (__v16hi)
1641 _mm256_setzero_si256 (),
1642 (__mmask16) __U);
1645 extern __inline __m128i
1646 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1647 _mm_mask_shufflehi_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
1648 const int __imm)
1650 return (__m128i) __builtin_ia32_pshufhw128_mask ((__v8hi) __A, __imm,
1651 (__v8hi) __W,
1652 (__mmask8) __U);
1655 extern __inline __m128i
1656 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1657 _mm_maskz_shufflehi_epi16 (__mmask8 __U, __m128i __A, const int __imm)
1659 return (__m128i) __builtin_ia32_pshufhw128_mask ((__v8hi) __A, __imm,
1660 (__v8hi)
1661 _mm_setzero_si128 (),
1662 (__mmask8) __U);
1665 extern __inline __m256i
1666 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1667 _mm256_mask_shufflelo_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
1668 const int __imm)
1670 return (__m256i) __builtin_ia32_pshuflw256_mask ((__v16hi) __A,
1671 __imm,
1672 (__v16hi) __W,
1673 (__mmask16) __U);
1676 extern __inline __m256i
1677 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1678 _mm256_maskz_shufflelo_epi16 (__mmask16 __U, __m256i __A,
1679 const int __imm)
1681 return (__m256i) __builtin_ia32_pshuflw256_mask ((__v16hi) __A,
1682 __imm,
1683 (__v16hi)
1684 _mm256_setzero_si256 (),
1685 (__mmask16) __U);
1688 extern __inline __m128i
1689 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1690 _mm_mask_shufflelo_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
1691 const int __imm)
1693 return (__m128i) __builtin_ia32_pshuflw128_mask ((__v8hi) __A, __imm,
1694 (__v8hi) __W,
1695 (__mmask8) __U);
1698 extern __inline __m128i
1699 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1700 _mm_maskz_shufflelo_epi16 (__mmask8 __U, __m128i __A, const int __imm)
1702 return (__m128i) __builtin_ia32_pshuflw128_mask ((__v8hi) __A, __imm,
1703 (__v8hi)
1704 _mm_setzero_si128 (),
1705 (__mmask8) __U);
1708 extern __inline __m256i
1709 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1710 _mm256_mask_srai_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
1711 const int __imm)
1713 return (__m256i) __builtin_ia32_psrawi256_mask ((__v16hi) __A, __imm,
1714 (__v16hi) __W,
1715 (__mmask16) __U);
1718 extern __inline __m256i
1719 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1720 _mm256_maskz_srai_epi16 (__mmask16 __U, __m256i __A, const int __imm)
1722 return (__m256i) __builtin_ia32_psrawi256_mask ((__v16hi) __A, __imm,
1723 (__v16hi)
1724 _mm256_setzero_si256 (),
1725 (__mmask16) __U);
1728 extern __inline __m128i
1729 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1730 _mm_mask_srai_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
1731 const int __imm)
1733 return (__m128i) __builtin_ia32_psrawi128_mask ((__v8hi) __A, __imm,
1734 (__v8hi) __W,
1735 (__mmask8) __U);
1738 extern __inline __m128i
1739 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1740 _mm_maskz_srai_epi16 (__mmask8 __U, __m128i __A, const int __imm)
1742 return (__m128i) __builtin_ia32_psrawi128_mask ((__v8hi) __A, __imm,
1743 (__v8hi)
1744 _mm_setzero_si128 (),
1745 (__mmask8) __U);
1748 extern __inline __m256i
1749 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1750 _mm256_mask_slli_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
1751 int __B)
1753 return (__m256i) __builtin_ia32_psllwi256_mask ((__v16hi) __A, __B,
1754 (__v16hi) __W,
1755 (__mmask16) __U);
1758 extern __inline __m256i
1759 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1760 _mm256_maskz_slli_epi16 (__mmask16 __U, __m256i __A, int __B)
1762 return (__m256i) __builtin_ia32_psllwi256_mask ((__v16hi) __A, __B,
1763 (__v16hi)
1764 _mm256_setzero_si256 (),
1765 (__mmask16) __U);
1768 extern __inline __m128i
1769 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1770 _mm_mask_slli_epi16 (__m128i __W, __mmask8 __U, __m128i __A, int __B)
1772 return (__m128i) __builtin_ia32_psllwi128_mask ((__v8hi) __A, __B,
1773 (__v8hi) __W,
1774 (__mmask8) __U);
1777 extern __inline __m128i
1778 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1779 _mm_maskz_slli_epi16 (__mmask8 __U, __m128i __A, int __B)
1781 return (__m128i) __builtin_ia32_psllwi128_mask ((__v8hi) __A, __B,
1782 (__v8hi)
1783 _mm_setzero_si128 (),
1784 (__mmask8) __U);
1787 #else
1788 #define _mm256_mask_alignr_epi8(W, U, X, Y, N) \
1789 ((__m256i) __builtin_ia32_palignr256_mask ((__v4di)(__m256i)(X), \
1790 (__v4di)(__m256i)(Y), (int)(N * 8), \
1791 (__v4di)(__m256i)(X), (__mmask32)(U)))
1793 #define _mm256_mask_srli_epi16(W, U, A, B) \
1794 ((__m256i) __builtin_ia32_psrlwi256_mask ((__v16hi)(__m256i)(A), \
1795 (int)(B), (__v16hi)(__m256i)(W), (__mmask16)(U)))
1797 #define _mm256_maskz_srli_epi16(U, A, B) \
1798 ((__m256i) __builtin_ia32_psrlwi256_mask ((__v16hi)(__m256i)(A), \
1799 (int)(B), (__v16hi)_mm256_setzero_si256 (), (__mmask16)(U)))
1801 #define _mm_mask_srli_epi16(W, U, A, B) \
1802 ((__m128i) __builtin_ia32_psrlwi128_mask ((__v8hi)(__m128i)(A), \
1803 (int)(B), (__v8hi)(__m128i)(W), (__mmask8)(U)))
1805 #define _mm_maskz_srli_epi16(U, A, B) \
1806 ((__m128i) __builtin_ia32_psrlwi128_mask ((__v8hi)(__m128i)(A), \
1807 (int)(B), (__v8hi)_mm_setzero_si128(), (__mmask8)(U)))
1809 #define _mm256_mask_srai_epi16(W, U, A, B) \
1810 ((__m256i) __builtin_ia32_psrawi256_mask ((__v16hi)(__m256i)(A), \
1811 (int)(B), (__v16hi)(__m256i)(W), (__mmask16)(U)))
1813 #define _mm256_maskz_srai_epi16(U, A, B) \
1814 ((__m256i) __builtin_ia32_psrawi256_mask ((__v16hi)(__m256i)(A), \
1815 (int)(B), (__v16hi)_mm256_setzero_si256 (), (__mmask16)(U)))
1817 #define _mm_mask_srai_epi16(W, U, A, B) \
1818 ((__m128i) __builtin_ia32_psrawi128_mask ((__v8hi)(__m128i)(A), \
1819 (int)(B), (__v8hi)(__m128i)(W), (__mmask8)(U)))
1821 #define _mm_maskz_srai_epi16(U, A, B) \
1822 ((__m128i) __builtin_ia32_psrawi128_mask ((__v8hi)(__m128i)(A), \
1823 (int)(B), (__v8hi)_mm_setzero_si128(), (__mmask8)(U)))
1825 #define _mm256_mask_shufflehi_epi16(W, U, A, B) \
1826 ((__m256i) __builtin_ia32_pshufhw256_mask ((__v16hi)(__m256i)(A), (int)(B), \
1827 (__v16hi)(__m256i)(W), \
1828 (__mmask16)(U)))
1830 #define _mm256_maskz_shufflehi_epi16(U, A, B) \
1831 ((__m256i) __builtin_ia32_pshufhw256_mask ((__v16hi)(__m256i)(A), (int)(B), \
1832 (__v16hi)(__m256i)_mm256_setzero_si256 (), \
1833 (__mmask16)(U)))
1835 #define _mm_mask_shufflehi_epi16(W, U, A, B) \
1836 ((__m128i) __builtin_ia32_pshufhw128_mask ((__v8hi)(__m128i)(A), (int)(B), \
1837 (__v8hi)(__m128i)(W), \
1838 (__mmask8)(U)))
1840 #define _mm_maskz_shufflehi_epi16(U, A, B) \
1841 ((__m128i) __builtin_ia32_pshufhw128_mask ((__v8hi)(__m128i)(A), (int)(B), \
1842 (__v8hi)(__m128i)_mm_setzero_si128 (), \
1843 (__mmask8)(U)))
1845 #define _mm256_mask_shufflelo_epi16(W, U, A, B) \
1846 ((__m256i) __builtin_ia32_pshuflw256_mask ((__v16hi)(__m256i)(A), (int)(B), \
1847 (__v16hi)(__m256i)(W), \
1848 (__mmask16)(U)))
1850 #define _mm256_maskz_shufflelo_epi16(U, A, B) \
1851 ((__m256i) __builtin_ia32_pshuflw256_mask ((__v16hi)(__m256i)(A), (int)(B), \
1852 (__v16hi)(__m256i)_mm256_setzero_si256 (), \
1853 (__mmask16)(U)))
1855 #define _mm_mask_shufflelo_epi16(W, U, A, B) \
1856 ((__m128i) __builtin_ia32_pshuflw128_mask ((__v8hi)(__m128i)(A), (int)(B), \
1857 (__v8hi)(__m128i)(W), \
1858 (__mmask8)(U)))
1860 #define _mm_maskz_shufflelo_epi16(U, A, B) \
1861 ((__m128i) __builtin_ia32_pshuflw128_mask ((__v8hi)(__m128i)(A), (int)(B), \
1862 (__v8hi)(__m128i)_mm_setzero_si128 (), \
1863 (__mmask8)(U)))
1865 #define _mm256_maskz_alignr_epi8(U, X, Y, N) \
1866 ((__m256i) __builtin_ia32_palignr256_mask ((__v4di)(__m256i)(X), \
1867 (__v4di)(__m256i)(Y), (int)(N * 8), \
1868 (__v4di)(__m256i)_mm256_setzero_si256 (), \
1869 (__mmask32)(U)))
1871 #define _mm_mask_alignr_epi8(W, U, X, Y, N) \
1872 ((__m128i) __builtin_ia32_palignr128_mask ((__v2di)(__m128i)(X), \
1873 (__v2di)(__m128i)(Y), (int)(N * 8), \
1874 (__v2di)(__m128i)(X), (__mmask16)(U)))
1876 #define _mm_maskz_alignr_epi8(U, X, Y, N) \
1877 ((__m128i) __builtin_ia32_palignr128_mask ((__v2di)(__m128i)(X), \
1878 (__v2di)(__m128i)(Y), (int)(N * 8), \
1879 (__v2di)(__m128i)_mm_setzero_si128 (), \
1880 (__mmask16)(U)))
1882 #define _mm_mask_slli_epi16(W, U, X, C) \
1883 ((__m128i)__builtin_ia32_psllwi128_mask ((__v8hi)(__m128i)(X), (int)(C),\
1884 (__v8hi)(__m128i)(W),\
1885 (__mmask8)(U)))
1887 #define _mm_maskz_slli_epi16(U, X, C) \
1888 ((__m128i)__builtin_ia32_psllwi128_mask ((__v8hi)(__m128i)(X), (int)(C),\
1889 (__v8hi)(__m128i)_mm_setzero_si128 (),\
1890 (__mmask8)(U)))
1892 #define _mm256_dbsad_epu8(X, Y, C) \
1893 ((__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi)(__m256i) (X), \
1894 (__v32qi)(__m256i) (Y), (int) (C), \
1895 (__v16hi)(__m256i)_mm256_setzero_si256(),\
1896 (__mmask16)-1))
1898 #define _mm256_mask_slli_epi16(W, U, X, C) \
1899 ((__m256i)__builtin_ia32_psllwi256_mask ((__v16hi)(__m256i)(X), (int)(C),\
1900 (__v16hi)(__m256i)(W),\
1901 (__mmask16)(U)))
1903 #define _mm256_maskz_slli_epi16(U, X, C) \
1904 ((__m256i)__builtin_ia32_psllwi256_mask ((__v16hi)(__m256i)(X), (int)(C),\
1905 (__v16hi)(__m256i)_mm256_setzero_si256 (),\
1906 (__mmask16)(U)))
1908 #define _mm256_mask_dbsad_epu8(W, U, X, Y, C) \
1909 ((__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi)(__m256i) (X), \
1910 (__v32qi)(__m256i) (Y), (int) (C), \
1911 (__v16hi)(__m256i)(W), \
1912 (__mmask16)(U)))
1914 #define _mm256_maskz_dbsad_epu8(U, X, Y, C) \
1915 ((__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi)(__m256i) (X), \
1916 (__v32qi)(__m256i) (Y), (int) (C), \
1917 (__v16hi)(__m256i)_mm256_setzero_si256(),\
1918 (__mmask16)(U)))
1920 #define _mm_dbsad_epu8(X, Y, C) \
1921 ((__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi)(__m128i) (X), \
1922 (__v16qi)(__m128i) (Y), (int) (C), \
1923 (__v8hi)(__m128i)_mm_setzero_si128(), \
1924 (__mmask8)-1))
1926 #define _mm_mask_dbsad_epu8(W, U, X, Y, C) \
1927 ((__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi)(__m128i) (X), \
1928 (__v16qi)(__m128i) (Y), (int) (C), \
1929 (__v8hi)(__m128i)(W), \
1930 (__mmask8)(U)))
1932 #define _mm_maskz_dbsad_epu8(U, X, Y, C) \
1933 ((__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi)(__m128i) (X), \
1934 (__v16qi)(__m128i) (Y), (int) (C), \
1935 (__v8hi)(__m128i)_mm_setzero_si128(), \
1936 (__mmask8)(U)))
1938 #define _mm_mask_blend_epi16(__U, __A, __W) \
1939 ((__m128i) __builtin_ia32_blendmw_128_mask ((__v8hi) (__A), \
1940 (__v8hi) (__W), \
1941 (__mmask8) (__U)))
1943 #define _mm_mask_blend_epi8(__U, __A, __W) \
1944 ((__m128i) __builtin_ia32_blendmb_128_mask ((__v16qi) (__A), \
1945 (__v16qi) (__W), \
1946 (__mmask16) (__U)))
1948 #define _mm256_mask_blend_epi16(__U, __A, __W) \
1949 ((__m256i) __builtin_ia32_blendmw_256_mask ((__v16hi) (__A), \
1950 (__v16hi) (__W), \
1951 (__mmask16) (__U)))
1953 #define _mm256_mask_blend_epi8(__U, __A, __W) \
1954 ((__m256i) __builtin_ia32_blendmb_256_mask ((__v32qi) (__A), \
1955 (__v32qi) (__W), \
1956 (__mmask32) (__U)))
1958 #define _mm_cmp_epi16_mask(X, Y, P) \
1959 ((__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi)(__m128i)(X), \
1960 (__v8hi)(__m128i)(Y), (int)(P),\
1961 (__mmask8)(-1)))
1963 #define _mm_cmp_epi8_mask(X, Y, P) \
1964 ((__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi)(__m128i)(X), \
1965 (__v16qi)(__m128i)(Y), (int)(P),\
1966 (__mmask16)(-1)))
1968 #define _mm256_cmp_epi16_mask(X, Y, P) \
1969 ((__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi)(__m256i)(X), \
1970 (__v16hi)(__m256i)(Y), (int)(P),\
1971 (__mmask16)(-1)))
1973 #define _mm256_cmp_epi8_mask(X, Y, P) \
1974 ((__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi)(__m256i)(X), \
1975 (__v32qi)(__m256i)(Y), (int)(P),\
1976 (__mmask32)(-1)))
1978 #define _mm_cmp_epu16_mask(X, Y, P) \
1979 ((__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi)(__m128i)(X), \
1980 (__v8hi)(__m128i)(Y), (int)(P),\
1981 (__mmask8)(-1)))
1983 #define _mm_cmp_epu8_mask(X, Y, P) \
1984 ((__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi)(__m128i)(X), \
1985 (__v16qi)(__m128i)(Y), (int)(P),\
1986 (__mmask16)(-1)))
1988 #define _mm256_cmp_epu16_mask(X, Y, P) \
1989 ((__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi)(__m256i)(X), \
1990 (__v16hi)(__m256i)(Y), (int)(P),\
1991 (__mmask16)(-1)))
1993 #define _mm256_cmp_epu8_mask(X, Y, P) \
1994 ((__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi)(__m256i)(X), \
1995 (__v32qi)(__m256i)(Y), (int)(P),\
1996 (__mmask32)-1))
1998 #define _mm_mask_cmp_epi16_mask(M, X, Y, P) \
1999 ((__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi)(__m128i)(X), \
2000 (__v8hi)(__m128i)(Y), (int)(P),\
2001 (__mmask8)(M)))
2003 #define _mm_mask_cmp_epi8_mask(M, X, Y, P) \
2004 ((__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi)(__m128i)(X), \
2005 (__v16qi)(__m128i)(Y), (int)(P),\
2006 (__mmask16)(M)))
2008 #define _mm256_mask_cmp_epi16_mask(M, X, Y, P) \
2009 ((__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi)(__m256i)(X), \
2010 (__v16hi)(__m256i)(Y), (int)(P),\
2011 (__mmask16)(M)))
2013 #define _mm256_mask_cmp_epi8_mask(M, X, Y, P) \
2014 ((__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi)(__m256i)(X), \
2015 (__v32qi)(__m256i)(Y), (int)(P),\
2016 (__mmask32)(M)))
2018 #define _mm_mask_cmp_epu16_mask(M, X, Y, P) \
2019 ((__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi)(__m128i)(X), \
2020 (__v8hi)(__m128i)(Y), (int)(P),\
2021 (__mmask8)(M)))
2023 #define _mm_mask_cmp_epu8_mask(M, X, Y, P) \
2024 ((__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi)(__m128i)(X), \
2025 (__v16qi)(__m128i)(Y), (int)(P),\
2026 (__mmask16)(M)))
2028 #define _mm256_mask_cmp_epu16_mask(M, X, Y, P) \
2029 ((__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi)(__m256i)(X), \
2030 (__v16hi)(__m256i)(Y), (int)(P),\
2031 (__mmask16)(M)))
2033 #define _mm256_mask_cmp_epu8_mask(M, X, Y, P) \
2034 ((__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi)(__m256i)(X), \
2035 (__v32qi)(__m256i)(Y), (int)(P),\
2036 (__mmask32)M))
2037 #endif
2039 extern __inline __mmask32
2040 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2041 _mm256_cmpneq_epi8_mask (__m256i __X, __m256i __Y)
2043 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
2044 (__v32qi) __Y, 4,
2045 (__mmask32) -1);
2048 extern __inline __mmask32
2049 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2050 _mm256_cmplt_epi8_mask (__m256i __X, __m256i __Y)
2052 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
2053 (__v32qi) __Y, 1,
2054 (__mmask32) -1);
2057 extern __inline __mmask32
2058 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2059 _mm256_cmpge_epi8_mask (__m256i __X, __m256i __Y)
2061 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
2062 (__v32qi) __Y, 5,
2063 (__mmask32) -1);
2066 extern __inline __mmask32
2067 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2068 _mm256_cmple_epi8_mask (__m256i __X, __m256i __Y)
2070 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
2071 (__v32qi) __Y, 2,
2072 (__mmask32) -1);
2075 extern __inline __mmask16
2076 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2077 _mm256_cmpneq_epi16_mask (__m256i __X, __m256i __Y)
2079 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
2080 (__v16hi) __Y, 4,
2081 (__mmask16) -1);
2084 extern __inline __mmask16
2085 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2086 _mm256_cmplt_epi16_mask (__m256i __X, __m256i __Y)
2088 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
2089 (__v16hi) __Y, 1,
2090 (__mmask16) -1);
2093 extern __inline __mmask16
2094 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2095 _mm256_cmpge_epi16_mask (__m256i __X, __m256i __Y)
2097 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
2098 (__v16hi) __Y, 5,
2099 (__mmask16) -1);
2102 extern __inline __mmask16
2103 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2104 _mm256_cmple_epi16_mask (__m256i __X, __m256i __Y)
2106 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
2107 (__v16hi) __Y, 2,
2108 (__mmask16) -1);
2111 extern __inline __mmask16
2112 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2113 _mm_cmpneq_epu8_mask (__m128i __X, __m128i __Y)
2115 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
2116 (__v16qi) __Y, 4,
2117 (__mmask16) -1);
2120 extern __inline __mmask16
2121 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2122 _mm_cmplt_epu8_mask (__m128i __X, __m128i __Y)
2124 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
2125 (__v16qi) __Y, 1,
2126 (__mmask16) -1);
2129 extern __inline __mmask16
2130 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2131 _mm_cmpge_epu8_mask (__m128i __X, __m128i __Y)
2133 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
2134 (__v16qi) __Y, 5,
2135 (__mmask16) -1);
2138 extern __inline __mmask16
2139 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2140 _mm_cmple_epu8_mask (__m128i __X, __m128i __Y)
2142 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
2143 (__v16qi) __Y, 2,
2144 (__mmask16) -1);
2147 extern __inline __mmask8
2148 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2149 _mm_cmpneq_epu16_mask (__m128i __X, __m128i __Y)
2151 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
2152 (__v8hi) __Y, 4,
2153 (__mmask8) -1);
2156 extern __inline __mmask8
2157 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2158 _mm_cmplt_epu16_mask (__m128i __X, __m128i __Y)
2160 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
2161 (__v8hi) __Y, 1,
2162 (__mmask8) -1);
2165 extern __inline __mmask8
2166 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2167 _mm_cmpge_epu16_mask (__m128i __X, __m128i __Y)
2169 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
2170 (__v8hi) __Y, 5,
2171 (__mmask8) -1);
2174 extern __inline __mmask8
2175 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2176 _mm_cmple_epu16_mask (__m128i __X, __m128i __Y)
2178 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
2179 (__v8hi) __Y, 2,
2180 (__mmask8) -1);
2183 extern __inline __mmask16
2184 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2185 _mm_cmpneq_epi8_mask (__m128i __X, __m128i __Y)
2187 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
2188 (__v16qi) __Y, 4,
2189 (__mmask16) -1);
2192 extern __inline __mmask16
2193 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2194 _mm_cmplt_epi8_mask (__m128i __X, __m128i __Y)
2196 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
2197 (__v16qi) __Y, 1,
2198 (__mmask16) -1);
2201 extern __inline __mmask16
2202 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2203 _mm_cmpge_epi8_mask (__m128i __X, __m128i __Y)
2205 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
2206 (__v16qi) __Y, 5,
2207 (__mmask16) -1);
2210 extern __inline __mmask16
2211 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2212 _mm_cmple_epi8_mask (__m128i __X, __m128i __Y)
2214 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
2215 (__v16qi) __Y, 2,
2216 (__mmask16) -1);
2219 extern __inline __mmask8
2220 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2221 _mm_cmpneq_epi16_mask (__m128i __X, __m128i __Y)
2223 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
2224 (__v8hi) __Y, 4,
2225 (__mmask8) -1);
2228 extern __inline __mmask8
2229 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2230 _mm_cmplt_epi16_mask (__m128i __X, __m128i __Y)
2232 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
2233 (__v8hi) __Y, 1,
2234 (__mmask8) -1);
2237 extern __inline __mmask8
2238 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2239 _mm_cmpge_epi16_mask (__m128i __X, __m128i __Y)
2241 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
2242 (__v8hi) __Y, 5,
2243 (__mmask8) -1);
2246 extern __inline __mmask8
2247 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2248 _mm_cmple_epi16_mask (__m128i __X, __m128i __Y)
2250 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
2251 (__v8hi) __Y, 2,
2252 (__mmask8) -1);
2255 extern __inline __m256i
2256 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2257 _mm256_mask_mulhrs_epi16 (__m256i __W, __mmask16 __U, __m256i __X,
2258 __m256i __Y)
2260 return (__m256i) __builtin_ia32_pmulhrsw256_mask ((__v16hi) __X,
2261 (__v16hi) __Y,
2262 (__v16hi) __W,
2263 (__mmask16) __U);
2266 extern __inline __m256i
2267 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2268 _mm256_maskz_mulhrs_epi16 (__mmask16 __U, __m256i __X, __m256i __Y)
2270 return (__m256i) __builtin_ia32_pmulhrsw256_mask ((__v16hi) __X,
2271 (__v16hi) __Y,
2272 (__v16hi)
2273 _mm256_setzero_si256 (),
2274 (__mmask16) __U);
2277 extern __inline __m256i
2278 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2279 _mm256_mask_mulhi_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
2280 __m256i __B)
2282 return (__m256i) __builtin_ia32_pmulhuw256_mask ((__v16hi) __A,
2283 (__v16hi) __B,
2284 (__v16hi) __W,
2285 (__mmask16) __U);
2288 extern __inline __m256i
2289 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2290 _mm256_maskz_mulhi_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
2292 return (__m256i) __builtin_ia32_pmulhuw256_mask ((__v16hi) __A,
2293 (__v16hi) __B,
2294 (__v16hi)
2295 _mm256_setzero_si256 (),
2296 (__mmask16) __U);
2299 extern __inline __m256i
2300 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2301 _mm256_mask_mulhi_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2302 __m256i __B)
2304 return (__m256i) __builtin_ia32_pmulhw256_mask ((__v16hi) __A,
2305 (__v16hi) __B,
2306 (__v16hi) __W,
2307 (__mmask16) __U);
2310 extern __inline __m256i
2311 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2312 _mm256_maskz_mulhi_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2314 return (__m256i) __builtin_ia32_pmulhw256_mask ((__v16hi) __A,
2315 (__v16hi) __B,
2316 (__v16hi)
2317 _mm256_setzero_si256 (),
2318 (__mmask16) __U);
2321 extern __inline __m128i
2322 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2323 _mm_mask_mulhi_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
2324 __m128i __B)
2326 return (__m128i) __builtin_ia32_pmulhw128_mask ((__v8hi) __A,
2327 (__v8hi) __B,
2328 (__v8hi) __W,
2329 (__mmask8) __U);
2332 extern __inline __m128i
2333 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2334 _mm_maskz_mulhi_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
2336 return (__m128i) __builtin_ia32_pmulhw128_mask ((__v8hi) __A,
2337 (__v8hi) __B,
2338 (__v8hi)
2339 _mm_setzero_si128 (),
2340 (__mmask8) __U);
2343 extern __inline __m128i
2344 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2345 _mm_mask_mulhi_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
2346 __m128i __B)
2348 return (__m128i) __builtin_ia32_pmulhuw128_mask ((__v8hi) __A,
2349 (__v8hi) __B,
2350 (__v8hi) __W,
2351 (__mmask8) __U);
2354 extern __inline __m128i
2355 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2356 _mm_maskz_mulhi_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
2358 return (__m128i) __builtin_ia32_pmulhuw128_mask ((__v8hi) __A,
2359 (__v8hi) __B,
2360 (__v8hi)
2361 _mm_setzero_si128 (),
2362 (__mmask8) __U);
2365 extern __inline __m128i
2366 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2367 _mm_mask_mulhrs_epi16 (__m128i __W, __mmask8 __U, __m128i __X,
2368 __m128i __Y)
2370 return (__m128i) __builtin_ia32_pmulhrsw128_mask ((__v8hi) __X,
2371 (__v8hi) __Y,
2372 (__v8hi) __W,
2373 (__mmask8) __U);
2376 extern __inline __m128i
2377 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2378 _mm_maskz_mulhrs_epi16 (__mmask8 __U, __m128i __X, __m128i __Y)
2380 return (__m128i) __builtin_ia32_pmulhrsw128_mask ((__v8hi) __X,
2381 (__v8hi) __Y,
2382 (__v8hi)
2383 _mm_setzero_si128 (),
2384 (__mmask8) __U);
2387 extern __inline __m256i
2388 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2389 _mm256_mask_mullo_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2390 __m256i __B)
2392 return (__m256i) __builtin_ia32_pmullw256_mask ((__v16hi) __A,
2393 (__v16hi) __B,
2394 (__v16hi) __W,
2395 (__mmask16) __U);
2398 extern __inline __m256i
2399 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2400 _mm256_maskz_mullo_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2402 return (__m256i) __builtin_ia32_pmullw256_mask ((__v16hi) __A,
2403 (__v16hi) __B,
2404 (__v16hi)
2405 _mm256_setzero_si256 (),
2406 (__mmask16) __U);
2409 extern __inline __m128i
2410 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2411 _mm_mask_mullo_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
2412 __m128i __B)
2414 return (__m128i) __builtin_ia32_pmullw128_mask ((__v8hi) __A,
2415 (__v8hi) __B,
2416 (__v8hi) __W,
2417 (__mmask8) __U);
2420 extern __inline __m128i
2421 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2422 _mm_maskz_mullo_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
2424 return (__m128i) __builtin_ia32_pmullw128_mask ((__v8hi) __A,
2425 (__v8hi) __B,
2426 (__v8hi)
2427 _mm_setzero_si128 (),
2428 (__mmask8) __U);
2431 extern __inline __m256i
2432 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2433 _mm256_mask_cvtepi8_epi16 (__m256i __W, __mmask16 __U, __m128i __A)
2435 return (__m256i) __builtin_ia32_pmovsxbw256_mask ((__v16qi) __A,
2436 (__v16hi) __W,
2437 (__mmask16) __U);
2440 extern __inline __m256i
2441 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2442 _mm256_maskz_cvtepi8_epi16 (__mmask16 __U, __m128i __A)
2444 return (__m256i) __builtin_ia32_pmovsxbw256_mask ((__v16qi) __A,
2445 (__v16hi)
2446 _mm256_setzero_si256 (),
2447 (__mmask16) __U);
2450 extern __inline __m128i
2451 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2452 _mm_mask_cvtepi8_epi16 (__m128i __W, __mmask8 __U, __m128i __A)
2454 return (__m128i) __builtin_ia32_pmovsxbw128_mask ((__v16qi) __A,
2455 (__v8hi) __W,
2456 (__mmask8) __U);
2459 extern __inline __m128i
2460 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2461 _mm_maskz_cvtepi8_epi16 (__mmask8 __U, __m128i __A)
2463 return (__m128i) __builtin_ia32_pmovsxbw128_mask ((__v16qi) __A,
2464 (__v8hi)
2465 _mm_setzero_si128 (),
2466 (__mmask8) __U);
2469 extern __inline __m256i
2470 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2471 _mm256_mask_cvtepu8_epi16 (__m256i __W, __mmask16 __U, __m128i __A)
2473 return (__m256i) __builtin_ia32_pmovzxbw256_mask ((__v16qi) __A,
2474 (__v16hi) __W,
2475 (__mmask16) __U);
2478 extern __inline __m256i
2479 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2480 _mm256_maskz_cvtepu8_epi16 (__mmask16 __U, __m128i __A)
2482 return (__m256i) __builtin_ia32_pmovzxbw256_mask ((__v16qi) __A,
2483 (__v16hi)
2484 _mm256_setzero_si256 (),
2485 (__mmask16) __U);
2488 extern __inline __m128i
2489 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2490 _mm_mask_cvtepu8_epi16 (__m128i __W, __mmask8 __U, __m128i __A)
2492 return (__m128i) __builtin_ia32_pmovzxbw128_mask ((__v16qi) __A,
2493 (__v8hi) __W,
2494 (__mmask8) __U);
2497 extern __inline __m128i
2498 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2499 _mm_maskz_cvtepu8_epi16 (__mmask8 __U, __m128i __A)
2501 return (__m128i) __builtin_ia32_pmovzxbw128_mask ((__v16qi) __A,
2502 (__v8hi)
2503 _mm_setzero_si128 (),
2504 (__mmask8) __U);
2507 extern __inline __m256i
2508 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2509 _mm256_mask_avg_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
2510 __m256i __B)
2512 return (__m256i) __builtin_ia32_pavgb256_mask ((__v32qi) __A,
2513 (__v32qi) __B,
2514 (__v32qi) __W,
2515 (__mmask32) __U);
2518 extern __inline __m256i
2519 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2520 _mm256_maskz_avg_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
2522 return (__m256i) __builtin_ia32_pavgb256_mask ((__v32qi) __A,
2523 (__v32qi) __B,
2524 (__v32qi)
2525 _mm256_setzero_si256 (),
2526 (__mmask32) __U);
2529 extern __inline __m128i
2530 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2531 _mm_mask_avg_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
2532 __m128i __B)
2534 return (__m128i) __builtin_ia32_pavgb128_mask ((__v16qi) __A,
2535 (__v16qi) __B,
2536 (__v16qi) __W,
2537 (__mmask16) __U);
2540 extern __inline __m128i
2541 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2542 _mm_maskz_avg_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
2544 return (__m128i) __builtin_ia32_pavgb128_mask ((__v16qi) __A,
2545 (__v16qi) __B,
2546 (__v16qi)
2547 _mm_setzero_si128 (),
2548 (__mmask16) __U);
2551 extern __inline __m256i
2552 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2553 _mm256_mask_avg_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
2554 __m256i __B)
2556 return (__m256i) __builtin_ia32_pavgw256_mask ((__v16hi) __A,
2557 (__v16hi) __B,
2558 (__v16hi) __W,
2559 (__mmask16) __U);
2562 extern __inline __m256i
2563 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2564 _mm256_maskz_avg_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
2566 return (__m256i) __builtin_ia32_pavgw256_mask ((__v16hi) __A,
2567 (__v16hi) __B,
2568 (__v16hi)
2569 _mm256_setzero_si256 (),
2570 (__mmask16) __U);
2573 extern __inline __m128i
2574 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2575 _mm_mask_avg_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
2576 __m128i __B)
2578 return (__m128i) __builtin_ia32_pavgw128_mask ((__v8hi) __A,
2579 (__v8hi) __B,
2580 (__v8hi) __W,
2581 (__mmask8) __U);
2584 extern __inline __m128i
2585 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2586 _mm_maskz_avg_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
2588 return (__m128i) __builtin_ia32_pavgw128_mask ((__v8hi) __A,
2589 (__v8hi) __B,
2590 (__v8hi)
2591 _mm_setzero_si128 (),
2592 (__mmask8) __U);
2595 extern __inline __m256i
2596 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2597 _mm256_mask_add_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
2598 __m256i __B)
2600 return (__m256i) __builtin_ia32_paddb256_mask ((__v32qi) __A,
2601 (__v32qi) __B,
2602 (__v32qi) __W,
2603 (__mmask32) __U);
2606 extern __inline __m256i
2607 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2608 _mm256_maskz_add_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
2610 return (__m256i) __builtin_ia32_paddb256_mask ((__v32qi) __A,
2611 (__v32qi) __B,
2612 (__v32qi)
2613 _mm256_setzero_si256 (),
2614 (__mmask32) __U);
2617 extern __inline __m256i
2618 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2619 _mm256_mask_add_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2620 __m256i __B)
2622 return (__m256i) __builtin_ia32_paddw256_mask ((__v16hi) __A,
2623 (__v16hi) __B,
2624 (__v16hi) __W,
2625 (__mmask16) __U);
2628 extern __inline __m256i
2629 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2630 _mm256_maskz_add_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2632 return (__m256i) __builtin_ia32_paddw256_mask ((__v16hi) __A,
2633 (__v16hi) __B,
2634 (__v16hi)
2635 _mm256_setzero_si256 (),
2636 (__mmask16) __U);
2639 extern __inline __m256i
2640 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2641 _mm256_mask_adds_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
2642 __m256i __B)
2644 return (__m256i) __builtin_ia32_paddsb256_mask ((__v32qi) __A,
2645 (__v32qi) __B,
2646 (__v32qi) __W,
2647 (__mmask32) __U);
2650 extern __inline __m256i
2651 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2652 _mm256_maskz_adds_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
2654 return (__m256i) __builtin_ia32_paddsb256_mask ((__v32qi) __A,
2655 (__v32qi) __B,
2656 (__v32qi)
2657 _mm256_setzero_si256 (),
2658 (__mmask32) __U);
2661 extern __inline __m256i
2662 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2663 _mm256_mask_adds_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2664 __m256i __B)
2666 return (__m256i) __builtin_ia32_paddsw256_mask ((__v16hi) __A,
2667 (__v16hi) __B,
2668 (__v16hi) __W,
2669 (__mmask16) __U);
2672 extern __inline __m256i
2673 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2674 _mm256_maskz_adds_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2676 return (__m256i) __builtin_ia32_paddsw256_mask ((__v16hi) __A,
2677 (__v16hi) __B,
2678 (__v16hi)
2679 _mm256_setzero_si256 (),
2680 (__mmask16) __U);
2683 extern __inline __m256i
2684 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2685 _mm256_mask_adds_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
2686 __m256i __B)
2688 return (__m256i) __builtin_ia32_paddusb256_mask ((__v32qi) __A,
2689 (__v32qi) __B,
2690 (__v32qi) __W,
2691 (__mmask32) __U);
2694 extern __inline __m256i
2695 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2696 _mm256_maskz_adds_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
2698 return (__m256i) __builtin_ia32_paddusb256_mask ((__v32qi) __A,
2699 (__v32qi) __B,
2700 (__v32qi)
2701 _mm256_setzero_si256 (),
2702 (__mmask32) __U);
2705 extern __inline __m256i
2706 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2707 _mm256_mask_adds_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
2708 __m256i __B)
2710 return (__m256i) __builtin_ia32_paddusw256_mask ((__v16hi) __A,
2711 (__v16hi) __B,
2712 (__v16hi) __W,
2713 (__mmask16) __U);
2716 extern __inline __m256i
2717 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2718 _mm256_maskz_adds_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
2720 return (__m256i) __builtin_ia32_paddusw256_mask ((__v16hi) __A,
2721 (__v16hi) __B,
2722 (__v16hi)
2723 _mm256_setzero_si256 (),
2724 (__mmask16) __U);
2727 extern __inline __m256i
2728 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2729 _mm256_mask_sub_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
2730 __m256i __B)
2732 return (__m256i) __builtin_ia32_psubb256_mask ((__v32qi) __A,
2733 (__v32qi) __B,
2734 (__v32qi) __W,
2735 (__mmask32) __U);
2738 extern __inline __m256i
2739 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2740 _mm256_maskz_sub_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
2742 return (__m256i) __builtin_ia32_psubb256_mask ((__v32qi) __A,
2743 (__v32qi) __B,
2744 (__v32qi)
2745 _mm256_setzero_si256 (),
2746 (__mmask32) __U);
2749 extern __inline __m256i
2750 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2751 _mm256_mask_sub_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2752 __m256i __B)
2754 return (__m256i) __builtin_ia32_psubw256_mask ((__v16hi) __A,
2755 (__v16hi) __B,
2756 (__v16hi) __W,
2757 (__mmask16) __U);
2760 extern __inline __m256i
2761 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2762 _mm256_maskz_sub_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2764 return (__m256i) __builtin_ia32_psubw256_mask ((__v16hi) __A,
2765 (__v16hi) __B,
2766 (__v16hi)
2767 _mm256_setzero_si256 (),
2768 (__mmask16) __U);
2771 extern __inline __m256i
2772 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2773 _mm256_mask_subs_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
2774 __m256i __B)
2776 return (__m256i) __builtin_ia32_psubsb256_mask ((__v32qi) __A,
2777 (__v32qi) __B,
2778 (__v32qi) __W,
2779 (__mmask32) __U);
2782 extern __inline __m256i
2783 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2784 _mm256_maskz_subs_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
2786 return (__m256i) __builtin_ia32_psubsb256_mask ((__v32qi) __A,
2787 (__v32qi) __B,
2788 (__v32qi)
2789 _mm256_setzero_si256 (),
2790 (__mmask32) __U);
2793 extern __inline __m256i
2794 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2795 _mm256_mask_subs_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2796 __m256i __B)
2798 return (__m256i) __builtin_ia32_psubsw256_mask ((__v16hi) __A,
2799 (__v16hi) __B,
2800 (__v16hi) __W,
2801 (__mmask16) __U);
2804 extern __inline __m256i
2805 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2806 _mm256_maskz_subs_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2808 return (__m256i) __builtin_ia32_psubsw256_mask ((__v16hi) __A,
2809 (__v16hi) __B,
2810 (__v16hi)
2811 _mm256_setzero_si256 (),
2812 (__mmask16) __U);
2815 extern __inline __m256i
2816 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2817 _mm256_mask_subs_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
2818 __m256i __B)
2820 return (__m256i) __builtin_ia32_psubusb256_mask ((__v32qi) __A,
2821 (__v32qi) __B,
2822 (__v32qi) __W,
2823 (__mmask32) __U);
2826 extern __inline __m256i
2827 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2828 _mm256_maskz_subs_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
2830 return (__m256i) __builtin_ia32_psubusb256_mask ((__v32qi) __A,
2831 (__v32qi) __B,
2832 (__v32qi)
2833 _mm256_setzero_si256 (),
2834 (__mmask32) __U);
2837 extern __inline __m256i
2838 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2839 _mm256_mask_subs_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
2840 __m256i __B)
2842 return (__m256i) __builtin_ia32_psubusw256_mask ((__v16hi) __A,
2843 (__v16hi) __B,
2844 (__v16hi) __W,
2845 (__mmask16) __U);
2848 extern __inline __m256i
2849 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2850 _mm256_maskz_subs_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
2852 return (__m256i) __builtin_ia32_psubusw256_mask ((__v16hi) __A,
2853 (__v16hi) __B,
2854 (__v16hi)
2855 _mm256_setzero_si256 (),
2856 (__mmask16) __U);
2859 extern __inline __m128i
2860 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2861 _mm_mask_add_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
2862 __m128i __B)
2864 return (__m128i) __builtin_ia32_paddb128_mask ((__v16qi) __A,
2865 (__v16qi) __B,
2866 (__v16qi) __W,
2867 (__mmask16) __U);
2870 extern __inline __m128i
2871 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2872 _mm_maskz_add_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
2874 return (__m128i) __builtin_ia32_paddb128_mask ((__v16qi) __A,
2875 (__v16qi) __B,
2876 (__v16qi)
2877 _mm_setzero_si128 (),
2878 (__mmask16) __U);
2881 extern __inline __m128i
2882 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2883 _mm_mask_add_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
2884 __m128i __B)
2886 return (__m128i) __builtin_ia32_paddw128_mask ((__v8hi) __A,
2887 (__v8hi) __B,
2888 (__v8hi) __W,
2889 (__mmask8) __U);
2892 extern __inline __m128i
2893 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2894 _mm_maskz_add_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
2896 return (__m128i) __builtin_ia32_paddw128_mask ((__v8hi) __A,
2897 (__v8hi) __B,
2898 (__v8hi)
2899 _mm_setzero_si128 (),
2900 (__mmask8) __U);
2903 extern __inline __m256i
2904 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2905 _mm256_mask_unpackhi_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
2906 __m256i __B)
2908 return (__m256i) __builtin_ia32_punpckhbw256_mask ((__v32qi) __A,
2909 (__v32qi) __B,
2910 (__v32qi) __W,
2911 (__mmask32) __U);
2914 extern __inline __m256i
2915 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2916 _mm256_maskz_unpackhi_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
2918 return (__m256i) __builtin_ia32_punpckhbw256_mask ((__v32qi) __A,
2919 (__v32qi) __B,
2920 (__v32qi)
2921 _mm256_setzero_si256 (),
2922 (__mmask32) __U);
2925 extern __inline __m128i
2926 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2927 _mm_mask_unpackhi_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
2928 __m128i __B)
2930 return (__m128i) __builtin_ia32_punpckhbw128_mask ((__v16qi) __A,
2931 (__v16qi) __B,
2932 (__v16qi) __W,
2933 (__mmask16) __U);
2936 extern __inline __m128i
2937 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2938 _mm_maskz_unpackhi_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
2940 return (__m128i) __builtin_ia32_punpckhbw128_mask ((__v16qi) __A,
2941 (__v16qi) __B,
2942 (__v16qi)
2943 _mm_setzero_si128 (),
2944 (__mmask16) __U);
2947 extern __inline __m256i
2948 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2949 _mm256_mask_unpackhi_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2950 __m256i __B)
2952 return (__m256i) __builtin_ia32_punpckhwd256_mask ((__v16hi) __A,
2953 (__v16hi) __B,
2954 (__v16hi) __W,
2955 (__mmask16) __U);
2958 extern __inline __m256i
2959 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2960 _mm256_maskz_unpackhi_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2962 return (__m256i) __builtin_ia32_punpckhwd256_mask ((__v16hi) __A,
2963 (__v16hi) __B,
2964 (__v16hi)
2965 _mm256_setzero_si256 (),
2966 (__mmask16) __U);
2969 extern __inline __m128i
2970 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2971 _mm_mask_unpackhi_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
2972 __m128i __B)
2974 return (__m128i) __builtin_ia32_punpckhwd128_mask ((__v8hi) __A,
2975 (__v8hi) __B,
2976 (__v8hi) __W,
2977 (__mmask8) __U);
2980 extern __inline __m128i
2981 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2982 _mm_maskz_unpackhi_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
2984 return (__m128i) __builtin_ia32_punpckhwd128_mask ((__v8hi) __A,
2985 (__v8hi) __B,
2986 (__v8hi)
2987 _mm_setzero_si128 (),
2988 (__mmask8) __U);
2991 extern __inline __m256i
2992 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2993 _mm256_mask_unpacklo_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
2994 __m256i __B)
2996 return (__m256i) __builtin_ia32_punpcklbw256_mask ((__v32qi) __A,
2997 (__v32qi) __B,
2998 (__v32qi) __W,
2999 (__mmask32) __U);
3002 extern __inline __m256i
3003 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3004 _mm256_maskz_unpacklo_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
3006 return (__m256i) __builtin_ia32_punpcklbw256_mask ((__v32qi) __A,
3007 (__v32qi) __B,
3008 (__v32qi)
3009 _mm256_setzero_si256 (),
3010 (__mmask32) __U);
3013 extern __inline __m128i
3014 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3015 _mm_mask_unpacklo_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
3016 __m128i __B)
3018 return (__m128i) __builtin_ia32_punpcklbw128_mask ((__v16qi) __A,
3019 (__v16qi) __B,
3020 (__v16qi) __W,
3021 (__mmask16) __U);
3024 extern __inline __m128i
3025 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3026 _mm_maskz_unpacklo_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
3028 return (__m128i) __builtin_ia32_punpcklbw128_mask ((__v16qi) __A,
3029 (__v16qi) __B,
3030 (__v16qi)
3031 _mm_setzero_si128 (),
3032 (__mmask16) __U);
3035 extern __inline __m256i
3036 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3037 _mm256_mask_unpacklo_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
3038 __m256i __B)
3040 return (__m256i) __builtin_ia32_punpcklwd256_mask ((__v16hi) __A,
3041 (__v16hi) __B,
3042 (__v16hi) __W,
3043 (__mmask16) __U);
3046 extern __inline __m256i
3047 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3048 _mm256_maskz_unpacklo_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
3050 return (__m256i) __builtin_ia32_punpcklwd256_mask ((__v16hi) __A,
3051 (__v16hi) __B,
3052 (__v16hi)
3053 _mm256_setzero_si256 (),
3054 (__mmask16) __U);
3057 extern __inline __m128i
3058 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3059 _mm_mask_unpacklo_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
3060 __m128i __B)
3062 return (__m128i) __builtin_ia32_punpcklwd128_mask ((__v8hi) __A,
3063 (__v8hi) __B,
3064 (__v8hi) __W,
3065 (__mmask8) __U);
3068 extern __inline __m128i
3069 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3070 _mm_maskz_unpacklo_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
3072 return (__m128i) __builtin_ia32_punpcklwd128_mask ((__v8hi) __A,
3073 (__v8hi) __B,
3074 (__v8hi)
3075 _mm_setzero_si128 (),
3076 (__mmask8) __U);
3079 extern __inline __mmask16
3080 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3081 _mm_cmpeq_epi8_mask (__m128i __A, __m128i __B)
3083 return (__mmask16) __builtin_ia32_pcmpeqb128_mask ((__v16qi) __A,
3084 (__v16qi) __B,
3085 (__mmask16) -1);
3088 extern __inline __mmask16
3089 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3090 _mm_cmpeq_epu8_mask (__m128i __A, __m128i __B)
3092 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __A,
3093 (__v16qi) __B, 0,
3094 (__mmask16) -1);
3097 extern __inline __mmask16
3098 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3099 _mm_mask_cmpeq_epu8_mask (__mmask16 __U, __m128i __A, __m128i __B)
3101 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __A,
3102 (__v16qi) __B, 0,
3103 __U);
3106 extern __inline __mmask16
3107 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3108 _mm_mask_cmpeq_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
3110 return (__mmask16) __builtin_ia32_pcmpeqb128_mask ((__v16qi) __A,
3111 (__v16qi) __B,
3112 __U);
3115 extern __inline __mmask32
3116 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3117 _mm256_cmpeq_epu8_mask (__m256i __A, __m256i __B)
3119 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __A,
3120 (__v32qi) __B, 0,
3121 (__mmask32) -1);
3124 extern __inline __mmask32
3125 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3126 _mm256_cmpeq_epi8_mask (__m256i __A, __m256i __B)
3128 return (__mmask32) __builtin_ia32_pcmpeqb256_mask ((__v32qi) __A,
3129 (__v32qi) __B,
3130 (__mmask32) -1);
3133 extern __inline __mmask32
3134 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3135 _mm256_mask_cmpeq_epu8_mask (__mmask32 __U, __m256i __A, __m256i __B)
3137 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __A,
3138 (__v32qi) __B, 0,
3139 __U);
3142 extern __inline __mmask32
3143 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3144 _mm256_mask_cmpeq_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
3146 return (__mmask32) __builtin_ia32_pcmpeqb256_mask ((__v32qi) __A,
3147 (__v32qi) __B,
3148 __U);
3151 extern __inline __mmask8
3152 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3153 _mm_cmpeq_epu16_mask (__m128i __A, __m128i __B)
3155 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __A,
3156 (__v8hi) __B, 0,
3157 (__mmask8) -1);
3160 extern __inline __mmask8
3161 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3162 _mm_cmpeq_epi16_mask (__m128i __A, __m128i __B)
3164 return (__mmask8) __builtin_ia32_pcmpeqw128_mask ((__v8hi) __A,
3165 (__v8hi) __B,
3166 (__mmask8) -1);
3169 extern __inline __mmask8
3170 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3171 _mm_mask_cmpeq_epu16_mask (__mmask8 __U, __m128i __A, __m128i __B)
3173 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __A,
3174 (__v8hi) __B, 0, __U);
3177 extern __inline __mmask8
3178 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3179 _mm_mask_cmpeq_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
3181 return (__mmask8) __builtin_ia32_pcmpeqw128_mask ((__v8hi) __A,
3182 (__v8hi) __B, __U);
3185 extern __inline __mmask16
3186 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3187 _mm256_cmpeq_epu16_mask (__m256i __A, __m256i __B)
3189 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __A,
3190 (__v16hi) __B, 0,
3191 (__mmask16) -1);
3194 extern __inline __mmask16
3195 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3196 _mm256_cmpeq_epi16_mask (__m256i __A, __m256i __B)
3198 return (__mmask16) __builtin_ia32_pcmpeqw256_mask ((__v16hi) __A,
3199 (__v16hi) __B,
3200 (__mmask16) -1);
3203 extern __inline __mmask16
3204 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3205 _mm256_mask_cmpeq_epu16_mask (__mmask16 __U, __m256i __A, __m256i __B)
3207 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __A,
3208 (__v16hi) __B, 0,
3209 __U);
3212 extern __inline __mmask16
3213 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3214 _mm256_mask_cmpeq_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
3216 return (__mmask16) __builtin_ia32_pcmpeqw256_mask ((__v16hi) __A,
3217 (__v16hi) __B,
3218 __U);
3221 extern __inline __mmask16
3222 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3223 _mm_cmpgt_epu8_mask (__m128i __A, __m128i __B)
3225 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __A,
3226 (__v16qi) __B, 6,
3227 (__mmask16) -1);
3230 extern __inline __mmask16
3231 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3232 _mm_cmpgt_epi8_mask (__m128i __A, __m128i __B)
3234 return (__mmask16) __builtin_ia32_pcmpgtb128_mask ((__v16qi) __A,
3235 (__v16qi) __B,
3236 (__mmask16) -1);
3239 extern __inline __mmask16
3240 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3241 _mm_mask_cmpgt_epu8_mask (__mmask16 __U, __m128i __A, __m128i __B)
3243 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __A,
3244 (__v16qi) __B, 6,
3245 __U);
3248 extern __inline __mmask16
3249 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3250 _mm_mask_cmpgt_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
3252 return (__mmask16) __builtin_ia32_pcmpgtb128_mask ((__v16qi) __A,
3253 (__v16qi) __B,
3254 __U);
3257 extern __inline __mmask32
3258 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3259 _mm256_cmpgt_epu8_mask (__m256i __A, __m256i __B)
3261 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __A,
3262 (__v32qi) __B, 6,
3263 (__mmask32) -1);
3266 extern __inline __mmask32
3267 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3268 _mm256_cmpgt_epi8_mask (__m256i __A, __m256i __B)
3270 return (__mmask32) __builtin_ia32_pcmpgtb256_mask ((__v32qi) __A,
3271 (__v32qi) __B,
3272 (__mmask32) -1);
3275 extern __inline __mmask32
3276 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3277 _mm256_mask_cmpgt_epu8_mask (__mmask32 __U, __m256i __A, __m256i __B)
3279 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __A,
3280 (__v32qi) __B, 6,
3281 __U);
3284 extern __inline __mmask32
3285 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3286 _mm256_mask_cmpgt_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
3288 return (__mmask32) __builtin_ia32_pcmpgtb256_mask ((__v32qi) __A,
3289 (__v32qi) __B,
3290 __U);
3293 extern __inline __mmask8
3294 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3295 _mm_cmpgt_epu16_mask (__m128i __A, __m128i __B)
3297 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __A,
3298 (__v8hi) __B, 6,
3299 (__mmask8) -1);
3302 extern __inline __mmask8
3303 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3304 _mm_cmpgt_epi16_mask (__m128i __A, __m128i __B)
3306 return (__mmask8) __builtin_ia32_pcmpgtw128_mask ((__v8hi) __A,
3307 (__v8hi) __B,
3308 (__mmask8) -1);
3311 extern __inline __mmask8
3312 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3313 _mm_mask_cmpgt_epu16_mask (__mmask8 __U, __m128i __A, __m128i __B)
3315 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __A,
3316 (__v8hi) __B, 6, __U);
3319 extern __inline __mmask8
3320 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3321 _mm_mask_cmpgt_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
3323 return (__mmask8) __builtin_ia32_pcmpgtw128_mask ((__v8hi) __A,
3324 (__v8hi) __B, __U);
3327 extern __inline __mmask16
3328 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3329 _mm256_cmpgt_epu16_mask (__m256i __A, __m256i __B)
3331 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __A,
3332 (__v16hi) __B, 6,
3333 (__mmask16) -1);
3336 extern __inline __mmask16
3337 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3338 _mm256_cmpgt_epi16_mask (__m256i __A, __m256i __B)
3340 return (__mmask16) __builtin_ia32_pcmpgtw256_mask ((__v16hi) __A,
3341 (__v16hi) __B,
3342 (__mmask16) -1);
3345 extern __inline __mmask16
3346 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3347 _mm256_mask_cmpgt_epu16_mask (__mmask16 __U, __m256i __A, __m256i __B)
3349 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __A,
3350 (__v16hi) __B, 6,
3351 __U);
3354 extern __inline __mmask16
3355 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3356 _mm256_mask_cmpgt_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
3358 return (__mmask16) __builtin_ia32_pcmpgtw256_mask ((__v16hi) __A,
3359 (__v16hi) __B,
3360 __U);
3363 extern __inline __mmask16
3364 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3365 _mm_testn_epi8_mask (__m128i __A, __m128i __B)
3367 return (__mmask16) __builtin_ia32_ptestnmb128 ((__v16qi) __A,
3368 (__v16qi) __B,
3369 (__mmask16) -1);
3372 extern __inline __mmask16
3373 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3374 _mm_mask_testn_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
3376 return (__mmask16) __builtin_ia32_ptestnmb128 ((__v16qi) __A,
3377 (__v16qi) __B, __U);
3380 extern __inline __mmask32
3381 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3382 _mm256_testn_epi8_mask (__m256i __A, __m256i __B)
3384 return (__mmask32) __builtin_ia32_ptestnmb256 ((__v32qi) __A,
3385 (__v32qi) __B,
3386 (__mmask32) -1);
3389 extern __inline __mmask32
3390 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3391 _mm256_mask_testn_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
3393 return (__mmask32) __builtin_ia32_ptestnmb256 ((__v32qi) __A,
3394 (__v32qi) __B, __U);
3397 extern __inline __mmask8
3398 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3399 _mm_testn_epi16_mask (__m128i __A, __m128i __B)
3401 return (__mmask8) __builtin_ia32_ptestnmw128 ((__v8hi) __A,
3402 (__v8hi) __B,
3403 (__mmask8) -1);
3406 extern __inline __mmask8
3407 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3408 _mm_mask_testn_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
3410 return (__mmask8) __builtin_ia32_ptestnmw128 ((__v8hi) __A,
3411 (__v8hi) __B, __U);
3414 extern __inline __mmask16
3415 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3416 _mm256_testn_epi16_mask (__m256i __A, __m256i __B)
3418 return (__mmask16) __builtin_ia32_ptestnmw256 ((__v16hi) __A,
3419 (__v16hi) __B,
3420 (__mmask16) -1);
3423 extern __inline __mmask16
3424 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3425 _mm256_mask_testn_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
3427 return (__mmask16) __builtin_ia32_ptestnmw256 ((__v16hi) __A,
3428 (__v16hi) __B, __U);
3431 extern __inline __m256i
3432 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3433 _mm256_mask_shuffle_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
3434 __m256i __B)
3436 return (__m256i) __builtin_ia32_pshufb256_mask ((__v32qi) __A,
3437 (__v32qi) __B,
3438 (__v32qi) __W,
3439 (__mmask32) __U);
3442 extern __inline __m256i
3443 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3444 _mm256_maskz_shuffle_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
3446 return (__m256i) __builtin_ia32_pshufb256_mask ((__v32qi) __A,
3447 (__v32qi) __B,
3448 (__v32qi)
3449 _mm256_setzero_si256 (),
3450 (__mmask32) __U);
3453 extern __inline __m128i
3454 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3455 _mm_mask_shuffle_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
3456 __m128i __B)
3458 return (__m128i) __builtin_ia32_pshufb128_mask ((__v16qi) __A,
3459 (__v16qi) __B,
3460 (__v16qi) __W,
3461 (__mmask16) __U);
3464 extern __inline __m128i
3465 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3466 _mm_maskz_shuffle_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
3468 return (__m128i) __builtin_ia32_pshufb128_mask ((__v16qi) __A,
3469 (__v16qi) __B,
3470 (__v16qi)
3471 _mm_setzero_si128 (),
3472 (__mmask16) __U);
3475 extern __inline __m256i
3476 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3477 _mm256_maskz_packs_epi16 (__mmask32 __M, __m256i __A, __m256i __B)
3479 return (__m256i) __builtin_ia32_packsswb256_mask ((__v16hi) __A,
3480 (__v16hi) __B,
3481 (__v32qi)
3482 _mm256_setzero_si256 (),
3483 __M);
3486 extern __inline __m256i
3487 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3488 _mm256_mask_packs_epi16 (__m256i __W, __mmask32 __M, __m256i __A,
3489 __m256i __B)
3491 return (__m256i) __builtin_ia32_packsswb256_mask ((__v16hi) __A,
3492 (__v16hi) __B,
3493 (__v32qi) __W,
3494 __M);
3497 extern __inline __m128i
3498 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3499 _mm_maskz_packs_epi16 (__mmask16 __M, __m128i __A, __m128i __B)
3501 return (__m128i) __builtin_ia32_packsswb128_mask ((__v8hi) __A,
3502 (__v8hi) __B,
3503 (__v16qi)
3504 _mm_setzero_si128 (),
3505 __M);
3508 extern __inline __m128i
3509 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3510 _mm_mask_packs_epi16 (__m128i __W, __mmask16 __M, __m128i __A,
3511 __m128i __B)
3513 return (__m128i) __builtin_ia32_packsswb128_mask ((__v8hi) __A,
3514 (__v8hi) __B,
3515 (__v16qi) __W,
3516 __M);
3519 extern __inline __m256i
3520 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3521 _mm256_maskz_packus_epi16 (__mmask32 __M, __m256i __A, __m256i __B)
3523 return (__m256i) __builtin_ia32_packuswb256_mask ((__v16hi) __A,
3524 (__v16hi) __B,
3525 (__v32qi)
3526 _mm256_setzero_si256 (),
3527 __M);
3530 extern __inline __m256i
3531 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3532 _mm256_mask_packus_epi16 (__m256i __W, __mmask32 __M, __m256i __A,
3533 __m256i __B)
3535 return (__m256i) __builtin_ia32_packuswb256_mask ((__v16hi) __A,
3536 (__v16hi) __B,
3537 (__v32qi) __W,
3538 __M);
3541 extern __inline __m128i
3542 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3543 _mm_maskz_packus_epi16 (__mmask16 __M, __m128i __A, __m128i __B)
3545 return (__m128i) __builtin_ia32_packuswb128_mask ((__v8hi) __A,
3546 (__v8hi) __B,
3547 (__v16qi)
3548 _mm_setzero_si128 (),
3549 __M);
3552 extern __inline __m128i
3553 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3554 _mm_mask_packus_epi16 (__m128i __W, __mmask16 __M, __m128i __A,
3555 __m128i __B)
3557 return (__m128i) __builtin_ia32_packuswb128_mask ((__v8hi) __A,
3558 (__v8hi) __B,
3559 (__v16qi) __W,
3560 __M);
3563 extern __inline __m256i
3564 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3565 _mm256_mask_abs_epi8 (__m256i __W, __mmask32 __U, __m256i __A)
3567 return (__m256i) __builtin_ia32_pabsb256_mask ((__v32qi) __A,
3568 (__v32qi) __W,
3569 (__mmask32) __U);
3572 extern __inline __m256i
3573 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3574 _mm256_maskz_abs_epi8 (__mmask32 __U, __m256i __A)
3576 return (__m256i) __builtin_ia32_pabsb256_mask ((__v32qi) __A,
3577 (__v32qi)
3578 _mm256_setzero_si256 (),
3579 (__mmask32) __U);
3582 extern __inline __m128i
3583 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3584 _mm_mask_abs_epi8 (__m128i __W, __mmask16 __U, __m128i __A)
3586 return (__m128i) __builtin_ia32_pabsb128_mask ((__v16qi) __A,
3587 (__v16qi) __W,
3588 (__mmask16) __U);
3591 extern __inline __m128i
3592 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3593 _mm_maskz_abs_epi8 (__mmask16 __U, __m128i __A)
3595 return (__m128i) __builtin_ia32_pabsb128_mask ((__v16qi) __A,
3596 (__v16qi)
3597 _mm_setzero_si128 (),
3598 (__mmask16) __U);
3601 extern __inline __m256i
3602 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3603 _mm256_mask_abs_epi16 (__m256i __W, __mmask16 __U, __m256i __A)
3605 return (__m256i) __builtin_ia32_pabsw256_mask ((__v16hi) __A,
3606 (__v16hi) __W,
3607 (__mmask16) __U);
3610 extern __inline __m256i
3611 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3612 _mm256_maskz_abs_epi16 (__mmask16 __U, __m256i __A)
3614 return (__m256i) __builtin_ia32_pabsw256_mask ((__v16hi) __A,
3615 (__v16hi)
3616 _mm256_setzero_si256 (),
3617 (__mmask16) __U);
3620 extern __inline __m128i
3621 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3622 _mm_mask_abs_epi16 (__m128i __W, __mmask8 __U, __m128i __A)
3624 return (__m128i) __builtin_ia32_pabsw128_mask ((__v8hi) __A,
3625 (__v8hi) __W,
3626 (__mmask8) __U);
3629 extern __inline __m128i
3630 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3631 _mm_maskz_abs_epi16 (__mmask8 __U, __m128i __A)
3633 return (__m128i) __builtin_ia32_pabsw128_mask ((__v8hi) __A,
3634 (__v8hi)
3635 _mm_setzero_si128 (),
3636 (__mmask8) __U);
3639 extern __inline __mmask32
3640 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3641 _mm256_cmpneq_epu8_mask (__m256i __X, __m256i __Y)
3643 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
3644 (__v32qi) __Y, 4,
3645 (__mmask32) -1);
3648 extern __inline __mmask32
3649 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3650 _mm256_cmplt_epu8_mask (__m256i __X, __m256i __Y)
3652 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
3653 (__v32qi) __Y, 1,
3654 (__mmask32) -1);
3657 extern __inline __mmask32
3658 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3659 _mm256_cmpge_epu8_mask (__m256i __X, __m256i __Y)
3661 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
3662 (__v32qi) __Y, 5,
3663 (__mmask32) -1);
3666 extern __inline __mmask32
3667 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3668 _mm256_cmple_epu8_mask (__m256i __X, __m256i __Y)
3670 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
3671 (__v32qi) __Y, 2,
3672 (__mmask32) -1);
3675 extern __inline __mmask16
3676 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3677 _mm256_cmpneq_epu16_mask (__m256i __X, __m256i __Y)
3679 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
3680 (__v16hi) __Y, 4,
3681 (__mmask16) -1);
3684 extern __inline __mmask16
3685 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3686 _mm256_cmplt_epu16_mask (__m256i __X, __m256i __Y)
3688 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
3689 (__v16hi) __Y, 1,
3690 (__mmask16) -1);
3693 extern __inline __mmask16
3694 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3695 _mm256_cmpge_epu16_mask (__m256i __X, __m256i __Y)
3697 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
3698 (__v16hi) __Y, 5,
3699 (__mmask16) -1);
3702 extern __inline __mmask16
3703 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3704 _mm256_cmple_epu16_mask (__m256i __X, __m256i __Y)
3706 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
3707 (__v16hi) __Y, 2,
3708 (__mmask16) -1);
3711 extern __inline void
3712 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3713 _mm256_mask_storeu_epi16 (void *__P, __mmask16 __U, __m256i __A)
3715 __builtin_ia32_storedquhi256_mask ((short *) __P,
3716 (__v16hi) __A,
3717 (__mmask16) __U);
3720 extern __inline void
3721 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3722 _mm_mask_storeu_epi16 (void *__P, __mmask8 __U, __m128i __A)
3724 __builtin_ia32_storedquhi128_mask ((short *) __P,
3725 (__v8hi) __A,
3726 (__mmask8) __U);
3729 extern __inline __m128i
3730 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3731 _mm_mask_adds_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
3732 __m128i __B)
3734 return (__m128i) __builtin_ia32_paddsw128_mask ((__v8hi) __A,
3735 (__v8hi) __B,
3736 (__v8hi) __W,
3737 (__mmask8) __U);
3740 extern __inline __m128i
3741 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3742 _mm_mask_subs_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
3743 __m128i __B)
3745 return (__m128i) __builtin_ia32_psubsb128_mask ((__v16qi) __A,
3746 (__v16qi) __B,
3747 (__v16qi) __W,
3748 (__mmask16) __U);
3751 extern __inline __m128i
3752 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3753 _mm_maskz_subs_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
3755 return (__m128i) __builtin_ia32_psubsb128_mask ((__v16qi) __A,
3756 (__v16qi) __B,
3757 (__v16qi)
3758 _mm_setzero_si128 (),
3759 (__mmask16) __U);
3762 extern __inline __m128i
3763 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3764 _mm_mask_subs_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
3765 __m128i __B)
3767 return (__m128i) __builtin_ia32_psubsw128_mask ((__v8hi) __A,
3768 (__v8hi) __B,
3769 (__v8hi) __W,
3770 (__mmask8) __U);
3773 extern __inline __m128i
3774 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3775 _mm_maskz_subs_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
3777 return (__m128i) __builtin_ia32_psubsw128_mask ((__v8hi) __A,
3778 (__v8hi) __B,
3779 (__v8hi)
3780 _mm_setzero_si128 (),
3781 (__mmask8) __U);
3784 extern __inline __m128i
3785 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3786 _mm_mask_subs_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
3787 __m128i __B)
3789 return (__m128i) __builtin_ia32_psubusb128_mask ((__v16qi) __A,
3790 (__v16qi) __B,
3791 (__v16qi) __W,
3792 (__mmask16) __U);
3795 extern __inline __m128i
3796 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3797 _mm_maskz_subs_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
3799 return (__m128i) __builtin_ia32_psubusb128_mask ((__v16qi) __A,
3800 (__v16qi) __B,
3801 (__v16qi)
3802 _mm_setzero_si128 (),
3803 (__mmask16) __U);
3806 extern __inline __m128i
3807 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3808 _mm_mask_subs_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
3809 __m128i __B)
3811 return (__m128i) __builtin_ia32_psubusw128_mask ((__v8hi) __A,
3812 (__v8hi) __B,
3813 (__v8hi) __W,
3814 (__mmask8) __U);
3817 extern __inline __m128i
3818 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3819 _mm_maskz_subs_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
3821 return (__m128i) __builtin_ia32_psubusw128_mask ((__v8hi) __A,
3822 (__v8hi) __B,
3823 (__v8hi)
3824 _mm_setzero_si128 (),
3825 (__mmask8) __U);
3828 extern __inline __m256i
3829 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3830 _mm256_mask_srl_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
3831 __m128i __B)
3833 return (__m256i) __builtin_ia32_psrlw256_mask ((__v16hi) __A,
3834 (__v8hi) __B,
3835 (__v16hi) __W,
3836 (__mmask16) __U);
3839 extern __inline __m256i
3840 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3841 _mm256_maskz_srl_epi16 (__mmask16 __U, __m256i __A, __m128i __B)
3843 return (__m256i) __builtin_ia32_psrlw256_mask ((__v16hi) __A,
3844 (__v8hi) __B,
3845 (__v16hi)
3846 _mm256_setzero_si256 (),
3847 (__mmask16) __U);
3850 extern __inline __m128i
3851 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3852 _mm_mask_srl_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
3853 __m128i __B)
3855 return (__m128i) __builtin_ia32_psrlw128_mask ((__v8hi) __A,
3856 (__v8hi) __B,
3857 (__v8hi) __W,
3858 (__mmask8) __U);
3861 extern __inline __m128i
3862 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3863 _mm_maskz_srl_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
3865 return (__m128i) __builtin_ia32_psrlw128_mask ((__v8hi) __A,
3866 (__v8hi) __B,
3867 (__v8hi)
3868 _mm_setzero_si128 (),
3869 (__mmask8) __U);
3872 extern __inline __m256i
3873 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3874 _mm256_mask_sra_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
3875 __m128i __B)
3877 return (__m256i) __builtin_ia32_psraw256_mask ((__v16hi) __A,
3878 (__v8hi) __B,
3879 (__v16hi) __W,
3880 (__mmask16) __U);
3883 extern __inline __m256i
3884 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3885 _mm256_maskz_sra_epi16 (__mmask16 __U, __m256i __A, __m128i __B)
3887 return (__m256i) __builtin_ia32_psraw256_mask ((__v16hi) __A,
3888 (__v8hi) __B,
3889 (__v16hi)
3890 _mm256_setzero_si256 (),
3891 (__mmask16) __U);
3894 extern __inline __m128i
3895 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3896 _mm_mask_sra_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
3897 __m128i __B)
3899 return (__m128i) __builtin_ia32_psraw128_mask ((__v8hi) __A,
3900 (__v8hi) __B,
3901 (__v8hi) __W,
3902 (__mmask8) __U);
3905 extern __inline __m128i
3906 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3907 _mm_maskz_sra_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
3909 return (__m128i) __builtin_ia32_psraw128_mask ((__v8hi) __A,
3910 (__v8hi) __B,
3911 (__v8hi)
3912 _mm_setzero_si128 (),
3913 (__mmask8) __U);
3916 extern __inline __m128i
3917 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3918 _mm_maskz_adds_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
3920 return (__m128i) __builtin_ia32_paddsw128_mask ((__v8hi) __A,
3921 (__v8hi) __B,
3922 (__v8hi)
3923 _mm_setzero_si128 (),
3924 (__mmask8) __U);
3927 extern __inline __m128i
3928 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3929 _mm_mask_adds_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
3930 __m128i __B)
3932 return (__m128i) __builtin_ia32_paddusb128_mask ((__v16qi) __A,
3933 (__v16qi) __B,
3934 (__v16qi) __W,
3935 (__mmask16) __U);
3938 extern __inline __m128i
3939 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3940 _mm_maskz_adds_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
3942 return (__m128i) __builtin_ia32_paddusb128_mask ((__v16qi) __A,
3943 (__v16qi) __B,
3944 (__v16qi)
3945 _mm_setzero_si128 (),
3946 (__mmask16) __U);
3949 extern __inline __m128i
3950 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3951 _mm_mask_adds_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
3952 __m128i __B)
3954 return (__m128i) __builtin_ia32_paddusw128_mask ((__v8hi) __A,
3955 (__v8hi) __B,
3956 (__v8hi) __W,
3957 (__mmask8) __U);
3960 extern __inline __m128i
3961 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3962 _mm_maskz_adds_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
3964 return (__m128i) __builtin_ia32_paddusw128_mask ((__v8hi) __A,
3965 (__v8hi) __B,
3966 (__v8hi)
3967 _mm_setzero_si128 (),
3968 (__mmask8) __U);
3971 extern __inline __m128i
3972 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3973 _mm_mask_sub_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
3974 __m128i __B)
3976 return (__m128i) __builtin_ia32_psubb128_mask ((__v16qi) __A,
3977 (__v16qi) __B,
3978 (__v16qi) __W,
3979 (__mmask16) __U);
3982 extern __inline __m128i
3983 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3984 _mm_maskz_sub_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
3986 return (__m128i) __builtin_ia32_psubb128_mask ((__v16qi) __A,
3987 (__v16qi) __B,
3988 (__v16qi)
3989 _mm_setzero_si128 (),
3990 (__mmask16) __U);
3993 extern __inline __m128i
3994 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3995 _mm_mask_sub_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
3996 __m128i __B)
3998 return (__m128i) __builtin_ia32_psubw128_mask ((__v8hi) __A,
3999 (__v8hi) __B,
4000 (__v8hi) __W,
4001 (__mmask8) __U);
4004 extern __inline __m128i
4005 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4006 _mm_maskz_sub_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
4008 return (__m128i) __builtin_ia32_psubw128_mask ((__v8hi) __A,
4009 (__v8hi) __B,
4010 (__v8hi)
4011 _mm_setzero_si128 (),
4012 (__mmask8) __U);
4015 extern __inline __m128i
4016 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4017 _mm_mask_adds_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
4018 __m128i __B)
4020 return (__m128i) __builtin_ia32_paddsb128_mask ((__v16qi) __A,
4021 (__v16qi) __B,
4022 (__v16qi) __W,
4023 (__mmask16) __U);
4026 extern __inline __m128i
4027 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4028 _mm_maskz_adds_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
4030 return (__m128i) __builtin_ia32_paddsb128_mask ((__v16qi) __A,
4031 (__v16qi) __B,
4032 (__v16qi)
4033 _mm_setzero_si128 (),
4034 (__mmask16) __U);
4037 extern __inline __m128i
4038 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4039 _mm_cvtepi16_epi8 (__m128i __A)
4042 return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
4043 (__v16qi)_mm_undefined_si128(),
4044 (__mmask8) -1);
4047 extern __inline void
4048 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4049 _mm_mask_cvtepi16_storeu_epi8 (void * __P, __mmask8 __M,__m128i __A)
4051 __builtin_ia32_pmovwb128mem_mask ((__v8qi *) __P , (__v8hi) __A, __M);
4054 extern __inline __m128i
4055 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4056 _mm_mask_cvtepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
4058 return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
4059 (__v16qi) __O, __M);
4062 extern __inline __m128i
4063 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4064 _mm_maskz_cvtepi16_epi8 (__mmask8 __M, __m128i __A)
4066 return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
4067 (__v16qi)
4068 _mm_setzero_si128 (),
4069 __M);
4072 extern __inline __m256i
4073 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4074 _mm256_srav_epi16 (__m256i __A, __m256i __B)
4076 return (__m256i) __builtin_ia32_psrav16hi_mask ((__v16hi) __A,
4077 (__v16hi) __B,
4078 (__v16hi)
4079 _mm256_setzero_si256 (),
4080 (__mmask16) -1);
4083 extern __inline __m256i
4084 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4085 _mm256_mask_srav_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
4086 __m256i __B)
4088 return (__m256i) __builtin_ia32_psrav16hi_mask ((__v16hi) __A,
4089 (__v16hi) __B,
4090 (__v16hi) __W,
4091 (__mmask16) __U);
4094 extern __inline __m256i
4095 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4096 _mm256_maskz_srav_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
4098 return (__m256i) __builtin_ia32_psrav16hi_mask ((__v16hi) __A,
4099 (__v16hi) __B,
4100 (__v16hi)
4101 _mm256_setzero_si256 (),
4102 (__mmask16) __U);
4105 extern __inline __m128i
4106 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4107 _mm_srav_epi16 (__m128i __A, __m128i __B)
4109 return (__m128i) __builtin_ia32_psrav8hi_mask ((__v8hi) __A,
4110 (__v8hi) __B,
4111 (__v8hi)
4112 _mm_setzero_si128 (),
4113 (__mmask8) -1);
4116 extern __inline __m128i
4117 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4118 _mm_mask_srav_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
4119 __m128i __B)
4121 return (__m128i) __builtin_ia32_psrav8hi_mask ((__v8hi) __A,
4122 (__v8hi) __B,
4123 (__v8hi) __W,
4124 (__mmask8) __U);
4127 extern __inline __m128i
4128 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4129 _mm_maskz_srav_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
4131 return (__m128i) __builtin_ia32_psrav8hi_mask ((__v8hi) __A,
4132 (__v8hi) __B,
4133 (__v8hi)
4134 _mm_setzero_si128 (),
4135 (__mmask8) __U);
4138 extern __inline __m256i
4139 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4140 _mm256_srlv_epi16 (__m256i __A, __m256i __B)
4142 return (__m256i) __builtin_ia32_psrlv16hi_mask ((__v16hi) __A,
4143 (__v16hi) __B,
4144 (__v16hi)
4145 _mm256_setzero_si256 (),
4146 (__mmask16) -1);
4149 extern __inline __m256i
4150 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4151 _mm256_mask_srlv_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
4152 __m256i __B)
4154 return (__m256i) __builtin_ia32_psrlv16hi_mask ((__v16hi) __A,
4155 (__v16hi) __B,
4156 (__v16hi) __W,
4157 (__mmask16) __U);
4160 extern __inline __m256i
4161 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4162 _mm256_maskz_srlv_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
4164 return (__m256i) __builtin_ia32_psrlv16hi_mask ((__v16hi) __A,
4165 (__v16hi) __B,
4166 (__v16hi)
4167 _mm256_setzero_si256 (),
4168 (__mmask16) __U);
4171 extern __inline __m128i
4172 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4173 _mm_srlv_epi16 (__m128i __A, __m128i __B)
4175 return (__m128i) __builtin_ia32_psrlv8hi_mask ((__v8hi) __A,
4176 (__v8hi) __B,
4177 (__v8hi)
4178 _mm_setzero_si128 (),
4179 (__mmask8) -1);
4182 extern __inline __m128i
4183 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4184 _mm_mask_srlv_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
4185 __m128i __B)
4187 return (__m128i) __builtin_ia32_psrlv8hi_mask ((__v8hi) __A,
4188 (__v8hi) __B,
4189 (__v8hi) __W,
4190 (__mmask8) __U);
4193 extern __inline __m128i
4194 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4195 _mm_maskz_srlv_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
4197 return (__m128i) __builtin_ia32_psrlv8hi_mask ((__v8hi) __A,
4198 (__v8hi) __B,
4199 (__v8hi)
4200 _mm_setzero_si128 (),
4201 (__mmask8) __U);
4204 extern __inline __m256i
4205 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4206 _mm256_sllv_epi16 (__m256i __A, __m256i __B)
4208 return (__m256i) __builtin_ia32_psllv16hi_mask ((__v16hi) __A,
4209 (__v16hi) __B,
4210 (__v16hi)
4211 _mm256_setzero_si256 (),
4212 (__mmask16) -1);
4215 extern __inline __m256i
4216 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4217 _mm256_mask_sllv_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
4218 __m256i __B)
4220 return (__m256i) __builtin_ia32_psllv16hi_mask ((__v16hi) __A,
4221 (__v16hi) __B,
4222 (__v16hi) __W,
4223 (__mmask16) __U);
4226 extern __inline __m256i
4227 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4228 _mm256_maskz_sllv_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
4230 return (__m256i) __builtin_ia32_psllv16hi_mask ((__v16hi) __A,
4231 (__v16hi) __B,
4232 (__v16hi)
4233 _mm256_setzero_si256 (),
4234 (__mmask16) __U);
4237 extern __inline __m128i
4238 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4239 _mm_sllv_epi16 (__m128i __A, __m128i __B)
4241 return (__m128i) __builtin_ia32_psllv8hi_mask ((__v8hi) __A,
4242 (__v8hi) __B,
4243 (__v8hi)
4244 _mm_setzero_si128 (),
4245 (__mmask8) -1);
4248 extern __inline __m128i
4249 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4250 _mm_mask_sllv_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
4251 __m128i __B)
4253 return (__m128i) __builtin_ia32_psllv8hi_mask ((__v8hi) __A,
4254 (__v8hi) __B,
4255 (__v8hi) __W,
4256 (__mmask8) __U);
4259 extern __inline __m128i
4260 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4261 _mm_maskz_sllv_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
4263 return (__m128i) __builtin_ia32_psllv8hi_mask ((__v8hi) __A,
4264 (__v8hi) __B,
4265 (__v8hi)
4266 _mm_setzero_si128 (),
4267 (__mmask8) __U);
4270 extern __inline __m128i
4271 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4272 _mm_mask_sll_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
4273 __m128i __B)
4275 return (__m128i) __builtin_ia32_psllw128_mask ((__v8hi) __A,
4276 (__v8hi) __B,
4277 (__v8hi) __W,
4278 (__mmask8) __U);
4281 extern __inline __m128i
4282 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4283 _mm_maskz_sll_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
4285 return (__m128i) __builtin_ia32_psllw128_mask ((__v8hi) __A,
4286 (__v8hi) __B,
4287 (__v8hi)
4288 _mm_setzero_si128 (),
4289 (__mmask8) __U);
4292 extern __inline __m256i
4293 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4294 _mm256_mask_sll_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
4295 __m128i __B)
4297 return (__m256i) __builtin_ia32_psllw256_mask ((__v16hi) __A,
4298 (__v8hi) __B,
4299 (__v16hi) __W,
4300 (__mmask16) __U);
4303 extern __inline __m256i
4304 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4305 _mm256_maskz_sll_epi16 (__mmask16 __U, __m256i __A, __m128i __B)
4307 return (__m256i) __builtin_ia32_psllw256_mask ((__v16hi) __A,
4308 (__v8hi) __B,
4309 (__v16hi)
4310 _mm256_setzero_si256 (),
4311 (__mmask16) __U);
4314 extern __inline __m256i
4315 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4316 _mm256_maskz_packus_epi32 (__mmask16 __M, __m256i __A, __m256i __B)
4318 return (__m256i) __builtin_ia32_packusdw256_mask ((__v8si) __A,
4319 (__v8si) __B,
4320 (__v16hi)
4321 _mm256_setzero_si256 (),
4322 __M);
4325 extern __inline __m256i
4326 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4327 _mm256_mask_packus_epi32 (__m256i __W, __mmask16 __M, __m256i __A,
4328 __m256i __B)
4330 return (__m256i) __builtin_ia32_packusdw256_mask ((__v8si) __A,
4331 (__v8si) __B,
4332 (__v16hi) __W,
4333 __M);
4336 extern __inline __m128i
4337 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4338 _mm_maskz_packus_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
4340 return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A,
4341 (__v4si) __B,
4342 (__v8hi)
4343 _mm_setzero_si128 (),
4344 __M);
4347 extern __inline __m128i
4348 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4349 _mm_mask_packus_epi32 (__m128i __W, __mmask16 __M, __m128i __A,
4350 __m128i __B)
4352 return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A,
4353 (__v4si) __B,
4354 (__v8hi) __W, __M);
4357 extern __inline __m256i
4358 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4359 _mm256_maskz_packs_epi32 (__mmask16 __M, __m256i __A, __m256i __B)
4361 return (__m256i) __builtin_ia32_packssdw256_mask ((__v8si) __A,
4362 (__v8si) __B,
4363 (__v16hi)
4364 _mm256_setzero_si256 (),
4365 __M);
4368 extern __inline __m256i
4369 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4370 _mm256_mask_packs_epi32 (__m256i __W, __mmask16 __M, __m256i __A,
4371 __m256i __B)
4373 return (__m256i) __builtin_ia32_packssdw256_mask ((__v8si) __A,
4374 (__v8si) __B,
4375 (__v16hi) __W,
4376 __M);
4379 extern __inline __m128i
4380 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4381 _mm_maskz_packs_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
4383 return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A,
4384 (__v4si) __B,
4385 (__v8hi)
4386 _mm_setzero_si128 (),
4387 __M);
4390 extern __inline __m128i
4391 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4392 _mm_mask_packs_epi32 (__m128i __W, __mmask16 __M, __m128i __A,
4393 __m128i __B)
4395 return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A,
4396 (__v4si) __B,
4397 (__v8hi) __W, __M);
4400 extern __inline __mmask16
4401 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4402 _mm_mask_cmpneq_epu8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4404 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
4405 (__v16qi) __Y, 4,
4406 (__mmask16) __M);
4409 extern __inline __mmask16
4410 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4411 _mm_mask_cmplt_epu8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4413 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
4414 (__v16qi) __Y, 1,
4415 (__mmask16) __M);
4418 extern __inline __mmask16
4419 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4420 _mm_mask_cmpge_epu8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4422 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
4423 (__v16qi) __Y, 5,
4424 (__mmask16) __M);
4427 extern __inline __mmask16
4428 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4429 _mm_mask_cmple_epu8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4431 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
4432 (__v16qi) __Y, 2,
4433 (__mmask16) __M);
4436 extern __inline __mmask8
4437 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4438 _mm_mask_cmpneq_epu16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4440 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
4441 (__v8hi) __Y, 4,
4442 (__mmask8) __M);
4445 extern __inline __mmask8
4446 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4447 _mm_mask_cmplt_epu16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4449 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
4450 (__v8hi) __Y, 1,
4451 (__mmask8) __M);
4454 extern __inline __mmask8
4455 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4456 _mm_mask_cmpge_epu16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4458 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
4459 (__v8hi) __Y, 5,
4460 (__mmask8) __M);
4463 extern __inline __mmask8
4464 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4465 _mm_mask_cmple_epu16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4467 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
4468 (__v8hi) __Y, 2,
4469 (__mmask8) __M);
4472 extern __inline __mmask16
4473 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4474 _mm_mask_cmpneq_epi8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4476 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
4477 (__v16qi) __Y, 4,
4478 (__mmask16) __M);
4481 extern __inline __mmask16
4482 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4483 _mm_mask_cmplt_epi8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4485 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
4486 (__v16qi) __Y, 1,
4487 (__mmask16) __M);
4490 extern __inline __mmask16
4491 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4492 _mm_mask_cmpge_epi8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4494 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
4495 (__v16qi) __Y, 5,
4496 (__mmask16) __M);
4499 extern __inline __mmask16
4500 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4501 _mm_mask_cmple_epi8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4503 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
4504 (__v16qi) __Y, 2,
4505 (__mmask16) __M);
4508 extern __inline __mmask8
4509 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4510 _mm_mask_cmpneq_epi16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4512 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
4513 (__v8hi) __Y, 4,
4514 (__mmask8) __M);
4517 extern __inline __mmask8
4518 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4519 _mm_mask_cmplt_epi16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4521 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
4522 (__v8hi) __Y, 1,
4523 (__mmask8) __M);
4526 extern __inline __mmask8
4527 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4528 _mm_mask_cmpge_epi16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4530 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
4531 (__v8hi) __Y, 5,
4532 (__mmask8) __M);
4535 extern __inline __mmask8
4536 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4537 _mm_mask_cmple_epi16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4539 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
4540 (__v8hi) __Y, 2,
4541 (__mmask8) __M);
4544 extern __inline __mmask32
4545 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4546 _mm256_mask_cmpneq_epu8_mask (__mmask32 __M, __m256i __X, __m256i __Y)
4548 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
4549 (__v32qi) __Y, 4,
4550 (__mmask32) __M);
4553 extern __inline __mmask32
4554 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4555 _mm256_mask_cmplt_epu8_mask (__mmask32 __M, __m256i __X, __m256i __Y)
4557 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
4558 (__v32qi) __Y, 1,
4559 (__mmask32) __M);
4562 extern __inline __mmask32
4563 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4564 _mm256_mask_cmpge_epu8_mask (__mmask32 __M, __m256i __X, __m256i __Y)
4566 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
4567 (__v32qi) __Y, 5,
4568 (__mmask32) __M);
4571 extern __inline __mmask32
4572 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4573 _mm256_mask_cmple_epu8_mask (__mmask32 __M, __m256i __X, __m256i __Y)
4575 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
4576 (__v32qi) __Y, 2,
4577 (__mmask32) __M);
4580 extern __inline __mmask16
4581 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4582 _mm256_mask_cmpneq_epu16_mask (__mmask16 __M, __m256i __X, __m256i __Y)
4584 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
4585 (__v16hi) __Y, 4,
4586 (__mmask16) __M);
4589 extern __inline __mmask16
4590 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4591 _mm256_mask_cmplt_epu16_mask (__mmask16 __M, __m256i __X, __m256i __Y)
4593 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
4594 (__v16hi) __Y, 1,
4595 (__mmask16) __M);
4598 extern __inline __mmask16
4599 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4600 _mm256_mask_cmpge_epu16_mask (__mmask16 __M, __m256i __X, __m256i __Y)
4602 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
4603 (__v16hi) __Y, 5,
4604 (__mmask16) __M);
4607 extern __inline __mmask16
4608 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4609 _mm256_mask_cmple_epu16_mask (__mmask16 __M, __m256i __X, __m256i __Y)
4611 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
4612 (__v16hi) __Y, 2,
4613 (__mmask16) __M);
4616 extern __inline __mmask32
4617 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4618 _mm256_mask_cmpneq_epi8_mask (__mmask32 __M, __m256i __X, __m256i __Y)
4620 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
4621 (__v32qi) __Y, 4,
4622 (__mmask32) __M);
4625 extern __inline __mmask32
4626 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4627 _mm256_mask_cmplt_epi8_mask (__mmask32 __M, __m256i __X, __m256i __Y)
4629 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
4630 (__v32qi) __Y, 1,
4631 (__mmask32) __M);
4634 extern __inline __mmask32
4635 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4636 _mm256_mask_cmpge_epi8_mask (__mmask32 __M, __m256i __X, __m256i __Y)
4638 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
4639 (__v32qi) __Y, 5,
4640 (__mmask32) __M);
4643 extern __inline __mmask32
4644 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4645 _mm256_mask_cmple_epi8_mask (__mmask32 __M, __m256i __X, __m256i __Y)
4647 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
4648 (__v32qi) __Y, 2,
4649 (__mmask32) __M);
4652 extern __inline __mmask16
4653 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4654 _mm256_mask_cmpneq_epi16_mask (__mmask16 __M, __m256i __X, __m256i __Y)
4656 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
4657 (__v16hi) __Y, 4,
4658 (__mmask16) __M);
4661 extern __inline __mmask16
4662 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4663 _mm256_mask_cmplt_epi16_mask (__mmask16 __M, __m256i __X, __m256i __Y)
4665 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
4666 (__v16hi) __Y, 1,
4667 (__mmask16) __M);
4670 extern __inline __mmask16
4671 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4672 _mm256_mask_cmpge_epi16_mask (__mmask16 __M, __m256i __X, __m256i __Y)
4674 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
4675 (__v16hi) __Y, 5,
4676 (__mmask16) __M);
4679 extern __inline __mmask16
4680 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4681 _mm256_mask_cmple_epi16_mask (__mmask16 __M, __m256i __X, __m256i __Y)
4683 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
4684 (__v16hi) __Y, 2,
4685 (__mmask16) __M);
4688 #ifdef __DISABLE_AVX512VLBW__
4689 #undef __DISABLE_AVX512VLBW__
4690 #pragma GCC pop_options
4691 #endif /* __DISABLE_AVX512VLBW__ */
4693 #endif /* _AVX512VLBWINTRIN_H_INCLUDED */