Warning: That file was not part of the compilation database. It may have many parsing errors.

1/* Copyright (C) 2014-2017 Free Software Foundation, Inc.
2
3 This file is part of GCC.
4
5 GCC is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 3, or (at your option)
8 any later version.
9
10 GCC is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 Under Section 7 of GPL version 3, you are granted additional
16 permissions described in the GCC Runtime Library Exception, version
17 3.1, as published by the Free Software Foundation.
18
19 You should have received a copy of the GNU General Public License and
20 a copy of the GCC Runtime Library Exception along with this program;
21 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
22 <http://www.gnu.org/licenses/>. */
23
24#ifndef _IMMINTRIN_H_INCLUDED
25#error "Never use <avx512dqintrin.h> directly; include <immintrin.h> instead."
26#endif
27
28#ifndef _AVX512DQINTRIN_H_INCLUDED
29#define _AVX512DQINTRIN_H_INCLUDED
30
31#ifndef __AVX512DQ__
32#pragma GCC push_options
33#pragma GCC target("avx512dq")
34#define __DISABLE_AVX512DQ__
35#endif /* __AVX512DQ__ */
36
37extern __inline unsigned char
38__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
39_ktest_mask8_u8 (__mmask8 __A, __mmask8 __B, unsigned char *__CF)
40{
41 *__CF = (unsigned char) __builtin_ia32_ktestcqi (__A, __B);
42 return (unsigned char) __builtin_ia32_ktestzqi (__A, __B);
43}
44
45extern __inline unsigned char
46__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
47_ktestz_mask8_u8 (__mmask8 __A, __mmask8 __B)
48{
49 return (unsigned char) __builtin_ia32_ktestzqi (__A, __B);
50}
51
52extern __inline unsigned char
53__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
54_ktestc_mask8_u8 (__mmask8 __A, __mmask8 __B)
55{
56 return (unsigned char) __builtin_ia32_ktestcqi (__A, __B);
57}
58
59extern __inline unsigned char
60__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
61_ktest_mask16_u8 (__mmask16 __A, __mmask16 __B, unsigned char *__CF)
62{
63 *__CF = (unsigned char) __builtin_ia32_ktestchi (__A, __B);
64 return (unsigned char) __builtin_ia32_ktestzhi (__A, __B);
65}
66
67extern __inline unsigned char
68__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
69_ktestz_mask16_u8 (__mmask16 __A, __mmask16 __B)
70{
71 return (unsigned char) __builtin_ia32_ktestzhi (__A, __B);
72}
73
74extern __inline unsigned char
75__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
76_ktestc_mask16_u8 (__mmask16 __A, __mmask16 __B)
77{
78 return (unsigned char) __builtin_ia32_ktestchi (__A, __B);
79}
80
81extern __inline unsigned char
82__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
83_kortest_mask8_u8 (__mmask8 __A, __mmask8 __B, unsigned char *__CF)
84{
85 *__CF = (unsigned char) __builtin_ia32_kortestcqi (__A, __B);
86 return (unsigned char) __builtin_ia32_kortestzqi (__A, __B);
87}
88
89extern __inline unsigned char
90__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
91_kortestz_mask8_u8 (__mmask8 __A, __mmask8 __B)
92{
93 return (unsigned char) __builtin_ia32_kortestzqi (__A, __B);
94}
95
96extern __inline unsigned char
97__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
98_kortestc_mask8_u8 (__mmask8 __A, __mmask8 __B)
99{
100 return (unsigned char) __builtin_ia32_kortestcqi (__A, __B);
101}
102
103extern __inline __mmask8
104__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
105_kadd_mask8 (__mmask8 __A, __mmask8 __B)
106{
107 return (__mmask8) __builtin_ia32_kaddqi ((__mmask8) __A, (__mmask8) __B);
108}
109
110extern __inline __mmask16
111__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
112_kadd_mask16 (__mmask16 __A, __mmask16 __B)
113{
114 return (__mmask16) __builtin_ia32_kaddhi ((__mmask16) __A, (__mmask16) __B);
115}
116
117extern __inline unsigned int
118__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
119_cvtmask8_u32 (__mmask8 __A)
120{
121 return (unsigned int) __builtin_ia32_kmovb ((__mmask8 ) __A);
122}
123
124extern __inline __mmask8
125__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
126_cvtu32_mask8 (unsigned int __A)
127{
128 return (__mmask8) __builtin_ia32_kmovb ((__mmask8) __A);
129}
130
131extern __inline __mmask8
132__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
133_load_mask8 (__mmask8 *__A)
134{
135 return (__mmask8) __builtin_ia32_kmovb (*(__mmask8 *) __A);
136}
137
138extern __inline void
139__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
140_store_mask8 (__mmask8 *__A, __mmask8 __B)
141{
142 *(__mmask8 *) __A = __builtin_ia32_kmovb (__B);
143}
144
145extern __inline __mmask8
146__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
147_knot_mask8 (__mmask8 __A)
148{
149 return (__mmask8) __builtin_ia32_knotqi ((__mmask8) __A);
150}
151
152extern __inline __mmask8
153__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
154_kor_mask8 (__mmask8 __A, __mmask8 __B)
155{
156 return (__mmask8) __builtin_ia32_korqi ((__mmask8) __A, (__mmask8) __B);
157}
158
159extern __inline __mmask8
160__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
161_kxnor_mask8 (__mmask8 __A, __mmask8 __B)
162{
163 return (__mmask8) __builtin_ia32_kxnorqi ((__mmask8) __A, (__mmask8) __B);
164}
165
166extern __inline __mmask8
167__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
168_kxor_mask8 (__mmask8 __A, __mmask8 __B)
169{
170 return (__mmask8) __builtin_ia32_kxorqi ((__mmask8) __A, (__mmask8) __B);
171}
172
173extern __inline __mmask8
174__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
175_kand_mask8 (__mmask8 __A, __mmask8 __B)
176{
177 return (__mmask8) __builtin_ia32_kandqi ((__mmask8) __A, (__mmask8) __B);
178}
179
180extern __inline __mmask8
181__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
182_kandn_mask8 (__mmask8 __A, __mmask8 __B)
183{
184 return (__mmask8) __builtin_ia32_kandnqi ((__mmask8) __A, (__mmask8) __B);
185}
186
187extern __inline __m512d
188__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
189_mm512_broadcast_f64x2 (__m128d __A)
190{
191 return (__m512d)
192 __builtin_ia32_broadcastf64x2_512_mask ((__v2df) __A,
193 _mm512_undefined_pd (),
194 (__mmask8) -1);
195}
196
197extern __inline __m512d
198__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
199_mm512_mask_broadcast_f64x2 (__m512d __O, __mmask8 __M, __m128d __A)
200{
201 return (__m512d) __builtin_ia32_broadcastf64x2_512_mask ((__v2df)
202 __A,
203 (__v8df)
204 __O, __M);
205}
206
207extern __inline __m512d
208__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
209_mm512_maskz_broadcast_f64x2 (__mmask8 __M, __m128d __A)
210{
211 return (__m512d) __builtin_ia32_broadcastf64x2_512_mask ((__v2df)
212 __A,
213 (__v8df)
214 _mm512_setzero_ps (),
215 __M);
216}
217
218extern __inline __m512i
219__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
220_mm512_broadcast_i64x2 (__m128i __A)
221{
222 return (__m512i)
223 __builtin_ia32_broadcasti64x2_512_mask ((__v2di) __A,
224 _mm512_undefined_epi32 (),
225 (__mmask8) -1);
226}
227
228extern __inline __m512i
229__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
230_mm512_mask_broadcast_i64x2 (__m512i __O, __mmask8 __M, __m128i __A)
231{
232 return (__m512i) __builtin_ia32_broadcasti64x2_512_mask ((__v2di)
233 __A,
234 (__v8di)
235 __O, __M);
236}
237
238extern __inline __m512i
239__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
240_mm512_maskz_broadcast_i64x2 (__mmask8 __M, __m128i __A)
241{
242 return (__m512i) __builtin_ia32_broadcasti64x2_512_mask ((__v2di)
243 __A,
244 (__v8di)
245 _mm512_setzero_si512 (),
246 __M);
247}
248
249extern __inline __m512
250__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
251_mm512_broadcast_f32x2 (__m128 __A)
252{
253 return (__m512)
254 __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A,
255 (__v16sf)_mm512_undefined_ps (),
256 (__mmask16) -1);
257}
258
259extern __inline __m512
260__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
261_mm512_mask_broadcast_f32x2 (__m512 __O, __mmask16 __M, __m128 __A)
262{
263 return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A,
264 (__v16sf)
265 __O, __M);
266}
267
268extern __inline __m512
269__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
270_mm512_maskz_broadcast_f32x2 (__mmask16 __M, __m128 __A)
271{
272 return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A,
273 (__v16sf)
274 _mm512_setzero_ps (),
275 __M);
276}
277
278extern __inline __m512i
279__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
280_mm512_broadcast_i32x2 (__m128i __A)
281{
282 return (__m512i)
283 __builtin_ia32_broadcasti32x2_512_mask ((__v4si) __A,
284 (__v16si)
285 _mm512_undefined_epi32 (),
286 (__mmask16) -1);
287}
288
289extern __inline __m512i
290__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
291_mm512_mask_broadcast_i32x2 (__m512i __O, __mmask16 __M, __m128i __A)
292{
293 return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si)
294 __A,
295 (__v16si)
296 __O, __M);
297}
298
299extern __inline __m512i
300__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
301_mm512_maskz_broadcast_i32x2 (__mmask16 __M, __m128i __A)
302{
303 return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si)
304 __A,
305 (__v16si)
306 _mm512_setzero_si512 (),
307 __M);
308}
309
310extern __inline __m512
311__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
312_mm512_broadcast_f32x8 (__m256 __A)
313{
314 return (__m512)
315 __builtin_ia32_broadcastf32x8_512_mask ((__v8sf) __A,
316 _mm512_undefined_ps (),
317 (__mmask16) -1);
318}
319
320extern __inline __m512
321__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
322_mm512_mask_broadcast_f32x8 (__m512 __O, __mmask16 __M, __m256 __A)
323{
324 return (__m512) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf) __A,
325 (__v16sf)__O,
326 __M);
327}
328
329extern __inline __m512
330__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
331_mm512_maskz_broadcast_f32x8 (__mmask16 __M, __m256 __A)
332{
333 return (__m512) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf) __A,
334 (__v16sf)
335 _mm512_setzero_ps (),
336 __M);
337}
338
339extern __inline __m512i
340__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
341_mm512_broadcast_i32x8 (__m256i __A)
342{
343 return (__m512i)
344 __builtin_ia32_broadcasti32x8_512_mask ((__v8si) __A,
345 (__v16si)
346 _mm512_undefined_epi32 (),
347 (__mmask16) -1);
348}
349
350extern __inline __m512i
351__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
352_mm512_mask_broadcast_i32x8 (__m512i __O, __mmask16 __M, __m256i __A)
353{
354 return (__m512i) __builtin_ia32_broadcasti32x8_512_mask ((__v8si)
355 __A,
356 (__v16si)__O,
357 __M);
358}
359
360extern __inline __m512i
361__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
362_mm512_maskz_broadcast_i32x8 (__mmask16 __M, __m256i __A)
363{
364 return (__m512i) __builtin_ia32_broadcasti32x8_512_mask ((__v8si)
365 __A,
366 (__v16si)
367 _mm512_setzero_si512 (),
368 __M);
369}
370
371extern __inline __m512i
372__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
373_mm512_mullo_epi64 (__m512i __A, __m512i __B)
374{
375 return (__m512i) ((__v8du) __A * (__v8du) __B);
376}
377
378extern __inline __m512i
379__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
380_mm512_mask_mullo_epi64 (__m512i __W, __mmask8 __U, __m512i __A,
381 __m512i __B)
382{
383 return (__m512i) __builtin_ia32_pmullq512_mask ((__v8di) __A,
384 (__v8di) __B,
385 (__v8di) __W,
386 (__mmask8) __U);
387}
388
389extern __inline __m512i
390__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
391_mm512_maskz_mullo_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
392{
393 return (__m512i) __builtin_ia32_pmullq512_mask ((__v8di) __A,
394 (__v8di) __B,
395 (__v8di)
396 _mm512_setzero_si512 (),
397 (__mmask8) __U);
398}
399
400extern __inline __m512d
401__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
402_mm512_xor_pd (__m512d __A, __m512d __B)
403{
404 return (__m512d) __builtin_ia32_xorpd512_mask ((__v8df) __A,
405 (__v8df) __B,
406 (__v8df)
407 _mm512_setzero_pd (),
408 (__mmask8) -1);
409}
410
411extern __inline __m512d
412__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
413_mm512_mask_xor_pd (__m512d __W, __mmask8 __U, __m512d __A,
414 __m512d __B)
415{
416 return (__m512d) __builtin_ia32_xorpd512_mask ((__v8df) __A,
417 (__v8df) __B,
418 (__v8df) __W,
419 (__mmask8) __U);
420}
421
422extern __inline __m512d
423__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
424_mm512_maskz_xor_pd (__mmask8 __U, __m512d __A, __m512d __B)
425{
426 return (__m512d) __builtin_ia32_xorpd512_mask ((__v8df) __A,
427 (__v8df) __B,
428 (__v8df)
429 _mm512_setzero_pd (),
430 (__mmask8) __U);
431}
432
433extern __inline __m512
434__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
435_mm512_xor_ps (__m512 __A, __m512 __B)
436{
437 return (__m512) __builtin_ia32_xorps512_mask ((__v16sf) __A,
438 (__v16sf) __B,
439 (__v16sf)
440 _mm512_setzero_ps (),
441 (__mmask16) -1);
442}
443
444extern __inline __m512
445__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
446_mm512_mask_xor_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
447{
448 return (__m512) __builtin_ia32_xorps512_mask ((__v16sf) __A,
449 (__v16sf) __B,
450 (__v16sf) __W,
451 (__mmask16) __U);
452}
453
454extern __inline __m512
455__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
456_mm512_maskz_xor_ps (__mmask16 __U, __m512 __A, __m512 __B)
457{
458 return (__m512) __builtin_ia32_xorps512_mask ((__v16sf) __A,
459 (__v16sf) __B,
460 (__v16sf)
461 _mm512_setzero_ps (),
462 (__mmask16) __U);
463}
464
465extern __inline __m512d
466__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
467_mm512_or_pd (__m512d __A, __m512d __B)
468{
469 return (__m512d) __builtin_ia32_orpd512_mask ((__v8df) __A,
470 (__v8df) __B,
471 (__v8df)
472 _mm512_setzero_pd (),
473 (__mmask8) -1);
474}
475
476extern __inline __m512d
477__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
478_mm512_mask_or_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
479{
480 return (__m512d) __builtin_ia32_orpd512_mask ((__v8df) __A,
481 (__v8df) __B,
482 (__v8df) __W,
483 (__mmask8) __U);
484}
485
486extern __inline __m512d
487__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
488_mm512_maskz_or_pd (__mmask8 __U, __m512d __A, __m512d __B)
489{
490 return (__m512d) __builtin_ia32_orpd512_mask ((__v8df) __A,
491 (__v8df) __B,
492 (__v8df)
493 _mm512_setzero_pd (),
494 (__mmask8) __U);
495}
496
497extern __inline __m512
498__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
499_mm512_or_ps (__m512 __A, __m512 __B)
500{
501 return (__m512) __builtin_ia32_orps512_mask ((__v16sf) __A,
502 (__v16sf) __B,
503 (__v16sf)
504 _mm512_setzero_ps (),
505 (__mmask16) -1);
506}
507
508extern __inline __m512
509__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
510_mm512_mask_or_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
511{
512 return (__m512) __builtin_ia32_orps512_mask ((__v16sf) __A,
513 (__v16sf) __B,
514 (__v16sf) __W,
515 (__mmask16) __U);
516}
517
518extern __inline __m512
519__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
520_mm512_maskz_or_ps (__mmask16 __U, __m512 __A, __m512 __B)
521{
522 return (__m512) __builtin_ia32_orps512_mask ((__v16sf) __A,
523 (__v16sf) __B,
524 (__v16sf)
525 _mm512_setzero_ps (),
526 (__mmask16) __U);
527}
528
529extern __inline __m512d
530__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
531_mm512_and_pd (__m512d __A, __m512d __B)
532{
533 return (__m512d) __builtin_ia32_andpd512_mask ((__v8df) __A,
534 (__v8df) __B,
535 (__v8df)
536 _mm512_setzero_pd (),
537 (__mmask8) -1);
538}
539
540extern __inline __m512d
541__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
542_mm512_mask_and_pd (__m512d __W, __mmask8 __U, __m512d __A,
543 __m512d __B)
544{
545 return (__m512d) __builtin_ia32_andpd512_mask ((__v8df) __A,
546 (__v8df) __B,
547 (__v8df) __W,
548 (__mmask8) __U);
549}
550
551extern __inline __m512d
552__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
553_mm512_maskz_and_pd (__mmask8 __U, __m512d __A, __m512d __B)
554{
555 return (__m512d) __builtin_ia32_andpd512_mask ((__v8df) __A,
556 (__v8df) __B,
557 (__v8df)
558 _mm512_setzero_pd (),
559 (__mmask8) __U);
560}
561
562extern __inline __m512
563__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
564_mm512_and_ps (__m512 __A, __m512 __B)
565{
566 return (__m512) __builtin_ia32_andps512_mask ((__v16sf) __A,
567 (__v16sf) __B,
568 (__v16sf)
569 _mm512_setzero_ps (),
570 (__mmask16) -1);
571}
572
573extern __inline __m512
574__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
575_mm512_mask_and_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
576{
577 return (__m512) __builtin_ia32_andps512_mask ((__v16sf) __A,
578 (__v16sf) __B,
579 (__v16sf) __W,
580 (__mmask16) __U);
581}
582
583extern __inline __m512
584__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
585_mm512_maskz_and_ps (__mmask16 __U, __m512 __A, __m512 __B)
586{
587 return (__m512) __builtin_ia32_andps512_mask ((__v16sf) __A,
588 (__v16sf) __B,
589 (__v16sf)
590 _mm512_setzero_ps (),
591 (__mmask16) __U);
592}
593
594extern __inline __m512d
595__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
596_mm512_andnot_pd (__m512d __A, __m512d __B)
597{
598 return (__m512d) __builtin_ia32_andnpd512_mask ((__v8df) __A,
599 (__v8df) __B,
600 (__v8df)
601 _mm512_setzero_pd (),
602 (__mmask8) -1);
603}
604
605extern __inline __m512d
606__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
607_mm512_mask_andnot_pd (__m512d __W, __mmask8 __U, __m512d __A,
608 __m512d __B)
609{
610 return (__m512d) __builtin_ia32_andnpd512_mask ((__v8df) __A,
611 (__v8df) __B,
612 (__v8df) __W,
613 (__mmask8) __U);
614}
615
616extern __inline __m512d
617__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
618_mm512_maskz_andnot_pd (__mmask8 __U, __m512d __A, __m512d __B)
619{
620 return (__m512d) __builtin_ia32_andnpd512_mask ((__v8df) __A,
621 (__v8df) __B,
622 (__v8df)
623 _mm512_setzero_pd (),
624 (__mmask8) __U);
625}
626
627extern __inline __m512
628__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
629_mm512_andnot_ps (__m512 __A, __m512 __B)
630{
631 return (__m512) __builtin_ia32_andnps512_mask ((__v16sf) __A,
632 (__v16sf) __B,
633 (__v16sf)
634 _mm512_setzero_ps (),
635 (__mmask16) -1);
636}
637
638extern __inline __m512
639__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
640_mm512_mask_andnot_ps (__m512 __W, __mmask16 __U, __m512 __A,
641 __m512 __B)
642{
643 return (__m512) __builtin_ia32_andnps512_mask ((__v16sf) __A,
644 (__v16sf) __B,
645 (__v16sf) __W,
646 (__mmask16) __U);
647}
648
649extern __inline __m512
650__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
651_mm512_maskz_andnot_ps (__mmask16 __U, __m512 __A, __m512 __B)
652{
653 return (__m512) __builtin_ia32_andnps512_mask ((__v16sf) __A,
654 (__v16sf) __B,
655 (__v16sf)
656 _mm512_setzero_ps (),
657 (__mmask16) __U);
658}
659
660extern __inline __mmask16
661__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
662_mm512_movepi32_mask (__m512i __A)
663{
664 return (__mmask16) __builtin_ia32_cvtd2mask512 ((__v16si) __A);
665}
666
667extern __inline __mmask8
668__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
669_mm512_movepi64_mask (__m512i __A)
670{
671 return (__mmask8) __builtin_ia32_cvtq2mask512 ((__v8di) __A);
672}
673
674extern __inline __m512i
675__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
676_mm512_movm_epi32 (__mmask16 __A)
677{
678 return (__m512i) __builtin_ia32_cvtmask2d512 (__A);
679}
680
681extern __inline __m512i
682__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
683_mm512_movm_epi64 (__mmask8 __A)
684{
685 return (__m512i) __builtin_ia32_cvtmask2q512 (__A);
686}
687
688extern __inline __m512i
689__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
690_mm512_cvttpd_epi64 (__m512d __A)
691{
692 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
693 (__v8di)
694 _mm512_setzero_si512 (),
695 (__mmask8) -1,
696 _MM_FROUND_CUR_DIRECTION);
697}
698
699extern __inline __m512i
700__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
701_mm512_mask_cvttpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A)
702{
703 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
704 (__v8di) __W,
705 (__mmask8) __U,
706 _MM_FROUND_CUR_DIRECTION);
707}
708
709extern __inline __m512i
710__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
711_mm512_maskz_cvttpd_epi64 (__mmask8 __U, __m512d __A)
712{
713 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
714 (__v8di)
715 _mm512_setzero_si512 (),
716 (__mmask8) __U,
717 _MM_FROUND_CUR_DIRECTION);
718}
719
720extern __inline __m512i
721__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
722_mm512_cvttpd_epu64 (__m512d __A)
723{
724 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
725 (__v8di)
726 _mm512_setzero_si512 (),
727 (__mmask8) -1,
728 _MM_FROUND_CUR_DIRECTION);
729}
730
731extern __inline __m512i
732__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
733_mm512_mask_cvttpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A)
734{
735 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
736 (__v8di) __W,
737 (__mmask8) __U,
738 _MM_FROUND_CUR_DIRECTION);
739}
740
741extern __inline __m512i
742__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
743_mm512_maskz_cvttpd_epu64 (__mmask8 __U, __m512d __A)
744{
745 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
746 (__v8di)
747 _mm512_setzero_si512 (),
748 (__mmask8) __U,
749 _MM_FROUND_CUR_DIRECTION);
750}
751
752extern __inline __m512i
753__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
754_mm512_cvttps_epi64 (__m256 __A)
755{
756 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
757 (__v8di)
758 _mm512_setzero_si512 (),
759 (__mmask8) -1,
760 _MM_FROUND_CUR_DIRECTION);
761}
762
763extern __inline __m512i
764__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
765_mm512_mask_cvttps_epi64 (__m512i __W, __mmask8 __U, __m256 __A)
766{
767 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
768 (__v8di) __W,
769 (__mmask8) __U,
770 _MM_FROUND_CUR_DIRECTION);
771}
772
773extern __inline __m512i
774__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
775_mm512_maskz_cvttps_epi64 (__mmask8 __U, __m256 __A)
776{
777 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
778 (__v8di)
779 _mm512_setzero_si512 (),
780 (__mmask8) __U,
781 _MM_FROUND_CUR_DIRECTION);
782}
783
784extern __inline __m512i
785__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
786_mm512_cvttps_epu64 (__m256 __A)
787{
788 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
789 (__v8di)
790 _mm512_setzero_si512 (),
791 (__mmask8) -1,
792 _MM_FROUND_CUR_DIRECTION);
793}
794
795extern __inline __m512i
796__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
797_mm512_mask_cvttps_epu64 (__m512i __W, __mmask8 __U, __m256 __A)
798{
799 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
800 (__v8di) __W,
801 (__mmask8) __U,
802 _MM_FROUND_CUR_DIRECTION);
803}
804
805extern __inline __m512i
806__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
807_mm512_maskz_cvttps_epu64 (__mmask8 __U, __m256 __A)
808{
809 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
810 (__v8di)
811 _mm512_setzero_si512 (),
812 (__mmask8) __U,
813 _MM_FROUND_CUR_DIRECTION);
814}
815
816extern __inline __m512i
817__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
818_mm512_cvtpd_epi64 (__m512d __A)
819{
820 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
821 (__v8di)
822 _mm512_setzero_si512 (),
823 (__mmask8) -1,
824 _MM_FROUND_CUR_DIRECTION);
825}
826
827extern __inline __m512i
828__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
829_mm512_mask_cvtpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A)
830{
831 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
832 (__v8di) __W,
833 (__mmask8) __U,
834 _MM_FROUND_CUR_DIRECTION);
835}
836
837extern __inline __m512i
838__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
839_mm512_maskz_cvtpd_epi64 (__mmask8 __U, __m512d __A)
840{
841 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
842 (__v8di)
843 _mm512_setzero_si512 (),
844 (__mmask8) __U,
845 _MM_FROUND_CUR_DIRECTION);
846}
847
848extern __inline __m512i
849__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
850_mm512_cvtpd_epu64 (__m512d __A)
851{
852 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
853 (__v8di)
854 _mm512_setzero_si512 (),
855 (__mmask8) -1,
856 _MM_FROUND_CUR_DIRECTION);
857}
858
859extern __inline __m512i
860__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
861_mm512_mask_cvtpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A)
862{
863 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
864 (__v8di) __W,
865 (__mmask8) __U,
866 _MM_FROUND_CUR_DIRECTION);
867}
868
869extern __inline __m512i
870__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
871_mm512_maskz_cvtpd_epu64 (__mmask8 __U, __m512d __A)
872{
873 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
874 (__v8di)
875 _mm512_setzero_si512 (),
876 (__mmask8) __U,
877 _MM_FROUND_CUR_DIRECTION);
878}
879
880extern __inline __m512i
881__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
882_mm512_cvtps_epi64 (__m256 __A)
883{
884 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
885 (__v8di)
886 _mm512_setzero_si512 (),
887 (__mmask8) -1,
888 _MM_FROUND_CUR_DIRECTION);
889}
890
891extern __inline __m512i
892__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
893_mm512_mask_cvtps_epi64 (__m512i __W, __mmask8 __U, __m256 __A)
894{
895 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
896 (__v8di) __W,
897 (__mmask8) __U,
898 _MM_FROUND_CUR_DIRECTION);
899}
900
901extern __inline __m512i
902__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
903_mm512_maskz_cvtps_epi64 (__mmask8 __U, __m256 __A)
904{
905 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
906 (__v8di)
907 _mm512_setzero_si512 (),
908 (__mmask8) __U,
909 _MM_FROUND_CUR_DIRECTION);
910}
911
912extern __inline __m512i
913__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
914_mm512_cvtps_epu64 (__m256 __A)
915{
916 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
917 (__v8di)
918 _mm512_setzero_si512 (),
919 (__mmask8) -1,
920 _MM_FROUND_CUR_DIRECTION);
921}
922
923extern __inline __m512i
924__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
925_mm512_mask_cvtps_epu64 (__m512i __W, __mmask8 __U, __m256 __A)
926{
927 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
928 (__v8di) __W,
929 (__mmask8) __U,
930 _MM_FROUND_CUR_DIRECTION);
931}
932
933extern __inline __m512i
934__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
935_mm512_maskz_cvtps_epu64 (__mmask8 __U, __m256 __A)
936{
937 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
938 (__v8di)
939 _mm512_setzero_si512 (),
940 (__mmask8) __U,
941 _MM_FROUND_CUR_DIRECTION);
942}
943
944extern __inline __m256
945__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
946_mm512_cvtepi64_ps (__m512i __A)
947{
948 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
949 (__v8sf)
950 _mm256_setzero_ps (),
951 (__mmask8) -1,
952 _MM_FROUND_CUR_DIRECTION);
953}
954
955extern __inline __m256
956__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
957_mm512_mask_cvtepi64_ps (__m256 __W, __mmask8 __U, __m512i __A)
958{
959 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
960 (__v8sf) __W,
961 (__mmask8) __U,
962 _MM_FROUND_CUR_DIRECTION);
963}
964
965extern __inline __m256
966__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
967_mm512_maskz_cvtepi64_ps (__mmask8 __U, __m512i __A)
968{
969 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
970 (__v8sf)
971 _mm256_setzero_ps (),
972 (__mmask8) __U,
973 _MM_FROUND_CUR_DIRECTION);
974}
975
976extern __inline __m256
977__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
978_mm512_cvtepu64_ps (__m512i __A)
979{
980 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
981 (__v8sf)
982 _mm256_setzero_ps (),
983 (__mmask8) -1,
984 _MM_FROUND_CUR_DIRECTION);
985}
986
987extern __inline __m256
988__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
989_mm512_mask_cvtepu64_ps (__m256 __W, __mmask8 __U, __m512i __A)
990{
991 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
992 (__v8sf) __W,
993 (__mmask8) __U,
994 _MM_FROUND_CUR_DIRECTION);
995}
996
997extern __inline __m256
998__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
999_mm512_maskz_cvtepu64_ps (__mmask8 __U, __m512i __A)
1000{
1001 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
1002 (__v8sf)
1003 _mm256_setzero_ps (),
1004 (__mmask8) __U,
1005 _MM_FROUND_CUR_DIRECTION);
1006}
1007
1008extern __inline __m512d
1009__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1010_mm512_cvtepi64_pd (__m512i __A)
1011{
1012 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
1013 (__v8df)
1014 _mm512_setzero_pd (),
1015 (__mmask8) -1,
1016 _MM_FROUND_CUR_DIRECTION);
1017}
1018
1019extern __inline __m512d
1020__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1021_mm512_mask_cvtepi64_pd (__m512d __W, __mmask8 __U, __m512i __A)
1022{
1023 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
1024 (__v8df) __W,
1025 (__mmask8) __U,
1026 _MM_FROUND_CUR_DIRECTION);
1027}
1028
1029extern __inline __m512d
1030__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1031_mm512_maskz_cvtepi64_pd (__mmask8 __U, __m512i __A)
1032{
1033 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
1034 (__v8df)
1035 _mm512_setzero_pd (),
1036 (__mmask8) __U,
1037 _MM_FROUND_CUR_DIRECTION);
1038}
1039
1040extern __inline __m512d
1041__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1042_mm512_cvtepu64_pd (__m512i __A)
1043{
1044 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
1045 (__v8df)
1046 _mm512_setzero_pd (),
1047 (__mmask8) -1,
1048 _MM_FROUND_CUR_DIRECTION);
1049}
1050
1051extern __inline __m512d
1052__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1053_mm512_mask_cvtepu64_pd (__m512d __W, __mmask8 __U, __m512i __A)
1054{
1055 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
1056 (__v8df) __W,
1057 (__mmask8) __U,
1058 _MM_FROUND_CUR_DIRECTION);
1059}
1060
1061extern __inline __m512d
1062__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1063_mm512_maskz_cvtepu64_pd (__mmask8 __U, __m512i __A)
1064{
1065 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
1066 (__v8df)
1067 _mm512_setzero_pd (),
1068 (__mmask8) __U,
1069 _MM_FROUND_CUR_DIRECTION);
1070}
1071
1072#ifdef __OPTIMIZE__
1073extern __inline __mmask8
1074__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1075_kshiftli_mask8 (__mmask8 __A, unsigned int __B)
1076{
1077 return (__mmask8) __builtin_ia32_kshiftliqi ((__mmask8) __A, (__mmask8) __B);
1078}
1079
1080extern __inline __mmask8
1081__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1082_kshiftri_mask8 (__mmask8 __A, unsigned int __B)
1083{
1084 return (__mmask8) __builtin_ia32_kshiftriqi ((__mmask8) __A, (__mmask8) __B);
1085}
1086
1087extern __inline __m512d
1088__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1089_mm512_range_pd (__m512d __A, __m512d __B, int __C)
1090{
1091 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
1092 (__v8df) __B, __C,
1093 (__v8df)
1094 _mm512_setzero_pd (),
1095 (__mmask8) -1,
1096 _MM_FROUND_CUR_DIRECTION);
1097}
1098
1099extern __inline __m512d
1100__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1101_mm512_mask_range_pd (__m512d __W, __mmask8 __U,
1102 __m512d __A, __m512d __B, int __C)
1103{
1104 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
1105 (__v8df) __B, __C,
1106 (__v8df) __W,
1107 (__mmask8) __U,
1108 _MM_FROUND_CUR_DIRECTION);
1109}
1110
1111extern __inline __m512d
1112__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1113_mm512_maskz_range_pd (__mmask8 __U, __m512d __A, __m512d __B, int __C)
1114{
1115 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
1116 (__v8df) __B, __C,
1117 (__v8df)
1118 _mm512_setzero_pd (),
1119 (__mmask8) __U,
1120 _MM_FROUND_CUR_DIRECTION);
1121}
1122
1123extern __inline __m512
1124__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1125_mm512_range_ps (__m512 __A, __m512 __B, int __C)
1126{
1127 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
1128 (__v16sf) __B, __C,
1129 (__v16sf)
1130 _mm512_setzero_ps (),
1131 (__mmask16) -1,
1132 _MM_FROUND_CUR_DIRECTION);
1133}
1134
1135extern __inline __m512
1136__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1137_mm512_mask_range_ps (__m512 __W, __mmask16 __U,
1138 __m512 __A, __m512 __B, int __C)
1139{
1140 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
1141 (__v16sf) __B, __C,
1142 (__v16sf) __W,
1143 (__mmask16) __U,
1144 _MM_FROUND_CUR_DIRECTION);
1145}
1146
1147extern __inline __m512
1148__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1149_mm512_maskz_range_ps (__mmask16 __U, __m512 __A, __m512 __B, int __C)
1150{
1151 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
1152 (__v16sf) __B, __C,
1153 (__v16sf)
1154 _mm512_setzero_ps (),
1155 (__mmask16) __U,
1156 _MM_FROUND_CUR_DIRECTION);
1157}
1158
1159extern __inline __m128d
1160__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1161_mm_reduce_sd (__m128d __A, __m128d __B, int __C)
1162{
1163 return (__m128d) __builtin_ia32_reducesd_mask ((__v2df) __A,
1164 (__v2df) __B, __C,
1165 (__v2df) _mm_setzero_pd (),
1166 (__mmask8) -1);
1167}
1168
1169extern __inline __m128d
1170__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1171_mm_mask_reduce_sd (__m128d __W, __mmask8 __U, __m128d __A,
1172 __m128d __B, int __C)
1173{
1174 return (__m128d) __builtin_ia32_reducesd_mask ((__v2df) __A,
1175 (__v2df) __B, __C,
1176 (__v2df) __W,
1177 (__mmask8) __U);
1178}
1179
1180extern __inline __m128d
1181__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1182_mm_maskz_reduce_sd (__mmask8 __U, __m128d __A, __m128d __B, int __C)
1183{
1184 return (__m128d) __builtin_ia32_reducesd_mask ((__v2df) __A,
1185 (__v2df) __B, __C,
1186 (__v2df) _mm_setzero_pd (),
1187 (__mmask8) __U);
1188}
1189
1190extern __inline __m128
1191__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1192_mm_reduce_ss (__m128 __A, __m128 __B, int __C)
1193{
1194 return (__m128) __builtin_ia32_reducess_mask ((__v4sf) __A,
1195 (__v4sf) __B, __C,
1196 (__v4sf) _mm_setzero_ps (),
1197 (__mmask8) -1);
1198}
1199
1200
1201extern __inline __m128
1202__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1203_mm_mask_reduce_ss (__m128 __W, __mmask8 __U, __m128 __A,
1204 __m128 __B, int __C)
1205{
1206 return (__m128) __builtin_ia32_reducess_mask ((__v4sf) __A,
1207 (__v4sf) __B, __C,
1208 (__v4sf) __W,
1209 (__mmask8) __U);
1210}
1211
1212extern __inline __m128
1213__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1214_mm_maskz_reduce_ss (__mmask8 __U, __m128 __A, __m128 __B, int __C)
1215{
1216 return (__m128) __builtin_ia32_reducess_mask ((__v4sf) __A,
1217 (__v4sf) __B, __C,
1218 (__v4sf) _mm_setzero_ps (),
1219 (__mmask8) __U);
1220}
1221
1222extern __inline __m128d
1223__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1224_mm_range_sd (__m128d __A, __m128d __B, int __C)
1225{
1226 return (__m128d) __builtin_ia32_rangesd128_round ((__v2df) __A,
1227 (__v2df) __B, __C,
1228 _MM_FROUND_CUR_DIRECTION);
1229}
1230
1231
1232extern __inline __m128
1233__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1234_mm_range_ss (__m128 __A, __m128 __B, int __C)
1235{
1236 return (__m128) __builtin_ia32_rangess128_round ((__v4sf) __A,
1237 (__v4sf) __B, __C,
1238 _MM_FROUND_CUR_DIRECTION);
1239}
1240
1241extern __inline __m128d
1242__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1243_mm_range_round_sd (__m128d __A, __m128d __B, int __C, const int __R)
1244{
1245 return (__m128d) __builtin_ia32_rangesd128_round ((__v2df) __A,
1246 (__v2df) __B, __C,
1247 __R);
1248}
1249
1250extern __inline __m128
1251__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1252_mm_range_round_ss (__m128 __A, __m128 __B, int __C, const int __R)
1253{
1254 return (__m128) __builtin_ia32_rangess128_round ((__v4sf) __A,
1255 (__v4sf) __B, __C,
1256 __R);
1257}
1258
1259extern __inline __mmask8
1260__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1261_mm_fpclass_ss_mask (__m128 __A, const int __imm)
1262{
1263 return (__mmask8) __builtin_ia32_fpclassss ((__v4sf) __A, __imm);
1264}
1265
1266extern __inline __mmask8
1267__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1268_mm_fpclass_sd_mask (__m128d __A, const int __imm)
1269{
1270 return (__mmask8) __builtin_ia32_fpclasssd ((__v2df) __A, __imm);
1271}
1272
1273extern __inline __m512i
1274__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1275_mm512_cvtt_roundpd_epi64 (__m512d __A, const int __R)
1276{
1277 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
1278 (__v8di)
1279 _mm512_setzero_si512 (),
1280 (__mmask8) -1,
1281 __R);
1282}
1283
1284extern __inline __m512i
1285__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1286_mm512_mask_cvtt_roundpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A,
1287 const int __R)
1288{
1289 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
1290 (__v8di) __W,
1291 (__mmask8) __U,
1292 __R);
1293}
1294
1295extern __inline __m512i
1296__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1297_mm512_maskz_cvtt_roundpd_epi64 (__mmask8 __U, __m512d __A,
1298 const int __R)
1299{
1300 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
1301 (__v8di)
1302 _mm512_setzero_si512 (),
1303 (__mmask8) __U,
1304 __R);
1305}
1306
1307extern __inline __m512i
1308__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1309_mm512_cvtt_roundpd_epu64 (__m512d __A, const int __R)
1310{
1311 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
1312 (__v8di)
1313 _mm512_setzero_si512 (),
1314 (__mmask8) -1,
1315 __R);
1316}
1317
1318extern __inline __m512i
1319__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1320_mm512_mask_cvtt_roundpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A,
1321 const int __R)
1322{
1323 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
1324 (__v8di) __W,
1325 (__mmask8) __U,
1326 __R);
1327}
1328
1329extern __inline __m512i
1330__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1331_mm512_maskz_cvtt_roundpd_epu64 (__mmask8 __U, __m512d __A,
1332 const int __R)
1333{
1334 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
1335 (__v8di)
1336 _mm512_setzero_si512 (),
1337 (__mmask8) __U,
1338 __R);
1339}
1340
1341extern __inline __m512i
1342__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1343_mm512_cvtt_roundps_epi64 (__m256 __A, const int __R)
1344{
1345 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
1346 (__v8di)
1347 _mm512_setzero_si512 (),
1348 (__mmask8) -1,
1349 __R);
1350}
1351
1352extern __inline __m512i
1353__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1354_mm512_mask_cvtt_roundps_epi64 (__m512i __W, __mmask8 __U, __m256 __A,
1355 const int __R)
1356{
1357 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
1358 (__v8di) __W,
1359 (__mmask8) __U,
1360 __R);
1361}
1362
1363extern __inline __m512i
1364__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1365_mm512_maskz_cvtt_roundps_epi64 (__mmask8 __U, __m256 __A,
1366 const int __R)
1367{
1368 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
1369 (__v8di)
1370 _mm512_setzero_si512 (),
1371 (__mmask8) __U,
1372 __R);
1373}
1374
1375extern __inline __m512i
1376__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1377_mm512_cvtt_roundps_epu64 (__m256 __A, const int __R)
1378{
1379 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
1380 (__v8di)
1381 _mm512_setzero_si512 (),
1382 (__mmask8) -1,
1383 __R);
1384}
1385
1386extern __inline __m512i
1387__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1388_mm512_mask_cvtt_roundps_epu64 (__m512i __W, __mmask8 __U, __m256 __A,
1389 const int __R)
1390{
1391 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
1392 (__v8di) __W,
1393 (__mmask8) __U,
1394 __R);
1395}
1396
1397extern __inline __m512i
1398__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1399_mm512_maskz_cvtt_roundps_epu64 (__mmask8 __U, __m256 __A,
1400 const int __R)
1401{
1402 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
1403 (__v8di)
1404 _mm512_setzero_si512 (),
1405 (__mmask8) __U,
1406 __R);
1407}
1408
1409extern __inline __m512i
1410__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1411_mm512_cvt_roundpd_epi64 (__m512d __A, const int __R)
1412{
1413 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
1414 (__v8di)
1415 _mm512_setzero_si512 (),
1416 (__mmask8) -1,
1417 __R);
1418}
1419
1420extern __inline __m512i
1421__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1422_mm512_mask_cvt_roundpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A,
1423 const int __R)
1424{
1425 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
1426 (__v8di) __W,
1427 (__mmask8) __U,
1428 __R);
1429}
1430
1431extern __inline __m512i
1432__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1433_mm512_maskz_cvt_roundpd_epi64 (__mmask8 __U, __m512d __A,
1434 const int __R)
1435{
1436 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
1437 (__v8di)
1438 _mm512_setzero_si512 (),
1439 (__mmask8) __U,
1440 __R);
1441}
1442
1443extern __inline __m512i
1444__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1445_mm512_cvt_roundpd_epu64 (__m512d __A, const int __R)
1446{
1447 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
1448 (__v8di)
1449 _mm512_setzero_si512 (),
1450 (__mmask8) -1,
1451 __R);
1452}
1453
1454extern __inline __m512i
1455__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1456_mm512_mask_cvt_roundpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A,
1457 const int __R)
1458{
1459 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
1460 (__v8di) __W,
1461 (__mmask8) __U,
1462 __R);
1463}
1464
1465extern __inline __m512i
1466__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1467_mm512_maskz_cvt_roundpd_epu64 (__mmask8 __U, __m512d __A,
1468 const int __R)
1469{
1470 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
1471 (__v8di)
1472 _mm512_setzero_si512 (),
1473 (__mmask8) __U,
1474 __R);
1475}
1476
1477extern __inline __m512i
1478__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1479_mm512_cvt_roundps_epi64 (__m256 __A, const int __R)
1480{
1481 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
1482 (__v8di)
1483 _mm512_setzero_si512 (),
1484 (__mmask8) -1,
1485 __R);
1486}
1487
1488extern __inline __m512i
1489__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1490_mm512_mask_cvt_roundps_epi64 (__m512i __W, __mmask8 __U, __m256 __A,
1491 const int __R)
1492{
1493 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
1494 (__v8di) __W,
1495 (__mmask8) __U,
1496 __R);
1497}
1498
1499extern __inline __m512i
1500__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1501_mm512_maskz_cvt_roundps_epi64 (__mmask8 __U, __m256 __A,
1502 const int __R)
1503{
1504 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
1505 (__v8di)
1506 _mm512_setzero_si512 (),
1507 (__mmask8) __U,
1508 __R);
1509}
1510
1511extern __inline __m512i
1512__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1513_mm512_cvt_roundps_epu64 (__m256 __A, const int __R)
1514{
1515 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
1516 (__v8di)
1517 _mm512_setzero_si512 (),
1518 (__mmask8) -1,
1519 __R);
1520}
1521
1522extern __inline __m512i
1523__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1524_mm512_mask_cvt_roundps_epu64 (__m512i __W, __mmask8 __U, __m256 __A,
1525 const int __R)
1526{
1527 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
1528 (__v8di) __W,
1529 (__mmask8) __U,
1530 __R);
1531}
1532
1533extern __inline __m512i
1534__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1535_mm512_maskz_cvt_roundps_epu64 (__mmask8 __U, __m256 __A,
1536 const int __R)
1537{
1538 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
1539 (__v8di)
1540 _mm512_setzero_si512 (),
1541 (__mmask8) __U,
1542 __R);
1543}
1544
1545extern __inline __m256
1546__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1547_mm512_cvt_roundepi64_ps (__m512i __A, const int __R)
1548{
1549 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
1550 (__v8sf)
1551 _mm256_setzero_ps (),
1552 (__mmask8) -1,
1553 __R);
1554}
1555
1556extern __inline __m256
1557__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1558_mm512_mask_cvt_roundepi64_ps (__m256 __W, __mmask8 __U, __m512i __A,
1559 const int __R)
1560{
1561 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
1562 (__v8sf) __W,
1563 (__mmask8) __U,
1564 __R);
1565}
1566
1567extern __inline __m256
1568__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1569_mm512_maskz_cvt_roundepi64_ps (__mmask8 __U, __m512i __A,
1570 const int __R)
1571{
1572 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
1573 (__v8sf)
1574 _mm256_setzero_ps (),
1575 (__mmask8) __U,
1576 __R);
1577}
1578
1579extern __inline __m256
1580__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1581_mm512_cvt_roundepu64_ps (__m512i __A, const int __R)
1582{
1583 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
1584 (__v8sf)
1585 _mm256_setzero_ps (),
1586 (__mmask8) -1,
1587 __R);
1588}
1589
1590extern __inline __m256
1591__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1592_mm512_mask_cvt_roundepu64_ps (__m256 __W, __mmask8 __U, __m512i __A,
1593 const int __R)
1594{
1595 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
1596 (__v8sf) __W,
1597 (__mmask8) __U,
1598 __R);
1599}
1600
1601extern __inline __m256
1602__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1603_mm512_maskz_cvt_roundepu64_ps (__mmask8 __U, __m512i __A,
1604 const int __R)
1605{
1606 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
1607 (__v8sf)
1608 _mm256_setzero_ps (),
1609 (__mmask8) __U,
1610 __R);
1611}
1612
1613extern __inline __m512d
1614__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1615_mm512_cvt_roundepi64_pd (__m512i __A, const int __R)
1616{
1617 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
1618 (__v8df)
1619 _mm512_setzero_pd (),
1620 (__mmask8) -1,
1621 __R);
1622}
1623
1624extern __inline __m512d
1625__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1626_mm512_mask_cvt_roundepi64_pd (__m512d __W, __mmask8 __U, __m512i __A,
1627 const int __R)
1628{
1629 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
1630 (__v8df) __W,
1631 (__mmask8) __U,
1632 __R);
1633}
1634
1635extern __inline __m512d
1636__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1637_mm512_maskz_cvt_roundepi64_pd (__mmask8 __U, __m512i __A,
1638 const int __R)
1639{
1640 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
1641 (__v8df)
1642 _mm512_setzero_pd (),
1643 (__mmask8) __U,
1644 __R);
1645}
1646
1647extern __inline __m512d
1648__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1649_mm512_cvt_roundepu64_pd (__m512i __A, const int __R)
1650{
1651 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
1652 (__v8df)
1653 _mm512_setzero_pd (),
1654 (__mmask8) -1,
1655 __R);
1656}
1657
1658extern __inline __m512d
1659__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1660_mm512_mask_cvt_roundepu64_pd (__m512d __W, __mmask8 __U, __m512i __A,
1661 const int __R)
1662{
1663 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
1664 (__v8df) __W,
1665 (__mmask8) __U,
1666 __R);
1667}
1668
1669extern __inline __m512d
1670__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1671_mm512_maskz_cvt_roundepu64_pd (__mmask8 __U, __m512i __A,
1672 const int __R)
1673{
1674 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
1675 (__v8df)
1676 _mm512_setzero_pd (),
1677 (__mmask8) __U,
1678 __R);
1679}
1680
1681extern __inline __m512d
1682__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1683_mm512_reduce_pd (__m512d __A, int __B)
1684{
1685 return (__m512d) __builtin_ia32_reducepd512_mask ((__v8df) __A, __B,
1686 (__v8df)
1687 _mm512_setzero_pd (),
1688 (__mmask8) -1);
1689}
1690
1691extern __inline __m512d
1692__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1693_mm512_mask_reduce_pd (__m512d __W, __mmask8 __U, __m512d __A, int __B)
1694{
1695 return (__m512d) __builtin_ia32_reducepd512_mask ((__v8df) __A, __B,
1696 (__v8df) __W,
1697 (__mmask8) __U);
1698}
1699
1700extern __inline __m512d
1701__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1702_mm512_maskz_reduce_pd (__mmask8 __U, __m512d __A, int __B)
1703{
1704 return (__m512d) __builtin_ia32_reducepd512_mask ((__v8df) __A, __B,
1705 (__v8df)
1706 _mm512_setzero_pd (),
1707 (__mmask8) __U);
1708}
1709
1710extern __inline __m512
1711__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1712_mm512_reduce_ps (__m512 __A, int __B)
1713{
1714 return (__m512) __builtin_ia32_reduceps512_mask ((__v16sf) __A, __B,
1715 (__v16sf)
1716 _mm512_setzero_ps (),
1717 (__mmask16) -1);
1718}
1719
1720extern __inline __m512
1721__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1722_mm512_mask_reduce_ps (__m512 __W, __mmask16 __U, __m512 __A, int __B)
1723{
1724 return (__m512) __builtin_ia32_reduceps512_mask ((__v16sf) __A, __B,
1725 (__v16sf) __W,
1726 (__mmask16) __U);
1727}
1728
1729extern __inline __m512
1730__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1731_mm512_maskz_reduce_ps (__mmask16 __U, __m512 __A, int __B)
1732{
1733 return (__m512) __builtin_ia32_reduceps512_mask ((__v16sf) __A, __B,
1734 (__v16sf)
1735 _mm512_setzero_ps (),
1736 (__mmask16) __U);
1737}
1738
1739extern __inline __m256
1740__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1741_mm512_extractf32x8_ps (__m512 __A, const int __imm)
1742{
1743 return (__m256) __builtin_ia32_extractf32x8_mask ((__v16sf) __A,
1744 __imm,
1745 (__v8sf)
1746 _mm256_setzero_ps (),
1747 (__mmask8) -1);
1748}
1749
1750extern __inline __m256
1751__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1752_mm512_mask_extractf32x8_ps (__m256 __W, __mmask8 __U, __m512 __A,
1753 const int __imm)
1754{
1755 return (__m256) __builtin_ia32_extractf32x8_mask ((__v16sf) __A,
1756 __imm,
1757 (__v8sf) __W,
1758 (__mmask8) __U);
1759}
1760
1761extern __inline __m256
1762__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1763_mm512_maskz_extractf32x8_ps (__mmask8 __U, __m512 __A,
1764 const int __imm)
1765{
1766 return (__m256) __builtin_ia32_extractf32x8_mask ((__v16sf) __A,
1767 __imm,
1768 (__v8sf)
1769 _mm256_setzero_ps (),
1770 (__mmask8) __U);
1771}
1772
1773extern __inline __m128d
1774__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1775_mm512_extractf64x2_pd (__m512d __A, const int __imm)
1776{
1777 return (__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df) __A,
1778 __imm,
1779 (__v2df)
1780 _mm_setzero_pd (),
1781 (__mmask8) -1);
1782}
1783
1784extern __inline __m128d
1785__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1786_mm512_mask_extractf64x2_pd (__m128d __W, __mmask8 __U, __m512d __A,
1787 const int __imm)
1788{
1789 return (__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df) __A,
1790 __imm,
1791 (__v2df) __W,
1792 (__mmask8)
1793 __U);
1794}
1795
1796extern __inline __m128d
1797__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1798_mm512_maskz_extractf64x2_pd (__mmask8 __U, __m512d __A,
1799 const int __imm)
1800{
1801 return (__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df) __A,
1802 __imm,
1803 (__v2df)
1804 _mm_setzero_pd (),
1805 (__mmask8)
1806 __U);
1807}
1808
1809extern __inline __m256i
1810__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1811_mm512_extracti32x8_epi32 (__m512i __A, const int __imm)
1812{
1813 return (__m256i) __builtin_ia32_extracti32x8_mask ((__v16si) __A,
1814 __imm,
1815 (__v8si)
1816 _mm256_setzero_si256 (),
1817 (__mmask8) -1);
1818}
1819
1820extern __inline __m256i
1821__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1822_mm512_mask_extracti32x8_epi32 (__m256i __W, __mmask8 __U, __m512i __A,
1823 const int __imm)
1824{
1825 return (__m256i) __builtin_ia32_extracti32x8_mask ((__v16si) __A,
1826 __imm,
1827 (__v8si) __W,
1828 (__mmask8) __U);
1829}
1830
1831extern __inline __m256i
1832__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1833_mm512_maskz_extracti32x8_epi32 (__mmask8 __U, __m512i __A,
1834 const int __imm)
1835{
1836 return (__m256i) __builtin_ia32_extracti32x8_mask ((__v16si) __A,
1837 __imm,
1838 (__v8si)
1839 _mm256_setzero_si256 (),
1840 (__mmask8) __U);
1841}
1842
1843extern __inline __m128i
1844__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1845_mm512_extracti64x2_epi64 (__m512i __A, const int __imm)
1846{
1847 return (__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di) __A,
1848 __imm,
1849 (__v2di)
1850 _mm_setzero_si128 (),
1851 (__mmask8) -1);
1852}
1853
1854extern __inline __m128i
1855__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1856_mm512_mask_extracti64x2_epi64 (__m128i __W, __mmask8 __U, __m512i __A,
1857 const int __imm)
1858{
1859 return (__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di) __A,
1860 __imm,
1861 (__v2di) __W,
1862 (__mmask8)
1863 __U);
1864}
1865
1866extern __inline __m128i
1867__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1868_mm512_maskz_extracti64x2_epi64 (__mmask8 __U, __m512i __A,
1869 const int __imm)
1870{
1871 return (__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di) __A,
1872 __imm,
1873 (__v2di)
1874 _mm_setzero_si128 (),
1875 (__mmask8)
1876 __U);
1877}
1878
1879extern __inline __m512d
1880__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1881_mm512_range_round_pd (__m512d __A, __m512d __B, int __C,
1882 const int __R)
1883{
1884 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
1885 (__v8df) __B, __C,
1886 (__v8df)
1887 _mm512_setzero_pd (),
1888 (__mmask8) -1,
1889 __R);
1890}
1891
1892extern __inline __m512d
1893__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1894_mm512_mask_range_round_pd (__m512d __W, __mmask8 __U,
1895 __m512d __A, __m512d __B, int __C,
1896 const int __R)
1897{
1898 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
1899 (__v8df) __B, __C,
1900 (__v8df) __W,
1901 (__mmask8) __U,
1902 __R);
1903}
1904
1905extern __inline __m512d
1906__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1907_mm512_maskz_range_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
1908 int __C, const int __R)
1909{
1910 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
1911 (__v8df) __B, __C,
1912 (__v8df)
1913 _mm512_setzero_pd (),
1914 (__mmask8) __U,
1915 __R);
1916}
1917
1918extern __inline __m512
1919__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1920_mm512_range_round_ps (__m512 __A, __m512 __B, int __C, const int __R)
1921{
1922 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
1923 (__v16sf) __B, __C,
1924 (__v16sf)
1925 _mm512_setzero_ps (),
1926 (__mmask16) -1,
1927 __R);
1928}
1929
1930extern __inline __m512
1931__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1932_mm512_mask_range_round_ps (__m512 __W, __mmask16 __U,
1933 __m512 __A, __m512 __B, int __C,
1934 const int __R)
1935{
1936 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
1937 (__v16sf) __B, __C,
1938 (__v16sf) __W,
1939 (__mmask16) __U,
1940 __R);
1941}
1942
1943extern __inline __m512
1944__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1945_mm512_maskz_range_round_ps (__mmask16 __U, __m512 __A, __m512 __B,
1946 int __C, const int __R)
1947{
1948 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
1949 (__v16sf) __B, __C,
1950 (__v16sf)
1951 _mm512_setzero_ps (),
1952 (__mmask16) __U,
1953 __R);
1954}
1955
1956extern __inline __m512i
1957__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1958_mm512_inserti32x8 (__m512i __A, __m256i __B, const int __imm)
1959{
1960 return (__m512i) __builtin_ia32_inserti32x8_mask ((__v16si) __A,
1961 (__v8si) __B,
1962 __imm,
1963 (__v16si)
1964 _mm512_setzero_si512 (),
1965 (__mmask16) -1);
1966}
1967
1968extern __inline __m512i
1969__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1970_mm512_mask_inserti32x8 (__m512i __W, __mmask16 __U, __m512i __A,
1971 __m256i __B, const int __imm)
1972{
1973 return (__m512i) __builtin_ia32_inserti32x8_mask ((__v16si) __A,
1974 (__v8si) __B,
1975 __imm,
1976 (__v16si) __W,
1977 (__mmask16) __U);
1978}
1979
1980extern __inline __m512i
1981__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1982_mm512_maskz_inserti32x8 (__mmask16 __U, __m512i __A, __m256i __B,
1983 const int __imm)
1984{
1985 return (__m512i) __builtin_ia32_inserti32x8_mask ((__v16si) __A,
1986 (__v8si) __B,
1987 __imm,
1988 (__v16si)
1989 _mm512_setzero_si512 (),
1990 (__mmask16) __U);
1991}
1992
1993extern __inline __m512
1994__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1995_mm512_insertf32x8 (__m512 __A, __m256 __B, const int __imm)
1996{
1997 return (__m512) __builtin_ia32_insertf32x8_mask ((__v16sf) __A,
1998 (__v8sf) __B,
1999 __imm,
2000 (__v16sf)
2001 _mm512_setzero_ps (),
2002 (__mmask16) -1);
2003}
2004
2005extern __inline __m512
2006__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2007_mm512_mask_insertf32x8 (__m512 __W, __mmask16 __U, __m512 __A,
2008 __m256 __B, const int __imm)
2009{
2010 return (__m512) __builtin_ia32_insertf32x8_mask ((__v16sf) __A,
2011 (__v8sf) __B,
2012 __imm,
2013 (__v16sf) __W,
2014 (__mmask16) __U);
2015}
2016
2017extern __inline __m512
2018__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2019_mm512_maskz_insertf32x8 (__mmask16 __U, __m512 __A, __m256 __B,
2020 const int __imm)
2021{
2022 return (__m512) __builtin_ia32_insertf32x8_mask ((__v16sf) __A,
2023 (__v8sf) __B,
2024 __imm,
2025 (__v16sf)
2026 _mm512_setzero_ps (),
2027 (__mmask16) __U);
2028}
2029
2030extern __inline __m512i
2031__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2032_mm512_inserti64x2 (__m512i __A, __m128i __B, const int __imm)
2033{
2034 return (__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di) __A,
2035 (__v2di) __B,
2036 __imm,
2037 (__v8di)
2038 _mm512_setzero_si512 (),
2039 (__mmask8) -1);
2040}
2041
2042extern __inline __m512i
2043__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2044_mm512_mask_inserti64x2 (__m512i __W, __mmask8 __U, __m512i __A,
2045 __m128i __B, const int __imm)
2046{
2047 return (__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di) __A,
2048 (__v2di) __B,
2049 __imm,
2050 (__v8di) __W,
2051 (__mmask8)
2052 __U);
2053}
2054
2055extern __inline __m512i
2056__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2057_mm512_maskz_inserti64x2 (__mmask8 __U, __m512i __A, __m128i __B,
2058 const int __imm)
2059{
2060 return (__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di) __A,
2061 (__v2di) __B,
2062 __imm,
2063 (__v8di)
2064 _mm512_setzero_si512 (),
2065 (__mmask8)
2066 __U);
2067}
2068
2069extern __inline __m512d
2070__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2071_mm512_insertf64x2 (__m512d __A, __m128d __B, const int __imm)
2072{
2073 return (__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df) __A,
2074 (__v2df) __B,
2075 __imm,
2076 (__v8df)
2077 _mm512_setzero_pd (),
2078 (__mmask8) -1);
2079}
2080
2081extern __inline __m512d
2082__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2083_mm512_mask_insertf64x2 (__m512d __W, __mmask8 __U, __m512d __A,
2084 __m128d __B, const int __imm)
2085{
2086 return (__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df) __A,
2087 (__v2df) __B,
2088 __imm,
2089 (__v8df) __W,
2090 (__mmask8)
2091 __U);
2092}
2093
2094extern __inline __m512d
2095__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2096_mm512_maskz_insertf64x2 (__mmask8 __U, __m512d __A, __m128d __B,
2097 const int __imm)
2098{
2099 return (__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df) __A,
2100 (__v2df) __B,
2101 __imm,
2102 (__v8df)
2103 _mm512_setzero_pd (),
2104 (__mmask8)
2105 __U);
2106}
2107
2108extern __inline __mmask8
2109__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2110_mm512_mask_fpclass_pd_mask (__mmask8 __U, __m512d __A,
2111 const int __imm)
2112{
2113 return (__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) __A,
2114 __imm, __U);
2115}
2116
2117extern __inline __mmask8
2118__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2119_mm512_fpclass_pd_mask (__m512d __A, const int __imm)
2120{
2121 return (__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) __A,
2122 __imm,
2123 (__mmask8) -1);
2124}
2125
2126extern __inline __mmask16
2127__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2128_mm512_mask_fpclass_ps_mask (__mmask16 __U, __m512 __A,
2129 const int __imm)
2130{
2131 return (__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) __A,
2132 __imm, __U);
2133}
2134
2135extern __inline __mmask16
2136__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2137_mm512_fpclass_ps_mask (__m512 __A, const int __imm)
2138{
2139 return (__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) __A,
2140 __imm,
2141 (__mmask16) -1);
2142}
2143
2144#else
2145#define _kshiftli_mask8(X, Y) \
2146 ((__mmask8) __builtin_ia32_kshiftliqi ((__mmask8)(X), (__mmask8)(Y)))
2147
2148#define _kshiftri_mask8(X, Y) \
2149 ((__mmask8) __builtin_ia32_kshiftriqi ((__mmask8)(X), (__mmask8)(Y)))
2150
2151#define _mm_range_sd(A, B, C) \
2152 ((__m128d) __builtin_ia32_rangesd128_round ((__v2df)(__m128d)(A), \
2153 (__v2df)(__m128d)(B), (int)(C), \
2154 _MM_FROUND_CUR_DIRECTION))
2155
2156#define _mm_range_ss(A, B, C) \
2157 ((__m128) __builtin_ia32_rangess128_round ((__v4sf)(__m128)(A), \
2158 (__v4sf)(__m128)(B), (int)(C), \
2159 _MM_FROUND_CUR_DIRECTION))
2160
2161#define _mm_range_round_sd(A, B, C, R) \
2162 ((__m128d) __builtin_ia32_rangesd128_round ((__v2df)(__m128d)(A), \
2163 (__v2df)(__m128d)(B), (int)(C), (R)))
2164
2165#define _mm_range_round_ss(A, B, C, R) \
2166 ((__m128) __builtin_ia32_rangess128_round ((__v4sf)(__m128)(A), \
2167 (__v4sf)(__m128)(B), (int)(C), (R)))
2168
2169#define _mm512_cvtt_roundpd_epi64(A, B) \
2170 ((__m512i)__builtin_ia32_cvttpd2qq512_mask ((A), (__v8di) \
2171 _mm512_setzero_si512 (), \
2172 -1, (B)))
2173
2174#define _mm512_mask_cvtt_roundpd_epi64(W, U, A, B) \
2175 ((__m512i)__builtin_ia32_cvttpd2qq512_mask ((A), (__v8di)(W), (U), (B)))
2176
2177#define _mm512_maskz_cvtt_roundpd_epi64(U, A, B) \
2178 ((__m512i)__builtin_ia32_cvttpd2qq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2179
2180#define _mm512_cvtt_roundpd_epu64(A, B) \
2181 ((__m512i)__builtin_ia32_cvttpd2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
2182
2183#define _mm512_mask_cvtt_roundpd_epu64(W, U, A, B) \
2184 ((__m512i)__builtin_ia32_cvttpd2uqq512_mask ((A), (__v8di)(W), (U), (B)))
2185
2186#define _mm512_maskz_cvtt_roundpd_epu64(U, A, B) \
2187 ((__m512i)__builtin_ia32_cvttpd2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2188
2189#define _mm512_cvtt_roundps_epi64(A, B) \
2190 ((__m512i)__builtin_ia32_cvttps2qq512_mask ((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
2191
2192#define _mm512_mask_cvtt_roundps_epi64(W, U, A, B) \
2193 ((__m512i)__builtin_ia32_cvttps2qq512_mask ((A), (__v8di)(W), (U), (B)))
2194
2195#define _mm512_maskz_cvtt_roundps_epi64(U, A, B) \
2196 ((__m512i)__builtin_ia32_cvttps2qq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2197
2198#define _mm512_cvtt_roundps_epu64(A, B) \
2199 ((__m512i)__builtin_ia32_cvttps2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
2200
2201#define _mm512_mask_cvtt_roundps_epu64(W, U, A, B) \
2202 ((__m512i)__builtin_ia32_cvttps2uqq512_mask ((A), (__v8di)(W), (U), (B)))
2203
2204#define _mm512_maskz_cvtt_roundps_epu64(U, A, B) \
2205 ((__m512i)__builtin_ia32_cvttps2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2206
2207#define _mm512_cvt_roundpd_epi64(A, B) \
2208 ((__m512i)__builtin_ia32_cvtpd2qq512_mask ((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
2209
2210#define _mm512_mask_cvt_roundpd_epi64(W, U, A, B) \
2211 ((__m512i)__builtin_ia32_cvtpd2qq512_mask ((A), (__v8di)(W), (U), (B)))
2212
2213#define _mm512_maskz_cvt_roundpd_epi64(U, A, B) \
2214 ((__m512i)__builtin_ia32_cvtpd2qq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2215
2216#define _mm512_cvt_roundpd_epu64(A, B) \
2217 ((__m512i)__builtin_ia32_cvtpd2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
2218
2219#define _mm512_mask_cvt_roundpd_epu64(W, U, A, B) \
2220 ((__m512i)__builtin_ia32_cvtpd2uqq512_mask ((A), (__v8di)(W), (U), (B)))
2221
2222#define _mm512_maskz_cvt_roundpd_epu64(U, A, B) \
2223 ((__m512i)__builtin_ia32_cvtpd2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2224
2225#define _mm512_cvt_roundps_epi64(A, B) \
2226 ((__m512i)__builtin_ia32_cvtps2qq512_mask ((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
2227
2228#define _mm512_mask_cvt_roundps_epi64(W, U, A, B) \
2229 ((__m512i)__builtin_ia32_cvtps2qq512_mask ((A), (__v8di)(W), (U), (B)))
2230
2231#define _mm512_maskz_cvt_roundps_epi64(U, A, B) \
2232 ((__m512i)__builtin_ia32_cvtps2qq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2233
2234#define _mm512_cvt_roundps_epu64(A, B) \
2235 ((__m512i)__builtin_ia32_cvtps2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
2236
2237#define _mm512_mask_cvt_roundps_epu64(W, U, A, B) \
2238 ((__m512i)__builtin_ia32_cvtps2uqq512_mask ((A), (__v8di)(W), (U), (B)))
2239
2240#define _mm512_maskz_cvt_roundps_epu64(U, A, B) \
2241 ((__m512i)__builtin_ia32_cvtps2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2242
2243#define _mm512_cvt_roundepi64_ps(A, B) \
2244 ((__m256)__builtin_ia32_cvtqq2ps512_mask ((__v8di)(A), (__v8sf)_mm256_setzero_ps (), -1, (B)))
2245
2246#define _mm512_mask_cvt_roundepi64_ps(W, U, A, B) \
2247 ((__m256)__builtin_ia32_cvtqq2ps512_mask ((__v8di)(A), (W), (U), (B)))
2248
2249#define _mm512_maskz_cvt_roundepi64_ps(U, A, B) \
2250 ((__m256)__builtin_ia32_cvtqq2ps512_mask ((__v8di)(A), (__v8sf)_mm256_setzero_ps (), (U), (B)))
2251
2252#define _mm512_cvt_roundepu64_ps(A, B) \
2253 ((__m256)__builtin_ia32_cvtuqq2ps512_mask ((__v8di)(A), (__v8sf)_mm256_setzero_ps (), -1, (B)))
2254
2255#define _mm512_mask_cvt_roundepu64_ps(W, U, A, B) \
2256 ((__m256)__builtin_ia32_cvtuqq2ps512_mask ((__v8di)(A), (W), (U), (B)))
2257
2258#define _mm512_maskz_cvt_roundepu64_ps(U, A, B) \
2259 ((__m256)__builtin_ia32_cvtuqq2ps512_mask ((__v8di)(A), (__v8sf)_mm256_setzero_ps (), (U), (B)))
2260
2261#define _mm512_cvt_roundepi64_pd(A, B) \
2262 ((__m512d)__builtin_ia32_cvtqq2pd512_mask ((__v8di)(A), (__v8df)_mm512_setzero_pd (), -1, (B)))
2263
2264#define _mm512_mask_cvt_roundepi64_pd(W, U, A, B) \
2265 ((__m512d)__builtin_ia32_cvtqq2pd512_mask ((__v8di)(A), (W), (U), (B)))
2266
2267#define _mm512_maskz_cvt_roundepi64_pd(U, A, B) \
2268 ((__m512d)__builtin_ia32_cvtqq2pd512_mask ((__v8di)(A), (__v8df)_mm512_setzero_pd (), (U), (B)))
2269
2270#define _mm512_cvt_roundepu64_pd(A, B) \
2271 ((__m512d)__builtin_ia32_cvtuqq2pd512_mask ((__v8di)(A), (__v8df)_mm512_setzero_pd (), -1, (B)))
2272
2273#define _mm512_mask_cvt_roundepu64_pd(W, U, A, B) \
2274 ((__m512d)__builtin_ia32_cvtuqq2pd512_mask ((__v8di)(A), (W), (U), (B)))
2275
2276#define _mm512_maskz_cvt_roundepu64_pd(U, A, B) \
2277 ((__m512d)__builtin_ia32_cvtuqq2pd512_mask ((__v8di)(A), (__v8df)_mm512_setzero_pd (), (U), (B)))
2278
2279#define _mm512_reduce_pd(A, B) \
2280 ((__m512d) __builtin_ia32_reducepd512_mask ((__v8df)(__m512d)(A), \
2281 (int)(B), (__v8df)_mm512_setzero_pd (), (__mmask8)-1))
2282
2283#define _mm512_mask_reduce_pd(W, U, A, B) \
2284 ((__m512d) __builtin_ia32_reducepd512_mask ((__v8df)(__m512d)(A), \
2285 (int)(B), (__v8df)(__m512d)(W), (__mmask8)(U)))
2286
2287#define _mm512_maskz_reduce_pd(U, A, B) \
2288 ((__m512d) __builtin_ia32_reducepd512_mask ((__v8df)(__m512d)(A), \
2289 (int)(B), (__v8df)_mm512_setzero_pd (), (__mmask8)(U)))
2290
2291#define _mm512_reduce_ps(A, B) \
2292 ((__m512) __builtin_ia32_reduceps512_mask ((__v16sf)(__m512)(A), \
2293 (int)(B), (__v16sf)_mm512_setzero_ps (), (__mmask16)-1))
2294
2295#define _mm512_mask_reduce_ps(W, U, A, B) \
2296 ((__m512) __builtin_ia32_reduceps512_mask ((__v16sf)(__m512)(A), \
2297 (int)(B), (__v16sf)(__m512)(W), (__mmask16)(U)))
2298
2299#define _mm512_maskz_reduce_ps(U, A, B) \
2300 ((__m512) __builtin_ia32_reduceps512_mask ((__v16sf)(__m512)(A), \
2301 (int)(B), (__v16sf)_mm512_setzero_ps (), (__mmask16)(U)))
2302
2303#define _mm512_extractf32x8_ps(X, C) \
2304 ((__m256) __builtin_ia32_extractf32x8_mask ((__v16sf)(__m512) (X), \
2305 (int) (C), (__v8sf)(__m256) _mm256_setzero_ps (), (__mmask8)-1))
2306
2307#define _mm512_mask_extractf32x8_ps(W, U, X, C) \
2308 ((__m256) __builtin_ia32_extractf32x8_mask ((__v16sf)(__m512) (X), \
2309 (int) (C), (__v8sf)(__m256) (W), (__mmask8) (U)))
2310
2311#define _mm512_maskz_extractf32x8_ps(U, X, C) \
2312 ((__m256) __builtin_ia32_extractf32x8_mask ((__v16sf)(__m512) (X), \
2313 (int) (C), (__v8sf)(__m256) _mm256_setzero_ps (), (__mmask8) (U)))
2314
2315#define _mm512_extractf64x2_pd(X, C) \
2316 ((__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df)(__m512d) (X),\
2317 (int) (C), (__v2df)(__m128d) _mm_setzero_pd (), (__mmask8)-1))
2318
2319#define _mm512_mask_extractf64x2_pd(W, U, X, C) \
2320 ((__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df)(__m512d) (X),\
2321 (int) (C), (__v2df)(__m128d) (W), (__mmask8) (U)))
2322
2323#define _mm512_maskz_extractf64x2_pd(U, X, C) \
2324 ((__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df)(__m512d) (X),\
2325 (int) (C), (__v2df)(__m128d) _mm_setzero_pd (), (__mmask8) (U)))
2326
2327#define _mm512_extracti32x8_epi32(X, C) \
2328 ((__m256i) __builtin_ia32_extracti32x8_mask ((__v16si)(__m512i) (X), \
2329 (int) (C), (__v8si)(__m256i) _mm256_setzero_si256 (), (__mmask8)-1))
2330
2331#define _mm512_mask_extracti32x8_epi32(W, U, X, C) \
2332 ((__m256i) __builtin_ia32_extracti32x8_mask ((__v16si)(__m512i) (X), \
2333 (int) (C), (__v8si)(__m256i) (W), (__mmask8) (U)))
2334
2335#define _mm512_maskz_extracti32x8_epi32(U, X, C) \
2336 ((__m256i) __builtin_ia32_extracti32x8_mask ((__v16si)(__m512i) (X), \
2337 (int) (C), (__v8si)(__m256i) _mm256_setzero_si256 (), (__mmask8) (U)))
2338
2339#define _mm512_extracti64x2_epi64(X, C) \
2340 ((__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di)(__m512i) (X),\
2341 (int) (C), (__v2di)(__m128i) _mm_setzero_si128 (), (__mmask8)-1))
2342
2343#define _mm512_mask_extracti64x2_epi64(W, U, X, C) \
2344 ((__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di)(__m512i) (X),\
2345 (int) (C), (__v2di)(__m128i) (W), (__mmask8) (U)))
2346
2347#define _mm512_maskz_extracti64x2_epi64(U, X, C) \
2348 ((__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di)(__m512i) (X),\
2349 (int) (C), (__v2di)(__m128i) _mm_setzero_si128 (), (__mmask8) (U)))
2350
2351#define _mm512_range_pd(A, B, C) \
2352 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2353 (__v8df)(__m512d)(B), (int)(C), \
2354 (__v8df)_mm512_setzero_pd (), (__mmask8)-1, _MM_FROUND_CUR_DIRECTION))
2355
2356#define _mm512_mask_range_pd(W, U, A, B, C) \
2357 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2358 (__v8df)(__m512d)(B), (int)(C), \
2359 (__v8df)(__m512d)(W), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
2360
2361#define _mm512_maskz_range_pd(U, A, B, C) \
2362 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2363 (__v8df)(__m512d)(B), (int)(C), \
2364 (__v8df)_mm512_setzero_pd (), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
2365
2366#define _mm512_range_ps(A, B, C) \
2367 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2368 (__v16sf)(__m512)(B), (int)(C), \
2369 (__v16sf)_mm512_setzero_ps (), (__mmask16)-1, _MM_FROUND_CUR_DIRECTION))
2370
2371#define _mm512_mask_range_ps(W, U, A, B, C) \
2372 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2373 (__v16sf)(__m512)(B), (int)(C), \
2374 (__v16sf)(__m512)(W), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
2375
2376#define _mm512_maskz_range_ps(U, A, B, C) \
2377 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2378 (__v16sf)(__m512)(B), (int)(C), \
2379 (__v16sf)_mm512_setzero_ps (), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
2380
2381#define _mm512_range_round_pd(A, B, C, R) \
2382 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2383 (__v8df)(__m512d)(B), (int)(C), \
2384 (__v8df)_mm512_setzero_pd (), (__mmask8)-1, (R)))
2385
2386#define _mm512_mask_range_round_pd(W, U, A, B, C, R) \
2387 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2388 (__v8df)(__m512d)(B), (int)(C), \
2389 (__v8df)(__m512d)(W), (__mmask8)(U), (R)))
2390
2391#define _mm512_maskz_range_round_pd(U, A, B, C, R) \
2392 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2393 (__v8df)(__m512d)(B), (int)(C), \
2394 (__v8df)_mm512_setzero_pd (), (__mmask8)(U), (R)))
2395
2396#define _mm512_range_round_ps(A, B, C, R) \
2397 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2398 (__v16sf)(__m512)(B), (int)(C), \
2399 (__v16sf)_mm512_setzero_ps (), (__mmask16)-1, (R)))
2400
2401#define _mm512_mask_range_round_ps(W, U, A, B, C, R) \
2402 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2403 (__v16sf)(__m512)(B), (int)(C), \
2404 (__v16sf)(__m512)(W), (__mmask16)(U), (R)))
2405
2406#define _mm512_maskz_range_round_ps(U, A, B, C, R) \
2407 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2408 (__v16sf)(__m512)(B), (int)(C), \
2409 (__v16sf)_mm512_setzero_ps (), (__mmask16)(U), (R)))
2410
2411#define _mm512_insertf64x2(X, Y, C) \
2412 ((__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df)(__m512d) (X),\
2413 (__v2df)(__m128d) (Y), (int) (C), (__v8df)(__m512d) (X), \
2414 (__mmask8)-1))
2415
2416#define _mm512_mask_insertf64x2(W, U, X, Y, C) \
2417 ((__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df)(__m512d) (X),\
2418 (__v2df)(__m128d) (Y), (int) (C), (__v8df)(__m512d) (W), \
2419 (__mmask8) (U)))
2420
2421#define _mm512_maskz_insertf64x2(U, X, Y, C) \
2422 ((__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df)(__m512d) (X),\
2423 (__v2df)(__m128d) (Y), (int) (C), \
2424 (__v8df)(__m512d) _mm512_setzero_pd (), (__mmask8) (U)))
2425
2426#define _mm512_inserti64x2(X, Y, C) \
2427 ((__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di)(__m512i) (X),\
2428 (__v2di)(__m128i) (Y), (int) (C), (__v8di)(__m512i) (X), (__mmask8)-1))
2429
2430#define _mm512_mask_inserti64x2(W, U, X, Y, C) \
2431 ((__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di)(__m512i) (X),\
2432 (__v2di)(__m128i) (Y), (int) (C), (__v8di)(__m512i) (W), \
2433 (__mmask8) (U)))
2434
2435#define _mm512_maskz_inserti64x2(U, X, Y, C) \
2436 ((__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di)(__m512i) (X),\
2437 (__v2di)(__m128i) (Y), (int) (C), \
2438 (__v8di)(__m512i) _mm512_setzero_si512 (), (__mmask8) (U)))
2439
2440#define _mm512_insertf32x8(X, Y, C) \
2441 ((__m512) __builtin_ia32_insertf32x8_mask ((__v16sf)(__m512) (X), \
2442 (__v8sf)(__m256) (Y), (int) (C),\
2443 (__v16sf)(__m512)_mm512_setzero_ps (),\
2444 (__mmask16)-1))
2445
2446#define _mm512_mask_insertf32x8(W, U, X, Y, C) \
2447 ((__m512) __builtin_ia32_insertf32x8_mask ((__v16sf)(__m512) (X), \
2448 (__v8sf)(__m256) (Y), (int) (C),\
2449 (__v16sf)(__m512)(W),\
2450 (__mmask16)(U)))
2451
2452#define _mm512_maskz_insertf32x8(U, X, Y, C) \
2453 ((__m512) __builtin_ia32_insertf32x8_mask ((__v16sf)(__m512) (X), \
2454 (__v8sf)(__m256) (Y), (int) (C),\
2455 (__v16sf)(__m512)_mm512_setzero_ps (),\
2456 (__mmask16)(U)))
2457
2458#define _mm512_inserti32x8(X, Y, C) \
2459 ((__m512i) __builtin_ia32_inserti32x8_mask ((__v16si)(__m512i) (X), \
2460 (__v8si)(__m256i) (Y), (int) (C),\
2461 (__v16si)(__m512i)_mm512_setzero_si512 (),\
2462 (__mmask16)-1))
2463
2464#define _mm512_mask_inserti32x8(W, U, X, Y, C) \
2465 ((__m512i) __builtin_ia32_inserti32x8_mask ((__v16si)(__m512i) (X), \
2466 (__v8si)(__m256i) (Y), (int) (C),\
2467 (__v16si)(__m512i)(W),\
2468 (__mmask16)(U)))
2469
2470#define _mm512_maskz_inserti32x8(U, X, Y, C) \
2471 ((__m512i) __builtin_ia32_inserti32x8_mask ((__v16si)(__m512i) (X), \
2472 (__v8si)(__m256i) (Y), (int) (C),\
2473 (__v16si)(__m512i)_mm512_setzero_si512 (),\
2474 (__mmask16)(U)))
2475
2476#define _mm_fpclass_ss_mask(X, C) \
2477 ((__mmask8) __builtin_ia32_fpclassss ((__v4sf) (__m128) (X), (int) (C))) \
2478
2479#define _mm_fpclass_sd_mask(X, C) \
2480 ((__mmask8) __builtin_ia32_fpclasssd ((__v2df) (__m128d) (X), (int) (C))) \
2481
2482#define _mm512_mask_fpclass_pd_mask(u, X, C) \
2483 ((__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) (__m512d) (X), \
2484 (int) (C), (__mmask8)(u)))
2485
2486#define _mm512_mask_fpclass_ps_mask(u, x, c) \
2487 ((__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) (__m512) (x),\
2488 (int) (c),(__mmask8)(u)))
2489
2490#define _mm512_fpclass_pd_mask(X, C) \
2491 ((__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) (__m512d) (X), \
2492 (int) (C), (__mmask8)-1))
2493
2494#define _mm512_fpclass_ps_mask(x, c) \
2495 ((__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) (__m512) (x),\
2496 (int) (c),(__mmask8)-1))
2497
2498#define _mm_reduce_sd(A, B, C) \
2499 ((__m128d) __builtin_ia32_reducesd_mask ((__v2df)(__m128d)(A), \
2500 (__v2df)(__m128d)(B), (int)(C), (__v2df) _mm_setzero_pd (), \
2501 (__mmask8)-1))
2502
2503#define _mm_mask_reduce_sd(W, U, A, B, C) \
2504 ((__m128d) __builtin_ia32_reducesd_mask ((__v2df)(__m128d)(A), \
2505 (__v2df)(__m128d)(B), (int)(C), (__v2df)(__m128d)(W), (__mmask8)(U)))
2506
2507#define _mm_maskz_reduce_sd(U, A, B, C) \
2508 ((__m128d) __builtin_ia32_reducesd_mask ((__v2df)(__m128d)(A), \
2509 (__v2df)(__m128d)(B), (int)(C), (__v2df) _mm_setzero_pd (), \
2510 (__mmask8)(U)))
2511
2512#define _mm_reduce_ss(A, B, C) \
2513 ((__m128) __builtin_ia32_reducess_mask ((__v4sf)(__m128)(A), \
2514 (__v4sf)(__m128)(B), (int)(C), (__v4sf) _mm_setzero_ps (), \
2515 (__mmask8)-1))
2516
2517#define _mm_mask_reduce_ss(W, U, A, B, C) \
2518 ((__m128) __builtin_ia32_reducess_mask ((__v4sf)(__m128)(A), \
2519 (__v4sf)(__m128)(B), (int)(C), (__v4sf)(__m128)(W), (__mmask8)(U)))
2520
2521#define _mm_maskz_reduce_ss(U, A, B, C) \
2522 ((__m128) __builtin_ia32_reducess_mask ((__v4sf)(__m128)(A), \
2523 (__v4sf)(__m128)(B), (int)(C), (__v4sf) _mm_setzero_ps (), \
2524 (__mmask8)(U)))
2525
2526
2527
2528#endif
2529
2530#ifdef __DISABLE_AVX512DQ__
2531#undef __DISABLE_AVX512DQ__
2532#pragma GCC pop_options
2533#endif /* __DISABLE_AVX512DQ__ */
2534
2535#endif /* _AVX512DQINTRIN_H_INCLUDED */
2536

Warning: That file was not part of the compilation database. It may have many parsing errors.