source: Daodan/MSYS2/mingw32/lib/gcc/i686-w64-mingw32/11.2.0/include/avx512vlbwintrin.h

Last change on this file was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 142.4 KB
Line 
1/* Copyright (C) 2014-2021 Free Software Foundation, Inc.
2
3 This file is part of GCC.
4
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.
9
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.
14
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.
18
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/>. */
23
24#ifndef _IMMINTRIN_H_INCLUDED
25#error "Never use <avx512vlbwintrin.h> directly; include <immintrin.h> instead."
26#endif
27
28#ifndef _AVX512VLBWINTRIN_H_INCLUDED
29#define _AVX512VLBWINTRIN_H_INCLUDED
30
31#if !defined(__AVX512VL__) || !defined(__AVX512BW__)
32#pragma GCC push_options
33#pragma GCC target("avx512vl,avx512bw")
34#define __DISABLE_AVX512VLBW__
35#endif /* __AVX512VLBW__ */
36
37/* Internal data types for implementing the intrinsics. */
38typedef short __v16hi_u __attribute__ ((__vector_size__ (32), \
39 __may_alias__, __aligned__ (1)));
40typedef short __v8hi_u __attribute__ ((__vector_size__ (16), \
41 __may_alias__, __aligned__ (1)));
42typedef char __v32qi_u __attribute__ ((__vector_size__ (32), \
43 __may_alias__, __aligned__ (1)));
44typedef char __v16qi_u __attribute__ ((__vector_size__ (16), \
45 __may_alias__, __aligned__ (1)));
46
47extern __inline __m256i
48__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
49_mm256_mask_mov_epi8 (__m256i __W, __mmask32 __U, __m256i __A)
50{
51 return (__m256i) __builtin_ia32_movdquqi256_mask ((__v32qi) __A,
52 (__v32qi) __W,
53 (__mmask32) __U);
54}
55
56extern __inline __m256i
57__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
58_mm256_maskz_mov_epi8 (__mmask32 __U, __m256i __A)
59{
60 return (__m256i) __builtin_ia32_movdquqi256_mask ((__v32qi) __A,
61 (__v32qi)
62 _mm256_setzero_si256 (),
63 (__mmask32) __U);
64}
65
66extern __inline __m128i
67__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
68_mm_mask_mov_epi8 (__m128i __W, __mmask16 __U, __m128i __A)
69{
70 return (__m128i) __builtin_ia32_movdquqi128_mask ((__v16qi) __A,
71 (__v16qi) __W,
72 (__mmask16) __U);
73}
74
75extern __inline __m128i
76__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
77_mm_maskz_mov_epi8 (__mmask16 __U, __m128i __A)
78{
79 return (__m128i) __builtin_ia32_movdquqi128_mask ((__v16qi) __A,
80 (__v16qi)
81 _mm_setzero_si128 (),
82 (__mmask16) __U);
83}
84
85extern __inline void
86__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
87_mm256_storeu_epi8 (void *__P, __m256i __A)
88{
89 *(__v32qi_u *) __P = (__v32qi_u) __A;
90}
91
92extern __inline void
93__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
94_mm256_mask_storeu_epi8 (void *__P, __mmask32 __U, __m256i __A)
95{
96 __builtin_ia32_storedquqi256_mask ((char *) __P,
97 (__v32qi) __A,
98 (__mmask32) __U);
99}
100
101extern __inline void
102__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
103_mm_storeu_epi8 (void *__P, __m128i __A)
104{
105 *(__v16qi_u *) __P = (__v16qi_u) __A;
106}
107
108extern __inline void
109__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
110_mm_mask_storeu_epi8 (void *__P, __mmask16 __U, __m128i __A)
111{
112 __builtin_ia32_storedquqi128_mask ((char *) __P,
113 (__v16qi) __A,
114 (__mmask16) __U);
115}
116
117extern __inline __m256i
118__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
119_mm256_loadu_epi16 (void const *__P)
120{
121 return (__m256i) (*(__v16hi_u *) __P);
122}
123
124extern __inline __m256i
125__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
126_mm256_mask_loadu_epi16 (__m256i __W, __mmask16 __U, void const *__P)
127{
128 return (__m256i) __builtin_ia32_loaddquhi256_mask ((const short *) __P,
129 (__v16hi) __W,
130 (__mmask16) __U);
131}
132
133extern __inline __m256i
134__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
135_mm256_maskz_loadu_epi16 (__mmask16 __U, void const *__P)
136{
137 return (__m256i) __builtin_ia32_loaddquhi256_mask ((const short *) __P,
138 (__v16hi)
139 _mm256_setzero_si256 (),
140 (__mmask16) __U);
141}
142
143extern __inline __m128i
144__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
145_mm_loadu_epi16 (void const *__P)
146{
147 return (__m128i) (*(__v8hi_u *) __P);
148}
149
150extern __inline __m128i
151__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
152_mm_mask_loadu_epi16 (__m128i __W, __mmask8 __U, void const *__P)
153{
154 return (__m128i) __builtin_ia32_loaddquhi128_mask ((const short *) __P,
155 (__v8hi) __W,
156 (__mmask8) __U);
157}
158
159extern __inline __m128i
160__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
161_mm_maskz_loadu_epi16 (__mmask8 __U, void const *__P)
162{
163 return (__m128i) __builtin_ia32_loaddquhi128_mask ((const short *) __P,
164 (__v8hi)
165 _mm_setzero_si128 (),
166 (__mmask8) __U);
167}
168
169
170extern __inline __m256i
171__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
172_mm256_mask_mov_epi16 (__m256i __W, __mmask16 __U, __m256i __A)
173{
174 return (__m256i) __builtin_ia32_movdquhi256_mask ((__v16hi) __A,
175 (__v16hi) __W,
176 (__mmask16) __U);
177}
178
179extern __inline __m256i
180__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
181_mm256_maskz_mov_epi16 (__mmask16 __U, __m256i __A)
182{
183 return (__m256i) __builtin_ia32_movdquhi256_mask ((__v16hi) __A,
184 (__v16hi)
185 _mm256_setzero_si256 (),
186 (__mmask16) __U);
187}
188
189extern __inline __m128i
190__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
191_mm_mask_mov_epi16 (__m128i __W, __mmask8 __U, __m128i __A)
192{
193 return (__m128i) __builtin_ia32_movdquhi128_mask ((__v8hi) __A,
194 (__v8hi) __W,
195 (__mmask8) __U);
196}
197
198extern __inline __m128i
199__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
200_mm_maskz_mov_epi16 (__mmask8 __U, __m128i __A)
201{
202 return (__m128i) __builtin_ia32_movdquhi128_mask ((__v8hi) __A,
203 (__v8hi)
204 _mm_setzero_si128 (),
205 (__mmask8) __U);
206}
207
208extern __inline __m256i
209__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
210_mm256_loadu_epi8 (void const *__P)
211{
212 return (__m256i) (*(__v32qi_u *) __P);
213}
214
215extern __inline __m256i
216__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
217_mm256_mask_loadu_epi8 (__m256i __W, __mmask32 __U, void const *__P)
218{
219 return (__m256i) __builtin_ia32_loaddquqi256_mask ((const char *) __P,
220 (__v32qi) __W,
221 (__mmask32) __U);
222}
223
224extern __inline __m256i
225__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
226_mm256_maskz_loadu_epi8 (__mmask32 __U, void const *__P)
227{
228 return (__m256i) __builtin_ia32_loaddquqi256_mask ((const char *) __P,
229 (__v32qi)
230 _mm256_setzero_si256 (),
231 (__mmask32) __U);
232}
233
234extern __inline __m128i
235__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
236_mm_loadu_epi8 (void const *__P)
237{
238 return (__m128i) (*(__v16qi_u *) __P);
239}
240
241extern __inline __m128i
242__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
243_mm_mask_loadu_epi8 (__m128i __W, __mmask16 __U, void const *__P)
244{
245 return (__m128i) __builtin_ia32_loaddquqi128_mask ((const char *) __P,
246 (__v16qi) __W,
247 (__mmask16) __U);
248}
249
250extern __inline __m128i
251__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
252_mm_maskz_loadu_epi8 (__mmask16 __U, void const *__P)
253{
254 return (__m128i) __builtin_ia32_loaddquqi128_mask ((const char *) __P,
255 (__v16qi)
256 _mm_setzero_si128 (),
257 (__mmask16) __U);
258}
259
260extern __inline __m128i
261__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
262_mm256_cvtepi16_epi8 (__m256i __A)
263{
264
265 return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
266 (__v16qi)_mm_undefined_si128(),
267 (__mmask16) -1);
268}
269
270extern __inline void
271__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
272_mm256_mask_cvtepi16_storeu_epi8 (void * __P, __mmask16 __M,__m256i __A)
273{
274 __builtin_ia32_pmovwb256mem_mask ((__v16qi *) __P , (__v16hi) __A, __M);
275}
276
277extern __inline __m128i
278__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
279_mm256_mask_cvtepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A)
280{
281 return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
282 (__v16qi) __O, __M);
283}
284
285extern __inline __m128i
286__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
287_mm256_maskz_cvtepi16_epi8 (__mmask16 __M, __m256i __A)
288{
289 return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
290 (__v16qi)
291 _mm_setzero_si128 (),
292 __M);
293}
294
295extern __inline __m128i
296__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
297_mm_cvtsepi16_epi8 (__m128i __A)
298{
299
300 return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
301 (__v16qi)_mm_undefined_si128(),
302 (__mmask8) -1);
303}
304
305extern __inline void
306__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
307_mm_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask8 __M,__m128i __A)
308{
309 __builtin_ia32_pmovswb128mem_mask ((unsigned long long *) __P , (__v8hi) __A, __M);
310}
311
312extern __inline __m128i
313__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
314_mm_mask_cvtsepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
315{
316 return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
317 (__v16qi) __O, __M);
318}
319
320extern __inline __m128i
321__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
322_mm_maskz_cvtsepi16_epi8 (__mmask8 __M, __m128i __A)
323{
324 return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
325 (__v16qi)
326 _mm_setzero_si128 (),
327 __M);
328}
329
330extern __inline __m128i
331__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
332_mm256_cvtsepi16_epi8 (__m256i __A)
333{
334
335 return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
336 (__v16qi)_mm_undefined_si128(),
337 (__mmask16) -1);
338}
339
340extern __inline void
341__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
342_mm256_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask16 __M,__m256i __A)
343{
344 __builtin_ia32_pmovswb256mem_mask ((__v16qi *) __P , (__v16hi) __A, __M);
345}
346
347extern __inline __m128i
348__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
349_mm256_mask_cvtsepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A)
350{
351 return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
352 (__v16qi) __O, __M);
353}
354
355extern __inline __m128i
356__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
357_mm256_maskz_cvtsepi16_epi8 (__mmask16 __M, __m256i __A)
358{
359 return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
360 (__v16qi)
361 _mm_setzero_si128 (),
362 __M);
363}
364
365extern __inline __m128i
366__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
367_mm_cvtusepi16_epi8 (__m128i __A)
368{
369
370 return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
371 (__v16qi)_mm_undefined_si128(),
372 (__mmask8) -1);
373}
374
375extern __inline void
376__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
377_mm_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask8 __M,__m128i __A)
378{
379 __builtin_ia32_pmovuswb128mem_mask ((unsigned long long *) __P , (__v8hi) __A, __M);
380}
381
382extern __inline __m128i
383__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
384_mm_mask_cvtusepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
385{
386 return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
387 (__v16qi) __O,
388 __M);
389}
390
391extern __inline __m128i
392__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
393_mm_maskz_cvtusepi16_epi8 (__mmask8 __M, __m128i __A)
394{
395 return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
396 (__v16qi)
397 _mm_setzero_si128 (),
398 __M);
399}
400
401extern __inline __m128i
402__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
403_mm256_cvtusepi16_epi8 (__m256i __A)
404{
405
406 return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
407 (__v16qi)_mm_undefined_si128(),
408 (__mmask16) -1);
409}
410
411extern __inline void
412__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
413_mm256_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask16 __M,__m256i __A)
414{
415 __builtin_ia32_pmovuswb256mem_mask ((__v16qi *) __P , (__v16hi) __A, __M);
416}
417
418extern __inline __m128i
419__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
420_mm256_mask_cvtusepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A)
421{
422 return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
423 (__v16qi) __O,
424 __M);
425}
426
427extern __inline __m128i
428__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
429_mm256_maskz_cvtusepi16_epi8 (__mmask16 __M, __m256i __A)
430{
431 return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
432 (__v16qi)
433 _mm_setzero_si128 (),
434 __M);
435}
436
437extern __inline __m256i
438__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
439_mm256_mask_broadcastb_epi8 (__m256i __O, __mmask32 __M, __m128i __A)
440{
441 return (__m256i) __builtin_ia32_pbroadcastb256_mask ((__v16qi) __A,
442 (__v32qi) __O,
443 __M);
444}
445
446extern __inline __m256i
447__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
448_mm256_maskz_broadcastb_epi8 (__mmask32 __M, __m128i __A)
449{
450 return (__m256i) __builtin_ia32_pbroadcastb256_mask ((__v16qi) __A,
451 (__v32qi)
452 _mm256_setzero_si256 (),
453 __M);
454}
455
456extern __inline __m256i
457__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
458_mm256_mask_set1_epi8 (__m256i __O, __mmask32 __M, char __A)
459{
460 return (__m256i) __builtin_ia32_pbroadcastb256_gpr_mask (__A,
461 (__v32qi) __O,
462 __M);
463}
464
465extern __inline __m256i
466__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
467_mm256_maskz_set1_epi8 (__mmask32 __M, char __A)
468{
469 return (__m256i) __builtin_ia32_pbroadcastb256_gpr_mask (__A,
470 (__v32qi)
471 _mm256_setzero_si256 (),
472 __M);
473}
474
475extern __inline __m128i
476__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
477_mm_mask_broadcastb_epi8 (__m128i __O, __mmask16 __M, __m128i __A)
478{
479 return (__m128i) __builtin_ia32_pbroadcastb128_mask ((__v16qi) __A,
480 (__v16qi) __O,
481 __M);
482}
483
484extern __inline __m128i
485__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
486_mm_maskz_broadcastb_epi8 (__mmask16 __M, __m128i __A)
487{
488 return (__m128i) __builtin_ia32_pbroadcastb128_mask ((__v16qi) __A,
489 (__v16qi)
490 _mm_setzero_si128 (),
491 __M);
492}
493
494extern __inline __m128i
495__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
496_mm_mask_set1_epi8 (__m128i __O, __mmask16 __M, char __A)
497{
498 return (__m128i) __builtin_ia32_pbroadcastb128_gpr_mask (__A,
499 (__v16qi) __O,
500 __M);
501}
502
503extern __inline __m128i
504__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
505_mm_maskz_set1_epi8 (__mmask16 __M, char __A)
506{
507 return (__m128i) __builtin_ia32_pbroadcastb128_gpr_mask (__A,
508 (__v16qi)
509 _mm_setzero_si128 (),
510 __M);
511}
512
513extern __inline __m256i
514__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
515_mm256_mask_broadcastw_epi16 (__m256i __O, __mmask16 __M, __m128i __A)
516{
517 return (__m256i) __builtin_ia32_pbroadcastw256_mask ((__v8hi) __A,
518 (__v16hi) __O,
519 __M);
520}
521
522extern __inline __m256i
523__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
524_mm256_maskz_broadcastw_epi16 (__mmask16 __M, __m128i __A)
525{
526 return (__m256i) __builtin_ia32_pbroadcastw256_mask ((__v8hi) __A,
527 (__v16hi)
528 _mm256_setzero_si256 (),
529 __M);
530}
531
532extern __inline __m256i
533__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
534_mm256_mask_set1_epi16 (__m256i __O, __mmask16 __M, short __A)
535{
536 return (__m256i) __builtin_ia32_pbroadcastw256_gpr_mask (__A,
537 (__v16hi) __O,
538 __M);
539}
540
541extern __inline __m256i
542__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
543_mm256_maskz_set1_epi16 (__mmask16 __M, short __A)
544{
545 return (__m256i) __builtin_ia32_pbroadcastw256_gpr_mask (__A,
546 (__v16hi)
547 _mm256_setzero_si256 (),
548 __M);
549}
550
551extern __inline __m128i
552__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
553_mm_mask_broadcastw_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
554{
555 return (__m128i) __builtin_ia32_pbroadcastw128_mask ((__v8hi) __A,
556 (__v8hi) __O,
557 __M);
558}
559
560extern __inline __m128i
561__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
562_mm_maskz_broadcastw_epi16 (__mmask8 __M, __m128i __A)
563{
564 return (__m128i) __builtin_ia32_pbroadcastw128_mask ((__v8hi) __A,
565 (__v8hi)
566 _mm_setzero_si128 (),
567 __M);
568}
569
570extern __inline __m128i
571__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
572_mm_mask_set1_epi16 (__m128i __O, __mmask8 __M, short __A)
573{
574 return (__m128i) __builtin_ia32_pbroadcastw128_gpr_mask (__A,
575 (__v8hi) __O,
576 __M);
577}
578
579extern __inline __m128i
580__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
581_mm_maskz_set1_epi16 (__mmask8 __M, short __A)
582{
583 return (__m128i) __builtin_ia32_pbroadcastw128_gpr_mask (__A,
584 (__v8hi)
585 _mm_setzero_si128 (),
586 __M);
587}
588
589extern __inline __m256i
590__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
591_mm256_permutexvar_epi16 (__m256i __A, __m256i __B)
592{
593 return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
594 (__v16hi) __A,
595 (__v16hi)
596 _mm256_setzero_si256 (),
597 (__mmask16) -1);
598}
599
600extern __inline __m256i
601__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
602_mm256_maskz_permutexvar_epi16 (__mmask16 __M, __m256i __A,
603 __m256i __B)
604{
605 return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
606 (__v16hi) __A,
607 (__v16hi)
608 _mm256_setzero_si256 (),
609 (__mmask16) __M);
610}
611
612extern __inline __m256i
613__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
614_mm256_mask_permutexvar_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
615 __m256i __B)
616{
617 return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
618 (__v16hi) __A,
619 (__v16hi) __W,
620 (__mmask16) __M);
621}
622
623extern __inline __m128i
624__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
625_mm_permutexvar_epi16 (__m128i __A, __m128i __B)
626{
627 return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
628 (__v8hi) __A,
629 (__v8hi)
630 _mm_setzero_si128 (),
631 (__mmask8) -1);
632}
633
634extern __inline __m128i
635__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
636_mm_maskz_permutexvar_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
637{
638 return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
639 (__v8hi) __A,
640 (__v8hi)
641 _mm_setzero_si128 (),
642 (__mmask8) __M);
643}
644
645extern __inline __m128i
646__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
647_mm_mask_permutexvar_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
648 __m128i __B)
649{
650 return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
651 (__v8hi) __A,
652 (__v8hi) __W,
653 (__mmask8) __M);
654}
655
656extern __inline __m256i
657__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
658_mm256_permutex2var_epi16 (__m256i __A, __m256i __I, __m256i __B)
659{
660 return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I
661 /* idx */ ,
662 (__v16hi) __A,
663 (__v16hi) __B,
664 (__mmask16) -1);
665}
666
667extern __inline __m256i
668__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
669_mm256_mask_permutex2var_epi16 (__m256i __A, __mmask16 __U,
670 __m256i __I, __m256i __B)
671{
672 return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I
673 /* idx */ ,
674 (__v16hi) __A,
675 (__v16hi) __B,
676 (__mmask16)
677 __U);
678}
679
680extern __inline __m256i
681__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
682_mm256_mask2_permutex2var_epi16 (__m256i __A, __m256i __I,
683 __mmask16 __U, __m256i __B)
684{
685 return (__m256i) __builtin_ia32_vpermi2varhi256_mask ((__v16hi) __A,
686 (__v16hi) __I
687 /* idx */ ,
688 (__v16hi) __B,
689 (__mmask16)
690 __U);
691}
692
693extern __inline __m256i
694__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
695_mm256_maskz_permutex2var_epi16 (__mmask16 __U, __m256i __A,
696 __m256i __I, __m256i __B)
697{
698 return (__m256i) __builtin_ia32_vpermt2varhi256_maskz ((__v16hi) __I
699 /* idx */ ,
700 (__v16hi) __A,
701 (__v16hi) __B,
702 (__mmask16)
703 __U);
704}
705
706extern __inline __m128i
707__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
708_mm_permutex2var_epi16 (__m128i __A, __m128i __I, __m128i __B)
709{
710 return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I
711 /* idx */ ,
712 (__v8hi) __A,
713 (__v8hi) __B,
714 (__mmask8) -1);
715}
716
717extern __inline __m128i
718__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
719_mm_mask_permutex2var_epi16 (__m128i __A, __mmask8 __U, __m128i __I,
720 __m128i __B)
721{
722 return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I
723 /* idx */ ,
724 (__v8hi) __A,
725 (__v8hi) __B,
726 (__mmask8)
727 __U);
728}
729
730extern __inline __m128i
731__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
732_mm_mask2_permutex2var_epi16 (__m128i __A, __m128i __I, __mmask8 __U,
733 __m128i __B)
734{
735 return (__m128i) __builtin_ia32_vpermi2varhi128_mask ((__v8hi) __A,
736 (__v8hi) __I
737 /* idx */ ,
738 (__v8hi) __B,
739 (__mmask8)
740 __U);
741}
742
743extern __inline __m128i
744__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
745_mm_maskz_permutex2var_epi16 (__mmask8 __U, __m128i __A, __m128i __I,
746 __m128i __B)
747{
748 return (__m128i) __builtin_ia32_vpermt2varhi128_maskz ((__v8hi) __I
749 /* idx */ ,
750 (__v8hi) __A,
751 (__v8hi) __B,
752 (__mmask8)
753 __U);
754}
755
756extern __inline __m256i
757__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
758_mm256_mask_maddubs_epi16 (__m256i __W, __mmask16 __U, __m256i __X,
759 __m256i __Y)
760{
761 return (__m256i) __builtin_ia32_pmaddubsw256_mask ((__v32qi) __X,
762 (__v32qi) __Y,
763 (__v16hi) __W,
764 (__mmask16) __U);
765}
766
767extern __inline __m256i
768__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
769_mm256_maskz_maddubs_epi16 (__mmask16 __U, __m256i __X, __m256i __Y)
770{
771 return (__m256i) __builtin_ia32_pmaddubsw256_mask ((__v32qi) __X,
772 (__v32qi) __Y,
773 (__v16hi)
774 _mm256_setzero_si256 (),
775 (__mmask16) __U);
776}
777
778extern __inline __m128i
779__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
780_mm_mask_maddubs_epi16 (__m128i __W, __mmask8 __U, __m128i __X,
781 __m128i __Y)
782{
783 return (__m128i) __builtin_ia32_pmaddubsw128_mask ((__v16qi) __X,
784 (__v16qi) __Y,
785 (__v8hi) __W,
786 (__mmask8) __U);
787}
788
789extern __inline __m128i
790__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
791_mm_maskz_maddubs_epi16 (__mmask8 __U, __m128i __X, __m128i __Y)
792{
793 return (__m128i) __builtin_ia32_pmaddubsw128_mask ((__v16qi) __X,
794 (__v16qi) __Y,
795 (__v8hi)
796 _mm_setzero_si128 (),
797 (__mmask8) __U);
798}
799
800extern __inline __m256i
801__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
802_mm256_mask_madd_epi16 (__m256i __W, __mmask8 __U, __m256i __A,
803 __m256i __B)
804{
805 return (__m256i) __builtin_ia32_pmaddwd256_mask ((__v16hi) __A,
806 (__v16hi) __B,
807 (__v8si) __W,
808 (__mmask8) __U);
809}
810
811extern __inline __m256i
812__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
813_mm256_maskz_madd_epi16 (__mmask8 __U, __m256i __A, __m256i __B)
814{
815 return (__m256i) __builtin_ia32_pmaddwd256_mask ((__v16hi) __A,
816 (__v16hi) __B,
817 (__v8si)
818 _mm256_setzero_si256 (),
819 (__mmask8) __U);
820}
821
822extern __inline __m128i
823__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
824_mm_mask_madd_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
825 __m128i __B)
826{
827 return (__m128i) __builtin_ia32_pmaddwd128_mask ((__v8hi) __A,
828 (__v8hi) __B,
829 (__v4si) __W,
830 (__mmask8) __U);
831}
832
833extern __inline __m128i
834__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
835_mm_maskz_madd_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
836{
837 return (__m128i) __builtin_ia32_pmaddwd128_mask ((__v8hi) __A,
838 (__v8hi) __B,
839 (__v4si)
840 _mm_setzero_si128 (),
841 (__mmask8) __U);
842}
843
844extern __inline __mmask16
845__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
846_mm_movepi8_mask (__m128i __A)
847{
848 return (__mmask16) __builtin_ia32_cvtb2mask128 ((__v16qi) __A);
849}
850
851extern __inline __mmask32
852__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
853_mm256_movepi8_mask (__m256i __A)
854{
855 return (__mmask32) __builtin_ia32_cvtb2mask256 ((__v32qi) __A);
856}
857
858extern __inline __mmask8
859__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
860_mm_movepi16_mask (__m128i __A)
861{
862 return (__mmask8) __builtin_ia32_cvtw2mask128 ((__v8hi) __A);
863}
864
865extern __inline __mmask16
866__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
867_mm256_movepi16_mask (__m256i __A)
868{
869 return (__mmask16) __builtin_ia32_cvtw2mask256 ((__v16hi) __A);
870}
871
872extern __inline __m128i
873__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
874_mm_movm_epi8 (__mmask16 __A)
875{
876 return (__m128i) __builtin_ia32_cvtmask2b128 (__A);
877}
878
879extern __inline __m256i
880__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
881_mm256_movm_epi8 (__mmask32 __A)
882{
883 return (__m256i) __builtin_ia32_cvtmask2b256 (__A);
884}
885
886extern __inline __m128i
887__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
888_mm_movm_epi16 (__mmask8 __A)
889{
890 return (__m128i) __builtin_ia32_cvtmask2w128 (__A);
891}
892
893extern __inline __m256i
894__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
895_mm256_movm_epi16 (__mmask16 __A)
896{
897 return (__m256i) __builtin_ia32_cvtmask2w256 (__A);
898}
899
900extern __inline __mmask16
901__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
902_mm_test_epi8_mask (__m128i __A, __m128i __B)
903{
904 return (__mmask16) __builtin_ia32_ptestmb128 ((__v16qi) __A,
905 (__v16qi) __B,
906 (__mmask16) -1);
907}
908
909extern __inline __mmask16
910__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
911_mm_mask_test_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
912{
913 return (__mmask16) __builtin_ia32_ptestmb128 ((__v16qi) __A,
914 (__v16qi) __B, __U);
915}
916
917extern __inline __mmask32
918__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
919_mm256_test_epi8_mask (__m256i __A, __m256i __B)
920{
921 return (__mmask32) __builtin_ia32_ptestmb256 ((__v32qi) __A,
922 (__v32qi) __B,
923 (__mmask32) -1);
924}
925
926extern __inline __mmask32
927__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
928_mm256_mask_test_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
929{
930 return (__mmask32) __builtin_ia32_ptestmb256 ((__v32qi) __A,
931 (__v32qi) __B, __U);
932}
933
934extern __inline __mmask8
935__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
936_mm_test_epi16_mask (__m128i __A, __m128i __B)
937{
938 return (__mmask8) __builtin_ia32_ptestmw128 ((__v8hi) __A,
939 (__v8hi) __B,
940 (__mmask8) -1);
941}
942
943extern __inline __mmask8
944__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
945_mm_mask_test_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
946{
947 return (__mmask8) __builtin_ia32_ptestmw128 ((__v8hi) __A,
948 (__v8hi) __B, __U);
949}
950
951extern __inline __mmask16
952__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
953_mm256_test_epi16_mask (__m256i __A, __m256i __B)
954{
955 return (__mmask16) __builtin_ia32_ptestmw256 ((__v16hi) __A,
956 (__v16hi) __B,
957 (__mmask16) -1);
958}
959
960extern __inline __mmask16
961__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
962_mm256_mask_test_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
963{
964 return (__mmask16) __builtin_ia32_ptestmw256 ((__v16hi) __A,
965 (__v16hi) __B, __U);
966}
967
968extern __inline __m256i
969__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
970_mm256_maskz_min_epu16 (__mmask16 __M, __m256i __A, __m256i __B)
971{
972 return (__m256i) __builtin_ia32_pminuw256_mask ((__v16hi) __A,
973 (__v16hi) __B,
974 (__v16hi)
975 _mm256_setzero_si256 (),
976 (__mmask16) __M);
977}
978
979extern __inline __m256i
980__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
981_mm256_mask_min_epu16 (__m256i __W, __mmask16 __M, __m256i __A,
982 __m256i __B)
983{
984 return (__m256i) __builtin_ia32_pminuw256_mask ((__v16hi) __A,
985 (__v16hi) __B,
986 (__v16hi) __W,
987 (__mmask16) __M);
988}
989
990extern __inline __m128i
991__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
992_mm_maskz_min_epu16 (__mmask8 __M, __m128i __A, __m128i __B)
993{
994 return (__m128i) __builtin_ia32_pminuw128_mask ((__v8hi) __A,
995 (__v8hi) __B,
996 (__v8hi)
997 _mm_setzero_si128 (),
998 (__mmask8) __M);
999}
1000
1001extern __inline __m128i
1002__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1003_mm_mask_min_epu16 (__m128i __W, __mmask8 __M, __m128i __A,
1004 __m128i __B)
1005{
1006 return (__m128i) __builtin_ia32_pminuw128_mask ((__v8hi) __A,
1007 (__v8hi) __B,
1008 (__v8hi) __W,
1009 (__mmask8) __M);
1010}
1011
1012extern __inline __m256i
1013__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1014_mm256_maskz_min_epi16 (__mmask16 __M, __m256i __A, __m256i __B)
1015{
1016 return (__m256i) __builtin_ia32_pminsw256_mask ((__v16hi) __A,
1017 (__v16hi) __B,
1018 (__v16hi)
1019 _mm256_setzero_si256 (),
1020 (__mmask16) __M);
1021}
1022
1023extern __inline __m256i
1024__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1025_mm256_mask_min_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
1026 __m256i __B)
1027{
1028 return (__m256i) __builtin_ia32_pminsw256_mask ((__v16hi) __A,
1029 (__v16hi) __B,
1030 (__v16hi) __W,
1031 (__mmask16) __M);
1032}
1033
1034extern __inline __m256i
1035__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1036_mm256_maskz_max_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
1037{
1038 return (__m256i) __builtin_ia32_pmaxub256_mask ((__v32qi) __A,
1039 (__v32qi) __B,
1040 (__v32qi)
1041 _mm256_setzero_si256 (),
1042 (__mmask32) __M);
1043}
1044
1045extern __inline __m256i
1046__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1047_mm256_mask_max_epu8 (__m256i __W, __mmask32 __M, __m256i __A,
1048 __m256i __B)
1049{
1050 return (__m256i) __builtin_ia32_pmaxub256_mask ((__v32qi) __A,
1051 (__v32qi) __B,
1052 (__v32qi) __W,
1053 (__mmask32) __M);
1054}
1055
1056extern __inline __m128i
1057__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1058_mm_maskz_max_epu8 (__mmask16 __M, __m128i __A, __m128i __B)
1059{
1060 return (__m128i) __builtin_ia32_pmaxub128_mask ((__v16qi) __A,
1061 (__v16qi) __B,
1062 (__v16qi)
1063 _mm_setzero_si128 (),
1064 (__mmask16) __M);
1065}
1066
1067extern __inline __m128i
1068__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1069_mm_mask_max_epu8 (__m128i __W, __mmask16 __M, __m128i __A,
1070 __m128i __B)
1071{
1072 return (__m128i) __builtin_ia32_pmaxub128_mask ((__v16qi) __A,
1073 (__v16qi) __B,
1074 (__v16qi) __W,
1075 (__mmask16) __M);
1076}
1077
1078extern __inline __m256i
1079__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1080_mm256_maskz_max_epi8 (__mmask32 __M, __m256i __A, __m256i __B)
1081{
1082 return (__m256i) __builtin_ia32_pmaxsb256_mask ((__v32qi) __A,
1083 (__v32qi) __B,
1084 (__v32qi)
1085 _mm256_setzero_si256 (),
1086 (__mmask32) __M);
1087}
1088
1089extern __inline __m256i
1090__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1091_mm256_mask_max_epi8 (__m256i __W, __mmask32 __M, __m256i __A,
1092 __m256i __B)
1093{
1094 return (__m256i) __builtin_ia32_pmaxsb256_mask ((__v32qi) __A,
1095 (__v32qi) __B,
1096 (__v32qi) __W,
1097 (__mmask32) __M);
1098}
1099
1100extern __inline __m128i
1101__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1102_mm_maskz_max_epi8 (__mmask16 __M, __m128i __A, __m128i __B)
1103{
1104 return (__m128i) __builtin_ia32_pmaxsb128_mask ((__v16qi) __A,
1105 (__v16qi) __B,
1106 (__v16qi)
1107 _mm_setzero_si128 (),
1108 (__mmask16) __M);
1109}
1110
1111extern __inline __m128i
1112__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1113_mm_mask_max_epi8 (__m128i __W, __mmask16 __M, __m128i __A,
1114 __m128i __B)
1115{
1116 return (__m128i) __builtin_ia32_pmaxsb128_mask ((__v16qi) __A,
1117 (__v16qi) __B,
1118 (__v16qi) __W,
1119 (__mmask16) __M);
1120}
1121
1122extern __inline __m256i
1123__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1124_mm256_maskz_min_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
1125{
1126 return (__m256i) __builtin_ia32_pminub256_mask ((__v32qi) __A,
1127 (__v32qi) __B,
1128 (__v32qi)
1129 _mm256_setzero_si256 (),
1130 (__mmask32) __M);
1131}
1132
1133extern __inline __m256i
1134__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1135_mm256_mask_min_epu8 (__m256i __W, __mmask32 __M, __m256i __A,
1136 __m256i __B)
1137{
1138 return (__m256i) __builtin_ia32_pminub256_mask ((__v32qi) __A,
1139 (__v32qi) __B,
1140 (__v32qi) __W,
1141 (__mmask32) __M);
1142}
1143
1144extern __inline __m128i
1145__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1146_mm_maskz_min_epu8 (__mmask16 __M, __m128i __A, __m128i __B)
1147{
1148 return (__m128i) __builtin_ia32_pminub128_mask ((__v16qi) __A,
1149 (__v16qi) __B,
1150 (__v16qi)
1151 _mm_setzero_si128 (),
1152 (__mmask16) __M);
1153}
1154
1155extern __inline __m128i
1156__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1157_mm_mask_min_epu8 (__m128i __W, __mmask16 __M, __m128i __A,
1158 __m128i __B)
1159{
1160 return (__m128i) __builtin_ia32_pminub128_mask ((__v16qi) __A,
1161 (__v16qi) __B,
1162 (__v16qi) __W,
1163 (__mmask16) __M);
1164}
1165
1166extern __inline __m256i
1167__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1168_mm256_maskz_min_epi8 (__mmask32 __M, __m256i __A, __m256i __B)
1169{
1170 return (__m256i) __builtin_ia32_pminsb256_mask ((__v32qi) __A,
1171 (__v32qi) __B,
1172 (__v32qi)
1173 _mm256_setzero_si256 (),
1174 (__mmask32) __M);
1175}
1176
1177extern __inline __m256i
1178__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1179_mm256_mask_min_epi8 (__m256i __W, __mmask32 __M, __m256i __A,
1180 __m256i __B)
1181{
1182 return (__m256i) __builtin_ia32_pminsb256_mask ((__v32qi) __A,
1183 (__v32qi) __B,
1184 (__v32qi) __W,
1185 (__mmask32) __M);
1186}
1187
1188extern __inline __m128i
1189__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1190_mm_maskz_min_epi8 (__mmask16 __M, __m128i __A, __m128i __B)
1191{
1192 return (__m128i) __builtin_ia32_pminsb128_mask ((__v16qi) __A,
1193 (__v16qi) __B,
1194 (__v16qi)
1195 _mm_setzero_si128 (),
1196 (__mmask16) __M);
1197}
1198
1199extern __inline __m128i
1200__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1201_mm_mask_min_epi8 (__m128i __W, __mmask16 __M, __m128i __A,
1202 __m128i __B)
1203{
1204 return (__m128i) __builtin_ia32_pminsb128_mask ((__v16qi) __A,
1205 (__v16qi) __B,
1206 (__v16qi) __W,
1207 (__mmask16) __M);
1208}
1209
1210extern __inline __m256i
1211__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1212_mm256_maskz_max_epi16 (__mmask16 __M, __m256i __A, __m256i __B)
1213{
1214 return (__m256i) __builtin_ia32_pmaxsw256_mask ((__v16hi) __A,
1215 (__v16hi) __B,
1216 (__v16hi)
1217 _mm256_setzero_si256 (),
1218 (__mmask16) __M);
1219}
1220
1221extern __inline __m256i
1222__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1223_mm256_mask_max_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
1224 __m256i __B)
1225{
1226 return (__m256i) __builtin_ia32_pmaxsw256_mask ((__v16hi) __A,
1227 (__v16hi) __B,
1228 (__v16hi) __W,
1229 (__mmask16) __M);
1230}
1231
1232extern __inline __m128i
1233__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1234_mm_maskz_max_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
1235{
1236 return (__m128i) __builtin_ia32_pmaxsw128_mask ((__v8hi) __A,
1237 (__v8hi) __B,
1238 (__v8hi)
1239 _mm_setzero_si128 (),
1240 (__mmask8) __M);
1241}
1242
1243extern __inline __m128i
1244__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1245_mm_mask_max_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
1246 __m128i __B)
1247{
1248 return (__m128i) __builtin_ia32_pmaxsw128_mask ((__v8hi) __A,
1249 (__v8hi) __B,
1250 (__v8hi) __W,
1251 (__mmask8) __M);
1252}
1253
1254extern __inline __m256i
1255__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1256_mm256_maskz_max_epu16 (__mmask16 __M, __m256i __A, __m256i __B)
1257{
1258 return (__m256i) __builtin_ia32_pmaxuw256_mask ((__v16hi) __A,
1259 (__v16hi) __B,
1260 (__v16hi)
1261 _mm256_setzero_si256 (),
1262 (__mmask16) __M);
1263}
1264
1265extern __inline __m256i
1266__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1267_mm256_mask_max_epu16 (__m256i __W, __mmask16 __M, __m256i __A,
1268 __m256i __B)
1269{
1270 return (__m256i) __builtin_ia32_pmaxuw256_mask ((__v16hi) __A,
1271 (__v16hi) __B,
1272 (__v16hi) __W,
1273 (__mmask16) __M);
1274}
1275
1276extern __inline __m128i
1277__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1278_mm_maskz_max_epu16 (__mmask8 __M, __m128i __A, __m128i __B)
1279{
1280 return (__m128i) __builtin_ia32_pmaxuw128_mask ((__v8hi) __A,
1281 (__v8hi) __B,
1282 (__v8hi)
1283 _mm_setzero_si128 (),
1284 (__mmask8) __M);
1285}
1286
1287extern __inline __m128i
1288__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1289_mm_mask_max_epu16 (__m128i __W, __mmask8 __M, __m128i __A,
1290 __m128i __B)
1291{
1292 return (__m128i) __builtin_ia32_pmaxuw128_mask ((__v8hi) __A,
1293 (__v8hi) __B,
1294 (__v8hi) __W,
1295 (__mmask8) __M);
1296}
1297
1298extern __inline __m128i
1299__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1300_mm_maskz_min_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
1301{
1302 return (__m128i) __builtin_ia32_pminsw128_mask ((__v8hi) __A,
1303 (__v8hi) __B,
1304 (__v8hi)
1305 _mm_setzero_si128 (),
1306 (__mmask8) __M);
1307}
1308
1309extern __inline __m128i
1310__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1311_mm_mask_min_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
1312 __m128i __B)
1313{
1314 return (__m128i) __builtin_ia32_pminsw128_mask ((__v8hi) __A,
1315 (__v8hi) __B,
1316 (__v8hi) __W,
1317 (__mmask8) __M);
1318}
1319
1320#ifdef __OPTIMIZE__
1321extern __inline __m256i
1322__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1323_mm256_mask_alignr_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
1324 __m256i __B, const int __N)
1325{
1326 return (__m256i) __builtin_ia32_palignr256_mask ((__v4di) __A,
1327 (__v4di) __B,
1328 __N * 8,
1329 (__v4di) __W,
1330 (__mmask32) __U);
1331}
1332
1333extern __inline __m256i
1334__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1335_mm256_maskz_alignr_epi8 (__mmask32 __U, __m256i __A, __m256i __B,
1336 const int __N)
1337{
1338 return (__m256i) __builtin_ia32_palignr256_mask ((__v4di) __A,
1339 (__v4di) __B,
1340 __N * 8,
1341 (__v4di)
1342 _mm256_setzero_si256 (),
1343 (__mmask32) __U);
1344}
1345
1346extern __inline __m128i
1347__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1348_mm_mask_alignr_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
1349 __m128i __B, const int __N)
1350{
1351 return (__m128i) __builtin_ia32_palignr128_mask ((__v2di) __A,
1352 (__v2di) __B,
1353 __N * 8,
1354 (__v2di) __W,
1355 (__mmask16) __U);
1356}
1357
1358extern __inline __m128i
1359__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1360_mm_maskz_alignr_epi8 (__mmask16 __U, __m128i __A, __m128i __B,
1361 const int __N)
1362{
1363 return (__m128i) __builtin_ia32_palignr128_mask ((__v2di) __A,
1364 (__v2di) __B,
1365 __N * 8,
1366 (__v2di)
1367 _mm_setzero_si128 (),
1368 (__mmask16) __U);
1369}
1370
1371extern __inline __m256i
1372__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1373_mm256_dbsad_epu8 (__m256i __A, __m256i __B, const int __imm)
1374{
1375 return (__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi) __A,
1376 (__v32qi) __B,
1377 __imm,
1378 (__v16hi)
1379 _mm256_setzero_si256 (),
1380 (__mmask16) -1);
1381}
1382
1383extern __inline __m256i
1384__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1385_mm256_mask_dbsad_epu8 (__m256i __W, __mmask16 __U, __m256i __A,
1386 __m256i __B, const int __imm)
1387{
1388 return (__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi) __A,
1389 (__v32qi) __B,
1390 __imm,
1391 (__v16hi) __W,
1392 (__mmask16) __U);
1393}
1394
1395extern __inline __m256i
1396__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1397_mm256_maskz_dbsad_epu8 (__mmask16 __U, __m256i __A, __m256i __B,
1398 const int __imm)
1399{
1400 return (__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi) __A,
1401 (__v32qi) __B,
1402 __imm,
1403 (__v16hi)
1404 _mm256_setzero_si256 (),
1405 (__mmask16) __U);
1406}
1407
1408extern __inline __m128i
1409__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1410_mm_dbsad_epu8 (__m128i __A, __m128i __B, const int __imm)
1411{
1412 return (__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi) __A,
1413 (__v16qi) __B,
1414 __imm,
1415 (__v8hi)
1416 _mm_setzero_si128 (),
1417 (__mmask8) -1);
1418}
1419
1420extern __inline __m128i
1421__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1422_mm_mask_dbsad_epu8 (__m128i __W, __mmask8 __U, __m128i __A,
1423 __m128i __B, const int __imm)
1424{
1425 return (__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi) __A,
1426 (__v16qi) __B,
1427 __imm,
1428 (__v8hi) __W,
1429 (__mmask8) __U);
1430}
1431
1432extern __inline __m128i
1433__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1434_mm_maskz_dbsad_epu8 (__mmask8 __U, __m128i __A, __m128i __B,
1435 const int __imm)
1436{
1437 return (__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi) __A,
1438 (__v16qi) __B,
1439 __imm,
1440 (__v8hi)
1441 _mm_setzero_si128 (),
1442 (__mmask8) __U);
1443}
1444
1445extern __inline __m128i
1446__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1447_mm_mask_blend_epi16 (__mmask8 __U, __m128i __A, __m128i __W)
1448{
1449 return (__m128i) __builtin_ia32_blendmw_128_mask ((__v8hi) __A,
1450 (__v8hi) __W,
1451 (__mmask8) __U);
1452}
1453
1454extern __inline __m128i
1455__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1456_mm_mask_blend_epi8 (__mmask16 __U, __m128i __A, __m128i __W)
1457{
1458 return (__m128i) __builtin_ia32_blendmb_128_mask ((__v16qi) __A,
1459 (__v16qi) __W,
1460 (__mmask16) __U);
1461}
1462
1463extern __inline __m256i
1464__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1465_mm256_mask_blend_epi16 (__mmask16 __U, __m256i __A, __m256i __W)
1466{
1467 return (__m256i) __builtin_ia32_blendmw_256_mask ((__v16hi) __A,
1468 (__v16hi) __W,
1469 (__mmask16) __U);
1470}
1471
1472extern __inline __m256i
1473__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1474_mm256_mask_blend_epi8 (__mmask32 __U, __m256i __A, __m256i __W)
1475{
1476 return (__m256i) __builtin_ia32_blendmb_256_mask ((__v32qi) __A,
1477 (__v32qi) __W,
1478 (__mmask32) __U);
1479}
1480
1481extern __inline __mmask8
1482__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1483_mm_mask_cmp_epi16_mask (__mmask8 __U, __m128i __X, __m128i __Y,
1484 const int __P)
1485{
1486 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
1487 (__v8hi) __Y, __P,
1488 (__mmask8) __U);
1489}
1490
1491extern __inline __mmask8
1492__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1493_mm_cmp_epi16_mask (__m128i __X, __m128i __Y, const int __P)
1494{
1495 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
1496 (__v8hi) __Y, __P,
1497 (__mmask8) -1);
1498}
1499
1500extern __inline __mmask16
1501__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1502_mm256_mask_cmp_epi16_mask (__mmask16 __U, __m256i __X, __m256i __Y,
1503 const int __P)
1504{
1505 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
1506 (__v16hi) __Y, __P,
1507 (__mmask16) __U);
1508}
1509
1510extern __inline __mmask16
1511__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1512_mm256_cmp_epi16_mask (__m256i __X, __m256i __Y, const int __P)
1513{
1514 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
1515 (__v16hi) __Y, __P,
1516 (__mmask16) -1);
1517}
1518
1519extern __inline __mmask16
1520__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1521_mm_mask_cmp_epi8_mask (__mmask16 __U, __m128i __X, __m128i __Y,
1522 const int __P)
1523{
1524 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
1525 (__v16qi) __Y, __P,
1526 (__mmask16) __U);
1527}
1528
1529extern __inline __mmask16
1530__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1531_mm_cmp_epi8_mask (__m128i __X, __m128i __Y, const int __P)
1532{
1533 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
1534 (__v16qi) __Y, __P,
1535 (__mmask16) -1);
1536}
1537
1538extern __inline __mmask32
1539__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1540_mm256_mask_cmp_epi8_mask (__mmask32 __U, __m256i __X, __m256i __Y,
1541 const int __P)
1542{
1543 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
1544 (__v32qi) __Y, __P,
1545 (__mmask32) __U);
1546}
1547
1548extern __inline __mmask32
1549__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1550_mm256_cmp_epi8_mask (__m256i __X, __m256i __Y, const int __P)
1551{
1552 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
1553 (__v32qi) __Y, __P,
1554 (__mmask32) -1);
1555}
1556
1557extern __inline __mmask8
1558__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1559_mm_mask_cmp_epu16_mask (__mmask8 __U, __m128i __X, __m128i __Y,
1560 const int __P)
1561{
1562 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
1563 (__v8hi) __Y, __P,
1564 (__mmask8) __U);
1565}
1566
1567extern __inline __mmask8
1568__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1569_mm_cmp_epu16_mask (__m128i __X, __m128i __Y, const int __P)
1570{
1571 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
1572 (__v8hi) __Y, __P,
1573 (__mmask8) -1);
1574}
1575
1576extern __inline __mmask16
1577__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1578_mm256_mask_cmp_epu16_mask (__mmask16 __U, __m256i __X, __m256i __Y,
1579 const int __P)
1580{
1581 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
1582 (__v16hi) __Y, __P,
1583 (__mmask16) __U);
1584}
1585
1586extern __inline __mmask16
1587__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1588_mm256_cmp_epu16_mask (__m256i __X, __m256i __Y, const int __P)
1589{
1590 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
1591 (__v16hi) __Y, __P,
1592 (__mmask16) -1);
1593}
1594
1595extern __inline __mmask16
1596__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1597_mm_mask_cmp_epu8_mask (__mmask16 __U, __m128i __X, __m128i __Y,
1598 const int __P)
1599{
1600 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
1601 (__v16qi) __Y, __P,
1602 (__mmask16) __U);
1603}
1604
1605extern __inline __mmask16
1606__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1607_mm_cmp_epu8_mask (__m128i __X, __m128i __Y, const int __P)
1608{
1609 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
1610 (__v16qi) __Y, __P,
1611 (__mmask16) -1);
1612}
1613
1614extern __inline __mmask32
1615__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1616_mm256_mask_cmp_epu8_mask (__mmask32 __U, __m256i __X, __m256i __Y,
1617 const int __P)
1618{
1619 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
1620 (__v32qi) __Y, __P,
1621 (__mmask32) __U);
1622}
1623
1624extern __inline __mmask32
1625__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1626_mm256_cmp_epu8_mask (__m256i __X, __m256i __Y, const int __P)
1627{
1628 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
1629 (__v32qi) __Y, __P,
1630 (__mmask32) -1);
1631}
1632
1633extern __inline __m256i
1634__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1635_mm256_mask_srli_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
1636 const int __imm)
1637{
1638 return (__m256i) __builtin_ia32_psrlwi256_mask ((__v16hi) __A, __imm,
1639 (__v16hi) __W,
1640 (__mmask16) __U);
1641}
1642
1643extern __inline __m256i
1644__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1645_mm256_maskz_srli_epi16 (__mmask16 __U, __m256i __A, const int __imm)
1646{
1647 return (__m256i) __builtin_ia32_psrlwi256_mask ((__v16hi) __A, __imm,
1648 (__v16hi)
1649 _mm256_setzero_si256 (),
1650 (__mmask16) __U);
1651}
1652
1653extern __inline __m128i
1654__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1655_mm_mask_srli_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
1656 const int __imm)
1657{
1658 return (__m128i) __builtin_ia32_psrlwi128_mask ((__v8hi) __A, __imm,
1659 (__v8hi) __W,
1660 (__mmask8) __U);
1661}
1662
1663extern __inline __m128i
1664__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1665_mm_maskz_srli_epi16 (__mmask8 __U, __m128i __A, const int __imm)
1666{
1667 return (__m128i) __builtin_ia32_psrlwi128_mask ((__v8hi) __A, __imm,
1668 (__v8hi)
1669 _mm_setzero_si128 (),
1670 (__mmask8) __U);
1671}
1672
1673extern __inline __m256i
1674__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1675_mm256_mask_shufflehi_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
1676 const int __imm)
1677{
1678 return (__m256i) __builtin_ia32_pshufhw256_mask ((__v16hi) __A,
1679 __imm,
1680 (__v16hi) __W,
1681 (__mmask16) __U);
1682}
1683
1684extern __inline __m256i
1685__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1686_mm256_maskz_shufflehi_epi16 (__mmask16 __U, __m256i __A,
1687 const int __imm)
1688{
1689 return (__m256i) __builtin_ia32_pshufhw256_mask ((__v16hi) __A,
1690 __imm,
1691 (__v16hi)
1692 _mm256_setzero_si256 (),
1693 (__mmask16) __U);
1694}
1695
1696extern __inline __m128i
1697__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1698_mm_mask_shufflehi_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
1699 const int __imm)
1700{
1701 return (__m128i) __builtin_ia32_pshufhw128_mask ((__v8hi) __A, __imm,
1702 (__v8hi) __W,
1703 (__mmask8) __U);
1704}
1705
1706extern __inline __m128i
1707__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1708_mm_maskz_shufflehi_epi16 (__mmask8 __U, __m128i __A, const int __imm)
1709{
1710 return (__m128i) __builtin_ia32_pshufhw128_mask ((__v8hi) __A, __imm,
1711 (__v8hi)
1712 _mm_setzero_si128 (),
1713 (__mmask8) __U);
1714}
1715
1716extern __inline __m256i
1717__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1718_mm256_mask_shufflelo_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
1719 const int __imm)
1720{
1721 return (__m256i) __builtin_ia32_pshuflw256_mask ((__v16hi) __A,
1722 __imm,
1723 (__v16hi) __W,
1724 (__mmask16) __U);
1725}
1726
1727extern __inline __m256i
1728__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1729_mm256_maskz_shufflelo_epi16 (__mmask16 __U, __m256i __A,
1730 const int __imm)
1731{
1732 return (__m256i) __builtin_ia32_pshuflw256_mask ((__v16hi) __A,
1733 __imm,
1734 (__v16hi)
1735 _mm256_setzero_si256 (),
1736 (__mmask16) __U);
1737}
1738
1739extern __inline __m128i
1740__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1741_mm_mask_shufflelo_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
1742 const int __imm)
1743{
1744 return (__m128i) __builtin_ia32_pshuflw128_mask ((__v8hi) __A, __imm,
1745 (__v8hi) __W,
1746 (__mmask8) __U);
1747}
1748
1749extern __inline __m128i
1750__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1751_mm_maskz_shufflelo_epi16 (__mmask8 __U, __m128i __A, const int __imm)
1752{
1753 return (__m128i) __builtin_ia32_pshuflw128_mask ((__v8hi) __A, __imm,
1754 (__v8hi)
1755 _mm_setzero_si128 (),
1756 (__mmask8) __U);
1757}
1758
1759extern __inline __m256i
1760__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1761_mm256_mask_srai_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
1762 const int __imm)
1763{
1764 return (__m256i) __builtin_ia32_psrawi256_mask ((__v16hi) __A, __imm,
1765 (__v16hi) __W,
1766 (__mmask16) __U);
1767}
1768
1769extern __inline __m256i
1770__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1771_mm256_maskz_srai_epi16 (__mmask16 __U, __m256i __A, const int __imm)
1772{
1773 return (__m256i) __builtin_ia32_psrawi256_mask ((__v16hi) __A, __imm,
1774 (__v16hi)
1775 _mm256_setzero_si256 (),
1776 (__mmask16) __U);
1777}
1778
1779extern __inline __m128i
1780__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1781_mm_mask_srai_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
1782 const int __imm)
1783{
1784 return (__m128i) __builtin_ia32_psrawi128_mask ((__v8hi) __A, __imm,
1785 (__v8hi) __W,
1786 (__mmask8) __U);
1787}
1788
1789extern __inline __m128i
1790__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1791_mm_maskz_srai_epi16 (__mmask8 __U, __m128i __A, const int __imm)
1792{
1793 return (__m128i) __builtin_ia32_psrawi128_mask ((__v8hi) __A, __imm,
1794 (__v8hi)
1795 _mm_setzero_si128 (),
1796 (__mmask8) __U);
1797}
1798
1799extern __inline __m256i
1800__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1801_mm256_mask_slli_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
1802 int __B)
1803{
1804 return (__m256i) __builtin_ia32_psllwi256_mask ((__v16hi) __A, __B,
1805 (__v16hi) __W,
1806 (__mmask16) __U);
1807}
1808
1809extern __inline __m256i
1810__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1811_mm256_maskz_slli_epi16 (__mmask16 __U, __m256i __A, int __B)
1812{
1813 return (__m256i) __builtin_ia32_psllwi256_mask ((__v16hi) __A, __B,
1814 (__v16hi)
1815 _mm256_setzero_si256 (),
1816 (__mmask16) __U);
1817}
1818
1819extern __inline __m128i
1820__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1821_mm_mask_slli_epi16 (__m128i __W, __mmask8 __U, __m128i __A, int __B)
1822{
1823 return (__m128i) __builtin_ia32_psllwi128_mask ((__v8hi) __A, __B,
1824 (__v8hi) __W,
1825 (__mmask8) __U);
1826}
1827
1828extern __inline __m128i
1829__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1830_mm_maskz_slli_epi16 (__mmask8 __U, __m128i __A, int __B)
1831{
1832 return (__m128i) __builtin_ia32_psllwi128_mask ((__v8hi) __A, __B,
1833 (__v8hi)
1834 _mm_setzero_si128 (),
1835 (__mmask8) __U);
1836}
1837
1838#else
1839#define _mm256_mask_alignr_epi8(W, U, X, Y, N) \
1840 ((__m256i) __builtin_ia32_palignr256_mask ((__v4di)(__m256i)(X), \
1841 (__v4di)(__m256i)(Y), (int)((N) * 8), \
1842 (__v4di)(__m256i)(X), (__mmask32)(U)))
1843
1844#define _mm256_mask_srli_epi16(W, U, A, B) \
1845 ((__m256i) __builtin_ia32_psrlwi256_mask ((__v16hi)(__m256i)(A), \
1846 (int)(B), (__v16hi)(__m256i)(W), (__mmask16)(U)))
1847
1848#define _mm256_maskz_srli_epi16(U, A, B) \
1849 ((__m256i) __builtin_ia32_psrlwi256_mask ((__v16hi)(__m256i)(A), \
1850 (int)(B), (__v16hi)_mm256_setzero_si256 (), (__mmask16)(U)))
1851
1852#define _mm_mask_srli_epi16(W, U, A, B) \
1853 ((__m128i) __builtin_ia32_psrlwi128_mask ((__v8hi)(__m128i)(A), \
1854 (int)(B), (__v8hi)(__m128i)(W), (__mmask8)(U)))
1855
1856#define _mm_maskz_srli_epi16(U, A, B) \
1857 ((__m128i) __builtin_ia32_psrlwi128_mask ((__v8hi)(__m128i)(A), \
1858 (int)(B), (__v8hi)_mm_setzero_si128(), (__mmask8)(U)))
1859
1860#define _mm256_mask_srai_epi16(W, U, A, B) \
1861 ((__m256i) __builtin_ia32_psrawi256_mask ((__v16hi)(__m256i)(A), \
1862 (int)(B), (__v16hi)(__m256i)(W), (__mmask16)(U)))
1863
1864#define _mm256_maskz_srai_epi16(U, A, B) \
1865 ((__m256i) __builtin_ia32_psrawi256_mask ((__v16hi)(__m256i)(A), \
1866 (int)(B), (__v16hi)_mm256_setzero_si256 (), (__mmask16)(U)))
1867
1868#define _mm_mask_srai_epi16(W, U, A, B) \
1869 ((__m128i) __builtin_ia32_psrawi128_mask ((__v8hi)(__m128i)(A), \
1870 (int)(B), (__v8hi)(__m128i)(W), (__mmask8)(U)))
1871
1872#define _mm_maskz_srai_epi16(U, A, B) \
1873 ((__m128i) __builtin_ia32_psrawi128_mask ((__v8hi)(__m128i)(A), \
1874 (int)(B), (__v8hi)_mm_setzero_si128(), (__mmask8)(U)))
1875
1876#define _mm256_mask_shufflehi_epi16(W, U, A, B) \
1877 ((__m256i) __builtin_ia32_pshufhw256_mask ((__v16hi)(__m256i)(A), (int)(B), \
1878 (__v16hi)(__m256i)(W), \
1879 (__mmask16)(U)))
1880
1881#define _mm256_maskz_shufflehi_epi16(U, A, B) \
1882 ((__m256i) __builtin_ia32_pshufhw256_mask ((__v16hi)(__m256i)(A), (int)(B), \
1883 (__v16hi)(__m256i)_mm256_setzero_si256 (), \
1884 (__mmask16)(U)))
1885
1886#define _mm_mask_shufflehi_epi16(W, U, A, B) \
1887 ((__m128i) __builtin_ia32_pshufhw128_mask ((__v8hi)(__m128i)(A), (int)(B), \
1888 (__v8hi)(__m128i)(W), \
1889 (__mmask8)(U)))
1890
1891#define _mm_maskz_shufflehi_epi16(U, A, B) \
1892 ((__m128i) __builtin_ia32_pshufhw128_mask ((__v8hi)(__m128i)(A), (int)(B), \
1893 (__v8hi)(__m128i)_mm_setzero_si128 (), \
1894 (__mmask8)(U)))
1895
1896#define _mm256_mask_shufflelo_epi16(W, U, A, B) \
1897 ((__m256i) __builtin_ia32_pshuflw256_mask ((__v16hi)(__m256i)(A), (int)(B), \
1898 (__v16hi)(__m256i)(W), \
1899 (__mmask16)(U)))
1900
1901#define _mm256_maskz_shufflelo_epi16(U, A, B) \
1902 ((__m256i) __builtin_ia32_pshuflw256_mask ((__v16hi)(__m256i)(A), (int)(B), \
1903 (__v16hi)(__m256i)_mm256_setzero_si256 (), \
1904 (__mmask16)(U)))
1905
1906#define _mm_mask_shufflelo_epi16(W, U, A, B) \
1907 ((__m128i) __builtin_ia32_pshuflw128_mask ((__v8hi)(__m128i)(A), (int)(B), \
1908 (__v8hi)(__m128i)(W), \
1909 (__mmask8)(U)))
1910
1911#define _mm_maskz_shufflelo_epi16(U, A, B) \
1912 ((__m128i) __builtin_ia32_pshuflw128_mask ((__v8hi)(__m128i)(A), (int)(B), \
1913 (__v8hi)(__m128i)_mm_setzero_si128 (), \
1914 (__mmask8)(U)))
1915
1916#define _mm256_maskz_alignr_epi8(U, X, Y, N) \
1917 ((__m256i) __builtin_ia32_palignr256_mask ((__v4di)(__m256i)(X), \
1918 (__v4di)(__m256i)(Y), (int)((N) * 8), \
1919 (__v4di)(__m256i)_mm256_setzero_si256 (), \
1920 (__mmask32)(U)))
1921
1922#define _mm_mask_alignr_epi8(W, U, X, Y, N) \
1923 ((__m128i) __builtin_ia32_palignr128_mask ((__v2di)(__m128i)(X), \
1924 (__v2di)(__m128i)(Y), (int)((N) * 8), \
1925 (__v2di)(__m128i)(X), (__mmask16)(U)))
1926
1927#define _mm_maskz_alignr_epi8(U, X, Y, N) \
1928 ((__m128i) __builtin_ia32_palignr128_mask ((__v2di)(__m128i)(X), \
1929 (__v2di)(__m128i)(Y), (int)((N) * 8), \
1930 (__v2di)(__m128i)_mm_setzero_si128 (), \
1931 (__mmask16)(U)))
1932
1933#define _mm_mask_slli_epi16(W, U, X, C) \
1934 ((__m128i)__builtin_ia32_psllwi128_mask ((__v8hi)(__m128i)(X), (int)(C),\
1935 (__v8hi)(__m128i)(W),\
1936 (__mmask8)(U)))
1937
1938#define _mm_maskz_slli_epi16(U, X, C) \
1939 ((__m128i)__builtin_ia32_psllwi128_mask ((__v8hi)(__m128i)(X), (int)(C),\
1940 (__v8hi)(__m128i)_mm_setzero_si128 (),\
1941 (__mmask8)(U)))
1942
1943#define _mm256_dbsad_epu8(X, Y, C) \
1944 ((__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi)(__m256i) (X), \
1945 (__v32qi)(__m256i) (Y), (int) (C), \
1946 (__v16hi)(__m256i)_mm256_setzero_si256(),\
1947 (__mmask16)-1))
1948
1949#define _mm256_mask_slli_epi16(W, U, X, C) \
1950 ((__m256i)__builtin_ia32_psllwi256_mask ((__v16hi)(__m256i)(X), (int)(C),\
1951 (__v16hi)(__m256i)(W),\
1952 (__mmask16)(U)))
1953
1954#define _mm256_maskz_slli_epi16(U, X, C) \
1955 ((__m256i)__builtin_ia32_psllwi256_mask ((__v16hi)(__m256i)(X), (int)(C),\
1956 (__v16hi)(__m256i)_mm256_setzero_si256 (),\
1957 (__mmask16)(U)))
1958
1959#define _mm256_mask_dbsad_epu8(W, U, X, Y, C) \
1960 ((__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi)(__m256i) (X), \
1961 (__v32qi)(__m256i) (Y), (int) (C), \
1962 (__v16hi)(__m256i)(W), \
1963 (__mmask16)(U)))
1964
1965#define _mm256_maskz_dbsad_epu8(U, X, Y, C) \
1966 ((__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi)(__m256i) (X), \
1967 (__v32qi)(__m256i) (Y), (int) (C), \
1968 (__v16hi)(__m256i)_mm256_setzero_si256(),\
1969 (__mmask16)(U)))
1970
1971#define _mm_dbsad_epu8(X, Y, C) \
1972 ((__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi)(__m128i) (X), \
1973 (__v16qi)(__m128i) (Y), (int) (C), \
1974 (__v8hi)(__m128i)_mm_setzero_si128(), \
1975 (__mmask8)-1))
1976
1977#define _mm_mask_dbsad_epu8(W, U, X, Y, C) \
1978 ((__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi)(__m128i) (X), \
1979 (__v16qi)(__m128i) (Y), (int) (C), \
1980 (__v8hi)(__m128i)(W), \
1981 (__mmask8)(U)))
1982
1983#define _mm_maskz_dbsad_epu8(U, X, Y, C) \
1984 ((__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi)(__m128i) (X), \
1985 (__v16qi)(__m128i) (Y), (int) (C), \
1986 (__v8hi)(__m128i)_mm_setzero_si128(), \
1987 (__mmask8)(U)))
1988
1989#define _mm_mask_blend_epi16(__U, __A, __W) \
1990 ((__m128i) __builtin_ia32_blendmw_128_mask ((__v8hi) (__A), \
1991 (__v8hi) (__W), \
1992 (__mmask8) (__U)))
1993
1994#define _mm_mask_blend_epi8(__U, __A, __W) \
1995 ((__m128i) __builtin_ia32_blendmb_128_mask ((__v16qi) (__A), \
1996 (__v16qi) (__W), \
1997 (__mmask16) (__U)))
1998
1999#define _mm256_mask_blend_epi16(__U, __A, __W) \
2000 ((__m256i) __builtin_ia32_blendmw_256_mask ((__v16hi) (__A), \
2001 (__v16hi) (__W), \
2002 (__mmask16) (__U)))
2003
2004#define _mm256_mask_blend_epi8(__U, __A, __W) \
2005 ((__m256i) __builtin_ia32_blendmb_256_mask ((__v32qi) (__A), \
2006 (__v32qi) (__W), \
2007 (__mmask32) (__U)))
2008
2009#define _mm_cmp_epi16_mask(X, Y, P) \
2010 ((__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi)(__m128i)(X), \
2011 (__v8hi)(__m128i)(Y), (int)(P),\
2012 (__mmask8)(-1)))
2013
2014#define _mm_cmp_epi8_mask(X, Y, P) \
2015 ((__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi)(__m128i)(X), \
2016 (__v16qi)(__m128i)(Y), (int)(P),\
2017 (__mmask16)(-1)))
2018
2019#define _mm256_cmp_epi16_mask(X, Y, P) \
2020 ((__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi)(__m256i)(X), \
2021 (__v16hi)(__m256i)(Y), (int)(P),\
2022 (__mmask16)(-1)))
2023
2024#define _mm256_cmp_epi8_mask(X, Y, P) \
2025 ((__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi)(__m256i)(X), \
2026 (__v32qi)(__m256i)(Y), (int)(P),\
2027 (__mmask32)(-1)))
2028
2029#define _mm_cmp_epu16_mask(X, Y, P) \
2030 ((__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi)(__m128i)(X), \
2031 (__v8hi)(__m128i)(Y), (int)(P),\
2032 (__mmask8)(-1)))
2033
2034#define _mm_cmp_epu8_mask(X, Y, P) \
2035 ((__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi)(__m128i)(X), \
2036 (__v16qi)(__m128i)(Y), (int)(P),\
2037 (__mmask16)(-1)))
2038
2039#define _mm256_cmp_epu16_mask(X, Y, P) \
2040 ((__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi)(__m256i)(X), \
2041 (__v16hi)(__m256i)(Y), (int)(P),\
2042 (__mmask16)(-1)))
2043
2044#define _mm256_cmp_epu8_mask(X, Y, P) \
2045 ((__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi)(__m256i)(X), \
2046 (__v32qi)(__m256i)(Y), (int)(P),\
2047 (__mmask32)-1))
2048
2049#define _mm_mask_cmp_epi16_mask(M, X, Y, P) \
2050 ((__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi)(__m128i)(X), \
2051 (__v8hi)(__m128i)(Y), (int)(P),\
2052 (__mmask8)(M)))
2053
2054#define _mm_mask_cmp_epi8_mask(M, X, Y, P) \
2055 ((__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi)(__m128i)(X), \
2056 (__v16qi)(__m128i)(Y), (int)(P),\
2057 (__mmask16)(M)))
2058
2059#define _mm256_mask_cmp_epi16_mask(M, X, Y, P) \
2060 ((__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi)(__m256i)(X), \
2061 (__v16hi)(__m256i)(Y), (int)(P),\
2062 (__mmask16)(M)))
2063
2064#define _mm256_mask_cmp_epi8_mask(M, X, Y, P) \
2065 ((__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi)(__m256i)(X), \
2066 (__v32qi)(__m256i)(Y), (int)(P),\
2067 (__mmask32)(M)))
2068
2069#define _mm_mask_cmp_epu16_mask(M, X, Y, P) \
2070 ((__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi)(__m128i)(X), \
2071 (__v8hi)(__m128i)(Y), (int)(P),\
2072 (__mmask8)(M)))
2073
2074#define _mm_mask_cmp_epu8_mask(M, X, Y, P) \
2075 ((__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi)(__m128i)(X), \
2076 (__v16qi)(__m128i)(Y), (int)(P),\
2077 (__mmask16)(M)))
2078
2079#define _mm256_mask_cmp_epu16_mask(M, X, Y, P) \
2080 ((__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi)(__m256i)(X), \
2081 (__v16hi)(__m256i)(Y), (int)(P),\
2082 (__mmask16)(M)))
2083
2084#define _mm256_mask_cmp_epu8_mask(M, X, Y, P) \
2085 ((__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi)(__m256i)(X), \
2086 (__v32qi)(__m256i)(Y), (int)(P),\
2087 (__mmask32)(M)))
2088#endif
2089
2090extern __inline __mmask32
2091 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2092_mm256_cmpneq_epi8_mask (__m256i __X, __m256i __Y)
2093{
2094 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
2095 (__v32qi) __Y, 4,
2096 (__mmask32) -1);
2097}
2098
2099extern __inline __mmask32
2100 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2101_mm256_cmplt_epi8_mask (__m256i __X, __m256i __Y)
2102{
2103 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
2104 (__v32qi) __Y, 1,
2105 (__mmask32) -1);
2106}
2107
2108extern __inline __mmask32
2109 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2110_mm256_cmpge_epi8_mask (__m256i __X, __m256i __Y)
2111{
2112 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
2113 (__v32qi) __Y, 5,
2114 (__mmask32) -1);
2115}
2116
2117extern __inline __mmask32
2118 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2119_mm256_cmple_epi8_mask (__m256i __X, __m256i __Y)
2120{
2121 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
2122 (__v32qi) __Y, 2,
2123 (__mmask32) -1);
2124}
2125
2126extern __inline __mmask16
2127 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2128_mm256_cmpneq_epi16_mask (__m256i __X, __m256i __Y)
2129{
2130 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
2131 (__v16hi) __Y, 4,
2132 (__mmask16) -1);
2133}
2134
2135extern __inline __mmask16
2136 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2137_mm256_cmplt_epi16_mask (__m256i __X, __m256i __Y)
2138{
2139 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
2140 (__v16hi) __Y, 1,
2141 (__mmask16) -1);
2142}
2143
2144extern __inline __mmask16
2145 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2146_mm256_cmpge_epi16_mask (__m256i __X, __m256i __Y)
2147{
2148 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
2149 (__v16hi) __Y, 5,
2150 (__mmask16) -1);
2151}
2152
2153extern __inline __mmask16
2154 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2155_mm256_cmple_epi16_mask (__m256i __X, __m256i __Y)
2156{
2157 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
2158 (__v16hi) __Y, 2,
2159 (__mmask16) -1);
2160}
2161
2162extern __inline __mmask16
2163 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2164_mm_cmpneq_epu8_mask (__m128i __X, __m128i __Y)
2165{
2166 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
2167 (__v16qi) __Y, 4,
2168 (__mmask16) -1);
2169}
2170
2171extern __inline __mmask16
2172 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2173_mm_cmplt_epu8_mask (__m128i __X, __m128i __Y)
2174{
2175 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
2176 (__v16qi) __Y, 1,
2177 (__mmask16) -1);
2178}
2179
2180extern __inline __mmask16
2181 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2182_mm_cmpge_epu8_mask (__m128i __X, __m128i __Y)
2183{
2184 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
2185 (__v16qi) __Y, 5,
2186 (__mmask16) -1);
2187}
2188
2189extern __inline __mmask16
2190 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2191_mm_cmple_epu8_mask (__m128i __X, __m128i __Y)
2192{
2193 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
2194 (__v16qi) __Y, 2,
2195 (__mmask16) -1);
2196}
2197
2198extern __inline __mmask8
2199 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2200_mm_cmpneq_epu16_mask (__m128i __X, __m128i __Y)
2201{
2202 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
2203 (__v8hi) __Y, 4,
2204 (__mmask8) -1);
2205}
2206
2207extern __inline __mmask8
2208 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2209_mm_cmplt_epu16_mask (__m128i __X, __m128i __Y)
2210{
2211 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
2212 (__v8hi) __Y, 1,
2213 (__mmask8) -1);
2214}
2215
2216extern __inline __mmask8
2217 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2218_mm_cmpge_epu16_mask (__m128i __X, __m128i __Y)
2219{
2220 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
2221 (__v8hi) __Y, 5,
2222 (__mmask8) -1);
2223}
2224
2225extern __inline __mmask8
2226 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2227_mm_cmple_epu16_mask (__m128i __X, __m128i __Y)
2228{
2229 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
2230 (__v8hi) __Y, 2,
2231 (__mmask8) -1);
2232}
2233
2234extern __inline __mmask16
2235 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2236_mm_cmpneq_epi8_mask (__m128i __X, __m128i __Y)
2237{
2238 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
2239 (__v16qi) __Y, 4,
2240 (__mmask16) -1);
2241}
2242
2243extern __inline __mmask16
2244 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2245_mm_cmplt_epi8_mask (__m128i __X, __m128i __Y)
2246{
2247 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
2248 (__v16qi) __Y, 1,
2249 (__mmask16) -1);
2250}
2251
2252extern __inline __mmask16
2253 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2254_mm_cmpge_epi8_mask (__m128i __X, __m128i __Y)
2255{
2256 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
2257 (__v16qi) __Y, 5,
2258 (__mmask16) -1);
2259}
2260
2261extern __inline __mmask16
2262 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2263_mm_cmple_epi8_mask (__m128i __X, __m128i __Y)
2264{
2265 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
2266 (__v16qi) __Y, 2,
2267 (__mmask16) -1);
2268}
2269
2270extern __inline __mmask8
2271 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2272_mm_cmpneq_epi16_mask (__m128i __X, __m128i __Y)
2273{
2274 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
2275 (__v8hi) __Y, 4,
2276 (__mmask8) -1);
2277}
2278
2279extern __inline __mmask8
2280 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2281_mm_cmplt_epi16_mask (__m128i __X, __m128i __Y)
2282{
2283 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
2284 (__v8hi) __Y, 1,
2285 (__mmask8) -1);
2286}
2287
2288extern __inline __mmask8
2289 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2290_mm_cmpge_epi16_mask (__m128i __X, __m128i __Y)
2291{
2292 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
2293 (__v8hi) __Y, 5,
2294 (__mmask8) -1);
2295}
2296
2297extern __inline __mmask8
2298 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2299_mm_cmple_epi16_mask (__m128i __X, __m128i __Y)
2300{
2301 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
2302 (__v8hi) __Y, 2,
2303 (__mmask8) -1);
2304}
2305
2306extern __inline __m256i
2307__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2308_mm256_mask_mulhrs_epi16 (__m256i __W, __mmask16 __U, __m256i __X,
2309 __m256i __Y)
2310{
2311 return (__m256i) __builtin_ia32_pmulhrsw256_mask ((__v16hi) __X,
2312 (__v16hi) __Y,
2313 (__v16hi) __W,
2314 (__mmask16) __U);
2315}
2316
2317extern __inline __m256i
2318__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2319_mm256_maskz_mulhrs_epi16 (__mmask16 __U, __m256i __X, __m256i __Y)
2320{
2321 return (__m256i) __builtin_ia32_pmulhrsw256_mask ((__v16hi) __X,
2322 (__v16hi) __Y,
2323 (__v16hi)
2324 _mm256_setzero_si256 (),
2325 (__mmask16) __U);
2326}
2327
2328extern __inline __m256i
2329__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2330_mm256_mask_mulhi_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
2331 __m256i __B)
2332{
2333 return (__m256i) __builtin_ia32_pmulhuw256_mask ((__v16hi) __A,
2334 (__v16hi) __B,
2335 (__v16hi) __W,
2336 (__mmask16) __U);
2337}
2338
2339extern __inline __m256i
2340__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2341_mm256_maskz_mulhi_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
2342{
2343 return (__m256i) __builtin_ia32_pmulhuw256_mask ((__v16hi) __A,
2344 (__v16hi) __B,
2345 (__v16hi)
2346 _mm256_setzero_si256 (),
2347 (__mmask16) __U);
2348}
2349
2350extern __inline __m256i
2351__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2352_mm256_mask_mulhi_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2353 __m256i __B)
2354{
2355 return (__m256i) __builtin_ia32_pmulhw256_mask ((__v16hi) __A,
2356 (__v16hi) __B,
2357 (__v16hi) __W,
2358 (__mmask16) __U);
2359}
2360
2361extern __inline __m256i
2362__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2363_mm256_maskz_mulhi_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2364{
2365 return (__m256i) __builtin_ia32_pmulhw256_mask ((__v16hi) __A,
2366 (__v16hi) __B,
2367 (__v16hi)
2368 _mm256_setzero_si256 (),
2369 (__mmask16) __U);
2370}
2371
2372extern __inline __m128i
2373__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2374_mm_mask_mulhi_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
2375 __m128i __B)
2376{
2377 return (__m128i) __builtin_ia32_pmulhw128_mask ((__v8hi) __A,
2378 (__v8hi) __B,
2379 (__v8hi) __W,
2380 (__mmask8) __U);
2381}
2382
2383extern __inline __m128i
2384__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2385_mm_maskz_mulhi_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
2386{
2387 return (__m128i) __builtin_ia32_pmulhw128_mask ((__v8hi) __A,
2388 (__v8hi) __B,
2389 (__v8hi)
2390 _mm_setzero_si128 (),
2391 (__mmask8) __U);
2392}
2393
2394extern __inline __m128i
2395__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2396_mm_mask_mulhi_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
2397 __m128i __B)
2398{
2399 return (__m128i) __builtin_ia32_pmulhuw128_mask ((__v8hi) __A,
2400 (__v8hi) __B,
2401 (__v8hi) __W,
2402 (__mmask8) __U);
2403}
2404
2405extern __inline __m128i
2406__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2407_mm_maskz_mulhi_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
2408{
2409 return (__m128i) __builtin_ia32_pmulhuw128_mask ((__v8hi) __A,
2410 (__v8hi) __B,
2411 (__v8hi)
2412 _mm_setzero_si128 (),
2413 (__mmask8) __U);
2414}
2415
2416extern __inline __m128i
2417__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2418_mm_mask_mulhrs_epi16 (__m128i __W, __mmask8 __U, __m128i __X,
2419 __m128i __Y)
2420{
2421 return (__m128i) __builtin_ia32_pmulhrsw128_mask ((__v8hi) __X,
2422 (__v8hi) __Y,
2423 (__v8hi) __W,
2424 (__mmask8) __U);
2425}
2426
2427extern __inline __m128i
2428__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2429_mm_maskz_mulhrs_epi16 (__mmask8 __U, __m128i __X, __m128i __Y)
2430{
2431 return (__m128i) __builtin_ia32_pmulhrsw128_mask ((__v8hi) __X,
2432 (__v8hi) __Y,
2433 (__v8hi)
2434 _mm_setzero_si128 (),
2435 (__mmask8) __U);
2436}
2437
2438extern __inline __m256i
2439__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2440_mm256_mask_mullo_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2441 __m256i __B)
2442{
2443 return (__m256i) __builtin_ia32_pmullw256_mask ((__v16hi) __A,
2444 (__v16hi) __B,
2445 (__v16hi) __W,
2446 (__mmask16) __U);
2447}
2448
2449extern __inline __m256i
2450__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2451_mm256_maskz_mullo_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2452{
2453 return (__m256i) __builtin_ia32_pmullw256_mask ((__v16hi) __A,
2454 (__v16hi) __B,
2455 (__v16hi)
2456 _mm256_setzero_si256 (),
2457 (__mmask16) __U);
2458}
2459
2460extern __inline __m128i
2461__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2462_mm_mask_mullo_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
2463 __m128i __B)
2464{
2465 return (__m128i) __builtin_ia32_pmullw128_mask ((__v8hi) __A,
2466 (__v8hi) __B,
2467 (__v8hi) __W,
2468 (__mmask8) __U);
2469}
2470
2471extern __inline __m128i
2472__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2473_mm_maskz_mullo_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
2474{
2475 return (__m128i) __builtin_ia32_pmullw128_mask ((__v8hi) __A,
2476 (__v8hi) __B,
2477 (__v8hi)
2478 _mm_setzero_si128 (),
2479 (__mmask8) __U);
2480}
2481
2482extern __inline __m256i
2483__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2484_mm256_mask_cvtepi8_epi16 (__m256i __W, __mmask16 __U, __m128i __A)
2485{
2486 return (__m256i) __builtin_ia32_pmovsxbw256_mask ((__v16qi) __A,
2487 (__v16hi) __W,
2488 (__mmask16) __U);
2489}
2490
2491extern __inline __m256i
2492__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2493_mm256_maskz_cvtepi8_epi16 (__mmask16 __U, __m128i __A)
2494{
2495 return (__m256i) __builtin_ia32_pmovsxbw256_mask ((__v16qi) __A,
2496 (__v16hi)
2497 _mm256_setzero_si256 (),
2498 (__mmask16) __U);
2499}
2500
2501extern __inline __m128i
2502__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2503_mm_mask_cvtepi8_epi16 (__m128i __W, __mmask8 __U, __m128i __A)
2504{
2505 return (__m128i) __builtin_ia32_pmovsxbw128_mask ((__v16qi) __A,
2506 (__v8hi) __W,
2507 (__mmask8) __U);
2508}
2509
2510extern __inline __m128i
2511__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2512_mm_maskz_cvtepi8_epi16 (__mmask8 __U, __m128i __A)
2513{
2514 return (__m128i) __builtin_ia32_pmovsxbw128_mask ((__v16qi) __A,
2515 (__v8hi)
2516 _mm_setzero_si128 (),
2517 (__mmask8) __U);
2518}
2519
2520extern __inline __m256i
2521__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2522_mm256_mask_cvtepu8_epi16 (__m256i __W, __mmask16 __U, __m128i __A)
2523{
2524 return (__m256i) __builtin_ia32_pmovzxbw256_mask ((__v16qi) __A,
2525 (__v16hi) __W,
2526 (__mmask16) __U);
2527}
2528
2529extern __inline __m256i
2530__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2531_mm256_maskz_cvtepu8_epi16 (__mmask16 __U, __m128i __A)
2532{
2533 return (__m256i) __builtin_ia32_pmovzxbw256_mask ((__v16qi) __A,
2534 (__v16hi)
2535 _mm256_setzero_si256 (),
2536 (__mmask16) __U);
2537}
2538
2539extern __inline __m128i
2540__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2541_mm_mask_cvtepu8_epi16 (__m128i __W, __mmask8 __U, __m128i __A)
2542{
2543 return (__m128i) __builtin_ia32_pmovzxbw128_mask ((__v16qi) __A,
2544 (__v8hi) __W,
2545 (__mmask8) __U);
2546}
2547
2548extern __inline __m128i
2549__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2550_mm_maskz_cvtepu8_epi16 (__mmask8 __U, __m128i __A)
2551{
2552 return (__m128i) __builtin_ia32_pmovzxbw128_mask ((__v16qi) __A,
2553 (__v8hi)
2554 _mm_setzero_si128 (),
2555 (__mmask8) __U);
2556}
2557
2558extern __inline __m256i
2559__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2560_mm256_mask_avg_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
2561 __m256i __B)
2562{
2563 return (__m256i) __builtin_ia32_pavgb256_mask ((__v32qi) __A,
2564 (__v32qi) __B,
2565 (__v32qi) __W,
2566 (__mmask32) __U);
2567}
2568
2569extern __inline __m256i
2570__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2571_mm256_maskz_avg_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
2572{
2573 return (__m256i) __builtin_ia32_pavgb256_mask ((__v32qi) __A,
2574 (__v32qi) __B,
2575 (__v32qi)
2576 _mm256_setzero_si256 (),
2577 (__mmask32) __U);
2578}
2579
2580extern __inline __m128i
2581__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2582_mm_mask_avg_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
2583 __m128i __B)
2584{
2585 return (__m128i) __builtin_ia32_pavgb128_mask ((__v16qi) __A,
2586 (__v16qi) __B,
2587 (__v16qi) __W,
2588 (__mmask16) __U);
2589}
2590
2591extern __inline __m128i
2592__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2593_mm_maskz_avg_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
2594{
2595 return (__m128i) __builtin_ia32_pavgb128_mask ((__v16qi) __A,
2596 (__v16qi) __B,
2597 (__v16qi)
2598 _mm_setzero_si128 (),
2599 (__mmask16) __U);
2600}
2601
2602extern __inline __m256i
2603__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2604_mm256_mask_avg_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
2605 __m256i __B)
2606{
2607 return (__m256i) __builtin_ia32_pavgw256_mask ((__v16hi) __A,
2608 (__v16hi) __B,
2609 (__v16hi) __W,
2610 (__mmask16) __U);
2611}
2612
2613extern __inline __m256i
2614__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2615_mm256_maskz_avg_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
2616{
2617 return (__m256i) __builtin_ia32_pavgw256_mask ((__v16hi) __A,
2618 (__v16hi) __B,
2619 (__v16hi)
2620 _mm256_setzero_si256 (),
2621 (__mmask16) __U);
2622}
2623
2624extern __inline __m128i
2625__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2626_mm_mask_avg_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
2627 __m128i __B)
2628{
2629 return (__m128i) __builtin_ia32_pavgw128_mask ((__v8hi) __A,
2630 (__v8hi) __B,
2631 (__v8hi) __W,
2632 (__mmask8) __U);
2633}
2634
2635extern __inline __m128i
2636__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2637_mm_maskz_avg_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
2638{
2639 return (__m128i) __builtin_ia32_pavgw128_mask ((__v8hi) __A,
2640 (__v8hi) __B,
2641 (__v8hi)
2642 _mm_setzero_si128 (),
2643 (__mmask8) __U);
2644}
2645
2646extern __inline __m256i
2647__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2648_mm256_mask_add_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
2649 __m256i __B)
2650{
2651 return (__m256i) __builtin_ia32_paddb256_mask ((__v32qi) __A,
2652 (__v32qi) __B,
2653 (__v32qi) __W,
2654 (__mmask32) __U);
2655}
2656
2657extern __inline __m256i
2658__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2659_mm256_maskz_add_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
2660{
2661 return (__m256i) __builtin_ia32_paddb256_mask ((__v32qi) __A,
2662 (__v32qi) __B,
2663 (__v32qi)
2664 _mm256_setzero_si256 (),
2665 (__mmask32) __U);
2666}
2667
2668extern __inline __m256i
2669__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2670_mm256_mask_add_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2671 __m256i __B)
2672{
2673 return (__m256i) __builtin_ia32_paddw256_mask ((__v16hi) __A,
2674 (__v16hi) __B,
2675 (__v16hi) __W,
2676 (__mmask16) __U);
2677}
2678
2679extern __inline __m256i
2680__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2681_mm256_maskz_add_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2682{
2683 return (__m256i) __builtin_ia32_paddw256_mask ((__v16hi) __A,
2684 (__v16hi) __B,
2685 (__v16hi)
2686 _mm256_setzero_si256 (),
2687 (__mmask16) __U);
2688}
2689
2690extern __inline __m256i
2691__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2692_mm256_mask_adds_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
2693 __m256i __B)
2694{
2695 return (__m256i) __builtin_ia32_paddsb256_mask ((__v32qi) __A,
2696 (__v32qi) __B,
2697 (__v32qi) __W,
2698 (__mmask32) __U);
2699}
2700
2701extern __inline __m256i
2702__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2703_mm256_maskz_adds_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
2704{
2705 return (__m256i) __builtin_ia32_paddsb256_mask ((__v32qi) __A,
2706 (__v32qi) __B,
2707 (__v32qi)
2708 _mm256_setzero_si256 (),
2709 (__mmask32) __U);
2710}
2711
2712extern __inline __m256i
2713__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2714_mm256_mask_adds_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2715 __m256i __B)
2716{
2717 return (__m256i) __builtin_ia32_paddsw256_mask ((__v16hi) __A,
2718 (__v16hi) __B,
2719 (__v16hi) __W,
2720 (__mmask16) __U);
2721}
2722
2723extern __inline __m256i
2724__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2725_mm256_maskz_adds_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2726{
2727 return (__m256i) __builtin_ia32_paddsw256_mask ((__v16hi) __A,
2728 (__v16hi) __B,
2729 (__v16hi)
2730 _mm256_setzero_si256 (),
2731 (__mmask16) __U);
2732}
2733
2734extern __inline __m256i
2735__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2736_mm256_mask_adds_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
2737 __m256i __B)
2738{
2739 return (__m256i) __builtin_ia32_paddusb256_mask ((__v32qi) __A,
2740 (__v32qi) __B,
2741 (__v32qi) __W,
2742 (__mmask32) __U);
2743}
2744
2745extern __inline __m256i
2746__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2747_mm256_maskz_adds_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
2748{
2749 return (__m256i) __builtin_ia32_paddusb256_mask ((__v32qi) __A,
2750 (__v32qi) __B,
2751 (__v32qi)
2752 _mm256_setzero_si256 (),
2753 (__mmask32) __U);
2754}
2755
2756extern __inline __m256i
2757__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2758_mm256_mask_adds_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
2759 __m256i __B)
2760{
2761 return (__m256i) __builtin_ia32_paddusw256_mask ((__v16hi) __A,
2762 (__v16hi) __B,
2763 (__v16hi) __W,
2764 (__mmask16) __U);
2765}
2766
2767extern __inline __m256i
2768__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2769_mm256_maskz_adds_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
2770{
2771 return (__m256i) __builtin_ia32_paddusw256_mask ((__v16hi) __A,
2772 (__v16hi) __B,
2773 (__v16hi)
2774 _mm256_setzero_si256 (),
2775 (__mmask16) __U);
2776}
2777
2778extern __inline __m256i
2779__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2780_mm256_mask_sub_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
2781 __m256i __B)
2782{
2783 return (__m256i) __builtin_ia32_psubb256_mask ((__v32qi) __A,
2784 (__v32qi) __B,
2785 (__v32qi) __W,
2786 (__mmask32) __U);
2787}
2788
2789extern __inline __m256i
2790__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2791_mm256_maskz_sub_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
2792{
2793 return (__m256i) __builtin_ia32_psubb256_mask ((__v32qi) __A,
2794 (__v32qi) __B,
2795 (__v32qi)
2796 _mm256_setzero_si256 (),
2797 (__mmask32) __U);
2798}
2799
2800extern __inline __m256i
2801__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2802_mm256_mask_sub_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2803 __m256i __B)
2804{
2805 return (__m256i) __builtin_ia32_psubw256_mask ((__v16hi) __A,
2806 (__v16hi) __B,
2807 (__v16hi) __W,
2808 (__mmask16) __U);
2809}
2810
2811extern __inline __m256i
2812__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2813_mm256_maskz_sub_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2814{
2815 return (__m256i) __builtin_ia32_psubw256_mask ((__v16hi) __A,
2816 (__v16hi) __B,
2817 (__v16hi)
2818 _mm256_setzero_si256 (),
2819 (__mmask16) __U);
2820}
2821
2822extern __inline __m256i
2823__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2824_mm256_mask_subs_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
2825 __m256i __B)
2826{
2827 return (__m256i) __builtin_ia32_psubsb256_mask ((__v32qi) __A,
2828 (__v32qi) __B,
2829 (__v32qi) __W,
2830 (__mmask32) __U);
2831}
2832
2833extern __inline __m256i
2834__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2835_mm256_maskz_subs_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
2836{
2837 return (__m256i) __builtin_ia32_psubsb256_mask ((__v32qi) __A,
2838 (__v32qi) __B,
2839 (__v32qi)
2840 _mm256_setzero_si256 (),
2841 (__mmask32) __U);
2842}
2843
2844extern __inline __m256i
2845__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2846_mm256_mask_subs_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2847 __m256i __B)
2848{
2849 return (__m256i) __builtin_ia32_psubsw256_mask ((__v16hi) __A,
2850 (__v16hi) __B,
2851 (__v16hi) __W,
2852 (__mmask16) __U);
2853}
2854
2855extern __inline __m256i
2856__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2857_mm256_maskz_subs_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2858{
2859 return (__m256i) __builtin_ia32_psubsw256_mask ((__v16hi) __A,
2860 (__v16hi) __B,
2861 (__v16hi)
2862 _mm256_setzero_si256 (),
2863 (__mmask16) __U);
2864}
2865
2866extern __inline __m256i
2867__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2868_mm256_mask_subs_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
2869 __m256i __B)
2870{
2871 return (__m256i) __builtin_ia32_psubusb256_mask ((__v32qi) __A,
2872 (__v32qi) __B,
2873 (__v32qi) __W,
2874 (__mmask32) __U);
2875}
2876
2877extern __inline __m256i
2878__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2879_mm256_maskz_subs_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
2880{
2881 return (__m256i) __builtin_ia32_psubusb256_mask ((__v32qi) __A,
2882 (__v32qi) __B,
2883 (__v32qi)
2884 _mm256_setzero_si256 (),
2885 (__mmask32) __U);
2886}
2887
2888extern __inline __m256i
2889__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2890_mm256_mask_subs_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
2891 __m256i __B)
2892{
2893 return (__m256i) __builtin_ia32_psubusw256_mask ((__v16hi) __A,
2894 (__v16hi) __B,
2895 (__v16hi) __W,
2896 (__mmask16) __U);
2897}
2898
2899extern __inline __m256i
2900__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2901_mm256_maskz_subs_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
2902{
2903 return (__m256i) __builtin_ia32_psubusw256_mask ((__v16hi) __A,
2904 (__v16hi) __B,
2905 (__v16hi)
2906 _mm256_setzero_si256 (),
2907 (__mmask16) __U);
2908}
2909
2910extern __inline __m128i
2911__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2912_mm_mask_add_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
2913 __m128i __B)
2914{
2915 return (__m128i) __builtin_ia32_paddb128_mask ((__v16qi) __A,
2916 (__v16qi) __B,
2917 (__v16qi) __W,
2918 (__mmask16) __U);
2919}
2920
2921extern __inline __m128i
2922__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2923_mm_maskz_add_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
2924{
2925 return (__m128i) __builtin_ia32_paddb128_mask ((__v16qi) __A,
2926 (__v16qi) __B,
2927 (__v16qi)
2928 _mm_setzero_si128 (),
2929 (__mmask16) __U);
2930}
2931
2932extern __inline __m128i
2933__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2934_mm_mask_add_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
2935 __m128i __B)
2936{
2937 return (__m128i) __builtin_ia32_paddw128_mask ((__v8hi) __A,
2938 (__v8hi) __B,
2939 (__v8hi) __W,
2940 (__mmask8) __U);
2941}
2942
2943extern __inline __m128i
2944__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2945_mm_maskz_add_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
2946{
2947 return (__m128i) __builtin_ia32_paddw128_mask ((__v8hi) __A,
2948 (__v8hi) __B,
2949 (__v8hi)
2950 _mm_setzero_si128 (),
2951 (__mmask8) __U);
2952}
2953
2954extern __inline __m256i
2955__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2956_mm256_mask_unpackhi_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
2957 __m256i __B)
2958{
2959 return (__m256i) __builtin_ia32_punpckhbw256_mask ((__v32qi) __A,
2960 (__v32qi) __B,
2961 (__v32qi) __W,
2962 (__mmask32) __U);
2963}
2964
2965extern __inline __m256i
2966__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2967_mm256_maskz_unpackhi_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
2968{
2969 return (__m256i) __builtin_ia32_punpckhbw256_mask ((__v32qi) __A,
2970 (__v32qi) __B,
2971 (__v32qi)
2972 _mm256_setzero_si256 (),
2973 (__mmask32) __U);
2974}
2975
2976extern __inline __m128i
2977__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2978_mm_mask_unpackhi_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
2979 __m128i __B)
2980{
2981 return (__m128i) __builtin_ia32_punpckhbw128_mask ((__v16qi) __A,
2982 (__v16qi) __B,
2983 (__v16qi) __W,
2984 (__mmask16) __U);
2985}
2986
2987extern __inline __m128i
2988__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2989_mm_maskz_unpackhi_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
2990{
2991 return (__m128i) __builtin_ia32_punpckhbw128_mask ((__v16qi) __A,
2992 (__v16qi) __B,
2993 (__v16qi)
2994 _mm_setzero_si128 (),
2995 (__mmask16) __U);
2996}
2997
2998extern __inline __m256i
2999__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3000_mm256_mask_unpackhi_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
3001 __m256i __B)
3002{
3003 return (__m256i) __builtin_ia32_punpckhwd256_mask ((__v16hi) __A,
3004 (__v16hi) __B,
3005 (__v16hi) __W,
3006 (__mmask16) __U);
3007}
3008
3009extern __inline __m256i
3010__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3011_mm256_maskz_unpackhi_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
3012{
3013 return (__m256i) __builtin_ia32_punpckhwd256_mask ((__v16hi) __A,
3014 (__v16hi) __B,
3015 (__v16hi)
3016 _mm256_setzero_si256 (),
3017 (__mmask16) __U);
3018}
3019
3020extern __inline __m128i
3021__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3022_mm_mask_unpackhi_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
3023 __m128i __B)
3024{
3025 return (__m128i) __builtin_ia32_punpckhwd128_mask ((__v8hi) __A,
3026 (__v8hi) __B,
3027 (__v8hi) __W,
3028 (__mmask8) __U);
3029}
3030
3031extern __inline __m128i
3032__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3033_mm_maskz_unpackhi_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
3034{
3035 return (__m128i) __builtin_ia32_punpckhwd128_mask ((__v8hi) __A,
3036 (__v8hi) __B,
3037 (__v8hi)
3038 _mm_setzero_si128 (),
3039 (__mmask8) __U);
3040}
3041
3042extern __inline __m256i
3043__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3044_mm256_mask_unpacklo_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
3045 __m256i __B)
3046{
3047 return (__m256i) __builtin_ia32_punpcklbw256_mask ((__v32qi) __A,
3048 (__v32qi) __B,
3049 (__v32qi) __W,
3050 (__mmask32) __U);
3051}
3052
3053extern __inline __m256i
3054__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3055_mm256_maskz_unpacklo_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
3056{
3057 return (__m256i) __builtin_ia32_punpcklbw256_mask ((__v32qi) __A,
3058 (__v32qi) __B,
3059 (__v32qi)
3060 _mm256_setzero_si256 (),
3061 (__mmask32) __U);
3062}
3063
3064extern __inline __m128i
3065__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3066_mm_mask_unpacklo_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
3067 __m128i __B)
3068{
3069 return (__m128i) __builtin_ia32_punpcklbw128_mask ((__v16qi) __A,
3070 (__v16qi) __B,
3071 (__v16qi) __W,
3072 (__mmask16) __U);
3073}
3074
3075extern __inline __m128i
3076__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3077_mm_maskz_unpacklo_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
3078{
3079 return (__m128i) __builtin_ia32_punpcklbw128_mask ((__v16qi) __A,
3080 (__v16qi) __B,
3081 (__v16qi)
3082 _mm_setzero_si128 (),
3083 (__mmask16) __U);
3084}
3085
3086extern __inline __m256i
3087__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3088_mm256_mask_unpacklo_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
3089 __m256i __B)
3090{
3091 return (__m256i) __builtin_ia32_punpcklwd256_mask ((__v16hi) __A,
3092 (__v16hi) __B,
3093 (__v16hi) __W,
3094 (__mmask16) __U);
3095}
3096
3097extern __inline __m256i
3098__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3099_mm256_maskz_unpacklo_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
3100{
3101 return (__m256i) __builtin_ia32_punpcklwd256_mask ((__v16hi) __A,
3102 (__v16hi) __B,
3103 (__v16hi)
3104 _mm256_setzero_si256 (),
3105 (__mmask16) __U);
3106}
3107
3108extern __inline __m128i
3109__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3110_mm_mask_unpacklo_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
3111 __m128i __B)
3112{
3113 return (__m128i) __builtin_ia32_punpcklwd128_mask ((__v8hi) __A,
3114 (__v8hi) __B,
3115 (__v8hi) __W,
3116 (__mmask8) __U);
3117}
3118
3119extern __inline __m128i
3120__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3121_mm_maskz_unpacklo_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
3122{
3123 return (__m128i) __builtin_ia32_punpcklwd128_mask ((__v8hi) __A,
3124 (__v8hi) __B,
3125 (__v8hi)
3126 _mm_setzero_si128 (),
3127 (__mmask8) __U);
3128}
3129
3130extern __inline __mmask16
3131__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3132_mm_cmpeq_epi8_mask (__m128i __A, __m128i __B)
3133{
3134 return (__mmask16) __builtin_ia32_pcmpeqb128_mask ((__v16qi) __A,
3135 (__v16qi) __B,
3136 (__mmask16) -1);
3137}
3138
3139extern __inline __mmask16
3140__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3141_mm_cmpeq_epu8_mask (__m128i __A, __m128i __B)
3142{
3143 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __A,
3144 (__v16qi) __B, 0,
3145 (__mmask16) -1);
3146}
3147
3148extern __inline __mmask16
3149__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3150_mm_mask_cmpeq_epu8_mask (__mmask16 __U, __m128i __A, __m128i __B)
3151{
3152 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __A,
3153 (__v16qi) __B, 0,
3154 __U);
3155}
3156
3157extern __inline __mmask16
3158__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3159_mm_mask_cmpeq_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
3160{
3161 return (__mmask16) __builtin_ia32_pcmpeqb128_mask ((__v16qi) __A,
3162 (__v16qi) __B,
3163 __U);
3164}
3165
3166extern __inline __mmask32
3167__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3168_mm256_cmpeq_epu8_mask (__m256i __A, __m256i __B)
3169{
3170 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __A,
3171 (__v32qi) __B, 0,
3172 (__mmask32) -1);
3173}
3174
3175extern __inline __mmask32
3176__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3177_mm256_cmpeq_epi8_mask (__m256i __A, __m256i __B)
3178{
3179 return (__mmask32) __builtin_ia32_pcmpeqb256_mask ((__v32qi) __A,
3180 (__v32qi) __B,
3181 (__mmask32) -1);
3182}
3183
3184extern __inline __mmask32
3185__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3186_mm256_mask_cmpeq_epu8_mask (__mmask32 __U, __m256i __A, __m256i __B)
3187{
3188 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __A,
3189 (__v32qi) __B, 0,
3190 __U);
3191}
3192
3193extern __inline __mmask32
3194__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3195_mm256_mask_cmpeq_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
3196{
3197 return (__mmask32) __builtin_ia32_pcmpeqb256_mask ((__v32qi) __A,
3198 (__v32qi) __B,
3199 __U);
3200}
3201
3202extern __inline __mmask8
3203__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3204_mm_cmpeq_epu16_mask (__m128i __A, __m128i __B)
3205{
3206 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __A,
3207 (__v8hi) __B, 0,
3208 (__mmask8) -1);
3209}
3210
3211extern __inline __mmask8
3212__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3213_mm_cmpeq_epi16_mask (__m128i __A, __m128i __B)
3214{
3215 return (__mmask8) __builtin_ia32_pcmpeqw128_mask ((__v8hi) __A,
3216 (__v8hi) __B,
3217 (__mmask8) -1);
3218}
3219
3220extern __inline __mmask8
3221__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3222_mm_mask_cmpeq_epu16_mask (__mmask8 __U, __m128i __A, __m128i __B)
3223{
3224 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __A,
3225 (__v8hi) __B, 0, __U);
3226}
3227
3228extern __inline __mmask8
3229__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3230_mm_mask_cmpeq_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
3231{
3232 return (__mmask8) __builtin_ia32_pcmpeqw128_mask ((__v8hi) __A,
3233 (__v8hi) __B, __U);
3234}
3235
3236extern __inline __mmask16
3237__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3238_mm256_cmpeq_epu16_mask (__m256i __A, __m256i __B)
3239{
3240 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __A,
3241 (__v16hi) __B, 0,
3242 (__mmask16) -1);
3243}
3244
3245extern __inline __mmask16
3246__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3247_mm256_cmpeq_epi16_mask (__m256i __A, __m256i __B)
3248{
3249 return (__mmask16) __builtin_ia32_pcmpeqw256_mask ((__v16hi) __A,
3250 (__v16hi) __B,
3251 (__mmask16) -1);
3252}
3253
3254extern __inline __mmask16
3255__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3256_mm256_mask_cmpeq_epu16_mask (__mmask16 __U, __m256i __A, __m256i __B)
3257{
3258 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __A,
3259 (__v16hi) __B, 0,
3260 __U);
3261}
3262
3263extern __inline __mmask16
3264__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3265_mm256_mask_cmpeq_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
3266{
3267 return (__mmask16) __builtin_ia32_pcmpeqw256_mask ((__v16hi) __A,
3268 (__v16hi) __B,
3269 __U);
3270}
3271
3272extern __inline __mmask16
3273__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3274_mm_cmpgt_epu8_mask (__m128i __A, __m128i __B)
3275{
3276 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __A,
3277 (__v16qi) __B, 6,
3278 (__mmask16) -1);
3279}
3280
3281extern __inline __mmask16
3282__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3283_mm_cmpgt_epi8_mask (__m128i __A, __m128i __B)
3284{
3285 return (__mmask16) __builtin_ia32_pcmpgtb128_mask ((__v16qi) __A,
3286 (__v16qi) __B,
3287 (__mmask16) -1);
3288}
3289
3290extern __inline __mmask16
3291__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3292_mm_mask_cmpgt_epu8_mask (__mmask16 __U, __m128i __A, __m128i __B)
3293{
3294 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __A,
3295 (__v16qi) __B, 6,
3296 __U);
3297}
3298
3299extern __inline __mmask16
3300__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3301_mm_mask_cmpgt_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
3302{
3303 return (__mmask16) __builtin_ia32_pcmpgtb128_mask ((__v16qi) __A,
3304 (__v16qi) __B,
3305 __U);
3306}
3307
3308extern __inline __mmask32
3309__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3310_mm256_cmpgt_epu8_mask (__m256i __A, __m256i __B)
3311{
3312 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __A,
3313 (__v32qi) __B, 6,
3314 (__mmask32) -1);
3315}
3316
3317extern __inline __mmask32
3318__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3319_mm256_cmpgt_epi8_mask (__m256i __A, __m256i __B)
3320{
3321 return (__mmask32) __builtin_ia32_pcmpgtb256_mask ((__v32qi) __A,
3322 (__v32qi) __B,
3323 (__mmask32) -1);
3324}
3325
3326extern __inline __mmask32
3327__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3328_mm256_mask_cmpgt_epu8_mask (__mmask32 __U, __m256i __A, __m256i __B)
3329{
3330 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __A,
3331 (__v32qi) __B, 6,
3332 __U);
3333}
3334
3335extern __inline __mmask32
3336__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3337_mm256_mask_cmpgt_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
3338{
3339 return (__mmask32) __builtin_ia32_pcmpgtb256_mask ((__v32qi) __A,
3340 (__v32qi) __B,
3341 __U);
3342}
3343
3344extern __inline __mmask8
3345__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3346_mm_cmpgt_epu16_mask (__m128i __A, __m128i __B)
3347{
3348 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __A,
3349 (__v8hi) __B, 6,
3350 (__mmask8) -1);
3351}
3352
3353extern __inline __mmask8
3354__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3355_mm_cmpgt_epi16_mask (__m128i __A, __m128i __B)
3356{
3357 return (__mmask8) __builtin_ia32_pcmpgtw128_mask ((__v8hi) __A,
3358 (__v8hi) __B,
3359 (__mmask8) -1);
3360}
3361
3362extern __inline __mmask8
3363__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3364_mm_mask_cmpgt_epu16_mask (__mmask8 __U, __m128i __A, __m128i __B)
3365{
3366 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __A,
3367 (__v8hi) __B, 6, __U);
3368}
3369
3370extern __inline __mmask8
3371__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3372_mm_mask_cmpgt_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
3373{
3374 return (__mmask8) __builtin_ia32_pcmpgtw128_mask ((__v8hi) __A,
3375 (__v8hi) __B, __U);
3376}
3377
3378extern __inline __mmask16
3379__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3380_mm256_cmpgt_epu16_mask (__m256i __A, __m256i __B)
3381{
3382 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __A,
3383 (__v16hi) __B, 6,
3384 (__mmask16) -1);
3385}
3386
3387extern __inline __mmask16
3388__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3389_mm256_cmpgt_epi16_mask (__m256i __A, __m256i __B)
3390{
3391 return (__mmask16) __builtin_ia32_pcmpgtw256_mask ((__v16hi) __A,
3392 (__v16hi) __B,
3393 (__mmask16) -1);
3394}
3395
3396extern __inline __mmask16
3397__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3398_mm256_mask_cmpgt_epu16_mask (__mmask16 __U, __m256i __A, __m256i __B)
3399{
3400 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __A,
3401 (__v16hi) __B, 6,
3402 __U);
3403}
3404
3405extern __inline __mmask16
3406__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3407_mm256_mask_cmpgt_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
3408{
3409 return (__mmask16) __builtin_ia32_pcmpgtw256_mask ((__v16hi) __A,
3410 (__v16hi) __B,
3411 __U);
3412}
3413
3414extern __inline __mmask16
3415__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3416_mm_testn_epi8_mask (__m128i __A, __m128i __B)
3417{
3418 return (__mmask16) __builtin_ia32_ptestnmb128 ((__v16qi) __A,
3419 (__v16qi) __B,
3420 (__mmask16) -1);
3421}
3422
3423extern __inline __mmask16
3424__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3425_mm_mask_testn_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
3426{
3427 return (__mmask16) __builtin_ia32_ptestnmb128 ((__v16qi) __A,
3428 (__v16qi) __B, __U);
3429}
3430
3431extern __inline __mmask32
3432__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3433_mm256_testn_epi8_mask (__m256i __A, __m256i __B)
3434{
3435 return (__mmask32) __builtin_ia32_ptestnmb256 ((__v32qi) __A,
3436 (__v32qi) __B,
3437 (__mmask32) -1);
3438}
3439
3440extern __inline __mmask32
3441__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3442_mm256_mask_testn_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
3443{
3444 return (__mmask32) __builtin_ia32_ptestnmb256 ((__v32qi) __A,
3445 (__v32qi) __B, __U);
3446}
3447
3448extern __inline __mmask8
3449__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3450_mm_testn_epi16_mask (__m128i __A, __m128i __B)
3451{
3452 return (__mmask8) __builtin_ia32_ptestnmw128 ((__v8hi) __A,
3453 (__v8hi) __B,
3454 (__mmask8) -1);
3455}
3456
3457extern __inline __mmask8
3458__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3459_mm_mask_testn_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
3460{
3461 return (__mmask8) __builtin_ia32_ptestnmw128 ((__v8hi) __A,
3462 (__v8hi) __B, __U);
3463}
3464
3465extern __inline __mmask16
3466__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3467_mm256_testn_epi16_mask (__m256i __A, __m256i __B)
3468{
3469 return (__mmask16) __builtin_ia32_ptestnmw256 ((__v16hi) __A,
3470 (__v16hi) __B,
3471 (__mmask16) -1);
3472}
3473
3474extern __inline __mmask16
3475__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3476_mm256_mask_testn_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
3477{
3478 return (__mmask16) __builtin_ia32_ptestnmw256 ((__v16hi) __A,
3479 (__v16hi) __B, __U);
3480}
3481
3482extern __inline __m256i
3483__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3484_mm256_mask_shuffle_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
3485 __m256i __B)
3486{
3487 return (__m256i) __builtin_ia32_pshufb256_mask ((__v32qi) __A,
3488 (__v32qi) __B,
3489 (__v32qi) __W,
3490 (__mmask32) __U);
3491}
3492
3493extern __inline __m256i
3494__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3495_mm256_maskz_shuffle_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
3496{
3497 return (__m256i) __builtin_ia32_pshufb256_mask ((__v32qi) __A,
3498 (__v32qi) __B,
3499 (__v32qi)
3500 _mm256_setzero_si256 (),
3501 (__mmask32) __U);
3502}
3503
3504extern __inline __m128i
3505__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3506_mm_mask_shuffle_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
3507 __m128i __B)
3508{
3509 return (__m128i) __builtin_ia32_pshufb128_mask ((__v16qi) __A,
3510 (__v16qi) __B,
3511 (__v16qi) __W,
3512 (__mmask16) __U);
3513}
3514
3515extern __inline __m128i
3516__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3517_mm_maskz_shuffle_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
3518{
3519 return (__m128i) __builtin_ia32_pshufb128_mask ((__v16qi) __A,
3520 (__v16qi) __B,
3521 (__v16qi)
3522 _mm_setzero_si128 (),
3523 (__mmask16) __U);
3524}
3525
3526extern __inline __m256i
3527__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3528_mm256_maskz_packs_epi16 (__mmask32 __M, __m256i __A, __m256i __B)
3529{
3530 return (__m256i) __builtin_ia32_packsswb256_mask ((__v16hi) __A,
3531 (__v16hi) __B,
3532 (__v32qi)
3533 _mm256_setzero_si256 (),
3534 __M);
3535}
3536
3537extern __inline __m256i
3538__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3539_mm256_mask_packs_epi16 (__m256i __W, __mmask32 __M, __m256i __A,
3540 __m256i __B)
3541{
3542 return (__m256i) __builtin_ia32_packsswb256_mask ((__v16hi) __A,
3543 (__v16hi) __B,
3544 (__v32qi) __W,
3545 __M);
3546}
3547
3548extern __inline __m128i
3549__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3550_mm_maskz_packs_epi16 (__mmask16 __M, __m128i __A, __m128i __B)
3551{
3552 return (__m128i) __builtin_ia32_packsswb128_mask ((__v8hi) __A,
3553 (__v8hi) __B,
3554 (__v16qi)
3555 _mm_setzero_si128 (),
3556 __M);
3557}
3558
3559extern __inline __m128i
3560__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3561_mm_mask_packs_epi16 (__m128i __W, __mmask16 __M, __m128i __A,
3562 __m128i __B)
3563{
3564 return (__m128i) __builtin_ia32_packsswb128_mask ((__v8hi) __A,
3565 (__v8hi) __B,
3566 (__v16qi) __W,
3567 __M);
3568}
3569
3570extern __inline __m256i
3571__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3572_mm256_maskz_packus_epi16 (__mmask32 __M, __m256i __A, __m256i __B)
3573{
3574 return (__m256i) __builtin_ia32_packuswb256_mask ((__v16hi) __A,
3575 (__v16hi) __B,
3576 (__v32qi)
3577 _mm256_setzero_si256 (),
3578 __M);
3579}
3580
3581extern __inline __m256i
3582__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3583_mm256_mask_packus_epi16 (__m256i __W, __mmask32 __M, __m256i __A,
3584 __m256i __B)
3585{
3586 return (__m256i) __builtin_ia32_packuswb256_mask ((__v16hi) __A,
3587 (__v16hi) __B,
3588 (__v32qi) __W,
3589 __M);
3590}
3591
3592extern __inline __m128i
3593__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3594_mm_maskz_packus_epi16 (__mmask16 __M, __m128i __A, __m128i __B)
3595{
3596 return (__m128i) __builtin_ia32_packuswb128_mask ((__v8hi) __A,
3597 (__v8hi) __B,
3598 (__v16qi)
3599 _mm_setzero_si128 (),
3600 __M);
3601}
3602
3603extern __inline __m128i
3604__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3605_mm_mask_packus_epi16 (__m128i __W, __mmask16 __M, __m128i __A,
3606 __m128i __B)
3607{
3608 return (__m128i) __builtin_ia32_packuswb128_mask ((__v8hi) __A,
3609 (__v8hi) __B,
3610 (__v16qi) __W,
3611 __M);
3612}
3613
3614extern __inline __m256i
3615__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3616_mm256_mask_abs_epi8 (__m256i __W, __mmask32 __U, __m256i __A)
3617{
3618 return (__m256i) __builtin_ia32_pabsb256_mask ((__v32qi) __A,
3619 (__v32qi) __W,
3620 (__mmask32) __U);
3621}
3622
3623extern __inline __m256i
3624__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3625_mm256_maskz_abs_epi8 (__mmask32 __U, __m256i __A)
3626{
3627 return (__m256i) __builtin_ia32_pabsb256_mask ((__v32qi) __A,
3628 (__v32qi)
3629 _mm256_setzero_si256 (),
3630 (__mmask32) __U);
3631}
3632
3633extern __inline __m128i
3634__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3635_mm_mask_abs_epi8 (__m128i __W, __mmask16 __U, __m128i __A)
3636{
3637 return (__m128i) __builtin_ia32_pabsb128_mask ((__v16qi) __A,
3638 (__v16qi) __W,
3639 (__mmask16) __U);
3640}
3641
3642extern __inline __m128i
3643__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3644_mm_maskz_abs_epi8 (__mmask16 __U, __m128i __A)
3645{
3646 return (__m128i) __builtin_ia32_pabsb128_mask ((__v16qi) __A,
3647 (__v16qi)
3648 _mm_setzero_si128 (),
3649 (__mmask16) __U);
3650}
3651
3652extern __inline __m256i
3653__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3654_mm256_mask_abs_epi16 (__m256i __W, __mmask16 __U, __m256i __A)
3655{
3656 return (__m256i) __builtin_ia32_pabsw256_mask ((__v16hi) __A,
3657 (__v16hi) __W,
3658 (__mmask16) __U);
3659}
3660
3661extern __inline __m256i
3662__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3663_mm256_maskz_abs_epi16 (__mmask16 __U, __m256i __A)
3664{
3665 return (__m256i) __builtin_ia32_pabsw256_mask ((__v16hi) __A,
3666 (__v16hi)
3667 _mm256_setzero_si256 (),
3668 (__mmask16) __U);
3669}
3670
3671extern __inline __m128i
3672__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3673_mm_mask_abs_epi16 (__m128i __W, __mmask8 __U, __m128i __A)
3674{
3675 return (__m128i) __builtin_ia32_pabsw128_mask ((__v8hi) __A,
3676 (__v8hi) __W,
3677 (__mmask8) __U);
3678}
3679
3680extern __inline __m128i
3681__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3682_mm_maskz_abs_epi16 (__mmask8 __U, __m128i __A)
3683{
3684 return (__m128i) __builtin_ia32_pabsw128_mask ((__v8hi) __A,
3685 (__v8hi)
3686 _mm_setzero_si128 (),
3687 (__mmask8) __U);
3688}
3689
3690extern __inline __mmask32
3691 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3692_mm256_cmpneq_epu8_mask (__m256i __X, __m256i __Y)
3693{
3694 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
3695 (__v32qi) __Y, 4,
3696 (__mmask32) -1);
3697}
3698
3699extern __inline __mmask32
3700 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3701_mm256_cmplt_epu8_mask (__m256i __X, __m256i __Y)
3702{
3703 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
3704 (__v32qi) __Y, 1,
3705 (__mmask32) -1);
3706}
3707
3708extern __inline __mmask32
3709 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3710_mm256_cmpge_epu8_mask (__m256i __X, __m256i __Y)
3711{
3712 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
3713 (__v32qi) __Y, 5,
3714 (__mmask32) -1);
3715}
3716
3717extern __inline __mmask32
3718 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3719_mm256_cmple_epu8_mask (__m256i __X, __m256i __Y)
3720{
3721 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
3722 (__v32qi) __Y, 2,
3723 (__mmask32) -1);
3724}
3725
3726extern __inline __mmask16
3727 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3728_mm256_cmpneq_epu16_mask (__m256i __X, __m256i __Y)
3729{
3730 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
3731 (__v16hi) __Y, 4,
3732 (__mmask16) -1);
3733}
3734
3735extern __inline __mmask16
3736 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3737_mm256_cmplt_epu16_mask (__m256i __X, __m256i __Y)
3738{
3739 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
3740 (__v16hi) __Y, 1,
3741 (__mmask16) -1);
3742}
3743
3744extern __inline __mmask16
3745 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3746_mm256_cmpge_epu16_mask (__m256i __X, __m256i __Y)
3747{
3748 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
3749 (__v16hi) __Y, 5,
3750 (__mmask16) -1);
3751}
3752
3753extern __inline __mmask16
3754 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3755_mm256_cmple_epu16_mask (__m256i __X, __m256i __Y)
3756{
3757 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
3758 (__v16hi) __Y, 2,
3759 (__mmask16) -1);
3760}
3761
3762extern __inline void
3763__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3764_mm256_storeu_epi16 (void *__P, __m256i __A)
3765{
3766 *(__v16hi_u *) __P = (__v16hi_u) __A;
3767}
3768
3769extern __inline void
3770__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3771_mm256_mask_storeu_epi16 (void *__P, __mmask16 __U, __m256i __A)
3772{
3773 __builtin_ia32_storedquhi256_mask ((short *) __P,
3774 (__v16hi) __A,
3775 (__mmask16) __U);
3776}
3777
3778extern __inline void
3779__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3780_mm_storeu_epi16 (void *__P, __m128i __A)
3781{
3782 *(__v8hi_u *) __P = (__v8hi_u) __A;
3783}
3784
3785extern __inline void
3786__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3787_mm_mask_storeu_epi16 (void *__P, __mmask8 __U, __m128i __A)
3788{
3789 __builtin_ia32_storedquhi128_mask ((short *) __P,
3790 (__v8hi) __A,
3791 (__mmask8) __U);
3792}
3793
3794extern __inline __m128i
3795__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3796_mm_mask_adds_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
3797 __m128i __B)
3798{
3799 return (__m128i) __builtin_ia32_paddsw128_mask ((__v8hi) __A,
3800 (__v8hi) __B,
3801 (__v8hi) __W,
3802 (__mmask8) __U);
3803}
3804
3805extern __inline __m128i
3806__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3807_mm_mask_subs_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
3808 __m128i __B)
3809{
3810 return (__m128i) __builtin_ia32_psubsb128_mask ((__v16qi) __A,
3811 (__v16qi) __B,
3812 (__v16qi) __W,
3813 (__mmask16) __U);
3814}
3815
3816extern __inline __m128i
3817__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3818_mm_maskz_subs_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
3819{
3820 return (__m128i) __builtin_ia32_psubsb128_mask ((__v16qi) __A,
3821 (__v16qi) __B,
3822 (__v16qi)
3823 _mm_setzero_si128 (),
3824 (__mmask16) __U);
3825}
3826
3827extern __inline __m128i
3828__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3829_mm_mask_subs_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
3830 __m128i __B)
3831{
3832 return (__m128i) __builtin_ia32_psubsw128_mask ((__v8hi) __A,
3833 (__v8hi) __B,
3834 (__v8hi) __W,
3835 (__mmask8) __U);
3836}
3837
3838extern __inline __m128i
3839__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3840_mm_maskz_subs_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
3841{
3842 return (__m128i) __builtin_ia32_psubsw128_mask ((__v8hi) __A,
3843 (__v8hi) __B,
3844 (__v8hi)
3845 _mm_setzero_si128 (),
3846 (__mmask8) __U);
3847}
3848
3849extern __inline __m128i
3850__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3851_mm_mask_subs_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
3852 __m128i __B)
3853{
3854 return (__m128i) __builtin_ia32_psubusb128_mask ((__v16qi) __A,
3855 (__v16qi) __B,
3856 (__v16qi) __W,
3857 (__mmask16) __U);
3858}
3859
3860extern __inline __m128i
3861__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3862_mm_maskz_subs_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
3863{
3864 return (__m128i) __builtin_ia32_psubusb128_mask ((__v16qi) __A,
3865 (__v16qi) __B,
3866 (__v16qi)
3867 _mm_setzero_si128 (),
3868 (__mmask16) __U);
3869}
3870
3871extern __inline __m128i
3872__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3873_mm_mask_subs_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
3874 __m128i __B)
3875{
3876 return (__m128i) __builtin_ia32_psubusw128_mask ((__v8hi) __A,
3877 (__v8hi) __B,
3878 (__v8hi) __W,
3879 (__mmask8) __U);
3880}
3881
3882extern __inline __m128i
3883__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3884_mm_maskz_subs_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
3885{
3886 return (__m128i) __builtin_ia32_psubusw128_mask ((__v8hi) __A,
3887 (__v8hi) __B,
3888 (__v8hi)
3889 _mm_setzero_si128 (),
3890 (__mmask8) __U);
3891}
3892
3893extern __inline __m256i
3894__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3895_mm256_mask_srl_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
3896 __m128i __B)
3897{
3898 return (__m256i) __builtin_ia32_psrlw256_mask ((__v16hi) __A,
3899 (__v8hi) __B,
3900 (__v16hi) __W,
3901 (__mmask16) __U);
3902}
3903
3904extern __inline __m256i
3905__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3906_mm256_maskz_srl_epi16 (__mmask16 __U, __m256i __A, __m128i __B)
3907{
3908 return (__m256i) __builtin_ia32_psrlw256_mask ((__v16hi) __A,
3909 (__v8hi) __B,
3910 (__v16hi)
3911 _mm256_setzero_si256 (),
3912 (__mmask16) __U);
3913}
3914
3915extern __inline __m128i
3916__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3917_mm_mask_srl_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
3918 __m128i __B)
3919{
3920 return (__m128i) __builtin_ia32_psrlw128_mask ((__v8hi) __A,
3921 (__v8hi) __B,
3922 (__v8hi) __W,
3923 (__mmask8) __U);
3924}
3925
3926extern __inline __m128i
3927__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3928_mm_maskz_srl_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
3929{
3930 return (__m128i) __builtin_ia32_psrlw128_mask ((__v8hi) __A,
3931 (__v8hi) __B,
3932 (__v8hi)
3933 _mm_setzero_si128 (),
3934 (__mmask8) __U);
3935}
3936
3937extern __inline __m256i
3938__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3939_mm256_mask_sra_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
3940 __m128i __B)
3941{
3942 return (__m256i) __builtin_ia32_psraw256_mask ((__v16hi) __A,
3943 (__v8hi) __B,
3944 (__v16hi) __W,
3945 (__mmask16) __U);
3946}
3947
3948extern __inline __m256i
3949__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3950_mm256_maskz_sra_epi16 (__mmask16 __U, __m256i __A, __m128i __B)
3951{
3952 return (__m256i) __builtin_ia32_psraw256_mask ((__v16hi) __A,
3953 (__v8hi) __B,
3954 (__v16hi)
3955 _mm256_setzero_si256 (),
3956 (__mmask16) __U);
3957}
3958
3959extern __inline __m128i
3960__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3961_mm_mask_sra_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
3962 __m128i __B)
3963{
3964 return (__m128i) __builtin_ia32_psraw128_mask ((__v8hi) __A,
3965 (__v8hi) __B,
3966 (__v8hi) __W,
3967 (__mmask8) __U);
3968}
3969
3970extern __inline __m128i
3971__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3972_mm_maskz_sra_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
3973{
3974 return (__m128i) __builtin_ia32_psraw128_mask ((__v8hi) __A,
3975 (__v8hi) __B,
3976 (__v8hi)
3977 _mm_setzero_si128 (),
3978 (__mmask8) __U);
3979}
3980
3981extern __inline __m128i
3982__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3983_mm_maskz_adds_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
3984{
3985 return (__m128i) __builtin_ia32_paddsw128_mask ((__v8hi) __A,
3986 (__v8hi) __B,
3987 (__v8hi)
3988 _mm_setzero_si128 (),
3989 (__mmask8) __U);
3990}
3991
3992extern __inline __m128i
3993__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3994_mm_mask_adds_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
3995 __m128i __B)
3996{
3997 return (__m128i) __builtin_ia32_paddusb128_mask ((__v16qi) __A,
3998 (__v16qi) __B,
3999 (__v16qi) __W,
4000 (__mmask16) __U);
4001}
4002
4003extern __inline __m128i
4004__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4005_mm_maskz_adds_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
4006{
4007 return (__m128i) __builtin_ia32_paddusb128_mask ((__v16qi) __A,
4008 (__v16qi) __B,
4009 (__v16qi)
4010 _mm_setzero_si128 (),
4011 (__mmask16) __U);
4012}
4013
4014extern __inline __m128i
4015__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4016_mm_mask_adds_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
4017 __m128i __B)
4018{
4019 return (__m128i) __builtin_ia32_paddusw128_mask ((__v8hi) __A,
4020 (__v8hi) __B,
4021 (__v8hi) __W,
4022 (__mmask8) __U);
4023}
4024
4025extern __inline __m128i
4026__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4027_mm_maskz_adds_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
4028{
4029 return (__m128i) __builtin_ia32_paddusw128_mask ((__v8hi) __A,
4030 (__v8hi) __B,
4031 (__v8hi)
4032 _mm_setzero_si128 (),
4033 (__mmask8) __U);
4034}
4035
4036extern __inline __m128i
4037__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4038_mm_mask_sub_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
4039 __m128i __B)
4040{
4041 return (__m128i) __builtin_ia32_psubb128_mask ((__v16qi) __A,
4042 (__v16qi) __B,
4043 (__v16qi) __W,
4044 (__mmask16) __U);
4045}
4046
4047extern __inline __m128i
4048__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4049_mm_maskz_sub_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
4050{
4051 return (__m128i) __builtin_ia32_psubb128_mask ((__v16qi) __A,
4052 (__v16qi) __B,
4053 (__v16qi)
4054 _mm_setzero_si128 (),
4055 (__mmask16) __U);
4056}
4057
4058extern __inline __m128i
4059__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4060_mm_mask_sub_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
4061 __m128i __B)
4062{
4063 return (__m128i) __builtin_ia32_psubw128_mask ((__v8hi) __A,
4064 (__v8hi) __B,
4065 (__v8hi) __W,
4066 (__mmask8) __U);
4067}
4068
4069extern __inline __m128i
4070__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4071_mm_maskz_sub_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
4072{
4073 return (__m128i) __builtin_ia32_psubw128_mask ((__v8hi) __A,
4074 (__v8hi) __B,
4075 (__v8hi)
4076 _mm_setzero_si128 (),
4077 (__mmask8) __U);
4078}
4079
4080extern __inline __m128i
4081__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4082_mm_mask_adds_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
4083 __m128i __B)
4084{
4085 return (__m128i) __builtin_ia32_paddsb128_mask ((__v16qi) __A,
4086 (__v16qi) __B,
4087 (__v16qi) __W,
4088 (__mmask16) __U);
4089}
4090
4091extern __inline __m128i
4092__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4093_mm_maskz_adds_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
4094{
4095 return (__m128i) __builtin_ia32_paddsb128_mask ((__v16qi) __A,
4096 (__v16qi) __B,
4097 (__v16qi)
4098 _mm_setzero_si128 (),
4099 (__mmask16) __U);
4100}
4101
4102extern __inline __m128i
4103__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4104_mm_cvtepi16_epi8 (__m128i __A)
4105{
4106
4107 return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
4108 (__v16qi)_mm_undefined_si128(),
4109 (__mmask8) -1);
4110}
4111
4112extern __inline void
4113__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4114_mm_mask_cvtepi16_storeu_epi8 (void * __P, __mmask8 __M,__m128i __A)
4115{
4116 __builtin_ia32_pmovwb128mem_mask ((unsigned long long *) __P , (__v8hi) __A, __M);
4117}
4118
4119extern __inline __m128i
4120__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4121_mm_mask_cvtepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
4122{
4123 return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
4124 (__v16qi) __O, __M);
4125}
4126
4127extern __inline __m128i
4128__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4129_mm_maskz_cvtepi16_epi8 (__mmask8 __M, __m128i __A)
4130{
4131 return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
4132 (__v16qi)
4133 _mm_setzero_si128 (),
4134 __M);
4135}
4136
4137extern __inline __m256i
4138__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4139_mm256_srav_epi16 (__m256i __A, __m256i __B)
4140{
4141 return (__m256i) __builtin_ia32_psrav16hi_mask ((__v16hi) __A,
4142 (__v16hi) __B,
4143 (__v16hi)
4144 _mm256_setzero_si256 (),
4145 (__mmask16) -1);
4146}
4147
4148extern __inline __m256i
4149__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4150_mm256_mask_srav_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
4151 __m256i __B)
4152{
4153 return (__m256i) __builtin_ia32_psrav16hi_mask ((__v16hi) __A,
4154 (__v16hi) __B,
4155 (__v16hi) __W,
4156 (__mmask16) __U);
4157}
4158
4159extern __inline __m256i
4160__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4161_mm256_maskz_srav_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
4162{
4163 return (__m256i) __builtin_ia32_psrav16hi_mask ((__v16hi) __A,
4164 (__v16hi) __B,
4165 (__v16hi)
4166 _mm256_setzero_si256 (),
4167 (__mmask16) __U);
4168}
4169
4170extern __inline __m128i
4171__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4172_mm_srav_epi16 (__m128i __A, __m128i __B)
4173{
4174 return (__m128i) __builtin_ia32_psrav8hi_mask ((__v8hi) __A,
4175 (__v8hi) __B,
4176 (__v8hi)
4177 _mm_setzero_si128 (),
4178 (__mmask8) -1);
4179}
4180
4181extern __inline __m128i
4182__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4183_mm_mask_srav_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
4184 __m128i __B)
4185{
4186 return (__m128i) __builtin_ia32_psrav8hi_mask ((__v8hi) __A,
4187 (__v8hi) __B,
4188 (__v8hi) __W,
4189 (__mmask8) __U);
4190}
4191
4192extern __inline __m128i
4193__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4194_mm_maskz_srav_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
4195{
4196 return (__m128i) __builtin_ia32_psrav8hi_mask ((__v8hi) __A,
4197 (__v8hi) __B,
4198 (__v8hi)
4199 _mm_setzero_si128 (),
4200 (__mmask8) __U);
4201}
4202
4203extern __inline __m256i
4204__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4205_mm256_srlv_epi16 (__m256i __A, __m256i __B)
4206{
4207 return (__m256i) __builtin_ia32_psrlv16hi_mask ((__v16hi) __A,
4208 (__v16hi) __B,
4209 (__v16hi)
4210 _mm256_setzero_si256 (),
4211 (__mmask16) -1);
4212}
4213
4214extern __inline __m256i
4215__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4216_mm256_mask_srlv_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
4217 __m256i __B)
4218{
4219 return (__m256i) __builtin_ia32_psrlv16hi_mask ((__v16hi) __A,
4220 (__v16hi) __B,
4221 (__v16hi) __W,
4222 (__mmask16) __U);
4223}
4224
4225extern __inline __m256i
4226__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4227_mm256_maskz_srlv_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
4228{
4229 return (__m256i) __builtin_ia32_psrlv16hi_mask ((__v16hi) __A,
4230 (__v16hi) __B,
4231 (__v16hi)
4232 _mm256_setzero_si256 (),
4233 (__mmask16) __U);
4234}
4235
4236extern __inline __m128i
4237__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4238_mm_srlv_epi16 (__m128i __A, __m128i __B)
4239{
4240 return (__m128i) __builtin_ia32_psrlv8hi_mask ((__v8hi) __A,
4241 (__v8hi) __B,
4242 (__v8hi)
4243 _mm_setzero_si128 (),
4244 (__mmask8) -1);
4245}
4246
4247extern __inline __m128i
4248__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4249_mm_mask_srlv_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
4250 __m128i __B)
4251{
4252 return (__m128i) __builtin_ia32_psrlv8hi_mask ((__v8hi) __A,
4253 (__v8hi) __B,
4254 (__v8hi) __W,
4255 (__mmask8) __U);
4256}
4257
4258extern __inline __m128i
4259__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4260_mm_maskz_srlv_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
4261{
4262 return (__m128i) __builtin_ia32_psrlv8hi_mask ((__v8hi) __A,
4263 (__v8hi) __B,
4264 (__v8hi)
4265 _mm_setzero_si128 (),
4266 (__mmask8) __U);
4267}
4268
4269extern __inline __m256i
4270__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4271_mm256_sllv_epi16 (__m256i __A, __m256i __B)
4272{
4273 return (__m256i) __builtin_ia32_psllv16hi_mask ((__v16hi) __A,
4274 (__v16hi) __B,
4275 (__v16hi)
4276 _mm256_setzero_si256 (),
4277 (__mmask16) -1);
4278}
4279
4280extern __inline __m256i
4281__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4282_mm256_mask_sllv_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
4283 __m256i __B)
4284{
4285 return (__m256i) __builtin_ia32_psllv16hi_mask ((__v16hi) __A,
4286 (__v16hi) __B,
4287 (__v16hi) __W,
4288 (__mmask16) __U);
4289}
4290
4291extern __inline __m256i
4292__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4293_mm256_maskz_sllv_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
4294{
4295 return (__m256i) __builtin_ia32_psllv16hi_mask ((__v16hi) __A,
4296 (__v16hi) __B,
4297 (__v16hi)
4298 _mm256_setzero_si256 (),
4299 (__mmask16) __U);
4300}
4301
4302extern __inline __m128i
4303__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4304_mm_sllv_epi16 (__m128i __A, __m128i __B)
4305{
4306 return (__m128i) __builtin_ia32_psllv8hi_mask ((__v8hi) __A,
4307 (__v8hi) __B,
4308 (__v8hi)
4309 _mm_setzero_si128 (),
4310 (__mmask8) -1);
4311}
4312
4313extern __inline __m128i
4314__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4315_mm_mask_sllv_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
4316 __m128i __B)
4317{
4318 return (__m128i) __builtin_ia32_psllv8hi_mask ((__v8hi) __A,
4319 (__v8hi) __B,
4320 (__v8hi) __W,
4321 (__mmask8) __U);
4322}
4323
4324extern __inline __m128i
4325__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4326_mm_maskz_sllv_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
4327{
4328 return (__m128i) __builtin_ia32_psllv8hi_mask ((__v8hi) __A,
4329 (__v8hi) __B,
4330 (__v8hi)
4331 _mm_setzero_si128 (),
4332 (__mmask8) __U);
4333}
4334
4335extern __inline __m128i
4336__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4337_mm_mask_sll_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
4338 __m128i __B)
4339{
4340 return (__m128i) __builtin_ia32_psllw128_mask ((__v8hi) __A,
4341 (__v8hi) __B,
4342 (__v8hi) __W,
4343 (__mmask8) __U);
4344}
4345
4346extern __inline __m128i
4347__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4348_mm_maskz_sll_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
4349{
4350 return (__m128i) __builtin_ia32_psllw128_mask ((__v8hi) __A,
4351 (__v8hi) __B,
4352 (__v8hi)
4353 _mm_setzero_si128 (),
4354 (__mmask8) __U);
4355}
4356
4357extern __inline __m256i
4358__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4359_mm256_mask_sll_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
4360 __m128i __B)
4361{
4362 return (__m256i) __builtin_ia32_psllw256_mask ((__v16hi) __A,
4363 (__v8hi) __B,
4364 (__v16hi) __W,
4365 (__mmask16) __U);
4366}
4367
4368extern __inline __m256i
4369__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4370_mm256_maskz_sll_epi16 (__mmask16 __U, __m256i __A, __m128i __B)
4371{
4372 return (__m256i) __builtin_ia32_psllw256_mask ((__v16hi) __A,
4373 (__v8hi) __B,
4374 (__v16hi)
4375 _mm256_setzero_si256 (),
4376 (__mmask16) __U);
4377}
4378
4379extern __inline __m256i
4380__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4381_mm256_maskz_packus_epi32 (__mmask16 __M, __m256i __A, __m256i __B)
4382{
4383 return (__m256i) __builtin_ia32_packusdw256_mask ((__v8si) __A,
4384 (__v8si) __B,
4385 (__v16hi)
4386 _mm256_setzero_si256 (),
4387 __M);
4388}
4389
4390extern __inline __m256i
4391__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4392_mm256_mask_packus_epi32 (__m256i __W, __mmask16 __M, __m256i __A,
4393 __m256i __B)
4394{
4395 return (__m256i) __builtin_ia32_packusdw256_mask ((__v8si) __A,
4396 (__v8si) __B,
4397 (__v16hi) __W,
4398 __M);
4399}
4400
4401extern __inline __m128i
4402__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4403_mm_maskz_packus_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
4404{
4405 return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A,
4406 (__v4si) __B,
4407 (__v8hi)
4408 _mm_setzero_si128 (),
4409 __M);
4410}
4411
4412extern __inline __m128i
4413__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4414_mm_mask_packus_epi32 (__m128i __W, __mmask8 __M, __m128i __A,
4415 __m128i __B)
4416{
4417 return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A,
4418 (__v4si) __B,
4419 (__v8hi) __W, __M);
4420}
4421
4422extern __inline __m256i
4423__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4424_mm256_maskz_packs_epi32 (__mmask16 __M, __m256i __A, __m256i __B)
4425{
4426 return (__m256i) __builtin_ia32_packssdw256_mask ((__v8si) __A,
4427 (__v8si) __B,
4428 (__v16hi)
4429 _mm256_setzero_si256 (),
4430 __M);
4431}
4432
4433extern __inline __m256i
4434__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4435_mm256_mask_packs_epi32 (__m256i __W, __mmask16 __M, __m256i __A,
4436 __m256i __B)
4437{
4438 return (__m256i) __builtin_ia32_packssdw256_mask ((__v8si) __A,
4439 (__v8si) __B,
4440 (__v16hi) __W,
4441 __M);
4442}
4443
4444extern __inline __m128i
4445__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4446_mm_maskz_packs_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
4447{
4448 return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A,
4449 (__v4si) __B,
4450 (__v8hi)
4451 _mm_setzero_si128 (),
4452 __M);
4453}
4454
4455extern __inline __m128i
4456__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4457_mm_mask_packs_epi32 (__m128i __W, __mmask8 __M, __m128i __A,
4458 __m128i __B)
4459{
4460 return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A,
4461 (__v4si) __B,
4462 (__v8hi) __W, __M);
4463}
4464
4465extern __inline __mmask16
4466__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4467_mm_mask_cmpneq_epu8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4468{
4469 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
4470 (__v16qi) __Y, 4,
4471 (__mmask16) __M);
4472}
4473
4474extern __inline __mmask16
4475__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4476_mm_mask_cmplt_epu8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4477{
4478 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
4479 (__v16qi) __Y, 1,
4480 (__mmask16) __M);
4481}
4482
4483extern __inline __mmask16
4484__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4485_mm_mask_cmpge_epu8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4486{
4487 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
4488 (__v16qi) __Y, 5,
4489 (__mmask16) __M);
4490}
4491
4492extern __inline __mmask16
4493__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4494_mm_mask_cmple_epu8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4495{
4496 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
4497 (__v16qi) __Y, 2,
4498 (__mmask16) __M);
4499}
4500
4501extern __inline __mmask8
4502__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4503_mm_mask_cmpneq_epu16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4504{
4505 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
4506 (__v8hi) __Y, 4,
4507 (__mmask8) __M);
4508}
4509
4510extern __inline __mmask8
4511__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4512_mm_mask_cmplt_epu16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4513{
4514 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
4515 (__v8hi) __Y, 1,
4516 (__mmask8) __M);
4517}
4518
4519extern __inline __mmask8
4520__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4521_mm_mask_cmpge_epu16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4522{
4523 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
4524 (__v8hi) __Y, 5,
4525 (__mmask8) __M);
4526}
4527
4528extern __inline __mmask8
4529__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4530_mm_mask_cmple_epu16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4531{
4532 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
4533 (__v8hi) __Y, 2,
4534 (__mmask8) __M);
4535}
4536
4537extern __inline __mmask16
4538__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4539_mm_mask_cmpneq_epi8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4540{
4541 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
4542 (__v16qi) __Y, 4,
4543 (__mmask16) __M);
4544}
4545
4546extern __inline __mmask16
4547__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4548_mm_mask_cmplt_epi8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4549{
4550 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
4551 (__v16qi) __Y, 1,
4552 (__mmask16) __M);
4553}
4554
4555extern __inline __mmask16
4556__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4557_mm_mask_cmpge_epi8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4558{
4559 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
4560 (__v16qi) __Y, 5,
4561 (__mmask16) __M);
4562}
4563
4564extern __inline __mmask16
4565__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4566_mm_mask_cmple_epi8_mask (__mmask16 __M, __m128i __X, __m128i __Y)
4567{
4568 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
4569 (__v16qi) __Y, 2,
4570 (__mmask16) __M);
4571}
4572
4573extern __inline __mmask8
4574__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4575_mm_mask_cmpneq_epi16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4576{
4577 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
4578 (__v8hi) __Y, 4,
4579 (__mmask8) __M);
4580}
4581
4582extern __inline __mmask8
4583__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4584_mm_mask_cmplt_epi16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4585{
4586 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
4587 (__v8hi) __Y, 1,
4588 (__mmask8) __M);
4589}
4590
4591extern __inline __mmask8
4592__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4593_mm_mask_cmpge_epi16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4594{
4595 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
4596 (__v8hi) __Y, 5,
4597 (__mmask8) __M);
4598}
4599
4600extern __inline __mmask8
4601__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4602_mm_mask_cmple_epi16_mask (__mmask8 __M, __m128i __X, __m128i __Y)
4603{
4604 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
4605 (__v8hi) __Y, 2,
4606 (__mmask8) __M);
4607}
4608
4609extern __inline __mmask32
4610__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4611_mm256_mask_cmpneq_epu8_mask (__mmask32 __M, __m256i __X, __m256i __Y)
4612{
4613 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
4614 (__v32qi) __Y, 4,
4615 (__mmask32) __M);
4616}
4617
4618extern __inline __mmask32
4619__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4620_mm256_mask_cmplt_epu8_mask (__mmask32 __M, __m256i __X, __m256i __Y)
4621{
4622 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
4623 (__v32qi) __Y, 1,
4624 (__mmask32) __M);
4625}
4626
4627extern __inline __mmask32
4628__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4629_mm256_mask_cmpge_epu8_mask (__mmask32 __M, __m256i __X, __m256i __Y)
4630{
4631 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
4632 (__v32qi) __Y, 5,
4633 (__mmask32) __M);
4634}
4635
4636extern __inline __mmask32
4637__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4638_mm256_mask_cmple_epu8_mask (__mmask32 __M, __m256i __X, __m256i __Y)
4639{
4640 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
4641 (__v32qi) __Y, 2,
4642 (__mmask32) __M);
4643}
4644
4645extern __inline __mmask16
4646__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4647_mm256_mask_cmpneq_epu16_mask (__mmask16 __M, __m256i __X, __m256i __Y)
4648{
4649 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
4650 (__v16hi) __Y, 4,
4651 (__mmask16) __M);
4652}
4653
4654extern __inline __mmask16
4655__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4656_mm256_mask_cmplt_epu16_mask (__mmask16 __M, __m256i __X, __m256i __Y)
4657{
4658 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
4659 (__v16hi) __Y, 1,
4660 (__mmask16) __M);
4661}
4662
4663extern __inline __mmask16
4664__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4665_mm256_mask_cmpge_epu16_mask (__mmask16 __M, __m256i __X, __m256i __Y)
4666{
4667 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
4668 (__v16hi) __Y, 5,
4669 (__mmask16) __M);
4670}
4671
4672extern __inline __mmask16
4673__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4674_mm256_mask_cmple_epu16_mask (__mmask16 __M, __m256i __X, __m256i __Y)
4675{
4676 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
4677 (__v16hi) __Y, 2,
4678 (__mmask16) __M);
4679}
4680
4681extern __inline __mmask32
4682__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4683_mm256_mask_cmpneq_epi8_mask (__mmask32 __M, __m256i __X, __m256i __Y)
4684{
4685 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
4686 (__v32qi) __Y, 4,
4687 (__mmask32) __M);
4688}
4689
4690extern __inline __mmask32
4691__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4692_mm256_mask_cmplt_epi8_mask (__mmask32 __M, __m256i __X, __m256i __Y)
4693{
4694 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
4695 (__v32qi) __Y, 1,
4696 (__mmask32) __M);
4697}
4698
4699extern __inline __mmask32
4700__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4701_mm256_mask_cmpge_epi8_mask (__mmask32 __M, __m256i __X, __m256i __Y)
4702{
4703 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
4704 (__v32qi) __Y, 5,
4705 (__mmask32) __M);
4706}
4707
4708extern __inline __mmask32
4709__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4710_mm256_mask_cmple_epi8_mask (__mmask32 __M, __m256i __X, __m256i __Y)
4711{
4712 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
4713 (__v32qi) __Y, 2,
4714 (__mmask32) __M);
4715}
4716
4717extern __inline __mmask16
4718__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4719_mm256_mask_cmpneq_epi16_mask (__mmask16 __M, __m256i __X, __m256i __Y)
4720{
4721 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
4722 (__v16hi) __Y, 4,
4723 (__mmask16) __M);
4724}
4725
4726extern __inline __mmask16
4727__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4728_mm256_mask_cmplt_epi16_mask (__mmask16 __M, __m256i __X, __m256i __Y)
4729{
4730 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
4731 (__v16hi) __Y, 1,
4732 (__mmask16) __M);
4733}
4734
4735extern __inline __mmask16
4736__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4737_mm256_mask_cmpge_epi16_mask (__mmask16 __M, __m256i __X, __m256i __Y)
4738{
4739 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
4740 (__v16hi) __Y, 5,
4741 (__mmask16) __M);
4742}
4743
4744extern __inline __mmask16
4745__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4746_mm256_mask_cmple_epi16_mask (__mmask16 __M, __m256i __X, __m256i __Y)
4747{
4748 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
4749 (__v16hi) __Y, 2,
4750 (__mmask16) __M);
4751}
4752
4753#ifdef __DISABLE_AVX512VLBW__
4754#undef __DISABLE_AVX512VLBW__
4755#pragma GCC pop_options
4756#endif /* __DISABLE_AVX512VLBW__ */
4757
4758#endif /* _AVX512VLBWINTRIN_H_INCLUDED */
Note: See TracBrowser for help on using the repository browser.