[AArch64] Fix ICEs in aarch64_print_operand
[official-gcc.git] / gcc / config / i386 / avx512dqintrin.h
blob8e887d8c5ba8235f93c973e5a6183fabc1699a17
1 /* Copyright (C) 2014-2017 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)
8 any later version.
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."
26 #endif
28 #ifndef _AVX512DQINTRIN_H_INCLUDED
29 #define _AVX512DQINTRIN_H_INCLUDED
31 #ifndef __AVX512DQ__
32 #pragma GCC push_options
33 #pragma GCC target("avx512dq")
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);
138 extern __inline void
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);
187 extern __inline __m512d
188 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
189 _mm512_broadcast_f64x2 (__m128d __A)
191 return (__m512d)
192 __builtin_ia32_broadcastf64x2_512_mask ((__v2df) __A,
193 _mm512_undefined_pd (),
194 (__mmask8) -1);
197 extern __inline __m512d
198 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
199 _mm512_mask_broadcast_f64x2 (__m512d __O, __mmask8 __M, __m128d __A)
201 return (__m512d) __builtin_ia32_broadcastf64x2_512_mask ((__v2df)
202 __A,
203 (__v8df)
204 __O, __M);
207 extern __inline __m512d
208 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
209 _mm512_maskz_broadcast_f64x2 (__mmask8 __M, __m128d __A)
211 return (__m512d) __builtin_ia32_broadcastf64x2_512_mask ((__v2df)
212 __A,
213 (__v8df)
214 _mm512_setzero_ps (),
215 __M);
218 extern __inline __m512i
219 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
220 _mm512_broadcast_i64x2 (__m128i __A)
222 return (__m512i)
223 __builtin_ia32_broadcasti64x2_512_mask ((__v2di) __A,
224 _mm512_undefined_epi32 (),
225 (__mmask8) -1);
228 extern __inline __m512i
229 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
230 _mm512_mask_broadcast_i64x2 (__m512i __O, __mmask8 __M, __m128i __A)
232 return (__m512i) __builtin_ia32_broadcasti64x2_512_mask ((__v2di)
233 __A,
234 (__v8di)
235 __O, __M);
238 extern __inline __m512i
239 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
240 _mm512_maskz_broadcast_i64x2 (__mmask8 __M, __m128i __A)
242 return (__m512i) __builtin_ia32_broadcasti64x2_512_mask ((__v2di)
243 __A,
244 (__v8di)
245 _mm512_setzero_si512 (),
246 __M);
249 extern __inline __m512
250 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
251 _mm512_broadcast_f32x2 (__m128 __A)
253 return (__m512)
254 __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A,
255 (__v16sf)_mm512_undefined_ps (),
256 (__mmask16) -1);
259 extern __inline __m512
260 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
261 _mm512_mask_broadcast_f32x2 (__m512 __O, __mmask16 __M, __m128 __A)
263 return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A,
264 (__v16sf)
265 __O, __M);
268 extern __inline __m512
269 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
270 _mm512_maskz_broadcast_f32x2 (__mmask16 __M, __m128 __A)
272 return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A,
273 (__v16sf)
274 _mm512_setzero_ps (),
275 __M);
278 extern __inline __m512i
279 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
280 _mm512_broadcast_i32x2 (__m128i __A)
282 return (__m512i)
283 __builtin_ia32_broadcasti32x2_512_mask ((__v4si) __A,
284 (__v16si)
285 _mm512_undefined_epi32 (),
286 (__mmask16) -1);
289 extern __inline __m512i
290 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
291 _mm512_mask_broadcast_i32x2 (__m512i __O, __mmask16 __M, __m128i __A)
293 return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si)
294 __A,
295 (__v16si)
296 __O, __M);
299 extern __inline __m512i
300 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
301 _mm512_maskz_broadcast_i32x2 (__mmask16 __M, __m128i __A)
303 return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si)
304 __A,
305 (__v16si)
306 _mm512_setzero_si512 (),
307 __M);
310 extern __inline __m512
311 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
312 _mm512_broadcast_f32x8 (__m256 __A)
314 return (__m512)
315 __builtin_ia32_broadcastf32x8_512_mask ((__v8sf) __A,
316 _mm512_undefined_ps (),
317 (__mmask16) -1);
320 extern __inline __m512
321 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
322 _mm512_mask_broadcast_f32x8 (__m512 __O, __mmask16 __M, __m256 __A)
324 return (__m512) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf) __A,
325 (__v16sf)__O,
326 __M);
329 extern __inline __m512
330 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
331 _mm512_maskz_broadcast_f32x8 (__mmask16 __M, __m256 __A)
333 return (__m512) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf) __A,
334 (__v16sf)
335 _mm512_setzero_ps (),
336 __M);
339 extern __inline __m512i
340 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
341 _mm512_broadcast_i32x8 (__m256i __A)
343 return (__m512i)
344 __builtin_ia32_broadcasti32x8_512_mask ((__v8si) __A,
345 (__v16si)
346 _mm512_undefined_epi32 (),
347 (__mmask16) -1);
350 extern __inline __m512i
351 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
352 _mm512_mask_broadcast_i32x8 (__m512i __O, __mmask16 __M, __m256i __A)
354 return (__m512i) __builtin_ia32_broadcasti32x8_512_mask ((__v8si)
355 __A,
356 (__v16si)__O,
357 __M);
360 extern __inline __m512i
361 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
362 _mm512_maskz_broadcast_i32x8 (__mmask16 __M, __m256i __A)
364 return (__m512i) __builtin_ia32_broadcasti32x8_512_mask ((__v8si)
365 __A,
366 (__v16si)
367 _mm512_setzero_si512 (),
368 __M);
371 extern __inline __m512i
372 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
373 _mm512_mullo_epi64 (__m512i __A, __m512i __B)
375 return (__m512i) ((__v8du) __A * (__v8du) __B);
378 extern __inline __m512i
379 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
380 _mm512_mask_mullo_epi64 (__m512i __W, __mmask8 __U, __m512i __A,
381 __m512i __B)
383 return (__m512i) __builtin_ia32_pmullq512_mask ((__v8di) __A,
384 (__v8di) __B,
385 (__v8di) __W,
386 (__mmask8) __U);
389 extern __inline __m512i
390 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
391 _mm512_maskz_mullo_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
393 return (__m512i) __builtin_ia32_pmullq512_mask ((__v8di) __A,
394 (__v8di) __B,
395 (__v8di)
396 _mm512_setzero_si512 (),
397 (__mmask8) __U);
400 extern __inline __m512d
401 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
402 _mm512_xor_pd (__m512d __A, __m512d __B)
404 return (__m512d) __builtin_ia32_xorpd512_mask ((__v8df) __A,
405 (__v8df) __B,
406 (__v8df)
407 _mm512_setzero_pd (),
408 (__mmask8) -1);
411 extern __inline __m512d
412 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
413 _mm512_mask_xor_pd (__m512d __W, __mmask8 __U, __m512d __A,
414 __m512d __B)
416 return (__m512d) __builtin_ia32_xorpd512_mask ((__v8df) __A,
417 (__v8df) __B,
418 (__v8df) __W,
419 (__mmask8) __U);
422 extern __inline __m512d
423 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
424 _mm512_maskz_xor_pd (__mmask8 __U, __m512d __A, __m512d __B)
426 return (__m512d) __builtin_ia32_xorpd512_mask ((__v8df) __A,
427 (__v8df) __B,
428 (__v8df)
429 _mm512_setzero_pd (),
430 (__mmask8) __U);
433 extern __inline __m512
434 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
435 _mm512_xor_ps (__m512 __A, __m512 __B)
437 return (__m512) __builtin_ia32_xorps512_mask ((__v16sf) __A,
438 (__v16sf) __B,
439 (__v16sf)
440 _mm512_setzero_ps (),
441 (__mmask16) -1);
444 extern __inline __m512
445 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
446 _mm512_mask_xor_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
448 return (__m512) __builtin_ia32_xorps512_mask ((__v16sf) __A,
449 (__v16sf) __B,
450 (__v16sf) __W,
451 (__mmask16) __U);
454 extern __inline __m512
455 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
456 _mm512_maskz_xor_ps (__mmask16 __U, __m512 __A, __m512 __B)
458 return (__m512) __builtin_ia32_xorps512_mask ((__v16sf) __A,
459 (__v16sf) __B,
460 (__v16sf)
461 _mm512_setzero_ps (),
462 (__mmask16) __U);
465 extern __inline __m512d
466 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
467 _mm512_or_pd (__m512d __A, __m512d __B)
469 return (__m512d) __builtin_ia32_orpd512_mask ((__v8df) __A,
470 (__v8df) __B,
471 (__v8df)
472 _mm512_setzero_pd (),
473 (__mmask8) -1);
476 extern __inline __m512d
477 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
478 _mm512_mask_or_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
480 return (__m512d) __builtin_ia32_orpd512_mask ((__v8df) __A,
481 (__v8df) __B,
482 (__v8df) __W,
483 (__mmask8) __U);
486 extern __inline __m512d
487 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
488 _mm512_maskz_or_pd (__mmask8 __U, __m512d __A, __m512d __B)
490 return (__m512d) __builtin_ia32_orpd512_mask ((__v8df) __A,
491 (__v8df) __B,
492 (__v8df)
493 _mm512_setzero_pd (),
494 (__mmask8) __U);
497 extern __inline __m512
498 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
499 _mm512_or_ps (__m512 __A, __m512 __B)
501 return (__m512) __builtin_ia32_orps512_mask ((__v16sf) __A,
502 (__v16sf) __B,
503 (__v16sf)
504 _mm512_setzero_ps (),
505 (__mmask16) -1);
508 extern __inline __m512
509 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
510 _mm512_mask_or_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
512 return (__m512) __builtin_ia32_orps512_mask ((__v16sf) __A,
513 (__v16sf) __B,
514 (__v16sf) __W,
515 (__mmask16) __U);
518 extern __inline __m512
519 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
520 _mm512_maskz_or_ps (__mmask16 __U, __m512 __A, __m512 __B)
522 return (__m512) __builtin_ia32_orps512_mask ((__v16sf) __A,
523 (__v16sf) __B,
524 (__v16sf)
525 _mm512_setzero_ps (),
526 (__mmask16) __U);
529 extern __inline __m512d
530 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
531 _mm512_and_pd (__m512d __A, __m512d __B)
533 return (__m512d) __builtin_ia32_andpd512_mask ((__v8df) __A,
534 (__v8df) __B,
535 (__v8df)
536 _mm512_setzero_pd (),
537 (__mmask8) -1);
540 extern __inline __m512d
541 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
542 _mm512_mask_and_pd (__m512d __W, __mmask8 __U, __m512d __A,
543 __m512d __B)
545 return (__m512d) __builtin_ia32_andpd512_mask ((__v8df) __A,
546 (__v8df) __B,
547 (__v8df) __W,
548 (__mmask8) __U);
551 extern __inline __m512d
552 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
553 _mm512_maskz_and_pd (__mmask8 __U, __m512d __A, __m512d __B)
555 return (__m512d) __builtin_ia32_andpd512_mask ((__v8df) __A,
556 (__v8df) __B,
557 (__v8df)
558 _mm512_setzero_pd (),
559 (__mmask8) __U);
562 extern __inline __m512
563 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
564 _mm512_and_ps (__m512 __A, __m512 __B)
566 return (__m512) __builtin_ia32_andps512_mask ((__v16sf) __A,
567 (__v16sf) __B,
568 (__v16sf)
569 _mm512_setzero_ps (),
570 (__mmask16) -1);
573 extern __inline __m512
574 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
575 _mm512_mask_and_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
577 return (__m512) __builtin_ia32_andps512_mask ((__v16sf) __A,
578 (__v16sf) __B,
579 (__v16sf) __W,
580 (__mmask16) __U);
583 extern __inline __m512
584 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
585 _mm512_maskz_and_ps (__mmask16 __U, __m512 __A, __m512 __B)
587 return (__m512) __builtin_ia32_andps512_mask ((__v16sf) __A,
588 (__v16sf) __B,
589 (__v16sf)
590 _mm512_setzero_ps (),
591 (__mmask16) __U);
594 extern __inline __m512d
595 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
596 _mm512_andnot_pd (__m512d __A, __m512d __B)
598 return (__m512d) __builtin_ia32_andnpd512_mask ((__v8df) __A,
599 (__v8df) __B,
600 (__v8df)
601 _mm512_setzero_pd (),
602 (__mmask8) -1);
605 extern __inline __m512d
606 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
607 _mm512_mask_andnot_pd (__m512d __W, __mmask8 __U, __m512d __A,
608 __m512d __B)
610 return (__m512d) __builtin_ia32_andnpd512_mask ((__v8df) __A,
611 (__v8df) __B,
612 (__v8df) __W,
613 (__mmask8) __U);
616 extern __inline __m512d
617 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
618 _mm512_maskz_andnot_pd (__mmask8 __U, __m512d __A, __m512d __B)
620 return (__m512d) __builtin_ia32_andnpd512_mask ((__v8df) __A,
621 (__v8df) __B,
622 (__v8df)
623 _mm512_setzero_pd (),
624 (__mmask8) __U);
627 extern __inline __m512
628 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
629 _mm512_andnot_ps (__m512 __A, __m512 __B)
631 return (__m512) __builtin_ia32_andnps512_mask ((__v16sf) __A,
632 (__v16sf) __B,
633 (__v16sf)
634 _mm512_setzero_ps (),
635 (__mmask16) -1);
638 extern __inline __m512
639 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
640 _mm512_mask_andnot_ps (__m512 __W, __mmask16 __U, __m512 __A,
641 __m512 __B)
643 return (__m512) __builtin_ia32_andnps512_mask ((__v16sf) __A,
644 (__v16sf) __B,
645 (__v16sf) __W,
646 (__mmask16) __U);
649 extern __inline __m512
650 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
651 _mm512_maskz_andnot_ps (__mmask16 __U, __m512 __A, __m512 __B)
653 return (__m512) __builtin_ia32_andnps512_mask ((__v16sf) __A,
654 (__v16sf) __B,
655 (__v16sf)
656 _mm512_setzero_ps (),
657 (__mmask16) __U);
660 extern __inline __mmask16
661 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
662 _mm512_movepi32_mask (__m512i __A)
664 return (__mmask16) __builtin_ia32_cvtd2mask512 ((__v16si) __A);
667 extern __inline __mmask8
668 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
669 _mm512_movepi64_mask (__m512i __A)
671 return (__mmask8) __builtin_ia32_cvtq2mask512 ((__v8di) __A);
674 extern __inline __m512i
675 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
676 _mm512_movm_epi32 (__mmask16 __A)
678 return (__m512i) __builtin_ia32_cvtmask2d512 (__A);
681 extern __inline __m512i
682 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
683 _mm512_movm_epi64 (__mmask8 __A)
685 return (__m512i) __builtin_ia32_cvtmask2q512 (__A);
688 extern __inline __m512i
689 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
690 _mm512_cvttpd_epi64 (__m512d __A)
692 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
693 (__v8di)
694 _mm512_setzero_si512 (),
695 (__mmask8) -1,
696 _MM_FROUND_CUR_DIRECTION);
699 extern __inline __m512i
700 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
701 _mm512_mask_cvttpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A)
703 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
704 (__v8di) __W,
705 (__mmask8) __U,
706 _MM_FROUND_CUR_DIRECTION);
709 extern __inline __m512i
710 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
711 _mm512_maskz_cvttpd_epi64 (__mmask8 __U, __m512d __A)
713 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
714 (__v8di)
715 _mm512_setzero_si512 (),
716 (__mmask8) __U,
717 _MM_FROUND_CUR_DIRECTION);
720 extern __inline __m512i
721 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
722 _mm512_cvttpd_epu64 (__m512d __A)
724 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
725 (__v8di)
726 _mm512_setzero_si512 (),
727 (__mmask8) -1,
728 _MM_FROUND_CUR_DIRECTION);
731 extern __inline __m512i
732 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
733 _mm512_mask_cvttpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A)
735 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
736 (__v8di) __W,
737 (__mmask8) __U,
738 _MM_FROUND_CUR_DIRECTION);
741 extern __inline __m512i
742 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
743 _mm512_maskz_cvttpd_epu64 (__mmask8 __U, __m512d __A)
745 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
746 (__v8di)
747 _mm512_setzero_si512 (),
748 (__mmask8) __U,
749 _MM_FROUND_CUR_DIRECTION);
752 extern __inline __m512i
753 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
754 _mm512_cvttps_epi64 (__m256 __A)
756 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
757 (__v8di)
758 _mm512_setzero_si512 (),
759 (__mmask8) -1,
760 _MM_FROUND_CUR_DIRECTION);
763 extern __inline __m512i
764 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
765 _mm512_mask_cvttps_epi64 (__m512i __W, __mmask8 __U, __m256 __A)
767 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
768 (__v8di) __W,
769 (__mmask8) __U,
770 _MM_FROUND_CUR_DIRECTION);
773 extern __inline __m512i
774 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
775 _mm512_maskz_cvttps_epi64 (__mmask8 __U, __m256 __A)
777 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
778 (__v8di)
779 _mm512_setzero_si512 (),
780 (__mmask8) __U,
781 _MM_FROUND_CUR_DIRECTION);
784 extern __inline __m512i
785 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
786 _mm512_cvttps_epu64 (__m256 __A)
788 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
789 (__v8di)
790 _mm512_setzero_si512 (),
791 (__mmask8) -1,
792 _MM_FROUND_CUR_DIRECTION);
795 extern __inline __m512i
796 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
797 _mm512_mask_cvttps_epu64 (__m512i __W, __mmask8 __U, __m256 __A)
799 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
800 (__v8di) __W,
801 (__mmask8) __U,
802 _MM_FROUND_CUR_DIRECTION);
805 extern __inline __m512i
806 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
807 _mm512_maskz_cvttps_epu64 (__mmask8 __U, __m256 __A)
809 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
810 (__v8di)
811 _mm512_setzero_si512 (),
812 (__mmask8) __U,
813 _MM_FROUND_CUR_DIRECTION);
816 extern __inline __m512i
817 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
818 _mm512_cvtpd_epi64 (__m512d __A)
820 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
821 (__v8di)
822 _mm512_setzero_si512 (),
823 (__mmask8) -1,
824 _MM_FROUND_CUR_DIRECTION);
827 extern __inline __m512i
828 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
829 _mm512_mask_cvtpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A)
831 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
832 (__v8di) __W,
833 (__mmask8) __U,
834 _MM_FROUND_CUR_DIRECTION);
837 extern __inline __m512i
838 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
839 _mm512_maskz_cvtpd_epi64 (__mmask8 __U, __m512d __A)
841 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
842 (__v8di)
843 _mm512_setzero_si512 (),
844 (__mmask8) __U,
845 _MM_FROUND_CUR_DIRECTION);
848 extern __inline __m512i
849 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
850 _mm512_cvtpd_epu64 (__m512d __A)
852 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
853 (__v8di)
854 _mm512_setzero_si512 (),
855 (__mmask8) -1,
856 _MM_FROUND_CUR_DIRECTION);
859 extern __inline __m512i
860 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
861 _mm512_mask_cvtpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A)
863 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
864 (__v8di) __W,
865 (__mmask8) __U,
866 _MM_FROUND_CUR_DIRECTION);
869 extern __inline __m512i
870 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
871 _mm512_maskz_cvtpd_epu64 (__mmask8 __U, __m512d __A)
873 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
874 (__v8di)
875 _mm512_setzero_si512 (),
876 (__mmask8) __U,
877 _MM_FROUND_CUR_DIRECTION);
880 extern __inline __m512i
881 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
882 _mm512_cvtps_epi64 (__m256 __A)
884 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
885 (__v8di)
886 _mm512_setzero_si512 (),
887 (__mmask8) -1,
888 _MM_FROUND_CUR_DIRECTION);
891 extern __inline __m512i
892 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
893 _mm512_mask_cvtps_epi64 (__m512i __W, __mmask8 __U, __m256 __A)
895 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
896 (__v8di) __W,
897 (__mmask8) __U,
898 _MM_FROUND_CUR_DIRECTION);
901 extern __inline __m512i
902 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
903 _mm512_maskz_cvtps_epi64 (__mmask8 __U, __m256 __A)
905 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
906 (__v8di)
907 _mm512_setzero_si512 (),
908 (__mmask8) __U,
909 _MM_FROUND_CUR_DIRECTION);
912 extern __inline __m512i
913 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
914 _mm512_cvtps_epu64 (__m256 __A)
916 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
917 (__v8di)
918 _mm512_setzero_si512 (),
919 (__mmask8) -1,
920 _MM_FROUND_CUR_DIRECTION);
923 extern __inline __m512i
924 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
925 _mm512_mask_cvtps_epu64 (__m512i __W, __mmask8 __U, __m256 __A)
927 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
928 (__v8di) __W,
929 (__mmask8) __U,
930 _MM_FROUND_CUR_DIRECTION);
933 extern __inline __m512i
934 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
935 _mm512_maskz_cvtps_epu64 (__mmask8 __U, __m256 __A)
937 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
938 (__v8di)
939 _mm512_setzero_si512 (),
940 (__mmask8) __U,
941 _MM_FROUND_CUR_DIRECTION);
944 extern __inline __m256
945 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
946 _mm512_cvtepi64_ps (__m512i __A)
948 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
949 (__v8sf)
950 _mm256_setzero_ps (),
951 (__mmask8) -1,
952 _MM_FROUND_CUR_DIRECTION);
955 extern __inline __m256
956 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
957 _mm512_mask_cvtepi64_ps (__m256 __W, __mmask8 __U, __m512i __A)
959 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
960 (__v8sf) __W,
961 (__mmask8) __U,
962 _MM_FROUND_CUR_DIRECTION);
965 extern __inline __m256
966 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
967 _mm512_maskz_cvtepi64_ps (__mmask8 __U, __m512i __A)
969 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
970 (__v8sf)
971 _mm256_setzero_ps (),
972 (__mmask8) __U,
973 _MM_FROUND_CUR_DIRECTION);
976 extern __inline __m256
977 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
978 _mm512_cvtepu64_ps (__m512i __A)
980 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
981 (__v8sf)
982 _mm256_setzero_ps (),
983 (__mmask8) -1,
984 _MM_FROUND_CUR_DIRECTION);
987 extern __inline __m256
988 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
989 _mm512_mask_cvtepu64_ps (__m256 __W, __mmask8 __U, __m512i __A)
991 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
992 (__v8sf) __W,
993 (__mmask8) __U,
994 _MM_FROUND_CUR_DIRECTION);
997 extern __inline __m256
998 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
999 _mm512_maskz_cvtepu64_ps (__mmask8 __U, __m512i __A)
1001 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
1002 (__v8sf)
1003 _mm256_setzero_ps (),
1004 (__mmask8) __U,
1005 _MM_FROUND_CUR_DIRECTION);
1008 extern __inline __m512d
1009 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1010 _mm512_cvtepi64_pd (__m512i __A)
1012 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
1013 (__v8df)
1014 _mm512_setzero_pd (),
1015 (__mmask8) -1,
1016 _MM_FROUND_CUR_DIRECTION);
1019 extern __inline __m512d
1020 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1021 _mm512_mask_cvtepi64_pd (__m512d __W, __mmask8 __U, __m512i __A)
1023 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
1024 (__v8df) __W,
1025 (__mmask8) __U,
1026 _MM_FROUND_CUR_DIRECTION);
1029 extern __inline __m512d
1030 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1031 _mm512_maskz_cvtepi64_pd (__mmask8 __U, __m512i __A)
1033 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
1034 (__v8df)
1035 _mm512_setzero_pd (),
1036 (__mmask8) __U,
1037 _MM_FROUND_CUR_DIRECTION);
1040 extern __inline __m512d
1041 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1042 _mm512_cvtepu64_pd (__m512i __A)
1044 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
1045 (__v8df)
1046 _mm512_setzero_pd (),
1047 (__mmask8) -1,
1048 _MM_FROUND_CUR_DIRECTION);
1051 extern __inline __m512d
1052 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1053 _mm512_mask_cvtepu64_pd (__m512d __W, __mmask8 __U, __m512i __A)
1055 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
1056 (__v8df) __W,
1057 (__mmask8) __U,
1058 _MM_FROUND_CUR_DIRECTION);
1061 extern __inline __m512d
1062 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1063 _mm512_maskz_cvtepu64_pd (__mmask8 __U, __m512i __A)
1065 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
1066 (__v8df)
1067 _mm512_setzero_pd (),
1068 (__mmask8) __U,
1069 _MM_FROUND_CUR_DIRECTION);
1072 #ifdef __OPTIMIZE__
1073 extern __inline __mmask8
1074 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1075 _kshiftli_mask8 (__mmask8 __A, unsigned int __B)
1077 return (__mmask8) __builtin_ia32_kshiftliqi ((__mmask8) __A, (__mmask8) __B);
1080 extern __inline __mmask8
1081 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1082 _kshiftri_mask8 (__mmask8 __A, unsigned int __B)
1084 return (__mmask8) __builtin_ia32_kshiftriqi ((__mmask8) __A, (__mmask8) __B);
1087 extern __inline __m512d
1088 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1089 _mm512_range_pd (__m512d __A, __m512d __B, int __C)
1091 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
1092 (__v8df) __B, __C,
1093 (__v8df)
1094 _mm512_setzero_pd (),
1095 (__mmask8) -1,
1096 _MM_FROUND_CUR_DIRECTION);
1099 extern __inline __m512d
1100 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1101 _mm512_mask_range_pd (__m512d __W, __mmask8 __U,
1102 __m512d __A, __m512d __B, int __C)
1104 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
1105 (__v8df) __B, __C,
1106 (__v8df) __W,
1107 (__mmask8) __U,
1108 _MM_FROUND_CUR_DIRECTION);
1111 extern __inline __m512d
1112 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1113 _mm512_maskz_range_pd (__mmask8 __U, __m512d __A, __m512d __B, int __C)
1115 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
1116 (__v8df) __B, __C,
1117 (__v8df)
1118 _mm512_setzero_pd (),
1119 (__mmask8) __U,
1120 _MM_FROUND_CUR_DIRECTION);
1123 extern __inline __m512
1124 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1125 _mm512_range_ps (__m512 __A, __m512 __B, int __C)
1127 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
1128 (__v16sf) __B, __C,
1129 (__v16sf)
1130 _mm512_setzero_ps (),
1131 (__mmask16) -1,
1132 _MM_FROUND_CUR_DIRECTION);
1135 extern __inline __m512
1136 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1137 _mm512_mask_range_ps (__m512 __W, __mmask16 __U,
1138 __m512 __A, __m512 __B, int __C)
1140 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
1141 (__v16sf) __B, __C,
1142 (__v16sf) __W,
1143 (__mmask16) __U,
1144 _MM_FROUND_CUR_DIRECTION);
1147 extern __inline __m512
1148 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1149 _mm512_maskz_range_ps (__mmask16 __U, __m512 __A, __m512 __B, int __C)
1151 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
1152 (__v16sf) __B, __C,
1153 (__v16sf)
1154 _mm512_setzero_ps (),
1155 (__mmask16) __U,
1156 _MM_FROUND_CUR_DIRECTION);
1159 extern __inline __m128d
1160 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1161 _mm_reduce_sd (__m128d __A, __m128d __B, int __C)
1163 return (__m128d) __builtin_ia32_reducesd_mask ((__v2df) __A,
1164 (__v2df) __B, __C,
1165 (__v2df) _mm_setzero_pd (),
1166 (__mmask8) -1);
1169 extern __inline __m128d
1170 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1171 _mm_mask_reduce_sd (__m128d __W, __mmask8 __U, __m128d __A,
1172 __m128d __B, int __C)
1174 return (__m128d) __builtin_ia32_reducesd_mask ((__v2df) __A,
1175 (__v2df) __B, __C,
1176 (__v2df) __W,
1177 (__mmask8) __U);
1180 extern __inline __m128d
1181 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1182 _mm_maskz_reduce_sd (__mmask8 __U, __m128d __A, __m128d __B, int __C)
1184 return (__m128d) __builtin_ia32_reducesd_mask ((__v2df) __A,
1185 (__v2df) __B, __C,
1186 (__v2df) _mm_setzero_pd (),
1187 (__mmask8) __U);
1190 extern __inline __m128
1191 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1192 _mm_reduce_ss (__m128 __A, __m128 __B, int __C)
1194 return (__m128) __builtin_ia32_reducess_mask ((__v4sf) __A,
1195 (__v4sf) __B, __C,
1196 (__v4sf) _mm_setzero_ps (),
1197 (__mmask8) -1);
1201 extern __inline __m128
1202 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1203 _mm_mask_reduce_ss (__m128 __W, __mmask8 __U, __m128 __A,
1204 __m128 __B, int __C)
1206 return (__m128) __builtin_ia32_reducess_mask ((__v4sf) __A,
1207 (__v4sf) __B, __C,
1208 (__v4sf) __W,
1209 (__mmask8) __U);
1212 extern __inline __m128
1213 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1214 _mm_maskz_reduce_ss (__mmask8 __U, __m128 __A, __m128 __B, int __C)
1216 return (__m128) __builtin_ia32_reducess_mask ((__v4sf) __A,
1217 (__v4sf) __B, __C,
1218 (__v4sf) _mm_setzero_ps (),
1219 (__mmask8) __U);
1222 extern __inline __m128d
1223 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1224 _mm_range_sd (__m128d __A, __m128d __B, int __C)
1226 return (__m128d) __builtin_ia32_rangesd128_round ((__v2df) __A,
1227 (__v2df) __B, __C,
1228 _MM_FROUND_CUR_DIRECTION);
1232 extern __inline __m128
1233 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1234 _mm_range_ss (__m128 __A, __m128 __B, int __C)
1236 return (__m128) __builtin_ia32_rangess128_round ((__v4sf) __A,
1237 (__v4sf) __B, __C,
1238 _MM_FROUND_CUR_DIRECTION);
1241 extern __inline __m128d
1242 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1243 _mm_range_round_sd (__m128d __A, __m128d __B, int __C, const int __R)
1245 return (__m128d) __builtin_ia32_rangesd128_round ((__v2df) __A,
1246 (__v2df) __B, __C,
1247 __R);
1250 extern __inline __m128
1251 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1252 _mm_range_round_ss (__m128 __A, __m128 __B, int __C, const int __R)
1254 return (__m128) __builtin_ia32_rangess128_round ((__v4sf) __A,
1255 (__v4sf) __B, __C,
1256 __R);
1259 extern __inline __mmask8
1260 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1261 _mm_fpclass_ss_mask (__m128 __A, const int __imm)
1263 return (__mmask8) __builtin_ia32_fpclassss ((__v4sf) __A, __imm);
1266 extern __inline __mmask8
1267 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1268 _mm_fpclass_sd_mask (__m128d __A, const int __imm)
1270 return (__mmask8) __builtin_ia32_fpclasssd ((__v2df) __A, __imm);
1273 extern __inline __m512i
1274 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1275 _mm512_cvtt_roundpd_epi64 (__m512d __A, const int __R)
1277 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
1278 (__v8di)
1279 _mm512_setzero_si512 (),
1280 (__mmask8) -1,
1281 __R);
1284 extern __inline __m512i
1285 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1286 _mm512_mask_cvtt_roundpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A,
1287 const int __R)
1289 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
1290 (__v8di) __W,
1291 (__mmask8) __U,
1292 __R);
1295 extern __inline __m512i
1296 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1297 _mm512_maskz_cvtt_roundpd_epi64 (__mmask8 __U, __m512d __A,
1298 const int __R)
1300 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
1301 (__v8di)
1302 _mm512_setzero_si512 (),
1303 (__mmask8) __U,
1304 __R);
1307 extern __inline __m512i
1308 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1309 _mm512_cvtt_roundpd_epu64 (__m512d __A, const int __R)
1311 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
1312 (__v8di)
1313 _mm512_setzero_si512 (),
1314 (__mmask8) -1,
1315 __R);
1318 extern __inline __m512i
1319 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1320 _mm512_mask_cvtt_roundpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A,
1321 const int __R)
1323 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
1324 (__v8di) __W,
1325 (__mmask8) __U,
1326 __R);
1329 extern __inline __m512i
1330 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1331 _mm512_maskz_cvtt_roundpd_epu64 (__mmask8 __U, __m512d __A,
1332 const int __R)
1334 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
1335 (__v8di)
1336 _mm512_setzero_si512 (),
1337 (__mmask8) __U,
1338 __R);
1341 extern __inline __m512i
1342 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1343 _mm512_cvtt_roundps_epi64 (__m256 __A, const int __R)
1345 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
1346 (__v8di)
1347 _mm512_setzero_si512 (),
1348 (__mmask8) -1,
1349 __R);
1352 extern __inline __m512i
1353 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1354 _mm512_mask_cvtt_roundps_epi64 (__m512i __W, __mmask8 __U, __m256 __A,
1355 const int __R)
1357 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
1358 (__v8di) __W,
1359 (__mmask8) __U,
1360 __R);
1363 extern __inline __m512i
1364 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1365 _mm512_maskz_cvtt_roundps_epi64 (__mmask8 __U, __m256 __A,
1366 const int __R)
1368 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
1369 (__v8di)
1370 _mm512_setzero_si512 (),
1371 (__mmask8) __U,
1372 __R);
1375 extern __inline __m512i
1376 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1377 _mm512_cvtt_roundps_epu64 (__m256 __A, const int __R)
1379 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
1380 (__v8di)
1381 _mm512_setzero_si512 (),
1382 (__mmask8) -1,
1383 __R);
1386 extern __inline __m512i
1387 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1388 _mm512_mask_cvtt_roundps_epu64 (__m512i __W, __mmask8 __U, __m256 __A,
1389 const int __R)
1391 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
1392 (__v8di) __W,
1393 (__mmask8) __U,
1394 __R);
1397 extern __inline __m512i
1398 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1399 _mm512_maskz_cvtt_roundps_epu64 (__mmask8 __U, __m256 __A,
1400 const int __R)
1402 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
1403 (__v8di)
1404 _mm512_setzero_si512 (),
1405 (__mmask8) __U,
1406 __R);
1409 extern __inline __m512i
1410 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1411 _mm512_cvt_roundpd_epi64 (__m512d __A, const int __R)
1413 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
1414 (__v8di)
1415 _mm512_setzero_si512 (),
1416 (__mmask8) -1,
1417 __R);
1420 extern __inline __m512i
1421 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1422 _mm512_mask_cvt_roundpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A,
1423 const int __R)
1425 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
1426 (__v8di) __W,
1427 (__mmask8) __U,
1428 __R);
1431 extern __inline __m512i
1432 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1433 _mm512_maskz_cvt_roundpd_epi64 (__mmask8 __U, __m512d __A,
1434 const int __R)
1436 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
1437 (__v8di)
1438 _mm512_setzero_si512 (),
1439 (__mmask8) __U,
1440 __R);
1443 extern __inline __m512i
1444 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1445 _mm512_cvt_roundpd_epu64 (__m512d __A, const int __R)
1447 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
1448 (__v8di)
1449 _mm512_setzero_si512 (),
1450 (__mmask8) -1,
1451 __R);
1454 extern __inline __m512i
1455 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1456 _mm512_mask_cvt_roundpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A,
1457 const int __R)
1459 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
1460 (__v8di) __W,
1461 (__mmask8) __U,
1462 __R);
1465 extern __inline __m512i
1466 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1467 _mm512_maskz_cvt_roundpd_epu64 (__mmask8 __U, __m512d __A,
1468 const int __R)
1470 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
1471 (__v8di)
1472 _mm512_setzero_si512 (),
1473 (__mmask8) __U,
1474 __R);
1477 extern __inline __m512i
1478 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1479 _mm512_cvt_roundps_epi64 (__m256 __A, const int __R)
1481 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
1482 (__v8di)
1483 _mm512_setzero_si512 (),
1484 (__mmask8) -1,
1485 __R);
1488 extern __inline __m512i
1489 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1490 _mm512_mask_cvt_roundps_epi64 (__m512i __W, __mmask8 __U, __m256 __A,
1491 const int __R)
1493 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
1494 (__v8di) __W,
1495 (__mmask8) __U,
1496 __R);
1499 extern __inline __m512i
1500 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1501 _mm512_maskz_cvt_roundps_epi64 (__mmask8 __U, __m256 __A,
1502 const int __R)
1504 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
1505 (__v8di)
1506 _mm512_setzero_si512 (),
1507 (__mmask8) __U,
1508 __R);
1511 extern __inline __m512i
1512 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1513 _mm512_cvt_roundps_epu64 (__m256 __A, const int __R)
1515 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
1516 (__v8di)
1517 _mm512_setzero_si512 (),
1518 (__mmask8) -1,
1519 __R);
1522 extern __inline __m512i
1523 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1524 _mm512_mask_cvt_roundps_epu64 (__m512i __W, __mmask8 __U, __m256 __A,
1525 const int __R)
1527 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
1528 (__v8di) __W,
1529 (__mmask8) __U,
1530 __R);
1533 extern __inline __m512i
1534 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1535 _mm512_maskz_cvt_roundps_epu64 (__mmask8 __U, __m256 __A,
1536 const int __R)
1538 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
1539 (__v8di)
1540 _mm512_setzero_si512 (),
1541 (__mmask8) __U,
1542 __R);
1545 extern __inline __m256
1546 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1547 _mm512_cvt_roundepi64_ps (__m512i __A, const int __R)
1549 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
1550 (__v8sf)
1551 _mm256_setzero_ps (),
1552 (__mmask8) -1,
1553 __R);
1556 extern __inline __m256
1557 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1558 _mm512_mask_cvt_roundepi64_ps (__m256 __W, __mmask8 __U, __m512i __A,
1559 const int __R)
1561 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
1562 (__v8sf) __W,
1563 (__mmask8) __U,
1564 __R);
1567 extern __inline __m256
1568 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1569 _mm512_maskz_cvt_roundepi64_ps (__mmask8 __U, __m512i __A,
1570 const int __R)
1572 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
1573 (__v8sf)
1574 _mm256_setzero_ps (),
1575 (__mmask8) __U,
1576 __R);
1579 extern __inline __m256
1580 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1581 _mm512_cvt_roundepu64_ps (__m512i __A, const int __R)
1583 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
1584 (__v8sf)
1585 _mm256_setzero_ps (),
1586 (__mmask8) -1,
1587 __R);
1590 extern __inline __m256
1591 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1592 _mm512_mask_cvt_roundepu64_ps (__m256 __W, __mmask8 __U, __m512i __A,
1593 const int __R)
1595 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
1596 (__v8sf) __W,
1597 (__mmask8) __U,
1598 __R);
1601 extern __inline __m256
1602 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1603 _mm512_maskz_cvt_roundepu64_ps (__mmask8 __U, __m512i __A,
1604 const int __R)
1606 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
1607 (__v8sf)
1608 _mm256_setzero_ps (),
1609 (__mmask8) __U,
1610 __R);
1613 extern __inline __m512d
1614 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1615 _mm512_cvt_roundepi64_pd (__m512i __A, const int __R)
1617 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
1618 (__v8df)
1619 _mm512_setzero_pd (),
1620 (__mmask8) -1,
1621 __R);
1624 extern __inline __m512d
1625 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1626 _mm512_mask_cvt_roundepi64_pd (__m512d __W, __mmask8 __U, __m512i __A,
1627 const int __R)
1629 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
1630 (__v8df) __W,
1631 (__mmask8) __U,
1632 __R);
1635 extern __inline __m512d
1636 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1637 _mm512_maskz_cvt_roundepi64_pd (__mmask8 __U, __m512i __A,
1638 const int __R)
1640 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
1641 (__v8df)
1642 _mm512_setzero_pd (),
1643 (__mmask8) __U,
1644 __R);
1647 extern __inline __m512d
1648 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1649 _mm512_cvt_roundepu64_pd (__m512i __A, const int __R)
1651 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
1652 (__v8df)
1653 _mm512_setzero_pd (),
1654 (__mmask8) -1,
1655 __R);
1658 extern __inline __m512d
1659 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1660 _mm512_mask_cvt_roundepu64_pd (__m512d __W, __mmask8 __U, __m512i __A,
1661 const int __R)
1663 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
1664 (__v8df) __W,
1665 (__mmask8) __U,
1666 __R);
1669 extern __inline __m512d
1670 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1671 _mm512_maskz_cvt_roundepu64_pd (__mmask8 __U, __m512i __A,
1672 const int __R)
1674 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
1675 (__v8df)
1676 _mm512_setzero_pd (),
1677 (__mmask8) __U,
1678 __R);
1681 extern __inline __m512d
1682 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1683 _mm512_reduce_pd (__m512d __A, int __B)
1685 return (__m512d) __builtin_ia32_reducepd512_mask ((__v8df) __A, __B,
1686 (__v8df)
1687 _mm512_setzero_pd (),
1688 (__mmask8) -1);
1691 extern __inline __m512d
1692 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1693 _mm512_mask_reduce_pd (__m512d __W, __mmask8 __U, __m512d __A, int __B)
1695 return (__m512d) __builtin_ia32_reducepd512_mask ((__v8df) __A, __B,
1696 (__v8df) __W,
1697 (__mmask8) __U);
1700 extern __inline __m512d
1701 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1702 _mm512_maskz_reduce_pd (__mmask8 __U, __m512d __A, int __B)
1704 return (__m512d) __builtin_ia32_reducepd512_mask ((__v8df) __A, __B,
1705 (__v8df)
1706 _mm512_setzero_pd (),
1707 (__mmask8) __U);
1710 extern __inline __m512
1711 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1712 _mm512_reduce_ps (__m512 __A, int __B)
1714 return (__m512) __builtin_ia32_reduceps512_mask ((__v16sf) __A, __B,
1715 (__v16sf)
1716 _mm512_setzero_ps (),
1717 (__mmask16) -1);
1720 extern __inline __m512
1721 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1722 _mm512_mask_reduce_ps (__m512 __W, __mmask16 __U, __m512 __A, int __B)
1724 return (__m512) __builtin_ia32_reduceps512_mask ((__v16sf) __A, __B,
1725 (__v16sf) __W,
1726 (__mmask16) __U);
1729 extern __inline __m512
1730 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1731 _mm512_maskz_reduce_ps (__mmask16 __U, __m512 __A, int __B)
1733 return (__m512) __builtin_ia32_reduceps512_mask ((__v16sf) __A, __B,
1734 (__v16sf)
1735 _mm512_setzero_ps (),
1736 (__mmask16) __U);
1739 extern __inline __m256
1740 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1741 _mm512_extractf32x8_ps (__m512 __A, const int __imm)
1743 return (__m256) __builtin_ia32_extractf32x8_mask ((__v16sf) __A,
1744 __imm,
1745 (__v8sf)
1746 _mm256_setzero_ps (),
1747 (__mmask8) -1);
1750 extern __inline __m256
1751 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1752 _mm512_mask_extractf32x8_ps (__m256 __W, __mmask8 __U, __m512 __A,
1753 const int __imm)
1755 return (__m256) __builtin_ia32_extractf32x8_mask ((__v16sf) __A,
1756 __imm,
1757 (__v8sf) __W,
1758 (__mmask8) __U);
1761 extern __inline __m256
1762 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1763 _mm512_maskz_extractf32x8_ps (__mmask8 __U, __m512 __A,
1764 const int __imm)
1766 return (__m256) __builtin_ia32_extractf32x8_mask ((__v16sf) __A,
1767 __imm,
1768 (__v8sf)
1769 _mm256_setzero_ps (),
1770 (__mmask8) __U);
1773 extern __inline __m128d
1774 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1775 _mm512_extractf64x2_pd (__m512d __A, const int __imm)
1777 return (__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df) __A,
1778 __imm,
1779 (__v2df)
1780 _mm_setzero_pd (),
1781 (__mmask8) -1);
1784 extern __inline __m128d
1785 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1786 _mm512_mask_extractf64x2_pd (__m128d __W, __mmask8 __U, __m512d __A,
1787 const int __imm)
1789 return (__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df) __A,
1790 __imm,
1791 (__v2df) __W,
1792 (__mmask8)
1793 __U);
1796 extern __inline __m128d
1797 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1798 _mm512_maskz_extractf64x2_pd (__mmask8 __U, __m512d __A,
1799 const int __imm)
1801 return (__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df) __A,
1802 __imm,
1803 (__v2df)
1804 _mm_setzero_pd (),
1805 (__mmask8)
1806 __U);
1809 extern __inline __m256i
1810 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1811 _mm512_extracti32x8_epi32 (__m512i __A, const int __imm)
1813 return (__m256i) __builtin_ia32_extracti32x8_mask ((__v16si) __A,
1814 __imm,
1815 (__v8si)
1816 _mm256_setzero_si256 (),
1817 (__mmask8) -1);
1820 extern __inline __m256i
1821 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1822 _mm512_mask_extracti32x8_epi32 (__m256i __W, __mmask8 __U, __m512i __A,
1823 const int __imm)
1825 return (__m256i) __builtin_ia32_extracti32x8_mask ((__v16si) __A,
1826 __imm,
1827 (__v8si) __W,
1828 (__mmask8) __U);
1831 extern __inline __m256i
1832 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1833 _mm512_maskz_extracti32x8_epi32 (__mmask8 __U, __m512i __A,
1834 const int __imm)
1836 return (__m256i) __builtin_ia32_extracti32x8_mask ((__v16si) __A,
1837 __imm,
1838 (__v8si)
1839 _mm256_setzero_si256 (),
1840 (__mmask8) __U);
1843 extern __inline __m128i
1844 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1845 _mm512_extracti64x2_epi64 (__m512i __A, const int __imm)
1847 return (__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di) __A,
1848 __imm,
1849 (__v2di)
1850 _mm_setzero_si128 (),
1851 (__mmask8) -1);
1854 extern __inline __m128i
1855 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1856 _mm512_mask_extracti64x2_epi64 (__m128i __W, __mmask8 __U, __m512i __A,
1857 const int __imm)
1859 return (__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di) __A,
1860 __imm,
1861 (__v2di) __W,
1862 (__mmask8)
1863 __U);
1866 extern __inline __m128i
1867 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1868 _mm512_maskz_extracti64x2_epi64 (__mmask8 __U, __m512i __A,
1869 const int __imm)
1871 return (__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di) __A,
1872 __imm,
1873 (__v2di)
1874 _mm_setzero_si128 (),
1875 (__mmask8)
1876 __U);
1879 extern __inline __m512d
1880 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1881 _mm512_range_round_pd (__m512d __A, __m512d __B, int __C,
1882 const int __R)
1884 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
1885 (__v8df) __B, __C,
1886 (__v8df)
1887 _mm512_setzero_pd (),
1888 (__mmask8) -1,
1889 __R);
1892 extern __inline __m512d
1893 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1894 _mm512_mask_range_round_pd (__m512d __W, __mmask8 __U,
1895 __m512d __A, __m512d __B, int __C,
1896 const int __R)
1898 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
1899 (__v8df) __B, __C,
1900 (__v8df) __W,
1901 (__mmask8) __U,
1902 __R);
1905 extern __inline __m512d
1906 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1907 _mm512_maskz_range_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
1908 int __C, const int __R)
1910 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
1911 (__v8df) __B, __C,
1912 (__v8df)
1913 _mm512_setzero_pd (),
1914 (__mmask8) __U,
1915 __R);
1918 extern __inline __m512
1919 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1920 _mm512_range_round_ps (__m512 __A, __m512 __B, int __C, const int __R)
1922 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
1923 (__v16sf) __B, __C,
1924 (__v16sf)
1925 _mm512_setzero_ps (),
1926 (__mmask16) -1,
1927 __R);
1930 extern __inline __m512
1931 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1932 _mm512_mask_range_round_ps (__m512 __W, __mmask16 __U,
1933 __m512 __A, __m512 __B, int __C,
1934 const int __R)
1936 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
1937 (__v16sf) __B, __C,
1938 (__v16sf) __W,
1939 (__mmask16) __U,
1940 __R);
1943 extern __inline __m512
1944 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1945 _mm512_maskz_range_round_ps (__mmask16 __U, __m512 __A, __m512 __B,
1946 int __C, const int __R)
1948 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
1949 (__v16sf) __B, __C,
1950 (__v16sf)
1951 _mm512_setzero_ps (),
1952 (__mmask16) __U,
1953 __R);
1956 extern __inline __m512i
1957 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1958 _mm512_inserti32x8 (__m512i __A, __m256i __B, const int __imm)
1960 return (__m512i) __builtin_ia32_inserti32x8_mask ((__v16si) __A,
1961 (__v8si) __B,
1962 __imm,
1963 (__v16si)
1964 _mm512_setzero_si512 (),
1965 (__mmask16) -1);
1968 extern __inline __m512i
1969 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1970 _mm512_mask_inserti32x8 (__m512i __W, __mmask16 __U, __m512i __A,
1971 __m256i __B, const int __imm)
1973 return (__m512i) __builtin_ia32_inserti32x8_mask ((__v16si) __A,
1974 (__v8si) __B,
1975 __imm,
1976 (__v16si) __W,
1977 (__mmask16) __U);
1980 extern __inline __m512i
1981 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1982 _mm512_maskz_inserti32x8 (__mmask16 __U, __m512i __A, __m256i __B,
1983 const int __imm)
1985 return (__m512i) __builtin_ia32_inserti32x8_mask ((__v16si) __A,
1986 (__v8si) __B,
1987 __imm,
1988 (__v16si)
1989 _mm512_setzero_si512 (),
1990 (__mmask16) __U);
1993 extern __inline __m512
1994 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1995 _mm512_insertf32x8 (__m512 __A, __m256 __B, const int __imm)
1997 return (__m512) __builtin_ia32_insertf32x8_mask ((__v16sf) __A,
1998 (__v8sf) __B,
1999 __imm,
2000 (__v16sf)
2001 _mm512_setzero_ps (),
2002 (__mmask16) -1);
2005 extern __inline __m512
2006 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2007 _mm512_mask_insertf32x8 (__m512 __W, __mmask16 __U, __m512 __A,
2008 __m256 __B, const int __imm)
2010 return (__m512) __builtin_ia32_insertf32x8_mask ((__v16sf) __A,
2011 (__v8sf) __B,
2012 __imm,
2013 (__v16sf) __W,
2014 (__mmask16) __U);
2017 extern __inline __m512
2018 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2019 _mm512_maskz_insertf32x8 (__mmask16 __U, __m512 __A, __m256 __B,
2020 const int __imm)
2022 return (__m512) __builtin_ia32_insertf32x8_mask ((__v16sf) __A,
2023 (__v8sf) __B,
2024 __imm,
2025 (__v16sf)
2026 _mm512_setzero_ps (),
2027 (__mmask16) __U);
2030 extern __inline __m512i
2031 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2032 _mm512_inserti64x2 (__m512i __A, __m128i __B, const int __imm)
2034 return (__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di) __A,
2035 (__v2di) __B,
2036 __imm,
2037 (__v8di)
2038 _mm512_setzero_si512 (),
2039 (__mmask8) -1);
2042 extern __inline __m512i
2043 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2044 _mm512_mask_inserti64x2 (__m512i __W, __mmask8 __U, __m512i __A,
2045 __m128i __B, const int __imm)
2047 return (__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di) __A,
2048 (__v2di) __B,
2049 __imm,
2050 (__v8di) __W,
2051 (__mmask8)
2052 __U);
2055 extern __inline __m512i
2056 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2057 _mm512_maskz_inserti64x2 (__mmask8 __U, __m512i __A, __m128i __B,
2058 const int __imm)
2060 return (__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di) __A,
2061 (__v2di) __B,
2062 __imm,
2063 (__v8di)
2064 _mm512_setzero_si512 (),
2065 (__mmask8)
2066 __U);
2069 extern __inline __m512d
2070 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2071 _mm512_insertf64x2 (__m512d __A, __m128d __B, const int __imm)
2073 return (__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df) __A,
2074 (__v2df) __B,
2075 __imm,
2076 (__v8df)
2077 _mm512_setzero_pd (),
2078 (__mmask8) -1);
2081 extern __inline __m512d
2082 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2083 _mm512_mask_insertf64x2 (__m512d __W, __mmask8 __U, __m512d __A,
2084 __m128d __B, const int __imm)
2086 return (__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df) __A,
2087 (__v2df) __B,
2088 __imm,
2089 (__v8df) __W,
2090 (__mmask8)
2091 __U);
2094 extern __inline __m512d
2095 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2096 _mm512_maskz_insertf64x2 (__mmask8 __U, __m512d __A, __m128d __B,
2097 const int __imm)
2099 return (__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df) __A,
2100 (__v2df) __B,
2101 __imm,
2102 (__v8df)
2103 _mm512_setzero_pd (),
2104 (__mmask8)
2105 __U);
2108 extern __inline __mmask8
2109 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2110 _mm512_mask_fpclass_pd_mask (__mmask8 __U, __m512d __A,
2111 const int __imm)
2113 return (__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) __A,
2114 __imm, __U);
2117 extern __inline __mmask8
2118 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2119 _mm512_fpclass_pd_mask (__m512d __A, const int __imm)
2121 return (__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) __A,
2122 __imm,
2123 (__mmask8) -1);
2126 extern __inline __mmask16
2127 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2128 _mm512_mask_fpclass_ps_mask (__mmask16 __U, __m512 __A,
2129 const int __imm)
2131 return (__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) __A,
2132 __imm, __U);
2135 extern __inline __mmask16
2136 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2137 _mm512_fpclass_ps_mask (__m512 __A, const int __imm)
2139 return (__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) __A,
2140 __imm,
2141 (__mmask16) -1);
2144 #else
2145 #define _kshiftli_mask8(X, Y) \
2146 ((__mmask8) __builtin_ia32_kshiftliqi ((__mmask8)(X), (__mmask8)(Y)))
2148 #define _kshiftri_mask8(X, Y) \
2149 ((__mmask8) __builtin_ia32_kshiftriqi ((__mmask8)(X), (__mmask8)(Y)))
2151 #define _mm_range_sd(A, B, C) \
2152 ((__m128d) __builtin_ia32_rangesd128_round ((__v2df)(__m128d)(A), \
2153 (__v2df)(__m128d)(B), (int)(C), \
2154 _MM_FROUND_CUR_DIRECTION))
2156 #define _mm_range_ss(A, B, C) \
2157 ((__m128) __builtin_ia32_rangess128_round ((__v4sf)(__m128)(A), \
2158 (__v4sf)(__m128)(B), (int)(C), \
2159 _MM_FROUND_CUR_DIRECTION))
2161 #define _mm_range_round_sd(A, B, C, R) \
2162 ((__m128d) __builtin_ia32_rangesd128_round ((__v2df)(__m128d)(A), \
2163 (__v2df)(__m128d)(B), (int)(C), (R)))
2165 #define _mm_range_round_ss(A, B, C, R) \
2166 ((__m128) __builtin_ia32_rangess128_round ((__v4sf)(__m128)(A), \
2167 (__v4sf)(__m128)(B), (int)(C), (R)))
2169 #define _mm512_cvtt_roundpd_epi64(A, B) \
2170 ((__m512i)__builtin_ia32_cvttpd2qq512_mask ((A), (__v8di) \
2171 _mm512_setzero_si512 (), \
2172 -1, (B)))
2174 #define _mm512_mask_cvtt_roundpd_epi64(W, U, A, B) \
2175 ((__m512i)__builtin_ia32_cvttpd2qq512_mask ((A), (__v8di)(W), (U), (B)))
2177 #define _mm512_maskz_cvtt_roundpd_epi64(U, A, B) \
2178 ((__m512i)__builtin_ia32_cvttpd2qq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2180 #define _mm512_cvtt_roundpd_epu64(A, B) \
2181 ((__m512i)__builtin_ia32_cvttpd2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
2183 #define _mm512_mask_cvtt_roundpd_epu64(W, U, A, B) \
2184 ((__m512i)__builtin_ia32_cvttpd2uqq512_mask ((A), (__v8di)(W), (U), (B)))
2186 #define _mm512_maskz_cvtt_roundpd_epu64(U, A, B) \
2187 ((__m512i)__builtin_ia32_cvttpd2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2189 #define _mm512_cvtt_roundps_epi64(A, B) \
2190 ((__m512i)__builtin_ia32_cvttps2qq512_mask ((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
2192 #define _mm512_mask_cvtt_roundps_epi64(W, U, A, B) \
2193 ((__m512i)__builtin_ia32_cvttps2qq512_mask ((A), (__v8di)(W), (U), (B)))
2195 #define _mm512_maskz_cvtt_roundps_epi64(U, A, B) \
2196 ((__m512i)__builtin_ia32_cvttps2qq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2198 #define _mm512_cvtt_roundps_epu64(A, B) \
2199 ((__m512i)__builtin_ia32_cvttps2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
2201 #define _mm512_mask_cvtt_roundps_epu64(W, U, A, B) \
2202 ((__m512i)__builtin_ia32_cvttps2uqq512_mask ((A), (__v8di)(W), (U), (B)))
2204 #define _mm512_maskz_cvtt_roundps_epu64(U, A, B) \
2205 ((__m512i)__builtin_ia32_cvttps2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2207 #define _mm512_cvt_roundpd_epi64(A, B) \
2208 ((__m512i)__builtin_ia32_cvtpd2qq512_mask ((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
2210 #define _mm512_mask_cvt_roundpd_epi64(W, U, A, B) \
2211 ((__m512i)__builtin_ia32_cvtpd2qq512_mask ((A), (__v8di)(W), (U), (B)))
2213 #define _mm512_maskz_cvt_roundpd_epi64(U, A, B) \
2214 ((__m512i)__builtin_ia32_cvtpd2qq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2216 #define _mm512_cvt_roundpd_epu64(A, B) \
2217 ((__m512i)__builtin_ia32_cvtpd2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
2219 #define _mm512_mask_cvt_roundpd_epu64(W, U, A, B) \
2220 ((__m512i)__builtin_ia32_cvtpd2uqq512_mask ((A), (__v8di)(W), (U), (B)))
2222 #define _mm512_maskz_cvt_roundpd_epu64(U, A, B) \
2223 ((__m512i)__builtin_ia32_cvtpd2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2225 #define _mm512_cvt_roundps_epi64(A, B) \
2226 ((__m512i)__builtin_ia32_cvtps2qq512_mask ((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
2228 #define _mm512_mask_cvt_roundps_epi64(W, U, A, B) \
2229 ((__m512i)__builtin_ia32_cvtps2qq512_mask ((A), (__v8di)(W), (U), (B)))
2231 #define _mm512_maskz_cvt_roundps_epi64(U, A, B) \
2232 ((__m512i)__builtin_ia32_cvtps2qq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2234 #define _mm512_cvt_roundps_epu64(A, B) \
2235 ((__m512i)__builtin_ia32_cvtps2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
2237 #define _mm512_mask_cvt_roundps_epu64(W, U, A, B) \
2238 ((__m512i)__builtin_ia32_cvtps2uqq512_mask ((A), (__v8di)(W), (U), (B)))
2240 #define _mm512_maskz_cvt_roundps_epu64(U, A, B) \
2241 ((__m512i)__builtin_ia32_cvtps2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2243 #define _mm512_cvt_roundepi64_ps(A, B) \
2244 ((__m256)__builtin_ia32_cvtqq2ps512_mask ((__v8di)(A), (__v8sf)_mm256_setzero_ps (), -1, (B)))
2246 #define _mm512_mask_cvt_roundepi64_ps(W, U, A, B) \
2247 ((__m256)__builtin_ia32_cvtqq2ps512_mask ((__v8di)(A), (W), (U), (B)))
2249 #define _mm512_maskz_cvt_roundepi64_ps(U, A, B) \
2250 ((__m256)__builtin_ia32_cvtqq2ps512_mask ((__v8di)(A), (__v8sf)_mm256_setzero_ps (), (U), (B)))
2252 #define _mm512_cvt_roundepu64_ps(A, B) \
2253 ((__m256)__builtin_ia32_cvtuqq2ps512_mask ((__v8di)(A), (__v8sf)_mm256_setzero_ps (), -1, (B)))
2255 #define _mm512_mask_cvt_roundepu64_ps(W, U, A, B) \
2256 ((__m256)__builtin_ia32_cvtuqq2ps512_mask ((__v8di)(A), (W), (U), (B)))
2258 #define _mm512_maskz_cvt_roundepu64_ps(U, A, B) \
2259 ((__m256)__builtin_ia32_cvtuqq2ps512_mask ((__v8di)(A), (__v8sf)_mm256_setzero_ps (), (U), (B)))
2261 #define _mm512_cvt_roundepi64_pd(A, B) \
2262 ((__m512d)__builtin_ia32_cvtqq2pd512_mask ((__v8di)(A), (__v8df)_mm512_setzero_pd (), -1, (B)))
2264 #define _mm512_mask_cvt_roundepi64_pd(W, U, A, B) \
2265 ((__m512d)__builtin_ia32_cvtqq2pd512_mask ((__v8di)(A), (W), (U), (B)))
2267 #define _mm512_maskz_cvt_roundepi64_pd(U, A, B) \
2268 ((__m512d)__builtin_ia32_cvtqq2pd512_mask ((__v8di)(A), (__v8df)_mm512_setzero_pd (), (U), (B)))
2270 #define _mm512_cvt_roundepu64_pd(A, B) \
2271 ((__m512d)__builtin_ia32_cvtuqq2pd512_mask ((__v8di)(A), (__v8df)_mm512_setzero_pd (), -1, (B)))
2273 #define _mm512_mask_cvt_roundepu64_pd(W, U, A, B) \
2274 ((__m512d)__builtin_ia32_cvtuqq2pd512_mask ((__v8di)(A), (W), (U), (B)))
2276 #define _mm512_maskz_cvt_roundepu64_pd(U, A, B) \
2277 ((__m512d)__builtin_ia32_cvtuqq2pd512_mask ((__v8di)(A), (__v8df)_mm512_setzero_pd (), (U), (B)))
2279 #define _mm512_reduce_pd(A, B) \
2280 ((__m512d) __builtin_ia32_reducepd512_mask ((__v8df)(__m512d)(A), \
2281 (int)(B), (__v8df)_mm512_setzero_pd (), (__mmask8)-1))
2283 #define _mm512_mask_reduce_pd(W, U, A, B) \
2284 ((__m512d) __builtin_ia32_reducepd512_mask ((__v8df)(__m512d)(A), \
2285 (int)(B), (__v8df)(__m512d)(W), (__mmask8)(U)))
2287 #define _mm512_maskz_reduce_pd(U, A, B) \
2288 ((__m512d) __builtin_ia32_reducepd512_mask ((__v8df)(__m512d)(A), \
2289 (int)(B), (__v8df)_mm512_setzero_pd (), (__mmask8)(U)))
2291 #define _mm512_reduce_ps(A, B) \
2292 ((__m512) __builtin_ia32_reduceps512_mask ((__v16sf)(__m512)(A), \
2293 (int)(B), (__v16sf)_mm512_setzero_ps (), (__mmask16)-1))
2295 #define _mm512_mask_reduce_ps(W, U, A, B) \
2296 ((__m512) __builtin_ia32_reduceps512_mask ((__v16sf)(__m512)(A), \
2297 (int)(B), (__v16sf)(__m512)(W), (__mmask16)(U)))
2299 #define _mm512_maskz_reduce_ps(U, A, B) \
2300 ((__m512) __builtin_ia32_reduceps512_mask ((__v16sf)(__m512)(A), \
2301 (int)(B), (__v16sf)_mm512_setzero_ps (), (__mmask16)(U)))
2303 #define _mm512_extractf32x8_ps(X, C) \
2304 ((__m256) __builtin_ia32_extractf32x8_mask ((__v16sf)(__m512) (X), \
2305 (int) (C), (__v8sf)(__m256) _mm256_setzero_ps (), (__mmask8)-1))
2307 #define _mm512_mask_extractf32x8_ps(W, U, X, C) \
2308 ((__m256) __builtin_ia32_extractf32x8_mask ((__v16sf)(__m512) (X), \
2309 (int) (C), (__v8sf)(__m256) (W), (__mmask8) (U)))
2311 #define _mm512_maskz_extractf32x8_ps(U, X, C) \
2312 ((__m256) __builtin_ia32_extractf32x8_mask ((__v16sf)(__m512) (X), \
2313 (int) (C), (__v8sf)(__m256) _mm256_setzero_ps (), (__mmask8) (U)))
2315 #define _mm512_extractf64x2_pd(X, C) \
2316 ((__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df)(__m512d) (X),\
2317 (int) (C), (__v2df)(__m128d) _mm_setzero_pd (), (__mmask8)-1))
2319 #define _mm512_mask_extractf64x2_pd(W, U, X, C) \
2320 ((__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df)(__m512d) (X),\
2321 (int) (C), (__v2df)(__m128d) (W), (__mmask8) (U)))
2323 #define _mm512_maskz_extractf64x2_pd(U, X, C) \
2324 ((__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df)(__m512d) (X),\
2325 (int) (C), (__v2df)(__m128d) _mm_setzero_pd (), (__mmask8) (U)))
2327 #define _mm512_extracti32x8_epi32(X, C) \
2328 ((__m256i) __builtin_ia32_extracti32x8_mask ((__v16si)(__m512i) (X), \
2329 (int) (C), (__v8si)(__m256i) _mm256_setzero_si256 (), (__mmask8)-1))
2331 #define _mm512_mask_extracti32x8_epi32(W, U, X, C) \
2332 ((__m256i) __builtin_ia32_extracti32x8_mask ((__v16si)(__m512i) (X), \
2333 (int) (C), (__v8si)(__m256i) (W), (__mmask8) (U)))
2335 #define _mm512_maskz_extracti32x8_epi32(U, X, C) \
2336 ((__m256i) __builtin_ia32_extracti32x8_mask ((__v16si)(__m512i) (X), \
2337 (int) (C), (__v8si)(__m256i) _mm256_setzero_si256 (), (__mmask8) (U)))
2339 #define _mm512_extracti64x2_epi64(X, C) \
2340 ((__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di)(__m512i) (X),\
2341 (int) (C), (__v2di)(__m128i) _mm_setzero_si128 (), (__mmask8)-1))
2343 #define _mm512_mask_extracti64x2_epi64(W, U, X, C) \
2344 ((__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di)(__m512i) (X),\
2345 (int) (C), (__v2di)(__m128i) (W), (__mmask8) (U)))
2347 #define _mm512_maskz_extracti64x2_epi64(U, X, C) \
2348 ((__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di)(__m512i) (X),\
2349 (int) (C), (__v2di)(__m128i) _mm_setzero_si128 (), (__mmask8) (U)))
2351 #define _mm512_range_pd(A, B, C) \
2352 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2353 (__v8df)(__m512d)(B), (int)(C), \
2354 (__v8df)_mm512_setzero_pd (), (__mmask8)-1, _MM_FROUND_CUR_DIRECTION))
2356 #define _mm512_mask_range_pd(W, U, A, B, C) \
2357 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2358 (__v8df)(__m512d)(B), (int)(C), \
2359 (__v8df)(__m512d)(W), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
2361 #define _mm512_maskz_range_pd(U, A, B, C) \
2362 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2363 (__v8df)(__m512d)(B), (int)(C), \
2364 (__v8df)_mm512_setzero_pd (), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
2366 #define _mm512_range_ps(A, B, C) \
2367 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2368 (__v16sf)(__m512)(B), (int)(C), \
2369 (__v16sf)_mm512_setzero_ps (), (__mmask16)-1, _MM_FROUND_CUR_DIRECTION))
2371 #define _mm512_mask_range_ps(W, U, A, B, C) \
2372 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2373 (__v16sf)(__m512)(B), (int)(C), \
2374 (__v16sf)(__m512)(W), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
2376 #define _mm512_maskz_range_ps(U, A, B, C) \
2377 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2378 (__v16sf)(__m512)(B), (int)(C), \
2379 (__v16sf)_mm512_setzero_ps (), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
2381 #define _mm512_range_round_pd(A, B, C, R) \
2382 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2383 (__v8df)(__m512d)(B), (int)(C), \
2384 (__v8df)_mm512_setzero_pd (), (__mmask8)-1, (R)))
2386 #define _mm512_mask_range_round_pd(W, U, A, B, C, R) \
2387 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2388 (__v8df)(__m512d)(B), (int)(C), \
2389 (__v8df)(__m512d)(W), (__mmask8)(U), (R)))
2391 #define _mm512_maskz_range_round_pd(U, A, B, C, R) \
2392 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2393 (__v8df)(__m512d)(B), (int)(C), \
2394 (__v8df)_mm512_setzero_pd (), (__mmask8)(U), (R)))
2396 #define _mm512_range_round_ps(A, B, C, R) \
2397 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2398 (__v16sf)(__m512)(B), (int)(C), \
2399 (__v16sf)_mm512_setzero_ps (), (__mmask16)-1, (R)))
2401 #define _mm512_mask_range_round_ps(W, U, A, B, C, R) \
2402 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2403 (__v16sf)(__m512)(B), (int)(C), \
2404 (__v16sf)(__m512)(W), (__mmask16)(U), (R)))
2406 #define _mm512_maskz_range_round_ps(U, A, B, C, R) \
2407 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2408 (__v16sf)(__m512)(B), (int)(C), \
2409 (__v16sf)_mm512_setzero_ps (), (__mmask16)(U), (R)))
2411 #define _mm512_insertf64x2(X, Y, C) \
2412 ((__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df)(__m512d) (X),\
2413 (__v2df)(__m128d) (Y), (int) (C), (__v8df)(__m512d) (X), \
2414 (__mmask8)-1))
2416 #define _mm512_mask_insertf64x2(W, U, X, Y, C) \
2417 ((__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df)(__m512d) (X),\
2418 (__v2df)(__m128d) (Y), (int) (C), (__v8df)(__m512d) (W), \
2419 (__mmask8) (U)))
2421 #define _mm512_maskz_insertf64x2(U, X, Y, C) \
2422 ((__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df)(__m512d) (X),\
2423 (__v2df)(__m128d) (Y), (int) (C), \
2424 (__v8df)(__m512d) _mm512_setzero_pd (), (__mmask8) (U)))
2426 #define _mm512_inserti64x2(X, Y, C) \
2427 ((__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di)(__m512i) (X),\
2428 (__v2di)(__m128i) (Y), (int) (C), (__v8di)(__m512i) (X), (__mmask8)-1))
2430 #define _mm512_mask_inserti64x2(W, U, X, Y, C) \
2431 ((__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di)(__m512i) (X),\
2432 (__v2di)(__m128i) (Y), (int) (C), (__v8di)(__m512i) (W), \
2433 (__mmask8) (U)))
2435 #define _mm512_maskz_inserti64x2(U, X, Y, C) \
2436 ((__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di)(__m512i) (X),\
2437 (__v2di)(__m128i) (Y), (int) (C), \
2438 (__v8di)(__m512i) _mm512_setzero_si512 (), (__mmask8) (U)))
2440 #define _mm512_insertf32x8(X, Y, C) \
2441 ((__m512) __builtin_ia32_insertf32x8_mask ((__v16sf)(__m512) (X), \
2442 (__v8sf)(__m256) (Y), (int) (C),\
2443 (__v16sf)(__m512)_mm512_setzero_ps (),\
2444 (__mmask16)-1))
2446 #define _mm512_mask_insertf32x8(W, U, X, Y, C) \
2447 ((__m512) __builtin_ia32_insertf32x8_mask ((__v16sf)(__m512) (X), \
2448 (__v8sf)(__m256) (Y), (int) (C),\
2449 (__v16sf)(__m512)(W),\
2450 (__mmask16)(U)))
2452 #define _mm512_maskz_insertf32x8(U, X, Y, C) \
2453 ((__m512) __builtin_ia32_insertf32x8_mask ((__v16sf)(__m512) (X), \
2454 (__v8sf)(__m256) (Y), (int) (C),\
2455 (__v16sf)(__m512)_mm512_setzero_ps (),\
2456 (__mmask16)(U)))
2458 #define _mm512_inserti32x8(X, Y, C) \
2459 ((__m512i) __builtin_ia32_inserti32x8_mask ((__v16si)(__m512i) (X), \
2460 (__v8si)(__m256i) (Y), (int) (C),\
2461 (__v16si)(__m512i)_mm512_setzero_si512 (),\
2462 (__mmask16)-1))
2464 #define _mm512_mask_inserti32x8(W, U, X, Y, C) \
2465 ((__m512i) __builtin_ia32_inserti32x8_mask ((__v16si)(__m512i) (X), \
2466 (__v8si)(__m256i) (Y), (int) (C),\
2467 (__v16si)(__m512i)(W),\
2468 (__mmask16)(U)))
2470 #define _mm512_maskz_inserti32x8(U, X, Y, C) \
2471 ((__m512i) __builtin_ia32_inserti32x8_mask ((__v16si)(__m512i) (X), \
2472 (__v8si)(__m256i) (Y), (int) (C),\
2473 (__v16si)(__m512i)_mm512_setzero_si512 (),\
2474 (__mmask16)(U)))
2476 #define _mm_fpclass_ss_mask(X, C) \
2477 ((__mmask8) __builtin_ia32_fpclassss ((__v4sf) (__m128) (X), (int) (C))) \
2479 #define _mm_fpclass_sd_mask(X, C) \
2480 ((__mmask8) __builtin_ia32_fpclasssd ((__v2df) (__m128d) (X), (int) (C))) \
2482 #define _mm512_mask_fpclass_pd_mask(u, X, C) \
2483 ((__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) (__m512d) (X), \
2484 (int) (C), (__mmask8)(u)))
2486 #define _mm512_mask_fpclass_ps_mask(u, x, c) \
2487 ((__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) (__m512) (x),\
2488 (int) (c),(__mmask8)(u)))
2490 #define _mm512_fpclass_pd_mask(X, C) \
2491 ((__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) (__m512d) (X), \
2492 (int) (C), (__mmask8)-1))
2494 #define _mm512_fpclass_ps_mask(x, c) \
2495 ((__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) (__m512) (x),\
2496 (int) (c),(__mmask8)-1))
2498 #define _mm_reduce_sd(A, B, C) \
2499 ((__m128d) __builtin_ia32_reducesd_mask ((__v2df)(__m128d)(A), \
2500 (__v2df)(__m128d)(B), (int)(C), (__v2df) _mm_setzero_pd (), \
2501 (__mmask8)-1))
2503 #define _mm_mask_reduce_sd(W, U, A, B, C) \
2504 ((__m128d) __builtin_ia32_reducesd_mask ((__v2df)(__m128d)(A), \
2505 (__v2df)(__m128d)(B), (int)(C), (__v2df)(__m128d)(W), (__mmask8)(U)))
2507 #define _mm_maskz_reduce_sd(U, A, B, C) \
2508 ((__m128d) __builtin_ia32_reducesd_mask ((__v2df)(__m128d)(A), \
2509 (__v2df)(__m128d)(B), (int)(C), (__v2df) _mm_setzero_pd (), \
2510 (__mmask8)(U)))
2512 #define _mm_reduce_ss(A, B, C) \
2513 ((__m128) __builtin_ia32_reducess_mask ((__v4sf)(__m128)(A), \
2514 (__v4sf)(__m128)(B), (int)(C), (__v4sf) _mm_setzero_ps (), \
2515 (__mmask8)-1))
2517 #define _mm_mask_reduce_ss(W, U, A, B, C) \
2518 ((__m128) __builtin_ia32_reducess_mask ((__v4sf)(__m128)(A), \
2519 (__v4sf)(__m128)(B), (int)(C), (__v4sf)(__m128)(W), (__mmask8)(U)))
2521 #define _mm_maskz_reduce_ss(U, A, B, C) \
2522 ((__m128) __builtin_ia32_reducess_mask ((__v4sf)(__m128)(A), \
2523 (__v4sf)(__m128)(B), (int)(C), (__v4sf) _mm_setzero_ps (), \
2524 (__mmask8)(U)))
2528 #endif
2530 #ifdef __DISABLE_AVX512DQ__
2531 #undef __DISABLE_AVX512DQ__
2532 #pragma GCC pop_options
2533 #endif /* __DISABLE_AVX512DQ__ */
2535 #endif /* _AVX512DQINTRIN_H_INCLUDED */