sketchbook
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
avx512vlbwintrin.h
Go to the documentation of this file.
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 
34 /* Integer compare */
35 
36 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
37 _mm_cmpeq_epi8_mask(__m128i __a, __m128i __b) {
38  return (__mmask16)__builtin_ia32_pcmpeqb128_mask((__v16qi)__a, (__v16qi)__b,
39  (__mmask16)-1);
40 }
41 
42 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
43 _mm_mask_cmpeq_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
44  return (__mmask16)__builtin_ia32_pcmpeqb128_mask((__v16qi)__a, (__v16qi)__b,
45  __u);
46 }
47 
48 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
49 _mm_cmpeq_epu8_mask(__m128i __a, __m128i __b) {
50  return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 0,
51  (__mmask16)-1);
52 }
53 
54 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
55 _mm_mask_cmpeq_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
56  return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 0,
57  __u);
58 }
59 
60 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
61 _mm256_cmpeq_epi8_mask(__m256i __a, __m256i __b) {
62  return (__mmask32)__builtin_ia32_pcmpeqb256_mask((__v32qi)__a, (__v32qi)__b,
63  (__mmask32)-1);
64 }
65 
66 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
67 _mm256_mask_cmpeq_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
68  return (__mmask32)__builtin_ia32_pcmpeqb256_mask((__v32qi)__a, (__v32qi)__b,
69  __u);
70 }
71 
72 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
73 _mm256_cmpeq_epu8_mask(__m256i __a, __m256i __b) {
74  return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 0,
75  (__mmask32)-1);
76 }
77 
78 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
79 _mm256_mask_cmpeq_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
80  return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 0,
81  __u);
82 }
83 
84 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
85 _mm_cmpeq_epi16_mask(__m128i __a, __m128i __b) {
86  return (__mmask8)__builtin_ia32_pcmpeqw128_mask((__v8hi)__a, (__v8hi)__b,
87  (__mmask8)-1);
88 }
89 
90 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
91 _mm_mask_cmpeq_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
92  return (__mmask8)__builtin_ia32_pcmpeqw128_mask((__v8hi)__a, (__v8hi)__b,
93  __u);
94 }
95 
96 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
97 _mm_cmpeq_epu16_mask(__m128i __a, __m128i __b) {
98  return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 0,
99  (__mmask8)-1);
100 }
101 
102 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
103 _mm_mask_cmpeq_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
104  return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 0,
105  __u);
106 }
107 
108 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
109 _mm256_cmpeq_epi16_mask(__m256i __a, __m256i __b) {
110  return (__mmask16)__builtin_ia32_pcmpeqw256_mask((__v16hi)__a, (__v16hi)__b,
111  (__mmask16)-1);
112 }
113 
114 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
115 _mm256_mask_cmpeq_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
116  return (__mmask16)__builtin_ia32_pcmpeqw256_mask((__v16hi)__a, (__v16hi)__b,
117  __u);
118 }
119 
120 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
121 _mm256_cmpeq_epu16_mask(__m256i __a, __m256i __b) {
122  return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 0,
123  (__mmask16)-1);
124 }
125 
126 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
127 _mm256_mask_cmpeq_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
128  return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 0,
129  __u);
130 }
131 
132 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
133 _mm_cmpge_epi8_mask(__m128i __a, __m128i __b) {
134  return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 5,
135  (__mmask16)-1);
136 }
137 
138 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
139 _mm_mask_cmpge_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
140  return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 5,
141  __u);
142 }
143 
144 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
145 _mm_cmpge_epu8_mask(__m128i __a, __m128i __b) {
146  return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 5,
147  (__mmask16)-1);
148 }
149 
150 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
151 _mm_mask_cmpge_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
152  return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 5,
153  __u);
154 }
155 
156 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
157 _mm256_cmpge_epi8_mask(__m256i __a, __m256i __b) {
158  return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 5,
159  (__mmask32)-1);
160 }
161 
162 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
163 _mm256_mask_cmpge_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
164  return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 5,
165  __u);
166 }
167 
168 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
169 _mm256_cmpge_epu8_mask(__m256i __a, __m256i __b) {
170  return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 5,
171  (__mmask32)-1);
172 }
173 
174 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
175 _mm256_mask_cmpge_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
176  return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 5,
177  __u);
178 }
179 
180 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
181 _mm_cmpge_epi16_mask(__m128i __a, __m128i __b) {
182  return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 5,
183  (__mmask8)-1);
184 }
185 
186 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
187 _mm_mask_cmpge_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
188  return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 5,
189  __u);
190 }
191 
192 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
193 _mm_cmpge_epu16_mask(__m128i __a, __m128i __b) {
194  return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 5,
195  (__mmask8)-1);
196 }
197 
198 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
199 _mm_mask_cmpge_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
200  return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 5,
201  __u);
202 }
203 
204 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
205 _mm256_cmpge_epi16_mask(__m256i __a, __m256i __b) {
206  return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 5,
207  (__mmask16)-1);
208 }
209 
210 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
211 _mm256_mask_cmpge_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
212  return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 5,
213  __u);
214 }
215 
216 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
217 _mm256_cmpge_epu16_mask(__m256i __a, __m256i __b) {
218  return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 5,
219  (__mmask16)-1);
220 }
221 
222 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
223 _mm256_mask_cmpge_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
224  return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 5,
225  __u);
226 }
227 
228 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
229 _mm_cmpgt_epi8_mask(__m128i __a, __m128i __b) {
230  return (__mmask16)__builtin_ia32_pcmpgtb128_mask((__v16qi)__a, (__v16qi)__b,
231  (__mmask16)-1);
232 }
233 
234 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
235 _mm_mask_cmpgt_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
236  return (__mmask16)__builtin_ia32_pcmpgtb128_mask((__v16qi)__a, (__v16qi)__b,
237  __u);
238 }
239 
240 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
241 _mm_cmpgt_epu8_mask(__m128i __a, __m128i __b) {
242  return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 6,
243  (__mmask16)-1);
244 }
245 
246 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
247 _mm_mask_cmpgt_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
248  return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 6,
249  __u);
250 }
251 
252 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
253 _mm256_cmpgt_epi8_mask(__m256i __a, __m256i __b) {
254  return (__mmask32)__builtin_ia32_pcmpgtb256_mask((__v32qi)__a, (__v32qi)__b,
255  (__mmask32)-1);
256 }
257 
258 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
259 _mm256_mask_cmpgt_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
260  return (__mmask32)__builtin_ia32_pcmpgtb256_mask((__v32qi)__a, (__v32qi)__b,
261  __u);
262 }
263 
264 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
265 _mm256_cmpgt_epu8_mask(__m256i __a, __m256i __b) {
266  return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 6,
267  (__mmask32)-1);
268 }
269 
270 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
271 _mm256_mask_cmpgt_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
272  return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 6,
273  __u);
274 }
275 
276 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
277 _mm_cmpgt_epi16_mask(__m128i __a, __m128i __b) {
278  return (__mmask8)__builtin_ia32_pcmpgtw128_mask((__v8hi)__a, (__v8hi)__b,
279  (__mmask8)-1);
280 }
281 
282 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
283 _mm_mask_cmpgt_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
284  return (__mmask8)__builtin_ia32_pcmpgtw128_mask((__v8hi)__a, (__v8hi)__b,
285  __u);
286 }
287 
288 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
289 _mm_cmpgt_epu16_mask(__m128i __a, __m128i __b) {
290  return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 6,
291  (__mmask8)-1);
292 }
293 
294 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
295 _mm_mask_cmpgt_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
296  return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 6,
297  __u);
298 }
299 
300 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
301 _mm256_cmpgt_epi16_mask(__m256i __a, __m256i __b) {
302  return (__mmask16)__builtin_ia32_pcmpgtw256_mask((__v16hi)__a, (__v16hi)__b,
303  (__mmask16)-1);
304 }
305 
306 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
307 _mm256_mask_cmpgt_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
308  return (__mmask16)__builtin_ia32_pcmpgtw256_mask((__v16hi)__a, (__v16hi)__b,
309  __u);
310 }
311 
312 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
313 _mm256_cmpgt_epu16_mask(__m256i __a, __m256i __b) {
314  return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 6,
315  (__mmask16)-1);
316 }
317 
318 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
319 _mm256_mask_cmpgt_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
320  return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 6,
321  __u);
322 }
323 
324 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
325 _mm_cmple_epi8_mask(__m128i __a, __m128i __b) {
326  return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 2,
327  (__mmask16)-1);
328 }
329 
330 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
331 _mm_mask_cmple_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
332  return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 2,
333  __u);
334 }
335 
336 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
337 _mm_cmple_epu8_mask(__m128i __a, __m128i __b) {
338  return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 2,
339  (__mmask16)-1);
340 }
341 
342 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
343 _mm_mask_cmple_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
344  return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 2,
345  __u);
346 }
347 
348 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
349 _mm256_cmple_epi8_mask(__m256i __a, __m256i __b) {
350  return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 2,
351  (__mmask32)-1);
352 }
353 
354 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
355 _mm256_mask_cmple_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
356  return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 2,
357  __u);
358 }
359 
360 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
361 _mm256_cmple_epu8_mask(__m256i __a, __m256i __b) {
362  return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 2,
363  (__mmask32)-1);
364 }
365 
366 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
367 _mm256_mask_cmple_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
368  return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 2,
369  __u);
370 }
371 
372 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
373 _mm_cmple_epi16_mask(__m128i __a, __m128i __b) {
374  return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 2,
375  (__mmask8)-1);
376 }
377 
378 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
379 _mm_mask_cmple_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
380  return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 2,
381  __u);
382 }
383 
384 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
385 _mm_cmple_epu16_mask(__m128i __a, __m128i __b) {
386  return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 2,
387  (__mmask8)-1);
388 }
389 
390 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
391 _mm_mask_cmple_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
392  return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 2,
393  __u);
394 }
395 
396 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
397 _mm256_cmple_epi16_mask(__m256i __a, __m256i __b) {
398  return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 2,
399  (__mmask16)-1);
400 }
401 
402 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
403 _mm256_mask_cmple_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
404  return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 2,
405  __u);
406 }
407 
408 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
409 _mm256_cmple_epu16_mask(__m256i __a, __m256i __b) {
410  return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 2,
411  (__mmask16)-1);
412 }
413 
414 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
415 _mm256_mask_cmple_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
416  return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 2,
417  __u);
418 }
419 
420 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
421 _mm_cmplt_epi8_mask(__m128i __a, __m128i __b) {
422  return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 1,
423  (__mmask16)-1);
424 }
425 
426 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
427 _mm_mask_cmplt_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
428  return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 1,
429  __u);
430 }
431 
432 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
433 _mm_cmplt_epu8_mask(__m128i __a, __m128i __b) {
434  return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 1,
435  (__mmask16)-1);
436 }
437 
438 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
439 _mm_mask_cmplt_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
440  return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 1,
441  __u);
442 }
443 
444 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
445 _mm256_cmplt_epi8_mask(__m256i __a, __m256i __b) {
446  return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 1,
447  (__mmask32)-1);
448 }
449 
450 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
451 _mm256_mask_cmplt_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
452  return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 1,
453  __u);
454 }
455 
456 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
457 _mm256_cmplt_epu8_mask(__m256i __a, __m256i __b) {
458  return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 1,
459  (__mmask32)-1);
460 }
461 
462 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
463 _mm256_mask_cmplt_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
464  return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 1,
465  __u);
466 }
467 
468 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
469 _mm_cmplt_epi16_mask(__m128i __a, __m128i __b) {
470  return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 1,
471  (__mmask8)-1);
472 }
473 
474 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
475 _mm_mask_cmplt_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
476  return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 1,
477  __u);
478 }
479 
480 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
481 _mm_cmplt_epu16_mask(__m128i __a, __m128i __b) {
482  return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 1,
483  (__mmask8)-1);
484 }
485 
486 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
487 _mm_mask_cmplt_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
488  return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 1,
489  __u);
490 }
491 
492 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
493 _mm256_cmplt_epi16_mask(__m256i __a, __m256i __b) {
494  return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 1,
495  (__mmask16)-1);
496 }
497 
498 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
499 _mm256_mask_cmplt_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
500  return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 1,
501  __u);
502 }
503 
504 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
505 _mm256_cmplt_epu16_mask(__m256i __a, __m256i __b) {
506  return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 1,
507  (__mmask16)-1);
508 }
509 
510 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
511 _mm256_mask_cmplt_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
512  return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 1,
513  __u);
514 }
515 
516 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
517 _mm_cmpneq_epi8_mask(__m128i __a, __m128i __b) {
518  return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 4,
519  (__mmask16)-1);
520 }
521 
522 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
523 _mm_mask_cmpneq_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
524  return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 4,
525  __u);
526 }
527 
528 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
529 _mm_cmpneq_epu8_mask(__m128i __a, __m128i __b) {
530  return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 4,
531  (__mmask16)-1);
532 }
533 
534 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
535 _mm_mask_cmpneq_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
536  return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 4,
537  __u);
538 }
539 
540 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
541 _mm256_cmpneq_epi8_mask(__m256i __a, __m256i __b) {
542  return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 4,
543  (__mmask32)-1);
544 }
545 
546 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
547 _mm256_mask_cmpneq_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
548  return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 4,
549  __u);
550 }
551 
552 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
553 _mm256_cmpneq_epu8_mask(__m256i __a, __m256i __b) {
554  return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 4,
555  (__mmask32)-1);
556 }
557 
558 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
559 _mm256_mask_cmpneq_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
560  return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 4,
561  __u);
562 }
563 
564 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
565 _mm_cmpneq_epi16_mask(__m128i __a, __m128i __b) {
566  return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 4,
567  (__mmask8)-1);
568 }
569 
570 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
571 _mm_mask_cmpneq_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
572  return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 4,
573  __u);
574 }
575 
576 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
577 _mm_cmpneq_epu16_mask(__m128i __a, __m128i __b) {
578  return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 4,
579  (__mmask8)-1);
580 }
581 
582 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
583 _mm_mask_cmpneq_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
584  return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 4,
585  __u);
586 }
587 
588 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
589 _mm256_cmpneq_epi16_mask(__m256i __a, __m256i __b) {
590  return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 4,
591  (__mmask16)-1);
592 }
593 
594 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
595 _mm256_mask_cmpneq_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
596  return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 4,
597  __u);
598 }
599 
600 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
601 _mm256_cmpneq_epu16_mask(__m256i __a, __m256i __b) {
602  return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 4,
603  (__mmask16)-1);
604 }
605 
606 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
607 _mm256_mask_cmpneq_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
608  return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 4,
609  __u);
610 }
611 
612 static __inline__ __m256i __DEFAULT_FN_ATTRS
613 _mm256_mask_add_epi8 (__m256i __W, __mmask32 __U, __m256i __A, __m256i __B){
614  return (__m256i) __builtin_ia32_paddb256_mask ((__v32qi) __A,
615  (__v32qi) __B,
616  (__v32qi) __W,
617  (__mmask32) __U);
618 }
619 
620 static __inline__ __m256i __DEFAULT_FN_ATTRS
621 _mm256_maskz_add_epi8 (__mmask32 __U, __m256i __A, __m256i __B) {
622  return (__m256i) __builtin_ia32_paddb256_mask ((__v32qi) __A,
623  (__v32qi) __B,
624  (__v32qi)
625  _mm256_setzero_si256 (),
626  (__mmask32) __U);
627 }
628 
629 static __inline__ __m256i __DEFAULT_FN_ATTRS
630 _mm256_mask_add_epi16 (__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
631  return (__m256i) __builtin_ia32_paddw256_mask ((__v16hi) __A,
632  (__v16hi) __B,
633  (__v16hi) __W,
634  (__mmask16) __U);
635 }
636 
637 static __inline__ __m256i __DEFAULT_FN_ATTRS
638 _mm256_maskz_add_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
639  return (__m256i) __builtin_ia32_paddw256_mask ((__v16hi) __A,
640  (__v16hi) __B,
641  (__v16hi)
642  _mm256_setzero_si256 (),
643  (__mmask16) __U);
644 }
645 
646 static __inline__ __m256i __DEFAULT_FN_ATTRS
647 _mm256_mask_sub_epi8 (__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
648  return (__m256i) __builtin_ia32_psubb256_mask ((__v32qi) __A,
649  (__v32qi) __B,
650  (__v32qi) __W,
651  (__mmask32) __U);
652 }
653 
654 static __inline__ __m256i __DEFAULT_FN_ATTRS
655 _mm256_maskz_sub_epi8 (__mmask32 __U, __m256i __A, __m256i __B) {
656  return (__m256i) __builtin_ia32_psubb256_mask ((__v32qi) __A,
657  (__v32qi) __B,
658  (__v32qi)
659  _mm256_setzero_si256 (),
660  (__mmask32) __U);
661 }
662 
663 static __inline__ __m256i __DEFAULT_FN_ATTRS
664 _mm256_mask_sub_epi16 (__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
665  return (__m256i) __builtin_ia32_psubw256_mask ((__v16hi) __A,
666  (__v16hi) __B,
667  (__v16hi) __W,
668  (__mmask16) __U);
669 }
670 
671 static __inline__ __m256i __DEFAULT_FN_ATTRS
672 _mm256_maskz_sub_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
673  return (__m256i) __builtin_ia32_psubw256_mask ((__v16hi) __A,
674  (__v16hi) __B,
675  (__v16hi)
676  _mm256_setzero_si256 (),
677  (__mmask16) __U);
678 }
679 static __inline__ __m128i __DEFAULT_FN_ATTRS
680 _mm_mask_add_epi8 (__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
681  return (__m128i) __builtin_ia32_paddb128_mask ((__v16qi) __A,
682  (__v16qi) __B,
683  (__v16qi) __W,
684  (__mmask16) __U);
685 }
686 
687 static __inline__ __m128i __DEFAULT_FN_ATTRS
688 _mm_maskz_add_epi8 (__mmask16 __U, __m128i __A, __m128i __B) {
689  return (__m128i) __builtin_ia32_paddb128_mask ((__v16qi) __A,
690  (__v16qi) __B,
691  (__v16qi)
692  _mm_setzero_si128 (),
693  (__mmask16) __U);
694 }
695 
696 static __inline__ __m128i __DEFAULT_FN_ATTRS
697 _mm_mask_add_epi16 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
698  return (__m128i) __builtin_ia32_paddw128_mask ((__v8hi) __A,
699  (__v8hi) __B,
700  (__v8hi) __W,
701  (__mmask8) __U);
702 }
703 
704 static __inline__ __m128i __DEFAULT_FN_ATTRS
705 _mm_maskz_add_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
706  return (__m128i) __builtin_ia32_paddw128_mask ((__v8hi) __A,
707  (__v8hi) __B,
708  (__v8hi)
709  _mm_setzero_si128 (),
710  (__mmask8) __U);
711 }
712 
713 static __inline__ __m128i __DEFAULT_FN_ATTRS
714 _mm_mask_sub_epi8 (__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
715  return (__m128i) __builtin_ia32_psubb128_mask ((__v16qi) __A,
716  (__v16qi) __B,
717  (__v16qi) __W,
718  (__mmask16) __U);
719 }
720 
721 static __inline__ __m128i __DEFAULT_FN_ATTRS
722 _mm_maskz_sub_epi8 (__mmask16 __U, __m128i __A, __m128i __B) {
723  return (__m128i) __builtin_ia32_psubb128_mask ((__v16qi) __A,
724  (__v16qi) __B,
725  (__v16qi)
726  _mm_setzero_si128 (),
727  (__mmask16) __U);
728 }
729 
730 static __inline__ __m128i __DEFAULT_FN_ATTRS
731 _mm_mask_sub_epi16 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
732  return (__m128i) __builtin_ia32_psubw128_mask ((__v8hi) __A,
733  (__v8hi) __B,
734  (__v8hi) __W,
735  (__mmask8) __U);
736 }
737 
738 static __inline__ __m128i __DEFAULT_FN_ATTRS
739 _mm_maskz_sub_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
740  return (__m128i) __builtin_ia32_psubw128_mask ((__v8hi) __A,
741  (__v8hi) __B,
742  (__v8hi)
743  _mm_setzero_si128 (),
744  (__mmask8) __U);
745 }
746 
747 static __inline__ __m256i __DEFAULT_FN_ATTRS
748 _mm256_mask_mullo_epi16 (__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
749  return (__m256i) __builtin_ia32_pmullw256_mask ((__v16hi) __A,
750  (__v16hi) __B,
751  (__v16hi) __W,
752  (__mmask16) __U);
753 }
754 
755 static __inline__ __m256i __DEFAULT_FN_ATTRS
756 _mm256_maskz_mullo_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
757  return (__m256i) __builtin_ia32_pmullw256_mask ((__v16hi) __A,
758  (__v16hi) __B,
759  (__v16hi)
760  _mm256_setzero_si256 (),
761  (__mmask16) __U);
762 }
763 
764 static __inline__ __m128i __DEFAULT_FN_ATTRS
765 _mm_mask_mullo_epi16 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
766  return (__m128i) __builtin_ia32_pmullw128_mask ((__v8hi) __A,
767  (__v8hi) __B,
768  (__v8hi) __W,
769  (__mmask8) __U);
770 }
771 
772 static __inline__ __m128i __DEFAULT_FN_ATTRS
773 _mm_maskz_mullo_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
774  return (__m128i) __builtin_ia32_pmullw128_mask ((__v8hi) __A,
775  (__v8hi) __B,
776  (__v8hi)
777  _mm_setzero_si128 (),
778  (__mmask8) __U);
779 }
780 
781 static __inline__ __m128i __DEFAULT_FN_ATTRS
782 _mm_mask_blend_epi8 (__mmask16 __U, __m128i __A, __m128i __W)
783 {
784  return (__m128i) __builtin_ia32_blendmb_128_mask ((__v16qi) __A,
785  (__v16qi) __W,
786  (__mmask16) __U);
787 }
788 
789 static __inline__ __m256i __DEFAULT_FN_ATTRS
790 _mm256_mask_blend_epi8 (__mmask32 __U, __m256i __A, __m256i __W)
791 {
792  return (__m256i) __builtin_ia32_blendmb_256_mask ((__v32qi) __A,
793  (__v32qi) __W,
794  (__mmask32) __U);
795 }
796 
797 static __inline__ __m128i __DEFAULT_FN_ATTRS
798 _mm_mask_blend_epi16 (__mmask8 __U, __m128i __A, __m128i __W)
799 {
800  return (__m128i) __builtin_ia32_blendmw_128_mask ((__v8hi) __A,
801  (__v8hi) __W,
802  (__mmask8) __U);
803 }
804 
805 static __inline__ __m256i __DEFAULT_FN_ATTRS
806 _mm256_mask_blend_epi16 (__mmask16 __U, __m256i __A, __m256i __W)
807 {
808  return (__m256i) __builtin_ia32_blendmw_256_mask ((__v16hi) __A,
809  (__v16hi) __W,
810  (__mmask16) __U);
811 }
812 
813 static __inline__ __m128i __DEFAULT_FN_ATTRS
814 _mm_mask_abs_epi8 (__m128i __W, __mmask16 __U, __m128i __A)
815 {
816  return (__m128i) __builtin_ia32_pabsb128_mask ((__v16qi) __A,
817  (__v16qi) __W,
818  (__mmask16) __U);
819 }
820 
821 static __inline__ __m128i __DEFAULT_FN_ATTRS
822 _mm_maskz_abs_epi8 (__mmask16 __U, __m128i __A)
823 {
824  return (__m128i) __builtin_ia32_pabsb128_mask ((__v16qi) __A,
825  (__v16qi) _mm_setzero_si128 (),
826  (__mmask16) __U);
827 }
828 
829 static __inline__ __m256i __DEFAULT_FN_ATTRS
830 _mm256_mask_abs_epi8 (__m256i __W, __mmask32 __U, __m256i __A)
831 {
832  return (__m256i) __builtin_ia32_pabsb256_mask ((__v32qi) __A,
833  (__v32qi) __W,
834  (__mmask32) __U);
835 }
836 
837 static __inline__ __m256i __DEFAULT_FN_ATTRS
838 _mm256_maskz_abs_epi8 (__mmask32 __U, __m256i __A)
839 {
840  return (__m256i) __builtin_ia32_pabsb256_mask ((__v32qi) __A,
841  (__v32qi) _mm256_setzero_si256 (),
842  (__mmask32) __U);
843 }
844 
845 static __inline__ __m128i __DEFAULT_FN_ATTRS
846 _mm_mask_abs_epi16 (__m128i __W, __mmask8 __U, __m128i __A)
847 {
848  return (__m128i) __builtin_ia32_pabsw128_mask ((__v8hi) __A,
849  (__v8hi) __W,
850  (__mmask8) __U);
851 }
852 
853 static __inline__ __m128i __DEFAULT_FN_ATTRS
854 _mm_maskz_abs_epi16 (__mmask8 __U, __m128i __A)
855 {
856  return (__m128i) __builtin_ia32_pabsw128_mask ((__v8hi) __A,
857  (__v8hi) _mm_setzero_si128 (),
858  (__mmask8) __U);
859 }
860 
861 static __inline__ __m256i __DEFAULT_FN_ATTRS
862 _mm256_mask_abs_epi16 (__m256i __W, __mmask16 __U, __m256i __A)
863 {
864  return (__m256i) __builtin_ia32_pabsw256_mask ((__v16hi) __A,
865  (__v16hi) __W,
866  (__mmask16) __U);
867 }
868 
869 static __inline__ __m256i __DEFAULT_FN_ATTRS
870 _mm256_maskz_abs_epi16 (__mmask16 __U, __m256i __A)
871 {
872  return (__m256i) __builtin_ia32_pabsw256_mask ((__v16hi) __A,
873  (__v16hi) _mm256_setzero_si256 (),
874  (__mmask16) __U);
875 }
876 
877 static __inline__ __m128i __DEFAULT_FN_ATTRS
878 _mm_maskz_packs_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
879 {
880  return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A,
881  (__v4si) __B,
882  (__v8hi) _mm_setzero_si128 (), __M);
883 }
884 
885 static __inline__ __m128i __DEFAULT_FN_ATTRS
886 _mm_mask_packs_epi32 (__m128i __W, __mmask16 __M, __m128i __A,
887  __m128i __B)
888 {
889  return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A,
890  (__v4si) __B,
891  (__v8hi) __W, __M);
892 }
893 
894 static __inline__ __m256i __DEFAULT_FN_ATTRS
895 _mm256_maskz_packs_epi32 (__mmask16 __M, __m256i __A, __m256i __B)
896 {
897  return (__m256i) __builtin_ia32_packssdw256_mask ((__v8si) __A,
898  (__v8si) __B,
899  (__v16hi) _mm256_setzero_si256 (),
900  __M);
901 }
902 
903 static __inline__ __m256i __DEFAULT_FN_ATTRS
904 _mm256_mask_packs_epi32 (__m256i __W, __mmask16 __M, __m256i __A,
905  __m256i __B)
906 {
907  return (__m256i) __builtin_ia32_packssdw256_mask ((__v8si) __A,
908  (__v8si) __B,
909  (__v16hi) __W, __M);
910 }
911 
912 static __inline__ __m128i __DEFAULT_FN_ATTRS
913 _mm_maskz_packs_epi16 (__mmask16 __M, __m128i __A, __m128i __B)
914 {
915  return (__m128i) __builtin_ia32_packsswb128_mask ((__v8hi) __A,
916  (__v8hi) __B,
917  (__v16qi) _mm_setzero_si128 (),
918  __M);
919 }
920 
921 static __inline__ __m128i __DEFAULT_FN_ATTRS
922 _mm_mask_packs_epi16 (__m128i __W, __mmask16 __M, __m128i __A,
923  __m128i __B)
924 {
925  return (__m128i) __builtin_ia32_packsswb128_mask ((__v8hi) __A,
926  (__v8hi) __B,
927  (__v16qi) __W,
928  __M);
929 }
930 
931 static __inline__ __m256i __DEFAULT_FN_ATTRS
932 _mm256_maskz_packs_epi16 (__mmask32 __M, __m256i __A, __m256i __B)
933 {
934  return (__m256i) __builtin_ia32_packsswb256_mask ((__v16hi) __A,
935  (__v16hi) __B,
936  (__v32qi) _mm256_setzero_si256 (),
937  __M);
938 }
939 
940 static __inline__ __m256i __DEFAULT_FN_ATTRS
941 _mm256_mask_packs_epi16 (__m256i __W, __mmask32 __M, __m256i __A,
942  __m256i __B)
943 {
944  return (__m256i) __builtin_ia32_packsswb256_mask ((__v16hi) __A,
945  (__v16hi) __B,
946  (__v32qi) __W,
947  __M);
948 }
949 
950 static __inline__ __m128i __DEFAULT_FN_ATTRS
951 _mm_maskz_packus_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
952 {
953  return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A,
954  (__v4si) __B,
955  (__v8hi) _mm_setzero_si128 (),
956  __M);
957 }
958 
959 static __inline__ __m128i __DEFAULT_FN_ATTRS
960 _mm_mask_packus_epi32 (__m128i __W, __mmask16 __M, __m128i __A,
961  __m128i __B)
962 {
963  return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A,
964  (__v4si) __B,
965  (__v8hi) __W, __M);
966 }
967 
968 static __inline__ __m256i __DEFAULT_FN_ATTRS
969 _mm256_maskz_packus_epi32 (__mmask16 __M, __m256i __A, __m256i __B)
970 {
971  return (__m256i) __builtin_ia32_packusdw256_mask ((__v8si) __A,
972  (__v8si) __B,
973  (__v16hi) _mm256_setzero_si256 (),
974  __M);
975 }
976 
977 static __inline__ __m256i __DEFAULT_FN_ATTRS
978 _mm256_mask_packus_epi32 (__m256i __W, __mmask16 __M, __m256i __A,
979  __m256i __B)
980 {
981  return (__m256i) __builtin_ia32_packusdw256_mask ((__v8si) __A,
982  (__v8si) __B,
983  (__v16hi) __W,
984  __M);
985 }
986 
987 static __inline__ __m128i __DEFAULT_FN_ATTRS
988 _mm_maskz_packus_epi16 (__mmask16 __M, __m128i __A, __m128i __B)
989 {
990  return (__m128i) __builtin_ia32_packuswb128_mask ((__v8hi) __A,
991  (__v8hi) __B,
992  (__v16qi) _mm_setzero_si128 (),
993  __M);
994 }
995 
996 static __inline__ __m128i __DEFAULT_FN_ATTRS
997 _mm_mask_packus_epi16 (__m128i __W, __mmask16 __M, __m128i __A,
998  __m128i __B)
999 {
1000  return (__m128i) __builtin_ia32_packuswb128_mask ((__v8hi) __A,
1001  (__v8hi) __B,
1002  (__v16qi) __W,
1003  __M);
1004 }
1005 
1006 static __inline__ __m256i __DEFAULT_FN_ATTRS
1007 _mm256_maskz_packus_epi16 (__mmask32 __M, __m256i __A, __m256i __B)
1008 {
1009  return (__m256i) __builtin_ia32_packuswb256_mask ((__v16hi) __A,
1010  (__v16hi) __B,
1011  (__v32qi) _mm256_setzero_si256 (),
1012  __M);
1013 }
1014 
1015 static __inline__ __m256i __DEFAULT_FN_ATTRS
1016 _mm256_mask_packus_epi16 (__m256i __W, __mmask32 __M, __m256i __A,
1017  __m256i __B)
1018 {
1019  return (__m256i) __builtin_ia32_packuswb256_mask ((__v16hi) __A,
1020  (__v16hi) __B,
1021  (__v32qi) __W,
1022  __M);
1023 }
1024 
1025 static __inline__ __m128i __DEFAULT_FN_ATTRS
1026 _mm_mask_adds_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
1027  __m128i __B)
1028 {
1029  return (__m128i) __builtin_ia32_paddsb128_mask ((__v16qi) __A,
1030  (__v16qi) __B,
1031  (__v16qi) __W,
1032  (__mmask16) __U);
1033 }
1034 
1035 static __inline__ __m128i __DEFAULT_FN_ATTRS
1036 _mm_maskz_adds_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
1037 {
1038  return (__m128i) __builtin_ia32_paddsb128_mask ((__v16qi) __A,
1039  (__v16qi) __B,
1040  (__v16qi) _mm_setzero_si128 (),
1041  (__mmask16) __U);
1042 }
1043 
1044 static __inline__ __m256i __DEFAULT_FN_ATTRS
1045 _mm256_mask_adds_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
1046  __m256i __B)
1047 {
1048  return (__m256i) __builtin_ia32_paddsb256_mask ((__v32qi) __A,
1049  (__v32qi) __B,
1050  (__v32qi) __W,
1051  (__mmask32) __U);
1052 }
1053 
1054 static __inline__ __m256i __DEFAULT_FN_ATTRS
1055 _mm256_maskz_adds_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
1056 {
1057  return (__m256i) __builtin_ia32_paddsb256_mask ((__v32qi) __A,
1058  (__v32qi) __B,
1059  (__v32qi) _mm256_setzero_si256 (),
1060  (__mmask32) __U);
1061 }
1062 
1063 static __inline__ __m128i __DEFAULT_FN_ATTRS
1064 _mm_mask_adds_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
1065  __m128i __B)
1066 {
1067  return (__m128i) __builtin_ia32_paddsw128_mask ((__v8hi) __A,
1068  (__v8hi) __B,
1069  (__v8hi) __W,
1070  (__mmask8) __U);
1071 }
1072 
1073 static __inline__ __m128i __DEFAULT_FN_ATTRS
1074 _mm_maskz_adds_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
1075 {
1076  return (__m128i) __builtin_ia32_paddsw128_mask ((__v8hi) __A,
1077  (__v8hi) __B,
1078  (__v8hi) _mm_setzero_si128 (),
1079  (__mmask8) __U);
1080 }
1081 
1082 static __inline__ __m256i __DEFAULT_FN_ATTRS
1083 _mm256_mask_adds_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
1084  __m256i __B)
1085 {
1086  return (__m256i) __builtin_ia32_paddsw256_mask ((__v16hi) __A,
1087  (__v16hi) __B,
1088  (__v16hi) __W,
1089  (__mmask16) __U);
1090 }
1091 
1092 static __inline__ __m256i __DEFAULT_FN_ATTRS
1093 _mm256_maskz_adds_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
1094 {
1095  return (__m256i) __builtin_ia32_paddsw256_mask ((__v16hi) __A,
1096  (__v16hi) __B,
1097  (__v16hi) _mm256_setzero_si256 (),
1098  (__mmask16) __U);
1099 }
1100 
1101 static __inline__ __m128i __DEFAULT_FN_ATTRS
1102 _mm_mask_adds_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
1103  __m128i __B)
1104 {
1105  return (__m128i) __builtin_ia32_paddusb128_mask ((__v16qi) __A,
1106  (__v16qi) __B,
1107  (__v16qi) __W,
1108  (__mmask16) __U);
1109 }
1110 
1111 static __inline__ __m128i __DEFAULT_FN_ATTRS
1112 _mm_maskz_adds_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
1113 {
1114  return (__m128i) __builtin_ia32_paddusb128_mask ((__v16qi) __A,
1115  (__v16qi) __B,
1116  (__v16qi) _mm_setzero_si128 (),
1117  (__mmask16) __U);
1118 }
1119 
1120 static __inline__ __m256i __DEFAULT_FN_ATTRS
1121 _mm256_mask_adds_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
1122  __m256i __B)
1123 {
1124  return (__m256i) __builtin_ia32_paddusb256_mask ((__v32qi) __A,
1125  (__v32qi) __B,
1126  (__v32qi) __W,
1127  (__mmask32) __U);
1128 }
1129 
1130 static __inline__ __m256i __DEFAULT_FN_ATTRS
1131 _mm256_maskz_adds_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
1132 {
1133  return (__m256i) __builtin_ia32_paddusb256_mask ((__v32qi) __A,
1134  (__v32qi) __B,
1135  (__v32qi) _mm256_setzero_si256 (),
1136  (__mmask32) __U);
1137 }
1138 
1139 static __inline__ __m128i __DEFAULT_FN_ATTRS
1140 _mm_mask_adds_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
1141  __m128i __B)
1142 {
1143  return (__m128i) __builtin_ia32_paddusw128_mask ((__v8hi) __A,
1144  (__v8hi) __B,
1145  (__v8hi) __W,
1146  (__mmask8) __U);
1147 }
1148 
1149 static __inline__ __m128i __DEFAULT_FN_ATTRS
1150 _mm_maskz_adds_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
1151 {
1152  return (__m128i) __builtin_ia32_paddusw128_mask ((__v8hi) __A,
1153  (__v8hi) __B,
1154  (__v8hi) _mm_setzero_si128 (),
1155  (__mmask8) __U);
1156 }
1157 
1158 static __inline__ __m256i __DEFAULT_FN_ATTRS
1159 _mm256_mask_adds_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
1160  __m256i __B)
1161 {
1162  return (__m256i) __builtin_ia32_paddusw256_mask ((__v16hi) __A,
1163  (__v16hi) __B,
1164  (__v16hi) __W,
1165  (__mmask16) __U);
1166 }
1167 
1168 static __inline__ __m256i __DEFAULT_FN_ATTRS
1169 _mm256_maskz_adds_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
1170 {
1171  return (__m256i) __builtin_ia32_paddusw256_mask ((__v16hi) __A,
1172  (__v16hi) __B,
1173  (__v16hi) _mm256_setzero_si256 (),
1174  (__mmask16) __U);
1175 }
1176 
1177 static __inline__ __m128i __DEFAULT_FN_ATTRS
1178 _mm_mask_avg_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
1179  __m128i __B)
1180 {
1181  return (__m128i) __builtin_ia32_pavgb128_mask ((__v16qi) __A,
1182  (__v16qi) __B,
1183  (__v16qi) __W,
1184  (__mmask16) __U);
1185 }
1186 
1187 static __inline__ __m128i __DEFAULT_FN_ATTRS
1188 _mm_maskz_avg_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
1189 {
1190  return (__m128i) __builtin_ia32_pavgb128_mask ((__v16qi) __A,
1191  (__v16qi) __B,
1192  (__v16qi) _mm_setzero_si128 (),
1193  (__mmask16) __U);
1194 }
1195 
1196 static __inline__ __m256i __DEFAULT_FN_ATTRS
1197 _mm256_mask_avg_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
1198  __m256i __B)
1199 {
1200  return (__m256i) __builtin_ia32_pavgb256_mask ((__v32qi) __A,
1201  (__v32qi) __B,
1202  (__v32qi) __W,
1203  (__mmask32) __U);
1204 }
1205 
1206 static __inline__ __m256i __DEFAULT_FN_ATTRS
1207 _mm256_maskz_avg_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
1208 {
1209  return (__m256i) __builtin_ia32_pavgb256_mask ((__v32qi) __A,
1210  (__v32qi) __B,
1211  (__v32qi) _mm256_setzero_si256 (),
1212  (__mmask32) __U);
1213 }
1214 
1215 static __inline__ __m128i __DEFAULT_FN_ATTRS
1216 _mm_mask_avg_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
1217  __m128i __B)
1218 {
1219  return (__m128i) __builtin_ia32_pavgw128_mask ((__v8hi) __A,
1220  (__v8hi) __B,
1221  (__v8hi) __W,
1222  (__mmask8) __U);
1223 }
1224 
1225 static __inline__ __m128i __DEFAULT_FN_ATTRS
1226 _mm_maskz_avg_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
1227 {
1228  return (__m128i) __builtin_ia32_pavgw128_mask ((__v8hi) __A,
1229  (__v8hi) __B,
1230  (__v8hi) _mm_setzero_si128 (),
1231  (__mmask8) __U);
1232 }
1233 
1234 static __inline__ __m256i __DEFAULT_FN_ATTRS
1235 _mm256_mask_avg_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
1236  __m256i __B)
1237 {
1238  return (__m256i) __builtin_ia32_pavgw256_mask ((__v16hi) __A,
1239  (__v16hi) __B,
1240  (__v16hi) __W,
1241  (__mmask16) __U);
1242 }
1243 
1244 static __inline__ __m256i __DEFAULT_FN_ATTRS
1245 _mm256_maskz_avg_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
1246 {
1247  return (__m256i) __builtin_ia32_pavgw256_mask ((__v16hi) __A,
1248  (__v16hi) __B,
1249  (__v16hi) _mm256_setzero_si256 (),
1250  (__mmask16) __U);
1251 }
1252 
1253 static __inline__ __m128i __DEFAULT_FN_ATTRS
1254 _mm_maskz_max_epi8 (__mmask16 __M, __m128i __A, __m128i __B)
1255 {
1256  return (__m128i) __builtin_ia32_pmaxsb128_mask ((__v16qi) __A,
1257  (__v16qi) __B,
1258  (__v16qi) _mm_setzero_si128 (),
1259  (__mmask16) __M);
1260 }
1261 
1262 static __inline__ __m128i __DEFAULT_FN_ATTRS
1263 _mm_mask_max_epi8 (__m128i __W, __mmask16 __M, __m128i __A,
1264  __m128i __B)
1265 {
1266  return (__m128i) __builtin_ia32_pmaxsb128_mask ((__v16qi) __A,
1267  (__v16qi) __B,
1268  (__v16qi) __W,
1269  (__mmask16) __M);
1270 }
1271 
1272 static __inline__ __m256i __DEFAULT_FN_ATTRS
1273 _mm256_maskz_max_epi8 (__mmask32 __M, __m256i __A, __m256i __B)
1274 {
1275  return (__m256i) __builtin_ia32_pmaxsb256_mask ((__v32qi) __A,
1276  (__v32qi) __B,
1277  (__v32qi) _mm256_setzero_si256 (),
1278  (__mmask32) __M);
1279 }
1280 
1281 static __inline__ __m256i __DEFAULT_FN_ATTRS
1282 _mm256_mask_max_epi8 (__m256i __W, __mmask32 __M, __m256i __A,
1283  __m256i __B)
1284 {
1285  return (__m256i) __builtin_ia32_pmaxsb256_mask ((__v32qi) __A,
1286  (__v32qi) __B,
1287  (__v32qi) __W,
1288  (__mmask32) __M);
1289 }
1290 
1291 static __inline__ __m128i __DEFAULT_FN_ATTRS
1292 _mm_maskz_max_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
1293 {
1294  return (__m128i) __builtin_ia32_pmaxsw128_mask ((__v8hi) __A,
1295  (__v8hi) __B,
1296  (__v8hi) _mm_setzero_si128 (),
1297  (__mmask8) __M);
1298 }
1299 
1300 static __inline__ __m128i __DEFAULT_FN_ATTRS
1301 _mm_mask_max_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
1302  __m128i __B)
1303 {
1304  return (__m128i) __builtin_ia32_pmaxsw128_mask ((__v8hi) __A,
1305  (__v8hi) __B,
1306  (__v8hi) __W,
1307  (__mmask8) __M);
1308 }
1309 
1310 static __inline__ __m256i __DEFAULT_FN_ATTRS
1311 _mm256_maskz_max_epi16 (__mmask16 __M, __m256i __A, __m256i __B)
1312 {
1313  return (__m256i) __builtin_ia32_pmaxsw256_mask ((__v16hi) __A,
1314  (__v16hi) __B,
1315  (__v16hi) _mm256_setzero_si256 (),
1316  (__mmask16) __M);
1317 }
1318 
1319 static __inline__ __m256i __DEFAULT_FN_ATTRS
1320 _mm256_mask_max_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
1321  __m256i __B)
1322 {
1323  return (__m256i) __builtin_ia32_pmaxsw256_mask ((__v16hi) __A,
1324  (__v16hi) __B,
1325  (__v16hi) __W,
1326  (__mmask16) __M);
1327 }
1328 
1329 static __inline__ __m128i __DEFAULT_FN_ATTRS
1330 _mm_maskz_max_epu8 (__mmask16 __M, __m128i __A, __m128i __B)
1331 {
1332  return (__m128i) __builtin_ia32_pmaxub128_mask ((__v16qi) __A,
1333  (__v16qi) __B,
1334  (__v16qi) _mm_setzero_si128 (),
1335  (__mmask16) __M);
1336 }
1337 
1338 static __inline__ __m128i __DEFAULT_FN_ATTRS
1339 _mm_mask_max_epu8 (__m128i __W, __mmask16 __M, __m128i __A,
1340  __m128i __B)
1341 {
1342  return (__m128i) __builtin_ia32_pmaxub128_mask ((__v16qi) __A,
1343  (__v16qi) __B,
1344  (__v16qi) __W,
1345  (__mmask16) __M);
1346 }
1347 
1348 static __inline__ __m256i __DEFAULT_FN_ATTRS
1349 _mm256_maskz_max_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
1350 {
1351  return (__m256i) __builtin_ia32_pmaxub256_mask ((__v32qi) __A,
1352  (__v32qi) __B,
1353  (__v32qi) _mm256_setzero_si256 (),
1354  (__mmask32) __M);
1355 }
1356 
1357 static __inline__ __m256i __DEFAULT_FN_ATTRS
1358 _mm256_mask_max_epu8 (__m256i __W, __mmask32 __M, __m256i __A,
1359  __m256i __B)
1360 {
1361  return (__m256i) __builtin_ia32_pmaxub256_mask ((__v32qi) __A,
1362  (__v32qi) __B,
1363  (__v32qi) __W,
1364  (__mmask32) __M);
1365 }
1366 
1367 static __inline__ __m128i __DEFAULT_FN_ATTRS
1368 _mm_maskz_max_epu16 (__mmask8 __M, __m128i __A, __m128i __B)
1369 {
1370  return (__m128i) __builtin_ia32_pmaxuw128_mask ((__v8hi) __A,
1371  (__v8hi) __B,
1372  (__v8hi) _mm_setzero_si128 (),
1373  (__mmask8) __M);
1374 }
1375 
1376 static __inline__ __m128i __DEFAULT_FN_ATTRS
1377 _mm_mask_max_epu16 (__m128i __W, __mmask8 __M, __m128i __A,
1378  __m128i __B)
1379 {
1380  return (__m128i) __builtin_ia32_pmaxuw128_mask ((__v8hi) __A,
1381  (__v8hi) __B,
1382  (__v8hi) __W,
1383  (__mmask8) __M);
1384 }
1385 
1386 static __inline__ __m256i __DEFAULT_FN_ATTRS
1387 _mm256_maskz_max_epu16 (__mmask16 __M, __m256i __A, __m256i __B)
1388 {
1389  return (__m256i) __builtin_ia32_pmaxuw256_mask ((__v16hi) __A,
1390  (__v16hi) __B,
1391  (__v16hi) _mm256_setzero_si256 (),
1392  (__mmask16) __M);
1393 }
1394 
1395 static __inline__ __m256i __DEFAULT_FN_ATTRS
1396 _mm256_mask_max_epu16 (__m256i __W, __mmask16 __M, __m256i __A,
1397  __m256i __B)
1398 {
1399  return (__m256i) __builtin_ia32_pmaxuw256_mask ((__v16hi) __A,
1400  (__v16hi) __B,
1401  (__v16hi) __W,
1402  (__mmask16) __M);
1403 }
1404 
1405 static __inline__ __m128i __DEFAULT_FN_ATTRS
1406 _mm_maskz_min_epi8 (__mmask16 __M, __m128i __A, __m128i __B)
1407 {
1408  return (__m128i) __builtin_ia32_pminsb128_mask ((__v16qi) __A,
1409  (__v16qi) __B,
1410  (__v16qi) _mm_setzero_si128 (),
1411  (__mmask16) __M);
1412 }
1413 
1414 static __inline__ __m128i __DEFAULT_FN_ATTRS
1415 _mm_mask_min_epi8 (__m128i __W, __mmask16 __M, __m128i __A,
1416  __m128i __B)
1417 {
1418  return (__m128i) __builtin_ia32_pminsb128_mask ((__v16qi) __A,
1419  (__v16qi) __B,
1420  (__v16qi) __W,
1421  (__mmask16) __M);
1422 }
1423 
1424 static __inline__ __m256i __DEFAULT_FN_ATTRS
1425 _mm256_maskz_min_epi8 (__mmask32 __M, __m256i __A, __m256i __B)
1426 {
1427  return (__m256i) __builtin_ia32_pminsb256_mask ((__v32qi) __A,
1428  (__v32qi) __B,
1429  (__v32qi) _mm256_setzero_si256 (),
1430  (__mmask32) __M);
1431 }
1432 
1433 static __inline__ __m256i __DEFAULT_FN_ATTRS
1434 _mm256_mask_min_epi8 (__m256i __W, __mmask32 __M, __m256i __A,
1435  __m256i __B)
1436 {
1437  return (__m256i) __builtin_ia32_pminsb256_mask ((__v32qi) __A,
1438  (__v32qi) __B,
1439  (__v32qi) __W,
1440  (__mmask32) __M);
1441 }
1442 
1443 static __inline__ __m128i __DEFAULT_FN_ATTRS
1444 _mm_maskz_min_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
1445 {
1446  return (__m128i) __builtin_ia32_pminsw128_mask ((__v8hi) __A,
1447  (__v8hi) __B,
1448  (__v8hi) _mm_setzero_si128 (),
1449  (__mmask8) __M);
1450 }
1451 
1452 static __inline__ __m128i __DEFAULT_FN_ATTRS
1453 _mm_mask_min_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
1454  __m128i __B)
1455 {
1456  return (__m128i) __builtin_ia32_pminsw128_mask ((__v8hi) __A,
1457  (__v8hi) __B,
1458  (__v8hi) __W,
1459  (__mmask8) __M);
1460 }
1461 
1462 static __inline__ __m256i __DEFAULT_FN_ATTRS
1463 _mm256_maskz_min_epi16 (__mmask16 __M, __m256i __A, __m256i __B)
1464 {
1465  return (__m256i) __builtin_ia32_pminsw256_mask ((__v16hi) __A,
1466  (__v16hi) __B,
1467  (__v16hi) _mm256_setzero_si256 (),
1468  (__mmask16) __M);
1469 }
1470 
1471 static __inline__ __m256i __DEFAULT_FN_ATTRS
1472 _mm256_mask_min_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
1473  __m256i __B)
1474 {
1475  return (__m256i) __builtin_ia32_pminsw256_mask ((__v16hi) __A,
1476  (__v16hi) __B,
1477  (__v16hi) __W,
1478  (__mmask16) __M);
1479 }
1480 
1481 static __inline__ __m128i __DEFAULT_FN_ATTRS
1482 _mm_maskz_min_epu8 (__mmask16 __M, __m128i __A, __m128i __B)
1483 {
1484  return (__m128i) __builtin_ia32_pminub128_mask ((__v16qi) __A,
1485  (__v16qi) __B,
1486  (__v16qi) _mm_setzero_si128 (),
1487  (__mmask16) __M);
1488 }
1489 
1490 static __inline__ __m128i __DEFAULT_FN_ATTRS
1491 _mm_mask_min_epu8 (__m128i __W, __mmask16 __M, __m128i __A,
1492  __m128i __B)
1493 {
1494  return (__m128i) __builtin_ia32_pminub128_mask ((__v16qi) __A,
1495  (__v16qi) __B,
1496  (__v16qi) __W,
1497  (__mmask16) __M);
1498 }
1499 
1500 static __inline__ __m256i __DEFAULT_FN_ATTRS
1501 _mm256_maskz_min_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
1502 {
1503  return (__m256i) __builtin_ia32_pminub256_mask ((__v32qi) __A,
1504  (__v32qi) __B,
1505  (__v32qi) _mm256_setzero_si256 (),
1506  (__mmask32) __M);
1507 }
1508 
1509 static __inline__ __m256i __DEFAULT_FN_ATTRS
1510 _mm256_mask_min_epu8 (__m256i __W, __mmask32 __M, __m256i __A,
1511  __m256i __B)
1512 {
1513  return (__m256i) __builtin_ia32_pminub256_mask ((__v32qi) __A,
1514  (__v32qi) __B,
1515  (__v32qi) __W,
1516  (__mmask32) __M);
1517 }
1518 
1519 static __inline__ __m128i __DEFAULT_FN_ATTRS
1520 _mm_maskz_min_epu16 (__mmask8 __M, __m128i __A, __m128i __B)
1521 {
1522  return (__m128i) __builtin_ia32_pminuw128_mask ((__v8hi) __A,
1523  (__v8hi) __B,
1524  (__v8hi) _mm_setzero_si128 (),
1525  (__mmask8) __M);
1526 }
1527 
1528 static __inline__ __m128i __DEFAULT_FN_ATTRS
1529 _mm_mask_min_epu16 (__m128i __W, __mmask8 __M, __m128i __A,
1530  __m128i __B)
1531 {
1532  return (__m128i) __builtin_ia32_pminuw128_mask ((__v8hi) __A,
1533  (__v8hi) __B,
1534  (__v8hi) __W,
1535  (__mmask8) __M);
1536 }
1537 
1538 static __inline__ __m256i __DEFAULT_FN_ATTRS
1539 _mm256_maskz_min_epu16 (__mmask16 __M, __m256i __A, __m256i __B)
1540 {
1541  return (__m256i) __builtin_ia32_pminuw256_mask ((__v16hi) __A,
1542  (__v16hi) __B,
1543  (__v16hi) _mm256_setzero_si256 (),
1544  (__mmask16) __M);
1545 }
1546 
1547 static __inline__ __m256i __DEFAULT_FN_ATTRS
1548 _mm256_mask_min_epu16 (__m256i __W, __mmask16 __M, __m256i __A,
1549  __m256i __B)
1550 {
1551  return (__m256i) __builtin_ia32_pminuw256_mask ((__v16hi) __A,
1552  (__v16hi) __B,
1553  (__v16hi) __W,
1554  (__mmask16) __M);
1555 }
1556 
1557 static __inline__ __m128i __DEFAULT_FN_ATTRS
1558 _mm_mask_shuffle_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
1559  __m128i __B)
1560 {
1561  return (__m128i) __builtin_ia32_pshufb128_mask ((__v16qi) __A,
1562  (__v16qi) __B,
1563  (__v16qi) __W,
1564  (__mmask16) __U);
1565 }
1566 
1567 static __inline__ __m128i __DEFAULT_FN_ATTRS
1568 _mm_maskz_shuffle_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
1569 {
1570  return (__m128i) __builtin_ia32_pshufb128_mask ((__v16qi) __A,
1571  (__v16qi) __B,
1572  (__v16qi) _mm_setzero_si128 (),
1573  (__mmask16) __U);
1574 }
1575 
1576 static __inline__ __m256i __DEFAULT_FN_ATTRS
1577 _mm256_mask_shuffle_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
1578  __m256i __B)
1579 {
1580  return (__m256i) __builtin_ia32_pshufb256_mask ((__v32qi) __A,
1581  (__v32qi) __B,
1582  (__v32qi) __W,
1583  (__mmask32) __U);
1584 }
1585 
1586 static __inline__ __m256i __DEFAULT_FN_ATTRS
1587 _mm256_maskz_shuffle_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
1588 {
1589  return (__m256i) __builtin_ia32_pshufb256_mask ((__v32qi) __A,
1590  (__v32qi) __B,
1591  (__v32qi) _mm256_setzero_si256 (),
1592  (__mmask32) __U);
1593 }
1594 
1595 static __inline__ __m128i __DEFAULT_FN_ATTRS
1596 _mm_mask_subs_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
1597  __m128i __B)
1598 {
1599  return (__m128i) __builtin_ia32_psubsb128_mask ((__v16qi) __A,
1600  (__v16qi) __B,
1601  (__v16qi) __W,
1602  (__mmask16) __U);
1603 }
1604 
1605 static __inline__ __m128i __DEFAULT_FN_ATTRS
1606 _mm_maskz_subs_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
1607 {
1608  return (__m128i) __builtin_ia32_psubsb128_mask ((__v16qi) __A,
1609  (__v16qi) __B,
1610  (__v16qi) _mm_setzero_si128 (),
1611  (__mmask16) __U);
1612 }
1613 
1614 static __inline__ __m256i __DEFAULT_FN_ATTRS
1615 _mm256_mask_subs_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
1616  __m256i __B)
1617 {
1618  return (__m256i) __builtin_ia32_psubsb256_mask ((__v32qi) __A,
1619  (__v32qi) __B,
1620  (__v32qi) __W,
1621  (__mmask32) __U);
1622 }
1623 
1624 static __inline__ __m256i __DEFAULT_FN_ATTRS
1625 _mm256_maskz_subs_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
1626 {
1627  return (__m256i) __builtin_ia32_psubsb256_mask ((__v32qi) __A,
1628  (__v32qi) __B,
1629  (__v32qi) _mm256_setzero_si256 (),
1630  (__mmask32) __U);
1631 }
1632 
1633 static __inline__ __m128i __DEFAULT_FN_ATTRS
1634 _mm_mask_subs_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
1635  __m128i __B)
1636 {
1637  return (__m128i) __builtin_ia32_psubsw128_mask ((__v8hi) __A,
1638  (__v8hi) __B,
1639  (__v8hi) __W,
1640  (__mmask8) __U);
1641 }
1642 
1643 static __inline__ __m128i __DEFAULT_FN_ATTRS
1644 _mm_maskz_subs_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
1645 {
1646  return (__m128i) __builtin_ia32_psubsw128_mask ((__v8hi) __A,
1647  (__v8hi) __B,
1648  (__v8hi) _mm_setzero_si128 (),
1649  (__mmask8) __U);
1650 }
1651 
1652 static __inline__ __m256i __DEFAULT_FN_ATTRS
1653 _mm256_mask_subs_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
1654  __m256i __B)
1655 {
1656  return (__m256i) __builtin_ia32_psubsw256_mask ((__v16hi) __A,
1657  (__v16hi) __B,
1658  (__v16hi) __W,
1659  (__mmask16) __U);
1660 }
1661 
1662 static __inline__ __m256i __DEFAULT_FN_ATTRS
1663 _mm256_maskz_subs_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
1664 {
1665  return (__m256i) __builtin_ia32_psubsw256_mask ((__v16hi) __A,
1666  (__v16hi) __B,
1667  (__v16hi) _mm256_setzero_si256 (),
1668  (__mmask16) __U);
1669 }
1670 
1671 static __inline__ __m128i __DEFAULT_FN_ATTRS
1672 _mm_mask_subs_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
1673  __m128i __B)
1674 {
1675  return (__m128i) __builtin_ia32_psubusb128_mask ((__v16qi) __A,
1676  (__v16qi) __B,
1677  (__v16qi) __W,
1678  (__mmask16) __U);
1679 }
1680 
1681 static __inline__ __m128i __DEFAULT_FN_ATTRS
1682 _mm_maskz_subs_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
1683 {
1684  return (__m128i) __builtin_ia32_psubusb128_mask ((__v16qi) __A,
1685  (__v16qi) __B,
1686  (__v16qi) _mm_setzero_si128 (),
1687  (__mmask16) __U);
1688 }
1689 
1690 static __inline__ __m256i __DEFAULT_FN_ATTRS
1691 _mm256_mask_subs_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
1692  __m256i __B)
1693 {
1694  return (__m256i) __builtin_ia32_psubusb256_mask ((__v32qi) __A,
1695  (__v32qi) __B,
1696  (__v32qi) __W,
1697  (__mmask32) __U);
1698 }
1699 
1700 static __inline__ __m256i __DEFAULT_FN_ATTRS
1701 _mm256_maskz_subs_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
1702 {
1703  return (__m256i) __builtin_ia32_psubusb256_mask ((__v32qi) __A,
1704  (__v32qi) __B,
1705  (__v32qi) _mm256_setzero_si256 (),
1706  (__mmask32) __U);
1707 }
1708 
1709 static __inline__ __m128i __DEFAULT_FN_ATTRS
1710 _mm_mask_subs_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
1711  __m128i __B)
1712 {
1713  return (__m128i) __builtin_ia32_psubusw128_mask ((__v8hi) __A,
1714  (__v8hi) __B,
1715  (__v8hi) __W,
1716  (__mmask8) __U);
1717 }
1718 
1719 static __inline__ __m128i __DEFAULT_FN_ATTRS
1720 _mm_maskz_subs_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
1721 {
1722  return (__m128i) __builtin_ia32_psubusw128_mask ((__v8hi) __A,
1723  (__v8hi) __B,
1724  (__v8hi) _mm_setzero_si128 (),
1725  (__mmask8) __U);
1726 }
1727 
1728 static __inline__ __m256i __DEFAULT_FN_ATTRS
1729 _mm256_mask_subs_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
1730  __m256i __B)
1731 {
1732  return (__m256i) __builtin_ia32_psubusw256_mask ((__v16hi) __A,
1733  (__v16hi) __B,
1734  (__v16hi) __W,
1735  (__mmask16) __U);
1736 }
1737 
1738 static __inline__ __m256i __DEFAULT_FN_ATTRS
1739 _mm256_maskz_subs_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
1740 {
1741  return (__m256i) __builtin_ia32_psubusw256_mask ((__v16hi) __A,
1742  (__v16hi) __B,
1743  (__v16hi) _mm256_setzero_si256 (),
1744  (__mmask16) __U);
1745 }
1746 
1747 static __inline__ __m128i __DEFAULT_FN_ATTRS
1748 _mm_mask2_permutex2var_epi16 (__m128i __A, __m128i __I, __mmask8 __U,
1749  __m128i __B)
1750 {
1751  return (__m128i) __builtin_ia32_vpermi2varhi128_mask ((__v8hi) __A,
1752  (__v8hi) __I /* idx */ ,
1753  (__v8hi) __B,
1754  (__mmask8) __U);
1755 }
1756 
1757 static __inline__ __m256i __DEFAULT_FN_ATTRS
1758 _mm256_mask2_permutex2var_epi16 (__m256i __A, __m256i __I,
1759  __mmask16 __U, __m256i __B)
1760 {
1761  return (__m256i) __builtin_ia32_vpermi2varhi256_mask ((__v16hi) __A,
1762  (__v16hi) __I /* idx */ ,
1763  (__v16hi) __B,
1764  (__mmask16) __U);
1765 }
1766 
1767 static __inline__ __m128i __DEFAULT_FN_ATTRS
1768 _mm_permutex2var_epi16 (__m128i __A, __m128i __I, __m128i __B)
1769 {
1770  return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I/* idx */,
1771  (__v8hi) __A,
1772  (__v8hi) __B,
1773  (__mmask8) -1);
1774 }
1775 
1776 static __inline__ __m128i __DEFAULT_FN_ATTRS
1777 _mm_mask_permutex2var_epi16 (__m128i __A, __mmask8 __U, __m128i __I,
1778  __m128i __B)
1779 {
1780  return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I/* idx */,
1781  (__v8hi) __A,
1782  (__v8hi) __B,
1783  (__mmask8) __U);
1784 }
1785 
1786 static __inline__ __m128i __DEFAULT_FN_ATTRS
1787 _mm_maskz_permutex2var_epi16 (__mmask8 __U, __m128i __A, __m128i __I,
1788  __m128i __B)
1789 {
1790  return (__m128i) __builtin_ia32_vpermt2varhi128_maskz ((__v8hi) __I/* idx */,
1791  (__v8hi) __A,
1792  (__v8hi) __B,
1793  (__mmask8) __U);
1794 }
1795 
1796 static __inline__ __m256i __DEFAULT_FN_ATTRS
1797 _mm256_permutex2var_epi16 (__m256i __A, __m256i __I, __m256i __B)
1798 {
1799  return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I/* idx */,
1800  (__v16hi) __A,
1801  (__v16hi) __B,
1802  (__mmask16) -1);
1803 }
1804 
1805 static __inline__ __m256i __DEFAULT_FN_ATTRS
1806 _mm256_mask_permutex2var_epi16 (__m256i __A, __mmask16 __U,
1807  __m256i __I, __m256i __B)
1808 {
1809  return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I/* idx */,
1810  (__v16hi) __A,
1811  (__v16hi) __B,
1812  (__mmask16) __U);
1813 }
1814 
1815 static __inline__ __m256i __DEFAULT_FN_ATTRS
1816 _mm256_maskz_permutex2var_epi16 (__mmask16 __U, __m256i __A,
1817  __m256i __I, __m256i __B)
1818 {
1819  return (__m256i) __builtin_ia32_vpermt2varhi256_maskz ((__v16hi) __I/* idx */,
1820  (__v16hi) __A,
1821  (__v16hi) __B,
1822  (__mmask16) __U);
1823 }
1824 
1825 static __inline__ __m128i __DEFAULT_FN_ATTRS
1826 _mm_mask_maddubs_epi16 (__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
1827  return (__m128i) __builtin_ia32_pmaddubsw128_mask ((__v16qi) __X,
1828  (__v16qi) __Y,
1829  (__v8hi) __W,
1830  (__mmask8) __U);
1831 }
1832 
1833 static __inline__ __m128i __DEFAULT_FN_ATTRS
1834 _mm_maskz_maddubs_epi16 (__mmask8 __U, __m128i __X, __m128i __Y) {
1835  return (__m128i) __builtin_ia32_pmaddubsw128_mask ((__v16qi) __X,
1836  (__v16qi) __Y,
1837  (__v8hi) _mm_setzero_si128(),
1838  (__mmask8) __U);
1839 }
1840 
1841 static __inline__ __m256i __DEFAULT_FN_ATTRS
1842 _mm256_mask_maddubs_epi16 (__m256i __W, __mmask16 __U, __m256i __X,
1843  __m256i __Y) {
1844  return (__m256i) __builtin_ia32_pmaddubsw256_mask ((__v32qi) __X,
1845  (__v32qi) __Y,
1846  (__v16hi) __W,
1847  (__mmask16) __U);
1848 }
1849 
1850 static __inline__ __m256i __DEFAULT_FN_ATTRS
1851 _mm256_maskz_maddubs_epi16 (__mmask16 __U, __m256i __X, __m256i __Y) {
1852  return (__m256i) __builtin_ia32_pmaddubsw256_mask ((__v32qi) __X,
1853  (__v32qi) __Y,
1854  (__v16hi) _mm256_setzero_si256(),
1855  (__mmask16) __U);
1856 }
1857 
1858 static __inline__ __m128i __DEFAULT_FN_ATTRS
1859 _mm_mask_madd_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
1860  __m128i __B) {
1861  return (__m128i) __builtin_ia32_pmaddwd128_mask ((__v8hi) __A,
1862  (__v8hi) __B,
1863  (__v4si) __W,
1864  (__mmask8) __U);
1865 }
1866 
1867 static __inline__ __m128i __DEFAULT_FN_ATTRS
1868 _mm_maskz_madd_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
1869  return (__m128i) __builtin_ia32_pmaddwd128_mask ((__v8hi) __A,
1870  (__v8hi) __B,
1871  (__v4si) _mm_setzero_si128(),
1872  (__mmask8) __U);
1873 }
1874 
1875 static __inline__ __m256i __DEFAULT_FN_ATTRS
1876 _mm256_mask_madd_epi16 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
1877  return (__m256i) __builtin_ia32_pmaddwd256_mask ((__v16hi) __A,
1878  (__v16hi) __B,
1879  (__v8si) __W,
1880  (__mmask8) __U);
1881 }
1882 
1883 static __inline__ __m256i __DEFAULT_FN_ATTRS
1884 _mm256_maskz_madd_epi16 (__mmask8 __U, __m256i __A, __m256i __B) {
1885  return (__m256i) __builtin_ia32_pmaddwd256_mask ((__v16hi) __A,
1886  (__v16hi) __B,
1887  (__v8si) _mm256_setzero_si256(),
1888  (__mmask8) __U);
1889 }
1890 
1891 static __inline__ __m128i __DEFAULT_FN_ATTRS
1892 _mm_cvtsepi16_epi8 (__m128i __A) {
1893  return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
1894  (__v16qi) _mm_setzero_si128(),
1895  (__mmask8) -1);
1896 }
1897 
1898 static __inline__ __m128i __DEFAULT_FN_ATTRS
1899 _mm_mask_cvtsepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) {
1900  return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
1901  (__v16qi) __O,
1902  __M);
1903 }
1904 
1905 static __inline__ __m128i __DEFAULT_FN_ATTRS
1906 _mm_maskz_cvtsepi16_epi8 (__mmask8 __M, __m128i __A) {
1907  return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
1908  (__v16qi) _mm_setzero_si128(),
1909  __M);
1910 }
1911 
1912 static __inline__ __m128i __DEFAULT_FN_ATTRS
1913 _mm256_cvtsepi16_epi8 (__m256i __A) {
1914  return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
1915  (__v16qi) _mm_setzero_si128(),
1916  (__mmask16) -1);
1917 }
1918 
1919 static __inline__ __m128i __DEFAULT_FN_ATTRS
1920 _mm256_mask_cvtsepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) {
1921  return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
1922  (__v16qi) __O,
1923  __M);
1924 }
1925 
1926 static __inline__ __m128i __DEFAULT_FN_ATTRS
1927 _mm256_maskz_cvtsepi16_epi8 (__mmask16 __M, __m256i __A) {
1928  return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
1929  (__v16qi) _mm_setzero_si128(),
1930  __M);
1931 }
1932 
1933 static __inline__ __m128i __DEFAULT_FN_ATTRS
1934 _mm_cvtusepi16_epi8 (__m128i __A) {
1935  return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
1936  (__v16qi) _mm_setzero_si128(),
1937  (__mmask8) -1);
1938 }
1939 
1940 static __inline__ __m128i __DEFAULT_FN_ATTRS
1941 _mm_mask_cvtusepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) {
1942  return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
1943  (__v16qi) __O,
1944  __M);
1945 }
1946 
1947 static __inline__ __m128i __DEFAULT_FN_ATTRS
1948 _mm_maskz_cvtusepi16_epi8 (__mmask8 __M, __m128i __A) {
1949  return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
1950  (__v16qi) _mm_setzero_si128(),
1951  __M);
1952 }
1953 
1954 static __inline__ __m128i __DEFAULT_FN_ATTRS
1955 _mm256_cvtusepi16_epi8 (__m256i __A) {
1956  return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
1957  (__v16qi) _mm_setzero_si128(),
1958  (__mmask16) -1);
1959 }
1960 
1961 static __inline__ __m128i __DEFAULT_FN_ATTRS
1962 _mm256_mask_cvtusepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) {
1963  return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
1964  (__v16qi) __O,
1965  __M);
1966 }
1967 
1968 static __inline__ __m128i __DEFAULT_FN_ATTRS
1969 _mm256_maskz_cvtusepi16_epi8 (__mmask16 __M, __m256i __A) {
1970  return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
1971  (__v16qi) _mm_setzero_si128(),
1972  __M);
1973 }
1974 
1975 static __inline__ __m128i __DEFAULT_FN_ATTRS
1976 _mm_cvtepi16_epi8 (__m128i __A) {
1977 
1978  return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
1979  (__v16qi) _mm_setzero_si128(),
1980  (__mmask8) -1);
1981 }
1982 
1983 static __inline__ __m128i __DEFAULT_FN_ATTRS
1984 _mm_mask_cvtepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) {
1985  return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
1986  (__v16qi) __O,
1987  __M);
1988 }
1989 
1990 static __inline__ __m128i __DEFAULT_FN_ATTRS
1991 _mm_maskz_cvtepi16_epi8 (__mmask8 __M, __m128i __A) {
1992  return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
1993  (__v16qi) _mm_setzero_si128(),
1994  __M);
1995 }
1996 
1997 static __inline__ __m128i __DEFAULT_FN_ATTRS
1998 _mm256_cvtepi16_epi8 (__m256i __A) {
1999  return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
2000  (__v16qi) _mm_setzero_si128(),
2001  (__mmask16) -1);
2002 }
2003 
2004 static __inline__ __m128i __DEFAULT_FN_ATTRS
2005 _mm256_mask_cvtepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) {
2006  return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
2007  (__v16qi) __O,
2008  __M);
2009 }
2010 
2011 static __inline__ __m128i __DEFAULT_FN_ATTRS
2012 _mm256_maskz_cvtepi16_epi8 (__mmask16 __M, __m256i __A) {
2013  return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
2014  (__v16qi) _mm_setzero_si128(),
2015  __M);
2016 }
2017 
2018 static __inline__ __m128i __DEFAULT_FN_ATTRS
2019 _mm_mask_mulhrs_epi16 (__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
2020  return (__m128i) __builtin_ia32_pmulhrsw128_mask ((__v8hi) __X,
2021  (__v8hi) __Y,
2022  (__v8hi) __W,
2023  (__mmask8) __U);
2024 }
2025 
2026 static __inline__ __m128i __DEFAULT_FN_ATTRS
2027 _mm_maskz_mulhrs_epi16 (__mmask8 __U, __m128i __X, __m128i __Y) {
2028  return (__m128i) __builtin_ia32_pmulhrsw128_mask ((__v8hi) __X,
2029  (__v8hi) __Y,
2030  (__v8hi) _mm_setzero_si128(),
2031  (__mmask8) __U);
2032 }
2033 
2034 static __inline__ __m256i __DEFAULT_FN_ATTRS
2035 _mm256_mask_mulhrs_epi16 (__m256i __W, __mmask16 __U, __m256i __X, __m256i __Y) {
2036  return (__m256i) __builtin_ia32_pmulhrsw256_mask ((__v16hi) __X,
2037  (__v16hi) __Y,
2038  (__v16hi) __W,
2039  (__mmask16) __U);
2040 }
2041 
2042 static __inline__ __m256i __DEFAULT_FN_ATTRS
2043 _mm256_maskz_mulhrs_epi16 (__mmask16 __U, __m256i __X, __m256i __Y) {
2044  return (__m256i) __builtin_ia32_pmulhrsw256_mask ((__v16hi) __X,
2045  (__v16hi) __Y,
2046  (__v16hi) _mm256_setzero_si256(),
2047  (__mmask16) __U);
2048 }
2049 
2050 static __inline__ __m128i __DEFAULT_FN_ATTRS
2051 _mm_mask_mulhi_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
2052  __m128i __B) {
2053  return (__m128i) __builtin_ia32_pmulhuw128_mask ((__v8hi) __A,
2054  (__v8hi) __B,
2055  (__v8hi) __W,
2056  (__mmask8) __U);
2057 }
2058 
2059 static __inline__ __m128i __DEFAULT_FN_ATTRS
2060 _mm_maskz_mulhi_epu16 (__mmask8 __U, __m128i __A, __m128i __B) {
2061  return (__m128i) __builtin_ia32_pmulhuw128_mask ((__v8hi) __A,
2062  (__v8hi) __B,
2063  (__v8hi) _mm_setzero_si128(),
2064  (__mmask8) __U);
2065 }
2066 
2067 static __inline__ __m256i __DEFAULT_FN_ATTRS
2068 _mm256_mask_mulhi_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
2069  __m256i __B) {
2070  return (__m256i) __builtin_ia32_pmulhuw256_mask ((__v16hi) __A,
2071  (__v16hi) __B,
2072  (__v16hi) __W,
2073  (__mmask16) __U);
2074 }
2075 
2076 static __inline__ __m256i __DEFAULT_FN_ATTRS
2077 _mm256_maskz_mulhi_epu16 (__mmask16 __U, __m256i __A, __m256i __B) {
2078  return (__m256i) __builtin_ia32_pmulhuw256_mask ((__v16hi) __A,
2079  (__v16hi) __B,
2080  (__v16hi) _mm256_setzero_si256(),
2081  (__mmask16) __U);
2082 }
2083 
2084 static __inline__ __m128i __DEFAULT_FN_ATTRS
2085 _mm_mask_mulhi_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
2086  __m128i __B) {
2087  return (__m128i) __builtin_ia32_pmulhw128_mask ((__v8hi) __A,
2088  (__v8hi) __B,
2089  (__v8hi) __W,
2090  (__mmask8) __U);
2091 }
2092 
2093 static __inline__ __m128i __DEFAULT_FN_ATTRS
2094 _mm_maskz_mulhi_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
2095  return (__m128i) __builtin_ia32_pmulhw128_mask ((__v8hi) __A,
2096  (__v8hi) __B,
2097  (__v8hi) _mm_setzero_si128(),
2098  (__mmask8) __U);
2099 }
2100 
2101 static __inline__ __m256i __DEFAULT_FN_ATTRS
2102 _mm256_mask_mulhi_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2103  __m256i __B) {
2104  return (__m256i) __builtin_ia32_pmulhw256_mask ((__v16hi) __A,
2105  (__v16hi) __B,
2106  (__v16hi) __W,
2107  (__mmask16) __U);
2108 }
2109 
2110 static __inline__ __m256i __DEFAULT_FN_ATTRS
2111 _mm256_maskz_mulhi_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
2112  return (__m256i) __builtin_ia32_pmulhw256_mask ((__v16hi) __A,
2113  (__v16hi) __B,
2114  (__v16hi) _mm256_setzero_si256(),
2115  (__mmask16) __U);
2116 }
2117 
2118 static __inline__ __m128i __DEFAULT_FN_ATTRS
2119 _mm_mask_unpackhi_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
2120  __m128i __B) {
2121  return (__m128i) __builtin_ia32_punpckhbw128_mask ((__v16qi) __A,
2122  (__v16qi) __B,
2123  (__v16qi) __W,
2124  (__mmask16) __U);
2125 }
2126 
2127 static __inline__ __m128i __DEFAULT_FN_ATTRS
2128 _mm_maskz_unpackhi_epi8 (__mmask16 __U, __m128i __A, __m128i __B) {
2129  return (__m128i) __builtin_ia32_punpckhbw128_mask ((__v16qi) __A,
2130  (__v16qi) __B,
2131  (__v16qi) _mm_setzero_si128(),
2132  (__mmask16) __U);
2133 }
2134 
2135 static __inline__ __m256i __DEFAULT_FN_ATTRS
2136 _mm256_mask_unpackhi_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
2137  __m256i __B) {
2138  return (__m256i) __builtin_ia32_punpckhbw256_mask ((__v32qi) __A,
2139  (__v32qi) __B,
2140  (__v32qi) __W,
2141  (__mmask32) __U);
2142 }
2143 
2144 static __inline__ __m256i __DEFAULT_FN_ATTRS
2145 _mm256_maskz_unpackhi_epi8 (__mmask32 __U, __m256i __A, __m256i __B) {
2146  return (__m256i) __builtin_ia32_punpckhbw256_mask ((__v32qi) __A,
2147  (__v32qi) __B,
2148  (__v32qi) _mm256_setzero_si256(),
2149  (__mmask32) __U);
2150 }
2151 
2152 static __inline__ __m128i __DEFAULT_FN_ATTRS
2153 _mm_mask_unpackhi_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
2154  __m128i __B) {
2155  return (__m128i) __builtin_ia32_punpckhwd128_mask ((__v8hi) __A,
2156  (__v8hi) __B,
2157  (__v8hi) __W,
2158  (__mmask8) __U);
2159 }
2160 
2161 static __inline__ __m128i __DEFAULT_FN_ATTRS
2162 _mm_maskz_unpackhi_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
2163  return (__m128i) __builtin_ia32_punpckhwd128_mask ((__v8hi) __A,
2164  (__v8hi) __B,
2165  (__v8hi) _mm_setzero_si128(),
2166  (__mmask8) __U);
2167 }
2168 
2169 static __inline__ __m256i __DEFAULT_FN_ATTRS
2170 _mm256_mask_unpackhi_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2171  __m256i __B) {
2172  return (__m256i) __builtin_ia32_punpckhwd256_mask ((__v16hi) __A,
2173  (__v16hi) __B,
2174  (__v16hi) __W,
2175  (__mmask16) __U);
2176 }
2177 
2178 static __inline__ __m256i __DEFAULT_FN_ATTRS
2179 _mm256_maskz_unpackhi_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
2180  return (__m256i) __builtin_ia32_punpckhwd256_mask ((__v16hi) __A,
2181  (__v16hi) __B,
2182  (__v16hi) _mm256_setzero_si256(),
2183  (__mmask16) __U);
2184 }
2185 
2186 static __inline__ __m128i __DEFAULT_FN_ATTRS
2187 _mm_mask_unpacklo_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
2188  __m128i __B) {
2189  return (__m128i) __builtin_ia32_punpcklbw128_mask ((__v16qi) __A,
2190  (__v16qi) __B,
2191  (__v16qi) __W,
2192  (__mmask16) __U);
2193 }
2194 
2195 static __inline__ __m128i __DEFAULT_FN_ATTRS
2196 _mm_maskz_unpacklo_epi8 (__mmask16 __U, __m128i __A, __m128i __B) {
2197  return (__m128i) __builtin_ia32_punpcklbw128_mask ((__v16qi) __A,
2198  (__v16qi) __B,
2199  (__v16qi) _mm_setzero_si128(),
2200  (__mmask16) __U);
2201 }
2202 
2203 static __inline__ __m256i __DEFAULT_FN_ATTRS
2204 _mm256_mask_unpacklo_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
2205  __m256i __B) {
2206  return (__m256i) __builtin_ia32_punpcklbw256_mask ((__v32qi) __A,
2207  (__v32qi) __B,
2208  (__v32qi) __W,
2209  (__mmask32) __U);
2210 }
2211 
2212 static __inline__ __m256i __DEFAULT_FN_ATTRS
2213 _mm256_maskz_unpacklo_epi8 (__mmask32 __U, __m256i __A, __m256i __B) {
2214  return (__m256i) __builtin_ia32_punpcklbw256_mask ((__v32qi) __A,
2215  (__v32qi) __B,
2216  (__v32qi) _mm256_setzero_si256(),
2217  (__mmask32) __U);
2218 }
2219 
2220 static __inline__ __m128i __DEFAULT_FN_ATTRS
2221 _mm_mask_unpacklo_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
2222  __m128i __B) {
2223  return (__m128i) __builtin_ia32_punpcklwd128_mask ((__v8hi) __A,
2224  (__v8hi) __B,
2225  (__v8hi) __W,
2226  (__mmask8) __U);
2227 }
2228 
2229 static __inline__ __m128i __DEFAULT_FN_ATTRS
2230 _mm_maskz_unpacklo_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
2231  return (__m128i) __builtin_ia32_punpcklwd128_mask ((__v8hi) __A,
2232  (__v8hi) __B,
2233  (__v8hi) _mm_setzero_si128(),
2234  (__mmask8) __U);
2235 }
2236 
2237 static __inline__ __m256i __DEFAULT_FN_ATTRS
2238 _mm256_mask_unpacklo_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2239  __m256i __B) {
2240  return (__m256i) __builtin_ia32_punpcklwd256_mask ((__v16hi) __A,
2241  (__v16hi) __B,
2242  (__v16hi) __W,
2243  (__mmask16) __U);
2244 }
2245 
2246 static __inline__ __m256i __DEFAULT_FN_ATTRS
2247 _mm256_maskz_unpacklo_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
2248  return (__m256i) __builtin_ia32_punpcklwd256_mask ((__v16hi) __A,
2249  (__v16hi) __B,
2250  (__v16hi) _mm256_setzero_si256(),
2251  (__mmask16) __U);
2252 }
2253 
2254 #define _mm_cmp_epi8_mask(a, b, p) __extension__ ({ \
2255  (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)(a), \
2256  (__v16qi)(__m128i)(b), \
2257  (p), (__mmask16)-1); })
2258 
2259 #define _mm_mask_cmp_epi8_mask(m, a, b, p) __extension__ ({ \
2260  (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)(a), \
2261  (__v16qi)(__m128i)(b), \
2262  (p), (__mmask16)(m)); })
2263 
2264 #define _mm_cmp_epu8_mask(a, b, p) __extension__ ({ \
2265  (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)(__m128i)(a), \
2266  (__v16qi)(__m128i)(b), \
2267  (p), (__mmask16)-1); })
2268 
2269 #define _mm_mask_cmp_epu8_mask(m, a, b, p) __extension__ ({ \
2270  (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)(__m128i)(a), \
2271  (__v16qi)(__m128i)(b), \
2272  (p), (__mmask16)(m)); })
2273 
2274 #define _mm256_cmp_epi8_mask(a, b, p) __extension__ ({ \
2275  (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)(a), \
2276  (__v32qi)(__m256i)(b), \
2277  (p), (__mmask32)-1); })
2278 
2279 #define _mm256_mask_cmp_epi8_mask(m, a, b, p) __extension__ ({ \
2280  (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)(a), \
2281  (__v32qi)(__m256i)(b), \
2282  (p), (__mmask32)(m)); })
2283 
2284 #define _mm256_cmp_epu8_mask(a, b, p) __extension__ ({ \
2285  (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)(__m256i)(a), \
2286  (__v32qi)(__m256i)(b), \
2287  (p), (__mmask32)-1); })
2288 
2289 #define _mm256_mask_cmp_epu8_mask(m, a, b, p) __extension__ ({ \
2290  (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)(__m256i)(a), \
2291  (__v32qi)(__m256i)(b), \
2292  (p), (__mmask32)(m)); })
2293 
2294 #define _mm_cmp_epi16_mask(a, b, p) __extension__ ({ \
2295  (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)(a), \
2296  (__v8hi)(__m128i)(b), \
2297  (p), (__mmask8)-1); })
2298 
2299 #define _mm_mask_cmp_epi16_mask(m, a, b, p) __extension__ ({ \
2300  (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)(a), \
2301  (__v8hi)(__m128i)(b), \
2302  (p), (__mmask8)(m)); })
2303 
2304 #define _mm_cmp_epu16_mask(a, b, p) __extension__ ({ \
2305  (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)(__m128i)(a), \
2306  (__v8hi)(__m128i)(b), \
2307  (p), (__mmask8)-1); })
2308 
2309 #define _mm_mask_cmp_epu16_mask(m, a, b, p) __extension__ ({ \
2310  (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)(__m128i)(a), \
2311  (__v8hi)(__m128i)(b), \
2312  (p), (__mmask8)(m)); })
2313 
2314 #define _mm256_cmp_epi16_mask(a, b, p) __extension__ ({ \
2315  (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)(a), \
2316  (__v16hi)(__m256i)(b), \
2317  (p), (__mmask16)-1); })
2318 
2319 #define _mm256_mask_cmp_epi16_mask(m, a, b, p) __extension__ ({ \
2320  (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)(a), \
2321  (__v16hi)(__m256i)(b), \
2322  (p), (__mmask16)(m)); })
2323 
2324 #define _mm256_cmp_epu16_mask(a, b, p) __extension__ ({ \
2325  (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)(__m256i)(a), \
2326  (__v16hi)(__m256i)(b), \
2327  (p), (__mmask16)-1); })
2328 
2329 #define _mm256_mask_cmp_epu16_mask(m, a, b, p) __extension__ ({ \
2330  (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)(__m256i)(a), \
2331  (__v16hi)(__m256i)(b), \
2332  (p), (__mmask16)(m)); })
2333 
2334 #undef __DEFAULT_FN_ATTRS
2335 
2336 #endif /* __AVX512VLBWINTRIN_H */
unsigned char __mmask8
Definition: avx512fintrin.h:39
unsigned int __mmask32
Definition: avx512bwintrin.h:31
static vector float vector float __b
Definition: altivec.h:419
unsigned short __mmask16
Definition: avx512fintrin.h:40
#define __DEFAULT_FN_ATTRS
Definition: avx512vlbwintrin.h:32