File Coverage

/usr/lib/gcc/x86_64-linux-gnu/13/include/avx512vlbwintrin.h
Criterion Covered Total %
statement 0 4 0.0
branch n/a
condition n/a
subroutine n/a
pod n/a
total 0 4 0.0


line stmt bran cond sub pod time code
1             /* Copyright (C) 2014-2023 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             . */
23              
24             #ifndef _IMMINTRIN_H_INCLUDED
25             #error "Never use directly; include 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. */
38             typedef short __v16hi_u __attribute__ ((__vector_size__ (32), \
39             __may_alias__, __aligned__ (1)));
40             typedef short __v8hi_u __attribute__ ((__vector_size__ (16), \
41             __may_alias__, __aligned__ (1)));
42             typedef char __v32qi_u __attribute__ ((__vector_size__ (32), \
43             __may_alias__, __aligned__ (1)));
44             typedef char __v16qi_u __attribute__ ((__vector_size__ (16), \
45             __may_alias__, __aligned__ (1)));
46              
47             extern __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              
56             extern __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              
66             extern __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              
75             extern __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              
85             extern __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              
92             extern __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              
101             extern __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              
108             extern __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              
117             extern __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              
124             extern __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              
133             extern __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              
143             extern __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              
150             extern __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              
159             extern __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              
170             extern __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              
179             extern __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              
189             extern __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              
198             extern __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              
208             extern __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              
215             extern __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              
224             extern __inline __m256i
225             __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
226             _mm256_maskz_loadu_epi8 (__mmask32 __U, void const *__P)
227             {
228 0           return (__m256i) __builtin_ia32_loaddquqi256_mask ((const char *) __P,
229             (__v32qi)
230 0           _mm256_setzero_si256 (),
231             (__mmask32) __U);
232             }
233              
234             extern __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              
241             extern __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              
250             extern __inline __m128i
251             __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
252             _mm_maskz_loadu_epi8 (__mmask16 __U, void const *__P)
253             {
254 0           return (__m128i) __builtin_ia32_loaddquqi128_mask ((const char *) __P,
255             (__v16qi)
256 0           _mm_setzero_si128 (),
257             (__mmask16) __U);
258             }
259              
260             extern __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              
270             extern __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              
277             extern __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              
285             extern __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              
295             extern __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              
305             extern __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              
312             extern __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              
320             extern __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              
330             extern __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              
340             extern __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              
347             extern __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              
355             extern __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              
365             extern __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              
375             extern __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              
382             extern __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              
391             extern __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              
401             extern __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              
411             extern __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              
418             extern __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              
427             extern __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              
437             extern __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              
446             extern __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              
456             extern __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              
465             extern __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              
475             extern __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              
484             extern __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              
494             extern __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              
503             extern __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              
513             extern __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              
522             extern __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              
532             extern __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              
541             extern __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              
551             extern __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              
560             extern __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              
570             extern __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              
579             extern __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              
589             extern __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              
600             extern __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              
612             extern __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              
623             extern __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              
634             extern __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              
645             extern __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              
656             extern __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              
667             extern __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              
680             extern __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              
693             extern __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              
706             extern __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              
717             extern __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              
730             extern __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              
743             extern __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              
756             extern __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              
767             extern __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              
778             extern __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              
789             extern __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              
800             extern __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              
811             extern __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              
822             extern __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              
833             extern __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              
844             extern __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              
851             extern __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              
858             extern __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              
865             extern __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              
872             extern __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              
879             extern __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              
886             extern __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              
893             extern __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              
900             extern __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              
909             extern __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              
917             extern __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              
926             extern __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              
934             extern __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              
943             extern __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              
951             extern __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              
960             extern __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              
968             extern __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              
979             extern __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              
990             extern __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              
1001             extern __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              
1012             extern __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              
1023             extern __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              
1034             extern __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              
1045             extern __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              
1056             extern __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              
1067             extern __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              
1078             extern __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              
1089             extern __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              
1100             extern __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              
1111             extern __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              
1122             extern __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              
1133             extern __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              
1144             extern __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              
1155             extern __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              
1166             extern __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              
1177             extern __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              
1188             extern __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              
1199             extern __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              
1210             extern __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              
1221             extern __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              
1232             extern __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              
1243             extern __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              
1254             extern __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              
1265             extern __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              
1276             extern __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              
1287             extern __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              
1298             extern __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              
1309             extern __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__
1321             extern __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              
1333             extern __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              
1346             extern __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              
1358             extern __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              
1371             extern __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              
1383             extern __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              
1395             extern __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              
1408             extern __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              
1420             extern __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              
1432             extern __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              
1445             extern __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              
1454             extern __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              
1463             extern __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              
1472             extern __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              
1481             extern __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              
1491             extern __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              
1500             extern __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              
1510             extern __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              
1519             extern __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              
1529             extern __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              
1538             extern __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              
1548             extern __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              
1557             extern __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              
1567             extern __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              
1576             extern __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              
1586             extern __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              
1595             extern __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              
1605             extern __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              
1614             extern __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              
1624             extern __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              
1633             extern __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              
1643             extern __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              
1653             extern __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              
1663             extern __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              
1673             extern __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              
1684             extern __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              
1696             extern __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              
1706             extern __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              
1716             extern __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              
1727             extern __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              
1739             extern __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              
1749             extern __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              
1759             extern __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              
1769             extern __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              
1779             extern __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              
1789             extern __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              
1799             extern __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              
1809             extern __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              
1819             extern __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              
1828             extern __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)(W), (__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)(W), (__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              
2090             extern __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              
2099             extern __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              
2108             extern __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              
2117             extern __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              
2126             extern __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              
2135             extern __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              
2144             extern __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              
2153             extern __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              
2162             extern __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              
2171             extern __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              
2180             extern __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              
2189             extern __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              
2198             extern __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              
2207             extern __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              
2216             extern __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              
2225             extern __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              
2234             extern __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              
2243             extern __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              
2252             extern __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              
2261             extern __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              
2270             extern __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              
2279             extern __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              
2288             extern __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              
2297             extern __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              
2306             extern __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              
2317             extern __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              
2328             extern __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              
2339             extern __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              
2350             extern __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              
2361             extern __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              
2372             extern __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              
2383             extern __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              
2394             extern __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              
2405             extern __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              
2416             extern __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              
2427             extern __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              
2438             extern __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              
2449             extern __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              
2460             extern __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              
2471             extern __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              
2482             extern __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              
2491             extern __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              
2501             extern __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              
2510             extern __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              
2520             extern __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              
2529             extern __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              
2539             extern __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              
2548             extern __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              
2558             extern __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              
2569             extern __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              
2580             extern __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              
2591             extern __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              
2602             extern __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              
2613             extern __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              
2624             extern __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              
2635             extern __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              
2646             extern __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              
2657             extern __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              
2668             extern __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              
2679             extern __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              
2690             extern __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              
2701             extern __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              
2712             extern __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              
2723             extern __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              
2734             extern __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              
2745             extern __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              
2756             extern __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              
2767             extern __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              
2778             extern __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              
2789             extern __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              
2800             extern __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              
2811             extern __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              
2822             extern __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              
2833             extern __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              
2844             extern __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              
2855             extern __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              
2866             extern __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              
2877             extern __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              
2888             extern __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              
2899             extern __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              
2910             extern __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              
2921             extern __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              
2932             extern __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              
2943             extern __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              
2954             extern __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              
2965             extern __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              
2976             extern __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              
2987             extern __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              
2998             extern __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              
3009             extern __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              
3020             extern __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              
3031             extern __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              
3042             extern __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              
3053             extern __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              
3064             extern __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              
3075             extern __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              
3086             extern __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              
3097             extern __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              
3108             extern __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              
3119             extern __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              
3130             extern __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              
3139             extern __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              
3148             extern __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              
3157             extern __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              
3166             extern __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              
3175             extern __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              
3184             extern __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              
3193             extern __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              
3202             extern __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              
3211             extern __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              
3220             extern __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              
3228             extern __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              
3236             extern __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              
3245             extern __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              
3254             extern __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              
3263             extern __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              
3272             extern __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              
3281             extern __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              
3290             extern __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              
3299             extern __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              
3308             extern __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              
3317             extern __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              
3326             extern __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              
3335             extern __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              
3344             extern __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              
3353             extern __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              
3362             extern __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              
3370             extern __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              
3378             extern __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              
3387             extern __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              
3396             extern __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              
3405             extern __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              
3414             extern __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              
3423             extern __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              
3431             extern __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              
3440             extern __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              
3448             extern __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              
3457             extern __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              
3465             extern __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              
3474             extern __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              
3482             extern __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              
3493             extern __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              
3504             extern __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              
3515             extern __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              
3526             extern __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              
3537             extern __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              
3548             extern __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              
3559             extern __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              
3570             extern __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              
3581             extern __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              
3592             extern __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              
3603             extern __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              
3614             extern __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              
3623             extern __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              
3633             extern __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              
3642             extern __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              
3652             extern __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              
3661             extern __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              
3671             extern __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              
3680             extern __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              
3690             extern __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              
3699             extern __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              
3708             extern __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              
3717             extern __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              
3726             extern __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              
3735             extern __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              
3744             extern __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              
3753             extern __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              
3762             extern __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              
3769             extern __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              
3778             extern __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              
3785             extern __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              
3794             extern __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              
3805             extern __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              
3816             extern __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              
3827             extern __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              
3838             extern __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              
3849             extern __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              
3860             extern __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              
3871             extern __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              
3882             extern __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              
3893             extern __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              
3904             extern __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              
3915             extern __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              
3926             extern __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              
3937             extern __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              
3948             extern __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              
3959             extern __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              
3970             extern __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              
3981             extern __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              
3992             extern __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              
4003             extern __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              
4014             extern __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              
4025             extern __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              
4036             extern __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              
4047             extern __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              
4058             extern __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              
4069             extern __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              
4080             extern __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              
4091             extern __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              
4102             extern __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              
4112             extern __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              
4119             extern __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              
4127             extern __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              
4137             extern __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              
4148             extern __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              
4159             extern __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              
4170             extern __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              
4181             extern __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              
4192             extern __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              
4203             extern __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              
4214             extern __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              
4225             extern __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              
4236             extern __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              
4247             extern __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              
4258             extern __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              
4269             extern __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              
4280             extern __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              
4291             extern __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              
4302             extern __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              
4313             extern __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              
4324             extern __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              
4335             extern __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              
4346             extern __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              
4357             extern __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              
4368             extern __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              
4379             extern __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              
4390             extern __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              
4401             extern __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              
4412             extern __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              
4422             extern __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              
4433             extern __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              
4444             extern __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              
4455             extern __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              
4465             extern __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              
4474             extern __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              
4483             extern __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              
4492             extern __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              
4501             extern __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              
4510             extern __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              
4519             extern __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              
4528             extern __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              
4537             extern __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              
4546             extern __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              
4555             extern __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              
4564             extern __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              
4573             extern __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              
4582             extern __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              
4591             extern __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              
4600             extern __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              
4609             extern __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              
4618             extern __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              
4627             extern __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              
4636             extern __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              
4645             extern __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              
4654             extern __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              
4663             extern __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              
4672             extern __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              
4681             extern __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              
4690             extern __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              
4699             extern __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              
4708             extern __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              
4717             extern __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              
4726             extern __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              
4735             extern __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              
4744             extern __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 */