]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/config/i386/avx512dqintrin.h
Update copyright years.
[thirdparty/gcc.git] / gcc / config / i386 / avx512dqintrin.h
CommitLineData
5624e564 1/* Copyright (C) 2014-2015 Free Software Foundation, Inc.
936c0fe4
AI
2
3 This file is part of GCC.
4
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.
9
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.
14
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.
18
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/>. */
23
24#ifndef _IMMINTRIN_H_INCLUDED
25#error "Never use <avx512dqintrin.h> directly; include <immintrin.h> instead."
26#endif
27
28#ifndef _AVX512DQINTRIN_H_INCLUDED
29#define _AVX512DQINTRIN_H_INCLUDED
30
31#ifndef __AVX512DQ__
32#pragma GCC push_options
33#pragma GCC target("avx512dq")
34#define __DISABLE_AVX512DQ__
35#endif /* __AVX512DQ__ */
36
37extern __inline __m512d
38__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
39_mm512_broadcast_f64x2 (__m128d __A)
40{
41 return (__m512d) __builtin_ia32_broadcastf64x2_512_mask ((__v2df)
42 __A,
43 _mm512_undefined_pd(),
44 (__mmask8) -
45 1);
46}
47
48extern __inline __m512d
49__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
50_mm512_mask_broadcast_f64x2 (__m512d __O, __mmask8 __M, __m128d __A)
51{
52 return (__m512d) __builtin_ia32_broadcastf64x2_512_mask ((__v2df)
53 __A,
54 (__v8df)
55 __O, __M);
56}
57
58extern __inline __m512d
59__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
60_mm512_maskz_broadcast_f64x2 (__mmask8 __M, __m128d __A)
61{
62 return (__m512d) __builtin_ia32_broadcastf64x2_512_mask ((__v2df)
63 __A,
64 (__v8df)
65 _mm512_setzero_ps (),
66 __M);
67}
68
69extern __inline __m512i
70__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
71_mm512_broadcast_i64x2 (__m128i __A)
72{
73 return (__m512i) __builtin_ia32_broadcasti64x2_512_mask ((__v2di)
74 __A,
75 _mm512_undefined_si512(),
76 (__mmask8) -
77 1);
78}
79
80extern __inline __m512i
81__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
82_mm512_mask_broadcast_i64x2 (__m512i __O, __mmask8 __M, __m128i __A)
83{
84 return (__m512i) __builtin_ia32_broadcasti64x2_512_mask ((__v2di)
85 __A,
86 (__v8di)
87 __O, __M);
88}
89
90extern __inline __m512i
91__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
92_mm512_maskz_broadcast_i64x2 (__mmask8 __M, __m128i __A)
93{
94 return (__m512i) __builtin_ia32_broadcasti64x2_512_mask ((__v2di)
95 __A,
96 (__v8di)
97 _mm512_setzero_si512 (),
98 __M);
99}
100
101extern __inline __m512
102__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
103_mm512_broadcast_f32x2 (__m128 __A)
104{
105 return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A,
106 (__v16sf)_mm512_undefined_ps(),
107 (__mmask16) -
108 1);
109}
110
111extern __inline __m512
112__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
113_mm512_mask_broadcast_f32x2 (__m512 __O, __mmask16 __M, __m128 __A)
114{
115 return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A,
116 (__v16sf)
117 __O, __M);
118}
119
120extern __inline __m512
121__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
122_mm512_maskz_broadcast_f32x2 (__mmask16 __M, __m128 __A)
123{
124 return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A,
125 (__v16sf)
126 _mm512_setzero_ps (),
127 __M);
128}
129
130extern __inline __m512i
131__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
132_mm512_broadcast_i32x2 (__m128i __A)
133{
134 return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si)
135 __A,
136 (__v16si)_mm512_undefined_si512(),
137 (__mmask16)
138 -1);
139}
140
141extern __inline __m512i
142__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
143_mm512_mask_broadcast_i32x2 (__m512i __O, __mmask16 __M, __m128i __A)
144{
145 return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si)
146 __A,
147 (__v16si)
148 __O, __M);
149}
150
151extern __inline __m512i
152__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
153_mm512_maskz_broadcast_i32x2 (__mmask16 __M, __m128i __A)
154{
155 return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si)
156 __A,
157 (__v16si)
158 _mm512_setzero_si512 (),
159 __M);
160}
161
162extern __inline __m512
163__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
164_mm512_broadcast_f32x8 (__m256 __A)
165{
166 return (__m512) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf) __A,
167 _mm512_undefined_ps(),
168 (__mmask16) -
169 1);
170}
171
172extern __inline __m512
173__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
174_mm512_mask_broadcast_f32x8 (__m512 __O, __mmask16 __M, __m256 __A)
175{
176 return (__m512) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf) __A,
177 (__v16sf)__O,
178 __M);
179}
180
181extern __inline __m512
182__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
183_mm512_maskz_broadcast_f32x8 (__mmask16 __M, __m256 __A)
184{
185 return (__m512) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf) __A,
186 (__v16sf)
187 _mm512_setzero_ps (),
188 __M);
189}
190
191extern __inline __m512i
192__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
193_mm512_broadcast_i32x8 (__m256i __A)
194{
195 return (__m512i) __builtin_ia32_broadcasti32x8_512_mask ((__v8si)
196 __A,
197 (__v16si)_mm512_undefined_si512(),
198 (__mmask16)
199 -1);
200}
201
202extern __inline __m512i
203__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
204_mm512_mask_broadcast_i32x8 (__m512i __O, __mmask16 __M, __m256i __A)
205{
206 return (__m512i) __builtin_ia32_broadcasti32x8_512_mask ((__v8si)
207 __A,
208 (__v16si)__O,
209 __M);
210}
211
212extern __inline __m512i
213__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
214_mm512_maskz_broadcast_i32x8 (__mmask16 __M, __m256i __A)
215{
216 return (__m512i) __builtin_ia32_broadcasti32x8_512_mask ((__v8si)
217 __A,
218 (__v16si)
219 _mm512_setzero_si512 (),
220 __M);
221}
222
223extern __inline __m512i
224__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
225_mm512_mullo_epi64 (__m512i __A, __m512i __B)
226{
2069d6fc 227 return (__m512i) ((__v8du) __A * (__v8du) __B);
936c0fe4
AI
228}
229
230extern __inline __m512i
231__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
232_mm512_mask_mullo_epi64 (__m512i __W, __mmask8 __U, __m512i __A,
233 __m512i __B)
234{
235 return (__m512i) __builtin_ia32_pmullq512_mask ((__v8di) __A,
236 (__v8di) __B,
237 (__v8di) __W,
238 (__mmask8) __U);
239}
240
241extern __inline __m512i
242__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
243_mm512_maskz_mullo_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
244{
245 return (__m512i) __builtin_ia32_pmullq512_mask ((__v8di) __A,
246 (__v8di) __B,
247 (__v8di)
248 _mm512_setzero_si512 (),
249 (__mmask8) __U);
250}
251
252extern __inline __m512d
253__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
254_mm512_xor_pd (__m512d __A, __m512d __B)
255{
256 return (__m512d) __builtin_ia32_xorpd512_mask ((__v8df) __A,
257 (__v8df) __B,
258 (__v8df)
259 _mm512_setzero_pd (),
260 (__mmask8) -1);
261}
262
263extern __inline __m512d
264__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
265_mm512_mask_xor_pd (__m512d __W, __mmask8 __U, __m512d __A,
266 __m512d __B)
267{
268 return (__m512d) __builtin_ia32_xorpd512_mask ((__v8df) __A,
269 (__v8df) __B,
270 (__v8df) __W,
271 (__mmask8) __U);
272}
273
274extern __inline __m512d
275__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
276_mm512_maskz_xor_pd (__mmask8 __U, __m512d __A, __m512d __B)
277{
278 return (__m512d) __builtin_ia32_xorpd512_mask ((__v8df) __A,
279 (__v8df) __B,
280 (__v8df)
281 _mm512_setzero_pd (),
282 (__mmask8) __U);
283}
284
285extern __inline __m512
286__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
287_mm512_xor_ps (__m512 __A, __m512 __B)
288{
289 return (__m512) __builtin_ia32_xorps512_mask ((__v16sf) __A,
290 (__v16sf) __B,
291 (__v16sf)
292 _mm512_setzero_ps (),
293 (__mmask16) -1);
294}
295
296extern __inline __m512
297__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
298_mm512_mask_xor_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
299{
300 return (__m512) __builtin_ia32_xorps512_mask ((__v16sf) __A,
301 (__v16sf) __B,
302 (__v16sf) __W,
303 (__mmask16) __U);
304}
305
306extern __inline __m512
307__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
308_mm512_maskz_xor_ps (__mmask16 __U, __m512 __A, __m512 __B)
309{
310 return (__m512) __builtin_ia32_xorps512_mask ((__v16sf) __A,
311 (__v16sf) __B,
312 (__v16sf)
313 _mm512_setzero_ps (),
314 (__mmask16) __U);
315}
316
317extern __inline __m512d
318__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
319_mm512_or_pd (__m512d __A, __m512d __B)
320{
321 return (__m512d) __builtin_ia32_orpd512_mask ((__v8df) __A,
322 (__v8df) __B,
323 (__v8df)
324 _mm512_setzero_pd (),
325 (__mmask8) -1);
326}
327
328extern __inline __m512d
329__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
330_mm512_mask_or_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
331{
332 return (__m512d) __builtin_ia32_orpd512_mask ((__v8df) __A,
333 (__v8df) __B,
334 (__v8df) __W,
335 (__mmask8) __U);
336}
337
338extern __inline __m512d
339__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
340_mm512_maskz_or_pd (__mmask8 __U, __m512d __A, __m512d __B)
341{
342 return (__m512d) __builtin_ia32_orpd512_mask ((__v8df) __A,
343 (__v8df) __B,
344 (__v8df)
345 _mm512_setzero_pd (),
346 (__mmask8) __U);
347}
348
349extern __inline __m512
350__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
351_mm512_or_ps (__m512 __A, __m512 __B)
352{
353 return (__m512) __builtin_ia32_orps512_mask ((__v16sf) __A,
354 (__v16sf) __B,
355 (__v16sf)
356 _mm512_setzero_ps (),
357 (__mmask16) -1);
358}
359
360extern __inline __m512
361__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
362_mm512_mask_or_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
363{
364 return (__m512) __builtin_ia32_orps512_mask ((__v16sf) __A,
365 (__v16sf) __B,
366 (__v16sf) __W,
367 (__mmask16) __U);
368}
369
370extern __inline __m512
371__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
372_mm512_maskz_or_ps (__mmask16 __U, __m512 __A, __m512 __B)
373{
374 return (__m512) __builtin_ia32_orps512_mask ((__v16sf) __A,
375 (__v16sf) __B,
376 (__v16sf)
377 _mm512_setzero_ps (),
378 (__mmask16) __U);
379}
380
381extern __inline __m512d
382__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
383_mm512_and_pd (__m512d __A, __m512d __B)
384{
385 return (__m512d) __builtin_ia32_andpd512_mask ((__v8df) __A,
386 (__v8df) __B,
387 (__v8df)
388 _mm512_setzero_pd (),
389 (__mmask8) -1);
390}
391
392extern __inline __m512d
393__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
394_mm512_mask_and_pd (__m512d __W, __mmask8 __U, __m512d __A,
395 __m512d __B)
396{
397 return (__m512d) __builtin_ia32_andpd512_mask ((__v8df) __A,
398 (__v8df) __B,
399 (__v8df) __W,
400 (__mmask8) __U);
401}
402
403extern __inline __m512d
404__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
405_mm512_maskz_and_pd (__mmask8 __U, __m512d __A, __m512d __B)
406{
407 return (__m512d) __builtin_ia32_andpd512_mask ((__v8df) __A,
408 (__v8df) __B,
409 (__v8df)
410 _mm512_setzero_pd (),
411 (__mmask8) __U);
412}
413
414extern __inline __m512
415__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
416_mm512_and_ps (__m512 __A, __m512 __B)
417{
418 return (__m512) __builtin_ia32_andps512_mask ((__v16sf) __A,
419 (__v16sf) __B,
420 (__v16sf)
421 _mm512_setzero_ps (),
422 (__mmask16) -1);
423}
424
425extern __inline __m512
426__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
427_mm512_mask_and_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
428{
429 return (__m512) __builtin_ia32_andps512_mask ((__v16sf) __A,
430 (__v16sf) __B,
431 (__v16sf) __W,
432 (__mmask16) __U);
433}
434
435extern __inline __m512
436__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
437_mm512_maskz_and_ps (__mmask16 __U, __m512 __A, __m512 __B)
438{
439 return (__m512) __builtin_ia32_andps512_mask ((__v16sf) __A,
440 (__v16sf) __B,
441 (__v16sf)
442 _mm512_setzero_ps (),
443 (__mmask16) __U);
444}
445
446extern __inline __m512d
447__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
448_mm512_andnot_pd (__m512d __A, __m512d __B)
449{
450 return (__m512d) __builtin_ia32_andnpd512_mask ((__v8df) __A,
451 (__v8df) __B,
452 (__v8df)
453 _mm512_setzero_pd (),
454 (__mmask8) -1);
455}
456
457extern __inline __m512d
458__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
459_mm512_mask_andnot_pd (__m512d __W, __mmask8 __U, __m512d __A,
460 __m512d __B)
461{
462 return (__m512d) __builtin_ia32_andnpd512_mask ((__v8df) __A,
463 (__v8df) __B,
464 (__v8df) __W,
465 (__mmask8) __U);
466}
467
468extern __inline __m512d
469__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
470_mm512_maskz_andnot_pd (__mmask8 __U, __m512d __A, __m512d __B)
471{
472 return (__m512d) __builtin_ia32_andnpd512_mask ((__v8df) __A,
473 (__v8df) __B,
474 (__v8df)
475 _mm512_setzero_pd (),
476 (__mmask8) __U);
477}
478
479extern __inline __m512
480__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
481_mm512_andnot_ps (__m512 __A, __m512 __B)
482{
483 return (__m512) __builtin_ia32_andnps512_mask ((__v16sf) __A,
484 (__v16sf) __B,
485 (__v16sf)
486 _mm512_setzero_ps (),
487 (__mmask16) -1);
488}
489
490extern __inline __m512
491__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
492_mm512_mask_andnot_ps (__m512 __W, __mmask16 __U, __m512 __A,
493 __m512 __B)
494{
495 return (__m512) __builtin_ia32_andnps512_mask ((__v16sf) __A,
496 (__v16sf) __B,
497 (__v16sf) __W,
498 (__mmask16) __U);
499}
500
501extern __inline __m512
502__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
503_mm512_maskz_andnot_ps (__mmask16 __U, __m512 __A, __m512 __B)
504{
505 return (__m512) __builtin_ia32_andnps512_mask ((__v16sf) __A,
506 (__v16sf) __B,
507 (__v16sf)
508 _mm512_setzero_ps (),
509 (__mmask16) __U);
510}
511
512extern __inline __mmask16
513__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
514_mm512_movepi32_mask (__m512i __A)
515{
516 return (__mmask16) __builtin_ia32_cvtd2mask512 ((__v16si) __A);
517}
518
519extern __inline __mmask8
520__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
521_mm512_movepi64_mask (__m512i __A)
522{
523 return (__mmask8) __builtin_ia32_cvtq2mask512 ((__v8di) __A);
524}
525
526extern __inline __m512i
527__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
528_mm512_movm_epi32 (__mmask16 __A)
529{
530 return (__m512i) __builtin_ia32_cvtmask2d512 (__A);
531}
532
533extern __inline __m512i
534__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
535_mm512_movm_epi64 (__mmask8 __A)
536{
537 return (__m512i) __builtin_ia32_cvtmask2q512 (__A);
538}
539
540extern __inline __m512i
541__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
542_mm512_cvttpd_epi64 (__m512d __A)
543{
544 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
545 (__v8di)
546 _mm512_setzero_si512 (),
547 (__mmask8) -1,
548 _MM_FROUND_CUR_DIRECTION);
549}
550
551extern __inline __m512i
552__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
553_mm512_mask_cvttpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A)
554{
555 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
556 (__v8di) __W,
557 (__mmask8) __U,
558 _MM_FROUND_CUR_DIRECTION);
559}
560
561extern __inline __m512i
562__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
563_mm512_maskz_cvttpd_epi64 (__mmask8 __U, __m512d __A)
564{
565 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
566 (__v8di)
567 _mm512_setzero_si512 (),
568 (__mmask8) __U,
569 _MM_FROUND_CUR_DIRECTION);
570}
571
572extern __inline __m512i
573__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
574_mm512_cvttpd_epu64 (__m512d __A)
575{
576 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
577 (__v8di)
578 _mm512_setzero_si512 (),
579 (__mmask8) -1,
580 _MM_FROUND_CUR_DIRECTION);
581}
582
583extern __inline __m512i
584__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
585_mm512_mask_cvttpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A)
586{
587 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
588 (__v8di) __W,
589 (__mmask8) __U,
590 _MM_FROUND_CUR_DIRECTION);
591}
592
593extern __inline __m512i
594__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
595_mm512_maskz_cvttpd_epu64 (__mmask8 __U, __m512d __A)
596{
597 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
598 (__v8di)
599 _mm512_setzero_si512 (),
600 (__mmask8) __U,
601 _MM_FROUND_CUR_DIRECTION);
602}
603
604extern __inline __m512i
605__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
606_mm512_cvttps_epi64 (__m256 __A)
607{
608 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
609 (__v8di)
610 _mm512_setzero_si512 (),
611 (__mmask8) -1,
612 _MM_FROUND_CUR_DIRECTION);
613}
614
615extern __inline __m512i
616__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
617_mm512_mask_cvttps_epi64 (__m512i __W, __mmask8 __U, __m256 __A)
618{
619 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
620 (__v8di) __W,
621 (__mmask8) __U,
622 _MM_FROUND_CUR_DIRECTION);
623}
624
625extern __inline __m512i
626__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
627_mm512_maskz_cvttps_epi64 (__mmask8 __U, __m256 __A)
628{
629 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
630 (__v8di)
631 _mm512_setzero_si512 (),
632 (__mmask8) __U,
633 _MM_FROUND_CUR_DIRECTION);
634}
635
636extern __inline __m512i
637__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
638_mm512_cvttps_epu64 (__m256 __A)
639{
640 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
641 (__v8di)
642 _mm512_setzero_si512 (),
643 (__mmask8) -1,
644 _MM_FROUND_CUR_DIRECTION);
645}
646
647extern __inline __m512i
648__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
649_mm512_mask_cvttps_epu64 (__m512i __W, __mmask8 __U, __m256 __A)
650{
651 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
652 (__v8di) __W,
653 (__mmask8) __U,
654 _MM_FROUND_CUR_DIRECTION);
655}
656
657extern __inline __m512i
658__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
659_mm512_maskz_cvttps_epu64 (__mmask8 __U, __m256 __A)
660{
661 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
662 (__v8di)
663 _mm512_setzero_si512 (),
664 (__mmask8) __U,
665 _MM_FROUND_CUR_DIRECTION);
666}
667
668extern __inline __m512i
669__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
670_mm512_cvtpd_epi64 (__m512d __A)
671{
672 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
673 (__v8di)
674 _mm512_setzero_si512 (),
675 (__mmask8) -1,
676 _MM_FROUND_CUR_DIRECTION);
677}
678
679extern __inline __m512i
680__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
681_mm512_mask_cvtpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A)
682{
683 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
684 (__v8di) __W,
685 (__mmask8) __U,
686 _MM_FROUND_CUR_DIRECTION);
687}
688
689extern __inline __m512i
690__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
691_mm512_maskz_cvtpd_epi64 (__mmask8 __U, __m512d __A)
692{
693 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
694 (__v8di)
695 _mm512_setzero_si512 (),
696 (__mmask8) __U,
697 _MM_FROUND_CUR_DIRECTION);
698}
699
700extern __inline __m512i
701__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
702_mm512_cvtpd_epu64 (__m512d __A)
703{
704 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
705 (__v8di)
706 _mm512_setzero_si512 (),
707 (__mmask8) -1,
708 _MM_FROUND_CUR_DIRECTION);
709}
710
711extern __inline __m512i
712__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
713_mm512_mask_cvtpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A)
714{
715 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
716 (__v8di) __W,
717 (__mmask8) __U,
718 _MM_FROUND_CUR_DIRECTION);
719}
720
721extern __inline __m512i
722__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
723_mm512_maskz_cvtpd_epu64 (__mmask8 __U, __m512d __A)
724{
725 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
726 (__v8di)
727 _mm512_setzero_si512 (),
728 (__mmask8) __U,
729 _MM_FROUND_CUR_DIRECTION);
730}
731
732extern __inline __m512i
733__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
734_mm512_cvtps_epi64 (__m256 __A)
735{
736 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
737 (__v8di)
738 _mm512_setzero_si512 (),
739 (__mmask8) -1,
740 _MM_FROUND_CUR_DIRECTION);
741}
742
743extern __inline __m512i
744__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
745_mm512_mask_cvtps_epi64 (__m512i __W, __mmask8 __U, __m256 __A)
746{
747 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
748 (__v8di) __W,
749 (__mmask8) __U,
750 _MM_FROUND_CUR_DIRECTION);
751}
752
753extern __inline __m512i
754__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
755_mm512_maskz_cvtps_epi64 (__mmask8 __U, __m256 __A)
756{
757 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
758 (__v8di)
759 _mm512_setzero_si512 (),
760 (__mmask8) __U,
761 _MM_FROUND_CUR_DIRECTION);
762}
763
764extern __inline __m512i
765__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
766_mm512_cvtps_epu64 (__m256 __A)
767{
768 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
769 (__v8di)
770 _mm512_setzero_si512 (),
771 (__mmask8) -1,
772 _MM_FROUND_CUR_DIRECTION);
773}
774
775extern __inline __m512i
776__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
777_mm512_mask_cvtps_epu64 (__m512i __W, __mmask8 __U, __m256 __A)
778{
779 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
780 (__v8di) __W,
781 (__mmask8) __U,
782 _MM_FROUND_CUR_DIRECTION);
783}
784
785extern __inline __m512i
786__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
787_mm512_maskz_cvtps_epu64 (__mmask8 __U, __m256 __A)
788{
789 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
790 (__v8di)
791 _mm512_setzero_si512 (),
792 (__mmask8) __U,
793 _MM_FROUND_CUR_DIRECTION);
794}
795
796extern __inline __m256
797__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
798_mm512_cvtepi64_ps (__m512i __A)
799{
800 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
801 (__v8sf)
802 _mm256_setzero_ps (),
803 (__mmask8) -1,
804 _MM_FROUND_CUR_DIRECTION);
805}
806
807extern __inline __m256
808__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
809_mm512_mask_cvtepi64_ps (__m256 __W, __mmask8 __U, __m512i __A)
810{
811 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
812 (__v8sf) __W,
813 (__mmask8) __U,
814 _MM_FROUND_CUR_DIRECTION);
815}
816
817extern __inline __m256
818__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
819_mm512_maskz_cvtepi64_ps (__mmask8 __U, __m512i __A)
820{
821 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
822 (__v8sf)
823 _mm256_setzero_ps (),
824 (__mmask8) __U,
825 _MM_FROUND_CUR_DIRECTION);
826}
827
828extern __inline __m256
829__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
830_mm512_cvtepu64_ps (__m512i __A)
831{
832 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
833 (__v8sf)
834 _mm256_setzero_ps (),
835 (__mmask8) -1,
836 _MM_FROUND_CUR_DIRECTION);
837}
838
839extern __inline __m256
840__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
841_mm512_mask_cvtepu64_ps (__m256 __W, __mmask8 __U, __m512i __A)
842{
843 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
844 (__v8sf) __W,
845 (__mmask8) __U,
846 _MM_FROUND_CUR_DIRECTION);
847}
848
849extern __inline __m256
850__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
851_mm512_maskz_cvtepu64_ps (__mmask8 __U, __m512i __A)
852{
853 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
854 (__v8sf)
855 _mm256_setzero_ps (),
856 (__mmask8) __U,
857 _MM_FROUND_CUR_DIRECTION);
858}
859
860extern __inline __m512d
861__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
862_mm512_cvtepi64_pd (__m512i __A)
863{
864 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
865 (__v8df)
866 _mm512_setzero_pd (),
867 (__mmask8) -1,
868 _MM_FROUND_CUR_DIRECTION);
869}
870
871extern __inline __m512d
872__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
873_mm512_mask_cvtepi64_pd (__m512d __W, __mmask8 __U, __m512i __A)
874{
875 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
876 (__v8df) __W,
877 (__mmask8) __U,
878 _MM_FROUND_CUR_DIRECTION);
879}
880
881extern __inline __m512d
882__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
883_mm512_maskz_cvtepi64_pd (__mmask8 __U, __m512i __A)
884{
885 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
886 (__v8df)
887 _mm512_setzero_pd (),
888 (__mmask8) __U,
889 _MM_FROUND_CUR_DIRECTION);
890}
891
892extern __inline __m512d
893__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
894_mm512_cvtepu64_pd (__m512i __A)
895{
896 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
897 (__v8df)
898 _mm512_setzero_pd (),
899 (__mmask8) -1,
900 _MM_FROUND_CUR_DIRECTION);
901}
902
903extern __inline __m512d
904__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
905_mm512_mask_cvtepu64_pd (__m512d __W, __mmask8 __U, __m512i __A)
906{
907 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
908 (__v8df) __W,
909 (__mmask8) __U,
910 _MM_FROUND_CUR_DIRECTION);
911}
912
913extern __inline __m512d
914__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
915_mm512_maskz_cvtepu64_pd (__mmask8 __U, __m512i __A)
916{
917 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
918 (__v8df)
919 _mm512_setzero_pd (),
920 (__mmask8) __U,
921 _MM_FROUND_CUR_DIRECTION);
922}
923
924#ifdef __OPTIMIZE__
925extern __inline __m512d
926__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
927_mm512_range_pd (__m512d __A, __m512d __B, int __C)
928{
929 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
930 (__v8df) __B, __C,
931 (__v8df)
932 _mm512_setzero_pd (),
933 (__mmask8) -1,
934 _MM_FROUND_CUR_DIRECTION);
935}
936
937extern __inline __m512d
938__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
939_mm512_mask_range_pd (__m512d __W, __mmask8 __U,
940 __m512d __A, __m512d __B, int __C)
941{
942 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
943 (__v8df) __B, __C,
944 (__v8df) __W,
945 (__mmask8) __U,
946 _MM_FROUND_CUR_DIRECTION);
947}
948
949extern __inline __m512d
950__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
951_mm512_maskz_range_pd (__mmask8 __U, __m512d __A, __m512d __B, int __C)
952{
953 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
954 (__v8df) __B, __C,
955 (__v8df)
956 _mm512_setzero_pd (),
957 (__mmask8) __U,
958 _MM_FROUND_CUR_DIRECTION);
959}
960
961extern __inline __m512
962__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
963_mm512_range_ps (__m512 __A, __m512 __B, int __C)
964{
965 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
966 (__v16sf) __B, __C,
967 (__v16sf)
968 _mm512_setzero_ps (),
969 (__mmask16) -1,
970 _MM_FROUND_CUR_DIRECTION);
971}
972
973extern __inline __m512
974__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
975_mm512_mask_range_ps (__m512 __W, __mmask16 __U,
976 __m512 __A, __m512 __B, int __C)
977{
978 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
979 (__v16sf) __B, __C,
980 (__v16sf) __W,
981 (__mmask16) __U,
982 _MM_FROUND_CUR_DIRECTION);
983}
984
985extern __inline __m512
986__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
987_mm512_maskz_range_ps (__mmask16 __U, __m512 __A, __m512 __B, int __C)
988{
989 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
990 (__v16sf) __B, __C,
991 (__v16sf)
992 _mm512_setzero_ps (),
993 (__mmask16) __U,
994 _MM_FROUND_CUR_DIRECTION);
995}
996
997extern __inline __m128d
998__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
999_mm_reduce_sd (__m128d __A, __m128d __B, int __C)
1000{
1001 return (__m128d) __builtin_ia32_reducesd ((__v2df) __A,
1002 (__v2df) __B, __C);
1003}
1004
1005extern __inline __m128
1006__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1007_mm_reduce_ss (__m128 __A, __m128 __B, int __C)
1008{
1009 return (__m128) __builtin_ia32_reducess ((__v4sf) __A,
1010 (__v4sf) __B, __C);
1011}
1012
1013extern __inline __m128d
1014__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1015_mm_range_sd (__m128d __A, __m128d __B, int __C)
1016{
1017 return (__m128d) __builtin_ia32_rangesd128_round ((__v2df) __A,
1018 (__v2df) __B, __C,
1019 _MM_FROUND_CUR_DIRECTION);
1020}
1021
1022
1023extern __inline __m128
1024__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1025_mm_range_ss (__m128 __A, __m128 __B, int __C)
1026{
1027 return (__m128) __builtin_ia32_rangess128_round ((__v4sf) __A,
1028 (__v4sf) __B, __C,
1029 _MM_FROUND_CUR_DIRECTION);
1030}
1031
1032extern __inline __m128d
1033__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1034_mm_range_round_sd (__m128d __A, __m128d __B, int __C, const int __R)
1035{
1036 return (__m128d) __builtin_ia32_rangesd128_round ((__v2df) __A,
1037 (__v2df) __B, __C,
1038 __R);
1039}
1040
1041extern __inline __m128
1042__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1043_mm_range_round_ss (__m128 __A, __m128 __B, int __C, const int __R)
1044{
1045 return (__m128) __builtin_ia32_rangess128_round ((__v4sf) __A,
1046 (__v4sf) __B, __C,
1047 __R);
1048}
1049
1050extern __inline __mmask8
1051__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1052_mm_fpclass_ss_mask (__m128 __A, const int __imm)
1053{
1054 return (__mmask8) __builtin_ia32_fpclassss ((__v4sf) __A, __imm);
1055}
1056
1057extern __inline __mmask8
1058__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1059_mm_fpclass_sd_mask (__m128d __A, const int __imm)
1060{
1061 return (__mmask8) __builtin_ia32_fpclasssd ((__v2df) __A, __imm);
1062}
1063
1064extern __inline __m512i
1065__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1066_mm512_cvtt_roundpd_epi64 (__m512d __A, const int __R)
1067{
1068 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
1069 (__v8di)
1070 _mm512_setzero_si512 (),
1071 (__mmask8) -1,
1072 __R);
1073}
1074
1075extern __inline __m512i
1076__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1077_mm512_mask_cvtt_roundpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A,
1078 const int __R)
1079{
1080 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
1081 (__v8di) __W,
1082 (__mmask8) __U,
1083 __R);
1084}
1085
1086extern __inline __m512i
1087__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1088_mm512_maskz_cvtt_roundpd_epi64 (__mmask8 __U, __m512d __A,
1089 const int __R)
1090{
1091 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
1092 (__v8di)
1093 _mm512_setzero_si512 (),
1094 (__mmask8) __U,
1095 __R);
1096}
1097
1098extern __inline __m512i
1099__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1100_mm512_cvtt_roundpd_epu64 (__m512d __A, const int __R)
1101{
1102 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
1103 (__v8di)
1104 _mm512_setzero_si512 (),
1105 (__mmask8) -1,
1106 __R);
1107}
1108
1109extern __inline __m512i
1110__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1111_mm512_mask_cvtt_roundpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A,
1112 const int __R)
1113{
1114 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
1115 (__v8di) __W,
1116 (__mmask8) __U,
1117 __R);
1118}
1119
1120extern __inline __m512i
1121__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1122_mm512_maskz_cvtt_roundpd_epu64 (__mmask8 __U, __m512d __A,
1123 const int __R)
1124{
1125 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
1126 (__v8di)
1127 _mm512_setzero_si512 (),
1128 (__mmask8) __U,
1129 __R);
1130}
1131
1132extern __inline __m512i
1133__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1134_mm512_cvtt_roundps_epi64 (__m256 __A, const int __R)
1135{
1136 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
1137 (__v8di)
1138 _mm512_setzero_si512 (),
1139 (__mmask8) -1,
1140 __R);
1141}
1142
1143extern __inline __m512i
1144__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1145_mm512_mask_cvtt_roundps_epi64 (__m512i __W, __mmask8 __U, __m256 __A,
1146 const int __R)
1147{
1148 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
1149 (__v8di) __W,
1150 (__mmask8) __U,
1151 __R);
1152}
1153
1154extern __inline __m512i
1155__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1156_mm512_maskz_cvtt_roundps_epi64 (__mmask8 __U, __m256 __A,
1157 const int __R)
1158{
1159 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
1160 (__v8di)
1161 _mm512_setzero_si512 (),
1162 (__mmask8) __U,
1163 __R);
1164}
1165
1166extern __inline __m512i
1167__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1168_mm512_cvtt_roundps_epu64 (__m256 __A, const int __R)
1169{
1170 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
1171 (__v8di)
1172 _mm512_setzero_si512 (),
1173 (__mmask8) -1,
1174 __R);
1175}
1176
1177extern __inline __m512i
1178__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1179_mm512_mask_cvtt_roundps_epu64 (__m512i __W, __mmask8 __U, __m256 __A,
1180 const int __R)
1181{
1182 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
1183 (__v8di) __W,
1184 (__mmask8) __U,
1185 __R);
1186}
1187
1188extern __inline __m512i
1189__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1190_mm512_maskz_cvtt_roundps_epu64 (__mmask8 __U, __m256 __A,
1191 const int __R)
1192{
1193 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
1194 (__v8di)
1195 _mm512_setzero_si512 (),
1196 (__mmask8) __U,
1197 __R);
1198}
1199
1200extern __inline __m512i
1201__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1202_mm512_cvt_roundpd_epi64 (__m512d __A, const int __R)
1203{
1204 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
1205 (__v8di)
1206 _mm512_setzero_si512 (),
1207 (__mmask8) -1,
1208 __R);
1209}
1210
1211extern __inline __m512i
1212__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1213_mm512_mask_cvt_roundpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A,
1214 const int __R)
1215{
1216 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
1217 (__v8di) __W,
1218 (__mmask8) __U,
1219 __R);
1220}
1221
1222extern __inline __m512i
1223__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1224_mm512_maskz_cvt_roundpd_epi64 (__mmask8 __U, __m512d __A,
1225 const int __R)
1226{
1227 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
1228 (__v8di)
1229 _mm512_setzero_si512 (),
1230 (__mmask8) __U,
1231 __R);
1232}
1233
1234extern __inline __m512i
1235__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1236_mm512_cvt_roundpd_epu64 (__m512d __A, const int __R)
1237{
1238 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
1239 (__v8di)
1240 _mm512_setzero_si512 (),
1241 (__mmask8) -1,
1242 __R);
1243}
1244
1245extern __inline __m512i
1246__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1247_mm512_mask_cvt_roundpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A,
1248 const int __R)
1249{
1250 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
1251 (__v8di) __W,
1252 (__mmask8) __U,
1253 __R);
1254}
1255
1256extern __inline __m512i
1257__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1258_mm512_maskz_cvt_roundpd_epu64 (__mmask8 __U, __m512d __A,
1259 const int __R)
1260{
1261 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
1262 (__v8di)
1263 _mm512_setzero_si512 (),
1264 (__mmask8) __U,
1265 __R);
1266}
1267
1268extern __inline __m512i
1269__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1270_mm512_cvt_roundps_epi64 (__m256 __A, const int __R)
1271{
1272 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
1273 (__v8di)
1274 _mm512_setzero_si512 (),
1275 (__mmask8) -1,
1276 __R);
1277}
1278
1279extern __inline __m512i
1280__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1281_mm512_mask_cvt_roundps_epi64 (__m512i __W, __mmask8 __U, __m256 __A,
1282 const int __R)
1283{
1284 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
1285 (__v8di) __W,
1286 (__mmask8) __U,
1287 __R);
1288}
1289
1290extern __inline __m512i
1291__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1292_mm512_maskz_cvt_roundps_epi64 (__mmask8 __U, __m256 __A,
1293 const int __R)
1294{
1295 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
1296 (__v8di)
1297 _mm512_setzero_si512 (),
1298 (__mmask8) __U,
1299 __R);
1300}
1301
1302extern __inline __m512i
1303__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1304_mm512_cvt_roundps_epu64 (__m256 __A, const int __R)
1305{
1306 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
1307 (__v8di)
1308 _mm512_setzero_si512 (),
1309 (__mmask8) -1,
1310 __R);
1311}
1312
1313extern __inline __m512i
1314__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1315_mm512_mask_cvt_roundps_epu64 (__m512i __W, __mmask8 __U, __m256 __A,
1316 const int __R)
1317{
1318 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
1319 (__v8di) __W,
1320 (__mmask8) __U,
1321 __R);
1322}
1323
1324extern __inline __m512i
1325__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1326_mm512_maskz_cvt_roundps_epu64 (__mmask8 __U, __m256 __A,
1327 const int __R)
1328{
1329 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
1330 (__v8di)
1331 _mm512_setzero_si512 (),
1332 (__mmask8) __U,
1333 __R);
1334}
1335
1336extern __inline __m256
1337__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1338_mm512_cvt_roundepi64_ps (__m512i __A, const int __R)
1339{
1340 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
1341 (__v8sf)
1342 _mm256_setzero_ps (),
1343 (__mmask8) -1,
1344 __R);
1345}
1346
1347extern __inline __m256
1348__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1349_mm512_mask_cvt_roundepi64_ps (__m256 __W, __mmask8 __U, __m512i __A,
1350 const int __R)
1351{
1352 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
1353 (__v8sf) __W,
1354 (__mmask8) __U,
1355 __R);
1356}
1357
1358extern __inline __m256
1359__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1360_mm512_maskz_cvt_roundepi64_ps (__mmask8 __U, __m512i __A,
1361 const int __R)
1362{
1363 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
1364 (__v8sf)
1365 _mm256_setzero_ps (),
1366 (__mmask8) __U,
1367 __R);
1368}
1369
1370extern __inline __m256
1371__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1372_mm512_cvt_roundepu64_ps (__m512i __A, const int __R)
1373{
1374 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
1375 (__v8sf)
1376 _mm256_setzero_ps (),
1377 (__mmask8) -1,
1378 __R);
1379}
1380
1381extern __inline __m256
1382__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1383_mm512_mask_cvt_roundepu64_ps (__m256 __W, __mmask8 __U, __m512i __A,
1384 const int __R)
1385{
1386 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
1387 (__v8sf) __W,
1388 (__mmask8) __U,
1389 __R);
1390}
1391
1392extern __inline __m256
1393__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1394_mm512_maskz_cvt_roundepu64_ps (__mmask8 __U, __m512i __A,
1395 const int __R)
1396{
1397 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
1398 (__v8sf)
1399 _mm256_setzero_ps (),
1400 (__mmask8) __U,
1401 __R);
1402}
1403
1404extern __inline __m512d
1405__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1406_mm512_cvt_roundepi64_pd (__m512i __A, const int __R)
1407{
1408 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
1409 (__v8df)
1410 _mm512_setzero_pd (),
1411 (__mmask8) -1,
1412 __R);
1413}
1414
1415extern __inline __m512d
1416__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1417_mm512_mask_cvt_roundepi64_pd (__m512d __W, __mmask8 __U, __m512i __A,
1418 const int __R)
1419{
1420 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
1421 (__v8df) __W,
1422 (__mmask8) __U,
1423 __R);
1424}
1425
1426extern __inline __m512d
1427__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1428_mm512_maskz_cvt_roundepi64_pd (__mmask8 __U, __m512i __A,
1429 const int __R)
1430{
1431 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
1432 (__v8df)
1433 _mm512_setzero_pd (),
1434 (__mmask8) __U,
1435 __R);
1436}
1437
1438extern __inline __m512d
1439__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1440_mm512_cvt_roundepu64_pd (__m512i __A, const int __R)
1441{
1442 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
1443 (__v8df)
1444 _mm512_setzero_pd (),
1445 (__mmask8) -1,
1446 __R);
1447}
1448
1449extern __inline __m512d
1450__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1451_mm512_mask_cvt_roundepu64_pd (__m512d __W, __mmask8 __U, __m512i __A,
1452 const int __R)
1453{
1454 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
1455 (__v8df) __W,
1456 (__mmask8) __U,
1457 __R);
1458}
1459
1460extern __inline __m512d
1461__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1462_mm512_maskz_cvt_roundepu64_pd (__mmask8 __U, __m512i __A,
1463 const int __R)
1464{
1465 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
1466 (__v8df)
1467 _mm512_setzero_pd (),
1468 (__mmask8) __U,
1469 __R);
1470}
1471
1472extern __inline __m512d
1473__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1474_mm512_reduce_pd (__m512d __A, int __B)
1475{
1476 return (__m512d) __builtin_ia32_reducepd512_mask ((__v8df) __A, __B,
1477 (__v8df)
1478 _mm512_setzero_pd (),
1479 (__mmask8) -1);
1480}
1481
1482extern __inline __m512d
1483__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1484_mm512_mask_reduce_pd (__m512d __W, __mmask8 __U, __m512d __A, int __B)
1485{
1486 return (__m512d) __builtin_ia32_reducepd512_mask ((__v8df) __A, __B,
1487 (__v8df) __W,
1488 (__mmask8) __U);
1489}
1490
1491extern __inline __m512d
1492__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1493_mm512_maskz_reduce_pd (__mmask8 __U, __m512d __A, int __B)
1494{
1495 return (__m512d) __builtin_ia32_reducepd512_mask ((__v8df) __A, __B,
1496 (__v8df)
1497 _mm512_setzero_pd (),
1498 (__mmask8) __U);
1499}
1500
1501extern __inline __m512
1502__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1503_mm512_reduce_ps (__m512 __A, int __B)
1504{
1505 return (__m512) __builtin_ia32_reduceps512_mask ((__v16sf) __A, __B,
1506 (__v16sf)
1507 _mm512_setzero_ps (),
1508 (__mmask16) -1);
1509}
1510
1511extern __inline __m512
1512__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1513_mm512_mask_reduce_ps (__m512 __W, __mmask16 __U, __m512 __A, int __B)
1514{
1515 return (__m512) __builtin_ia32_reduceps512_mask ((__v16sf) __A, __B,
1516 (__v16sf) __W,
1517 (__mmask16) __U);
1518}
1519
1520extern __inline __m512
1521__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1522_mm512_maskz_reduce_ps (__mmask16 __U, __m512 __A, int __B)
1523{
1524 return (__m512) __builtin_ia32_reduceps512_mask ((__v16sf) __A, __B,
1525 (__v16sf)
1526 _mm512_setzero_ps (),
1527 (__mmask16) __U);
1528}
1529
1530extern __inline __m256
1531__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1532_mm512_extractf32x8_ps (__m512 __A, const int __imm)
1533{
1534 return (__m256) __builtin_ia32_extractf32x8_mask ((__v16sf) __A,
1535 __imm,
1536 (__v8sf)
1537 _mm256_setzero_ps (),
1538 (__mmask8) -1);
1539}
1540
1541extern __inline __m256
1542__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1543_mm512_mask_extractf32x8_ps (__m256 __W, __mmask8 __U, __m512 __A,
1544 const int __imm)
1545{
1546 return (__m256) __builtin_ia32_extractf32x8_mask ((__v16sf) __A,
1547 __imm,
1548 (__v8sf) __W,
1549 (__mmask8) __U);
1550}
1551
1552extern __inline __m256
1553__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1554_mm512_maskz_extractf32x8_ps (__mmask8 __U, __m512 __A,
1555 const int __imm)
1556{
1557 return (__m256) __builtin_ia32_extractf32x8_mask ((__v16sf) __A,
1558 __imm,
1559 (__v8sf)
1560 _mm256_setzero_ps (),
1561 (__mmask8) __U);
1562}
1563
1564extern __inline __m128d
1565__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1566_mm512_extractf64x2_pd (__m512d __A, const int __imm)
1567{
1568 return (__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df) __A,
1569 __imm,
1570 (__v2df)
1571 _mm_setzero_pd (),
1572 (__mmask8) -
1573 1);
1574}
1575
1576extern __inline __m128d
1577__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1578_mm512_mask_extractf64x2_pd (__m128d __W, __mmask8 __U, __m512d __A,
1579 const int __imm)
1580{
1581 return (__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df) __A,
1582 __imm,
1583 (__v2df) __W,
1584 (__mmask8)
1585 __U);
1586}
1587
1588extern __inline __m128d
1589__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1590_mm512_maskz_extractf64x2_pd (__mmask8 __U, __m512d __A,
1591 const int __imm)
1592{
1593 return (__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df) __A,
1594 __imm,
1595 (__v2df)
1596 _mm_setzero_pd (),
1597 (__mmask8)
1598 __U);
1599}
1600
1601extern __inline __m256i
1602__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1603_mm512_extracti32x8_epi32 (__m512i __A, const int __imm)
1604{
1605 return (__m256i) __builtin_ia32_extracti32x8_mask ((__v16si) __A,
1606 __imm,
1607 (__v8si)
1608 _mm256_setzero_si256 (),
1609 (__mmask8) -1);
1610}
1611
1612extern __inline __m256i
1613__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1614_mm512_mask_extracti32x8_epi32 (__m256i __W, __mmask8 __U, __m512i __A,
1615 const int __imm)
1616{
1617 return (__m256i) __builtin_ia32_extracti32x8_mask ((__v16si) __A,
1618 __imm,
1619 (__v8si) __W,
1620 (__mmask8) __U);
1621}
1622
1623extern __inline __m256i
1624__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1625_mm512_maskz_extracti32x8_epi32 (__mmask8 __U, __m512i __A,
1626 const int __imm)
1627{
1628 return (__m256i) __builtin_ia32_extracti32x8_mask ((__v16si) __A,
1629 __imm,
1630 (__v8si)
1631 _mm256_setzero_si256 (),
1632 (__mmask8) __U);
1633}
1634
1635extern __inline __m128i
1636__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1637_mm512_extracti64x2_epi64 (__m512i __A, const int __imm)
1638{
1639 return (__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di) __A,
1640 __imm,
1641 (__v2di)
1642 _mm_setzero_di (),
1643 (__mmask8) -
1644 1);
1645}
1646
1647extern __inline __m128i
1648__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1649_mm512_mask_extracti64x2_epi64 (__m128i __W, __mmask8 __U, __m512i __A,
1650 const int __imm)
1651{
1652 return (__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di) __A,
1653 __imm,
1654 (__v2di) __W,
1655 (__mmask8)
1656 __U);
1657}
1658
1659extern __inline __m128i
1660__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1661_mm512_maskz_extracti64x2_epi64 (__mmask8 __U, __m512i __A,
1662 const int __imm)
1663{
1664 return (__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di) __A,
1665 __imm,
1666 (__v2di)
1667 _mm_setzero_di (),
1668 (__mmask8)
1669 __U);
1670}
1671
1672extern __inline __m512d
1673__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1674_mm512_range_round_pd (__m512d __A, __m512d __B, int __C,
1675 const int __R)
1676{
1677 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
1678 (__v8df) __B, __C,
1679 (__v8df)
1680 _mm512_setzero_pd (),
1681 (__mmask8) -1,
1682 __R);
1683}
1684
1685extern __inline __m512d
1686__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1687_mm512_mask_range_round_pd (__m512d __W, __mmask8 __U,
1688 __m512d __A, __m512d __B, int __C,
1689 const int __R)
1690{
1691 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
1692 (__v8df) __B, __C,
1693 (__v8df) __W,
1694 (__mmask8) __U,
1695 __R);
1696}
1697
1698extern __inline __m512d
1699__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1700_mm512_maskz_range_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
1701 int __C, const int __R)
1702{
1703 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
1704 (__v8df) __B, __C,
1705 (__v8df)
1706 _mm512_setzero_pd (),
1707 (__mmask8) __U,
1708 __R);
1709}
1710
1711extern __inline __m512
1712__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1713_mm512_range_round_ps (__m512 __A, __m512 __B, int __C, const int __R)
1714{
1715 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
1716 (__v16sf) __B, __C,
1717 (__v16sf)
1718 _mm512_setzero_ps (),
1719 (__mmask16) -1,
1720 __R);
1721}
1722
1723extern __inline __m512
1724__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1725_mm512_mask_range_round_ps (__m512 __W, __mmask16 __U,
1726 __m512 __A, __m512 __B, int __C,
1727 const int __R)
1728{
1729 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
1730 (__v16sf) __B, __C,
1731 (__v16sf) __W,
1732 (__mmask16) __U,
1733 __R);
1734}
1735
1736extern __inline __m512
1737__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1738_mm512_maskz_range_round_ps (__mmask16 __U, __m512 __A, __m512 __B,
1739 int __C, const int __R)
1740{
1741 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
1742 (__v16sf) __B, __C,
1743 (__v16sf)
1744 _mm512_setzero_ps (),
1745 (__mmask16) __U,
1746 __R);
1747}
1748
1749extern __inline __m512i
1750__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1751_mm512_inserti32x8 (__m512i __A, __m256i __B, const int __imm)
1752{
1753 return (__m512i) __builtin_ia32_inserti32x8_mask ((__v16si) __A,
1754 (__v8si) __B,
1755 __imm,
1756 (__v16si)
1757 _mm512_setzero_si512 (),
1758 (__mmask16) -1);
1759}
1760
1761extern __inline __m512i
1762__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1763_mm512_mask_inserti32x8 (__m512i __W, __mmask16 __U, __m512i __A,
1764 __m256i __B, const int __imm)
1765{
1766 return (__m512i) __builtin_ia32_inserti32x8_mask ((__v16si) __A,
1767 (__v8si) __B,
1768 __imm,
1769 (__v16si) __W,
1770 (__mmask16) __U);
1771}
1772
1773extern __inline __m512i
1774__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1775_mm512_maskz_inserti32x8 (__mmask16 __U, __m512i __A, __m256i __B,
1776 const int __imm)
1777{
1778 return (__m512i) __builtin_ia32_inserti32x8_mask ((__v16si) __A,
1779 (__v8si) __B,
1780 __imm,
1781 (__v16si)
1782 _mm512_setzero_si512 (),
1783 (__mmask16) __U);
1784}
1785
1786extern __inline __m512
1787__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1788_mm512_insertf32x8 (__m512 __A, __m256 __B, const int __imm)
1789{
1790 return (__m512) __builtin_ia32_insertf32x8_mask ((__v16sf) __A,
1791 (__v8sf) __B,
1792 __imm,
1793 (__v16sf)
1794 _mm512_setzero_ps (),
1795 (__mmask16) -1);
1796}
1797
1798extern __inline __m512
1799__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1800_mm512_mask_insertf32x8 (__m512 __W, __mmask16 __U, __m512 __A,
1801 __m256 __B, const int __imm)
1802{
1803 return (__m512) __builtin_ia32_insertf32x8_mask ((__v16sf) __A,
1804 (__v8sf) __B,
1805 __imm,
1806 (__v16sf) __W,
1807 (__mmask16) __U);
1808}
1809
1810extern __inline __m512
1811__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1812_mm512_maskz_insertf32x8 (__mmask16 __U, __m512 __A, __m256 __B,
1813 const int __imm)
1814{
1815 return (__m512) __builtin_ia32_insertf32x8_mask ((__v16sf) __A,
1816 (__v8sf) __B,
1817 __imm,
1818 (__v16sf)
1819 _mm512_setzero_ps (),
1820 (__mmask16) __U);
1821}
1822
1823extern __inline __m512i
1824__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1825_mm512_inserti64x2 (__m512i __A, __m128i __B, const int __imm)
1826{
1827 return (__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di) __A,
1828 (__v2di) __B,
1829 __imm,
1830 (__v8di)
1831 _mm512_setzero_si512 (),
1832 (__mmask8) -
1833 1);
1834}
1835
1836extern __inline __m512i
1837__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1838_mm512_mask_inserti64x2 (__m512i __W, __mmask8 __U, __m512i __A,
1839 __m128i __B, const int __imm)
1840{
1841 return (__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di) __A,
1842 (__v2di) __B,
1843 __imm,
1844 (__v8di) __W,
1845 (__mmask8)
1846 __U);
1847}
1848
1849extern __inline __m512i
1850__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1851_mm512_maskz_inserti64x2 (__mmask8 __U, __m512i __A, __m128i __B,
1852 const int __imm)
1853{
1854 return (__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di) __A,
1855 (__v2di) __B,
1856 __imm,
1857 (__v8di)
1858 _mm512_setzero_si512 (),
1859 (__mmask8)
1860 __U);
1861}
1862
1863extern __inline __m512d
1864__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1865_mm512_insertf64x2 (__m512d __A, __m128d __B, const int __imm)
1866{
1867 return (__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df) __A,
1868 (__v2df) __B,
1869 __imm,
1870 (__v8df)
1871 _mm512_setzero_pd (),
1872 (__mmask8) -
1873 1);
1874}
1875
1876extern __inline __m512d
1877__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1878_mm512_mask_insertf64x2 (__m512d __W, __mmask8 __U, __m512d __A,
1879 __m128d __B, const int __imm)
1880{
1881 return (__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df) __A,
1882 (__v2df) __B,
1883 __imm,
1884 (__v8df) __W,
1885 (__mmask8)
1886 __U);
1887}
1888
1889extern __inline __m512d
1890__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1891_mm512_maskz_insertf64x2 (__mmask8 __U, __m512d __A, __m128d __B,
1892 const int __imm)
1893{
1894 return (__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df) __A,
1895 (__v2df) __B,
1896 __imm,
1897 (__v8df)
1898 _mm512_setzero_pd (),
1899 (__mmask8)
1900 __U);
1901}
1902
1903extern __inline __mmask8
1904__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1905_mm512_mask_fpclass_pd_mask (__mmask8 __U, __m512d __A,
1906 const int __imm)
1907{
1908 return (__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) __A,
1909 __imm, __U);
1910}
1911
1912extern __inline __mmask8
1913__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1914_mm512_fpclass_pd_mask (__m512d __A, const int __imm)
1915{
1916 return (__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) __A,
1917 __imm,
1918 (__mmask8) -1);
1919}
1920
1921extern __inline __mmask16
1922__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1923_mm512_mask_fpclass_ps_mask (__mmask16 __U, __m512 __A,
1924 const int __imm)
1925{
1926 return (__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) __A,
1927 __imm, __U);
1928}
1929
1930extern __inline __mmask16
1931__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1932_mm512_fpclass_ps_mask (__m512 __A, const int __imm)
1933{
1934 return (__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) __A,
1935 __imm,
1936 (__mmask16) -
1937 1);
1938}
1939
1940#else
1941#define _mm_range_sd(A, B, C) \
1942 ((__m128d) __builtin_ia32_rangesd128_round ((__v2df)(__m128d)(A), \
1943 (__v2df)(__m128d)(B), (int)(C), \
1944 _MM_FROUND_CUR_DIRECTION))
1945
1946#define _mm_range_ss(A, B, C) \
1947 ((__m128) __builtin_ia32_rangess128_round ((__v4sf)(__m128)(A), \
1948 (__v4sf)(__m128)(B), (int)(C), \
1949 _MM_FROUND_CUR_DIRECTION))
1950
1951#define _mm_range_round_sd(A, B, C, R) \
1952 ((__m128d) __builtin_ia32_rangesd128_round ((__v2df)(__m128d)(A), \
1953 (__v2df)(__m128d)(B), (int)(C), (R)))
1954
1955#define _mm_range_round_ss(A, B, C, R) \
1956 ((__m128) __builtin_ia32_rangess128_round ((__v4sf)(__m128)(A), \
1957 (__v4sf)(__m128)(B), (int)(C), (R)))
1958
1959#define _mm512_cvtt_roundpd_epi64(A, B) \
1960 ((__m512i)__builtin_ia32_cvttpd2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
1961
1962#define _mm512_mask_cvtt_roundpd_epi64(W, U, A, B) \
1963 ((__m512i)__builtin_ia32_cvttpd2qq512_mask((A), (__v8di)(W), (U), (B)))
1964
1965#define _mm512_maskz_cvtt_roundpd_epi64(U, A, B) \
1966 ((__m512i)__builtin_ia32_cvttpd2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
1967
1968#define _mm512_cvtt_roundpd_epu64(A, B) \
1969 ((__m512i)__builtin_ia32_cvttpd2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
1970
1971#define _mm512_mask_cvtt_roundpd_epu64(W, U, A, B) \
1972 ((__m512i)__builtin_ia32_cvttpd2uqq512_mask((A), (__v8di)(W), (U), (B)))
1973
1974#define _mm512_maskz_cvtt_roundpd_epu64(U, A, B) \
1975 ((__m512i)__builtin_ia32_cvttpd2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
1976
1977#define _mm512_cvtt_roundps_epi64(A, B) \
1978 ((__m512i)__builtin_ia32_cvttps2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
1979
1980#define _mm512_mask_cvtt_roundps_epi64(W, U, A, B) \
1981 ((__m512i)__builtin_ia32_cvttps2qq512_mask((A), (__v8di)(W), (U), (B)))
1982
1983#define _mm512_maskz_cvtt_roundps_epi64(U, A, B) \
1984 ((__m512i)__builtin_ia32_cvttps2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
1985
1986#define _mm512_cvtt_roundps_epu64(A, B) \
1987 ((__m512i)__builtin_ia32_cvttps2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
1988
1989#define _mm512_mask_cvtt_roundps_epu64(W, U, A, B) \
1990 ((__m512i)__builtin_ia32_cvttps2uqq512_mask((A), (__v8di)(W), (U), (B)))
1991
1992#define _mm512_maskz_cvtt_roundps_epu64(U, A, B) \
1993 ((__m512i)__builtin_ia32_cvttps2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
1994
1995#define _mm512_cvt_roundpd_epi64(A, B) \
1996 ((__m512i)__builtin_ia32_cvtpd2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
1997
1998#define _mm512_mask_cvt_roundpd_epi64(W, U, A, B) \
1999 ((__m512i)__builtin_ia32_cvtpd2qq512_mask((A), (__v8di)(W), (U), (B)))
2000
2001#define _mm512_maskz_cvt_roundpd_epi64(U, A, B) \
2002 ((__m512i)__builtin_ia32_cvtpd2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2003
2004#define _mm512_cvt_roundpd_epu64(A, B) \
2005 ((__m512i)__builtin_ia32_cvtpd2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
2006
2007#define _mm512_mask_cvt_roundpd_epu64(W, U, A, B) \
2008 ((__m512i)__builtin_ia32_cvtpd2uqq512_mask((A), (__v8di)(W), (U), (B)))
2009
2010#define _mm512_maskz_cvt_roundpd_epu64(U, A, B) \
2011 ((__m512i)__builtin_ia32_cvtpd2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2012
2013#define _mm512_cvt_roundps_epi64(A, B) \
2014 ((__m512i)__builtin_ia32_cvtps2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
2015
2016#define _mm512_mask_cvt_roundps_epi64(W, U, A, B) \
2017 ((__m512i)__builtin_ia32_cvtps2qq512_mask((A), (__v8di)(W), (U), (B)))
2018
2019#define _mm512_maskz_cvt_roundps_epi64(U, A, B) \
2020 ((__m512i)__builtin_ia32_cvtps2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2021
2022#define _mm512_cvt_roundps_epu64(A, B) \
2023 ((__m512i)__builtin_ia32_cvtps2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
2024
2025#define _mm512_mask_cvt_roundps_epu64(W, U, A, B) \
2026 ((__m512i)__builtin_ia32_cvtps2uqq512_mask((A), (__v8di)(W), (U), (B)))
2027
2028#define _mm512_maskz_cvt_roundps_epu64(U, A, B) \
2029 ((__m512i)__builtin_ia32_cvtps2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
2030
2031#define _mm512_cvt_roundepi64_ps(A, B) \
2032 ((__m256)__builtin_ia32_cvtqq2ps512_mask((__v8di)(A), (__v8sf)_mm256_setzero_ps(), -1, (B)))
2033
2034#define _mm512_mask_cvt_roundepi64_ps(W, U, A, B) \
2035 ((__m256)__builtin_ia32_cvtqq2ps512_mask((__v8di)(A), (W), (U), (B)))
2036
2037#define _mm512_maskz_cvt_roundepi64_ps(U, A, B) \
2038 ((__m256)__builtin_ia32_cvtqq2ps512_mask((__v8di)(A), (__v8sf)_mm256_setzero_ps(), (U), (B)))
2039
2040#define _mm512_cvt_roundepu64_ps(A, B) \
2041 ((__m256)__builtin_ia32_cvtuqq2ps512_mask((__v8di)(A), (__v8sf)_mm256_setzero_ps(), -1, (B)))
2042
2043#define _mm512_mask_cvt_roundepu64_ps(W, U, A, B) \
2044 ((__m256)__builtin_ia32_cvtuqq2ps512_mask((__v8di)(A), (W), (U), (B)))
2045
2046#define _mm512_maskz_cvt_roundepu64_ps(U, A, B) \
2047 ((__m256)__builtin_ia32_cvtuqq2ps512_mask((__v8di)(A), (__v8sf)_mm256_setzero_ps(), (U), (B)))
2048
2049#define _mm512_cvt_roundepi64_pd(A, B) \
2050 ((__m512d)__builtin_ia32_cvtqq2pd512_mask((__v8di)(A), (__v8df)_mm512_setzero_pd(), -1, (B)))
2051
2052#define _mm512_mask_cvt_roundepi64_pd(W, U, A, B) \
2053 ((__m512d)__builtin_ia32_cvtqq2pd512_mask((__v8di)(A), (W), (U), (B)))
2054
2055#define _mm512_maskz_cvt_roundepi64_pd(U, A, B) \
2056 ((__m512d)__builtin_ia32_cvtqq2pd512_mask((__v8di)(A), (__v8df)_mm512_setzero_pd(), (U), (B)))
2057
2058#define _mm512_cvt_roundepu64_pd(A, B) \
2059 ((__m512d)__builtin_ia32_cvtuqq2pd512_mask((__v8di)(A), (__v8df)_mm512_setzero_pd(), -1, (B)))
2060
2061#define _mm512_mask_cvt_roundepu64_pd(W, U, A, B) \
2062 ((__m512d)__builtin_ia32_cvtuqq2pd512_mask((__v8di)(A), (W), (U), (B)))
2063
2064#define _mm512_maskz_cvt_roundepu64_pd(U, A, B) \
2065 ((__m512d)__builtin_ia32_cvtuqq2pd512_mask((__v8di)(A), (__v8df)_mm512_setzero_pd(), (U), (B)))
2066
2067#define _mm512_reduce_pd(A, B) \
2068 ((__m512d) __builtin_ia32_reducepd512_mask ((__v8df)(__m512d)(A), \
2069 (int)(B), (__v8df)_mm512_setzero_pd(), (__mmask8)-1))
2070
2071#define _mm512_mask_reduce_pd(W, U, A, B) \
2072 ((__m512d) __builtin_ia32_reducepd512_mask ((__v8df)(__m512d)(A), \
2073 (int)(B), (__v8df)(__m512d)(W), (__mmask8)(U)))
2074
2075#define _mm512_maskz_reduce_pd(U, A, B) \
2076 ((__m512d) __builtin_ia32_reducepd512_mask ((__v8df)(__m512d)(A), \
2077 (int)(B), (__v8df)_mm512_setzero_pd(), (__mmask8)(U)))
2078
2079#define _mm512_reduce_ps(A, B) \
2080 ((__m512) __builtin_ia32_reduceps512_mask ((__v16sf)(__m512)(A), \
2081 (int)(B), (__v16sf)_mm512_setzero_ps(), (__mmask16)-1))
2082
2083#define _mm512_mask_reduce_ps(W, U, A, B) \
2084 ((__m512) __builtin_ia32_reduceps512_mask ((__v16sf)(__m512)(A), \
2085 (int)(B), (__v16sf)(__m512)(W), (__mmask16)(U)))
2086
2087#define _mm512_maskz_reduce_ps(U, A, B) \
2088 ((__m512) __builtin_ia32_reduceps512_mask ((__v16sf)(__m512)(A), \
2089 (int)(B), (__v16sf)_mm512_setzero_ps(), (__mmask16)(U)))
2090
2091#define _mm512_extractf32x8_ps(X, C) \
2092 ((__m256) __builtin_ia32_extractf32x8_mask ((__v16sf)(__m512) (X), \
2093 (int) (C), (__v8sf)(__m256) _mm256_setzero_ps(), (__mmask8)-1))
2094
2095#define _mm512_mask_extractf32x8_ps(W, U, X, C) \
2096 ((__m256) __builtin_ia32_extractf32x8_mask ((__v16sf)(__m512) (X), \
2097 (int) (C), (__v8sf)(__m256) (W), (__mmask8) (U)))
2098
2099#define _mm512_maskz_extractf32x8_ps(U, X, C) \
2100 ((__m256) __builtin_ia32_extractf32x8_mask ((__v16sf)(__m512) (X), \
2101 (int) (C), (__v8sf)(__m256) _mm256_setzero_ps(), (__mmask8) (U)))
2102
2103#define _mm512_extractf64x2_pd(X, C) \
2104 ((__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df)(__m512d) (X),\
2105 (int) (C), (__v2df)(__m128d) _mm_setzero_pd(), (__mmask8)-1))
2106
2107#define _mm512_mask_extractf64x2_pd(W, U, X, C) \
2108 ((__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df)(__m512d) (X),\
2109 (int) (C), (__v2df)(__m128d) (W), (__mmask8) (U)))
2110
2111#define _mm512_maskz_extractf64x2_pd(U, X, C) \
2112 ((__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df)(__m512d) (X),\
2113 (int) (C), (__v2df)(__m128d) _mm_setzero_pd(), (__mmask8) (U)))
2114
2115#define _mm512_extracti32x8_epi32(X, C) \
2116 ((__m256i) __builtin_ia32_extracti32x8_mask ((__v16si)(__m512i) (X), \
2117 (int) (C), (__v8si)(__m256i) _mm256_setzero_si256(), (__mmask8)-1))
2118
2119#define _mm512_mask_extracti32x8_epi32(W, U, X, C) \
2120 ((__m256i) __builtin_ia32_extracti32x8_mask ((__v16si)(__m512i) (X), \
2121 (int) (C), (__v8si)(__m256i) (W), (__mmask8) (U)))
2122
2123#define _mm512_maskz_extracti32x8_epi32(U, X, C) \
2124 ((__m256i) __builtin_ia32_extracti32x8_mask ((__v16si)(__m512i) (X), \
2125 (int) (C), (__v8si)(__m256i) _mm256_setzero_si256(), (__mmask8) (U)))
2126
2127#define _mm512_extracti64x2_epi64(X, C) \
2128 ((__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di)(__m512i) (X),\
2129 (int) (C), (__v2di)(__m128i) _mm_setzero_di(), (__mmask8)-1))
2130
2131#define _mm512_mask_extracti64x2_epi64(W, U, X, C) \
2132 ((__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di)(__m512i) (X),\
2133 (int) (C), (__v2di)(__m128i) (W), (__mmask8) (U)))
2134
2135#define _mm512_maskz_extracti64x2_epi64(U, X, C) \
2136 ((__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di)(__m512i) (X),\
2137 (int) (C), (__v2di)(__m128i) _mm_setzero_di(), (__mmask8) (U)))
2138
2139#define _mm512_range_pd(A, B, C) \
2140 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2141 (__v8df)(__m512d)(B), (int)(C), \
2142 (__v8df)_mm512_setzero_pd(), (__mmask8)-1, _MM_FROUND_CUR_DIRECTION))
2143
2144#define _mm512_mask_range_pd(W, U, A, B, C) \
2145 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2146 (__v8df)(__m512d)(B), (int)(C), \
2147 (__v8df)(__m512d)(W), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
2148
2149#define _mm512_maskz_range_pd(U, A, B, C) \
2150 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2151 (__v8df)(__m512d)(B), (int)(C), \
2152 (__v8df)_mm512_setzero_pd(), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
2153
2154#define _mm512_range_ps(A, B, C) \
2155 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2156 (__v16sf)(__m512)(B), (int)(C), \
2157 (__v16sf)_mm512_setzero_ps(), (__mmask16)-1, _MM_FROUND_CUR_DIRECTION))
2158
2159#define _mm512_mask_range_ps(W, U, A, B, C) \
2160 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2161 (__v16sf)(__m512)(B), (int)(C), \
2162 (__v16sf)(__m512)(W), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
2163
2164#define _mm512_maskz_range_ps(U, A, B, C) \
2165 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2166 (__v16sf)(__m512)(B), (int)(C), \
2167 (__v16sf)_mm512_setzero_ps(), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
2168
2169#define _mm512_range_round_pd(A, B, C, R) \
2170 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2171 (__v8df)(__m512d)(B), (int)(C), \
2172 (__v8df)_mm512_setzero_pd(), (__mmask8)-1, (R)))
2173
2174#define _mm512_mask_range_round_pd(W, U, A, B, C, R) \
2175 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2176 (__v8df)(__m512d)(B), (int)(C), \
2177 (__v8df)(__m512d)(W), (__mmask8)(U), (R)))
2178
2179#define _mm512_maskz_range_round_pd(U, A, B, C, R) \
2180 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
2181 (__v8df)(__m512d)(B), (int)(C), \
2182 (__v8df)_mm512_setzero_pd(), (__mmask8)(U), (R)))
2183
2184#define _mm512_range_round_ps(A, B, C, R) \
2185 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2186 (__v16sf)(__m512)(B), (int)(C), \
2187 (__v16sf)_mm512_setzero_ps(), (__mmask16)-1, (R)))
2188
2189#define _mm512_mask_range_round_ps(W, U, A, B, C, R) \
2190 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2191 (__v16sf)(__m512)(B), (int)(C), \
2192 (__v16sf)(__m512)(W), (__mmask16)(U), (R)))
2193
2194#define _mm512_maskz_range_round_ps(U, A, B, C, R) \
2195 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
2196 (__v16sf)(__m512)(B), (int)(C), \
2197 (__v16sf)_mm512_setzero_ps(), (__mmask16)(U), (R)))
2198
2199#define _mm512_insertf64x2(X, Y, C) \
2200 ((__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df)(__m512d) (X),\
2201 (__v2df)(__m128d) (Y), (int) (C), (__v8df)(__m512d) (X), \
2202 (__mmask8)-1))
2203
2204#define _mm512_mask_insertf64x2(W, U, X, Y, C) \
2205 ((__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df)(__m512d) (X),\
2206 (__v2df)(__m128d) (Y), (int) (C), (__v8df)(__m512d) (W), \
2207 (__mmask8) (U)))
2208
2209#define _mm512_maskz_insertf64x2(U, X, Y, C) \
2210 ((__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df)(__m512d) (X),\
2211 (__v2df)(__m128d) (Y), (int) (C), \
2212 (__v8df)(__m512d) _mm512_setzero_pd(), (__mmask8) (U)))
2213
2214#define _mm512_inserti64x2(X, Y, C) \
2215 ((__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di)(__m512i) (X),\
2216 (__v2di)(__m128i) (Y), (int) (C), (__v8di)(__m512i) (X), (__mmask8)-1))
2217
2218#define _mm512_mask_inserti64x2(W, U, X, Y, C) \
2219 ((__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di)(__m512i) (X),\
2220 (__v2di)(__m128i) (Y), (int) (C), (__v8di)(__m512i) (W), \
2221 (__mmask8) (U)))
2222
2223#define _mm512_maskz_inserti64x2(U, X, Y, C) \
2224 ((__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di)(__m512i) (X),\
2225 (__v2di)(__m128i) (Y), (int) (C), \
2226 (__v8di)(__m512i) _mm512_setzero_si512 (), (__mmask8) (U)))
2227
2228#define _mm512_insertf32x8(X, Y, C) \
2229 ((__m512) __builtin_ia32_insertf32x8_mask ((__v16sf)(__m512) (X), \
2230 (__v8sf)(__m256) (Y), (int) (C),\
2231 (__v16sf)(__m512)_mm512_setzero_ps(),\
2232 (__mmask16)-1))
2233
2234#define _mm512_mask_insertf32x8(W, U, X, Y, C) \
2235 ((__m512) __builtin_ia32_insertf32x8_mask ((__v16sf)(__m512) (X), \
2236 (__v8sf)(__m256) (Y), (int) (C),\
2237 (__v16sf)(__m512)(W),\
2238 (__mmask16)(U)))
2239
2240#define _mm512_maskz_insertf32x8(U, X, Y, C) \
2241 ((__m512) __builtin_ia32_insertf32x8_mask ((__v16sf)(__m512) (X), \
2242 (__v8sf)(__m256) (Y), (int) (C),\
2243 (__v16sf)(__m512)_mm512_setzero_ps(),\
2244 (__mmask16)(U)))
2245
2246#define _mm512_inserti32x8(X, Y, C) \
2247 ((__m512i) __builtin_ia32_inserti32x8_mask ((__v16si)(__m512i) (X), \
2248 (__v8si)(__m256i) (Y), (int) (C),\
2249 (__v16si)(__m512i)_mm512_setzero_si512 (),\
2250 (__mmask16)-1))
2251
2252#define _mm512_mask_inserti32x8(W, U, X, Y, C) \
2253 ((__m512i) __builtin_ia32_inserti32x8_mask ((__v16si)(__m512i) (X), \
2254 (__v8si)(__m256i) (Y), (int) (C),\
2255 (__v16si)(__m512i)(W),\
2256 (__mmask16)(U)))
2257
2258#define _mm512_maskz_inserti32x8(U, X, Y, C) \
2259 ((__m512i) __builtin_ia32_inserti32x8_mask ((__v16si)(__m512i) (X), \
2260 (__v8si)(__m256i) (Y), (int) (C),\
2261 (__v16si)(__m512i)_mm512_setzero_si512 (),\
2262 (__mmask16)(U)))
2263
2264#define _mm_fpclass_ss_mask(X, C) \
2265 ((__mmask8) __builtin_ia32_fpclassss ((__v4sf) (__m128) (X), (int) (C))) \
2266
2267#define _mm_fpclass_sd_mask(X, C) \
2268 ((__mmask8) __builtin_ia32_fpclasssd ((__v2df) (__m128d) (X), (int) (C))) \
2269
2270#define _mm512_mask_fpclass_pd_mask(u, X, C) \
2271 ((__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) (__m512d) (X), \
2272 (int) (C), (__mmask8)(u)))
2273
2274#define _mm512_mask_fpclass_ps_mask(u, x, c) \
2275 ((__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) (__m512) (x),\
2276 (int) (c),(__mmask8)(u)))
2277
2278#define _mm512_fpclass_pd_mask(X, C) \
2279 ((__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) (__m512d) (X), \
2280 (int) (C), (__mmask8)-1))
2281
2282#define _mm512_fpclass_ps_mask(x, c) \
2283 ((__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) (__m512) (x),\
2284 (int) (c),(__mmask8)-1))
2285
2286#define _mm_reduce_sd(A, B, C) \
2287 ((__m128d) __builtin_ia32_reducesd ((__v2df)(__m128d)(A), \
2288 (__v2df)(__m128d)(B), (int)(C))) \
2289
2290#define _mm_reduce_ss(A, B, C) \
2291 ((__m128) __builtin_ia32_reducess ((__v4sf)(__m128)(A), \
2292 (__v4sf)(__m128)(A), (int)(C))) \
2293
2294#endif
2295
2296#ifdef __DISABLE_AVX512DQ__
2297#undef __DISABLE_AVX512DQ__
2298#pragma GCC pop_options
2299#endif /* __DISABLE_AVX512DQ__ */
2300
2301#endif /* _AVX512DQINTRIN_H_INCLUDED */