avx512vlintrin.h revision 288943
1/*===---- avx512vlintrin.h - AVX512VL intrinsics ---------------------------===
2 *
3 * Permission is hereby granted, free of charge, to any person obtaining a copy
4 * of this software and associated documentation files (the "Software"), to deal
5 * in the Software without restriction, including without limitation the rights
6 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 * copies of the Software, and to permit persons to whom the Software is
8 * furnished to do so, subject to the following conditions:
9 *
10 * The above copyright notice and this permission notice shall be included in
11 * all copies or substantial portions of the Software.
12 *
13 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 * THE SOFTWARE.
20 *
21 *===-----------------------------------------------------------------------===
22 */
23
24#ifndef __IMMINTRIN_H
25#error "Never use <avx512vlintrin.h> directly; include <immintrin.h> instead."
26#endif
27
28#ifndef __AVX512VLINTRIN_H
29#define __AVX512VLINTRIN_H
30
31/* Define the default attributes for the functions in this file. */
32#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__))
33
34/* Integer compare */
35
36static __inline__ __mmask8 __DEFAULT_FN_ATTRS
37_mm_cmpeq_epi32_mask(__m128i __a, __m128i __b) {
38  return (__mmask8)__builtin_ia32_pcmpeqd128_mask((__v4si)__a, (__v4si)__b,
39                                                  (__mmask8)-1);
40}
41
42static __inline__ __mmask8 __DEFAULT_FN_ATTRS
43_mm_mask_cmpeq_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
44  return (__mmask8)__builtin_ia32_pcmpeqd128_mask((__v4si)__a, (__v4si)__b,
45                                                  __u);
46}
47
48static __inline__ __mmask8 __DEFAULT_FN_ATTRS
49_mm_cmpeq_epu32_mask(__m128i __a, __m128i __b) {
50  return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 0,
51                                                (__mmask8)-1);
52}
53
54static __inline__ __mmask8 __DEFAULT_FN_ATTRS
55_mm_mask_cmpeq_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
56  return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 0,
57                                                __u);
58}
59
60static __inline__ __mmask8 __DEFAULT_FN_ATTRS
61_mm256_cmpeq_epi32_mask(__m256i __a, __m256i __b) {
62  return (__mmask8)__builtin_ia32_pcmpeqd256_mask((__v8si)__a, (__v8si)__b,
63                                                  (__mmask8)-1);
64}
65
66static __inline__ __mmask8 __DEFAULT_FN_ATTRS
67_mm256_mask_cmpeq_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
68  return (__mmask8)__builtin_ia32_pcmpeqd256_mask((__v8si)__a, (__v8si)__b,
69                                                  __u);
70}
71
72static __inline__ __mmask8 __DEFAULT_FN_ATTRS
73_mm256_cmpeq_epu32_mask(__m256i __a, __m256i __b) {
74  return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 0,
75                                                (__mmask8)-1);
76}
77
78static __inline__ __mmask8 __DEFAULT_FN_ATTRS
79_mm256_mask_cmpeq_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
80  return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 0,
81                                                __u);
82}
83
84static __inline__ __mmask8 __DEFAULT_FN_ATTRS
85_mm_cmpeq_epi64_mask(__m128i __a, __m128i __b) {
86  return (__mmask8)__builtin_ia32_pcmpeqq128_mask((__v2di)__a, (__v2di)__b,
87                                                  (__mmask8)-1);
88}
89
90static __inline__ __mmask8 __DEFAULT_FN_ATTRS
91_mm_mask_cmpeq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
92  return (__mmask8)__builtin_ia32_pcmpeqq128_mask((__v2di)__a, (__v2di)__b,
93                                                  __u);
94}
95
96static __inline__ __mmask8 __DEFAULT_FN_ATTRS
97_mm_cmpeq_epu64_mask(__m128i __a, __m128i __b) {
98  return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 0,
99                                                (__mmask8)-1);
100}
101
102static __inline__ __mmask8 __DEFAULT_FN_ATTRS
103_mm_mask_cmpeq_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
104  return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 0,
105                                                __u);
106}
107
108static __inline__ __mmask8 __DEFAULT_FN_ATTRS
109_mm256_cmpeq_epi64_mask(__m256i __a, __m256i __b) {
110  return (__mmask8)__builtin_ia32_pcmpeqq256_mask((__v4di)__a, (__v4di)__b,
111                                                  (__mmask8)-1);
112}
113
114static __inline__ __mmask8 __DEFAULT_FN_ATTRS
115_mm256_mask_cmpeq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
116  return (__mmask8)__builtin_ia32_pcmpeqq256_mask((__v4di)__a, (__v4di)__b,
117                                                  __u);
118}
119
120static __inline__ __mmask8 __DEFAULT_FN_ATTRS
121_mm256_cmpeq_epu64_mask(__m256i __a, __m256i __b) {
122  return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 0,
123                                                (__mmask8)-1);
124}
125
126static __inline__ __mmask8 __DEFAULT_FN_ATTRS
127_mm256_mask_cmpeq_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
128  return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 0,
129                                                __u);
130}
131
132
133static __inline__ __mmask8 __DEFAULT_FN_ATTRS
134_mm_cmpge_epi32_mask(__m128i __a, __m128i __b) {
135  return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 5,
136                                               (__mmask8)-1);
137}
138
139static __inline__ __mmask8 __DEFAULT_FN_ATTRS
140_mm_mask_cmpge_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
141  return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 5,
142                                               __u);
143}
144
145static __inline__ __mmask8 __DEFAULT_FN_ATTRS
146_mm_cmpge_epu32_mask(__m128i __a, __m128i __b) {
147  return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 5,
148                                                (__mmask8)-1);
149}
150
151static __inline__ __mmask8 __DEFAULT_FN_ATTRS
152_mm_mask_cmpge_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
153  return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 5,
154                                                __u);
155}
156
157static __inline__ __mmask8 __DEFAULT_FN_ATTRS
158_mm256_cmpge_epi32_mask(__m256i __a, __m256i __b) {
159  return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 5,
160                                               (__mmask8)-1);
161}
162
163static __inline__ __mmask8 __DEFAULT_FN_ATTRS
164_mm256_mask_cmpge_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
165  return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 5,
166                                               __u);
167}
168
169static __inline__ __mmask8 __DEFAULT_FN_ATTRS
170_mm256_cmpge_epu32_mask(__m256i __a, __m256i __b) {
171  return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 5,
172                                                (__mmask8)-1);
173}
174
175static __inline__ __mmask8 __DEFAULT_FN_ATTRS
176_mm256_mask_cmpge_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
177  return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 5,
178                                                __u);
179}
180
181static __inline__ __mmask8 __DEFAULT_FN_ATTRS
182_mm_cmpge_epi64_mask(__m128i __a, __m128i __b) {
183  return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 5,
184                                               (__mmask8)-1);
185}
186
187static __inline__ __mmask8 __DEFAULT_FN_ATTRS
188_mm_mask_cmpge_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
189  return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 5,
190                                               __u);
191}
192
193static __inline__ __mmask8 __DEFAULT_FN_ATTRS
194_mm_cmpge_epu64_mask(__m128i __a, __m128i __b) {
195  return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 5,
196                                                (__mmask8)-1);
197}
198
199static __inline__ __mmask8 __DEFAULT_FN_ATTRS
200_mm_mask_cmpge_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
201  return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 5,
202                                                __u);
203}
204
205static __inline__ __mmask8 __DEFAULT_FN_ATTRS
206_mm256_cmpge_epi64_mask(__m256i __a, __m256i __b) {
207  return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 5,
208                                               (__mmask8)-1);
209}
210
211static __inline__ __mmask8 __DEFAULT_FN_ATTRS
212_mm256_mask_cmpge_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
213  return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 5,
214                                               __u);
215}
216
217static __inline__ __mmask8 __DEFAULT_FN_ATTRS
218_mm256_cmpge_epu64_mask(__m256i __a, __m256i __b) {
219  return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 5,
220                                                (__mmask8)-1);
221}
222
223static __inline__ __mmask8 __DEFAULT_FN_ATTRS
224_mm256_mask_cmpge_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
225  return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 5,
226                                                __u);
227}
228
229
230
231
232static __inline__ __mmask8 __DEFAULT_FN_ATTRS
233_mm_cmpgt_epi32_mask(__m128i __a, __m128i __b) {
234  return (__mmask8)__builtin_ia32_pcmpgtd128_mask((__v4si)__a, (__v4si)__b,
235                                                  (__mmask8)-1);
236}
237
238static __inline__ __mmask8 __DEFAULT_FN_ATTRS
239_mm_mask_cmpgt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
240  return (__mmask8)__builtin_ia32_pcmpgtd128_mask((__v4si)__a, (__v4si)__b,
241                                                  __u);
242}
243
244static __inline__ __mmask8 __DEFAULT_FN_ATTRS
245_mm_cmpgt_epu32_mask(__m128i __a, __m128i __b) {
246  return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 6,
247                                                (__mmask8)-1);
248}
249
250static __inline__ __mmask8 __DEFAULT_FN_ATTRS
251_mm_mask_cmpgt_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
252  return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 6,
253                                                __u);
254}
255
256static __inline__ __mmask8 __DEFAULT_FN_ATTRS
257_mm256_cmpgt_epi32_mask(__m256i __a, __m256i __b) {
258  return (__mmask8)__builtin_ia32_pcmpgtd256_mask((__v8si)__a, (__v8si)__b,
259                                                  (__mmask8)-1);
260}
261
262static __inline__ __mmask8 __DEFAULT_FN_ATTRS
263_mm256_mask_cmpgt_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
264  return (__mmask8)__builtin_ia32_pcmpgtd256_mask((__v8si)__a, (__v8si)__b,
265                                                  __u);
266}
267
268static __inline__ __mmask8 __DEFAULT_FN_ATTRS
269_mm256_cmpgt_epu32_mask(__m256i __a, __m256i __b) {
270  return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 6,
271                                                (__mmask8)-1);
272}
273
274static __inline__ __mmask8 __DEFAULT_FN_ATTRS
275_mm256_mask_cmpgt_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
276  return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 6,
277                                                __u);
278}
279
280static __inline__ __mmask8 __DEFAULT_FN_ATTRS
281_mm_cmpgt_epi64_mask(__m128i __a, __m128i __b) {
282  return (__mmask8)__builtin_ia32_pcmpgtq128_mask((__v2di)__a, (__v2di)__b,
283                                                  (__mmask8)-1);
284}
285
286static __inline__ __mmask8 __DEFAULT_FN_ATTRS
287_mm_mask_cmpgt_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
288  return (__mmask8)__builtin_ia32_pcmpgtq128_mask((__v2di)__a, (__v2di)__b,
289                                                  __u);
290}
291
292static __inline__ __mmask8 __DEFAULT_FN_ATTRS
293_mm_cmpgt_epu64_mask(__m128i __a, __m128i __b) {
294  return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 6,
295                                                (__mmask8)-1);
296}
297
298static __inline__ __mmask8 __DEFAULT_FN_ATTRS
299_mm_mask_cmpgt_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
300  return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 6,
301                                                __u);
302}
303
304static __inline__ __mmask8 __DEFAULT_FN_ATTRS
305_mm256_cmpgt_epi64_mask(__m256i __a, __m256i __b) {
306  return (__mmask8)__builtin_ia32_pcmpgtq256_mask((__v4di)__a, (__v4di)__b,
307                                                  (__mmask8)-1);
308}
309
310static __inline__ __mmask8 __DEFAULT_FN_ATTRS
311_mm256_mask_cmpgt_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
312  return (__mmask8)__builtin_ia32_pcmpgtq256_mask((__v4di)__a, (__v4di)__b,
313                                                  __u);
314}
315
316static __inline__ __mmask8 __DEFAULT_FN_ATTRS
317_mm256_cmpgt_epu64_mask(__m256i __a, __m256i __b) {
318  return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 6,
319                                                (__mmask8)-1);
320}
321
322static __inline__ __mmask8 __DEFAULT_FN_ATTRS
323_mm256_mask_cmpgt_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
324  return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 6,
325                                                __u);
326}
327
328static __inline__ __mmask8 __DEFAULT_FN_ATTRS
329_mm_cmple_epi32_mask(__m128i __a, __m128i __b) {
330  return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 2,
331                                               (__mmask8)-1);
332}
333
334static __inline__ __mmask8 __DEFAULT_FN_ATTRS
335_mm_mask_cmple_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
336  return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 2,
337                                               __u);
338}
339
340static __inline__ __mmask8 __DEFAULT_FN_ATTRS
341_mm_cmple_epu32_mask(__m128i __a, __m128i __b) {
342  return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 2,
343                                                (__mmask8)-1);
344}
345
346static __inline__ __mmask8 __DEFAULT_FN_ATTRS
347_mm_mask_cmple_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
348  return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 2,
349                                                __u);
350}
351
352static __inline__ __mmask8 __DEFAULT_FN_ATTRS
353_mm256_cmple_epi32_mask(__m256i __a, __m256i __b) {
354  return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 2,
355                                               (__mmask8)-1);
356}
357
358static __inline__ __mmask8 __DEFAULT_FN_ATTRS
359_mm256_mask_cmple_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
360  return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 2,
361                                               __u);
362}
363
364static __inline__ __mmask8 __DEFAULT_FN_ATTRS
365_mm256_cmple_epu32_mask(__m256i __a, __m256i __b) {
366  return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 2,
367                                                (__mmask8)-1);
368}
369
370static __inline__ __mmask8 __DEFAULT_FN_ATTRS
371_mm256_mask_cmple_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
372  return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 2,
373                                                __u);
374}
375
376static __inline__ __mmask8 __DEFAULT_FN_ATTRS
377_mm_cmple_epi64_mask(__m128i __a, __m128i __b) {
378  return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 2,
379                                               (__mmask8)-1);
380}
381
382static __inline__ __mmask8 __DEFAULT_FN_ATTRS
383_mm_mask_cmple_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
384  return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 2,
385                                               __u);
386}
387
388static __inline__ __mmask8 __DEFAULT_FN_ATTRS
389_mm_cmple_epu64_mask(__m128i __a, __m128i __b) {
390  return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 2,
391                                                (__mmask8)-1);
392}
393
394static __inline__ __mmask8 __DEFAULT_FN_ATTRS
395_mm_mask_cmple_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
396  return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 2,
397                                                __u);
398}
399
400static __inline__ __mmask8 __DEFAULT_FN_ATTRS
401_mm256_cmple_epi64_mask(__m256i __a, __m256i __b) {
402  return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 2,
403                                               (__mmask8)-1);
404}
405
406static __inline__ __mmask8 __DEFAULT_FN_ATTRS
407_mm256_mask_cmple_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
408  return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 2,
409                                               __u);
410}
411
412static __inline__ __mmask8 __DEFAULT_FN_ATTRS
413_mm256_cmple_epu64_mask(__m256i __a, __m256i __b) {
414  return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 2,
415                                                (__mmask8)-1);
416}
417
418static __inline__ __mmask8 __DEFAULT_FN_ATTRS
419_mm256_mask_cmple_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
420  return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 2,
421                                                __u);
422}
423
424static __inline__ __mmask8 __DEFAULT_FN_ATTRS
425_mm_cmplt_epi32_mask(__m128i __a, __m128i __b) {
426  return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 1,
427                                               (__mmask8)-1);
428}
429
430static __inline__ __mmask8 __DEFAULT_FN_ATTRS
431_mm_mask_cmplt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
432  return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 1,
433                                               __u);
434}
435
436static __inline__ __mmask8 __DEFAULT_FN_ATTRS
437_mm_cmplt_epu32_mask(__m128i __a, __m128i __b) {
438  return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 1,
439                                                (__mmask8)-1);
440}
441
442static __inline__ __mmask8 __DEFAULT_FN_ATTRS
443_mm_mask_cmplt_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
444  return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 1,
445                                                __u);
446}
447
448static __inline__ __mmask8 __DEFAULT_FN_ATTRS
449_mm256_cmplt_epi32_mask(__m256i __a, __m256i __b) {
450  return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 1,
451                                               (__mmask8)-1);
452}
453
454static __inline__ __mmask8 __DEFAULT_FN_ATTRS
455_mm256_mask_cmplt_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
456  return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 1,
457                                               __u);
458}
459
460static __inline__ __mmask8 __DEFAULT_FN_ATTRS
461_mm256_cmplt_epu32_mask(__m256i __a, __m256i __b) {
462  return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 1,
463                                                (__mmask8)-1);
464}
465
466static __inline__ __mmask8 __DEFAULT_FN_ATTRS
467_mm256_mask_cmplt_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
468  return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 1,
469                                                __u);
470}
471
472static __inline__ __mmask8 __DEFAULT_FN_ATTRS
473_mm_cmplt_epi64_mask(__m128i __a, __m128i __b) {
474  return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 1,
475                                               (__mmask8)-1);
476}
477
478static __inline__ __mmask8 __DEFAULT_FN_ATTRS
479_mm_mask_cmplt_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
480  return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 1,
481                                               __u);
482}
483
484static __inline__ __mmask8 __DEFAULT_FN_ATTRS
485_mm_cmplt_epu64_mask(__m128i __a, __m128i __b) {
486  return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 1,
487                                                (__mmask8)-1);
488}
489
490static __inline__ __mmask8 __DEFAULT_FN_ATTRS
491_mm_mask_cmplt_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
492  return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 1,
493                                                __u);
494}
495
496static __inline__ __mmask8 __DEFAULT_FN_ATTRS
497_mm256_cmplt_epi64_mask(__m256i __a, __m256i __b) {
498  return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 1,
499                                               (__mmask8)-1);
500}
501
502static __inline__ __mmask8 __DEFAULT_FN_ATTRS
503_mm256_mask_cmplt_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
504  return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 1,
505                                               __u);
506}
507
508static __inline__ __mmask8 __DEFAULT_FN_ATTRS
509_mm256_cmplt_epu64_mask(__m256i __a, __m256i __b) {
510  return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 1,
511                                                (__mmask8)-1);
512}
513
514static __inline__ __mmask8 __DEFAULT_FN_ATTRS
515_mm256_mask_cmplt_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
516  return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 1,
517                                                __u);
518}
519
520static __inline__ __mmask8 __DEFAULT_FN_ATTRS
521_mm_cmpneq_epi32_mask(__m128i __a, __m128i __b) {
522  return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 4,
523                                               (__mmask8)-1);
524}
525
526static __inline__ __mmask8 __DEFAULT_FN_ATTRS
527_mm_mask_cmpneq_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
528  return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 4,
529                                               __u);
530}
531
532static __inline__ __mmask8 __DEFAULT_FN_ATTRS
533_mm_cmpneq_epu32_mask(__m128i __a, __m128i __b) {
534  return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 4,
535                                                (__mmask8)-1);
536}
537
538static __inline__ __mmask8 __DEFAULT_FN_ATTRS
539_mm_mask_cmpneq_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
540  return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 4,
541                                                __u);
542}
543
544static __inline__ __mmask8 __DEFAULT_FN_ATTRS
545_mm256_cmpneq_epi32_mask(__m256i __a, __m256i __b) {
546  return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 4,
547                                               (__mmask8)-1);
548}
549
550static __inline__ __mmask8 __DEFAULT_FN_ATTRS
551_mm256_mask_cmpneq_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
552  return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 4,
553                                               __u);
554}
555
556static __inline__ __mmask8 __DEFAULT_FN_ATTRS
557_mm256_cmpneq_epu32_mask(__m256i __a, __m256i __b) {
558  return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 4,
559                                                (__mmask8)-1);
560}
561
562static __inline__ __mmask8 __DEFAULT_FN_ATTRS
563_mm256_mask_cmpneq_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
564  return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 4,
565                                                __u);
566}
567
568static __inline__ __mmask8 __DEFAULT_FN_ATTRS
569_mm_cmpneq_epi64_mask(__m128i __a, __m128i __b) {
570  return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 4,
571                                               (__mmask8)-1);
572}
573
574static __inline__ __mmask8 __DEFAULT_FN_ATTRS
575_mm_mask_cmpneq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
576  return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 4,
577                                               __u);
578}
579
580static __inline__ __mmask8 __DEFAULT_FN_ATTRS
581_mm_cmpneq_epu64_mask(__m128i __a, __m128i __b) {
582  return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 4,
583                                                (__mmask8)-1);
584}
585
586static __inline__ __mmask8 __DEFAULT_FN_ATTRS
587_mm_mask_cmpneq_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
588  return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 4,
589                                                __u);
590}
591
592static __inline__ __mmask8 __DEFAULT_FN_ATTRS
593_mm256_cmpneq_epi64_mask(__m256i __a, __m256i __b) {
594  return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 4,
595                                               (__mmask8)-1);
596}
597
598static __inline__ __mmask8 __DEFAULT_FN_ATTRS
599_mm256_mask_cmpneq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
600  return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 4,
601                                               __u);
602}
603
604static __inline__ __mmask8 __DEFAULT_FN_ATTRS
605_mm256_cmpneq_epu64_mask(__m256i __a, __m256i __b) {
606  return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 4,
607                                                (__mmask8)-1);
608}
609
610static __inline__ __mmask8 __DEFAULT_FN_ATTRS
611_mm256_mask_cmpneq_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
612  return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 4,
613                                                __u);
614}
615
616static __inline__ __m256i __DEFAULT_FN_ATTRS
617_mm256_mask_add_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
618           __m256i __B)
619{
620  return (__m256i) __builtin_ia32_paddd256_mask ((__v8si) __A,
621             (__v8si) __B,
622             (__v8si) __W,
623             (__mmask8) __U);
624}
625
626static __inline__ __m256i __DEFAULT_FN_ATTRS
627_mm256_maskz_add_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
628{
629  return (__m256i) __builtin_ia32_paddd256_mask ((__v8si) __A,
630             (__v8si) __B,
631             (__v8si)
632             _mm256_setzero_si256 (),
633             (__mmask8) __U);
634}
635
636static __inline__ __m256i __DEFAULT_FN_ATTRS
637_mm256_mask_add_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
638           __m256i __B)
639{
640  return (__m256i) __builtin_ia32_paddq256_mask ((__v4di) __A,
641             (__v4di) __B,
642             (__v4di) __W,
643             (__mmask8) __U);
644}
645
646static __inline__ __m256i __DEFAULT_FN_ATTRS
647_mm256_maskz_add_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
648{
649  return (__m256i) __builtin_ia32_paddq256_mask ((__v4di) __A,
650             (__v4di) __B,
651             (__v4di)
652             _mm256_setzero_si256 (),
653             (__mmask8) __U);
654}
655
656static __inline__ __m256i __DEFAULT_FN_ATTRS
657_mm256_mask_sub_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
658           __m256i __B)
659{
660  return (__m256i) __builtin_ia32_psubd256_mask ((__v8si) __A,
661             (__v8si) __B,
662             (__v8si) __W,
663             (__mmask8) __U);
664}
665
666static __inline__ __m256i __DEFAULT_FN_ATTRS
667_mm256_maskz_sub_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
668{
669  return (__m256i) __builtin_ia32_psubd256_mask ((__v8si) __A,
670             (__v8si) __B,
671             (__v8si)
672             _mm256_setzero_si256 (),
673             (__mmask8) __U);
674}
675
676static __inline__ __m256i __DEFAULT_FN_ATTRS
677_mm256_mask_sub_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
678           __m256i __B)
679{
680  return (__m256i) __builtin_ia32_psubq256_mask ((__v4di) __A,
681             (__v4di) __B,
682             (__v4di) __W,
683             (__mmask8) __U);
684}
685
686static __inline__ __m256i __DEFAULT_FN_ATTRS
687_mm256_maskz_sub_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
688{
689  return (__m256i) __builtin_ia32_psubq256_mask ((__v4di) __A,
690             (__v4di) __B,
691             (__v4di)
692             _mm256_setzero_si256 (),
693             (__mmask8) __U);
694}
695
696static __inline__ __m128i __DEFAULT_FN_ATTRS
697_mm_mask_add_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
698        __m128i __B)
699{
700  return (__m128i) __builtin_ia32_paddd128_mask ((__v4si) __A,
701             (__v4si) __B,
702             (__v4si) __W,
703             (__mmask8) __U);
704}
705
706static __inline__ __m128i __DEFAULT_FN_ATTRS
707_mm_maskz_add_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
708{
709  return (__m128i) __builtin_ia32_paddd128_mask ((__v4si) __A,
710             (__v4si) __B,
711             (__v4si)
712             _mm_setzero_si128 (),
713             (__mmask8) __U);
714}
715
716static __inline__ __m128i __DEFAULT_FN_ATTRS
717_mm_mask_add_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
718        __m128i __B)
719{
720  return (__m128i) __builtin_ia32_paddq128_mask ((__v2di) __A,
721             (__v2di) __B,
722             (__v2di) __W,
723             (__mmask8) __U);
724}
725
726static __inline__ __m128i __DEFAULT_FN_ATTRS
727_mm_maskz_add_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
728{
729  return (__m128i) __builtin_ia32_paddq128_mask ((__v2di) __A,
730             (__v2di) __B,
731             (__v2di)
732             _mm_setzero_si128 (),
733             (__mmask8) __U);
734}
735
736static __inline__ __m128i __DEFAULT_FN_ATTRS
737_mm_mask_sub_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
738        __m128i __B)
739{
740  return (__m128i) __builtin_ia32_psubd128_mask ((__v4si) __A,
741             (__v4si) __B,
742             (__v4si) __W,
743             (__mmask8) __U);
744}
745
746static __inline__ __m128i __DEFAULT_FN_ATTRS
747_mm_maskz_sub_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
748{
749  return (__m128i) __builtin_ia32_psubd128_mask ((__v4si) __A,
750             (__v4si) __B,
751             (__v4si)
752             _mm_setzero_si128 (),
753             (__mmask8) __U);
754}
755
756static __inline__ __m128i __DEFAULT_FN_ATTRS
757_mm_mask_sub_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
758        __m128i __B)
759{
760  return (__m128i) __builtin_ia32_psubq128_mask ((__v2di) __A,
761             (__v2di) __B,
762             (__v2di) __W,
763             (__mmask8) __U);
764}
765
766static __inline__ __m128i __DEFAULT_FN_ATTRS
767_mm_maskz_sub_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
768{
769  return (__m128i) __builtin_ia32_psubq128_mask ((__v2di) __A,
770             (__v2di) __B,
771             (__v2di)
772             _mm_setzero_si128 (),
773             (__mmask8) __U);
774}
775
776static __inline__ __m256i __DEFAULT_FN_ATTRS
777_mm256_mask_mul_epi32 (__m256i __W, __mmask8 __M, __m256i __X,
778           __m256i __Y)
779{
780  return (__m256i) __builtin_ia32_pmuldq256_mask ((__v8si) __X,
781              (__v8si) __Y,
782              (__v4di) __W, __M);
783}
784
785static __inline__ __m256i __DEFAULT_FN_ATTRS
786_mm256_maskz_mul_epi32 (__mmask8 __M, __m256i __X, __m256i __Y)
787{
788  return (__m256i) __builtin_ia32_pmuldq256_mask ((__v8si) __X,
789              (__v8si) __Y,
790              (__v4di)
791              _mm256_setzero_si256 (),
792              __M);
793}
794
795static __inline__ __m128i __DEFAULT_FN_ATTRS
796_mm_mask_mul_epi32 (__m128i __W, __mmask8 __M, __m128i __X,
797        __m128i __Y)
798{
799  return (__m128i) __builtin_ia32_pmuldq128_mask ((__v4si) __X,
800              (__v4si) __Y,
801              (__v2di) __W, __M);
802}
803
804static __inline__ __m128i __DEFAULT_FN_ATTRS
805_mm_maskz_mul_epi32 (__mmask8 __M, __m128i __X, __m128i __Y)
806{
807  return (__m128i) __builtin_ia32_pmuldq128_mask ((__v4si) __X,
808              (__v4si) __Y,
809              (__v2di)
810              _mm_setzero_si128 (),
811              __M);
812}
813
814static __inline__ __m256i __DEFAULT_FN_ATTRS
815_mm256_mask_mul_epu32 (__m256i __W, __mmask8 __M, __m256i __X,
816           __m256i __Y)
817{
818  return (__m256i) __builtin_ia32_pmuludq256_mask ((__v8si) __X,
819               (__v8si) __Y,
820               (__v4di) __W, __M);
821}
822
823static __inline__ __m256i __DEFAULT_FN_ATTRS
824_mm256_maskz_mul_epu32 (__mmask8 __M, __m256i __X, __m256i __Y)
825{
826  return (__m256i) __builtin_ia32_pmuludq256_mask ((__v8si) __X,
827               (__v8si) __Y,
828               (__v4di)
829               _mm256_setzero_si256 (),
830               __M);
831}
832
833static __inline__ __m128i __DEFAULT_FN_ATTRS
834_mm_mask_mul_epu32 (__m128i __W, __mmask8 __M, __m128i __X,
835        __m128i __Y)
836{
837  return (__m128i) __builtin_ia32_pmuludq128_mask ((__v4si) __X,
838               (__v4si) __Y,
839               (__v2di) __W, __M);
840}
841
842static __inline__ __m128i __DEFAULT_FN_ATTRS
843_mm_maskz_mul_epu32 (__mmask8 __M, __m128i __X, __m128i __Y)
844{
845  return (__m128i) __builtin_ia32_pmuludq128_mask ((__v4si) __X,
846               (__v4si) __Y,
847               (__v2di)
848               _mm_setzero_si128 (),
849               __M);
850}
851
852static __inline__ __m256i __DEFAULT_FN_ATTRS
853_mm256_maskz_mullo_epi32 (__mmask8 __M, __m256i __A, __m256i __B)
854{
855  return (__m256i) __builtin_ia32_pmulld256_mask ((__v8si) __A,
856              (__v8si) __B,
857              (__v8si)
858              _mm256_setzero_si256 (),
859              __M);
860}
861
862static __inline__ __m256i __DEFAULT_FN_ATTRS
863_mm256_mask_mullo_epi32 (__m256i __W, __mmask8 __M, __m256i __A,
864       __m256i __B)
865{
866  return (__m256i) __builtin_ia32_pmulld256_mask ((__v8si) __A,
867              (__v8si) __B,
868              (__v8si) __W, __M);
869}
870
871static __inline__ __m128i __DEFAULT_FN_ATTRS
872_mm_maskz_mullo_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
873{
874  return (__m128i) __builtin_ia32_pmulld128_mask ((__v4si) __A,
875              (__v4si) __B,
876              (__v4si)
877              _mm_setzero_si128 (),
878              __M);
879}
880
881static __inline__ __m128i __DEFAULT_FN_ATTRS
882_mm_mask_mullo_epi32 (__m128i __W, __mmask16 __M, __m128i __A,
883          __m128i __B)
884{
885  return (__m128i) __builtin_ia32_pmulld128_mask ((__v4si) __A,
886              (__v4si) __B,
887              (__v4si) __W, __M);
888}
889
890static __inline__ __m256i __DEFAULT_FN_ATTRS
891_mm256_mask_and_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
892           __m256i __B)
893{
894  return (__m256i) __builtin_ia32_pandd256_mask ((__v8si) __A,
895             (__v8si) __B,
896             (__v8si) __W,
897             (__mmask8) __U);
898}
899
900static __inline__ __m256i __DEFAULT_FN_ATTRS
901_mm256_maskz_and_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
902{
903  return (__m256i) __builtin_ia32_pandd256_mask ((__v8si) __A,
904             (__v8si) __B,
905             (__v8si)
906             _mm256_setzero_si256 (),
907             (__mmask8) __U);
908}
909
910static __inline__ __m128i __DEFAULT_FN_ATTRS
911_mm_mask_and_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
912{
913  return (__m128i) __builtin_ia32_pandd128_mask ((__v4si) __A,
914             (__v4si) __B,
915             (__v4si) __W,
916             (__mmask8) __U);
917}
918
919static __inline__ __m128i __DEFAULT_FN_ATTRS
920_mm_maskz_and_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
921{
922  return (__m128i) __builtin_ia32_pandd128_mask ((__v4si) __A,
923             (__v4si) __B,
924             (__v4si)
925             _mm_setzero_si128 (),
926             (__mmask8) __U);
927}
928
929static __inline__ __m256i __DEFAULT_FN_ATTRS
930_mm256_mask_andnot_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
931        __m256i __B)
932{
933  return (__m256i) __builtin_ia32_pandnd256_mask ((__v8si) __A,
934              (__v8si) __B,
935              (__v8si) __W,
936              (__mmask8) __U);
937}
938
939static __inline__ __m256i __DEFAULT_FN_ATTRS
940_mm256_maskz_andnot_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
941{
942  return (__m256i) __builtin_ia32_pandnd256_mask ((__v8si) __A,
943              (__v8si) __B,
944              (__v8si)
945              _mm256_setzero_si256 (),
946              (__mmask8) __U);
947}
948
949static __inline__ __m128i __DEFAULT_FN_ATTRS
950_mm_mask_andnot_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
951           __m128i __B)
952{
953  return (__m128i) __builtin_ia32_pandnd128_mask ((__v4si) __A,
954              (__v4si) __B,
955              (__v4si) __W,
956              (__mmask8) __U);
957}
958
959static __inline__ __m128i __DEFAULT_FN_ATTRS
960_mm_maskz_andnot_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
961{
962  return (__m128i) __builtin_ia32_pandnd128_mask ((__v4si) __A,
963              (__v4si) __B,
964              (__v4si)
965              _mm_setzero_si128 (),
966              (__mmask8) __U);
967}
968
969static __inline__ __m256i __DEFAULT_FN_ATTRS
970_mm256_mask_or_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
971          __m256i __B)
972{
973  return (__m256i) __builtin_ia32_pord256_mask ((__v8si) __A,
974            (__v8si) __B,
975            (__v8si) __W,
976            (__mmask8) __U);
977}
978
979static __inline__ __m256i __DEFAULT_FN_ATTRS
980_mm256_maskz_or_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
981{
982  return (__m256i) __builtin_ia32_pord256_mask ((__v8si) __A,
983            (__v8si) __B,
984            (__v8si)
985            _mm256_setzero_si256 (),
986            (__mmask8) __U);
987}
988
989static __inline__ __m128i __DEFAULT_FN_ATTRS
990_mm_mask_or_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
991{
992  return (__m128i) __builtin_ia32_pord128_mask ((__v4si) __A,
993            (__v4si) __B,
994            (__v4si) __W,
995            (__mmask8) __U);
996}
997
998static __inline__ __m128i __DEFAULT_FN_ATTRS
999_mm_maskz_or_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
1000{
1001  return (__m128i) __builtin_ia32_pord128_mask ((__v4si) __A,
1002            (__v4si) __B,
1003            (__v4si)
1004            _mm_setzero_si128 (),
1005            (__mmask8) __U);
1006}
1007
1008static __inline__ __m256i __DEFAULT_FN_ATTRS
1009_mm256_mask_xor_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
1010           __m256i __B)
1011{
1012  return (__m256i) __builtin_ia32_pxord256_mask ((__v8si) __A,
1013             (__v8si) __B,
1014             (__v8si) __W,
1015             (__mmask8) __U);
1016}
1017
1018static __inline__ __m256i __DEFAULT_FN_ATTRS
1019_mm256_maskz_xor_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
1020{
1021  return (__m256i) __builtin_ia32_pxord256_mask ((__v8si) __A,
1022             (__v8si) __B,
1023             (__v8si)
1024             _mm256_setzero_si256 (),
1025             (__mmask8) __U);
1026}
1027
1028static __inline__ __m128i __DEFAULT_FN_ATTRS
1029_mm_mask_xor_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
1030        __m128i __B)
1031{
1032  return (__m128i) __builtin_ia32_pxord128_mask ((__v4si) __A,
1033             (__v4si) __B,
1034             (__v4si) __W,
1035             (__mmask8) __U);
1036}
1037
1038static __inline__ __m128i __DEFAULT_FN_ATTRS
1039_mm_maskz_xor_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
1040{
1041  return (__m128i) __builtin_ia32_pxord128_mask ((__v4si) __A,
1042             (__v4si) __B,
1043             (__v4si)
1044             _mm_setzero_si128 (),
1045             (__mmask8) __U);
1046}
1047
1048static __inline__ __m256i __DEFAULT_FN_ATTRS
1049_mm256_mask_and_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
1050           __m256i __B)
1051{
1052  return (__m256i) __builtin_ia32_pandq256_mask ((__v4di) __A,
1053             (__v4di) __B,
1054             (__v4di) __W, __U);
1055}
1056
1057static __inline__ __m256i __DEFAULT_FN_ATTRS
1058_mm256_maskz_and_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
1059{
1060  return (__m256i) __builtin_ia32_pandq256_mask ((__v4di) __A,
1061             (__v4di) __B,
1062             (__v4di)
1063             _mm256_setzero_pd (),
1064             __U);
1065}
1066
1067static __inline__ __m128i __DEFAULT_FN_ATTRS
1068_mm_mask_and_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
1069        __m128i __B)
1070{
1071  return (__m128i) __builtin_ia32_pandq128_mask ((__v2di) __A,
1072             (__v2di) __B,
1073             (__v2di) __W, __U);
1074}
1075
1076static __inline__ __m128i __DEFAULT_FN_ATTRS
1077_mm_maskz_and_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
1078{
1079  return (__m128i) __builtin_ia32_pandq128_mask ((__v2di) __A,
1080             (__v2di) __B,
1081             (__v2di)
1082             _mm_setzero_pd (),
1083             __U);
1084}
1085
1086static __inline__ __m256i __DEFAULT_FN_ATTRS
1087_mm256_mask_andnot_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
1088        __m256i __B)
1089{
1090  return (__m256i) __builtin_ia32_pandnq256_mask ((__v4di) __A,
1091              (__v4di) __B,
1092              (__v4di) __W, __U);
1093}
1094
1095static __inline__ __m256i __DEFAULT_FN_ATTRS
1096_mm256_maskz_andnot_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
1097{
1098  return (__m256i) __builtin_ia32_pandnq256_mask ((__v4di) __A,
1099              (__v4di) __B,
1100              (__v4di)
1101              _mm256_setzero_pd (),
1102              __U);
1103}
1104
1105static __inline__ __m128i __DEFAULT_FN_ATTRS
1106_mm_mask_andnot_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
1107           __m128i __B)
1108{
1109  return (__m128i) __builtin_ia32_pandnq128_mask ((__v2di) __A,
1110              (__v2di) __B,
1111              (__v2di) __W, __U);
1112}
1113
1114static __inline__ __m128i __DEFAULT_FN_ATTRS
1115_mm_maskz_andnot_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
1116{
1117  return (__m128i) __builtin_ia32_pandnq128_mask ((__v2di) __A,
1118              (__v2di) __B,
1119              (__v2di)
1120              _mm_setzero_pd (),
1121              __U);
1122}
1123
1124static __inline__ __m256i __DEFAULT_FN_ATTRS
1125_mm256_mask_or_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
1126          __m256i __B)
1127{
1128  return (__m256i) __builtin_ia32_porq256_mask ((__v4di) __A,
1129            (__v4di) __B,
1130            (__v4di) __W,
1131            (__mmask8) __U);
1132}
1133
1134static __inline__ __m256i __DEFAULT_FN_ATTRS
1135_mm256_maskz_or_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
1136{
1137  return (__m256i) __builtin_ia32_porq256_mask ((__v4di) __A,
1138            (__v4di) __B,
1139            (__v4di)
1140            _mm256_setzero_si256 (),
1141            (__mmask8) __U);
1142}
1143
1144static __inline__ __m128i __DEFAULT_FN_ATTRS
1145_mm_mask_or_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1146{
1147  return (__m128i) __builtin_ia32_porq128_mask ((__v2di) __A,
1148            (__v2di) __B,
1149            (__v2di) __W,
1150            (__mmask8) __U);
1151}
1152
1153static __inline__ __m128i __DEFAULT_FN_ATTRS
1154_mm_maskz_or_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
1155{
1156  return (__m128i) __builtin_ia32_porq128_mask ((__v2di) __A,
1157            (__v2di) __B,
1158            (__v2di)
1159            _mm_setzero_si128 (),
1160            (__mmask8) __U);
1161}
1162
1163static __inline__ __m256i __DEFAULT_FN_ATTRS
1164_mm256_mask_xor_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
1165           __m256i __B)
1166{
1167  return (__m256i) __builtin_ia32_pxorq256_mask ((__v4di) __A,
1168             (__v4di) __B,
1169             (__v4di) __W,
1170             (__mmask8) __U);
1171}
1172
1173static __inline__ __m256i __DEFAULT_FN_ATTRS
1174_mm256_maskz_xor_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
1175{
1176  return (__m256i) __builtin_ia32_pxorq256_mask ((__v4di) __A,
1177             (__v4di) __B,
1178             (__v4di)
1179             _mm256_setzero_si256 (),
1180             (__mmask8) __U);
1181}
1182
1183static __inline__ __m128i __DEFAULT_FN_ATTRS
1184_mm_mask_xor_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
1185        __m128i __B)
1186{
1187  return (__m128i) __builtin_ia32_pxorq128_mask ((__v2di) __A,
1188             (__v2di) __B,
1189             (__v2di) __W,
1190             (__mmask8) __U);
1191}
1192
1193static __inline__ __m128i __DEFAULT_FN_ATTRS
1194_mm_maskz_xor_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
1195{
1196  return (__m128i) __builtin_ia32_pxorq128_mask ((__v2di) __A,
1197             (__v2di) __B,
1198             (__v2di)
1199             _mm_setzero_si128 (),
1200             (__mmask8) __U);
1201}
1202
1203#define _mm_cmp_epi32_mask(a, b, p) __extension__ ({ \
1204  (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)(a), \
1205                                        (__v4si)(__m128i)(b), \
1206                                        (p), (__mmask8)-1); })
1207
1208#define _mm_mask_cmp_epi32_mask(m, a, b, p) __extension__ ({ \
1209  (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)(a), \
1210                                        (__v4si)(__m128i)(b), \
1211                                        (p), (__mmask8)(m)); })
1212
1213#define _mm_cmp_epu32_mask(a, b, p) __extension__ ({ \
1214  (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)(__m128i)(a), \
1215                                         (__v4si)(__m128i)(b), \
1216                                         (p), (__mmask8)-1); })
1217
1218#define _mm_mask_cmp_epu32_mask(m, a, b, p) __extension__ ({ \
1219  (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)(__m128i)(a), \
1220                                         (__v4si)(__m128i)(b), \
1221                                         (p), (__mmask8)(m)); })
1222
1223#define _mm256_cmp_epi32_mask(a, b, p) __extension__ ({ \
1224  (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)(a), \
1225                                        (__v8si)(__m256i)(b), \
1226                                        (p), (__mmask8)-1); })
1227
1228#define _mm256_mask_cmp_epi32_mask(m, a, b, p) __extension__ ({ \
1229  (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)(a), \
1230                                        (__v8si)(__m256i)(b), \
1231                                        (p), (__mmask8)(m)); })
1232
1233#define _mm256_cmp_epu32_mask(a, b, p) __extension__ ({ \
1234  (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)(__m256i)(a), \
1235                                         (__v8si)(__m256i)(b), \
1236                                         (p), (__mmask8)-1); })
1237
1238#define _mm256_mask_cmp_epu32_mask(m, a, b, p) __extension__ ({ \
1239  (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)(__m256i)(a), \
1240                                         (__v8si)(__m256i)(b), \
1241                                         (p), (__mmask8)(m)); })
1242
1243#define _mm_cmp_epi64_mask(a, b, p) __extension__ ({ \
1244  (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)(a), \
1245                                        (__v2di)(__m128i)(b), \
1246                                        (p), (__mmask8)-1); })
1247
1248#define _mm_mask_cmp_epi64_mask(m, a, b, p) __extension__ ({ \
1249  (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)(a), \
1250                                        (__v2di)(__m128i)(b), \
1251                                        (p), (__mmask8)(m)); })
1252
1253#define _mm_cmp_epu64_mask(a, b, p) __extension__ ({ \
1254  (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)(__m128i)(a), \
1255                                         (__v2di)(__m128i)(b), \
1256                                         (p), (__mmask8)-1); })
1257
1258#define _mm_mask_cmp_epu64_mask(m, a, b, p) __extension__ ({ \
1259  (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)(__m128i)(a), \
1260                                         (__v2di)(__m128i)(b), \
1261                                         (p), (__mmask8)(m)); })
1262
1263#define _mm256_cmp_epi64_mask(a, b, p) __extension__ ({ \
1264  (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)(a), \
1265                                        (__v4di)(__m256i)(b), \
1266                                        (p), (__mmask8)-1); })
1267
1268#define _mm256_mask_cmp_epi64_mask(m, a, b, p) __extension__ ({ \
1269  (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)(a), \
1270                                        (__v4di)(__m256i)(b), \
1271                                        (p), (__mmask8)(m)); })
1272
1273#define _mm256_cmp_epu64_mask(a, b, p) __extension__ ({ \
1274  (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)(__m256i)(a), \
1275                                         (__v4di)(__m256i)(b), \
1276                                         (p), (__mmask8)-1); })
1277
1278#define _mm256_mask_cmp_epu64_mask(m, a, b, p) __extension__ ({ \
1279  (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)(__m256i)(a), \
1280                                         (__v4di)(__m256i)(b), \
1281                                         (p), (__mmask8)(m)); })
1282
1283#define _mm256_cmp_ps_mask(a, b, p)  __extension__ ({ \
1284  (__mmask8)__builtin_ia32_cmpps256_mask((__v8sf)(__m256)(a), \
1285                                         (__v8sf)(__m256)(b), \
1286                                         (p), (__mmask8)-1); })
1287
1288#define _mm256_mask_cmp_ps_mask(m, a, b, p)  __extension__ ({ \
1289  (__mmask8)__builtin_ia32_cmpps256_mask((__v8sf)(__m256)(a), \
1290                                         (__v8sf)(__m256)(b), \
1291                                         (p), (__mmask8)(m)); })
1292
1293#define _mm256_cmp_pd_mask(a, b, p)  __extension__ ({ \
1294  (__mmask8)__builtin_ia32_cmppd256_mask((__v4df)(__m256)(a), \
1295                                         (__v4df)(__m256)(b), \
1296                                         (p), (__mmask8)-1); })
1297
1298#define _mm256_mask_cmp_pd_mask(m, a, b, p)  __extension__ ({ \
1299  (__mmask8)__builtin_ia32_cmppd256_mask((__v4df)(__m256)(a), \
1300                                         (__v4df)(__m256)(b), \
1301                                         (p), (__mmask8)(m)); })
1302
1303#define _mm128_cmp_ps_mask(a, b, p)  __extension__ ({ \
1304  (__mmask8)__builtin_ia32_cmpps128_mask((__v4sf)(__m128)(a), \
1305                                         (__v4sf)(__m128)(b), \
1306                                         (p), (__mmask8)-1); })
1307
1308#define _mm128_mask_cmp_ps_mask(m, a, b, p)  __extension__ ({ \
1309  (__mmask8)__builtin_ia32_cmpps128_mask((__v4sf)(__m128)(a), \
1310                                         (__v4sf)(__m128)(b), \
1311                                         (p), (__mmask8)(m)); })
1312
1313#define _mm128_cmp_pd_mask(a, b, p)  __extension__ ({ \
1314  (__mmask8)__builtin_ia32_cmppd128_mask((__v2df)(__m128)(a), \
1315                                         (__v2df)(__m128)(b), \
1316                                         (p), (__mmask8)-1); })
1317
1318#define _mm128_mask_cmp_pd_mask(m, a, b, p)  __extension__ ({ \
1319  (__mmask8)__builtin_ia32_cmppd128_mask((__v2df)(__m128)(a), \
1320                                         (__v2df)(__m128)(b), \
1321                                         (p), (__mmask8)(m)); })
1322
1323static __inline__ __m128d __DEFAULT_FN_ATTRS
1324_mm_mask_fmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1325{
1326  return (__m128d) __builtin_ia32_vfmaddpd128_mask ((__v2df) __A,
1327                                                    (__v2df) __B,
1328                                                    (__v2df) __C,
1329                                                    (__mmask8) __U);
1330}
1331
1332static __inline__ __m128d __DEFAULT_FN_ATTRS
1333_mm_mask3_fmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1334{
1335  return (__m128d) __builtin_ia32_vfmaddpd128_mask3 ((__v2df) __A,
1336                                                     (__v2df) __B,
1337                                                     (__v2df) __C,
1338                                                     (__mmask8) __U);
1339}
1340
1341static __inline__ __m128d __DEFAULT_FN_ATTRS
1342_mm_maskz_fmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1343{
1344  return (__m128d) __builtin_ia32_vfmaddpd128_maskz ((__v2df) __A,
1345                                                     (__v2df) __B,
1346                                                     (__v2df) __C,
1347                                                     (__mmask8) __U);
1348}
1349
1350static __inline__ __m128d __DEFAULT_FN_ATTRS
1351_mm_mask_fmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1352{
1353  return (__m128d) __builtin_ia32_vfmaddpd128_mask ((__v2df) __A,
1354                                                    (__v2df) __B,
1355                                                    -(__v2df) __C,
1356                                                    (__mmask8) __U);
1357}
1358
1359static __inline__ __m128d __DEFAULT_FN_ATTRS
1360_mm_maskz_fmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1361{
1362  return (__m128d) __builtin_ia32_vfmaddpd128_maskz ((__v2df) __A,
1363                                                     (__v2df) __B,
1364                                                     -(__v2df) __C,
1365                                                     (__mmask8) __U);
1366}
1367
1368static __inline__ __m128d __DEFAULT_FN_ATTRS
1369_mm_mask3_fnmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1370{
1371  return (__m128d) __builtin_ia32_vfmaddpd128_mask3 (-(__v2df) __A,
1372                                                     (__v2df) __B,
1373                                                     (__v2df) __C,
1374                                                     (__mmask8) __U);
1375}
1376
1377static __inline__ __m128d __DEFAULT_FN_ATTRS
1378_mm_maskz_fnmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1379{
1380  return (__m128d) __builtin_ia32_vfmaddpd128_maskz (-(__v2df) __A,
1381                                                     (__v2df) __B,
1382                                                     (__v2df) __C,
1383                                                     (__mmask8) __U);
1384}
1385
1386static __inline__ __m128d __DEFAULT_FN_ATTRS
1387_mm_maskz_fnmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1388{
1389  return (__m128d) __builtin_ia32_vfmaddpd128_maskz (-(__v2df) __A,
1390                                                     (__v2df) __B,
1391                                                     -(__v2df) __C,
1392                                                     (__mmask8) __U);
1393}
1394
1395static __inline__ __m256d __DEFAULT_FN_ATTRS
1396_mm256_mask_fmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1397{
1398  return (__m256d) __builtin_ia32_vfmaddpd256_mask ((__v4df) __A,
1399                                                    (__v4df) __B,
1400                                                    (__v4df) __C,
1401                                                    (__mmask8) __U);
1402}
1403
1404static __inline__ __m256d __DEFAULT_FN_ATTRS
1405_mm256_mask3_fmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1406{
1407  return (__m256d) __builtin_ia32_vfmaddpd256_mask3 ((__v4df) __A,
1408                                                     (__v4df) __B,
1409                                                     (__v4df) __C,
1410                                                     (__mmask8) __U);
1411}
1412
1413static __inline__ __m256d __DEFAULT_FN_ATTRS
1414_mm256_maskz_fmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1415{
1416  return (__m256d) __builtin_ia32_vfmaddpd256_maskz ((__v4df) __A,
1417                                                     (__v4df) __B,
1418                                                     (__v4df) __C,
1419                                                     (__mmask8) __U);
1420}
1421
1422static __inline__ __m256d __DEFAULT_FN_ATTRS
1423_mm256_mask_fmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1424{
1425  return (__m256d) __builtin_ia32_vfmaddpd256_mask ((__v4df) __A,
1426                                                    (__v4df) __B,
1427                                                    -(__v4df) __C,
1428                                                    (__mmask8) __U);
1429}
1430
1431static __inline__ __m256d __DEFAULT_FN_ATTRS
1432_mm256_maskz_fmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1433{
1434  return (__m256d) __builtin_ia32_vfmaddpd256_maskz ((__v4df) __A,
1435                                                     (__v4df) __B,
1436                                                     -(__v4df) __C,
1437                                                     (__mmask8) __U);
1438}
1439
1440static __inline__ __m256d __DEFAULT_FN_ATTRS
1441_mm256_mask3_fnmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1442{
1443  return (__m256d) __builtin_ia32_vfmaddpd256_mask3 (-(__v4df) __A,
1444                                                     (__v4df) __B,
1445                                                     (__v4df) __C,
1446                                                     (__mmask8) __U);
1447}
1448
1449static __inline__ __m256d __DEFAULT_FN_ATTRS
1450_mm256_maskz_fnmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1451{
1452  return (__m256d) __builtin_ia32_vfmaddpd256_maskz (-(__v4df) __A,
1453                                                     (__v4df) __B,
1454                                                     (__v4df) __C,
1455                                                     (__mmask8) __U);
1456}
1457
1458static __inline__ __m256d __DEFAULT_FN_ATTRS
1459_mm256_maskz_fnmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1460{
1461  return (__m256d) __builtin_ia32_vfmaddpd256_maskz (-(__v4df) __A,
1462                                                     (__v4df) __B,
1463                                                     -(__v4df) __C,
1464                                                     (__mmask8) __U);
1465}
1466
1467static __inline__ __m128 __DEFAULT_FN_ATTRS
1468_mm_mask_fmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1469{
1470  return (__m128) __builtin_ia32_vfmaddps128_mask ((__v4sf) __A,
1471                                                   (__v4sf) __B,
1472                                                   (__v4sf) __C,
1473                                                   (__mmask8) __U);
1474}
1475
1476static __inline__ __m128 __DEFAULT_FN_ATTRS
1477_mm_mask3_fmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1478{
1479  return (__m128) __builtin_ia32_vfmaddps128_mask3 ((__v4sf) __A,
1480                                                    (__v4sf) __B,
1481                                                    (__v4sf) __C,
1482                                                    (__mmask8) __U);
1483}
1484
1485static __inline__ __m128 __DEFAULT_FN_ATTRS
1486_mm_maskz_fmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1487{
1488  return (__m128) __builtin_ia32_vfmaddps128_maskz ((__v4sf) __A,
1489                                                    (__v4sf) __B,
1490                                                    (__v4sf) __C,
1491                                                    (__mmask8) __U);
1492}
1493
1494static __inline__ __m128 __DEFAULT_FN_ATTRS
1495_mm_mask_fmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1496{
1497  return (__m128) __builtin_ia32_vfmaddps128_mask ((__v4sf) __A,
1498                                                   (__v4sf) __B,
1499                                                   -(__v4sf) __C,
1500                                                   (__mmask8) __U);
1501}
1502
1503static __inline__ __m128 __DEFAULT_FN_ATTRS
1504_mm_maskz_fmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1505{
1506  return (__m128) __builtin_ia32_vfmaddps128_maskz ((__v4sf) __A,
1507                                                    (__v4sf) __B,
1508                                                    -(__v4sf) __C,
1509                                                    (__mmask8) __U);
1510}
1511
1512static __inline__ __m128 __DEFAULT_FN_ATTRS
1513_mm_mask3_fnmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1514{
1515  return (__m128) __builtin_ia32_vfmaddps128_mask3 (-(__v4sf) __A,
1516                                                    (__v4sf) __B,
1517                                                    (__v4sf) __C,
1518                                                    (__mmask8) __U);
1519}
1520
1521static __inline__ __m128 __DEFAULT_FN_ATTRS
1522_mm_maskz_fnmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1523{
1524  return (__m128) __builtin_ia32_vfmaddps128_maskz (-(__v4sf) __A,
1525                                                    (__v4sf) __B,
1526                                                    (__v4sf) __C,
1527                                                    (__mmask8) __U);
1528}
1529
1530static __inline__ __m128 __DEFAULT_FN_ATTRS
1531_mm_maskz_fnmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1532{
1533  return (__m128) __builtin_ia32_vfmaddps128_maskz (-(__v4sf) __A,
1534                                                    (__v4sf) __B,
1535                                                    -(__v4sf) __C,
1536                                                    (__mmask8) __U);
1537}
1538
1539static __inline__ __m256 __DEFAULT_FN_ATTRS
1540_mm256_mask_fmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1541{
1542  return (__m256) __builtin_ia32_vfmaddps256_mask ((__v8sf) __A,
1543                                                   (__v8sf) __B,
1544                                                   (__v8sf) __C,
1545                                                   (__mmask8) __U);
1546}
1547
1548static __inline__ __m256 __DEFAULT_FN_ATTRS
1549_mm256_mask3_fmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1550{
1551  return (__m256) __builtin_ia32_vfmaddps256_mask3 ((__v8sf) __A,
1552                                                    (__v8sf) __B,
1553                                                    (__v8sf) __C,
1554                                                    (__mmask8) __U);
1555}
1556
1557static __inline__ __m256 __DEFAULT_FN_ATTRS
1558_mm256_maskz_fmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1559{
1560  return (__m256) __builtin_ia32_vfmaddps256_maskz ((__v8sf) __A,
1561                                                    (__v8sf) __B,
1562                                                    (__v8sf) __C,
1563                                                    (__mmask8) __U);
1564}
1565
1566static __inline__ __m256 __DEFAULT_FN_ATTRS
1567_mm256_mask_fmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1568{
1569  return (__m256) __builtin_ia32_vfmaddps256_mask ((__v8sf) __A,
1570                                                   (__v8sf) __B,
1571                                                   -(__v8sf) __C,
1572                                                   (__mmask8) __U);
1573}
1574
1575static __inline__ __m256 __DEFAULT_FN_ATTRS
1576_mm256_maskz_fmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1577{
1578  return (__m256) __builtin_ia32_vfmaddps256_maskz ((__v8sf) __A,
1579                                                    (__v8sf) __B,
1580                                                    -(__v8sf) __C,
1581                                                    (__mmask8) __U);
1582}
1583
1584static __inline__ __m256 __DEFAULT_FN_ATTRS
1585_mm256_mask3_fnmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1586{
1587  return (__m256) __builtin_ia32_vfmaddps256_mask3 (-(__v8sf) __A,
1588                                                    (__v8sf) __B,
1589                                                    (__v8sf) __C,
1590                                                    (__mmask8) __U);
1591}
1592
1593static __inline__ __m256 __DEFAULT_FN_ATTRS
1594_mm256_maskz_fnmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1595{
1596  return (__m256) __builtin_ia32_vfmaddps256_maskz (-(__v8sf) __A,
1597                                                    (__v8sf) __B,
1598                                                    (__v8sf) __C,
1599                                                    (__mmask8) __U);
1600}
1601
1602static __inline__ __m256 __DEFAULT_FN_ATTRS
1603_mm256_maskz_fnmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1604{
1605  return (__m256) __builtin_ia32_vfmaddps256_maskz (-(__v8sf) __A,
1606                                                    (__v8sf) __B,
1607                                                    -(__v8sf) __C,
1608                                                    (__mmask8) __U);
1609}
1610
1611static __inline__ __m128d __DEFAULT_FN_ATTRS
1612_mm_mask_fmaddsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1613{
1614  return (__m128d) __builtin_ia32_vfmaddsubpd128_mask ((__v2df) __A,
1615                                                       (__v2df) __B,
1616                                                       (__v2df) __C,
1617                                                       (__mmask8) __U);
1618}
1619
1620static __inline__ __m128d __DEFAULT_FN_ATTRS
1621_mm_mask3_fmaddsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1622{
1623  return (__m128d) __builtin_ia32_vfmaddsubpd128_mask3 ((__v2df) __A,
1624                                                        (__v2df) __B,
1625                                                        (__v2df) __C,
1626                                                        (__mmask8)
1627                                                        __U);
1628}
1629
1630static __inline__ __m128d __DEFAULT_FN_ATTRS
1631_mm_maskz_fmaddsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1632{
1633  return (__m128d) __builtin_ia32_vfmaddsubpd128_maskz ((__v2df) __A,
1634                                                        (__v2df) __B,
1635                                                        (__v2df) __C,
1636                                                        (__mmask8)
1637                                                        __U);
1638}
1639
1640static __inline__ __m128d __DEFAULT_FN_ATTRS
1641_mm_mask_fmsubadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1642{
1643  return (__m128d) __builtin_ia32_vfmaddsubpd128_mask ((__v2df) __A,
1644                                                       (__v2df) __B,
1645                                                       -(__v2df) __C,
1646                                                       (__mmask8) __U);
1647}
1648
1649static __inline__ __m128d __DEFAULT_FN_ATTRS
1650_mm_maskz_fmsubadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1651{
1652  return (__m128d) __builtin_ia32_vfmaddsubpd128_maskz ((__v2df) __A,
1653                                                        (__v2df) __B,
1654                                                        -(__v2df) __C,
1655                                                        (__mmask8)
1656                                                        __U);
1657}
1658
1659static __inline__ __m256d __DEFAULT_FN_ATTRS
1660_mm256_mask_fmaddsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1661{
1662  return (__m256d) __builtin_ia32_vfmaddsubpd256_mask ((__v4df) __A,
1663                                                       (__v4df) __B,
1664                                                       (__v4df) __C,
1665                                                       (__mmask8) __U);
1666}
1667
1668static __inline__ __m256d __DEFAULT_FN_ATTRS
1669_mm256_mask3_fmaddsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1670{
1671  return (__m256d) __builtin_ia32_vfmaddsubpd256_mask3 ((__v4df) __A,
1672                                                        (__v4df) __B,
1673                                                        (__v4df) __C,
1674                                                        (__mmask8)
1675                                                        __U);
1676}
1677
1678static __inline__ __m256d __DEFAULT_FN_ATTRS
1679_mm256_maskz_fmaddsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1680{
1681  return (__m256d) __builtin_ia32_vfmaddsubpd256_maskz ((__v4df) __A,
1682                                                        (__v4df) __B,
1683                                                        (__v4df) __C,
1684                                                        (__mmask8)
1685                                                        __U);
1686}
1687
1688static __inline__ __m256d __DEFAULT_FN_ATTRS
1689_mm256_mask_fmsubadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1690{
1691  return (__m256d) __builtin_ia32_vfmaddsubpd256_mask ((__v4df) __A,
1692                                                       (__v4df) __B,
1693                                                       -(__v4df) __C,
1694                                                       (__mmask8) __U);
1695}
1696
1697static __inline__ __m256d __DEFAULT_FN_ATTRS
1698_mm256_maskz_fmsubadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1699{
1700  return (__m256d) __builtin_ia32_vfmaddsubpd256_maskz ((__v4df) __A,
1701                                                        (__v4df) __B,
1702                                                        -(__v4df) __C,
1703                                                        (__mmask8)
1704                                                        __U);
1705}
1706
1707static __inline__ __m128 __DEFAULT_FN_ATTRS
1708_mm_mask_fmaddsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1709{
1710  return (__m128) __builtin_ia32_vfmaddsubps128_mask ((__v4sf) __A,
1711                                                      (__v4sf) __B,
1712                                                      (__v4sf) __C,
1713                                                      (__mmask8) __U);
1714}
1715
1716static __inline__ __m128 __DEFAULT_FN_ATTRS
1717_mm_mask3_fmaddsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1718{
1719  return (__m128) __builtin_ia32_vfmaddsubps128_mask3 ((__v4sf) __A,
1720                                                       (__v4sf) __B,
1721                                                       (__v4sf) __C,
1722                                                       (__mmask8) __U);
1723}
1724
1725static __inline__ __m128 __DEFAULT_FN_ATTRS
1726_mm_maskz_fmaddsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1727{
1728  return (__m128) __builtin_ia32_vfmaddsubps128_maskz ((__v4sf) __A,
1729                                                       (__v4sf) __B,
1730                                                       (__v4sf) __C,
1731                                                       (__mmask8) __U);
1732}
1733
1734static __inline__ __m128 __DEFAULT_FN_ATTRS
1735_mm_mask_fmsubadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1736{
1737  return (__m128) __builtin_ia32_vfmaddsubps128_mask ((__v4sf) __A,
1738                                                      (__v4sf) __B,
1739                                                      -(__v4sf) __C,
1740                                                      (__mmask8) __U);
1741}
1742
1743static __inline__ __m128 __DEFAULT_FN_ATTRS
1744_mm_maskz_fmsubadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1745{
1746  return (__m128) __builtin_ia32_vfmaddsubps128_maskz ((__v4sf) __A,
1747                                                       (__v4sf) __B,
1748                                                       -(__v4sf) __C,
1749                                                       (__mmask8) __U);
1750}
1751
1752static __inline__ __m256 __DEFAULT_FN_ATTRS
1753_mm256_mask_fmaddsub_ps(__m256 __A, __mmask8 __U, __m256 __B,
1754                         __m256 __C)
1755{
1756  return (__m256) __builtin_ia32_vfmaddsubps256_mask ((__v8sf) __A,
1757                                                      (__v8sf) __B,
1758                                                      (__v8sf) __C,
1759                                                      (__mmask8) __U);
1760}
1761
1762static __inline__ __m256 __DEFAULT_FN_ATTRS
1763_mm256_mask3_fmaddsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1764{
1765  return (__m256) __builtin_ia32_vfmaddsubps256_mask3 ((__v8sf) __A,
1766                                                       (__v8sf) __B,
1767                                                       (__v8sf) __C,
1768                                                       (__mmask8) __U);
1769}
1770
1771static __inline__ __m256 __DEFAULT_FN_ATTRS
1772_mm256_maskz_fmaddsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1773{
1774  return (__m256) __builtin_ia32_vfmaddsubps256_maskz ((__v8sf) __A,
1775                                                       (__v8sf) __B,
1776                                                       (__v8sf) __C,
1777                                                       (__mmask8) __U);
1778}
1779
1780static __inline__ __m256 __DEFAULT_FN_ATTRS
1781_mm256_mask_fmsubadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1782{
1783  return (__m256) __builtin_ia32_vfmaddsubps256_mask ((__v8sf) __A,
1784                                                      (__v8sf) __B,
1785                                                      -(__v8sf) __C,
1786                                                      (__mmask8) __U);
1787}
1788
1789static __inline__ __m256 __DEFAULT_FN_ATTRS
1790_mm256_maskz_fmsubadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1791{
1792  return (__m256) __builtin_ia32_vfmaddsubps256_maskz ((__v8sf) __A,
1793                                                       (__v8sf) __B,
1794                                                       -(__v8sf) __C,
1795                                                       (__mmask8) __U);
1796}
1797
1798static __inline__ __m128d __DEFAULT_FN_ATTRS
1799_mm_mask3_fmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1800{
1801  return (__m128d) __builtin_ia32_vfmsubpd128_mask3 ((__v2df) __A,
1802                                                     (__v2df) __B,
1803                                                     (__v2df) __C,
1804                                                     (__mmask8) __U);
1805}
1806
1807static __inline__ __m256d __DEFAULT_FN_ATTRS
1808_mm256_mask3_fmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1809{
1810  return (__m256d) __builtin_ia32_vfmsubpd256_mask3 ((__v4df) __A,
1811                                                     (__v4df) __B,
1812                                                     (__v4df) __C,
1813                                                     (__mmask8) __U);
1814}
1815
1816static __inline__ __m128 __DEFAULT_FN_ATTRS
1817_mm_mask3_fmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1818{
1819  return (__m128) __builtin_ia32_vfmsubps128_mask3 ((__v4sf) __A,
1820                                                    (__v4sf) __B,
1821                                                    (__v4sf) __C,
1822                                                    (__mmask8) __U);
1823}
1824
1825static __inline__ __m256 __DEFAULT_FN_ATTRS
1826_mm256_mask3_fmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1827{
1828  return (__m256) __builtin_ia32_vfmsubps256_mask3 ((__v8sf) __A,
1829                                                    (__v8sf) __B,
1830                                                    (__v8sf) __C,
1831                                                    (__mmask8) __U);
1832}
1833
1834static __inline__ __m128d __DEFAULT_FN_ATTRS
1835_mm_mask3_fmsubadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1836{
1837  return (__m128d) __builtin_ia32_vfmsubaddpd128_mask3 ((__v2df) __A,
1838                                                        (__v2df) __B,
1839                                                        (__v2df) __C,
1840                                                        (__mmask8)
1841                                                        __U);
1842}
1843
1844static __inline__ __m256d __DEFAULT_FN_ATTRS
1845_mm256_mask3_fmsubadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1846{
1847  return (__m256d) __builtin_ia32_vfmsubaddpd256_mask3 ((__v4df) __A,
1848                                                        (__v4df) __B,
1849                                                        (__v4df) __C,
1850                                                        (__mmask8)
1851                                                        __U);
1852}
1853
1854static __inline__ __m128 __DEFAULT_FN_ATTRS
1855_mm_mask3_fmsubadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1856{
1857  return (__m128) __builtin_ia32_vfmsubaddps128_mask3 ((__v4sf) __A,
1858                                                       (__v4sf) __B,
1859                                                       (__v4sf) __C,
1860                                                       (__mmask8) __U);
1861}
1862
1863static __inline__ __m256 __DEFAULT_FN_ATTRS
1864_mm256_mask3_fmsubadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1865{
1866  return (__m256) __builtin_ia32_vfmsubaddps256_mask3 ((__v8sf) __A,
1867                                                       (__v8sf) __B,
1868                                                       (__v8sf) __C,
1869                                                       (__mmask8) __U);
1870}
1871
1872static __inline__ __m128d __DEFAULT_FN_ATTRS
1873_mm_mask_fnmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1874{
1875  return (__m128d) __builtin_ia32_vfnmaddpd128_mask ((__v2df) __A,
1876                                                     (__v2df) __B,
1877                                                     (__v2df) __C,
1878                                                     (__mmask8) __U);
1879}
1880
1881static __inline__ __m256d __DEFAULT_FN_ATTRS
1882_mm256_mask_fnmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1883{
1884  return (__m256d) __builtin_ia32_vfnmaddpd256_mask ((__v4df) __A,
1885                                                     (__v4df) __B,
1886                                                     (__v4df) __C,
1887                                                     (__mmask8) __U);
1888}
1889
1890static __inline__ __m128 __DEFAULT_FN_ATTRS
1891_mm_mask_fnmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1892{
1893  return (__m128) __builtin_ia32_vfnmaddps128_mask ((__v4sf) __A,
1894                                                    (__v4sf) __B,
1895                                                    (__v4sf) __C,
1896                                                    (__mmask8) __U);
1897}
1898
1899static __inline__ __m256 __DEFAULT_FN_ATTRS
1900_mm256_mask_fnmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1901{
1902  return (__m256) __builtin_ia32_vfnmaddps256_mask ((__v8sf) __A,
1903                                                    (__v8sf) __B,
1904                                                    (__v8sf) __C,
1905                                                    (__mmask8) __U);
1906}
1907
1908static __inline__ __m128d __DEFAULT_FN_ATTRS
1909_mm_mask_fnmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1910{
1911  return (__m128d) __builtin_ia32_vfnmsubpd128_mask ((__v2df) __A,
1912                                                     (__v2df) __B,
1913                                                     (__v2df) __C,
1914                                                     (__mmask8) __U);
1915}
1916
1917static __inline__ __m128d __DEFAULT_FN_ATTRS
1918_mm_mask3_fnmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1919{
1920  return (__m128d) __builtin_ia32_vfnmsubpd128_mask3 ((__v2df) __A,
1921                                                      (__v2df) __B,
1922                                                      (__v2df) __C,
1923                                                      (__mmask8) __U);
1924}
1925
1926static __inline__ __m256d __DEFAULT_FN_ATTRS
1927_mm256_mask_fnmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1928{
1929  return (__m256d) __builtin_ia32_vfnmsubpd256_mask ((__v4df) __A,
1930                                                     (__v4df) __B,
1931                                                     (__v4df) __C,
1932                                                     (__mmask8) __U);
1933}
1934
1935static __inline__ __m256d __DEFAULT_FN_ATTRS
1936_mm256_mask3_fnmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1937{
1938  return (__m256d) __builtin_ia32_vfnmsubpd256_mask3 ((__v4df) __A,
1939                                                      (__v4df) __B,
1940                                                      (__v4df) __C,
1941                                                      (__mmask8) __U);
1942}
1943
1944static __inline__ __m128 __DEFAULT_FN_ATTRS
1945_mm_mask_fnmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1946{
1947  return (__m128) __builtin_ia32_vfnmsubps128_mask ((__v4sf) __A,
1948                                                    (__v4sf) __B,
1949                                                    (__v4sf) __C,
1950                                                    (__mmask8) __U);
1951}
1952
1953static __inline__ __m128 __DEFAULT_FN_ATTRS
1954_mm_mask3_fnmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1955{
1956  return (__m128) __builtin_ia32_vfnmsubps128_mask3 ((__v4sf) __A,
1957                                                     (__v4sf) __B,
1958                                                     (__v4sf) __C,
1959                                                     (__mmask8) __U);
1960}
1961
1962static __inline__ __m256 __DEFAULT_FN_ATTRS
1963_mm256_mask_fnmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1964{
1965  return (__m256) __builtin_ia32_vfnmsubps256_mask ((__v8sf) __A,
1966                                                    (__v8sf) __B,
1967                                                    (__v8sf) __C,
1968                                                    (__mmask8) __U);
1969}
1970
1971static __inline__ __m256 __DEFAULT_FN_ATTRS
1972_mm256_mask3_fnmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1973{
1974  return (__m256) __builtin_ia32_vfnmsubps256_mask3 ((__v8sf) __A,
1975                                                     (__v8sf) __B,
1976                                                     (__v8sf) __C,
1977                                                     (__mmask8) __U);
1978}
1979
1980#undef __DEFAULT_FN_ATTRS
1981
1982#endif /* __AVX512VLINTRIN_H */
1983