2016-11-17 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
[official-gcc.git] / gcc / config / i386 / avx512vlbwintrin.h
blob02bbed0a8b92809454a5b0e6bce17159ef6c0349
1 /* Copyright (C) 2014-2016 Free Software Foundation, Inc.
3 This file is part of GCC.
5 GCC is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 3, or (at your option)
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_hi (),
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_hi (),
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_hi (),
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_hi (),
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 __m128i
220 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
221 _mm256_mask_cvtepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A)
223 return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
224 (__v16qi) __O, __M);
227 extern __inline __m128i
228 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
229 _mm256_maskz_cvtepi16_epi8 (__mmask16 __M, __m256i __A)
231 return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
232 (__v16qi)
233 _mm_setzero_si128 (),
234 __M);
237 extern __inline __m128i
238 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
239 _mm_cvtsepi16_epi8 (__m128i __A)
242 return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
243 (__v16qi)_mm_undefined_si128(),
244 (__mmask8) -1);
247 extern __inline __m128i
248 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
249 _mm_mask_cvtsepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
251 return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
252 (__v16qi) __O, __M);
255 extern __inline __m128i
256 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
257 _mm_maskz_cvtsepi16_epi8 (__mmask8 __M, __m128i __A)
259 return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
260 (__v16qi)
261 _mm_setzero_si128 (),
262 __M);
265 extern __inline __m128i
266 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
267 _mm256_cvtsepi16_epi8 (__m256i __A)
270 return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
271 (__v16qi)_mm_undefined_si128(),
272 (__mmask16) -1);
275 extern __inline __m128i
276 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
277 _mm256_mask_cvtsepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A)
279 return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
280 (__v16qi) __O, __M);
283 extern __inline __m128i
284 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
285 _mm256_maskz_cvtsepi16_epi8 (__mmask16 __M, __m256i __A)
287 return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
288 (__v16qi)
289 _mm_setzero_si128 (),
290 __M);
293 extern __inline __m128i
294 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
295 _mm_cvtusepi16_epi8 (__m128i __A)
298 return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
299 (__v16qi)_mm_undefined_si128(),
300 (__mmask8) -1);
303 extern __inline __m128i
304 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
305 _mm_mask_cvtusepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
307 return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
308 (__v16qi) __O,
309 __M);
312 extern __inline __m128i
313 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
314 _mm_maskz_cvtusepi16_epi8 (__mmask8 __M, __m128i __A)
316 return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
317 (__v16qi)
318 _mm_setzero_si128 (),
319 __M);
322 extern __inline __m128i
323 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
324 _mm256_cvtusepi16_epi8 (__m256i __A)
327 return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
328 (__v16qi)_mm_undefined_si128(),
329 (__mmask16) -1);
332 extern __inline __m128i
333 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
334 _mm256_mask_cvtusepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A)
336 return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
337 (__v16qi) __O,
338 __M);
341 extern __inline __m128i
342 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
343 _mm256_maskz_cvtusepi16_epi8 (__mmask16 __M, __m256i __A)
345 return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
346 (__v16qi)
347 _mm_setzero_si128 (),
348 __M);
351 extern __inline __m256i
352 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
353 _mm256_mask_broadcastb_epi8 (__m256i __O, __mmask32 __M, __m128i __A)
355 return (__m256i) __builtin_ia32_pbroadcastb256_mask ((__v16qi) __A,
356 (__v32qi) __O,
357 __M);
360 extern __inline __m256i
361 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
362 _mm256_maskz_broadcastb_epi8 (__mmask32 __M, __m128i __A)
364 return (__m256i) __builtin_ia32_pbroadcastb256_mask ((__v16qi) __A,
365 (__v32qi)
366 _mm256_setzero_si256 (),
367 __M);
370 extern __inline __m256i
371 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
372 _mm256_mask_set1_epi8 (__m256i __O, __mmask32 __M, char __A)
374 return (__m256i) __builtin_ia32_pbroadcastb256_gpr_mask (__A,
375 (__v32qi) __O,
376 __M);
379 extern __inline __m256i
380 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
381 _mm256_maskz_set1_epi8 (__mmask32 __M, char __A)
383 return (__m256i) __builtin_ia32_pbroadcastb256_gpr_mask (__A,
384 (__v32qi)
385 _mm256_setzero_si256 (),
386 __M);
389 extern __inline __m128i
390 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
391 _mm_mask_broadcastb_epi8 (__m128i __O, __mmask16 __M, __m128i __A)
393 return (__m128i) __builtin_ia32_pbroadcastb128_mask ((__v16qi) __A,
394 (__v16qi) __O,
395 __M);
398 extern __inline __m128i
399 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
400 _mm_maskz_broadcastb_epi8 (__mmask16 __M, __m128i __A)
402 return (__m128i) __builtin_ia32_pbroadcastb128_mask ((__v16qi) __A,
403 (__v16qi)
404 _mm_setzero_si128 (),
405 __M);
408 extern __inline __m128i
409 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
410 _mm_mask_set1_epi8 (__m128i __O, __mmask16 __M, char __A)
412 return (__m128i) __builtin_ia32_pbroadcastb128_gpr_mask (__A,
413 (__v16qi) __O,
414 __M);
417 extern __inline __m128i
418 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
419 _mm_maskz_set1_epi8 (__mmask16 __M, char __A)
421 return (__m128i) __builtin_ia32_pbroadcastb128_gpr_mask (__A,
422 (__v16qi)
423 _mm_setzero_si128 (),
424 __M);
427 extern __inline __m256i
428 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
429 _mm256_mask_broadcastw_epi16 (__m256i __O, __mmask16 __M, __m128i __A)
431 return (__m256i) __builtin_ia32_pbroadcastw256_mask ((__v8hi) __A,
432 (__v16hi) __O,
433 __M);
436 extern __inline __m256i
437 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
438 _mm256_maskz_broadcastw_epi16 (__mmask16 __M, __m128i __A)
440 return (__m256i) __builtin_ia32_pbroadcastw256_mask ((__v8hi) __A,
441 (__v16hi)
442 _mm256_setzero_si256 (),
443 __M);
446 extern __inline __m256i
447 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
448 _mm256_mask_set1_epi16 (__m256i __O, __mmask16 __M, short __A)
450 return (__m256i) __builtin_ia32_pbroadcastw256_gpr_mask (__A,
451 (__v16hi) __O,
452 __M);
455 extern __inline __m256i
456 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
457 _mm256_maskz_set1_epi16 (__mmask16 __M, short __A)
459 return (__m256i) __builtin_ia32_pbroadcastw256_gpr_mask (__A,
460 (__v16hi)
461 _mm256_setzero_si256 (),
462 __M);
465 extern __inline __m128i
466 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
467 _mm_mask_broadcastw_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
469 return (__m128i) __builtin_ia32_pbroadcastw128_mask ((__v8hi) __A,
470 (__v8hi) __O,
471 __M);
474 extern __inline __m128i
475 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
476 _mm_maskz_broadcastw_epi16 (__mmask8 __M, __m128i __A)
478 return (__m128i) __builtin_ia32_pbroadcastw128_mask ((__v8hi) __A,
479 (__v8hi)
480 _mm_setzero_si128 (),
481 __M);
484 extern __inline __m128i
485 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
486 _mm_mask_set1_epi16 (__m128i __O, __mmask8 __M, short __A)
488 return (__m128i) __builtin_ia32_pbroadcastw128_gpr_mask (__A,
489 (__v8hi) __O,
490 __M);
493 extern __inline __m128i
494 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
495 _mm_maskz_set1_epi16 (__mmask8 __M, short __A)
497 return (__m128i) __builtin_ia32_pbroadcastw128_gpr_mask (__A,
498 (__v8hi)
499 _mm_setzero_si128 (),
500 __M);
503 extern __inline __m256i
504 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
505 _mm256_permutexvar_epi16 (__m256i __A, __m256i __B)
507 return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
508 (__v16hi) __A,
509 (__v16hi)
510 _mm256_setzero_si256 (),
511 (__mmask16) -1);
514 extern __inline __m256i
515 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
516 _mm256_maskz_permutexvar_epi16 (__mmask16 __M, __m256i __A,
517 __m256i __B)
519 return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
520 (__v16hi) __A,
521 (__v16hi)
522 _mm256_setzero_si256 (),
523 (__mmask16) __M);
526 extern __inline __m256i
527 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
528 _mm256_mask_permutexvar_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
529 __m256i __B)
531 return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
532 (__v16hi) __A,
533 (__v16hi) __W,
534 (__mmask16) __M);
537 extern __inline __m128i
538 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
539 _mm_permutexvar_epi16 (__m128i __A, __m128i __B)
541 return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
542 (__v8hi) __A,
543 (__v8hi)
544 _mm_setzero_hi (),
545 (__mmask8) -1);
548 extern __inline __m128i
549 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
550 _mm_maskz_permutexvar_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
552 return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
553 (__v8hi) __A,
554 (__v8hi)
555 _mm_setzero_si128 (),
556 (__mmask8) __M);
559 extern __inline __m128i
560 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
561 _mm_mask_permutexvar_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
562 __m128i __B)
564 return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
565 (__v8hi) __A,
566 (__v8hi) __W,
567 (__mmask8) __M);
570 extern __inline __m256i
571 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
572 _mm256_permutex2var_epi16 (__m256i __A, __m256i __I, __m256i __B)
574 return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I
575 /* idx */ ,
576 (__v16hi) __A,
577 (__v16hi) __B,
578 (__mmask16) -1);
581 extern __inline __m256i
582 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
583 _mm256_mask_permutex2var_epi16 (__m256i __A, __mmask16 __U,
584 __m256i __I, __m256i __B)
586 return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I
587 /* idx */ ,
588 (__v16hi) __A,
589 (__v16hi) __B,
590 (__mmask16)
591 __U);
594 extern __inline __m256i
595 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
596 _mm256_mask2_permutex2var_epi16 (__m256i __A, __m256i __I,
597 __mmask16 __U, __m256i __B)
599 return (__m256i) __builtin_ia32_vpermi2varhi256_mask ((__v16hi) __A,
600 (__v16hi) __I
601 /* idx */ ,
602 (__v16hi) __B,
603 (__mmask16)
604 __U);
607 extern __inline __m256i
608 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
609 _mm256_maskz_permutex2var_epi16 (__mmask16 __U, __m256i __A,
610 __m256i __I, __m256i __B)
612 return (__m256i) __builtin_ia32_vpermt2varhi256_maskz ((__v16hi) __I
613 /* idx */ ,
614 (__v16hi) __A,
615 (__v16hi) __B,
616 (__mmask16)
617 __U);
620 extern __inline __m128i
621 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
622 _mm_permutex2var_epi16 (__m128i __A, __m128i __I, __m128i __B)
624 return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I
625 /* idx */ ,
626 (__v8hi) __A,
627 (__v8hi) __B,
628 (__mmask8) -1);
631 extern __inline __m128i
632 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
633 _mm_mask_permutex2var_epi16 (__m128i __A, __mmask8 __U, __m128i __I,
634 __m128i __B)
636 return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I
637 /* idx */ ,
638 (__v8hi) __A,
639 (__v8hi) __B,
640 (__mmask8)
641 __U);
644 extern __inline __m128i
645 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
646 _mm_mask2_permutex2var_epi16 (__m128i __A, __m128i __I, __mmask8 __U,
647 __m128i __B)
649 return (__m128i) __builtin_ia32_vpermi2varhi128_mask ((__v8hi) __A,
650 (__v8hi) __I
651 /* idx */ ,
652 (__v8hi) __B,
653 (__mmask8)
654 __U);
657 extern __inline __m128i
658 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
659 _mm_maskz_permutex2var_epi16 (__mmask8 __U, __m128i __A, __m128i __I,
660 __m128i __B)
662 return (__m128i) __builtin_ia32_vpermt2varhi128_maskz ((__v8hi) __I
663 /* idx */ ,
664 (__v8hi) __A,
665 (__v8hi) __B,
666 (__mmask8)
667 __U);
670 extern __inline __m256i
671 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
672 _mm256_mask_maddubs_epi16 (__m256i __W, __mmask16 __U, __m256i __X,
673 __m256i __Y)
675 return (__m256i) __builtin_ia32_pmaddubsw256_mask ((__v32qi) __X,
676 (__v32qi) __Y,
677 (__v16hi) __W,
678 (__mmask16) __U);
681 extern __inline __m256i
682 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
683 _mm256_maskz_maddubs_epi16 (__mmask16 __U, __m256i __X, __m256i __Y)
685 return (__m256i) __builtin_ia32_pmaddubsw256_mask ((__v32qi) __X,
686 (__v32qi) __Y,
687 (__v16hi)
688 _mm256_setzero_si256 (),
689 (__mmask16) __U);
692 extern __inline __m128i
693 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
694 _mm_mask_maddubs_epi16 (__m128i __W, __mmask8 __U, __m128i __X,
695 __m128i __Y)
697 return (__m128i) __builtin_ia32_pmaddubsw128_mask ((__v16qi) __X,
698 (__v16qi) __Y,
699 (__v8hi) __W,
700 (__mmask8) __U);
703 extern __inline __m128i
704 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
705 _mm_maskz_maddubs_epi16 (__mmask8 __U, __m128i __X, __m128i __Y)
707 return (__m128i) __builtin_ia32_pmaddubsw128_mask ((__v16qi) __X,
708 (__v16qi) __Y,
709 (__v8hi)
710 _mm_setzero_hi (),
711 (__mmask8) __U);
714 extern __inline __m256i
715 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
716 _mm256_mask_madd_epi16 (__m256i __W, __mmask8 __U, __m256i __A,
717 __m256i __B)
719 return (__m256i) __builtin_ia32_pmaddwd256_mask ((__v16hi) __A,
720 (__v16hi) __B,
721 (__v8si) __W,
722 (__mmask8) __U);
725 extern __inline __m256i
726 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
727 _mm256_maskz_madd_epi16 (__mmask8 __U, __m256i __A, __m256i __B)
729 return (__m256i) __builtin_ia32_pmaddwd256_mask ((__v16hi) __A,
730 (__v16hi) __B,
731 (__v8si)
732 _mm256_setzero_si256 (),
733 (__mmask8) __U);
736 extern __inline __m128i
737 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
738 _mm_mask_madd_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
739 __m128i __B)
741 return (__m128i) __builtin_ia32_pmaddwd128_mask ((__v8hi) __A,
742 (__v8hi) __B,
743 (__v4si) __W,
744 (__mmask8) __U);
747 extern __inline __m128i
748 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
749 _mm_maskz_madd_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
751 return (__m128i) __builtin_ia32_pmaddwd128_mask ((__v8hi) __A,
752 (__v8hi) __B,
753 (__v4si)
754 _mm_setzero_si128 (),
755 (__mmask8) __U);
758 extern __inline __mmask16
759 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
760 _mm_movepi8_mask (__m128i __A)
762 return (__mmask16) __builtin_ia32_cvtb2mask128 ((__v16qi) __A);
765 extern __inline __mmask32
766 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
767 _mm256_movepi8_mask (__m256i __A)
769 return (__mmask32) __builtin_ia32_cvtb2mask256 ((__v32qi) __A);
772 extern __inline __mmask8
773 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
774 _mm_movepi16_mask (__m128i __A)
776 return (__mmask8) __builtin_ia32_cvtw2mask128 ((__v8hi) __A);
779 extern __inline __mmask16
780 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
781 _mm256_movepi16_mask (__m256i __A)
783 return (__mmask16) __builtin_ia32_cvtw2mask256 ((__v16hi) __A);
786 extern __inline __m128i
787 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
788 _mm_movm_epi8 (__mmask16 __A)
790 return (__m128i) __builtin_ia32_cvtmask2b128 (__A);
793 extern __inline __m256i
794 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
795 _mm256_movm_epi8 (__mmask32 __A)
797 return (__m256i) __builtin_ia32_cvtmask2b256 (__A);
800 extern __inline __m128i
801 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
802 _mm_movm_epi16 (__mmask8 __A)
804 return (__m128i) __builtin_ia32_cvtmask2w128 (__A);
807 extern __inline __m256i
808 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
809 _mm256_movm_epi16 (__mmask16 __A)
811 return (__m256i) __builtin_ia32_cvtmask2w256 (__A);
814 extern __inline __mmask16
815 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
816 _mm_test_epi8_mask (__m128i __A, __m128i __B)
818 return (__mmask16) __builtin_ia32_ptestmb128 ((__v16qi) __A,
819 (__v16qi) __B,
820 (__mmask16) -1);
823 extern __inline __mmask16
824 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
825 _mm_mask_test_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
827 return (__mmask16) __builtin_ia32_ptestmb128 ((__v16qi) __A,
828 (__v16qi) __B, __U);
831 extern __inline __mmask32
832 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
833 _mm256_test_epi8_mask (__m256i __A, __m256i __B)
835 return (__mmask32) __builtin_ia32_ptestmb256 ((__v32qi) __A,
836 (__v32qi) __B,
837 (__mmask32) -1);
840 extern __inline __mmask32
841 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
842 _mm256_mask_test_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
844 return (__mmask32) __builtin_ia32_ptestmb256 ((__v32qi) __A,
845 (__v32qi) __B, __U);
848 extern __inline __mmask8
849 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
850 _mm_test_epi16_mask (__m128i __A, __m128i __B)
852 return (__mmask8) __builtin_ia32_ptestmw128 ((__v8hi) __A,
853 (__v8hi) __B,
854 (__mmask8) -1);
857 extern __inline __mmask8
858 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
859 _mm_mask_test_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
861 return (__mmask8) __builtin_ia32_ptestmw128 ((__v8hi) __A,
862 (__v8hi) __B, __U);
865 extern __inline __mmask16
866 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
867 _mm256_test_epi16_mask (__m256i __A, __m256i __B)
869 return (__mmask16) __builtin_ia32_ptestmw256 ((__v16hi) __A,
870 (__v16hi) __B,
871 (__mmask16) -1);
874 extern __inline __mmask16
875 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
876 _mm256_mask_test_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
878 return (__mmask16) __builtin_ia32_ptestmw256 ((__v16hi) __A,
879 (__v16hi) __B, __U);
882 extern __inline __m256i
883 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
884 _mm256_maskz_min_epu16 (__mmask16 __M, __m256i __A, __m256i __B)
886 return (__m256i) __builtin_ia32_pminuw256_mask ((__v16hi) __A,
887 (__v16hi) __B,
888 (__v16hi)
889 _mm256_setzero_si256 (),
890 (__mmask16) __M);
893 extern __inline __m256i
894 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
895 _mm256_mask_min_epu16 (__m256i __W, __mmask16 __M, __m256i __A,
896 __m256i __B)
898 return (__m256i) __builtin_ia32_pminuw256_mask ((__v16hi) __A,
899 (__v16hi) __B,
900 (__v16hi) __W,
901 (__mmask16) __M);
904 extern __inline __m128i
905 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
906 _mm_maskz_min_epu16 (__mmask8 __M, __m128i __A, __m128i __B)
908 return (__m128i) __builtin_ia32_pminuw128_mask ((__v8hi) __A,
909 (__v8hi) __B,
910 (__v8hi)
911 _mm_setzero_di (),
912 (__mmask8) __M);
915 extern __inline __m128i
916 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
917 _mm_mask_min_epu16 (__m128i __W, __mmask8 __M, __m128i __A,
918 __m128i __B)
920 return (__m128i) __builtin_ia32_pminuw128_mask ((__v8hi) __A,
921 (__v8hi) __B,
922 (__v8hi) __W,
923 (__mmask8) __M);
926 extern __inline __m256i
927 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
928 _mm256_maskz_min_epi16 (__mmask16 __M, __m256i __A, __m256i __B)
930 return (__m256i) __builtin_ia32_pminsw256_mask ((__v16hi) __A,
931 (__v16hi) __B,
932 (__v16hi)
933 _mm256_setzero_si256 (),
934 (__mmask16) __M);
937 extern __inline __m256i
938 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
939 _mm256_mask_min_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
940 __m256i __B)
942 return (__m256i) __builtin_ia32_pminsw256_mask ((__v16hi) __A,
943 (__v16hi) __B,
944 (__v16hi) __W,
945 (__mmask16) __M);
948 extern __inline __m256i
949 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
950 _mm256_maskz_max_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
952 return (__m256i) __builtin_ia32_pmaxub256_mask ((__v32qi) __A,
953 (__v32qi) __B,
954 (__v32qi)
955 _mm256_setzero_si256 (),
956 (__mmask32) __M);
959 extern __inline __m256i
960 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
961 _mm256_mask_max_epu8 (__m256i __W, __mmask32 __M, __m256i __A,
962 __m256i __B)
964 return (__m256i) __builtin_ia32_pmaxub256_mask ((__v32qi) __A,
965 (__v32qi) __B,
966 (__v32qi) __W,
967 (__mmask32) __M);
970 extern __inline __m128i
971 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
972 _mm_maskz_max_epu8 (__mmask16 __M, __m128i __A, __m128i __B)
974 return (__m128i) __builtin_ia32_pmaxub128_mask ((__v16qi) __A,
975 (__v16qi) __B,
976 (__v16qi)
977 _mm_setzero_di (),
978 (__mmask16) __M);
981 extern __inline __m128i
982 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
983 _mm_mask_max_epu8 (__m128i __W, __mmask16 __M, __m128i __A,
984 __m128i __B)
986 return (__m128i) __builtin_ia32_pmaxub128_mask ((__v16qi) __A,
987 (__v16qi) __B,
988 (__v16qi) __W,
989 (__mmask16) __M);
992 extern __inline __m256i
993 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
994 _mm256_maskz_max_epi8 (__mmask32 __M, __m256i __A, __m256i __B)
996 return (__m256i) __builtin_ia32_pmaxsb256_mask ((__v32qi) __A,
997 (__v32qi) __B,
998 (__v32qi)
999 _mm256_setzero_si256 (),
1000 (__mmask32) __M);
1003 extern __inline __m256i
1004 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1005 _mm256_mask_max_epi8 (__m256i __W, __mmask32 __M, __m256i __A,
1006 __m256i __B)
1008 return (__m256i) __builtin_ia32_pmaxsb256_mask ((__v32qi) __A,
1009 (__v32qi) __B,
1010 (__v32qi) __W,
1011 (__mmask32) __M);
1014 extern __inline __m128i
1015 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1016 _mm_maskz_max_epi8 (__mmask16 __M, __m128i __A, __m128i __B)
1018 return (__m128i) __builtin_ia32_pmaxsb128_mask ((__v16qi) __A,
1019 (__v16qi) __B,
1020 (__v16qi)
1021 _mm_setzero_di (),
1022 (__mmask16) __M);
1025 extern __inline __m128i
1026 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1027 _mm_mask_max_epi8 (__m128i __W, __mmask16 __M, __m128i __A,
1028 __m128i __B)
1030 return (__m128i) __builtin_ia32_pmaxsb128_mask ((__v16qi) __A,
1031 (__v16qi) __B,
1032 (__v16qi) __W,
1033 (__mmask16) __M);
1036 extern __inline __m256i
1037 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1038 _mm256_maskz_min_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
1040 return (__m256i) __builtin_ia32_pminub256_mask ((__v32qi) __A,
1041 (__v32qi) __B,
1042 (__v32qi)
1043 _mm256_setzero_si256 (),
1044 (__mmask32) __M);
1047 extern __inline __m256i
1048 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1049 _mm256_mask_min_epu8 (__m256i __W, __mmask32 __M, __m256i __A,
1050 __m256i __B)
1052 return (__m256i) __builtin_ia32_pminub256_mask ((__v32qi) __A,
1053 (__v32qi) __B,
1054 (__v32qi) __W,
1055 (__mmask32) __M);
1058 extern __inline __m128i
1059 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1060 _mm_maskz_min_epu8 (__mmask16 __M, __m128i __A, __m128i __B)
1062 return (__m128i) __builtin_ia32_pminub128_mask ((__v16qi) __A,
1063 (__v16qi) __B,
1064 (__v16qi)
1065 _mm_setzero_di (),
1066 (__mmask16) __M);
1069 extern __inline __m128i
1070 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1071 _mm_mask_min_epu8 (__m128i __W, __mmask16 __M, __m128i __A,
1072 __m128i __B)
1074 return (__m128i) __builtin_ia32_pminub128_mask ((__v16qi) __A,
1075 (__v16qi) __B,
1076 (__v16qi) __W,
1077 (__mmask16) __M);
1080 extern __inline __m256i
1081 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1082 _mm256_maskz_min_epi8 (__mmask32 __M, __m256i __A, __m256i __B)
1084 return (__m256i) __builtin_ia32_pminsb256_mask ((__v32qi) __A,
1085 (__v32qi) __B,
1086 (__v32qi)
1087 _mm256_setzero_si256 (),
1088 (__mmask32) __M);
1091 extern __inline __m256i
1092 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1093 _mm256_mask_min_epi8 (__m256i __W, __mmask32 __M, __m256i __A,
1094 __m256i __B)
1096 return (__m256i) __builtin_ia32_pminsb256_mask ((__v32qi) __A,
1097 (__v32qi) __B,
1098 (__v32qi) __W,
1099 (__mmask32) __M);
1102 extern __inline __m128i
1103 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1104 _mm_maskz_min_epi8 (__mmask16 __M, __m128i __A, __m128i __B)
1106 return (__m128i) __builtin_ia32_pminsb128_mask ((__v16qi) __A,
1107 (__v16qi) __B,
1108 (__v16qi)
1109 _mm_setzero_di (),
1110 (__mmask16) __M);
1113 extern __inline __m128i
1114 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1115 _mm_mask_min_epi8 (__m128i __W, __mmask16 __M, __m128i __A,
1116 __m128i __B)
1118 return (__m128i) __builtin_ia32_pminsb128_mask ((__v16qi) __A,
1119 (__v16qi) __B,
1120 (__v16qi) __W,
1121 (__mmask16) __M);
1124 extern __inline __m256i
1125 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1126 _mm256_maskz_max_epi16 (__mmask16 __M, __m256i __A, __m256i __B)
1128 return (__m256i) __builtin_ia32_pmaxsw256_mask ((__v16hi) __A,
1129 (__v16hi) __B,
1130 (__v16hi)
1131 _mm256_setzero_si256 (),
1132 (__mmask16) __M);
1135 extern __inline __m256i
1136 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1137 _mm256_mask_max_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
1138 __m256i __B)
1140 return (__m256i) __builtin_ia32_pmaxsw256_mask ((__v16hi) __A,
1141 (__v16hi) __B,
1142 (__v16hi) __W,
1143 (__mmask16) __M);
1146 extern __inline __m128i
1147 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1148 _mm_maskz_max_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
1150 return (__m128i) __builtin_ia32_pmaxsw128_mask ((__v8hi) __A,
1151 (__v8hi) __B,
1152 (__v8hi)
1153 _mm_setzero_di (),
1154 (__mmask8) __M);
1157 extern __inline __m128i
1158 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1159 _mm_mask_max_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
1160 __m128i __B)
1162 return (__m128i) __builtin_ia32_pmaxsw128_mask ((__v8hi) __A,
1163 (__v8hi) __B,
1164 (__v8hi) __W,
1165 (__mmask8) __M);
1168 extern __inline __m256i
1169 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1170 _mm256_maskz_max_epu16 (__mmask16 __M, __m256i __A, __m256i __B)
1172 return (__m256i) __builtin_ia32_pmaxuw256_mask ((__v16hi) __A,
1173 (__v16hi) __B,
1174 (__v16hi)
1175 _mm256_setzero_si256 (),
1176 (__mmask16) __M);
1179 extern __inline __m256i
1180 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1181 _mm256_mask_max_epu16 (__m256i __W, __mmask16 __M, __m256i __A,
1182 __m256i __B)
1184 return (__m256i) __builtin_ia32_pmaxuw256_mask ((__v16hi) __A,
1185 (__v16hi) __B,
1186 (__v16hi) __W,
1187 (__mmask16) __M);
1190 extern __inline __m128i
1191 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1192 _mm_maskz_max_epu16 (__mmask8 __M, __m128i __A, __m128i __B)
1194 return (__m128i) __builtin_ia32_pmaxuw128_mask ((__v8hi) __A,
1195 (__v8hi) __B,
1196 (__v8hi)
1197 _mm_setzero_di (),
1198 (__mmask8) __M);
1201 extern __inline __m128i
1202 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1203 _mm_mask_max_epu16 (__m128i __W, __mmask8 __M, __m128i __A,
1204 __m128i __B)
1206 return (__m128i) __builtin_ia32_pmaxuw128_mask ((__v8hi) __A,
1207 (__v8hi) __B,
1208 (__v8hi) __W,
1209 (__mmask8) __M);
1212 extern __inline __m128i
1213 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1214 _mm_maskz_min_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
1216 return (__m128i) __builtin_ia32_pminsw128_mask ((__v8hi) __A,
1217 (__v8hi) __B,
1218 (__v8hi)
1219 _mm_setzero_di (),
1220 (__mmask8) __M);
1223 extern __inline __m128i
1224 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1225 _mm_mask_min_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
1226 __m128i __B)
1228 return (__m128i) __builtin_ia32_pminsw128_mask ((__v8hi) __A,
1229 (__v8hi) __B,
1230 (__v8hi) __W,
1231 (__mmask8) __M);
1234 #ifdef __OPTIMIZE__
1235 extern __inline __m256i
1236 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1237 _mm256_mask_alignr_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
1238 __m256i __B, const int __N)
1240 return (__m256i) __builtin_ia32_palignr256_mask ((__v4di) __A,
1241 (__v4di) __B,
1242 __N * 8,
1243 (__v4di) __W,
1244 (__mmask32) __U);
1247 extern __inline __m256i
1248 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1249 _mm256_maskz_alignr_epi8 (__mmask32 __U, __m256i __A, __m256i __B,
1250 const int __N)
1252 return (__m256i) __builtin_ia32_palignr256_mask ((__v4di) __A,
1253 (__v4di) __B,
1254 __N * 8,
1255 (__v4di)
1256 _mm256_setzero_si256 (),
1257 (__mmask32) __U);
1260 extern __inline __m128i
1261 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1262 _mm_mask_alignr_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
1263 __m128i __B, const int __N)
1265 return (__m128i) __builtin_ia32_palignr128_mask ((__v2di) __A,
1266 (__v2di) __B,
1267 __N * 8,
1268 (__v2di) __W,
1269 (__mmask16) __U);
1272 extern __inline __m128i
1273 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1274 _mm_maskz_alignr_epi8 (__mmask16 __U, __m128i __A, __m128i __B,
1275 const int __N)
1277 return (__m128i) __builtin_ia32_palignr128_mask ((__v2di) __A,
1278 (__v2di) __B,
1279 __N * 8,
1280 (__v2di)
1281 _mm_setzero_si128 (),
1282 (__mmask16) __U);
1285 extern __inline __m256i
1286 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1287 _mm256_dbsad_epu8 (__m256i __A, __m256i __B, const int __imm)
1289 return (__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi) __A,
1290 (__v32qi) __B,
1291 __imm,
1292 (__v16hi)
1293 _mm256_setzero_si256 (),
1294 (__mmask16) -1);
1297 extern __inline __m256i
1298 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1299 _mm256_mask_dbsad_epu8 (__m256i __W, __mmask16 __U, __m256i __A,
1300 __m256i __B, const int __imm)
1302 return (__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi) __A,
1303 (__v32qi) __B,
1304 __imm,
1305 (__v16hi) __W,
1306 (__mmask16) __U);
1309 extern __inline __m256i
1310 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1311 _mm256_maskz_dbsad_epu8 (__mmask16 __U, __m256i __A, __m256i __B,
1312 const int __imm)
1314 return (__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi) __A,
1315 (__v32qi) __B,
1316 __imm,
1317 (__v16hi)
1318 _mm256_setzero_si256 (),
1319 (__mmask16) __U);
1322 extern __inline __m128i
1323 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1324 _mm_dbsad_epu8 (__m128i __A, __m128i __B, const int __imm)
1326 return (__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi) __A,
1327 (__v16qi) __B,
1328 __imm,
1329 (__v8hi)
1330 _mm_setzero_hi (),
1331 (__mmask8) -1);
1334 extern __inline __m128i
1335 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1336 _mm_mask_dbsad_epu8 (__m128i __W, __mmask8 __U, __m128i __A,
1337 __m128i __B, const int __imm)
1339 return (__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi) __A,
1340 (__v16qi) __B,
1341 __imm,
1342 (__v8hi) __W,
1343 (__mmask8) __U);
1346 extern __inline __m128i
1347 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1348 _mm_maskz_dbsad_epu8 (__mmask8 __U, __m128i __A, __m128i __B,
1349 const int __imm)
1351 return (__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi) __A,
1352 (__v16qi) __B,
1353 __imm,
1354 (__v8hi)
1355 _mm_setzero_si128 (),
1356 (__mmask8) __U);
1359 extern __inline __m128i
1360 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1361 _mm_mask_blend_epi16 (__mmask8 __U, __m128i __A, __m128i __W)
1363 return (__m128i) __builtin_ia32_blendmw_128_mask ((__v8hi) __A,
1364 (__v8hi) __W,
1365 (__mmask8) __U);
1368 extern __inline __m128i
1369 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1370 _mm_mask_blend_epi8 (__mmask16 __U, __m128i __A, __m128i __W)
1372 return (__m128i) __builtin_ia32_blendmb_128_mask ((__v16qi) __A,
1373 (__v16qi) __W,
1374 (__mmask16) __U);
1377 extern __inline __m256i
1378 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1379 _mm256_mask_blend_epi16 (__mmask16 __U, __m256i __A, __m256i __W)
1381 return (__m256i) __builtin_ia32_blendmw_256_mask ((__v16hi) __A,
1382 (__v16hi) __W,
1383 (__mmask16) __U);
1386 extern __inline __m256i
1387 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1388 _mm256_mask_blend_epi8 (__mmask32 __U, __m256i __A, __m256i __W)
1390 return (__m256i) __builtin_ia32_blendmb_256_mask ((__v32qi) __A,
1391 (__v32qi) __W,
1392 (__mmask32) __U);
1395 extern __inline __mmask8
1396 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1397 _mm_mask_cmp_epi16_mask (__mmask8 __U, __m128i __X, __m128i __Y,
1398 const int __P)
1400 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
1401 (__v8hi) __Y, __P,
1402 (__mmask8) __U);
1405 extern __inline __mmask8
1406 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1407 _mm_cmp_epi16_mask (__m128i __X, __m128i __Y, const int __P)
1409 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
1410 (__v8hi) __Y, __P,
1411 (__mmask8) -1);
1414 extern __inline __mmask16
1415 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1416 _mm256_mask_cmp_epi16_mask (__mmask16 __U, __m256i __X, __m256i __Y,
1417 const int __P)
1419 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
1420 (__v16hi) __Y, __P,
1421 (__mmask16) __U);
1424 extern __inline __mmask16
1425 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1426 _mm256_cmp_epi16_mask (__m256i __X, __m256i __Y, const int __P)
1428 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
1429 (__v16hi) __Y, __P,
1430 (__mmask16) -1);
1433 extern __inline __mmask16
1434 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1435 _mm_mask_cmp_epi8_mask (__mmask8 __U, __m128i __X, __m128i __Y,
1436 const int __P)
1438 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
1439 (__v16qi) __Y, __P,
1440 (__mmask16) __U);
1443 extern __inline __mmask16
1444 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1445 _mm_cmp_epi8_mask (__m128i __X, __m128i __Y, const int __P)
1447 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
1448 (__v16qi) __Y, __P,
1449 (__mmask16) -1);
1452 extern __inline __mmask32
1453 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1454 _mm256_mask_cmp_epi8_mask (__mmask16 __U, __m256i __X, __m256i __Y,
1455 const int __P)
1457 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
1458 (__v32qi) __Y, __P,
1459 (__mmask32) __U);
1462 extern __inline __mmask16
1463 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1464 _mm256_cmp_epi8_mask (__m256i __X, __m256i __Y, const int __P)
1466 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
1467 (__v32qi) __Y, __P,
1468 (__mmask32) -1);
1471 extern __inline __mmask8
1472 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1473 _mm_mask_cmp_epu16_mask (__mmask8 __U, __m128i __X, __m128i __Y,
1474 const int __P)
1476 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
1477 (__v8hi) __Y, __P,
1478 (__mmask8) __U);
1481 extern __inline __mmask8
1482 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1483 _mm_cmp_epu16_mask (__m128i __X, __m128i __Y, const int __P)
1485 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
1486 (__v8hi) __Y, __P,
1487 (__mmask8) -1);
1490 extern __inline __mmask16
1491 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1492 _mm256_mask_cmp_epu16_mask (__mmask16 __U, __m256i __X, __m256i __Y,
1493 const int __P)
1495 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
1496 (__v16hi) __Y, __P,
1497 (__mmask16) __U);
1500 extern __inline __mmask16
1501 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1502 _mm256_cmp_epu16_mask (__m256i __X, __m256i __Y, const int __P)
1504 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
1505 (__v16hi) __Y, __P,
1506 (__mmask16) -1);
1509 extern __inline __mmask16
1510 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1511 _mm_mask_cmp_epu8_mask (__mmask8 __U, __m128i __X, __m128i __Y,
1512 const int __P)
1514 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
1515 (__v16qi) __Y, __P,
1516 (__mmask16) __U);
1519 extern __inline __mmask16
1520 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1521 _mm_cmp_epu8_mask (__m128i __X, __m128i __Y, const int __P)
1523 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
1524 (__v16qi) __Y, __P,
1525 (__mmask16) -1);
1528 extern __inline __mmask32
1529 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1530 _mm256_mask_cmp_epu8_mask (__mmask16 __U, __m256i __X, __m256i __Y,
1531 const int __P)
1533 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
1534 (__v32qi) __Y, __P,
1535 (__mmask32) __U);
1538 extern __inline __mmask16
1539 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1540 _mm256_cmp_epu8_mask (__m256i __X, __m256i __Y, const int __P)
1542 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
1543 (__v32qi) __Y, __P,
1544 (__mmask32) -1);
1547 extern __inline __m256i
1548 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1549 _mm256_mask_srli_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
1550 const int __imm)
1552 return (__m256i) __builtin_ia32_psrlwi256_mask ((__v16hi) __A, __imm,
1553 (__v16hi) __W,
1554 (__mmask16) __U);
1557 extern __inline __m256i
1558 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1559 _mm256_maskz_srli_epi16 (__mmask16 __U, __m256i __A, const int __imm)
1561 return (__m256i) __builtin_ia32_psrlwi256_mask ((__v16hi) __A, __imm,
1562 (__v16hi)
1563 _mm256_setzero_si256 (),
1564 (__mmask16) __U);
1567 extern __inline __m128i
1568 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1569 _mm_mask_srli_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
1570 const int __imm)
1572 return (__m128i) __builtin_ia32_psrlwi128_mask ((__v8hi) __A, __imm,
1573 (__v8hi) __W,
1574 (__mmask8) __U);
1577 extern __inline __m128i
1578 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1579 _mm_maskz_srli_epi16 (__mmask8 __U, __m128i __A, const int __imm)
1581 return (__m128i) __builtin_ia32_psrlwi128_mask ((__v8hi) __A, __imm,
1582 (__v8hi)
1583 _mm_setzero_si128 (),
1584 (__mmask8) __U);
1587 extern __inline __m256i
1588 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1589 _mm256_mask_shufflehi_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
1590 const int __imm)
1592 return (__m256i) __builtin_ia32_pshufhw256_mask ((__v16hi) __A,
1593 __imm,
1594 (__v16hi) __W,
1595 (__mmask16) __U);
1598 extern __inline __m256i
1599 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1600 _mm256_maskz_shufflehi_epi16 (__mmask16 __U, __m256i __A,
1601 const int __imm)
1603 return (__m256i) __builtin_ia32_pshufhw256_mask ((__v16hi) __A,
1604 __imm,
1605 (__v16hi)
1606 _mm256_setzero_si256 (),
1607 (__mmask16) __U);
1610 extern __inline __m128i
1611 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1612 _mm_mask_shufflehi_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
1613 const int __imm)
1615 return (__m128i) __builtin_ia32_pshufhw128_mask ((__v8hi) __A, __imm,
1616 (__v8hi) __W,
1617 (__mmask8) __U);
1620 extern __inline __m128i
1621 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1622 _mm_maskz_shufflehi_epi16 (__mmask8 __U, __m128i __A, const int __imm)
1624 return (__m128i) __builtin_ia32_pshufhw128_mask ((__v8hi) __A, __imm,
1625 (__v8hi)
1626 _mm_setzero_hi (),
1627 (__mmask8) __U);
1630 extern __inline __m256i
1631 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1632 _mm256_mask_shufflelo_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
1633 const int __imm)
1635 return (__m256i) __builtin_ia32_pshuflw256_mask ((__v16hi) __A,
1636 __imm,
1637 (__v16hi) __W,
1638 (__mmask16) __U);
1641 extern __inline __m256i
1642 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1643 _mm256_maskz_shufflelo_epi16 (__mmask16 __U, __m256i __A,
1644 const int __imm)
1646 return (__m256i) __builtin_ia32_pshuflw256_mask ((__v16hi) __A,
1647 __imm,
1648 (__v16hi)
1649 _mm256_setzero_si256 (),
1650 (__mmask16) __U);
1653 extern __inline __m128i
1654 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1655 _mm_mask_shufflelo_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
1656 const int __imm)
1658 return (__m128i) __builtin_ia32_pshuflw128_mask ((__v8hi) __A, __imm,
1659 (__v8hi) __W,
1660 (__mmask8) __U);
1663 extern __inline __m128i
1664 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1665 _mm_maskz_shufflelo_epi16 (__mmask8 __U, __m128i __A, const int __imm)
1667 return (__m128i) __builtin_ia32_pshuflw128_mask ((__v8hi) __A, __imm,
1668 (__v8hi)
1669 _mm_setzero_hi (),
1670 (__mmask8) __U);
1673 extern __inline __m256i
1674 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1675 _mm256_mask_srai_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
1676 const int __imm)
1678 return (__m256i) __builtin_ia32_psrawi256_mask ((__v16hi) __A, __imm,
1679 (__v16hi) __W,
1680 (__mmask16) __U);
1683 extern __inline __m256i
1684 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1685 _mm256_maskz_srai_epi16 (__mmask16 __U, __m256i __A, const int __imm)
1687 return (__m256i) __builtin_ia32_psrawi256_mask ((__v16hi) __A, __imm,
1688 (__v16hi)
1689 _mm256_setzero_si256 (),
1690 (__mmask16) __U);
1693 extern __inline __m128i
1694 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1695 _mm_mask_srai_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
1696 const int __imm)
1698 return (__m128i) __builtin_ia32_psrawi128_mask ((__v8hi) __A, __imm,
1699 (__v8hi) __W,
1700 (__mmask8) __U);
1703 extern __inline __m128i
1704 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1705 _mm_maskz_srai_epi16 (__mmask8 __U, __m128i __A, const int __imm)
1707 return (__m128i) __builtin_ia32_psrawi128_mask ((__v8hi) __A, __imm,
1708 (__v8hi)
1709 _mm_setzero_si128 (),
1710 (__mmask8) __U);
1713 extern __inline __m256i
1714 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1715 _mm256_mask_slli_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
1716 int __B)
1718 return (__m256i) __builtin_ia32_psllwi256_mask ((__v16hi) __A, __B,
1719 (__v16hi) __W,
1720 (__mmask16) __U);
1723 extern __inline __m256i
1724 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1725 _mm256_maskz_slli_epi16 (__mmask16 __U, __m256i __A, int __B)
1727 return (__m256i) __builtin_ia32_psllwi256_mask ((__v16hi) __A, __B,
1728 (__v16hi)
1729 _mm256_setzero_si256 (),
1730 (__mmask16) __U);
1733 extern __inline __m128i
1734 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1735 _mm_mask_slli_epi16 (__m128i __W, __mmask8 __U, __m128i __A, int __B)
1737 return (__m128i) __builtin_ia32_psllwi128_mask ((__v8hi) __A, __B,
1738 (__v8hi) __W,
1739 (__mmask8) __U);
1742 extern __inline __m128i
1743 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1744 _mm_maskz_slli_epi16 (__mmask8 __U, __m128i __A, int __B)
1746 return (__m128i) __builtin_ia32_psllwi128_mask ((__v8hi) __A, __B,
1747 (__v8hi)
1748 _mm_setzero_si128 (),
1749 (__mmask8) __U);
1752 #else
1753 #define _mm256_mask_alignr_epi8(W, U, X, Y, N) \
1754 ((__m256i) __builtin_ia32_palignr256_mask ((__v4di)(__m256i)(X), \
1755 (__v4di)(__m256i)(Y), (int)(N * 8), \
1756 (__v4di)(__m256i)(X), (__mmask32)(U)))
1758 #define _mm256_mask_srli_epi16(W, U, A, B) \
1759 ((__m256i) __builtin_ia32_psrlwi256_mask ((__v16hi)(__m256i)(A), \
1760 (int)(B), (__v16hi)(__m256i)(W), (__mmask16)(U)))
1762 #define _mm256_maskz_srli_epi16(U, A, B) \
1763 ((__m256i) __builtin_ia32_psrlwi256_mask ((__v16hi)(__m256i)(A), \
1764 (int)(B), (__v16hi)_mm256_setzero_si256 (), (__mmask16)(U)))
1766 #define _mm_mask_srli_epi16(W, U, A, B) \
1767 ((__m128i) __builtin_ia32_psrlwi128_mask ((__v8hi)(__m128i)(A), \
1768 (int)(B), (__v8hi)(__m128i)(W), (__mmask8)(U)))
1770 #define _mm_maskz_srli_epi16(U, A, B) \
1771 ((__m128i) __builtin_ia32_psrlwi128_mask ((__v8hi)(__m128i)(A), \
1772 (int)(B), (__v8hi)_mm_setzero_si128(), (__mmask8)(U)))
1774 #define _mm256_mask_srai_epi16(W, U, A, B) \
1775 ((__m256i) __builtin_ia32_psrawi256_mask ((__v16hi)(__m256i)(A), \
1776 (int)(B), (__v16hi)(__m256i)(W), (__mmask16)(U)))
1778 #define _mm256_maskz_srai_epi16(U, A, B) \
1779 ((__m256i) __builtin_ia32_psrawi256_mask ((__v16hi)(__m256i)(A), \
1780 (int)(B), (__v16hi)_mm256_setzero_si256 (), (__mmask16)(U)))
1782 #define _mm_mask_srai_epi16(W, U, A, B) \
1783 ((__m128i) __builtin_ia32_psrawi128_mask ((__v8hi)(__m128i)(A), \
1784 (int)(B), (__v8hi)(__m128i)(W), (__mmask8)(U)))
1786 #define _mm_maskz_srai_epi16(U, A, B) \
1787 ((__m128i) __builtin_ia32_psrawi128_mask ((__v8hi)(__m128i)(A), \
1788 (int)(B), (__v8hi)_mm_setzero_si128(), (__mmask8)(U)))
1790 #define _mm256_mask_shufflehi_epi16(W, U, A, B) \
1791 ((__m256i) __builtin_ia32_pshufhw256_mask ((__v16hi)(__m256i)(A), (int)(B), \
1792 (__v16hi)(__m256i)(W), \
1793 (__mmask16)(U)))
1795 #define _mm256_maskz_shufflehi_epi16(U, A, B) \
1796 ((__m256i) __builtin_ia32_pshufhw256_mask ((__v16hi)(__m256i)(A), (int)(B), \
1797 (__v16hi)(__m256i)_mm256_setzero_si256 (), \
1798 (__mmask16)(U)))
1800 #define _mm_mask_shufflehi_epi16(W, U, A, B) \
1801 ((__m128i) __builtin_ia32_pshufhw128_mask ((__v8hi)(__m128i)(A), (int)(B), \
1802 (__v8hi)(__m128i)(W), \
1803 (__mmask8)(U)))
1805 #define _mm_maskz_shufflehi_epi16(U, A, B) \
1806 ((__m128i) __builtin_ia32_pshufhw128_mask ((__v8hi)(__m128i)(A), (int)(B), \
1807 (__v8hi)(__m128i)_mm_setzero_hi(), \
1808 (__mmask8)(U)))
1810 #define _mm256_mask_shufflelo_epi16(W, U, A, B) \
1811 ((__m256i) __builtin_ia32_pshuflw256_mask ((__v16hi)(__m256i)(A), (int)(B), \
1812 (__v16hi)(__m256i)(W), \
1813 (__mmask16)(U)))
1815 #define _mm256_maskz_shufflelo_epi16(U, A, B) \
1816 ((__m256i) __builtin_ia32_pshuflw256_mask ((__v16hi)(__m256i)(A), (int)(B), \
1817 (__v16hi)(__m256i)_mm256_setzero_si256 (), \
1818 (__mmask16)(U)))
1820 #define _mm_mask_shufflelo_epi16(W, U, A, B) \
1821 ((__m128i) __builtin_ia32_pshuflw128_mask ((__v8hi)(__m128i)(A), (int)(B), \
1822 (__v8hi)(__m128i)(W), \
1823 (__mmask8)(U)))
1825 #define _mm_maskz_shufflelo_epi16(U, A, B) \
1826 ((__m128i) __builtin_ia32_pshuflw128_mask ((__v8hi)(__m128i)(A), (int)(B), \
1827 (__v8hi)(__m128i)_mm_setzero_hi(), \
1828 (__mmask8)(U)))
1830 #define _mm256_maskz_alignr_epi8(U, X, Y, N) \
1831 ((__m256i) __builtin_ia32_palignr256_mask ((__v4di)(__m256i)(X), \
1832 (__v4di)(__m256i)(Y), (int)(N * 8), \
1833 (__v4di)(__m256i)_mm256_setzero_si256 (), \
1834 (__mmask32)(U)))
1836 #define _mm_mask_alignr_epi8(W, U, X, Y, N) \
1837 ((__m128i) __builtin_ia32_palignr128_mask ((__v2di)(__m128i)(X), \
1838 (__v2di)(__m128i)(Y), (int)(N * 8), \
1839 (__v2di)(__m128i)(X), (__mmask16)(U)))
1841 #define _mm_maskz_alignr_epi8(U, X, Y, N) \
1842 ((__m128i) __builtin_ia32_palignr128_mask ((__v2di)(__m128i)(X), \
1843 (__v2di)(__m128i)(Y), (int)(N * 8), \
1844 (__v2di)(__m128i)_mm_setzero_di(), \
1845 (__mmask16)(U)))
1847 #define _mm_mask_slli_epi16(W, U, X, C) \
1848 ((__m128i)__builtin_ia32_psllwi128_mask ((__v8hi)(__m128i)(X), (int)(C),\
1849 (__v8hi)(__m128i)(W),\
1850 (__mmask8)(U)))
1852 #define _mm_maskz_slli_epi16(U, X, C) \
1853 ((__m128i)__builtin_ia32_psllwi128_mask ((__v8hi)(__m128i)(X), (int)(C),\
1854 (__v8hi)(__m128i)_mm_setzero_hi(),\
1855 (__mmask8)(U)))
1857 #define _mm256_dbsad_epu8(X, Y, C) \
1858 ((__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi)(__m256i) (X), \
1859 (__v32qi)(__m256i) (Y), (int) (C), \
1860 (__v16hi)(__m256i)_mm256_setzero_si256(),\
1861 (__mmask16)-1))
1863 #define _mm256_mask_slli_epi16(W, U, X, C) \
1864 ((__m256i)__builtin_ia32_psllwi256_mask ((__v16hi)(__m256i)(X), (int)(C),\
1865 (__v16hi)(__m256i)(W),\
1866 (__mmask16)(U)))
1868 #define _mm256_maskz_slli_epi16(U, X, C) \
1869 ((__m256i)__builtin_ia32_psllwi256_mask ((__v16hi)(__m256i)(X), (int)(C),\
1870 (__v16hi)(__m256i)_mm256_setzero_si256 (),\
1871 (__mmask16)(U)))
1873 #define _mm256_mask_dbsad_epu8(W, U, X, Y, C) \
1874 ((__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi)(__m256i) (X), \
1875 (__v32qi)(__m256i) (Y), (int) (C), \
1876 (__v16hi)(__m256i)(W), \
1877 (__mmask16)(U)))
1879 #define _mm256_maskz_dbsad_epu8(U, X, Y, C) \
1880 ((__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi)(__m256i) (X), \
1881 (__v32qi)(__m256i) (Y), (int) (C), \
1882 (__v16hi)(__m256i)_mm256_setzero_si256(),\
1883 (__mmask16)(U)))
1885 #define _mm_dbsad_epu8(X, Y, C) \
1886 ((__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi)(__m128i) (X), \
1887 (__v16qi)(__m128i) (Y), (int) (C), \
1888 (__v8hi)(__m128i)_mm_setzero_si128(), \
1889 (__mmask8)-1))
1891 #define _mm_mask_dbsad_epu8(W, U, X, Y, C) \
1892 ((__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi)(__m128i) (X), \
1893 (__v16qi)(__m128i) (Y), (int) (C), \
1894 (__v8hi)(__m128i)(W), \
1895 (__mmask8)(U)))
1897 #define _mm_maskz_dbsad_epu8(U, X, Y, C) \
1898 ((__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi)(__m128i) (X), \
1899 (__v16qi)(__m128i) (Y), (int) (C), \
1900 (__v8hi)(__m128i)_mm_setzero_si128(), \
1901 (__mmask8)(U)))
1903 #define _mm_mask_blend_epi16(__U, __A, __W) \
1904 ((__m128i) __builtin_ia32_blendmw_128_mask ((__v8hi) (__A), \
1905 (__v8hi) (__W), \
1906 (__mmask8) (__U)))
1908 #define _mm_mask_blend_epi8(__U, __A, __W) \
1909 ((__m128i) __builtin_ia32_blendmb_128_mask ((__v16qi) (__A), \
1910 (__v16qi) (__W), \
1911 (__mmask16) (__U)))
1913 #define _mm256_mask_blend_epi16(__U, __A, __W) \
1914 ((__m256i) __builtin_ia32_blendmw_256_mask ((__v16hi) (__A), \
1915 (__v16hi) (__W), \
1916 (__mmask16) (__U)))
1918 #define _mm256_mask_blend_epi8(__U, __A, __W) \
1919 ((__m256i) __builtin_ia32_blendmb_256_mask ((__v32qi) (__A), \
1920 (__v32qi) (__W), \
1921 (__mmask32) (__U)))
1923 #define _mm_cmp_epi16_mask(X, Y, P) \
1924 ((__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi)(__m128i)(X), \
1925 (__v8hi)(__m128i)(Y), (int)(P),\
1926 (__mmask8)(-1)))
1928 #define _mm_cmp_epi8_mask(X, Y, P) \
1929 ((__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi)(__m128i)(X), \
1930 (__v16qi)(__m128i)(Y), (int)(P),\
1931 (__mmask16)(-1)))
1933 #define _mm256_cmp_epi16_mask(X, Y, P) \
1934 ((__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi)(__m256i)(X), \
1935 (__v16hi)(__m256i)(Y), (int)(P),\
1936 (__mmask16)(-1)))
1938 #define _mm256_cmp_epi8_mask(X, Y, P) \
1939 ((__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi)(__m256i)(X), \
1940 (__v32qi)(__m256i)(Y), (int)(P),\
1941 (__mmask32)(-1)))
1943 #define _mm_cmp_epu16_mask(X, Y, P) \
1944 ((__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi)(__m128i)(X), \
1945 (__v8hi)(__m128i)(Y), (int)(P),\
1946 (__mmask8)(-1)))
1948 #define _mm_cmp_epu8_mask(X, Y, P) \
1949 ((__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi)(__m128i)(X), \
1950 (__v16qi)(__m128i)(Y), (int)(P),\
1951 (__mmask16)(-1)))
1953 #define _mm256_cmp_epu16_mask(X, Y, P) \
1954 ((__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi)(__m256i)(X), \
1955 (__v16hi)(__m256i)(Y), (int)(P),\
1956 (__mmask16)(-1)))
1958 #define _mm256_cmp_epu8_mask(X, Y, P) \
1959 ((__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi)(__m256i)(X), \
1960 (__v32qi)(__m256i)(Y), (int)(P),\
1961 (__mmask32)-1))
1963 #define _mm_mask_cmp_epi16_mask(M, X, Y, P) \
1964 ((__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi)(__m128i)(X), \
1965 (__v8hi)(__m128i)(Y), (int)(P),\
1966 (__mmask16)(M)))
1968 #define _mm_mask_cmp_epi8_mask(M, X, Y, P) \
1969 ((__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi)(__m128i)(X), \
1970 (__v16qi)(__m128i)(Y), (int)(P),\
1971 (__mmask16)(M)))
1973 #define _mm256_mask_cmp_epi16_mask(M, X, Y, P) \
1974 ((__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi)(__m256i)(X), \
1975 (__v16hi)(__m256i)(Y), (int)(P),\
1976 (__mmask16)(M)))
1978 #define _mm256_mask_cmp_epi8_mask(M, X, Y, P) \
1979 ((__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi)(__m256i)(X), \
1980 (__v32qi)(__m256i)(Y), (int)(P),\
1981 (__mmask32)(M)))
1983 #define _mm_mask_cmp_epu16_mask(M, X, Y, P) \
1984 ((__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi)(__m128i)(X), \
1985 (__v8hi)(__m128i)(Y), (int)(P),\
1986 (__mmask8)(M)))
1988 #define _mm_mask_cmp_epu8_mask(M, X, Y, P) \
1989 ((__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi)(__m128i)(X), \
1990 (__v16qi)(__m128i)(Y), (int)(P),\
1991 (__mmask16)(M)))
1993 #define _mm256_mask_cmp_epu16_mask(M, X, Y, P) \
1994 ((__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi)(__m256i)(X), \
1995 (__v16hi)(__m256i)(Y), (int)(P),\
1996 (__mmask16)(M)))
1998 #define _mm256_mask_cmp_epu8_mask(M, X, Y, P) \
1999 ((__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi)(__m256i)(X), \
2000 (__v32qi)(__m256i)(Y), (int)(P),\
2001 (__mmask32)M))
2002 #endif
2004 extern __inline __mmask32
2005 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2006 _mm256_cmpneq_epi8_mask (__m256i __X, __m256i __Y)
2008 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
2009 (__v32qi) __Y, 4,
2010 (__mmask32) -1);
2013 extern __inline __mmask32
2014 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2015 _mm256_cmplt_epi8_mask (__m256i __X, __m256i __Y)
2017 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
2018 (__v32qi) __Y, 1,
2019 (__mmask32) -1);
2022 extern __inline __mmask32
2023 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2024 _mm256_cmpge_epi8_mask (__m256i __X, __m256i __Y)
2026 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
2027 (__v32qi) __Y, 5,
2028 (__mmask32) -1);
2031 extern __inline __mmask32
2032 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2033 _mm256_cmple_epi8_mask (__m256i __X, __m256i __Y)
2035 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
2036 (__v32qi) __Y, 2,
2037 (__mmask32) -1);
2040 extern __inline __mmask16
2041 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2042 _mm256_cmpneq_epi16_mask (__m256i __X, __m256i __Y)
2044 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
2045 (__v16hi) __Y, 4,
2046 (__mmask16) -1);
2049 extern __inline __mmask16
2050 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2051 _mm256_cmplt_epi16_mask (__m256i __X, __m256i __Y)
2053 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
2054 (__v16hi) __Y, 1,
2055 (__mmask16) -1);
2058 extern __inline __mmask16
2059 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2060 _mm256_cmpge_epi16_mask (__m256i __X, __m256i __Y)
2062 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
2063 (__v16hi) __Y, 5,
2064 (__mmask16) -1);
2067 extern __inline __mmask16
2068 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2069 _mm256_cmple_epi16_mask (__m256i __X, __m256i __Y)
2071 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
2072 (__v16hi) __Y, 2,
2073 (__mmask16) -1);
2076 extern __inline __mmask16
2077 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2078 _mm_cmpneq_epu8_mask (__m128i __X, __m128i __Y)
2080 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
2081 (__v16qi) __Y, 4,
2082 (__mmask16) -1);
2085 extern __inline __mmask16
2086 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2087 _mm_cmplt_epu8_mask (__m128i __X, __m128i __Y)
2089 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
2090 (__v16qi) __Y, 1,
2091 (__mmask16) -1);
2094 extern __inline __mmask16
2095 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2096 _mm_cmpge_epu8_mask (__m128i __X, __m128i __Y)
2098 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
2099 (__v16qi) __Y, 5,
2100 (__mmask16) -1);
2103 extern __inline __mmask16
2104 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2105 _mm_cmple_epu8_mask (__m128i __X, __m128i __Y)
2107 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
2108 (__v16qi) __Y, 2,
2109 (__mmask16) -1);
2112 extern __inline __mmask8
2113 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2114 _mm_cmpneq_epu16_mask (__m128i __X, __m128i __Y)
2116 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
2117 (__v8hi) __Y, 4,
2118 (__mmask8) -1);
2121 extern __inline __mmask8
2122 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2123 _mm_cmplt_epu16_mask (__m128i __X, __m128i __Y)
2125 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
2126 (__v8hi) __Y, 1,
2127 (__mmask8) -1);
2130 extern __inline __mmask8
2131 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2132 _mm_cmpge_epu16_mask (__m128i __X, __m128i __Y)
2134 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
2135 (__v8hi) __Y, 5,
2136 (__mmask8) -1);
2139 extern __inline __mmask8
2140 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2141 _mm_cmple_epu16_mask (__m128i __X, __m128i __Y)
2143 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
2144 (__v8hi) __Y, 2,
2145 (__mmask8) -1);
2148 extern __inline __mmask16
2149 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2150 _mm_cmpneq_epi8_mask (__m128i __X, __m128i __Y)
2152 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
2153 (__v16qi) __Y, 4,
2154 (__mmask16) -1);
2157 extern __inline __mmask16
2158 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2159 _mm_cmplt_epi8_mask (__m128i __X, __m128i __Y)
2161 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
2162 (__v16qi) __Y, 1,
2163 (__mmask16) -1);
2166 extern __inline __mmask16
2167 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2168 _mm_cmpge_epi8_mask (__m128i __X, __m128i __Y)
2170 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
2171 (__v16qi) __Y, 5,
2172 (__mmask16) -1);
2175 extern __inline __mmask16
2176 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2177 _mm_cmple_epi8_mask (__m128i __X, __m128i __Y)
2179 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
2180 (__v16qi) __Y, 2,
2181 (__mmask16) -1);
2184 extern __inline __mmask8
2185 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2186 _mm_cmpneq_epi16_mask (__m128i __X, __m128i __Y)
2188 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
2189 (__v8hi) __Y, 4,
2190 (__mmask8) -1);
2193 extern __inline __mmask8
2194 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2195 _mm_cmplt_epi16_mask (__m128i __X, __m128i __Y)
2197 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
2198 (__v8hi) __Y, 1,
2199 (__mmask8) -1);
2202 extern __inline __mmask8
2203 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2204 _mm_cmpge_epi16_mask (__m128i __X, __m128i __Y)
2206 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
2207 (__v8hi) __Y, 5,
2208 (__mmask8) -1);
2211 extern __inline __mmask8
2212 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2213 _mm_cmple_epi16_mask (__m128i __X, __m128i __Y)
2215 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
2216 (__v8hi) __Y, 2,
2217 (__mmask8) -1);
2220 extern __inline __m256i
2221 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2222 _mm256_mask_mulhrs_epi16 (__m256i __W, __mmask16 __U, __m256i __X,
2223 __m256i __Y)
2225 return (__m256i) __builtin_ia32_pmulhrsw256_mask ((__v16hi) __X,
2226 (__v16hi) __Y,
2227 (__v16hi) __W,
2228 (__mmask16) __U);
2231 extern __inline __m256i
2232 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2233 _mm256_maskz_mulhrs_epi16 (__mmask16 __U, __m256i __X, __m256i __Y)
2235 return (__m256i) __builtin_ia32_pmulhrsw256_mask ((__v16hi) __X,
2236 (__v16hi) __Y,
2237 (__v16hi)
2238 _mm256_setzero_si256 (),
2239 (__mmask16) __U);
2242 extern __inline __m256i
2243 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2244 _mm256_mask_mulhi_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
2245 __m256i __B)
2247 return (__m256i) __builtin_ia32_pmulhuw256_mask ((__v16hi) __A,
2248 (__v16hi) __B,
2249 (__v16hi) __W,
2250 (__mmask16) __U);
2253 extern __inline __m256i
2254 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2255 _mm256_maskz_mulhi_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
2257 return (__m256i) __builtin_ia32_pmulhuw256_mask ((__v16hi) __A,
2258 (__v16hi) __B,
2259 (__v16hi)
2260 _mm256_setzero_si256 (),
2261 (__mmask16) __U);
2264 extern __inline __m256i
2265 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2266 _mm256_mask_mulhi_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2267 __m256i __B)
2269 return (__m256i) __builtin_ia32_pmulhw256_mask ((__v16hi) __A,
2270 (__v16hi) __B,
2271 (__v16hi) __W,
2272 (__mmask16) __U);
2275 extern __inline __m256i
2276 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2277 _mm256_maskz_mulhi_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2279 return (__m256i) __builtin_ia32_pmulhw256_mask ((__v16hi) __A,
2280 (__v16hi) __B,
2281 (__v16hi)
2282 _mm256_setzero_si256 (),
2283 (__mmask16) __U);
2286 extern __inline __m128i
2287 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2288 _mm_mask_mulhi_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
2289 __m128i __B)
2291 return (__m128i) __builtin_ia32_pmulhw128_mask ((__v8hi) __A,
2292 (__v8hi) __B,
2293 (__v8hi) __W,
2294 (__mmask8) __U);
2297 extern __inline __m128i
2298 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2299 _mm_maskz_mulhi_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
2301 return (__m128i) __builtin_ia32_pmulhw128_mask ((__v8hi) __A,
2302 (__v8hi) __B,
2303 (__v8hi)
2304 _mm_setzero_hi (),
2305 (__mmask8) __U);
2308 extern __inline __m128i
2309 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2310 _mm_mask_mulhi_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
2311 __m128i __B)
2313 return (__m128i) __builtin_ia32_pmulhuw128_mask ((__v8hi) __A,
2314 (__v8hi) __B,
2315 (__v8hi) __W,
2316 (__mmask8) __U);
2319 extern __inline __m128i
2320 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2321 _mm_maskz_mulhi_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
2323 return (__m128i) __builtin_ia32_pmulhuw128_mask ((__v8hi) __A,
2324 (__v8hi) __B,
2325 (__v8hi)
2326 _mm_setzero_hi (),
2327 (__mmask8) __U);
2330 extern __inline __m128i
2331 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2332 _mm_mask_mulhrs_epi16 (__m128i __W, __mmask8 __U, __m128i __X,
2333 __m128i __Y)
2335 return (__m128i) __builtin_ia32_pmulhrsw128_mask ((__v8hi) __X,
2336 (__v8hi) __Y,
2337 (__v8hi) __W,
2338 (__mmask8) __U);
2341 extern __inline __m128i
2342 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2343 _mm_maskz_mulhrs_epi16 (__mmask8 __U, __m128i __X, __m128i __Y)
2345 return (__m128i) __builtin_ia32_pmulhrsw128_mask ((__v8hi) __X,
2346 (__v8hi) __Y,
2347 (__v8hi)
2348 _mm_setzero_hi (),
2349 (__mmask8) __U);
2352 extern __inline __m256i
2353 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2354 _mm256_mask_mullo_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2355 __m256i __B)
2357 return (__m256i) __builtin_ia32_pmullw256_mask ((__v16hi) __A,
2358 (__v16hi) __B,
2359 (__v16hi) __W,
2360 (__mmask16) __U);
2363 extern __inline __m256i
2364 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2365 _mm256_maskz_mullo_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2367 return (__m256i) __builtin_ia32_pmullw256_mask ((__v16hi) __A,
2368 (__v16hi) __B,
2369 (__v16hi)
2370 _mm256_setzero_si256 (),
2371 (__mmask16) __U);
2374 extern __inline __m128i
2375 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2376 _mm_mask_mullo_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
2377 __m128i __B)
2379 return (__m128i) __builtin_ia32_pmullw128_mask ((__v8hi) __A,
2380 (__v8hi) __B,
2381 (__v8hi) __W,
2382 (__mmask8) __U);
2385 extern __inline __m128i
2386 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2387 _mm_maskz_mullo_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
2389 return (__m128i) __builtin_ia32_pmullw128_mask ((__v8hi) __A,
2390 (__v8hi) __B,
2391 (__v8hi)
2392 _mm_setzero_hi (),
2393 (__mmask8) __U);
2396 extern __inline __m256i
2397 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2398 _mm256_mask_cvtepi8_epi16 (__m256i __W, __mmask32 __U, __m128i __A)
2400 return (__m256i) __builtin_ia32_pmovsxbw256_mask ((__v16qi) __A,
2401 (__v16hi) __W,
2402 (__mmask16) __U);
2405 extern __inline __m256i
2406 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2407 _mm256_maskz_cvtepi8_epi16 (__mmask16 __U, __m128i __A)
2409 return (__m256i) __builtin_ia32_pmovsxbw256_mask ((__v16qi) __A,
2410 (__v16hi)
2411 _mm256_setzero_si256 (),
2412 (__mmask16) __U);
2415 extern __inline __m128i
2416 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2417 _mm_mask_cvtepi8_epi16 (__m128i __W, __mmask32 __U, __m128i __A)
2419 return (__m128i) __builtin_ia32_pmovsxbw128_mask ((__v16qi) __A,
2420 (__v8hi) __W,
2421 (__mmask8) __U);
2424 extern __inline __m128i
2425 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2426 _mm_maskz_cvtepi8_epi16 (__mmask8 __U, __m128i __A)
2428 return (__m128i) __builtin_ia32_pmovsxbw128_mask ((__v16qi) __A,
2429 (__v8hi)
2430 _mm_setzero_si128 (),
2431 (__mmask8) __U);
2434 extern __inline __m256i
2435 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2436 _mm256_mask_cvtepu8_epi16 (__m256i __W, __mmask32 __U, __m128i __A)
2438 return (__m256i) __builtin_ia32_pmovzxbw256_mask ((__v16qi) __A,
2439 (__v16hi) __W,
2440 (__mmask16) __U);
2443 extern __inline __m256i
2444 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2445 _mm256_maskz_cvtepu8_epi16 (__mmask16 __U, __m128i __A)
2447 return (__m256i) __builtin_ia32_pmovzxbw256_mask ((__v16qi) __A,
2448 (__v16hi)
2449 _mm256_setzero_si256 (),
2450 (__mmask16) __U);
2453 extern __inline __m128i
2454 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2455 _mm_mask_cvtepu8_epi16 (__m128i __W, __mmask32 __U, __m128i __A)
2457 return (__m128i) __builtin_ia32_pmovzxbw128_mask ((__v16qi) __A,
2458 (__v8hi) __W,
2459 (__mmask8) __U);
2462 extern __inline __m128i
2463 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2464 _mm_maskz_cvtepu8_epi16 (__mmask8 __U, __m128i __A)
2466 return (__m128i) __builtin_ia32_pmovzxbw128_mask ((__v16qi) __A,
2467 (__v8hi)
2468 _mm_setzero_si128 (),
2469 (__mmask8) __U);
2472 extern __inline __m256i
2473 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2474 _mm256_mask_avg_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
2475 __m256i __B)
2477 return (__m256i) __builtin_ia32_pavgb256_mask ((__v32qi) __A,
2478 (__v32qi) __B,
2479 (__v32qi) __W,
2480 (__mmask32) __U);
2483 extern __inline __m256i
2484 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2485 _mm256_maskz_avg_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
2487 return (__m256i) __builtin_ia32_pavgb256_mask ((__v32qi) __A,
2488 (__v32qi) __B,
2489 (__v32qi)
2490 _mm256_setzero_si256 (),
2491 (__mmask32) __U);
2494 extern __inline __m128i
2495 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2496 _mm_mask_avg_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
2497 __m128i __B)
2499 return (__m128i) __builtin_ia32_pavgb128_mask ((__v16qi) __A,
2500 (__v16qi) __B,
2501 (__v16qi) __W,
2502 (__mmask16) __U);
2505 extern __inline __m128i
2506 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2507 _mm_maskz_avg_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
2509 return (__m128i) __builtin_ia32_pavgb128_mask ((__v16qi) __A,
2510 (__v16qi) __B,
2511 (__v16qi)
2512 _mm_setzero_si128 (),
2513 (__mmask16) __U);
2516 extern __inline __m256i
2517 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2518 _mm256_mask_avg_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
2519 __m256i __B)
2521 return (__m256i) __builtin_ia32_pavgw256_mask ((__v16hi) __A,
2522 (__v16hi) __B,
2523 (__v16hi) __W,
2524 (__mmask16) __U);
2527 extern __inline __m256i
2528 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2529 _mm256_maskz_avg_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
2531 return (__m256i) __builtin_ia32_pavgw256_mask ((__v16hi) __A,
2532 (__v16hi) __B,
2533 (__v16hi)
2534 _mm256_setzero_si256 (),
2535 (__mmask16) __U);
2538 extern __inline __m128i
2539 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2540 _mm_mask_avg_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
2541 __m128i __B)
2543 return (__m128i) __builtin_ia32_pavgw128_mask ((__v8hi) __A,
2544 (__v8hi) __B,
2545 (__v8hi) __W,
2546 (__mmask8) __U);
2549 extern __inline __m128i
2550 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2551 _mm_maskz_avg_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
2553 return (__m128i) __builtin_ia32_pavgw128_mask ((__v8hi) __A,
2554 (__v8hi) __B,
2555 (__v8hi)
2556 _mm_setzero_si128 (),
2557 (__mmask8) __U);
2560 extern __inline __m256i
2561 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2562 _mm256_mask_add_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
2563 __m256i __B)
2565 return (__m256i) __builtin_ia32_paddb256_mask ((__v32qi) __A,
2566 (__v32qi) __B,
2567 (__v32qi) __W,
2568 (__mmask32) __U);
2571 extern __inline __m256i
2572 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2573 _mm256_maskz_add_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
2575 return (__m256i) __builtin_ia32_paddb256_mask ((__v32qi) __A,
2576 (__v32qi) __B,
2577 (__v32qi)
2578 _mm256_setzero_si256 (),
2579 (__mmask32) __U);
2582 extern __inline __m256i
2583 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2584 _mm256_mask_add_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2585 __m256i __B)
2587 return (__m256i) __builtin_ia32_paddw256_mask ((__v16hi) __A,
2588 (__v16hi) __B,
2589 (__v16hi) __W,
2590 (__mmask16) __U);
2593 extern __inline __m256i
2594 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2595 _mm256_maskz_add_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2597 return (__m256i) __builtin_ia32_paddw256_mask ((__v16hi) __A,
2598 (__v16hi) __B,
2599 (__v16hi)
2600 _mm256_setzero_si256 (),
2601 (__mmask16) __U);
2604 extern __inline __m256i
2605 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2606 _mm256_mask_adds_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
2607 __m256i __B)
2609 return (__m256i) __builtin_ia32_paddsb256_mask ((__v32qi) __A,
2610 (__v32qi) __B,
2611 (__v32qi) __W,
2612 (__mmask32) __U);
2615 extern __inline __m256i
2616 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2617 _mm256_maskz_adds_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
2619 return (__m256i) __builtin_ia32_paddsb256_mask ((__v32qi) __A,
2620 (__v32qi) __B,
2621 (__v32qi)
2622 _mm256_setzero_si256 (),
2623 (__mmask32) __U);
2626 extern __inline __m256i
2627 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2628 _mm256_mask_adds_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2629 __m256i __B)
2631 return (__m256i) __builtin_ia32_paddsw256_mask ((__v16hi) __A,
2632 (__v16hi) __B,
2633 (__v16hi) __W,
2634 (__mmask16) __U);
2637 extern __inline __m256i
2638 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2639 _mm256_maskz_adds_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2641 return (__m256i) __builtin_ia32_paddsw256_mask ((__v16hi) __A,
2642 (__v16hi) __B,
2643 (__v16hi)
2644 _mm256_setzero_si256 (),
2645 (__mmask16) __U);
2648 extern __inline __m256i
2649 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2650 _mm256_mask_adds_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
2651 __m256i __B)
2653 return (__m256i) __builtin_ia32_paddusb256_mask ((__v32qi) __A,
2654 (__v32qi) __B,
2655 (__v32qi) __W,
2656 (__mmask32) __U);
2659 extern __inline __m256i
2660 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2661 _mm256_maskz_adds_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
2663 return (__m256i) __builtin_ia32_paddusb256_mask ((__v32qi) __A,
2664 (__v32qi) __B,
2665 (__v32qi)
2666 _mm256_setzero_si256 (),
2667 (__mmask32) __U);
2670 extern __inline __m256i
2671 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2672 _mm256_mask_adds_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
2673 __m256i __B)
2675 return (__m256i) __builtin_ia32_paddusw256_mask ((__v16hi) __A,
2676 (__v16hi) __B,
2677 (__v16hi) __W,
2678 (__mmask16) __U);
2681 extern __inline __m256i
2682 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2683 _mm256_maskz_adds_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
2685 return (__m256i) __builtin_ia32_paddusw256_mask ((__v16hi) __A,
2686 (__v16hi) __B,
2687 (__v16hi)
2688 _mm256_setzero_si256 (),
2689 (__mmask16) __U);
2692 extern __inline __m256i
2693 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2694 _mm256_mask_sub_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
2695 __m256i __B)
2697 return (__m256i) __builtin_ia32_psubb256_mask ((__v32qi) __A,
2698 (__v32qi) __B,
2699 (__v32qi) __W,
2700 (__mmask32) __U);
2703 extern __inline __m256i
2704 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2705 _mm256_maskz_sub_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
2707 return (__m256i) __builtin_ia32_psubb256_mask ((__v32qi) __A,
2708 (__v32qi) __B,
2709 (__v32qi)
2710 _mm256_setzero_si256 (),
2711 (__mmask32) __U);
2714 extern __inline __m256i
2715 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2716 _mm256_mask_sub_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2717 __m256i __B)
2719 return (__m256i) __builtin_ia32_psubw256_mask ((__v16hi) __A,
2720 (__v16hi) __B,
2721 (__v16hi) __W,
2722 (__mmask16) __U);
2725 extern __inline __m256i
2726 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2727 _mm256_maskz_sub_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2729 return (__m256i) __builtin_ia32_psubw256_mask ((__v16hi) __A,
2730 (__v16hi) __B,
2731 (__v16hi)
2732 _mm256_setzero_si256 (),
2733 (__mmask16) __U);
2736 extern __inline __m256i
2737 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2738 _mm256_mask_subs_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
2739 __m256i __B)
2741 return (__m256i) __builtin_ia32_psubsb256_mask ((__v32qi) __A,
2742 (__v32qi) __B,
2743 (__v32qi) __W,
2744 (__mmask32) __U);
2747 extern __inline __m256i
2748 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2749 _mm256_maskz_subs_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
2751 return (__m256i) __builtin_ia32_psubsb256_mask ((__v32qi) __A,
2752 (__v32qi) __B,
2753 (__v32qi)
2754 _mm256_setzero_si256 (),
2755 (__mmask32) __U);
2758 extern __inline __m256i
2759 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2760 _mm256_mask_subs_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2761 __m256i __B)
2763 return (__m256i) __builtin_ia32_psubsw256_mask ((__v16hi) __A,
2764 (__v16hi) __B,
2765 (__v16hi) __W,
2766 (__mmask16) __U);
2769 extern __inline __m256i
2770 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2771 _mm256_maskz_subs_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2773 return (__m256i) __builtin_ia32_psubsw256_mask ((__v16hi) __A,
2774 (__v16hi) __B,
2775 (__v16hi)
2776 _mm256_setzero_si256 (),
2777 (__mmask16) __U);
2780 extern __inline __m256i
2781 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2782 _mm256_mask_subs_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
2783 __m256i __B)
2785 return (__m256i) __builtin_ia32_psubusb256_mask ((__v32qi) __A,
2786 (__v32qi) __B,
2787 (__v32qi) __W,
2788 (__mmask32) __U);
2791 extern __inline __m256i
2792 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2793 _mm256_maskz_subs_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
2795 return (__m256i) __builtin_ia32_psubusb256_mask ((__v32qi) __A,
2796 (__v32qi) __B,
2797 (__v32qi)
2798 _mm256_setzero_si256 (),
2799 (__mmask32) __U);
2802 extern __inline __m256i
2803 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2804 _mm256_mask_subs_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
2805 __m256i __B)
2807 return (__m256i) __builtin_ia32_psubusw256_mask ((__v16hi) __A,
2808 (__v16hi) __B,
2809 (__v16hi) __W,
2810 (__mmask16) __U);
2813 extern __inline __m256i
2814 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2815 _mm256_maskz_subs_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
2817 return (__m256i) __builtin_ia32_psubusw256_mask ((__v16hi) __A,
2818 (__v16hi) __B,
2819 (__v16hi)
2820 _mm256_setzero_si256 (),
2821 (__mmask16) __U);
2824 extern __inline __m128i
2825 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2826 _mm_mask_add_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
2827 __m128i __B)
2829 return (__m128i) __builtin_ia32_paddb128_mask ((__v16qi) __A,
2830 (__v16qi) __B,
2831 (__v16qi) __W,
2832 (__mmask16) __U);
2835 extern __inline __m128i
2836 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2837 _mm_maskz_add_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
2839 return (__m128i) __builtin_ia32_paddb128_mask ((__v16qi) __A,
2840 (__v16qi) __B,
2841 (__v16qi)
2842 _mm_setzero_si128 (),
2843 (__mmask16) __U);
2846 extern __inline __m128i
2847 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2848 _mm_mask_add_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
2849 __m128i __B)
2851 return (__m128i) __builtin_ia32_paddw128_mask ((__v8hi) __A,
2852 (__v8hi) __B,
2853 (__v8hi) __W,
2854 (__mmask8) __U);
2857 extern __inline __m128i
2858 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2859 _mm_maskz_add_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
2861 return (__m128i) __builtin_ia32_paddw128_mask ((__v8hi) __A,
2862 (__v8hi) __B,
2863 (__v8hi)
2864 _mm_setzero_si128 (),
2865 (__mmask8) __U);
2868 extern __inline __m256i
2869 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2870 _mm256_mask_unpackhi_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
2871 __m256i __B)
2873 return (__m256i) __builtin_ia32_punpckhbw256_mask ((__v32qi) __A,
2874 (__v32qi) __B,
2875 (__v32qi) __W,
2876 (__mmask32) __U);
2879 extern __inline __m256i
2880 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2881 _mm256_maskz_unpackhi_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
2883 return (__m256i) __builtin_ia32_punpckhbw256_mask ((__v32qi) __A,
2884 (__v32qi) __B,
2885 (__v32qi)
2886 _mm256_setzero_si256 (),
2887 (__mmask32) __U);
2890 extern __inline __m128i
2891 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2892 _mm_mask_unpackhi_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
2893 __m128i __B)
2895 return (__m128i) __builtin_ia32_punpckhbw128_mask ((__v16qi) __A,
2896 (__v16qi) __B,
2897 (__v16qi) __W,
2898 (__mmask16) __U);
2901 extern __inline __m128i
2902 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2903 _mm_maskz_unpackhi_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
2905 return (__m128i) __builtin_ia32_punpckhbw128_mask ((__v16qi) __A,
2906 (__v16qi) __B,
2907 (__v16qi)
2908 _mm_setzero_si128 (),
2909 (__mmask16) __U);
2912 extern __inline __m256i
2913 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2914 _mm256_mask_unpackhi_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2915 __m256i __B)
2917 return (__m256i) __builtin_ia32_punpckhwd256_mask ((__v16hi) __A,
2918 (__v16hi) __B,
2919 (__v16hi) __W,
2920 (__mmask16) __U);
2923 extern __inline __m256i
2924 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2925 _mm256_maskz_unpackhi_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2927 return (__m256i) __builtin_ia32_punpckhwd256_mask ((__v16hi) __A,
2928 (__v16hi) __B,
2929 (__v16hi)
2930 _mm256_setzero_si256 (),
2931 (__mmask16) __U);
2934 extern __inline __m128i
2935 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2936 _mm_mask_unpackhi_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
2937 __m128i __B)
2939 return (__m128i) __builtin_ia32_punpckhwd128_mask ((__v8hi) __A,
2940 (__v8hi) __B,
2941 (__v8hi) __W,
2942 (__mmask8) __U);
2945 extern __inline __m128i
2946 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2947 _mm_maskz_unpackhi_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
2949 return (__m128i) __builtin_ia32_punpckhwd128_mask ((__v8hi) __A,
2950 (__v8hi) __B,
2951 (__v8hi)
2952 _mm_setzero_si128 (),
2953 (__mmask8) __U);
2956 extern __inline __m256i
2957 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2958 _mm256_mask_unpacklo_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
2959 __m256i __B)
2961 return (__m256i) __builtin_ia32_punpcklbw256_mask ((__v32qi) __A,
2962 (__v32qi) __B,
2963 (__v32qi) __W,
2964 (__mmask32) __U);
2967 extern __inline __m256i
2968 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2969 _mm256_maskz_unpacklo_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
2971 return (__m256i) __builtin_ia32_punpcklbw256_mask ((__v32qi) __A,
2972 (__v32qi) __B,
2973 (__v32qi)
2974 _mm256_setzero_si256 (),
2975 (__mmask32) __U);
2978 extern __inline __m128i
2979 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2980 _mm_mask_unpacklo_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
2981 __m128i __B)
2983 return (__m128i) __builtin_ia32_punpcklbw128_mask ((__v16qi) __A,
2984 (__v16qi) __B,
2985 (__v16qi) __W,
2986 (__mmask16) __U);
2989 extern __inline __m128i
2990 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2991 _mm_maskz_unpacklo_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
2993 return (__m128i) __builtin_ia32_punpcklbw128_mask ((__v16qi) __A,
2994 (__v16qi) __B,
2995 (__v16qi)
2996 _mm_setzero_si128 (),
2997 (__mmask16) __U);
3000 extern __inline __m256i
3001 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3002 _mm256_mask_unpacklo_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
3003 __m256i __B)
3005 return (__m256i) __builtin_ia32_punpcklwd256_mask ((__v16hi) __A,
3006 (__v16hi) __B,
3007 (__v16hi) __W,
3008 (__mmask16) __U);
3011 extern __inline __m256i
3012 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3013 _mm256_maskz_unpacklo_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
3015 return (__m256i) __builtin_ia32_punpcklwd256_mask ((__v16hi) __A,
3016 (__v16hi) __B,
3017 (__v16hi)
3018 _mm256_setzero_si256 (),
3019 (__mmask16) __U);
3022 extern __inline __m128i
3023 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3024 _mm_mask_unpacklo_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
3025 __m128i __B)
3027 return (__m128i) __builtin_ia32_punpcklwd128_mask ((__v8hi) __A,
3028 (__v8hi) __B,
3029 (__v8hi) __W,
3030 (__mmask8) __U);
3033 extern __inline __m128i
3034 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3035 _mm_maskz_unpacklo_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
3037 return (__m128i) __builtin_ia32_punpcklwd128_mask ((__v8hi) __A,
3038 (__v8hi) __B,
3039 (__v8hi)
3040 _mm_setzero_si128 (),
3041 (__mmask8) __U);
3044 extern __inline __mmask16
3045 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3046 _mm_cmpeq_epi8_mask (__m128i __A, __m128i __B)
3048 return (__mmask16) __builtin_ia32_pcmpeqb128_mask ((__v16qi) __A,
3049 (__v16qi) __B,
3050 (__mmask16) -1);
3053 extern __inline __mmask16
3054 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3055 _mm_cmpeq_epu8_mask (__m128i __A, __m128i __B)
3057 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __A,
3058 (__v16qi) __B, 0,
3059 (__mmask16) -1);
3062 extern __inline __mmask16
3063 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3064 _mm_mask_cmpeq_epu8_mask (__mmask16 __U, __m128i __A, __m128i __B)
3066 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __A,
3067 (__v16qi) __B, 0,
3068 __U);
3071 extern __inline __mmask16
3072 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3073 _mm_mask_cmpeq_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
3075 return (__mmask16) __builtin_ia32_pcmpeqb128_mask ((__v16qi) __A,
3076 (__v16qi) __B,
3077 __U);
3080 extern __inline __mmask32
3081 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3082 _mm256_cmpeq_epu8_mask (__m256i __A, __m256i __B)
3084 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __A,
3085 (__v32qi) __B, 0,
3086 (__mmask32) -1);
3089 extern __inline __mmask32
3090 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3091 _mm256_cmpeq_epi8_mask (__m256i __A, __m256i __B)
3093 return (__mmask32) __builtin_ia32_pcmpeqb256_mask ((__v32qi) __A,
3094 (__v32qi) __B,
3095 (__mmask32) -1);
3098 extern __inline __mmask32
3099 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3100 _mm256_mask_cmpeq_epu8_mask (__mmask32 __U, __m256i __A, __m256i __B)
3102 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __A,
3103 (__v32qi) __B, 0,
3104 __U);
3107 extern __inline __mmask32
3108 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3109 _mm256_mask_cmpeq_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
3111 return (__mmask32) __builtin_ia32_pcmpeqb256_mask ((__v32qi) __A,
3112 (__v32qi) __B,
3113 __U);
3116 extern __inline __mmask8
3117 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3118 _mm_cmpeq_epu16_mask (__m128i __A, __m128i __B)
3120 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __A,
3121 (__v8hi) __B, 0,
3122 (__mmask8) -1);
3125 extern __inline __mmask8
3126 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3127 _mm_cmpeq_epi16_mask (__m128i __A, __m128i __B)
3129 return (__mmask8) __builtin_ia32_pcmpeqw128_mask ((__v8hi) __A,
3130 (__v8hi) __B,
3131 (__mmask8) -1);
3134 extern __inline __mmask8
3135 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3136 _mm_mask_cmpeq_epu16_mask (__mmask8 __U, __m128i __A, __m128i __B)
3138 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __A,
3139 (__v8hi) __B, 0, __U);
3142 extern __inline __mmask8
3143 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3144 _mm_mask_cmpeq_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
3146 return (__mmask8) __builtin_ia32_pcmpeqw128_mask ((__v8hi) __A,
3147 (__v8hi) __B, __U);
3150 extern __inline __mmask16
3151 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3152 _mm256_cmpeq_epu16_mask (__m256i __A, __m256i __B)
3154 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __A,
3155 (__v16hi) __B, 0,
3156 (__mmask16) -1);
3159 extern __inline __mmask16
3160 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3161 _mm256_cmpeq_epi16_mask (__m256i __A, __m256i __B)
3163 return (__mmask16) __builtin_ia32_pcmpeqw256_mask ((__v16hi) __A,
3164 (__v16hi) __B,
3165 (__mmask16) -1);
3168 extern __inline __mmask16
3169 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3170 _mm256_mask_cmpeq_epu16_mask (__mmask16 __U, __m256i __A, __m256i __B)
3172 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __A,
3173 (__v16hi) __B, 0,
3174 __U);
3177 extern __inline __mmask16
3178 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3179 _mm256_mask_cmpeq_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
3181 return (__mmask16) __builtin_ia32_pcmpeqw256_mask ((__v16hi) __A,
3182 (__v16hi) __B,
3183 __U);
3186 extern __inline __mmask16
3187 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3188 _mm_cmpgt_epu8_mask (__m128i __A, __m128i __B)
3190 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __A,
3191 (__v16qi) __B, 6,
3192 (__mmask16) -1);
3195 extern __inline __mmask16
3196 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3197 _mm_cmpgt_epi8_mask (__m128i __A, __m128i __B)
3199 return (__mmask16) __builtin_ia32_pcmpgtb128_mask ((__v16qi) __A,
3200 (__v16qi) __B,
3201 (__mmask16) -1);
3204 extern __inline __mmask16
3205 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3206 _mm_mask_cmpgt_epu8_mask (__mmask16 __U, __m128i __A, __m128i __B)
3208 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __A,
3209 (__v16qi) __B, 6,
3210 __U);
3213 extern __inline __mmask16
3214 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3215 _mm_mask_cmpgt_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
3217 return (__mmask16) __builtin_ia32_pcmpgtb128_mask ((__v16qi) __A,
3218 (__v16qi) __B,
3219 __U);
3222 extern __inline __mmask32
3223 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3224 _mm256_cmpgt_epu8_mask (__m256i __A, __m256i __B)
3226 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __A,
3227 (__v32qi) __B, 6,
3228 (__mmask32) -1);
3231 extern __inline __mmask32
3232 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3233 _mm256_cmpgt_epi8_mask (__m256i __A, __m256i __B)
3235 return (__mmask32) __builtin_ia32_pcmpgtb256_mask ((__v32qi) __A,
3236 (__v32qi) __B,
3237 (__mmask32) -1);
3240 extern __inline __mmask32
3241 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3242 _mm256_mask_cmpgt_epu8_mask (__mmask32 __U, __m256i __A, __m256i __B)
3244 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __A,
3245 (__v32qi) __B, 6,
3246 __U);
3249 extern __inline __mmask32
3250 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3251 _mm256_mask_cmpgt_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
3253 return (__mmask32) __builtin_ia32_pcmpgtb256_mask ((__v32qi) __A,
3254 (__v32qi) __B,
3255 __U);
3258 extern __inline __mmask8
3259 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3260 _mm_cmpgt_epu16_mask (__m128i __A, __m128i __B)
3262 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __A,
3263 (__v8hi) __B, 6,
3264 (__mmask8) -1);
3267 extern __inline __mmask8
3268 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3269 _mm_cmpgt_epi16_mask (__m128i __A, __m128i __B)
3271 return (__mmask8) __builtin_ia32_pcmpgtw128_mask ((__v8hi) __A,
3272 (__v8hi) __B,
3273 (__mmask8) -1);
3276 extern __inline __mmask8
3277 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3278 _mm_mask_cmpgt_epu16_mask (__mmask8 __U, __m128i __A, __m128i __B)
3280 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __A,
3281 (__v8hi) __B, 6, __U);
3284 extern __inline __mmask8
3285 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3286 _mm_mask_cmpgt_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
3288 return (__mmask8) __builtin_ia32_pcmpgtw128_mask ((__v8hi) __A,
3289 (__v8hi) __B, __U);
3292 extern __inline __mmask16
3293 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3294 _mm256_cmpgt_epu16_mask (__m256i __A, __m256i __B)
3296 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __A,
3297 (__v16hi) __B, 6,
3298 (__mmask16) -1);
3301 extern __inline __mmask16
3302 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3303 _mm256_cmpgt_epi16_mask (__m256i __A, __m256i __B)
3305 return (__mmask16) __builtin_ia32_pcmpgtw256_mask ((__v16hi) __A,
3306 (__v16hi) __B,
3307 (__mmask16) -1);
3310 extern __inline __mmask16
3311 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3312 _mm256_mask_cmpgt_epu16_mask (__mmask16 __U, __m256i __A, __m256i __B)
3314 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __A,
3315 (__v16hi) __B, 6,
3316 __U);
3319 extern __inline __mmask16
3320 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3321 _mm256_mask_cmpgt_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
3323 return (__mmask16) __builtin_ia32_pcmpgtw256_mask ((__v16hi) __A,
3324 (__v16hi) __B,
3325 __U);
3328 extern __inline __mmask16
3329 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3330 _mm_testn_epi8_mask (__m128i __A, __m128i __B)
3332 return (__mmask16) __builtin_ia32_ptestnmb128 ((__v16qi) __A,
3333 (__v16qi) __B,
3334 (__mmask16) -1);
3337 extern __inline __mmask16
3338 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3339 _mm_mask_testn_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
3341 return (__mmask16) __builtin_ia32_ptestnmb128 ((__v16qi) __A,
3342 (__v16qi) __B, __U);
3345 extern __inline __mmask32
3346 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3347 _mm256_testn_epi8_mask (__m256i __A, __m256i __B)
3349 return (__mmask32) __builtin_ia32_ptestnmb256 ((__v32qi) __A,
3350 (__v32qi) __B,
3351 (__mmask32) -1);
3354 extern __inline __mmask32
3355 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3356 _mm256_mask_testn_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
3358 return (__mmask32) __builtin_ia32_ptestnmb256 ((__v32qi) __A,
3359 (__v32qi) __B, __U);
3362 extern __inline __mmask8
3363 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3364 _mm_testn_epi16_mask (__m128i __A, __m128i __B)
3366 return (__mmask8) __builtin_ia32_ptestnmw128 ((__v8hi) __A,
3367 (__v8hi) __B,
3368 (__mmask8) -1);
3371 extern __inline __mmask8
3372 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3373 _mm_mask_testn_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
3375 return (__mmask8) __builtin_ia32_ptestnmw128 ((__v8hi) __A,
3376 (__v8hi) __B, __U);
3379 extern __inline __mmask16
3380 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3381 _mm256_testn_epi16_mask (__m256i __A, __m256i __B)
3383 return (__mmask16) __builtin_ia32_ptestnmw256 ((__v16hi) __A,
3384 (__v16hi) __B,
3385 (__mmask16) -1);
3388 extern __inline __mmask16
3389 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3390 _mm256_mask_testn_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
3392 return (__mmask16) __builtin_ia32_ptestnmw256 ((__v16hi) __A,
3393 (__v16hi) __B, __U);
3396 extern __inline __m256i
3397 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3398 _mm256_mask_shuffle_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
3399 __m256i __B)
3401 return (__m256i) __builtin_ia32_pshufb256_mask ((__v32qi) __A,
3402 (__v32qi) __B,
3403 (__v32qi) __W,
3404 (__mmask32) __U);
3407 extern __inline __m256i
3408 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3409 _mm256_maskz_shuffle_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
3411 return (__m256i) __builtin_ia32_pshufb256_mask ((__v32qi) __A,
3412 (__v32qi) __B,
3413 (__v32qi)
3414 _mm256_setzero_si256 (),
3415 (__mmask32) __U);
3418 extern __inline __m128i
3419 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3420 _mm_mask_shuffle_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
3421 __m128i __B)
3423 return (__m128i) __builtin_ia32_pshufb128_mask ((__v16qi) __A,
3424 (__v16qi) __B,
3425 (__v16qi) __W,
3426 (__mmask16) __U);
3429 extern __inline __m128i
3430 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3431 _mm_maskz_shuffle_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
3433 return (__m128i) __builtin_ia32_pshufb128_mask ((__v16qi) __A,
3434 (__v16qi) __B,
3435 (__v16qi)
3436 _mm_setzero_si128 (),
3437 (__mmask16) __U);
3440 extern __inline __m256i
3441 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3442 _mm256_maskz_packs_epi16 (__mmask32 __M, __m256i __A, __m256i __B)
3444 return (__m256i) __builtin_ia32_packsswb256_mask ((__v16hi) __A,
3445 (__v16hi) __B,
3446 (__v32qi)
3447 _mm256_setzero_si256 (),
3448 __M);
3451 extern __inline __m256i
3452 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3453 _mm256_mask_packs_epi16 (__m256i __W, __mmask32 __M, __m256i __A,
3454 __m256i __B)
3456 return (__m256i) __builtin_ia32_packsswb256_mask ((__v16hi) __A,
3457 (__v16hi) __B,
3458 (__v32qi) __W,
3459 __M);
3462 extern __inline __m128i
3463 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3464 _mm_maskz_packs_epi16 (__mmask16 __M, __m128i __A, __m128i __B)
3466 return (__m128i) __builtin_ia32_packsswb128_mask ((__v8hi) __A,
3467 (__v8hi) __B,
3468 (__v16qi)
3469 _mm_setzero_si128 (),
3470 __M);
3473 extern __inline __m128i
3474 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3475 _mm_mask_packs_epi16 (__m128i __W, __mmask16 __M, __m128i __A,
3476 __m128i __B)
3478 return (__m128i) __builtin_ia32_packsswb128_mask ((__v8hi) __A,
3479 (__v8hi) __B,
3480 (__v16qi) __W,
3481 __M);
3484 extern __inline __m256i
3485 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3486 _mm256_maskz_packus_epi16 (__mmask32 __M, __m256i __A, __m256i __B)
3488 return (__m256i) __builtin_ia32_packuswb256_mask ((__v16hi) __A,
3489 (__v16hi) __B,
3490 (__v32qi)
3491 _mm256_setzero_si256 (),
3492 __M);
3495 extern __inline __m256i
3496 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3497 _mm256_mask_packus_epi16 (__m256i __W, __mmask32 __M, __m256i __A,
3498 __m256i __B)
3500 return (__m256i) __builtin_ia32_packuswb256_mask ((__v16hi) __A,
3501 (__v16hi) __B,
3502 (__v32qi) __W,
3503 __M);
3506 extern __inline __m128i
3507 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3508 _mm_maskz_packus_epi16 (__mmask16 __M, __m128i __A, __m128i __B)
3510 return (__m128i) __builtin_ia32_packuswb128_mask ((__v8hi) __A,
3511 (__v8hi) __B,
3512 (__v16qi)
3513 _mm_setzero_si128 (),
3514 __M);
3517 extern __inline __m128i
3518 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3519 _mm_mask_packus_epi16 (__m128i __W, __mmask16 __M, __m128i __A,
3520 __m128i __B)
3522 return (__m128i) __builtin_ia32_packuswb128_mask ((__v8hi) __A,
3523 (__v8hi) __B,
3524 (__v16qi) __W,
3525 __M);
3528 extern __inline __m256i
3529 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3530 _mm256_mask_abs_epi8 (__m256i __W, __mmask32 __U, __m256i __A)
3532 return (__m256i) __builtin_ia32_pabsb256_mask ((__v32qi) __A,
3533 (__v32qi) __W,
3534 (__mmask32) __U);
3537 extern __inline __m256i
3538 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3539 _mm256_maskz_abs_epi8 (__mmask32 __U, __m256i __A)
3541 return (__m256i) __builtin_ia32_pabsb256_mask ((__v32qi) __A,
3542 (__v32qi)
3543 _mm256_setzero_si256 (),
3544 (__mmask32) __U);
3547 extern __inline __m128i
3548 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3549 _mm_mask_abs_epi8 (__m128i __W, __mmask16 __U, __m128i __A)
3551 return (__m128i) __builtin_ia32_pabsb128_mask ((__v16qi) __A,
3552 (__v16qi) __W,
3553 (__mmask16) __U);
3556 extern __inline __m128i
3557 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3558 _mm_maskz_abs_epi8 (__mmask16 __U, __m128i __A)
3560 return (__m128i) __builtin_ia32_pabsb128_mask ((__v16qi) __A,
3561 (__v16qi)
3562 _mm_setzero_si128 (),
3563 (__mmask16) __U);
3566 extern __inline __m256i
3567 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3568 _mm256_mask_abs_epi16 (__m256i __W, __mmask16 __U, __m256i __A)
3570 return (__m256i) __builtin_ia32_pabsw256_mask ((__v16hi) __A,
3571 (__v16hi) __W,
3572 (__mmask16) __U);
3575 extern __inline __m256i
3576 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3577 _mm256_maskz_abs_epi16 (__mmask16 __U, __m256i __A)
3579 return (__m256i) __builtin_ia32_pabsw256_mask ((__v16hi) __A,
3580 (__v16hi)
3581 _mm256_setzero_si256 (),
3582 (__mmask16) __U);
3585 extern __inline __m128i
3586 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3587 _mm_mask_abs_epi16 (__m128i __W, __mmask8 __U, __m128i __A)
3589 return (__m128i) __builtin_ia32_pabsw128_mask ((__v8hi) __A,
3590 (__v8hi) __W,
3591 (__mmask8) __U);
3594 extern __inline __m128i
3595 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3596 _mm_maskz_abs_epi16 (__mmask8 __U, __m128i __A)
3598 return (__m128i) __builtin_ia32_pabsw128_mask ((__v8hi) __A,
3599 (__v8hi)
3600 _mm_setzero_si128 (),
3601 (__mmask8) __U);
3604 extern __inline __mmask32
3605 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3606 _mm256_cmpneq_epu8_mask (__m256i __X, __m256i __Y)
3608 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
3609 (__v32qi) __Y, 4,
3610 (__mmask32) -1);
3613 extern __inline __mmask32
3614 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3615 _mm256_cmplt_epu8_mask (__m256i __X, __m256i __Y)
3617 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
3618 (__v32qi) __Y, 1,
3619 (__mmask32) -1);
3622 extern __inline __mmask32
3623 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3624 _mm256_cmpge_epu8_mask (__m256i __X, __m256i __Y)
3626 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
3627 (__v32qi) __Y, 5,
3628 (__mmask32) -1);
3631 extern __inline __mmask32
3632 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3633 _mm256_cmple_epu8_mask (__m256i __X, __m256i __Y)
3635 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
3636 (__v32qi) __Y, 2,
3637 (__mmask32) -1);
3640 extern __inline __mmask16
3641 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3642 _mm256_cmpneq_epu16_mask (__m256i __X, __m256i __Y)
3644 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
3645 (__v16hi) __Y, 4,
3646 (__mmask16) -1);
3649 extern __inline __mmask16
3650 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3651 _mm256_cmplt_epu16_mask (__m256i __X, __m256i __Y)
3653 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
3654 (__v16hi) __Y, 1,
3655 (__mmask16) -1);
3658 extern __inline __mmask16
3659 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3660 _mm256_cmpge_epu16_mask (__m256i __X, __m256i __Y)
3662 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
3663 (__v16hi) __Y, 5,
3664 (__mmask16) -1);
3667 extern __inline __mmask16
3668 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3669 _mm256_cmple_epu16_mask (__m256i __X, __m256i __Y)
3671 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
3672 (__v16hi) __Y, 2,
3673 (__mmask16) -1);
3676 extern __inline void
3677 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3678 _mm256_mask_storeu_epi16 (void *__P, __mmask16 __U, __m256i __A)
3680 __builtin_ia32_storedquhi256_mask ((short *) __P,
3681 (__v16hi) __A,
3682 (__mmask16) __U);
3685 extern __inline void
3686 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3687 _mm_mask_storeu_epi16 (void *__P, __mmask8 __U, __m128i __A)
3689 __builtin_ia32_storedquhi128_mask ((short *) __P,
3690 (__v8hi) __A,
3691 (__mmask8) __U);
3694 extern __inline __m128i
3695 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3696 _mm_mask_adds_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
3697 __m128i __B)
3699 return (__m128i) __builtin_ia32_paddsw128_mask ((__v8hi) __A,
3700 (__v8hi) __B,
3701 (__v8hi) __W,
3702 (__mmask8) __U);
3705 extern __inline __m128i
3706 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3707 _mm_mask_subs_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
3708 __m128i __B)
3710 return (__m128i) __builtin_ia32_psubsb128_mask ((__v16qi) __A,
3711 (__v16qi) __B,
3712 (__v16qi) __W,
3713 (__mmask16) __U);
3716 extern __inline __m128i
3717 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3718 _mm_maskz_subs_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
3720 return (__m128i) __builtin_ia32_psubsb128_mask ((__v16qi) __A,
3721 (__v16qi) __B,
3722 (__v16qi)
3723 _mm_setzero_si128 (),
3724 (__mmask16) __U);
3727 extern __inline __m128i
3728 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3729 _mm_mask_subs_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
3730 __m128i __B)
3732 return (__m128i) __builtin_ia32_psubsw128_mask ((__v8hi) __A,
3733 (__v8hi) __B,
3734 (__v8hi) __W,
3735 (__mmask8) __U);
3738 extern __inline __m128i
3739 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3740 _mm_maskz_subs_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
3742 return (__m128i) __builtin_ia32_psubsw128_mask ((__v8hi) __A,
3743 (__v8hi) __B,
3744 (__v8hi)
3745 _mm_setzero_si128 (),
3746 (__mmask8) __U);
3749 extern __inline __m128i
3750 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3751 _mm_mask_subs_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
3752 __m128i __B)
3754 return (__m128i) __builtin_ia32_psubusb128_mask ((__v16qi) __A,
3755 (__v16qi) __B,
3756 (__v16qi) __W,
3757 (__mmask16) __U);
3760 extern __inline __m128i
3761 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3762 _mm_maskz_subs_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
3764 return (__m128i) __builtin_ia32_psubusb128_mask ((__v16qi) __A,
3765 (__v16qi) __B,
3766 (__v16qi)
3767 _mm_setzero_si128 (),
3768 (__mmask16) __U);
3771 extern __inline __m128i
3772 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3773 _mm_mask_subs_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
3774 __m128i __B)
3776 return (__m128i) __builtin_ia32_psubusw128_mask ((__v8hi) __A,
3777 (__v8hi) __B,
3778 (__v8hi) __W,
3779 (__mmask8) __U);
3782 extern __inline __m128i
3783 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3784 _mm_maskz_subs_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
3786 return (__m128i) __builtin_ia32_psubusw128_mask ((__v8hi) __A,
3787 (__v8hi) __B,
3788 (__v8hi)
3789 _mm_setzero_si128 (),
3790 (__mmask8) __U);
3793 extern __inline __m256i
3794 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3795 _mm256_mask_srl_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
3796 __m128i __B)
3798 return (__m256i) __builtin_ia32_psrlw256_mask ((__v16hi) __A,
3799 (__v8hi) __B,
3800 (__v16hi) __W,
3801 (__mmask16) __U);
3804 extern __inline __m256i
3805 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3806 _mm256_maskz_srl_epi16 (__mmask16 __U, __m256i __A, __m128i __B)
3808 return (__m256i) __builtin_ia32_psrlw256_mask ((__v16hi) __A,
3809 (__v8hi) __B,
3810 (__v16hi)
3811 _mm256_setzero_si256 (),
3812 (__mmask16) __U);
3815 extern __inline __m128i
3816 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3817 _mm_mask_srl_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
3818 __m128i __B)
3820 return (__m128i) __builtin_ia32_psrlw128_mask ((__v8hi) __A,
3821 (__v8hi) __B,
3822 (__v8hi) __W,
3823 (__mmask8) __U);
3826 extern __inline __m128i
3827 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3828 _mm_maskz_srl_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
3830 return (__m128i) __builtin_ia32_psrlw128_mask ((__v8hi) __A,
3831 (__v8hi) __B,
3832 (__v8hi)
3833 _mm_setzero_si128 (),
3834 (__mmask8) __U);
3837 extern __inline __m256i
3838 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3839 _mm256_mask_sra_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
3840 __m128i __B)
3842 return (__m256i) __builtin_ia32_psraw256_mask ((__v16hi) __A,
3843 (__v8hi) __B,
3844 (__v16hi) __W,
3845 (__mmask16) __U);
3848 extern __inline __m256i
3849 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3850 _mm256_maskz_sra_epi16 (__mmask16 __U, __m256i __A, __m128i __B)
3852 return (__m256i) __builtin_ia32_psraw256_mask ((__v16hi) __A,
3853 (__v8hi) __B,
3854 (__v16hi)
3855 _mm256_setzero_si256 (),
3856 (__mmask16) __U);
3859 extern __inline __m128i
3860 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3861 _mm_mask_sra_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
3862 __m128i __B)
3864 return (__m128i) __builtin_ia32_psraw128_mask ((__v8hi) __A,
3865 (__v8hi) __B,
3866 (__v8hi) __W,
3867 (__mmask8) __U);
3870 extern __inline __m128i
3871 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3872 _mm_maskz_sra_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
3874 return (__m128i) __builtin_ia32_psraw128_mask ((__v8hi) __A,
3875 (__v8hi) __B,
3876 (__v8hi)
3877 _mm_setzero_si128 (),
3878 (__mmask8) __U);
3881 extern __inline __m128i
3882 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3883 _mm_maskz_adds_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
3885 return (__m128i) __builtin_ia32_paddsw128_mask ((__v8hi) __A,
3886 (__v8hi) __B,
3887 (__v8hi)
3888 _mm_setzero_si128 (),
3889 (__mmask8) __U);
3892 extern __inline __m128i
3893 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3894 _mm_mask_adds_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
3895 __m128i __B)
3897 return (__m128i) __builtin_ia32_paddusb128_mask ((__v16qi) __A,
3898 (__v16qi) __B,
3899 (__v16qi) __W,
3900 (__mmask16) __U);
3903 extern __inline __m128i
3904 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3905 _mm_maskz_adds_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
3907 return (__m128i) __builtin_ia32_paddusb128_mask ((__v16qi) __A,
3908 (__v16qi) __B,
3909 (__v16qi)
3910 _mm_setzero_si128 (),
3911 (__mmask16) __U);
3914 extern __inline __m128i
3915 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3916 _mm_mask_adds_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
3917 __m128i __B)
3919 return (__m128i) __builtin_ia32_paddusw128_mask ((__v8hi) __A,
3920 (__v8hi) __B,
3921 (__v8hi) __W,
3922 (__mmask8) __U);
3925 extern __inline __m128i
3926 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3927 _mm_maskz_adds_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
3929 return (__m128i) __builtin_ia32_paddusw128_mask ((__v8hi) __A,
3930 (__v8hi) __B,
3931 (__v8hi)
3932 _mm_setzero_si128 (),
3933 (__mmask8) __U);
3936 extern __inline __m128i
3937 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3938 _mm_mask_sub_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
3939 __m128i __B)
3941 return (__m128i) __builtin_ia32_psubb128_mask ((__v16qi) __A,
3942 (__v16qi) __B,
3943 (__v16qi) __W,
3944 (__mmask16) __U);
3947 extern __inline __m128i
3948 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3949 _mm_maskz_sub_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
3951 return (__m128i) __builtin_ia32_psubb128_mask ((__v16qi) __A,
3952 (__v16qi) __B,
3953 (__v16qi)
3954 _mm_setzero_si128 (),
3955 (__mmask16) __U);
3958 extern __inline __m128i
3959 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3960 _mm_mask_sub_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
3961 __m128i __B)
3963 return (__m128i) __builtin_ia32_psubw128_mask ((__v8hi) __A,
3964 (__v8hi) __B,
3965 (__v8hi) __W,
3966 (__mmask8) __U);
3969 extern __inline __m128i
3970 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3971 _mm_maskz_sub_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
3973 return (__m128i) __builtin_ia32_psubw128_mask ((__v8hi) __A,
3974 (__v8hi) __B,
3975 (__v8hi)
3976 _mm_setzero_si128 (),
3977 (__mmask8) __U);
3980 extern __inline __m128i
3981 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3982 _mm_mask_adds_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
3983 __m128i __B)
3985 return (__m128i) __builtin_ia32_paddsb128_mask ((__v16qi) __A,
3986 (__v16qi) __B,
3987 (__v16qi) __W,
3988 (__mmask16) __U);
3991 extern __inline __m128i
3992 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3993 _mm_maskz_adds_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
3995 return (__m128i) __builtin_ia32_paddsb128_mask ((__v16qi) __A,
3996 (__v16qi) __B,
3997 (__v16qi)
3998 _mm_setzero_si128 (),
3999 (__mmask16) __U);
4002 extern __inline __m128i
4003 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4004 _mm_cvtepi16_epi8 (__m128i __A)
4007 return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
4008 (__v16qi)_mm_undefined_si128(),
4009 (__mmask8) -1);
4012 extern __inline __m128i
4013 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4014 _mm_mask_cvtepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
4016 return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
4017 (__v16qi) __O, __M);
4020 extern __inline __m128i
4021 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4022 _mm_maskz_cvtepi16_epi8 (__mmask8 __M, __m128i __A)
4024 return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
4025 (__v16qi)
4026 _mm_setzero_si128 (),
4027 __M);
4030 extern __inline __m256i
4031 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4032 _mm256_srav_epi16 (__m256i __A, __m256i __B)
4034 return (__m256i) __builtin_ia32_psrav16hi_mask ((__v16hi) __A,
4035 (__v16hi) __B,
4036 (__v16hi)
4037 _mm256_setzero_si256 (),
4038 (__mmask16) -1);
4041 extern __inline __m256i
4042 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4043 _mm256_mask_srav_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
4044 __m256i __B)
4046 return (__m256i) __builtin_ia32_psrav16hi_mask ((__v16hi) __A,
4047 (__v16hi) __B,
4048 (__v16hi) __W,
4049 (__mmask16) __U);
4052 extern __inline __m256i
4053 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4054 _mm256_maskz_srav_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
4056 return (__m256i) __builtin_ia32_psrav16hi_mask ((__v16hi) __A,
4057 (__v16hi) __B,
4058 (__v16hi)
4059 _mm256_setzero_si256 (),
4060 (__mmask16) __U);
4063 extern __inline __m128i
4064 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4065 _mm_srav_epi16 (__m128i __A, __m128i __B)
4067 return (__m128i) __builtin_ia32_psrav8hi_mask ((__v8hi) __A,
4068 (__v8hi) __B,
4069 (__v8hi)
4070 _mm_setzero_hi (),
4071 (__mmask8) -1);
4074 extern __inline __m128i
4075 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4076 _mm_mask_srav_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
4077 __m128i __B)
4079 return (__m128i) __builtin_ia32_psrav8hi_mask ((__v8hi) __A,
4080 (__v8hi) __B,
4081 (__v8hi) __W,
4082 (__mmask8) __U);
4085 extern __inline __m128i
4086 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4087 _mm_maskz_srav_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
4089 return (__m128i) __builtin_ia32_psrav8hi_mask ((__v8hi) __A,
4090 (__v8hi) __B,
4091 (__v8hi)
4092 _mm_setzero_si128 (),
4093 (__mmask8) __U);
4096 extern __inline __m256i
4097 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4098 _mm256_srlv_epi16 (__m256i __A, __m256i __B)
4100 return (__m256i) __builtin_ia32_psrlv16hi_mask ((__v16hi) __A,
4101 (__v16hi) __B,
4102 (__v16hi)
4103 _mm256_setzero_si256 (),
4104 (__mmask16) -1);
4107 extern __inline __m256i
4108 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4109 _mm256_mask_srlv_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
4110 __m256i __B)
4112 return (__m256i) __builtin_ia32_psrlv16hi_mask ((__v16hi) __A,
4113 (__v16hi) __B,
4114 (__v16hi) __W,
4115 (__mmask16) __U);
4118 extern __inline __m256i
4119 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4120 _mm256_maskz_srlv_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
4122 return (__m256i) __builtin_ia32_psrlv16hi_mask ((__v16hi) __A,
4123 (__v16hi) __B,
4124 (__v16hi)
4125 _mm256_setzero_si256 (),
4126 (__mmask16) __U);
4129 extern __inline __m128i
4130 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4131 _mm_srlv_epi16 (__m128i __A, __m128i __B)
4133 return (__m128i) __builtin_ia32_psrlv8hi_mask ((__v8hi) __A,
4134 (__v8hi) __B,
4135 (__v8hi)
4136 _mm_setzero_hi (),
4137 (__mmask8) -1);
4140 extern __inline __m128i
4141 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4142 _mm_mask_srlv_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
4143 __m128i __B)
4145 return (__m128i) __builtin_ia32_psrlv8hi_mask ((__v8hi) __A,
4146 (__v8hi) __B,
4147 (__v8hi) __W,
4148 (__mmask8) __U);
4151 extern __inline __m128i
4152 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4153 _mm_maskz_srlv_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
4155 return (__m128i) __builtin_ia32_psrlv8hi_mask ((__v8hi) __A,
4156 (__v8hi) __B,
4157 (__v8hi)
4158 _mm_setzero_si128 (),
4159 (__mmask8) __U);
4162 extern __inline __m256i
4163 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4164 _mm256_sllv_epi16 (__m256i __A, __m256i __B)
4166 return (__m256i) __builtin_ia32_psllv16hi_mask ((__v16hi) __A,
4167 (__v16hi) __B,
4168 (__v16hi)
4169 _mm256_setzero_si256 (),
4170 (__mmask16) -1);
4173 extern __inline __m256i
4174 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4175 _mm256_mask_sllv_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
4176 __m256i __B)
4178 return (__m256i) __builtin_ia32_psllv16hi_mask ((__v16hi) __A,
4179 (__v16hi) __B,
4180 (__v16hi) __W,
4181 (__mmask16) __U);
4184 extern __inline __m256i
4185 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4186 _mm256_maskz_sllv_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
4188 return (__m256i) __builtin_ia32_psllv16hi_mask ((__v16hi) __A,
4189 (__v16hi) __B,
4190 (__v16hi)
4191 _mm256_setzero_si256 (),
4192 (__mmask16) __U);
4195 extern __inline __m128i
4196 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4197 _mm_sllv_epi16 (__m128i __A, __m128i __B)
4199 return (__m128i) __builtin_ia32_psllv8hi_mask ((__v8hi) __A,
4200 (__v8hi) __B,
4201 (__v8hi)
4202 _mm_setzero_hi (),
4203 (__mmask8) -1);
4206 extern __inline __m128i
4207 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4208 _mm_mask_sllv_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
4209 __m128i __B)
4211 return (__m128i) __builtin_ia32_psllv8hi_mask ((__v8hi) __A,
4212 (__v8hi) __B,
4213 (__v8hi) __W,
4214 (__mmask8) __U);
4217 extern __inline __m128i
4218 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4219 _mm_maskz_sllv_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
4221 return (__m128i) __builtin_ia32_psllv8hi_mask ((__v8hi) __A,
4222 (__v8hi) __B,
4223 (__v8hi)
4224 _mm_setzero_si128 (),
4225 (__mmask8) __U);
4228 extern __inline __m128i
4229 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4230 _mm_mask_sll_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
4231 __m128i __B)
4233 return (__m128i) __builtin_ia32_psllw128_mask ((__v8hi) __A,
4234 (__v8hi) __B,
4235 (__v8hi) __W,
4236 (__mmask8) __U);
4239 extern __inline __m128i
4240 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4241 _mm_maskz_sll_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
4243 return (__m128i) __builtin_ia32_psllw128_mask ((__v8hi) __A,
4244 (__v8hi) __B,
4245 (__v8hi)
4246 _mm_setzero_si128 (),
4247 (__mmask8) __U);
4250 extern __inline __m256i
4251 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4252 _mm256_mask_sll_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
4253 __m128i __B)
4255 return (__m256i) __builtin_ia32_psllw256_mask ((__v16hi) __A,
4256 (__v8hi) __B,
4257 (__v16hi) __W,
4258 (__mmask16) __U);
4261 extern __inline __m256i
4262 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4263 _mm256_maskz_sll_epi16 (__mmask16 __U, __m256i __A, __m128i __B)
4265 return (__m256i) __builtin_ia32_psllw256_mask ((__v16hi) __A,
4266 (__v8hi) __B,
4267 (__v16hi)
4268 _mm256_setzero_si256 (),
4269 (__mmask16) __U);
4272 extern __inline __m256i
4273 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4274 _mm256_maskz_packus_epi32 (__mmask16 __M, __m256i __A, __m256i __B)
4276 return (__m256i) __builtin_ia32_packusdw256_mask ((__v8si) __A,
4277 (__v8si) __B,
4278 (__v16hi)
4279 _mm256_setzero_si256 (),
4280 __M);
4283 extern __inline __m256i
4284 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4285 _mm256_mask_packus_epi32 (__m256i __W, __mmask16 __M, __m256i __A,
4286 __m256i __B)
4288 return (__m256i) __builtin_ia32_packusdw256_mask ((__v8si) __A,
4289 (__v8si) __B,
4290 (__v16hi) __W,
4291 __M);
4294 extern __inline __m128i
4295 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4296 _mm_maskz_packus_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
4298 return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A,
4299 (__v4si) __B,
4300 (__v8hi)
4301 _mm_setzero_si128 (),
4302 __M);
4305 extern __inline __m128i
4306 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4307 _mm_mask_packus_epi32 (__m128i __W, __mmask16 __M, __m128i __A,
4308 __m128i __B)
4310 return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A,
4311 (__v4si) __B,
4312 (__v8hi) __W, __M);
4315 extern __inline __m256i
4316 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4317 _mm256_maskz_packs_epi32 (__mmask16 __M, __m256i __A, __m256i __B)
4319 return (__m256i) __builtin_ia32_packssdw256_mask ((__v8si) __A,
4320 (__v8si) __B,
4321 (__v16hi)
4322 _mm256_setzero_si256 (),
4323 __M);
4326 extern __inline __m256i
4327 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4328 _mm256_mask_packs_epi32 (__m256i __W, __mmask16 __M, __m256i __A,
4329 __m256i __B)
4331 return (__m256i) __builtin_ia32_packssdw256_mask ((__v8si) __A,
4332 (__v8si) __B,
4333 (__v16hi) __W,
4334 __M);
4337 extern __inline __m128i
4338 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4339 _mm_maskz_packs_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
4341 return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A,
4342 (__v4si) __B,
4343 (__v8hi)
4344 _mm_setzero_si128 (),
4345 __M);
4348 extern __inline __m128i
4349 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4350 _mm_mask_packs_epi32 (__m128i __W, __mmask16 __M, __m128i __A,
4351 __m128i __B)
4353 return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A,
4354 (__v4si) __B,
4355 (__v8hi) __W, __M);
4358 extern __inline __mmask16
4359 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4360 _mm_mask_cmpneq_epu8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4362 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
4363 (__v16qi) __Y, 4,
4364 (__mmask16) __M);
4367 extern __inline __mmask16
4368 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4369 _mm_mask_cmplt_epu8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4371 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
4372 (__v16qi) __Y, 1,
4373 (__mmask16) __M);
4376 extern __inline __mmask16
4377 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4378 _mm_mask_cmpge_epu8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4380 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
4381 (__v16qi) __Y, 5,
4382 (__mmask16) __M);
4385 extern __inline __mmask16
4386 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4387 _mm_mask_cmple_epu8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4389 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
4390 (__v16qi) __Y, 2,
4391 (__mmask16) __M);
4394 extern __inline __mmask8
4395 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4396 _mm_mask_cmpneq_epu16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4398 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
4399 (__v8hi) __Y, 4,
4400 (__mmask8) __M);
4403 extern __inline __mmask8
4404 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4405 _mm_mask_cmplt_epu16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4407 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
4408 (__v8hi) __Y, 1,
4409 (__mmask8) __M);
4412 extern __inline __mmask8
4413 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4414 _mm_mask_cmpge_epu16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4416 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
4417 (__v8hi) __Y, 5,
4418 (__mmask8) __M);
4421 extern __inline __mmask8
4422 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4423 _mm_mask_cmple_epu16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4425 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
4426 (__v8hi) __Y, 2,
4427 (__mmask8) __M);
4430 extern __inline __mmask16
4431 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4432 _mm_mask_cmpneq_epi8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4434 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
4435 (__v16qi) __Y, 4,
4436 (__mmask16) __M);
4439 extern __inline __mmask16
4440 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4441 _mm_mask_cmplt_epi8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4443 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
4444 (__v16qi) __Y, 1,
4445 (__mmask16) __M);
4448 extern __inline __mmask16
4449 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4450 _mm_mask_cmpge_epi8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4452 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
4453 (__v16qi) __Y, 5,
4454 (__mmask16) __M);
4457 extern __inline __mmask16
4458 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4459 _mm_mask_cmple_epi8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4461 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
4462 (__v16qi) __Y, 2,
4463 (__mmask16) __M);
4466 extern __inline __mmask8
4467 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4468 _mm_mask_cmpneq_epi16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4470 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
4471 (__v8hi) __Y, 4,
4472 (__mmask8) __M);
4475 extern __inline __mmask8
4476 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4477 _mm_mask_cmplt_epi16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4479 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
4480 (__v8hi) __Y, 1,
4481 (__mmask8) __M);
4484 extern __inline __mmask8
4485 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4486 _mm_mask_cmpge_epi16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4488 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
4489 (__v8hi) __Y, 5,
4490 (__mmask8) __M);
4493 extern __inline __mmask8
4494 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4495 _mm_mask_cmple_epi16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4497 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
4498 (__v8hi) __Y, 2,
4499 (__mmask8) __M);
4502 extern __inline __mmask8
4503 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4504 _mm256_mask_cmpneq_epu8_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4506 return (__mmask8) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
4507 (__v32qi) __Y, 4,
4508 (__mmask8) __M);
4511 extern __inline __mmask8
4512 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4513 _mm256_mask_cmplt_epu8_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4515 return (__mmask8) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
4516 (__v32qi) __Y, 1,
4517 (__mmask8) __M);
4520 extern __inline __mmask8
4521 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4522 _mm256_mask_cmpge_epu8_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4524 return (__mmask8) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
4525 (__v32qi) __Y, 5,
4526 (__mmask8) __M);
4529 extern __inline __mmask8
4530 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4531 _mm256_mask_cmple_epu8_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4533 return (__mmask8) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
4534 (__v32qi) __Y, 2,
4535 (__mmask8) __M);
4538 extern __inline __mmask8
4539 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4540 _mm256_mask_cmpneq_epu16_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4542 return (__mmask8) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
4543 (__v16hi) __Y, 4,
4544 (__mmask8) __M);
4547 extern __inline __mmask8
4548 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4549 _mm256_mask_cmplt_epu16_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4551 return (__mmask8) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
4552 (__v16hi) __Y, 1,
4553 (__mmask8) __M);
4556 extern __inline __mmask8
4557 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4558 _mm256_mask_cmpge_epu16_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4560 return (__mmask8) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
4561 (__v16hi) __Y, 5,
4562 (__mmask8) __M);
4565 extern __inline __mmask8
4566 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4567 _mm256_mask_cmple_epu16_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4569 return (__mmask8) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
4570 (__v16hi) __Y, 2,
4571 (__mmask8) __M);
4574 extern __inline __mmask8
4575 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4576 _mm256_mask_cmpneq_epi8_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4578 return (__mmask8) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
4579 (__v32qi) __Y, 4,
4580 (__mmask8) __M);
4583 extern __inline __mmask8
4584 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4585 _mm256_mask_cmplt_epi8_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4587 return (__mmask8) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
4588 (__v32qi) __Y, 1,
4589 (__mmask8) __M);
4592 extern __inline __mmask8
4593 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4594 _mm256_mask_cmpge_epi8_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4596 return (__mmask8) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
4597 (__v32qi) __Y, 5,
4598 (__mmask8) __M);
4601 extern __inline __mmask8
4602 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4603 _mm256_mask_cmple_epi8_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4605 return (__mmask8) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
4606 (__v32qi) __Y, 2,
4607 (__mmask8) __M);
4610 extern __inline __mmask8
4611 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4612 _mm256_mask_cmpneq_epi16_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4614 return (__mmask8) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
4615 (__v16hi) __Y, 4,
4616 (__mmask8) __M);
4619 extern __inline __mmask8
4620 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4621 _mm256_mask_cmplt_epi16_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4623 return (__mmask8) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
4624 (__v16hi) __Y, 1,
4625 (__mmask8) __M);
4628 extern __inline __mmask8
4629 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4630 _mm256_mask_cmpge_epi16_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4632 return (__mmask8) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
4633 (__v16hi) __Y, 5,
4634 (__mmask8) __M);
4637 extern __inline __mmask8
4638 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4639 _mm256_mask_cmple_epi16_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4641 return (__mmask8) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
4642 (__v16hi) __Y, 2,
4643 (__mmask8) __M);
4646 #ifdef __DISABLE_AVX512VLBW__
4647 #undef __DISABLE_AVX512VLBW__
4648 #pragma GCC pop_options
4649 #endif /* __DISABLE_AVX512VLBW__ */
4651 #endif /* _AVX512VLBWINTRIN_H_INCLUDED */