2 Free Software Foundation, Inc.
4 This file is part of GCC.
6 GCC is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3, or (at your option)
11 GCC is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 Under Section 7 of GPL version 3, you are granted additional
17 permissions described in the GCC Runtime Library Exception, version
18 3.1, as published by the Free Software Foundation.
20 You should have received a copy of the GNU General Public License and
21 a copy of the GCC Runtime Library Exception along with this program;
22 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
23 <http://www.gnu.org/licenses/>. */
25 #ifndef _IMMINTRIN_H_INCLUDED
26 #error "Never use <avx512dqintrin.h> directly; include <immintrin.h> instead."
29 #ifndef _AVX512DQINTRIN_H_INCLUDED
30 #define _AVX512DQINTRIN_H_INCLUDED
33 #pragma GCC push_options
34 #pragma GCC target("avx512dq")
35 #define __DISABLE_AVX512DQ__
36 #endif /* __AVX512DQ__ */
38 extern __inline __m512d
39 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
40 _mm512_broadcast_f64x2 (__m128d __A
)
42 return (__m512d
) __builtin_ia32_broadcastf64x2_512_mask ((__v2df
)
44 _mm512_undefined_pd(),
49 extern __inline __m512d
50 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
51 _mm512_mask_broadcast_f64x2 (__m512d __O
, __mmask8 __M
, __m128d __A
)
53 return (__m512d
) __builtin_ia32_broadcastf64x2_512_mask ((__v2df
)
59 extern __inline __m512d
60 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
61 _mm512_maskz_broadcast_f64x2 (__mmask8 __M
, __m128d __A
)
63 return (__m512d
) __builtin_ia32_broadcastf64x2_512_mask ((__v2df
)
70 extern __inline __m512i
71 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
72 _mm512_broadcast_i64x2 (__m128i __A
)
74 return (__m512i
) __builtin_ia32_broadcasti64x2_512_mask ((__v2di
)
76 _mm512_undefined_si512(),
81 extern __inline __m512i
82 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
83 _mm512_mask_broadcast_i64x2 (__m512i __O
, __mmask8 __M
, __m128i __A
)
85 return (__m512i
) __builtin_ia32_broadcasti64x2_512_mask ((__v2di
)
91 extern __inline __m512i
92 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
93 _mm512_maskz_broadcast_i64x2 (__mmask8 __M
, __m128i __A
)
95 return (__m512i
) __builtin_ia32_broadcasti64x2_512_mask ((__v2di
)
98 _mm512_setzero_si512 (),
102 extern __inline __m512
103 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
104 _mm512_broadcast_f32x2 (__m128 __A
)
106 return (__m512
) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf
) __A
,
107 (__v16sf
)_mm512_undefined_ps(),
112 extern __inline __m512
113 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
114 _mm512_mask_broadcast_f32x2 (__m512 __O
, __mmask16 __M
, __m128 __A
)
116 return (__m512
) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf
) __A
,
121 extern __inline __m512
122 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
123 _mm512_maskz_broadcast_f32x2 (__mmask16 __M
, __m128 __A
)
125 return (__m512
) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf
) __A
,
127 _mm512_setzero_ps (),
131 extern __inline __m512i
132 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
133 _mm512_broadcast_i32x2 (__m128i __A
)
135 return (__m512i
) __builtin_ia32_broadcasti32x2_512_mask ((__v4si
)
137 (__v16si
)_mm512_undefined_si512(),
142 extern __inline __m512i
143 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
144 _mm512_mask_broadcast_i32x2 (__m512i __O
, __mmask16 __M
, __m128i __A
)
146 return (__m512i
) __builtin_ia32_broadcasti32x2_512_mask ((__v4si
)
152 extern __inline __m512i
153 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
154 _mm512_maskz_broadcast_i32x2 (__mmask16 __M
, __m128i __A
)
156 return (__m512i
) __builtin_ia32_broadcasti32x2_512_mask ((__v4si
)
159 _mm512_setzero_si512 (),
163 extern __inline __m512
164 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
165 _mm512_broadcast_f32x8 (__m256 __A
)
167 return (__m512
) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf
) __A
,
168 _mm512_undefined_ps(),
173 extern __inline __m512
174 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
175 _mm512_mask_broadcast_f32x8 (__m512 __O
, __mmask16 __M
, __m256 __A
)
177 return (__m512
) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf
) __A
,
182 extern __inline __m512
183 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
184 _mm512_maskz_broadcast_f32x8 (__mmask16 __M
, __m256 __A
)
186 return (__m512
) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf
) __A
,
188 _mm512_setzero_ps (),
192 extern __inline __m512i
193 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
194 _mm512_broadcast_i32x8 (__m256i __A
)
196 return (__m512i
) __builtin_ia32_broadcasti32x8_512_mask ((__v8si
)
198 (__v16si
)_mm512_undefined_si512(),
203 extern __inline __m512i
204 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
205 _mm512_mask_broadcast_i32x8 (__m512i __O
, __mmask16 __M
, __m256i __A
)
207 return (__m512i
) __builtin_ia32_broadcasti32x8_512_mask ((__v8si
)
213 extern __inline __m512i
214 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
215 _mm512_maskz_broadcast_i32x8 (__mmask16 __M
, __m256i __A
)
217 return (__m512i
) __builtin_ia32_broadcasti32x8_512_mask ((__v8si
)
220 _mm512_setzero_si512 (),
224 extern __inline __m512i
225 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
226 _mm512_mullo_epi64 (__m512i __A
, __m512i __B
)
228 return (__m512i
) ((__v8du
) __A
* (__v8du
) __B
);
231 extern __inline __m512i
232 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
233 _mm512_mask_mullo_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
,
236 return (__m512i
) __builtin_ia32_pmullq512_mask ((__v8di
) __A
,
242 extern __inline __m512i
243 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
244 _mm512_maskz_mullo_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
246 return (__m512i
) __builtin_ia32_pmullq512_mask ((__v8di
) __A
,
249 _mm512_setzero_si512 (),
253 extern __inline __m512d
254 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
255 _mm512_xor_pd (__m512d __A
, __m512d __B
)
257 return (__m512d
) __builtin_ia32_xorpd512_mask ((__v8df
) __A
,
260 _mm512_setzero_pd (),
264 extern __inline __m512d
265 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
266 _mm512_mask_xor_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
269 return (__m512d
) __builtin_ia32_xorpd512_mask ((__v8df
) __A
,
275 extern __inline __m512d
276 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
277 _mm512_maskz_xor_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
279 return (__m512d
) __builtin_ia32_xorpd512_mask ((__v8df
) __A
,
282 _mm512_setzero_pd (),
286 extern __inline __m512
287 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
288 _mm512_xor_ps (__m512 __A
, __m512 __B
)
290 return (__m512
) __builtin_ia32_xorps512_mask ((__v16sf
) __A
,
293 _mm512_setzero_ps (),
297 extern __inline __m512
298 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
299 _mm512_mask_xor_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
301 return (__m512
) __builtin_ia32_xorps512_mask ((__v16sf
) __A
,
307 extern __inline __m512
308 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
309 _mm512_maskz_xor_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
311 return (__m512
) __builtin_ia32_xorps512_mask ((__v16sf
) __A
,
314 _mm512_setzero_ps (),
318 extern __inline __m512d
319 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
320 _mm512_or_pd (__m512d __A
, __m512d __B
)
322 return (__m512d
) __builtin_ia32_orpd512_mask ((__v8df
) __A
,
325 _mm512_setzero_pd (),
329 extern __inline __m512d
330 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
331 _mm512_mask_or_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
333 return (__m512d
) __builtin_ia32_orpd512_mask ((__v8df
) __A
,
339 extern __inline __m512d
340 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
341 _mm512_maskz_or_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
343 return (__m512d
) __builtin_ia32_orpd512_mask ((__v8df
) __A
,
346 _mm512_setzero_pd (),
350 extern __inline __m512
351 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
352 _mm512_or_ps (__m512 __A
, __m512 __B
)
354 return (__m512
) __builtin_ia32_orps512_mask ((__v16sf
) __A
,
357 _mm512_setzero_ps (),
361 extern __inline __m512
362 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
363 _mm512_mask_or_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
365 return (__m512
) __builtin_ia32_orps512_mask ((__v16sf
) __A
,
371 extern __inline __m512
372 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
373 _mm512_maskz_or_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
375 return (__m512
) __builtin_ia32_orps512_mask ((__v16sf
) __A
,
378 _mm512_setzero_ps (),
382 extern __inline __m512d
383 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
384 _mm512_and_pd (__m512d __A
, __m512d __B
)
386 return (__m512d
) __builtin_ia32_andpd512_mask ((__v8df
) __A
,
389 _mm512_setzero_pd (),
393 extern __inline __m512d
394 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
395 _mm512_mask_and_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
398 return (__m512d
) __builtin_ia32_andpd512_mask ((__v8df
) __A
,
404 extern __inline __m512d
405 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
406 _mm512_maskz_and_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
408 return (__m512d
) __builtin_ia32_andpd512_mask ((__v8df
) __A
,
411 _mm512_setzero_pd (),
415 extern __inline __m512
416 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
417 _mm512_and_ps (__m512 __A
, __m512 __B
)
419 return (__m512
) __builtin_ia32_andps512_mask ((__v16sf
) __A
,
422 _mm512_setzero_ps (),
426 extern __inline __m512
427 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
428 _mm512_mask_and_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
430 return (__m512
) __builtin_ia32_andps512_mask ((__v16sf
) __A
,
436 extern __inline __m512
437 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
438 _mm512_maskz_and_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
440 return (__m512
) __builtin_ia32_andps512_mask ((__v16sf
) __A
,
443 _mm512_setzero_ps (),
447 extern __inline __m512d
448 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
449 _mm512_andnot_pd (__m512d __A
, __m512d __B
)
451 return (__m512d
) __builtin_ia32_andnpd512_mask ((__v8df
) __A
,
454 _mm512_setzero_pd (),
458 extern __inline __m512d
459 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
460 _mm512_mask_andnot_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
463 return (__m512d
) __builtin_ia32_andnpd512_mask ((__v8df
) __A
,
469 extern __inline __m512d
470 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
471 _mm512_maskz_andnot_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
473 return (__m512d
) __builtin_ia32_andnpd512_mask ((__v8df
) __A
,
476 _mm512_setzero_pd (),
480 extern __inline __m512
481 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
482 _mm512_andnot_ps (__m512 __A
, __m512 __B
)
484 return (__m512
) __builtin_ia32_andnps512_mask ((__v16sf
) __A
,
487 _mm512_setzero_ps (),
491 extern __inline __m512
492 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
493 _mm512_mask_andnot_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
496 return (__m512
) __builtin_ia32_andnps512_mask ((__v16sf
) __A
,
502 extern __inline __m512
503 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
504 _mm512_maskz_andnot_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
506 return (__m512
) __builtin_ia32_andnps512_mask ((__v16sf
) __A
,
509 _mm512_setzero_ps (),
513 extern __inline __mmask16
514 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
515 _mm512_movepi32_mask (__m512i __A
)
517 return (__mmask16
) __builtin_ia32_cvtd2mask512 ((__v16si
) __A
);
520 extern __inline __mmask8
521 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
522 _mm512_movepi64_mask (__m512i __A
)
524 return (__mmask8
) __builtin_ia32_cvtq2mask512 ((__v8di
) __A
);
527 extern __inline __m512i
528 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
529 _mm512_movm_epi32 (__mmask16 __A
)
531 return (__m512i
) __builtin_ia32_cvtmask2d512 (__A
);
534 extern __inline __m512i
535 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
536 _mm512_movm_epi64 (__mmask8 __A
)
538 return (__m512i
) __builtin_ia32_cvtmask2q512 (__A
);
541 extern __inline __m512i
542 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
543 _mm512_cvttpd_epi64 (__m512d __A
)
545 return (__m512i
) __builtin_ia32_cvttpd2qq512_mask ((__v8df
) __A
,
547 _mm512_setzero_si512 (),
549 _MM_FROUND_CUR_DIRECTION
);
552 extern __inline __m512i
553 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
554 _mm512_mask_cvttpd_epi64 (__m512i __W
, __mmask8 __U
, __m512d __A
)
556 return (__m512i
) __builtin_ia32_cvttpd2qq512_mask ((__v8df
) __A
,
559 _MM_FROUND_CUR_DIRECTION
);
562 extern __inline __m512i
563 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
564 _mm512_maskz_cvttpd_epi64 (__mmask8 __U
, __m512d __A
)
566 return (__m512i
) __builtin_ia32_cvttpd2qq512_mask ((__v8df
) __A
,
568 _mm512_setzero_si512 (),
570 _MM_FROUND_CUR_DIRECTION
);
573 extern __inline __m512i
574 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
575 _mm512_cvttpd_epu64 (__m512d __A
)
577 return (__m512i
) __builtin_ia32_cvttpd2uqq512_mask ((__v8df
) __A
,
579 _mm512_setzero_si512 (),
581 _MM_FROUND_CUR_DIRECTION
);
584 extern __inline __m512i
585 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
586 _mm512_mask_cvttpd_epu64 (__m512i __W
, __mmask8 __U
, __m512d __A
)
588 return (__m512i
) __builtin_ia32_cvttpd2uqq512_mask ((__v8df
) __A
,
591 _MM_FROUND_CUR_DIRECTION
);
594 extern __inline __m512i
595 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
596 _mm512_maskz_cvttpd_epu64 (__mmask8 __U
, __m512d __A
)
598 return (__m512i
) __builtin_ia32_cvttpd2uqq512_mask ((__v8df
) __A
,
600 _mm512_setzero_si512 (),
602 _MM_FROUND_CUR_DIRECTION
);
605 extern __inline __m512i
606 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
607 _mm512_cvttps_epi64 (__m256 __A
)
609 return (__m512i
) __builtin_ia32_cvttps2qq512_mask ((__v8sf
) __A
,
611 _mm512_setzero_si512 (),
613 _MM_FROUND_CUR_DIRECTION
);
616 extern __inline __m512i
617 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
618 _mm512_mask_cvttps_epi64 (__m512i __W
, __mmask8 __U
, __m256 __A
)
620 return (__m512i
) __builtin_ia32_cvttps2qq512_mask ((__v8sf
) __A
,
623 _MM_FROUND_CUR_DIRECTION
);
626 extern __inline __m512i
627 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
628 _mm512_maskz_cvttps_epi64 (__mmask8 __U
, __m256 __A
)
630 return (__m512i
) __builtin_ia32_cvttps2qq512_mask ((__v8sf
) __A
,
632 _mm512_setzero_si512 (),
634 _MM_FROUND_CUR_DIRECTION
);
637 extern __inline __m512i
638 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
639 _mm512_cvttps_epu64 (__m256 __A
)
641 return (__m512i
) __builtin_ia32_cvttps2uqq512_mask ((__v8sf
) __A
,
643 _mm512_setzero_si512 (),
645 _MM_FROUND_CUR_DIRECTION
);
648 extern __inline __m512i
649 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
650 _mm512_mask_cvttps_epu64 (__m512i __W
, __mmask8 __U
, __m256 __A
)
652 return (__m512i
) __builtin_ia32_cvttps2uqq512_mask ((__v8sf
) __A
,
655 _MM_FROUND_CUR_DIRECTION
);
658 extern __inline __m512i
659 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
660 _mm512_maskz_cvttps_epu64 (__mmask8 __U
, __m256 __A
)
662 return (__m512i
) __builtin_ia32_cvttps2uqq512_mask ((__v8sf
) __A
,
664 _mm512_setzero_si512 (),
666 _MM_FROUND_CUR_DIRECTION
);
669 extern __inline __m512i
670 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
671 _mm512_cvtpd_epi64 (__m512d __A
)
673 return (__m512i
) __builtin_ia32_cvtpd2qq512_mask ((__v8df
) __A
,
675 _mm512_setzero_si512 (),
677 _MM_FROUND_CUR_DIRECTION
);
680 extern __inline __m512i
681 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
682 _mm512_mask_cvtpd_epi64 (__m512i __W
, __mmask8 __U
, __m512d __A
)
684 return (__m512i
) __builtin_ia32_cvtpd2qq512_mask ((__v8df
) __A
,
687 _MM_FROUND_CUR_DIRECTION
);
690 extern __inline __m512i
691 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
692 _mm512_maskz_cvtpd_epi64 (__mmask8 __U
, __m512d __A
)
694 return (__m512i
) __builtin_ia32_cvtpd2qq512_mask ((__v8df
) __A
,
696 _mm512_setzero_si512 (),
698 _MM_FROUND_CUR_DIRECTION
);
701 extern __inline __m512i
702 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
703 _mm512_cvtpd_epu64 (__m512d __A
)
705 return (__m512i
) __builtin_ia32_cvtpd2uqq512_mask ((__v8df
) __A
,
707 _mm512_setzero_si512 (),
709 _MM_FROUND_CUR_DIRECTION
);
712 extern __inline __m512i
713 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
714 _mm512_mask_cvtpd_epu64 (__m512i __W
, __mmask8 __U
, __m512d __A
)
716 return (__m512i
) __builtin_ia32_cvtpd2uqq512_mask ((__v8df
) __A
,
719 _MM_FROUND_CUR_DIRECTION
);
722 extern __inline __m512i
723 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
724 _mm512_maskz_cvtpd_epu64 (__mmask8 __U
, __m512d __A
)
726 return (__m512i
) __builtin_ia32_cvtpd2uqq512_mask ((__v8df
) __A
,
728 _mm512_setzero_si512 (),
730 _MM_FROUND_CUR_DIRECTION
);
733 extern __inline __m512i
734 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
735 _mm512_cvtps_epi64 (__m256 __A
)
737 return (__m512i
) __builtin_ia32_cvtps2qq512_mask ((__v8sf
) __A
,
739 _mm512_setzero_si512 (),
741 _MM_FROUND_CUR_DIRECTION
);
744 extern __inline __m512i
745 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
746 _mm512_mask_cvtps_epi64 (__m512i __W
, __mmask8 __U
, __m256 __A
)
748 return (__m512i
) __builtin_ia32_cvtps2qq512_mask ((__v8sf
) __A
,
751 _MM_FROUND_CUR_DIRECTION
);
754 extern __inline __m512i
755 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
756 _mm512_maskz_cvtps_epi64 (__mmask8 __U
, __m256 __A
)
758 return (__m512i
) __builtin_ia32_cvtps2qq512_mask ((__v8sf
) __A
,
760 _mm512_setzero_si512 (),
762 _MM_FROUND_CUR_DIRECTION
);
765 extern __inline __m512i
766 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
767 _mm512_cvtps_epu64 (__m256 __A
)
769 return (__m512i
) __builtin_ia32_cvtps2uqq512_mask ((__v8sf
) __A
,
771 _mm512_setzero_si512 (),
773 _MM_FROUND_CUR_DIRECTION
);
776 extern __inline __m512i
777 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
778 _mm512_mask_cvtps_epu64 (__m512i __W
, __mmask8 __U
, __m256 __A
)
780 return (__m512i
) __builtin_ia32_cvtps2uqq512_mask ((__v8sf
) __A
,
783 _MM_FROUND_CUR_DIRECTION
);
786 extern __inline __m512i
787 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
788 _mm512_maskz_cvtps_epu64 (__mmask8 __U
, __m256 __A
)
790 return (__m512i
) __builtin_ia32_cvtps2uqq512_mask ((__v8sf
) __A
,
792 _mm512_setzero_si512 (),
794 _MM_FROUND_CUR_DIRECTION
);
797 extern __inline __m256
798 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
799 _mm512_cvtepi64_ps (__m512i __A
)
801 return (__m256
) __builtin_ia32_cvtqq2ps512_mask ((__v8di
) __A
,
803 _mm256_setzero_ps (),
805 _MM_FROUND_CUR_DIRECTION
);
808 extern __inline __m256
809 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
810 _mm512_mask_cvtepi64_ps (__m256 __W
, __mmask8 __U
, __m512i __A
)
812 return (__m256
) __builtin_ia32_cvtqq2ps512_mask ((__v8di
) __A
,
815 _MM_FROUND_CUR_DIRECTION
);
818 extern __inline __m256
819 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
820 _mm512_maskz_cvtepi64_ps (__mmask8 __U
, __m512i __A
)
822 return (__m256
) __builtin_ia32_cvtqq2ps512_mask ((__v8di
) __A
,
824 _mm256_setzero_ps (),
826 _MM_FROUND_CUR_DIRECTION
);
829 extern __inline __m256
830 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
831 _mm512_cvtepu64_ps (__m512i __A
)
833 return (__m256
) __builtin_ia32_cvtuqq2ps512_mask ((__v8di
) __A
,
835 _mm256_setzero_ps (),
837 _MM_FROUND_CUR_DIRECTION
);
840 extern __inline __m256
841 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
842 _mm512_mask_cvtepu64_ps (__m256 __W
, __mmask8 __U
, __m512i __A
)
844 return (__m256
) __builtin_ia32_cvtuqq2ps512_mask ((__v8di
) __A
,
847 _MM_FROUND_CUR_DIRECTION
);
850 extern __inline __m256
851 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
852 _mm512_maskz_cvtepu64_ps (__mmask8 __U
, __m512i __A
)
854 return (__m256
) __builtin_ia32_cvtuqq2ps512_mask ((__v8di
) __A
,
856 _mm256_setzero_ps (),
858 _MM_FROUND_CUR_DIRECTION
);
861 extern __inline __m512d
862 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
863 _mm512_cvtepi64_pd (__m512i __A
)
865 return (__m512d
) __builtin_ia32_cvtqq2pd512_mask ((__v8di
) __A
,
867 _mm512_setzero_pd (),
869 _MM_FROUND_CUR_DIRECTION
);
872 extern __inline __m512d
873 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
874 _mm512_mask_cvtepi64_pd (__m512d __W
, __mmask8 __U
, __m512i __A
)
876 return (__m512d
) __builtin_ia32_cvtqq2pd512_mask ((__v8di
) __A
,
879 _MM_FROUND_CUR_DIRECTION
);
882 extern __inline __m512d
883 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
884 _mm512_maskz_cvtepi64_pd (__mmask8 __U
, __m512i __A
)
886 return (__m512d
) __builtin_ia32_cvtqq2pd512_mask ((__v8di
) __A
,
888 _mm512_setzero_pd (),
890 _MM_FROUND_CUR_DIRECTION
);
893 extern __inline __m512d
894 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
895 _mm512_cvtepu64_pd (__m512i __A
)
897 return (__m512d
) __builtin_ia32_cvtuqq2pd512_mask ((__v8di
) __A
,
899 _mm512_setzero_pd (),
901 _MM_FROUND_CUR_DIRECTION
);
904 extern __inline __m512d
905 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
906 _mm512_mask_cvtepu64_pd (__m512d __W
, __mmask8 __U
, __m512i __A
)
908 return (__m512d
) __builtin_ia32_cvtuqq2pd512_mask ((__v8di
) __A
,
911 _MM_FROUND_CUR_DIRECTION
);
914 extern __inline __m512d
915 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
916 _mm512_maskz_cvtepu64_pd (__mmask8 __U
, __m512i __A
)
918 return (__m512d
) __builtin_ia32_cvtuqq2pd512_mask ((__v8di
) __A
,
920 _mm512_setzero_pd (),
922 _MM_FROUND_CUR_DIRECTION
);
926 extern __inline __m512d
927 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
928 _mm512_range_pd (__m512d __A
, __m512d __B
, int __C
)
930 return (__m512d
) __builtin_ia32_rangepd512_mask ((__v8df
) __A
,
933 _mm512_setzero_pd (),
935 _MM_FROUND_CUR_DIRECTION
);
938 extern __inline __m512d
939 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
940 _mm512_mask_range_pd (__m512d __W
, __mmask8 __U
,
941 __m512d __A
, __m512d __B
, int __C
)
943 return (__m512d
) __builtin_ia32_rangepd512_mask ((__v8df
) __A
,
947 _MM_FROUND_CUR_DIRECTION
);
950 extern __inline __m512d
951 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
952 _mm512_maskz_range_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, int __C
)
954 return (__m512d
) __builtin_ia32_rangepd512_mask ((__v8df
) __A
,
957 _mm512_setzero_pd (),
959 _MM_FROUND_CUR_DIRECTION
);
962 extern __inline __m512
963 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
964 _mm512_range_ps (__m512 __A
, __m512 __B
, int __C
)
966 return (__m512
) __builtin_ia32_rangeps512_mask ((__v16sf
) __A
,
969 _mm512_setzero_ps (),
971 _MM_FROUND_CUR_DIRECTION
);
974 extern __inline __m512
975 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
976 _mm512_mask_range_ps (__m512 __W
, __mmask16 __U
,
977 __m512 __A
, __m512 __B
, int __C
)
979 return (__m512
) __builtin_ia32_rangeps512_mask ((__v16sf
) __A
,
983 _MM_FROUND_CUR_DIRECTION
);
986 extern __inline __m512
987 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
988 _mm512_maskz_range_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, int __C
)
990 return (__m512
) __builtin_ia32_rangeps512_mask ((__v16sf
) __A
,
993 _mm512_setzero_ps (),
995 _MM_FROUND_CUR_DIRECTION
);
998 extern __inline __m128d
999 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1000 _mm_reduce_sd (__m128d __A
, __m128d __B
, int __C
)
1002 return (__m128d
) __builtin_ia32_reducesd ((__v2df
) __A
,
1006 extern __inline __m128
1007 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1008 _mm_reduce_ss (__m128 __A
, __m128 __B
, int __C
)
1010 return (__m128
) __builtin_ia32_reducess ((__v4sf
) __A
,
1014 extern __inline __m128d
1015 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1016 _mm_range_sd (__m128d __A
, __m128d __B
, int __C
)
1018 return (__m128d
) __builtin_ia32_rangesd128_round ((__v2df
) __A
,
1020 _MM_FROUND_CUR_DIRECTION
);
1024 extern __inline __m128
1025 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1026 _mm_range_ss (__m128 __A
, __m128 __B
, int __C
)
1028 return (__m128
) __builtin_ia32_rangess128_round ((__v4sf
) __A
,
1030 _MM_FROUND_CUR_DIRECTION
);
1033 extern __inline __m128d
1034 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1035 _mm_range_round_sd (__m128d __A
, __m128d __B
, int __C
, const int __R
)
1037 return (__m128d
) __builtin_ia32_rangesd128_round ((__v2df
) __A
,
1042 extern __inline __m128
1043 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1044 _mm_range_round_ss (__m128 __A
, __m128 __B
, int __C
, const int __R
)
1046 return (__m128
) __builtin_ia32_rangess128_round ((__v4sf
) __A
,
1051 extern __inline __mmask8
1052 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1053 _mm_fpclass_ss_mask (__m128 __A
, const int __imm
)
1055 return (__mmask8
) __builtin_ia32_fpclassss ((__v4sf
) __A
, __imm
);
1058 extern __inline __mmask8
1059 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1060 _mm_fpclass_sd_mask (__m128d __A
, const int __imm
)
1062 return (__mmask8
) __builtin_ia32_fpclasssd ((__v2df
) __A
, __imm
);
1065 extern __inline __m512i
1066 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1067 _mm512_cvtt_roundpd_epi64 (__m512d __A
, const int __R
)
1069 return (__m512i
) __builtin_ia32_cvttpd2qq512_mask ((__v8df
) __A
,
1071 _mm512_setzero_si512 (),
1076 extern __inline __m512i
1077 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1078 _mm512_mask_cvtt_roundpd_epi64 (__m512i __W
, __mmask8 __U
, __m512d __A
,
1081 return (__m512i
) __builtin_ia32_cvttpd2qq512_mask ((__v8df
) __A
,
1087 extern __inline __m512i
1088 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1089 _mm512_maskz_cvtt_roundpd_epi64 (__mmask8 __U
, __m512d __A
,
1092 return (__m512i
) __builtin_ia32_cvttpd2qq512_mask ((__v8df
) __A
,
1094 _mm512_setzero_si512 (),
1099 extern __inline __m512i
1100 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1101 _mm512_cvtt_roundpd_epu64 (__m512d __A
, const int __R
)
1103 return (__m512i
) __builtin_ia32_cvttpd2uqq512_mask ((__v8df
) __A
,
1105 _mm512_setzero_si512 (),
1110 extern __inline __m512i
1111 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1112 _mm512_mask_cvtt_roundpd_epu64 (__m512i __W
, __mmask8 __U
, __m512d __A
,
1115 return (__m512i
) __builtin_ia32_cvttpd2uqq512_mask ((__v8df
) __A
,
1121 extern __inline __m512i
1122 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1123 _mm512_maskz_cvtt_roundpd_epu64 (__mmask8 __U
, __m512d __A
,
1126 return (__m512i
) __builtin_ia32_cvttpd2uqq512_mask ((__v8df
) __A
,
1128 _mm512_setzero_si512 (),
1133 extern __inline __m512i
1134 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1135 _mm512_cvtt_roundps_epi64 (__m256 __A
, const int __R
)
1137 return (__m512i
) __builtin_ia32_cvttps2qq512_mask ((__v8sf
) __A
,
1139 _mm512_setzero_si512 (),
1144 extern __inline __m512i
1145 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1146 _mm512_mask_cvtt_roundps_epi64 (__m512i __W
, __mmask8 __U
, __m256 __A
,
1149 return (__m512i
) __builtin_ia32_cvttps2qq512_mask ((__v8sf
) __A
,
1155 extern __inline __m512i
1156 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1157 _mm512_maskz_cvtt_roundps_epi64 (__mmask8 __U
, __m256 __A
,
1160 return (__m512i
) __builtin_ia32_cvttps2qq512_mask ((__v8sf
) __A
,
1162 _mm512_setzero_si512 (),
1167 extern __inline __m512i
1168 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1169 _mm512_cvtt_roundps_epu64 (__m256 __A
, const int __R
)
1171 return (__m512i
) __builtin_ia32_cvttps2uqq512_mask ((__v8sf
) __A
,
1173 _mm512_setzero_si512 (),
1178 extern __inline __m512i
1179 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1180 _mm512_mask_cvtt_roundps_epu64 (__m512i __W
, __mmask8 __U
, __m256 __A
,
1183 return (__m512i
) __builtin_ia32_cvttps2uqq512_mask ((__v8sf
) __A
,
1189 extern __inline __m512i
1190 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1191 _mm512_maskz_cvtt_roundps_epu64 (__mmask8 __U
, __m256 __A
,
1194 return (__m512i
) __builtin_ia32_cvttps2uqq512_mask ((__v8sf
) __A
,
1196 _mm512_setzero_si512 (),
1201 extern __inline __m512i
1202 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1203 _mm512_cvt_roundpd_epi64 (__m512d __A
, const int __R
)
1205 return (__m512i
) __builtin_ia32_cvtpd2qq512_mask ((__v8df
) __A
,
1207 _mm512_setzero_si512 (),
1212 extern __inline __m512i
1213 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1214 _mm512_mask_cvt_roundpd_epi64 (__m512i __W
, __mmask8 __U
, __m512d __A
,
1217 return (__m512i
) __builtin_ia32_cvtpd2qq512_mask ((__v8df
) __A
,
1223 extern __inline __m512i
1224 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1225 _mm512_maskz_cvt_roundpd_epi64 (__mmask8 __U
, __m512d __A
,
1228 return (__m512i
) __builtin_ia32_cvtpd2qq512_mask ((__v8df
) __A
,
1230 _mm512_setzero_si512 (),
1235 extern __inline __m512i
1236 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1237 _mm512_cvt_roundpd_epu64 (__m512d __A
, const int __R
)
1239 return (__m512i
) __builtin_ia32_cvtpd2uqq512_mask ((__v8df
) __A
,
1241 _mm512_setzero_si512 (),
1246 extern __inline __m512i
1247 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1248 _mm512_mask_cvt_roundpd_epu64 (__m512i __W
, __mmask8 __U
, __m512d __A
,
1251 return (__m512i
) __builtin_ia32_cvtpd2uqq512_mask ((__v8df
) __A
,
1257 extern __inline __m512i
1258 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1259 _mm512_maskz_cvt_roundpd_epu64 (__mmask8 __U
, __m512d __A
,
1262 return (__m512i
) __builtin_ia32_cvtpd2uqq512_mask ((__v8df
) __A
,
1264 _mm512_setzero_si512 (),
1269 extern __inline __m512i
1270 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1271 _mm512_cvt_roundps_epi64 (__m256 __A
, const int __R
)
1273 return (__m512i
) __builtin_ia32_cvtps2qq512_mask ((__v8sf
) __A
,
1275 _mm512_setzero_si512 (),
1280 extern __inline __m512i
1281 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1282 _mm512_mask_cvt_roundps_epi64 (__m512i __W
, __mmask8 __U
, __m256 __A
,
1285 return (__m512i
) __builtin_ia32_cvtps2qq512_mask ((__v8sf
) __A
,
1291 extern __inline __m512i
1292 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1293 _mm512_maskz_cvt_roundps_epi64 (__mmask8 __U
, __m256 __A
,
1296 return (__m512i
) __builtin_ia32_cvtps2qq512_mask ((__v8sf
) __A
,
1298 _mm512_setzero_si512 (),
1303 extern __inline __m512i
1304 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1305 _mm512_cvt_roundps_epu64 (__m256 __A
, const int __R
)
1307 return (__m512i
) __builtin_ia32_cvtps2uqq512_mask ((__v8sf
) __A
,
1309 _mm512_setzero_si512 (),
1314 extern __inline __m512i
1315 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1316 _mm512_mask_cvt_roundps_epu64 (__m512i __W
, __mmask8 __U
, __m256 __A
,
1319 return (__m512i
) __builtin_ia32_cvtps2uqq512_mask ((__v8sf
) __A
,
1325 extern __inline __m512i
1326 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1327 _mm512_maskz_cvt_roundps_epu64 (__mmask8 __U
, __m256 __A
,
1330 return (__m512i
) __builtin_ia32_cvtps2uqq512_mask ((__v8sf
) __A
,
1332 _mm512_setzero_si512 (),
1337 extern __inline __m256
1338 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1339 _mm512_cvt_roundepi64_ps (__m512i __A
, const int __R
)
1341 return (__m256
) __builtin_ia32_cvtqq2ps512_mask ((__v8di
) __A
,
1343 _mm256_setzero_ps (),
1348 extern __inline __m256
1349 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1350 _mm512_mask_cvt_roundepi64_ps (__m256 __W
, __mmask8 __U
, __m512i __A
,
1353 return (__m256
) __builtin_ia32_cvtqq2ps512_mask ((__v8di
) __A
,
1359 extern __inline __m256
1360 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1361 _mm512_maskz_cvt_roundepi64_ps (__mmask8 __U
, __m512i __A
,
1364 return (__m256
) __builtin_ia32_cvtqq2ps512_mask ((__v8di
) __A
,
1366 _mm256_setzero_ps (),
1371 extern __inline __m256
1372 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1373 _mm512_cvt_roundepu64_ps (__m512i __A
, const int __R
)
1375 return (__m256
) __builtin_ia32_cvtuqq2ps512_mask ((__v8di
) __A
,
1377 _mm256_setzero_ps (),
1382 extern __inline __m256
1383 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1384 _mm512_mask_cvt_roundepu64_ps (__m256 __W
, __mmask8 __U
, __m512i __A
,
1387 return (__m256
) __builtin_ia32_cvtuqq2ps512_mask ((__v8di
) __A
,
1393 extern __inline __m256
1394 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1395 _mm512_maskz_cvt_roundepu64_ps (__mmask8 __U
, __m512i __A
,
1398 return (__m256
) __builtin_ia32_cvtuqq2ps512_mask ((__v8di
) __A
,
1400 _mm256_setzero_ps (),
1405 extern __inline __m512d
1406 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1407 _mm512_cvt_roundepi64_pd (__m512i __A
, const int __R
)
1409 return (__m512d
) __builtin_ia32_cvtqq2pd512_mask ((__v8di
) __A
,
1411 _mm512_setzero_pd (),
1416 extern __inline __m512d
1417 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1418 _mm512_mask_cvt_roundepi64_pd (__m512d __W
, __mmask8 __U
, __m512i __A
,
1421 return (__m512d
) __builtin_ia32_cvtqq2pd512_mask ((__v8di
) __A
,
1427 extern __inline __m512d
1428 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1429 _mm512_maskz_cvt_roundepi64_pd (__mmask8 __U
, __m512i __A
,
1432 return (__m512d
) __builtin_ia32_cvtqq2pd512_mask ((__v8di
) __A
,
1434 _mm512_setzero_pd (),
1439 extern __inline __m512d
1440 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1441 _mm512_cvt_roundepu64_pd (__m512i __A
, const int __R
)
1443 return (__m512d
) __builtin_ia32_cvtuqq2pd512_mask ((__v8di
) __A
,
1445 _mm512_setzero_pd (),
1450 extern __inline __m512d
1451 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1452 _mm512_mask_cvt_roundepu64_pd (__m512d __W
, __mmask8 __U
, __m512i __A
,
1455 return (__m512d
) __builtin_ia32_cvtuqq2pd512_mask ((__v8di
) __A
,
1461 extern __inline __m512d
1462 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1463 _mm512_maskz_cvt_roundepu64_pd (__mmask8 __U
, __m512i __A
,
1466 return (__m512d
) __builtin_ia32_cvtuqq2pd512_mask ((__v8di
) __A
,
1468 _mm512_setzero_pd (),
1473 extern __inline __m512d
1474 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1475 _mm512_reduce_pd (__m512d __A
, int __B
)
1477 return (__m512d
) __builtin_ia32_reducepd512_mask ((__v8df
) __A
, __B
,
1479 _mm512_setzero_pd (),
1483 extern __inline __m512d
1484 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1485 _mm512_mask_reduce_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, int __B
)
1487 return (__m512d
) __builtin_ia32_reducepd512_mask ((__v8df
) __A
, __B
,
1492 extern __inline __m512d
1493 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1494 _mm512_maskz_reduce_pd (__mmask8 __U
, __m512d __A
, int __B
)
1496 return (__m512d
) __builtin_ia32_reducepd512_mask ((__v8df
) __A
, __B
,
1498 _mm512_setzero_pd (),
1502 extern __inline __m512
1503 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1504 _mm512_reduce_ps (__m512 __A
, int __B
)
1506 return (__m512
) __builtin_ia32_reduceps512_mask ((__v16sf
) __A
, __B
,
1508 _mm512_setzero_ps (),
1512 extern __inline __m512
1513 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1514 _mm512_mask_reduce_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, int __B
)
1516 return (__m512
) __builtin_ia32_reduceps512_mask ((__v16sf
) __A
, __B
,
1521 extern __inline __m512
1522 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1523 _mm512_maskz_reduce_ps (__mmask16 __U
, __m512 __A
, int __B
)
1525 return (__m512
) __builtin_ia32_reduceps512_mask ((__v16sf
) __A
, __B
,
1527 _mm512_setzero_ps (),
1531 extern __inline __m256
1532 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1533 _mm512_extractf32x8_ps (__m512 __A
, const int __imm
)
1535 return (__m256
) __builtin_ia32_extractf32x8_mask ((__v16sf
) __A
,
1538 _mm256_setzero_ps (),
1542 extern __inline __m256
1543 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1544 _mm512_mask_extractf32x8_ps (__m256 __W
, __mmask8 __U
, __m512 __A
,
1547 return (__m256
) __builtin_ia32_extractf32x8_mask ((__v16sf
) __A
,
1553 extern __inline __m256
1554 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1555 _mm512_maskz_extractf32x8_ps (__mmask8 __U
, __m512 __A
,
1558 return (__m256
) __builtin_ia32_extractf32x8_mask ((__v16sf
) __A
,
1561 _mm256_setzero_ps (),
1565 extern __inline __m128d
1566 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1567 _mm512_extractf64x2_pd (__m512d __A
, const int __imm
)
1569 return (__m128d
) __builtin_ia32_extractf64x2_512_mask ((__v8df
) __A
,
1577 extern __inline __m128d
1578 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1579 _mm512_mask_extractf64x2_pd (__m128d __W
, __mmask8 __U
, __m512d __A
,
1582 return (__m128d
) __builtin_ia32_extractf64x2_512_mask ((__v8df
) __A
,
1589 extern __inline __m128d
1590 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1591 _mm512_maskz_extractf64x2_pd (__mmask8 __U
, __m512d __A
,
1594 return (__m128d
) __builtin_ia32_extractf64x2_512_mask ((__v8df
) __A
,
1602 extern __inline __m256i
1603 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1604 _mm512_extracti32x8_epi32 (__m512i __A
, const int __imm
)
1606 return (__m256i
) __builtin_ia32_extracti32x8_mask ((__v16si
) __A
,
1609 _mm256_setzero_si256 (),
1613 extern __inline __m256i
1614 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1615 _mm512_mask_extracti32x8_epi32 (__m256i __W
, __mmask8 __U
, __m512i __A
,
1618 return (__m256i
) __builtin_ia32_extracti32x8_mask ((__v16si
) __A
,
1624 extern __inline __m256i
1625 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1626 _mm512_maskz_extracti32x8_epi32 (__mmask8 __U
, __m512i __A
,
1629 return (__m256i
) __builtin_ia32_extracti32x8_mask ((__v16si
) __A
,
1632 _mm256_setzero_si256 (),
1636 extern __inline __m128i
1637 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1638 _mm512_extracti64x2_epi64 (__m512i __A
, const int __imm
)
1640 return (__m128i
) __builtin_ia32_extracti64x2_512_mask ((__v8di
) __A
,
1648 extern __inline __m128i
1649 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1650 _mm512_mask_extracti64x2_epi64 (__m128i __W
, __mmask8 __U
, __m512i __A
,
1653 return (__m128i
) __builtin_ia32_extracti64x2_512_mask ((__v8di
) __A
,
1660 extern __inline __m128i
1661 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1662 _mm512_maskz_extracti64x2_epi64 (__mmask8 __U
, __m512i __A
,
1665 return (__m128i
) __builtin_ia32_extracti64x2_512_mask ((__v8di
) __A
,
1673 extern __inline __m512d
1674 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1675 _mm512_range_round_pd (__m512d __A
, __m512d __B
, int __C
,
1678 return (__m512d
) __builtin_ia32_rangepd512_mask ((__v8df
) __A
,
1681 _mm512_setzero_pd (),
1686 extern __inline __m512d
1687 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1688 _mm512_mask_range_round_pd (__m512d __W
, __mmask8 __U
,
1689 __m512d __A
, __m512d __B
, int __C
,
1692 return (__m512d
) __builtin_ia32_rangepd512_mask ((__v8df
) __A
,
1699 extern __inline __m512d
1700 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1701 _mm512_maskz_range_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
1702 int __C
, const int __R
)
1704 return (__m512d
) __builtin_ia32_rangepd512_mask ((__v8df
) __A
,
1707 _mm512_setzero_pd (),
1712 extern __inline __m512
1713 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1714 _mm512_range_round_ps (__m512 __A
, __m512 __B
, int __C
, const int __R
)
1716 return (__m512
) __builtin_ia32_rangeps512_mask ((__v16sf
) __A
,
1719 _mm512_setzero_ps (),
1724 extern __inline __m512
1725 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1726 _mm512_mask_range_round_ps (__m512 __W
, __mmask16 __U
,
1727 __m512 __A
, __m512 __B
, int __C
,
1730 return (__m512
) __builtin_ia32_rangeps512_mask ((__v16sf
) __A
,
1737 extern __inline __m512
1738 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1739 _mm512_maskz_range_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
1740 int __C
, const int __R
)
1742 return (__m512
) __builtin_ia32_rangeps512_mask ((__v16sf
) __A
,
1745 _mm512_setzero_ps (),
1750 extern __inline __m512i
1751 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1752 _mm512_inserti32x8 (__m512i __A
, __m256i __B
, const int __imm
)
1754 return (__m512i
) __builtin_ia32_inserti32x8_mask ((__v16si
) __A
,
1758 _mm512_setzero_si512 (),
1762 extern __inline __m512i
1763 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1764 _mm512_mask_inserti32x8 (__m512i __W
, __mmask16 __U
, __m512i __A
,
1765 __m256i __B
, const int __imm
)
1767 return (__m512i
) __builtin_ia32_inserti32x8_mask ((__v16si
) __A
,
1774 extern __inline __m512i
1775 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1776 _mm512_maskz_inserti32x8 (__mmask16 __U
, __m512i __A
, __m256i __B
,
1779 return (__m512i
) __builtin_ia32_inserti32x8_mask ((__v16si
) __A
,
1783 _mm512_setzero_si512 (),
1787 extern __inline __m512
1788 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1789 _mm512_insertf32x8 (__m512 __A
, __m256 __B
, const int __imm
)
1791 return (__m512
) __builtin_ia32_insertf32x8_mask ((__v16sf
) __A
,
1795 _mm512_setzero_ps (),
1799 extern __inline __m512
1800 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1801 _mm512_mask_insertf32x8 (__m512 __W
, __mmask16 __U
, __m512 __A
,
1802 __m256 __B
, const int __imm
)
1804 return (__m512
) __builtin_ia32_insertf32x8_mask ((__v16sf
) __A
,
1811 extern __inline __m512
1812 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1813 _mm512_maskz_insertf32x8 (__mmask16 __U
, __m512 __A
, __m256 __B
,
1816 return (__m512
) __builtin_ia32_insertf32x8_mask ((__v16sf
) __A
,
1820 _mm512_setzero_ps (),
1824 extern __inline __m512i
1825 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1826 _mm512_inserti64x2 (__m512i __A
, __m128i __B
, const int __imm
)
1828 return (__m512i
) __builtin_ia32_inserti64x2_512_mask ((__v8di
) __A
,
1832 _mm512_setzero_si512 (),
1837 extern __inline __m512i
1838 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1839 _mm512_mask_inserti64x2 (__m512i __W
, __mmask8 __U
, __m512i __A
,
1840 __m128i __B
, const int __imm
)
1842 return (__m512i
) __builtin_ia32_inserti64x2_512_mask ((__v8di
) __A
,
1850 extern __inline __m512i
1851 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1852 _mm512_maskz_inserti64x2 (__mmask8 __U
, __m512i __A
, __m128i __B
,
1855 return (__m512i
) __builtin_ia32_inserti64x2_512_mask ((__v8di
) __A
,
1859 _mm512_setzero_si512 (),
1864 extern __inline __m512d
1865 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1866 _mm512_insertf64x2 (__m512d __A
, __m128d __B
, const int __imm
)
1868 return (__m512d
) __builtin_ia32_insertf64x2_512_mask ((__v8df
) __A
,
1872 _mm512_setzero_pd (),
1877 extern __inline __m512d
1878 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1879 _mm512_mask_insertf64x2 (__m512d __W
, __mmask8 __U
, __m512d __A
,
1880 __m128d __B
, const int __imm
)
1882 return (__m512d
) __builtin_ia32_insertf64x2_512_mask ((__v8df
) __A
,
1890 extern __inline __m512d
1891 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1892 _mm512_maskz_insertf64x2 (__mmask8 __U
, __m512d __A
, __m128d __B
,
1895 return (__m512d
) __builtin_ia32_insertf64x2_512_mask ((__v8df
) __A
,
1899 _mm512_setzero_pd (),
1904 extern __inline __mmask8
1905 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1906 _mm512_mask_fpclass_pd_mask (__mmask8 __U
, __m512d __A
,
1909 return (__mmask8
) __builtin_ia32_fpclasspd512_mask ((__v8df
) __A
,
1913 extern __inline __mmask8
1914 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1915 _mm512_fpclass_pd_mask (__m512d __A
, const int __imm
)
1917 return (__mmask8
) __builtin_ia32_fpclasspd512_mask ((__v8df
) __A
,
1922 extern __inline __mmask16
1923 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1924 _mm512_mask_fpclass_ps_mask (__mmask16 __U
, __m512 __A
,
1927 return (__mmask16
) __builtin_ia32_fpclassps512_mask ((__v16sf
) __A
,
1931 extern __inline __mmask16
1932 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1933 _mm512_fpclass_ps_mask (__m512 __A
, const int __imm
)
1935 return (__mmask16
) __builtin_ia32_fpclassps512_mask ((__v16sf
) __A
,
1942 #define _mm_range_sd(A, B, C) \
1943 ((__m128d) __builtin_ia32_rangesd128_round ((__v2df)(__m128d)(A), \
1944 (__v2df)(__m128d)(B), (int)(C), \
1945 _MM_FROUND_CUR_DIRECTION))
1947 #define _mm_range_ss(A, B, C) \
1948 ((__m128) __builtin_ia32_rangess128_round ((__v4sf)(__m128)(A), \
1949 (__v4sf)(__m128)(B), (int)(C), \
1950 _MM_FROUND_CUR_DIRECTION))
1952 #define _mm_range_round_sd(A, B, C, R) \
1953 ((__m128d) __builtin_ia32_rangesd128_round ((__v2df)(__m128d)(A), \
1954 (__v2df)(__m128d)(B), (int)(C), (R)))
1956 #define _mm_range_round_ss(A, B, C, R) \
1957 ((__m128) __builtin_ia32_rangess128_round ((__v4sf)(__m128)(A), \
1958 (__v4sf)(__m128)(B), (int)(C), (R)))
1960 #define _mm512_cvtt_roundpd_epi64(A, B) \
1961 ((__m512i)__builtin_ia32_cvttpd2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
1963 #define _mm512_mask_cvtt_roundpd_epi64(W, U, A, B) \
1964 ((__m512i)__builtin_ia32_cvttpd2qq512_mask((A), (__v8di)(W), (U), (B)))
1966 #define _mm512_maskz_cvtt_roundpd_epi64(U, A, B) \
1967 ((__m512i)__builtin_ia32_cvttpd2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
1969 #define _mm512_cvtt_roundpd_epu64(A, B) \
1970 ((__m512i)__builtin_ia32_cvttpd2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
1972 #define _mm512_mask_cvtt_roundpd_epu64(W, U, A, B) \
1973 ((__m512i)__builtin_ia32_cvttpd2uqq512_mask((A), (__v8di)(W), (U), (B)))
1975 #define _mm512_maskz_cvtt_roundpd_epu64(U, A, B) \
1976 ((__m512i)__builtin_ia32_cvttpd2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
1978 #define _mm512_cvtt_roundps_epi64(A, B) \
1979 ((__m512i)__builtin_ia32_cvttps2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
1981 #define _mm512_mask_cvtt_roundps_epi64(W, U, A, B) \
1982 ((__m512i)__builtin_ia32_cvttps2qq512_mask((A), (__v8di)(W), (U), (B)))
1984 #define _mm512_maskz_cvtt_roundps_epi64(U, A, B) \
1985 ((__m512i)__builtin_ia32_cvttps2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
1987 #define _mm512_cvtt_roundps_epu64(A, B) \
1988 ((__m512i)__builtin_ia32_cvttps2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
1990 #define _mm512_mask_cvtt_roundps_epu64(W, U, A, B) \
1991 ((__m512i)__builtin_ia32_cvttps2uqq512_mask((A), (__v8di)(W), (U), (B)))
1993 #define _mm512_maskz_cvtt_roundps_epu64(U, A, B) \
1994 ((__m512i)__builtin_ia32_cvttps2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
1996 #define _mm512_cvt_roundpd_epi64(A, B) \
1997 ((__m512i)__builtin_ia32_cvtpd2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
1999 #define _mm512_mask_cvt_roundpd_epi64(W, U, A, B) \
2000 ((__m512i)__builtin_ia32_cvtpd2qq512_mask((A), (__v8di)(W), (U), (B)))
2002 #define _mm512_maskz_cvt_roundpd_epi64(U, A, B) \
2003 ((__m512i)__builtin_ia32_cvtpd2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2005 #define _mm512_cvt_roundpd_epu64(A, B) \
2006 ((__m512i)__builtin_ia32_cvtpd2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
2008 #define _mm512_mask_cvt_roundpd_epu64(W, U, A, B) \
2009 ((__m512i)__builtin_ia32_cvtpd2uqq512_mask((A), (__v8di)(W), (U), (B)))
2011 #define _mm512_maskz_cvt_roundpd_epu64(U, A, B) \
2012 ((__m512i)__builtin_ia32_cvtpd2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2014 #define _mm512_cvt_roundps_epi64(A, B) \
2015 ((__m512i)__builtin_ia32_cvtps2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
2017 #define _mm512_mask_cvt_roundps_epi64(W, U, A, B) \
2018 ((__m512i)__builtin_ia32_cvtps2qq512_mask((A), (__v8di)(W), (U), (B)))
2020 #define _mm512_maskz_cvt_roundps_epi64(U, A, B) \
2021 ((__m512i)__builtin_ia32_cvtps2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2023 #define _mm512_cvt_roundps_epu64(A, B) \
2024 ((__m512i)__builtin_ia32_cvtps2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
2026 #define _mm512_mask_cvt_roundps_epu64(W, U, A, B) \
2027 ((__m512i)__builtin_ia32_cvtps2uqq512_mask((A), (__v8di)(W), (U), (B)))
2029 #define _mm512_maskz_cvt_roundps_epu64(U, A, B) \
2030 ((__m512i)__builtin_ia32_cvtps2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2032 #define _mm512_cvt_roundepi64_ps(A, B) \
2033 ((__m256)__builtin_ia32_cvtqq2ps512_mask((__v8di)(A), (__v8sf)_mm256_setzero_ps(), -1, (B)))
2035 #define _mm512_mask_cvt_roundepi64_ps(W, U, A, B) \
2036 ((__m256)__builtin_ia32_cvtqq2ps512_mask((__v8di)(A), (W), (U), (B)))
2038 #define _mm512_maskz_cvt_roundepi64_ps(U, A, B) \
2039 ((__m256)__builtin_ia32_cvtqq2ps512_mask((__v8di)(A), (__v8sf)_mm256_setzero_ps(), (U), (B)))
2041 #define _mm512_cvt_roundepu64_ps(A, B) \
2042 ((__m256)__builtin_ia32_cvtuqq2ps512_mask((__v8di)(A), (__v8sf)_mm256_setzero_ps(), -1, (B)))
2044 #define _mm512_mask_cvt_roundepu64_ps(W, U, A, B) \
2045 ((__m256)__builtin_ia32_cvtuqq2ps512_mask((__v8di)(A), (W), (U), (B)))
2047 #define _mm512_maskz_cvt_roundepu64_ps(U, A, B) \
2048 ((__m256)__builtin_ia32_cvtuqq2ps512_mask((__v8di)(A), (__v8sf)_mm256_setzero_ps(), (U), (B)))
2050 #define _mm512_cvt_roundepi64_pd(A, B) \
2051 ((__m512d)__builtin_ia32_cvtqq2pd512_mask((__v8di)(A), (__v8df)_mm512_setzero_pd(), -1, (B)))
2053 #define _mm512_mask_cvt_roundepi64_pd(W, U, A, B) \
2054 ((__m512d)__builtin_ia32_cvtqq2pd512_mask((__v8di)(A), (W), (U), (B)))
2056 #define _mm512_maskz_cvt_roundepi64_pd(U, A, B) \
2057 ((__m512d)__builtin_ia32_cvtqq2pd512_mask((__v8di)(A), (__v8df)_mm512_setzero_pd(), (U), (B)))
2059 #define _mm512_cvt_roundepu64_pd(A, B) \
2060 ((__m512d)__builtin_ia32_cvtuqq2pd512_mask((__v8di)(A), (__v8df)_mm512_setzero_pd(), -1, (B)))
2062 #define _mm512_mask_cvt_roundepu64_pd(W, U, A, B) \
2063 ((__m512d)__builtin_ia32_cvtuqq2pd512_mask((__v8di)(A), (W), (U), (B)))
2065 #define _mm512_maskz_cvt_roundepu64_pd(U, A, B) \
2066 ((__m512d)__builtin_ia32_cvtuqq2pd512_mask((__v8di)(A), (__v8df)_mm512_setzero_pd(), (U), (B)))
2068 #define _mm512_reduce_pd(A, B) \
2069 ((__m512d) __builtin_ia32_reducepd512_mask ((__v8df)(__m512d)(A), \
2070 (int)(B), (__v8df)_mm512_setzero_pd(), (__mmask8)-1))
2072 #define _mm512_mask_reduce_pd(W, U, A, B) \
2073 ((__m512d) __builtin_ia32_reducepd512_mask ((__v8df)(__m512d)(A), \
2074 (int)(B), (__v8df)(__m512d)(W), (__mmask8)(U)))
2076 #define _mm512_maskz_reduce_pd(U, A, B) \
2077 ((__m512d) __builtin_ia32_reducepd512_mask ((__v8df)(__m512d)(A), \
2078 (int)(B), (__v8df)_mm512_setzero_pd(), (__mmask8)(U)))
2080 #define _mm512_reduce_ps(A, B) \
2081 ((__m512) __builtin_ia32_reduceps512_mask ((__v16sf)(__m512)(A), \
2082 (int)(B), (__v16sf)_mm512_setzero_ps(), (__mmask16)-1))
2084 #define _mm512_mask_reduce_ps(W, U, A, B) \
2085 ((__m512) __builtin_ia32_reduceps512_mask ((__v16sf)(__m512)(A), \
2086 (int)(B), (__v16sf)(__m512)(W), (__mmask16)(U)))
2088 #define _mm512_maskz_reduce_ps(U, A, B) \
2089 ((__m512) __builtin_ia32_reduceps512_mask ((__v16sf)(__m512)(A), \
2090 (int)(B), (__v16sf)_mm512_setzero_ps(), (__mmask16)(U)))
2092 #define _mm512_extractf32x8_ps(X, C) \
2093 ((__m256) __builtin_ia32_extractf32x8_mask ((__v16sf)(__m512) (X), \
2094 (int) (C), (__v8sf)(__m256) _mm256_setzero_ps(), (__mmask8)-1))
2096 #define _mm512_mask_extractf32x8_ps(W, U, X, C) \
2097 ((__m256) __builtin_ia32_extractf32x8_mask ((__v16sf)(__m512) (X), \
2098 (int) (C), (__v8sf)(__m256) (W), (__mmask8) (U)))
2100 #define _mm512_maskz_extractf32x8_ps(U, X, C) \
2101 ((__m256) __builtin_ia32_extractf32x8_mask ((__v16sf)(__m512) (X), \
2102 (int) (C), (__v8sf)(__m256) _mm256_setzero_ps(), (__mmask8) (U)))
2104 #define _mm512_extractf64x2_pd(X, C) \
2105 ((__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df)(__m512d) (X),\
2106 (int) (C), (__v2df)(__m128d) _mm_setzero_pd(), (__mmask8)-1))
2108 #define _mm512_mask_extractf64x2_pd(W, U, X, C) \
2109 ((__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df)(__m512d) (X),\
2110 (int) (C), (__v2df)(__m128d) (W), (__mmask8) (U)))
2112 #define _mm512_maskz_extractf64x2_pd(U, X, C) \
2113 ((__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df)(__m512d) (X),\
2114 (int) (C), (__v2df)(__m128d) _mm_setzero_pd(), (__mmask8) (U)))
2116 #define _mm512_extracti32x8_epi32(X, C) \
2117 ((__m256i) __builtin_ia32_extracti32x8_mask ((__v16si)(__m512i) (X), \
2118 (int) (C), (__v8si)(__m256i) _mm256_setzero_si256(), (__mmask8)-1))
2120 #define _mm512_mask_extracti32x8_epi32(W, U, X, C) \
2121 ((__m256i) __builtin_ia32_extracti32x8_mask ((__v16si)(__m512i) (X), \
2122 (int) (C), (__v8si)(__m256i) (W), (__mmask8) (U)))
2124 #define _mm512_maskz_extracti32x8_epi32(U, X, C) \
2125 ((__m256i) __builtin_ia32_extracti32x8_mask ((__v16si)(__m512i) (X), \
2126 (int) (C), (__v8si)(__m256i) _mm256_setzero_si256(), (__mmask8) (U)))
2128 #define _mm512_extracti64x2_epi64(X, C) \
2129 ((__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di)(__m512i) (X),\
2130 (int) (C), (__v2di)(__m128i) _mm_setzero_di(), (__mmask8)-1))
2132 #define _mm512_mask_extracti64x2_epi64(W, U, X, C) \
2133 ((__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di)(__m512i) (X),\
2134 (int) (C), (__v2di)(__m128i) (W), (__mmask8) (U)))
2136 #define _mm512_maskz_extracti64x2_epi64(U, X, C) \
2137 ((__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di)(__m512i) (X),\
2138 (int) (C), (__v2di)(__m128i) _mm_setzero_di(), (__mmask8) (U)))
2140 #define _mm512_range_pd(A, B, C) \
2141 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2142 (__v8df)(__m512d)(B), (int)(C), \
2143 (__v8df)_mm512_setzero_pd(), (__mmask8)-1, _MM_FROUND_CUR_DIRECTION))
2145 #define _mm512_mask_range_pd(W, U, A, B, C) \
2146 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2147 (__v8df)(__m512d)(B), (int)(C), \
2148 (__v8df)(__m512d)(W), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
2150 #define _mm512_maskz_range_pd(U, A, B, C) \
2151 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2152 (__v8df)(__m512d)(B), (int)(C), \
2153 (__v8df)_mm512_setzero_pd(), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
2155 #define _mm512_range_ps(A, B, C) \
2156 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2157 (__v16sf)(__m512)(B), (int)(C), \
2158 (__v16sf)_mm512_setzero_ps(), (__mmask16)-1, _MM_FROUND_CUR_DIRECTION))
2160 #define _mm512_mask_range_ps(W, U, A, B, C) \
2161 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2162 (__v16sf)(__m512)(B), (int)(C), \
2163 (__v16sf)(__m512)(W), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
2165 #define _mm512_maskz_range_ps(U, A, B, C) \
2166 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2167 (__v16sf)(__m512)(B), (int)(C), \
2168 (__v16sf)_mm512_setzero_ps(), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
2170 #define _mm512_range_round_pd(A, B, C, R) \
2171 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2172 (__v8df)(__m512d)(B), (int)(C), \
2173 (__v8df)_mm512_setzero_pd(), (__mmask8)-1, (R)))
2175 #define _mm512_mask_range_round_pd(W, U, A, B, C, R) \
2176 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2177 (__v8df)(__m512d)(B), (int)(C), \
2178 (__v8df)(__m512d)(W), (__mmask8)(U), (R)))
2180 #define _mm512_maskz_range_round_pd(U, A, B, C, R) \
2181 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2182 (__v8df)(__m512d)(B), (int)(C), \
2183 (__v8df)_mm512_setzero_pd(), (__mmask8)(U), (R)))
2185 #define _mm512_range_round_ps(A, B, C, R) \
2186 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2187 (__v16sf)(__m512)(B), (int)(C), \
2188 (__v16sf)_mm512_setzero_ps(), (__mmask16)-1, (R)))
2190 #define _mm512_mask_range_round_ps(W, U, A, B, C, R) \
2191 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2192 (__v16sf)(__m512)(B), (int)(C), \
2193 (__v16sf)(__m512)(W), (__mmask16)(U), (R)))
2195 #define _mm512_maskz_range_round_ps(U, A, B, C, R) \
2196 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2197 (__v16sf)(__m512)(B), (int)(C), \
2198 (__v16sf)_mm512_setzero_ps(), (__mmask16)(U), (R)))
2200 #define _mm512_insertf64x2(X, Y, C) \
2201 ((__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df)(__m512d) (X),\
2202 (__v2df)(__m128d) (Y), (int) (C), (__v8df)(__m512d) (X), \
2205 #define _mm512_mask_insertf64x2(W, U, X, Y, C) \
2206 ((__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df)(__m512d) (X),\
2207 (__v2df)(__m128d) (Y), (int) (C), (__v8df)(__m512d) (W), \
2210 #define _mm512_maskz_insertf64x2(U, X, Y, C) \
2211 ((__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df)(__m512d) (X),\
2212 (__v2df)(__m128d) (Y), (int) (C), \
2213 (__v8df)(__m512d) _mm512_setzero_pd(), (__mmask8) (U)))
2215 #define _mm512_inserti64x2(X, Y, C) \
2216 ((__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di)(__m512i) (X),\
2217 (__v2di)(__m128i) (Y), (int) (C), (__v8di)(__m512i) (X), (__mmask8)-1))
2219 #define _mm512_mask_inserti64x2(W, U, X, Y, C) \
2220 ((__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di)(__m512i) (X),\
2221 (__v2di)(__m128i) (Y), (int) (C), (__v8di)(__m512i) (W), \
2224 #define _mm512_maskz_inserti64x2(U, X, Y, C) \
2225 ((__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di)(__m512i) (X),\
2226 (__v2di)(__m128i) (Y), (int) (C), \
2227 (__v8di)(__m512i) _mm512_setzero_si512 (), (__mmask8) (U)))
2229 #define _mm512_insertf32x8(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_mask_insertf32x8(W, U, X, Y, C) \
2236 ((__m512) __builtin_ia32_insertf32x8_mask ((__v16sf)(__m512) (X), \
2237 (__v8sf)(__m256) (Y), (int) (C),\
2238 (__v16sf)(__m512)(W),\
2241 #define _mm512_maskz_insertf32x8(U, X, Y, C) \
2242 ((__m512) __builtin_ia32_insertf32x8_mask ((__v16sf)(__m512) (X), \
2243 (__v8sf)(__m256) (Y), (int) (C),\
2244 (__v16sf)(__m512)_mm512_setzero_ps(),\
2247 #define _mm512_inserti32x8(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 _mm512_mask_inserti32x8(W, U, X, Y, C) \
2254 ((__m512i) __builtin_ia32_inserti32x8_mask ((__v16si)(__m512i) (X), \
2255 (__v8si)(__m256i) (Y), (int) (C),\
2256 (__v16si)(__m512i)(W),\
2259 #define _mm512_maskz_inserti32x8(U, X, Y, C) \
2260 ((__m512i) __builtin_ia32_inserti32x8_mask ((__v16si)(__m512i) (X), \
2261 (__v8si)(__m256i) (Y), (int) (C),\
2262 (__v16si)(__m512i)_mm512_setzero_si512 (),\
2265 #define _mm_fpclass_ss_mask(X, C) \
2266 ((__mmask8) __builtin_ia32_fpclassss ((__v4sf) (__m128) (X), (int) (C))) \
2268 #define _mm_fpclass_sd_mask(X, C) \
2269 ((__mmask8) __builtin_ia32_fpclasssd ((__v2df) (__m128d) (X), (int) (C))) \
2271 #define _mm512_mask_fpclass_pd_mask(u, X, C) \
2272 ((__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) (__m512d) (X), \
2273 (int) (C), (__mmask8)(u)))
2275 #define _mm512_mask_fpclass_ps_mask(u, x, c) \
2276 ((__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) (__m512) (x),\
2277 (int) (c),(__mmask8)(u)))
2279 #define _mm512_fpclass_pd_mask(X, C) \
2280 ((__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) (__m512d) (X), \
2281 (int) (C), (__mmask8)-1))
2283 #define _mm512_fpclass_ps_mask(x, c) \
2284 ((__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) (__m512) (x),\
2285 (int) (c),(__mmask8)-1))
2287 #define _mm_reduce_sd(A, B, C) \
2288 ((__m128d) __builtin_ia32_reducesd ((__v2df)(__m128d)(A), \
2289 (__v2df)(__m128d)(B), (int)(C))) \
2291 #define _mm_reduce_ss(A, B, C) \
2292 ((__m128) __builtin_ia32_reducess ((__v4sf)(__m128)(A), \
2293 (__v4sf)(__m128)(A), (int)(C))) \
2297 #ifdef __DISABLE_AVX512DQ__
2298 #undef __DISABLE_AVX512DQ__
2299 #pragma GCC pop_options
2300 #endif /* __DISABLE_AVX512DQ__ */
2302 #endif /* _AVX512DQINTRIN_H_INCLUDED */