1 /* Copyright (C) 2014-2022 Free Software Foundation, Inc.
2 
3    This file is part of GCC.
4 
5    GCC is free software; you can redistribute it and/or modify
6    it under the terms of the GNU General Public License as published by
7    the Free Software Foundation; either version 3, or (at your option)
8    any later version.
9 
10    GCC is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13    GNU General Public License for more details.
14 
15    Under Section 7 of GPL version 3, you are granted additional
16    permissions described in the GCC Runtime Library Exception, version
17    3.1, as published by the Free Software Foundation.
18 
19    You should have received a copy of the GNU General Public License and
20    a copy of the GCC Runtime Library Exception along with this program;
21    see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
22    <http://www.gnu.org/licenses/>.  */
23 
24 #ifndef _IMMINTRIN_H_INCLUDED
25 #error "Never use <avx512vlbwintrin.h> directly; include <immintrin.h> instead."
26 #endif
27 
28 #ifndef _AVX512VLBWINTRIN_H_INCLUDED
29 #define _AVX512VLBWINTRIN_H_INCLUDED
30 
31 #if !defined(__AVX512VL__) || !defined(__AVX512BW__)
32 #pragma GCC push_options
33 #pragma GCC target("avx512vl,avx512bw")
34 #define __DISABLE_AVX512VLBW__
35 #endif /* __AVX512VLBW__ */
36 
37 /* Internal data types for implementing the intrinsics.  */
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__))
_mm256_mask_mov_epi8(__m256i __W,__mmask32 __U,__m256i __A)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__))
_mm256_maskz_mov_epi8(__mmask32 __U,__m256i __A)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__))
_mm_mask_mov_epi8(__m128i __W,__mmask16 __U,__m128i __A)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__))
_mm_maskz_mov_epi8(__mmask16 __U,__m128i __A)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__))
_mm256_storeu_epi8(void * __P,__m256i __A)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__))
_mm256_mask_storeu_epi8(void * __P,__mmask32 __U,__m256i __A)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__))
_mm_storeu_epi8(void * __P,__m128i __A)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__))
_mm_mask_storeu_epi8(void * __P,__mmask16 __U,__m128i __A)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__))
_mm256_loadu_epi16(void const * __P)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__))
_mm256_mask_loadu_epi16(__m256i __W,__mmask16 __U,void const * __P)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__))
_mm256_maskz_loadu_epi16(__mmask16 __U,void const * __P)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__))
_mm_loadu_epi16(void const * __P)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__))
_mm_mask_loadu_epi16(__m128i __W,__mmask8 __U,void const * __P)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__))
_mm_maskz_loadu_epi16(__mmask8 __U,void const * __P)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__))
_mm256_mask_mov_epi16(__m256i __W,__mmask16 __U,__m256i __A)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__))
_mm256_maskz_mov_epi16(__mmask16 __U,__m256i __A)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__))
_mm_mask_mov_epi16(__m128i __W,__mmask8 __U,__m128i __A)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__))
_mm_maskz_mov_epi16(__mmask8 __U,__m128i __A)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__))
_mm256_loadu_epi8(void const * __P)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__))
_mm256_mask_loadu_epi8(__m256i __W,__mmask32 __U,void const * __P)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__))
_mm256_maskz_loadu_epi8(__mmask32 __U,void const * __P)226 _mm256_maskz_loadu_epi8 (__mmask32 __U, void const *__P)
227 {
228   return (__m256i) __builtin_ia32_loaddquqi256_mask ((const char *) __P,
229 						     (__v32qi)
230 						     _mm256_setzero_si256 (),
231 						     (__mmask32) __U);
232 }
233 
234 extern __inline __m128i
235 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_loadu_epi8(void const * __P)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__))
_mm_mask_loadu_epi8(__m128i __W,__mmask16 __U,void const * __P)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__))
_mm_maskz_loadu_epi8(__mmask16 __U,void const * __P)252 _mm_maskz_loadu_epi8 (__mmask16 __U, void const *__P)
253 {
254   return (__m128i) __builtin_ia32_loaddquqi128_mask ((const char *) __P,
255 						     (__v16qi)
256 						     _mm_setzero_si128 (),
257 						     (__mmask16) __U);
258 }
259 
260 extern __inline __m128i
261 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm256_cvtepi16_epi8(__m256i __A)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__))
_mm256_mask_cvtepi16_storeu_epi8(void * __P,__mmask16 __M,__m256i __A)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__))
_mm256_mask_cvtepi16_epi8(__m128i __O,__mmask16 __M,__m256i __A)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__))
_mm256_maskz_cvtepi16_epi8(__mmask16 __M,__m256i __A)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__))
_mm_cvtsepi16_epi8(__m128i __A)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__))
_mm_mask_cvtsepi16_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)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__))
_mm_mask_cvtsepi16_epi8(__m128i __O,__mmask8 __M,__m128i __A)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__))
_mm_maskz_cvtsepi16_epi8(__mmask8 __M,__m128i __A)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__))
_mm256_cvtsepi16_epi8(__m256i __A)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__))
_mm256_mask_cvtsepi16_storeu_epi8(void * __P,__mmask16 __M,__m256i __A)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__))
_mm256_mask_cvtsepi16_epi8(__m128i __O,__mmask16 __M,__m256i __A)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__))
_mm256_maskz_cvtsepi16_epi8(__mmask16 __M,__m256i __A)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__))
_mm_cvtusepi16_epi8(__m128i __A)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__))
_mm_mask_cvtusepi16_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)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__))
_mm_mask_cvtusepi16_epi8(__m128i __O,__mmask8 __M,__m128i __A)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__))
_mm_maskz_cvtusepi16_epi8(__mmask8 __M,__m128i __A)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__))
_mm256_cvtusepi16_epi8(__m256i __A)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__))
_mm256_mask_cvtusepi16_storeu_epi8(void * __P,__mmask16 __M,__m256i __A)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__))
_mm256_mask_cvtusepi16_epi8(__m128i __O,__mmask16 __M,__m256i __A)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__))
_mm256_maskz_cvtusepi16_epi8(__mmask16 __M,__m256i __A)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__))
_mm256_mask_broadcastb_epi8(__m256i __O,__mmask32 __M,__m128i __A)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__))
_mm256_maskz_broadcastb_epi8(__mmask32 __M,__m128i __A)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__))
_mm256_mask_set1_epi8(__m256i __O,__mmask32 __M,char __A)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__))
_mm256_maskz_set1_epi8(__mmask32 __M,char __A)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__))
_mm_mask_broadcastb_epi8(__m128i __O,__mmask16 __M,__m128i __A)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__))
_mm_maskz_broadcastb_epi8(__mmask16 __M,__m128i __A)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__))
_mm_mask_set1_epi8(__m128i __O,__mmask16 __M,char __A)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__))
_mm_maskz_set1_epi8(__mmask16 __M,char __A)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__))
_mm256_mask_broadcastw_epi16(__m256i __O,__mmask16 __M,__m128i __A)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__))
_mm256_maskz_broadcastw_epi16(__mmask16 __M,__m128i __A)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__))
_mm256_mask_set1_epi16(__m256i __O,__mmask16 __M,short __A)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__))
_mm256_maskz_set1_epi16(__mmask16 __M,short __A)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__))
_mm_mask_broadcastw_epi16(__m128i __O,__mmask8 __M,__m128i __A)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__))
_mm_maskz_broadcastw_epi16(__mmask8 __M,__m128i __A)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__))
_mm_mask_set1_epi16(__m128i __O,__mmask8 __M,short __A)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__))
_mm_maskz_set1_epi16(__mmask8 __M,short __A)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__))
_mm256_permutexvar_epi16(__m256i __A,__m256i __B)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__))
_mm256_maskz_permutexvar_epi16(__mmask16 __M,__m256i __A,__m256i __B)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__))
_mm256_mask_permutexvar_epi16(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)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__))
_mm_permutexvar_epi16(__m128i __A,__m128i __B)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__))
_mm_maskz_permutexvar_epi16(__mmask8 __M,__m128i __A,__m128i __B)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__))
_mm_mask_permutexvar_epi16(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)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__))
_mm256_permutex2var_epi16(__m256i __A,__m256i __I,__m256i __B)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__))
_mm256_mask_permutex2var_epi16(__m256i __A,__mmask16 __U,__m256i __I,__m256i __B)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__))
_mm256_mask2_permutex2var_epi16(__m256i __A,__m256i __I,__mmask16 __U,__m256i __B)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__))
_mm256_maskz_permutex2var_epi16(__mmask16 __U,__m256i __A,__m256i __I,__m256i __B)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__))
_mm_permutex2var_epi16(__m128i __A,__m128i __I,__m128i __B)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__))
_mm_mask_permutex2var_epi16(__m128i __A,__mmask8 __U,__m128i __I,__m128i __B)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__))
_mm_mask2_permutex2var_epi16(__m128i __A,__m128i __I,__mmask8 __U,__m128i __B)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__))
_mm_maskz_permutex2var_epi16(__mmask8 __U,__m128i __A,__m128i __I,__m128i __B)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__))
_mm256_mask_maddubs_epi16(__m256i __W,__mmask16 __U,__m256i __X,__m256i __Y)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__))
_mm256_maskz_maddubs_epi16(__mmask16 __U,__m256i __X,__m256i __Y)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__))
_mm_mask_maddubs_epi16(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)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__))
_mm_maskz_maddubs_epi16(__mmask8 __U,__m128i __X,__m128i __Y)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__))
_mm256_mask_madd_epi16(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)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__))
_mm256_maskz_madd_epi16(__mmask8 __U,__m256i __A,__m256i __B)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__))
_mm_mask_madd_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_maskz_madd_epi16(__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_movepi8_mask(__m128i __A)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__))
_mm256_movepi8_mask(__m256i __A)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__))
_mm_movepi16_mask(__m128i __A)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__))
_mm256_movepi16_mask(__m256i __A)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__))
_mm_movm_epi8(__mmask16 __A)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__))
_mm256_movm_epi8(__mmask32 __A)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__))
_mm_movm_epi16(__mmask8 __A)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__))
_mm256_movm_epi16(__mmask16 __A)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__))
_mm_test_epi8_mask(__m128i __A,__m128i __B)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__))
_mm_mask_test_epi8_mask(__mmask16 __U,__m128i __A,__m128i __B)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__))
_mm256_test_epi8_mask(__m256i __A,__m256i __B)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__))
_mm256_mask_test_epi8_mask(__mmask32 __U,__m256i __A,__m256i __B)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__))
_mm_test_epi16_mask(__m128i __A,__m128i __B)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__))
_mm_mask_test_epi16_mask(__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm256_test_epi16_mask(__m256i __A,__m256i __B)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__))
_mm256_mask_test_epi16_mask(__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm256_maskz_min_epu16(__mmask16 __M,__m256i __A,__m256i __B)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__))
_mm256_mask_min_epu16(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)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__))
_mm_maskz_min_epu16(__mmask8 __M,__m128i __A,__m128i __B)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__))
_mm_mask_min_epu16(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)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__))
_mm256_maskz_min_epi16(__mmask16 __M,__m256i __A,__m256i __B)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__))
_mm256_mask_min_epi16(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)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__))
_mm256_maskz_max_epu8(__mmask32 __M,__m256i __A,__m256i __B)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__))
_mm256_mask_max_epu8(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)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__))
_mm_maskz_max_epu8(__mmask16 __M,__m128i __A,__m128i __B)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__))
_mm_mask_max_epu8(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)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__))
_mm256_maskz_max_epi8(__mmask32 __M,__m256i __A,__m256i __B)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__))
_mm256_mask_max_epi8(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)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__))
_mm_maskz_max_epi8(__mmask16 __M,__m128i __A,__m128i __B)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__))
_mm_mask_max_epi8(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)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__))
_mm256_maskz_min_epu8(__mmask32 __M,__m256i __A,__m256i __B)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__))
_mm256_mask_min_epu8(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)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__))
_mm_maskz_min_epu8(__mmask16 __M,__m128i __A,__m128i __B)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__))
_mm_mask_min_epu8(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)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__))
_mm256_maskz_min_epi8(__mmask32 __M,__m256i __A,__m256i __B)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__))
_mm256_mask_min_epi8(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)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__))
_mm_maskz_min_epi8(__mmask16 __M,__m128i __A,__m128i __B)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__))
_mm_mask_min_epi8(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)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__))
_mm256_maskz_max_epi16(__mmask16 __M,__m256i __A,__m256i __B)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__))
_mm256_mask_max_epi16(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)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__))
_mm_maskz_max_epi16(__mmask8 __M,__m128i __A,__m128i __B)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__))
_mm_mask_max_epi16(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)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__))
_mm256_maskz_max_epu16(__mmask16 __M,__m256i __A,__m256i __B)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__))
_mm256_mask_max_epu16(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)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__))
_mm_maskz_max_epu16(__mmask8 __M,__m128i __A,__m128i __B)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__))
_mm_mask_max_epu16(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)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__))
_mm_maskz_min_epi16(__mmask8 __M,__m128i __A,__m128i __B)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__))
_mm_mask_min_epi16(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)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__))
_mm256_mask_alignr_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B,const int __N)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__))
_mm256_maskz_alignr_epi8(__mmask32 __U,__m256i __A,__m256i __B,const int __N)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__))
_mm_mask_alignr_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B,const int __N)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__))
_mm_maskz_alignr_epi8(__mmask16 __U,__m128i __A,__m128i __B,const int __N)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__))
_mm256_dbsad_epu8(__m256i __A,__m256i __B,const int __imm)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__))
_mm256_mask_dbsad_epu8(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B,const int __imm)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__))
_mm256_maskz_dbsad_epu8(__mmask16 __U,__m256i __A,__m256i __B,const int __imm)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__))
_mm_dbsad_epu8(__m128i __A,__m128i __B,const int __imm)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__))
_mm_mask_dbsad_epu8(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B,const int __imm)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__))
_mm_maskz_dbsad_epu8(__mmask8 __U,__m128i __A,__m128i __B,const int __imm)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__))
_mm_mask_blend_epi16(__mmask8 __U,__m128i __A,__m128i __W)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__))
_mm_mask_blend_epi8(__mmask16 __U,__m128i __A,__m128i __W)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__))
_mm256_mask_blend_epi16(__mmask16 __U,__m256i __A,__m256i __W)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__))
_mm256_mask_blend_epi8(__mmask32 __U,__m256i __A,__m256i __W)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__))
_mm_mask_cmp_epi16_mask(__mmask8 __U,__m128i __X,__m128i __Y,const int __P)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__))
_mm_cmp_epi16_mask(__m128i __X,__m128i __Y,const int __P)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__))
_mm256_mask_cmp_epi16_mask(__mmask16 __U,__m256i __X,__m256i __Y,const int __P)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__))
_mm256_cmp_epi16_mask(__m256i __X,__m256i __Y,const int __P)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__))
_mm_mask_cmp_epi8_mask(__mmask16 __U,__m128i __X,__m128i __Y,const int __P)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__))
_mm_cmp_epi8_mask(__m128i __X,__m128i __Y,const int __P)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__))
_mm256_mask_cmp_epi8_mask(__mmask32 __U,__m256i __X,__m256i __Y,const int __P)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__))
_mm256_cmp_epi8_mask(__m256i __X,__m256i __Y,const int __P)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__))
_mm_mask_cmp_epu16_mask(__mmask8 __U,__m128i __X,__m128i __Y,const int __P)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__))
_mm_cmp_epu16_mask(__m128i __X,__m128i __Y,const int __P)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__))
_mm256_mask_cmp_epu16_mask(__mmask16 __U,__m256i __X,__m256i __Y,const int __P)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__))
_mm256_cmp_epu16_mask(__m256i __X,__m256i __Y,const int __P)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__))
_mm_mask_cmp_epu8_mask(__mmask16 __U,__m128i __X,__m128i __Y,const int __P)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__))
_mm_cmp_epu8_mask(__m128i __X,__m128i __Y,const int __P)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__))
_mm256_mask_cmp_epu8_mask(__mmask32 __U,__m256i __X,__m256i __Y,const int __P)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__))
_mm256_cmp_epu8_mask(__m256i __X,__m256i __Y,const int __P)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__))
_mm256_mask_srli_epi16(__m256i __W,__mmask16 __U,__m256i __A,const int __imm)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__))
_mm256_maskz_srli_epi16(__mmask16 __U,__m256i __A,const int __imm)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__))
_mm_mask_srli_epi16(__m128i __W,__mmask8 __U,__m128i __A,const int __imm)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__))
_mm_maskz_srli_epi16(__mmask8 __U,__m128i __A,const int __imm)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__))
_mm256_mask_shufflehi_epi16(__m256i __W,__mmask16 __U,__m256i __A,const int __imm)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__))
_mm256_maskz_shufflehi_epi16(__mmask16 __U,__m256i __A,const int __imm)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__))
_mm_mask_shufflehi_epi16(__m128i __W,__mmask8 __U,__m128i __A,const int __imm)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__))
_mm_maskz_shufflehi_epi16(__mmask8 __U,__m128i __A,const int __imm)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__))
_mm256_mask_shufflelo_epi16(__m256i __W,__mmask16 __U,__m256i __A,const int __imm)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__))
_mm256_maskz_shufflelo_epi16(__mmask16 __U,__m256i __A,const int __imm)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__))
_mm_mask_shufflelo_epi16(__m128i __W,__mmask8 __U,__m128i __A,const int __imm)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__))
_mm_maskz_shufflelo_epi16(__mmask8 __U,__m128i __A,const int __imm)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__))
_mm256_mask_srai_epi16(__m256i __W,__mmask16 __U,__m256i __A,const int __imm)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__))
_mm256_maskz_srai_epi16(__mmask16 __U,__m256i __A,const int __imm)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__))
_mm_mask_srai_epi16(__m128i __W,__mmask8 __U,__m128i __A,const int __imm)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__))
_mm_maskz_srai_epi16(__mmask8 __U,__m128i __A,const int __imm)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__))
_mm256_mask_slli_epi16(__m256i __W,__mmask16 __U,__m256i __A,int __B)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__))
_mm256_maskz_slli_epi16(__mmask16 __U,__m256i __A,int __B)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__))
_mm_mask_slli_epi16(__m128i __W,__mmask8 __U,__m128i __A,int __B)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__))
_mm_maskz_slli_epi16(__mmask8 __U,__m128i __A,int __B)1830 _mm_maskz_slli_epi16 (__mmask8 __U, __m128i __A, int __B)
1831 {
1832   return (__m128i) __builtin_ia32_psllwi128_mask ((__v8hi) __A, __B,
1833 						  (__v8hi)
1834 						  _mm_setzero_si128 (),
1835 						  (__mmask8) __U);
1836 }
1837 
1838 #else
1839 #define _mm256_mask_alignr_epi8(W, U, X, Y, N)					    \
1840   ((__m256i) __builtin_ia32_palignr256_mask ((__v4di)(__m256i)(X),		    \
1841 					    (__v4di)(__m256i)(Y), (int)((N) * 8),   \
1842 					    (__v4di)(__m256i)(X), (__mmask32)(U)))
1843 
1844 #define _mm256_mask_srli_epi16(W, U, A, B)                              \
1845   ((__m256i) __builtin_ia32_psrlwi256_mask ((__v16hi)(__m256i)(A),      \
1846     (int)(B), (__v16hi)(__m256i)(W), (__mmask16)(U)))
1847 
1848 #define _mm256_maskz_srli_epi16(U, A, B)                                \
1849   ((__m256i) __builtin_ia32_psrlwi256_mask ((__v16hi)(__m256i)(A),      \
1850     (int)(B), (__v16hi)_mm256_setzero_si256 (), (__mmask16)(U)))
1851 
1852 #define _mm_mask_srli_epi16(W, U, A, B)                                 \
1853   ((__m128i) __builtin_ia32_psrlwi128_mask ((__v8hi)(__m128i)(A),       \
1854     (int)(B), (__v8hi)(__m128i)(W), (__mmask8)(U)))
1855 
1856 #define _mm_maskz_srli_epi16(U, A, B)                                   \
1857   ((__m128i) __builtin_ia32_psrlwi128_mask ((__v8hi)(__m128i)(A),       \
1858     (int)(B), (__v8hi)_mm_setzero_si128(), (__mmask8)(U)))
1859 
1860 #define _mm256_mask_srai_epi16(W, U, A, B)                              \
1861   ((__m256i) __builtin_ia32_psrawi256_mask ((__v16hi)(__m256i)(A),      \
1862     (int)(B), (__v16hi)(__m256i)(W), (__mmask16)(U)))
1863 
1864 #define _mm256_maskz_srai_epi16(U, A, B)                                \
1865   ((__m256i) __builtin_ia32_psrawi256_mask ((__v16hi)(__m256i)(A),      \
1866     (int)(B), (__v16hi)_mm256_setzero_si256 (), (__mmask16)(U)))
1867 
1868 #define _mm_mask_srai_epi16(W, U, A, B)                                 \
1869   ((__m128i) __builtin_ia32_psrawi128_mask ((__v8hi)(__m128i)(A),       \
1870     (int)(B), (__v8hi)(__m128i)(W), (__mmask8)(U)))
1871 
1872 #define _mm_maskz_srai_epi16(U, A, B)                                   \
1873   ((__m128i) __builtin_ia32_psrawi128_mask ((__v8hi)(__m128i)(A),       \
1874     (int)(B), (__v8hi)_mm_setzero_si128(), (__mmask8)(U)))
1875 
1876 #define _mm256_mask_shufflehi_epi16(W, U, A, B)                                     \
1877   ((__m256i) __builtin_ia32_pshufhw256_mask ((__v16hi)(__m256i)(A), (int)(B),       \
1878                                              (__v16hi)(__m256i)(W),                 \
1879                                              (__mmask16)(U)))
1880 
1881 #define _mm256_maskz_shufflehi_epi16(U, A, B)                                       \
1882   ((__m256i) __builtin_ia32_pshufhw256_mask ((__v16hi)(__m256i)(A), (int)(B),       \
1883                                              (__v16hi)(__m256i)_mm256_setzero_si256 (), \
1884                                              (__mmask16)(U)))
1885 
1886 #define _mm_mask_shufflehi_epi16(W, U, A, B)                                        \
1887   ((__m128i) __builtin_ia32_pshufhw128_mask ((__v8hi)(__m128i)(A), (int)(B),        \
1888                                              (__v8hi)(__m128i)(W),                  \
1889                                              (__mmask8)(U)))
1890 
1891 #define _mm_maskz_shufflehi_epi16(U, A, B)                                          \
1892   ((__m128i) __builtin_ia32_pshufhw128_mask ((__v8hi)(__m128i)(A), (int)(B),        \
1893 					     (__v8hi)(__m128i)_mm_setzero_si128 (), \
1894                                              (__mmask8)(U)))
1895 
1896 #define _mm256_mask_shufflelo_epi16(W, U, A, B)                                     \
1897   ((__m256i) __builtin_ia32_pshuflw256_mask ((__v16hi)(__m256i)(A), (int)(B),       \
1898                                              (__v16hi)(__m256i)(W),                 \
1899                                              (__mmask16)(U)))
1900 
1901 #define _mm256_maskz_shufflelo_epi16(U, A, B)                                       \
1902   ((__m256i) __builtin_ia32_pshuflw256_mask ((__v16hi)(__m256i)(A), (int)(B),       \
1903                                              (__v16hi)(__m256i)_mm256_setzero_si256 (), \
1904                                              (__mmask16)(U)))
1905 
1906 #define _mm_mask_shufflelo_epi16(W, U, A, B)                                        \
1907   ((__m128i) __builtin_ia32_pshuflw128_mask ((__v8hi)(__m128i)(A), (int)(B),        \
1908                                              (__v8hi)(__m128i)(W),                  \
1909                                              (__mmask8)(U)))
1910 
1911 #define _mm_maskz_shufflelo_epi16(U, A, B)                                          \
1912   ((__m128i) __builtin_ia32_pshuflw128_mask ((__v8hi)(__m128i)(A), (int)(B),        \
1913 					     (__v8hi)(__m128i)_mm_setzero_si128 (), \
1914                                              (__mmask8)(U)))
1915 
1916 #define _mm256_maskz_alignr_epi8(U, X, Y, N)					    \
1917   ((__m256i) __builtin_ia32_palignr256_mask ((__v4di)(__m256i)(X),		    \
1918 					    (__v4di)(__m256i)(Y), (int)((N) * 8),   \
1919 					    (__v4di)(__m256i)_mm256_setzero_si256 (),   \
1920 					    (__mmask32)(U)))
1921 
1922 #define _mm_mask_alignr_epi8(W, U, X, Y, N)					    \
1923   ((__m128i) __builtin_ia32_palignr128_mask ((__v2di)(__m128i)(X),		    \
1924 					    (__v2di)(__m128i)(Y), (int)((N) * 8),   \
1925 					    (__v2di)(__m128i)(X), (__mmask16)(U)))
1926 
1927 #define _mm_maskz_alignr_epi8(U, X, Y, N)					    \
1928   ((__m128i) __builtin_ia32_palignr128_mask ((__v2di)(__m128i)(X),		    \
1929 					    (__v2di)(__m128i)(Y), (int)((N) * 8),   \
1930 					    (__v2di)(__m128i)_mm_setzero_si128 (),  \
1931 					    (__mmask16)(U)))
1932 
1933 #define _mm_mask_slli_epi16(W, U, X, C)					  \
1934   ((__m128i)__builtin_ia32_psllwi128_mask ((__v8hi)(__m128i)(X), (int)(C),\
1935     (__v8hi)(__m128i)(W),\
1936     (__mmask8)(U)))
1937 
1938 #define _mm_maskz_slli_epi16(U, X, C)					  \
1939   ((__m128i)__builtin_ia32_psllwi128_mask ((__v8hi)(__m128i)(X), (int)(C),\
1940     (__v8hi)(__m128i)_mm_setzero_si128 (),\
1941     (__mmask8)(U)))
1942 
1943 #define _mm256_dbsad_epu8(X, Y, C)                                                  \
1944   ((__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi)(__m256i) (X),               \
1945                                               (__v32qi)(__m256i) (Y), (int) (C),    \
1946                                               (__v16hi)(__m256i)_mm256_setzero_si256(),\
1947                                               (__mmask16)-1))
1948 
1949 #define _mm256_mask_slli_epi16(W, U, X, C)                                 \
1950   ((__m256i)__builtin_ia32_psllwi256_mask ((__v16hi)(__m256i)(X), (int)(C),\
1951     (__v16hi)(__m256i)(W),\
1952     (__mmask16)(U)))
1953 
1954 #define _mm256_maskz_slli_epi16(U, X, C)                                   \
1955   ((__m256i)__builtin_ia32_psllwi256_mask ((__v16hi)(__m256i)(X), (int)(C),\
1956     (__v16hi)(__m256i)_mm256_setzero_si256 (),\
1957     (__mmask16)(U)))
1958 
1959 #define _mm256_mask_dbsad_epu8(W, U, X, Y, C)                                       \
1960   ((__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi)(__m256i) (X),               \
1961                                               (__v32qi)(__m256i) (Y), (int) (C),    \
1962                                               (__v16hi)(__m256i)(W),                \
1963                                               (__mmask16)(U)))
1964 
1965 #define _mm256_maskz_dbsad_epu8(U, X, Y, C)                                         \
1966   ((__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi)(__m256i) (X),               \
1967                                               (__v32qi)(__m256i) (Y), (int) (C),    \
1968                                               (__v16hi)(__m256i)_mm256_setzero_si256(),\
1969                                               (__mmask16)(U)))
1970 
1971 #define _mm_dbsad_epu8(X, Y, C)                                                     \
1972   ((__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi)(__m128i) (X),               \
1973                                               (__v16qi)(__m128i) (Y), (int) (C),    \
1974                                               (__v8hi)(__m128i)_mm_setzero_si128(), \
1975                                               (__mmask8)-1))
1976 
1977 #define _mm_mask_dbsad_epu8(W, U, X, Y, C)                                          \
1978   ((__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi)(__m128i) (X),               \
1979                                               (__v16qi)(__m128i) (Y), (int) (C),    \
1980                                               (__v8hi)(__m128i)(W),                 \
1981                                               (__mmask8)(U)))
1982 
1983 #define _mm_maskz_dbsad_epu8(U, X, Y, C)                                            \
1984   ((__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi)(__m128i) (X),               \
1985                                               (__v16qi)(__m128i) (Y), (int) (C),    \
1986                                               (__v8hi)(__m128i)_mm_setzero_si128(), \
1987                                               (__mmask8)(U)))
1988 
1989 #define _mm_mask_blend_epi16(__U, __A, __W)			      \
1990   ((__m128i) __builtin_ia32_blendmw_128_mask ((__v8hi) (__A),	      \
1991 						    (__v8hi) (__W),   \
1992 						    (__mmask8) (__U)))
1993 
1994 #define _mm_mask_blend_epi8(__U, __A, __W)			      \
1995   ((__m128i) __builtin_ia32_blendmb_128_mask ((__v16qi) (__A),	      \
1996 						    (__v16qi) (__W),  \
1997 						    (__mmask16) (__U)))
1998 
1999 #define _mm256_mask_blend_epi16(__U, __A, __W)			      \
2000   ((__m256i) __builtin_ia32_blendmw_256_mask ((__v16hi) (__A),	      \
2001 						    (__v16hi) (__W),  \
2002 						    (__mmask16) (__U)))
2003 
2004 #define _mm256_mask_blend_epi8(__U, __A, __W)			      \
2005   ((__m256i) __builtin_ia32_blendmb_256_mask ((__v32qi) (__A),	      \
2006 						    (__v32qi) (__W),  \
2007 						    (__mmask32) (__U)))
2008 
2009 #define _mm_cmp_epi16_mask(X, Y, P)				\
2010   ((__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi)(__m128i)(X),	\
2011 					    (__v8hi)(__m128i)(Y), (int)(P),\
2012 					    (__mmask8)(-1)))
2013 
2014 #define _mm_cmp_epi8_mask(X, Y, P)				\
2015   ((__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi)(__m128i)(X),	\
2016 					    (__v16qi)(__m128i)(Y), (int)(P),\
2017 					    (__mmask16)(-1)))
2018 
2019 #define _mm256_cmp_epi16_mask(X, Y, P)				\
2020   ((__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi)(__m256i)(X),	\
2021 					    (__v16hi)(__m256i)(Y), (int)(P),\
2022 					    (__mmask16)(-1)))
2023 
2024 #define _mm256_cmp_epi8_mask(X, Y, P)				\
2025   ((__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi)(__m256i)(X),	\
2026 					    (__v32qi)(__m256i)(Y), (int)(P),\
2027 					    (__mmask32)(-1)))
2028 
2029 #define _mm_cmp_epu16_mask(X, Y, P)				\
2030   ((__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi)(__m128i)(X),	\
2031 					    (__v8hi)(__m128i)(Y), (int)(P),\
2032 					    (__mmask8)(-1)))
2033 
2034 #define _mm_cmp_epu8_mask(X, Y, P)				\
2035   ((__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi)(__m128i)(X),	\
2036 					    (__v16qi)(__m128i)(Y), (int)(P),\
2037 					    (__mmask16)(-1)))
2038 
2039 #define _mm256_cmp_epu16_mask(X, Y, P)				\
2040   ((__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi)(__m256i)(X),	\
2041 					    (__v16hi)(__m256i)(Y), (int)(P),\
2042 					    (__mmask16)(-1)))
2043 
2044 #define _mm256_cmp_epu8_mask(X, Y, P)				\
2045   ((__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi)(__m256i)(X),	\
2046 					    (__v32qi)(__m256i)(Y), (int)(P),\
2047 					    (__mmask32)-1))
2048 
2049 #define _mm_mask_cmp_epi16_mask(M, X, Y, P)				\
2050   ((__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi)(__m128i)(X),	\
2051 					    (__v8hi)(__m128i)(Y), (int)(P),\
2052 					    (__mmask8)(M)))
2053 
2054 #define _mm_mask_cmp_epi8_mask(M, X, Y, P)				\
2055   ((__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi)(__m128i)(X),	\
2056 					    (__v16qi)(__m128i)(Y), (int)(P),\
2057 					    (__mmask16)(M)))
2058 
2059 #define _mm256_mask_cmp_epi16_mask(M, X, Y, P)				\
2060   ((__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi)(__m256i)(X),	\
2061 					    (__v16hi)(__m256i)(Y), (int)(P),\
2062 					    (__mmask16)(M)))
2063 
2064 #define _mm256_mask_cmp_epi8_mask(M, X, Y, P)				\
2065   ((__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi)(__m256i)(X),	\
2066 					    (__v32qi)(__m256i)(Y), (int)(P),\
2067 					    (__mmask32)(M)))
2068 
2069 #define _mm_mask_cmp_epu16_mask(M, X, Y, P)				\
2070   ((__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi)(__m128i)(X),	\
2071 					    (__v8hi)(__m128i)(Y), (int)(P),\
2072 					    (__mmask8)(M)))
2073 
2074 #define _mm_mask_cmp_epu8_mask(M, X, Y, P)				\
2075   ((__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi)(__m128i)(X),	\
2076 					    (__v16qi)(__m128i)(Y), (int)(P),\
2077 					    (__mmask16)(M)))
2078 
2079 #define _mm256_mask_cmp_epu16_mask(M, X, Y, P)				\
2080   ((__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi)(__m256i)(X),	\
2081 					    (__v16hi)(__m256i)(Y), (int)(P),\
2082 					    (__mmask16)(M)))
2083 
2084 #define _mm256_mask_cmp_epu8_mask(M, X, Y, P)				\
2085   ((__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi)(__m256i)(X),	\
2086 					    (__v32qi)(__m256i)(Y), (int)(P),\
2087 					    (__mmask32)(M)))
2088 #endif
2089 
2090 extern __inline __mmask32
2091   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm256_cmpneq_epi8_mask(__m256i __X,__m256i __Y)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__))
_mm256_cmplt_epi8_mask(__m256i __X,__m256i __Y)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__))
_mm256_cmpge_epi8_mask(__m256i __X,__m256i __Y)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__))
_mm256_cmple_epi8_mask(__m256i __X,__m256i __Y)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__))
_mm256_cmpneq_epi16_mask(__m256i __X,__m256i __Y)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__))
_mm256_cmplt_epi16_mask(__m256i __X,__m256i __Y)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__))
_mm256_cmpge_epi16_mask(__m256i __X,__m256i __Y)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__))
_mm256_cmple_epi16_mask(__m256i __X,__m256i __Y)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__))
_mm_cmpneq_epu8_mask(__m128i __X,__m128i __Y)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__))
_mm_cmplt_epu8_mask(__m128i __X,__m128i __Y)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__))
_mm_cmpge_epu8_mask(__m128i __X,__m128i __Y)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__))
_mm_cmple_epu8_mask(__m128i __X,__m128i __Y)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__))
_mm_cmpneq_epu16_mask(__m128i __X,__m128i __Y)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__))
_mm_cmplt_epu16_mask(__m128i __X,__m128i __Y)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__))
_mm_cmpge_epu16_mask(__m128i __X,__m128i __Y)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__))
_mm_cmple_epu16_mask(__m128i __X,__m128i __Y)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__))
_mm_cmpneq_epi8_mask(__m128i __X,__m128i __Y)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__))
_mm_cmplt_epi8_mask(__m128i __X,__m128i __Y)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__))
_mm_cmpge_epi8_mask(__m128i __X,__m128i __Y)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__))
_mm_cmple_epi8_mask(__m128i __X,__m128i __Y)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__))
_mm_cmpneq_epi16_mask(__m128i __X,__m128i __Y)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__))
_mm_cmplt_epi16_mask(__m128i __X,__m128i __Y)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__))
_mm_cmpge_epi16_mask(__m128i __X,__m128i __Y)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__))
_mm_cmple_epi16_mask(__m128i __X,__m128i __Y)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__))
_mm256_mask_mulhrs_epi16(__m256i __W,__mmask16 __U,__m256i __X,__m256i __Y)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__))
_mm256_maskz_mulhrs_epi16(__mmask16 __U,__m256i __X,__m256i __Y)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__))
_mm256_mask_mulhi_epu16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm256_maskz_mulhi_epu16(__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm256_mask_mulhi_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm256_maskz_mulhi_epi16(__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm_mask_mulhi_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_maskz_mulhi_epi16(__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_mask_mulhi_epu16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_maskz_mulhi_epu16(__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_mask_mulhrs_epi16(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)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__))
_mm_maskz_mulhrs_epi16(__mmask8 __U,__m128i __X,__m128i __Y)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__))
_mm256_mask_mullo_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm256_maskz_mullo_epi16(__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm_mask_mullo_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_maskz_mullo_epi16(__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm256_mask_cvtepi8_epi16(__m256i __W,__mmask16 __U,__m128i __A)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__))
_mm256_maskz_cvtepi8_epi16(__mmask16 __U,__m128i __A)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__))
_mm_mask_cvtepi8_epi16(__m128i __W,__mmask8 __U,__m128i __A)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__))
_mm_maskz_cvtepi8_epi16(__mmask8 __U,__m128i __A)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__))
_mm256_mask_cvtepu8_epi16(__m256i __W,__mmask16 __U,__m128i __A)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__))
_mm256_maskz_cvtepu8_epi16(__mmask16 __U,__m128i __A)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__))
_mm_mask_cvtepu8_epi16(__m128i __W,__mmask8 __U,__m128i __A)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__))
_mm_maskz_cvtepu8_epi16(__mmask8 __U,__m128i __A)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__))
_mm256_mask_avg_epu8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)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__))
_mm256_maskz_avg_epu8(__mmask32 __U,__m256i __A,__m256i __B)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__))
_mm_mask_avg_epu8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)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__))
_mm_maskz_avg_epu8(__mmask16 __U,__m128i __A,__m128i __B)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__))
_mm256_mask_avg_epu16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm256_maskz_avg_epu16(__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm_mask_avg_epu16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_maskz_avg_epu16(__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm256_mask_add_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)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__))
_mm256_maskz_add_epi8(__mmask32 __U,__m256i __A,__m256i __B)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__))
_mm256_mask_add_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm256_maskz_add_epi16(__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm256_mask_adds_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)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__))
_mm256_maskz_adds_epi8(__mmask32 __U,__m256i __A,__m256i __B)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__))
_mm256_mask_adds_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm256_maskz_adds_epi16(__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm256_mask_adds_epu8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)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__))
_mm256_maskz_adds_epu8(__mmask32 __U,__m256i __A,__m256i __B)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__))
_mm256_mask_adds_epu16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm256_maskz_adds_epu16(__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm256_mask_sub_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)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__))
_mm256_maskz_sub_epi8(__mmask32 __U,__m256i __A,__m256i __B)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__))
_mm256_mask_sub_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm256_maskz_sub_epi16(__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm256_mask_subs_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)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__))
_mm256_maskz_subs_epi8(__mmask32 __U,__m256i __A,__m256i __B)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__))
_mm256_mask_subs_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm256_maskz_subs_epi16(__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm256_mask_subs_epu8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)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__))
_mm256_maskz_subs_epu8(__mmask32 __U,__m256i __A,__m256i __B)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__))
_mm256_mask_subs_epu16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm256_maskz_subs_epu16(__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm_mask_add_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)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__))
_mm_maskz_add_epi8(__mmask16 __U,__m128i __A,__m128i __B)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__))
_mm_mask_add_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_maskz_add_epi16(__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm256_mask_unpackhi_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)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__))
_mm256_maskz_unpackhi_epi8(__mmask32 __U,__m256i __A,__m256i __B)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__))
_mm_mask_unpackhi_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)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__))
_mm_maskz_unpackhi_epi8(__mmask16 __U,__m128i __A,__m128i __B)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__))
_mm256_mask_unpackhi_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm256_maskz_unpackhi_epi16(__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm_mask_unpackhi_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_maskz_unpackhi_epi16(__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm256_mask_unpacklo_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)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__))
_mm256_maskz_unpacklo_epi8(__mmask32 __U,__m256i __A,__m256i __B)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__))
_mm_mask_unpacklo_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)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__))
_mm_maskz_unpacklo_epi8(__mmask16 __U,__m128i __A,__m128i __B)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__))
_mm256_mask_unpacklo_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm256_maskz_unpacklo_epi16(__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm_mask_unpacklo_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_maskz_unpacklo_epi16(__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_cmpeq_epi8_mask(__m128i __A,__m128i __B)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__))
_mm_cmpeq_epu8_mask(__m128i __A,__m128i __B)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__))
_mm_mask_cmpeq_epu8_mask(__mmask16 __U,__m128i __A,__m128i __B)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__))
_mm_mask_cmpeq_epi8_mask(__mmask16 __U,__m128i __A,__m128i __B)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__))
_mm256_cmpeq_epu8_mask(__m256i __A,__m256i __B)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__))
_mm256_cmpeq_epi8_mask(__m256i __A,__m256i __B)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__))
_mm256_mask_cmpeq_epu8_mask(__mmask32 __U,__m256i __A,__m256i __B)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__))
_mm256_mask_cmpeq_epi8_mask(__mmask32 __U,__m256i __A,__m256i __B)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__))
_mm_cmpeq_epu16_mask(__m128i __A,__m128i __B)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__))
_mm_cmpeq_epi16_mask(__m128i __A,__m128i __B)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__))
_mm_mask_cmpeq_epu16_mask(__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_mask_cmpeq_epi16_mask(__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm256_cmpeq_epu16_mask(__m256i __A,__m256i __B)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__))
_mm256_cmpeq_epi16_mask(__m256i __A,__m256i __B)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__))
_mm256_mask_cmpeq_epu16_mask(__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm256_mask_cmpeq_epi16_mask(__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm_cmpgt_epu8_mask(__m128i __A,__m128i __B)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__))
_mm_cmpgt_epi8_mask(__m128i __A,__m128i __B)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__))
_mm_mask_cmpgt_epu8_mask(__mmask16 __U,__m128i __A,__m128i __B)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__))
_mm_mask_cmpgt_epi8_mask(__mmask16 __U,__m128i __A,__m128i __B)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__))
_mm256_cmpgt_epu8_mask(__m256i __A,__m256i __B)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__))
_mm256_cmpgt_epi8_mask(__m256i __A,__m256i __B)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__))
_mm256_mask_cmpgt_epu8_mask(__mmask32 __U,__m256i __A,__m256i __B)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__))
_mm256_mask_cmpgt_epi8_mask(__mmask32 __U,__m256i __A,__m256i __B)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__))
_mm_cmpgt_epu16_mask(__m128i __A,__m128i __B)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__))
_mm_cmpgt_epi16_mask(__m128i __A,__m128i __B)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__))
_mm_mask_cmpgt_epu16_mask(__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_mask_cmpgt_epi16_mask(__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm256_cmpgt_epu16_mask(__m256i __A,__m256i __B)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__))
_mm256_cmpgt_epi16_mask(__m256i __A,__m256i __B)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__))
_mm256_mask_cmpgt_epu16_mask(__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm256_mask_cmpgt_epi16_mask(__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm_testn_epi8_mask(__m128i __A,__m128i __B)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__))
_mm_mask_testn_epi8_mask(__mmask16 __U,__m128i __A,__m128i __B)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__))
_mm256_testn_epi8_mask(__m256i __A,__m256i __B)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__))
_mm256_mask_testn_epi8_mask(__mmask32 __U,__m256i __A,__m256i __B)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__))
_mm_testn_epi16_mask(__m128i __A,__m128i __B)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__))
_mm_mask_testn_epi16_mask(__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm256_testn_epi16_mask(__m256i __A,__m256i __B)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__))
_mm256_mask_testn_epi16_mask(__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm256_mask_shuffle_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)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__))
_mm256_maskz_shuffle_epi8(__mmask32 __U,__m256i __A,__m256i __B)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__))
_mm_mask_shuffle_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)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__))
_mm_maskz_shuffle_epi8(__mmask16 __U,__m128i __A,__m128i __B)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__))
_mm256_maskz_packs_epi16(__mmask32 __M,__m256i __A,__m256i __B)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__))
_mm256_mask_packs_epi16(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)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__))
_mm_maskz_packs_epi16(__mmask16 __M,__m128i __A,__m128i __B)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__))
_mm_mask_packs_epi16(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)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__))
_mm256_maskz_packus_epi16(__mmask32 __M,__m256i __A,__m256i __B)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__))
_mm256_mask_packus_epi16(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)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__))
_mm_maskz_packus_epi16(__mmask16 __M,__m128i __A,__m128i __B)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__))
_mm_mask_packus_epi16(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)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__))
_mm256_mask_abs_epi8(__m256i __W,__mmask32 __U,__m256i __A)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__))
_mm256_maskz_abs_epi8(__mmask32 __U,__m256i __A)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__))
_mm_mask_abs_epi8(__m128i __W,__mmask16 __U,__m128i __A)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__))
_mm_maskz_abs_epi8(__mmask16 __U,__m128i __A)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__))
_mm256_mask_abs_epi16(__m256i __W,__mmask16 __U,__m256i __A)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__))
_mm256_maskz_abs_epi16(__mmask16 __U,__m256i __A)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__))
_mm_mask_abs_epi16(__m128i __W,__mmask8 __U,__m128i __A)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__))
_mm_maskz_abs_epi16(__mmask8 __U,__m128i __A)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__))
_mm256_cmpneq_epu8_mask(__m256i __X,__m256i __Y)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__))
_mm256_cmplt_epu8_mask(__m256i __X,__m256i __Y)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__))
_mm256_cmpge_epu8_mask(__m256i __X,__m256i __Y)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__))
_mm256_cmple_epu8_mask(__m256i __X,__m256i __Y)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__))
_mm256_cmpneq_epu16_mask(__m256i __X,__m256i __Y)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__))
_mm256_cmplt_epu16_mask(__m256i __X,__m256i __Y)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__))
_mm256_cmpge_epu16_mask(__m256i __X,__m256i __Y)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__))
_mm256_cmple_epu16_mask(__m256i __X,__m256i __Y)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__))
_mm256_storeu_epi16(void * __P,__m256i __A)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__))
_mm256_mask_storeu_epi16(void * __P,__mmask16 __U,__m256i __A)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__))
_mm_storeu_epi16(void * __P,__m128i __A)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__))
_mm_mask_storeu_epi16(void * __P,__mmask8 __U,__m128i __A)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__))
_mm_mask_adds_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_mask_subs_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)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__))
_mm_maskz_subs_epi8(__mmask16 __U,__m128i __A,__m128i __B)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__))
_mm_mask_subs_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_maskz_subs_epi16(__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_mask_subs_epu8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)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__))
_mm_maskz_subs_epu8(__mmask16 __U,__m128i __A,__m128i __B)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__))
_mm_mask_subs_epu16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_maskz_subs_epu16(__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm256_mask_srl_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m128i __B)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__))
_mm256_maskz_srl_epi16(__mmask16 __U,__m256i __A,__m128i __B)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__))
_mm_mask_srl_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_maskz_srl_epi16(__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm256_mask_sra_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m128i __B)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__))
_mm256_maskz_sra_epi16(__mmask16 __U,__m256i __A,__m128i __B)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__))
_mm_mask_sra_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_maskz_sra_epi16(__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_maskz_adds_epi16(__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_mask_adds_epu8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)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__))
_mm_maskz_adds_epu8(__mmask16 __U,__m128i __A,__m128i __B)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__))
_mm_mask_adds_epu16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_maskz_adds_epu16(__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_mask_sub_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)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__))
_mm_maskz_sub_epi8(__mmask16 __U,__m128i __A,__m128i __B)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__))
_mm_mask_sub_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_maskz_sub_epi16(__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_mask_adds_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)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__))
_mm_maskz_adds_epi8(__mmask16 __U,__m128i __A,__m128i __B)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__))
_mm_cvtepi16_epi8(__m128i __A)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__))
_mm_mask_cvtepi16_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)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__))
_mm_mask_cvtepi16_epi8(__m128i __O,__mmask8 __M,__m128i __A)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__))
_mm_maskz_cvtepi16_epi8(__mmask8 __M,__m128i __A)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__))
_mm256_srav_epi16(__m256i __A,__m256i __B)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__))
_mm256_mask_srav_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm256_maskz_srav_epi16(__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm_srav_epi16(__m128i __A,__m128i __B)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__))
_mm_mask_srav_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_maskz_srav_epi16(__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm256_srlv_epi16(__m256i __A,__m256i __B)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__))
_mm256_mask_srlv_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm256_maskz_srlv_epi16(__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm_srlv_epi16(__m128i __A,__m128i __B)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__))
_mm_mask_srlv_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_maskz_srlv_epi16(__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm256_sllv_epi16(__m256i __A,__m256i __B)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__))
_mm256_mask_sllv_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm256_maskz_sllv_epi16(__mmask16 __U,__m256i __A,__m256i __B)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__))
_mm_sllv_epi16(__m128i __A,__m128i __B)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__))
_mm_mask_sllv_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_maskz_sllv_epi16(__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_mask_sll_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm_maskz_sll_epi16(__mmask8 __U,__m128i __A,__m128i __B)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__))
_mm256_mask_sll_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m128i __B)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__))
_mm256_maskz_sll_epi16(__mmask16 __U,__m256i __A,__m128i __B)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__))
_mm256_maskz_packus_epi32(__mmask16 __M,__m256i __A,__m256i __B)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__))
_mm256_mask_packus_epi32(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)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__))
_mm_maskz_packus_epi32(__mmask8 __M,__m128i __A,__m128i __B)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__))
_mm_mask_packus_epi32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)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__))
_mm256_maskz_packs_epi32(__mmask16 __M,__m256i __A,__m256i __B)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__))
_mm256_mask_packs_epi32(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)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__))
_mm_maskz_packs_epi32(__mmask8 __M,__m128i __A,__m128i __B)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__))
_mm_mask_packs_epi32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)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__))
_mm_mask_cmpneq_epu8_mask(__mmask16 __M,__m128i __X,__m128i __Y)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__))
_mm_mask_cmplt_epu8_mask(__mmask16 __M,__m128i __X,__m128i __Y)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__))
_mm_mask_cmpge_epu8_mask(__mmask16 __M,__m128i __X,__m128i __Y)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__))
_mm_mask_cmple_epu8_mask(__mmask16 __M,__m128i __X,__m128i __Y)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__))
_mm_mask_cmpneq_epu16_mask(__mmask8 __M,__m128i __X,__m128i __Y)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__))
_mm_mask_cmplt_epu16_mask(__mmask8 __M,__m128i __X,__m128i __Y)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__))
_mm_mask_cmpge_epu16_mask(__mmask8 __M,__m128i __X,__m128i __Y)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__))
_mm_mask_cmple_epu16_mask(__mmask8 __M,__m128i __X,__m128i __Y)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__))
_mm_mask_cmpneq_epi8_mask(__mmask16 __M,__m128i __X,__m128i __Y)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__))
_mm_mask_cmplt_epi8_mask(__mmask16 __M,__m128i __X,__m128i __Y)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__))
_mm_mask_cmpge_epi8_mask(__mmask16 __M,__m128i __X,__m128i __Y)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__))
_mm_mask_cmple_epi8_mask(__mmask16 __M,__m128i __X,__m128i __Y)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__))
_mm_mask_cmpneq_epi16_mask(__mmask8 __M,__m128i __X,__m128i __Y)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__))
_mm_mask_cmplt_epi16_mask(__mmask8 __M,__m128i __X,__m128i __Y)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__))
_mm_mask_cmpge_epi16_mask(__mmask8 __M,__m128i __X,__m128i __Y)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__))
_mm_mask_cmple_epi16_mask(__mmask8 __M,__m128i __X,__m128i __Y)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__))
_mm256_mask_cmpneq_epu8_mask(__mmask32 __M,__m256i __X,__m256i __Y)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__))
_mm256_mask_cmplt_epu8_mask(__mmask32 __M,__m256i __X,__m256i __Y)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__))
_mm256_mask_cmpge_epu8_mask(__mmask32 __M,__m256i __X,__m256i __Y)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__))
_mm256_mask_cmple_epu8_mask(__mmask32 __M,__m256i __X,__m256i __Y)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__))
_mm256_mask_cmpneq_epu16_mask(__mmask16 __M,__m256i __X,__m256i __Y)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__))
_mm256_mask_cmplt_epu16_mask(__mmask16 __M,__m256i __X,__m256i __Y)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__))
_mm256_mask_cmpge_epu16_mask(__mmask16 __M,__m256i __X,__m256i __Y)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__))
_mm256_mask_cmple_epu16_mask(__mmask16 __M,__m256i __X,__m256i __Y)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__))
_mm256_mask_cmpneq_epi8_mask(__mmask32 __M,__m256i __X,__m256i __Y)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__))
_mm256_mask_cmplt_epi8_mask(__mmask32 __M,__m256i __X,__m256i __Y)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__))
_mm256_mask_cmpge_epi8_mask(__mmask32 __M,__m256i __X,__m256i __Y)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__))
_mm256_mask_cmple_epi8_mask(__mmask32 __M,__m256i __X,__m256i __Y)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__))
_mm256_mask_cmpneq_epi16_mask(__mmask16 __M,__m256i __X,__m256i __Y)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__))
_mm256_mask_cmplt_epi16_mask(__mmask16 __M,__m256i __X,__m256i __Y)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__))
_mm256_mask_cmpge_epi16_mask(__mmask16 __M,__m256i __X,__m256i __Y)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__))
_mm256_mask_cmple_epi16_mask(__mmask16 __M,__m256i __X,__m256i __Y)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 */
4759