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