1 /*===---- avx512vlintrin.h - AVX512VL 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
21 *===-----------------------------------------------------------------------===
25 #error "Never use <avx512vlintrin.h> directly; include <immintrin.h> instead."
28 #ifndef __AVX512VLINTRIN_H
29 #define __AVX512VLINTRIN_H
33 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
34 _mm_cmpeq_epi32_mask(__m128i __a, __m128i __b) {
35 return (__mmask8)__builtin_ia32_pcmpeqd128_mask((__v4si)__a, (__v4si)__b,
39 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
40 _mm_mask_cmpeq_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
41 return (__mmask8)__builtin_ia32_pcmpeqd128_mask((__v4si)__a, (__v4si)__b,
45 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
46 _mm_cmpeq_epu32_mask(__m128i __a, __m128i __b) {
47 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 0,
51 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
52 _mm_mask_cmpeq_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
53 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 0,
57 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
58 _mm256_cmpeq_epi32_mask(__m256i __a, __m256i __b) {
59 return (__mmask8)__builtin_ia32_pcmpeqd256_mask((__v8si)__a, (__v8si)__b,
63 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
64 _mm256_mask_cmpeq_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
65 return (__mmask8)__builtin_ia32_pcmpeqd256_mask((__v8si)__a, (__v8si)__b,
69 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
70 _mm256_cmpeq_epu32_mask(__m256i __a, __m256i __b) {
71 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 0,
75 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
76 _mm256_mask_cmpeq_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
77 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 0,
81 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
82 _mm_cmpeq_epi64_mask(__m128i __a, __m128i __b) {
83 return (__mmask8)__builtin_ia32_pcmpeqq128_mask((__v2di)__a, (__v2di)__b,
87 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
88 _mm_mask_cmpeq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
89 return (__mmask8)__builtin_ia32_pcmpeqq128_mask((__v2di)__a, (__v2di)__b,
93 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
94 _mm_cmpeq_epu64_mask(__m128i __a, __m128i __b) {
95 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 0,
99 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
100 _mm_mask_cmpeq_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
101 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 0,
105 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
106 _mm256_cmpeq_epi64_mask(__m256i __a, __m256i __b) {
107 return (__mmask8)__builtin_ia32_pcmpeqq256_mask((__v4di)__a, (__v4di)__b,
111 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
112 _mm256_mask_cmpeq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
113 return (__mmask8)__builtin_ia32_pcmpeqq256_mask((__v4di)__a, (__v4di)__b,
117 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
118 _mm256_cmpeq_epu64_mask(__m256i __a, __m256i __b) {
119 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 0,
123 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
124 _mm256_mask_cmpeq_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
125 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 0,
130 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
131 _mm_cmpge_epi32_mask(__m128i __a, __m128i __b) {
132 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 5,
136 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
137 _mm_mask_cmpge_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
138 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 5,
142 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
143 _mm_cmpge_epu32_mask(__m128i __a, __m128i __b) {
144 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 5,
148 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
149 _mm_mask_cmpge_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
150 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 5,
154 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
155 _mm256_cmpge_epi32_mask(__m256i __a, __m256i __b) {
156 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 5,
160 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
161 _mm256_mask_cmpge_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
162 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 5,
166 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
167 _mm256_cmpge_epu32_mask(__m256i __a, __m256i __b) {
168 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 5,
172 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
173 _mm256_mask_cmpge_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
174 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 5,
178 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
179 _mm_cmpge_epi64_mask(__m128i __a, __m128i __b) {
180 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 5,
184 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
185 _mm_mask_cmpge_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
186 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 5,
190 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
191 _mm_cmpge_epu64_mask(__m128i __a, __m128i __b) {
192 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 5,
196 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
197 _mm_mask_cmpge_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
198 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 5,
202 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
203 _mm256_cmpge_epi64_mask(__m256i __a, __m256i __b) {
204 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 5,
208 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
209 _mm256_mask_cmpge_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
210 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 5,
214 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
215 _mm256_cmpge_epu64_mask(__m256i __a, __m256i __b) {
216 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 5,
220 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
221 _mm256_mask_cmpge_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
222 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 5,
229 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
230 _mm_cmpgt_epi32_mask(__m128i __a, __m128i __b) {
231 return (__mmask8)__builtin_ia32_pcmpgtd128_mask((__v4si)__a, (__v4si)__b,
235 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
236 _mm_mask_cmpgt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
237 return (__mmask8)__builtin_ia32_pcmpgtd128_mask((__v4si)__a, (__v4si)__b,
241 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
242 _mm_cmpgt_epu32_mask(__m128i __a, __m128i __b) {
243 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 6,
247 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
248 _mm_mask_cmpgt_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
249 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 6,
253 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
254 _mm256_cmpgt_epi32_mask(__m256i __a, __m256i __b) {
255 return (__mmask8)__builtin_ia32_pcmpgtd256_mask((__v8si)__a, (__v8si)__b,
259 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
260 _mm256_mask_cmpgt_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
261 return (__mmask8)__builtin_ia32_pcmpgtd256_mask((__v8si)__a, (__v8si)__b,
265 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
266 _mm256_cmpgt_epu32_mask(__m256i __a, __m256i __b) {
267 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 6,
271 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
272 _mm256_mask_cmpgt_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
273 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 6,
277 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
278 _mm_cmpgt_epi64_mask(__m128i __a, __m128i __b) {
279 return (__mmask8)__builtin_ia32_pcmpgtq128_mask((__v2di)__a, (__v2di)__b,
283 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
284 _mm_mask_cmpgt_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
285 return (__mmask8)__builtin_ia32_pcmpgtq128_mask((__v2di)__a, (__v2di)__b,
289 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
290 _mm_cmpgt_epu64_mask(__m128i __a, __m128i __b) {
291 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 6,
295 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
296 _mm_mask_cmpgt_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
297 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 6,
301 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
302 _mm256_cmpgt_epi64_mask(__m256i __a, __m256i __b) {
303 return (__mmask8)__builtin_ia32_pcmpgtq256_mask((__v4di)__a, (__v4di)__b,
307 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
308 _mm256_mask_cmpgt_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
309 return (__mmask8)__builtin_ia32_pcmpgtq256_mask((__v4di)__a, (__v4di)__b,
313 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
314 _mm256_cmpgt_epu64_mask(__m256i __a, __m256i __b) {
315 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 6,
319 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
320 _mm256_mask_cmpgt_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
321 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 6,
325 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
326 _mm_cmple_epi32_mask(__m128i __a, __m128i __b) {
327 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 2,
331 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
332 _mm_mask_cmple_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
333 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 2,
337 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
338 _mm_cmple_epu32_mask(__m128i __a, __m128i __b) {
339 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 2,
343 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
344 _mm_mask_cmple_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
345 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 2,
349 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
350 _mm256_cmple_epi32_mask(__m256i __a, __m256i __b) {
351 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 2,
355 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
356 _mm256_mask_cmple_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
357 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 2,
361 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
362 _mm256_cmple_epu32_mask(__m256i __a, __m256i __b) {
363 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 2,
367 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
368 _mm256_mask_cmple_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
369 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 2,
373 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
374 _mm_cmple_epi64_mask(__m128i __a, __m128i __b) {
375 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 2,
379 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
380 _mm_mask_cmple_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
381 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 2,
385 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
386 _mm_cmple_epu64_mask(__m128i __a, __m128i __b) {
387 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 2,
391 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
392 _mm_mask_cmple_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
393 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 2,
397 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
398 _mm256_cmple_epi64_mask(__m256i __a, __m256i __b) {
399 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 2,
403 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
404 _mm256_mask_cmple_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
405 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 2,
409 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
410 _mm256_cmple_epu64_mask(__m256i __a, __m256i __b) {
411 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 2,
415 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
416 _mm256_mask_cmple_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
417 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 2,
421 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
422 _mm_cmplt_epi32_mask(__m128i __a, __m128i __b) {
423 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 1,
427 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
428 _mm_mask_cmplt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
429 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 1,
433 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
434 _mm_cmplt_epu32_mask(__m128i __a, __m128i __b) {
435 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 1,
439 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
440 _mm_mask_cmplt_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
441 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 1,
445 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
446 _mm256_cmplt_epi32_mask(__m256i __a, __m256i __b) {
447 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 1,
451 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
452 _mm256_mask_cmplt_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
453 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 1,
457 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
458 _mm256_cmplt_epu32_mask(__m256i __a, __m256i __b) {
459 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 1,
463 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
464 _mm256_mask_cmplt_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
465 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 1,
469 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
470 _mm_cmplt_epi64_mask(__m128i __a, __m128i __b) {
471 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 1,
475 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
476 _mm_mask_cmplt_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
477 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 1,
481 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
482 _mm_cmplt_epu64_mask(__m128i __a, __m128i __b) {
483 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 1,
487 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
488 _mm_mask_cmplt_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
489 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 1,
493 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
494 _mm256_cmplt_epi64_mask(__m256i __a, __m256i __b) {
495 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 1,
499 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
500 _mm256_mask_cmplt_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
501 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 1,
505 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
506 _mm256_cmplt_epu64_mask(__m256i __a, __m256i __b) {
507 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 1,
511 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
512 _mm256_mask_cmplt_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
513 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 1,
517 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
518 _mm_cmpneq_epi32_mask(__m128i __a, __m128i __b) {
519 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 4,
523 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
524 _mm_mask_cmpneq_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
525 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 4,
529 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
530 _mm_cmpneq_epu32_mask(__m128i __a, __m128i __b) {
531 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 4,
535 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
536 _mm_mask_cmpneq_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
537 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 4,
541 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
542 _mm256_cmpneq_epi32_mask(__m256i __a, __m256i __b) {
543 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 4,
547 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
548 _mm256_mask_cmpneq_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
549 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 4,
553 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
554 _mm256_cmpneq_epu32_mask(__m256i __a, __m256i __b) {
555 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 4,
559 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
560 _mm256_mask_cmpneq_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
561 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 4,
565 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
566 _mm_cmpneq_epi64_mask(__m128i __a, __m128i __b) {
567 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 4,
571 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
572 _mm_mask_cmpneq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
573 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 4,
577 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
578 _mm_cmpneq_epu64_mask(__m128i __a, __m128i __b) {
579 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 4,
583 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
584 _mm_mask_cmpneq_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
585 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 4,
589 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
590 _mm256_cmpneq_epi64_mask(__m256i __a, __m256i __b) {
591 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 4,
595 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
596 _mm256_mask_cmpneq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
597 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 4,
601 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
602 _mm256_cmpneq_epu64_mask(__m256i __a, __m256i __b) {
603 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 4,
607 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__))
608 _mm256_mask_cmpneq_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
609 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 4,
613 static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
614 _mm256_mask_add_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
617 return (__m256i) __builtin_ia32_paddd256_mask ((__v8si) __A,
623 static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
624 _mm256_maskz_add_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
626 return (__m256i) __builtin_ia32_paddd256_mask ((__v8si) __A,
629 _mm256_setzero_si256 (),
633 static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
634 _mm256_mask_add_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
637 return (__m256i) __builtin_ia32_paddq256_mask ((__v4di) __A,
643 static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
644 _mm256_maskz_add_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
646 return (__m256i) __builtin_ia32_paddq256_mask ((__v4di) __A,
649 _mm256_setzero_si256 (),
653 static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
654 _mm256_mask_sub_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
657 return (__m256i) __builtin_ia32_psubd256_mask ((__v8si) __A,
663 static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
664 _mm256_maskz_sub_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
666 return (__m256i) __builtin_ia32_psubd256_mask ((__v8si) __A,
669 _mm256_setzero_si256 (),
673 static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
674 _mm256_mask_sub_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
677 return (__m256i) __builtin_ia32_psubq256_mask ((__v4di) __A,
683 static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
684 _mm256_maskz_sub_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
686 return (__m256i) __builtin_ia32_psubq256_mask ((__v4di) __A,
689 _mm256_setzero_si256 (),
693 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
694 _mm_mask_add_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
697 return (__m128i) __builtin_ia32_paddd128_mask ((__v4si) __A,
703 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
704 _mm_maskz_add_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
706 return (__m128i) __builtin_ia32_paddd128_mask ((__v4si) __A,
709 _mm_setzero_si128 (),
713 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
714 _mm_mask_add_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
717 return (__m128i) __builtin_ia32_paddq128_mask ((__v2di) __A,
723 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
724 _mm_maskz_add_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
726 return (__m128i) __builtin_ia32_paddq128_mask ((__v2di) __A,
729 _mm_setzero_si128 (),
733 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
734 _mm_mask_sub_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
737 return (__m128i) __builtin_ia32_psubd128_mask ((__v4si) __A,
743 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
744 _mm_maskz_sub_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
746 return (__m128i) __builtin_ia32_psubd128_mask ((__v4si) __A,
749 _mm_setzero_si128 (),
753 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
754 _mm_mask_sub_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
757 return (__m128i) __builtin_ia32_psubq128_mask ((__v2di) __A,
763 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
764 _mm_maskz_sub_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
766 return (__m128i) __builtin_ia32_psubq128_mask ((__v2di) __A,
769 _mm_setzero_si128 (),
773 static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
774 _mm256_mask_mul_epi32 (__m256i __W, __mmask8 __M, __m256i __X,
777 return (__m256i) __builtin_ia32_pmuldq256_mask ((__v8si) __X,
782 static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
783 _mm256_maskz_mul_epi32 (__mmask8 __M, __m256i __X, __m256i __Y)
785 return (__m256i) __builtin_ia32_pmuldq256_mask ((__v8si) __X,
788 _mm256_setzero_si256 (),
792 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
793 _mm_mask_mul_epi32 (__m128i __W, __mmask8 __M, __m128i __X,
796 return (__m128i) __builtin_ia32_pmuldq128_mask ((__v4si) __X,
801 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
802 _mm_maskz_mul_epi32 (__mmask8 __M, __m128i __X, __m128i __Y)
804 return (__m128i) __builtin_ia32_pmuldq128_mask ((__v4si) __X,
807 _mm_setzero_si128 (),
811 static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
812 _mm256_mask_mul_epu32 (__m256i __W, __mmask8 __M, __m256i __X,
815 return (__m256i) __builtin_ia32_pmuludq256_mask ((__v8si) __X,
820 static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
821 _mm256_maskz_mul_epu32 (__mmask8 __M, __m256i __X, __m256i __Y)
823 return (__m256i) __builtin_ia32_pmuludq256_mask ((__v8si) __X,
826 _mm256_setzero_si256 (),
830 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
831 _mm_mask_mul_epu32 (__m128i __W, __mmask8 __M, __m128i __X,
834 return (__m128i) __builtin_ia32_pmuludq128_mask ((__v4si) __X,
839 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
840 _mm_maskz_mul_epu32 (__mmask8 __M, __m128i __X, __m128i __Y)
842 return (__m128i) __builtin_ia32_pmuludq128_mask ((__v4si) __X,
845 _mm_setzero_si128 (),
849 static __inline__ __m256i __attribute__ ((__always_inline__, __nodebug__))
850 _mm256_maskz_mullo_epi32 (__mmask8 __M, __m256i __A, __m256i __B)
852 return (__m256i) __builtin_ia32_pmulld256_mask ((__v8si) __A,
855 _mm256_setzero_si256 (),
859 static __inline__ __m256i __attribute__ ((__always_inline__, __nodebug__))
860 _mm256_mask_mullo_epi32 (__m256i __W, __mmask8 __M, __m256i __A,
863 return (__m256i) __builtin_ia32_pmulld256_mask ((__v8si) __A,
868 static __inline__ __m128i __attribute__ ((__always_inline__, __nodebug__))
869 _mm_maskz_mullo_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
871 return (__m128i) __builtin_ia32_pmulld128_mask ((__v4si) __A,
874 _mm_setzero_si128 (),
878 static __inline__ __m128i __attribute__ ((__always_inline__, __nodebug__))
879 _mm_mask_mullo_epi32 (__m128i __W, __mmask16 __M, __m128i __A,
882 return (__m128i) __builtin_ia32_pmulld128_mask ((__v4si) __A,
887 static __inline__ __m256i __attribute__ ((__always_inline__, __nodebug__))
888 _mm256_mask_and_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
891 return (__m256i) __builtin_ia32_pandd256_mask ((__v8si) __A,
897 static __inline__ __m256i __attribute__ ((__always_inline__, __nodebug__))
898 _mm256_maskz_and_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
900 return (__m256i) __builtin_ia32_pandd256_mask ((__v8si) __A,
903 _mm256_setzero_si256 (),
907 static __inline__ __m128i __attribute__ ((__always_inline__, __nodebug__))
908 _mm_mask_and_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
910 return (__m128i) __builtin_ia32_pandd128_mask ((__v4si) __A,
916 static __inline__ __m128i __attribute__ ((__always_inline__, __nodebug__))
917 _mm_maskz_and_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
919 return (__m128i) __builtin_ia32_pandd128_mask ((__v4si) __A,
922 _mm_setzero_si128 (),
926 static __inline__ __m256i __attribute__ ((__always_inline__, __nodebug__))
927 _mm256_mask_andnot_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
930 return (__m256i) __builtin_ia32_pandnd256_mask ((__v8si) __A,
936 static __inline__ __m256i __attribute__ ((__always_inline__, __nodebug__))
937 _mm256_maskz_andnot_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
939 return (__m256i) __builtin_ia32_pandnd256_mask ((__v8si) __A,
942 _mm256_setzero_si256 (),
946 static __inline__ __m128i __attribute__ ((__always_inline__, __nodebug__))
947 _mm_mask_andnot_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
950 return (__m128i) __builtin_ia32_pandnd128_mask ((__v4si) __A,
956 static __inline__ __m128i __attribute__ ((__always_inline__, __nodebug__))
957 _mm_maskz_andnot_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
959 return (__m128i) __builtin_ia32_pandnd128_mask ((__v4si) __A,
962 _mm_setzero_si128 (),
966 static __inline__ __m256i __attribute__ ((__always_inline__, __nodebug__))
967 _mm256_mask_or_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
970 return (__m256i) __builtin_ia32_pord256_mask ((__v8si) __A,
976 static __inline__ __m256i __attribute__ ((__always_inline__, __nodebug__))
977 _mm256_maskz_or_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
979 return (__m256i) __builtin_ia32_pord256_mask ((__v8si) __A,
982 _mm256_setzero_si256 (),
986 static __inline__ __m128i __attribute__ ((__always_inline__, __nodebug__))
987 _mm_mask_or_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
989 return (__m128i) __builtin_ia32_pord128_mask ((__v4si) __A,
995 static __inline__ __m128i __attribute__ ((__always_inline__, __nodebug__))
996 _mm_maskz_or_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
998 return (__m128i) __builtin_ia32_pord128_mask ((__v4si) __A,
1001 _mm_setzero_si128 (),
1005 static __inline__ __m256i __attribute__ ((__always_inline__, __nodebug__))
1006 _mm256_mask_xor_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
1009 return (__m256i) __builtin_ia32_pxord256_mask ((__v8si) __A,
1015 static __inline__ __m256i __attribute__ ((__always_inline__, __nodebug__))
1016 _mm256_maskz_xor_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
1018 return (__m256i) __builtin_ia32_pxord256_mask ((__v8si) __A,
1021 _mm256_setzero_si256 (),
1025 static __inline__ __m128i __attribute__ ((__always_inline__, __nodebug__))
1026 _mm_mask_xor_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
1029 return (__m128i) __builtin_ia32_pxord128_mask ((__v4si) __A,
1035 static __inline__ __m128i __attribute__ ((__always_inline__, __nodebug__))
1036 _mm_maskz_xor_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
1038 return (__m128i) __builtin_ia32_pxord128_mask ((__v4si) __A,
1041 _mm_setzero_si128 (),
1045 static __inline__ __m256i __attribute__ ((__always_inline__, __nodebug__))
1046 _mm256_mask_and_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
1049 return (__m256i) __builtin_ia32_pandq256_mask ((__v4di) __A,
1054 static __inline__ __m256i __attribute__ ((__always_inline__, __nodebug__))
1055 _mm256_maskz_and_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
1057 return (__m256i) __builtin_ia32_pandq256_mask ((__v4di) __A,
1060 _mm256_setzero_pd (),
1064 static __inline__ __m128i __attribute__ ((__always_inline__, __nodebug__))
1065 _mm_mask_and_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
1068 return (__m128i) __builtin_ia32_pandq128_mask ((__v2di) __A,
1073 static __inline__ __m128i __attribute__ ((__always_inline__, __nodebug__))
1074 _mm_maskz_and_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
1076 return (__m128i) __builtin_ia32_pandq128_mask ((__v2di) __A,
1083 static __inline__ __m256i __attribute__ ((__always_inline__, __nodebug__))
1084 _mm256_mask_andnot_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
1087 return (__m256i) __builtin_ia32_pandnq256_mask ((__v4di) __A,
1092 static __inline__ __m256i __attribute__ ((__always_inline__, __nodebug__))
1093 _mm256_maskz_andnot_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
1095 return (__m256i) __builtin_ia32_pandnq256_mask ((__v4di) __A,
1098 _mm256_setzero_pd (),
1102 static __inline__ __m128i __attribute__ ((__always_inline__, __nodebug__))
1103 _mm_mask_andnot_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
1106 return (__m128i) __builtin_ia32_pandnq128_mask ((__v2di) __A,
1111 static __inline__ __m128i __attribute__ ((__always_inline__, __nodebug__))
1112 _mm_maskz_andnot_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
1114 return (__m128i) __builtin_ia32_pandnq128_mask ((__v2di) __A,
1121 static __inline__ __m256i __attribute__ ((__always_inline__, __nodebug__))
1122 _mm256_mask_or_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
1125 return (__m256i) __builtin_ia32_porq256_mask ((__v4di) __A,
1131 static __inline__ __m256i __attribute__ ((__always_inline__, __nodebug__))
1132 _mm256_maskz_or_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
1134 return (__m256i) __builtin_ia32_porq256_mask ((__v4di) __A,
1137 _mm256_setzero_si256 (),
1141 static __inline__ __m128i __attribute__ ((__always_inline__, __nodebug__))
1142 _mm_mask_or_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1144 return (__m128i) __builtin_ia32_porq128_mask ((__v2di) __A,
1150 static __inline__ __m128i __attribute__ ((__always_inline__, __nodebug__))
1151 _mm_maskz_or_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
1153 return (__m128i) __builtin_ia32_porq128_mask ((__v2di) __A,
1156 _mm_setzero_si128 (),
1160 static __inline__ __m256i __attribute__ ((__always_inline__, __nodebug__))
1161 _mm256_mask_xor_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
1164 return (__m256i) __builtin_ia32_pxorq256_mask ((__v4di) __A,
1170 static __inline__ __m256i __attribute__ ((__always_inline__, __nodebug__))
1171 _mm256_maskz_xor_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
1173 return (__m256i) __builtin_ia32_pxorq256_mask ((__v4di) __A,
1176 _mm256_setzero_si256 (),
1180 static __inline__ __m128i __attribute__ ((__always_inline__, __nodebug__))
1181 _mm_mask_xor_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
1184 return (__m128i) __builtin_ia32_pxorq128_mask ((__v2di) __A,
1190 static __inline__ __m128i __attribute__ ((__always_inline__, __nodebug__))
1191 _mm_maskz_xor_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
1193 return (__m128i) __builtin_ia32_pxorq128_mask ((__v2di) __A,
1196 _mm_setzero_si128 (),
1200 #define _mm_cmp_epi32_mask(a, b, p) __extension__ ({ \
1201 (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)(a), \
1202 (__v4si)(__m128i)(b), \
1203 (p), (__mmask8)-1); })
1205 #define _mm_mask_cmp_epi32_mask(m, a, b, p) __extension__ ({ \
1206 (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)(a), \
1207 (__v4si)(__m128i)(b), \
1208 (p), (__mmask8)(m)); })
1210 #define _mm_cmp_epu32_mask(a, b, p) __extension__ ({ \
1211 (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)(__m128i)(a), \
1212 (__v4si)(__m128i)(b), \
1213 (p), (__mmask8)-1); })
1215 #define _mm_mask_cmp_epu32_mask(m, a, b, p) __extension__ ({ \
1216 (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)(__m128i)(a), \
1217 (__v4si)(__m128i)(b), \
1218 (p), (__mmask8)(m)); })
1220 #define _mm256_cmp_epi32_mask(a, b, p) __extension__ ({ \
1221 (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)(a), \
1222 (__v8si)(__m256i)(b), \
1223 (p), (__mmask8)-1); })
1225 #define _mm256_mask_cmp_epi32_mask(m, a, b, p) __extension__ ({ \
1226 (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)(a), \
1227 (__v8si)(__m256i)(b), \
1228 (p), (__mmask8)(m)); })
1230 #define _mm256_cmp_epu32_mask(a, b, p) __extension__ ({ \
1231 (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)(__m256i)(a), \
1232 (__v8si)(__m256i)(b), \
1233 (p), (__mmask8)-1); })
1235 #define _mm256_mask_cmp_epu32_mask(m, a, b, p) __extension__ ({ \
1236 (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)(__m256i)(a), \
1237 (__v8si)(__m256i)(b), \
1238 (p), (__mmask8)(m)); })
1240 #define _mm_cmp_epi64_mask(a, b, p) __extension__ ({ \
1241 (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)(a), \
1242 (__v2di)(__m128i)(b), \
1243 (p), (__mmask8)-1); })
1245 #define _mm_mask_cmp_epi64_mask(m, a, b, p) __extension__ ({ \
1246 (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)(a), \
1247 (__v2di)(__m128i)(b), \
1248 (p), (__mmask8)(m)); })
1250 #define _mm_cmp_epu64_mask(a, b, p) __extension__ ({ \
1251 (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)(__m128i)(a), \
1252 (__v2di)(__m128i)(b), \
1253 (p), (__mmask8)-1); })
1255 #define _mm_mask_cmp_epu64_mask(m, a, b, p) __extension__ ({ \
1256 (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)(__m128i)(a), \
1257 (__v2di)(__m128i)(b), \
1258 (p), (__mmask8)(m)); })
1260 #define _mm256_cmp_epi64_mask(a, b, p) __extension__ ({ \
1261 (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)(a), \
1262 (__v4di)(__m256i)(b), \
1263 (p), (__mmask8)-1); })
1265 #define _mm256_mask_cmp_epi64_mask(m, a, b, p) __extension__ ({ \
1266 (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)(a), \
1267 (__v4di)(__m256i)(b), \
1268 (p), (__mmask8)(m)); })
1270 #define _mm256_cmp_epu64_mask(a, b, p) __extension__ ({ \
1271 (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)(__m256i)(a), \
1272 (__v4di)(__m256i)(b), \
1273 (p), (__mmask8)-1); })
1275 #define _mm256_mask_cmp_epu64_mask(m, a, b, p) __extension__ ({ \
1276 (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)(__m256i)(a), \
1277 (__v4di)(__m256i)(b), \
1278 (p), (__mmask8)(m)); })
1280 #define _mm256_cmp_ps_mask(a, b, p) __extension__ ({ \
1281 (__mmask8)__builtin_ia32_cmpps256_mask((__v8sf)(__m256)(a), \
1282 (__v8sf)(__m256)(b), \
1283 (p), (__mmask8)-1); })
1285 #define _mm256_mask_cmp_ps_mask(m, a, b, p) __extension__ ({ \
1286 (__mmask8)__builtin_ia32_cmpps256_mask((__v8sf)(__m256)(a), \
1287 (__v8sf)(__m256)(b), \
1288 (p), (__mmask8)(m)); })
1290 #define _mm256_cmp_pd_mask(a, b, p) __extension__ ({ \
1291 (__mmask8)__builtin_ia32_cmppd256_mask((__v4df)(__m256)(a), \
1292 (__v4df)(__m256)(b), \
1293 (p), (__mmask8)-1); })
1295 #define _mm256_mask_cmp_pd_mask(m, a, b, p) __extension__ ({ \
1296 (__mmask8)__builtin_ia32_cmppd256_mask((__v4df)(__m256)(a), \
1297 (__v4df)(__m256)(b), \
1298 (p), (__mmask8)(m)); })
1300 #define _mm128_cmp_ps_mask(a, b, p) __extension__ ({ \
1301 (__mmask8)__builtin_ia32_cmpps128_mask((__v4sf)(__m128)(a), \
1302 (__v4sf)(__m128)(b), \
1303 (p), (__mmask8)-1); })
1305 #define _mm128_mask_cmp_ps_mask(m, a, b, p) __extension__ ({ \
1306 (__mmask8)__builtin_ia32_cmpps128_mask((__v4sf)(__m128)(a), \
1307 (__v4sf)(__m128)(b), \
1308 (p), (__mmask8)(m)); })
1310 #define _mm128_cmp_pd_mask(a, b, p) __extension__ ({ \
1311 (__mmask8)__builtin_ia32_cmppd128_mask((__v2df)(__m128)(a), \
1312 (__v2df)(__m128)(b), \
1313 (p), (__mmask8)-1); })
1315 #define _mm128_mask_cmp_pd_mask(m, a, b, p) __extension__ ({ \
1316 (__mmask8)__builtin_ia32_cmppd128_mask((__v2df)(__m128)(a), \
1317 (__v2df)(__m128)(b), \
1318 (p), (__mmask8)(m)); })
1319 #endif /* __AVX512VLINTRIN_H */