1 /* Copyright (C) 2014-2015 Free Software Foundation, Inc.
3 This file is part of GCC.
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)
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.
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.
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/>. */
24 #ifndef _IMMINTRIN_H_INCLUDED
25 #error "Never use <avx512dqintrin.h> directly; include <immintrin.h> instead."
28 #ifndef _AVX512DQINTRIN_H_INCLUDED
29 #define _AVX512DQINTRIN_H_INCLUDED
32 #pragma GCC push_options
33 #pragma GCC target("avx512dq")
34 #define __DISABLE_AVX512DQ__
35 #endif /* __AVX512DQ__ */
37 extern __inline __m512d
38 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
39 _mm512_broadcast_f64x2 (__m128d __A)
41 return (__m512d) __builtin_ia32_broadcastf64x2_512_mask ((__v2df)
43 _mm512_undefined_pd(),
47 extern __inline __m512d
48 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
49 _mm512_mask_broadcast_f64x2 (__m512d __O, __mmask8 __M, __m128d __A)
51 return (__m512d) __builtin_ia32_broadcastf64x2_512_mask ((__v2df)
57 extern __inline __m512d
58 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
59 _mm512_maskz_broadcast_f64x2 (__mmask8 __M, __m128d __A)
61 return (__m512d) __builtin_ia32_broadcastf64x2_512_mask ((__v2df)
68 extern __inline __m512i
69 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
70 _mm512_broadcast_i64x2 (__m128i __A)
72 return (__m512i) __builtin_ia32_broadcasti64x2_512_mask ((__v2di)
74 _mm512_undefined_epi32(),
78 extern __inline __m512i
79 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
80 _mm512_mask_broadcast_i64x2 (__m512i __O, __mmask8 __M, __m128i __A)
82 return (__m512i) __builtin_ia32_broadcasti64x2_512_mask ((__v2di)
88 extern __inline __m512i
89 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
90 _mm512_maskz_broadcast_i64x2 (__mmask8 __M, __m128i __A)
92 return (__m512i) __builtin_ia32_broadcasti64x2_512_mask ((__v2di)
95 _mm512_setzero_si512 (),
99 extern __inline __m512
100 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
101 _mm512_broadcast_f32x2 (__m128 __A)
103 return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A,
104 (__v16sf)_mm512_undefined_ps(),
108 extern __inline __m512
109 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
110 _mm512_mask_broadcast_f32x2 (__m512 __O, __mmask16 __M, __m128 __A)
112 return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A,
117 extern __inline __m512
118 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
119 _mm512_maskz_broadcast_f32x2 (__mmask16 __M, __m128 __A)
121 return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A,
123 _mm512_setzero_ps (),
127 extern __inline __m512i
128 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
129 _mm512_broadcast_i32x2 (__m128i __A)
131 return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si)
133 (__v16si)_mm512_undefined_epi32(),
137 extern __inline __m512i
138 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
139 _mm512_mask_broadcast_i32x2 (__m512i __O, __mmask16 __M, __m128i __A)
141 return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si)
147 extern __inline __m512i
148 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
149 _mm512_maskz_broadcast_i32x2 (__mmask16 __M, __m128i __A)
151 return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si)
154 _mm512_setzero_si512 (),
158 extern __inline __m512
159 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
160 _mm512_broadcast_f32x8 (__m256 __A)
162 return (__m512) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf) __A,
163 _mm512_undefined_ps(),
167 extern __inline __m512
168 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
169 _mm512_mask_broadcast_f32x8 (__m512 __O, __mmask16 __M, __m256 __A)
171 return (__m512) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf) __A,
176 extern __inline __m512
177 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
178 _mm512_maskz_broadcast_f32x8 (__mmask16 __M, __m256 __A)
180 return (__m512) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf) __A,
182 _mm512_setzero_ps (),
186 extern __inline __m512i
187 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
188 _mm512_broadcast_i32x8 (__m256i __A)
190 return (__m512i) __builtin_ia32_broadcasti32x8_512_mask ((__v8si)
192 (__v16si)_mm512_undefined_epi32(),
196 extern __inline __m512i
197 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
198 _mm512_mask_broadcast_i32x8 (__m512i __O, __mmask16 __M, __m256i __A)
200 return (__m512i) __builtin_ia32_broadcasti32x8_512_mask ((__v8si)
206 extern __inline __m512i
207 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
208 _mm512_maskz_broadcast_i32x8 (__mmask16 __M, __m256i __A)
210 return (__m512i) __builtin_ia32_broadcasti32x8_512_mask ((__v8si)
213 _mm512_setzero_si512 (),
217 extern __inline __m512i
218 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
219 _mm512_mullo_epi64 (__m512i __A, __m512i __B)
221 return (__m512i) ((__v8du) __A * (__v8du) __B);
224 extern __inline __m512i
225 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
226 _mm512_mask_mullo_epi64 (__m512i __W, __mmask8 __U, __m512i __A,
229 return (__m512i) __builtin_ia32_pmullq512_mask ((__v8di) __A,
235 extern __inline __m512i
236 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
237 _mm512_maskz_mullo_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
239 return (__m512i) __builtin_ia32_pmullq512_mask ((__v8di) __A,
242 _mm512_setzero_si512 (),
246 extern __inline __m512d
247 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
248 _mm512_xor_pd (__m512d __A, __m512d __B)
250 return (__m512d) __builtin_ia32_xorpd512_mask ((__v8df) __A,
253 _mm512_setzero_pd (),
257 extern __inline __m512d
258 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
259 _mm512_mask_xor_pd (__m512d __W, __mmask8 __U, __m512d __A,
262 return (__m512d) __builtin_ia32_xorpd512_mask ((__v8df) __A,
268 extern __inline __m512d
269 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
270 _mm512_maskz_xor_pd (__mmask8 __U, __m512d __A, __m512d __B)
272 return (__m512d) __builtin_ia32_xorpd512_mask ((__v8df) __A,
275 _mm512_setzero_pd (),
279 extern __inline __m512
280 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
281 _mm512_xor_ps (__m512 __A, __m512 __B)
283 return (__m512) __builtin_ia32_xorps512_mask ((__v16sf) __A,
286 _mm512_setzero_ps (),
290 extern __inline __m512
291 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
292 _mm512_mask_xor_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
294 return (__m512) __builtin_ia32_xorps512_mask ((__v16sf) __A,
300 extern __inline __m512
301 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
302 _mm512_maskz_xor_ps (__mmask16 __U, __m512 __A, __m512 __B)
304 return (__m512) __builtin_ia32_xorps512_mask ((__v16sf) __A,
307 _mm512_setzero_ps (),
311 extern __inline __m512d
312 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
313 _mm512_or_pd (__m512d __A, __m512d __B)
315 return (__m512d) __builtin_ia32_orpd512_mask ((__v8df) __A,
318 _mm512_setzero_pd (),
322 extern __inline __m512d
323 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
324 _mm512_mask_or_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
326 return (__m512d) __builtin_ia32_orpd512_mask ((__v8df) __A,
332 extern __inline __m512d
333 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
334 _mm512_maskz_or_pd (__mmask8 __U, __m512d __A, __m512d __B)
336 return (__m512d) __builtin_ia32_orpd512_mask ((__v8df) __A,
339 _mm512_setzero_pd (),
343 extern __inline __m512
344 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
345 _mm512_or_ps (__m512 __A, __m512 __B)
347 return (__m512) __builtin_ia32_orps512_mask ((__v16sf) __A,
350 _mm512_setzero_ps (),
354 extern __inline __m512
355 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
356 _mm512_mask_or_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
358 return (__m512) __builtin_ia32_orps512_mask ((__v16sf) __A,
364 extern __inline __m512
365 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
366 _mm512_maskz_or_ps (__mmask16 __U, __m512 __A, __m512 __B)
368 return (__m512) __builtin_ia32_orps512_mask ((__v16sf) __A,
371 _mm512_setzero_ps (),
375 extern __inline __m512d
376 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
377 _mm512_and_pd (__m512d __A, __m512d __B)
379 return (__m512d) __builtin_ia32_andpd512_mask ((__v8df) __A,
382 _mm512_setzero_pd (),
386 extern __inline __m512d
387 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
388 _mm512_mask_and_pd (__m512d __W, __mmask8 __U, __m512d __A,
391 return (__m512d) __builtin_ia32_andpd512_mask ((__v8df) __A,
397 extern __inline __m512d
398 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
399 _mm512_maskz_and_pd (__mmask8 __U, __m512d __A, __m512d __B)
401 return (__m512d) __builtin_ia32_andpd512_mask ((__v8df) __A,
404 _mm512_setzero_pd (),
408 extern __inline __m512
409 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
410 _mm512_and_ps (__m512 __A, __m512 __B)
412 return (__m512) __builtin_ia32_andps512_mask ((__v16sf) __A,
415 _mm512_setzero_ps (),
419 extern __inline __m512
420 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
421 _mm512_mask_and_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
423 return (__m512) __builtin_ia32_andps512_mask ((__v16sf) __A,
429 extern __inline __m512
430 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
431 _mm512_maskz_and_ps (__mmask16 __U, __m512 __A, __m512 __B)
433 return (__m512) __builtin_ia32_andps512_mask ((__v16sf) __A,
436 _mm512_setzero_ps (),
440 extern __inline __m512d
441 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
442 _mm512_andnot_pd (__m512d __A, __m512d __B)
444 return (__m512d) __builtin_ia32_andnpd512_mask ((__v8df) __A,
447 _mm512_setzero_pd (),
451 extern __inline __m512d
452 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
453 _mm512_mask_andnot_pd (__m512d __W, __mmask8 __U, __m512d __A,
456 return (__m512d) __builtin_ia32_andnpd512_mask ((__v8df) __A,
462 extern __inline __m512d
463 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
464 _mm512_maskz_andnot_pd (__mmask8 __U, __m512d __A, __m512d __B)
466 return (__m512d) __builtin_ia32_andnpd512_mask ((__v8df) __A,
469 _mm512_setzero_pd (),
473 extern __inline __m512
474 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
475 _mm512_andnot_ps (__m512 __A, __m512 __B)
477 return (__m512) __builtin_ia32_andnps512_mask ((__v16sf) __A,
480 _mm512_setzero_ps (),
484 extern __inline __m512
485 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
486 _mm512_mask_andnot_ps (__m512 __W, __mmask16 __U, __m512 __A,
489 return (__m512) __builtin_ia32_andnps512_mask ((__v16sf) __A,
495 extern __inline __m512
496 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
497 _mm512_maskz_andnot_ps (__mmask16 __U, __m512 __A, __m512 __B)
499 return (__m512) __builtin_ia32_andnps512_mask ((__v16sf) __A,
502 _mm512_setzero_ps (),
506 extern __inline __mmask16
507 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
508 _mm512_movepi32_mask (__m512i __A)
510 return (__mmask16) __builtin_ia32_cvtd2mask512 ((__v16si) __A);
513 extern __inline __mmask8
514 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
515 _mm512_movepi64_mask (__m512i __A)
517 return (__mmask8) __builtin_ia32_cvtq2mask512 ((__v8di) __A);
520 extern __inline __m512i
521 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
522 _mm512_movm_epi32 (__mmask16 __A)
524 return (__m512i) __builtin_ia32_cvtmask2d512 (__A);
527 extern __inline __m512i
528 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
529 _mm512_movm_epi64 (__mmask8 __A)
531 return (__m512i) __builtin_ia32_cvtmask2q512 (__A);
534 extern __inline __m512i
535 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
536 _mm512_cvttpd_epi64 (__m512d __A)
538 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
540 _mm512_setzero_si512 (),
542 _MM_FROUND_CUR_DIRECTION);
545 extern __inline __m512i
546 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
547 _mm512_mask_cvttpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A)
549 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
552 _MM_FROUND_CUR_DIRECTION);
555 extern __inline __m512i
556 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
557 _mm512_maskz_cvttpd_epi64 (__mmask8 __U, __m512d __A)
559 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
561 _mm512_setzero_si512 (),
563 _MM_FROUND_CUR_DIRECTION);
566 extern __inline __m512i
567 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
568 _mm512_cvttpd_epu64 (__m512d __A)
570 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
572 _mm512_setzero_si512 (),
574 _MM_FROUND_CUR_DIRECTION);
577 extern __inline __m512i
578 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
579 _mm512_mask_cvttpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A)
581 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
584 _MM_FROUND_CUR_DIRECTION);
587 extern __inline __m512i
588 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
589 _mm512_maskz_cvttpd_epu64 (__mmask8 __U, __m512d __A)
591 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
593 _mm512_setzero_si512 (),
595 _MM_FROUND_CUR_DIRECTION);
598 extern __inline __m512i
599 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
600 _mm512_cvttps_epi64 (__m256 __A)
602 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
604 _mm512_setzero_si512 (),
606 _MM_FROUND_CUR_DIRECTION);
609 extern __inline __m512i
610 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
611 _mm512_mask_cvttps_epi64 (__m512i __W, __mmask8 __U, __m256 __A)
613 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
616 _MM_FROUND_CUR_DIRECTION);
619 extern __inline __m512i
620 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
621 _mm512_maskz_cvttps_epi64 (__mmask8 __U, __m256 __A)
623 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
625 _mm512_setzero_si512 (),
627 _MM_FROUND_CUR_DIRECTION);
630 extern __inline __m512i
631 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
632 _mm512_cvttps_epu64 (__m256 __A)
634 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
636 _mm512_setzero_si512 (),
638 _MM_FROUND_CUR_DIRECTION);
641 extern __inline __m512i
642 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
643 _mm512_mask_cvttps_epu64 (__m512i __W, __mmask8 __U, __m256 __A)
645 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
648 _MM_FROUND_CUR_DIRECTION);
651 extern __inline __m512i
652 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
653 _mm512_maskz_cvttps_epu64 (__mmask8 __U, __m256 __A)
655 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
657 _mm512_setzero_si512 (),
659 _MM_FROUND_CUR_DIRECTION);
662 extern __inline __m512i
663 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
664 _mm512_cvtpd_epi64 (__m512d __A)
666 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
668 _mm512_setzero_si512 (),
670 _MM_FROUND_CUR_DIRECTION);
673 extern __inline __m512i
674 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
675 _mm512_mask_cvtpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A)
677 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
680 _MM_FROUND_CUR_DIRECTION);
683 extern __inline __m512i
684 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
685 _mm512_maskz_cvtpd_epi64 (__mmask8 __U, __m512d __A)
687 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
689 _mm512_setzero_si512 (),
691 _MM_FROUND_CUR_DIRECTION);
694 extern __inline __m512i
695 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
696 _mm512_cvtpd_epu64 (__m512d __A)
698 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
700 _mm512_setzero_si512 (),
702 _MM_FROUND_CUR_DIRECTION);
705 extern __inline __m512i
706 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
707 _mm512_mask_cvtpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A)
709 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
712 _MM_FROUND_CUR_DIRECTION);
715 extern __inline __m512i
716 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
717 _mm512_maskz_cvtpd_epu64 (__mmask8 __U, __m512d __A)
719 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
721 _mm512_setzero_si512 (),
723 _MM_FROUND_CUR_DIRECTION);
726 extern __inline __m512i
727 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
728 _mm512_cvtps_epi64 (__m256 __A)
730 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
732 _mm512_setzero_si512 (),
734 _MM_FROUND_CUR_DIRECTION);
737 extern __inline __m512i
738 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
739 _mm512_mask_cvtps_epi64 (__m512i __W, __mmask8 __U, __m256 __A)
741 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
744 _MM_FROUND_CUR_DIRECTION);
747 extern __inline __m512i
748 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
749 _mm512_maskz_cvtps_epi64 (__mmask8 __U, __m256 __A)
751 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
753 _mm512_setzero_si512 (),
755 _MM_FROUND_CUR_DIRECTION);
758 extern __inline __m512i
759 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
760 _mm512_cvtps_epu64 (__m256 __A)
762 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
764 _mm512_setzero_si512 (),
766 _MM_FROUND_CUR_DIRECTION);
769 extern __inline __m512i
770 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
771 _mm512_mask_cvtps_epu64 (__m512i __W, __mmask8 __U, __m256 __A)
773 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
776 _MM_FROUND_CUR_DIRECTION);
779 extern __inline __m512i
780 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
781 _mm512_maskz_cvtps_epu64 (__mmask8 __U, __m256 __A)
783 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
785 _mm512_setzero_si512 (),
787 _MM_FROUND_CUR_DIRECTION);
790 extern __inline __m256
791 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
792 _mm512_cvtepi64_ps (__m512i __A)
794 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
796 _mm256_setzero_ps (),
798 _MM_FROUND_CUR_DIRECTION);
801 extern __inline __m256
802 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
803 _mm512_mask_cvtepi64_ps (__m256 __W, __mmask8 __U, __m512i __A)
805 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
808 _MM_FROUND_CUR_DIRECTION);
811 extern __inline __m256
812 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
813 _mm512_maskz_cvtepi64_ps (__mmask8 __U, __m512i __A)
815 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
817 _mm256_setzero_ps (),
819 _MM_FROUND_CUR_DIRECTION);
822 extern __inline __m256
823 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
824 _mm512_cvtepu64_ps (__m512i __A)
826 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
828 _mm256_setzero_ps (),
830 _MM_FROUND_CUR_DIRECTION);
833 extern __inline __m256
834 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
835 _mm512_mask_cvtepu64_ps (__m256 __W, __mmask8 __U, __m512i __A)
837 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
840 _MM_FROUND_CUR_DIRECTION);
843 extern __inline __m256
844 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
845 _mm512_maskz_cvtepu64_ps (__mmask8 __U, __m512i __A)
847 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
849 _mm256_setzero_ps (),
851 _MM_FROUND_CUR_DIRECTION);
854 extern __inline __m512d
855 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
856 _mm512_cvtepi64_pd (__m512i __A)
858 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
860 _mm512_setzero_pd (),
862 _MM_FROUND_CUR_DIRECTION);
865 extern __inline __m512d
866 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
867 _mm512_mask_cvtepi64_pd (__m512d __W, __mmask8 __U, __m512i __A)
869 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
872 _MM_FROUND_CUR_DIRECTION);
875 extern __inline __m512d
876 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
877 _mm512_maskz_cvtepi64_pd (__mmask8 __U, __m512i __A)
879 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
881 _mm512_setzero_pd (),
883 _MM_FROUND_CUR_DIRECTION);
886 extern __inline __m512d
887 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
888 _mm512_cvtepu64_pd (__m512i __A)
890 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
892 _mm512_setzero_pd (),
894 _MM_FROUND_CUR_DIRECTION);
897 extern __inline __m512d
898 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
899 _mm512_mask_cvtepu64_pd (__m512d __W, __mmask8 __U, __m512i __A)
901 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
904 _MM_FROUND_CUR_DIRECTION);
907 extern __inline __m512d
908 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
909 _mm512_maskz_cvtepu64_pd (__mmask8 __U, __m512i __A)
911 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
913 _mm512_setzero_pd (),
915 _MM_FROUND_CUR_DIRECTION);
919 extern __inline __m512d
920 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
921 _mm512_range_pd (__m512d __A, __m512d __B, int __C)
923 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
926 _mm512_setzero_pd (),
928 _MM_FROUND_CUR_DIRECTION);
931 extern __inline __m512d
932 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
933 _mm512_mask_range_pd (__m512d __W, __mmask8 __U,
934 __m512d __A, __m512d __B, int __C)
936 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
940 _MM_FROUND_CUR_DIRECTION);
943 extern __inline __m512d
944 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
945 _mm512_maskz_range_pd (__mmask8 __U, __m512d __A, __m512d __B, int __C)
947 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
950 _mm512_setzero_pd (),
952 _MM_FROUND_CUR_DIRECTION);
955 extern __inline __m512
956 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
957 _mm512_range_ps (__m512 __A, __m512 __B, int __C)
959 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
962 _mm512_setzero_ps (),
964 _MM_FROUND_CUR_DIRECTION);
967 extern __inline __m512
968 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
969 _mm512_mask_range_ps (__m512 __W, __mmask16 __U,
970 __m512 __A, __m512 __B, int __C)
972 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
976 _MM_FROUND_CUR_DIRECTION);
979 extern __inline __m512
980 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
981 _mm512_maskz_range_ps (__mmask16 __U, __m512 __A, __m512 __B, int __C)
983 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
986 _mm512_setzero_ps (),
988 _MM_FROUND_CUR_DIRECTION);
991 extern __inline __m128d
992 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
993 _mm_reduce_sd (__m128d __A, __m128d __B, int __C)
995 return (__m128d) __builtin_ia32_reducesd ((__v2df) __A,
999 extern __inline __m128
1000 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1001 _mm_reduce_ss (__m128 __A, __m128 __B, int __C)
1003 return (__m128) __builtin_ia32_reducess ((__v4sf) __A,
1007 extern __inline __m128d
1008 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1009 _mm_range_sd (__m128d __A, __m128d __B, int __C)
1011 return (__m128d) __builtin_ia32_rangesd128_round ((__v2df) __A,
1013 _MM_FROUND_CUR_DIRECTION);
1017 extern __inline __m128
1018 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1019 _mm_range_ss (__m128 __A, __m128 __B, int __C)
1021 return (__m128) __builtin_ia32_rangess128_round ((__v4sf) __A,
1023 _MM_FROUND_CUR_DIRECTION);
1026 extern __inline __m128d
1027 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1028 _mm_range_round_sd (__m128d __A, __m128d __B, int __C, const int __R)
1030 return (__m128d) __builtin_ia32_rangesd128_round ((__v2df) __A,
1035 extern __inline __m128
1036 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1037 _mm_range_round_ss (__m128 __A, __m128 __B, int __C, const int __R)
1039 return (__m128) __builtin_ia32_rangess128_round ((__v4sf) __A,
1044 extern __inline __mmask8
1045 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1046 _mm_fpclass_ss_mask (__m128 __A, const int __imm)
1048 return (__mmask8) __builtin_ia32_fpclassss ((__v4sf) __A, __imm);
1051 extern __inline __mmask8
1052 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1053 _mm_fpclass_sd_mask (__m128d __A, const int __imm)
1055 return (__mmask8) __builtin_ia32_fpclasssd ((__v2df) __A, __imm);
1058 extern __inline __m512i
1059 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1060 _mm512_cvtt_roundpd_epi64 (__m512d __A, const int __R)
1062 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
1064 _mm512_setzero_si512 (),
1069 extern __inline __m512i
1070 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1071 _mm512_mask_cvtt_roundpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A,
1074 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
1080 extern __inline __m512i
1081 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1082 _mm512_maskz_cvtt_roundpd_epi64 (__mmask8 __U, __m512d __A,
1085 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
1087 _mm512_setzero_si512 (),
1092 extern __inline __m512i
1093 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1094 _mm512_cvtt_roundpd_epu64 (__m512d __A, const int __R)
1096 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
1098 _mm512_setzero_si512 (),
1103 extern __inline __m512i
1104 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1105 _mm512_mask_cvtt_roundpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A,
1108 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
1114 extern __inline __m512i
1115 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1116 _mm512_maskz_cvtt_roundpd_epu64 (__mmask8 __U, __m512d __A,
1119 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
1121 _mm512_setzero_si512 (),
1126 extern __inline __m512i
1127 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1128 _mm512_cvtt_roundps_epi64 (__m256 __A, const int __R)
1130 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
1132 _mm512_setzero_si512 (),
1137 extern __inline __m512i
1138 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1139 _mm512_mask_cvtt_roundps_epi64 (__m512i __W, __mmask8 __U, __m256 __A,
1142 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
1148 extern __inline __m512i
1149 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1150 _mm512_maskz_cvtt_roundps_epi64 (__mmask8 __U, __m256 __A,
1153 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
1155 _mm512_setzero_si512 (),
1160 extern __inline __m512i
1161 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1162 _mm512_cvtt_roundps_epu64 (__m256 __A, const int __R)
1164 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
1166 _mm512_setzero_si512 (),
1171 extern __inline __m512i
1172 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1173 _mm512_mask_cvtt_roundps_epu64 (__m512i __W, __mmask8 __U, __m256 __A,
1176 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
1182 extern __inline __m512i
1183 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1184 _mm512_maskz_cvtt_roundps_epu64 (__mmask8 __U, __m256 __A,
1187 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
1189 _mm512_setzero_si512 (),
1194 extern __inline __m512i
1195 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1196 _mm512_cvt_roundpd_epi64 (__m512d __A, const int __R)
1198 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
1200 _mm512_setzero_si512 (),
1205 extern __inline __m512i
1206 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1207 _mm512_mask_cvt_roundpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A,
1210 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
1216 extern __inline __m512i
1217 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1218 _mm512_maskz_cvt_roundpd_epi64 (__mmask8 __U, __m512d __A,
1221 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
1223 _mm512_setzero_si512 (),
1228 extern __inline __m512i
1229 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1230 _mm512_cvt_roundpd_epu64 (__m512d __A, const int __R)
1232 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
1234 _mm512_setzero_si512 (),
1239 extern __inline __m512i
1240 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1241 _mm512_mask_cvt_roundpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A,
1244 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
1250 extern __inline __m512i
1251 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1252 _mm512_maskz_cvt_roundpd_epu64 (__mmask8 __U, __m512d __A,
1255 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
1257 _mm512_setzero_si512 (),
1262 extern __inline __m512i
1263 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1264 _mm512_cvt_roundps_epi64 (__m256 __A, const int __R)
1266 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
1268 _mm512_setzero_si512 (),
1273 extern __inline __m512i
1274 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1275 _mm512_mask_cvt_roundps_epi64 (__m512i __W, __mmask8 __U, __m256 __A,
1278 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
1284 extern __inline __m512i
1285 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1286 _mm512_maskz_cvt_roundps_epi64 (__mmask8 __U, __m256 __A,
1289 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
1291 _mm512_setzero_si512 (),
1296 extern __inline __m512i
1297 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1298 _mm512_cvt_roundps_epu64 (__m256 __A, const int __R)
1300 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
1302 _mm512_setzero_si512 (),
1307 extern __inline __m512i
1308 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1309 _mm512_mask_cvt_roundps_epu64 (__m512i __W, __mmask8 __U, __m256 __A,
1312 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
1318 extern __inline __m512i
1319 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1320 _mm512_maskz_cvt_roundps_epu64 (__mmask8 __U, __m256 __A,
1323 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
1325 _mm512_setzero_si512 (),
1330 extern __inline __m256
1331 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1332 _mm512_cvt_roundepi64_ps (__m512i __A, const int __R)
1334 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
1336 _mm256_setzero_ps (),
1341 extern __inline __m256
1342 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1343 _mm512_mask_cvt_roundepi64_ps (__m256 __W, __mmask8 __U, __m512i __A,
1346 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
1352 extern __inline __m256
1353 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1354 _mm512_maskz_cvt_roundepi64_ps (__mmask8 __U, __m512i __A,
1357 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
1359 _mm256_setzero_ps (),
1364 extern __inline __m256
1365 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1366 _mm512_cvt_roundepu64_ps (__m512i __A, const int __R)
1368 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
1370 _mm256_setzero_ps (),
1375 extern __inline __m256
1376 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1377 _mm512_mask_cvt_roundepu64_ps (__m256 __W, __mmask8 __U, __m512i __A,
1380 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
1386 extern __inline __m256
1387 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1388 _mm512_maskz_cvt_roundepu64_ps (__mmask8 __U, __m512i __A,
1391 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
1393 _mm256_setzero_ps (),
1398 extern __inline __m512d
1399 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1400 _mm512_cvt_roundepi64_pd (__m512i __A, const int __R)
1402 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
1404 _mm512_setzero_pd (),
1409 extern __inline __m512d
1410 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1411 _mm512_mask_cvt_roundepi64_pd (__m512d __W, __mmask8 __U, __m512i __A,
1414 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
1420 extern __inline __m512d
1421 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1422 _mm512_maskz_cvt_roundepi64_pd (__mmask8 __U, __m512i __A,
1425 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
1427 _mm512_setzero_pd (),
1432 extern __inline __m512d
1433 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1434 _mm512_cvt_roundepu64_pd (__m512i __A, const int __R)
1436 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
1438 _mm512_setzero_pd (),
1443 extern __inline __m512d
1444 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1445 _mm512_mask_cvt_roundepu64_pd (__m512d __W, __mmask8 __U, __m512i __A,
1448 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
1454 extern __inline __m512d
1455 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1456 _mm512_maskz_cvt_roundepu64_pd (__mmask8 __U, __m512i __A,
1459 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
1461 _mm512_setzero_pd (),
1466 extern __inline __m512d
1467 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1468 _mm512_reduce_pd (__m512d __A, int __B)
1470 return (__m512d) __builtin_ia32_reducepd512_mask ((__v8df) __A, __B,
1472 _mm512_setzero_pd (),
1476 extern __inline __m512d
1477 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1478 _mm512_mask_reduce_pd (__m512d __W, __mmask8 __U, __m512d __A, int __B)
1480 return (__m512d) __builtin_ia32_reducepd512_mask ((__v8df) __A, __B,
1485 extern __inline __m512d
1486 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1487 _mm512_maskz_reduce_pd (__mmask8 __U, __m512d __A, int __B)
1489 return (__m512d) __builtin_ia32_reducepd512_mask ((__v8df) __A, __B,
1491 _mm512_setzero_pd (),
1495 extern __inline __m512
1496 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1497 _mm512_reduce_ps (__m512 __A, int __B)
1499 return (__m512) __builtin_ia32_reduceps512_mask ((__v16sf) __A, __B,
1501 _mm512_setzero_ps (),
1505 extern __inline __m512
1506 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1507 _mm512_mask_reduce_ps (__m512 __W, __mmask16 __U, __m512 __A, int __B)
1509 return (__m512) __builtin_ia32_reduceps512_mask ((__v16sf) __A, __B,
1514 extern __inline __m512
1515 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1516 _mm512_maskz_reduce_ps (__mmask16 __U, __m512 __A, int __B)
1518 return (__m512) __builtin_ia32_reduceps512_mask ((__v16sf) __A, __B,
1520 _mm512_setzero_ps (),
1524 extern __inline __m256
1525 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1526 _mm512_extractf32x8_ps (__m512 __A, const int __imm)
1528 return (__m256) __builtin_ia32_extractf32x8_mask ((__v16sf) __A,
1531 _mm256_setzero_ps (),
1535 extern __inline __m256
1536 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1537 _mm512_mask_extractf32x8_ps (__m256 __W, __mmask8 __U, __m512 __A,
1540 return (__m256) __builtin_ia32_extractf32x8_mask ((__v16sf) __A,
1546 extern __inline __m256
1547 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1548 _mm512_maskz_extractf32x8_ps (__mmask8 __U, __m512 __A,
1551 return (__m256) __builtin_ia32_extractf32x8_mask ((__v16sf) __A,
1554 _mm256_setzero_ps (),
1558 extern __inline __m128d
1559 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1560 _mm512_extractf64x2_pd (__m512d __A, const int __imm)
1562 return (__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df) __A,
1569 extern __inline __m128d
1570 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1571 _mm512_mask_extractf64x2_pd (__m128d __W, __mmask8 __U, __m512d __A,
1574 return (__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df) __A,
1581 extern __inline __m128d
1582 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1583 _mm512_maskz_extractf64x2_pd (__mmask8 __U, __m512d __A,
1586 return (__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df) __A,
1594 extern __inline __m256i
1595 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1596 _mm512_extracti32x8_epi32 (__m512i __A, const int __imm)
1598 return (__m256i) __builtin_ia32_extracti32x8_mask ((__v16si) __A,
1601 _mm256_setzero_si256 (),
1605 extern __inline __m256i
1606 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1607 _mm512_mask_extracti32x8_epi32 (__m256i __W, __mmask8 __U, __m512i __A,
1610 return (__m256i) __builtin_ia32_extracti32x8_mask ((__v16si) __A,
1616 extern __inline __m256i
1617 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1618 _mm512_maskz_extracti32x8_epi32 (__mmask8 __U, __m512i __A,
1621 return (__m256i) __builtin_ia32_extracti32x8_mask ((__v16si) __A,
1624 _mm256_setzero_si256 (),
1628 extern __inline __m128i
1629 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1630 _mm512_extracti64x2_epi64 (__m512i __A, const int __imm)
1632 return (__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di) __A,
1639 extern __inline __m128i
1640 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1641 _mm512_mask_extracti64x2_epi64 (__m128i __W, __mmask8 __U, __m512i __A,
1644 return (__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di) __A,
1651 extern __inline __m128i
1652 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1653 _mm512_maskz_extracti64x2_epi64 (__mmask8 __U, __m512i __A,
1656 return (__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di) __A,
1664 extern __inline __m512d
1665 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1666 _mm512_range_round_pd (__m512d __A, __m512d __B, int __C,
1669 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
1672 _mm512_setzero_pd (),
1677 extern __inline __m512d
1678 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1679 _mm512_mask_range_round_pd (__m512d __W, __mmask8 __U,
1680 __m512d __A, __m512d __B, int __C,
1683 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
1690 extern __inline __m512d
1691 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1692 _mm512_maskz_range_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
1693 int __C, const int __R)
1695 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
1698 _mm512_setzero_pd (),
1703 extern __inline __m512
1704 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1705 _mm512_range_round_ps (__m512 __A, __m512 __B, int __C, const int __R)
1707 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
1710 _mm512_setzero_ps (),
1715 extern __inline __m512
1716 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1717 _mm512_mask_range_round_ps (__m512 __W, __mmask16 __U,
1718 __m512 __A, __m512 __B, int __C,
1721 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
1728 extern __inline __m512
1729 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1730 _mm512_maskz_range_round_ps (__mmask16 __U, __m512 __A, __m512 __B,
1731 int __C, const int __R)
1733 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
1736 _mm512_setzero_ps (),
1741 extern __inline __m512i
1742 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1743 _mm512_inserti32x8 (__m512i __A, __m256i __B, const int __imm)
1745 return (__m512i) __builtin_ia32_inserti32x8_mask ((__v16si) __A,
1749 _mm512_setzero_si512 (),
1753 extern __inline __m512i
1754 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1755 _mm512_mask_inserti32x8 (__m512i __W, __mmask16 __U, __m512i __A,
1756 __m256i __B, const int __imm)
1758 return (__m512i) __builtin_ia32_inserti32x8_mask ((__v16si) __A,
1765 extern __inline __m512i
1766 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1767 _mm512_maskz_inserti32x8 (__mmask16 __U, __m512i __A, __m256i __B,
1770 return (__m512i) __builtin_ia32_inserti32x8_mask ((__v16si) __A,
1774 _mm512_setzero_si512 (),
1778 extern __inline __m512
1779 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1780 _mm512_insertf32x8 (__m512 __A, __m256 __B, const int __imm)
1782 return (__m512) __builtin_ia32_insertf32x8_mask ((__v16sf) __A,
1786 _mm512_setzero_ps (),
1790 extern __inline __m512
1791 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1792 _mm512_mask_insertf32x8 (__m512 __W, __mmask16 __U, __m512 __A,
1793 __m256 __B, const int __imm)
1795 return (__m512) __builtin_ia32_insertf32x8_mask ((__v16sf) __A,
1802 extern __inline __m512
1803 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1804 _mm512_maskz_insertf32x8 (__mmask16 __U, __m512 __A, __m256 __B,
1807 return (__m512) __builtin_ia32_insertf32x8_mask ((__v16sf) __A,
1811 _mm512_setzero_ps (),
1815 extern __inline __m512i
1816 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1817 _mm512_inserti64x2 (__m512i __A, __m128i __B, const int __imm)
1819 return (__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di) __A,
1823 _mm512_setzero_si512 (),
1827 extern __inline __m512i
1828 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1829 _mm512_mask_inserti64x2 (__m512i __W, __mmask8 __U, __m512i __A,
1830 __m128i __B, const int __imm)
1832 return (__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di) __A,
1840 extern __inline __m512i
1841 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1842 _mm512_maskz_inserti64x2 (__mmask8 __U, __m512i __A, __m128i __B,
1845 return (__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di) __A,
1849 _mm512_setzero_si512 (),
1854 extern __inline __m512d
1855 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1856 _mm512_insertf64x2 (__m512d __A, __m128d __B, const int __imm)
1858 return (__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df) __A,
1862 _mm512_setzero_pd (),
1866 extern __inline __m512d
1867 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1868 _mm512_mask_insertf64x2 (__m512d __W, __mmask8 __U, __m512d __A,
1869 __m128d __B, const int __imm)
1871 return (__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df) __A,
1879 extern __inline __m512d
1880 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1881 _mm512_maskz_insertf64x2 (__mmask8 __U, __m512d __A, __m128d __B,
1884 return (__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df) __A,
1888 _mm512_setzero_pd (),
1893 extern __inline __mmask8
1894 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1895 _mm512_mask_fpclass_pd_mask (__mmask8 __U, __m512d __A,
1898 return (__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) __A,
1902 extern __inline __mmask8
1903 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1904 _mm512_fpclass_pd_mask (__m512d __A, const int __imm)
1906 return (__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) __A,
1911 extern __inline __mmask16
1912 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1913 _mm512_mask_fpclass_ps_mask (__mmask16 __U, __m512 __A,
1916 return (__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) __A,
1920 extern __inline __mmask16
1921 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1922 _mm512_fpclass_ps_mask (__m512 __A, const int __imm)
1924 return (__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) __A,
1930 #define _mm_range_sd(A, B, C) \
1931 ((__m128d) __builtin_ia32_rangesd128_round ((__v2df)(__m128d)(A), \
1932 (__v2df)(__m128d)(B), (int)(C), \
1933 _MM_FROUND_CUR_DIRECTION))
1935 #define _mm_range_ss(A, B, C) \
1936 ((__m128) __builtin_ia32_rangess128_round ((__v4sf)(__m128)(A), \
1937 (__v4sf)(__m128)(B), (int)(C), \
1938 _MM_FROUND_CUR_DIRECTION))
1940 #define _mm_range_round_sd(A, B, C, R) \
1941 ((__m128d) __builtin_ia32_rangesd128_round ((__v2df)(__m128d)(A), \
1942 (__v2df)(__m128d)(B), (int)(C), (R)))
1944 #define _mm_range_round_ss(A, B, C, R) \
1945 ((__m128) __builtin_ia32_rangess128_round ((__v4sf)(__m128)(A), \
1946 (__v4sf)(__m128)(B), (int)(C), (R)))
1948 #define _mm512_cvtt_roundpd_epi64(A, B) \
1949 ((__m512i)__builtin_ia32_cvttpd2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
1951 #define _mm512_mask_cvtt_roundpd_epi64(W, U, A, B) \
1952 ((__m512i)__builtin_ia32_cvttpd2qq512_mask((A), (__v8di)(W), (U), (B)))
1954 #define _mm512_maskz_cvtt_roundpd_epi64(U, A, B) \
1955 ((__m512i)__builtin_ia32_cvttpd2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
1957 #define _mm512_cvtt_roundpd_epu64(A, B) \
1958 ((__m512i)__builtin_ia32_cvttpd2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
1960 #define _mm512_mask_cvtt_roundpd_epu64(W, U, A, B) \
1961 ((__m512i)__builtin_ia32_cvttpd2uqq512_mask((A), (__v8di)(W), (U), (B)))
1963 #define _mm512_maskz_cvtt_roundpd_epu64(U, A, B) \
1964 ((__m512i)__builtin_ia32_cvttpd2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
1966 #define _mm512_cvtt_roundps_epi64(A, B) \
1967 ((__m512i)__builtin_ia32_cvttps2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
1969 #define _mm512_mask_cvtt_roundps_epi64(W, U, A, B) \
1970 ((__m512i)__builtin_ia32_cvttps2qq512_mask((A), (__v8di)(W), (U), (B)))
1972 #define _mm512_maskz_cvtt_roundps_epi64(U, A, B) \
1973 ((__m512i)__builtin_ia32_cvttps2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
1975 #define _mm512_cvtt_roundps_epu64(A, B) \
1976 ((__m512i)__builtin_ia32_cvttps2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
1978 #define _mm512_mask_cvtt_roundps_epu64(W, U, A, B) \
1979 ((__m512i)__builtin_ia32_cvttps2uqq512_mask((A), (__v8di)(W), (U), (B)))
1981 #define _mm512_maskz_cvtt_roundps_epu64(U, A, B) \
1982 ((__m512i)__builtin_ia32_cvttps2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
1984 #define _mm512_cvt_roundpd_epi64(A, B) \
1985 ((__m512i)__builtin_ia32_cvtpd2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
1987 #define _mm512_mask_cvt_roundpd_epi64(W, U, A, B) \
1988 ((__m512i)__builtin_ia32_cvtpd2qq512_mask((A), (__v8di)(W), (U), (B)))
1990 #define _mm512_maskz_cvt_roundpd_epi64(U, A, B) \
1991 ((__m512i)__builtin_ia32_cvtpd2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
1993 #define _mm512_cvt_roundpd_epu64(A, B) \
1994 ((__m512i)__builtin_ia32_cvtpd2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
1996 #define _mm512_mask_cvt_roundpd_epu64(W, U, A, B) \
1997 ((__m512i)__builtin_ia32_cvtpd2uqq512_mask((A), (__v8di)(W), (U), (B)))
1999 #define _mm512_maskz_cvt_roundpd_epu64(U, A, B) \
2000 ((__m512i)__builtin_ia32_cvtpd2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2002 #define _mm512_cvt_roundps_epi64(A, B) \
2003 ((__m512i)__builtin_ia32_cvtps2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
2005 #define _mm512_mask_cvt_roundps_epi64(W, U, A, B) \
2006 ((__m512i)__builtin_ia32_cvtps2qq512_mask((A), (__v8di)(W), (U), (B)))
2008 #define _mm512_maskz_cvt_roundps_epi64(U, A, B) \
2009 ((__m512i)__builtin_ia32_cvtps2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2011 #define _mm512_cvt_roundps_epu64(A, B) \
2012 ((__m512i)__builtin_ia32_cvtps2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
2014 #define _mm512_mask_cvt_roundps_epu64(W, U, A, B) \
2015 ((__m512i)__builtin_ia32_cvtps2uqq512_mask((A), (__v8di)(W), (U), (B)))
2017 #define _mm512_maskz_cvt_roundps_epu64(U, A, B) \
2018 ((__m512i)__builtin_ia32_cvtps2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2020 #define _mm512_cvt_roundepi64_ps(A, B) \
2021 ((__m256)__builtin_ia32_cvtqq2ps512_mask((__v8di)(A), (__v8sf)_mm256_setzero_ps(), -1, (B)))
2023 #define _mm512_mask_cvt_roundepi64_ps(W, U, A, B) \
2024 ((__m256)__builtin_ia32_cvtqq2ps512_mask((__v8di)(A), (W), (U), (B)))
2026 #define _mm512_maskz_cvt_roundepi64_ps(U, A, B) \
2027 ((__m256)__builtin_ia32_cvtqq2ps512_mask((__v8di)(A), (__v8sf)_mm256_setzero_ps(), (U), (B)))
2029 #define _mm512_cvt_roundepu64_ps(A, B) \
2030 ((__m256)__builtin_ia32_cvtuqq2ps512_mask((__v8di)(A), (__v8sf)_mm256_setzero_ps(), -1, (B)))
2032 #define _mm512_mask_cvt_roundepu64_ps(W, U, A, B) \
2033 ((__m256)__builtin_ia32_cvtuqq2ps512_mask((__v8di)(A), (W), (U), (B)))
2035 #define _mm512_maskz_cvt_roundepu64_ps(U, A, B) \
2036 ((__m256)__builtin_ia32_cvtuqq2ps512_mask((__v8di)(A), (__v8sf)_mm256_setzero_ps(), (U), (B)))
2038 #define _mm512_cvt_roundepi64_pd(A, B) \
2039 ((__m512d)__builtin_ia32_cvtqq2pd512_mask((__v8di)(A), (__v8df)_mm512_setzero_pd(), -1, (B)))
2041 #define _mm512_mask_cvt_roundepi64_pd(W, U, A, B) \
2042 ((__m512d)__builtin_ia32_cvtqq2pd512_mask((__v8di)(A), (W), (U), (B)))
2044 #define _mm512_maskz_cvt_roundepi64_pd(U, A, B) \
2045 ((__m512d)__builtin_ia32_cvtqq2pd512_mask((__v8di)(A), (__v8df)_mm512_setzero_pd(), (U), (B)))
2047 #define _mm512_cvt_roundepu64_pd(A, B) \
2048 ((__m512d)__builtin_ia32_cvtuqq2pd512_mask((__v8di)(A), (__v8df)_mm512_setzero_pd(), -1, (B)))
2050 #define _mm512_mask_cvt_roundepu64_pd(W, U, A, B) \
2051 ((__m512d)__builtin_ia32_cvtuqq2pd512_mask((__v8di)(A), (W), (U), (B)))
2053 #define _mm512_maskz_cvt_roundepu64_pd(U, A, B) \
2054 ((__m512d)__builtin_ia32_cvtuqq2pd512_mask((__v8di)(A), (__v8df)_mm512_setzero_pd(), (U), (B)))
2056 #define _mm512_reduce_pd(A, B) \
2057 ((__m512d) __builtin_ia32_reducepd512_mask ((__v8df)(__m512d)(A), \
2058 (int)(B), (__v8df)_mm512_setzero_pd(), (__mmask8)-1))
2060 #define _mm512_mask_reduce_pd(W, U, A, B) \
2061 ((__m512d) __builtin_ia32_reducepd512_mask ((__v8df)(__m512d)(A), \
2062 (int)(B), (__v8df)(__m512d)(W), (__mmask8)(U)))
2064 #define _mm512_maskz_reduce_pd(U, A, B) \
2065 ((__m512d) __builtin_ia32_reducepd512_mask ((__v8df)(__m512d)(A), \
2066 (int)(B), (__v8df)_mm512_setzero_pd(), (__mmask8)(U)))
2068 #define _mm512_reduce_ps(A, B) \
2069 ((__m512) __builtin_ia32_reduceps512_mask ((__v16sf)(__m512)(A), \
2070 (int)(B), (__v16sf)_mm512_setzero_ps(), (__mmask16)-1))
2072 #define _mm512_mask_reduce_ps(W, U, A, B) \
2073 ((__m512) __builtin_ia32_reduceps512_mask ((__v16sf)(__m512)(A), \
2074 (int)(B), (__v16sf)(__m512)(W), (__mmask16)(U)))
2076 #define _mm512_maskz_reduce_ps(U, A, B) \
2077 ((__m512) __builtin_ia32_reduceps512_mask ((__v16sf)(__m512)(A), \
2078 (int)(B), (__v16sf)_mm512_setzero_ps(), (__mmask16)(U)))
2080 #define _mm512_extractf32x8_ps(X, C) \
2081 ((__m256) __builtin_ia32_extractf32x8_mask ((__v16sf)(__m512) (X), \
2082 (int) (C), (__v8sf)(__m256) _mm256_setzero_ps(), (__mmask8)-1))
2084 #define _mm512_mask_extractf32x8_ps(W, U, X, C) \
2085 ((__m256) __builtin_ia32_extractf32x8_mask ((__v16sf)(__m512) (X), \
2086 (int) (C), (__v8sf)(__m256) (W), (__mmask8) (U)))
2088 #define _mm512_maskz_extractf32x8_ps(U, X, C) \
2089 ((__m256) __builtin_ia32_extractf32x8_mask ((__v16sf)(__m512) (X), \
2090 (int) (C), (__v8sf)(__m256) _mm256_setzero_ps(), (__mmask8) (U)))
2092 #define _mm512_extractf64x2_pd(X, C) \
2093 ((__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df)(__m512d) (X),\
2094 (int) (C), (__v2df)(__m128d) _mm_setzero_pd(), (__mmask8)-1))
2096 #define _mm512_mask_extractf64x2_pd(W, U, X, C) \
2097 ((__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df)(__m512d) (X),\
2098 (int) (C), (__v2df)(__m128d) (W), (__mmask8) (U)))
2100 #define _mm512_maskz_extractf64x2_pd(U, X, C) \
2101 ((__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df)(__m512d) (X),\
2102 (int) (C), (__v2df)(__m128d) _mm_setzero_pd(), (__mmask8) (U)))
2104 #define _mm512_extracti32x8_epi32(X, C) \
2105 ((__m256i) __builtin_ia32_extracti32x8_mask ((__v16si)(__m512i) (X), \
2106 (int) (C), (__v8si)(__m256i) _mm256_setzero_si256(), (__mmask8)-1))
2108 #define _mm512_mask_extracti32x8_epi32(W, U, X, C) \
2109 ((__m256i) __builtin_ia32_extracti32x8_mask ((__v16si)(__m512i) (X), \
2110 (int) (C), (__v8si)(__m256i) (W), (__mmask8) (U)))
2112 #define _mm512_maskz_extracti32x8_epi32(U, X, C) \
2113 ((__m256i) __builtin_ia32_extracti32x8_mask ((__v16si)(__m512i) (X), \
2114 (int) (C), (__v8si)(__m256i) _mm256_setzero_si256(), (__mmask8) (U)))
2116 #define _mm512_extracti64x2_epi64(X, C) \
2117 ((__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di)(__m512i) (X),\
2118 (int) (C), (__v2di)(__m128i) _mm_setzero_di(), (__mmask8)-1))
2120 #define _mm512_mask_extracti64x2_epi64(W, U, X, C) \
2121 ((__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di)(__m512i) (X),\
2122 (int) (C), (__v2di)(__m128i) (W), (__mmask8) (U)))
2124 #define _mm512_maskz_extracti64x2_epi64(U, X, C) \
2125 ((__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di)(__m512i) (X),\
2126 (int) (C), (__v2di)(__m128i) _mm_setzero_di(), (__mmask8) (U)))
2128 #define _mm512_range_pd(A, B, C) \
2129 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2130 (__v8df)(__m512d)(B), (int)(C), \
2131 (__v8df)_mm512_setzero_pd(), (__mmask8)-1, _MM_FROUND_CUR_DIRECTION))
2133 #define _mm512_mask_range_pd(W, U, A, B, C) \
2134 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2135 (__v8df)(__m512d)(B), (int)(C), \
2136 (__v8df)(__m512d)(W), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
2138 #define _mm512_maskz_range_pd(U, A, B, C) \
2139 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2140 (__v8df)(__m512d)(B), (int)(C), \
2141 (__v8df)_mm512_setzero_pd(), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
2143 #define _mm512_range_ps(A, B, C) \
2144 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2145 (__v16sf)(__m512)(B), (int)(C), \
2146 (__v16sf)_mm512_setzero_ps(), (__mmask16)-1, _MM_FROUND_CUR_DIRECTION))
2148 #define _mm512_mask_range_ps(W, U, A, B, C) \
2149 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2150 (__v16sf)(__m512)(B), (int)(C), \
2151 (__v16sf)(__m512)(W), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
2153 #define _mm512_maskz_range_ps(U, A, B, C) \
2154 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2155 (__v16sf)(__m512)(B), (int)(C), \
2156 (__v16sf)_mm512_setzero_ps(), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
2158 #define _mm512_range_round_pd(A, B, C, R) \
2159 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2160 (__v8df)(__m512d)(B), (int)(C), \
2161 (__v8df)_mm512_setzero_pd(), (__mmask8)-1, (R)))
2163 #define _mm512_mask_range_round_pd(W, U, A, B, C, R) \
2164 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2165 (__v8df)(__m512d)(B), (int)(C), \
2166 (__v8df)(__m512d)(W), (__mmask8)(U), (R)))
2168 #define _mm512_maskz_range_round_pd(U, A, B, C, R) \
2169 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2170 (__v8df)(__m512d)(B), (int)(C), \
2171 (__v8df)_mm512_setzero_pd(), (__mmask8)(U), (R)))
2173 #define _mm512_range_round_ps(A, B, C, R) \
2174 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2175 (__v16sf)(__m512)(B), (int)(C), \
2176 (__v16sf)_mm512_setzero_ps(), (__mmask16)-1, (R)))
2178 #define _mm512_mask_range_round_ps(W, U, A, B, C, R) \
2179 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2180 (__v16sf)(__m512)(B), (int)(C), \
2181 (__v16sf)(__m512)(W), (__mmask16)(U), (R)))
2183 #define _mm512_maskz_range_round_ps(U, A, B, C, R) \
2184 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2185 (__v16sf)(__m512)(B), (int)(C), \
2186 (__v16sf)_mm512_setzero_ps(), (__mmask16)(U), (R)))
2188 #define _mm512_insertf64x2(X, Y, C) \
2189 ((__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df)(__m512d) (X),\
2190 (__v2df)(__m128d) (Y), (int) (C), (__v8df)(__m512d) (X), \
2193 #define _mm512_mask_insertf64x2(W, U, X, Y, C) \
2194 ((__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df)(__m512d) (X),\
2195 (__v2df)(__m128d) (Y), (int) (C), (__v8df)(__m512d) (W), \
2198 #define _mm512_maskz_insertf64x2(U, X, Y, C) \
2199 ((__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df)(__m512d) (X),\
2200 (__v2df)(__m128d) (Y), (int) (C), \
2201 (__v8df)(__m512d) _mm512_setzero_pd(), (__mmask8) (U)))
2203 #define _mm512_inserti64x2(X, Y, C) \
2204 ((__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di)(__m512i) (X),\
2205 (__v2di)(__m128i) (Y), (int) (C), (__v8di)(__m512i) (X), (__mmask8)-1))
2207 #define _mm512_mask_inserti64x2(W, U, X, Y, C) \
2208 ((__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di)(__m512i) (X),\
2209 (__v2di)(__m128i) (Y), (int) (C), (__v8di)(__m512i) (W), \
2212 #define _mm512_maskz_inserti64x2(U, X, Y, C) \
2213 ((__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di)(__m512i) (X),\
2214 (__v2di)(__m128i) (Y), (int) (C), \
2215 (__v8di)(__m512i) _mm512_setzero_si512 (), (__mmask8) (U)))
2217 #define _mm512_insertf32x8(X, Y, C) \
2218 ((__m512) __builtin_ia32_insertf32x8_mask ((__v16sf)(__m512) (X), \
2219 (__v8sf)(__m256) (Y), (int) (C),\
2220 (__v16sf)(__m512)_mm512_setzero_ps(),\
2223 #define _mm512_mask_insertf32x8(W, U, X, Y, C) \
2224 ((__m512) __builtin_ia32_insertf32x8_mask ((__v16sf)(__m512) (X), \
2225 (__v8sf)(__m256) (Y), (int) (C),\
2226 (__v16sf)(__m512)(W),\
2229 #define _mm512_maskz_insertf32x8(U, X, Y, C) \
2230 ((__m512) __builtin_ia32_insertf32x8_mask ((__v16sf)(__m512) (X), \
2231 (__v8sf)(__m256) (Y), (int) (C),\
2232 (__v16sf)(__m512)_mm512_setzero_ps(),\
2235 #define _mm512_inserti32x8(X, Y, C) \
2236 ((__m512i) __builtin_ia32_inserti32x8_mask ((__v16si)(__m512i) (X), \
2237 (__v8si)(__m256i) (Y), (int) (C),\
2238 (__v16si)(__m512i)_mm512_setzero_si512 (),\
2241 #define _mm512_mask_inserti32x8(W, U, X, Y, C) \
2242 ((__m512i) __builtin_ia32_inserti32x8_mask ((__v16si)(__m512i) (X), \
2243 (__v8si)(__m256i) (Y), (int) (C),\
2244 (__v16si)(__m512i)(W),\
2247 #define _mm512_maskz_inserti32x8(U, X, Y, C) \
2248 ((__m512i) __builtin_ia32_inserti32x8_mask ((__v16si)(__m512i) (X), \
2249 (__v8si)(__m256i) (Y), (int) (C),\
2250 (__v16si)(__m512i)_mm512_setzero_si512 (),\
2253 #define _mm_fpclass_ss_mask(X, C) \
2254 ((__mmask8) __builtin_ia32_fpclassss ((__v4sf) (__m128) (X), (int) (C))) \
2256 #define _mm_fpclass_sd_mask(X, C) \
2257 ((__mmask8) __builtin_ia32_fpclasssd ((__v2df) (__m128d) (X), (int) (C))) \
2259 #define _mm512_mask_fpclass_pd_mask(u, X, C) \
2260 ((__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) (__m512d) (X), \
2261 (int) (C), (__mmask8)(u)))
2263 #define _mm512_mask_fpclass_ps_mask(u, x, c) \
2264 ((__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) (__m512) (x),\
2265 (int) (c),(__mmask8)(u)))
2267 #define _mm512_fpclass_pd_mask(X, C) \
2268 ((__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) (__m512d) (X), \
2269 (int) (C), (__mmask8)-1))
2271 #define _mm512_fpclass_ps_mask(x, c) \
2272 ((__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) (__m512) (x),\
2273 (int) (c),(__mmask8)-1))
2275 #define _mm_reduce_sd(A, B, C) \
2276 ((__m128d) __builtin_ia32_reducesd ((__v2df)(__m128d)(A), \
2277 (__v2df)(__m128d)(B), (int)(C))) \
2279 #define _mm_reduce_ss(A, B, C) \
2280 ((__m128) __builtin_ia32_reducess ((__v4sf)(__m128)(A), \
2281 (__v4sf)(__m128)(A), (int)(C))) \
2285 #ifdef __DISABLE_AVX512DQ__
2286 #undef __DISABLE_AVX512DQ__
2287 #pragma GCC pop_options
2288 #endif /* __DISABLE_AVX512DQ__ */
2290 #endif /* _AVX512DQINTRIN_H_INCLUDED */