PR preprocessor/63831
[official-gcc.git] / gcc / config / i386 / avx512dqintrin.h
blob82f181c3a5b20ea82e0ce8ac5d7253fffabd2f30
1 /* Copyright (C) 2014
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)
9 any later version.
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."
27 #endif
29 #ifndef _AVX512DQINTRIN_H_INCLUDED
30 #define _AVX512DQINTRIN_H_INCLUDED
32 #ifndef __AVX512DQ__
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)
43 __A,
44 _mm512_undefined_pd(),
45 (__mmask8) -
46 1);
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)
54 __A,
55 (__v8df)
56 __O, __M);
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)
64 __A,
65 (__v8df)
66 _mm512_setzero_ps (),
67 __M);
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)
75 __A,
76 _mm512_undefined_si512(),
77 (__mmask8) -
78 1);
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)
86 __A,
87 (__v8di)
88 __O, __M);
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)
96 __A,
97 (__v8di)
98 _mm512_setzero_si512 (),
99 __M);
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(),
108 (__mmask16) -
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,
117 (__v16sf)
118 __O, __M);
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,
126 (__v16sf)
127 _mm512_setzero_ps (),
128 __M);
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)
136 __A,
137 (__v16si)_mm512_undefined_si512(),
138 (__mmask16)
139 -1);
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)
147 __A,
148 (__v16si)
149 __O, __M);
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)
157 __A,
158 (__v16si)
159 _mm512_setzero_si512 (),
160 __M);
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(),
169 (__mmask16) -
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,
178 (__v16sf)__O,
179 __M);
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,
187 (__v16sf)
188 _mm512_setzero_ps (),
189 __M);
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)
197 __A,
198 (__v16si)_mm512_undefined_si512(),
199 (__mmask16)
200 -1);
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)
208 __A,
209 (__v16si)__O,
210 __M);
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)
218 __A,
219 (__v16si)
220 _mm512_setzero_si512 (),
221 __M);
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,
234 __m512i __B)
236 return (__m512i) __builtin_ia32_pmullq512_mask ((__v8di) __A,
237 (__v8di) __B,
238 (__v8di) __W,
239 (__mmask8) __U);
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,
247 (__v8di) __B,
248 (__v8di)
249 _mm512_setzero_si512 (),
250 (__mmask8) __U);
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,
258 (__v8df) __B,
259 (__v8df)
260 _mm512_setzero_pd (),
261 (__mmask8) -1);
264 extern __inline __m512d
265 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
266 _mm512_mask_xor_pd (__m512d __W, __mmask8 __U, __m512d __A,
267 __m512d __B)
269 return (__m512d) __builtin_ia32_xorpd512_mask ((__v8df) __A,
270 (__v8df) __B,
271 (__v8df) __W,
272 (__mmask8) __U);
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,
280 (__v8df) __B,
281 (__v8df)
282 _mm512_setzero_pd (),
283 (__mmask8) __U);
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,
291 (__v16sf) __B,
292 (__v16sf)
293 _mm512_setzero_ps (),
294 (__mmask16) -1);
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,
302 (__v16sf) __B,
303 (__v16sf) __W,
304 (__mmask16) __U);
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,
312 (__v16sf) __B,
313 (__v16sf)
314 _mm512_setzero_ps (),
315 (__mmask16) __U);
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,
323 (__v8df) __B,
324 (__v8df)
325 _mm512_setzero_pd (),
326 (__mmask8) -1);
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,
334 (__v8df) __B,
335 (__v8df) __W,
336 (__mmask8) __U);
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,
344 (__v8df) __B,
345 (__v8df)
346 _mm512_setzero_pd (),
347 (__mmask8) __U);
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,
355 (__v16sf) __B,
356 (__v16sf)
357 _mm512_setzero_ps (),
358 (__mmask16) -1);
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,
366 (__v16sf) __B,
367 (__v16sf) __W,
368 (__mmask16) __U);
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,
376 (__v16sf) __B,
377 (__v16sf)
378 _mm512_setzero_ps (),
379 (__mmask16) __U);
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,
387 (__v8df) __B,
388 (__v8df)
389 _mm512_setzero_pd (),
390 (__mmask8) -1);
393 extern __inline __m512d
394 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
395 _mm512_mask_and_pd (__m512d __W, __mmask8 __U, __m512d __A,
396 __m512d __B)
398 return (__m512d) __builtin_ia32_andpd512_mask ((__v8df) __A,
399 (__v8df) __B,
400 (__v8df) __W,
401 (__mmask8) __U);
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,
409 (__v8df) __B,
410 (__v8df)
411 _mm512_setzero_pd (),
412 (__mmask8) __U);
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,
420 (__v16sf) __B,
421 (__v16sf)
422 _mm512_setzero_ps (),
423 (__mmask16) -1);
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,
431 (__v16sf) __B,
432 (__v16sf) __W,
433 (__mmask16) __U);
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,
441 (__v16sf) __B,
442 (__v16sf)
443 _mm512_setzero_ps (),
444 (__mmask16) __U);
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,
452 (__v8df) __B,
453 (__v8df)
454 _mm512_setzero_pd (),
455 (__mmask8) -1);
458 extern __inline __m512d
459 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
460 _mm512_mask_andnot_pd (__m512d __W, __mmask8 __U, __m512d __A,
461 __m512d __B)
463 return (__m512d) __builtin_ia32_andnpd512_mask ((__v8df) __A,
464 (__v8df) __B,
465 (__v8df) __W,
466 (__mmask8) __U);
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,
474 (__v8df) __B,
475 (__v8df)
476 _mm512_setzero_pd (),
477 (__mmask8) __U);
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,
485 (__v16sf) __B,
486 (__v16sf)
487 _mm512_setzero_ps (),
488 (__mmask16) -1);
491 extern __inline __m512
492 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
493 _mm512_mask_andnot_ps (__m512 __W, __mmask16 __U, __m512 __A,
494 __m512 __B)
496 return (__m512) __builtin_ia32_andnps512_mask ((__v16sf) __A,
497 (__v16sf) __B,
498 (__v16sf) __W,
499 (__mmask16) __U);
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,
507 (__v16sf) __B,
508 (__v16sf)
509 _mm512_setzero_ps (),
510 (__mmask16) __U);
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,
546 (__v8di)
547 _mm512_setzero_si512 (),
548 (__mmask8) -1,
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,
557 (__v8di) __W,
558 (__mmask8) __U,
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,
567 (__v8di)
568 _mm512_setzero_si512 (),
569 (__mmask8) __U,
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,
578 (__v8di)
579 _mm512_setzero_si512 (),
580 (__mmask8) -1,
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,
589 (__v8di) __W,
590 (__mmask8) __U,
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,
599 (__v8di)
600 _mm512_setzero_si512 (),
601 (__mmask8) __U,
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,
610 (__v8di)
611 _mm512_setzero_si512 (),
612 (__mmask8) -1,
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,
621 (__v8di) __W,
622 (__mmask8) __U,
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,
631 (__v8di)
632 _mm512_setzero_si512 (),
633 (__mmask8) __U,
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,
642 (__v8di)
643 _mm512_setzero_si512 (),
644 (__mmask8) -1,
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,
653 (__v8di) __W,
654 (__mmask8) __U,
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,
663 (__v8di)
664 _mm512_setzero_si512 (),
665 (__mmask8) __U,
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,
674 (__v8di)
675 _mm512_setzero_si512 (),
676 (__mmask8) -1,
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,
685 (__v8di) __W,
686 (__mmask8) __U,
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,
695 (__v8di)
696 _mm512_setzero_si512 (),
697 (__mmask8) __U,
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,
706 (__v8di)
707 _mm512_setzero_si512 (),
708 (__mmask8) -1,
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,
717 (__v8di) __W,
718 (__mmask8) __U,
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,
727 (__v8di)
728 _mm512_setzero_si512 (),
729 (__mmask8) __U,
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,
738 (__v8di)
739 _mm512_setzero_si512 (),
740 (__mmask8) -1,
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,
749 (__v8di) __W,
750 (__mmask8) __U,
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,
759 (__v8di)
760 _mm512_setzero_si512 (),
761 (__mmask8) __U,
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,
770 (__v8di)
771 _mm512_setzero_si512 (),
772 (__mmask8) -1,
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,
781 (__v8di) __W,
782 (__mmask8) __U,
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,
791 (__v8di)
792 _mm512_setzero_si512 (),
793 (__mmask8) __U,
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,
802 (__v8sf)
803 _mm256_setzero_ps (),
804 (__mmask8) -1,
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,
813 (__v8sf) __W,
814 (__mmask8) __U,
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,
823 (__v8sf)
824 _mm256_setzero_ps (),
825 (__mmask8) __U,
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,
834 (__v8sf)
835 _mm256_setzero_ps (),
836 (__mmask8) -1,
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,
845 (__v8sf) __W,
846 (__mmask8) __U,
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,
855 (__v8sf)
856 _mm256_setzero_ps (),
857 (__mmask8) __U,
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,
866 (__v8df)
867 _mm512_setzero_pd (),
868 (__mmask8) -1,
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,
877 (__v8df) __W,
878 (__mmask8) __U,
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,
887 (__v8df)
888 _mm512_setzero_pd (),
889 (__mmask8) __U,
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,
898 (__v8df)
899 _mm512_setzero_pd (),
900 (__mmask8) -1,
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,
909 (__v8df) __W,
910 (__mmask8) __U,
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,
919 (__v8df)
920 _mm512_setzero_pd (),
921 (__mmask8) __U,
922 _MM_FROUND_CUR_DIRECTION);
925 #ifdef __OPTIMIZE__
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,
931 (__v8df) __B, __C,
932 (__v8df)
933 _mm512_setzero_pd (),
934 (__mmask8) -1,
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,
944 (__v8df) __B, __C,
945 (__v8df) __W,
946 (__mmask8) __U,
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,
955 (__v8df) __B, __C,
956 (__v8df)
957 _mm512_setzero_pd (),
958 (__mmask8) __U,
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,
967 (__v16sf) __B, __C,
968 (__v16sf)
969 _mm512_setzero_ps (),
970 (__mmask16) -1,
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,
980 (__v16sf) __B, __C,
981 (__v16sf) __W,
982 (__mmask16) __U,
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,
991 (__v16sf) __B, __C,
992 (__v16sf)
993 _mm512_setzero_ps (),
994 (__mmask16) __U,
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,
1003 (__v2df) __B, __C);
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,
1011 (__v4sf) __B, __C);
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,
1019 (__v2df) __B, __C,
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,
1029 (__v4sf) __B, __C,
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,
1038 (__v2df) __B, __C,
1039 __R);
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,
1047 (__v4sf) __B, __C,
1048 __R);
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,
1070 (__v8di)
1071 _mm512_setzero_si512 (),
1072 (__mmask8) -1,
1073 __R);
1076 extern __inline __m512i
1077 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1078 _mm512_mask_cvtt_roundpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A,
1079 const int __R)
1081 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
1082 (__v8di) __W,
1083 (__mmask8) __U,
1084 __R);
1087 extern __inline __m512i
1088 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1089 _mm512_maskz_cvtt_roundpd_epi64 (__mmask8 __U, __m512d __A,
1090 const int __R)
1092 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
1093 (__v8di)
1094 _mm512_setzero_si512 (),
1095 (__mmask8) __U,
1096 __R);
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,
1104 (__v8di)
1105 _mm512_setzero_si512 (),
1106 (__mmask8) -1,
1107 __R);
1110 extern __inline __m512i
1111 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1112 _mm512_mask_cvtt_roundpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A,
1113 const int __R)
1115 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
1116 (__v8di) __W,
1117 (__mmask8) __U,
1118 __R);
1121 extern __inline __m512i
1122 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1123 _mm512_maskz_cvtt_roundpd_epu64 (__mmask8 __U, __m512d __A,
1124 const int __R)
1126 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
1127 (__v8di)
1128 _mm512_setzero_si512 (),
1129 (__mmask8) __U,
1130 __R);
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,
1138 (__v8di)
1139 _mm512_setzero_si512 (),
1140 (__mmask8) -1,
1141 __R);
1144 extern __inline __m512i
1145 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1146 _mm512_mask_cvtt_roundps_epi64 (__m512i __W, __mmask8 __U, __m256 __A,
1147 const int __R)
1149 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
1150 (__v8di) __W,
1151 (__mmask8) __U,
1152 __R);
1155 extern __inline __m512i
1156 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1157 _mm512_maskz_cvtt_roundps_epi64 (__mmask8 __U, __m256 __A,
1158 const int __R)
1160 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
1161 (__v8di)
1162 _mm512_setzero_si512 (),
1163 (__mmask8) __U,
1164 __R);
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,
1172 (__v8di)
1173 _mm512_setzero_si512 (),
1174 (__mmask8) -1,
1175 __R);
1178 extern __inline __m512i
1179 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1180 _mm512_mask_cvtt_roundps_epu64 (__m512i __W, __mmask8 __U, __m256 __A,
1181 const int __R)
1183 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
1184 (__v8di) __W,
1185 (__mmask8) __U,
1186 __R);
1189 extern __inline __m512i
1190 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1191 _mm512_maskz_cvtt_roundps_epu64 (__mmask8 __U, __m256 __A,
1192 const int __R)
1194 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
1195 (__v8di)
1196 _mm512_setzero_si512 (),
1197 (__mmask8) __U,
1198 __R);
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,
1206 (__v8di)
1207 _mm512_setzero_si512 (),
1208 (__mmask8) -1,
1209 __R);
1212 extern __inline __m512i
1213 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1214 _mm512_mask_cvt_roundpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A,
1215 const int __R)
1217 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
1218 (__v8di) __W,
1219 (__mmask8) __U,
1220 __R);
1223 extern __inline __m512i
1224 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1225 _mm512_maskz_cvt_roundpd_epi64 (__mmask8 __U, __m512d __A,
1226 const int __R)
1228 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
1229 (__v8di)
1230 _mm512_setzero_si512 (),
1231 (__mmask8) __U,
1232 __R);
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,
1240 (__v8di)
1241 _mm512_setzero_si512 (),
1242 (__mmask8) -1,
1243 __R);
1246 extern __inline __m512i
1247 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1248 _mm512_mask_cvt_roundpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A,
1249 const int __R)
1251 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
1252 (__v8di) __W,
1253 (__mmask8) __U,
1254 __R);
1257 extern __inline __m512i
1258 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1259 _mm512_maskz_cvt_roundpd_epu64 (__mmask8 __U, __m512d __A,
1260 const int __R)
1262 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
1263 (__v8di)
1264 _mm512_setzero_si512 (),
1265 (__mmask8) __U,
1266 __R);
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,
1274 (__v8di)
1275 _mm512_setzero_si512 (),
1276 (__mmask8) -1,
1277 __R);
1280 extern __inline __m512i
1281 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1282 _mm512_mask_cvt_roundps_epi64 (__m512i __W, __mmask8 __U, __m256 __A,
1283 const int __R)
1285 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
1286 (__v8di) __W,
1287 (__mmask8) __U,
1288 __R);
1291 extern __inline __m512i
1292 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1293 _mm512_maskz_cvt_roundps_epi64 (__mmask8 __U, __m256 __A,
1294 const int __R)
1296 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
1297 (__v8di)
1298 _mm512_setzero_si512 (),
1299 (__mmask8) __U,
1300 __R);
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,
1308 (__v8di)
1309 _mm512_setzero_si512 (),
1310 (__mmask8) -1,
1311 __R);
1314 extern __inline __m512i
1315 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1316 _mm512_mask_cvt_roundps_epu64 (__m512i __W, __mmask8 __U, __m256 __A,
1317 const int __R)
1319 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
1320 (__v8di) __W,
1321 (__mmask8) __U,
1322 __R);
1325 extern __inline __m512i
1326 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1327 _mm512_maskz_cvt_roundps_epu64 (__mmask8 __U, __m256 __A,
1328 const int __R)
1330 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
1331 (__v8di)
1332 _mm512_setzero_si512 (),
1333 (__mmask8) __U,
1334 __R);
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,
1342 (__v8sf)
1343 _mm256_setzero_ps (),
1344 (__mmask8) -1,
1345 __R);
1348 extern __inline __m256
1349 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1350 _mm512_mask_cvt_roundepi64_ps (__m256 __W, __mmask8 __U, __m512i __A,
1351 const int __R)
1353 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
1354 (__v8sf) __W,
1355 (__mmask8) __U,
1356 __R);
1359 extern __inline __m256
1360 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1361 _mm512_maskz_cvt_roundepi64_ps (__mmask8 __U, __m512i __A,
1362 const int __R)
1364 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
1365 (__v8sf)
1366 _mm256_setzero_ps (),
1367 (__mmask8) __U,
1368 __R);
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,
1376 (__v8sf)
1377 _mm256_setzero_ps (),
1378 (__mmask8) -1,
1379 __R);
1382 extern __inline __m256
1383 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1384 _mm512_mask_cvt_roundepu64_ps (__m256 __W, __mmask8 __U, __m512i __A,
1385 const int __R)
1387 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
1388 (__v8sf) __W,
1389 (__mmask8) __U,
1390 __R);
1393 extern __inline __m256
1394 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1395 _mm512_maskz_cvt_roundepu64_ps (__mmask8 __U, __m512i __A,
1396 const int __R)
1398 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
1399 (__v8sf)
1400 _mm256_setzero_ps (),
1401 (__mmask8) __U,
1402 __R);
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,
1410 (__v8df)
1411 _mm512_setzero_pd (),
1412 (__mmask8) -1,
1413 __R);
1416 extern __inline __m512d
1417 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1418 _mm512_mask_cvt_roundepi64_pd (__m512d __W, __mmask8 __U, __m512i __A,
1419 const int __R)
1421 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
1422 (__v8df) __W,
1423 (__mmask8) __U,
1424 __R);
1427 extern __inline __m512d
1428 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1429 _mm512_maskz_cvt_roundepi64_pd (__mmask8 __U, __m512i __A,
1430 const int __R)
1432 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
1433 (__v8df)
1434 _mm512_setzero_pd (),
1435 (__mmask8) __U,
1436 __R);
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,
1444 (__v8df)
1445 _mm512_setzero_pd (),
1446 (__mmask8) -1,
1447 __R);
1450 extern __inline __m512d
1451 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1452 _mm512_mask_cvt_roundepu64_pd (__m512d __W, __mmask8 __U, __m512i __A,
1453 const int __R)
1455 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
1456 (__v8df) __W,
1457 (__mmask8) __U,
1458 __R);
1461 extern __inline __m512d
1462 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1463 _mm512_maskz_cvt_roundepu64_pd (__mmask8 __U, __m512i __A,
1464 const int __R)
1466 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
1467 (__v8df)
1468 _mm512_setzero_pd (),
1469 (__mmask8) __U,
1470 __R);
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,
1478 (__v8df)
1479 _mm512_setzero_pd (),
1480 (__mmask8) -1);
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,
1488 (__v8df) __W,
1489 (__mmask8) __U);
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,
1497 (__v8df)
1498 _mm512_setzero_pd (),
1499 (__mmask8) __U);
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,
1507 (__v16sf)
1508 _mm512_setzero_ps (),
1509 (__mmask16) -1);
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,
1517 (__v16sf) __W,
1518 (__mmask16) __U);
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,
1526 (__v16sf)
1527 _mm512_setzero_ps (),
1528 (__mmask16) __U);
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,
1536 __imm,
1537 (__v8sf)
1538 _mm256_setzero_ps (),
1539 (__mmask8) -1);
1542 extern __inline __m256
1543 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1544 _mm512_mask_extractf32x8_ps (__m256 __W, __mmask8 __U, __m512 __A,
1545 const int __imm)
1547 return (__m256) __builtin_ia32_extractf32x8_mask ((__v16sf) __A,
1548 __imm,
1549 (__v8sf) __W,
1550 (__mmask8) __U);
1553 extern __inline __m256
1554 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1555 _mm512_maskz_extractf32x8_ps (__mmask8 __U, __m512 __A,
1556 const int __imm)
1558 return (__m256) __builtin_ia32_extractf32x8_mask ((__v16sf) __A,
1559 __imm,
1560 (__v8sf)
1561 _mm256_setzero_ps (),
1562 (__mmask8) __U);
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,
1570 __imm,
1571 (__v2df)
1572 _mm_setzero_pd (),
1573 (__mmask8) -
1577 extern __inline __m128d
1578 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1579 _mm512_mask_extractf64x2_pd (__m128d __W, __mmask8 __U, __m512d __A,
1580 const int __imm)
1582 return (__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df) __A,
1583 __imm,
1584 (__v2df) __W,
1585 (__mmask8)
1586 __U);
1589 extern __inline __m128d
1590 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1591 _mm512_maskz_extractf64x2_pd (__mmask8 __U, __m512d __A,
1592 const int __imm)
1594 return (__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df) __A,
1595 __imm,
1596 (__v2df)
1597 _mm_setzero_pd (),
1598 (__mmask8)
1599 __U);
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,
1607 __imm,
1608 (__v8si)
1609 _mm256_setzero_si256 (),
1610 (__mmask8) -1);
1613 extern __inline __m256i
1614 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1615 _mm512_mask_extracti32x8_epi32 (__m256i __W, __mmask8 __U, __m512i __A,
1616 const int __imm)
1618 return (__m256i) __builtin_ia32_extracti32x8_mask ((__v16si) __A,
1619 __imm,
1620 (__v8si) __W,
1621 (__mmask8) __U);
1624 extern __inline __m256i
1625 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1626 _mm512_maskz_extracti32x8_epi32 (__mmask8 __U, __m512i __A,
1627 const int __imm)
1629 return (__m256i) __builtin_ia32_extracti32x8_mask ((__v16si) __A,
1630 __imm,
1631 (__v8si)
1632 _mm256_setzero_si256 (),
1633 (__mmask8) __U);
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,
1641 __imm,
1642 (__v2di)
1643 _mm_setzero_di (),
1644 (__mmask8) -
1648 extern __inline __m128i
1649 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1650 _mm512_mask_extracti64x2_epi64 (__m128i __W, __mmask8 __U, __m512i __A,
1651 const int __imm)
1653 return (__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di) __A,
1654 __imm,
1655 (__v2di) __W,
1656 (__mmask8)
1657 __U);
1660 extern __inline __m128i
1661 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1662 _mm512_maskz_extracti64x2_epi64 (__mmask8 __U, __m512i __A,
1663 const int __imm)
1665 return (__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di) __A,
1666 __imm,
1667 (__v2di)
1668 _mm_setzero_di (),
1669 (__mmask8)
1670 __U);
1673 extern __inline __m512d
1674 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1675 _mm512_range_round_pd (__m512d __A, __m512d __B, int __C,
1676 const int __R)
1678 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
1679 (__v8df) __B, __C,
1680 (__v8df)
1681 _mm512_setzero_pd (),
1682 (__mmask8) -1,
1683 __R);
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,
1690 const int __R)
1692 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
1693 (__v8df) __B, __C,
1694 (__v8df) __W,
1695 (__mmask8) __U,
1696 __R);
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,
1705 (__v8df) __B, __C,
1706 (__v8df)
1707 _mm512_setzero_pd (),
1708 (__mmask8) __U,
1709 __R);
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,
1717 (__v16sf) __B, __C,
1718 (__v16sf)
1719 _mm512_setzero_ps (),
1720 (__mmask16) -1,
1721 __R);
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,
1728 const int __R)
1730 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
1731 (__v16sf) __B, __C,
1732 (__v16sf) __W,
1733 (__mmask16) __U,
1734 __R);
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,
1743 (__v16sf) __B, __C,
1744 (__v16sf)
1745 _mm512_setzero_ps (),
1746 (__mmask16) __U,
1747 __R);
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,
1755 (__v8si) __B,
1756 __imm,
1757 (__v16si)
1758 _mm512_setzero_si512 (),
1759 (__mmask16) -1);
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,
1768 (__v8si) __B,
1769 __imm,
1770 (__v16si) __W,
1771 (__mmask16) __U);
1774 extern __inline __m512i
1775 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1776 _mm512_maskz_inserti32x8 (__mmask16 __U, __m512i __A, __m256i __B,
1777 const int __imm)
1779 return (__m512i) __builtin_ia32_inserti32x8_mask ((__v16si) __A,
1780 (__v8si) __B,
1781 __imm,
1782 (__v16si)
1783 _mm512_setzero_si512 (),
1784 (__mmask16) __U);
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,
1792 (__v8sf) __B,
1793 __imm,
1794 (__v16sf)
1795 _mm512_setzero_ps (),
1796 (__mmask16) -1);
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,
1805 (__v8sf) __B,
1806 __imm,
1807 (__v16sf) __W,
1808 (__mmask16) __U);
1811 extern __inline __m512
1812 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1813 _mm512_maskz_insertf32x8 (__mmask16 __U, __m512 __A, __m256 __B,
1814 const int __imm)
1816 return (__m512) __builtin_ia32_insertf32x8_mask ((__v16sf) __A,
1817 (__v8sf) __B,
1818 __imm,
1819 (__v16sf)
1820 _mm512_setzero_ps (),
1821 (__mmask16) __U);
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,
1829 (__v2di) __B,
1830 __imm,
1831 (__v8di)
1832 _mm512_setzero_si512 (),
1833 (__mmask8) -
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,
1843 (__v2di) __B,
1844 __imm,
1845 (__v8di) __W,
1846 (__mmask8)
1847 __U);
1850 extern __inline __m512i
1851 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1852 _mm512_maskz_inserti64x2 (__mmask8 __U, __m512i __A, __m128i __B,
1853 const int __imm)
1855 return (__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di) __A,
1856 (__v2di) __B,
1857 __imm,
1858 (__v8di)
1859 _mm512_setzero_si512 (),
1860 (__mmask8)
1861 __U);
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,
1869 (__v2df) __B,
1870 __imm,
1871 (__v8df)
1872 _mm512_setzero_pd (),
1873 (__mmask8) -
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,
1883 (__v2df) __B,
1884 __imm,
1885 (__v8df) __W,
1886 (__mmask8)
1887 __U);
1890 extern __inline __m512d
1891 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1892 _mm512_maskz_insertf64x2 (__mmask8 __U, __m512d __A, __m128d __B,
1893 const int __imm)
1895 return (__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df) __A,
1896 (__v2df) __B,
1897 __imm,
1898 (__v8df)
1899 _mm512_setzero_pd (),
1900 (__mmask8)
1901 __U);
1904 extern __inline __mmask8
1905 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1906 _mm512_mask_fpclass_pd_mask (__mmask8 __U, __m512d __A,
1907 const int __imm)
1909 return (__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) __A,
1910 __imm, __U);
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,
1918 __imm,
1919 (__mmask8) -1);
1922 extern __inline __mmask16
1923 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1924 _mm512_mask_fpclass_ps_mask (__mmask16 __U, __m512 __A,
1925 const int __imm)
1927 return (__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) __A,
1928 __imm, __U);
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,
1936 __imm,
1937 (__mmask16) -
1941 #else
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), \
2203 (__mmask8)-1))
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), \
2208 (__mmask8) (U)))
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), \
2222 (__mmask8) (U)))
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(),\
2233 (__mmask16)-1))
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),\
2239 (__mmask16)(U)))
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(),\
2245 (__mmask16)(U)))
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 (),\
2251 (__mmask16)-1))
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),\
2257 (__mmask16)(U)))
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 (),\
2263 (__mmask16)(U)))
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))) \
2295 #endif
2297 #ifdef __DISABLE_AVX512DQ__
2298 #undef __DISABLE_AVX512DQ__
2299 #pragma GCC pop_options
2300 #endif /* __DISABLE_AVX512DQ__ */
2302 #endif /* _AVX512DQINTRIN_H_INCLUDED */