Roll NDK to pick std::deque patch.
[android_tools.git] / sdk / build-tools / 25.0.2 / renderscript / clang-include / avx512vlbwintrin.h
blobb4542d69ab089dfc8d19da1eaea790443b18fd84
1 /*===---- avx512vlbwintrin.h - AVX512VL and AVX512BW intrinsics ------------===
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:
10 * The above copyright notice and this permission notice shall be included in
11 * all copies or substantial portions of the Software.
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.
21 *===-----------------------------------------------------------------------===
24 #ifndef __IMMINTRIN_H
25 #error "Never use <avx512vlbwintrin.h> directly; include <immintrin.h> instead."
26 #endif
28 #ifndef __AVX512VLBWINTRIN_H
29 #define __AVX512VLBWINTRIN_H
31 /* Define the default attributes for the functions in this file. */
32 #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw")))
34 /* Integer compare */
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
781 static __inline__ __m128i __DEFAULT_FN_ATTRS
782 _mm_mask_blend_epi8 (__mmask16 __U, __m128i __A, __m128i __W)
784 return (__m128i) __builtin_ia32_blendmb_128_mask ((__v16qi) __A,
785 (__v16qi) __W,
786 (__mmask16) __U);
789 static __inline__ __m256i __DEFAULT_FN_ATTRS
790 _mm256_mask_blend_epi8 (__mmask32 __U, __m256i __A, __m256i __W)
792 return (__m256i) __builtin_ia32_blendmb_256_mask ((__v32qi) __A,
793 (__v32qi) __W,
794 (__mmask32) __U);
797 static __inline__ __m128i __DEFAULT_FN_ATTRS
798 _mm_mask_blend_epi16 (__mmask8 __U, __m128i __A, __m128i __W)
800 return (__m128i) __builtin_ia32_blendmw_128_mask ((__v8hi) __A,
801 (__v8hi) __W,
802 (__mmask8) __U);
805 static __inline__ __m256i __DEFAULT_FN_ATTRS
806 _mm256_mask_blend_epi16 (__mmask16 __U, __m256i __A, __m256i __W)
808 return (__m256i) __builtin_ia32_blendmw_256_mask ((__v16hi) __A,
809 (__v16hi) __W,
810 (__mmask16) __U);
813 static __inline__ __m128i __DEFAULT_FN_ATTRS
814 _mm_mask_abs_epi8 (__m128i __W, __mmask16 __U, __m128i __A)
816 return (__m128i) __builtin_ia32_pabsb128_mask ((__v16qi) __A,
817 (__v16qi) __W,
818 (__mmask16) __U);
821 static __inline__ __m128i __DEFAULT_FN_ATTRS
822 _mm_maskz_abs_epi8 (__mmask16 __U, __m128i __A)
824 return (__m128i) __builtin_ia32_pabsb128_mask ((__v16qi) __A,
825 (__v16qi) _mm_setzero_si128 (),
826 (__mmask16) __U);
829 static __inline__ __m256i __DEFAULT_FN_ATTRS
830 _mm256_mask_abs_epi8 (__m256i __W, __mmask32 __U, __m256i __A)
832 return (__m256i) __builtin_ia32_pabsb256_mask ((__v32qi) __A,
833 (__v32qi) __W,
834 (__mmask32) __U);
837 static __inline__ __m256i __DEFAULT_FN_ATTRS
838 _mm256_maskz_abs_epi8 (__mmask32 __U, __m256i __A)
840 return (__m256i) __builtin_ia32_pabsb256_mask ((__v32qi) __A,
841 (__v32qi) _mm256_setzero_si256 (),
842 (__mmask32) __U);
845 static __inline__ __m128i __DEFAULT_FN_ATTRS
846 _mm_mask_abs_epi16 (__m128i __W, __mmask8 __U, __m128i __A)
848 return (__m128i) __builtin_ia32_pabsw128_mask ((__v8hi) __A,
849 (__v8hi) __W,
850 (__mmask8) __U);
853 static __inline__ __m128i __DEFAULT_FN_ATTRS
854 _mm_maskz_abs_epi16 (__mmask8 __U, __m128i __A)
856 return (__m128i) __builtin_ia32_pabsw128_mask ((__v8hi) __A,
857 (__v8hi) _mm_setzero_si128 (),
858 (__mmask8) __U);
861 static __inline__ __m256i __DEFAULT_FN_ATTRS
862 _mm256_mask_abs_epi16 (__m256i __W, __mmask16 __U, __m256i __A)
864 return (__m256i) __builtin_ia32_pabsw256_mask ((__v16hi) __A,
865 (__v16hi) __W,
866 (__mmask16) __U);
869 static __inline__ __m256i __DEFAULT_FN_ATTRS
870 _mm256_maskz_abs_epi16 (__mmask16 __U, __m256i __A)
872 return (__m256i) __builtin_ia32_pabsw256_mask ((__v16hi) __A,
873 (__v16hi) _mm256_setzero_si256 (),
874 (__mmask16) __U);
877 static __inline__ __m128i __DEFAULT_FN_ATTRS
878 _mm_maskz_packs_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
880 return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A,
881 (__v4si) __B,
882 (__v8hi) _mm_setzero_si128 (), __M);
885 static __inline__ __m128i __DEFAULT_FN_ATTRS
886 _mm_mask_packs_epi32 (__m128i __W, __mmask16 __M, __m128i __A,
887 __m128i __B)
889 return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A,
890 (__v4si) __B,
891 (__v8hi) __W, __M);
894 static __inline__ __m256i __DEFAULT_FN_ATTRS
895 _mm256_maskz_packs_epi32 (__mmask16 __M, __m256i __A, __m256i __B)
897 return (__m256i) __builtin_ia32_packssdw256_mask ((__v8si) __A,
898 (__v8si) __B,
899 (__v16hi) _mm256_setzero_si256 (),
900 __M);
903 static __inline__ __m256i __DEFAULT_FN_ATTRS
904 _mm256_mask_packs_epi32 (__m256i __W, __mmask16 __M, __m256i __A,
905 __m256i __B)
907 return (__m256i) __builtin_ia32_packssdw256_mask ((__v8si) __A,
908 (__v8si) __B,
909 (__v16hi) __W, __M);
912 static __inline__ __m128i __DEFAULT_FN_ATTRS
913 _mm_maskz_packs_epi16 (__mmask16 __M, __m128i __A, __m128i __B)
915 return (__m128i) __builtin_ia32_packsswb128_mask ((__v8hi) __A,
916 (__v8hi) __B,
917 (__v16qi) _mm_setzero_si128 (),
918 __M);
921 static __inline__ __m128i __DEFAULT_FN_ATTRS
922 _mm_mask_packs_epi16 (__m128i __W, __mmask16 __M, __m128i __A,
923 __m128i __B)
925 return (__m128i) __builtin_ia32_packsswb128_mask ((__v8hi) __A,
926 (__v8hi) __B,
927 (__v16qi) __W,
928 __M);
931 static __inline__ __m256i __DEFAULT_FN_ATTRS
932 _mm256_maskz_packs_epi16 (__mmask32 __M, __m256i __A, __m256i __B)
934 return (__m256i) __builtin_ia32_packsswb256_mask ((__v16hi) __A,
935 (__v16hi) __B,
936 (__v32qi) _mm256_setzero_si256 (),
937 __M);
940 static __inline__ __m256i __DEFAULT_FN_ATTRS
941 _mm256_mask_packs_epi16 (__m256i __W, __mmask32 __M, __m256i __A,
942 __m256i __B)
944 return (__m256i) __builtin_ia32_packsswb256_mask ((__v16hi) __A,
945 (__v16hi) __B,
946 (__v32qi) __W,
947 __M);
950 static __inline__ __m128i __DEFAULT_FN_ATTRS
951 _mm_maskz_packus_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
953 return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A,
954 (__v4si) __B,
955 (__v8hi) _mm_setzero_si128 (),
956 __M);
959 static __inline__ __m128i __DEFAULT_FN_ATTRS
960 _mm_mask_packus_epi32 (__m128i __W, __mmask16 __M, __m128i __A,
961 __m128i __B)
963 return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A,
964 (__v4si) __B,
965 (__v8hi) __W, __M);
968 static __inline__ __m256i __DEFAULT_FN_ATTRS
969 _mm256_maskz_packus_epi32 (__mmask16 __M, __m256i __A, __m256i __B)
971 return (__m256i) __builtin_ia32_packusdw256_mask ((__v8si) __A,
972 (__v8si) __B,
973 (__v16hi) _mm256_setzero_si256 (),
974 __M);
977 static __inline__ __m256i __DEFAULT_FN_ATTRS
978 _mm256_mask_packus_epi32 (__m256i __W, __mmask16 __M, __m256i __A,
979 __m256i __B)
981 return (__m256i) __builtin_ia32_packusdw256_mask ((__v8si) __A,
982 (__v8si) __B,
983 (__v16hi) __W,
984 __M);
987 static __inline__ __m128i __DEFAULT_FN_ATTRS
988 _mm_maskz_packus_epi16 (__mmask16 __M, __m128i __A, __m128i __B)
990 return (__m128i) __builtin_ia32_packuswb128_mask ((__v8hi) __A,
991 (__v8hi) __B,
992 (__v16qi) _mm_setzero_si128 (),
993 __M);
996 static __inline__ __m128i __DEFAULT_FN_ATTRS
997 _mm_mask_packus_epi16 (__m128i __W, __mmask16 __M, __m128i __A,
998 __m128i __B)
1000 return (__m128i) __builtin_ia32_packuswb128_mask ((__v8hi) __A,
1001 (__v8hi) __B,
1002 (__v16qi) __W,
1003 __M);
1006 static __inline__ __m256i __DEFAULT_FN_ATTRS
1007 _mm256_maskz_packus_epi16 (__mmask32 __M, __m256i __A, __m256i __B)
1009 return (__m256i) __builtin_ia32_packuswb256_mask ((__v16hi) __A,
1010 (__v16hi) __B,
1011 (__v32qi) _mm256_setzero_si256 (),
1012 __M);
1015 static __inline__ __m256i __DEFAULT_FN_ATTRS
1016 _mm256_mask_packus_epi16 (__m256i __W, __mmask32 __M, __m256i __A,
1017 __m256i __B)
1019 return (__m256i) __builtin_ia32_packuswb256_mask ((__v16hi) __A,
1020 (__v16hi) __B,
1021 (__v32qi) __W,
1022 __M);
1025 static __inline__ __m128i __DEFAULT_FN_ATTRS
1026 _mm_mask_adds_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
1027 __m128i __B)
1029 return (__m128i) __builtin_ia32_paddsb128_mask ((__v16qi) __A,
1030 (__v16qi) __B,
1031 (__v16qi) __W,
1032 (__mmask16) __U);
1035 static __inline__ __m128i __DEFAULT_FN_ATTRS
1036 _mm_maskz_adds_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
1038 return (__m128i) __builtin_ia32_paddsb128_mask ((__v16qi) __A,
1039 (__v16qi) __B,
1040 (__v16qi) _mm_setzero_si128 (),
1041 (__mmask16) __U);
1044 static __inline__ __m256i __DEFAULT_FN_ATTRS
1045 _mm256_mask_adds_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
1046 __m256i __B)
1048 return (__m256i) __builtin_ia32_paddsb256_mask ((__v32qi) __A,
1049 (__v32qi) __B,
1050 (__v32qi) __W,
1051 (__mmask32) __U);
1054 static __inline__ __m256i __DEFAULT_FN_ATTRS
1055 _mm256_maskz_adds_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
1057 return (__m256i) __builtin_ia32_paddsb256_mask ((__v32qi) __A,
1058 (__v32qi) __B,
1059 (__v32qi) _mm256_setzero_si256 (),
1060 (__mmask32) __U);
1063 static __inline__ __m128i __DEFAULT_FN_ATTRS
1064 _mm_mask_adds_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
1065 __m128i __B)
1067 return (__m128i) __builtin_ia32_paddsw128_mask ((__v8hi) __A,
1068 (__v8hi) __B,
1069 (__v8hi) __W,
1070 (__mmask8) __U);
1073 static __inline__ __m128i __DEFAULT_FN_ATTRS
1074 _mm_maskz_adds_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
1076 return (__m128i) __builtin_ia32_paddsw128_mask ((__v8hi) __A,
1077 (__v8hi) __B,
1078 (__v8hi) _mm_setzero_si128 (),
1079 (__mmask8) __U);
1082 static __inline__ __m256i __DEFAULT_FN_ATTRS
1083 _mm256_mask_adds_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
1084 __m256i __B)
1086 return (__m256i) __builtin_ia32_paddsw256_mask ((__v16hi) __A,
1087 (__v16hi) __B,
1088 (__v16hi) __W,
1089 (__mmask16) __U);
1092 static __inline__ __m256i __DEFAULT_FN_ATTRS
1093 _mm256_maskz_adds_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
1095 return (__m256i) __builtin_ia32_paddsw256_mask ((__v16hi) __A,
1096 (__v16hi) __B,
1097 (__v16hi) _mm256_setzero_si256 (),
1098 (__mmask16) __U);
1101 static __inline__ __m128i __DEFAULT_FN_ATTRS
1102 _mm_mask_adds_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
1103 __m128i __B)
1105 return (__m128i) __builtin_ia32_paddusb128_mask ((__v16qi) __A,
1106 (__v16qi) __B,
1107 (__v16qi) __W,
1108 (__mmask16) __U);
1111 static __inline__ __m128i __DEFAULT_FN_ATTRS
1112 _mm_maskz_adds_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
1114 return (__m128i) __builtin_ia32_paddusb128_mask ((__v16qi) __A,
1115 (__v16qi) __B,
1116 (__v16qi) _mm_setzero_si128 (),
1117 (__mmask16) __U);
1120 static __inline__ __m256i __DEFAULT_FN_ATTRS
1121 _mm256_mask_adds_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
1122 __m256i __B)
1124 return (__m256i) __builtin_ia32_paddusb256_mask ((__v32qi) __A,
1125 (__v32qi) __B,
1126 (__v32qi) __W,
1127 (__mmask32) __U);
1130 static __inline__ __m256i __DEFAULT_FN_ATTRS
1131 _mm256_maskz_adds_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
1133 return (__m256i) __builtin_ia32_paddusb256_mask ((__v32qi) __A,
1134 (__v32qi) __B,
1135 (__v32qi) _mm256_setzero_si256 (),
1136 (__mmask32) __U);
1139 static __inline__ __m128i __DEFAULT_FN_ATTRS
1140 _mm_mask_adds_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
1141 __m128i __B)
1143 return (__m128i) __builtin_ia32_paddusw128_mask ((__v8hi) __A,
1144 (__v8hi) __B,
1145 (__v8hi) __W,
1146 (__mmask8) __U);
1149 static __inline__ __m128i __DEFAULT_FN_ATTRS
1150 _mm_maskz_adds_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
1152 return (__m128i) __builtin_ia32_paddusw128_mask ((__v8hi) __A,
1153 (__v8hi) __B,
1154 (__v8hi) _mm_setzero_si128 (),
1155 (__mmask8) __U);
1158 static __inline__ __m256i __DEFAULT_FN_ATTRS
1159 _mm256_mask_adds_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
1160 __m256i __B)
1162 return (__m256i) __builtin_ia32_paddusw256_mask ((__v16hi) __A,
1163 (__v16hi) __B,
1164 (__v16hi) __W,
1165 (__mmask16) __U);
1168 static __inline__ __m256i __DEFAULT_FN_ATTRS
1169 _mm256_maskz_adds_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
1171 return (__m256i) __builtin_ia32_paddusw256_mask ((__v16hi) __A,
1172 (__v16hi) __B,
1173 (__v16hi) _mm256_setzero_si256 (),
1174 (__mmask16) __U);
1177 static __inline__ __m128i __DEFAULT_FN_ATTRS
1178 _mm_mask_avg_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
1179 __m128i __B)
1181 return (__m128i) __builtin_ia32_pavgb128_mask ((__v16qi) __A,
1182 (__v16qi) __B,
1183 (__v16qi) __W,
1184 (__mmask16) __U);
1187 static __inline__ __m128i __DEFAULT_FN_ATTRS
1188 _mm_maskz_avg_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
1190 return (__m128i) __builtin_ia32_pavgb128_mask ((__v16qi) __A,
1191 (__v16qi) __B,
1192 (__v16qi) _mm_setzero_si128 (),
1193 (__mmask16) __U);
1196 static __inline__ __m256i __DEFAULT_FN_ATTRS
1197 _mm256_mask_avg_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
1198 __m256i __B)
1200 return (__m256i) __builtin_ia32_pavgb256_mask ((__v32qi) __A,
1201 (__v32qi) __B,
1202 (__v32qi) __W,
1203 (__mmask32) __U);
1206 static __inline__ __m256i __DEFAULT_FN_ATTRS
1207 _mm256_maskz_avg_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
1209 return (__m256i) __builtin_ia32_pavgb256_mask ((__v32qi) __A,
1210 (__v32qi) __B,
1211 (__v32qi) _mm256_setzero_si256 (),
1212 (__mmask32) __U);
1215 static __inline__ __m128i __DEFAULT_FN_ATTRS
1216 _mm_mask_avg_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
1217 __m128i __B)
1219 return (__m128i) __builtin_ia32_pavgw128_mask ((__v8hi) __A,
1220 (__v8hi) __B,
1221 (__v8hi) __W,
1222 (__mmask8) __U);
1225 static __inline__ __m128i __DEFAULT_FN_ATTRS
1226 _mm_maskz_avg_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
1228 return (__m128i) __builtin_ia32_pavgw128_mask ((__v8hi) __A,
1229 (__v8hi) __B,
1230 (__v8hi) _mm_setzero_si128 (),
1231 (__mmask8) __U);
1234 static __inline__ __m256i __DEFAULT_FN_ATTRS
1235 _mm256_mask_avg_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
1236 __m256i __B)
1238 return (__m256i) __builtin_ia32_pavgw256_mask ((__v16hi) __A,
1239 (__v16hi) __B,
1240 (__v16hi) __W,
1241 (__mmask16) __U);
1244 static __inline__ __m256i __DEFAULT_FN_ATTRS
1245 _mm256_maskz_avg_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
1247 return (__m256i) __builtin_ia32_pavgw256_mask ((__v16hi) __A,
1248 (__v16hi) __B,
1249 (__v16hi) _mm256_setzero_si256 (),
1250 (__mmask16) __U);
1253 static __inline__ __m128i __DEFAULT_FN_ATTRS
1254 _mm_maskz_max_epi8 (__mmask16 __M, __m128i __A, __m128i __B)
1256 return (__m128i) __builtin_ia32_pmaxsb128_mask ((__v16qi) __A,
1257 (__v16qi) __B,
1258 (__v16qi) _mm_setzero_si128 (),
1259 (__mmask16) __M);
1262 static __inline__ __m128i __DEFAULT_FN_ATTRS
1263 _mm_mask_max_epi8 (__m128i __W, __mmask16 __M, __m128i __A,
1264 __m128i __B)
1266 return (__m128i) __builtin_ia32_pmaxsb128_mask ((__v16qi) __A,
1267 (__v16qi) __B,
1268 (__v16qi) __W,
1269 (__mmask16) __M);
1272 static __inline__ __m256i __DEFAULT_FN_ATTRS
1273 _mm256_maskz_max_epi8 (__mmask32 __M, __m256i __A, __m256i __B)
1275 return (__m256i) __builtin_ia32_pmaxsb256_mask ((__v32qi) __A,
1276 (__v32qi) __B,
1277 (__v32qi) _mm256_setzero_si256 (),
1278 (__mmask32) __M);
1281 static __inline__ __m256i __DEFAULT_FN_ATTRS
1282 _mm256_mask_max_epi8 (__m256i __W, __mmask32 __M, __m256i __A,
1283 __m256i __B)
1285 return (__m256i) __builtin_ia32_pmaxsb256_mask ((__v32qi) __A,
1286 (__v32qi) __B,
1287 (__v32qi) __W,
1288 (__mmask32) __M);
1291 static __inline__ __m128i __DEFAULT_FN_ATTRS
1292 _mm_maskz_max_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
1294 return (__m128i) __builtin_ia32_pmaxsw128_mask ((__v8hi) __A,
1295 (__v8hi) __B,
1296 (__v8hi) _mm_setzero_si128 (),
1297 (__mmask8) __M);
1300 static __inline__ __m128i __DEFAULT_FN_ATTRS
1301 _mm_mask_max_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
1302 __m128i __B)
1304 return (__m128i) __builtin_ia32_pmaxsw128_mask ((__v8hi) __A,
1305 (__v8hi) __B,
1306 (__v8hi) __W,
1307 (__mmask8) __M);
1310 static __inline__ __m256i __DEFAULT_FN_ATTRS
1311 _mm256_maskz_max_epi16 (__mmask16 __M, __m256i __A, __m256i __B)
1313 return (__m256i) __builtin_ia32_pmaxsw256_mask ((__v16hi) __A,
1314 (__v16hi) __B,
1315 (__v16hi) _mm256_setzero_si256 (),
1316 (__mmask16) __M);
1319 static __inline__ __m256i __DEFAULT_FN_ATTRS
1320 _mm256_mask_max_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
1321 __m256i __B)
1323 return (__m256i) __builtin_ia32_pmaxsw256_mask ((__v16hi) __A,
1324 (__v16hi) __B,
1325 (__v16hi) __W,
1326 (__mmask16) __M);
1329 static __inline__ __m128i __DEFAULT_FN_ATTRS
1330 _mm_maskz_max_epu8 (__mmask16 __M, __m128i __A, __m128i __B)
1332 return (__m128i) __builtin_ia32_pmaxub128_mask ((__v16qi) __A,
1333 (__v16qi) __B,
1334 (__v16qi) _mm_setzero_si128 (),
1335 (__mmask16) __M);
1338 static __inline__ __m128i __DEFAULT_FN_ATTRS
1339 _mm_mask_max_epu8 (__m128i __W, __mmask16 __M, __m128i __A,
1340 __m128i __B)
1342 return (__m128i) __builtin_ia32_pmaxub128_mask ((__v16qi) __A,
1343 (__v16qi) __B,
1344 (__v16qi) __W,
1345 (__mmask16) __M);
1348 static __inline__ __m256i __DEFAULT_FN_ATTRS
1349 _mm256_maskz_max_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
1351 return (__m256i) __builtin_ia32_pmaxub256_mask ((__v32qi) __A,
1352 (__v32qi) __B,
1353 (__v32qi) _mm256_setzero_si256 (),
1354 (__mmask32) __M);
1357 static __inline__ __m256i __DEFAULT_FN_ATTRS
1358 _mm256_mask_max_epu8 (__m256i __W, __mmask32 __M, __m256i __A,
1359 __m256i __B)
1361 return (__m256i) __builtin_ia32_pmaxub256_mask ((__v32qi) __A,
1362 (__v32qi) __B,
1363 (__v32qi) __W,
1364 (__mmask32) __M);
1367 static __inline__ __m128i __DEFAULT_FN_ATTRS
1368 _mm_maskz_max_epu16 (__mmask8 __M, __m128i __A, __m128i __B)
1370 return (__m128i) __builtin_ia32_pmaxuw128_mask ((__v8hi) __A,
1371 (__v8hi) __B,
1372 (__v8hi) _mm_setzero_si128 (),
1373 (__mmask8) __M);
1376 static __inline__ __m128i __DEFAULT_FN_ATTRS
1377 _mm_mask_max_epu16 (__m128i __W, __mmask8 __M, __m128i __A,
1378 __m128i __B)
1380 return (__m128i) __builtin_ia32_pmaxuw128_mask ((__v8hi) __A,
1381 (__v8hi) __B,
1382 (__v8hi) __W,
1383 (__mmask8) __M);
1386 static __inline__ __m256i __DEFAULT_FN_ATTRS
1387 _mm256_maskz_max_epu16 (__mmask16 __M, __m256i __A, __m256i __B)
1389 return (__m256i) __builtin_ia32_pmaxuw256_mask ((__v16hi) __A,
1390 (__v16hi) __B,
1391 (__v16hi) _mm256_setzero_si256 (),
1392 (__mmask16) __M);
1395 static __inline__ __m256i __DEFAULT_FN_ATTRS
1396 _mm256_mask_max_epu16 (__m256i __W, __mmask16 __M, __m256i __A,
1397 __m256i __B)
1399 return (__m256i) __builtin_ia32_pmaxuw256_mask ((__v16hi) __A,
1400 (__v16hi) __B,
1401 (__v16hi) __W,
1402 (__mmask16) __M);
1405 static __inline__ __m128i __DEFAULT_FN_ATTRS
1406 _mm_maskz_min_epi8 (__mmask16 __M, __m128i __A, __m128i __B)
1408 return (__m128i) __builtin_ia32_pminsb128_mask ((__v16qi) __A,
1409 (__v16qi) __B,
1410 (__v16qi) _mm_setzero_si128 (),
1411 (__mmask16) __M);
1414 static __inline__ __m128i __DEFAULT_FN_ATTRS
1415 _mm_mask_min_epi8 (__m128i __W, __mmask16 __M, __m128i __A,
1416 __m128i __B)
1418 return (__m128i) __builtin_ia32_pminsb128_mask ((__v16qi) __A,
1419 (__v16qi) __B,
1420 (__v16qi) __W,
1421 (__mmask16) __M);
1424 static __inline__ __m256i __DEFAULT_FN_ATTRS
1425 _mm256_maskz_min_epi8 (__mmask32 __M, __m256i __A, __m256i __B)
1427 return (__m256i) __builtin_ia32_pminsb256_mask ((__v32qi) __A,
1428 (__v32qi) __B,
1429 (__v32qi) _mm256_setzero_si256 (),
1430 (__mmask32) __M);
1433 static __inline__ __m256i __DEFAULT_FN_ATTRS
1434 _mm256_mask_min_epi8 (__m256i __W, __mmask32 __M, __m256i __A,
1435 __m256i __B)
1437 return (__m256i) __builtin_ia32_pminsb256_mask ((__v32qi) __A,
1438 (__v32qi) __B,
1439 (__v32qi) __W,
1440 (__mmask32) __M);
1443 static __inline__ __m128i __DEFAULT_FN_ATTRS
1444 _mm_maskz_min_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
1446 return (__m128i) __builtin_ia32_pminsw128_mask ((__v8hi) __A,
1447 (__v8hi) __B,
1448 (__v8hi) _mm_setzero_si128 (),
1449 (__mmask8) __M);
1452 static __inline__ __m128i __DEFAULT_FN_ATTRS
1453 _mm_mask_min_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
1454 __m128i __B)
1456 return (__m128i) __builtin_ia32_pminsw128_mask ((__v8hi) __A,
1457 (__v8hi) __B,
1458 (__v8hi) __W,
1459 (__mmask8) __M);
1462 static __inline__ __m256i __DEFAULT_FN_ATTRS
1463 _mm256_maskz_min_epi16 (__mmask16 __M, __m256i __A, __m256i __B)
1465 return (__m256i) __builtin_ia32_pminsw256_mask ((__v16hi) __A,
1466 (__v16hi) __B,
1467 (__v16hi) _mm256_setzero_si256 (),
1468 (__mmask16) __M);
1471 static __inline__ __m256i __DEFAULT_FN_ATTRS
1472 _mm256_mask_min_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
1473 __m256i __B)
1475 return (__m256i) __builtin_ia32_pminsw256_mask ((__v16hi) __A,
1476 (__v16hi) __B,
1477 (__v16hi) __W,
1478 (__mmask16) __M);
1481 static __inline__ __m128i __DEFAULT_FN_ATTRS
1482 _mm_maskz_min_epu8 (__mmask16 __M, __m128i __A, __m128i __B)
1484 return (__m128i) __builtin_ia32_pminub128_mask ((__v16qi) __A,
1485 (__v16qi) __B,
1486 (__v16qi) _mm_setzero_si128 (),
1487 (__mmask16) __M);
1490 static __inline__ __m128i __DEFAULT_FN_ATTRS
1491 _mm_mask_min_epu8 (__m128i __W, __mmask16 __M, __m128i __A,
1492 __m128i __B)
1494 return (__m128i) __builtin_ia32_pminub128_mask ((__v16qi) __A,
1495 (__v16qi) __B,
1496 (__v16qi) __W,
1497 (__mmask16) __M);
1500 static __inline__ __m256i __DEFAULT_FN_ATTRS
1501 _mm256_maskz_min_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
1503 return (__m256i) __builtin_ia32_pminub256_mask ((__v32qi) __A,
1504 (__v32qi) __B,
1505 (__v32qi) _mm256_setzero_si256 (),
1506 (__mmask32) __M);
1509 static __inline__ __m256i __DEFAULT_FN_ATTRS
1510 _mm256_mask_min_epu8 (__m256i __W, __mmask32 __M, __m256i __A,
1511 __m256i __B)
1513 return (__m256i) __builtin_ia32_pminub256_mask ((__v32qi) __A,
1514 (__v32qi) __B,
1515 (__v32qi) __W,
1516 (__mmask32) __M);
1519 static __inline__ __m128i __DEFAULT_FN_ATTRS
1520 _mm_maskz_min_epu16 (__mmask8 __M, __m128i __A, __m128i __B)
1522 return (__m128i) __builtin_ia32_pminuw128_mask ((__v8hi) __A,
1523 (__v8hi) __B,
1524 (__v8hi) _mm_setzero_si128 (),
1525 (__mmask8) __M);
1528 static __inline__ __m128i __DEFAULT_FN_ATTRS
1529 _mm_mask_min_epu16 (__m128i __W, __mmask8 __M, __m128i __A,
1530 __m128i __B)
1532 return (__m128i) __builtin_ia32_pminuw128_mask ((__v8hi) __A,
1533 (__v8hi) __B,
1534 (__v8hi) __W,
1535 (__mmask8) __M);
1538 static __inline__ __m256i __DEFAULT_FN_ATTRS
1539 _mm256_maskz_min_epu16 (__mmask16 __M, __m256i __A, __m256i __B)
1541 return (__m256i) __builtin_ia32_pminuw256_mask ((__v16hi) __A,
1542 (__v16hi) __B,
1543 (__v16hi) _mm256_setzero_si256 (),
1544 (__mmask16) __M);
1547 static __inline__ __m256i __DEFAULT_FN_ATTRS
1548 _mm256_mask_min_epu16 (__m256i __W, __mmask16 __M, __m256i __A,
1549 __m256i __B)
1551 return (__m256i) __builtin_ia32_pminuw256_mask ((__v16hi) __A,
1552 (__v16hi) __B,
1553 (__v16hi) __W,
1554 (__mmask16) __M);
1557 static __inline__ __m128i __DEFAULT_FN_ATTRS
1558 _mm_mask_shuffle_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
1559 __m128i __B)
1561 return (__m128i) __builtin_ia32_pshufb128_mask ((__v16qi) __A,
1562 (__v16qi) __B,
1563 (__v16qi) __W,
1564 (__mmask16) __U);
1567 static __inline__ __m128i __DEFAULT_FN_ATTRS
1568 _mm_maskz_shuffle_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
1570 return (__m128i) __builtin_ia32_pshufb128_mask ((__v16qi) __A,
1571 (__v16qi) __B,
1572 (__v16qi) _mm_setzero_si128 (),
1573 (__mmask16) __U);
1576 static __inline__ __m256i __DEFAULT_FN_ATTRS
1577 _mm256_mask_shuffle_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
1578 __m256i __B)
1580 return (__m256i) __builtin_ia32_pshufb256_mask ((__v32qi) __A,
1581 (__v32qi) __B,
1582 (__v32qi) __W,
1583 (__mmask32) __U);
1586 static __inline__ __m256i __DEFAULT_FN_ATTRS
1587 _mm256_maskz_shuffle_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
1589 return (__m256i) __builtin_ia32_pshufb256_mask ((__v32qi) __A,
1590 (__v32qi) __B,
1591 (__v32qi) _mm256_setzero_si256 (),
1592 (__mmask32) __U);
1595 static __inline__ __m128i __DEFAULT_FN_ATTRS
1596 _mm_mask_subs_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
1597 __m128i __B)
1599 return (__m128i) __builtin_ia32_psubsb128_mask ((__v16qi) __A,
1600 (__v16qi) __B,
1601 (__v16qi) __W,
1602 (__mmask16) __U);
1605 static __inline__ __m128i __DEFAULT_FN_ATTRS
1606 _mm_maskz_subs_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
1608 return (__m128i) __builtin_ia32_psubsb128_mask ((__v16qi) __A,
1609 (__v16qi) __B,
1610 (__v16qi) _mm_setzero_si128 (),
1611 (__mmask16) __U);
1614 static __inline__ __m256i __DEFAULT_FN_ATTRS
1615 _mm256_mask_subs_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
1616 __m256i __B)
1618 return (__m256i) __builtin_ia32_psubsb256_mask ((__v32qi) __A,
1619 (__v32qi) __B,
1620 (__v32qi) __W,
1621 (__mmask32) __U);
1624 static __inline__ __m256i __DEFAULT_FN_ATTRS
1625 _mm256_maskz_subs_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
1627 return (__m256i) __builtin_ia32_psubsb256_mask ((__v32qi) __A,
1628 (__v32qi) __B,
1629 (__v32qi) _mm256_setzero_si256 (),
1630 (__mmask32) __U);
1633 static __inline__ __m128i __DEFAULT_FN_ATTRS
1634 _mm_mask_subs_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
1635 __m128i __B)
1637 return (__m128i) __builtin_ia32_psubsw128_mask ((__v8hi) __A,
1638 (__v8hi) __B,
1639 (__v8hi) __W,
1640 (__mmask8) __U);
1643 static __inline__ __m128i __DEFAULT_FN_ATTRS
1644 _mm_maskz_subs_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
1646 return (__m128i) __builtin_ia32_psubsw128_mask ((__v8hi) __A,
1647 (__v8hi) __B,
1648 (__v8hi) _mm_setzero_si128 (),
1649 (__mmask8) __U);
1652 static __inline__ __m256i __DEFAULT_FN_ATTRS
1653 _mm256_mask_subs_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
1654 __m256i __B)
1656 return (__m256i) __builtin_ia32_psubsw256_mask ((__v16hi) __A,
1657 (__v16hi) __B,
1658 (__v16hi) __W,
1659 (__mmask16) __U);
1662 static __inline__ __m256i __DEFAULT_FN_ATTRS
1663 _mm256_maskz_subs_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
1665 return (__m256i) __builtin_ia32_psubsw256_mask ((__v16hi) __A,
1666 (__v16hi) __B,
1667 (__v16hi) _mm256_setzero_si256 (),
1668 (__mmask16) __U);
1671 static __inline__ __m128i __DEFAULT_FN_ATTRS
1672 _mm_mask_subs_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
1673 __m128i __B)
1675 return (__m128i) __builtin_ia32_psubusb128_mask ((__v16qi) __A,
1676 (__v16qi) __B,
1677 (__v16qi) __W,
1678 (__mmask16) __U);
1681 static __inline__ __m128i __DEFAULT_FN_ATTRS
1682 _mm_maskz_subs_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
1684 return (__m128i) __builtin_ia32_psubusb128_mask ((__v16qi) __A,
1685 (__v16qi) __B,
1686 (__v16qi) _mm_setzero_si128 (),
1687 (__mmask16) __U);
1690 static __inline__ __m256i __DEFAULT_FN_ATTRS
1691 _mm256_mask_subs_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
1692 __m256i __B)
1694 return (__m256i) __builtin_ia32_psubusb256_mask ((__v32qi) __A,
1695 (__v32qi) __B,
1696 (__v32qi) __W,
1697 (__mmask32) __U);
1700 static __inline__ __m256i __DEFAULT_FN_ATTRS
1701 _mm256_maskz_subs_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
1703 return (__m256i) __builtin_ia32_psubusb256_mask ((__v32qi) __A,
1704 (__v32qi) __B,
1705 (__v32qi) _mm256_setzero_si256 (),
1706 (__mmask32) __U);
1709 static __inline__ __m128i __DEFAULT_FN_ATTRS
1710 _mm_mask_subs_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
1711 __m128i __B)
1713 return (__m128i) __builtin_ia32_psubusw128_mask ((__v8hi) __A,
1714 (__v8hi) __B,
1715 (__v8hi) __W,
1716 (__mmask8) __U);
1719 static __inline__ __m128i __DEFAULT_FN_ATTRS
1720 _mm_maskz_subs_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
1722 return (__m128i) __builtin_ia32_psubusw128_mask ((__v8hi) __A,
1723 (__v8hi) __B,
1724 (__v8hi) _mm_setzero_si128 (),
1725 (__mmask8) __U);
1728 static __inline__ __m256i __DEFAULT_FN_ATTRS
1729 _mm256_mask_subs_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
1730 __m256i __B)
1732 return (__m256i) __builtin_ia32_psubusw256_mask ((__v16hi) __A,
1733 (__v16hi) __B,
1734 (__v16hi) __W,
1735 (__mmask16) __U);
1738 static __inline__ __m256i __DEFAULT_FN_ATTRS
1739 _mm256_maskz_subs_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
1741 return (__m256i) __builtin_ia32_psubusw256_mask ((__v16hi) __A,
1742 (__v16hi) __B,
1743 (__v16hi) _mm256_setzero_si256 (),
1744 (__mmask16) __U);
1747 static __inline__ __m128i __DEFAULT_FN_ATTRS
1748 _mm_mask2_permutex2var_epi16 (__m128i __A, __m128i __I, __mmask8 __U,
1749 __m128i __B)
1751 return (__m128i) __builtin_ia32_vpermi2varhi128_mask ((__v8hi) __A,
1752 (__v8hi) __I /* idx */ ,
1753 (__v8hi) __B,
1754 (__mmask8) __U);
1757 static __inline__ __m256i __DEFAULT_FN_ATTRS
1758 _mm256_mask2_permutex2var_epi16 (__m256i __A, __m256i __I,
1759 __mmask16 __U, __m256i __B)
1761 return (__m256i) __builtin_ia32_vpermi2varhi256_mask ((__v16hi) __A,
1762 (__v16hi) __I /* idx */ ,
1763 (__v16hi) __B,
1764 (__mmask16) __U);
1767 static __inline__ __m128i __DEFAULT_FN_ATTRS
1768 _mm_permutex2var_epi16 (__m128i __A, __m128i __I, __m128i __B)
1770 return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I/* idx */,
1771 (__v8hi) __A,
1772 (__v8hi) __B,
1773 (__mmask8) -1);
1776 static __inline__ __m128i __DEFAULT_FN_ATTRS
1777 _mm_mask_permutex2var_epi16 (__m128i __A, __mmask8 __U, __m128i __I,
1778 __m128i __B)
1780 return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I/* idx */,
1781 (__v8hi) __A,
1782 (__v8hi) __B,
1783 (__mmask8) __U);
1786 static __inline__ __m128i __DEFAULT_FN_ATTRS
1787 _mm_maskz_permutex2var_epi16 (__mmask8 __U, __m128i __A, __m128i __I,
1788 __m128i __B)
1790 return (__m128i) __builtin_ia32_vpermt2varhi128_maskz ((__v8hi) __I/* idx */,
1791 (__v8hi) __A,
1792 (__v8hi) __B,
1793 (__mmask8) __U);
1796 static __inline__ __m256i __DEFAULT_FN_ATTRS
1797 _mm256_permutex2var_epi16 (__m256i __A, __m256i __I, __m256i __B)
1799 return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I/* idx */,
1800 (__v16hi) __A,
1801 (__v16hi) __B,
1802 (__mmask16) -1);
1805 static __inline__ __m256i __DEFAULT_FN_ATTRS
1806 _mm256_mask_permutex2var_epi16 (__m256i __A, __mmask16 __U,
1807 __m256i __I, __m256i __B)
1809 return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I/* idx */,
1810 (__v16hi) __A,
1811 (__v16hi) __B,
1812 (__mmask16) __U);
1815 static __inline__ __m256i __DEFAULT_FN_ATTRS
1816 _mm256_maskz_permutex2var_epi16 (__mmask16 __U, __m256i __A,
1817 __m256i __I, __m256i __B)
1819 return (__m256i) __builtin_ia32_vpermt2varhi256_maskz ((__v16hi) __I/* idx */,
1820 (__v16hi) __A,
1821 (__v16hi) __B,
1822 (__mmask16) __U);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
1975 static __inline__ __m128i __DEFAULT_FN_ATTRS
1976 _mm_cvtepi16_epi8 (__m128i __A) {
1978 return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
1979 (__v16qi) _mm_setzero_si128(),
1980 (__mmask8) -1);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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); })
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)); })
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); })
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)); })
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); })
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)); })
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); })
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)); })
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); })
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)); })
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); })
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)); })
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); })
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)); })
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); })
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)); })
2334 #undef __DEFAULT_FN_ATTRS
2336 #endif /* __AVX512VLBWINTRIN_H */