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