1/*===---- avx512vlbwintrin.h - AVX512VL and AVX512BW intrinsics ------------===
2 *
3 * Permission is hereby granted, free of charge, to any person obtaining a copy
4 * of this software and associated documentation files (the "Software"), to deal
5 * in the Software without restriction, including without limitation the rights
6 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 * copies of the Software, and to permit persons to whom the Software is
8 * furnished to do so, subject to the following conditions:
9 *
10 * The above copyright notice and this permission notice shall be included in
11 * all copies or substantial portions of the Software.
12 *
13 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 * THE SOFTWARE.
20 *
21 *===-----------------------------------------------------------------------===
22 */
23
24#ifndef __IMMINTRIN_H
25#error "Never use <avx512vlbwintrin.h> directly; include <immintrin.h> instead."
26#endif
27
28#ifndef __AVX512VLBWINTRIN_H
29#define __AVX512VLBWINTRIN_H
30
31/* Define the default attributes for the functions in this file. */
32#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw")))
33
34static  __inline __m128i __DEFAULT_FN_ATTRS
35_mm_setzero_hi(void){
36    return (__m128i)(__v8hi){ 0, 0, 0, 0, 0, 0, 0, 0 };
37}
38
39/* Integer compare */
40
41static __inline__ __mmask16 __DEFAULT_FN_ATTRS
42_mm_cmpeq_epi8_mask(__m128i __a, __m128i __b) {
43  return (__mmask16)__builtin_ia32_pcmpeqb128_mask((__v16qi)__a, (__v16qi)__b,
44                                                   (__mmask16)-1);
45}
46
47static __inline__ __mmask16 __DEFAULT_FN_ATTRS
48_mm_mask_cmpeq_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
49  return (__mmask16)__builtin_ia32_pcmpeqb128_mask((__v16qi)__a, (__v16qi)__b,
50                                                   __u);
51}
52
53static __inline__ __mmask16 __DEFAULT_FN_ATTRS
54_mm_cmpeq_epu8_mask(__m128i __a, __m128i __b) {
55  return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 0,
56                                                 (__mmask16)-1);
57}
58
59static __inline__ __mmask16 __DEFAULT_FN_ATTRS
60_mm_mask_cmpeq_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
61  return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 0,
62                                                 __u);
63}
64
65static __inline__ __mmask32 __DEFAULT_FN_ATTRS
66_mm256_cmpeq_epi8_mask(__m256i __a, __m256i __b) {
67  return (__mmask32)__builtin_ia32_pcmpeqb256_mask((__v32qi)__a, (__v32qi)__b,
68                                                   (__mmask32)-1);
69}
70
71static __inline__ __mmask32 __DEFAULT_FN_ATTRS
72_mm256_mask_cmpeq_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
73  return (__mmask32)__builtin_ia32_pcmpeqb256_mask((__v32qi)__a, (__v32qi)__b,
74                                                   __u);
75}
76
77static __inline__ __mmask32 __DEFAULT_FN_ATTRS
78_mm256_cmpeq_epu8_mask(__m256i __a, __m256i __b) {
79  return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 0,
80                                                 (__mmask32)-1);
81}
82
83static __inline__ __mmask32 __DEFAULT_FN_ATTRS
84_mm256_mask_cmpeq_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
85  return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 0,
86                                                 __u);
87}
88
89static __inline__ __mmask8 __DEFAULT_FN_ATTRS
90_mm_cmpeq_epi16_mask(__m128i __a, __m128i __b) {
91  return (__mmask8)__builtin_ia32_pcmpeqw128_mask((__v8hi)__a, (__v8hi)__b,
92                                                  (__mmask8)-1);
93}
94
95static __inline__ __mmask8 __DEFAULT_FN_ATTRS
96_mm_mask_cmpeq_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
97  return (__mmask8)__builtin_ia32_pcmpeqw128_mask((__v8hi)__a, (__v8hi)__b,
98                                                  __u);
99}
100
101static __inline__ __mmask8 __DEFAULT_FN_ATTRS
102_mm_cmpeq_epu16_mask(__m128i __a, __m128i __b) {
103  return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 0,
104                                                (__mmask8)-1);
105}
106
107static __inline__ __mmask8 __DEFAULT_FN_ATTRS
108_mm_mask_cmpeq_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
109  return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 0,
110                                                __u);
111}
112
113static __inline__ __mmask16 __DEFAULT_FN_ATTRS
114_mm256_cmpeq_epi16_mask(__m256i __a, __m256i __b) {
115  return (__mmask16)__builtin_ia32_pcmpeqw256_mask((__v16hi)__a, (__v16hi)__b,
116                                                   (__mmask16)-1);
117}
118
119static __inline__ __mmask16 __DEFAULT_FN_ATTRS
120_mm256_mask_cmpeq_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
121  return (__mmask16)__builtin_ia32_pcmpeqw256_mask((__v16hi)__a, (__v16hi)__b,
122                                                   __u);
123}
124
125static __inline__ __mmask16 __DEFAULT_FN_ATTRS
126_mm256_cmpeq_epu16_mask(__m256i __a, __m256i __b) {
127  return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 0,
128                                                 (__mmask16)-1);
129}
130
131static __inline__ __mmask16 __DEFAULT_FN_ATTRS
132_mm256_mask_cmpeq_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
133  return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 0,
134                                                 __u);
135}
136
137static __inline__ __mmask16 __DEFAULT_FN_ATTRS
138_mm_cmpge_epi8_mask(__m128i __a, __m128i __b) {
139  return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 5,
140                                                (__mmask16)-1);
141}
142
143static __inline__ __mmask16 __DEFAULT_FN_ATTRS
144_mm_mask_cmpge_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
145  return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 5,
146                                                __u);
147}
148
149static __inline__ __mmask16 __DEFAULT_FN_ATTRS
150_mm_cmpge_epu8_mask(__m128i __a, __m128i __b) {
151  return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 5,
152                                                 (__mmask16)-1);
153}
154
155static __inline__ __mmask16 __DEFAULT_FN_ATTRS
156_mm_mask_cmpge_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
157  return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 5,
158                                                 __u);
159}
160
161static __inline__ __mmask32 __DEFAULT_FN_ATTRS
162_mm256_cmpge_epi8_mask(__m256i __a, __m256i __b) {
163  return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 5,
164                                                (__mmask32)-1);
165}
166
167static __inline__ __mmask32 __DEFAULT_FN_ATTRS
168_mm256_mask_cmpge_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
169  return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 5,
170                                                __u);
171}
172
173static __inline__ __mmask32 __DEFAULT_FN_ATTRS
174_mm256_cmpge_epu8_mask(__m256i __a, __m256i __b) {
175  return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 5,
176                                                 (__mmask32)-1);
177}
178
179static __inline__ __mmask32 __DEFAULT_FN_ATTRS
180_mm256_mask_cmpge_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
181  return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 5,
182                                                 __u);
183}
184
185static __inline__ __mmask8 __DEFAULT_FN_ATTRS
186_mm_cmpge_epi16_mask(__m128i __a, __m128i __b) {
187  return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 5,
188                                               (__mmask8)-1);
189}
190
191static __inline__ __mmask8 __DEFAULT_FN_ATTRS
192_mm_mask_cmpge_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
193  return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 5,
194                                               __u);
195}
196
197static __inline__ __mmask8 __DEFAULT_FN_ATTRS
198_mm_cmpge_epu16_mask(__m128i __a, __m128i __b) {
199  return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 5,
200                                                (__mmask8)-1);
201}
202
203static __inline__ __mmask8 __DEFAULT_FN_ATTRS
204_mm_mask_cmpge_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
205  return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 5,
206                                                __u);
207}
208
209static __inline__ __mmask16 __DEFAULT_FN_ATTRS
210_mm256_cmpge_epi16_mask(__m256i __a, __m256i __b) {
211  return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 5,
212                                                (__mmask16)-1);
213}
214
215static __inline__ __mmask16 __DEFAULT_FN_ATTRS
216_mm256_mask_cmpge_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
217  return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 5,
218                                                __u);
219}
220
221static __inline__ __mmask16 __DEFAULT_FN_ATTRS
222_mm256_cmpge_epu16_mask(__m256i __a, __m256i __b) {
223  return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 5,
224                                                 (__mmask16)-1);
225}
226
227static __inline__ __mmask16 __DEFAULT_FN_ATTRS
228_mm256_mask_cmpge_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
229  return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 5,
230                                                 __u);
231}
232
233static __inline__ __mmask16 __DEFAULT_FN_ATTRS
234_mm_cmpgt_epi8_mask(__m128i __a, __m128i __b) {
235  return (__mmask16)__builtin_ia32_pcmpgtb128_mask((__v16qi)__a, (__v16qi)__b,
236                                                   (__mmask16)-1);
237}
238
239static __inline__ __mmask16 __DEFAULT_FN_ATTRS
240_mm_mask_cmpgt_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
241  return (__mmask16)__builtin_ia32_pcmpgtb128_mask((__v16qi)__a, (__v16qi)__b,
242                                                   __u);
243}
244
245static __inline__ __mmask16 __DEFAULT_FN_ATTRS
246_mm_cmpgt_epu8_mask(__m128i __a, __m128i __b) {
247  return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 6,
248                                                 (__mmask16)-1);
249}
250
251static __inline__ __mmask16 __DEFAULT_FN_ATTRS
252_mm_mask_cmpgt_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
253  return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 6,
254                                                 __u);
255}
256
257static __inline__ __mmask32 __DEFAULT_FN_ATTRS
258_mm256_cmpgt_epi8_mask(__m256i __a, __m256i __b) {
259  return (__mmask32)__builtin_ia32_pcmpgtb256_mask((__v32qi)__a, (__v32qi)__b,
260                                                   (__mmask32)-1);
261}
262
263static __inline__ __mmask32 __DEFAULT_FN_ATTRS
264_mm256_mask_cmpgt_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
265  return (__mmask32)__builtin_ia32_pcmpgtb256_mask((__v32qi)__a, (__v32qi)__b,
266                                                   __u);
267}
268
269static __inline__ __mmask32 __DEFAULT_FN_ATTRS
270_mm256_cmpgt_epu8_mask(__m256i __a, __m256i __b) {
271  return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 6,
272                                                 (__mmask32)-1);
273}
274
275static __inline__ __mmask32 __DEFAULT_FN_ATTRS
276_mm256_mask_cmpgt_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
277  return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 6,
278                                                 __u);
279}
280
281static __inline__ __mmask8 __DEFAULT_FN_ATTRS
282_mm_cmpgt_epi16_mask(__m128i __a, __m128i __b) {
283  return (__mmask8)__builtin_ia32_pcmpgtw128_mask((__v8hi)__a, (__v8hi)__b,
284                                                  (__mmask8)-1);
285}
286
287static __inline__ __mmask8 __DEFAULT_FN_ATTRS
288_mm_mask_cmpgt_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
289  return (__mmask8)__builtin_ia32_pcmpgtw128_mask((__v8hi)__a, (__v8hi)__b,
290                                                  __u);
291}
292
293static __inline__ __mmask8 __DEFAULT_FN_ATTRS
294_mm_cmpgt_epu16_mask(__m128i __a, __m128i __b) {
295  return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 6,
296                                                (__mmask8)-1);
297}
298
299static __inline__ __mmask8 __DEFAULT_FN_ATTRS
300_mm_mask_cmpgt_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
301  return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 6,
302                                                __u);
303}
304
305static __inline__ __mmask16 __DEFAULT_FN_ATTRS
306_mm256_cmpgt_epi16_mask(__m256i __a, __m256i __b) {
307  return (__mmask16)__builtin_ia32_pcmpgtw256_mask((__v16hi)__a, (__v16hi)__b,
308                                                   (__mmask16)-1);
309}
310
311static __inline__ __mmask16 __DEFAULT_FN_ATTRS
312_mm256_mask_cmpgt_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
313  return (__mmask16)__builtin_ia32_pcmpgtw256_mask((__v16hi)__a, (__v16hi)__b,
314                                                   __u);
315}
316
317static __inline__ __mmask16 __DEFAULT_FN_ATTRS
318_mm256_cmpgt_epu16_mask(__m256i __a, __m256i __b) {
319  return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 6,
320                                                 (__mmask16)-1);
321}
322
323static __inline__ __mmask16 __DEFAULT_FN_ATTRS
324_mm256_mask_cmpgt_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
325  return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 6,
326                                                 __u);
327}
328
329static __inline__ __mmask16 __DEFAULT_FN_ATTRS
330_mm_cmple_epi8_mask(__m128i __a, __m128i __b) {
331  return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 2,
332                                                (__mmask16)-1);
333}
334
335static __inline__ __mmask16 __DEFAULT_FN_ATTRS
336_mm_mask_cmple_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
337  return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 2,
338                                                __u);
339}
340
341static __inline__ __mmask16 __DEFAULT_FN_ATTRS
342_mm_cmple_epu8_mask(__m128i __a, __m128i __b) {
343  return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 2,
344                                                 (__mmask16)-1);
345}
346
347static __inline__ __mmask16 __DEFAULT_FN_ATTRS
348_mm_mask_cmple_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
349  return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 2,
350                                                 __u);
351}
352
353static __inline__ __mmask32 __DEFAULT_FN_ATTRS
354_mm256_cmple_epi8_mask(__m256i __a, __m256i __b) {
355  return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 2,
356                                                (__mmask32)-1);
357}
358
359static __inline__ __mmask32 __DEFAULT_FN_ATTRS
360_mm256_mask_cmple_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
361  return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 2,
362                                                __u);
363}
364
365static __inline__ __mmask32 __DEFAULT_FN_ATTRS
366_mm256_cmple_epu8_mask(__m256i __a, __m256i __b) {
367  return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 2,
368                                                 (__mmask32)-1);
369}
370
371static __inline__ __mmask32 __DEFAULT_FN_ATTRS
372_mm256_mask_cmple_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
373  return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 2,
374                                                 __u);
375}
376
377static __inline__ __mmask8 __DEFAULT_FN_ATTRS
378_mm_cmple_epi16_mask(__m128i __a, __m128i __b) {
379  return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 2,
380                                               (__mmask8)-1);
381}
382
383static __inline__ __mmask8 __DEFAULT_FN_ATTRS
384_mm_mask_cmple_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
385  return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 2,
386                                               __u);
387}
388
389static __inline__ __mmask8 __DEFAULT_FN_ATTRS
390_mm_cmple_epu16_mask(__m128i __a, __m128i __b) {
391  return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 2,
392                                                (__mmask8)-1);
393}
394
395static __inline__ __mmask8 __DEFAULT_FN_ATTRS
396_mm_mask_cmple_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
397  return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 2,
398                                                __u);
399}
400
401static __inline__ __mmask16 __DEFAULT_FN_ATTRS
402_mm256_cmple_epi16_mask(__m256i __a, __m256i __b) {
403  return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 2,
404                                                (__mmask16)-1);
405}
406
407static __inline__ __mmask16 __DEFAULT_FN_ATTRS
408_mm256_mask_cmple_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
409  return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 2,
410                                                __u);
411}
412
413static __inline__ __mmask16 __DEFAULT_FN_ATTRS
414_mm256_cmple_epu16_mask(__m256i __a, __m256i __b) {
415  return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 2,
416                                                 (__mmask16)-1);
417}
418
419static __inline__ __mmask16 __DEFAULT_FN_ATTRS
420_mm256_mask_cmple_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
421  return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 2,
422                                                 __u);
423}
424
425static __inline__ __mmask16 __DEFAULT_FN_ATTRS
426_mm_cmplt_epi8_mask(__m128i __a, __m128i __b) {
427  return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 1,
428                                                (__mmask16)-1);
429}
430
431static __inline__ __mmask16 __DEFAULT_FN_ATTRS
432_mm_mask_cmplt_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
433  return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 1,
434                                                __u);
435}
436
437static __inline__ __mmask16 __DEFAULT_FN_ATTRS
438_mm_cmplt_epu8_mask(__m128i __a, __m128i __b) {
439  return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 1,
440                                                 (__mmask16)-1);
441}
442
443static __inline__ __mmask16 __DEFAULT_FN_ATTRS
444_mm_mask_cmplt_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
445  return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 1,
446                                                 __u);
447}
448
449static __inline__ __mmask32 __DEFAULT_FN_ATTRS
450_mm256_cmplt_epi8_mask(__m256i __a, __m256i __b) {
451  return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 1,
452                                                (__mmask32)-1);
453}
454
455static __inline__ __mmask32 __DEFAULT_FN_ATTRS
456_mm256_mask_cmplt_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
457  return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 1,
458                                                __u);
459}
460
461static __inline__ __mmask32 __DEFAULT_FN_ATTRS
462_mm256_cmplt_epu8_mask(__m256i __a, __m256i __b) {
463  return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 1,
464                                                 (__mmask32)-1);
465}
466
467static __inline__ __mmask32 __DEFAULT_FN_ATTRS
468_mm256_mask_cmplt_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
469  return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 1,
470                                                 __u);
471}
472
473static __inline__ __mmask8 __DEFAULT_FN_ATTRS
474_mm_cmplt_epi16_mask(__m128i __a, __m128i __b) {
475  return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 1,
476                                               (__mmask8)-1);
477}
478
479static __inline__ __mmask8 __DEFAULT_FN_ATTRS
480_mm_mask_cmplt_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
481  return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 1,
482                                               __u);
483}
484
485static __inline__ __mmask8 __DEFAULT_FN_ATTRS
486_mm_cmplt_epu16_mask(__m128i __a, __m128i __b) {
487  return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 1,
488                                                (__mmask8)-1);
489}
490
491static __inline__ __mmask8 __DEFAULT_FN_ATTRS
492_mm_mask_cmplt_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
493  return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 1,
494                                                __u);
495}
496
497static __inline__ __mmask16 __DEFAULT_FN_ATTRS
498_mm256_cmplt_epi16_mask(__m256i __a, __m256i __b) {
499  return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 1,
500                                                (__mmask16)-1);
501}
502
503static __inline__ __mmask16 __DEFAULT_FN_ATTRS
504_mm256_mask_cmplt_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
505  return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 1,
506                                                __u);
507}
508
509static __inline__ __mmask16 __DEFAULT_FN_ATTRS
510_mm256_cmplt_epu16_mask(__m256i __a, __m256i __b) {
511  return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 1,
512                                                 (__mmask16)-1);
513}
514
515static __inline__ __mmask16 __DEFAULT_FN_ATTRS
516_mm256_mask_cmplt_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
517  return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 1,
518                                                 __u);
519}
520
521static __inline__ __mmask16 __DEFAULT_FN_ATTRS
522_mm_cmpneq_epi8_mask(__m128i __a, __m128i __b) {
523  return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 4,
524                                                (__mmask16)-1);
525}
526
527static __inline__ __mmask16 __DEFAULT_FN_ATTRS
528_mm_mask_cmpneq_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
529  return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 4,
530                                                __u);
531}
532
533static __inline__ __mmask16 __DEFAULT_FN_ATTRS
534_mm_cmpneq_epu8_mask(__m128i __a, __m128i __b) {
535  return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 4,
536                                                 (__mmask16)-1);
537}
538
539static __inline__ __mmask16 __DEFAULT_FN_ATTRS
540_mm_mask_cmpneq_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
541  return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 4,
542                                                 __u);
543}
544
545static __inline__ __mmask32 __DEFAULT_FN_ATTRS
546_mm256_cmpneq_epi8_mask(__m256i __a, __m256i __b) {
547  return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 4,
548                                                (__mmask32)-1);
549}
550
551static __inline__ __mmask32 __DEFAULT_FN_ATTRS
552_mm256_mask_cmpneq_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
553  return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 4,
554                                                __u);
555}
556
557static __inline__ __mmask32 __DEFAULT_FN_ATTRS
558_mm256_cmpneq_epu8_mask(__m256i __a, __m256i __b) {
559  return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 4,
560                                                 (__mmask32)-1);
561}
562
563static __inline__ __mmask32 __DEFAULT_FN_ATTRS
564_mm256_mask_cmpneq_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
565  return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 4,
566                                                 __u);
567}
568
569static __inline__ __mmask8 __DEFAULT_FN_ATTRS
570_mm_cmpneq_epi16_mask(__m128i __a, __m128i __b) {
571  return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 4,
572                                               (__mmask8)-1);
573}
574
575static __inline__ __mmask8 __DEFAULT_FN_ATTRS
576_mm_mask_cmpneq_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
577  return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 4,
578                                               __u);
579}
580
581static __inline__ __mmask8 __DEFAULT_FN_ATTRS
582_mm_cmpneq_epu16_mask(__m128i __a, __m128i __b) {
583  return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 4,
584                                                (__mmask8)-1);
585}
586
587static __inline__ __mmask8 __DEFAULT_FN_ATTRS
588_mm_mask_cmpneq_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
589  return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 4,
590                                                __u);
591}
592
593static __inline__ __mmask16 __DEFAULT_FN_ATTRS
594_mm256_cmpneq_epi16_mask(__m256i __a, __m256i __b) {
595  return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 4,
596                                                (__mmask16)-1);
597}
598
599static __inline__ __mmask16 __DEFAULT_FN_ATTRS
600_mm256_mask_cmpneq_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
601  return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 4,
602                                                __u);
603}
604
605static __inline__ __mmask16 __DEFAULT_FN_ATTRS
606_mm256_cmpneq_epu16_mask(__m256i __a, __m256i __b) {
607  return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 4,
608                                                 (__mmask16)-1);
609}
610
611static __inline__ __mmask16 __DEFAULT_FN_ATTRS
612_mm256_mask_cmpneq_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
613  return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 4,
614                                                 __u);
615}
616
617static __inline__ __m256i __DEFAULT_FN_ATTRS
618_mm256_mask_add_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B){
619  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
620                                             (__v32qi)_mm256_add_epi8(__A, __B),
621                                             (__v32qi)__W);
622}
623
624static __inline__ __m256i __DEFAULT_FN_ATTRS
625_mm256_maskz_add_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
626  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
627                                             (__v32qi)_mm256_add_epi8(__A, __B),
628                                             (__v32qi)_mm256_setzero_si256());
629}
630
631static __inline__ __m256i __DEFAULT_FN_ATTRS
632_mm256_mask_add_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
633  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
634                                             (__v16hi)_mm256_add_epi16(__A, __B),
635                                             (__v16hi)__W);
636}
637
638static __inline__ __m256i __DEFAULT_FN_ATTRS
639_mm256_maskz_add_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
640  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
641                                             (__v16hi)_mm256_add_epi16(__A, __B),
642                                             (__v16hi)_mm256_setzero_si256());
643}
644
645static __inline__ __m256i __DEFAULT_FN_ATTRS
646_mm256_mask_sub_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
647  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
648                                             (__v32qi)_mm256_sub_epi8(__A, __B),
649                                             (__v32qi)__W);
650}
651
652static __inline__ __m256i __DEFAULT_FN_ATTRS
653_mm256_maskz_sub_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
654  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
655                                             (__v32qi)_mm256_sub_epi8(__A, __B),
656                                             (__v32qi)_mm256_setzero_si256());
657}
658
659static __inline__ __m256i __DEFAULT_FN_ATTRS
660_mm256_mask_sub_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
661  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
662                                             (__v16hi)_mm256_sub_epi16(__A, __B),
663                                             (__v16hi)__W);
664}
665
666static __inline__ __m256i __DEFAULT_FN_ATTRS
667_mm256_maskz_sub_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
668  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
669                                             (__v16hi)_mm256_sub_epi16(__A, __B),
670                                             (__v16hi)_mm256_setzero_si256());
671}
672
673static __inline__ __m128i __DEFAULT_FN_ATTRS
674_mm_mask_add_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
675  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
676                                             (__v16qi)_mm_add_epi8(__A, __B),
677                                             (__v16qi)__W);
678}
679
680static __inline__ __m128i __DEFAULT_FN_ATTRS
681_mm_maskz_add_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
682  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
683                                             (__v16qi)_mm_add_epi8(__A, __B),
684                                             (__v16qi)_mm_setzero_si128());
685}
686
687static __inline__ __m128i __DEFAULT_FN_ATTRS
688_mm_mask_add_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
689  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
690                                             (__v8hi)_mm_add_epi16(__A, __B),
691                                             (__v8hi)__W);
692}
693
694static __inline__ __m128i __DEFAULT_FN_ATTRS
695_mm_maskz_add_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
696  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
697                                             (__v8hi)_mm_add_epi16(__A, __B),
698                                             (__v8hi)_mm_setzero_si128());
699}
700
701static __inline__ __m128i __DEFAULT_FN_ATTRS
702_mm_mask_sub_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
703  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
704                                             (__v16qi)_mm_sub_epi8(__A, __B),
705                                             (__v16qi)__W);
706}
707
708static __inline__ __m128i __DEFAULT_FN_ATTRS
709_mm_maskz_sub_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
710  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
711                                             (__v16qi)_mm_sub_epi8(__A, __B),
712                                             (__v16qi)_mm_setzero_si128());
713}
714
715static __inline__ __m128i __DEFAULT_FN_ATTRS
716_mm_mask_sub_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
717  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
718                                             (__v8hi)_mm_sub_epi16(__A, __B),
719                                             (__v8hi)__W);
720}
721
722static __inline__ __m128i __DEFAULT_FN_ATTRS
723_mm_maskz_sub_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
724  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
725                                             (__v8hi)_mm_sub_epi16(__A, __B),
726                                             (__v8hi)_mm_setzero_si128());
727}
728
729static __inline__ __m256i __DEFAULT_FN_ATTRS
730_mm256_mask_mullo_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
731  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
732                                             (__v16hi)_mm256_mullo_epi16(__A, __B),
733                                             (__v16hi)__W);
734}
735
736static __inline__ __m256i __DEFAULT_FN_ATTRS
737_mm256_maskz_mullo_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
738  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
739                                             (__v16hi)_mm256_mullo_epi16(__A, __B),
740                                             (__v16hi)_mm256_setzero_si256());
741}
742
743static __inline__ __m128i __DEFAULT_FN_ATTRS
744_mm_mask_mullo_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
745  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
746                                             (__v8hi)_mm_mullo_epi16(__A, __B),
747                                             (__v8hi)__W);
748}
749
750static __inline__ __m128i __DEFAULT_FN_ATTRS
751_mm_maskz_mullo_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
752  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
753                                             (__v8hi)_mm_mullo_epi16(__A, __B),
754                                             (__v8hi)_mm_setzero_si128());
755}
756
757static __inline__ __m128i __DEFAULT_FN_ATTRS
758_mm_mask_blend_epi8 (__mmask16 __U, __m128i __A, __m128i __W)
759{
760  return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U,
761              (__v16qi) __W,
762              (__v16qi) __A);
763}
764
765static __inline__ __m256i __DEFAULT_FN_ATTRS
766_mm256_mask_blend_epi8 (__mmask32 __U, __m256i __A, __m256i __W)
767{
768  return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U,
769               (__v32qi) __W,
770               (__v32qi) __A);
771}
772
773static __inline__ __m128i __DEFAULT_FN_ATTRS
774_mm_mask_blend_epi16 (__mmask8 __U, __m128i __A, __m128i __W)
775{
776  return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U,
777               (__v8hi) __W,
778               (__v8hi) __A);
779}
780
781static __inline__ __m256i __DEFAULT_FN_ATTRS
782_mm256_mask_blend_epi16 (__mmask16 __U, __m256i __A, __m256i __W)
783{
784  return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U,
785               (__v16hi) __W,
786               (__v16hi) __A);
787}
788
789static __inline__ __m128i __DEFAULT_FN_ATTRS
790_mm_mask_abs_epi8(__m128i __W, __mmask16 __U, __m128i __A)
791{
792  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
793                                             (__v16qi)_mm_abs_epi8(__A),
794                                             (__v16qi)__W);
795}
796
797static __inline__ __m128i __DEFAULT_FN_ATTRS
798_mm_maskz_abs_epi8(__mmask16 __U, __m128i __A)
799{
800  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
801                                             (__v16qi)_mm_abs_epi8(__A),
802                                             (__v16qi)_mm_setzero_si128());
803}
804
805static __inline__ __m256i __DEFAULT_FN_ATTRS
806_mm256_mask_abs_epi8(__m256i __W, __mmask32 __U, __m256i __A)
807{
808  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
809                                             (__v32qi)_mm256_abs_epi8(__A),
810                                             (__v32qi)__W);
811}
812
813static __inline__ __m256i __DEFAULT_FN_ATTRS
814_mm256_maskz_abs_epi8 (__mmask32 __U, __m256i __A)
815{
816  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
817                                             (__v32qi)_mm256_abs_epi8(__A),
818                                             (__v32qi)_mm256_setzero_si256());
819}
820
821static __inline__ __m128i __DEFAULT_FN_ATTRS
822_mm_mask_abs_epi16(__m128i __W, __mmask8 __U, __m128i __A)
823{
824  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
825                                             (__v8hi)_mm_abs_epi16(__A),
826                                             (__v8hi)__W);
827}
828
829static __inline__ __m128i __DEFAULT_FN_ATTRS
830_mm_maskz_abs_epi16(__mmask8 __U, __m128i __A)
831{
832  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
833                                             (__v8hi)_mm_abs_epi16(__A),
834                                             (__v8hi)_mm_setzero_si128());
835}
836
837static __inline__ __m256i __DEFAULT_FN_ATTRS
838_mm256_mask_abs_epi16(__m256i __W, __mmask16 __U, __m256i __A)
839{
840  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
841                                             (__v16hi)_mm256_abs_epi16(__A),
842                                             (__v16hi)__W);
843}
844
845static __inline__ __m256i __DEFAULT_FN_ATTRS
846_mm256_maskz_abs_epi16(__mmask16 __U, __m256i __A)
847{
848  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
849                                             (__v16hi)_mm256_abs_epi16(__A),
850                                             (__v16hi)_mm256_setzero_si256());
851}
852
853static __inline__ __m128i __DEFAULT_FN_ATTRS
854_mm_maskz_packs_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
855  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
856                                             (__v8hi)_mm_packs_epi32(__A, __B),
857                                             (__v8hi)_mm_setzero_si128());
858}
859
860static __inline__ __m128i __DEFAULT_FN_ATTRS
861_mm_mask_packs_epi32(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
862{
863  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
864                                             (__v8hi)_mm_packs_epi32(__A, __B),
865                                             (__v8hi)__W);
866}
867
868static __inline__ __m256i __DEFAULT_FN_ATTRS
869_mm256_maskz_packs_epi32(__mmask16 __M, __m256i __A, __m256i __B)
870{
871  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
872                                          (__v16hi)_mm256_packs_epi32(__A, __B),
873                                          (__v16hi)_mm256_setzero_si256());
874}
875
876static __inline__ __m256i __DEFAULT_FN_ATTRS
877_mm256_mask_packs_epi32(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
878{
879  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
880                                          (__v16hi)_mm256_packs_epi32(__A, __B),
881                                          (__v16hi)__W);
882}
883
884static __inline__ __m128i __DEFAULT_FN_ATTRS
885_mm_maskz_packs_epi16(__mmask16 __M, __m128i __A, __m128i __B)
886{
887  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
888                                             (__v16qi)_mm_packs_epi16(__A, __B),
889                                             (__v16qi)_mm_setzero_si128());
890}
891
892static __inline__ __m128i __DEFAULT_FN_ATTRS
893_mm_mask_packs_epi16(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
894{
895  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
896                                             (__v16qi)_mm_packs_epi16(__A, __B),
897                                             (__v16qi)__W);
898}
899
900static __inline__ __m256i __DEFAULT_FN_ATTRS
901_mm256_maskz_packs_epi16(__mmask32 __M, __m256i __A, __m256i __B)
902{
903  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
904                                          (__v32qi)_mm256_packs_epi16(__A, __B),
905                                          (__v32qi)_mm256_setzero_si256());
906}
907
908static __inline__ __m256i __DEFAULT_FN_ATTRS
909_mm256_mask_packs_epi16(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
910{
911  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
912                                          (__v32qi)_mm256_packs_epi16(__A, __B),
913                                          (__v32qi)__W);
914}
915
916static __inline__ __m128i __DEFAULT_FN_ATTRS
917_mm_maskz_packus_epi32(__mmask8 __M, __m128i __A, __m128i __B)
918{
919  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
920                                             (__v8hi)_mm_packus_epi32(__A, __B),
921                                             (__v8hi)_mm_setzero_si128());
922}
923
924static __inline__ __m128i __DEFAULT_FN_ATTRS
925_mm_mask_packus_epi32(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
926{
927  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
928                                             (__v8hi)_mm_packus_epi32(__A, __B),
929                                             (__v8hi)__W);
930}
931
932static __inline__ __m256i __DEFAULT_FN_ATTRS
933_mm256_maskz_packus_epi32(__mmask16 __M, __m256i __A, __m256i __B)
934{
935  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
936                                         (__v16hi)_mm256_packus_epi32(__A, __B),
937                                         (__v16hi)_mm256_setzero_si256());
938}
939
940static __inline__ __m256i __DEFAULT_FN_ATTRS
941_mm256_mask_packus_epi32(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
942{
943  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
944                                         (__v16hi)_mm256_packus_epi32(__A, __B),
945                                         (__v16hi)__W);
946}
947
948static __inline__ __m128i __DEFAULT_FN_ATTRS
949_mm_maskz_packus_epi16(__mmask16 __M, __m128i __A, __m128i __B)
950{
951  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
952                                            (__v16qi)_mm_packus_epi16(__A, __B),
953                                            (__v16qi)_mm_setzero_si128());
954}
955
956static __inline__ __m128i __DEFAULT_FN_ATTRS
957_mm_mask_packus_epi16(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
958{
959  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
960                                            (__v16qi)_mm_packus_epi16(__A, __B),
961                                            (__v16qi)__W);
962}
963
964static __inline__ __m256i __DEFAULT_FN_ATTRS
965_mm256_maskz_packus_epi16(__mmask32 __M, __m256i __A, __m256i __B)
966{
967  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
968                                         (__v32qi)_mm256_packus_epi16(__A, __B),
969                                         (__v32qi)_mm256_setzero_si256());
970}
971
972static __inline__ __m256i __DEFAULT_FN_ATTRS
973_mm256_mask_packus_epi16(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
974{
975  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
976                                         (__v32qi)_mm256_packus_epi16(__A, __B),
977                                         (__v32qi)__W);
978}
979
980static __inline__ __m128i __DEFAULT_FN_ATTRS
981_mm_mask_adds_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
982{
983  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
984                                             (__v16qi)_mm_adds_epi8(__A, __B),
985                                             (__v16qi)__W);
986}
987
988static __inline__ __m128i __DEFAULT_FN_ATTRS
989_mm_maskz_adds_epi8(__mmask16 __U, __m128i __A, __m128i __B)
990{
991  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
992                                             (__v16qi)_mm_adds_epi8(__A, __B),
993                                             (__v16qi)_mm_setzero_si128());
994}
995
996static __inline__ __m256i __DEFAULT_FN_ATTRS
997_mm256_mask_adds_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
998{
999  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1000                                            (__v32qi)_mm256_adds_epi8(__A, __B),
1001                                            (__v32qi)__W);
1002}
1003
1004static __inline__ __m256i __DEFAULT_FN_ATTRS
1005_mm256_maskz_adds_epi8(__mmask32 __U, __m256i __A, __m256i __B)
1006{
1007  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1008                                            (__v32qi)_mm256_adds_epi8(__A, __B),
1009                                            (__v32qi)_mm256_setzero_si256());
1010}
1011
1012static __inline__ __m128i __DEFAULT_FN_ATTRS
1013_mm_mask_adds_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1014{
1015  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1016                                             (__v8hi)_mm_adds_epi16(__A, __B),
1017                                             (__v8hi)__W);
1018}
1019
1020static __inline__ __m128i __DEFAULT_FN_ATTRS
1021_mm_maskz_adds_epi16(__mmask8 __U, __m128i __A, __m128i __B)
1022{
1023  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1024                                             (__v8hi)_mm_adds_epi16(__A, __B),
1025                                             (__v8hi)_mm_setzero_si128());
1026}
1027
1028static __inline__ __m256i __DEFAULT_FN_ATTRS
1029_mm256_mask_adds_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
1030{
1031  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1032                                           (__v16hi)_mm256_adds_epi16(__A, __B),
1033                                           (__v16hi)__W);
1034}
1035
1036static __inline__ __m256i __DEFAULT_FN_ATTRS
1037_mm256_maskz_adds_epi16(__mmask16 __U, __m256i __A, __m256i __B)
1038{
1039  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1040                                           (__v16hi)_mm256_adds_epi16(__A, __B),
1041                                           (__v16hi)_mm256_setzero_si256());
1042}
1043
1044static __inline__ __m128i __DEFAULT_FN_ATTRS
1045_mm_mask_adds_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
1046{
1047  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1048                                             (__v16qi)_mm_adds_epu8(__A, __B),
1049                                             (__v16qi)__W);
1050}
1051
1052static __inline__ __m128i __DEFAULT_FN_ATTRS
1053_mm_maskz_adds_epu8(__mmask16 __U, __m128i __A, __m128i __B)
1054{
1055  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1056                                             (__v16qi)_mm_adds_epu8(__A, __B),
1057                                             (__v16qi)_mm_setzero_si128());
1058}
1059
1060static __inline__ __m256i __DEFAULT_FN_ATTRS
1061_mm256_mask_adds_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
1062{
1063  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1064                                            (__v32qi)_mm256_adds_epu8(__A, __B),
1065                                            (__v32qi)__W);
1066}
1067
1068static __inline__ __m256i __DEFAULT_FN_ATTRS
1069_mm256_maskz_adds_epu8(__mmask32 __U, __m256i __A, __m256i __B)
1070{
1071  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1072                                            (__v32qi)_mm256_adds_epu8(__A, __B),
1073                                            (__v32qi)_mm256_setzero_si256());
1074}
1075
1076static __inline__ __m128i __DEFAULT_FN_ATTRS
1077_mm_mask_adds_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1078{
1079  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1080                                             (__v8hi)_mm_adds_epu16(__A, __B),
1081                                             (__v8hi)__W);
1082}
1083
1084static __inline__ __m128i __DEFAULT_FN_ATTRS
1085_mm_maskz_adds_epu16(__mmask8 __U, __m128i __A, __m128i __B)
1086{
1087  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1088                                             (__v8hi)_mm_adds_epu16(__A, __B),
1089                                             (__v8hi)_mm_setzero_si128());
1090}
1091
1092static __inline__ __m256i __DEFAULT_FN_ATTRS
1093_mm256_mask_adds_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
1094{
1095  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1096                                           (__v16hi)_mm256_adds_epu16(__A, __B),
1097                                           (__v16hi)__W);
1098}
1099
1100static __inline__ __m256i __DEFAULT_FN_ATTRS
1101_mm256_maskz_adds_epu16(__mmask16 __U, __m256i __A, __m256i __B)
1102{
1103  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1104                                           (__v16hi)_mm256_adds_epu16(__A, __B),
1105                                           (__v16hi)_mm256_setzero_si256());
1106}
1107
1108static __inline__ __m128i __DEFAULT_FN_ATTRS
1109_mm_mask_avg_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
1110{
1111  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1112                                             (__v16qi)_mm_avg_epu8(__A, __B),
1113                                             (__v16qi)__W);
1114}
1115
1116static __inline__ __m128i __DEFAULT_FN_ATTRS
1117_mm_maskz_avg_epu8(__mmask16 __U, __m128i __A, __m128i __B)
1118{
1119  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1120                                             (__v16qi)_mm_avg_epu8(__A, __B),
1121                                             (__v16qi)_mm_setzero_si128());
1122}
1123
1124static __inline__ __m256i __DEFAULT_FN_ATTRS
1125_mm256_mask_avg_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
1126{
1127  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1128                                             (__v32qi)_mm256_avg_epu8(__A, __B),
1129                                             (__v32qi)__W);
1130}
1131
1132static __inline__ __m256i __DEFAULT_FN_ATTRS
1133_mm256_maskz_avg_epu8(__mmask32 __U, __m256i __A, __m256i __B)
1134{
1135  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1136                                             (__v32qi)_mm256_avg_epu8(__A, __B),
1137                                             (__v32qi)_mm256_setzero_si256());
1138}
1139
1140static __inline__ __m128i __DEFAULT_FN_ATTRS
1141_mm_mask_avg_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1142{
1143  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1144                                             (__v8hi)_mm_avg_epu16(__A, __B),
1145                                             (__v8hi)__W);
1146}
1147
1148static __inline__ __m128i __DEFAULT_FN_ATTRS
1149_mm_maskz_avg_epu16(__mmask8 __U, __m128i __A, __m128i __B)
1150{
1151  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1152                                             (__v8hi)_mm_avg_epu16(__A, __B),
1153                                             (__v8hi)_mm_setzero_si128());
1154}
1155
1156static __inline__ __m256i __DEFAULT_FN_ATTRS
1157_mm256_mask_avg_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
1158{
1159  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1160                                            (__v16hi)_mm256_avg_epu16(__A, __B),
1161                                            (__v16hi)__W);
1162}
1163
1164static __inline__ __m256i __DEFAULT_FN_ATTRS
1165_mm256_maskz_avg_epu16(__mmask16 __U, __m256i __A, __m256i __B)
1166{
1167  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1168                                            (__v16hi)_mm256_avg_epu16(__A, __B),
1169                                            (__v16hi)_mm256_setzero_si256());
1170}
1171
1172static __inline__ __m128i __DEFAULT_FN_ATTRS
1173_mm_maskz_max_epi8(__mmask16 __M, __m128i __A, __m128i __B)
1174{
1175  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
1176                                             (__v16qi)_mm_max_epi8(__A, __B),
1177                                             (__v16qi)_mm_setzero_si128());
1178}
1179
1180static __inline__ __m128i __DEFAULT_FN_ATTRS
1181_mm_mask_max_epi8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
1182{
1183  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
1184                                             (__v16qi)_mm_max_epi8(__A, __B),
1185                                             (__v16qi)__W);
1186}
1187
1188static __inline__ __m256i __DEFAULT_FN_ATTRS
1189_mm256_maskz_max_epi8(__mmask32 __M, __m256i __A, __m256i __B)
1190{
1191  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
1192                                             (__v32qi)_mm256_max_epi8(__A, __B),
1193                                             (__v32qi)_mm256_setzero_si256());
1194}
1195
1196static __inline__ __m256i __DEFAULT_FN_ATTRS
1197_mm256_mask_max_epi8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
1198{
1199  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
1200                                             (__v32qi)_mm256_max_epi8(__A, __B),
1201                                             (__v32qi)__W);
1202}
1203
1204static __inline__ __m128i __DEFAULT_FN_ATTRS
1205_mm_maskz_max_epi16(__mmask8 __M, __m128i __A, __m128i __B)
1206{
1207  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
1208                                             (__v8hi)_mm_max_epi16(__A, __B),
1209                                             (__v8hi)_mm_setzero_si128());
1210}
1211
1212static __inline__ __m128i __DEFAULT_FN_ATTRS
1213_mm_mask_max_epi16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
1214{
1215  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
1216                                             (__v8hi)_mm_max_epi16(__A, __B),
1217                                             (__v8hi)__W);
1218}
1219
1220static __inline__ __m256i __DEFAULT_FN_ATTRS
1221_mm256_maskz_max_epi16(__mmask16 __M, __m256i __A, __m256i __B)
1222{
1223  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
1224                                            (__v16hi)_mm256_max_epi16(__A, __B),
1225                                            (__v16hi)_mm256_setzero_si256());
1226}
1227
1228static __inline__ __m256i __DEFAULT_FN_ATTRS
1229_mm256_mask_max_epi16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
1230{
1231  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
1232                                            (__v16hi)_mm256_max_epi16(__A, __B),
1233                                            (__v16hi)__W);
1234}
1235
1236static __inline__ __m128i __DEFAULT_FN_ATTRS
1237_mm_maskz_max_epu8(__mmask16 __M, __m128i __A, __m128i __B)
1238{
1239  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
1240                                             (__v16qi)_mm_max_epu8(__A, __B),
1241                                             (__v16qi)_mm_setzero_si128());
1242}
1243
1244static __inline__ __m128i __DEFAULT_FN_ATTRS
1245_mm_mask_max_epu8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
1246{
1247  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
1248                                             (__v16qi)_mm_max_epu8(__A, __B),
1249                                             (__v16qi)__W);
1250}
1251
1252static __inline__ __m256i __DEFAULT_FN_ATTRS
1253_mm256_maskz_max_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
1254{
1255  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
1256                                             (__v32qi)_mm256_max_epu8(__A, __B),
1257                                             (__v32qi)_mm256_setzero_si256());
1258}
1259
1260static __inline__ __m256i __DEFAULT_FN_ATTRS
1261_mm256_mask_max_epu8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
1262{
1263  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
1264                                             (__v32qi)_mm256_max_epu8(__A, __B),
1265                                             (__v32qi)__W);
1266}
1267
1268static __inline__ __m128i __DEFAULT_FN_ATTRS
1269_mm_maskz_max_epu16(__mmask8 __M, __m128i __A, __m128i __B)
1270{
1271  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
1272                                             (__v8hi)_mm_max_epu16(__A, __B),
1273                                             (__v8hi)_mm_setzero_si128());
1274}
1275
1276static __inline__ __m128i __DEFAULT_FN_ATTRS
1277_mm_mask_max_epu16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
1278{
1279  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
1280                                             (__v8hi)_mm_max_epu16(__A, __B),
1281                                             (__v8hi)__W);
1282}
1283
1284static __inline__ __m256i __DEFAULT_FN_ATTRS
1285_mm256_maskz_max_epu16(__mmask16 __M, __m256i __A, __m256i __B)
1286{
1287  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
1288                                            (__v16hi)_mm256_max_epu16(__A, __B),
1289                                            (__v16hi)_mm256_setzero_si256());
1290}
1291
1292static __inline__ __m256i __DEFAULT_FN_ATTRS
1293_mm256_mask_max_epu16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
1294{
1295  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
1296                                            (__v16hi)_mm256_max_epu16(__A, __B),
1297                                            (__v16hi)__W);
1298}
1299
1300static __inline__ __m128i __DEFAULT_FN_ATTRS
1301_mm_maskz_min_epi8(__mmask16 __M, __m128i __A, __m128i __B)
1302{
1303  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
1304                                             (__v16qi)_mm_min_epi8(__A, __B),
1305                                             (__v16qi)_mm_setzero_si128());
1306}
1307
1308static __inline__ __m128i __DEFAULT_FN_ATTRS
1309_mm_mask_min_epi8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
1310{
1311  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
1312                                             (__v16qi)_mm_min_epi8(__A, __B),
1313                                             (__v16qi)__W);
1314}
1315
1316static __inline__ __m256i __DEFAULT_FN_ATTRS
1317_mm256_maskz_min_epi8(__mmask32 __M, __m256i __A, __m256i __B)
1318{
1319  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
1320                                             (__v32qi)_mm256_min_epi8(__A, __B),
1321                                             (__v32qi)_mm256_setzero_si256());
1322}
1323
1324static __inline__ __m256i __DEFAULT_FN_ATTRS
1325_mm256_mask_min_epi8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
1326{
1327  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
1328                                             (__v32qi)_mm256_min_epi8(__A, __B),
1329                                             (__v32qi)__W);
1330}
1331
1332static __inline__ __m128i __DEFAULT_FN_ATTRS
1333_mm_maskz_min_epi16(__mmask8 __M, __m128i __A, __m128i __B)
1334{
1335  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
1336                                             (__v8hi)_mm_min_epi16(__A, __B),
1337                                             (__v8hi)_mm_setzero_si128());
1338}
1339
1340static __inline__ __m128i __DEFAULT_FN_ATTRS
1341_mm_mask_min_epi16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
1342{
1343  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
1344                                             (__v8hi)_mm_min_epi16(__A, __B),
1345                                             (__v8hi)__W);
1346}
1347
1348static __inline__ __m256i __DEFAULT_FN_ATTRS
1349_mm256_maskz_min_epi16(__mmask16 __M, __m256i __A, __m256i __B)
1350{
1351  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
1352                                            (__v16hi)_mm256_min_epi16(__A, __B),
1353                                            (__v16hi)_mm256_setzero_si256());
1354}
1355
1356static __inline__ __m256i __DEFAULT_FN_ATTRS
1357_mm256_mask_min_epi16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
1358{
1359  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
1360                                            (__v16hi)_mm256_min_epi16(__A, __B),
1361                                            (__v16hi)__W);
1362}
1363
1364static __inline__ __m128i __DEFAULT_FN_ATTRS
1365_mm_maskz_min_epu8(__mmask16 __M, __m128i __A, __m128i __B)
1366{
1367  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
1368                                             (__v16qi)_mm_min_epu8(__A, __B),
1369                                             (__v16qi)_mm_setzero_si128());
1370}
1371
1372static __inline__ __m128i __DEFAULT_FN_ATTRS
1373_mm_mask_min_epu8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
1374{
1375  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
1376                                             (__v16qi)_mm_min_epu8(__A, __B),
1377                                             (__v16qi)__W);
1378}
1379
1380static __inline__ __m256i __DEFAULT_FN_ATTRS
1381_mm256_maskz_min_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
1382{
1383  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
1384                                             (__v32qi)_mm256_min_epu8(__A, __B),
1385                                             (__v32qi)_mm256_setzero_si256());
1386}
1387
1388static __inline__ __m256i __DEFAULT_FN_ATTRS
1389_mm256_mask_min_epu8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
1390{
1391  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
1392                                             (__v32qi)_mm256_min_epu8(__A, __B),
1393                                             (__v32qi)__W);
1394}
1395
1396static __inline__ __m128i __DEFAULT_FN_ATTRS
1397_mm_maskz_min_epu16(__mmask8 __M, __m128i __A, __m128i __B)
1398{
1399  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
1400                                             (__v8hi)_mm_min_epu16(__A, __B),
1401                                             (__v8hi)_mm_setzero_si128());
1402}
1403
1404static __inline__ __m128i __DEFAULT_FN_ATTRS
1405_mm_mask_min_epu16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
1406{
1407  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
1408                                             (__v8hi)_mm_min_epu16(__A, __B),
1409                                             (__v8hi)__W);
1410}
1411
1412static __inline__ __m256i __DEFAULT_FN_ATTRS
1413_mm256_maskz_min_epu16(__mmask16 __M, __m256i __A, __m256i __B)
1414{
1415  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
1416                                            (__v16hi)_mm256_min_epu16(__A, __B),
1417                                            (__v16hi)_mm256_setzero_si256());
1418}
1419
1420static __inline__ __m256i __DEFAULT_FN_ATTRS
1421_mm256_mask_min_epu16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
1422{
1423  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
1424                                            (__v16hi)_mm256_min_epu16(__A, __B),
1425                                            (__v16hi)__W);
1426}
1427
1428static __inline__ __m128i __DEFAULT_FN_ATTRS
1429_mm_mask_shuffle_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
1430{
1431  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1432                                            (__v16qi)_mm_shuffle_epi8(__A, __B),
1433                                            (__v16qi)__W);
1434}
1435
1436static __inline__ __m128i __DEFAULT_FN_ATTRS
1437_mm_maskz_shuffle_epi8(__mmask16 __U, __m128i __A, __m128i __B)
1438{
1439  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1440                                            (__v16qi)_mm_shuffle_epi8(__A, __B),
1441                                            (__v16qi)_mm_setzero_si128());
1442}
1443
1444static __inline__ __m256i __DEFAULT_FN_ATTRS
1445_mm256_mask_shuffle_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
1446{
1447  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1448                                         (__v32qi)_mm256_shuffle_epi8(__A, __B),
1449                                         (__v32qi)__W);
1450}
1451
1452static __inline__ __m256i __DEFAULT_FN_ATTRS
1453_mm256_maskz_shuffle_epi8(__mmask32 __U, __m256i __A, __m256i __B)
1454{
1455  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1456                                         (__v32qi)_mm256_shuffle_epi8(__A, __B),
1457                                         (__v32qi)_mm256_setzero_si256());
1458}
1459
1460static __inline__ __m128i __DEFAULT_FN_ATTRS
1461_mm_mask_subs_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
1462{
1463  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1464                                             (__v16qi)_mm_subs_epi8(__A, __B),
1465                                             (__v16qi)__W);
1466}
1467
1468static __inline__ __m128i __DEFAULT_FN_ATTRS
1469_mm_maskz_subs_epi8(__mmask16 __U, __m128i __A, __m128i __B)
1470{
1471  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1472                                             (__v16qi)_mm_subs_epi8(__A, __B),
1473                                             (__v16qi)_mm_setzero_si128());
1474}
1475
1476static __inline__ __m256i __DEFAULT_FN_ATTRS
1477_mm256_mask_subs_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
1478{
1479  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1480                                            (__v32qi)_mm256_subs_epi8(__A, __B),
1481                                            (__v32qi)__W);
1482}
1483
1484static __inline__ __m256i __DEFAULT_FN_ATTRS
1485_mm256_maskz_subs_epi8(__mmask32 __U, __m256i __A, __m256i __B)
1486{
1487  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1488                                            (__v32qi)_mm256_subs_epi8(__A, __B),
1489                                            (__v32qi)_mm256_setzero_si256());
1490}
1491
1492static __inline__ __m128i __DEFAULT_FN_ATTRS
1493_mm_mask_subs_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1494{
1495  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1496                                             (__v8hi)_mm_subs_epi16(__A, __B),
1497                                             (__v8hi)__W);
1498}
1499
1500static __inline__ __m128i __DEFAULT_FN_ATTRS
1501_mm_maskz_subs_epi16(__mmask8 __U, __m128i __A, __m128i __B)
1502{
1503  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1504                                             (__v8hi)_mm_subs_epi16(__A, __B),
1505                                             (__v8hi)_mm_setzero_si128());
1506}
1507
1508static __inline__ __m256i __DEFAULT_FN_ATTRS
1509_mm256_mask_subs_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
1510{
1511  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1512                                           (__v16hi)_mm256_subs_epi16(__A, __B),
1513                                           (__v16hi)__W);
1514}
1515
1516static __inline__ __m256i __DEFAULT_FN_ATTRS
1517_mm256_maskz_subs_epi16(__mmask16 __U, __m256i __A, __m256i __B)
1518{
1519  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1520                                           (__v16hi)_mm256_subs_epi16(__A, __B),
1521                                           (__v16hi)_mm256_setzero_si256());
1522}
1523
1524static __inline__ __m128i __DEFAULT_FN_ATTRS
1525_mm_mask_subs_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
1526{
1527  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1528                                             (__v16qi)_mm_subs_epu8(__A, __B),
1529                                             (__v16qi)__W);
1530}
1531
1532static __inline__ __m128i __DEFAULT_FN_ATTRS
1533_mm_maskz_subs_epu8(__mmask16 __U, __m128i __A, __m128i __B)
1534{
1535  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1536                                             (__v16qi)_mm_subs_epu8(__A, __B),
1537                                             (__v16qi)_mm_setzero_si128());
1538}
1539
1540static __inline__ __m256i __DEFAULT_FN_ATTRS
1541_mm256_mask_subs_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
1542{
1543  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1544                                            (__v32qi)_mm256_subs_epu8(__A, __B),
1545                                            (__v32qi)__W);
1546}
1547
1548static __inline__ __m256i __DEFAULT_FN_ATTRS
1549_mm256_maskz_subs_epu8(__mmask32 __U, __m256i __A, __m256i __B)
1550{
1551  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1552                                            (__v32qi)_mm256_subs_epu8(__A, __B),
1553                                            (__v32qi)_mm256_setzero_si256());
1554}
1555
1556static __inline__ __m128i __DEFAULT_FN_ATTRS
1557_mm_mask_subs_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1558{
1559  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1560                                             (__v8hi)_mm_subs_epu16(__A, __B),
1561                                             (__v8hi)__W);
1562}
1563
1564static __inline__ __m128i __DEFAULT_FN_ATTRS
1565_mm_maskz_subs_epu16(__mmask8 __U, __m128i __A, __m128i __B)
1566{
1567  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1568                                             (__v8hi)_mm_subs_epu16(__A, __B),
1569                                             (__v8hi)_mm_setzero_si128());
1570}
1571
1572static __inline__ __m256i __DEFAULT_FN_ATTRS
1573_mm256_mask_subs_epu16(__m256i __W, __mmask16 __U, __m256i __A,
1574      __m256i __B) {
1575  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1576                                           (__v16hi)_mm256_subs_epu16(__A, __B),
1577                                           (__v16hi)__W);
1578}
1579
1580static __inline__ __m256i __DEFAULT_FN_ATTRS
1581_mm256_maskz_subs_epu16(__mmask16 __U, __m256i __A, __m256i __B)
1582{
1583  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1584                                           (__v16hi)_mm256_subs_epu16(__A, __B),
1585                                           (__v16hi)_mm256_setzero_si256());
1586}
1587
1588static __inline__ __m128i __DEFAULT_FN_ATTRS
1589_mm_mask2_permutex2var_epi16 (__m128i __A, __m128i __I, __mmask8 __U,
1590            __m128i __B)
1591{
1592  return (__m128i) __builtin_ia32_vpermi2varhi128_mask ((__v8hi) __A,
1593               (__v8hi) __I /* idx */ ,
1594               (__v8hi) __B,
1595               (__mmask8) __U);
1596}
1597
1598static __inline__ __m256i __DEFAULT_FN_ATTRS
1599_mm256_mask2_permutex2var_epi16 (__m256i __A, __m256i __I,
1600         __mmask16 __U, __m256i __B)
1601{
1602  return (__m256i) __builtin_ia32_vpermi2varhi256_mask ((__v16hi) __A,
1603               (__v16hi) __I /* idx */ ,
1604               (__v16hi) __B,
1605               (__mmask16) __U);
1606}
1607
1608static __inline__ __m128i __DEFAULT_FN_ATTRS
1609_mm_permutex2var_epi16 (__m128i __A, __m128i __I, __m128i __B)
1610{
1611  return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I/* idx */,
1612               (__v8hi) __A,
1613               (__v8hi) __B,
1614               (__mmask8) -1);
1615}
1616
1617static __inline__ __m128i __DEFAULT_FN_ATTRS
1618_mm_mask_permutex2var_epi16 (__m128i __A, __mmask8 __U, __m128i __I,
1619           __m128i __B)
1620{
1621  return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I/* idx */,
1622               (__v8hi) __A,
1623               (__v8hi) __B,
1624               (__mmask8) __U);
1625}
1626
1627static __inline__ __m128i __DEFAULT_FN_ATTRS
1628_mm_maskz_permutex2var_epi16 (__mmask8 __U, __m128i __A, __m128i __I,
1629            __m128i __B)
1630{
1631  return (__m128i) __builtin_ia32_vpermt2varhi128_maskz ((__v8hi) __I/* idx */,
1632               (__v8hi) __A,
1633               (__v8hi) __B,
1634               (__mmask8) __U);
1635}
1636
1637static __inline__ __m256i __DEFAULT_FN_ATTRS
1638_mm256_permutex2var_epi16 (__m256i __A, __m256i __I, __m256i __B)
1639{
1640  return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I/* idx */,
1641               (__v16hi) __A,
1642               (__v16hi) __B,
1643               (__mmask16) -1);
1644}
1645
1646static __inline__ __m256i __DEFAULT_FN_ATTRS
1647_mm256_mask_permutex2var_epi16 (__m256i __A, __mmask16 __U,
1648        __m256i __I, __m256i __B)
1649{
1650  return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I/* idx */,
1651               (__v16hi) __A,
1652               (__v16hi) __B,
1653               (__mmask16) __U);
1654}
1655
1656static __inline__ __m256i __DEFAULT_FN_ATTRS
1657_mm256_maskz_permutex2var_epi16 (__mmask16 __U, __m256i __A,
1658         __m256i __I, __m256i __B)
1659{
1660  return (__m256i) __builtin_ia32_vpermt2varhi256_maskz ((__v16hi) __I/* idx */,
1661               (__v16hi) __A,
1662               (__v16hi) __B,
1663               (__mmask16) __U);
1664}
1665
1666static __inline__ __m128i __DEFAULT_FN_ATTRS
1667_mm_mask_maddubs_epi16(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
1668  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1669                                            (__v8hi)_mm_maddubs_epi16(__X, __Y),
1670                                            (__v8hi)__W);
1671}
1672
1673static __inline__ __m128i __DEFAULT_FN_ATTRS
1674_mm_maskz_maddubs_epi16(__mmask8 __U, __m128i __X, __m128i __Y) {
1675  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1676                                            (__v8hi)_mm_maddubs_epi16(__X, __Y),
1677                                            (__v8hi)_mm_setzero_si128());
1678}
1679
1680static __inline__ __m256i __DEFAULT_FN_ATTRS
1681_mm256_mask_maddubs_epi16(__m256i __W, __mmask16 __U, __m256i __X,
1682                          __m256i __Y) {
1683  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1684                                        (__v16hi)_mm256_maddubs_epi16(__X, __Y),
1685                                        (__v16hi)__W);
1686}
1687
1688static __inline__ __m256i __DEFAULT_FN_ATTRS
1689_mm256_maskz_maddubs_epi16(__mmask16 __U, __m256i __X, __m256i __Y) {
1690  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1691                                        (__v16hi)_mm256_maddubs_epi16(__X, __Y),
1692                                        (__v16hi)_mm256_setzero_si256());
1693}
1694
1695static __inline__ __m128i __DEFAULT_FN_ATTRS
1696_mm_mask_madd_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1697  return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
1698                                             (__v4si)_mm_madd_epi16(__A, __B),
1699                                             (__v4si)__W);
1700}
1701
1702static __inline__ __m128i __DEFAULT_FN_ATTRS
1703_mm_maskz_madd_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
1704  return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
1705                                             (__v4si)_mm_madd_epi16(__A, __B),
1706                                             (__v4si)_mm_setzero_si128());
1707}
1708
1709static __inline__ __m256i __DEFAULT_FN_ATTRS
1710_mm256_mask_madd_epi16(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
1711  return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
1712                                            (__v8si)_mm256_madd_epi16(__A, __B),
1713                                            (__v8si)__W);
1714}
1715
1716static __inline__ __m256i __DEFAULT_FN_ATTRS
1717_mm256_maskz_madd_epi16(__mmask8 __U, __m256i __A, __m256i __B) {
1718  return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
1719                                            (__v8si)_mm256_madd_epi16(__A, __B),
1720                                            (__v8si)_mm256_setzero_si256());
1721}
1722
1723static __inline__ __m128i __DEFAULT_FN_ATTRS
1724_mm_cvtsepi16_epi8 (__m128i __A) {
1725  return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
1726               (__v16qi) _mm_setzero_si128(),
1727               (__mmask8) -1);
1728}
1729
1730static __inline__ __m128i __DEFAULT_FN_ATTRS
1731_mm_mask_cvtsepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) {
1732  return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
1733               (__v16qi) __O,
1734                __M);
1735}
1736
1737static __inline__ __m128i __DEFAULT_FN_ATTRS
1738_mm_maskz_cvtsepi16_epi8 (__mmask8 __M, __m128i __A) {
1739  return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
1740               (__v16qi) _mm_setzero_si128(),
1741               __M);
1742}
1743
1744static __inline__ __m128i __DEFAULT_FN_ATTRS
1745_mm256_cvtsepi16_epi8 (__m256i __A) {
1746  return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
1747               (__v16qi) _mm_setzero_si128(),
1748               (__mmask16) -1);
1749}
1750
1751static __inline__ __m128i __DEFAULT_FN_ATTRS
1752_mm256_mask_cvtsepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) {
1753  return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
1754               (__v16qi) __O,
1755                __M);
1756}
1757
1758static __inline__ __m128i __DEFAULT_FN_ATTRS
1759_mm256_maskz_cvtsepi16_epi8 (__mmask16 __M, __m256i __A) {
1760  return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
1761               (__v16qi) _mm_setzero_si128(),
1762               __M);
1763}
1764
1765static __inline__ __m128i __DEFAULT_FN_ATTRS
1766_mm_cvtusepi16_epi8 (__m128i __A) {
1767  return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
1768                (__v16qi) _mm_setzero_si128(),
1769                (__mmask8) -1);
1770}
1771
1772static __inline__ __m128i __DEFAULT_FN_ATTRS
1773_mm_mask_cvtusepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) {
1774  return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
1775                (__v16qi) __O,
1776                __M);
1777}
1778
1779static __inline__ __m128i __DEFAULT_FN_ATTRS
1780_mm_maskz_cvtusepi16_epi8 (__mmask8 __M, __m128i __A) {
1781  return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
1782                (__v16qi) _mm_setzero_si128(),
1783                __M);
1784}
1785
1786static __inline__ __m128i __DEFAULT_FN_ATTRS
1787_mm256_cvtusepi16_epi8 (__m256i __A) {
1788  return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
1789                (__v16qi) _mm_setzero_si128(),
1790                (__mmask16) -1);
1791}
1792
1793static __inline__ __m128i __DEFAULT_FN_ATTRS
1794_mm256_mask_cvtusepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) {
1795  return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
1796                (__v16qi) __O,
1797                __M);
1798}
1799
1800static __inline__ __m128i __DEFAULT_FN_ATTRS
1801_mm256_maskz_cvtusepi16_epi8 (__mmask16 __M, __m256i __A) {
1802  return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
1803                (__v16qi) _mm_setzero_si128(),
1804                __M);
1805}
1806
1807static __inline__ __m128i __DEFAULT_FN_ATTRS
1808_mm_cvtepi16_epi8 (__m128i __A) {
1809
1810  return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
1811               (__v16qi) _mm_setzero_si128(),
1812               (__mmask8) -1);
1813}
1814
1815static __inline__ __m128i __DEFAULT_FN_ATTRS
1816_mm_mask_cvtepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) {
1817  return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
1818               (__v16qi) __O,
1819               __M);
1820}
1821
1822static __inline__ __m128i __DEFAULT_FN_ATTRS
1823_mm_maskz_cvtepi16_epi8 (__mmask8 __M, __m128i __A) {
1824  return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
1825               (__v16qi) _mm_setzero_si128(),
1826               __M);
1827}
1828
1829static __inline__ void __DEFAULT_FN_ATTRS
1830_mm_mask_cvtepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
1831{
1832  __builtin_ia32_pmovwb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M);
1833}
1834
1835
1836static __inline__ void __DEFAULT_FN_ATTRS
1837_mm_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
1838{
1839  __builtin_ia32_pmovswb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M);
1840}
1841
1842static __inline__ void __DEFAULT_FN_ATTRS
1843_mm_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
1844{
1845  __builtin_ia32_pmovuswb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M);
1846}
1847
1848static __inline__ __m128i __DEFAULT_FN_ATTRS
1849_mm256_cvtepi16_epi8 (__m256i __A) {
1850  return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
1851               (__v16qi) _mm_setzero_si128(),
1852               (__mmask16) -1);
1853}
1854
1855static __inline__ __m128i __DEFAULT_FN_ATTRS
1856_mm256_mask_cvtepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) {
1857  return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
1858               (__v16qi) __O,
1859               __M);
1860}
1861
1862static __inline__ __m128i __DEFAULT_FN_ATTRS
1863_mm256_maskz_cvtepi16_epi8 (__mmask16 __M, __m256i __A) {
1864  return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
1865               (__v16qi) _mm_setzero_si128(),
1866               __M);
1867}
1868
1869static __inline__ void __DEFAULT_FN_ATTRS
1870_mm256_mask_cvtepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A)
1871{
1872  __builtin_ia32_pmovwb256mem_mask ((__v16qi *) __P, (__v16hi) __A, __M);
1873}
1874
1875static __inline__ void __DEFAULT_FN_ATTRS
1876_mm256_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A)
1877{
1878  __builtin_ia32_pmovswb256mem_mask ((__v16qi *) __P, (__v16hi) __A, __M);
1879}
1880
1881static __inline__ void __DEFAULT_FN_ATTRS
1882_mm256_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
1883{
1884  __builtin_ia32_pmovuswb256mem_mask ((__v16qi*) __P, (__v16hi) __A, __M);
1885}
1886
1887static __inline__ __m128i __DEFAULT_FN_ATTRS
1888_mm_mask_mulhrs_epi16(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
1889  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1890                                             (__v8hi)_mm_mulhrs_epi16(__X, __Y),
1891                                             (__v8hi)__W);
1892}
1893
1894static __inline__ __m128i __DEFAULT_FN_ATTRS
1895_mm_maskz_mulhrs_epi16(__mmask8 __U, __m128i __X, __m128i __Y) {
1896  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1897                                             (__v8hi)_mm_mulhrs_epi16(__X, __Y),
1898                                             (__v8hi)_mm_setzero_si128());
1899}
1900
1901static __inline__ __m256i __DEFAULT_FN_ATTRS
1902_mm256_mask_mulhrs_epi16(__m256i __W, __mmask16 __U, __m256i __X, __m256i __Y) {
1903  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1904                                         (__v16hi)_mm256_mulhrs_epi16(__X, __Y),
1905                                         (__v16hi)__W);
1906}
1907
1908static __inline__ __m256i __DEFAULT_FN_ATTRS
1909_mm256_maskz_mulhrs_epi16(__mmask16 __U, __m256i __X, __m256i __Y) {
1910  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1911                                         (__v16hi)_mm256_mulhrs_epi16(__X, __Y),
1912                                         (__v16hi)_mm256_setzero_si256());
1913}
1914
1915static __inline__ __m128i __DEFAULT_FN_ATTRS
1916_mm_mask_mulhi_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1917  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1918                                             (__v8hi)_mm_mulhi_epu16(__A, __B),
1919                                             (__v8hi)__W);
1920}
1921
1922static __inline__ __m128i __DEFAULT_FN_ATTRS
1923_mm_maskz_mulhi_epu16(__mmask8 __U, __m128i __A, __m128i __B) {
1924  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1925                                             (__v8hi)_mm_mulhi_epu16(__A, __B),
1926                                             (__v8hi)_mm_setzero_si128());
1927}
1928
1929static __inline__ __m256i __DEFAULT_FN_ATTRS
1930_mm256_mask_mulhi_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
1931  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1932                                          (__v16hi)_mm256_mulhi_epu16(__A, __B),
1933                                          (__v16hi)__W);
1934}
1935
1936static __inline__ __m256i __DEFAULT_FN_ATTRS
1937_mm256_maskz_mulhi_epu16(__mmask16 __U, __m256i __A, __m256i __B) {
1938  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1939                                          (__v16hi)_mm256_mulhi_epu16(__A, __B),
1940                                          (__v16hi)_mm256_setzero_si256());
1941}
1942
1943static __inline__ __m128i __DEFAULT_FN_ATTRS
1944_mm_mask_mulhi_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1945  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1946                                             (__v8hi)_mm_mulhi_epi16(__A, __B),
1947                                             (__v8hi)__W);
1948}
1949
1950static __inline__ __m128i __DEFAULT_FN_ATTRS
1951_mm_maskz_mulhi_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
1952  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1953                                             (__v8hi)_mm_mulhi_epi16(__A, __B),
1954                                             (__v8hi)_mm_setzero_si128());
1955}
1956
1957static __inline__ __m256i __DEFAULT_FN_ATTRS
1958_mm256_mask_mulhi_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
1959  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1960                                          (__v16hi)_mm256_mulhi_epi16(__A, __B),
1961                                          (__v16hi)__W);
1962}
1963
1964static __inline__ __m256i __DEFAULT_FN_ATTRS
1965_mm256_maskz_mulhi_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
1966  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1967                                          (__v16hi)_mm256_mulhi_epi16(__A, __B),
1968                                          (__v16hi)_mm256_setzero_si256());
1969}
1970
1971static __inline__ __m128i __DEFAULT_FN_ATTRS
1972_mm_mask_unpackhi_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
1973  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1974                                           (__v16qi)_mm_unpackhi_epi8(__A, __B),
1975                                           (__v16qi)__W);
1976}
1977
1978static __inline__ __m128i __DEFAULT_FN_ATTRS
1979_mm_maskz_unpackhi_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
1980  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1981                                           (__v16qi)_mm_unpackhi_epi8(__A, __B),
1982                                           (__v16qi)_mm_setzero_si128());
1983}
1984
1985static __inline__ __m256i __DEFAULT_FN_ATTRS
1986_mm256_mask_unpackhi_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
1987  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1988                                        (__v32qi)_mm256_unpackhi_epi8(__A, __B),
1989                                        (__v32qi)__W);
1990}
1991
1992static __inline__ __m256i __DEFAULT_FN_ATTRS
1993_mm256_maskz_unpackhi_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
1994  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1995                                        (__v32qi)_mm256_unpackhi_epi8(__A, __B),
1996                                        (__v32qi)_mm256_setzero_si256());
1997}
1998
1999static __inline__ __m128i __DEFAULT_FN_ATTRS
2000_mm_mask_unpackhi_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
2001  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2002                                           (__v8hi)_mm_unpackhi_epi16(__A, __B),
2003                                           (__v8hi)__W);
2004}
2005
2006static __inline__ __m128i __DEFAULT_FN_ATTRS
2007_mm_maskz_unpackhi_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
2008  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2009                                           (__v8hi)_mm_unpackhi_epi16(__A, __B),
2010                                           (__v8hi) _mm_setzero_si128());
2011}
2012
2013static __inline__ __m256i __DEFAULT_FN_ATTRS
2014_mm256_mask_unpackhi_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
2015  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2016                                       (__v16hi)_mm256_unpackhi_epi16(__A, __B),
2017                                       (__v16hi)__W);
2018}
2019
2020static __inline__ __m256i __DEFAULT_FN_ATTRS
2021_mm256_maskz_unpackhi_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
2022  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2023                                       (__v16hi)_mm256_unpackhi_epi16(__A, __B),
2024                                       (__v16hi)_mm256_setzero_si256());
2025}
2026
2027static __inline__ __m128i __DEFAULT_FN_ATTRS
2028_mm_mask_unpacklo_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
2029  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
2030                                           (__v16qi)_mm_unpacklo_epi8(__A, __B),
2031                                           (__v16qi)__W);
2032}
2033
2034static __inline__ __m128i __DEFAULT_FN_ATTRS
2035_mm_maskz_unpacklo_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
2036  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
2037                                           (__v16qi)_mm_unpacklo_epi8(__A, __B),
2038                                           (__v16qi)_mm_setzero_si128());
2039}
2040
2041static __inline__ __m256i __DEFAULT_FN_ATTRS
2042_mm256_mask_unpacklo_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
2043  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
2044                                        (__v32qi)_mm256_unpacklo_epi8(__A, __B),
2045                                        (__v32qi)__W);
2046}
2047
2048static __inline__ __m256i __DEFAULT_FN_ATTRS
2049_mm256_maskz_unpacklo_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
2050  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
2051                                        (__v32qi)_mm256_unpacklo_epi8(__A, __B),
2052                                        (__v32qi)_mm256_setzero_si256());
2053}
2054
2055static __inline__ __m128i __DEFAULT_FN_ATTRS
2056_mm_mask_unpacklo_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
2057  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2058                                           (__v8hi)_mm_unpacklo_epi16(__A, __B),
2059                                           (__v8hi)__W);
2060}
2061
2062static __inline__ __m128i __DEFAULT_FN_ATTRS
2063_mm_maskz_unpacklo_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
2064  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2065                                           (__v8hi)_mm_unpacklo_epi16(__A, __B),
2066                                           (__v8hi) _mm_setzero_si128());
2067}
2068
2069static __inline__ __m256i __DEFAULT_FN_ATTRS
2070_mm256_mask_unpacklo_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
2071  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2072                                       (__v16hi)_mm256_unpacklo_epi16(__A, __B),
2073                                       (__v16hi)__W);
2074}
2075
2076static __inline__ __m256i __DEFAULT_FN_ATTRS
2077_mm256_maskz_unpacklo_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
2078  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2079                                       (__v16hi)_mm256_unpacklo_epi16(__A, __B),
2080                                       (__v16hi)_mm256_setzero_si256());
2081}
2082
2083static __inline__ __m128i __DEFAULT_FN_ATTRS
2084_mm_mask_cvtepi8_epi16(__m128i __W, __mmask8 __U, __m128i __A)
2085{
2086  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2087                                             (__v8hi)_mm_cvtepi8_epi16(__A),
2088                                             (__v8hi)__W);
2089}
2090
2091static __inline__ __m128i __DEFAULT_FN_ATTRS
2092_mm_maskz_cvtepi8_epi16(__mmask8 __U, __m128i __A)
2093{
2094  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2095                                             (__v8hi)_mm_cvtepi8_epi16(__A),
2096                                             (__v8hi)_mm_setzero_si128());
2097}
2098
2099static __inline__ __m256i __DEFAULT_FN_ATTRS
2100_mm256_mask_cvtepi8_epi16(__m256i __W, __mmask16 __U, __m128i __A)
2101{
2102  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2103                                             (__v16hi)_mm256_cvtepi8_epi16(__A),
2104                                             (__v16hi)__W);
2105}
2106
2107static __inline__ __m256i __DEFAULT_FN_ATTRS
2108_mm256_maskz_cvtepi8_epi16(__mmask16 __U, __m128i __A)
2109{
2110  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2111                                             (__v16hi)_mm256_cvtepi8_epi16(__A),
2112                                             (__v16hi)_mm256_setzero_si256());
2113}
2114
2115
2116static __inline__ __m128i __DEFAULT_FN_ATTRS
2117_mm_mask_cvtepu8_epi16(__m128i __W, __mmask8 __U, __m128i __A)
2118{
2119  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2120                                             (__v8hi)_mm_cvtepu8_epi16(__A),
2121                                             (__v8hi)__W);
2122}
2123
2124static __inline__ __m128i __DEFAULT_FN_ATTRS
2125_mm_maskz_cvtepu8_epi16(__mmask8 __U, __m128i __A)
2126{
2127  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2128                                             (__v8hi)_mm_cvtepu8_epi16(__A),
2129                                             (__v8hi)_mm_setzero_si128());
2130}
2131
2132static __inline__ __m256i __DEFAULT_FN_ATTRS
2133_mm256_mask_cvtepu8_epi16(__m256i __W, __mmask16 __U, __m128i __A)
2134{
2135  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2136                                             (__v16hi)_mm256_cvtepu8_epi16(__A),
2137                                             (__v16hi)__W);
2138}
2139
2140static __inline__ __m256i __DEFAULT_FN_ATTRS
2141_mm256_maskz_cvtepu8_epi16 (__mmask16 __U, __m128i __A)
2142{
2143  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2144                                             (__v16hi)_mm256_cvtepu8_epi16(__A),
2145                                             (__v16hi)_mm256_setzero_si256());
2146}
2147
2148
2149#define _mm_cmp_epi8_mask(a, b, p) __extension__ ({ \
2150  (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)(a), \
2151                                         (__v16qi)(__m128i)(b), (int)(p), \
2152                                         (__mmask16)-1); })
2153
2154#define _mm_mask_cmp_epi8_mask(m, a, b, p) __extension__ ({ \
2155  (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)(a), \
2156                                         (__v16qi)(__m128i)(b), (int)(p), \
2157                                         (__mmask16)(m)); })
2158
2159#define _mm_cmp_epu8_mask(a, b, p) __extension__ ({ \
2160  (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)(__m128i)(a), \
2161                                          (__v16qi)(__m128i)(b), (int)(p), \
2162                                          (__mmask16)-1); })
2163
2164#define _mm_mask_cmp_epu8_mask(m, a, b, p) __extension__ ({ \
2165  (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)(__m128i)(a), \
2166                                          (__v16qi)(__m128i)(b), (int)(p), \
2167                                          (__mmask16)(m)); })
2168
2169#define _mm256_cmp_epi8_mask(a, b, p) __extension__ ({ \
2170  (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)(a), \
2171                                         (__v32qi)(__m256i)(b), (int)(p), \
2172                                         (__mmask32)-1); })
2173
2174#define _mm256_mask_cmp_epi8_mask(m, a, b, p) __extension__ ({ \
2175  (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)(a), \
2176                                         (__v32qi)(__m256i)(b), (int)(p), \
2177                                         (__mmask32)(m)); })
2178
2179#define _mm256_cmp_epu8_mask(a, b, p) __extension__ ({ \
2180  (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)(__m256i)(a), \
2181                                          (__v32qi)(__m256i)(b), (int)(p), \
2182                                          (__mmask32)-1); })
2183
2184#define _mm256_mask_cmp_epu8_mask(m, a, b, p) __extension__ ({ \
2185  (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)(__m256i)(a), \
2186                                          (__v32qi)(__m256i)(b), (int)(p), \
2187                                          (__mmask32)(m)); })
2188
2189#define _mm_cmp_epi16_mask(a, b, p) __extension__ ({ \
2190  (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)(a), \
2191                                        (__v8hi)(__m128i)(b), (int)(p), \
2192                                        (__mmask8)-1); })
2193
2194#define _mm_mask_cmp_epi16_mask(m, a, b, p) __extension__ ({ \
2195  (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)(a), \
2196                                        (__v8hi)(__m128i)(b), (int)(p), \
2197                                        (__mmask8)(m)); })
2198
2199#define _mm_cmp_epu16_mask(a, b, p) __extension__ ({ \
2200  (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)(__m128i)(a), \
2201                                         (__v8hi)(__m128i)(b), (int)(p), \
2202                                         (__mmask8)-1); })
2203
2204#define _mm_mask_cmp_epu16_mask(m, a, b, p) __extension__ ({ \
2205  (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)(__m128i)(a), \
2206                                         (__v8hi)(__m128i)(b), (int)(p), \
2207                                         (__mmask8)(m)); })
2208
2209#define _mm256_cmp_epi16_mask(a, b, p) __extension__ ({ \
2210  (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)(a), \
2211                                         (__v16hi)(__m256i)(b), (int)(p), \
2212                                         (__mmask16)-1); })
2213
2214#define _mm256_mask_cmp_epi16_mask(m, a, b, p) __extension__ ({ \
2215  (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)(a), \
2216                                         (__v16hi)(__m256i)(b), (int)(p), \
2217                                         (__mmask16)(m)); })
2218
2219#define _mm256_cmp_epu16_mask(a, b, p) __extension__ ({ \
2220  (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)(__m256i)(a), \
2221                                          (__v16hi)(__m256i)(b), (int)(p), \
2222                                          (__mmask16)-1); })
2223
2224#define _mm256_mask_cmp_epu16_mask(m, a, b, p) __extension__ ({ \
2225  (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)(__m256i)(a), \
2226                                          (__v16hi)(__m256i)(b), (int)(p), \
2227                                          (__mmask16)(m)); })
2228
2229#define _mm_mask_shufflehi_epi16(W, U, A, imm) __extension__ ({ \
2230  (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
2231                                      (__v8hi)_mm_shufflehi_epi16((A), (imm)), \
2232                                      (__v8hi)(__m128i)(W)); })
2233
2234#define _mm_maskz_shufflehi_epi16(U, A, imm) __extension__ ({ \
2235  (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
2236                                      (__v8hi)_mm_shufflehi_epi16((A), (imm)), \
2237                                      (__v8hi)_mm_setzero_hi()); })
2238
2239#define _mm256_mask_shufflehi_epi16(W, U, A, imm) __extension__ ({ \
2240  (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
2241                                      (__v16hi)_mm256_shufflehi_epi16((A), (imm)), \
2242                                      (__v16hi)(__m256i)(W)); })
2243
2244#define _mm256_maskz_shufflehi_epi16(U, A, imm) __extension__ ({ \
2245  (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
2246                                      (__v16hi)_mm256_shufflehi_epi16((A), (imm)), \
2247                                      (__v16hi)_mm256_setzero_si256()); })
2248
2249#define _mm_mask_shufflelo_epi16(W, U, A, imm) __extension__ ({ \
2250  (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
2251                                      (__v8hi)_mm_shufflelo_epi16((A), (imm)), \
2252                                      (__v8hi)(__m128i)(W)); })
2253
2254#define _mm_maskz_shufflelo_epi16(U, A, imm) __extension__ ({ \
2255  (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
2256                                      (__v8hi)_mm_shufflelo_epi16((A), (imm)), \
2257                                      (__v8hi)_mm_setzero_hi()); })
2258
2259#define _mm256_mask_shufflelo_epi16(W, U, A, imm) __extension__ ({ \
2260  (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
2261                                      (__v16hi)_mm256_shufflelo_epi16((A), \
2262                                                                      (imm)), \
2263                                      (__v16hi)(__m256i)(W)); })
2264
2265#define _mm256_maskz_shufflelo_epi16(U, A, imm) __extension__ ({ \
2266  (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
2267                                      (__v16hi)_mm256_shufflelo_epi16((A), \
2268                                                                      (imm)), \
2269                                      (__v16hi)_mm256_setzero_si256()); })
2270
2271static __inline__ __m256i __DEFAULT_FN_ATTRS
2272_mm256_sllv_epi16(__m256i __A, __m256i __B)
2273{
2274  return (__m256i)__builtin_ia32_psllv16hi((__v16hi)__A, (__v16hi)__B);
2275}
2276
2277static __inline__ __m256i __DEFAULT_FN_ATTRS
2278_mm256_mask_sllv_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
2279{
2280  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2281                                           (__v16hi)_mm256_sllv_epi16(__A, __B),
2282                                           (__v16hi)__W);
2283}
2284
2285static __inline__ __m256i __DEFAULT_FN_ATTRS
2286_mm256_maskz_sllv_epi16(__mmask16 __U, __m256i __A, __m256i __B)
2287{
2288  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2289                                           (__v16hi)_mm256_sllv_epi16(__A, __B),
2290                                           (__v16hi)_mm256_setzero_si256());
2291}
2292
2293static __inline__ __m128i __DEFAULT_FN_ATTRS
2294_mm_sllv_epi16(__m128i __A, __m128i __B)
2295{
2296  return (__m128i)__builtin_ia32_psllv8hi((__v8hi)__A, (__v8hi)__B);
2297}
2298
2299static __inline__ __m128i __DEFAULT_FN_ATTRS
2300_mm_mask_sllv_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
2301{
2302  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2303                                             (__v8hi)_mm_sllv_epi16(__A, __B),
2304                                             (__v8hi)__W);
2305}
2306
2307static __inline__ __m128i __DEFAULT_FN_ATTRS
2308_mm_maskz_sllv_epi16(__mmask8 __U, __m128i __A, __m128i __B)
2309{
2310  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2311                                             (__v8hi)_mm_sllv_epi16(__A, __B),
2312                                             (__v8hi)_mm_setzero_si128());
2313}
2314
2315static __inline__ __m128i __DEFAULT_FN_ATTRS
2316_mm_mask_sll_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
2317{
2318  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2319                                             (__v8hi)_mm_sll_epi16(__A, __B),
2320                                             (__v8hi)__W);
2321}
2322
2323static __inline__ __m128i __DEFAULT_FN_ATTRS
2324_mm_maskz_sll_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
2325{
2326  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2327                                             (__v8hi)_mm_sll_epi16(__A, __B),
2328                                             (__v8hi)_mm_setzero_si128());
2329}
2330
2331static __inline__ __m256i __DEFAULT_FN_ATTRS
2332_mm256_mask_sll_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B)
2333{
2334  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2335                                          (__v16hi)_mm256_sll_epi16(__A, __B),
2336                                          (__v16hi)__W);
2337}
2338
2339static __inline__ __m256i __DEFAULT_FN_ATTRS
2340_mm256_maskz_sll_epi16(__mmask16 __U, __m256i __A, __m128i __B)
2341{
2342  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2343                                          (__v16hi)_mm256_sll_epi16(__A, __B),
2344                                          (__v16hi)_mm256_setzero_si256());
2345}
2346
2347static __inline__ __m128i __DEFAULT_FN_ATTRS
2348_mm_mask_slli_epi16(__m128i __W, __mmask8 __U, __m128i __A, int __B)
2349{
2350  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2351                                             (__v8hi)_mm_slli_epi16(__A, __B),
2352                                             (__v8hi)__W);
2353}
2354
2355static __inline__ __m128i __DEFAULT_FN_ATTRS
2356_mm_maskz_slli_epi16 (__mmask8 __U, __m128i __A, int __B)
2357{
2358  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2359                                             (__v8hi)_mm_slli_epi16(__A, __B),
2360                                             (__v8hi)_mm_setzero_si128());
2361}
2362
2363static __inline__ __m256i __DEFAULT_FN_ATTRS
2364_mm256_mask_slli_epi16(__m256i __W, __mmask16 __U, __m256i __A, int __B)
2365{
2366  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2367                                         (__v16hi)_mm256_slli_epi16(__A, __B),
2368                                         (__v16hi)__W);
2369}
2370
2371static __inline__ __m256i __DEFAULT_FN_ATTRS
2372_mm256_maskz_slli_epi16(__mmask16 __U, __m256i __A, int __B)
2373{
2374  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2375                                         (__v16hi)_mm256_slli_epi16(__A, __B),
2376                                         (__v16hi)_mm256_setzero_si256());
2377}
2378
2379static __inline__ __m256i __DEFAULT_FN_ATTRS
2380_mm256_srlv_epi16(__m256i __A, __m256i __B)
2381{
2382  return (__m256i)__builtin_ia32_psrlv16hi((__v16hi)__A, (__v16hi)__B);
2383}
2384
2385static __inline__ __m256i __DEFAULT_FN_ATTRS
2386_mm256_mask_srlv_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
2387{
2388  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2389                                           (__v16hi)_mm256_srlv_epi16(__A, __B),
2390                                           (__v16hi)__W);
2391}
2392
2393static __inline__ __m256i __DEFAULT_FN_ATTRS
2394_mm256_maskz_srlv_epi16(__mmask16 __U, __m256i __A, __m256i __B)
2395{
2396  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2397                                           (__v16hi)_mm256_srlv_epi16(__A, __B),
2398                                           (__v16hi)_mm256_setzero_si256());
2399}
2400
2401static __inline__ __m128i __DEFAULT_FN_ATTRS
2402_mm_srlv_epi16(__m128i __A, __m128i __B)
2403{
2404  return (__m128i)__builtin_ia32_psrlv8hi((__v8hi)__A, (__v8hi)__B);
2405}
2406
2407static __inline__ __m128i __DEFAULT_FN_ATTRS
2408_mm_mask_srlv_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
2409{
2410  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2411                                             (__v8hi)_mm_srlv_epi16(__A, __B),
2412                                             (__v8hi)__W);
2413}
2414
2415static __inline__ __m128i __DEFAULT_FN_ATTRS
2416_mm_maskz_srlv_epi16(__mmask8 __U, __m128i __A, __m128i __B)
2417{
2418  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2419                                             (__v8hi)_mm_srlv_epi16(__A, __B),
2420                                             (__v8hi)_mm_setzero_si128());
2421}
2422
2423static __inline__ __m256i __DEFAULT_FN_ATTRS
2424_mm256_srav_epi16(__m256i __A, __m256i __B)
2425{
2426  return (__m256i)__builtin_ia32_psrav16hi((__v16hi)__A, (__v16hi)__B);
2427}
2428
2429static __inline__ __m256i __DEFAULT_FN_ATTRS
2430_mm256_mask_srav_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
2431{
2432  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2433                                           (__v16hi)_mm256_srav_epi16(__A, __B),
2434                                           (__v16hi)__W);
2435}
2436
2437static __inline__ __m256i __DEFAULT_FN_ATTRS
2438_mm256_maskz_srav_epi16(__mmask16 __U, __m256i __A, __m256i __B)
2439{
2440  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2441                                           (__v16hi)_mm256_srav_epi16(__A, __B),
2442                                           (__v16hi)_mm256_setzero_si256());
2443}
2444
2445static __inline__ __m128i __DEFAULT_FN_ATTRS
2446_mm_srav_epi16(__m128i __A, __m128i __B)
2447{
2448  return (__m128i)__builtin_ia32_psrav8hi((__v8hi)__A, (__v8hi)__B);
2449}
2450
2451static __inline__ __m128i __DEFAULT_FN_ATTRS
2452_mm_mask_srav_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
2453{
2454  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2455                                             (__v8hi)_mm_srav_epi16(__A, __B),
2456                                             (__v8hi)__W);
2457}
2458
2459static __inline__ __m128i __DEFAULT_FN_ATTRS
2460_mm_maskz_srav_epi16(__mmask8 __U, __m128i __A, __m128i __B)
2461{
2462  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2463                                             (__v8hi)_mm_srav_epi16(__A, __B),
2464                                             (__v8hi)_mm_setzero_si128());
2465}
2466
2467static __inline__ __m128i __DEFAULT_FN_ATTRS
2468_mm_mask_sra_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
2469{
2470  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2471                                             (__v8hi)_mm_sra_epi16(__A, __B),
2472                                             (__v8hi)__W);
2473}
2474
2475static __inline__ __m128i __DEFAULT_FN_ATTRS
2476_mm_maskz_sra_epi16(__mmask8 __U, __m128i __A, __m128i __B)
2477{
2478  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2479                                             (__v8hi)_mm_sra_epi16(__A, __B),
2480                                             (__v8hi)_mm_setzero_si128());
2481}
2482
2483static __inline__ __m256i __DEFAULT_FN_ATTRS
2484_mm256_mask_sra_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B)
2485{
2486  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2487                                          (__v16hi)_mm256_sra_epi16(__A, __B),
2488                                          (__v16hi)__W);
2489}
2490
2491static __inline__ __m256i __DEFAULT_FN_ATTRS
2492_mm256_maskz_sra_epi16(__mmask16 __U, __m256i __A, __m128i __B)
2493{
2494  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2495                                          (__v16hi)_mm256_sra_epi16(__A, __B),
2496                                          (__v16hi)_mm256_setzero_si256());
2497}
2498
2499static __inline__ __m128i __DEFAULT_FN_ATTRS
2500_mm_mask_srai_epi16(__m128i __W, __mmask8 __U, __m128i __A, int __B)
2501{
2502  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2503                                             (__v8hi)_mm_srai_epi16(__A, __B),
2504                                             (__v8hi)__W);
2505}
2506
2507static __inline__ __m128i __DEFAULT_FN_ATTRS
2508_mm_maskz_srai_epi16(__mmask8 __U, __m128i __A, int __B)
2509{
2510  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2511                                             (__v8hi)_mm_srai_epi16(__A, __B),
2512                                             (__v8hi)_mm_setzero_si128());
2513}
2514
2515static __inline__ __m256i __DEFAULT_FN_ATTRS
2516_mm256_mask_srai_epi16(__m256i __W, __mmask16 __U, __m256i __A, int __B)
2517{
2518  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2519                                         (__v16hi)_mm256_srai_epi16(__A, __B),
2520                                         (__v16hi)__W);
2521}
2522
2523static __inline__ __m256i __DEFAULT_FN_ATTRS
2524_mm256_maskz_srai_epi16(__mmask16 __U, __m256i __A, int __B)
2525{
2526  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2527                                         (__v16hi)_mm256_srai_epi16(__A, __B),
2528                                         (__v16hi)_mm256_setzero_si256());
2529}
2530
2531static __inline__ __m128i __DEFAULT_FN_ATTRS
2532_mm_mask_srl_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
2533{
2534  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2535                                             (__v8hi)_mm_srl_epi16(__A, __B),
2536                                             (__v8hi)__W);
2537}
2538
2539static __inline__ __m128i __DEFAULT_FN_ATTRS
2540_mm_maskz_srl_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
2541{
2542  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2543                                             (__v8hi)_mm_srl_epi16(__A, __B),
2544                                             (__v8hi)_mm_setzero_si128());
2545}
2546
2547static __inline__ __m256i __DEFAULT_FN_ATTRS
2548_mm256_mask_srl_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B)
2549{
2550  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2551                                          (__v16hi)_mm256_srl_epi16(__A, __B),
2552                                          (__v16hi)__W);
2553}
2554
2555static __inline__ __m256i __DEFAULT_FN_ATTRS
2556_mm256_maskz_srl_epi16(__mmask16 __U, __m256i __A, __m128i __B)
2557{
2558  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2559                                          (__v16hi)_mm256_srl_epi16(__A, __B),
2560                                          (__v16hi)_mm256_setzero_si256());
2561}
2562
2563static __inline__ __m128i __DEFAULT_FN_ATTRS
2564_mm_mask_srli_epi16(__m128i __W, __mmask8 __U, __m128i __A, int __B)
2565{
2566  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2567                                             (__v8hi)_mm_srli_epi16(__A, __B),
2568                                             (__v8hi)__W);
2569}
2570
2571static __inline__ __m128i __DEFAULT_FN_ATTRS
2572_mm_maskz_srli_epi16 (__mmask8 __U, __m128i __A, int __B)
2573{
2574  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2575                                             (__v8hi)_mm_srli_epi16(__A, __B),
2576                                             (__v8hi)_mm_setzero_si128());
2577}
2578
2579static __inline__ __m256i __DEFAULT_FN_ATTRS
2580_mm256_mask_srli_epi16(__m256i __W, __mmask16 __U, __m256i __A, int __B)
2581{
2582  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2583                                         (__v16hi)_mm256_srli_epi16(__A, __B),
2584                                         (__v16hi)__W);
2585}
2586
2587static __inline__ __m256i __DEFAULT_FN_ATTRS
2588_mm256_maskz_srli_epi16(__mmask16 __U, __m256i __A, int __B)
2589{
2590  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2591                                         (__v16hi)_mm256_srli_epi16(__A, __B),
2592                                         (__v16hi)_mm256_setzero_si256());
2593}
2594
2595static __inline__ __m128i __DEFAULT_FN_ATTRS
2596_mm_mask_mov_epi16 (__m128i __W, __mmask8 __U, __m128i __A)
2597{
2598  return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U,
2599                (__v8hi) __A,
2600                (__v8hi) __W);
2601}
2602
2603static __inline__ __m128i __DEFAULT_FN_ATTRS
2604_mm_maskz_mov_epi16 (__mmask8 __U, __m128i __A)
2605{
2606  return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U,
2607                (__v8hi) __A,
2608                (__v8hi) _mm_setzero_hi ());
2609}
2610
2611static __inline__ __m256i __DEFAULT_FN_ATTRS
2612_mm256_mask_mov_epi16 (__m256i __W, __mmask16 __U, __m256i __A)
2613{
2614  return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U,
2615                (__v16hi) __A,
2616                (__v16hi) __W);
2617}
2618
2619static __inline__ __m256i __DEFAULT_FN_ATTRS
2620_mm256_maskz_mov_epi16 (__mmask16 __U, __m256i __A)
2621{
2622  return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U,
2623                (__v16hi) __A,
2624                (__v16hi) _mm256_setzero_si256 ());
2625}
2626
2627static __inline__ __m128i __DEFAULT_FN_ATTRS
2628_mm_mask_mov_epi8 (__m128i __W, __mmask16 __U, __m128i __A)
2629{
2630  return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U,
2631                (__v16qi) __A,
2632                (__v16qi) __W);
2633}
2634
2635static __inline__ __m128i __DEFAULT_FN_ATTRS
2636_mm_maskz_mov_epi8 (__mmask16 __U, __m128i __A)
2637{
2638  return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U,
2639                (__v16qi) __A,
2640                (__v16qi) _mm_setzero_hi ());
2641}
2642
2643static __inline__ __m256i __DEFAULT_FN_ATTRS
2644_mm256_mask_mov_epi8 (__m256i __W, __mmask32 __U, __m256i __A)
2645{
2646  return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U,
2647                (__v32qi) __A,
2648                (__v32qi) __W);
2649}
2650
2651static __inline__ __m256i __DEFAULT_FN_ATTRS
2652_mm256_maskz_mov_epi8 (__mmask32 __U, __m256i __A)
2653{
2654  return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U,
2655                (__v32qi) __A,
2656                (__v32qi) _mm256_setzero_si256 ());
2657}
2658
2659
2660static __inline__ __m128i __DEFAULT_FN_ATTRS
2661_mm_mask_set1_epi8 (__m128i __O, __mmask16 __M, char __A)
2662{
2663  return (__m128i) __builtin_ia32_pbroadcastb128_gpr_mask (__A,
2664                 (__v16qi) __O,
2665                 __M);
2666}
2667
2668static __inline__ __m128i __DEFAULT_FN_ATTRS
2669_mm_maskz_set1_epi8 (__mmask16 __M, char __A)
2670{
2671  return (__m128i) __builtin_ia32_pbroadcastb128_gpr_mask (__A,
2672                 (__v16qi)
2673                 _mm_setzero_si128 (),
2674                 __M);
2675}
2676
2677static __inline__ __m256i __DEFAULT_FN_ATTRS
2678_mm256_mask_set1_epi8 (__m256i __O, __mmask32 __M, char __A)
2679{
2680  return (__m256i) __builtin_ia32_pbroadcastb256_gpr_mask (__A,
2681                 (__v32qi) __O,
2682                 __M);
2683}
2684
2685static __inline__ __m256i __DEFAULT_FN_ATTRS
2686_mm256_maskz_set1_epi8 (__mmask32 __M, char __A)
2687{
2688  return (__m256i) __builtin_ia32_pbroadcastb256_gpr_mask (__A,
2689                 (__v32qi)
2690                 _mm256_setzero_si256 (),
2691                 __M);
2692}
2693
2694static __inline__ __m128i __DEFAULT_FN_ATTRS
2695_mm_mask_loadu_epi16 (__m128i __W, __mmask8 __U, void const *__P)
2696{
2697  return (__m128i) __builtin_ia32_loaddquhi128_mask ((__v8hi *) __P,
2698                 (__v8hi) __W,
2699                 (__mmask8) __U);
2700}
2701
2702static __inline__ __m128i __DEFAULT_FN_ATTRS
2703_mm_maskz_loadu_epi16 (__mmask8 __U, void const *__P)
2704{
2705  return (__m128i) __builtin_ia32_loaddquhi128_mask ((__v8hi *) __P,
2706                 (__v8hi)
2707                 _mm_setzero_hi (),
2708                 (__mmask8) __U);
2709}
2710
2711static __inline__ __m256i __DEFAULT_FN_ATTRS
2712_mm256_mask_loadu_epi16 (__m256i __W, __mmask16 __U, void const *__P)
2713{
2714  return (__m256i) __builtin_ia32_loaddquhi256_mask ((__v16hi *) __P,
2715                 (__v16hi) __W,
2716                 (__mmask16) __U);
2717}
2718
2719static __inline__ __m256i __DEFAULT_FN_ATTRS
2720_mm256_maskz_loadu_epi16 (__mmask16 __U, void const *__P)
2721{
2722  return (__m256i) __builtin_ia32_loaddquhi256_mask ((__v16hi *) __P,
2723                 (__v16hi)
2724                 _mm256_setzero_si256 (),
2725                 (__mmask16) __U);
2726}
2727
2728static __inline__ __m128i __DEFAULT_FN_ATTRS
2729_mm_mask_loadu_epi8 (__m128i __W, __mmask16 __U, void const *__P)
2730{
2731  return (__m128i) __builtin_ia32_loaddquqi128_mask ((__v16qi *) __P,
2732                 (__v16qi) __W,
2733                 (__mmask16) __U);
2734}
2735
2736static __inline__ __m128i __DEFAULT_FN_ATTRS
2737_mm_maskz_loadu_epi8 (__mmask16 __U, void const *__P)
2738{
2739  return (__m128i) __builtin_ia32_loaddquqi128_mask ((__v16qi *) __P,
2740                 (__v16qi)
2741                 _mm_setzero_si128 (),
2742                 (__mmask16) __U);
2743}
2744
2745static __inline__ __m256i __DEFAULT_FN_ATTRS
2746_mm256_mask_loadu_epi8 (__m256i __W, __mmask32 __U, void const *__P)
2747{
2748  return (__m256i) __builtin_ia32_loaddquqi256_mask ((__v32qi *) __P,
2749                 (__v32qi) __W,
2750                 (__mmask32) __U);
2751}
2752
2753static __inline__ __m256i __DEFAULT_FN_ATTRS
2754_mm256_maskz_loadu_epi8 (__mmask32 __U, void const *__P)
2755{
2756  return (__m256i) __builtin_ia32_loaddquqi256_mask ((__v32qi *) __P,
2757                 (__v32qi)
2758                 _mm256_setzero_si256 (),
2759                 (__mmask32) __U);
2760}
2761static __inline__ void __DEFAULT_FN_ATTRS
2762_mm_mask_storeu_epi16 (void *__P, __mmask8 __U, __m128i __A)
2763{
2764  __builtin_ia32_storedquhi128_mask ((__v8hi *) __P,
2765             (__v8hi) __A,
2766             (__mmask8) __U);
2767}
2768
2769static __inline__ void __DEFAULT_FN_ATTRS
2770_mm256_mask_storeu_epi16 (void *__P, __mmask16 __U, __m256i __A)
2771{
2772  __builtin_ia32_storedquhi256_mask ((__v16hi *) __P,
2773             (__v16hi) __A,
2774             (__mmask16) __U);
2775}
2776
2777static __inline__ void __DEFAULT_FN_ATTRS
2778_mm_mask_storeu_epi8 (void *__P, __mmask16 __U, __m128i __A)
2779{
2780  __builtin_ia32_storedquqi128_mask ((__v16qi *) __P,
2781             (__v16qi) __A,
2782             (__mmask16) __U);
2783}
2784
2785static __inline__ void __DEFAULT_FN_ATTRS
2786_mm256_mask_storeu_epi8 (void *__P, __mmask32 __U, __m256i __A)
2787{
2788  __builtin_ia32_storedquqi256_mask ((__v32qi *) __P,
2789             (__v32qi) __A,
2790             (__mmask32) __U);
2791}
2792
2793static __inline__ __mmask16 __DEFAULT_FN_ATTRS
2794_mm_test_epi8_mask (__m128i __A, __m128i __B)
2795{
2796  return (__mmask16) __builtin_ia32_ptestmb128 ((__v16qi) __A,
2797            (__v16qi) __B,
2798            (__mmask16) -1);
2799}
2800
2801static __inline__ __mmask16 __DEFAULT_FN_ATTRS
2802_mm_mask_test_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
2803{
2804  return (__mmask16) __builtin_ia32_ptestmb128 ((__v16qi) __A,
2805            (__v16qi) __B, __U);
2806}
2807
2808static __inline__ __mmask32 __DEFAULT_FN_ATTRS
2809_mm256_test_epi8_mask (__m256i __A, __m256i __B)
2810{
2811  return (__mmask32) __builtin_ia32_ptestmb256 ((__v32qi) __A,
2812            (__v32qi) __B,
2813            (__mmask32) -1);
2814}
2815
2816static __inline__ __mmask32 __DEFAULT_FN_ATTRS
2817_mm256_mask_test_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
2818{
2819  return (__mmask32) __builtin_ia32_ptestmb256 ((__v32qi) __A,
2820            (__v32qi) __B, __U);
2821}
2822
2823static __inline__ __mmask8 __DEFAULT_FN_ATTRS
2824_mm_test_epi16_mask (__m128i __A, __m128i __B)
2825{
2826  return (__mmask8) __builtin_ia32_ptestmw128 ((__v8hi) __A,
2827                 (__v8hi) __B,
2828                 (__mmask8) -1);
2829}
2830
2831static __inline__ __mmask8 __DEFAULT_FN_ATTRS
2832_mm_mask_test_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
2833{
2834  return (__mmask8) __builtin_ia32_ptestmw128 ((__v8hi) __A,
2835                 (__v8hi) __B, __U);
2836}
2837
2838static __inline__ __mmask16 __DEFAULT_FN_ATTRS
2839_mm256_test_epi16_mask (__m256i __A, __m256i __B)
2840{
2841  return (__mmask16) __builtin_ia32_ptestmw256 ((__v16hi) __A,
2842            (__v16hi) __B,
2843            (__mmask16) -1);
2844}
2845
2846static __inline__ __mmask16 __DEFAULT_FN_ATTRS
2847_mm256_mask_test_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
2848{
2849  return (__mmask16) __builtin_ia32_ptestmw256 ((__v16hi) __A,
2850            (__v16hi) __B, __U);
2851}
2852
2853static __inline__ __mmask16 __DEFAULT_FN_ATTRS
2854_mm_testn_epi8_mask (__m128i __A, __m128i __B)
2855{
2856  return (__mmask16) __builtin_ia32_ptestnmb128 ((__v16qi) __A,
2857             (__v16qi) __B,
2858             (__mmask16) -1);
2859}
2860
2861static __inline__ __mmask16 __DEFAULT_FN_ATTRS
2862_mm_mask_testn_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
2863{
2864  return (__mmask16) __builtin_ia32_ptestnmb128 ((__v16qi) __A,
2865             (__v16qi) __B, __U);
2866}
2867
2868static __inline__ __mmask32 __DEFAULT_FN_ATTRS
2869_mm256_testn_epi8_mask (__m256i __A, __m256i __B)
2870{
2871  return (__mmask32) __builtin_ia32_ptestnmb256 ((__v32qi) __A,
2872             (__v32qi) __B,
2873             (__mmask32) -1);
2874}
2875
2876static __inline__ __mmask32 __DEFAULT_FN_ATTRS
2877_mm256_mask_testn_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
2878{
2879  return (__mmask32) __builtin_ia32_ptestnmb256 ((__v32qi) __A,
2880             (__v32qi) __B, __U);
2881}
2882
2883static __inline__ __mmask8 __DEFAULT_FN_ATTRS
2884_mm_testn_epi16_mask (__m128i __A, __m128i __B)
2885{
2886  return (__mmask8) __builtin_ia32_ptestnmw128 ((__v8hi) __A,
2887            (__v8hi) __B,
2888            (__mmask8) -1);
2889}
2890
2891static __inline__ __mmask8 __DEFAULT_FN_ATTRS
2892_mm_mask_testn_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
2893{
2894  return (__mmask8) __builtin_ia32_ptestnmw128 ((__v8hi) __A,
2895            (__v8hi) __B, __U);
2896}
2897
2898static __inline__ __mmask16 __DEFAULT_FN_ATTRS
2899_mm256_testn_epi16_mask (__m256i __A, __m256i __B)
2900{
2901  return (__mmask16) __builtin_ia32_ptestnmw256 ((__v16hi) __A,
2902             (__v16hi) __B,
2903             (__mmask16) -1);
2904}
2905
2906static __inline__ __mmask16 __DEFAULT_FN_ATTRS
2907_mm256_mask_testn_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
2908{
2909  return (__mmask16) __builtin_ia32_ptestnmw256 ((__v16hi) __A,
2910             (__v16hi) __B, __U);
2911}
2912
2913static __inline__ __mmask16 __DEFAULT_FN_ATTRS
2914_mm_movepi8_mask (__m128i __A)
2915{
2916  return (__mmask16) __builtin_ia32_cvtb2mask128 ((__v16qi) __A);
2917}
2918
2919static __inline__ __mmask32 __DEFAULT_FN_ATTRS
2920_mm256_movepi8_mask (__m256i __A)
2921{
2922  return (__mmask32) __builtin_ia32_cvtb2mask256 ((__v32qi) __A);
2923}
2924
2925static __inline__ __mmask8 __DEFAULT_FN_ATTRS
2926_mm_movepi16_mask (__m128i __A)
2927{
2928  return (__mmask8) __builtin_ia32_cvtw2mask128 ((__v8hi) __A);
2929}
2930
2931static __inline__ __mmask16 __DEFAULT_FN_ATTRS
2932_mm256_movepi16_mask (__m256i __A)
2933{
2934  return (__mmask16) __builtin_ia32_cvtw2mask256 ((__v16hi) __A);
2935}
2936
2937static __inline__ __m128i __DEFAULT_FN_ATTRS
2938_mm_movm_epi8 (__mmask16 __A)
2939{
2940  return (__m128i) __builtin_ia32_cvtmask2b128 (__A);
2941}
2942
2943static __inline__ __m256i __DEFAULT_FN_ATTRS
2944_mm256_movm_epi8 (__mmask32 __A)
2945{
2946  return (__m256i) __builtin_ia32_cvtmask2b256 (__A);
2947}
2948
2949static __inline__ __m128i __DEFAULT_FN_ATTRS
2950_mm_movm_epi16 (__mmask8 __A)
2951{
2952  return (__m128i) __builtin_ia32_cvtmask2w128 (__A);
2953}
2954
2955static __inline__ __m256i __DEFAULT_FN_ATTRS
2956_mm256_movm_epi16 (__mmask16 __A)
2957{
2958  return (__m256i) __builtin_ia32_cvtmask2w256 (__A);
2959}
2960
2961static __inline__ __m128i __DEFAULT_FN_ATTRS
2962_mm_mask_broadcastb_epi8 (__m128i __O, __mmask16 __M, __m128i __A)
2963{
2964  return (__m128i)__builtin_ia32_selectb_128(__M,
2965                                             (__v16qi) _mm_broadcastb_epi8(__A),
2966                                             (__v16qi) __O);
2967}
2968
2969static __inline__ __m128i __DEFAULT_FN_ATTRS
2970_mm_maskz_broadcastb_epi8 (__mmask16 __M, __m128i __A)
2971{
2972  return (__m128i)__builtin_ia32_selectb_128(__M,
2973                                             (__v16qi) _mm_broadcastb_epi8(__A),
2974                                             (__v16qi) _mm_setzero_si128());
2975}
2976
2977static __inline__ __m256i __DEFAULT_FN_ATTRS
2978_mm256_mask_broadcastb_epi8 (__m256i __O, __mmask32 __M, __m128i __A)
2979{
2980  return (__m256i)__builtin_ia32_selectb_256(__M,
2981                                             (__v32qi) _mm256_broadcastb_epi8(__A),
2982                                             (__v32qi) __O);
2983}
2984
2985static __inline__ __m256i __DEFAULT_FN_ATTRS
2986_mm256_maskz_broadcastb_epi8 (__mmask32 __M, __m128i __A)
2987{
2988  return (__m256i)__builtin_ia32_selectb_256(__M,
2989                                             (__v32qi) _mm256_broadcastb_epi8(__A),
2990                                             (__v32qi) _mm256_setzero_si256());
2991}
2992
2993static __inline__ __m128i __DEFAULT_FN_ATTRS
2994_mm_mask_broadcastw_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
2995{
2996  return (__m128i)__builtin_ia32_selectw_128(__M,
2997                                             (__v8hi) _mm_broadcastw_epi16(__A),
2998                                             (__v8hi) __O);
2999}
3000
3001static __inline__ __m128i __DEFAULT_FN_ATTRS
3002_mm_maskz_broadcastw_epi16 (__mmask8 __M, __m128i __A)
3003{
3004  return (__m128i)__builtin_ia32_selectw_128(__M,
3005                                             (__v8hi) _mm_broadcastw_epi16(__A),
3006                                             (__v8hi) _mm_setzero_si128());
3007}
3008
3009static __inline__ __m256i __DEFAULT_FN_ATTRS
3010_mm256_mask_broadcastw_epi16 (__m256i __O, __mmask16 __M, __m128i __A)
3011{
3012  return (__m256i)__builtin_ia32_selectw_256(__M,
3013                                             (__v16hi) _mm256_broadcastw_epi16(__A),
3014                                             (__v16hi) __O);
3015}
3016
3017static __inline__ __m256i __DEFAULT_FN_ATTRS
3018_mm256_maskz_broadcastw_epi16 (__mmask16 __M, __m128i __A)
3019{
3020  return (__m256i)__builtin_ia32_selectw_256(__M,
3021                                             (__v16hi) _mm256_broadcastw_epi16(__A),
3022                                             (__v16hi) _mm256_setzero_si256());
3023}
3024
3025static __inline__ __m256i __DEFAULT_FN_ATTRS
3026_mm256_mask_set1_epi16 (__m256i __O, __mmask16 __M, short __A)
3027{
3028  return (__m256i) __builtin_ia32_pbroadcastw256_gpr_mask (__A,
3029                 (__v16hi) __O,
3030                 __M);
3031}
3032
3033static __inline__ __m256i __DEFAULT_FN_ATTRS
3034_mm256_maskz_set1_epi16 (__mmask16 __M, short __A)
3035{
3036  return (__m256i) __builtin_ia32_pbroadcastw256_gpr_mask (__A,
3037                 (__v16hi) _mm256_setzero_si256 (),
3038                 __M);
3039}
3040
3041static __inline__ __m128i __DEFAULT_FN_ATTRS
3042_mm_mask_set1_epi16 (__m128i __O, __mmask8 __M, short __A)
3043{
3044  return (__m128i) __builtin_ia32_pbroadcastw128_gpr_mask (__A,
3045                 (__v8hi) __O,
3046                 __M);
3047}
3048
3049static __inline__ __m128i __DEFAULT_FN_ATTRS
3050_mm_maskz_set1_epi16 (__mmask8 __M, short __A)
3051{
3052  return (__m128i) __builtin_ia32_pbroadcastw128_gpr_mask (__A,
3053                 (__v8hi) _mm_setzero_si128 (),
3054                 __M);
3055}
3056
3057static __inline__ __m128i __DEFAULT_FN_ATTRS
3058_mm_permutexvar_epi16 (__m128i __A, __m128i __B)
3059{
3060  return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
3061                 (__v8hi) __A,
3062                 (__v8hi) _mm_undefined_si128 (),
3063                 (__mmask8) -1);
3064}
3065
3066static __inline__ __m128i __DEFAULT_FN_ATTRS
3067_mm_maskz_permutexvar_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
3068{
3069  return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
3070                 (__v8hi) __A,
3071                 (__v8hi) _mm_setzero_si128 (),
3072                 (__mmask8) __M);
3073}
3074
3075static __inline__ __m128i __DEFAULT_FN_ATTRS
3076_mm_mask_permutexvar_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
3077          __m128i __B)
3078{
3079  return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
3080                 (__v8hi) __A,
3081                 (__v8hi) __W,
3082                 (__mmask8) __M);
3083}
3084
3085static __inline__ __m256i __DEFAULT_FN_ATTRS
3086_mm256_permutexvar_epi16 (__m256i __A, __m256i __B)
3087{
3088  return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
3089                 (__v16hi) __A,
3090                 (__v16hi) _mm256_undefined_si256 (),
3091                 (__mmask16) -1);
3092}
3093
3094static __inline__ __m256i __DEFAULT_FN_ATTRS
3095_mm256_maskz_permutexvar_epi16 (__mmask16 __M, __m256i __A,
3096        __m256i __B)
3097{
3098  return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
3099                 (__v16hi) __A,
3100                 (__v16hi) _mm256_setzero_si256 (),
3101                 (__mmask16) __M);
3102}
3103
3104static __inline__ __m256i __DEFAULT_FN_ATTRS
3105_mm256_mask_permutexvar_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
3106             __m256i __B)
3107{
3108  return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
3109                 (__v16hi) __A,
3110                 (__v16hi) __W,
3111                 (__mmask16) __M);
3112}
3113
3114#define _mm_mask_alignr_epi8(W, U, A, B, N) __extension__ ({ \
3115  (__m128i)__builtin_ia32_selectb_128((__mmask16)(U), \
3116                                 (__v16qi)_mm_alignr_epi8((A), (B), (int)(N)), \
3117                                 (__v16qi)(__m128i)(W)); })
3118
3119#define _mm_maskz_alignr_epi8(U, A, B, N) __extension__ ({ \
3120  (__m128i)__builtin_ia32_selectb_128((__mmask16)(U), \
3121                                 (__v16qi)_mm_alignr_epi8((A), (B), (int)(N)), \
3122                                 (__v16qi)_mm_setzero_si128()); })
3123
3124#define _mm256_mask_alignr_epi8(W, U, A, B, N) __extension__ ({ \
3125  (__m256i)__builtin_ia32_selectb_256((__mmask32)(U), \
3126                              (__v32qi)_mm256_alignr_epi8((A), (B), (int)(N)), \
3127                              (__v32qi)(__m256i)(W)); })
3128
3129#define _mm256_maskz_alignr_epi8(U, A, B, N) __extension__ ({ \
3130  (__m256i)__builtin_ia32_selectb_256((__mmask32)(U), \
3131                              (__v32qi)_mm256_alignr_epi8((A), (B), (int)(N)), \
3132                              (__v32qi)_mm256_setzero_si256()); })
3133
3134#define _mm_dbsad_epu8(A, B, imm) __extension__ ({ \
3135  (__m128i)__builtin_ia32_dbpsadbw128_mask((__v16qi)(__m128i)(A), \
3136                                           (__v16qi)(__m128i)(B), (int)(imm), \
3137                                           (__v8hi)_mm_setzero_hi(), \
3138                                           (__mmask8)-1); })
3139
3140#define _mm_mask_dbsad_epu8(W, U, A, B, imm) __extension__ ({ \
3141  (__m128i)__builtin_ia32_dbpsadbw128_mask((__v16qi)(__m128i)(A), \
3142                                           (__v16qi)(__m128i)(B), (int)(imm), \
3143                                           (__v8hi)(__m128i)(W), \
3144                                           (__mmask8)(U)); })
3145
3146#define _mm_maskz_dbsad_epu8(U, A, B, imm) __extension__ ({ \
3147  (__m128i)__builtin_ia32_dbpsadbw128_mask((__v16qi)(__m128i)(A), \
3148                                           (__v16qi)(__m128i)(B), (int)(imm), \
3149                                           (__v8hi)_mm_setzero_si128(), \
3150                                           (__mmask8)(U)); })
3151
3152#define _mm256_dbsad_epu8(A, B, imm) __extension__ ({ \
3153  (__m256i)__builtin_ia32_dbpsadbw256_mask((__v32qi)(__m256i)(A), \
3154                                           (__v32qi)(__m256i)(B), (int)(imm), \
3155                                           (__v16hi)_mm256_setzero_si256(), \
3156                                           (__mmask16)-1); })
3157
3158#define _mm256_mask_dbsad_epu8(W, U, A, B, imm) __extension__ ({ \
3159  (__m256i)__builtin_ia32_dbpsadbw256_mask((__v32qi)(__m256i)(A), \
3160                                           (__v32qi)(__m256i)(B), (int)(imm), \
3161                                           (__v16hi)(__m256i)(W), \
3162                                           (__mmask16)(U)); })
3163
3164#define _mm256_maskz_dbsad_epu8(U, A, B, imm) __extension__ ({ \
3165  (__m256i)__builtin_ia32_dbpsadbw256_mask((__v32qi)(__m256i)(A), \
3166                                           (__v32qi)(__m256i)(B), (int)(imm), \
3167                                           (__v16hi)_mm256_setzero_si256(), \
3168                                           (__mmask16)(U)); })
3169
3170#undef __DEFAULT_FN_ATTRS
3171
3172#endif /* __AVX512VLBWINTRIN_H */
3173