source: Daodan/MinGW/lib/gcc/mingw32/5.3.0/include/avx512vlbwintrin.h@ 1117

Last change on this file since 1117 was 1046, checked in by alloc, 8 years ago

Daodan: Added Windows MinGW and build batch file

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