]>
git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/config/i386/avx512dqintrin.h
1 /* Copyright (C) 2014-2024 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
31 #if !defined (__AVX512DQ__) || defined (__EVEX512__)
32 #pragma GCC push_options
33 #pragma GCC target("avx512dq,no-evex512")
34 #define __DISABLE_AVX512DQ__
35 #endif /* __AVX512DQ__ */
37 extern __inline
unsigned char
38 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
39 _ktest_mask8_u8 (__mmask8 __A
, __mmask8 __B
, unsigned char *__CF
)
41 *__CF
= (unsigned char) __builtin_ia32_ktestcqi (__A
, __B
);
42 return (unsigned char) __builtin_ia32_ktestzqi (__A
, __B
);
45 extern __inline
unsigned char
46 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
47 _ktestz_mask8_u8 (__mmask8 __A
, __mmask8 __B
)
49 return (unsigned char) __builtin_ia32_ktestzqi (__A
, __B
);
52 extern __inline
unsigned char
53 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
54 _ktestc_mask8_u8 (__mmask8 __A
, __mmask8 __B
)
56 return (unsigned char) __builtin_ia32_ktestcqi (__A
, __B
);
59 extern __inline
unsigned char
60 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
61 _ktest_mask16_u8 (__mmask16 __A
, __mmask16 __B
, unsigned char *__CF
)
63 *__CF
= (unsigned char) __builtin_ia32_ktestchi (__A
, __B
);
64 return (unsigned char) __builtin_ia32_ktestzhi (__A
, __B
);
67 extern __inline
unsigned char
68 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
69 _ktestz_mask16_u8 (__mmask16 __A
, __mmask16 __B
)
71 return (unsigned char) __builtin_ia32_ktestzhi (__A
, __B
);
74 extern __inline
unsigned char
75 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
76 _ktestc_mask16_u8 (__mmask16 __A
, __mmask16 __B
)
78 return (unsigned char) __builtin_ia32_ktestchi (__A
, __B
);
81 extern __inline
unsigned char
82 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
83 _kortest_mask8_u8 (__mmask8 __A
, __mmask8 __B
, unsigned char *__CF
)
85 *__CF
= (unsigned char) __builtin_ia32_kortestcqi (__A
, __B
);
86 return (unsigned char) __builtin_ia32_kortestzqi (__A
, __B
);
89 extern __inline
unsigned char
90 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
91 _kortestz_mask8_u8 (__mmask8 __A
, __mmask8 __B
)
93 return (unsigned char) __builtin_ia32_kortestzqi (__A
, __B
);
96 extern __inline
unsigned char
97 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
98 _kortestc_mask8_u8 (__mmask8 __A
, __mmask8 __B
)
100 return (unsigned char) __builtin_ia32_kortestcqi (__A
, __B
);
103 extern __inline __mmask8
104 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
105 _kadd_mask8 (__mmask8 __A
, __mmask8 __B
)
107 return (__mmask8
) __builtin_ia32_kaddqi ((__mmask8
) __A
, (__mmask8
) __B
);
110 extern __inline __mmask16
111 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
112 _kadd_mask16 (__mmask16 __A
, __mmask16 __B
)
114 return (__mmask16
) __builtin_ia32_kaddhi ((__mmask16
) __A
, (__mmask16
) __B
);
117 extern __inline
unsigned int
118 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
119 _cvtmask8_u32 (__mmask8 __A
)
121 return (unsigned int) __builtin_ia32_kmovb ((__mmask8
) __A
);
124 extern __inline __mmask8
125 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
126 _cvtu32_mask8 (unsigned int __A
)
128 return (__mmask8
) __builtin_ia32_kmovb ((__mmask8
) __A
);
131 extern __inline __mmask8
132 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
133 _load_mask8 (__mmask8
*__A
)
135 return (__mmask8
) __builtin_ia32_kmovb (*(__mmask8
*) __A
);
139 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
140 _store_mask8 (__mmask8
*__A
, __mmask8 __B
)
142 *(__mmask8
*) __A
= __builtin_ia32_kmovb (__B
);
145 extern __inline __mmask8
146 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
147 _knot_mask8 (__mmask8 __A
)
149 return (__mmask8
) __builtin_ia32_knotqi ((__mmask8
) __A
);
152 extern __inline __mmask8
153 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
154 _kor_mask8 (__mmask8 __A
, __mmask8 __B
)
156 return (__mmask8
) __builtin_ia32_korqi ((__mmask8
) __A
, (__mmask8
) __B
);
159 extern __inline __mmask8
160 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
161 _kxnor_mask8 (__mmask8 __A
, __mmask8 __B
)
163 return (__mmask8
) __builtin_ia32_kxnorqi ((__mmask8
) __A
, (__mmask8
) __B
);
166 extern __inline __mmask8
167 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
168 _kxor_mask8 (__mmask8 __A
, __mmask8 __B
)
170 return (__mmask8
) __builtin_ia32_kxorqi ((__mmask8
) __A
, (__mmask8
) __B
);
173 extern __inline __mmask8
174 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
175 _kand_mask8 (__mmask8 __A
, __mmask8 __B
)
177 return (__mmask8
) __builtin_ia32_kandqi ((__mmask8
) __A
, (__mmask8
) __B
);
180 extern __inline __mmask8
181 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
182 _kandn_mask8 (__mmask8 __A
, __mmask8 __B
)
184 return (__mmask8
) __builtin_ia32_kandnqi ((__mmask8
) __A
, (__mmask8
) __B
);
188 extern __inline __mmask8
189 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
190 _kshiftli_mask8 (__mmask8 __A
, unsigned int __B
)
192 return (__mmask8
) __builtin_ia32_kshiftliqi ((__mmask8
) __A
, (__mmask8
) __B
);
195 extern __inline __mmask8
196 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
197 _kshiftri_mask8 (__mmask8 __A
, unsigned int __B
)
199 return (__mmask8
) __builtin_ia32_kshiftriqi ((__mmask8
) __A
, (__mmask8
) __B
);
202 extern __inline __m128d
203 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
204 _mm_reduce_sd (__m128d __A
, __m128d __B
, int __C
)
206 return (__m128d
) __builtin_ia32_reducesd_mask ((__v2df
) __A
,
208 (__v2df
) _mm_avx512_setzero_pd (),
212 extern __inline __m128d
213 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
214 _mm_reduce_round_sd (__m128d __A
, __m128d __B
, int __C
, const int __R
)
216 return (__m128d
) __builtin_ia32_reducesd_mask_round ((__v2df
) __A
,
219 _mm_avx512_setzero_pd (),
223 extern __inline __m128d
224 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
225 _mm_mask_reduce_sd (__m128d __W
, __mmask8 __U
, __m128d __A
,
226 __m128d __B
, int __C
)
228 return (__m128d
) __builtin_ia32_reducesd_mask ((__v2df
) __A
,
234 extern __inline __m128d
235 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
236 _mm_mask_reduce_round_sd (__m128d __W
, __mmask8 __U
, __m128d __A
,
237 __m128d __B
, int __C
, const int __R
)
239 return (__m128d
) __builtin_ia32_reducesd_mask_round ((__v2df
) __A
,
245 extern __inline __m128d
246 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
247 _mm_maskz_reduce_sd (__mmask8 __U
, __m128d __A
, __m128d __B
, int __C
)
249 return (__m128d
) __builtin_ia32_reducesd_mask ((__v2df
) __A
,
251 (__v2df
) _mm_avx512_setzero_pd (),
255 extern __inline __m128d
256 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
257 _mm_maskz_reduce_round_sd (__mmask8 __U
, __m128d __A
, __m128d __B
,
258 int __C
, const int __R
)
260 return (__m128d
) __builtin_ia32_reducesd_mask_round ((__v2df
) __A
,
263 _mm_avx512_setzero_pd (),
267 extern __inline __m128
268 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
269 _mm_reduce_ss (__m128 __A
, __m128 __B
, int __C
)
271 return (__m128
) __builtin_ia32_reducess_mask ((__v4sf
) __A
,
273 (__v4sf
) _mm_avx512_setzero_ps (),
277 extern __inline __m128
278 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
279 _mm_reduce_round_ss (__m128 __A
, __m128 __B
, int __C
, const int __R
)
281 return (__m128
) __builtin_ia32_reducess_mask_round ((__v4sf
) __A
,
284 _mm_avx512_setzero_ps (),
288 extern __inline __m128
289 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
290 _mm_mask_reduce_ss (__m128 __W
, __mmask8 __U
, __m128 __A
,
293 return (__m128
) __builtin_ia32_reducess_mask ((__v4sf
) __A
,
299 extern __inline __m128
300 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
301 _mm_mask_reduce_round_ss (__m128 __W
, __mmask8 __U
, __m128 __A
,
302 __m128 __B
, int __C
, const int __R
)
304 return (__m128
) __builtin_ia32_reducess_mask_round ((__v4sf
) __A
,
310 extern __inline __m128
311 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
312 _mm_maskz_reduce_ss (__mmask8 __U
, __m128 __A
, __m128 __B
, int __C
)
314 return (__m128
) __builtin_ia32_reducess_mask ((__v4sf
) __A
,
316 (__v4sf
) _mm_avx512_setzero_ps (),
320 extern __inline __m128
321 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
322 _mm_maskz_reduce_round_ss (__mmask8 __U
, __m128 __A
, __m128 __B
,
323 int __C
, const int __R
)
325 return (__m128
) __builtin_ia32_reducess_mask_round ((__v4sf
) __A
,
328 _mm_avx512_setzero_ps (),
332 extern __inline __m128d
333 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
334 _mm_range_sd (__m128d __A
, __m128d __B
, int __C
)
336 return (__m128d
) __builtin_ia32_rangesd128_mask_round ((__v2df
) __A
,
339 _mm_avx512_setzero_pd (),
341 _MM_FROUND_CUR_DIRECTION
);
344 extern __inline __m128d
345 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
346 _mm_mask_range_sd (__m128d __W
, __mmask8 __U
, __m128d __A
, __m128d __B
, int __C
)
348 return (__m128d
) __builtin_ia32_rangesd128_mask_round ((__v2df
) __A
,
352 _MM_FROUND_CUR_DIRECTION
);
355 extern __inline __m128d
356 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
357 _mm_maskz_range_sd (__mmask8 __U
, __m128d __A
, __m128d __B
, int __C
)
359 return (__m128d
) __builtin_ia32_rangesd128_mask_round ((__v2df
) __A
,
362 _mm_avx512_setzero_pd (),
364 _MM_FROUND_CUR_DIRECTION
);
367 extern __inline __m128
368 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
369 _mm_range_ss (__m128 __A
, __m128 __B
, int __C
)
371 return (__m128
) __builtin_ia32_rangess128_mask_round ((__v4sf
) __A
,
374 _mm_avx512_setzero_ps (),
376 _MM_FROUND_CUR_DIRECTION
);
379 extern __inline __m128
380 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
381 _mm_mask_range_ss (__m128 __W
, __mmask8 __U
, __m128 __A
, __m128 __B
, int __C
)
383 return (__m128
) __builtin_ia32_rangess128_mask_round ((__v4sf
) __A
,
387 _MM_FROUND_CUR_DIRECTION
);
390 extern __inline __m128
391 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
392 _mm_maskz_range_ss (__mmask8 __U
, __m128 __A
, __m128 __B
, int __C
)
394 return (__m128
) __builtin_ia32_rangess128_mask_round ((__v4sf
) __A
,
397 _mm_avx512_setzero_ps (),
399 _MM_FROUND_CUR_DIRECTION
);
402 extern __inline __m128d
403 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
404 _mm_range_round_sd (__m128d __A
, __m128d __B
, int __C
, const int __R
)
406 return (__m128d
) __builtin_ia32_rangesd128_mask_round ((__v2df
) __A
,
409 _mm_avx512_setzero_pd (),
413 extern __inline __m128d
414 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
415 _mm_mask_range_round_sd (__m128d __W
, __mmask8 __U
, __m128d __A
, __m128d __B
,
416 int __C
, const int __R
)
418 return (__m128d
) __builtin_ia32_rangesd128_mask_round ((__v2df
) __A
,
421 (__mmask8
) __U
, __R
);
424 extern __inline __m128d
425 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
426 _mm_maskz_range_round_sd (__mmask8 __U
, __m128d __A
, __m128d __B
, int __C
,
429 return (__m128d
) __builtin_ia32_rangesd128_mask_round ((__v2df
) __A
,
432 _mm_avx512_setzero_pd (),
433 (__mmask8
) __U
, __R
);
436 extern __inline __m128
437 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
438 _mm_range_round_ss (__m128 __A
, __m128 __B
, int __C
, const int __R
)
440 return (__m128
) __builtin_ia32_rangess128_mask_round ((__v4sf
) __A
,
443 _mm_avx512_setzero_ps (),
447 extern __inline __m128
448 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
449 _mm_mask_range_round_ss (__m128 __W
, __mmask8 __U
, __m128 __A
, __m128 __B
,
450 int __C
, const int __R
)
452 return (__m128
) __builtin_ia32_rangess128_mask_round ((__v4sf
) __A
,
455 (__mmask8
) __U
, __R
);
458 extern __inline __m128
459 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
460 _mm_maskz_range_round_ss (__mmask8 __U
, __m128 __A
, __m128 __B
, int __C
,
463 return (__m128
) __builtin_ia32_rangess128_mask_round ((__v4sf
) __A
,
466 _mm_avx512_setzero_ps (),
467 (__mmask8
) __U
, __R
);
470 extern __inline __mmask8
471 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
472 _mm_fpclass_ss_mask (__m128 __A
, const int __imm
)
474 return (__mmask8
) __builtin_ia32_fpclassss_mask ((__v4sf
) __A
, __imm
,
478 extern __inline __mmask8
479 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
480 _mm_fpclass_sd_mask (__m128d __A
, const int __imm
)
482 return (__mmask8
) __builtin_ia32_fpclasssd_mask ((__v2df
) __A
, __imm
,
486 extern __inline __mmask8
487 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
488 _mm_mask_fpclass_ss_mask (__mmask8 __U
, __m128 __A
, const int __imm
)
490 return (__mmask8
) __builtin_ia32_fpclassss_mask ((__v4sf
) __A
, __imm
, __U
);
493 extern __inline __mmask8
494 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
495 _mm_mask_fpclass_sd_mask (__mmask8 __U
, __m128d __A
, const int __imm
)
497 return (__mmask8
) __builtin_ia32_fpclasssd_mask ((__v2df
) __A
, __imm
, __U
);
501 #define _kshiftli_mask8(X, Y) \
502 ((__mmask8) __builtin_ia32_kshiftliqi ((__mmask8)(X), (__mmask8)(Y)))
504 #define _kshiftri_mask8(X, Y) \
505 ((__mmask8) __builtin_ia32_kshiftriqi ((__mmask8)(X), (__mmask8)(Y)))
507 #define _mm_range_sd(A, B, C) \
508 ((__m128d) __builtin_ia32_rangesd128_mask_round ((__v2df)(__m128d)(A), \
509 (__v2df)(__m128d)(B), (int)(C), (__v2df) _mm_avx512_setzero_pd (), \
510 (__mmask8) -1, _MM_FROUND_CUR_DIRECTION))
512 #define _mm_mask_range_sd(W, U, A, B, C) \
513 ((__m128d) __builtin_ia32_rangesd128_mask_round ((__v2df)(__m128d)(A), \
514 (__v2df)(__m128d)(B), (int)(C), (__v2df)(__m128d)(W), \
515 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
517 #define _mm_maskz_range_sd(U, A, B, C) \
518 ((__m128d) __builtin_ia32_rangesd128_mask_round ((__v2df)(__m128d)(A), \
519 (__v2df)(__m128d)(B), (int)(C), (__v2df) _mm_avx512_setzero_pd (), \
520 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
522 #define _mm_range_ss(A, B, C) \
523 ((__m128) __builtin_ia32_rangess128_mask_round ((__v4sf)(__m128)(A), \
524 (__v4sf)(__m128)(B), (int)(C), (__v4sf) _mm_avx512_setzero_ps (), \
525 (__mmask8) -1, _MM_FROUND_CUR_DIRECTION))
527 #define _mm_mask_range_ss(W, U, A, B, C) \
528 ((__m128) __builtin_ia32_rangess128_mask_round ((__v4sf)(__m128)(A), \
529 (__v4sf)(__m128)(B), (int)(C), (__v4sf)(__m128)(W), \
530 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
532 #define _mm_maskz_range_ss(U, A, B, C) \
533 ((__m128) __builtin_ia32_rangess128_mask_round ((__v4sf)(__m128)(A), \
534 (__v4sf)(__m128)(B), (int)(C), (__v4sf) _mm_avx512_setzero_ps (), \
535 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
537 #define _mm_range_round_sd(A, B, C, R) \
538 ((__m128d) __builtin_ia32_rangesd128_mask_round ((__v2df)(__m128d)(A), \
539 (__v2df)(__m128d)(B), (int)(C), (__v2df) _mm_avx512_setzero_pd (), \
542 #define _mm_mask_range_round_sd(W, U, A, B, C, R) \
543 ((__m128d) __builtin_ia32_rangesd128_mask_round ((__v2df)(__m128d)(A), \
544 (__v2df)(__m128d)(B), (int)(C), (__v2df)(__m128d)(W), \
547 #define _mm_maskz_range_round_sd(U, A, B, C, R) \
548 ((__m128d) __builtin_ia32_rangesd128_mask_round ((__v2df)(__m128d)(A), \
549 (__v2df)(__m128d)(B), (int)(C), (__v2df) _mm_avx512_setzero_pd (), \
552 #define _mm_range_round_ss(A, B, C, R) \
553 ((__m128) __builtin_ia32_rangess128_mask_round ((__v4sf)(__m128)(A), \
554 (__v4sf)(__m128)(B), (int)(C), (__v4sf) _mm_avx512_setzero_ps (), \
557 #define _mm_mask_range_round_ss(W, U, A, B, C, R) \
558 ((__m128) __builtin_ia32_rangess128_mask_round ((__v4sf)(__m128)(A), \
559 (__v4sf)(__m128)(B), (int)(C), (__v4sf)(__m128)(W), \
562 #define _mm_maskz_range_round_ss(U, A, B, C, R) \
563 ((__m128) __builtin_ia32_rangess128_mask_round ((__v4sf)(__m128)(A), \
564 (__v4sf)(__m128)(B), (int)(C), (__v4sf) _mm_avx512_setzero_ps (), \
567 #define _mm_fpclass_ss_mask(X, C) \
568 ((__mmask8) __builtin_ia32_fpclassss_mask ((__v4sf) (__m128) (X), \
569 (int) (C), (__mmask8) (-1))) \
571 #define _mm_fpclass_sd_mask(X, C) \
572 ((__mmask8) __builtin_ia32_fpclasssd_mask ((__v2df) (__m128d) (X), \
573 (int) (C), (__mmask8) (-1))) \
575 #define _mm_mask_fpclass_ss_mask(X, C, U) \
576 ((__mmask8) __builtin_ia32_fpclassss_mask ((__v4sf) (__m128) (X), \
577 (int) (C), (__mmask8) (U)))
579 #define _mm_mask_fpclass_sd_mask(X, C, U) \
580 ((__mmask8) __builtin_ia32_fpclasssd_mask ((__v2df) (__m128d) (X), \
581 (int) (C), (__mmask8) (U)))
582 #define _mm_reduce_sd(A, B, C) \
583 ((__m128d) __builtin_ia32_reducesd_mask ((__v2df)(__m128d)(A), \
584 (__v2df)(__m128d)(B), (int)(C), (__v2df) _mm_avx512_setzero_pd (), \
587 #define _mm_mask_reduce_sd(W, U, A, B, C) \
588 ((__m128d) __builtin_ia32_reducesd_mask ((__v2df)(__m128d)(A), \
589 (__v2df)(__m128d)(B), (int)(C), (__v2df)(__m128d)(W), (__mmask8)(U)))
591 #define _mm_maskz_reduce_sd(U, A, B, C) \
592 ((__m128d) __builtin_ia32_reducesd_mask ((__v2df)(__m128d)(A), \
593 (__v2df)(__m128d)(B), (int)(C), (__v2df) _mm_avx512_setzero_pd (), \
596 #define _mm_reduce_round_sd(A, B, C, R) \
597 ((__m128d) __builtin_ia32_reducesd_round ((__v2df)(__m128d)(A), \
598 (__v2df)(__m128d)(B), (int)(C), (__mmask8)(U), (int)(R)))
600 #define _mm_mask_reduce_round_sd(W, U, A, B, C, R) \
601 ((__m128d) __builtin_ia32_reducesd_mask_round ((__v2df)(__m128d)(A), \
602 (__v2df)(__m128d)(B), (int)(C), (__v2df)(__m128d)(W), \
603 (__mmask8)(U), (int)(R)))
605 #define _mm_maskz_reduce_round_sd(U, A, B, C, R) \
606 ((__m128d) __builtin_ia32_reducesd_mask_round ((__v2df)(__m128d)(A), \
607 (__v2df)(__m128d)(B), (int)(C), (__v2df) _mm_avx512_setzero_pd (), \
608 (__mmask8)(U), (int)(R)))
610 #define _mm_reduce_ss(A, B, C) \
611 ((__m128) __builtin_ia32_reducess_mask ((__v4sf)(__m128)(A), \
612 (__v4sf)(__m128)(B), (int)(C), (__v4sf) _mm_avx512_setzero_ps (), \
615 #define _mm_mask_reduce_ss(W, U, A, B, C) \
616 ((__m128) __builtin_ia32_reducess_mask ((__v4sf)(__m128)(A), \
617 (__v4sf)(__m128)(B), (int)(C), (__v4sf)(__m128)(W), (__mmask8)(U)))
619 #define _mm_maskz_reduce_ss(U, A, B, C) \
620 ((__m128) __builtin_ia32_reducess_mask ((__v4sf)(__m128)(A), \
621 (__v4sf)(__m128)(B), (int)(C), (__v4sf) _mm_avx512_setzero_ps (), \
624 #define _mm_reduce_round_ss(A, B, C, R) \
625 ((__m128) __builtin_ia32_reducess_round ((__v4sf)(__m128)(A), \
626 (__v4sf)(__m128)(B), (int)(C), (__mmask8)(U), (int)(R)))
628 #define _mm_mask_reduce_round_ss(W, U, A, B, C, R) \
629 ((__m128) __builtin_ia32_reducess_mask_round ((__v4sf)(__m128)(A), \
630 (__v4sf)(__m128)(B), (int)(C), (__v4sf)(__m128)(W), \
631 (__mmask8)(U), (int)(R)))
633 #define _mm_maskz_reduce_round_ss(U, A, B, C, R) \
634 ((__m128) __builtin_ia32_reducesd_mask_round ((__v4sf)(__m128)(A), \
635 (__v4sf)(__m128)(B), (int)(C), (__v4sf) _mm_avx512_setzero_ps (), \
636 (__mmask8)(U), (int)(R)))
640 #ifdef __DISABLE_AVX512DQ__
641 #undef __DISABLE_AVX512DQ__
642 #pragma GCC pop_options
643 #endif /* __DISABLE_AVX512DQ__ */
645 #if !defined (__AVX512DQ__) || !defined (__EVEX512__)
646 #pragma GCC push_options
647 #pragma GCC target("avx512dq,evex512")
648 #define __DISABLE_AVX512DQ_512__
649 #endif /* __AVX512DQ_512__ */
651 extern __inline __m512d
652 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
653 _mm512_broadcast_f64x2 (__m128d __A
)
656 __builtin_ia32_broadcastf64x2_512_mask ((__v2df
) __A
,
657 _mm512_undefined_pd (),
661 extern __inline __m512d
662 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
663 _mm512_mask_broadcast_f64x2 (__m512d __O
, __mmask8 __M
, __m128d __A
)
665 return (__m512d
) __builtin_ia32_broadcastf64x2_512_mask ((__v2df
)
671 extern __inline __m512d
672 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
673 _mm512_maskz_broadcast_f64x2 (__mmask8 __M
, __m128d __A
)
675 return (__m512d
) __builtin_ia32_broadcastf64x2_512_mask ((__v2df
)
678 _mm512_setzero_ps (),
682 extern __inline __m512i
683 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
684 _mm512_broadcast_i64x2 (__m128i __A
)
687 __builtin_ia32_broadcasti64x2_512_mask ((__v2di
) __A
,
688 _mm512_undefined_epi32 (),
692 extern __inline __m512i
693 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
694 _mm512_mask_broadcast_i64x2 (__m512i __O
, __mmask8 __M
, __m128i __A
)
696 return (__m512i
) __builtin_ia32_broadcasti64x2_512_mask ((__v2di
)
702 extern __inline __m512i
703 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
704 _mm512_maskz_broadcast_i64x2 (__mmask8 __M
, __m128i __A
)
706 return (__m512i
) __builtin_ia32_broadcasti64x2_512_mask ((__v2di
)
709 _mm512_setzero_si512 (),
713 extern __inline __m512
714 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
715 _mm512_broadcast_f32x2 (__m128 __A
)
718 __builtin_ia32_broadcastf32x2_512_mask ((__v4sf
) __A
,
719 (__v16sf
)_mm512_undefined_ps (),
723 extern __inline __m512
724 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
725 _mm512_mask_broadcast_f32x2 (__m512 __O
, __mmask16 __M
, __m128 __A
)
727 return (__m512
) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf
) __A
,
732 extern __inline __m512
733 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
734 _mm512_maskz_broadcast_f32x2 (__mmask16 __M
, __m128 __A
)
736 return (__m512
) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf
) __A
,
738 _mm512_setzero_ps (),
742 extern __inline __m512i
743 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
744 _mm512_broadcast_i32x2 (__m128i __A
)
747 __builtin_ia32_broadcasti32x2_512_mask ((__v4si
) __A
,
749 _mm512_undefined_epi32 (),
753 extern __inline __m512i
754 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
755 _mm512_mask_broadcast_i32x2 (__m512i __O
, __mmask16 __M
, __m128i __A
)
757 return (__m512i
) __builtin_ia32_broadcasti32x2_512_mask ((__v4si
)
763 extern __inline __m512i
764 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
765 _mm512_maskz_broadcast_i32x2 (__mmask16 __M
, __m128i __A
)
767 return (__m512i
) __builtin_ia32_broadcasti32x2_512_mask ((__v4si
)
770 _mm512_setzero_si512 (),
774 extern __inline __m512
775 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
776 _mm512_broadcast_f32x8 (__m256 __A
)
779 __builtin_ia32_broadcastf32x8_512_mask ((__v8sf
) __A
,
780 _mm512_undefined_ps (),
784 extern __inline __m512
785 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
786 _mm512_mask_broadcast_f32x8 (__m512 __O
, __mmask16 __M
, __m256 __A
)
788 return (__m512
) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf
) __A
,
793 extern __inline __m512
794 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
795 _mm512_maskz_broadcast_f32x8 (__mmask16 __M
, __m256 __A
)
797 return (__m512
) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf
) __A
,
799 _mm512_setzero_ps (),
803 extern __inline __m512i
804 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
805 _mm512_broadcast_i32x8 (__m256i __A
)
808 __builtin_ia32_broadcasti32x8_512_mask ((__v8si
) __A
,
810 _mm512_undefined_epi32 (),
814 extern __inline __m512i
815 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
816 _mm512_mask_broadcast_i32x8 (__m512i __O
, __mmask16 __M
, __m256i __A
)
818 return (__m512i
) __builtin_ia32_broadcasti32x8_512_mask ((__v8si
)
824 extern __inline __m512i
825 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
826 _mm512_maskz_broadcast_i32x8 (__mmask16 __M
, __m256i __A
)
828 return (__m512i
) __builtin_ia32_broadcasti32x8_512_mask ((__v8si
)
831 _mm512_setzero_si512 (),
835 extern __inline __m512i
836 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
837 _mm512_mullo_epi64 (__m512i __A
, __m512i __B
)
839 return (__m512i
) ((__v8du
) __A
* (__v8du
) __B
);
842 extern __inline __m512i
843 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
844 _mm512_mask_mullo_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
,
847 return (__m512i
) __builtin_ia32_pmullq512_mask ((__v8di
) __A
,
853 extern __inline __m512i
854 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
855 _mm512_maskz_mullo_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
857 return (__m512i
) __builtin_ia32_pmullq512_mask ((__v8di
) __A
,
860 _mm512_setzero_si512 (),
864 extern __inline __m512d
865 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
866 _mm512_xor_pd (__m512d __A
, __m512d __B
)
868 return (__m512d
) __builtin_ia32_xorpd512_mask ((__v8df
) __A
,
871 _mm512_setzero_pd (),
875 extern __inline __m512d
876 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
877 _mm512_mask_xor_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
880 return (__m512d
) __builtin_ia32_xorpd512_mask ((__v8df
) __A
,
886 extern __inline __m512d
887 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
888 _mm512_maskz_xor_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
890 return (__m512d
) __builtin_ia32_xorpd512_mask ((__v8df
) __A
,
893 _mm512_setzero_pd (),
897 extern __inline __m512
898 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
899 _mm512_xor_ps (__m512 __A
, __m512 __B
)
901 return (__m512
) __builtin_ia32_xorps512_mask ((__v16sf
) __A
,
904 _mm512_setzero_ps (),
908 extern __inline __m512
909 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
910 _mm512_mask_xor_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
912 return (__m512
) __builtin_ia32_xorps512_mask ((__v16sf
) __A
,
918 extern __inline __m512
919 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
920 _mm512_maskz_xor_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
922 return (__m512
) __builtin_ia32_xorps512_mask ((__v16sf
) __A
,
925 _mm512_setzero_ps (),
929 extern __inline __m512d
930 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
931 _mm512_or_pd (__m512d __A
, __m512d __B
)
933 return (__m512d
) __builtin_ia32_orpd512_mask ((__v8df
) __A
,
936 _mm512_setzero_pd (),
940 extern __inline __m512d
941 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
942 _mm512_mask_or_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
944 return (__m512d
) __builtin_ia32_orpd512_mask ((__v8df
) __A
,
950 extern __inline __m512d
951 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
952 _mm512_maskz_or_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
954 return (__m512d
) __builtin_ia32_orpd512_mask ((__v8df
) __A
,
957 _mm512_setzero_pd (),
961 extern __inline __m512
962 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
963 _mm512_or_ps (__m512 __A
, __m512 __B
)
965 return (__m512
) __builtin_ia32_orps512_mask ((__v16sf
) __A
,
968 _mm512_setzero_ps (),
972 extern __inline __m512
973 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
974 _mm512_mask_or_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
976 return (__m512
) __builtin_ia32_orps512_mask ((__v16sf
) __A
,
982 extern __inline __m512
983 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
984 _mm512_maskz_or_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
986 return (__m512
) __builtin_ia32_orps512_mask ((__v16sf
) __A
,
989 _mm512_setzero_ps (),
993 extern __inline __m512d
994 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
995 _mm512_and_pd (__m512d __A
, __m512d __B
)
997 return (__m512d
) __builtin_ia32_andpd512_mask ((__v8df
) __A
,
1000 _mm512_setzero_pd (),
1004 extern __inline __m512d
1005 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1006 _mm512_mask_and_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
1009 return (__m512d
) __builtin_ia32_andpd512_mask ((__v8df
) __A
,
1015 extern __inline __m512d
1016 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1017 _mm512_maskz_and_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
1019 return (__m512d
) __builtin_ia32_andpd512_mask ((__v8df
) __A
,
1022 _mm512_setzero_pd (),
1026 extern __inline __m512
1027 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1028 _mm512_and_ps (__m512 __A
, __m512 __B
)
1030 return (__m512
) __builtin_ia32_andps512_mask ((__v16sf
) __A
,
1033 _mm512_setzero_ps (),
1037 extern __inline __m512
1038 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1039 _mm512_mask_and_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
1041 return (__m512
) __builtin_ia32_andps512_mask ((__v16sf
) __A
,
1047 extern __inline __m512
1048 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1049 _mm512_maskz_and_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
1051 return (__m512
) __builtin_ia32_andps512_mask ((__v16sf
) __A
,
1054 _mm512_setzero_ps (),
1058 extern __inline __m512d
1059 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1060 _mm512_andnot_pd (__m512d __A
, __m512d __B
)
1062 return (__m512d
) __builtin_ia32_andnpd512_mask ((__v8df
) __A
,
1065 _mm512_setzero_pd (),
1069 extern __inline __m512d
1070 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1071 _mm512_mask_andnot_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
1074 return (__m512d
) __builtin_ia32_andnpd512_mask ((__v8df
) __A
,
1080 extern __inline __m512d
1081 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1082 _mm512_maskz_andnot_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
1084 return (__m512d
) __builtin_ia32_andnpd512_mask ((__v8df
) __A
,
1087 _mm512_setzero_pd (),
1091 extern __inline __m512
1092 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1093 _mm512_andnot_ps (__m512 __A
, __m512 __B
)
1095 return (__m512
) __builtin_ia32_andnps512_mask ((__v16sf
) __A
,
1098 _mm512_setzero_ps (),
1102 extern __inline __m512
1103 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1104 _mm512_mask_andnot_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
1107 return (__m512
) __builtin_ia32_andnps512_mask ((__v16sf
) __A
,
1113 extern __inline __m512
1114 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1115 _mm512_maskz_andnot_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
1117 return (__m512
) __builtin_ia32_andnps512_mask ((__v16sf
) __A
,
1120 _mm512_setzero_ps (),
1124 extern __inline __mmask16
1125 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1126 _mm512_movepi32_mask (__m512i __A
)
1128 return (__mmask16
) __builtin_ia32_cvtd2mask512 ((__v16si
) __A
);
1131 extern __inline __mmask8
1132 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1133 _mm512_movepi64_mask (__m512i __A
)
1135 return (__mmask8
) __builtin_ia32_cvtq2mask512 ((__v8di
) __A
);
1138 extern __inline __m512i
1139 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1140 _mm512_movm_epi32 (__mmask16 __A
)
1142 return (__m512i
) __builtin_ia32_cvtmask2d512 (__A
);
1145 extern __inline __m512i
1146 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1147 _mm512_movm_epi64 (__mmask8 __A
)
1149 return (__m512i
) __builtin_ia32_cvtmask2q512 (__A
);
1152 extern __inline __m512i
1153 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1154 _mm512_cvttpd_epi64 (__m512d __A
)
1156 return (__m512i
) __builtin_ia32_cvttpd2qq512_mask ((__v8df
) __A
,
1158 _mm512_setzero_si512 (),
1160 _MM_FROUND_CUR_DIRECTION
);
1163 extern __inline __m512i
1164 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1165 _mm512_mask_cvttpd_epi64 (__m512i __W
, __mmask8 __U
, __m512d __A
)
1167 return (__m512i
) __builtin_ia32_cvttpd2qq512_mask ((__v8df
) __A
,
1170 _MM_FROUND_CUR_DIRECTION
);
1173 extern __inline __m512i
1174 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1175 _mm512_maskz_cvttpd_epi64 (__mmask8 __U
, __m512d __A
)
1177 return (__m512i
) __builtin_ia32_cvttpd2qq512_mask ((__v8df
) __A
,
1179 _mm512_setzero_si512 (),
1181 _MM_FROUND_CUR_DIRECTION
);
1184 extern __inline __m512i
1185 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1186 _mm512_cvttpd_epu64 (__m512d __A
)
1188 return (__m512i
) __builtin_ia32_cvttpd2uqq512_mask ((__v8df
) __A
,
1190 _mm512_setzero_si512 (),
1192 _MM_FROUND_CUR_DIRECTION
);
1195 extern __inline __m512i
1196 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1197 _mm512_mask_cvttpd_epu64 (__m512i __W
, __mmask8 __U
, __m512d __A
)
1199 return (__m512i
) __builtin_ia32_cvttpd2uqq512_mask ((__v8df
) __A
,
1202 _MM_FROUND_CUR_DIRECTION
);
1205 extern __inline __m512i
1206 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1207 _mm512_maskz_cvttpd_epu64 (__mmask8 __U
, __m512d __A
)
1209 return (__m512i
) __builtin_ia32_cvttpd2uqq512_mask ((__v8df
) __A
,
1211 _mm512_setzero_si512 (),
1213 _MM_FROUND_CUR_DIRECTION
);
1216 extern __inline __m512i
1217 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1218 _mm512_cvttps_epi64 (__m256 __A
)
1220 return (__m512i
) __builtin_ia32_cvttps2qq512_mask ((__v8sf
) __A
,
1222 _mm512_setzero_si512 (),
1224 _MM_FROUND_CUR_DIRECTION
);
1227 extern __inline __m512i
1228 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1229 _mm512_mask_cvttps_epi64 (__m512i __W
, __mmask8 __U
, __m256 __A
)
1231 return (__m512i
) __builtin_ia32_cvttps2qq512_mask ((__v8sf
) __A
,
1234 _MM_FROUND_CUR_DIRECTION
);
1237 extern __inline __m512i
1238 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1239 _mm512_maskz_cvttps_epi64 (__mmask8 __U
, __m256 __A
)
1241 return (__m512i
) __builtin_ia32_cvttps2qq512_mask ((__v8sf
) __A
,
1243 _mm512_setzero_si512 (),
1245 _MM_FROUND_CUR_DIRECTION
);
1248 extern __inline __m512i
1249 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1250 _mm512_cvttps_epu64 (__m256 __A
)
1252 return (__m512i
) __builtin_ia32_cvttps2uqq512_mask ((__v8sf
) __A
,
1254 _mm512_setzero_si512 (),
1256 _MM_FROUND_CUR_DIRECTION
);
1259 extern __inline __m512i
1260 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1261 _mm512_mask_cvttps_epu64 (__m512i __W
, __mmask8 __U
, __m256 __A
)
1263 return (__m512i
) __builtin_ia32_cvttps2uqq512_mask ((__v8sf
) __A
,
1266 _MM_FROUND_CUR_DIRECTION
);
1269 extern __inline __m512i
1270 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1271 _mm512_maskz_cvttps_epu64 (__mmask8 __U
, __m256 __A
)
1273 return (__m512i
) __builtin_ia32_cvttps2uqq512_mask ((__v8sf
) __A
,
1275 _mm512_setzero_si512 (),
1277 _MM_FROUND_CUR_DIRECTION
);
1280 extern __inline __m512i
1281 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1282 _mm512_cvtpd_epi64 (__m512d __A
)
1284 return (__m512i
) __builtin_ia32_cvtpd2qq512_mask ((__v8df
) __A
,
1286 _mm512_setzero_si512 (),
1288 _MM_FROUND_CUR_DIRECTION
);
1291 extern __inline __m512i
1292 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1293 _mm512_mask_cvtpd_epi64 (__m512i __W
, __mmask8 __U
, __m512d __A
)
1295 return (__m512i
) __builtin_ia32_cvtpd2qq512_mask ((__v8df
) __A
,
1298 _MM_FROUND_CUR_DIRECTION
);
1301 extern __inline __m512i
1302 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1303 _mm512_maskz_cvtpd_epi64 (__mmask8 __U
, __m512d __A
)
1305 return (__m512i
) __builtin_ia32_cvtpd2qq512_mask ((__v8df
) __A
,
1307 _mm512_setzero_si512 (),
1309 _MM_FROUND_CUR_DIRECTION
);
1312 extern __inline __m512i
1313 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1314 _mm512_cvtpd_epu64 (__m512d __A
)
1316 return (__m512i
) __builtin_ia32_cvtpd2uqq512_mask ((__v8df
) __A
,
1318 _mm512_setzero_si512 (),
1320 _MM_FROUND_CUR_DIRECTION
);
1323 extern __inline __m512i
1324 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1325 _mm512_mask_cvtpd_epu64 (__m512i __W
, __mmask8 __U
, __m512d __A
)
1327 return (__m512i
) __builtin_ia32_cvtpd2uqq512_mask ((__v8df
) __A
,
1330 _MM_FROUND_CUR_DIRECTION
);
1333 extern __inline __m512i
1334 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1335 _mm512_maskz_cvtpd_epu64 (__mmask8 __U
, __m512d __A
)
1337 return (__m512i
) __builtin_ia32_cvtpd2uqq512_mask ((__v8df
) __A
,
1339 _mm512_setzero_si512 (),
1341 _MM_FROUND_CUR_DIRECTION
);
1344 extern __inline __m512i
1345 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1346 _mm512_cvtps_epi64 (__m256 __A
)
1348 return (__m512i
) __builtin_ia32_cvtps2qq512_mask ((__v8sf
) __A
,
1350 _mm512_setzero_si512 (),
1352 _MM_FROUND_CUR_DIRECTION
);
1355 extern __inline __m512i
1356 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1357 _mm512_mask_cvtps_epi64 (__m512i __W
, __mmask8 __U
, __m256 __A
)
1359 return (__m512i
) __builtin_ia32_cvtps2qq512_mask ((__v8sf
) __A
,
1362 _MM_FROUND_CUR_DIRECTION
);
1365 extern __inline __m512i
1366 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1367 _mm512_maskz_cvtps_epi64 (__mmask8 __U
, __m256 __A
)
1369 return (__m512i
) __builtin_ia32_cvtps2qq512_mask ((__v8sf
) __A
,
1371 _mm512_setzero_si512 (),
1373 _MM_FROUND_CUR_DIRECTION
);
1376 extern __inline __m512i
1377 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1378 _mm512_cvtps_epu64 (__m256 __A
)
1380 return (__m512i
) __builtin_ia32_cvtps2uqq512_mask ((__v8sf
) __A
,
1382 _mm512_setzero_si512 (),
1384 _MM_FROUND_CUR_DIRECTION
);
1387 extern __inline __m512i
1388 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1389 _mm512_mask_cvtps_epu64 (__m512i __W
, __mmask8 __U
, __m256 __A
)
1391 return (__m512i
) __builtin_ia32_cvtps2uqq512_mask ((__v8sf
) __A
,
1394 _MM_FROUND_CUR_DIRECTION
);
1397 extern __inline __m512i
1398 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1399 _mm512_maskz_cvtps_epu64 (__mmask8 __U
, __m256 __A
)
1401 return (__m512i
) __builtin_ia32_cvtps2uqq512_mask ((__v8sf
) __A
,
1403 _mm512_setzero_si512 (),
1405 _MM_FROUND_CUR_DIRECTION
);
1408 extern __inline __m256
1409 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1410 _mm512_cvtepi64_ps (__m512i __A
)
1412 return (__m256
) __builtin_ia32_cvtqq2ps512_mask ((__v8di
) __A
,
1414 _mm256_setzero_ps (),
1416 _MM_FROUND_CUR_DIRECTION
);
1419 extern __inline __m256
1420 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1421 _mm512_mask_cvtepi64_ps (__m256 __W
, __mmask8 __U
, __m512i __A
)
1423 return (__m256
) __builtin_ia32_cvtqq2ps512_mask ((__v8di
) __A
,
1426 _MM_FROUND_CUR_DIRECTION
);
1429 extern __inline __m256
1430 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1431 _mm512_maskz_cvtepi64_ps (__mmask8 __U
, __m512i __A
)
1433 return (__m256
) __builtin_ia32_cvtqq2ps512_mask ((__v8di
) __A
,
1435 _mm256_setzero_ps (),
1437 _MM_FROUND_CUR_DIRECTION
);
1440 extern __inline __m256
1441 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1442 _mm512_cvtepu64_ps (__m512i __A
)
1444 return (__m256
) __builtin_ia32_cvtuqq2ps512_mask ((__v8di
) __A
,
1446 _mm256_setzero_ps (),
1448 _MM_FROUND_CUR_DIRECTION
);
1451 extern __inline __m256
1452 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1453 _mm512_mask_cvtepu64_ps (__m256 __W
, __mmask8 __U
, __m512i __A
)
1455 return (__m256
) __builtin_ia32_cvtuqq2ps512_mask ((__v8di
) __A
,
1458 _MM_FROUND_CUR_DIRECTION
);
1461 extern __inline __m256
1462 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1463 _mm512_maskz_cvtepu64_ps (__mmask8 __U
, __m512i __A
)
1465 return (__m256
) __builtin_ia32_cvtuqq2ps512_mask ((__v8di
) __A
,
1467 _mm256_setzero_ps (),
1469 _MM_FROUND_CUR_DIRECTION
);
1472 extern __inline __m512d
1473 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1474 _mm512_cvtepi64_pd (__m512i __A
)
1476 return (__m512d
) __builtin_ia32_cvtqq2pd512_mask ((__v8di
) __A
,
1478 _mm512_setzero_pd (),
1480 _MM_FROUND_CUR_DIRECTION
);
1483 extern __inline __m512d
1484 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1485 _mm512_mask_cvtepi64_pd (__m512d __W
, __mmask8 __U
, __m512i __A
)
1487 return (__m512d
) __builtin_ia32_cvtqq2pd512_mask ((__v8di
) __A
,
1490 _MM_FROUND_CUR_DIRECTION
);
1493 extern __inline __m512d
1494 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1495 _mm512_maskz_cvtepi64_pd (__mmask8 __U
, __m512i __A
)
1497 return (__m512d
) __builtin_ia32_cvtqq2pd512_mask ((__v8di
) __A
,
1499 _mm512_setzero_pd (),
1501 _MM_FROUND_CUR_DIRECTION
);
1504 extern __inline __m512d
1505 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1506 _mm512_cvtepu64_pd (__m512i __A
)
1508 return (__m512d
) __builtin_ia32_cvtuqq2pd512_mask ((__v8di
) __A
,
1510 _mm512_setzero_pd (),
1512 _MM_FROUND_CUR_DIRECTION
);
1515 extern __inline __m512d
1516 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1517 _mm512_mask_cvtepu64_pd (__m512d __W
, __mmask8 __U
, __m512i __A
)
1519 return (__m512d
) __builtin_ia32_cvtuqq2pd512_mask ((__v8di
) __A
,
1522 _MM_FROUND_CUR_DIRECTION
);
1525 extern __inline __m512d
1526 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1527 _mm512_maskz_cvtepu64_pd (__mmask8 __U
, __m512i __A
)
1529 return (__m512d
) __builtin_ia32_cvtuqq2pd512_mask ((__v8di
) __A
,
1531 _mm512_setzero_pd (),
1533 _MM_FROUND_CUR_DIRECTION
);
1537 extern __inline __m512d
1538 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1539 _mm512_range_pd (__m512d __A
, __m512d __B
, int __C
)
1541 return (__m512d
) __builtin_ia32_rangepd512_mask ((__v8df
) __A
,
1544 _mm512_setzero_pd (),
1546 _MM_FROUND_CUR_DIRECTION
);
1549 extern __inline __m512d
1550 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1551 _mm512_mask_range_pd (__m512d __W
, __mmask8 __U
,
1552 __m512d __A
, __m512d __B
, int __C
)
1554 return (__m512d
) __builtin_ia32_rangepd512_mask ((__v8df
) __A
,
1558 _MM_FROUND_CUR_DIRECTION
);
1561 extern __inline __m512d
1562 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1563 _mm512_maskz_range_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, int __C
)
1565 return (__m512d
) __builtin_ia32_rangepd512_mask ((__v8df
) __A
,
1568 _mm512_setzero_pd (),
1570 _MM_FROUND_CUR_DIRECTION
);
1573 extern __inline __m512
1574 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1575 _mm512_range_ps (__m512 __A
, __m512 __B
, int __C
)
1577 return (__m512
) __builtin_ia32_rangeps512_mask ((__v16sf
) __A
,
1580 _mm512_setzero_ps (),
1582 _MM_FROUND_CUR_DIRECTION
);
1585 extern __inline __m512
1586 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1587 _mm512_mask_range_ps (__m512 __W
, __mmask16 __U
,
1588 __m512 __A
, __m512 __B
, int __C
)
1590 return (__m512
) __builtin_ia32_rangeps512_mask ((__v16sf
) __A
,
1594 _MM_FROUND_CUR_DIRECTION
);
1597 extern __inline __m512
1598 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1599 _mm512_maskz_range_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, int __C
)
1601 return (__m512
) __builtin_ia32_rangeps512_mask ((__v16sf
) __A
,
1604 _mm512_setzero_ps (),
1606 _MM_FROUND_CUR_DIRECTION
);
1609 extern __inline __m512i
1610 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1611 _mm512_cvtt_roundpd_epi64 (__m512d __A
, const int __R
)
1613 return (__m512i
) __builtin_ia32_cvttpd2qq512_mask ((__v8df
) __A
,
1615 _mm512_setzero_si512 (),
1620 extern __inline __m512i
1621 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1622 _mm512_mask_cvtt_roundpd_epi64 (__m512i __W
, __mmask8 __U
, __m512d __A
,
1625 return (__m512i
) __builtin_ia32_cvttpd2qq512_mask ((__v8df
) __A
,
1631 extern __inline __m512i
1632 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1633 _mm512_maskz_cvtt_roundpd_epi64 (__mmask8 __U
, __m512d __A
,
1636 return (__m512i
) __builtin_ia32_cvttpd2qq512_mask ((__v8df
) __A
,
1638 _mm512_setzero_si512 (),
1643 extern __inline __m512i
1644 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1645 _mm512_cvtt_roundpd_epu64 (__m512d __A
, const int __R
)
1647 return (__m512i
) __builtin_ia32_cvttpd2uqq512_mask ((__v8df
) __A
,
1649 _mm512_setzero_si512 (),
1654 extern __inline __m512i
1655 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1656 _mm512_mask_cvtt_roundpd_epu64 (__m512i __W
, __mmask8 __U
, __m512d __A
,
1659 return (__m512i
) __builtin_ia32_cvttpd2uqq512_mask ((__v8df
) __A
,
1665 extern __inline __m512i
1666 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1667 _mm512_maskz_cvtt_roundpd_epu64 (__mmask8 __U
, __m512d __A
,
1670 return (__m512i
) __builtin_ia32_cvttpd2uqq512_mask ((__v8df
) __A
,
1672 _mm512_setzero_si512 (),
1677 extern __inline __m512i
1678 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1679 _mm512_cvtt_roundps_epi64 (__m256 __A
, const int __R
)
1681 return (__m512i
) __builtin_ia32_cvttps2qq512_mask ((__v8sf
) __A
,
1683 _mm512_setzero_si512 (),
1688 extern __inline __m512i
1689 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1690 _mm512_mask_cvtt_roundps_epi64 (__m512i __W
, __mmask8 __U
, __m256 __A
,
1693 return (__m512i
) __builtin_ia32_cvttps2qq512_mask ((__v8sf
) __A
,
1699 extern __inline __m512i
1700 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1701 _mm512_maskz_cvtt_roundps_epi64 (__mmask8 __U
, __m256 __A
,
1704 return (__m512i
) __builtin_ia32_cvttps2qq512_mask ((__v8sf
) __A
,
1706 _mm512_setzero_si512 (),
1711 extern __inline __m512i
1712 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1713 _mm512_cvtt_roundps_epu64 (__m256 __A
, const int __R
)
1715 return (__m512i
) __builtin_ia32_cvttps2uqq512_mask ((__v8sf
) __A
,
1717 _mm512_setzero_si512 (),
1722 extern __inline __m512i
1723 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1724 _mm512_mask_cvtt_roundps_epu64 (__m512i __W
, __mmask8 __U
, __m256 __A
,
1727 return (__m512i
) __builtin_ia32_cvttps2uqq512_mask ((__v8sf
) __A
,
1733 extern __inline __m512i
1734 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1735 _mm512_maskz_cvtt_roundps_epu64 (__mmask8 __U
, __m256 __A
,
1738 return (__m512i
) __builtin_ia32_cvttps2uqq512_mask ((__v8sf
) __A
,
1740 _mm512_setzero_si512 (),
1745 extern __inline __m512i
1746 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1747 _mm512_cvt_roundpd_epi64 (__m512d __A
, const int __R
)
1749 return (__m512i
) __builtin_ia32_cvtpd2qq512_mask ((__v8df
) __A
,
1751 _mm512_setzero_si512 (),
1756 extern __inline __m512i
1757 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1758 _mm512_mask_cvt_roundpd_epi64 (__m512i __W
, __mmask8 __U
, __m512d __A
,
1761 return (__m512i
) __builtin_ia32_cvtpd2qq512_mask ((__v8df
) __A
,
1767 extern __inline __m512i
1768 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1769 _mm512_maskz_cvt_roundpd_epi64 (__mmask8 __U
, __m512d __A
,
1772 return (__m512i
) __builtin_ia32_cvtpd2qq512_mask ((__v8df
) __A
,
1774 _mm512_setzero_si512 (),
1779 extern __inline __m512i
1780 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1781 _mm512_cvt_roundpd_epu64 (__m512d __A
, const int __R
)
1783 return (__m512i
) __builtin_ia32_cvtpd2uqq512_mask ((__v8df
) __A
,
1785 _mm512_setzero_si512 (),
1790 extern __inline __m512i
1791 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1792 _mm512_mask_cvt_roundpd_epu64 (__m512i __W
, __mmask8 __U
, __m512d __A
,
1795 return (__m512i
) __builtin_ia32_cvtpd2uqq512_mask ((__v8df
) __A
,
1801 extern __inline __m512i
1802 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1803 _mm512_maskz_cvt_roundpd_epu64 (__mmask8 __U
, __m512d __A
,
1806 return (__m512i
) __builtin_ia32_cvtpd2uqq512_mask ((__v8df
) __A
,
1808 _mm512_setzero_si512 (),
1813 extern __inline __m512i
1814 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1815 _mm512_cvt_roundps_epi64 (__m256 __A
, const int __R
)
1817 return (__m512i
) __builtin_ia32_cvtps2qq512_mask ((__v8sf
) __A
,
1819 _mm512_setzero_si512 (),
1824 extern __inline __m512i
1825 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1826 _mm512_mask_cvt_roundps_epi64 (__m512i __W
, __mmask8 __U
, __m256 __A
,
1829 return (__m512i
) __builtin_ia32_cvtps2qq512_mask ((__v8sf
) __A
,
1835 extern __inline __m512i
1836 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1837 _mm512_maskz_cvt_roundps_epi64 (__mmask8 __U
, __m256 __A
,
1840 return (__m512i
) __builtin_ia32_cvtps2qq512_mask ((__v8sf
) __A
,
1842 _mm512_setzero_si512 (),
1847 extern __inline __m512i
1848 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1849 _mm512_cvt_roundps_epu64 (__m256 __A
, const int __R
)
1851 return (__m512i
) __builtin_ia32_cvtps2uqq512_mask ((__v8sf
) __A
,
1853 _mm512_setzero_si512 (),
1858 extern __inline __m512i
1859 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1860 _mm512_mask_cvt_roundps_epu64 (__m512i __W
, __mmask8 __U
, __m256 __A
,
1863 return (__m512i
) __builtin_ia32_cvtps2uqq512_mask ((__v8sf
) __A
,
1869 extern __inline __m512i
1870 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1871 _mm512_maskz_cvt_roundps_epu64 (__mmask8 __U
, __m256 __A
,
1874 return (__m512i
) __builtin_ia32_cvtps2uqq512_mask ((__v8sf
) __A
,
1876 _mm512_setzero_si512 (),
1881 extern __inline __m256
1882 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1883 _mm512_cvt_roundepi64_ps (__m512i __A
, const int __R
)
1885 return (__m256
) __builtin_ia32_cvtqq2ps512_mask ((__v8di
) __A
,
1887 _mm256_setzero_ps (),
1892 extern __inline __m256
1893 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1894 _mm512_mask_cvt_roundepi64_ps (__m256 __W
, __mmask8 __U
, __m512i __A
,
1897 return (__m256
) __builtin_ia32_cvtqq2ps512_mask ((__v8di
) __A
,
1903 extern __inline __m256
1904 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1905 _mm512_maskz_cvt_roundepi64_ps (__mmask8 __U
, __m512i __A
,
1908 return (__m256
) __builtin_ia32_cvtqq2ps512_mask ((__v8di
) __A
,
1910 _mm256_setzero_ps (),
1915 extern __inline __m256
1916 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1917 _mm512_cvt_roundepu64_ps (__m512i __A
, const int __R
)
1919 return (__m256
) __builtin_ia32_cvtuqq2ps512_mask ((__v8di
) __A
,
1921 _mm256_setzero_ps (),
1926 extern __inline __m256
1927 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1928 _mm512_mask_cvt_roundepu64_ps (__m256 __W
, __mmask8 __U
, __m512i __A
,
1931 return (__m256
) __builtin_ia32_cvtuqq2ps512_mask ((__v8di
) __A
,
1937 extern __inline __m256
1938 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1939 _mm512_maskz_cvt_roundepu64_ps (__mmask8 __U
, __m512i __A
,
1942 return (__m256
) __builtin_ia32_cvtuqq2ps512_mask ((__v8di
) __A
,
1944 _mm256_setzero_ps (),
1949 extern __inline __m512d
1950 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1951 _mm512_cvt_roundepi64_pd (__m512i __A
, const int __R
)
1953 return (__m512d
) __builtin_ia32_cvtqq2pd512_mask ((__v8di
) __A
,
1955 _mm512_setzero_pd (),
1960 extern __inline __m512d
1961 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1962 _mm512_mask_cvt_roundepi64_pd (__m512d __W
, __mmask8 __U
, __m512i __A
,
1965 return (__m512d
) __builtin_ia32_cvtqq2pd512_mask ((__v8di
) __A
,
1971 extern __inline __m512d
1972 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1973 _mm512_maskz_cvt_roundepi64_pd (__mmask8 __U
, __m512i __A
,
1976 return (__m512d
) __builtin_ia32_cvtqq2pd512_mask ((__v8di
) __A
,
1978 _mm512_setzero_pd (),
1983 extern __inline __m512d
1984 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1985 _mm512_cvt_roundepu64_pd (__m512i __A
, const int __R
)
1987 return (__m512d
) __builtin_ia32_cvtuqq2pd512_mask ((__v8di
) __A
,
1989 _mm512_setzero_pd (),
1994 extern __inline __m512d
1995 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1996 _mm512_mask_cvt_roundepu64_pd (__m512d __W
, __mmask8 __U
, __m512i __A
,
1999 return (__m512d
) __builtin_ia32_cvtuqq2pd512_mask ((__v8di
) __A
,
2005 extern __inline __m512d
2006 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2007 _mm512_maskz_cvt_roundepu64_pd (__mmask8 __U
, __m512i __A
,
2010 return (__m512d
) __builtin_ia32_cvtuqq2pd512_mask ((__v8di
) __A
,
2012 _mm512_setzero_pd (),
2017 extern __inline __m512d
2018 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2019 _mm512_reduce_pd (__m512d __A
, int __B
)
2021 return (__m512d
) __builtin_ia32_reducepd512_mask ((__v8df
) __A
, __B
,
2023 _mm512_setzero_pd (),
2027 extern __inline __m512d
2028 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2029 _mm512_reduce_round_pd (__m512d __A
, int __B
, const int __R
)
2031 return (__m512d
) __builtin_ia32_reducepd512_mask_round ((__v8df
) __A
,
2034 _mm512_setzero_pd (),
2035 (__mmask8
) -1, __R
);
2038 extern __inline __m512d
2039 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2040 _mm512_mask_reduce_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, int __B
)
2042 return (__m512d
) __builtin_ia32_reducepd512_mask ((__v8df
) __A
, __B
,
2047 extern __inline __m512d
2048 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2049 _mm512_mask_reduce_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
2050 int __B
, const int __R
)
2052 return (__m512d
) __builtin_ia32_reducepd512_mask_round ((__v8df
) __A
,
2058 extern __inline __m512d
2059 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2060 _mm512_maskz_reduce_pd (__mmask8 __U
, __m512d __A
, int __B
)
2062 return (__m512d
) __builtin_ia32_reducepd512_mask ((__v8df
) __A
, __B
,
2064 _mm512_setzero_pd (),
2068 extern __inline __m512d
2069 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2070 _mm512_maskz_reduce_round_pd (__mmask8 __U
, __m512d __A
, int __B
,
2073 return (__m512d
) __builtin_ia32_reducepd512_mask_round ((__v8df
) __A
,
2076 _mm512_setzero_pd (),
2080 extern __inline __m512
2081 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2082 _mm512_reduce_ps (__m512 __A
, int __B
)
2084 return (__m512
) __builtin_ia32_reduceps512_mask ((__v16sf
) __A
, __B
,
2086 _mm512_setzero_ps (),
2090 extern __inline __m512
2091 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2092 _mm512_reduce_round_ps (__m512 __A
, int __B
, const int __R
)
2094 return (__m512
) __builtin_ia32_reduceps512_mask_round ((__v16sf
) __A
,
2097 _mm512_setzero_ps (),
2098 (__mmask16
) -1, __R
);
2101 extern __inline __m512
2102 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2103 _mm512_mask_reduce_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, int __B
)
2105 return (__m512
) __builtin_ia32_reduceps512_mask ((__v16sf
) __A
, __B
,
2110 extern __inline __m512
2111 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2112 _mm512_mask_reduce_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, int __B
,
2115 return (__m512
) __builtin_ia32_reduceps512_mask_round ((__v16sf
) __A
,
2121 extern __inline __m512
2122 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2123 _mm512_maskz_reduce_ps (__mmask16 __U
, __m512 __A
, int __B
)
2125 return (__m512
) __builtin_ia32_reduceps512_mask ((__v16sf
) __A
, __B
,
2127 _mm512_setzero_ps (),
2131 extern __inline __m512
2132 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2133 _mm512_maskz_reduce_round_ps (__mmask16 __U
, __m512 __A
, int __B
,
2136 return (__m512
) __builtin_ia32_reduceps512_mask_round ((__v16sf
) __A
,
2139 _mm512_setzero_ps (),
2143 extern __inline __m256
2144 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2145 _mm512_extractf32x8_ps (__m512 __A
, const int __imm
)
2147 return (__m256
) __builtin_ia32_extractf32x8_mask ((__v16sf
) __A
,
2150 _mm256_setzero_ps (),
2154 extern __inline __m256
2155 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2156 _mm512_mask_extractf32x8_ps (__m256 __W
, __mmask8 __U
, __m512 __A
,
2159 return (__m256
) __builtin_ia32_extractf32x8_mask ((__v16sf
) __A
,
2165 extern __inline __m256
2166 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2167 _mm512_maskz_extractf32x8_ps (__mmask8 __U
, __m512 __A
,
2170 return (__m256
) __builtin_ia32_extractf32x8_mask ((__v16sf
) __A
,
2173 _mm256_setzero_ps (),
2177 extern __inline __m128d
2178 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2179 _mm512_extractf64x2_pd (__m512d __A
, const int __imm
)
2181 return (__m128d
) __builtin_ia32_extractf64x2_512_mask ((__v8df
) __A
,
2188 extern __inline __m128d
2189 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2190 _mm512_mask_extractf64x2_pd (__m128d __W
, __mmask8 __U
, __m512d __A
,
2193 return (__m128d
) __builtin_ia32_extractf64x2_512_mask ((__v8df
) __A
,
2200 extern __inline __m128d
2201 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2202 _mm512_maskz_extractf64x2_pd (__mmask8 __U
, __m512d __A
,
2205 return (__m128d
) __builtin_ia32_extractf64x2_512_mask ((__v8df
) __A
,
2213 extern __inline __m256i
2214 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2215 _mm512_extracti32x8_epi32 (__m512i __A
, const int __imm
)
2217 return (__m256i
) __builtin_ia32_extracti32x8_mask ((__v16si
) __A
,
2220 _mm256_setzero_si256 (),
2224 extern __inline __m256i
2225 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2226 _mm512_mask_extracti32x8_epi32 (__m256i __W
, __mmask8 __U
, __m512i __A
,
2229 return (__m256i
) __builtin_ia32_extracti32x8_mask ((__v16si
) __A
,
2235 extern __inline __m256i
2236 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2237 _mm512_maskz_extracti32x8_epi32 (__mmask8 __U
, __m512i __A
,
2240 return (__m256i
) __builtin_ia32_extracti32x8_mask ((__v16si
) __A
,
2243 _mm256_setzero_si256 (),
2247 extern __inline __m128i
2248 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2249 _mm512_extracti64x2_epi64 (__m512i __A
, const int __imm
)
2251 return (__m128i
) __builtin_ia32_extracti64x2_512_mask ((__v8di
) __A
,
2254 _mm_setzero_si128 (),
2258 extern __inline __m128i
2259 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2260 _mm512_mask_extracti64x2_epi64 (__m128i __W
, __mmask8 __U
, __m512i __A
,
2263 return (__m128i
) __builtin_ia32_extracti64x2_512_mask ((__v8di
) __A
,
2270 extern __inline __m128i
2271 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2272 _mm512_maskz_extracti64x2_epi64 (__mmask8 __U
, __m512i __A
,
2275 return (__m128i
) __builtin_ia32_extracti64x2_512_mask ((__v8di
) __A
,
2278 _mm_setzero_si128 (),
2283 extern __inline __m512d
2284 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2285 _mm512_range_round_pd (__m512d __A
, __m512d __B
, int __C
,
2288 return (__m512d
) __builtin_ia32_rangepd512_mask ((__v8df
) __A
,
2291 _mm512_setzero_pd (),
2296 extern __inline __m512d
2297 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2298 _mm512_mask_range_round_pd (__m512d __W
, __mmask8 __U
,
2299 __m512d __A
, __m512d __B
, int __C
,
2302 return (__m512d
) __builtin_ia32_rangepd512_mask ((__v8df
) __A
,
2309 extern __inline __m512d
2310 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2311 _mm512_maskz_range_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2312 int __C
, const int __R
)
2314 return (__m512d
) __builtin_ia32_rangepd512_mask ((__v8df
) __A
,
2317 _mm512_setzero_pd (),
2322 extern __inline __m512
2323 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2324 _mm512_range_round_ps (__m512 __A
, __m512 __B
, int __C
, const int __R
)
2326 return (__m512
) __builtin_ia32_rangeps512_mask ((__v16sf
) __A
,
2329 _mm512_setzero_ps (),
2334 extern __inline __m512
2335 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2336 _mm512_mask_range_round_ps (__m512 __W
, __mmask16 __U
,
2337 __m512 __A
, __m512 __B
, int __C
,
2340 return (__m512
) __builtin_ia32_rangeps512_mask ((__v16sf
) __A
,
2347 extern __inline __m512
2348 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2349 _mm512_maskz_range_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
2350 int __C
, const int __R
)
2352 return (__m512
) __builtin_ia32_rangeps512_mask ((__v16sf
) __A
,
2355 _mm512_setzero_ps (),
2360 extern __inline __m512i
2361 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2362 _mm512_inserti32x8 (__m512i __A
, __m256i __B
, const int __imm
)
2364 return (__m512i
) __builtin_ia32_inserti32x8_mask ((__v16si
) __A
,
2368 _mm512_setzero_si512 (),
2372 extern __inline __m512i
2373 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2374 _mm512_mask_inserti32x8 (__m512i __W
, __mmask16 __U
, __m512i __A
,
2375 __m256i __B
, const int __imm
)
2377 return (__m512i
) __builtin_ia32_inserti32x8_mask ((__v16si
) __A
,
2384 extern __inline __m512i
2385 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2386 _mm512_maskz_inserti32x8 (__mmask16 __U
, __m512i __A
, __m256i __B
,
2389 return (__m512i
) __builtin_ia32_inserti32x8_mask ((__v16si
) __A
,
2393 _mm512_setzero_si512 (),
2397 extern __inline __m512
2398 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2399 _mm512_insertf32x8 (__m512 __A
, __m256 __B
, const int __imm
)
2401 return (__m512
) __builtin_ia32_insertf32x8_mask ((__v16sf
) __A
,
2405 _mm512_setzero_ps (),
2409 extern __inline __m512
2410 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2411 _mm512_mask_insertf32x8 (__m512 __W
, __mmask16 __U
, __m512 __A
,
2412 __m256 __B
, const int __imm
)
2414 return (__m512
) __builtin_ia32_insertf32x8_mask ((__v16sf
) __A
,
2421 extern __inline __m512
2422 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2423 _mm512_maskz_insertf32x8 (__mmask16 __U
, __m512 __A
, __m256 __B
,
2426 return (__m512
) __builtin_ia32_insertf32x8_mask ((__v16sf
) __A
,
2430 _mm512_setzero_ps (),
2434 extern __inline __m512i
2435 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2436 _mm512_inserti64x2 (__m512i __A
, __m128i __B
, const int __imm
)
2438 return (__m512i
) __builtin_ia32_inserti64x2_512_mask ((__v8di
) __A
,
2442 _mm512_setzero_si512 (),
2446 extern __inline __m512i
2447 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2448 _mm512_mask_inserti64x2 (__m512i __W
, __mmask8 __U
, __m512i __A
,
2449 __m128i __B
, const int __imm
)
2451 return (__m512i
) __builtin_ia32_inserti64x2_512_mask ((__v8di
) __A
,
2459 extern __inline __m512i
2460 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2461 _mm512_maskz_inserti64x2 (__mmask8 __U
, __m512i __A
, __m128i __B
,
2464 return (__m512i
) __builtin_ia32_inserti64x2_512_mask ((__v8di
) __A
,
2468 _mm512_setzero_si512 (),
2473 extern __inline __m512d
2474 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2475 _mm512_insertf64x2 (__m512d __A
, __m128d __B
, const int __imm
)
2477 return (__m512d
) __builtin_ia32_insertf64x2_512_mask ((__v8df
) __A
,
2481 _mm512_setzero_pd (),
2485 extern __inline __m512d
2486 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2487 _mm512_mask_insertf64x2 (__m512d __W
, __mmask8 __U
, __m512d __A
,
2488 __m128d __B
, const int __imm
)
2490 return (__m512d
) __builtin_ia32_insertf64x2_512_mask ((__v8df
) __A
,
2498 extern __inline __m512d
2499 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2500 _mm512_maskz_insertf64x2 (__mmask8 __U
, __m512d __A
, __m128d __B
,
2503 return (__m512d
) __builtin_ia32_insertf64x2_512_mask ((__v8df
) __A
,
2507 _mm512_setzero_pd (),
2512 extern __inline __mmask8
2513 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2514 _mm512_mask_fpclass_pd_mask (__mmask8 __U
, __m512d __A
,
2517 return (__mmask8
) __builtin_ia32_fpclasspd512_mask ((__v8df
) __A
,
2521 extern __inline __mmask8
2522 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2523 _mm512_fpclass_pd_mask (__m512d __A
, const int __imm
)
2525 return (__mmask8
) __builtin_ia32_fpclasspd512_mask ((__v8df
) __A
,
2530 extern __inline __mmask16
2531 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2532 _mm512_mask_fpclass_ps_mask (__mmask16 __U
, __m512 __A
,
2535 return (__mmask16
) __builtin_ia32_fpclassps512_mask ((__v16sf
) __A
,
2539 extern __inline __mmask16
2540 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2541 _mm512_fpclass_ps_mask (__m512 __A
, const int __imm
)
2543 return (__mmask16
) __builtin_ia32_fpclassps512_mask ((__v16sf
) __A
,
2549 #define _mm512_cvtt_roundpd_epi64(A, B) \
2550 ((__m512i)__builtin_ia32_cvttpd2qq512_mask ((A), (__v8di) \
2551 _mm512_setzero_si512 (), \
2554 #define _mm512_mask_cvtt_roundpd_epi64(W, U, A, B) \
2555 ((__m512i)__builtin_ia32_cvttpd2qq512_mask ((A), (__v8di)(W), (U), (B)))
2557 #define _mm512_maskz_cvtt_roundpd_epi64(U, A, B) \
2558 ((__m512i)__builtin_ia32_cvttpd2qq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2560 #define _mm512_cvtt_roundpd_epu64(A, B) \
2561 ((__m512i)__builtin_ia32_cvttpd2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
2563 #define _mm512_mask_cvtt_roundpd_epu64(W, U, A, B) \
2564 ((__m512i)__builtin_ia32_cvttpd2uqq512_mask ((A), (__v8di)(W), (U), (B)))
2566 #define _mm512_maskz_cvtt_roundpd_epu64(U, A, B) \
2567 ((__m512i)__builtin_ia32_cvttpd2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2569 #define _mm512_cvtt_roundps_epi64(A, B) \
2570 ((__m512i)__builtin_ia32_cvttps2qq512_mask ((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
2572 #define _mm512_mask_cvtt_roundps_epi64(W, U, A, B) \
2573 ((__m512i)__builtin_ia32_cvttps2qq512_mask ((A), (__v8di)(W), (U), (B)))
2575 #define _mm512_maskz_cvtt_roundps_epi64(U, A, B) \
2576 ((__m512i)__builtin_ia32_cvttps2qq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2578 #define _mm512_cvtt_roundps_epu64(A, B) \
2579 ((__m512i)__builtin_ia32_cvttps2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
2581 #define _mm512_mask_cvtt_roundps_epu64(W, U, A, B) \
2582 ((__m512i)__builtin_ia32_cvttps2uqq512_mask ((A), (__v8di)(W), (U), (B)))
2584 #define _mm512_maskz_cvtt_roundps_epu64(U, A, B) \
2585 ((__m512i)__builtin_ia32_cvttps2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2587 #define _mm512_cvt_roundpd_epi64(A, B) \
2588 ((__m512i)__builtin_ia32_cvtpd2qq512_mask ((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
2590 #define _mm512_mask_cvt_roundpd_epi64(W, U, A, B) \
2591 ((__m512i)__builtin_ia32_cvtpd2qq512_mask ((A), (__v8di)(W), (U), (B)))
2593 #define _mm512_maskz_cvt_roundpd_epi64(U, A, B) \
2594 ((__m512i)__builtin_ia32_cvtpd2qq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2596 #define _mm512_cvt_roundpd_epu64(A, B) \
2597 ((__m512i)__builtin_ia32_cvtpd2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
2599 #define _mm512_mask_cvt_roundpd_epu64(W, U, A, B) \
2600 ((__m512i)__builtin_ia32_cvtpd2uqq512_mask ((A), (__v8di)(W), (U), (B)))
2602 #define _mm512_maskz_cvt_roundpd_epu64(U, A, B) \
2603 ((__m512i)__builtin_ia32_cvtpd2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2605 #define _mm512_cvt_roundps_epi64(A, B) \
2606 ((__m512i)__builtin_ia32_cvtps2qq512_mask ((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
2608 #define _mm512_mask_cvt_roundps_epi64(W, U, A, B) \
2609 ((__m512i)__builtin_ia32_cvtps2qq512_mask ((A), (__v8di)(W), (U), (B)))
2611 #define _mm512_maskz_cvt_roundps_epi64(U, A, B) \
2612 ((__m512i)__builtin_ia32_cvtps2qq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2614 #define _mm512_cvt_roundps_epu64(A, B) \
2615 ((__m512i)__builtin_ia32_cvtps2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
2617 #define _mm512_mask_cvt_roundps_epu64(W, U, A, B) \
2618 ((__m512i)__builtin_ia32_cvtps2uqq512_mask ((A), (__v8di)(W), (U), (B)))
2620 #define _mm512_maskz_cvt_roundps_epu64(U, A, B) \
2621 ((__m512i)__builtin_ia32_cvtps2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2623 #define _mm512_cvt_roundepi64_ps(A, B) \
2624 ((__m256)__builtin_ia32_cvtqq2ps512_mask ((__v8di)(A), (__v8sf)_mm256_setzero_ps (), -1, (B)))
2626 #define _mm512_mask_cvt_roundepi64_ps(W, U, A, B) \
2627 ((__m256)__builtin_ia32_cvtqq2ps512_mask ((__v8di)(A), (W), (U), (B)))
2629 #define _mm512_maskz_cvt_roundepi64_ps(U, A, B) \
2630 ((__m256)__builtin_ia32_cvtqq2ps512_mask ((__v8di)(A), (__v8sf)_mm256_setzero_ps (), (U), (B)))
2632 #define _mm512_cvt_roundepu64_ps(A, B) \
2633 ((__m256)__builtin_ia32_cvtuqq2ps512_mask ((__v8di)(A), (__v8sf)_mm256_setzero_ps (), -1, (B)))
2635 #define _mm512_mask_cvt_roundepu64_ps(W, U, A, B) \
2636 ((__m256)__builtin_ia32_cvtuqq2ps512_mask ((__v8di)(A), (W), (U), (B)))
2638 #define _mm512_maskz_cvt_roundepu64_ps(U, A, B) \
2639 ((__m256)__builtin_ia32_cvtuqq2ps512_mask ((__v8di)(A), (__v8sf)_mm256_setzero_ps (), (U), (B)))
2641 #define _mm512_cvt_roundepi64_pd(A, B) \
2642 ((__m512d)__builtin_ia32_cvtqq2pd512_mask ((__v8di)(A), (__v8df)_mm512_setzero_pd (), -1, (B)))
2644 #define _mm512_mask_cvt_roundepi64_pd(W, U, A, B) \
2645 ((__m512d)__builtin_ia32_cvtqq2pd512_mask ((__v8di)(A), (W), (U), (B)))
2647 #define _mm512_maskz_cvt_roundepi64_pd(U, A, B) \
2648 ((__m512d)__builtin_ia32_cvtqq2pd512_mask ((__v8di)(A), (__v8df)_mm512_setzero_pd (), (U), (B)))
2650 #define _mm512_cvt_roundepu64_pd(A, B) \
2651 ((__m512d)__builtin_ia32_cvtuqq2pd512_mask ((__v8di)(A), (__v8df)_mm512_setzero_pd (), -1, (B)))
2653 #define _mm512_mask_cvt_roundepu64_pd(W, U, A, B) \
2654 ((__m512d)__builtin_ia32_cvtuqq2pd512_mask ((__v8di)(A), (W), (U), (B)))
2656 #define _mm512_maskz_cvt_roundepu64_pd(U, A, B) \
2657 ((__m512d)__builtin_ia32_cvtuqq2pd512_mask ((__v8di)(A), (__v8df)_mm512_setzero_pd (), (U), (B)))
2659 #define _mm512_reduce_pd(A, B) \
2660 ((__m512d) __builtin_ia32_reducepd512_mask ((__v8df)(__m512d)(A), \
2661 (int)(B), (__v8df)_mm512_setzero_pd (), (__mmask8)-1))
2663 #define _mm512_reduce_round_pd(A, B, R) \
2664 ((__m512d) __builtin_ia32_reducepd512_mask_round ((__v8df)(__m512d)(A),\
2665 (int)(B), (__v8df)_mm512_setzero_pd (), (__mmask8)-1, (R)))
2667 #define _mm512_mask_reduce_pd(W, U, A, B) \
2668 ((__m512d) __builtin_ia32_reducepd512_mask ((__v8df)(__m512d)(A), \
2669 (int)(B), (__v8df)(__m512d)(W), (__mmask8)(U)))
2671 #define _mm512_mask_reduce_round_pd(W, U, A, B, R) \
2672 ((__m512d) __builtin_ia32_reducepd512_mask_round ((__v8df)(__m512d)(A),\
2673 (int)(B), (__v8df)(__m512d)(W), (U), (R)))
2675 #define _mm512_maskz_reduce_pd(U, A, B) \
2676 ((__m512d) __builtin_ia32_reducepd512_mask ((__v8df)(__m512d)(A), \
2677 (int)(B), (__v8df)_mm512_setzero_pd (), (__mmask8)(U)))
2679 #define _mm512_maskz_reduce_round_pd(U, A, B, R) \
2680 ((__m512d) __builtin_ia32_reducepd512_mask_round ((__v8df)(__m512d)(A),\
2681 (int)(B), (__v8df)_mm512_setzero_pd (), (U), (R)))
2683 #define _mm512_reduce_ps(A, B) \
2684 ((__m512) __builtin_ia32_reduceps512_mask ((__v16sf)(__m512)(A), \
2685 (int)(B), (__v16sf)_mm512_setzero_ps (), (__mmask16)-1))
2687 #define _mm512_reduce_round_ps(A, B, R) \
2688 ((__m512) __builtin_ia32_reduceps512_mask_round ((__v16sf)(__m512)(A),\
2689 (int)(B), (__v16sf)_mm512_setzero_ps (), (__mmask16)-1, (R)))
2691 #define _mm512_mask_reduce_ps(W, U, A, B) \
2692 ((__m512) __builtin_ia32_reduceps512_mask ((__v16sf)(__m512)(A), \
2693 (int)(B), (__v16sf)(__m512)(W), (__mmask16)(U)))
2695 #define _mm512_mask_reduce_round_ps(W, U, A, B, R) \
2696 ((__m512) __builtin_ia32_reduceps512_mask_round ((__v16sf)(__m512)(A),\
2697 (int)(B), (__v16sf)(__m512)(W), (U), (R)))
2699 #define _mm512_maskz_reduce_ps(U, A, B) \
2700 ((__m512) __builtin_ia32_reduceps512_mask ((__v16sf)(__m512)(A), \
2701 (int)(B), (__v16sf)_mm512_setzero_ps (), (__mmask16)(U)))
2703 #define _mm512_maskz_reduce_round_ps(U, A, B, R) \
2704 ((__m512) __builtin_ia32_reduceps512_mask_round ((__v16sf)(__m512)(A),\
2705 (int)(B), (__v16sf)_mm512_setzero_ps (), (__mmask16)(U), (R)))
2707 #define _mm512_extractf32x8_ps(X, C) \
2708 ((__m256) __builtin_ia32_extractf32x8_mask ((__v16sf)(__m512) (X), \
2709 (int) (C), (__v8sf)(__m256) _mm256_setzero_ps (), (__mmask8)-1))
2711 #define _mm512_mask_extractf32x8_ps(W, U, X, C) \
2712 ((__m256) __builtin_ia32_extractf32x8_mask ((__v16sf)(__m512) (X), \
2713 (int) (C), (__v8sf)(__m256) (W), (__mmask8) (U)))
2715 #define _mm512_maskz_extractf32x8_ps(U, X, C) \
2716 ((__m256) __builtin_ia32_extractf32x8_mask ((__v16sf)(__m512) (X), \
2717 (int) (C), (__v8sf)(__m256) _mm256_setzero_ps (), (__mmask8) (U)))
2719 #define _mm512_extractf64x2_pd(X, C) \
2720 ((__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df)(__m512d) (X),\
2721 (int) (C), (__v2df)(__m128d) _mm_setzero_pd (), (__mmask8)-1))
2723 #define _mm512_mask_extractf64x2_pd(W, U, X, C) \
2724 ((__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df)(__m512d) (X),\
2725 (int) (C), (__v2df)(__m128d) (W), (__mmask8) (U)))
2727 #define _mm512_maskz_extractf64x2_pd(U, X, C) \
2728 ((__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df)(__m512d) (X),\
2729 (int) (C), (__v2df)(__m128d) _mm_setzero_pd (), (__mmask8) (U)))
2731 #define _mm512_extracti32x8_epi32(X, C) \
2732 ((__m256i) __builtin_ia32_extracti32x8_mask ((__v16si)(__m512i) (X), \
2733 (int) (C), (__v8si)(__m256i) _mm256_setzero_si256 (), (__mmask8)-1))
2735 #define _mm512_mask_extracti32x8_epi32(W, U, X, C) \
2736 ((__m256i) __builtin_ia32_extracti32x8_mask ((__v16si)(__m512i) (X), \
2737 (int) (C), (__v8si)(__m256i) (W), (__mmask8) (U)))
2739 #define _mm512_maskz_extracti32x8_epi32(U, X, C) \
2740 ((__m256i) __builtin_ia32_extracti32x8_mask ((__v16si)(__m512i) (X), \
2741 (int) (C), (__v8si)(__m256i) _mm256_setzero_si256 (), (__mmask8) (U)))
2743 #define _mm512_extracti64x2_epi64(X, C) \
2744 ((__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di)(__m512i) (X),\
2745 (int) (C), (__v2di)(__m128i) _mm_setzero_si128 (), (__mmask8)-1))
2747 #define _mm512_mask_extracti64x2_epi64(W, U, X, C) \
2748 ((__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di)(__m512i) (X),\
2749 (int) (C), (__v2di)(__m128i) (W), (__mmask8) (U)))
2751 #define _mm512_maskz_extracti64x2_epi64(U, X, C) \
2752 ((__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di)(__m512i) (X),\
2753 (int) (C), (__v2di)(__m128i) _mm_setzero_si128 (), (__mmask8) (U)))
2755 #define _mm512_range_pd(A, B, C) \
2756 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2757 (__v8df)(__m512d)(B), (int)(C), \
2758 (__v8df)_mm512_setzero_pd (), (__mmask8)-1, _MM_FROUND_CUR_DIRECTION))
2760 #define _mm512_mask_range_pd(W, U, A, B, C) \
2761 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2762 (__v8df)(__m512d)(B), (int)(C), \
2763 (__v8df)(__m512d)(W), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
2765 #define _mm512_maskz_range_pd(U, A, B, C) \
2766 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2767 (__v8df)(__m512d)(B), (int)(C), \
2768 (__v8df)_mm512_setzero_pd (), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
2770 #define _mm512_range_ps(A, B, C) \
2771 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2772 (__v16sf)(__m512)(B), (int)(C), \
2773 (__v16sf)_mm512_setzero_ps (), (__mmask16)-1, _MM_FROUND_CUR_DIRECTION))
2775 #define _mm512_mask_range_ps(W, U, A, B, C) \
2776 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2777 (__v16sf)(__m512)(B), (int)(C), \
2778 (__v16sf)(__m512)(W), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
2780 #define _mm512_maskz_range_ps(U, A, B, C) \
2781 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2782 (__v16sf)(__m512)(B), (int)(C), \
2783 (__v16sf)_mm512_setzero_ps (), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
2785 #define _mm512_range_round_pd(A, B, C, R) \
2786 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2787 (__v8df)(__m512d)(B), (int)(C), \
2788 (__v8df)_mm512_setzero_pd (), (__mmask8)-1, (R)))
2790 #define _mm512_mask_range_round_pd(W, U, A, B, C, R) \
2791 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2792 (__v8df)(__m512d)(B), (int)(C), \
2793 (__v8df)(__m512d)(W), (__mmask8)(U), (R)))
2795 #define _mm512_maskz_range_round_pd(U, A, B, C, R) \
2796 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2797 (__v8df)(__m512d)(B), (int)(C), \
2798 (__v8df)_mm512_setzero_pd (), (__mmask8)(U), (R)))
2800 #define _mm512_range_round_ps(A, B, C, R) \
2801 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2802 (__v16sf)(__m512)(B), (int)(C), \
2803 (__v16sf)_mm512_setzero_ps (), (__mmask16)-1, (R)))
2805 #define _mm512_mask_range_round_ps(W, U, A, B, C, R) \
2806 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2807 (__v16sf)(__m512)(B), (int)(C), \
2808 (__v16sf)(__m512)(W), (__mmask16)(U), (R)))
2810 #define _mm512_maskz_range_round_ps(U, A, B, C, R) \
2811 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2812 (__v16sf)(__m512)(B), (int)(C), \
2813 (__v16sf)_mm512_setzero_ps (), (__mmask16)(U), (R)))
2815 #define _mm512_insertf64x2(X, Y, C) \
2816 ((__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df)(__m512d) (X),\
2817 (__v2df)(__m128d) (Y), (int) (C), (__v8df)(__m512d) (X), \
2820 #define _mm512_mask_insertf64x2(W, U, X, Y, C) \
2821 ((__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df)(__m512d) (X),\
2822 (__v2df)(__m128d) (Y), (int) (C), (__v8df)(__m512d) (W), \
2825 #define _mm512_maskz_insertf64x2(U, X, Y, C) \
2826 ((__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df)(__m512d) (X),\
2827 (__v2df)(__m128d) (Y), (int) (C), \
2828 (__v8df)(__m512d) _mm512_setzero_pd (), (__mmask8) (U)))
2830 #define _mm512_inserti64x2(X, Y, C) \
2831 ((__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di)(__m512i) (X),\
2832 (__v2di)(__m128i) (Y), (int) (C), (__v8di)(__m512i) (X), (__mmask8)-1))
2834 #define _mm512_mask_inserti64x2(W, U, X, Y, C) \
2835 ((__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di)(__m512i) (X),\
2836 (__v2di)(__m128i) (Y), (int) (C), (__v8di)(__m512i) (W), \
2839 #define _mm512_maskz_inserti64x2(U, X, Y, C) \
2840 ((__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di)(__m512i) (X),\
2841 (__v2di)(__m128i) (Y), (int) (C), \
2842 (__v8di)(__m512i) _mm512_setzero_si512 (), (__mmask8) (U)))
2844 #define _mm512_insertf32x8(X, Y, C) \
2845 ((__m512) __builtin_ia32_insertf32x8_mask ((__v16sf)(__m512) (X), \
2846 (__v8sf)(__m256) (Y), (int) (C),\
2847 (__v16sf)(__m512)_mm512_setzero_ps (),\
2850 #define _mm512_mask_insertf32x8(W, U, X, Y, C) \
2851 ((__m512) __builtin_ia32_insertf32x8_mask ((__v16sf)(__m512) (X), \
2852 (__v8sf)(__m256) (Y), (int) (C),\
2853 (__v16sf)(__m512)(W),\
2856 #define _mm512_maskz_insertf32x8(U, X, Y, C) \
2857 ((__m512) __builtin_ia32_insertf32x8_mask ((__v16sf)(__m512) (X), \
2858 (__v8sf)(__m256) (Y), (int) (C),\
2859 (__v16sf)(__m512)_mm512_setzero_ps (),\
2862 #define _mm512_inserti32x8(X, Y, C) \
2863 ((__m512i) __builtin_ia32_inserti32x8_mask ((__v16si)(__m512i) (X), \
2864 (__v8si)(__m256i) (Y), (int) (C),\
2865 (__v16si)(__m512i)_mm512_setzero_si512 (),\
2868 #define _mm512_mask_inserti32x8(W, U, X, Y, C) \
2869 ((__m512i) __builtin_ia32_inserti32x8_mask ((__v16si)(__m512i) (X), \
2870 (__v8si)(__m256i) (Y), (int) (C),\
2871 (__v16si)(__m512i)(W),\
2874 #define _mm512_maskz_inserti32x8(U, X, Y, C) \
2875 ((__m512i) __builtin_ia32_inserti32x8_mask ((__v16si)(__m512i) (X), \
2876 (__v8si)(__m256i) (Y), (int) (C),\
2877 (__v16si)(__m512i)_mm512_setzero_si512 (),\
2880 #define _mm512_mask_fpclass_pd_mask(u, X, C) \
2881 ((__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) (__m512d) (X), \
2882 (int) (C), (__mmask8)(u)))
2884 #define _mm512_mask_fpclass_ps_mask(u, x, c) \
2885 ((__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) (__m512) (x),\
2886 (int) (c),(__mmask16)(u)))
2888 #define _mm512_fpclass_pd_mask(X, C) \
2889 ((__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) (__m512d) (X), \
2890 (int) (C), (__mmask8)-1))
2892 #define _mm512_fpclass_ps_mask(x, c) \
2893 ((__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) (__m512) (x),\
2894 (int) (c),(__mmask16)-1))
2898 #ifdef __DISABLE_AVX512DQ_512__
2899 #undef __DISABLE_AVX512DQ_512__
2900 #pragma GCC pop_options
2901 #endif /* __DISABLE_AVX512DQ_512__ */
2903 #endif /* _AVX512DQINTRIN_H_INCLUDED */