gcc/
[official-gcc.git] / gcc / config / i386 / avx512vlbwintrin.h
blob601dcdd91a10d2c1c68b4135d1d8e715bcc0c4fd
1 /* Copyright (C) 2014-2015 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 ((__v32qi *) __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 ((__v16qi *) __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 ((__v16hi *) __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 ((__v16hi *) __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 ((__v8hi *) __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 ((__v8hi *) __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 ((__v32qi *) __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 ((__v32qi *) __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 ((__v16qi *) __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 ((__v16qi *) __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) -
582 extern __inline __m256i
583 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
584 _mm256_mask_permutex2var_epi16 (__m256i __A, __mmask16 __U,
585 __m256i __I, __m256i __B)
587 return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I
588 /* idx */ ,
589 (__v16hi) __A,
590 (__v16hi) __B,
591 (__mmask16)
592 __U);
595 extern __inline __m256i
596 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
597 _mm256_mask2_permutex2var_epi16 (__m256i __A, __m256i __I,
598 __mmask16 __U, __m256i __B)
600 return (__m256i) __builtin_ia32_vpermi2varhi256_mask ((__v16hi) __A,
601 (__v16hi) __I
602 /* idx */ ,
603 (__v16hi) __B,
604 (__mmask16)
605 __U);
608 extern __inline __m256i
609 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
610 _mm256_maskz_permutex2var_epi16 (__mmask16 __U, __m256i __A,
611 __m256i __I, __m256i __B)
613 return (__m256i) __builtin_ia32_vpermt2varhi256_maskz ((__v16hi) __I
614 /* idx */ ,
615 (__v16hi) __A,
616 (__v16hi) __B,
617 (__mmask16)
618 __U);
621 extern __inline __m128i
622 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
623 _mm_permutex2var_epi16 (__m128i __A, __m128i __I, __m128i __B)
625 return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I
626 /* idx */ ,
627 (__v8hi) __A,
628 (__v8hi) __B,
629 (__mmask8) -
633 extern __inline __m128i
634 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
635 _mm_mask_permutex2var_epi16 (__m128i __A, __mmask8 __U, __m128i __I,
636 __m128i __B)
638 return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I
639 /* idx */ ,
640 (__v8hi) __A,
641 (__v8hi) __B,
642 (__mmask8)
643 __U);
646 extern __inline __m128i
647 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
648 _mm_mask2_permutex2var_epi16 (__m128i __A, __m128i __I, __mmask8 __U,
649 __m128i __B)
651 return (__m128i) __builtin_ia32_vpermi2varhi128_mask ((__v8hi) __A,
652 (__v8hi) __I
653 /* idx */ ,
654 (__v8hi) __B,
655 (__mmask8)
656 __U);
659 extern __inline __m128i
660 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
661 _mm_maskz_permutex2var_epi16 (__mmask8 __U, __m128i __A, __m128i __I,
662 __m128i __B)
664 return (__m128i) __builtin_ia32_vpermt2varhi128_maskz ((__v8hi) __I
665 /* idx */ ,
666 (__v8hi) __A,
667 (__v8hi) __B,
668 (__mmask8)
669 __U);
672 extern __inline __m256i
673 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
674 _mm256_mask_maddubs_epi16 (__m256i __W, __mmask16 __U, __m256i __X,
675 __m256i __Y)
677 return (__m256i) __builtin_ia32_pmaddubsw256_mask ((__v32qi) __X,
678 (__v32qi) __Y,
679 (__v16hi) __W,
680 (__mmask16) __U);
683 extern __inline __m256i
684 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
685 _mm256_maskz_maddubs_epi16 (__mmask16 __U, __m256i __X, __m256i __Y)
687 return (__m256i) __builtin_ia32_pmaddubsw256_mask ((__v32qi) __X,
688 (__v32qi) __Y,
689 (__v16hi)
690 _mm256_setzero_si256 (),
691 (__mmask16) __U);
694 extern __inline __m128i
695 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
696 _mm_mask_maddubs_epi16 (__m128i __W, __mmask8 __U, __m128i __X,
697 __m128i __Y)
699 return (__m128i) __builtin_ia32_pmaddubsw128_mask ((__v16qi) __X,
700 (__v16qi) __Y,
701 (__v8hi) __W,
702 (__mmask8) __U);
705 extern __inline __m128i
706 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
707 _mm_maskz_maddubs_epi16 (__mmask8 __U, __m128i __X, __m128i __Y)
709 return (__m128i) __builtin_ia32_pmaddubsw128_mask ((__v16qi) __X,
710 (__v16qi) __Y,
711 (__v8hi)
712 _mm_setzero_hi (),
713 (__mmask8) __U);
716 extern __inline __m256i
717 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
718 _mm256_mask_madd_epi16 (__m256i __W, __mmask8 __U, __m256i __A,
719 __m256i __B)
721 return (__m256i) __builtin_ia32_pmaddwd256_mask ((__v16hi) __A,
722 (__v16hi) __B,
723 (__v8si) __W,
724 (__mmask8) __U);
727 extern __inline __m256i
728 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
729 _mm256_maskz_madd_epi16 (__mmask8 __U, __m256i __A, __m256i __B)
731 return (__m256i) __builtin_ia32_pmaddwd256_mask ((__v16hi) __A,
732 (__v16hi) __B,
733 (__v8si)
734 _mm256_setzero_si256 (),
735 (__mmask8) __U);
738 extern __inline __m128i
739 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
740 _mm_mask_madd_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
741 __m128i __B)
743 return (__m128i) __builtin_ia32_pmaddwd128_mask ((__v8hi) __A,
744 (__v8hi) __B,
745 (__v4si) __W,
746 (__mmask8) __U);
749 extern __inline __m128i
750 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
751 _mm_maskz_madd_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
753 return (__m128i) __builtin_ia32_pmaddwd128_mask ((__v8hi) __A,
754 (__v8hi) __B,
755 (__v4si)
756 _mm_setzero_si128 (),
757 (__mmask8) __U);
760 extern __inline __mmask16
761 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
762 _mm_movepi8_mask (__m128i __A)
764 return (__mmask16) __builtin_ia32_cvtb2mask128 ((__v16qi) __A);
767 extern __inline __mmask32
768 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
769 _mm256_movepi8_mask (__m256i __A)
771 return (__mmask32) __builtin_ia32_cvtb2mask256 ((__v32qi) __A);
774 extern __inline __mmask8
775 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
776 _mm_movepi16_mask (__m128i __A)
778 return (__mmask8) __builtin_ia32_cvtw2mask128 ((__v8hi) __A);
781 extern __inline __mmask16
782 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
783 _mm256_movepi16_mask (__m256i __A)
785 return (__mmask16) __builtin_ia32_cvtw2mask256 ((__v16hi) __A);
788 extern __inline __m128i
789 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
790 _mm_movm_epi8 (__mmask16 __A)
792 return (__m128i) __builtin_ia32_cvtmask2b128 (__A);
795 extern __inline __m256i
796 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
797 _mm256_movm_epi8 (__mmask32 __A)
799 return (__m256i) __builtin_ia32_cvtmask2b256 (__A);
802 extern __inline __m128i
803 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
804 _mm_movm_epi16 (__mmask8 __A)
806 return (__m128i) __builtin_ia32_cvtmask2w128 (__A);
809 extern __inline __m256i
810 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
811 _mm256_movm_epi16 (__mmask16 __A)
813 return (__m256i) __builtin_ia32_cvtmask2w256 (__A);
816 extern __inline __mmask16
817 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
818 _mm_test_epi8_mask (__m128i __A, __m128i __B)
820 return (__mmask16) __builtin_ia32_ptestmb128 ((__v16qi) __A,
821 (__v16qi) __B,
822 (__mmask16) -1);
825 extern __inline __mmask16
826 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
827 _mm_mask_test_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
829 return (__mmask16) __builtin_ia32_ptestmb128 ((__v16qi) __A,
830 (__v16qi) __B, __U);
833 extern __inline __mmask32
834 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
835 _mm256_test_epi8_mask (__m256i __A, __m256i __B)
837 return (__mmask32) __builtin_ia32_ptestmb256 ((__v32qi) __A,
838 (__v32qi) __B,
839 (__mmask32) -1);
842 extern __inline __mmask32
843 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
844 _mm256_mask_test_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
846 return (__mmask32) __builtin_ia32_ptestmb256 ((__v32qi) __A,
847 (__v32qi) __B, __U);
850 extern __inline __mmask8
851 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
852 _mm_test_epi16_mask (__m128i __A, __m128i __B)
854 return (__mmask8) __builtin_ia32_ptestmw128 ((__v8hi) __A,
855 (__v8hi) __B,
856 (__mmask8) -1);
859 extern __inline __mmask8
860 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
861 _mm_mask_test_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
863 return (__mmask8) __builtin_ia32_ptestmw128 ((__v8hi) __A,
864 (__v8hi) __B, __U);
867 extern __inline __mmask16
868 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
869 _mm256_test_epi16_mask (__m256i __A, __m256i __B)
871 return (__mmask16) __builtin_ia32_ptestmw256 ((__v16hi) __A,
872 (__v16hi) __B,
873 (__mmask16) -1);
876 extern __inline __mmask16
877 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
878 _mm256_mask_test_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
880 return (__mmask16) __builtin_ia32_ptestmw256 ((__v16hi) __A,
881 (__v16hi) __B, __U);
884 extern __inline __m256i
885 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
886 _mm256_maskz_min_epu16 (__mmask16 __M, __m256i __A, __m256i __B)
888 return (__m256i) __builtin_ia32_pminuw256_mask ((__v16hi) __A,
889 (__v16hi) __B,
890 (__v16hi)
891 _mm256_setzero_si256 (),
892 (__mmask16) __M);
895 extern __inline __m256i
896 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
897 _mm256_mask_min_epu16 (__m256i __W, __mmask16 __M, __m256i __A,
898 __m256i __B)
900 return (__m256i) __builtin_ia32_pminuw256_mask ((__v16hi) __A,
901 (__v16hi) __B,
902 (__v16hi) __W,
903 (__mmask16) __M);
906 extern __inline __m128i
907 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
908 _mm_maskz_min_epu16 (__mmask8 __M, __m128i __A, __m128i __B)
910 return (__m128i) __builtin_ia32_pminuw128_mask ((__v8hi) __A,
911 (__v8hi) __B,
912 (__v8hi)
913 _mm_setzero_di (),
914 (__mmask8) __M);
917 extern __inline __m128i
918 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
919 _mm_mask_min_epu16 (__m128i __W, __mmask8 __M, __m128i __A,
920 __m128i __B)
922 return (__m128i) __builtin_ia32_pminuw128_mask ((__v8hi) __A,
923 (__v8hi) __B,
924 (__v8hi) __W,
925 (__mmask8) __M);
928 extern __inline __m256i
929 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
930 _mm256_maskz_min_epi16 (__mmask16 __M, __m256i __A, __m256i __B)
932 return (__m256i) __builtin_ia32_pminsw256_mask ((__v16hi) __A,
933 (__v16hi) __B,
934 (__v16hi)
935 _mm256_setzero_si256 (),
936 (__mmask16) __M);
939 extern __inline __m256i
940 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
941 _mm256_mask_min_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
942 __m256i __B)
944 return (__m256i) __builtin_ia32_pminsw256_mask ((__v16hi) __A,
945 (__v16hi) __B,
946 (__v16hi) __W,
947 (__mmask16) __M);
950 extern __inline __m256i
951 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
952 _mm256_maskz_max_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
954 return (__m256i) __builtin_ia32_pmaxub256_mask ((__v32qi) __A,
955 (__v32qi) __B,
956 (__v32qi)
957 _mm256_setzero_si256 (),
958 (__mmask32) __M);
961 extern __inline __m256i
962 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
963 _mm256_mask_max_epu8 (__m256i __W, __mmask32 __M, __m256i __A,
964 __m256i __B)
966 return (__m256i) __builtin_ia32_pmaxub256_mask ((__v32qi) __A,
967 (__v32qi) __B,
968 (__v32qi) __W,
969 (__mmask32) __M);
972 extern __inline __m128i
973 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
974 _mm_maskz_max_epu8 (__mmask16 __M, __m128i __A, __m128i __B)
976 return (__m128i) __builtin_ia32_pmaxub128_mask ((__v16qi) __A,
977 (__v16qi) __B,
978 (__v16qi)
979 _mm_setzero_di (),
980 (__mmask16) __M);
983 extern __inline __m128i
984 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
985 _mm_mask_max_epu8 (__m128i __W, __mmask16 __M, __m128i __A,
986 __m128i __B)
988 return (__m128i) __builtin_ia32_pmaxub128_mask ((__v16qi) __A,
989 (__v16qi) __B,
990 (__v16qi) __W,
991 (__mmask16) __M);
994 extern __inline __m256i
995 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
996 _mm256_maskz_max_epi8 (__mmask32 __M, __m256i __A, __m256i __B)
998 return (__m256i) __builtin_ia32_pmaxsb256_mask ((__v32qi) __A,
999 (__v32qi) __B,
1000 (__v32qi)
1001 _mm256_setzero_si256 (),
1002 (__mmask32) __M);
1005 extern __inline __m256i
1006 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1007 _mm256_mask_max_epi8 (__m256i __W, __mmask32 __M, __m256i __A,
1008 __m256i __B)
1010 return (__m256i) __builtin_ia32_pmaxsb256_mask ((__v32qi) __A,
1011 (__v32qi) __B,
1012 (__v32qi) __W,
1013 (__mmask32) __M);
1016 extern __inline __m128i
1017 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1018 _mm_maskz_max_epi8 (__mmask16 __M, __m128i __A, __m128i __B)
1020 return (__m128i) __builtin_ia32_pmaxsb128_mask ((__v16qi) __A,
1021 (__v16qi) __B,
1022 (__v16qi)
1023 _mm_setzero_di (),
1024 (__mmask16) __M);
1027 extern __inline __m128i
1028 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1029 _mm_mask_max_epi8 (__m128i __W, __mmask16 __M, __m128i __A,
1030 __m128i __B)
1032 return (__m128i) __builtin_ia32_pmaxsb128_mask ((__v16qi) __A,
1033 (__v16qi) __B,
1034 (__v16qi) __W,
1035 (__mmask16) __M);
1038 extern __inline __m256i
1039 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1040 _mm256_maskz_min_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
1042 return (__m256i) __builtin_ia32_pminub256_mask ((__v32qi) __A,
1043 (__v32qi) __B,
1044 (__v32qi)
1045 _mm256_setzero_si256 (),
1046 (__mmask32) __M);
1049 extern __inline __m256i
1050 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1051 _mm256_mask_min_epu8 (__m256i __W, __mmask32 __M, __m256i __A,
1052 __m256i __B)
1054 return (__m256i) __builtin_ia32_pminub256_mask ((__v32qi) __A,
1055 (__v32qi) __B,
1056 (__v32qi) __W,
1057 (__mmask32) __M);
1060 extern __inline __m128i
1061 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1062 _mm_maskz_min_epu8 (__mmask16 __M, __m128i __A, __m128i __B)
1064 return (__m128i) __builtin_ia32_pminub128_mask ((__v16qi) __A,
1065 (__v16qi) __B,
1066 (__v16qi)
1067 _mm_setzero_di (),
1068 (__mmask16) __M);
1071 extern __inline __m128i
1072 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1073 _mm_mask_min_epu8 (__m128i __W, __mmask16 __M, __m128i __A,
1074 __m128i __B)
1076 return (__m128i) __builtin_ia32_pminub128_mask ((__v16qi) __A,
1077 (__v16qi) __B,
1078 (__v16qi) __W,
1079 (__mmask16) __M);
1082 extern __inline __m256i
1083 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1084 _mm256_maskz_min_epi8 (__mmask32 __M, __m256i __A, __m256i __B)
1086 return (__m256i) __builtin_ia32_pminsb256_mask ((__v32qi) __A,
1087 (__v32qi) __B,
1088 (__v32qi)
1089 _mm256_setzero_si256 (),
1090 (__mmask32) __M);
1093 extern __inline __m256i
1094 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1095 _mm256_mask_min_epi8 (__m256i __W, __mmask32 __M, __m256i __A,
1096 __m256i __B)
1098 return (__m256i) __builtin_ia32_pminsb256_mask ((__v32qi) __A,
1099 (__v32qi) __B,
1100 (__v32qi) __W,
1101 (__mmask32) __M);
1104 extern __inline __m128i
1105 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1106 _mm_maskz_min_epi8 (__mmask16 __M, __m128i __A, __m128i __B)
1108 return (__m128i) __builtin_ia32_pminsb128_mask ((__v16qi) __A,
1109 (__v16qi) __B,
1110 (__v16qi)
1111 _mm_setzero_di (),
1112 (__mmask16) __M);
1115 extern __inline __m128i
1116 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1117 _mm_mask_min_epi8 (__m128i __W, __mmask16 __M, __m128i __A,
1118 __m128i __B)
1120 return (__m128i) __builtin_ia32_pminsb128_mask ((__v16qi) __A,
1121 (__v16qi) __B,
1122 (__v16qi) __W,
1123 (__mmask16) __M);
1126 extern __inline __m256i
1127 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1128 _mm256_maskz_max_epi16 (__mmask16 __M, __m256i __A, __m256i __B)
1130 return (__m256i) __builtin_ia32_pmaxsw256_mask ((__v16hi) __A,
1131 (__v16hi) __B,
1132 (__v16hi)
1133 _mm256_setzero_si256 (),
1134 (__mmask16) __M);
1137 extern __inline __m256i
1138 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1139 _mm256_mask_max_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
1140 __m256i __B)
1142 return (__m256i) __builtin_ia32_pmaxsw256_mask ((__v16hi) __A,
1143 (__v16hi) __B,
1144 (__v16hi) __W,
1145 (__mmask16) __M);
1148 extern __inline __m128i
1149 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1150 _mm_maskz_max_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
1152 return (__m128i) __builtin_ia32_pmaxsw128_mask ((__v8hi) __A,
1153 (__v8hi) __B,
1154 (__v8hi)
1155 _mm_setzero_di (),
1156 (__mmask8) __M);
1159 extern __inline __m128i
1160 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1161 _mm_mask_max_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
1162 __m128i __B)
1164 return (__m128i) __builtin_ia32_pmaxsw128_mask ((__v8hi) __A,
1165 (__v8hi) __B,
1166 (__v8hi) __W,
1167 (__mmask8) __M);
1170 extern __inline __m256i
1171 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1172 _mm256_maskz_max_epu16 (__mmask16 __M, __m256i __A, __m256i __B)
1174 return (__m256i) __builtin_ia32_pmaxuw256_mask ((__v16hi) __A,
1175 (__v16hi) __B,
1176 (__v16hi)
1177 _mm256_setzero_si256 (),
1178 (__mmask16) __M);
1181 extern __inline __m256i
1182 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1183 _mm256_mask_max_epu16 (__m256i __W, __mmask16 __M, __m256i __A,
1184 __m256i __B)
1186 return (__m256i) __builtin_ia32_pmaxuw256_mask ((__v16hi) __A,
1187 (__v16hi) __B,
1188 (__v16hi) __W,
1189 (__mmask16) __M);
1192 extern __inline __m128i
1193 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1194 _mm_maskz_max_epu16 (__mmask8 __M, __m128i __A, __m128i __B)
1196 return (__m128i) __builtin_ia32_pmaxuw128_mask ((__v8hi) __A,
1197 (__v8hi) __B,
1198 (__v8hi)
1199 _mm_setzero_di (),
1200 (__mmask8) __M);
1203 extern __inline __m128i
1204 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1205 _mm_mask_max_epu16 (__m128i __W, __mmask8 __M, __m128i __A,
1206 __m128i __B)
1208 return (__m128i) __builtin_ia32_pmaxuw128_mask ((__v8hi) __A,
1209 (__v8hi) __B,
1210 (__v8hi) __W,
1211 (__mmask8) __M);
1214 extern __inline __m128i
1215 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1216 _mm_maskz_min_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
1218 return (__m128i) __builtin_ia32_pminsw128_mask ((__v8hi) __A,
1219 (__v8hi) __B,
1220 (__v8hi)
1221 _mm_setzero_di (),
1222 (__mmask8) __M);
1225 extern __inline __m128i
1226 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1227 _mm_mask_min_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
1228 __m128i __B)
1230 return (__m128i) __builtin_ia32_pminsw128_mask ((__v8hi) __A,
1231 (__v8hi) __B,
1232 (__v8hi) __W,
1233 (__mmask8) __M);
1236 #ifdef __OPTIMIZE__
1237 extern __inline __m256i
1238 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1239 _mm256_mask_alignr_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
1240 __m256i __B, const int __N)
1242 return (__m256i) __builtin_ia32_palignr256_mask ((__v4di) __A,
1243 (__v4di) __B,
1244 __N * 8,
1245 (__v4di) __W,
1246 (__mmask32) __U);
1249 extern __inline __m256i
1250 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1251 _mm256_maskz_alignr_epi8 (__mmask32 __U, __m256i __A, __m256i __B,
1252 const int __N)
1254 return (__m256i) __builtin_ia32_palignr256_mask ((__v4di) __A,
1255 (__v4di) __B,
1256 __N * 8,
1257 (__v4di)
1258 _mm256_setzero_si256 (),
1259 (__mmask32) __U);
1262 extern __inline __m128i
1263 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1264 _mm_mask_alignr_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
1265 __m128i __B, const int __N)
1267 return (__m128i) __builtin_ia32_palignr128_mask ((__v2di) __A,
1268 (__v2di) __B,
1269 __N * 8,
1270 (__v2di) __W,
1271 (__mmask16) __U);
1274 extern __inline __m128i
1275 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1276 _mm_maskz_alignr_epi8 (__mmask16 __U, __m128i __A, __m128i __B,
1277 const int __N)
1279 return (__m128i) __builtin_ia32_palignr128_mask ((__v2di) __A,
1280 (__v2di) __B,
1281 __N * 8,
1282 (__v2di)
1283 _mm_setzero_si128 (),
1284 (__mmask16) __U);
1287 extern __inline __m256i
1288 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1289 _mm256_dbsad_epu8 (__m256i __A, __m256i __B, const int __imm)
1291 return (__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi) __A,
1292 (__v32qi) __B,
1293 __imm,
1294 (__v16hi)
1295 _mm256_setzero_si256 (),
1296 (__mmask16) -1);
1299 extern __inline __m256i
1300 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1301 _mm256_mask_dbsad_epu8 (__m256i __W, __mmask16 __U, __m256i __A,
1302 __m256i __B, const int __imm)
1304 return (__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi) __A,
1305 (__v32qi) __B,
1306 __imm,
1307 (__v16hi) __W,
1308 (__mmask16) __U);
1311 extern __inline __m256i
1312 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1313 _mm256_maskz_dbsad_epu8 (__mmask16 __U, __m256i __A, __m256i __B,
1314 const int __imm)
1316 return (__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi) __A,
1317 (__v32qi) __B,
1318 __imm,
1319 (__v16hi)
1320 _mm256_setzero_si256 (),
1321 (__mmask16) __U);
1324 extern __inline __m128i
1325 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1326 _mm_dbsad_epu8 (__m128i __A, __m128i __B, const int __imm)
1328 return (__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi) __A,
1329 (__v16qi) __B,
1330 __imm,
1331 (__v8hi)
1332 _mm_setzero_hi (),
1333 (__mmask8) -1);
1336 extern __inline __m128i
1337 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1338 _mm_mask_dbsad_epu8 (__m128i __W, __mmask8 __U, __m128i __A,
1339 __m128i __B, const int __imm)
1341 return (__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi) __A,
1342 (__v16qi) __B,
1343 __imm,
1344 (__v8hi) __W,
1345 (__mmask8) __U);
1348 extern __inline __m128i
1349 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1350 _mm_maskz_dbsad_epu8 (__mmask8 __U, __m128i __A, __m128i __B,
1351 const int __imm)
1353 return (__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi) __A,
1354 (__v16qi) __B,
1355 __imm,
1356 (__v8hi)
1357 _mm_setzero_si128 (),
1358 (__mmask8) __U);
1361 extern __inline __m128i
1362 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1363 _mm_mask_blend_epi16 (__mmask8 __U, __m128i __A, __m128i __W)
1365 return (__m128i) __builtin_ia32_blendmw_128_mask ((__v8hi) __A,
1366 (__v8hi) __W,
1367 (__mmask8) __U);
1370 extern __inline __m128i
1371 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1372 _mm_mask_blend_epi8 (__mmask16 __U, __m128i __A, __m128i __W)
1374 return (__m128i) __builtin_ia32_blendmb_128_mask ((__v16qi) __A,
1375 (__v16qi) __W,
1376 (__mmask16) __U);
1379 extern __inline __m256i
1380 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1381 _mm256_mask_blend_epi16 (__mmask16 __U, __m256i __A, __m256i __W)
1383 return (__m256i) __builtin_ia32_blendmw_256_mask ((__v16hi) __A,
1384 (__v16hi) __W,
1385 (__mmask16) __U);
1388 extern __inline __m256i
1389 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1390 _mm256_mask_blend_epi8 (__mmask32 __U, __m256i __A, __m256i __W)
1392 return (__m256i) __builtin_ia32_blendmb_256_mask ((__v32qi) __A,
1393 (__v32qi) __W,
1394 (__mmask32) __U);
1397 extern __inline __mmask8
1398 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1399 _mm_mask_cmp_epi16_mask (__mmask8 __U, __m128i __X, __m128i __Y,
1400 const int __P)
1402 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
1403 (__v8hi) __Y, __P,
1404 (__mmask8) __U);
1407 extern __inline __mmask8
1408 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1409 _mm_cmp_epi16_mask (__m128i __X, __m128i __Y, const int __P)
1411 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
1412 (__v8hi) __Y, __P,
1413 (__mmask8) -1);
1416 extern __inline __mmask16
1417 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1418 _mm256_mask_cmp_epi16_mask (__mmask16 __U, __m256i __X, __m256i __Y,
1419 const int __P)
1421 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
1422 (__v16hi) __Y, __P,
1423 (__mmask16) __U);
1426 extern __inline __mmask16
1427 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1428 _mm256_cmp_epi16_mask (__m256i __X, __m256i __Y, const int __P)
1430 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
1431 (__v16hi) __Y, __P,
1432 (__mmask16) -1);
1435 extern __inline __mmask16
1436 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1437 _mm_mask_cmp_epi8_mask (__mmask8 __U, __m128i __X, __m128i __Y,
1438 const int __P)
1440 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
1441 (__v16qi) __Y, __P,
1442 (__mmask16) __U);
1445 extern __inline __mmask16
1446 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1447 _mm_cmp_epi8_mask (__m128i __X, __m128i __Y, const int __P)
1449 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
1450 (__v16qi) __Y, __P,
1451 (__mmask16) -1);
1454 extern __inline __mmask32
1455 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1456 _mm256_mask_cmp_epi8_mask (__mmask16 __U, __m256i __X, __m256i __Y,
1457 const int __P)
1459 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
1460 (__v32qi) __Y, __P,
1461 (__mmask32) __U);
1464 extern __inline __mmask16
1465 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1466 _mm256_cmp_epi8_mask (__m256i __X, __m256i __Y, const int __P)
1468 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
1469 (__v32qi) __Y, __P,
1470 (__mmask32) -1);
1473 extern __inline __mmask8
1474 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1475 _mm_mask_cmp_epu16_mask (__mmask8 __U, __m128i __X, __m128i __Y,
1476 const int __P)
1478 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
1479 (__v8hi) __Y, __P,
1480 (__mmask8) __U);
1483 extern __inline __mmask8
1484 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1485 _mm_cmp_epu16_mask (__m128i __X, __m128i __Y, const int __P)
1487 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
1488 (__v8hi) __Y, __P,
1489 (__mmask8) -1);
1492 extern __inline __mmask16
1493 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1494 _mm256_mask_cmp_epu16_mask (__mmask16 __U, __m256i __X, __m256i __Y,
1495 const int __P)
1497 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
1498 (__v16hi) __Y, __P,
1499 (__mmask16) __U);
1502 extern __inline __mmask16
1503 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1504 _mm256_cmp_epu16_mask (__m256i __X, __m256i __Y, const int __P)
1506 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
1507 (__v16hi) __Y, __P,
1508 (__mmask16) -1);
1511 extern __inline __mmask16
1512 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1513 _mm_mask_cmp_epu8_mask (__mmask8 __U, __m128i __X, __m128i __Y,
1514 const int __P)
1516 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
1517 (__v16qi) __Y, __P,
1518 (__mmask16) __U);
1521 extern __inline __mmask16
1522 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1523 _mm_cmp_epu8_mask (__m128i __X, __m128i __Y, const int __P)
1525 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
1526 (__v16qi) __Y, __P,
1527 (__mmask16) -1);
1530 extern __inline __mmask32
1531 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1532 _mm256_mask_cmp_epu8_mask (__mmask16 __U, __m256i __X, __m256i __Y,
1533 const int __P)
1535 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
1536 (__v32qi) __Y, __P,
1537 (__mmask32) __U);
1540 extern __inline __mmask16
1541 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1542 _mm256_cmp_epu8_mask (__m256i __X, __m256i __Y, const int __P)
1544 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
1545 (__v32qi) __Y, __P,
1546 (__mmask32) -1);
1549 extern __inline __m256i
1550 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1551 _mm256_mask_srli_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
1552 const int __imm)
1554 return (__m256i) __builtin_ia32_psrlwi256_mask ((__v16hi) __A, __imm,
1555 (__v16hi) __W,
1556 (__mmask16) __U);
1559 extern __inline __m256i
1560 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1561 _mm256_maskz_srli_epi16 (__mmask16 __U, __m256i __A, const int __imm)
1563 return (__m256i) __builtin_ia32_psrlwi256_mask ((__v16hi) __A, __imm,
1564 (__v16hi)
1565 _mm256_setzero_si256 (),
1566 (__mmask16) __U);
1569 extern __inline __m128i
1570 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1571 _mm_mask_srli_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
1572 const int __imm)
1574 return (__m128i) __builtin_ia32_psrlwi128_mask ((__v8hi) __A, __imm,
1575 (__v8hi) __W,
1576 (__mmask8) __U);
1579 extern __inline __m128i
1580 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1581 _mm_maskz_srli_epi16 (__mmask8 __U, __m128i __A, const int __imm)
1583 return (__m128i) __builtin_ia32_psrlwi128_mask ((__v8hi) __A, __imm,
1584 (__v8hi)
1585 _mm_setzero_si128 (),
1586 (__mmask8) __U);
1589 extern __inline __m256i
1590 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1591 _mm256_mask_shufflehi_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
1592 const int __imm)
1594 return (__m256i) __builtin_ia32_pshufhw256_mask ((__v16hi) __A,
1595 __imm,
1596 (__v16hi) __W,
1597 (__mmask16) __U);
1600 extern __inline __m256i
1601 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1602 _mm256_maskz_shufflehi_epi16 (__mmask16 __U, __m256i __A,
1603 const int __imm)
1605 return (__m256i) __builtin_ia32_pshufhw256_mask ((__v16hi) __A,
1606 __imm,
1607 (__v16hi)
1608 _mm256_setzero_si256 (),
1609 (__mmask16) __U);
1612 extern __inline __m128i
1613 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1614 _mm_mask_shufflehi_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
1615 const int __imm)
1617 return (__m128i) __builtin_ia32_pshufhw128_mask ((__v8hi) __A, __imm,
1618 (__v8hi) __W,
1619 (__mmask8) __U);
1622 extern __inline __m128i
1623 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1624 _mm_maskz_shufflehi_epi16 (__mmask8 __U, __m128i __A, const int __imm)
1626 return (__m128i) __builtin_ia32_pshufhw128_mask ((__v8hi) __A, __imm,
1627 (__v8hi)
1628 _mm_setzero_hi (),
1629 (__mmask8) __U);
1632 extern __inline __m256i
1633 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1634 _mm256_mask_shufflelo_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
1635 const int __imm)
1637 return (__m256i) __builtin_ia32_pshuflw256_mask ((__v16hi) __A,
1638 __imm,
1639 (__v16hi) __W,
1640 (__mmask16) __U);
1643 extern __inline __m256i
1644 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1645 _mm256_maskz_shufflelo_epi16 (__mmask16 __U, __m256i __A,
1646 const int __imm)
1648 return (__m256i) __builtin_ia32_pshuflw256_mask ((__v16hi) __A,
1649 __imm,
1650 (__v16hi)
1651 _mm256_setzero_si256 (),
1652 (__mmask16) __U);
1655 extern __inline __m128i
1656 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1657 _mm_mask_shufflelo_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
1658 const int __imm)
1660 return (__m128i) __builtin_ia32_pshuflw128_mask ((__v8hi) __A, __imm,
1661 (__v8hi) __W,
1662 (__mmask8) __U);
1665 extern __inline __m128i
1666 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1667 _mm_maskz_shufflelo_epi16 (__mmask8 __U, __m128i __A, const int __imm)
1669 return (__m128i) __builtin_ia32_pshuflw128_mask ((__v8hi) __A, __imm,
1670 (__v8hi)
1671 _mm_setzero_hi (),
1672 (__mmask8) __U);
1675 extern __inline __m256i
1676 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1677 _mm256_mask_srai_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
1678 const int __imm)
1680 return (__m256i) __builtin_ia32_psrawi256_mask ((__v16hi) __A, __imm,
1681 (__v16hi) __W,
1682 (__mmask16) __U);
1685 extern __inline __m256i
1686 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1687 _mm256_maskz_srai_epi16 (__mmask16 __U, __m256i __A, const int __imm)
1689 return (__m256i) __builtin_ia32_psrawi256_mask ((__v16hi) __A, __imm,
1690 (__v16hi)
1691 _mm256_setzero_si256 (),
1692 (__mmask16) __U);
1695 extern __inline __m128i
1696 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1697 _mm_mask_srai_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
1698 const int __imm)
1700 return (__m128i) __builtin_ia32_psrawi128_mask ((__v8hi) __A, __imm,
1701 (__v8hi) __W,
1702 (__mmask8) __U);
1705 extern __inline __m128i
1706 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1707 _mm_maskz_srai_epi16 (__mmask8 __U, __m128i __A, const int __imm)
1709 return (__m128i) __builtin_ia32_psrawi128_mask ((__v8hi) __A, __imm,
1710 (__v8hi)
1711 _mm_setzero_si128 (),
1712 (__mmask8) __U);
1715 extern __inline __m256i
1716 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1717 _mm256_mask_slli_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
1718 int __B)
1720 return (__m256i) __builtin_ia32_psllwi256_mask ((__v16hi) __A, __B,
1721 (__v16hi) __W,
1722 (__mmask16) __U);
1725 extern __inline __m256i
1726 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1727 _mm256_maskz_slli_epi16 (__mmask16 __U, __m256i __A, int __B)
1729 return (__m256i) __builtin_ia32_psllwi256_mask ((__v16hi) __A, __B,
1730 (__v16hi)
1731 _mm256_setzero_si256 (),
1732 (__mmask16) __U);
1735 extern __inline __m128i
1736 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1737 _mm_mask_slli_epi16 (__m128i __W, __mmask8 __U, __m128i __A, int __B)
1739 return (__m128i) __builtin_ia32_psllwi128_mask ((__v8hi) __A, __B,
1740 (__v8hi) __W,
1741 (__mmask8) __U);
1744 extern __inline __m128i
1745 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1746 _mm_maskz_slli_epi16 (__mmask8 __U, __m128i __A, int __B)
1748 return (__m128i) __builtin_ia32_psllwi128_mask ((__v8hi) __A, __B,
1749 (__v8hi)
1750 _mm_setzero_si128 (),
1751 (__mmask8) __U);
1754 #else
1755 #define _mm256_mask_alignr_epi8(W, U, X, Y, N) \
1756 ((__m256i) __builtin_ia32_palignr256_mask ((__v4di)(__m256i)(X), \
1757 (__v4di)(__m256i)(Y), (int)(N * 8), \
1758 (__v4di)(__m256i)(X), (__mmask32)(U)))
1760 #define _mm256_mask_srli_epi16(W, U, A, B) \
1761 ((__m256i) __builtin_ia32_psrlwi256_mask ((__v16hi)(__m256i)(A), \
1762 (int)(B), (__v16hi)(__m256i)(W), (__mmask16)(U)))
1764 #define _mm256_maskz_srli_epi16(U, A, B) \
1765 ((__m256i) __builtin_ia32_psrlwi256_mask ((__v16hi)(__m256i)(A), \
1766 (int)(B), (__v16hi)_mm256_setzero_si256 (), (__mmask16)(U)))
1768 #define _mm_mask_srli_epi16(W, U, A, B) \
1769 ((__m128i) __builtin_ia32_psrlwi128_mask ((__v8hi)(__m128i)(A), \
1770 (int)(B), (__v8hi)(__m128i)(W), (__mmask8)(U)))
1772 #define _mm_maskz_srli_epi16(U, A, B) \
1773 ((__m128i) __builtin_ia32_psrlwi128_mask ((__v8hi)(__m128i)(A), \
1774 (int)(B), (__v8hi)_mm_setzero_si128(), (__mmask8)(U)))
1776 #define _mm256_mask_srai_epi16(W, U, A, B) \
1777 ((__m256i) __builtin_ia32_psrawi256_mask ((__v16hi)(__m256i)(A), \
1778 (int)(B), (__v16hi)(__m256i)(W), (__mmask16)(U)))
1780 #define _mm256_maskz_srai_epi16(U, A, B) \
1781 ((__m256i) __builtin_ia32_psrawi256_mask ((__v16hi)(__m256i)(A), \
1782 (int)(B), (__v16hi)_mm256_setzero_si256 (), (__mmask16)(U)))
1784 #define _mm_mask_srai_epi16(W, U, A, B) \
1785 ((__m128i) __builtin_ia32_psrawi128_mask ((__v8hi)(__m128i)(A), \
1786 (int)(B), (__v8hi)(__m128i)(W), (__mmask8)(U)))
1788 #define _mm_maskz_srai_epi16(U, A, B) \
1789 ((__m128i) __builtin_ia32_psrawi128_mask ((__v8hi)(__m128i)(A), \
1790 (int)(B), (__v8hi)_mm_setzero_si128(), (__mmask8)(U)))
1792 #define _mm256_mask_shufflehi_epi16(W, U, A, B) \
1793 ((__m256i) __builtin_ia32_pshufhw256_mask ((__v16hi)(__m256i)(A), (int)(B), \
1794 (__v16hi)(__m256i)(W), \
1795 (__mmask16)(U)))
1797 #define _mm256_maskz_shufflehi_epi16(U, A, B) \
1798 ((__m256i) __builtin_ia32_pshufhw256_mask ((__v16hi)(__m256i)(A), (int)(B), \
1799 (__v16hi)(__m256i)_mm256_setzero_si256 (), \
1800 (__mmask16)(U)))
1802 #define _mm_mask_shufflehi_epi16(W, U, A, B) \
1803 ((__m128i) __builtin_ia32_pshufhw128_mask ((__v8hi)(__m128i)(A), (int)(B), \
1804 (__v8hi)(__m128i)(W), \
1805 (__mmask8)(U)))
1807 #define _mm_maskz_shufflehi_epi16(U, A, B) \
1808 ((__m128i) __builtin_ia32_pshufhw128_mask ((__v8hi)(__m128i)(A), (int)(B), \
1809 (__v8hi)(__m128i)_mm_setzero_hi(), \
1810 (__mmask8)(U)))
1812 #define _mm256_mask_shufflelo_epi16(W, U, A, B) \
1813 ((__m256i) __builtin_ia32_pshuflw256_mask ((__v16hi)(__m256i)(A), (int)(B), \
1814 (__v16hi)(__m256i)(W), \
1815 (__mmask16)(U)))
1817 #define _mm256_maskz_shufflelo_epi16(U, A, B) \
1818 ((__m256i) __builtin_ia32_pshuflw256_mask ((__v16hi)(__m256i)(A), (int)(B), \
1819 (__v16hi)(__m256i)_mm256_setzero_si256 (), \
1820 (__mmask16)(U)))
1822 #define _mm_mask_shufflelo_epi16(W, U, A, B) \
1823 ((__m128i) __builtin_ia32_pshuflw128_mask ((__v8hi)(__m128i)(A), (int)(B), \
1824 (__v8hi)(__m128i)(W), \
1825 (__mmask8)(U)))
1827 #define _mm_maskz_shufflelo_epi16(U, A, B) \
1828 ((__m128i) __builtin_ia32_pshuflw128_mask ((__v8hi)(__m128i)(A), (int)(B), \
1829 (__v8hi)(__m128i)_mm_setzero_hi(), \
1830 (__mmask8)(U)))
1832 #define _mm256_maskz_alignr_epi8(U, X, Y, N) \
1833 ((__m256i) __builtin_ia32_palignr256_mask ((__v4di)(__m256i)(X), \
1834 (__v4di)(__m256i)(Y), (int)(N * 8), \
1835 (__v4di)(__m256i)_mm256_setzero_si256 (), \
1836 (__mmask32)(U)))
1838 #define _mm_mask_alignr_epi8(W, U, X, Y, N) \
1839 ((__m128i) __builtin_ia32_palignr128_mask ((__v2di)(__m128i)(X), \
1840 (__v2di)(__m128i)(Y), (int)(N * 8), \
1841 (__v2di)(__m128i)(X), (__mmask16)(U)))
1843 #define _mm_maskz_alignr_epi8(U, X, Y, N) \
1844 ((__m128i) __builtin_ia32_palignr128_mask ((__v2di)(__m128i)(X), \
1845 (__v2di)(__m128i)(Y), (int)(N * 8), \
1846 (__v2di)(__m128i)_mm_setzero_di(), \
1847 (__mmask16)(U)))
1849 #define _mm_mask_slli_epi16(W, U, X, C) \
1850 ((__m128i)__builtin_ia32_psllwi128_mask ((__v8hi)(__m128i)(X), (int)(C),\
1851 (__v8hi)(__m128i)(W),\
1852 (__mmask8)(U)))
1854 #define _mm_maskz_slli_epi16(U, X, C) \
1855 ((__m128i)__builtin_ia32_psllwi128_mask ((__v8hi)(__m128i)(X), (int)(C),\
1856 (__v8hi)(__m128i)_mm_setzero_hi(),\
1857 (__mmask8)(U)))
1859 #define _mm256_dbsad_epu8(X, Y, C) \
1860 ((__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi)(__m256i) (X), \
1861 (__v32qi)(__m256i) (Y), (int) (C), \
1862 (__v16hi)(__m256i)_mm256_setzero_si256(),\
1863 (__mmask16)-1))
1865 #define _mm256_mask_slli_epi16(W, U, X, C) \
1866 ((__m256i)__builtin_ia32_psllwi256_mask ((__v16hi)(__m256i)(X), (int)(C),\
1867 (__v16hi)(__m256i)(W),\
1868 (__mmask16)(U)))
1870 #define _mm256_maskz_slli_epi16(U, X, C) \
1871 ((__m256i)__builtin_ia32_psllwi256_mask ((__v16hi)(__m256i)(X), (int)(C),\
1872 (__v16hi)(__m256i)_mm256_setzero_si256 (),\
1873 (__mmask16)(U)))
1875 #define _mm256_mask_dbsad_epu8(W, U, X, Y, C) \
1876 ((__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi)(__m256i) (X), \
1877 (__v32qi)(__m256i) (Y), (int) (C), \
1878 (__v16hi)(__m256i)(W), \
1879 (__mmask16)(U)))
1881 #define _mm256_maskz_dbsad_epu8(U, X, Y, C) \
1882 ((__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi)(__m256i) (X), \
1883 (__v32qi)(__m256i) (Y), (int) (C), \
1884 (__v16hi)(__m256i)_mm256_setzero_si256(),\
1885 (__mmask16)(U)))
1887 #define _mm_dbsad_epu8(X, Y, C) \
1888 ((__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi)(__m128i) (X), \
1889 (__v16qi)(__m128i) (Y), (int) (C), \
1890 (__v8hi)(__m128i)_mm_setzero_si128(), \
1891 (__mmask8)-1))
1893 #define _mm_mask_dbsad_epu8(W, U, X, Y, C) \
1894 ((__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi)(__m128i) (X), \
1895 (__v16qi)(__m128i) (Y), (int) (C), \
1896 (__v8hi)(__m128i)(W), \
1897 (__mmask8)(U)))
1899 #define _mm_maskz_dbsad_epu8(U, X, Y, C) \
1900 ((__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi)(__m128i) (X), \
1901 (__v16qi)(__m128i) (Y), (int) (C), \
1902 (__v8hi)(__m128i)_mm_setzero_si128(), \
1903 (__mmask8)(U)))
1905 #define _mm_mask_blend_epi16(__U, __A, __W) \
1906 ((__m128i) __builtin_ia32_blendmw_128_mask ((__v8hi) (__A), \
1907 (__v8hi) (__W), \
1908 (__mmask8) (__U)))
1910 #define _mm_mask_blend_epi8(__U, __A, __W) \
1911 ((__m128i) __builtin_ia32_blendmb_128_mask ((__v16qi) (__A), \
1912 (__v16qi) (__W), \
1913 (__mmask16) (__U)))
1915 #define _mm256_mask_blend_epi16(__U, __A, __W) \
1916 ((__m256i) __builtin_ia32_blendmw_256_mask ((__v16hi) (__A), \
1917 (__v16hi) (__W), \
1918 (__mmask16) (__U)))
1920 #define _mm256_mask_blend_epi8(__U, __A, __W) \
1921 ((__m256i) __builtin_ia32_blendmb_256_mask ((__v32qi) (__A), \
1922 (__v32qi) (__W), \
1923 (__mmask32) (__U)))
1925 #define _mm_cmp_epi16_mask(X, Y, P) \
1926 ((__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi)(__m128i)(X), \
1927 (__v8hi)(__m128i)(Y), (int)(P),\
1928 (__mmask8)(-1)))
1930 #define _mm_cmp_epi8_mask(X, Y, P) \
1931 ((__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi)(__m128i)(X), \
1932 (__v16qi)(__m128i)(Y), (int)(P),\
1933 (__mmask16)(-1)))
1935 #define _mm256_cmp_epi16_mask(X, Y, P) \
1936 ((__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi)(__m256i)(X), \
1937 (__v16hi)(__m256i)(Y), (int)(P),\
1938 (__mmask16)(-1)))
1940 #define _mm256_cmp_epi8_mask(X, Y, P) \
1941 ((__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi)(__m256i)(X), \
1942 (__v32qi)(__m256i)(Y), (int)(P),\
1943 (__mmask32)(-1)))
1945 #define _mm_cmp_epu16_mask(X, Y, P) \
1946 ((__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi)(__m128i)(X), \
1947 (__v8hi)(__m128i)(Y), (int)(P),\
1948 (__mmask8)(-1)))
1950 #define _mm_cmp_epu8_mask(X, Y, P) \
1951 ((__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi)(__m128i)(X), \
1952 (__v16qi)(__m128i)(Y), (int)(P),\
1953 (__mmask16)(-1)))
1955 #define _mm256_cmp_epu16_mask(X, Y, P) \
1956 ((__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi)(__m256i)(X), \
1957 (__v16hi)(__m256i)(Y), (int)(P),\
1958 (__mmask16)(-1)))
1960 #define _mm256_cmp_epu8_mask(X, Y, P) \
1961 ((__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi)(__m256i)(X), \
1962 (__v32qi)(__m256i)(Y), (int)(P),\
1963 (__mmask32)-1))
1965 #define _mm_mask_cmp_epi16_mask(M, X, Y, P) \
1966 ((__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi)(__m128i)(X), \
1967 (__v8hi)(__m128i)(Y), (int)(P),\
1968 (__mmask16)(M)))
1970 #define _mm_mask_cmp_epi8_mask(M, X, Y, P) \
1971 ((__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi)(__m128i)(X), \
1972 (__v16qi)(__m128i)(Y), (int)(P),\
1973 (__mmask16)(M)))
1975 #define _mm256_mask_cmp_epi16_mask(M, X, Y, P) \
1976 ((__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi)(__m256i)(X), \
1977 (__v16hi)(__m256i)(Y), (int)(P),\
1978 (__mmask16)(M)))
1980 #define _mm256_mask_cmp_epi8_mask(M, X, Y, P) \
1981 ((__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi)(__m256i)(X), \
1982 (__v32qi)(__m256i)(Y), (int)(P),\
1983 (__mmask32)(M)))
1985 #define _mm_mask_cmp_epu16_mask(M, X, Y, P) \
1986 ((__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi)(__m128i)(X), \
1987 (__v8hi)(__m128i)(Y), (int)(P),\
1988 (__mmask8)(M)))
1990 #define _mm_mask_cmp_epu8_mask(M, X, Y, P) \
1991 ((__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi)(__m128i)(X), \
1992 (__v16qi)(__m128i)(Y), (int)(P),\
1993 (__mmask16)(M)))
1995 #define _mm256_mask_cmp_epu16_mask(M, X, Y, P) \
1996 ((__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi)(__m256i)(X), \
1997 (__v16hi)(__m256i)(Y), (int)(P),\
1998 (__mmask16)(M)))
2000 #define _mm256_mask_cmp_epu8_mask(M, X, Y, P) \
2001 ((__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi)(__m256i)(X), \
2002 (__v32qi)(__m256i)(Y), (int)(P),\
2003 (__mmask32)M))
2004 #endif
2006 extern __inline __mmask32
2007 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2008 _mm256_cmpneq_epi8_mask (__m256i __X, __m256i __Y)
2010 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
2011 (__v32qi) __Y, 4,
2012 (__mmask32) - 1);
2015 extern __inline __mmask32
2016 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2017 _mm256_cmplt_epi8_mask (__m256i __X, __m256i __Y)
2019 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
2020 (__v32qi) __Y, 1,
2021 (__mmask32) - 1);
2024 extern __inline __mmask32
2025 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2026 _mm256_cmpge_epi8_mask (__m256i __X, __m256i __Y)
2028 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
2029 (__v32qi) __Y, 5,
2030 (__mmask32) - 1);
2033 extern __inline __mmask32
2034 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2035 _mm256_cmple_epi8_mask (__m256i __X, __m256i __Y)
2037 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
2038 (__v32qi) __Y, 2,
2039 (__mmask32) - 1);
2042 extern __inline __mmask16
2043 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2044 _mm256_cmpneq_epi16_mask (__m256i __X, __m256i __Y)
2046 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
2047 (__v16hi) __Y, 4,
2048 (__mmask16) - 1);
2051 extern __inline __mmask16
2052 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2053 _mm256_cmplt_epi16_mask (__m256i __X, __m256i __Y)
2055 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
2056 (__v16hi) __Y, 1,
2057 (__mmask16) - 1);
2060 extern __inline __mmask16
2061 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2062 _mm256_cmpge_epi16_mask (__m256i __X, __m256i __Y)
2064 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
2065 (__v16hi) __Y, 5,
2066 (__mmask16) - 1);
2069 extern __inline __mmask16
2070 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2071 _mm256_cmple_epi16_mask (__m256i __X, __m256i __Y)
2073 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
2074 (__v16hi) __Y, 2,
2075 (__mmask16) - 1);
2078 extern __inline __mmask16
2079 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2080 _mm_cmpneq_epu8_mask (__m128i __X, __m128i __Y)
2082 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
2083 (__v16qi) __Y, 4,
2084 (__mmask16) - 1);
2087 extern __inline __mmask16
2088 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2089 _mm_cmplt_epu8_mask (__m128i __X, __m128i __Y)
2091 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
2092 (__v16qi) __Y, 1,
2093 (__mmask16) - 1);
2096 extern __inline __mmask16
2097 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2098 _mm_cmpge_epu8_mask (__m128i __X, __m128i __Y)
2100 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
2101 (__v16qi) __Y, 5,
2102 (__mmask16) - 1);
2105 extern __inline __mmask16
2106 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2107 _mm_cmple_epu8_mask (__m128i __X, __m128i __Y)
2109 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
2110 (__v16qi) __Y, 2,
2111 (__mmask16) - 1);
2114 extern __inline __mmask8
2115 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2116 _mm_cmpneq_epu16_mask (__m128i __X, __m128i __Y)
2118 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
2119 (__v8hi) __Y, 4,
2120 (__mmask8) - 1);
2123 extern __inline __mmask8
2124 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2125 _mm_cmplt_epu16_mask (__m128i __X, __m128i __Y)
2127 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
2128 (__v8hi) __Y, 1,
2129 (__mmask8) - 1);
2132 extern __inline __mmask8
2133 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2134 _mm_cmpge_epu16_mask (__m128i __X, __m128i __Y)
2136 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
2137 (__v8hi) __Y, 5,
2138 (__mmask8) - 1);
2141 extern __inline __mmask8
2142 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2143 _mm_cmple_epu16_mask (__m128i __X, __m128i __Y)
2145 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
2146 (__v8hi) __Y, 2,
2147 (__mmask8) - 1);
2150 extern __inline __mmask16
2151 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2152 _mm_cmpneq_epi8_mask (__m128i __X, __m128i __Y)
2154 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
2155 (__v16qi) __Y, 4,
2156 (__mmask16) - 1);
2159 extern __inline __mmask16
2160 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2161 _mm_cmplt_epi8_mask (__m128i __X, __m128i __Y)
2163 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
2164 (__v16qi) __Y, 1,
2165 (__mmask16) - 1);
2168 extern __inline __mmask16
2169 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2170 _mm_cmpge_epi8_mask (__m128i __X, __m128i __Y)
2172 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
2173 (__v16qi) __Y, 5,
2174 (__mmask16) - 1);
2177 extern __inline __mmask16
2178 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2179 _mm_cmple_epi8_mask (__m128i __X, __m128i __Y)
2181 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
2182 (__v16qi) __Y, 2,
2183 (__mmask16) - 1);
2186 extern __inline __mmask8
2187 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2188 _mm_cmpneq_epi16_mask (__m128i __X, __m128i __Y)
2190 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
2191 (__v8hi) __Y, 4,
2192 (__mmask8) - 1);
2195 extern __inline __mmask8
2196 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2197 _mm_cmplt_epi16_mask (__m128i __X, __m128i __Y)
2199 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
2200 (__v8hi) __Y, 1,
2201 (__mmask8) - 1);
2204 extern __inline __mmask8
2205 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2206 _mm_cmpge_epi16_mask (__m128i __X, __m128i __Y)
2208 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
2209 (__v8hi) __Y, 5,
2210 (__mmask8) - 1);
2213 extern __inline __mmask8
2214 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2215 _mm_cmple_epi16_mask (__m128i __X, __m128i __Y)
2217 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
2218 (__v8hi) __Y, 2,
2219 (__mmask8) - 1);
2222 extern __inline __m256i
2223 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2224 _mm256_mask_mulhrs_epi16 (__m256i __W, __mmask16 __U, __m256i __X,
2225 __m256i __Y)
2227 return (__m256i) __builtin_ia32_pmulhrsw256_mask ((__v16hi) __X,
2228 (__v16hi) __Y,
2229 (__v16hi) __W,
2230 (__mmask16) __U);
2233 extern __inline __m256i
2234 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2235 _mm256_maskz_mulhrs_epi16 (__mmask16 __U, __m256i __X, __m256i __Y)
2237 return (__m256i) __builtin_ia32_pmulhrsw256_mask ((__v16hi) __X,
2238 (__v16hi) __Y,
2239 (__v16hi)
2240 _mm256_setzero_si256 (),
2241 (__mmask16) __U);
2244 extern __inline __m256i
2245 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2246 _mm256_mask_mulhi_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
2247 __m256i __B)
2249 return (__m256i) __builtin_ia32_pmulhuw256_mask ((__v16hi) __A,
2250 (__v16hi) __B,
2251 (__v16hi) __W,
2252 (__mmask16) __U);
2255 extern __inline __m256i
2256 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2257 _mm256_maskz_mulhi_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
2259 return (__m256i) __builtin_ia32_pmulhuw256_mask ((__v16hi) __A,
2260 (__v16hi) __B,
2261 (__v16hi)
2262 _mm256_setzero_si256 (),
2263 (__mmask16) __U);
2266 extern __inline __m256i
2267 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2268 _mm256_mask_mulhi_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2269 __m256i __B)
2271 return (__m256i) __builtin_ia32_pmulhw256_mask ((__v16hi) __A,
2272 (__v16hi) __B,
2273 (__v16hi) __W,
2274 (__mmask16) __U);
2277 extern __inline __m256i
2278 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2279 _mm256_maskz_mulhi_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2281 return (__m256i) __builtin_ia32_pmulhw256_mask ((__v16hi) __A,
2282 (__v16hi) __B,
2283 (__v16hi)
2284 _mm256_setzero_si256 (),
2285 (__mmask16) __U);
2288 extern __inline __m128i
2289 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2290 _mm_mask_mulhi_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
2291 __m128i __B)
2293 return (__m128i) __builtin_ia32_pmulhw128_mask ((__v8hi) __A,
2294 (__v8hi) __B,
2295 (__v8hi) __W,
2296 (__mmask8) __U);
2299 extern __inline __m128i
2300 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2301 _mm_maskz_mulhi_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
2303 return (__m128i) __builtin_ia32_pmulhw128_mask ((__v8hi) __A,
2304 (__v8hi) __B,
2305 (__v8hi)
2306 _mm_setzero_hi (),
2307 (__mmask8) __U);
2310 extern __inline __m128i
2311 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2312 _mm_mask_mulhi_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
2313 __m128i __B)
2315 return (__m128i) __builtin_ia32_pmulhuw128_mask ((__v8hi) __A,
2316 (__v8hi) __B,
2317 (__v8hi) __W,
2318 (__mmask8) __U);
2321 extern __inline __m128i
2322 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2323 _mm_maskz_mulhi_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
2325 return (__m128i) __builtin_ia32_pmulhuw128_mask ((__v8hi) __A,
2326 (__v8hi) __B,
2327 (__v8hi)
2328 _mm_setzero_hi (),
2329 (__mmask8) __U);
2332 extern __inline __m128i
2333 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2334 _mm_mask_mulhrs_epi16 (__m128i __W, __mmask8 __U, __m128i __X,
2335 __m128i __Y)
2337 return (__m128i) __builtin_ia32_pmulhrsw128_mask ((__v8hi) __X,
2338 (__v8hi) __Y,
2339 (__v8hi) __W,
2340 (__mmask8) __U);
2343 extern __inline __m128i
2344 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2345 _mm_maskz_mulhrs_epi16 (__mmask8 __U, __m128i __X, __m128i __Y)
2347 return (__m128i) __builtin_ia32_pmulhrsw128_mask ((__v8hi) __X,
2348 (__v8hi) __Y,
2349 (__v8hi)
2350 _mm_setzero_hi (),
2351 (__mmask8) __U);
2354 extern __inline __m256i
2355 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2356 _mm256_mask_mullo_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2357 __m256i __B)
2359 return (__m256i) __builtin_ia32_pmullw256_mask ((__v16hi) __A,
2360 (__v16hi) __B,
2361 (__v16hi) __W,
2362 (__mmask16) __U);
2365 extern __inline __m256i
2366 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2367 _mm256_maskz_mullo_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2369 return (__m256i) __builtin_ia32_pmullw256_mask ((__v16hi) __A,
2370 (__v16hi) __B,
2371 (__v16hi)
2372 _mm256_setzero_si256 (),
2373 (__mmask16) __U);
2376 extern __inline __m128i
2377 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2378 _mm_mask_mullo_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
2379 __m128i __B)
2381 return (__m128i) __builtin_ia32_pmullw128_mask ((__v8hi) __A,
2382 (__v8hi) __B,
2383 (__v8hi) __W,
2384 (__mmask8) __U);
2387 extern __inline __m128i
2388 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2389 _mm_maskz_mullo_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
2391 return (__m128i) __builtin_ia32_pmullw128_mask ((__v8hi) __A,
2392 (__v8hi) __B,
2393 (__v8hi)
2394 _mm_setzero_hi (),
2395 (__mmask8) __U);
2398 extern __inline __m256i
2399 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2400 _mm256_mask_cvtepi8_epi16 (__m256i __W, __mmask32 __U, __m128i __A)
2402 return (__m256i) __builtin_ia32_pmovsxbw256_mask ((__v16qi) __A,
2403 (__v16hi) __W,
2404 (__mmask16) __U);
2407 extern __inline __m256i
2408 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2409 _mm256_maskz_cvtepi8_epi16 (__mmask16 __U, __m128i __A)
2411 return (__m256i) __builtin_ia32_pmovsxbw256_mask ((__v16qi) __A,
2412 (__v16hi)
2413 _mm256_setzero_si256 (),
2414 (__mmask16) __U);
2417 extern __inline __m128i
2418 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2419 _mm_mask_cvtepi8_epi16 (__m128i __W, __mmask32 __U, __m128i __A)
2421 return (__m128i) __builtin_ia32_pmovsxbw128_mask ((__v16qi) __A,
2422 (__v8hi) __W,
2423 (__mmask8) __U);
2426 extern __inline __m128i
2427 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2428 _mm_maskz_cvtepi8_epi16 (__mmask8 __U, __m128i __A)
2430 return (__m128i) __builtin_ia32_pmovsxbw128_mask ((__v16qi) __A,
2431 (__v8hi)
2432 _mm_setzero_si128 (),
2433 (__mmask8) __U);
2436 extern __inline __m256i
2437 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2438 _mm256_mask_cvtepu8_epi16 (__m256i __W, __mmask32 __U, __m128i __A)
2440 return (__m256i) __builtin_ia32_pmovzxbw256_mask ((__v16qi) __A,
2441 (__v16hi) __W,
2442 (__mmask16) __U);
2445 extern __inline __m256i
2446 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2447 _mm256_maskz_cvtepu8_epi16 (__mmask16 __U, __m128i __A)
2449 return (__m256i) __builtin_ia32_pmovzxbw256_mask ((__v16qi) __A,
2450 (__v16hi)
2451 _mm256_setzero_si256 (),
2452 (__mmask16) __U);
2455 extern __inline __m128i
2456 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2457 _mm_mask_cvtepu8_epi16 (__m128i __W, __mmask32 __U, __m128i __A)
2459 return (__m128i) __builtin_ia32_pmovzxbw128_mask ((__v16qi) __A,
2460 (__v8hi) __W,
2461 (__mmask8) __U);
2464 extern __inline __m128i
2465 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2466 _mm_maskz_cvtepu8_epi16 (__mmask8 __U, __m128i __A)
2468 return (__m128i) __builtin_ia32_pmovzxbw128_mask ((__v16qi) __A,
2469 (__v8hi)
2470 _mm_setzero_si128 (),
2471 (__mmask8) __U);
2474 extern __inline __m256i
2475 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2476 _mm256_mask_avg_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
2477 __m256i __B)
2479 return (__m256i) __builtin_ia32_pavgb256_mask ((__v32qi) __A,
2480 (__v32qi) __B,
2481 (__v32qi) __W,
2482 (__mmask32) __U);
2485 extern __inline __m256i
2486 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2487 _mm256_maskz_avg_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
2489 return (__m256i) __builtin_ia32_pavgb256_mask ((__v32qi) __A,
2490 (__v32qi) __B,
2491 (__v32qi)
2492 _mm256_setzero_si256 (),
2493 (__mmask32) __U);
2496 extern __inline __m128i
2497 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2498 _mm_mask_avg_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
2499 __m128i __B)
2501 return (__m128i) __builtin_ia32_pavgb128_mask ((__v16qi) __A,
2502 (__v16qi) __B,
2503 (__v16qi) __W,
2504 (__mmask16) __U);
2507 extern __inline __m128i
2508 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2509 _mm_maskz_avg_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
2511 return (__m128i) __builtin_ia32_pavgb128_mask ((__v16qi) __A,
2512 (__v16qi) __B,
2513 (__v16qi)
2514 _mm_setzero_si128 (),
2515 (__mmask16) __U);
2518 extern __inline __m256i
2519 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2520 _mm256_mask_avg_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
2521 __m256i __B)
2523 return (__m256i) __builtin_ia32_pavgw256_mask ((__v16hi) __A,
2524 (__v16hi) __B,
2525 (__v16hi) __W,
2526 (__mmask16) __U);
2529 extern __inline __m256i
2530 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2531 _mm256_maskz_avg_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
2533 return (__m256i) __builtin_ia32_pavgw256_mask ((__v16hi) __A,
2534 (__v16hi) __B,
2535 (__v16hi)
2536 _mm256_setzero_si256 (),
2537 (__mmask16) __U);
2540 extern __inline __m128i
2541 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2542 _mm_mask_avg_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
2543 __m128i __B)
2545 return (__m128i) __builtin_ia32_pavgw128_mask ((__v8hi) __A,
2546 (__v8hi) __B,
2547 (__v8hi) __W,
2548 (__mmask8) __U);
2551 extern __inline __m128i
2552 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2553 _mm_maskz_avg_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
2555 return (__m128i) __builtin_ia32_pavgw128_mask ((__v8hi) __A,
2556 (__v8hi) __B,
2557 (__v8hi)
2558 _mm_setzero_si128 (),
2559 (__mmask8) __U);
2562 extern __inline __m256i
2563 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2564 _mm256_mask_add_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
2565 __m256i __B)
2567 return (__m256i) __builtin_ia32_paddb256_mask ((__v32qi) __A,
2568 (__v32qi) __B,
2569 (__v32qi) __W,
2570 (__mmask32) __U);
2573 extern __inline __m256i
2574 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2575 _mm256_maskz_add_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
2577 return (__m256i) __builtin_ia32_paddb256_mask ((__v32qi) __A,
2578 (__v32qi) __B,
2579 (__v32qi)
2580 _mm256_setzero_si256 (),
2581 (__mmask32) __U);
2584 extern __inline __m256i
2585 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2586 _mm256_mask_add_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2587 __m256i __B)
2589 return (__m256i) __builtin_ia32_paddw256_mask ((__v16hi) __A,
2590 (__v16hi) __B,
2591 (__v16hi) __W,
2592 (__mmask16) __U);
2595 extern __inline __m256i
2596 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2597 _mm256_maskz_add_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2599 return (__m256i) __builtin_ia32_paddw256_mask ((__v16hi) __A,
2600 (__v16hi) __B,
2601 (__v16hi)
2602 _mm256_setzero_si256 (),
2603 (__mmask16) __U);
2606 extern __inline __m256i
2607 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2608 _mm256_mask_adds_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
2609 __m256i __B)
2611 return (__m256i) __builtin_ia32_paddsb256_mask ((__v32qi) __A,
2612 (__v32qi) __B,
2613 (__v32qi) __W,
2614 (__mmask32) __U);
2617 extern __inline __m256i
2618 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2619 _mm256_maskz_adds_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
2621 return (__m256i) __builtin_ia32_paddsb256_mask ((__v32qi) __A,
2622 (__v32qi) __B,
2623 (__v32qi)
2624 _mm256_setzero_si256 (),
2625 (__mmask32) __U);
2628 extern __inline __m256i
2629 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2630 _mm256_mask_adds_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2631 __m256i __B)
2633 return (__m256i) __builtin_ia32_paddsw256_mask ((__v16hi) __A,
2634 (__v16hi) __B,
2635 (__v16hi) __W,
2636 (__mmask16) __U);
2639 extern __inline __m256i
2640 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2641 _mm256_maskz_adds_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2643 return (__m256i) __builtin_ia32_paddsw256_mask ((__v16hi) __A,
2644 (__v16hi) __B,
2645 (__v16hi)
2646 _mm256_setzero_si256 (),
2647 (__mmask16) __U);
2650 extern __inline __m256i
2651 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2652 _mm256_mask_adds_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
2653 __m256i __B)
2655 return (__m256i) __builtin_ia32_paddusb256_mask ((__v32qi) __A,
2656 (__v32qi) __B,
2657 (__v32qi) __W,
2658 (__mmask32) __U);
2661 extern __inline __m256i
2662 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2663 _mm256_maskz_adds_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
2665 return (__m256i) __builtin_ia32_paddusb256_mask ((__v32qi) __A,
2666 (__v32qi) __B,
2667 (__v32qi)
2668 _mm256_setzero_si256 (),
2669 (__mmask32) __U);
2672 extern __inline __m256i
2673 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2674 _mm256_mask_adds_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
2675 __m256i __B)
2677 return (__m256i) __builtin_ia32_paddusw256_mask ((__v16hi) __A,
2678 (__v16hi) __B,
2679 (__v16hi) __W,
2680 (__mmask16) __U);
2683 extern __inline __m256i
2684 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2685 _mm256_maskz_adds_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
2687 return (__m256i) __builtin_ia32_paddusw256_mask ((__v16hi) __A,
2688 (__v16hi) __B,
2689 (__v16hi)
2690 _mm256_setzero_si256 (),
2691 (__mmask16) __U);
2694 extern __inline __m256i
2695 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2696 _mm256_mask_sub_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
2697 __m256i __B)
2699 return (__m256i) __builtin_ia32_psubb256_mask ((__v32qi) __A,
2700 (__v32qi) __B,
2701 (__v32qi) __W,
2702 (__mmask32) __U);
2705 extern __inline __m256i
2706 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2707 _mm256_maskz_sub_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
2709 return (__m256i) __builtin_ia32_psubb256_mask ((__v32qi) __A,
2710 (__v32qi) __B,
2711 (__v32qi)
2712 _mm256_setzero_si256 (),
2713 (__mmask32) __U);
2716 extern __inline __m256i
2717 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2718 _mm256_mask_sub_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2719 __m256i __B)
2721 return (__m256i) __builtin_ia32_psubw256_mask ((__v16hi) __A,
2722 (__v16hi) __B,
2723 (__v16hi) __W,
2724 (__mmask16) __U);
2727 extern __inline __m256i
2728 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2729 _mm256_maskz_sub_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2731 return (__m256i) __builtin_ia32_psubw256_mask ((__v16hi) __A,
2732 (__v16hi) __B,
2733 (__v16hi)
2734 _mm256_setzero_si256 (),
2735 (__mmask16) __U);
2738 extern __inline __m256i
2739 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2740 _mm256_mask_subs_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
2741 __m256i __B)
2743 return (__m256i) __builtin_ia32_psubsb256_mask ((__v32qi) __A,
2744 (__v32qi) __B,
2745 (__v32qi) __W,
2746 (__mmask32) __U);
2749 extern __inline __m256i
2750 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2751 _mm256_maskz_subs_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
2753 return (__m256i) __builtin_ia32_psubsb256_mask ((__v32qi) __A,
2754 (__v32qi) __B,
2755 (__v32qi)
2756 _mm256_setzero_si256 (),
2757 (__mmask32) __U);
2760 extern __inline __m256i
2761 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2762 _mm256_mask_subs_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2763 __m256i __B)
2765 return (__m256i) __builtin_ia32_psubsw256_mask ((__v16hi) __A,
2766 (__v16hi) __B,
2767 (__v16hi) __W,
2768 (__mmask16) __U);
2771 extern __inline __m256i
2772 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2773 _mm256_maskz_subs_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2775 return (__m256i) __builtin_ia32_psubsw256_mask ((__v16hi) __A,
2776 (__v16hi) __B,
2777 (__v16hi)
2778 _mm256_setzero_si256 (),
2779 (__mmask16) __U);
2782 extern __inline __m256i
2783 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2784 _mm256_mask_subs_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
2785 __m256i __B)
2787 return (__m256i) __builtin_ia32_psubusb256_mask ((__v32qi) __A,
2788 (__v32qi) __B,
2789 (__v32qi) __W,
2790 (__mmask32) __U);
2793 extern __inline __m256i
2794 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2795 _mm256_maskz_subs_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
2797 return (__m256i) __builtin_ia32_psubusb256_mask ((__v32qi) __A,
2798 (__v32qi) __B,
2799 (__v32qi)
2800 _mm256_setzero_si256 (),
2801 (__mmask32) __U);
2804 extern __inline __m256i
2805 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2806 _mm256_mask_subs_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
2807 __m256i __B)
2809 return (__m256i) __builtin_ia32_psubusw256_mask ((__v16hi) __A,
2810 (__v16hi) __B,
2811 (__v16hi) __W,
2812 (__mmask16) __U);
2815 extern __inline __m256i
2816 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2817 _mm256_maskz_subs_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
2819 return (__m256i) __builtin_ia32_psubusw256_mask ((__v16hi) __A,
2820 (__v16hi) __B,
2821 (__v16hi)
2822 _mm256_setzero_si256 (),
2823 (__mmask16) __U);
2826 extern __inline __m128i
2827 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2828 _mm_mask_add_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
2829 __m128i __B)
2831 return (__m128i) __builtin_ia32_paddb128_mask ((__v16qi) __A,
2832 (__v16qi) __B,
2833 (__v16qi) __W,
2834 (__mmask16) __U);
2837 extern __inline __m128i
2838 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2839 _mm_maskz_add_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
2841 return (__m128i) __builtin_ia32_paddb128_mask ((__v16qi) __A,
2842 (__v16qi) __B,
2843 (__v16qi)
2844 _mm_setzero_si128 (),
2845 (__mmask16) __U);
2848 extern __inline __m128i
2849 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2850 _mm_mask_add_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
2851 __m128i __B)
2853 return (__m128i) __builtin_ia32_paddw128_mask ((__v8hi) __A,
2854 (__v8hi) __B,
2855 (__v8hi) __W,
2856 (__mmask8) __U);
2859 extern __inline __m128i
2860 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2861 _mm_maskz_add_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
2863 return (__m128i) __builtin_ia32_paddw128_mask ((__v8hi) __A,
2864 (__v8hi) __B,
2865 (__v8hi)
2866 _mm_setzero_si128 (),
2867 (__mmask8) __U);
2870 extern __inline __m256i
2871 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2872 _mm256_mask_unpackhi_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
2873 __m256i __B)
2875 return (__m256i) __builtin_ia32_punpckhbw256_mask ((__v32qi) __A,
2876 (__v32qi) __B,
2877 (__v32qi) __W,
2878 (__mmask32) __U);
2881 extern __inline __m256i
2882 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2883 _mm256_maskz_unpackhi_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
2885 return (__m256i) __builtin_ia32_punpckhbw256_mask ((__v32qi) __A,
2886 (__v32qi) __B,
2887 (__v32qi)
2888 _mm256_setzero_si256 (),
2889 (__mmask32) __U);
2892 extern __inline __m128i
2893 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2894 _mm_mask_unpackhi_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
2895 __m128i __B)
2897 return (__m128i) __builtin_ia32_punpckhbw128_mask ((__v16qi) __A,
2898 (__v16qi) __B,
2899 (__v16qi) __W,
2900 (__mmask16) __U);
2903 extern __inline __m128i
2904 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2905 _mm_maskz_unpackhi_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
2907 return (__m128i) __builtin_ia32_punpckhbw128_mask ((__v16qi) __A,
2908 (__v16qi) __B,
2909 (__v16qi)
2910 _mm_setzero_si128 (),
2911 (__mmask16) __U);
2914 extern __inline __m256i
2915 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2916 _mm256_mask_unpackhi_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2917 __m256i __B)
2919 return (__m256i) __builtin_ia32_punpckhwd256_mask ((__v16hi) __A,
2920 (__v16hi) __B,
2921 (__v16hi) __W,
2922 (__mmask16) __U);
2925 extern __inline __m256i
2926 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2927 _mm256_maskz_unpackhi_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2929 return (__m256i) __builtin_ia32_punpckhwd256_mask ((__v16hi) __A,
2930 (__v16hi) __B,
2931 (__v16hi)
2932 _mm256_setzero_si256 (),
2933 (__mmask16) __U);
2936 extern __inline __m128i
2937 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2938 _mm_mask_unpackhi_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
2939 __m128i __B)
2941 return (__m128i) __builtin_ia32_punpckhwd128_mask ((__v8hi) __A,
2942 (__v8hi) __B,
2943 (__v8hi) __W,
2944 (__mmask8) __U);
2947 extern __inline __m128i
2948 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2949 _mm_maskz_unpackhi_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
2951 return (__m128i) __builtin_ia32_punpckhwd128_mask ((__v8hi) __A,
2952 (__v8hi) __B,
2953 (__v8hi)
2954 _mm_setzero_si128 (),
2955 (__mmask8) __U);
2958 extern __inline __m256i
2959 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2960 _mm256_mask_unpacklo_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
2961 __m256i __B)
2963 return (__m256i) __builtin_ia32_punpcklbw256_mask ((__v32qi) __A,
2964 (__v32qi) __B,
2965 (__v32qi) __W,
2966 (__mmask32) __U);
2969 extern __inline __m256i
2970 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2971 _mm256_maskz_unpacklo_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
2973 return (__m256i) __builtin_ia32_punpcklbw256_mask ((__v32qi) __A,
2974 (__v32qi) __B,
2975 (__v32qi)
2976 _mm256_setzero_si256 (),
2977 (__mmask32) __U);
2980 extern __inline __m128i
2981 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2982 _mm_mask_unpacklo_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
2983 __m128i __B)
2985 return (__m128i) __builtin_ia32_punpcklbw128_mask ((__v16qi) __A,
2986 (__v16qi) __B,
2987 (__v16qi) __W,
2988 (__mmask16) __U);
2991 extern __inline __m128i
2992 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2993 _mm_maskz_unpacklo_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
2995 return (__m128i) __builtin_ia32_punpcklbw128_mask ((__v16qi) __A,
2996 (__v16qi) __B,
2997 (__v16qi)
2998 _mm_setzero_si128 (),
2999 (__mmask16) __U);
3002 extern __inline __m256i
3003 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3004 _mm256_mask_unpacklo_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
3005 __m256i __B)
3007 return (__m256i) __builtin_ia32_punpcklwd256_mask ((__v16hi) __A,
3008 (__v16hi) __B,
3009 (__v16hi) __W,
3010 (__mmask16) __U);
3013 extern __inline __m256i
3014 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3015 _mm256_maskz_unpacklo_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
3017 return (__m256i) __builtin_ia32_punpcklwd256_mask ((__v16hi) __A,
3018 (__v16hi) __B,
3019 (__v16hi)
3020 _mm256_setzero_si256 (),
3021 (__mmask16) __U);
3024 extern __inline __m128i
3025 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3026 _mm_mask_unpacklo_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
3027 __m128i __B)
3029 return (__m128i) __builtin_ia32_punpcklwd128_mask ((__v8hi) __A,
3030 (__v8hi) __B,
3031 (__v8hi) __W,
3032 (__mmask8) __U);
3035 extern __inline __m128i
3036 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3037 _mm_maskz_unpacklo_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
3039 return (__m128i) __builtin_ia32_punpcklwd128_mask ((__v8hi) __A,
3040 (__v8hi) __B,
3041 (__v8hi)
3042 _mm_setzero_si128 (),
3043 (__mmask8) __U);
3046 extern __inline __mmask16
3047 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3048 _mm_cmpeq_epi8_mask (__m128i __A, __m128i __B)
3050 return (__mmask16) __builtin_ia32_pcmpeqb128_mask ((__v16qi) __A,
3051 (__v16qi) __B,
3052 (__mmask16) -1);
3055 extern __inline __mmask16
3056 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3057 _mm_cmpeq_epu8_mask (__m128i __A, __m128i __B)
3059 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __A,
3060 (__v16qi) __B, 0,
3061 (__mmask16) -1);
3064 extern __inline __mmask16
3065 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3066 _mm_mask_cmpeq_epu8_mask (__mmask16 __U, __m128i __A, __m128i __B)
3068 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __A,
3069 (__v16qi) __B, 0,
3070 __U);
3073 extern __inline __mmask16
3074 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3075 _mm_mask_cmpeq_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
3077 return (__mmask16) __builtin_ia32_pcmpeqb128_mask ((__v16qi) __A,
3078 (__v16qi) __B,
3079 __U);
3082 extern __inline __mmask32
3083 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3084 _mm256_cmpeq_epu8_mask (__m256i __A, __m256i __B)
3086 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __A,
3087 (__v32qi) __B, 0,
3088 (__mmask32) -1);
3091 extern __inline __mmask32
3092 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3093 _mm256_cmpeq_epi8_mask (__m256i __A, __m256i __B)
3095 return (__mmask32) __builtin_ia32_pcmpeqb256_mask ((__v32qi) __A,
3096 (__v32qi) __B,
3097 (__mmask32) -1);
3100 extern __inline __mmask32
3101 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3102 _mm256_mask_cmpeq_epu8_mask (__mmask32 __U, __m256i __A, __m256i __B)
3104 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __A,
3105 (__v32qi) __B, 0,
3106 __U);
3109 extern __inline __mmask32
3110 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3111 _mm256_mask_cmpeq_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
3113 return (__mmask32) __builtin_ia32_pcmpeqb256_mask ((__v32qi) __A,
3114 (__v32qi) __B,
3115 __U);
3118 extern __inline __mmask8
3119 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3120 _mm_cmpeq_epu16_mask (__m128i __A, __m128i __B)
3122 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __A,
3123 (__v8hi) __B, 0,
3124 (__mmask8) -1);
3127 extern __inline __mmask8
3128 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3129 _mm_cmpeq_epi16_mask (__m128i __A, __m128i __B)
3131 return (__mmask8) __builtin_ia32_pcmpeqw128_mask ((__v8hi) __A,
3132 (__v8hi) __B,
3133 (__mmask8) -1);
3136 extern __inline __mmask8
3137 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3138 _mm_mask_cmpeq_epu16_mask (__mmask8 __U, __m128i __A, __m128i __B)
3140 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __A,
3141 (__v8hi) __B, 0, __U);
3144 extern __inline __mmask8
3145 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3146 _mm_mask_cmpeq_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
3148 return (__mmask8) __builtin_ia32_pcmpeqw128_mask ((__v8hi) __A,
3149 (__v8hi) __B, __U);
3152 extern __inline __mmask16
3153 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3154 _mm256_cmpeq_epu16_mask (__m256i __A, __m256i __B)
3156 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __A,
3157 (__v16hi) __B, 0,
3158 (__mmask16) -1);
3161 extern __inline __mmask16
3162 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3163 _mm256_cmpeq_epi16_mask (__m256i __A, __m256i __B)
3165 return (__mmask16) __builtin_ia32_pcmpeqw256_mask ((__v16hi) __A,
3166 (__v16hi) __B,
3167 (__mmask16) -1);
3170 extern __inline __mmask16
3171 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3172 _mm256_mask_cmpeq_epu16_mask (__mmask16 __U, __m256i __A, __m256i __B)
3174 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __A,
3175 (__v16hi) __B, 0,
3176 __U);
3179 extern __inline __mmask16
3180 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3181 _mm256_mask_cmpeq_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
3183 return (__mmask16) __builtin_ia32_pcmpeqw256_mask ((__v16hi) __A,
3184 (__v16hi) __B,
3185 __U);
3188 extern __inline __mmask16
3189 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3190 _mm_cmpgt_epu8_mask (__m128i __A, __m128i __B)
3192 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __A,
3193 (__v16qi) __B, 6,
3194 (__mmask16) -1);
3197 extern __inline __mmask16
3198 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3199 _mm_cmpgt_epi8_mask (__m128i __A, __m128i __B)
3201 return (__mmask16) __builtin_ia32_pcmpgtb128_mask ((__v16qi) __A,
3202 (__v16qi) __B,
3203 (__mmask16) -1);
3206 extern __inline __mmask16
3207 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3208 _mm_mask_cmpgt_epu8_mask (__mmask16 __U, __m128i __A, __m128i __B)
3210 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __A,
3211 (__v16qi) __B, 6,
3212 __U);
3215 extern __inline __mmask16
3216 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3217 _mm_mask_cmpgt_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
3219 return (__mmask16) __builtin_ia32_pcmpgtb128_mask ((__v16qi) __A,
3220 (__v16qi) __B,
3221 __U);
3224 extern __inline __mmask32
3225 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3226 _mm256_cmpgt_epu8_mask (__m256i __A, __m256i __B)
3228 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __A,
3229 (__v32qi) __B, 6,
3230 (__mmask32) -1);
3233 extern __inline __mmask32
3234 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3235 _mm256_cmpgt_epi8_mask (__m256i __A, __m256i __B)
3237 return (__mmask32) __builtin_ia32_pcmpgtb256_mask ((__v32qi) __A,
3238 (__v32qi) __B,
3239 (__mmask32) -1);
3242 extern __inline __mmask32
3243 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3244 _mm256_mask_cmpgt_epu8_mask (__mmask32 __U, __m256i __A, __m256i __B)
3246 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __A,
3247 (__v32qi) __B, 6,
3248 __U);
3251 extern __inline __mmask32
3252 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3253 _mm256_mask_cmpgt_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
3255 return (__mmask32) __builtin_ia32_pcmpgtb256_mask ((__v32qi) __A,
3256 (__v32qi) __B,
3257 __U);
3260 extern __inline __mmask8
3261 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3262 _mm_cmpgt_epu16_mask (__m128i __A, __m128i __B)
3264 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __A,
3265 (__v8hi) __B, 6,
3266 (__mmask8) -1);
3269 extern __inline __mmask8
3270 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3271 _mm_cmpgt_epi16_mask (__m128i __A, __m128i __B)
3273 return (__mmask8) __builtin_ia32_pcmpgtw128_mask ((__v8hi) __A,
3274 (__v8hi) __B,
3275 (__mmask8) -1);
3278 extern __inline __mmask8
3279 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3280 _mm_mask_cmpgt_epu16_mask (__mmask8 __U, __m128i __A, __m128i __B)
3282 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __A,
3283 (__v8hi) __B, 6, __U);
3286 extern __inline __mmask8
3287 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3288 _mm_mask_cmpgt_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
3290 return (__mmask8) __builtin_ia32_pcmpgtw128_mask ((__v8hi) __A,
3291 (__v8hi) __B, __U);
3294 extern __inline __mmask16
3295 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3296 _mm256_cmpgt_epu16_mask (__m256i __A, __m256i __B)
3298 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __A,
3299 (__v16hi) __B, 6,
3300 (__mmask16) -1);
3303 extern __inline __mmask16
3304 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3305 _mm256_cmpgt_epi16_mask (__m256i __A, __m256i __B)
3307 return (__mmask16) __builtin_ia32_pcmpgtw256_mask ((__v16hi) __A,
3308 (__v16hi) __B,
3309 (__mmask16) -1);
3312 extern __inline __mmask16
3313 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3314 _mm256_mask_cmpgt_epu16_mask (__mmask16 __U, __m256i __A, __m256i __B)
3316 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __A,
3317 (__v16hi) __B, 6,
3318 __U);
3321 extern __inline __mmask16
3322 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3323 _mm256_mask_cmpgt_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
3325 return (__mmask16) __builtin_ia32_pcmpgtw256_mask ((__v16hi) __A,
3326 (__v16hi) __B,
3327 __U);
3330 extern __inline __mmask16
3331 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3332 _mm_testn_epi8_mask (__m128i __A, __m128i __B)
3334 return (__mmask16) __builtin_ia32_ptestnmb128 ((__v16qi) __A,
3335 (__v16qi) __B,
3336 (__mmask16) -1);
3339 extern __inline __mmask16
3340 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3341 _mm_mask_testn_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
3343 return (__mmask16) __builtin_ia32_ptestnmb128 ((__v16qi) __A,
3344 (__v16qi) __B, __U);
3347 extern __inline __mmask32
3348 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3349 _mm256_testn_epi8_mask (__m256i __A, __m256i __B)
3351 return (__mmask32) __builtin_ia32_ptestnmb256 ((__v32qi) __A,
3352 (__v32qi) __B,
3353 (__mmask32) -1);
3356 extern __inline __mmask32
3357 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3358 _mm256_mask_testn_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
3360 return (__mmask32) __builtin_ia32_ptestnmb256 ((__v32qi) __A,
3361 (__v32qi) __B, __U);
3364 extern __inline __mmask8
3365 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3366 _mm_testn_epi16_mask (__m128i __A, __m128i __B)
3368 return (__mmask8) __builtin_ia32_ptestnmw128 ((__v8hi) __A,
3369 (__v8hi) __B,
3370 (__mmask8) -1);
3373 extern __inline __mmask8
3374 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3375 _mm_mask_testn_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
3377 return (__mmask8) __builtin_ia32_ptestnmw128 ((__v8hi) __A,
3378 (__v8hi) __B, __U);
3381 extern __inline __mmask16
3382 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3383 _mm256_testn_epi16_mask (__m256i __A, __m256i __B)
3385 return (__mmask16) __builtin_ia32_ptestnmw256 ((__v16hi) __A,
3386 (__v16hi) __B,
3387 (__mmask16) -1);
3390 extern __inline __mmask16
3391 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3392 _mm256_mask_testn_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
3394 return (__mmask16) __builtin_ia32_ptestnmw256 ((__v16hi) __A,
3395 (__v16hi) __B, __U);
3398 extern __inline __m256i
3399 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3400 _mm256_mask_shuffle_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
3401 __m256i __B)
3403 return (__m256i) __builtin_ia32_pshufb256_mask ((__v32qi) __A,
3404 (__v32qi) __B,
3405 (__v32qi) __W,
3406 (__mmask32) __U);
3409 extern __inline __m256i
3410 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3411 _mm256_maskz_shuffle_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
3413 return (__m256i) __builtin_ia32_pshufb256_mask ((__v32qi) __A,
3414 (__v32qi) __B,
3415 (__v32qi)
3416 _mm256_setzero_si256 (),
3417 (__mmask32) __U);
3420 extern __inline __m128i
3421 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3422 _mm_mask_shuffle_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
3423 __m128i __B)
3425 return (__m128i) __builtin_ia32_pshufb128_mask ((__v16qi) __A,
3426 (__v16qi) __B,
3427 (__v16qi) __W,
3428 (__mmask16) __U);
3431 extern __inline __m128i
3432 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3433 _mm_maskz_shuffle_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
3435 return (__m128i) __builtin_ia32_pshufb128_mask ((__v16qi) __A,
3436 (__v16qi) __B,
3437 (__v16qi)
3438 _mm_setzero_si128 (),
3439 (__mmask16) __U);
3442 extern __inline __m256i
3443 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3444 _mm256_maskz_packs_epi16 (__mmask32 __M, __m256i __A, __m256i __B)
3446 return (__m256i) __builtin_ia32_packsswb256_mask ((__v16hi) __A,
3447 (__v16hi) __B,
3448 (__v32qi)
3449 _mm256_setzero_si256 (),
3450 __M);
3453 extern __inline __m256i
3454 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3455 _mm256_mask_packs_epi16 (__m256i __W, __mmask32 __M, __m256i __A,
3456 __m256i __B)
3458 return (__m256i) __builtin_ia32_packsswb256_mask ((__v16hi) __A,
3459 (__v16hi) __B,
3460 (__v32qi) __W,
3461 __M);
3464 extern __inline __m128i
3465 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3466 _mm_maskz_packs_epi16 (__mmask16 __M, __m128i __A, __m128i __B)
3468 return (__m128i) __builtin_ia32_packsswb128_mask ((__v8hi) __A,
3469 (__v8hi) __B,
3470 (__v16qi)
3471 _mm_setzero_si128 (),
3472 __M);
3475 extern __inline __m128i
3476 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3477 _mm_mask_packs_epi16 (__m128i __W, __mmask16 __M, __m128i __A,
3478 __m128i __B)
3480 return (__m128i) __builtin_ia32_packsswb128_mask ((__v8hi) __A,
3481 (__v8hi) __B,
3482 (__v16qi) __W,
3483 __M);
3486 extern __inline __m256i
3487 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3488 _mm256_maskz_packus_epi16 (__mmask32 __M, __m256i __A, __m256i __B)
3490 return (__m256i) __builtin_ia32_packuswb256_mask ((__v16hi) __A,
3491 (__v16hi) __B,
3492 (__v32qi)
3493 _mm256_setzero_si256 (),
3494 __M);
3497 extern __inline __m256i
3498 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3499 _mm256_mask_packus_epi16 (__m256i __W, __mmask32 __M, __m256i __A,
3500 __m256i __B)
3502 return (__m256i) __builtin_ia32_packuswb256_mask ((__v16hi) __A,
3503 (__v16hi) __B,
3504 (__v32qi) __W,
3505 __M);
3508 extern __inline __m128i
3509 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3510 _mm_maskz_packus_epi16 (__mmask16 __M, __m128i __A, __m128i __B)
3512 return (__m128i) __builtin_ia32_packuswb128_mask ((__v8hi) __A,
3513 (__v8hi) __B,
3514 (__v16qi)
3515 _mm_setzero_si128 (),
3516 __M);
3519 extern __inline __m128i
3520 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3521 _mm_mask_packus_epi16 (__m128i __W, __mmask16 __M, __m128i __A,
3522 __m128i __B)
3524 return (__m128i) __builtin_ia32_packuswb128_mask ((__v8hi) __A,
3525 (__v8hi) __B,
3526 (__v16qi) __W,
3527 __M);
3530 extern __inline __m256i
3531 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3532 _mm256_mask_abs_epi8 (__m256i __W, __mmask32 __U, __m256i __A)
3534 return (__m256i) __builtin_ia32_pabsb256_mask ((__v32qi) __A,
3535 (__v32qi) __W,
3536 (__mmask32) __U);
3539 extern __inline __m256i
3540 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3541 _mm256_maskz_abs_epi8 (__mmask32 __U, __m256i __A)
3543 return (__m256i) __builtin_ia32_pabsb256_mask ((__v32qi) __A,
3544 (__v32qi)
3545 _mm256_setzero_si256 (),
3546 (__mmask32) __U);
3549 extern __inline __m128i
3550 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3551 _mm_mask_abs_epi8 (__m128i __W, __mmask16 __U, __m128i __A)
3553 return (__m128i) __builtin_ia32_pabsb128_mask ((__v16qi) __A,
3554 (__v16qi) __W,
3555 (__mmask16) __U);
3558 extern __inline __m128i
3559 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3560 _mm_maskz_abs_epi8 (__mmask16 __U, __m128i __A)
3562 return (__m128i) __builtin_ia32_pabsb128_mask ((__v16qi) __A,
3563 (__v16qi)
3564 _mm_setzero_si128 (),
3565 (__mmask16) __U);
3568 extern __inline __m256i
3569 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3570 _mm256_mask_abs_epi16 (__m256i __W, __mmask16 __U, __m256i __A)
3572 return (__m256i) __builtin_ia32_pabsw256_mask ((__v16hi) __A,
3573 (__v16hi) __W,
3574 (__mmask16) __U);
3577 extern __inline __m256i
3578 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3579 _mm256_maskz_abs_epi16 (__mmask16 __U, __m256i __A)
3581 return (__m256i) __builtin_ia32_pabsw256_mask ((__v16hi) __A,
3582 (__v16hi)
3583 _mm256_setzero_si256 (),
3584 (__mmask16) __U);
3587 extern __inline __m128i
3588 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3589 _mm_mask_abs_epi16 (__m128i __W, __mmask8 __U, __m128i __A)
3591 return (__m128i) __builtin_ia32_pabsw128_mask ((__v8hi) __A,
3592 (__v8hi) __W,
3593 (__mmask8) __U);
3596 extern __inline __m128i
3597 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3598 _mm_maskz_abs_epi16 (__mmask8 __U, __m128i __A)
3600 return (__m128i) __builtin_ia32_pabsw128_mask ((__v8hi) __A,
3601 (__v8hi)
3602 _mm_setzero_si128 (),
3603 (__mmask8) __U);
3606 extern __inline __mmask32
3607 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3608 _mm256_cmpneq_epu8_mask (__m256i __X, __m256i __Y)
3610 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
3611 (__v32qi) __Y, 4,
3612 (__mmask32) - 1);
3615 extern __inline __mmask32
3616 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3617 _mm256_cmplt_epu8_mask (__m256i __X, __m256i __Y)
3619 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
3620 (__v32qi) __Y, 1,
3621 (__mmask32) - 1);
3624 extern __inline __mmask32
3625 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3626 _mm256_cmpge_epu8_mask (__m256i __X, __m256i __Y)
3628 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
3629 (__v32qi) __Y, 5,
3630 (__mmask32) - 1);
3633 extern __inline __mmask32
3634 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3635 _mm256_cmple_epu8_mask (__m256i __X, __m256i __Y)
3637 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
3638 (__v32qi) __Y, 2,
3639 (__mmask32) - 1);
3642 extern __inline __mmask16
3643 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3644 _mm256_cmpneq_epu16_mask (__m256i __X, __m256i __Y)
3646 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
3647 (__v16hi) __Y, 4,
3648 (__mmask16) - 1);
3651 extern __inline __mmask16
3652 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3653 _mm256_cmplt_epu16_mask (__m256i __X, __m256i __Y)
3655 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
3656 (__v16hi) __Y, 1,
3657 (__mmask16) - 1);
3660 extern __inline __mmask16
3661 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3662 _mm256_cmpge_epu16_mask (__m256i __X, __m256i __Y)
3664 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
3665 (__v16hi) __Y, 5,
3666 (__mmask16) - 1);
3669 extern __inline __mmask16
3670 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3671 _mm256_cmple_epu16_mask (__m256i __X, __m256i __Y)
3673 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
3674 (__v16hi) __Y, 2,
3675 (__mmask16) - 1);
3678 extern __inline void
3679 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3680 _mm256_mask_storeu_epi16 (void *__P, __mmask16 __U, __m256i __A)
3682 __builtin_ia32_storedquhi256_mask ((__v16hi *) __P,
3683 (__v16hi) __A,
3684 (__mmask16) __U);
3687 extern __inline void
3688 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3689 _mm_mask_storeu_epi16 (void *__P, __mmask8 __U, __m128i __A)
3691 __builtin_ia32_storedquhi128_mask ((__v8hi *) __P,
3692 (__v8hi) __A,
3693 (__mmask8) __U);
3696 extern __inline __m128i
3697 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3698 _mm_mask_adds_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
3699 __m128i __B)
3701 return (__m128i) __builtin_ia32_paddsw128_mask ((__v8hi) __A,
3702 (__v8hi) __B,
3703 (__v8hi) __W,
3704 (__mmask8) __U);
3707 extern __inline __m128i
3708 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3709 _mm_mask_subs_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
3710 __m128i __B)
3712 return (__m128i) __builtin_ia32_psubsb128_mask ((__v16qi) __A,
3713 (__v16qi) __B,
3714 (__v16qi) __W,
3715 (__mmask16) __U);
3718 extern __inline __m128i
3719 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3720 _mm_maskz_subs_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
3722 return (__m128i) __builtin_ia32_psubsb128_mask ((__v16qi) __A,
3723 (__v16qi) __B,
3724 (__v16qi)
3725 _mm_setzero_si128 (),
3726 (__mmask16) __U);
3729 extern __inline __m128i
3730 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3731 _mm_mask_subs_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
3732 __m128i __B)
3734 return (__m128i) __builtin_ia32_psubsw128_mask ((__v8hi) __A,
3735 (__v8hi) __B,
3736 (__v8hi) __W,
3737 (__mmask8) __U);
3740 extern __inline __m128i
3741 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3742 _mm_maskz_subs_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
3744 return (__m128i) __builtin_ia32_psubsw128_mask ((__v8hi) __A,
3745 (__v8hi) __B,
3746 (__v8hi)
3747 _mm_setzero_si128 (),
3748 (__mmask8) __U);
3751 extern __inline __m128i
3752 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3753 _mm_mask_subs_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
3754 __m128i __B)
3756 return (__m128i) __builtin_ia32_psubusb128_mask ((__v16qi) __A,
3757 (__v16qi) __B,
3758 (__v16qi) __W,
3759 (__mmask16) __U);
3762 extern __inline __m128i
3763 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3764 _mm_maskz_subs_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
3766 return (__m128i) __builtin_ia32_psubusb128_mask ((__v16qi) __A,
3767 (__v16qi) __B,
3768 (__v16qi)
3769 _mm_setzero_si128 (),
3770 (__mmask16) __U);
3773 extern __inline __m128i
3774 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3775 _mm_mask_subs_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
3776 __m128i __B)
3778 return (__m128i) __builtin_ia32_psubusw128_mask ((__v8hi) __A,
3779 (__v8hi) __B,
3780 (__v8hi) __W,
3781 (__mmask8) __U);
3784 extern __inline __m128i
3785 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3786 _mm_maskz_subs_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
3788 return (__m128i) __builtin_ia32_psubusw128_mask ((__v8hi) __A,
3789 (__v8hi) __B,
3790 (__v8hi)
3791 _mm_setzero_si128 (),
3792 (__mmask8) __U);
3795 extern __inline __m256i
3796 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3797 _mm256_mask_srl_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
3798 __m128i __B)
3800 return (__m256i) __builtin_ia32_psrlw256_mask ((__v16hi) __A,
3801 (__v8hi) __B,
3802 (__v16hi) __W,
3803 (__mmask16) __U);
3806 extern __inline __m256i
3807 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3808 _mm256_maskz_srl_epi16 (__mmask16 __U, __m256i __A, __m128i __B)
3810 return (__m256i) __builtin_ia32_psrlw256_mask ((__v16hi) __A,
3811 (__v8hi) __B,
3812 (__v16hi)
3813 _mm256_setzero_si256 (),
3814 (__mmask16) __U);
3817 extern __inline __m128i
3818 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3819 _mm_mask_srl_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
3820 __m128i __B)
3822 return (__m128i) __builtin_ia32_psrlw128_mask ((__v8hi) __A,
3823 (__v8hi) __B,
3824 (__v8hi) __W,
3825 (__mmask8) __U);
3828 extern __inline __m128i
3829 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3830 _mm_maskz_srl_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
3832 return (__m128i) __builtin_ia32_psrlw128_mask ((__v8hi) __A,
3833 (__v8hi) __B,
3834 (__v8hi)
3835 _mm_setzero_si128 (),
3836 (__mmask8) __U);
3839 extern __inline __m256i
3840 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3841 _mm256_mask_sra_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
3842 __m128i __B)
3844 return (__m256i) __builtin_ia32_psraw256_mask ((__v16hi) __A,
3845 (__v8hi) __B,
3846 (__v16hi) __W,
3847 (__mmask16) __U);
3850 extern __inline __m256i
3851 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3852 _mm256_maskz_sra_epi16 (__mmask16 __U, __m256i __A, __m128i __B)
3854 return (__m256i) __builtin_ia32_psraw256_mask ((__v16hi) __A,
3855 (__v8hi) __B,
3856 (__v16hi)
3857 _mm256_setzero_si256 (),
3858 (__mmask16) __U);
3861 extern __inline __m128i
3862 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3863 _mm_mask_sra_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
3864 __m128i __B)
3866 return (__m128i) __builtin_ia32_psraw128_mask ((__v8hi) __A,
3867 (__v8hi) __B,
3868 (__v8hi) __W,
3869 (__mmask8) __U);
3872 extern __inline __m128i
3873 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3874 _mm_maskz_sra_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
3876 return (__m128i) __builtin_ia32_psraw128_mask ((__v8hi) __A,
3877 (__v8hi) __B,
3878 (__v8hi)
3879 _mm_setzero_si128 (),
3880 (__mmask8) __U);
3883 extern __inline __m128i
3884 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3885 _mm_maskz_adds_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
3887 return (__m128i) __builtin_ia32_paddsw128_mask ((__v8hi) __A,
3888 (__v8hi) __B,
3889 (__v8hi)
3890 _mm_setzero_si128 (),
3891 (__mmask8) __U);
3894 extern __inline __m128i
3895 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3896 _mm_mask_adds_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
3897 __m128i __B)
3899 return (__m128i) __builtin_ia32_paddusb128_mask ((__v16qi) __A,
3900 (__v16qi) __B,
3901 (__v16qi) __W,
3902 (__mmask16) __U);
3905 extern __inline __m128i
3906 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3907 _mm_maskz_adds_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
3909 return (__m128i) __builtin_ia32_paddusb128_mask ((__v16qi) __A,
3910 (__v16qi) __B,
3911 (__v16qi)
3912 _mm_setzero_si128 (),
3913 (__mmask16) __U);
3916 extern __inline __m128i
3917 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3918 _mm_mask_adds_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
3919 __m128i __B)
3921 return (__m128i) __builtin_ia32_paddusw128_mask ((__v8hi) __A,
3922 (__v8hi) __B,
3923 (__v8hi) __W,
3924 (__mmask8) __U);
3927 extern __inline __m128i
3928 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3929 _mm_maskz_adds_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
3931 return (__m128i) __builtin_ia32_paddusw128_mask ((__v8hi) __A,
3932 (__v8hi) __B,
3933 (__v8hi)
3934 _mm_setzero_si128 (),
3935 (__mmask8) __U);
3938 extern __inline __m128i
3939 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3940 _mm_mask_sub_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
3941 __m128i __B)
3943 return (__m128i) __builtin_ia32_psubb128_mask ((__v16qi) __A,
3944 (__v16qi) __B,
3945 (__v16qi) __W,
3946 (__mmask16) __U);
3949 extern __inline __m128i
3950 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3951 _mm_maskz_sub_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
3953 return (__m128i) __builtin_ia32_psubb128_mask ((__v16qi) __A,
3954 (__v16qi) __B,
3955 (__v16qi)
3956 _mm_setzero_si128 (),
3957 (__mmask16) __U);
3960 extern __inline __m128i
3961 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3962 _mm_mask_sub_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
3963 __m128i __B)
3965 return (__m128i) __builtin_ia32_psubw128_mask ((__v8hi) __A,
3966 (__v8hi) __B,
3967 (__v8hi) __W,
3968 (__mmask8) __U);
3971 extern __inline __m128i
3972 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3973 _mm_maskz_sub_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
3975 return (__m128i) __builtin_ia32_psubw128_mask ((__v8hi) __A,
3976 (__v8hi) __B,
3977 (__v8hi)
3978 _mm_setzero_si128 (),
3979 (__mmask8) __U);
3982 extern __inline __m128i
3983 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3984 _mm_mask_adds_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
3985 __m128i __B)
3987 return (__m128i) __builtin_ia32_paddsb128_mask ((__v16qi) __A,
3988 (__v16qi) __B,
3989 (__v16qi) __W,
3990 (__mmask16) __U);
3993 extern __inline __m128i
3994 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3995 _mm_maskz_adds_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
3997 return (__m128i) __builtin_ia32_paddsb128_mask ((__v16qi) __A,
3998 (__v16qi) __B,
3999 (__v16qi)
4000 _mm_setzero_si128 (),
4001 (__mmask16) __U);
4004 extern __inline __m128i
4005 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4006 _mm_cvtepi16_epi8 (__m128i __A)
4009 return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
4010 (__v16qi)_mm_undefined_si128(),
4011 (__mmask8) -1);
4014 extern __inline __m128i
4015 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4016 _mm_mask_cvtepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
4018 return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
4019 (__v16qi) __O, __M);
4022 extern __inline __m128i
4023 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4024 _mm_maskz_cvtepi16_epi8 (__mmask8 __M, __m128i __A)
4026 return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
4027 (__v16qi)
4028 _mm_setzero_si128 (),
4029 __M);
4032 extern __inline __m256i
4033 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4034 _mm256_srav_epi16 (__m256i __A, __m256i __B)
4036 return (__m256i) __builtin_ia32_psrav16hi_mask ((__v16hi) __A,
4037 (__v16hi) __B,
4038 (__v16hi)
4039 _mm256_setzero_si256 (),
4040 (__mmask16) -1);
4043 extern __inline __m256i
4044 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4045 _mm256_mask_srav_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
4046 __m256i __B)
4048 return (__m256i) __builtin_ia32_psrav16hi_mask ((__v16hi) __A,
4049 (__v16hi) __B,
4050 (__v16hi) __W,
4051 (__mmask16) __U);
4054 extern __inline __m256i
4055 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4056 _mm256_maskz_srav_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
4058 return (__m256i) __builtin_ia32_psrav16hi_mask ((__v16hi) __A,
4059 (__v16hi) __B,
4060 (__v16hi)
4061 _mm256_setzero_si256 (),
4062 (__mmask16) __U);
4065 extern __inline __m128i
4066 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4067 _mm_srav_epi16 (__m128i __A, __m128i __B)
4069 return (__m128i) __builtin_ia32_psrav8hi_mask ((__v8hi) __A,
4070 (__v8hi) __B,
4071 (__v8hi)
4072 _mm_setzero_hi (),
4073 (__mmask8) -1);
4076 extern __inline __m128i
4077 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4078 _mm_mask_srav_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
4079 __m128i __B)
4081 return (__m128i) __builtin_ia32_psrav8hi_mask ((__v8hi) __A,
4082 (__v8hi) __B,
4083 (__v8hi) __W,
4084 (__mmask8) __U);
4087 extern __inline __m128i
4088 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4089 _mm_maskz_srav_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
4091 return (__m128i) __builtin_ia32_psrav8hi_mask ((__v8hi) __A,
4092 (__v8hi) __B,
4093 (__v8hi)
4094 _mm_setzero_si128 (),
4095 (__mmask8) __U);
4098 extern __inline __m256i
4099 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4100 _mm256_srlv_epi16 (__m256i __A, __m256i __B)
4102 return (__m256i) __builtin_ia32_psrlv16hi_mask ((__v16hi) __A,
4103 (__v16hi) __B,
4104 (__v16hi)
4105 _mm256_setzero_si256 (),
4106 (__mmask16) -1);
4109 extern __inline __m256i
4110 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4111 _mm256_mask_srlv_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
4112 __m256i __B)
4114 return (__m256i) __builtin_ia32_psrlv16hi_mask ((__v16hi) __A,
4115 (__v16hi) __B,
4116 (__v16hi) __W,
4117 (__mmask16) __U);
4120 extern __inline __m256i
4121 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4122 _mm256_maskz_srlv_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
4124 return (__m256i) __builtin_ia32_psrlv16hi_mask ((__v16hi) __A,
4125 (__v16hi) __B,
4126 (__v16hi)
4127 _mm256_setzero_si256 (),
4128 (__mmask16) __U);
4131 extern __inline __m128i
4132 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4133 _mm_srlv_epi16 (__m128i __A, __m128i __B)
4135 return (__m128i) __builtin_ia32_psrlv8hi_mask ((__v8hi) __A,
4136 (__v8hi) __B,
4137 (__v8hi)
4138 _mm_setzero_hi (),
4139 (__mmask8) -1);
4142 extern __inline __m128i
4143 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4144 _mm_mask_srlv_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
4145 __m128i __B)
4147 return (__m128i) __builtin_ia32_psrlv8hi_mask ((__v8hi) __A,
4148 (__v8hi) __B,
4149 (__v8hi) __W,
4150 (__mmask8) __U);
4153 extern __inline __m128i
4154 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4155 _mm_maskz_srlv_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
4157 return (__m128i) __builtin_ia32_psrlv8hi_mask ((__v8hi) __A,
4158 (__v8hi) __B,
4159 (__v8hi)
4160 _mm_setzero_si128 (),
4161 (__mmask8) __U);
4164 extern __inline __m256i
4165 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4166 _mm256_sllv_epi16 (__m256i __A, __m256i __B)
4168 return (__m256i) __builtin_ia32_psllv16hi_mask ((__v16hi) __A,
4169 (__v16hi) __B,
4170 (__v16hi)
4171 _mm256_setzero_si256 (),
4172 (__mmask16) -1);
4175 extern __inline __m256i
4176 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4177 _mm256_mask_sllv_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
4178 __m256i __B)
4180 return (__m256i) __builtin_ia32_psllv16hi_mask ((__v16hi) __A,
4181 (__v16hi) __B,
4182 (__v16hi) __W,
4183 (__mmask16) __U);
4186 extern __inline __m256i
4187 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4188 _mm256_maskz_sllv_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
4190 return (__m256i) __builtin_ia32_psllv16hi_mask ((__v16hi) __A,
4191 (__v16hi) __B,
4192 (__v16hi)
4193 _mm256_setzero_si256 (),
4194 (__mmask16) __U);
4197 extern __inline __m128i
4198 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4199 _mm_sllv_epi16 (__m128i __A, __m128i __B)
4201 return (__m128i) __builtin_ia32_psllv8hi_mask ((__v8hi) __A,
4202 (__v8hi) __B,
4203 (__v8hi)
4204 _mm_setzero_hi (),
4205 (__mmask8) -1);
4208 extern __inline __m128i
4209 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4210 _mm_mask_sllv_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
4211 __m128i __B)
4213 return (__m128i) __builtin_ia32_psllv8hi_mask ((__v8hi) __A,
4214 (__v8hi) __B,
4215 (__v8hi) __W,
4216 (__mmask8) __U);
4219 extern __inline __m128i
4220 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4221 _mm_maskz_sllv_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
4223 return (__m128i) __builtin_ia32_psllv8hi_mask ((__v8hi) __A,
4224 (__v8hi) __B,
4225 (__v8hi)
4226 _mm_setzero_si128 (),
4227 (__mmask8) __U);
4230 extern __inline __m128i
4231 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4232 _mm_mask_sll_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
4233 __m128i __B)
4235 return (__m128i) __builtin_ia32_psllw128_mask ((__v8hi) __A,
4236 (__v8hi) __B,
4237 (__v8hi) __W,
4238 (__mmask8) __U);
4241 extern __inline __m128i
4242 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4243 _mm_maskz_sll_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
4245 return (__m128i) __builtin_ia32_psllw128_mask ((__v8hi) __A,
4246 (__v8hi) __B,
4247 (__v8hi)
4248 _mm_setzero_si128 (),
4249 (__mmask8) __U);
4252 extern __inline __m256i
4253 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4254 _mm256_mask_sll_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
4255 __m128i __B)
4257 return (__m256i) __builtin_ia32_psllw256_mask ((__v16hi) __A,
4258 (__v8hi) __B,
4259 (__v16hi) __W,
4260 (__mmask16) __U);
4263 extern __inline __m256i
4264 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4265 _mm256_maskz_sll_epi16 (__mmask16 __U, __m256i __A, __m128i __B)
4267 return (__m256i) __builtin_ia32_psllw256_mask ((__v16hi) __A,
4268 (__v8hi) __B,
4269 (__v16hi)
4270 _mm256_setzero_si256 (),
4271 (__mmask16) __U);
4274 extern __inline __m256i
4275 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4276 _mm256_maskz_packus_epi32 (__mmask16 __M, __m256i __A, __m256i __B)
4278 return (__m256i) __builtin_ia32_packusdw256_mask ((__v8si) __A,
4279 (__v8si) __B,
4280 (__v16hi)
4281 _mm256_setzero_si256 (),
4282 __M);
4285 extern __inline __m256i
4286 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4287 _mm256_mask_packus_epi32 (__m256i __W, __mmask16 __M, __m256i __A,
4288 __m256i __B)
4290 return (__m256i) __builtin_ia32_packusdw256_mask ((__v8si) __A,
4291 (__v8si) __B,
4292 (__v16hi) __W,
4293 __M);
4296 extern __inline __m128i
4297 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4298 _mm_maskz_packus_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
4300 return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A,
4301 (__v4si) __B,
4302 (__v8hi)
4303 _mm_setzero_si128 (),
4304 __M);
4307 extern __inline __m128i
4308 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4309 _mm_mask_packus_epi32 (__m128i __W, __mmask16 __M, __m128i __A,
4310 __m128i __B)
4312 return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A,
4313 (__v4si) __B,
4314 (__v8hi) __W, __M);
4317 extern __inline __m256i
4318 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4319 _mm256_maskz_packs_epi32 (__mmask16 __M, __m256i __A, __m256i __B)
4321 return (__m256i) __builtin_ia32_packssdw256_mask ((__v8si) __A,
4322 (__v8si) __B,
4323 (__v16hi)
4324 _mm256_setzero_si256 (),
4325 __M);
4328 extern __inline __m256i
4329 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4330 _mm256_mask_packs_epi32 (__m256i __W, __mmask16 __M, __m256i __A,
4331 __m256i __B)
4333 return (__m256i) __builtin_ia32_packssdw256_mask ((__v8si) __A,
4334 (__v8si) __B,
4335 (__v16hi) __W,
4336 __M);
4339 extern __inline __m128i
4340 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4341 _mm_maskz_packs_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
4343 return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A,
4344 (__v4si) __B,
4345 (__v8hi)
4346 _mm_setzero_si128 (),
4347 __M);
4350 extern __inline __m128i
4351 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4352 _mm_mask_packs_epi32 (__m128i __W, __mmask16 __M, __m128i __A,
4353 __m128i __B)
4355 return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A,
4356 (__v4si) __B,
4357 (__v8hi) __W, __M);
4360 extern __inline __mmask16
4361 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4362 _mm_mask_cmpneq_epu8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4364 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
4365 (__v16qi) __Y, 4,
4366 (__mmask16) __M);
4369 extern __inline __mmask16
4370 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4371 _mm_mask_cmplt_epu8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4373 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
4374 (__v16qi) __Y, 1,
4375 (__mmask16) __M);
4378 extern __inline __mmask16
4379 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4380 _mm_mask_cmpge_epu8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4382 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
4383 (__v16qi) __Y, 5,
4384 (__mmask16) __M);
4387 extern __inline __mmask16
4388 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4389 _mm_mask_cmple_epu8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4391 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
4392 (__v16qi) __Y, 2,
4393 (__mmask16) __M);
4396 extern __inline __mmask8
4397 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4398 _mm_mask_cmpneq_epu16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4400 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
4401 (__v8hi) __Y, 4,
4402 (__mmask8) __M);
4405 extern __inline __mmask8
4406 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4407 _mm_mask_cmplt_epu16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4409 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
4410 (__v8hi) __Y, 1,
4411 (__mmask8) __M);
4414 extern __inline __mmask8
4415 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4416 _mm_mask_cmpge_epu16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4418 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
4419 (__v8hi) __Y, 5,
4420 (__mmask8) __M);
4423 extern __inline __mmask8
4424 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4425 _mm_mask_cmple_epu16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4427 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
4428 (__v8hi) __Y, 2,
4429 (__mmask8) __M);
4432 extern __inline __mmask16
4433 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4434 _mm_mask_cmpneq_epi8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4436 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
4437 (__v16qi) __Y, 4,
4438 (__mmask16) __M);
4441 extern __inline __mmask16
4442 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4443 _mm_mask_cmplt_epi8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4445 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
4446 (__v16qi) __Y, 1,
4447 (__mmask16) __M);
4450 extern __inline __mmask16
4451 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4452 _mm_mask_cmpge_epi8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4454 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
4455 (__v16qi) __Y, 5,
4456 (__mmask16) __M);
4459 extern __inline __mmask16
4460 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4461 _mm_mask_cmple_epi8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4463 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
4464 (__v16qi) __Y, 2,
4465 (__mmask16) __M);
4468 extern __inline __mmask8
4469 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4470 _mm_mask_cmpneq_epi16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4472 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
4473 (__v8hi) __Y, 4,
4474 (__mmask8) __M);
4477 extern __inline __mmask8
4478 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4479 _mm_mask_cmplt_epi16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4481 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
4482 (__v8hi) __Y, 1,
4483 (__mmask8) __M);
4486 extern __inline __mmask8
4487 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4488 _mm_mask_cmpge_epi16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4490 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
4491 (__v8hi) __Y, 5,
4492 (__mmask8) __M);
4495 extern __inline __mmask8
4496 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4497 _mm_mask_cmple_epi16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4499 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
4500 (__v8hi) __Y, 2,
4501 (__mmask8) __M);
4504 extern __inline __mmask8
4505 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4506 _mm256_mask_cmpneq_epu8_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4508 return (__mmask8) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
4509 (__v32qi) __Y, 4,
4510 (__mmask8) __M);
4513 extern __inline __mmask8
4514 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4515 _mm256_mask_cmplt_epu8_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4517 return (__mmask8) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
4518 (__v32qi) __Y, 1,
4519 (__mmask8) __M);
4522 extern __inline __mmask8
4523 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4524 _mm256_mask_cmpge_epu8_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4526 return (__mmask8) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
4527 (__v32qi) __Y, 5,
4528 (__mmask8) __M);
4531 extern __inline __mmask8
4532 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4533 _mm256_mask_cmple_epu8_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4535 return (__mmask8) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
4536 (__v32qi) __Y, 2,
4537 (__mmask8) __M);
4540 extern __inline __mmask8
4541 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4542 _mm256_mask_cmpneq_epu16_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4544 return (__mmask8) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
4545 (__v16hi) __Y, 4,
4546 (__mmask8) __M);
4549 extern __inline __mmask8
4550 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4551 _mm256_mask_cmplt_epu16_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4553 return (__mmask8) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
4554 (__v16hi) __Y, 1,
4555 (__mmask8) __M);
4558 extern __inline __mmask8
4559 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4560 _mm256_mask_cmpge_epu16_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4562 return (__mmask8) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
4563 (__v16hi) __Y, 5,
4564 (__mmask8) __M);
4567 extern __inline __mmask8
4568 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4569 _mm256_mask_cmple_epu16_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4571 return (__mmask8) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
4572 (__v16hi) __Y, 2,
4573 (__mmask8) __M);
4576 extern __inline __mmask8
4577 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4578 _mm256_mask_cmpneq_epi8_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4580 return (__mmask8) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
4581 (__v32qi) __Y, 4,
4582 (__mmask8) __M);
4585 extern __inline __mmask8
4586 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4587 _mm256_mask_cmplt_epi8_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4589 return (__mmask8) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
4590 (__v32qi) __Y, 1,
4591 (__mmask8) __M);
4594 extern __inline __mmask8
4595 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4596 _mm256_mask_cmpge_epi8_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4598 return (__mmask8) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
4599 (__v32qi) __Y, 5,
4600 (__mmask8) __M);
4603 extern __inline __mmask8
4604 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4605 _mm256_mask_cmple_epi8_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4607 return (__mmask8) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
4608 (__v32qi) __Y, 2,
4609 (__mmask8) __M);
4612 extern __inline __mmask8
4613 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4614 _mm256_mask_cmpneq_epi16_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4616 return (__mmask8) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
4617 (__v16hi) __Y, 4,
4618 (__mmask8) __M);
4621 extern __inline __mmask8
4622 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4623 _mm256_mask_cmplt_epi16_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4625 return (__mmask8) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
4626 (__v16hi) __Y, 1,
4627 (__mmask8) __M);
4630 extern __inline __mmask8
4631 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4632 _mm256_mask_cmpge_epi16_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4634 return (__mmask8) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
4635 (__v16hi) __Y, 5,
4636 (__mmask8) __M);
4639 extern __inline __mmask8
4640 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4641 _mm256_mask_cmple_epi16_mask (__mmask8 __M, __m256i __X, __m256i __Y)
4643 return (__mmask8) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
4644 (__v16hi) __Y, 2,
4645 (__mmask8) __M);
4648 #ifdef __DISABLE_AVX512VLBW__
4649 #undef __DISABLE_AVX512VLBW__
4650 #pragma GCC pop_options
4651 #endif /* __DISABLE_AVX512VLBW__ */
4653 #endif /* _AVX512VLBWINTRIN_H_INCLUDED */