ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MinGW/lib/gcc/mingw32/5.3.0/include/avx512dqintrin.h
Revision: 1046
Committed: Mon Aug 29 13:19:38 2016 UTC (9 years, 2 months ago) by alloc
Content type: text/x-chdr
File size: 72707 byte(s)
Log Message:
Daodan: Added Windows MinGW and build batch file

File Contents

# Content
1 /* Copyright (C) 2014-2015 Free Software Foundation, Inc.
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
37 extern __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
48 extern __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
58 extern __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
69 extern __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
80 extern __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
90 extern __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
101 extern __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
111 extern __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
120 extern __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
130 extern __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
141 extern __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
151 extern __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
162 extern __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
172 extern __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
181 extern __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
191 extern __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
202 extern __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
212 extern __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
223 extern __inline __m512i
224 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
225 _mm512_mullo_epi64 (__m512i __A, __m512i __B)
226 {
227 return (__m512i) ((__v8du) __A * (__v8du) __B);
228 }
229
230 extern __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
241 extern __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
252 extern __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
263 extern __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
274 extern __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
285 extern __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
296 extern __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
306 extern __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
317 extern __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
328 extern __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
338 extern __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
349 extern __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
360 extern __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
370 extern __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
381 extern __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
392 extern __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
403 extern __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
414 extern __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
425 extern __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
435 extern __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
446 extern __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
457 extern __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
468 extern __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
479 extern __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
490 extern __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
501 extern __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
512 extern __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
519 extern __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
526 extern __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
533 extern __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
540 extern __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
551 extern __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
561 extern __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
572 extern __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
583 extern __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
593 extern __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
604 extern __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
615 extern __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
625 extern __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
636 extern __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
647 extern __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
657 extern __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
668 extern __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
679 extern __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
689 extern __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
700 extern __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
711 extern __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
721 extern __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
732 extern __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
743 extern __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
753 extern __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
764 extern __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
775 extern __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
785 extern __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
796 extern __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
807 extern __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
817 extern __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
828 extern __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
839 extern __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
849 extern __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
860 extern __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
871 extern __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
881 extern __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
892 extern __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
903 extern __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
913 extern __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__
925 extern __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
937 extern __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
949 extern __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
961 extern __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
973 extern __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
985 extern __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
997 extern __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
1005 extern __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
1013 extern __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
1023 extern __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
1032 extern __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
1041 extern __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
1050 extern __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
1057 extern __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
1064 extern __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
1075 extern __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
1086 extern __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
1098 extern __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
1109 extern __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
1120 extern __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
1132 extern __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
1143 extern __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
1154 extern __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
1166 extern __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
1177 extern __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
1188 extern __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
1200 extern __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
1211 extern __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
1222 extern __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
1234 extern __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
1245 extern __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
1256 extern __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
1268 extern __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
1279 extern __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
1290 extern __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
1302 extern __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
1313 extern __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
1324 extern __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
1336 extern __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
1347 extern __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
1358 extern __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
1370 extern __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
1381 extern __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
1392 extern __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
1404 extern __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
1415 extern __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
1426 extern __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
1438 extern __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
1449 extern __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
1460 extern __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
1472 extern __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
1482 extern __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
1491 extern __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
1501 extern __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
1511 extern __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
1520 extern __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
1530 extern __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
1541 extern __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
1552 extern __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
1564 extern __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
1576 extern __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
1588 extern __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
1601 extern __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
1612 extern __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
1623 extern __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
1635 extern __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
1647 extern __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
1659 extern __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
1672 extern __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
1685 extern __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
1698 extern __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
1711 extern __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
1723 extern __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
1736 extern __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
1749 extern __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
1761 extern __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
1773 extern __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
1786 extern __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
1798 extern __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
1810 extern __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
1823 extern __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
1836 extern __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
1849 extern __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
1863 extern __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
1876 extern __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
1889 extern __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
1903 extern __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
1912 extern __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
1921 extern __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
1930 extern __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 */