1 /* Copyright (C) 2013-2017 Free Software Foundation, Inc.
3 This file is part of GCC.
5 GCC is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 3, or (at your option)
10 GCC is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 Under Section 7 of GPL version 3, you are granted additional
16 permissions described in the GCC Runtime Library Exception, version
17 3.1, as published by the Free Software Foundation.
19 You should have received a copy of the GNU General Public License and
20 a copy of the GCC Runtime Library Exception along with this program;
21 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
22 <http://www.gnu.org/licenses/>. */
24 #ifndef _IMMINTRIN_H_INCLUDED
25 #error "Never use <avx512fintrin.h> directly; include <immintrin.h> instead."
28 #ifndef _AVX512FINTRIN_H_INCLUDED
29 #define _AVX512FINTRIN_H_INCLUDED
32 #pragma GCC push_options
33 #pragma GCC target("avx512f")
34 #define __DISABLE_AVX512F__
35 #endif /* __AVX512F__ */
37 /* Internal data types for implementing the intrinsics. */
38 typedef double __v8df
__attribute__ ((__vector_size__ (64)));
39 typedef float __v16sf
__attribute__ ((__vector_size__ (64)));
40 typedef long long __v8di
__attribute__ ((__vector_size__ (64)));
41 typedef unsigned long long __v8du
__attribute__ ((__vector_size__ (64)));
42 typedef int __v16si
__attribute__ ((__vector_size__ (64)));
43 typedef unsigned int __v16su
__attribute__ ((__vector_size__ (64)));
44 typedef short __v32hi
__attribute__ ((__vector_size__ (64)));
45 typedef unsigned short __v32hu
__attribute__ ((__vector_size__ (64)));
46 typedef char __v64qi
__attribute__ ((__vector_size__ (64)));
47 typedef unsigned char __v64qu
__attribute__ ((__vector_size__ (64)));
49 /* The Intel API is flexible enough that we must allow aliasing with other
50 vector types, and their scalar components. */
51 typedef float __m512
__attribute__ ((__vector_size__ (64), __may_alias__
));
52 typedef long long __m512i
__attribute__ ((__vector_size__ (64), __may_alias__
));
53 typedef double __m512d
__attribute__ ((__vector_size__ (64), __may_alias__
));
55 /* Unaligned version of the same type. */
56 typedef float __m512_u
__attribute__ ((__vector_size__ (64), __may_alias__
, __aligned__ (1)));
57 typedef long long __m512i_u
__attribute__ ((__vector_size__ (64), __may_alias__
, __aligned__ (1)));
58 typedef double __m512d_u
__attribute__ ((__vector_size__ (64), __may_alias__
, __aligned__ (1)));
60 typedef unsigned char __mmask8
;
61 typedef unsigned short __mmask16
;
63 extern __inline __mmask16
64 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
65 _mm512_int2mask (int __M
)
67 return (__mmask16
) __M
;
71 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
72 _mm512_mask2int (__mmask16 __M
)
77 extern __inline __m512i
78 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
79 _mm512_set_epi64 (long long __A
, long long __B
, long long __C
,
80 long long __D
, long long __E
, long long __F
,
81 long long __G
, long long __H
)
83 return __extension__ (__m512i
) (__v8di
)
84 { __H
, __G
, __F
, __E
, __D
, __C
, __B
, __A
};
87 /* Create the vector [A B C D E F G H I J K L M N O P]. */
88 extern __inline __m512i
89 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
90 _mm512_set_epi32 (int __A
, int __B
, int __C
, int __D
,
91 int __E
, int __F
, int __G
, int __H
,
92 int __I
, int __J
, int __K
, int __L
,
93 int __M
, int __N
, int __O
, int __P
)
95 return __extension__ (__m512i
)(__v16si
)
96 { __P
, __O
, __N
, __M
, __L
, __K
, __J
, __I
,
97 __H
, __G
, __F
, __E
, __D
, __C
, __B
, __A
};
100 extern __inline __m512d
101 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
102 _mm512_set_pd (double __A
, double __B
, double __C
, double __D
,
103 double __E
, double __F
, double __G
, double __H
)
105 return __extension__ (__m512d
)
106 { __H
, __G
, __F
, __E
, __D
, __C
, __B
, __A
};
109 extern __inline __m512
110 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
111 _mm512_set_ps (float __A
, float __B
, float __C
, float __D
,
112 float __E
, float __F
, float __G
, float __H
,
113 float __I
, float __J
, float __K
, float __L
,
114 float __M
, float __N
, float __O
, float __P
)
116 return __extension__ (__m512
)
117 { __P
, __O
, __N
, __M
, __L
, __K
, __J
, __I
,
118 __H
, __G
, __F
, __E
, __D
, __C
, __B
, __A
};
121 #define _mm512_setr_epi64(e0,e1,e2,e3,e4,e5,e6,e7) \
122 _mm512_set_epi64(e7,e6,e5,e4,e3,e2,e1,e0)
124 #define _mm512_setr_epi32(e0,e1,e2,e3,e4,e5,e6,e7, \
125 e8,e9,e10,e11,e12,e13,e14,e15) \
126 _mm512_set_epi32(e15,e14,e13,e12,e11,e10,e9,e8,e7,e6,e5,e4,e3,e2,e1,e0)
128 #define _mm512_setr_pd(e0,e1,e2,e3,e4,e5,e6,e7) \
129 _mm512_set_pd(e7,e6,e5,e4,e3,e2,e1,e0)
131 #define _mm512_setr_ps(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12,e13,e14,e15) \
132 _mm512_set_ps(e15,e14,e13,e12,e11,e10,e9,e8,e7,e6,e5,e4,e3,e2,e1,e0)
134 extern __inline __m512
135 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
136 _mm512_undefined_ps (void)
142 #define _mm512_undefined _mm512_undefined_ps
144 extern __inline __m512d
145 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
146 _mm512_undefined_pd (void)
152 extern __inline __m512i
153 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
154 _mm512_undefined_epi32 (void)
160 #define _mm512_undefined_si512 _mm512_undefined_epi32
162 extern __inline __m512i
163 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
164 _mm512_set1_epi8 (char __A
)
166 return __extension__ (__m512i
)(__v64qi
)
167 { __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
,
168 __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
,
169 __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
,
170 __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
,
171 __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
,
172 __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
,
173 __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
,
174 __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
};
177 extern __inline __m512i
178 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
179 _mm512_set1_epi16 (short __A
)
181 return __extension__ (__m512i
)(__v32hi
)
182 { __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
,
183 __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
,
184 __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
,
185 __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
};
188 extern __inline __m512d
189 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
190 _mm512_set1_pd (double __A
)
192 return (__m512d
) __builtin_ia32_broadcastsd512 (__extension__
195 _mm512_undefined_pd (),
199 extern __inline __m512
200 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
201 _mm512_set1_ps (float __A
)
203 return (__m512
) __builtin_ia32_broadcastss512 (__extension__
206 _mm512_undefined_ps (),
210 /* Create the vector [A B C D A B C D A B C D A B C D]. */
211 extern __inline __m512i
212 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
213 _mm512_set4_epi32 (int __A
, int __B
, int __C
, int __D
)
215 return __extension__ (__m512i
)(__v16si
)
216 { __D
, __C
, __B
, __A
, __D
, __C
, __B
, __A
,
217 __D
, __C
, __B
, __A
, __D
, __C
, __B
, __A
};
220 extern __inline __m512i
221 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
222 _mm512_set4_epi64 (long long __A
, long long __B
, long long __C
,
225 return __extension__ (__m512i
) (__v8di
)
226 { __D
, __C
, __B
, __A
, __D
, __C
, __B
, __A
};
229 extern __inline __m512d
230 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
231 _mm512_set4_pd (double __A
, double __B
, double __C
, double __D
)
233 return __extension__ (__m512d
)
234 { __D
, __C
, __B
, __A
, __D
, __C
, __B
, __A
};
237 extern __inline __m512
238 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
239 _mm512_set4_ps (float __A
, float __B
, float __C
, float __D
)
241 return __extension__ (__m512
)
242 { __D
, __C
, __B
, __A
, __D
, __C
, __B
, __A
,
243 __D
, __C
, __B
, __A
, __D
, __C
, __B
, __A
};
246 #define _mm512_setr4_epi64(e0,e1,e2,e3) \
247 _mm512_set4_epi64(e3,e2,e1,e0)
249 #define _mm512_setr4_epi32(e0,e1,e2,e3) \
250 _mm512_set4_epi32(e3,e2,e1,e0)
252 #define _mm512_setr4_pd(e0,e1,e2,e3) \
253 _mm512_set4_pd(e3,e2,e1,e0)
255 #define _mm512_setr4_ps(e0,e1,e2,e3) \
256 _mm512_set4_ps(e3,e2,e1,e0)
258 extern __inline __m512
259 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
260 _mm512_setzero_ps (void)
262 return __extension__ (__m512
){ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
263 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
266 extern __inline __m512d
267 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
268 _mm512_setzero_pd (void)
270 return __extension__ (__m512d
) { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
273 extern __inline __m512i
274 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
275 _mm512_setzero_epi32 (void)
277 return __extension__ (__m512i
)(__v8di
){ 0, 0, 0, 0, 0, 0, 0, 0 };
280 extern __inline __m512i
281 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
282 _mm512_setzero_si512 (void)
284 return __extension__ (__m512i
)(__v8di
){ 0, 0, 0, 0, 0, 0, 0, 0 };
287 extern __inline __m512d
288 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
289 _mm512_mask_mov_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
291 return (__m512d
) __builtin_ia32_movapd512_mask ((__v8df
) __A
,
296 extern __inline __m512d
297 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
298 _mm512_maskz_mov_pd (__mmask8 __U
, __m512d __A
)
300 return (__m512d
) __builtin_ia32_movapd512_mask ((__v8df
) __A
,
302 _mm512_setzero_pd (),
306 extern __inline __m512
307 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
308 _mm512_mask_mov_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
310 return (__m512
) __builtin_ia32_movaps512_mask ((__v16sf
) __A
,
315 extern __inline __m512
316 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
317 _mm512_maskz_mov_ps (__mmask16 __U
, __m512 __A
)
319 return (__m512
) __builtin_ia32_movaps512_mask ((__v16sf
) __A
,
321 _mm512_setzero_ps (),
325 extern __inline __m512d
326 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
327 _mm512_load_pd (void const *__P
)
329 return *(__m512d
*) __P
;
332 extern __inline __m512d
333 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
334 _mm512_mask_load_pd (__m512d __W
, __mmask8 __U
, void const *__P
)
336 return (__m512d
) __builtin_ia32_loadapd512_mask ((const __v8df
*) __P
,
341 extern __inline __m512d
342 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
343 _mm512_maskz_load_pd (__mmask8 __U
, void const *__P
)
345 return (__m512d
) __builtin_ia32_loadapd512_mask ((const __v8df
*) __P
,
347 _mm512_setzero_pd (),
352 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
353 _mm512_store_pd (void *__P
, __m512d __A
)
355 *(__m512d
*) __P
= __A
;
359 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
360 _mm512_mask_store_pd (void *__P
, __mmask8 __U
, __m512d __A
)
362 __builtin_ia32_storeapd512_mask ((__v8df
*) __P
, (__v8df
) __A
,
366 extern __inline __m512
367 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
368 _mm512_load_ps (void const *__P
)
370 return *(__m512
*) __P
;
373 extern __inline __m512
374 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
375 _mm512_mask_load_ps (__m512 __W
, __mmask16 __U
, void const *__P
)
377 return (__m512
) __builtin_ia32_loadaps512_mask ((const __v16sf
*) __P
,
382 extern __inline __m512
383 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
384 _mm512_maskz_load_ps (__mmask16 __U
, void const *__P
)
386 return (__m512
) __builtin_ia32_loadaps512_mask ((const __v16sf
*) __P
,
388 _mm512_setzero_ps (),
393 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
394 _mm512_store_ps (void *__P
, __m512 __A
)
396 *(__m512
*) __P
= __A
;
400 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
401 _mm512_mask_store_ps (void *__P
, __mmask16 __U
, __m512 __A
)
403 __builtin_ia32_storeaps512_mask ((__v16sf
*) __P
, (__v16sf
) __A
,
407 extern __inline __m512i
408 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
409 _mm512_mask_mov_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
)
411 return (__m512i
) __builtin_ia32_movdqa64_512_mask ((__v8di
) __A
,
416 extern __inline __m512i
417 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
418 _mm512_maskz_mov_epi64 (__mmask8 __U
, __m512i __A
)
420 return (__m512i
) __builtin_ia32_movdqa64_512_mask ((__v8di
) __A
,
422 _mm512_setzero_si512 (),
426 extern __inline __m512i
427 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
428 _mm512_load_epi64 (void const *__P
)
430 return *(__m512i
*) __P
;
433 extern __inline __m512i
434 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
435 _mm512_mask_load_epi64 (__m512i __W
, __mmask8 __U
, void const *__P
)
437 return (__m512i
) __builtin_ia32_movdqa64load512_mask ((const __v8di
*) __P
,
442 extern __inline __m512i
443 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
444 _mm512_maskz_load_epi64 (__mmask8 __U
, void const *__P
)
446 return (__m512i
) __builtin_ia32_movdqa64load512_mask ((const __v8di
*) __P
,
448 _mm512_setzero_si512 (),
453 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
454 _mm512_store_epi64 (void *__P
, __m512i __A
)
456 *(__m512i
*) __P
= __A
;
460 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
461 _mm512_mask_store_epi64 (void *__P
, __mmask8 __U
, __m512i __A
)
463 __builtin_ia32_movdqa64store512_mask ((__v8di
*) __P
, (__v8di
) __A
,
467 extern __inline __m512i
468 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
469 _mm512_mask_mov_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
)
471 return (__m512i
) __builtin_ia32_movdqa32_512_mask ((__v16si
) __A
,
476 extern __inline __m512i
477 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
478 _mm512_maskz_mov_epi32 (__mmask16 __U
, __m512i __A
)
480 return (__m512i
) __builtin_ia32_movdqa32_512_mask ((__v16si
) __A
,
482 _mm512_setzero_si512 (),
486 extern __inline __m512i
487 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
488 _mm512_load_si512 (void const *__P
)
490 return *(__m512i
*) __P
;
493 extern __inline __m512i
494 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
495 _mm512_load_epi32 (void const *__P
)
497 return *(__m512i
*) __P
;
500 extern __inline __m512i
501 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
502 _mm512_mask_load_epi32 (__m512i __W
, __mmask16 __U
, void const *__P
)
504 return (__m512i
) __builtin_ia32_movdqa32load512_mask ((const __v16si
*) __P
,
509 extern __inline __m512i
510 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
511 _mm512_maskz_load_epi32 (__mmask16 __U
, void const *__P
)
513 return (__m512i
) __builtin_ia32_movdqa32load512_mask ((const __v16si
*) __P
,
515 _mm512_setzero_si512 (),
520 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
521 _mm512_store_si512 (void *__P
, __m512i __A
)
523 *(__m512i
*) __P
= __A
;
527 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
528 _mm512_store_epi32 (void *__P
, __m512i __A
)
530 *(__m512i
*) __P
= __A
;
534 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
535 _mm512_mask_store_epi32 (void *__P
, __mmask16 __U
, __m512i __A
)
537 __builtin_ia32_movdqa32store512_mask ((__v16si
*) __P
, (__v16si
) __A
,
541 extern __inline __m512i
542 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
543 _mm512_mullo_epi32 (__m512i __A
, __m512i __B
)
545 return (__m512i
) ((__v16su
) __A
* (__v16su
) __B
);
548 extern __inline __m512i
549 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
550 _mm512_maskz_mullo_epi32 (__mmask16 __M
, __m512i __A
, __m512i __B
)
552 return (__m512i
) __builtin_ia32_pmulld512_mask ((__v16si
) __A
,
555 _mm512_setzero_si512 (),
559 extern __inline __m512i
560 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
561 _mm512_mask_mullo_epi32 (__m512i __W
, __mmask16 __M
, __m512i __A
, __m512i __B
)
563 return (__m512i
) __builtin_ia32_pmulld512_mask ((__v16si
) __A
,
568 extern __inline __m512i
569 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
570 _mm512_sllv_epi32 (__m512i __X
, __m512i __Y
)
572 return (__m512i
) __builtin_ia32_psllv16si_mask ((__v16si
) __X
,
575 _mm512_undefined_epi32 (),
579 extern __inline __m512i
580 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
581 _mm512_mask_sllv_epi32 (__m512i __W
, __mmask16 __U
, __m512i __X
, __m512i __Y
)
583 return (__m512i
) __builtin_ia32_psllv16si_mask ((__v16si
) __X
,
589 extern __inline __m512i
590 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
591 _mm512_maskz_sllv_epi32 (__mmask16 __U
, __m512i __X
, __m512i __Y
)
593 return (__m512i
) __builtin_ia32_psllv16si_mask ((__v16si
) __X
,
596 _mm512_setzero_si512 (),
600 extern __inline __m512i
601 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
602 _mm512_srav_epi32 (__m512i __X
, __m512i __Y
)
604 return (__m512i
) __builtin_ia32_psrav16si_mask ((__v16si
) __X
,
607 _mm512_undefined_epi32 (),
611 extern __inline __m512i
612 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
613 _mm512_mask_srav_epi32 (__m512i __W
, __mmask16 __U
, __m512i __X
, __m512i __Y
)
615 return (__m512i
) __builtin_ia32_psrav16si_mask ((__v16si
) __X
,
621 extern __inline __m512i
622 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
623 _mm512_maskz_srav_epi32 (__mmask16 __U
, __m512i __X
, __m512i __Y
)
625 return (__m512i
) __builtin_ia32_psrav16si_mask ((__v16si
) __X
,
628 _mm512_setzero_si512 (),
632 extern __inline __m512i
633 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
634 _mm512_srlv_epi32 (__m512i __X
, __m512i __Y
)
636 return (__m512i
) __builtin_ia32_psrlv16si_mask ((__v16si
) __X
,
639 _mm512_undefined_epi32 (),
643 extern __inline __m512i
644 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
645 _mm512_mask_srlv_epi32 (__m512i __W
, __mmask16 __U
, __m512i __X
, __m512i __Y
)
647 return (__m512i
) __builtin_ia32_psrlv16si_mask ((__v16si
) __X
,
653 extern __inline __m512i
654 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
655 _mm512_maskz_srlv_epi32 (__mmask16 __U
, __m512i __X
, __m512i __Y
)
657 return (__m512i
) __builtin_ia32_psrlv16si_mask ((__v16si
) __X
,
660 _mm512_setzero_si512 (),
664 extern __inline __m512i
665 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
666 _mm512_add_epi64 (__m512i __A
, __m512i __B
)
668 return (__m512i
) ((__v8du
) __A
+ (__v8du
) __B
);
671 extern __inline __m512i
672 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
673 _mm512_mask_add_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
675 return (__m512i
) __builtin_ia32_paddq512_mask ((__v8di
) __A
,
681 extern __inline __m512i
682 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
683 _mm512_maskz_add_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
685 return (__m512i
) __builtin_ia32_paddq512_mask ((__v8di
) __A
,
688 _mm512_setzero_si512 (),
692 extern __inline __m512i
693 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
694 _mm512_sub_epi64 (__m512i __A
, __m512i __B
)
696 return (__m512i
) ((__v8du
) __A
- (__v8du
) __B
);
699 extern __inline __m512i
700 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
701 _mm512_mask_sub_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
703 return (__m512i
) __builtin_ia32_psubq512_mask ((__v8di
) __A
,
709 extern __inline __m512i
710 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
711 _mm512_maskz_sub_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
713 return (__m512i
) __builtin_ia32_psubq512_mask ((__v8di
) __A
,
716 _mm512_setzero_si512 (),
720 extern __inline __m512i
721 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
722 _mm512_sllv_epi64 (__m512i __X
, __m512i __Y
)
724 return (__m512i
) __builtin_ia32_psllv8di_mask ((__v8di
) __X
,
727 _mm512_undefined_pd (),
731 extern __inline __m512i
732 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
733 _mm512_mask_sllv_epi64 (__m512i __W
, __mmask8 __U
, __m512i __X
, __m512i __Y
)
735 return (__m512i
) __builtin_ia32_psllv8di_mask ((__v8di
) __X
,
741 extern __inline __m512i
742 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
743 _mm512_maskz_sllv_epi64 (__mmask8 __U
, __m512i __X
, __m512i __Y
)
745 return (__m512i
) __builtin_ia32_psllv8di_mask ((__v8di
) __X
,
748 _mm512_setzero_si512 (),
752 extern __inline __m512i
753 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
754 _mm512_srav_epi64 (__m512i __X
, __m512i __Y
)
756 return (__m512i
) __builtin_ia32_psrav8di_mask ((__v8di
) __X
,
759 _mm512_undefined_epi32 (),
763 extern __inline __m512i
764 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
765 _mm512_mask_srav_epi64 (__m512i __W
, __mmask8 __U
, __m512i __X
, __m512i __Y
)
767 return (__m512i
) __builtin_ia32_psrav8di_mask ((__v8di
) __X
,
773 extern __inline __m512i
774 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
775 _mm512_maskz_srav_epi64 (__mmask8 __U
, __m512i __X
, __m512i __Y
)
777 return (__m512i
) __builtin_ia32_psrav8di_mask ((__v8di
) __X
,
780 _mm512_setzero_si512 (),
784 extern __inline __m512i
785 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
786 _mm512_srlv_epi64 (__m512i __X
, __m512i __Y
)
788 return (__m512i
) __builtin_ia32_psrlv8di_mask ((__v8di
) __X
,
791 _mm512_undefined_epi32 (),
795 extern __inline __m512i
796 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
797 _mm512_mask_srlv_epi64 (__m512i __W
, __mmask8 __U
, __m512i __X
, __m512i __Y
)
799 return (__m512i
) __builtin_ia32_psrlv8di_mask ((__v8di
) __X
,
805 extern __inline __m512i
806 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
807 _mm512_maskz_srlv_epi64 (__mmask8 __U
, __m512i __X
, __m512i __Y
)
809 return (__m512i
) __builtin_ia32_psrlv8di_mask ((__v8di
) __X
,
812 _mm512_setzero_si512 (),
816 extern __inline __m512i
817 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
818 _mm512_add_epi32 (__m512i __A
, __m512i __B
)
820 return (__m512i
) ((__v16su
) __A
+ (__v16su
) __B
);
823 extern __inline __m512i
824 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
825 _mm512_mask_add_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
827 return (__m512i
) __builtin_ia32_paddd512_mask ((__v16si
) __A
,
833 extern __inline __m512i
834 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
835 _mm512_maskz_add_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
837 return (__m512i
) __builtin_ia32_paddd512_mask ((__v16si
) __A
,
840 _mm512_setzero_si512 (),
844 extern __inline __m512i
845 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
846 _mm512_mul_epi32 (__m512i __X
, __m512i __Y
)
848 return (__m512i
) __builtin_ia32_pmuldq512_mask ((__v16si
) __X
,
851 _mm512_undefined_epi32 (),
855 extern __inline __m512i
856 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
857 _mm512_mask_mul_epi32 (__m512i __W
, __mmask8 __M
, __m512i __X
, __m512i __Y
)
859 return (__m512i
) __builtin_ia32_pmuldq512_mask ((__v16si
) __X
,
864 extern __inline __m512i
865 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
866 _mm512_maskz_mul_epi32 (__mmask8 __M
, __m512i __X
, __m512i __Y
)
868 return (__m512i
) __builtin_ia32_pmuldq512_mask ((__v16si
) __X
,
871 _mm512_setzero_si512 (),
875 extern __inline __m512i
876 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
877 _mm512_sub_epi32 (__m512i __A
, __m512i __B
)
879 return (__m512i
) ((__v16su
) __A
- (__v16su
) __B
);
882 extern __inline __m512i
883 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
884 _mm512_mask_sub_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
886 return (__m512i
) __builtin_ia32_psubd512_mask ((__v16si
) __A
,
892 extern __inline __m512i
893 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
894 _mm512_maskz_sub_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
896 return (__m512i
) __builtin_ia32_psubd512_mask ((__v16si
) __A
,
899 _mm512_setzero_si512 (),
903 extern __inline __m512i
904 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
905 _mm512_mul_epu32 (__m512i __X
, __m512i __Y
)
907 return (__m512i
) __builtin_ia32_pmuludq512_mask ((__v16si
) __X
,
910 _mm512_undefined_epi32 (),
914 extern __inline __m512i
915 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
916 _mm512_mask_mul_epu32 (__m512i __W
, __mmask8 __M
, __m512i __X
, __m512i __Y
)
918 return (__m512i
) __builtin_ia32_pmuludq512_mask ((__v16si
) __X
,
923 extern __inline __m512i
924 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
925 _mm512_maskz_mul_epu32 (__mmask8 __M
, __m512i __X
, __m512i __Y
)
927 return (__m512i
) __builtin_ia32_pmuludq512_mask ((__v16si
) __X
,
930 _mm512_setzero_si512 (),
935 extern __inline __m512i
936 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
937 _mm512_slli_epi64 (__m512i __A
, unsigned int __B
)
939 return (__m512i
) __builtin_ia32_psllqi512_mask ((__v8di
) __A
, __B
,
941 _mm512_undefined_epi32 (),
945 extern __inline __m512i
946 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
947 _mm512_mask_slli_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
,
950 return (__m512i
) __builtin_ia32_psllqi512_mask ((__v8di
) __A
, __B
,
955 extern __inline __m512i
956 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
957 _mm512_maskz_slli_epi64 (__mmask8 __U
, __m512i __A
, unsigned int __B
)
959 return (__m512i
) __builtin_ia32_psllqi512_mask ((__v8di
) __A
, __B
,
961 _mm512_setzero_si512 (),
965 #define _mm512_slli_epi64(X, C) \
966 ((__m512i) __builtin_ia32_psllqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
967 (__v8di)(__m512i)_mm512_undefined_epi32 (),\
970 #define _mm512_mask_slli_epi64(W, U, X, C) \
971 ((__m512i) __builtin_ia32_psllqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
972 (__v8di)(__m512i)(W),\
975 #define _mm512_maskz_slli_epi64(U, X, C) \
976 ((__m512i) __builtin_ia32_psllqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
977 (__v8di)(__m512i)_mm512_setzero_si512 (),\
981 extern __inline __m512i
982 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
983 _mm512_sll_epi64 (__m512i __A
, __m128i __B
)
985 return (__m512i
) __builtin_ia32_psllq512_mask ((__v8di
) __A
,
988 _mm512_undefined_epi32 (),
992 extern __inline __m512i
993 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
994 _mm512_mask_sll_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m128i __B
)
996 return (__m512i
) __builtin_ia32_psllq512_mask ((__v8di
) __A
,
1002 extern __inline __m512i
1003 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1004 _mm512_maskz_sll_epi64 (__mmask8 __U
, __m512i __A
, __m128i __B
)
1006 return (__m512i
) __builtin_ia32_psllq512_mask ((__v8di
) __A
,
1009 _mm512_setzero_si512 (),
1014 extern __inline __m512i
1015 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1016 _mm512_srli_epi64 (__m512i __A
, unsigned int __B
)
1018 return (__m512i
) __builtin_ia32_psrlqi512_mask ((__v8di
) __A
, __B
,
1020 _mm512_undefined_epi32 (),
1024 extern __inline __m512i
1025 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1026 _mm512_mask_srli_epi64 (__m512i __W
, __mmask8 __U
,
1027 __m512i __A
, unsigned int __B
)
1029 return (__m512i
) __builtin_ia32_psrlqi512_mask ((__v8di
) __A
, __B
,
1034 extern __inline __m512i
1035 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1036 _mm512_maskz_srli_epi64 (__mmask8 __U
, __m512i __A
, unsigned int __B
)
1038 return (__m512i
) __builtin_ia32_psrlqi512_mask ((__v8di
) __A
, __B
,
1040 _mm512_setzero_si512 (),
1044 #define _mm512_srli_epi64(X, C) \
1045 ((__m512i) __builtin_ia32_psrlqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1046 (__v8di)(__m512i)_mm512_undefined_epi32 (),\
1049 #define _mm512_mask_srli_epi64(W, U, X, C) \
1050 ((__m512i) __builtin_ia32_psrlqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1051 (__v8di)(__m512i)(W),\
1054 #define _mm512_maskz_srli_epi64(U, X, C) \
1055 ((__m512i) __builtin_ia32_psrlqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1056 (__v8di)(__m512i)_mm512_setzero_si512 (),\
1060 extern __inline __m512i
1061 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1062 _mm512_srl_epi64 (__m512i __A
, __m128i __B
)
1064 return (__m512i
) __builtin_ia32_psrlq512_mask ((__v8di
) __A
,
1067 _mm512_undefined_epi32 (),
1071 extern __inline __m512i
1072 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1073 _mm512_mask_srl_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m128i __B
)
1075 return (__m512i
) __builtin_ia32_psrlq512_mask ((__v8di
) __A
,
1081 extern __inline __m512i
1082 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1083 _mm512_maskz_srl_epi64 (__mmask8 __U
, __m512i __A
, __m128i __B
)
1085 return (__m512i
) __builtin_ia32_psrlq512_mask ((__v8di
) __A
,
1088 _mm512_setzero_si512 (),
1093 extern __inline __m512i
1094 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1095 _mm512_srai_epi64 (__m512i __A
, unsigned int __B
)
1097 return (__m512i
) __builtin_ia32_psraqi512_mask ((__v8di
) __A
, __B
,
1099 _mm512_undefined_epi32 (),
1103 extern __inline __m512i
1104 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1105 _mm512_mask_srai_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
,
1108 return (__m512i
) __builtin_ia32_psraqi512_mask ((__v8di
) __A
, __B
,
1113 extern __inline __m512i
1114 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1115 _mm512_maskz_srai_epi64 (__mmask8 __U
, __m512i __A
, unsigned int __B
)
1117 return (__m512i
) __builtin_ia32_psraqi512_mask ((__v8di
) __A
, __B
,
1119 _mm512_setzero_si512 (),
1123 #define _mm512_srai_epi64(X, C) \
1124 ((__m512i) __builtin_ia32_psraqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1125 (__v8di)(__m512i)_mm512_undefined_epi32 (),\
1128 #define _mm512_mask_srai_epi64(W, U, X, C) \
1129 ((__m512i) __builtin_ia32_psraqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1130 (__v8di)(__m512i)(W),\
1133 #define _mm512_maskz_srai_epi64(U, X, C) \
1134 ((__m512i) __builtin_ia32_psraqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1135 (__v8di)(__m512i)_mm512_setzero_si512 (),\
1139 extern __inline __m512i
1140 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1141 _mm512_sra_epi64 (__m512i __A
, __m128i __B
)
1143 return (__m512i
) __builtin_ia32_psraq512_mask ((__v8di
) __A
,
1146 _mm512_undefined_epi32 (),
1150 extern __inline __m512i
1151 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1152 _mm512_mask_sra_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m128i __B
)
1154 return (__m512i
) __builtin_ia32_psraq512_mask ((__v8di
) __A
,
1160 extern __inline __m512i
1161 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1162 _mm512_maskz_sra_epi64 (__mmask8 __U
, __m512i __A
, __m128i __B
)
1164 return (__m512i
) __builtin_ia32_psraq512_mask ((__v8di
) __A
,
1167 _mm512_setzero_si512 (),
1172 extern __inline __m512i
1173 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1174 _mm512_slli_epi32 (__m512i __A
, unsigned int __B
)
1176 return (__m512i
) __builtin_ia32_pslldi512_mask ((__v16si
) __A
, __B
,
1178 _mm512_undefined_epi32 (),
1182 extern __inline __m512i
1183 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1184 _mm512_mask_slli_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
,
1187 return (__m512i
) __builtin_ia32_pslldi512_mask ((__v16si
) __A
, __B
,
1192 extern __inline __m512i
1193 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1194 _mm512_maskz_slli_epi32 (__mmask16 __U
, __m512i __A
, unsigned int __B
)
1196 return (__m512i
) __builtin_ia32_pslldi512_mask ((__v16si
) __A
, __B
,
1198 _mm512_setzero_si512 (),
1202 #define _mm512_slli_epi32(X, C) \
1203 ((__m512i) __builtin_ia32_pslldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1204 (__v16si)(__m512i)_mm512_undefined_epi32 (),\
1207 #define _mm512_mask_slli_epi32(W, U, X, C) \
1208 ((__m512i) __builtin_ia32_pslldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1209 (__v16si)(__m512i)(W),\
1212 #define _mm512_maskz_slli_epi32(U, X, C) \
1213 ((__m512i) __builtin_ia32_pslldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1214 (__v16si)(__m512i)_mm512_setzero_si512 (),\
1218 extern __inline __m512i
1219 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1220 _mm512_sll_epi32 (__m512i __A
, __m128i __B
)
1222 return (__m512i
) __builtin_ia32_pslld512_mask ((__v16si
) __A
,
1225 _mm512_undefined_epi32 (),
1229 extern __inline __m512i
1230 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1231 _mm512_mask_sll_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m128i __B
)
1233 return (__m512i
) __builtin_ia32_pslld512_mask ((__v16si
) __A
,
1239 extern __inline __m512i
1240 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1241 _mm512_maskz_sll_epi32 (__mmask16 __U
, __m512i __A
, __m128i __B
)
1243 return (__m512i
) __builtin_ia32_pslld512_mask ((__v16si
) __A
,
1246 _mm512_setzero_si512 (),
1251 extern __inline __m512i
1252 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1253 _mm512_srli_epi32 (__m512i __A
, unsigned int __B
)
1255 return (__m512i
) __builtin_ia32_psrldi512_mask ((__v16si
) __A
, __B
,
1257 _mm512_undefined_epi32 (),
1261 extern __inline __m512i
1262 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1263 _mm512_mask_srli_epi32 (__m512i __W
, __mmask16 __U
,
1264 __m512i __A
, unsigned int __B
)
1266 return (__m512i
) __builtin_ia32_psrldi512_mask ((__v16si
) __A
, __B
,
1271 extern __inline __m512i
1272 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1273 _mm512_maskz_srli_epi32 (__mmask16 __U
, __m512i __A
, unsigned int __B
)
1275 return (__m512i
) __builtin_ia32_psrldi512_mask ((__v16si
) __A
, __B
,
1277 _mm512_setzero_si512 (),
1281 #define _mm512_srli_epi32(X, C) \
1282 ((__m512i) __builtin_ia32_psrldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1283 (__v16si)(__m512i)_mm512_undefined_epi32 (),\
1286 #define _mm512_mask_srli_epi32(W, U, X, C) \
1287 ((__m512i) __builtin_ia32_psrldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1288 (__v16si)(__m512i)(W),\
1291 #define _mm512_maskz_srli_epi32(U, X, C) \
1292 ((__m512i) __builtin_ia32_psrldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1293 (__v16si)(__m512i)_mm512_setzero_si512 (),\
1297 extern __inline __m512i
1298 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1299 _mm512_srl_epi32 (__m512i __A
, __m128i __B
)
1301 return (__m512i
) __builtin_ia32_psrld512_mask ((__v16si
) __A
,
1304 _mm512_undefined_epi32 (),
1308 extern __inline __m512i
1309 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1310 _mm512_mask_srl_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m128i __B
)
1312 return (__m512i
) __builtin_ia32_psrld512_mask ((__v16si
) __A
,
1318 extern __inline __m512i
1319 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1320 _mm512_maskz_srl_epi32 (__mmask16 __U
, __m512i __A
, __m128i __B
)
1322 return (__m512i
) __builtin_ia32_psrld512_mask ((__v16si
) __A
,
1325 _mm512_setzero_si512 (),
1330 extern __inline __m512i
1331 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1332 _mm512_srai_epi32 (__m512i __A
, unsigned int __B
)
1334 return (__m512i
) __builtin_ia32_psradi512_mask ((__v16si
) __A
, __B
,
1336 _mm512_undefined_epi32 (),
1340 extern __inline __m512i
1341 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1342 _mm512_mask_srai_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
,
1345 return (__m512i
) __builtin_ia32_psradi512_mask ((__v16si
) __A
, __B
,
1350 extern __inline __m512i
1351 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1352 _mm512_maskz_srai_epi32 (__mmask16 __U
, __m512i __A
, unsigned int __B
)
1354 return (__m512i
) __builtin_ia32_psradi512_mask ((__v16si
) __A
, __B
,
1356 _mm512_setzero_si512 (),
1360 #define _mm512_srai_epi32(X, C) \
1361 ((__m512i) __builtin_ia32_psradi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1362 (__v16si)(__m512i)_mm512_undefined_epi32 (),\
1365 #define _mm512_mask_srai_epi32(W, U, X, C) \
1366 ((__m512i) __builtin_ia32_psradi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1367 (__v16si)(__m512i)(W),\
1370 #define _mm512_maskz_srai_epi32(U, X, C) \
1371 ((__m512i) __builtin_ia32_psradi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1372 (__v16si)(__m512i)_mm512_setzero_si512 (),\
1376 extern __inline __m512i
1377 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1378 _mm512_sra_epi32 (__m512i __A
, __m128i __B
)
1380 return (__m512i
) __builtin_ia32_psrad512_mask ((__v16si
) __A
,
1383 _mm512_undefined_epi32 (),
1387 extern __inline __m512i
1388 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1389 _mm512_mask_sra_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m128i __B
)
1391 return (__m512i
) __builtin_ia32_psrad512_mask ((__v16si
) __A
,
1397 extern __inline __m512i
1398 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1399 _mm512_maskz_sra_epi32 (__mmask16 __U
, __m512i __A
, __m128i __B
)
1401 return (__m512i
) __builtin_ia32_psrad512_mask ((__v16si
) __A
,
1404 _mm512_setzero_si512 (),
1409 extern __inline __m128d
1410 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1411 _mm_add_round_sd (__m128d __A
, __m128d __B
, const int __R
)
1413 return (__m128d
) __builtin_ia32_addsd_round ((__v2df
) __A
,
1418 extern __inline __m128d
1419 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1420 _mm_mask_add_round_sd (__m128d __W
, __mmask8 __U
, __m128d __A
,
1421 __m128d __B
, const int __R
)
1423 return (__m128d
) __builtin_ia32_addsd_mask_round ((__v2df
) __A
,
1426 (__mmask8
) __U
, __R
);
1429 extern __inline __m128d
1430 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1431 _mm_maskz_add_round_sd (__mmask8 __U
, __m128d __A
, __m128d __B
,
1434 return (__m128d
) __builtin_ia32_addsd_mask_round ((__v2df
) __A
,
1438 (__mmask8
) __U
, __R
);
1441 extern __inline __m128
1442 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1443 _mm_add_round_ss (__m128 __A
, __m128 __B
, const int __R
)
1445 return (__m128
) __builtin_ia32_addss_round ((__v4sf
) __A
,
1450 extern __inline __m128
1451 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1452 _mm_mask_add_round_ss (__m128 __W
, __mmask8 __U
, __m128 __A
,
1453 __m128 __B
, const int __R
)
1455 return (__m128
) __builtin_ia32_addss_mask_round ((__v4sf
) __A
,
1458 (__mmask8
) __U
, __R
);
1461 extern __inline __m128
1462 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1463 _mm_maskz_add_round_ss (__mmask8 __U
, __m128 __A
, __m128 __B
,
1466 return (__m128
) __builtin_ia32_addss_mask_round ((__v4sf
) __A
,
1470 (__mmask8
) __U
, __R
);
1473 extern __inline __m128d
1474 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1475 _mm_sub_round_sd (__m128d __A
, __m128d __B
, const int __R
)
1477 return (__m128d
) __builtin_ia32_subsd_round ((__v2df
) __A
,
1482 extern __inline __m128d
1483 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1484 _mm_mask_sub_round_sd (__m128d __W
, __mmask8 __U
, __m128d __A
,
1485 __m128d __B
, const int __R
)
1487 return (__m128d
) __builtin_ia32_subsd_mask_round ((__v2df
) __A
,
1490 (__mmask8
) __U
, __R
);
1493 extern __inline __m128d
1494 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1495 _mm_maskz_sub_round_sd (__mmask8 __U
, __m128d __A
, __m128d __B
,
1498 return (__m128d
) __builtin_ia32_subsd_mask_round ((__v2df
) __A
,
1502 (__mmask8
) __U
, __R
);
1505 extern __inline __m128
1506 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1507 _mm_sub_round_ss (__m128 __A
, __m128 __B
, const int __R
)
1509 return (__m128
) __builtin_ia32_subss_round ((__v4sf
) __A
,
1514 extern __inline __m128
1515 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1516 _mm_mask_sub_round_ss (__m128 __W
, __mmask8 __U
, __m128 __A
,
1517 __m128 __B
, const int __R
)
1519 return (__m128
) __builtin_ia32_subss_mask_round ((__v4sf
) __A
,
1522 (__mmask8
) __U
, __R
);
1525 extern __inline __m128
1526 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1527 _mm_maskz_sub_round_ss (__mmask8 __U
, __m128 __A
, __m128 __B
,
1530 return (__m128
) __builtin_ia32_subss_mask_round ((__v4sf
) __A
,
1534 (__mmask8
) __U
, __R
);
1538 #define _mm_add_round_sd(A, B, C) \
1539 (__m128d)__builtin_ia32_addsd_round(A, B, C)
1541 #define _mm_mask_add_round_sd(W, U, A, B, C) \
1542 (__m128d)__builtin_ia32_addsd_mask_round(A, B, W, U, C)
1544 #define _mm_maskz_add_round_sd(U, A, B, C) \
1545 (__m128d)__builtin_ia32_addsd_mask_round(A, B, (__v2df)_mm_setzero_pd(), U, C)
1547 #define _mm_add_round_ss(A, B, C) \
1548 (__m128)__builtin_ia32_addss_round(A, B, C)
1550 #define _mm_mask_add_round_ss(W, U, A, B, C) \
1551 (__m128)__builtin_ia32_addss_mask_round(A, B, W, U, C)
1553 #define _mm_maskz_add_round_ss(U, A, B, C) \
1554 (__m128)__builtin_ia32_addss_mask_round(A, B, (__v4sf)_mm_setzero_ps(), U, C)
1556 #define _mm_sub_round_sd(A, B, C) \
1557 (__m128d)__builtin_ia32_subsd_round(A, B, C)
1559 #define _mm_mask_sub_round_sd(W, U, A, B, C) \
1560 (__m128d)__builtin_ia32_subsd_mask_round(A, B, W, U, C)
1562 #define _mm_maskz_sub_round_sd(U, A, B, C) \
1563 (__m128d)__builtin_ia32_subsd_mask_round(A, B, (__v2df)_mm_setzero_pd(), U, C)
1565 #define _mm_sub_round_ss(A, B, C) \
1566 (__m128)__builtin_ia32_subss_round(A, B, C)
1568 #define _mm_mask_sub_round_ss(W, U, A, B, C) \
1569 (__m128)__builtin_ia32_subss_mask_round(A, B, W, U, C)
1571 #define _mm_maskz_sub_round_ss(U, A, B, C) \
1572 (__m128)__builtin_ia32_subss_mask_round(A, B, (__v4sf)_mm_setzero_ps(), U, C)
1577 extern __inline __m512i
1578 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1579 _mm512_ternarylogic_epi64 (__m512i __A
, __m512i __B
, __m512i __C
,
1582 return (__m512i
) __builtin_ia32_pternlogq512_mask ((__v8di
) __A
,
1584 (__v8di
) __C
, __imm
,
1588 extern __inline __m512i
1589 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1590 _mm512_mask_ternarylogic_epi64 (__m512i __A
, __mmask8 __U
, __m512i __B
,
1591 __m512i __C
, const int __imm
)
1593 return (__m512i
) __builtin_ia32_pternlogq512_mask ((__v8di
) __A
,
1595 (__v8di
) __C
, __imm
,
1599 extern __inline __m512i
1600 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1601 _mm512_maskz_ternarylogic_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
,
1602 __m512i __C
, const int __imm
)
1604 return (__m512i
) __builtin_ia32_pternlogq512_maskz ((__v8di
) __A
,
1607 __imm
, (__mmask8
) __U
);
1610 extern __inline __m512i
1611 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1612 _mm512_ternarylogic_epi32 (__m512i __A
, __m512i __B
, __m512i __C
,
1615 return (__m512i
) __builtin_ia32_pternlogd512_mask ((__v16si
) __A
,
1618 __imm
, (__mmask16
) -1);
1621 extern __inline __m512i
1622 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1623 _mm512_mask_ternarylogic_epi32 (__m512i __A
, __mmask16 __U
, __m512i __B
,
1624 __m512i __C
, const int __imm
)
1626 return (__m512i
) __builtin_ia32_pternlogd512_mask ((__v16si
) __A
,
1629 __imm
, (__mmask16
) __U
);
1632 extern __inline __m512i
1633 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1634 _mm512_maskz_ternarylogic_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
,
1635 __m512i __C
, const int __imm
)
1637 return (__m512i
) __builtin_ia32_pternlogd512_maskz ((__v16si
) __A
,
1640 __imm
, (__mmask16
) __U
);
1643 #define _mm512_ternarylogic_epi64(A, B, C, I) \
1644 ((__m512i) __builtin_ia32_pternlogq512_mask ((__v8di)(__m512i)(A), \
1645 (__v8di)(__m512i)(B), (__v8di)(__m512i)(C), (int)(I), (__mmask8)-1))
1646 #define _mm512_mask_ternarylogic_epi64(A, U, B, C, I) \
1647 ((__m512i) __builtin_ia32_pternlogq512_mask ((__v8di)(__m512i)(A), \
1648 (__v8di)(__m512i)(B), (__v8di)(__m512i)(C), (int)(I), (__mmask8)(U)))
1649 #define _mm512_maskz_ternarylogic_epi64(U, A, B, C, I) \
1650 ((__m512i) __builtin_ia32_pternlogq512_maskz ((__v8di)(__m512i)(A), \
1651 (__v8di)(__m512i)(B), (__v8di)(__m512i)(C), (int)(I), (__mmask8)(U)))
1652 #define _mm512_ternarylogic_epi32(A, B, C, I) \
1653 ((__m512i) __builtin_ia32_pternlogd512_mask ((__v16si)(__m512i)(A), \
1654 (__v16si)(__m512i)(B), (__v16si)(__m512i)(C), (int)(I), \
1656 #define _mm512_mask_ternarylogic_epi32(A, U, B, C, I) \
1657 ((__m512i) __builtin_ia32_pternlogd512_mask ((__v16si)(__m512i)(A), \
1658 (__v16si)(__m512i)(B), (__v16si)(__m512i)(C), (int)(I), \
1660 #define _mm512_maskz_ternarylogic_epi32(U, A, B, C, I) \
1661 ((__m512i) __builtin_ia32_pternlogd512_maskz ((__v16si)(__m512i)(A), \
1662 (__v16si)(__m512i)(B), (__v16si)(__m512i)(C), (int)(I), \
1666 extern __inline __m512d
1667 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1668 _mm512_rcp14_pd (__m512d __A
)
1670 return (__m512d
) __builtin_ia32_rcp14pd512_mask ((__v8df
) __A
,
1672 _mm512_undefined_pd (),
1676 extern __inline __m512d
1677 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1678 _mm512_mask_rcp14_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
1680 return (__m512d
) __builtin_ia32_rcp14pd512_mask ((__v8df
) __A
,
1685 extern __inline __m512d
1686 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1687 _mm512_maskz_rcp14_pd (__mmask8 __U
, __m512d __A
)
1689 return (__m512d
) __builtin_ia32_rcp14pd512_mask ((__v8df
) __A
,
1691 _mm512_setzero_pd (),
1695 extern __inline __m512
1696 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1697 _mm512_rcp14_ps (__m512 __A
)
1699 return (__m512
) __builtin_ia32_rcp14ps512_mask ((__v16sf
) __A
,
1701 _mm512_undefined_ps (),
1705 extern __inline __m512
1706 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1707 _mm512_mask_rcp14_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
1709 return (__m512
) __builtin_ia32_rcp14ps512_mask ((__v16sf
) __A
,
1714 extern __inline __m512
1715 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1716 _mm512_maskz_rcp14_ps (__mmask16 __U
, __m512 __A
)
1718 return (__m512
) __builtin_ia32_rcp14ps512_mask ((__v16sf
) __A
,
1720 _mm512_setzero_ps (),
1724 extern __inline __m128d
1725 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1726 _mm_rcp14_sd (__m128d __A
, __m128d __B
)
1728 return (__m128d
) __builtin_ia32_rcp14sd ((__v2df
) __B
,
1732 extern __inline __m128d
1733 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1734 _mm_mask_rcp14_sd (__m128d __W
, __mmask8 __U
, __m128d __A
, __m128d __B
)
1736 return (__m128d
) __builtin_ia32_rcp14sd_mask ((__v2df
) __B
,
1742 extern __inline __m128d
1743 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1744 _mm_maskz_rcp14_sd (__mmask8 __U
, __m128d __A
, __m128d __B
)
1746 return (__m128d
) __builtin_ia32_rcp14sd_mask ((__v2df
) __B
,
1748 (__v2df
) _mm_setzero_ps (),
1752 extern __inline __m128
1753 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1754 _mm_rcp14_ss (__m128 __A
, __m128 __B
)
1756 return (__m128
) __builtin_ia32_rcp14ss ((__v4sf
) __B
,
1760 extern __inline __m128
1761 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1762 _mm_mask_rcp14_ss (__m128 __W
, __mmask8 __U
, __m128 __A
, __m128 __B
)
1764 return (__m128
) __builtin_ia32_rcp14ss_mask ((__v4sf
) __B
,
1770 extern __inline __m128
1771 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1772 _mm_maskz_rcp14_ss (__mmask8 __U
, __m128 __A
, __m128 __B
)
1774 return (__m128
) __builtin_ia32_rcp14ss_mask ((__v4sf
) __B
,
1776 (__v4sf
) _mm_setzero_ps (),
1780 extern __inline __m512d
1781 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1782 _mm512_rsqrt14_pd (__m512d __A
)
1784 return (__m512d
) __builtin_ia32_rsqrt14pd512_mask ((__v8df
) __A
,
1786 _mm512_undefined_pd (),
1790 extern __inline __m512d
1791 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1792 _mm512_mask_rsqrt14_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
1794 return (__m512d
) __builtin_ia32_rsqrt14pd512_mask ((__v8df
) __A
,
1799 extern __inline __m512d
1800 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1801 _mm512_maskz_rsqrt14_pd (__mmask8 __U
, __m512d __A
)
1803 return (__m512d
) __builtin_ia32_rsqrt14pd512_mask ((__v8df
) __A
,
1805 _mm512_setzero_pd (),
1809 extern __inline __m512
1810 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1811 _mm512_rsqrt14_ps (__m512 __A
)
1813 return (__m512
) __builtin_ia32_rsqrt14ps512_mask ((__v16sf
) __A
,
1815 _mm512_undefined_ps (),
1819 extern __inline __m512
1820 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1821 _mm512_mask_rsqrt14_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
1823 return (__m512
) __builtin_ia32_rsqrt14ps512_mask ((__v16sf
) __A
,
1828 extern __inline __m512
1829 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1830 _mm512_maskz_rsqrt14_ps (__mmask16 __U
, __m512 __A
)
1832 return (__m512
) __builtin_ia32_rsqrt14ps512_mask ((__v16sf
) __A
,
1834 _mm512_setzero_ps (),
1838 extern __inline __m128d
1839 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1840 _mm_rsqrt14_sd (__m128d __A
, __m128d __B
)
1842 return (__m128d
) __builtin_ia32_rsqrt14sd ((__v2df
) __B
,
1846 extern __inline __m128d
1847 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1848 _mm_mask_rsqrt14_sd (__m128d __W
, __mmask8 __U
, __m128d __A
, __m128d __B
)
1850 return (__m128d
) __builtin_ia32_rsqrt14sd_mask ((__v2df
) __B
,
1856 extern __inline __m128d
1857 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1858 _mm_maskz_rsqrt14_sd (__mmask8 __U
, __m128d __A
, __m128d __B
)
1860 return (__m128d
) __builtin_ia32_rsqrt14sd_mask ((__v2df
) __B
,
1862 (__v2df
) _mm_setzero_pd (),
1866 extern __inline __m128
1867 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1868 _mm_rsqrt14_ss (__m128 __A
, __m128 __B
)
1870 return (__m128
) __builtin_ia32_rsqrt14ss ((__v4sf
) __B
,
1874 extern __inline __m128
1875 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1876 _mm_mask_rsqrt14_ss (__m128 __W
, __mmask8 __U
, __m128 __A
, __m128 __B
)
1878 return (__m128
) __builtin_ia32_rsqrt14ss_mask ((__v4sf
) __B
,
1884 extern __inline __m128
1885 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1886 _mm_maskz_rsqrt14_ss (__mmask8 __U
, __m128 __A
, __m128 __B
)
1888 return (__m128
) __builtin_ia32_rsqrt14ss_mask ((__v4sf
) __B
,
1890 (__v4sf
) _mm_setzero_ps (),
1895 extern __inline __m512d
1896 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1897 _mm512_sqrt_round_pd (__m512d __A
, const int __R
)
1899 return (__m512d
) __builtin_ia32_sqrtpd512_mask ((__v8df
) __A
,
1901 _mm512_undefined_pd (),
1902 (__mmask8
) -1, __R
);
1905 extern __inline __m512d
1906 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1907 _mm512_mask_sqrt_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
1910 return (__m512d
) __builtin_ia32_sqrtpd512_mask ((__v8df
) __A
,
1912 (__mmask8
) __U
, __R
);
1915 extern __inline __m512d
1916 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1917 _mm512_maskz_sqrt_round_pd (__mmask8 __U
, __m512d __A
, const int __R
)
1919 return (__m512d
) __builtin_ia32_sqrtpd512_mask ((__v8df
) __A
,
1921 _mm512_setzero_pd (),
1922 (__mmask8
) __U
, __R
);
1925 extern __inline __m512
1926 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1927 _mm512_sqrt_round_ps (__m512 __A
, const int __R
)
1929 return (__m512
) __builtin_ia32_sqrtps512_mask ((__v16sf
) __A
,
1931 _mm512_undefined_ps (),
1932 (__mmask16
) -1, __R
);
1935 extern __inline __m512
1936 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1937 _mm512_mask_sqrt_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, const int __R
)
1939 return (__m512
) __builtin_ia32_sqrtps512_mask ((__v16sf
) __A
,
1941 (__mmask16
) __U
, __R
);
1944 extern __inline __m512
1945 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1946 _mm512_maskz_sqrt_round_ps (__mmask16 __U
, __m512 __A
, const int __R
)
1948 return (__m512
) __builtin_ia32_sqrtps512_mask ((__v16sf
) __A
,
1950 _mm512_setzero_ps (),
1951 (__mmask16
) __U
, __R
);
1954 extern __inline __m128d
1955 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1956 _mm_sqrt_round_sd (__m128d __A
, __m128d __B
, const int __R
)
1958 return (__m128d
) __builtin_ia32_sqrtsd_round ((__v2df
) __B
,
1963 extern __inline __m128
1964 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1965 _mm_sqrt_round_ss (__m128 __A
, __m128 __B
, const int __R
)
1967 return (__m128
) __builtin_ia32_sqrtss_round ((__v4sf
) __B
,
1972 #define _mm512_sqrt_round_pd(A, C) \
1973 (__m512d)__builtin_ia32_sqrtpd512_mask(A, (__v8df)_mm512_undefined_pd(), -1, C)
1975 #define _mm512_mask_sqrt_round_pd(W, U, A, C) \
1976 (__m512d)__builtin_ia32_sqrtpd512_mask(A, W, U, C)
1978 #define _mm512_maskz_sqrt_round_pd(U, A, C) \
1979 (__m512d)__builtin_ia32_sqrtpd512_mask(A, (__v8df)_mm512_setzero_pd(), U, C)
1981 #define _mm512_sqrt_round_ps(A, C) \
1982 (__m512)__builtin_ia32_sqrtps512_mask(A, (__v16sf)_mm512_undefined_ps(), -1, C)
1984 #define _mm512_mask_sqrt_round_ps(W, U, A, C) \
1985 (__m512)__builtin_ia32_sqrtps512_mask(A, W, U, C)
1987 #define _mm512_maskz_sqrt_round_ps(U, A, C) \
1988 (__m512)__builtin_ia32_sqrtps512_mask(A, (__v16sf)_mm512_setzero_ps(), U, C)
1990 #define _mm_sqrt_round_sd(A, B, C) \
1991 (__m128d)__builtin_ia32_sqrtsd_round(A, B, C)
1993 #define _mm_sqrt_round_ss(A, B, C) \
1994 (__m128)__builtin_ia32_sqrtss_round(A, B, C)
1997 extern __inline __m512i
1998 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1999 _mm512_cvtepi8_epi32 (__m128i __A
)
2001 return (__m512i
) __builtin_ia32_pmovsxbd512_mask ((__v16qi
) __A
,
2003 _mm512_undefined_epi32 (),
2007 extern __inline __m512i
2008 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2009 _mm512_mask_cvtepi8_epi32 (__m512i __W
, __mmask16 __U
, __m128i __A
)
2011 return (__m512i
) __builtin_ia32_pmovsxbd512_mask ((__v16qi
) __A
,
2016 extern __inline __m512i
2017 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2018 _mm512_maskz_cvtepi8_epi32 (__mmask16 __U
, __m128i __A
)
2020 return (__m512i
) __builtin_ia32_pmovsxbd512_mask ((__v16qi
) __A
,
2022 _mm512_setzero_si512 (),
2026 extern __inline __m512i
2027 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2028 _mm512_cvtepi8_epi64 (__m128i __A
)
2030 return (__m512i
) __builtin_ia32_pmovsxbq512_mask ((__v16qi
) __A
,
2032 _mm512_undefined_epi32 (),
2036 extern __inline __m512i
2037 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2038 _mm512_mask_cvtepi8_epi64 (__m512i __W
, __mmask8 __U
, __m128i __A
)
2040 return (__m512i
) __builtin_ia32_pmovsxbq512_mask ((__v16qi
) __A
,
2045 extern __inline __m512i
2046 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2047 _mm512_maskz_cvtepi8_epi64 (__mmask8 __U
, __m128i __A
)
2049 return (__m512i
) __builtin_ia32_pmovsxbq512_mask ((__v16qi
) __A
,
2051 _mm512_setzero_si512 (),
2055 extern __inline __m512i
2056 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2057 _mm512_cvtepi16_epi32 (__m256i __A
)
2059 return (__m512i
) __builtin_ia32_pmovsxwd512_mask ((__v16hi
) __A
,
2061 _mm512_undefined_epi32 (),
2065 extern __inline __m512i
2066 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2067 _mm512_mask_cvtepi16_epi32 (__m512i __W
, __mmask16 __U
, __m256i __A
)
2069 return (__m512i
) __builtin_ia32_pmovsxwd512_mask ((__v16hi
) __A
,
2074 extern __inline __m512i
2075 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2076 _mm512_maskz_cvtepi16_epi32 (__mmask16 __U
, __m256i __A
)
2078 return (__m512i
) __builtin_ia32_pmovsxwd512_mask ((__v16hi
) __A
,
2080 _mm512_setzero_si512 (),
2084 extern __inline __m512i
2085 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2086 _mm512_cvtepi16_epi64 (__m128i __A
)
2088 return (__m512i
) __builtin_ia32_pmovsxwq512_mask ((__v8hi
) __A
,
2090 _mm512_undefined_epi32 (),
2094 extern __inline __m512i
2095 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2096 _mm512_mask_cvtepi16_epi64 (__m512i __W
, __mmask8 __U
, __m128i __A
)
2098 return (__m512i
) __builtin_ia32_pmovsxwq512_mask ((__v8hi
) __A
,
2103 extern __inline __m512i
2104 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2105 _mm512_maskz_cvtepi16_epi64 (__mmask8 __U
, __m128i __A
)
2107 return (__m512i
) __builtin_ia32_pmovsxwq512_mask ((__v8hi
) __A
,
2109 _mm512_setzero_si512 (),
2113 extern __inline __m512i
2114 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2115 _mm512_cvtepi32_epi64 (__m256i __X
)
2117 return (__m512i
) __builtin_ia32_pmovsxdq512_mask ((__v8si
) __X
,
2119 _mm512_undefined_epi32 (),
2123 extern __inline __m512i
2124 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2125 _mm512_mask_cvtepi32_epi64 (__m512i __W
, __mmask8 __U
, __m256i __X
)
2127 return (__m512i
) __builtin_ia32_pmovsxdq512_mask ((__v8si
) __X
,
2132 extern __inline __m512i
2133 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2134 _mm512_maskz_cvtepi32_epi64 (__mmask8 __U
, __m256i __X
)
2136 return (__m512i
) __builtin_ia32_pmovsxdq512_mask ((__v8si
) __X
,
2138 _mm512_setzero_si512 (),
2142 extern __inline __m512i
2143 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2144 _mm512_cvtepu8_epi32 (__m128i __A
)
2146 return (__m512i
) __builtin_ia32_pmovzxbd512_mask ((__v16qi
) __A
,
2148 _mm512_undefined_epi32 (),
2152 extern __inline __m512i
2153 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2154 _mm512_mask_cvtepu8_epi32 (__m512i __W
, __mmask16 __U
, __m128i __A
)
2156 return (__m512i
) __builtin_ia32_pmovzxbd512_mask ((__v16qi
) __A
,
2161 extern __inline __m512i
2162 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2163 _mm512_maskz_cvtepu8_epi32 (__mmask16 __U
, __m128i __A
)
2165 return (__m512i
) __builtin_ia32_pmovzxbd512_mask ((__v16qi
) __A
,
2167 _mm512_setzero_si512 (),
2171 extern __inline __m512i
2172 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2173 _mm512_cvtepu8_epi64 (__m128i __A
)
2175 return (__m512i
) __builtin_ia32_pmovzxbq512_mask ((__v16qi
) __A
,
2177 _mm512_undefined_epi32 (),
2181 extern __inline __m512i
2182 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2183 _mm512_mask_cvtepu8_epi64 (__m512i __W
, __mmask8 __U
, __m128i __A
)
2185 return (__m512i
) __builtin_ia32_pmovzxbq512_mask ((__v16qi
) __A
,
2190 extern __inline __m512i
2191 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2192 _mm512_maskz_cvtepu8_epi64 (__mmask8 __U
, __m128i __A
)
2194 return (__m512i
) __builtin_ia32_pmovzxbq512_mask ((__v16qi
) __A
,
2196 _mm512_setzero_si512 (),
2200 extern __inline __m512i
2201 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2202 _mm512_cvtepu16_epi32 (__m256i __A
)
2204 return (__m512i
) __builtin_ia32_pmovzxwd512_mask ((__v16hi
) __A
,
2206 _mm512_undefined_epi32 (),
2210 extern __inline __m512i
2211 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2212 _mm512_mask_cvtepu16_epi32 (__m512i __W
, __mmask16 __U
, __m256i __A
)
2214 return (__m512i
) __builtin_ia32_pmovzxwd512_mask ((__v16hi
) __A
,
2219 extern __inline __m512i
2220 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2221 _mm512_maskz_cvtepu16_epi32 (__mmask16 __U
, __m256i __A
)
2223 return (__m512i
) __builtin_ia32_pmovzxwd512_mask ((__v16hi
) __A
,
2225 _mm512_setzero_si512 (),
2229 extern __inline __m512i
2230 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2231 _mm512_cvtepu16_epi64 (__m128i __A
)
2233 return (__m512i
) __builtin_ia32_pmovzxwq512_mask ((__v8hi
) __A
,
2235 _mm512_undefined_epi32 (),
2239 extern __inline __m512i
2240 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2241 _mm512_mask_cvtepu16_epi64 (__m512i __W
, __mmask8 __U
, __m128i __A
)
2243 return (__m512i
) __builtin_ia32_pmovzxwq512_mask ((__v8hi
) __A
,
2248 extern __inline __m512i
2249 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2250 _mm512_maskz_cvtepu16_epi64 (__mmask8 __U
, __m128i __A
)
2252 return (__m512i
) __builtin_ia32_pmovzxwq512_mask ((__v8hi
) __A
,
2254 _mm512_setzero_si512 (),
2258 extern __inline __m512i
2259 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2260 _mm512_cvtepu32_epi64 (__m256i __X
)
2262 return (__m512i
) __builtin_ia32_pmovzxdq512_mask ((__v8si
) __X
,
2264 _mm512_undefined_epi32 (),
2268 extern __inline __m512i
2269 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2270 _mm512_mask_cvtepu32_epi64 (__m512i __W
, __mmask8 __U
, __m256i __X
)
2272 return (__m512i
) __builtin_ia32_pmovzxdq512_mask ((__v8si
) __X
,
2277 extern __inline __m512i
2278 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2279 _mm512_maskz_cvtepu32_epi64 (__mmask8 __U
, __m256i __X
)
2281 return (__m512i
) __builtin_ia32_pmovzxdq512_mask ((__v8si
) __X
,
2283 _mm512_setzero_si512 (),
2288 extern __inline __m512d
2289 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2290 _mm512_add_round_pd (__m512d __A
, __m512d __B
, const int __R
)
2292 return (__m512d
) __builtin_ia32_addpd512_mask ((__v8df
) __A
,
2295 _mm512_undefined_pd (),
2296 (__mmask8
) -1, __R
);
2299 extern __inline __m512d
2300 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2301 _mm512_mask_add_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
2302 __m512d __B
, const int __R
)
2304 return (__m512d
) __builtin_ia32_addpd512_mask ((__v8df
) __A
,
2307 (__mmask8
) __U
, __R
);
2310 extern __inline __m512d
2311 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2312 _mm512_maskz_add_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2315 return (__m512d
) __builtin_ia32_addpd512_mask ((__v8df
) __A
,
2318 _mm512_setzero_pd (),
2319 (__mmask8
) __U
, __R
);
2322 extern __inline __m512
2323 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2324 _mm512_add_round_ps (__m512 __A
, __m512 __B
, const int __R
)
2326 return (__m512
) __builtin_ia32_addps512_mask ((__v16sf
) __A
,
2329 _mm512_undefined_ps (),
2330 (__mmask16
) -1, __R
);
2333 extern __inline __m512
2334 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2335 _mm512_mask_add_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
2336 __m512 __B
, const int __R
)
2338 return (__m512
) __builtin_ia32_addps512_mask ((__v16sf
) __A
,
2341 (__mmask16
) __U
, __R
);
2344 extern __inline __m512
2345 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2346 _mm512_maskz_add_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, const int __R
)
2348 return (__m512
) __builtin_ia32_addps512_mask ((__v16sf
) __A
,
2351 _mm512_setzero_ps (),
2352 (__mmask16
) __U
, __R
);
2355 extern __inline __m512d
2356 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2357 _mm512_sub_round_pd (__m512d __A
, __m512d __B
, const int __R
)
2359 return (__m512d
) __builtin_ia32_subpd512_mask ((__v8df
) __A
,
2362 _mm512_undefined_pd (),
2363 (__mmask8
) -1, __R
);
2366 extern __inline __m512d
2367 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2368 _mm512_mask_sub_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
2369 __m512d __B
, const int __R
)
2371 return (__m512d
) __builtin_ia32_subpd512_mask ((__v8df
) __A
,
2374 (__mmask8
) __U
, __R
);
2377 extern __inline __m512d
2378 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2379 _mm512_maskz_sub_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2382 return (__m512d
) __builtin_ia32_subpd512_mask ((__v8df
) __A
,
2385 _mm512_setzero_pd (),
2386 (__mmask8
) __U
, __R
);
2389 extern __inline __m512
2390 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2391 _mm512_sub_round_ps (__m512 __A
, __m512 __B
, const int __R
)
2393 return (__m512
) __builtin_ia32_subps512_mask ((__v16sf
) __A
,
2396 _mm512_undefined_ps (),
2397 (__mmask16
) -1, __R
);
2400 extern __inline __m512
2401 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2402 _mm512_mask_sub_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
2403 __m512 __B
, const int __R
)
2405 return (__m512
) __builtin_ia32_subps512_mask ((__v16sf
) __A
,
2408 (__mmask16
) __U
, __R
);
2411 extern __inline __m512
2412 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2413 _mm512_maskz_sub_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, const int __R
)
2415 return (__m512
) __builtin_ia32_subps512_mask ((__v16sf
) __A
,
2418 _mm512_setzero_ps (),
2419 (__mmask16
) __U
, __R
);
2422 #define _mm512_add_round_pd(A, B, C) \
2423 (__m512d)__builtin_ia32_addpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C)
2425 #define _mm512_mask_add_round_pd(W, U, A, B, C) \
2426 (__m512d)__builtin_ia32_addpd512_mask(A, B, W, U, C)
2428 #define _mm512_maskz_add_round_pd(U, A, B, C) \
2429 (__m512d)__builtin_ia32_addpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
2431 #define _mm512_add_round_ps(A, B, C) \
2432 (__m512)__builtin_ia32_addps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C)
2434 #define _mm512_mask_add_round_ps(W, U, A, B, C) \
2435 (__m512)__builtin_ia32_addps512_mask(A, B, W, U, C)
2437 #define _mm512_maskz_add_round_ps(U, A, B, C) \
2438 (__m512)__builtin_ia32_addps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
2440 #define _mm512_sub_round_pd(A, B, C) \
2441 (__m512d)__builtin_ia32_subpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C)
2443 #define _mm512_mask_sub_round_pd(W, U, A, B, C) \
2444 (__m512d)__builtin_ia32_subpd512_mask(A, B, W, U, C)
2446 #define _mm512_maskz_sub_round_pd(U, A, B, C) \
2447 (__m512d)__builtin_ia32_subpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
2449 #define _mm512_sub_round_ps(A, B, C) \
2450 (__m512)__builtin_ia32_subps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C)
2452 #define _mm512_mask_sub_round_ps(W, U, A, B, C) \
2453 (__m512)__builtin_ia32_subps512_mask(A, B, W, U, C)
2455 #define _mm512_maskz_sub_round_ps(U, A, B, C) \
2456 (__m512)__builtin_ia32_subps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
2460 extern __inline __m512d
2461 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2462 _mm512_mul_round_pd (__m512d __A
, __m512d __B
, const int __R
)
2464 return (__m512d
) __builtin_ia32_mulpd512_mask ((__v8df
) __A
,
2467 _mm512_undefined_pd (),
2468 (__mmask8
) -1, __R
);
2471 extern __inline __m512d
2472 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2473 _mm512_mask_mul_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
2474 __m512d __B
, const int __R
)
2476 return (__m512d
) __builtin_ia32_mulpd512_mask ((__v8df
) __A
,
2479 (__mmask8
) __U
, __R
);
2482 extern __inline __m512d
2483 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2484 _mm512_maskz_mul_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2487 return (__m512d
) __builtin_ia32_mulpd512_mask ((__v8df
) __A
,
2490 _mm512_setzero_pd (),
2491 (__mmask8
) __U
, __R
);
2494 extern __inline __m512
2495 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2496 _mm512_mul_round_ps (__m512 __A
, __m512 __B
, const int __R
)
2498 return (__m512
) __builtin_ia32_mulps512_mask ((__v16sf
) __A
,
2501 _mm512_undefined_ps (),
2502 (__mmask16
) -1, __R
);
2505 extern __inline __m512
2506 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2507 _mm512_mask_mul_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
2508 __m512 __B
, const int __R
)
2510 return (__m512
) __builtin_ia32_mulps512_mask ((__v16sf
) __A
,
2513 (__mmask16
) __U
, __R
);
2516 extern __inline __m512
2517 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2518 _mm512_maskz_mul_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, const int __R
)
2520 return (__m512
) __builtin_ia32_mulps512_mask ((__v16sf
) __A
,
2523 _mm512_setzero_ps (),
2524 (__mmask16
) __U
, __R
);
2527 extern __inline __m512d
2528 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2529 _mm512_div_round_pd (__m512d __M
, __m512d __V
, const int __R
)
2531 return (__m512d
) __builtin_ia32_divpd512_mask ((__v8df
) __M
,
2534 _mm512_undefined_pd (),
2535 (__mmask8
) -1, __R
);
2538 extern __inline __m512d
2539 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2540 _mm512_mask_div_round_pd (__m512d __W
, __mmask8 __U
, __m512d __M
,
2541 __m512d __V
, const int __R
)
2543 return (__m512d
) __builtin_ia32_divpd512_mask ((__v8df
) __M
,
2546 (__mmask8
) __U
, __R
);
2549 extern __inline __m512d
2550 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2551 _mm512_maskz_div_round_pd (__mmask8 __U
, __m512d __M
, __m512d __V
,
2554 return (__m512d
) __builtin_ia32_divpd512_mask ((__v8df
) __M
,
2557 _mm512_setzero_pd (),
2558 (__mmask8
) __U
, __R
);
2561 extern __inline __m512
2562 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2563 _mm512_div_round_ps (__m512 __A
, __m512 __B
, const int __R
)
2565 return (__m512
) __builtin_ia32_divps512_mask ((__v16sf
) __A
,
2568 _mm512_undefined_ps (),
2569 (__mmask16
) -1, __R
);
2572 extern __inline __m512
2573 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2574 _mm512_mask_div_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
2575 __m512 __B
, const int __R
)
2577 return (__m512
) __builtin_ia32_divps512_mask ((__v16sf
) __A
,
2580 (__mmask16
) __U
, __R
);
2583 extern __inline __m512
2584 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2585 _mm512_maskz_div_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, const int __R
)
2587 return (__m512
) __builtin_ia32_divps512_mask ((__v16sf
) __A
,
2590 _mm512_setzero_ps (),
2591 (__mmask16
) __U
, __R
);
2594 extern __inline __m128d
2595 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2596 _mm_mul_round_sd (__m128d __A
, __m128d __B
, const int __R
)
2598 return (__m128d
) __builtin_ia32_mulsd_round ((__v2df
) __A
,
2603 extern __inline __m128d
2604 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2605 _mm_mask_mul_round_sd (__m128d __W
, __mmask8 __U
, __m128d __A
,
2606 __m128d __B
, const int __R
)
2608 return (__m128d
) __builtin_ia32_mulsd_mask_round ((__v2df
) __A
,
2611 (__mmask8
) __U
, __R
);
2614 extern __inline __m128d
2615 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2616 _mm_maskz_mul_round_sd (__mmask8 __U
, __m128d __A
, __m128d __B
,
2619 return (__m128d
) __builtin_ia32_mulsd_mask_round ((__v2df
) __A
,
2623 (__mmask8
) __U
, __R
);
2626 extern __inline __m128
2627 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2628 _mm_mul_round_ss (__m128 __A
, __m128 __B
, const int __R
)
2630 return (__m128
) __builtin_ia32_mulss_round ((__v4sf
) __A
,
2635 extern __inline __m128
2636 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2637 _mm_mask_mul_round_ss (__m128 __W
, __mmask8 __U
, __m128 __A
,
2638 __m128 __B
, const int __R
)
2640 return (__m128
) __builtin_ia32_mulss_mask_round ((__v4sf
) __A
,
2643 (__mmask8
) __U
, __R
);
2646 extern __inline __m128
2647 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2648 _mm_maskz_mul_round_ss (__mmask8 __U
, __m128 __A
, __m128 __B
,
2651 return (__m128
) __builtin_ia32_mulss_mask_round ((__v4sf
) __A
,
2655 (__mmask8
) __U
, __R
);
2658 extern __inline __m128d
2659 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2660 _mm_div_round_sd (__m128d __A
, __m128d __B
, const int __R
)
2662 return (__m128d
) __builtin_ia32_divsd_round ((__v2df
) __A
,
2667 extern __inline __m128d
2668 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2669 _mm_mask_div_round_sd (__m128d __W
, __mmask8 __U
, __m128d __A
,
2670 __m128d __B
, const int __R
)
2672 return (__m128d
) __builtin_ia32_divsd_mask_round ((__v2df
) __A
,
2675 (__mmask8
) __U
, __R
);
2678 extern __inline __m128d
2679 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2680 _mm_maskz_div_round_sd (__mmask8 __U
, __m128d __A
, __m128d __B
,
2683 return (__m128d
) __builtin_ia32_divsd_mask_round ((__v2df
) __A
,
2687 (__mmask8
) __U
, __R
);
2690 extern __inline __m128
2691 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2692 _mm_div_round_ss (__m128 __A
, __m128 __B
, const int __R
)
2694 return (__m128
) __builtin_ia32_divss_round ((__v4sf
) __A
,
2699 extern __inline __m128
2700 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2701 _mm_mask_div_round_ss (__m128 __W
, __mmask8 __U
, __m128 __A
,
2702 __m128 __B
, const int __R
)
2704 return (__m128
) __builtin_ia32_divss_mask_round ((__v4sf
) __A
,
2707 (__mmask8
) __U
, __R
);
2710 extern __inline __m128
2711 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2712 _mm_maskz_div_round_ss (__mmask8 __U
, __m128 __A
, __m128 __B
,
2715 return (__m128
) __builtin_ia32_divss_mask_round ((__v4sf
) __A
,
2719 (__mmask8
) __U
, __R
);
2723 #define _mm512_mul_round_pd(A, B, C) \
2724 (__m512d)__builtin_ia32_mulpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C)
2726 #define _mm512_mask_mul_round_pd(W, U, A, B, C) \
2727 (__m512d)__builtin_ia32_mulpd512_mask(A, B, W, U, C)
2729 #define _mm512_maskz_mul_round_pd(U, A, B, C) \
2730 (__m512d)__builtin_ia32_mulpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
2732 #define _mm512_mul_round_ps(A, B, C) \
2733 (__m512)__builtin_ia32_mulps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C)
2735 #define _mm512_mask_mul_round_ps(W, U, A, B, C) \
2736 (__m512)__builtin_ia32_mulps512_mask(A, B, W, U, C)
2738 #define _mm512_maskz_mul_round_ps(U, A, B, C) \
2739 (__m512)__builtin_ia32_mulps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
2741 #define _mm512_div_round_pd(A, B, C) \
2742 (__m512d)__builtin_ia32_divpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C)
2744 #define _mm512_mask_div_round_pd(W, U, A, B, C) \
2745 (__m512d)__builtin_ia32_divpd512_mask(A, B, W, U, C)
2747 #define _mm512_maskz_div_round_pd(U, A, B, C) \
2748 (__m512d)__builtin_ia32_divpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
2750 #define _mm512_div_round_ps(A, B, C) \
2751 (__m512)__builtin_ia32_divps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C)
2753 #define _mm512_mask_div_round_ps(W, U, A, B, C) \
2754 (__m512)__builtin_ia32_divps512_mask(A, B, W, U, C)
2756 #define _mm512_maskz_div_round_ps(U, A, B, C) \
2757 (__m512)__builtin_ia32_divps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
2759 #define _mm_mul_round_sd(A, B, C) \
2760 (__m128d)__builtin_ia32_mulsd_round(A, B, C)
2762 #define _mm_mask_mul_round_sd(W, U, A, B, C) \
2763 (__m128d)__builtin_ia32_mulsd_mask_round(A, B, W, U, C)
2765 #define _mm_maskz_mul_round_sd(U, A, B, C) \
2766 (__m128d)__builtin_ia32_mulsd_mask_round(A, B, (__v2df)_mm_setzero_pd(), U, C)
2768 #define _mm_mul_round_ss(A, B, C) \
2769 (__m128)__builtin_ia32_mulss_round(A, B, C)
2771 #define _mm_mask_mul_round_ss(W, U, A, B, C) \
2772 (__m128)__builtin_ia32_mulss_mask_round(A, B, W, U, C)
2774 #define _mm_maskz_mul_round_ss(U, A, B, C) \
2775 (__m128)__builtin_ia32_mulss_mask_round(A, B, (__v4sf)_mm_setzero_ps(), U, C)
2777 #define _mm_div_round_sd(A, B, C) \
2778 (__m128d)__builtin_ia32_divsd_round(A, B, C)
2780 #define _mm_mask_div_round_sd(W, U, A, B, C) \
2781 (__m128d)__builtin_ia32_divsd_mask_round(A, B, W, U, C)
2783 #define _mm_maskz_div_round_sd(U, A, B, C) \
2784 (__m128d)__builtin_ia32_divsd_mask_round(A, B, (__v2df)_mm_setzero_pd(), U, C)
2786 #define _mm_div_round_ss(A, B, C) \
2787 (__m128)__builtin_ia32_divss_round(A, B, C)
2789 #define _mm_mask_div_round_ss(W, U, A, B, C) \
2790 (__m128)__builtin_ia32_divss_mask_round(A, B, W, U, C)
2792 #define _mm_maskz_div_round_ss(U, A, B, C) \
2793 (__m128)__builtin_ia32_divss_mask_round(A, B, (__v4sf)_mm_setzero_ps(), U, C)
2798 extern __inline __m512d
2799 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2800 _mm512_max_round_pd (__m512d __A
, __m512d __B
, const int __R
)
2802 return (__m512d
) __builtin_ia32_maxpd512_mask ((__v8df
) __A
,
2805 _mm512_undefined_pd (),
2806 (__mmask8
) -1, __R
);
2809 extern __inline __m512d
2810 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2811 _mm512_mask_max_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
2812 __m512d __B
, const int __R
)
2814 return (__m512d
) __builtin_ia32_maxpd512_mask ((__v8df
) __A
,
2817 (__mmask8
) __U
, __R
);
2820 extern __inline __m512d
2821 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2822 _mm512_maskz_max_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2825 return (__m512d
) __builtin_ia32_maxpd512_mask ((__v8df
) __A
,
2828 _mm512_setzero_pd (),
2829 (__mmask8
) __U
, __R
);
2832 extern __inline __m512
2833 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2834 _mm512_max_round_ps (__m512 __A
, __m512 __B
, const int __R
)
2836 return (__m512
) __builtin_ia32_maxps512_mask ((__v16sf
) __A
,
2839 _mm512_undefined_ps (),
2840 (__mmask16
) -1, __R
);
2843 extern __inline __m512
2844 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2845 _mm512_mask_max_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
2846 __m512 __B
, const int __R
)
2848 return (__m512
) __builtin_ia32_maxps512_mask ((__v16sf
) __A
,
2851 (__mmask16
) __U
, __R
);
2854 extern __inline __m512
2855 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2856 _mm512_maskz_max_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, const int __R
)
2858 return (__m512
) __builtin_ia32_maxps512_mask ((__v16sf
) __A
,
2861 _mm512_setzero_ps (),
2862 (__mmask16
) __U
, __R
);
2865 extern __inline __m512d
2866 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2867 _mm512_min_round_pd (__m512d __A
, __m512d __B
, const int __R
)
2869 return (__m512d
) __builtin_ia32_minpd512_mask ((__v8df
) __A
,
2872 _mm512_undefined_pd (),
2873 (__mmask8
) -1, __R
);
2876 extern __inline __m512d
2877 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2878 _mm512_mask_min_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
2879 __m512d __B
, const int __R
)
2881 return (__m512d
) __builtin_ia32_minpd512_mask ((__v8df
) __A
,
2884 (__mmask8
) __U
, __R
);
2887 extern __inline __m512d
2888 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2889 _mm512_maskz_min_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2892 return (__m512d
) __builtin_ia32_minpd512_mask ((__v8df
) __A
,
2895 _mm512_setzero_pd (),
2896 (__mmask8
) __U
, __R
);
2899 extern __inline __m512
2900 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2901 _mm512_min_round_ps (__m512 __A
, __m512 __B
, const int __R
)
2903 return (__m512
) __builtin_ia32_minps512_mask ((__v16sf
) __A
,
2906 _mm512_undefined_ps (),
2907 (__mmask16
) -1, __R
);
2910 extern __inline __m512
2911 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2912 _mm512_mask_min_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
2913 __m512 __B
, const int __R
)
2915 return (__m512
) __builtin_ia32_minps512_mask ((__v16sf
) __A
,
2918 (__mmask16
) __U
, __R
);
2921 extern __inline __m512
2922 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2923 _mm512_maskz_min_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, const int __R
)
2925 return (__m512
) __builtin_ia32_minps512_mask ((__v16sf
) __A
,
2928 _mm512_setzero_ps (),
2929 (__mmask16
) __U
, __R
);
2932 #define _mm512_max_round_pd(A, B, R) \
2933 (__m512d)__builtin_ia32_maxpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, R)
2935 #define _mm512_mask_max_round_pd(W, U, A, B, R) \
2936 (__m512d)__builtin_ia32_maxpd512_mask(A, B, W, U, R)
2938 #define _mm512_maskz_max_round_pd(U, A, B, R) \
2939 (__m512d)__builtin_ia32_maxpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, R)
2941 #define _mm512_max_round_ps(A, B, R) \
2942 (__m512)__builtin_ia32_maxps512_mask(A, B, (__v16sf)_mm512_undefined_pd(), -1, R)
2944 #define _mm512_mask_max_round_ps(W, U, A, B, R) \
2945 (__m512)__builtin_ia32_maxps512_mask(A, B, W, U, R)
2947 #define _mm512_maskz_max_round_ps(U, A, B, R) \
2948 (__m512)__builtin_ia32_maxps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, R)
2950 #define _mm512_min_round_pd(A, B, R) \
2951 (__m512d)__builtin_ia32_minpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, R)
2953 #define _mm512_mask_min_round_pd(W, U, A, B, R) \
2954 (__m512d)__builtin_ia32_minpd512_mask(A, B, W, U, R)
2956 #define _mm512_maskz_min_round_pd(U, A, B, R) \
2957 (__m512d)__builtin_ia32_minpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, R)
2959 #define _mm512_min_round_ps(A, B, R) \
2960 (__m512)__builtin_ia32_minps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, R)
2962 #define _mm512_mask_min_round_ps(W, U, A, B, R) \
2963 (__m512)__builtin_ia32_minps512_mask(A, B, W, U, R)
2965 #define _mm512_maskz_min_round_ps(U, A, B, R) \
2966 (__m512)__builtin_ia32_minps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, R)
2970 extern __inline __m512d
2971 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2972 _mm512_scalef_round_pd (__m512d __A
, __m512d __B
, const int __R
)
2974 return (__m512d
) __builtin_ia32_scalefpd512_mask ((__v8df
) __A
,
2977 _mm512_undefined_pd (),
2978 (__mmask8
) -1, __R
);
2981 extern __inline __m512d
2982 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2983 _mm512_mask_scalef_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
2984 __m512d __B
, const int __R
)
2986 return (__m512d
) __builtin_ia32_scalefpd512_mask ((__v8df
) __A
,
2989 (__mmask8
) __U
, __R
);
2992 extern __inline __m512d
2993 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2994 _mm512_maskz_scalef_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2997 return (__m512d
) __builtin_ia32_scalefpd512_mask ((__v8df
) __A
,
3000 _mm512_setzero_pd (),
3001 (__mmask8
) __U
, __R
);
3004 extern __inline __m512
3005 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3006 _mm512_scalef_round_ps (__m512 __A
, __m512 __B
, const int __R
)
3008 return (__m512
) __builtin_ia32_scalefps512_mask ((__v16sf
) __A
,
3011 _mm512_undefined_ps (),
3012 (__mmask16
) -1, __R
);
3015 extern __inline __m512
3016 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3017 _mm512_mask_scalef_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
3018 __m512 __B
, const int __R
)
3020 return (__m512
) __builtin_ia32_scalefps512_mask ((__v16sf
) __A
,
3023 (__mmask16
) __U
, __R
);
3026 extern __inline __m512
3027 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3028 _mm512_maskz_scalef_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
3031 return (__m512
) __builtin_ia32_scalefps512_mask ((__v16sf
) __A
,
3034 _mm512_setzero_ps (),
3035 (__mmask16
) __U
, __R
);
3038 extern __inline __m128d
3039 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3040 _mm_scalef_round_sd (__m128d __A
, __m128d __B
, const int __R
)
3042 return (__m128d
) __builtin_ia32_scalefsd_round ((__v2df
) __A
,
3047 extern __inline __m128
3048 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3049 _mm_scalef_round_ss (__m128 __A
, __m128 __B
, const int __R
)
3051 return (__m128
) __builtin_ia32_scalefss_round ((__v4sf
) __A
,
3056 #define _mm512_scalef_round_pd(A, B, C) \
3057 (__m512d)__builtin_ia32_scalefpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C)
3059 #define _mm512_mask_scalef_round_pd(W, U, A, B, C) \
3060 (__m512d)__builtin_ia32_scalefpd512_mask(A, B, W, U, C)
3062 #define _mm512_maskz_scalef_round_pd(U, A, B, C) \
3063 (__m512d)__builtin_ia32_scalefpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
3065 #define _mm512_scalef_round_ps(A, B, C) \
3066 (__m512)__builtin_ia32_scalefps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C)
3068 #define _mm512_mask_scalef_round_ps(W, U, A, B, C) \
3069 (__m512)__builtin_ia32_scalefps512_mask(A, B, W, U, C)
3071 #define _mm512_maskz_scalef_round_ps(U, A, B, C) \
3072 (__m512)__builtin_ia32_scalefps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
3074 #define _mm_scalef_round_sd(A, B, C) \
3075 (__m128d)__builtin_ia32_scalefsd_round(A, B, C)
3077 #define _mm_scalef_round_ss(A, B, C) \
3078 (__m128)__builtin_ia32_scalefss_round(A, B, C)
3082 extern __inline __m512d
3083 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3084 _mm512_fmadd_round_pd (__m512d __A
, __m512d __B
, __m512d __C
, const int __R
)
3086 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
3089 (__mmask8
) -1, __R
);
3092 extern __inline __m512d
3093 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3094 _mm512_mask_fmadd_round_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
3095 __m512d __C
, const int __R
)
3097 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
3100 (__mmask8
) __U
, __R
);
3103 extern __inline __m512d
3104 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3105 _mm512_mask3_fmadd_round_pd (__m512d __A
, __m512d __B
, __m512d __C
,
3106 __mmask8 __U
, const int __R
)
3108 return (__m512d
) __builtin_ia32_vfmaddpd512_mask3 ((__v8df
) __A
,
3111 (__mmask8
) __U
, __R
);
3114 extern __inline __m512d
3115 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3116 _mm512_maskz_fmadd_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
3117 __m512d __C
, const int __R
)
3119 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz ((__v8df
) __A
,
3122 (__mmask8
) __U
, __R
);
3125 extern __inline __m512
3126 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3127 _mm512_fmadd_round_ps (__m512 __A
, __m512 __B
, __m512 __C
, const int __R
)
3129 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
3132 (__mmask16
) -1, __R
);
3135 extern __inline __m512
3136 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3137 _mm512_mask_fmadd_round_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
3138 __m512 __C
, const int __R
)
3140 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
3143 (__mmask16
) __U
, __R
);
3146 extern __inline __m512
3147 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3148 _mm512_mask3_fmadd_round_ps (__m512 __A
, __m512 __B
, __m512 __C
,
3149 __mmask16 __U
, const int __R
)
3151 return (__m512
) __builtin_ia32_vfmaddps512_mask3 ((__v16sf
) __A
,
3154 (__mmask16
) __U
, __R
);
3157 extern __inline __m512
3158 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3159 _mm512_maskz_fmadd_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
3160 __m512 __C
, const int __R
)
3162 return (__m512
) __builtin_ia32_vfmaddps512_maskz ((__v16sf
) __A
,
3165 (__mmask16
) __U
, __R
);
3168 extern __inline __m512d
3169 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3170 _mm512_fmsub_round_pd (__m512d __A
, __m512d __B
, __m512d __C
, const int __R
)
3172 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
3175 (__mmask8
) -1, __R
);
3178 extern __inline __m512d
3179 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3180 _mm512_mask_fmsub_round_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
3181 __m512d __C
, const int __R
)
3183 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
3186 (__mmask8
) __U
, __R
);
3189 extern __inline __m512d
3190 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3191 _mm512_mask3_fmsub_round_pd (__m512d __A
, __m512d __B
, __m512d __C
,
3192 __mmask8 __U
, const int __R
)
3194 return (__m512d
) __builtin_ia32_vfmsubpd512_mask3 ((__v8df
) __A
,
3197 (__mmask8
) __U
, __R
);
3200 extern __inline __m512d
3201 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3202 _mm512_maskz_fmsub_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
3203 __m512d __C
, const int __R
)
3205 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz ((__v8df
) __A
,
3208 (__mmask8
) __U
, __R
);
3211 extern __inline __m512
3212 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3213 _mm512_fmsub_round_ps (__m512 __A
, __m512 __B
, __m512 __C
, const int __R
)
3215 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
3218 (__mmask16
) -1, __R
);
3221 extern __inline __m512
3222 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3223 _mm512_mask_fmsub_round_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
3224 __m512 __C
, const int __R
)
3226 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
3229 (__mmask16
) __U
, __R
);
3232 extern __inline __m512
3233 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3234 _mm512_mask3_fmsub_round_ps (__m512 __A
, __m512 __B
, __m512 __C
,
3235 __mmask16 __U
, const int __R
)
3237 return (__m512
) __builtin_ia32_vfmsubps512_mask3 ((__v16sf
) __A
,
3240 (__mmask16
) __U
, __R
);
3243 extern __inline __m512
3244 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3245 _mm512_maskz_fmsub_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
3246 __m512 __C
, const int __R
)
3248 return (__m512
) __builtin_ia32_vfmaddps512_maskz ((__v16sf
) __A
,
3251 (__mmask16
) __U
, __R
);
3254 extern __inline __m512d
3255 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3256 _mm512_fmaddsub_round_pd (__m512d __A
, __m512d __B
, __m512d __C
, const int __R
)
3258 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
3261 (__mmask8
) -1, __R
);
3264 extern __inline __m512d
3265 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3266 _mm512_mask_fmaddsub_round_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
3267 __m512d __C
, const int __R
)
3269 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
3272 (__mmask8
) __U
, __R
);
3275 extern __inline __m512d
3276 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3277 _mm512_mask3_fmaddsub_round_pd (__m512d __A
, __m512d __B
, __m512d __C
,
3278 __mmask8 __U
, const int __R
)
3280 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask3 ((__v8df
) __A
,
3283 (__mmask8
) __U
, __R
);
3286 extern __inline __m512d
3287 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3288 _mm512_maskz_fmaddsub_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
3289 __m512d __C
, const int __R
)
3291 return (__m512d
) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df
) __A
,
3294 (__mmask8
) __U
, __R
);
3297 extern __inline __m512
3298 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3299 _mm512_fmaddsub_round_ps (__m512 __A
, __m512 __B
, __m512 __C
, const int __R
)
3301 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
3304 (__mmask16
) -1, __R
);
3307 extern __inline __m512
3308 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3309 _mm512_mask_fmaddsub_round_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
3310 __m512 __C
, const int __R
)
3312 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
3315 (__mmask16
) __U
, __R
);
3318 extern __inline __m512
3319 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3320 _mm512_mask3_fmaddsub_round_ps (__m512 __A
, __m512 __B
, __m512 __C
,
3321 __mmask16 __U
, const int __R
)
3323 return (__m512
) __builtin_ia32_vfmaddsubps512_mask3 ((__v16sf
) __A
,
3326 (__mmask16
) __U
, __R
);
3329 extern __inline __m512
3330 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3331 _mm512_maskz_fmaddsub_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
3332 __m512 __C
, const int __R
)
3334 return (__m512
) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf
) __A
,
3337 (__mmask16
) __U
, __R
);
3340 extern __inline __m512d
3341 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3342 _mm512_fmsubadd_round_pd (__m512d __A
, __m512d __B
, __m512d __C
, const int __R
)
3344 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
3347 (__mmask8
) -1, __R
);
3350 extern __inline __m512d
3351 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3352 _mm512_mask_fmsubadd_round_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
3353 __m512d __C
, const int __R
)
3355 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
3358 (__mmask8
) __U
, __R
);
3361 extern __inline __m512d
3362 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3363 _mm512_mask3_fmsubadd_round_pd (__m512d __A
, __m512d __B
, __m512d __C
,
3364 __mmask8 __U
, const int __R
)
3366 return (__m512d
) __builtin_ia32_vfmsubaddpd512_mask3 ((__v8df
) __A
,
3369 (__mmask8
) __U
, __R
);
3372 extern __inline __m512d
3373 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3374 _mm512_maskz_fmsubadd_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
3375 __m512d __C
, const int __R
)
3377 return (__m512d
) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df
) __A
,
3380 (__mmask8
) __U
, __R
);
3383 extern __inline __m512
3384 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3385 _mm512_fmsubadd_round_ps (__m512 __A
, __m512 __B
, __m512 __C
, const int __R
)
3387 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
3390 (__mmask16
) -1, __R
);
3393 extern __inline __m512
3394 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3395 _mm512_mask_fmsubadd_round_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
3396 __m512 __C
, const int __R
)
3398 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
3401 (__mmask16
) __U
, __R
);
3404 extern __inline __m512
3405 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3406 _mm512_mask3_fmsubadd_round_ps (__m512 __A
, __m512 __B
, __m512 __C
,
3407 __mmask16 __U
, const int __R
)
3409 return (__m512
) __builtin_ia32_vfmsubaddps512_mask3 ((__v16sf
) __A
,
3412 (__mmask16
) __U
, __R
);
3415 extern __inline __m512
3416 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3417 _mm512_maskz_fmsubadd_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
3418 __m512 __C
, const int __R
)
3420 return (__m512
) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf
) __A
,
3423 (__mmask16
) __U
, __R
);
3426 extern __inline __m512d
3427 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3428 _mm512_fnmadd_round_pd (__m512d __A
, __m512d __B
, __m512d __C
, const int __R
)
3430 return (__m512d
) __builtin_ia32_vfmaddpd512_mask (-(__v8df
) __A
,
3433 (__mmask8
) -1, __R
);
3436 extern __inline __m512d
3437 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3438 _mm512_mask_fnmadd_round_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
3439 __m512d __C
, const int __R
)
3441 return (__m512d
) __builtin_ia32_vfnmaddpd512_mask ((__v8df
) __A
,
3444 (__mmask8
) __U
, __R
);
3447 extern __inline __m512d
3448 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3449 _mm512_mask3_fnmadd_round_pd (__m512d __A
, __m512d __B
, __m512d __C
,
3450 __mmask8 __U
, const int __R
)
3452 return (__m512d
) __builtin_ia32_vfmaddpd512_mask3 (-(__v8df
) __A
,
3455 (__mmask8
) __U
, __R
);
3458 extern __inline __m512d
3459 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3460 _mm512_maskz_fnmadd_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
3461 __m512d __C
, const int __R
)
3463 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz (-(__v8df
) __A
,
3466 (__mmask8
) __U
, __R
);
3469 extern __inline __m512
3470 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3471 _mm512_fnmadd_round_ps (__m512 __A
, __m512 __B
, __m512 __C
, const int __R
)
3473 return (__m512
) __builtin_ia32_vfmaddps512_mask (-(__v16sf
) __A
,
3476 (__mmask16
) -1, __R
);
3479 extern __inline __m512
3480 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3481 _mm512_mask_fnmadd_round_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
3482 __m512 __C
, const int __R
)
3484 return (__m512
) __builtin_ia32_vfnmaddps512_mask ((__v16sf
) __A
,
3487 (__mmask16
) __U
, __R
);
3490 extern __inline __m512
3491 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3492 _mm512_mask3_fnmadd_round_ps (__m512 __A
, __m512 __B
, __m512 __C
,
3493 __mmask16 __U
, const int __R
)
3495 return (__m512
) __builtin_ia32_vfmaddps512_mask3 (-(__v16sf
) __A
,
3498 (__mmask16
) __U
, __R
);
3501 extern __inline __m512
3502 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3503 _mm512_maskz_fnmadd_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
3504 __m512 __C
, const int __R
)
3506 return (__m512
) __builtin_ia32_vfmaddps512_maskz (-(__v16sf
) __A
,
3509 (__mmask16
) __U
, __R
);
3512 extern __inline __m512d
3513 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3514 _mm512_fnmsub_round_pd (__m512d __A
, __m512d __B
, __m512d __C
, const int __R
)
3516 return (__m512d
) __builtin_ia32_vfmaddpd512_mask (-(__v8df
) __A
,
3519 (__mmask8
) -1, __R
);
3522 extern __inline __m512d
3523 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3524 _mm512_mask_fnmsub_round_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
3525 __m512d __C
, const int __R
)
3527 return (__m512d
) __builtin_ia32_vfnmsubpd512_mask ((__v8df
) __A
,
3530 (__mmask8
) __U
, __R
);
3533 extern __inline __m512d
3534 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3535 _mm512_mask3_fnmsub_round_pd (__m512d __A
, __m512d __B
, __m512d __C
,
3536 __mmask8 __U
, const int __R
)
3538 return (__m512d
) __builtin_ia32_vfnmsubpd512_mask3 ((__v8df
) __A
,
3541 (__mmask8
) __U
, __R
);
3544 extern __inline __m512d
3545 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3546 _mm512_maskz_fnmsub_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
3547 __m512d __C
, const int __R
)
3549 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz (-(__v8df
) __A
,
3552 (__mmask8
) __U
, __R
);
3555 extern __inline __m512
3556 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3557 _mm512_fnmsub_round_ps (__m512 __A
, __m512 __B
, __m512 __C
, const int __R
)
3559 return (__m512
) __builtin_ia32_vfmaddps512_mask (-(__v16sf
) __A
,
3562 (__mmask16
) -1, __R
);
3565 extern __inline __m512
3566 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3567 _mm512_mask_fnmsub_round_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
3568 __m512 __C
, const int __R
)
3570 return (__m512
) __builtin_ia32_vfnmsubps512_mask ((__v16sf
) __A
,
3573 (__mmask16
) __U
, __R
);
3576 extern __inline __m512
3577 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3578 _mm512_mask3_fnmsub_round_ps (__m512 __A
, __m512 __B
, __m512 __C
,
3579 __mmask16 __U
, const int __R
)
3581 return (__m512
) __builtin_ia32_vfnmsubps512_mask3 ((__v16sf
) __A
,
3584 (__mmask16
) __U
, __R
);
3587 extern __inline __m512
3588 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3589 _mm512_maskz_fnmsub_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
3590 __m512 __C
, const int __R
)
3592 return (__m512
) __builtin_ia32_vfmaddps512_maskz (-(__v16sf
) __A
,
3595 (__mmask16
) __U
, __R
);
3598 #define _mm512_fmadd_round_pd(A, B, C, R) \
3599 (__m512d)__builtin_ia32_vfmaddpd512_mask(A, B, C, -1, R)
3601 #define _mm512_mask_fmadd_round_pd(A, U, B, C, R) \
3602 (__m512d)__builtin_ia32_vfmaddpd512_mask(A, B, C, U, R)
3604 #define _mm512_mask3_fmadd_round_pd(A, B, C, U, R) \
3605 (__m512d)__builtin_ia32_vfmaddpd512_mask3(A, B, C, U, R)
3607 #define _mm512_maskz_fmadd_round_pd(U, A, B, C, R) \
3608 (__m512d)__builtin_ia32_vfmaddpd512_maskz(A, B, C, U, R)
3610 #define _mm512_fmadd_round_ps(A, B, C, R) \
3611 (__m512)__builtin_ia32_vfmaddps512_mask(A, B, C, -1, R)
3613 #define _mm512_mask_fmadd_round_ps(A, U, B, C, R) \
3614 (__m512)__builtin_ia32_vfmaddps512_mask(A, B, C, U, R)
3616 #define _mm512_mask3_fmadd_round_ps(A, B, C, U, R) \
3617 (__m512)__builtin_ia32_vfmaddps512_mask3(A, B, C, U, R)
3619 #define _mm512_maskz_fmadd_round_ps(U, A, B, C, R) \
3620 (__m512)__builtin_ia32_vfmaddps512_maskz(A, B, C, U, R)
3622 #define _mm512_fmsub_round_pd(A, B, C, R) \
3623 (__m512d)__builtin_ia32_vfmaddpd512_mask(A, B, -(C), -1, R)
3625 #define _mm512_mask_fmsub_round_pd(A, U, B, C, R) \
3626 (__m512d)__builtin_ia32_vfmaddpd512_mask(A, B, -(C), U, R)
3628 #define _mm512_mask3_fmsub_round_pd(A, B, C, U, R) \
3629 (__m512d)__builtin_ia32_vfmsubpd512_mask3(A, B, C, U, R)
3631 #define _mm512_maskz_fmsub_round_pd(U, A, B, C, R) \
3632 (__m512d)__builtin_ia32_vfmaddpd512_maskz(A, B, -(C), U, R)
3634 #define _mm512_fmsub_round_ps(A, B, C, R) \
3635 (__m512)__builtin_ia32_vfmaddps512_mask(A, B, -(C), -1, R)
3637 #define _mm512_mask_fmsub_round_ps(A, U, B, C, R) \
3638 (__m512)__builtin_ia32_vfmaddps512_mask(A, B, -(C), U, R)
3640 #define _mm512_mask3_fmsub_round_ps(A, B, C, U, R) \
3641 (__m512)__builtin_ia32_vfmsubps512_mask3(A, B, C, U, R)
3643 #define _mm512_maskz_fmsub_round_ps(U, A, B, C, R) \
3644 (__m512)__builtin_ia32_vfmaddps512_maskz(A, B, -(C), U, R)
3646 #define _mm512_fmaddsub_round_pd(A, B, C, R) \
3647 (__m512d)__builtin_ia32_vfmaddsubpd512_mask(A, B, C, -1, R)
3649 #define _mm512_mask_fmaddsub_round_pd(A, U, B, C, R) \
3650 (__m512d)__builtin_ia32_vfmaddpd512_mask(A, B, C, U, R)
3652 #define _mm512_mask3_fmaddsub_round_pd(A, B, C, U, R) \
3653 (__m512d)__builtin_ia32_vfmaddsubpd512_mask3(A, B, C, U, R)
3655 #define _mm512_maskz_fmaddsub_round_pd(U, A, B, C, R) \
3656 (__m512d)__builtin_ia32_vfmaddsubpd512_maskz(A, B, C, U, R)
3658 #define _mm512_fmaddsub_round_ps(A, B, C, R) \
3659 (__m512)__builtin_ia32_vfmaddsubps512_mask(A, B, C, -1, R)
3661 #define _mm512_mask_fmaddsub_round_ps(A, U, B, C, R) \
3662 (__m512)__builtin_ia32_vfmaddsubps512_mask(A, B, C, U, R)
3664 #define _mm512_mask3_fmaddsub_round_ps(A, B, C, U, R) \
3665 (__m512)__builtin_ia32_vfmaddsubps512_mask3(A, B, C, U, R)
3667 #define _mm512_maskz_fmaddsub_round_ps(U, A, B, C, R) \
3668 (__m512)__builtin_ia32_vfmaddsubps512_maskz(A, B, C, U, R)
3670 #define _mm512_fmsubadd_round_pd(A, B, C, R) \
3671 (__m512d)__builtin_ia32_vfmaddsubpd512_mask(A, B, -(C), -1, R)
3673 #define _mm512_mask_fmsubadd_round_pd(A, U, B, C, R) \
3674 (__m512d)__builtin_ia32_vfmaddsubpd512_mask(A, B, -(C), U, R)
3676 #define _mm512_mask3_fmsubadd_round_pd(A, B, C, U, R) \
3677 (__m512d)__builtin_ia32_vfmsubaddpd512_mask3(A, B, C, U, R)
3679 #define _mm512_maskz_fmsubadd_round_pd(U, A, B, C, R) \
3680 (__m512d)__builtin_ia32_vfmaddsubpd512_maskz(A, B, -(C), U, R)
3682 #define _mm512_fmsubadd_round_ps(A, B, C, R) \
3683 (__m512)__builtin_ia32_vfmaddsubps512_mask(A, B, -(C), -1, R)
3685 #define _mm512_mask_fmsubadd_round_ps(A, U, B, C, R) \
3686 (__m512)__builtin_ia32_vfmaddsubps512_mask(A, B, -(C), U, R)
3688 #define _mm512_mask3_fmsubadd_round_ps(A, B, C, U, R) \
3689 (__m512)__builtin_ia32_vfmsubaddps512_mask3(A, B, C, U, R)
3691 #define _mm512_maskz_fmsubadd_round_ps(U, A, B, C, R) \
3692 (__m512)__builtin_ia32_vfmaddsubps512_maskz(A, B, -(C), U, R)
3694 #define _mm512_fnmadd_round_pd(A, B, C, R) \
3695 (__m512d)__builtin_ia32_vfmaddpd512_mask(-(A), B, C, -1, R)
3697 #define _mm512_mask_fnmadd_round_pd(A, U, B, C, R) \
3698 (__m512d)__builtin_ia32_vfnmaddpd512_mask(-(A), B, C, U, R)
3700 #define _mm512_mask3_fnmadd_round_pd(A, B, C, U, R) \
3701 (__m512d)__builtin_ia32_vfmaddpd512_mask3(-(A), B, C, U, R)
3703 #define _mm512_maskz_fnmadd_round_pd(U, A, B, C, R) \
3704 (__m512d)__builtin_ia32_vfmaddpd512_maskz(-(A), B, C, U, R)
3706 #define _mm512_fnmadd_round_ps(A, B, C, R) \
3707 (__m512)__builtin_ia32_vfmaddps512_mask(-(A), B, C, -1, R)
3709 #define _mm512_mask_fnmadd_round_ps(A, U, B, C, R) \
3710 (__m512)__builtin_ia32_vfnmaddps512_mask(-(A), B, C, U, R)
3712 #define _mm512_mask3_fnmadd_round_ps(A, B, C, U, R) \
3713 (__m512)__builtin_ia32_vfmaddps512_mask3(-(A), B, C, U, R)
3715 #define _mm512_maskz_fnmadd_round_ps(U, A, B, C, R) \
3716 (__m512)__builtin_ia32_vfmaddps512_maskz(-(A), B, C, U, R)
3718 #define _mm512_fnmsub_round_pd(A, B, C, R) \
3719 (__m512d)__builtin_ia32_vfmaddpd512_mask(-(A), B, -(C), -1, R)
3721 #define _mm512_mask_fnmsub_round_pd(A, U, B, C, R) \
3722 (__m512d)__builtin_ia32_vfnmsubpd512_mask(A, B, C, U, R)
3724 #define _mm512_mask3_fnmsub_round_pd(A, B, C, U, R) \
3725 (__m512d)__builtin_ia32_vfnmsubpd512_mask3(A, B, C, U, R)
3727 #define _mm512_maskz_fnmsub_round_pd(U, A, B, C, R) \
3728 (__m512d)__builtin_ia32_vfmaddpd512_maskz(-(A), B, -(C), U, R)
3730 #define _mm512_fnmsub_round_ps(A, B, C, R) \
3731 (__m512)__builtin_ia32_vfmaddps512_mask(-(A), B, -(C), -1, R)
3733 #define _mm512_mask_fnmsub_round_ps(A, U, B, C, R) \
3734 (__m512)__builtin_ia32_vfnmsubps512_mask(A, B, C, U, R)
3736 #define _mm512_mask3_fnmsub_round_ps(A, B, C, U, R) \
3737 (__m512)__builtin_ia32_vfnmsubps512_mask3(A, B, C, U, R)
3739 #define _mm512_maskz_fnmsub_round_ps(U, A, B, C, R) \
3740 (__m512)__builtin_ia32_vfmaddps512_maskz(-(A), B, -(C), U, R)
3743 extern __inline __m512i
3744 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3745 _mm512_abs_epi64 (__m512i __A
)
3747 return (__m512i
) __builtin_ia32_pabsq512_mask ((__v8di
) __A
,
3749 _mm512_undefined_epi32 (),
3753 extern __inline __m512i
3754 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3755 _mm512_mask_abs_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
)
3757 return (__m512i
) __builtin_ia32_pabsq512_mask ((__v8di
) __A
,
3762 extern __inline __m512i
3763 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3764 _mm512_maskz_abs_epi64 (__mmask8 __U
, __m512i __A
)
3766 return (__m512i
) __builtin_ia32_pabsq512_mask ((__v8di
) __A
,
3768 _mm512_setzero_si512 (),
3772 extern __inline __m512i
3773 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3774 _mm512_abs_epi32 (__m512i __A
)
3776 return (__m512i
) __builtin_ia32_pabsd512_mask ((__v16si
) __A
,
3778 _mm512_undefined_epi32 (),
3782 extern __inline __m512i
3783 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3784 _mm512_mask_abs_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
)
3786 return (__m512i
) __builtin_ia32_pabsd512_mask ((__v16si
) __A
,
3791 extern __inline __m512i
3792 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3793 _mm512_maskz_abs_epi32 (__mmask16 __U
, __m512i __A
)
3795 return (__m512i
) __builtin_ia32_pabsd512_mask ((__v16si
) __A
,
3797 _mm512_setzero_si512 (),
3801 extern __inline __m512
3802 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3803 _mm512_broadcastss_ps (__m128 __A
)
3805 return (__m512
) __builtin_ia32_broadcastss512 ((__v4sf
) __A
,
3807 _mm512_undefined_ps (),
3811 extern __inline __m512
3812 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3813 _mm512_mask_broadcastss_ps (__m512 __O
, __mmask16 __M
, __m128 __A
)
3815 return (__m512
) __builtin_ia32_broadcastss512 ((__v4sf
) __A
,
3816 (__v16sf
) __O
, __M
);
3819 extern __inline __m512
3820 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3821 _mm512_maskz_broadcastss_ps (__mmask16 __M
, __m128 __A
)
3823 return (__m512
) __builtin_ia32_broadcastss512 ((__v4sf
) __A
,
3825 _mm512_setzero_ps (),
3829 extern __inline __m512d
3830 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3831 _mm512_broadcastsd_pd (__m128d __A
)
3833 return (__m512d
) __builtin_ia32_broadcastsd512 ((__v2df
) __A
,
3835 _mm512_undefined_pd (),
3839 extern __inline __m512d
3840 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3841 _mm512_mask_broadcastsd_pd (__m512d __O
, __mmask8 __M
, __m128d __A
)
3843 return (__m512d
) __builtin_ia32_broadcastsd512 ((__v2df
) __A
,
3847 extern __inline __m512d
3848 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3849 _mm512_maskz_broadcastsd_pd (__mmask8 __M
, __m128d __A
)
3851 return (__m512d
) __builtin_ia32_broadcastsd512 ((__v2df
) __A
,
3853 _mm512_setzero_pd (),
3857 extern __inline __m512i
3858 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3859 _mm512_broadcastd_epi32 (__m128i __A
)
3861 return (__m512i
) __builtin_ia32_pbroadcastd512 ((__v4si
) __A
,
3863 _mm512_undefined_epi32 (),
3867 extern __inline __m512i
3868 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3869 _mm512_mask_broadcastd_epi32 (__m512i __O
, __mmask16 __M
, __m128i __A
)
3871 return (__m512i
) __builtin_ia32_pbroadcastd512 ((__v4si
) __A
,
3872 (__v16si
) __O
, __M
);
3875 extern __inline __m512i
3876 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3877 _mm512_maskz_broadcastd_epi32 (__mmask16 __M
, __m128i __A
)
3879 return (__m512i
) __builtin_ia32_pbroadcastd512 ((__v4si
) __A
,
3881 _mm512_setzero_si512 (),
3885 extern __inline __m512i
3886 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3887 _mm512_set1_epi32 (int __A
)
3889 return (__m512i
) __builtin_ia32_pbroadcastd512_gpr_mask (__A
,
3891 _mm512_undefined_epi32 (),
3895 extern __inline __m512i
3896 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3897 _mm512_mask_set1_epi32 (__m512i __O
, __mmask16 __M
, int __A
)
3899 return (__m512i
) __builtin_ia32_pbroadcastd512_gpr_mask (__A
, (__v16si
) __O
,
3903 extern __inline __m512i
3904 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3905 _mm512_maskz_set1_epi32 (__mmask16 __M
, int __A
)
3908 __builtin_ia32_pbroadcastd512_gpr_mask (__A
,
3909 (__v16si
) _mm512_setzero_si512 (),
3913 extern __inline __m512i
3914 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3915 _mm512_broadcastq_epi64 (__m128i __A
)
3917 return (__m512i
) __builtin_ia32_pbroadcastq512 ((__v2di
) __A
,
3919 _mm512_undefined_epi32 (),
3923 extern __inline __m512i
3924 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3925 _mm512_mask_broadcastq_epi64 (__m512i __O
, __mmask8 __M
, __m128i __A
)
3927 return (__m512i
) __builtin_ia32_pbroadcastq512 ((__v2di
) __A
,
3931 extern __inline __m512i
3932 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3933 _mm512_maskz_broadcastq_epi64 (__mmask8 __M
, __m128i __A
)
3935 return (__m512i
) __builtin_ia32_pbroadcastq512 ((__v2di
) __A
,
3937 _mm512_setzero_si512 (),
3941 extern __inline __m512i
3942 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3943 _mm512_set1_epi64 (long long __A
)
3945 return (__m512i
) __builtin_ia32_pbroadcastq512_gpr_mask (__A
,
3947 _mm512_undefined_epi32 (),
3951 extern __inline __m512i
3952 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3953 _mm512_mask_set1_epi64 (__m512i __O
, __mmask8 __M
, long long __A
)
3955 return (__m512i
) __builtin_ia32_pbroadcastq512_gpr_mask (__A
, (__v8di
) __O
,
3959 extern __inline __m512i
3960 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3961 _mm512_maskz_set1_epi64 (__mmask8 __M
, long long __A
)
3964 __builtin_ia32_pbroadcastq512_gpr_mask (__A
,
3965 (__v8di
) _mm512_setzero_si512 (),
3969 extern __inline __m512
3970 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3971 _mm512_broadcast_f32x4 (__m128 __A
)
3973 return (__m512
) __builtin_ia32_broadcastf32x4_512 ((__v4sf
) __A
,
3975 _mm512_undefined_ps (),
3979 extern __inline __m512
3980 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3981 _mm512_mask_broadcast_f32x4 (__m512 __O
, __mmask16 __M
, __m128 __A
)
3983 return (__m512
) __builtin_ia32_broadcastf32x4_512 ((__v4sf
) __A
,
3988 extern __inline __m512
3989 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3990 _mm512_maskz_broadcast_f32x4 (__mmask16 __M
, __m128 __A
)
3992 return (__m512
) __builtin_ia32_broadcastf32x4_512 ((__v4sf
) __A
,
3994 _mm512_setzero_ps (),
3998 extern __inline __m512i
3999 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4000 _mm512_broadcast_i32x4 (__m128i __A
)
4002 return (__m512i
) __builtin_ia32_broadcasti32x4_512 ((__v4si
) __A
,
4004 _mm512_undefined_epi32 (),
4008 extern __inline __m512i
4009 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4010 _mm512_mask_broadcast_i32x4 (__m512i __O
, __mmask16 __M
, __m128i __A
)
4012 return (__m512i
) __builtin_ia32_broadcasti32x4_512 ((__v4si
) __A
,
4017 extern __inline __m512i
4018 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4019 _mm512_maskz_broadcast_i32x4 (__mmask16 __M
, __m128i __A
)
4021 return (__m512i
) __builtin_ia32_broadcasti32x4_512 ((__v4si
) __A
,
4023 _mm512_setzero_si512 (),
4027 extern __inline __m512d
4028 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4029 _mm512_broadcast_f64x4 (__m256d __A
)
4031 return (__m512d
) __builtin_ia32_broadcastf64x4_512 ((__v4df
) __A
,
4033 _mm512_undefined_pd (),
4037 extern __inline __m512d
4038 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4039 _mm512_mask_broadcast_f64x4 (__m512d __O
, __mmask8 __M
, __m256d __A
)
4041 return (__m512d
) __builtin_ia32_broadcastf64x4_512 ((__v4df
) __A
,
4046 extern __inline __m512d
4047 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4048 _mm512_maskz_broadcast_f64x4 (__mmask8 __M
, __m256d __A
)
4050 return (__m512d
) __builtin_ia32_broadcastf64x4_512 ((__v4df
) __A
,
4052 _mm512_setzero_pd (),
4056 extern __inline __m512i
4057 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4058 _mm512_broadcast_i64x4 (__m256i __A
)
4060 return (__m512i
) __builtin_ia32_broadcasti64x4_512 ((__v4di
) __A
,
4062 _mm512_undefined_epi32 (),
4066 extern __inline __m512i
4067 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4068 _mm512_mask_broadcast_i64x4 (__m512i __O
, __mmask8 __M
, __m256i __A
)
4070 return (__m512i
) __builtin_ia32_broadcasti64x4_512 ((__v4di
) __A
,
4075 extern __inline __m512i
4076 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4077 _mm512_maskz_broadcast_i64x4 (__mmask8 __M
, __m256i __A
)
4079 return (__m512i
) __builtin_ia32_broadcasti64x4_512 ((__v4di
) __A
,
4081 _mm512_setzero_si512 (),
4087 _MM_PERM_AAAA
= 0x00, _MM_PERM_AAAB
= 0x01, _MM_PERM_AAAC
= 0x02,
4088 _MM_PERM_AAAD
= 0x03, _MM_PERM_AABA
= 0x04, _MM_PERM_AABB
= 0x05,
4089 _MM_PERM_AABC
= 0x06, _MM_PERM_AABD
= 0x07, _MM_PERM_AACA
= 0x08,
4090 _MM_PERM_AACB
= 0x09, _MM_PERM_AACC
= 0x0A, _MM_PERM_AACD
= 0x0B,
4091 _MM_PERM_AADA
= 0x0C, _MM_PERM_AADB
= 0x0D, _MM_PERM_AADC
= 0x0E,
4092 _MM_PERM_AADD
= 0x0F, _MM_PERM_ABAA
= 0x10, _MM_PERM_ABAB
= 0x11,
4093 _MM_PERM_ABAC
= 0x12, _MM_PERM_ABAD
= 0x13, _MM_PERM_ABBA
= 0x14,
4094 _MM_PERM_ABBB
= 0x15, _MM_PERM_ABBC
= 0x16, _MM_PERM_ABBD
= 0x17,
4095 _MM_PERM_ABCA
= 0x18, _MM_PERM_ABCB
= 0x19, _MM_PERM_ABCC
= 0x1A,
4096 _MM_PERM_ABCD
= 0x1B, _MM_PERM_ABDA
= 0x1C, _MM_PERM_ABDB
= 0x1D,
4097 _MM_PERM_ABDC
= 0x1E, _MM_PERM_ABDD
= 0x1F, _MM_PERM_ACAA
= 0x20,
4098 _MM_PERM_ACAB
= 0x21, _MM_PERM_ACAC
= 0x22, _MM_PERM_ACAD
= 0x23,
4099 _MM_PERM_ACBA
= 0x24, _MM_PERM_ACBB
= 0x25, _MM_PERM_ACBC
= 0x26,
4100 _MM_PERM_ACBD
= 0x27, _MM_PERM_ACCA
= 0x28, _MM_PERM_ACCB
= 0x29,
4101 _MM_PERM_ACCC
= 0x2A, _MM_PERM_ACCD
= 0x2B, _MM_PERM_ACDA
= 0x2C,
4102 _MM_PERM_ACDB
= 0x2D, _MM_PERM_ACDC
= 0x2E, _MM_PERM_ACDD
= 0x2F,
4103 _MM_PERM_ADAA
= 0x30, _MM_PERM_ADAB
= 0x31, _MM_PERM_ADAC
= 0x32,
4104 _MM_PERM_ADAD
= 0x33, _MM_PERM_ADBA
= 0x34, _MM_PERM_ADBB
= 0x35,
4105 _MM_PERM_ADBC
= 0x36, _MM_PERM_ADBD
= 0x37, _MM_PERM_ADCA
= 0x38,
4106 _MM_PERM_ADCB
= 0x39, _MM_PERM_ADCC
= 0x3A, _MM_PERM_ADCD
= 0x3B,
4107 _MM_PERM_ADDA
= 0x3C, _MM_PERM_ADDB
= 0x3D, _MM_PERM_ADDC
= 0x3E,
4108 _MM_PERM_ADDD
= 0x3F, _MM_PERM_BAAA
= 0x40, _MM_PERM_BAAB
= 0x41,
4109 _MM_PERM_BAAC
= 0x42, _MM_PERM_BAAD
= 0x43, _MM_PERM_BABA
= 0x44,
4110 _MM_PERM_BABB
= 0x45, _MM_PERM_BABC
= 0x46, _MM_PERM_BABD
= 0x47,
4111 _MM_PERM_BACA
= 0x48, _MM_PERM_BACB
= 0x49, _MM_PERM_BACC
= 0x4A,
4112 _MM_PERM_BACD
= 0x4B, _MM_PERM_BADA
= 0x4C, _MM_PERM_BADB
= 0x4D,
4113 _MM_PERM_BADC
= 0x4E, _MM_PERM_BADD
= 0x4F, _MM_PERM_BBAA
= 0x50,
4114 _MM_PERM_BBAB
= 0x51, _MM_PERM_BBAC
= 0x52, _MM_PERM_BBAD
= 0x53,
4115 _MM_PERM_BBBA
= 0x54, _MM_PERM_BBBB
= 0x55, _MM_PERM_BBBC
= 0x56,
4116 _MM_PERM_BBBD
= 0x57, _MM_PERM_BBCA
= 0x58, _MM_PERM_BBCB
= 0x59,
4117 _MM_PERM_BBCC
= 0x5A, _MM_PERM_BBCD
= 0x5B, _MM_PERM_BBDA
= 0x5C,
4118 _MM_PERM_BBDB
= 0x5D, _MM_PERM_BBDC
= 0x5E, _MM_PERM_BBDD
= 0x5F,
4119 _MM_PERM_BCAA
= 0x60, _MM_PERM_BCAB
= 0x61, _MM_PERM_BCAC
= 0x62,
4120 _MM_PERM_BCAD
= 0x63, _MM_PERM_BCBA
= 0x64, _MM_PERM_BCBB
= 0x65,
4121 _MM_PERM_BCBC
= 0x66, _MM_PERM_BCBD
= 0x67, _MM_PERM_BCCA
= 0x68,
4122 _MM_PERM_BCCB
= 0x69, _MM_PERM_BCCC
= 0x6A, _MM_PERM_BCCD
= 0x6B,
4123 _MM_PERM_BCDA
= 0x6C, _MM_PERM_BCDB
= 0x6D, _MM_PERM_BCDC
= 0x6E,
4124 _MM_PERM_BCDD
= 0x6F, _MM_PERM_BDAA
= 0x70, _MM_PERM_BDAB
= 0x71,
4125 _MM_PERM_BDAC
= 0x72, _MM_PERM_BDAD
= 0x73, _MM_PERM_BDBA
= 0x74,
4126 _MM_PERM_BDBB
= 0x75, _MM_PERM_BDBC
= 0x76, _MM_PERM_BDBD
= 0x77,
4127 _MM_PERM_BDCA
= 0x78, _MM_PERM_BDCB
= 0x79, _MM_PERM_BDCC
= 0x7A,
4128 _MM_PERM_BDCD
= 0x7B, _MM_PERM_BDDA
= 0x7C, _MM_PERM_BDDB
= 0x7D,
4129 _MM_PERM_BDDC
= 0x7E, _MM_PERM_BDDD
= 0x7F, _MM_PERM_CAAA
= 0x80,
4130 _MM_PERM_CAAB
= 0x81, _MM_PERM_CAAC
= 0x82, _MM_PERM_CAAD
= 0x83,
4131 _MM_PERM_CABA
= 0x84, _MM_PERM_CABB
= 0x85, _MM_PERM_CABC
= 0x86,
4132 _MM_PERM_CABD
= 0x87, _MM_PERM_CACA
= 0x88, _MM_PERM_CACB
= 0x89,
4133 _MM_PERM_CACC
= 0x8A, _MM_PERM_CACD
= 0x8B, _MM_PERM_CADA
= 0x8C,
4134 _MM_PERM_CADB
= 0x8D, _MM_PERM_CADC
= 0x8E, _MM_PERM_CADD
= 0x8F,
4135 _MM_PERM_CBAA
= 0x90, _MM_PERM_CBAB
= 0x91, _MM_PERM_CBAC
= 0x92,
4136 _MM_PERM_CBAD
= 0x93, _MM_PERM_CBBA
= 0x94, _MM_PERM_CBBB
= 0x95,
4137 _MM_PERM_CBBC
= 0x96, _MM_PERM_CBBD
= 0x97, _MM_PERM_CBCA
= 0x98,
4138 _MM_PERM_CBCB
= 0x99, _MM_PERM_CBCC
= 0x9A, _MM_PERM_CBCD
= 0x9B,
4139 _MM_PERM_CBDA
= 0x9C, _MM_PERM_CBDB
= 0x9D, _MM_PERM_CBDC
= 0x9E,
4140 _MM_PERM_CBDD
= 0x9F, _MM_PERM_CCAA
= 0xA0, _MM_PERM_CCAB
= 0xA1,
4141 _MM_PERM_CCAC
= 0xA2, _MM_PERM_CCAD
= 0xA3, _MM_PERM_CCBA
= 0xA4,
4142 _MM_PERM_CCBB
= 0xA5, _MM_PERM_CCBC
= 0xA6, _MM_PERM_CCBD
= 0xA7,
4143 _MM_PERM_CCCA
= 0xA8, _MM_PERM_CCCB
= 0xA9, _MM_PERM_CCCC
= 0xAA,
4144 _MM_PERM_CCCD
= 0xAB, _MM_PERM_CCDA
= 0xAC, _MM_PERM_CCDB
= 0xAD,
4145 _MM_PERM_CCDC
= 0xAE, _MM_PERM_CCDD
= 0xAF, _MM_PERM_CDAA
= 0xB0,
4146 _MM_PERM_CDAB
= 0xB1, _MM_PERM_CDAC
= 0xB2, _MM_PERM_CDAD
= 0xB3,
4147 _MM_PERM_CDBA
= 0xB4, _MM_PERM_CDBB
= 0xB5, _MM_PERM_CDBC
= 0xB6,
4148 _MM_PERM_CDBD
= 0xB7, _MM_PERM_CDCA
= 0xB8, _MM_PERM_CDCB
= 0xB9,
4149 _MM_PERM_CDCC
= 0xBA, _MM_PERM_CDCD
= 0xBB, _MM_PERM_CDDA
= 0xBC,
4150 _MM_PERM_CDDB
= 0xBD, _MM_PERM_CDDC
= 0xBE, _MM_PERM_CDDD
= 0xBF,
4151 _MM_PERM_DAAA
= 0xC0, _MM_PERM_DAAB
= 0xC1, _MM_PERM_DAAC
= 0xC2,
4152 _MM_PERM_DAAD
= 0xC3, _MM_PERM_DABA
= 0xC4, _MM_PERM_DABB
= 0xC5,
4153 _MM_PERM_DABC
= 0xC6, _MM_PERM_DABD
= 0xC7, _MM_PERM_DACA
= 0xC8,
4154 _MM_PERM_DACB
= 0xC9, _MM_PERM_DACC
= 0xCA, _MM_PERM_DACD
= 0xCB,
4155 _MM_PERM_DADA
= 0xCC, _MM_PERM_DADB
= 0xCD, _MM_PERM_DADC
= 0xCE,
4156 _MM_PERM_DADD
= 0xCF, _MM_PERM_DBAA
= 0xD0, _MM_PERM_DBAB
= 0xD1,
4157 _MM_PERM_DBAC
= 0xD2, _MM_PERM_DBAD
= 0xD3, _MM_PERM_DBBA
= 0xD4,
4158 _MM_PERM_DBBB
= 0xD5, _MM_PERM_DBBC
= 0xD6, _MM_PERM_DBBD
= 0xD7,
4159 _MM_PERM_DBCA
= 0xD8, _MM_PERM_DBCB
= 0xD9, _MM_PERM_DBCC
= 0xDA,
4160 _MM_PERM_DBCD
= 0xDB, _MM_PERM_DBDA
= 0xDC, _MM_PERM_DBDB
= 0xDD,
4161 _MM_PERM_DBDC
= 0xDE, _MM_PERM_DBDD
= 0xDF, _MM_PERM_DCAA
= 0xE0,
4162 _MM_PERM_DCAB
= 0xE1, _MM_PERM_DCAC
= 0xE2, _MM_PERM_DCAD
= 0xE3,
4163 _MM_PERM_DCBA
= 0xE4, _MM_PERM_DCBB
= 0xE5, _MM_PERM_DCBC
= 0xE6,
4164 _MM_PERM_DCBD
= 0xE7, _MM_PERM_DCCA
= 0xE8, _MM_PERM_DCCB
= 0xE9,
4165 _MM_PERM_DCCC
= 0xEA, _MM_PERM_DCCD
= 0xEB, _MM_PERM_DCDA
= 0xEC,
4166 _MM_PERM_DCDB
= 0xED, _MM_PERM_DCDC
= 0xEE, _MM_PERM_DCDD
= 0xEF,
4167 _MM_PERM_DDAA
= 0xF0, _MM_PERM_DDAB
= 0xF1, _MM_PERM_DDAC
= 0xF2,
4168 _MM_PERM_DDAD
= 0xF3, _MM_PERM_DDBA
= 0xF4, _MM_PERM_DDBB
= 0xF5,
4169 _MM_PERM_DDBC
= 0xF6, _MM_PERM_DDBD
= 0xF7, _MM_PERM_DDCA
= 0xF8,
4170 _MM_PERM_DDCB
= 0xF9, _MM_PERM_DDCC
= 0xFA, _MM_PERM_DDCD
= 0xFB,
4171 _MM_PERM_DDDA
= 0xFC, _MM_PERM_DDDB
= 0xFD, _MM_PERM_DDDC
= 0xFE,
4172 _MM_PERM_DDDD
= 0xFF
4176 extern __inline __m512i
4177 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4178 _mm512_shuffle_epi32 (__m512i __A
, _MM_PERM_ENUM __mask
)
4180 return (__m512i
) __builtin_ia32_pshufd512_mask ((__v16si
) __A
,
4183 _mm512_undefined_epi32 (),
4187 extern __inline __m512i
4188 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4189 _mm512_mask_shuffle_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
,
4190 _MM_PERM_ENUM __mask
)
4192 return (__m512i
) __builtin_ia32_pshufd512_mask ((__v16si
) __A
,
4198 extern __inline __m512i
4199 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4200 _mm512_maskz_shuffle_epi32 (__mmask16 __U
, __m512i __A
, _MM_PERM_ENUM __mask
)
4202 return (__m512i
) __builtin_ia32_pshufd512_mask ((__v16si
) __A
,
4205 _mm512_setzero_si512 (),
4209 extern __inline __m512i
4210 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4211 _mm512_shuffle_i64x2 (__m512i __A
, __m512i __B
, const int __imm
)
4213 return (__m512i
) __builtin_ia32_shuf_i64x2_mask ((__v8di
) __A
,
4214 (__v8di
) __B
, __imm
,
4216 _mm512_undefined_epi32 (),
4220 extern __inline __m512i
4221 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4222 _mm512_mask_shuffle_i64x2 (__m512i __W
, __mmask8 __U
, __m512i __A
,
4223 __m512i __B
, const int __imm
)
4225 return (__m512i
) __builtin_ia32_shuf_i64x2_mask ((__v8di
) __A
,
4226 (__v8di
) __B
, __imm
,
4231 extern __inline __m512i
4232 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4233 _mm512_maskz_shuffle_i64x2 (__mmask8 __U
, __m512i __A
, __m512i __B
,
4236 return (__m512i
) __builtin_ia32_shuf_i64x2_mask ((__v8di
) __A
,
4237 (__v8di
) __B
, __imm
,
4239 _mm512_setzero_si512 (),
4243 extern __inline __m512i
4244 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4245 _mm512_shuffle_i32x4 (__m512i __A
, __m512i __B
, const int __imm
)
4247 return (__m512i
) __builtin_ia32_shuf_i32x4_mask ((__v16si
) __A
,
4251 _mm512_undefined_epi32 (),
4255 extern __inline __m512i
4256 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4257 _mm512_mask_shuffle_i32x4 (__m512i __W
, __mmask16 __U
, __m512i __A
,
4258 __m512i __B
, const int __imm
)
4260 return (__m512i
) __builtin_ia32_shuf_i32x4_mask ((__v16si
) __A
,
4267 extern __inline __m512i
4268 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4269 _mm512_maskz_shuffle_i32x4 (__mmask16 __U
, __m512i __A
, __m512i __B
,
4272 return (__m512i
) __builtin_ia32_shuf_i32x4_mask ((__v16si
) __A
,
4276 _mm512_setzero_si512 (),
4280 extern __inline __m512d
4281 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4282 _mm512_shuffle_f64x2 (__m512d __A
, __m512d __B
, const int __imm
)
4284 return (__m512d
) __builtin_ia32_shuf_f64x2_mask ((__v8df
) __A
,
4285 (__v8df
) __B
, __imm
,
4287 _mm512_undefined_pd (),
4291 extern __inline __m512d
4292 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4293 _mm512_mask_shuffle_f64x2 (__m512d __W
, __mmask8 __U
, __m512d __A
,
4294 __m512d __B
, const int __imm
)
4296 return (__m512d
) __builtin_ia32_shuf_f64x2_mask ((__v8df
) __A
,
4297 (__v8df
) __B
, __imm
,
4302 extern __inline __m512d
4303 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4304 _mm512_maskz_shuffle_f64x2 (__mmask8 __U
, __m512d __A
, __m512d __B
,
4307 return (__m512d
) __builtin_ia32_shuf_f64x2_mask ((__v8df
) __A
,
4308 (__v8df
) __B
, __imm
,
4310 _mm512_setzero_pd (),
4314 extern __inline __m512
4315 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4316 _mm512_shuffle_f32x4 (__m512 __A
, __m512 __B
, const int __imm
)
4318 return (__m512
) __builtin_ia32_shuf_f32x4_mask ((__v16sf
) __A
,
4319 (__v16sf
) __B
, __imm
,
4321 _mm512_undefined_ps (),
4325 extern __inline __m512
4326 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4327 _mm512_mask_shuffle_f32x4 (__m512 __W
, __mmask16 __U
, __m512 __A
,
4328 __m512 __B
, const int __imm
)
4330 return (__m512
) __builtin_ia32_shuf_f32x4_mask ((__v16sf
) __A
,
4331 (__v16sf
) __B
, __imm
,
4336 extern __inline __m512
4337 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4338 _mm512_maskz_shuffle_f32x4 (__mmask16 __U
, __m512 __A
, __m512 __B
,
4341 return (__m512
) __builtin_ia32_shuf_f32x4_mask ((__v16sf
) __A
,
4342 (__v16sf
) __B
, __imm
,
4344 _mm512_setzero_ps (),
4349 #define _mm512_shuffle_epi32(X, C) \
4350 ((__m512i) __builtin_ia32_pshufd512_mask ((__v16si)(__m512i)(X), (int)(C),\
4351 (__v16si)(__m512i)_mm512_undefined_epi32 (),\
4354 #define _mm512_mask_shuffle_epi32(W, U, X, C) \
4355 ((__m512i) __builtin_ia32_pshufd512_mask ((__v16si)(__m512i)(X), (int)(C),\
4356 (__v16si)(__m512i)(W),\
4359 #define _mm512_maskz_shuffle_epi32(U, X, C) \
4360 ((__m512i) __builtin_ia32_pshufd512_mask ((__v16si)(__m512i)(X), (int)(C),\
4361 (__v16si)(__m512i)_mm512_setzero_si512 (),\
4364 #define _mm512_shuffle_i64x2(X, Y, C) \
4365 ((__m512i) __builtin_ia32_shuf_i64x2_mask ((__v8di)(__m512i)(X), \
4366 (__v8di)(__m512i)(Y), (int)(C),\
4367 (__v8di)(__m512i)_mm512_undefined_epi32 (),\
4370 #define _mm512_mask_shuffle_i64x2(W, U, X, Y, C) \
4371 ((__m512i) __builtin_ia32_shuf_i64x2_mask ((__v8di)(__m512i)(X), \
4372 (__v8di)(__m512i)(Y), (int)(C),\
4373 (__v8di)(__m512i)(W),\
4376 #define _mm512_maskz_shuffle_i64x2(U, X, Y, C) \
4377 ((__m512i) __builtin_ia32_shuf_i64x2_mask ((__v8di)(__m512i)(X), \
4378 (__v8di)(__m512i)(Y), (int)(C),\
4379 (__v8di)(__m512i)_mm512_setzero_si512 (),\
4382 #define _mm512_shuffle_i32x4(X, Y, C) \
4383 ((__m512i) __builtin_ia32_shuf_i32x4_mask ((__v16si)(__m512i)(X), \
4384 (__v16si)(__m512i)(Y), (int)(C),\
4385 (__v16si)(__m512i)_mm512_undefined_epi32 (),\
4388 #define _mm512_mask_shuffle_i32x4(W, U, X, Y, C) \
4389 ((__m512i) __builtin_ia32_shuf_i32x4_mask ((__v16si)(__m512i)(X), \
4390 (__v16si)(__m512i)(Y), (int)(C),\
4391 (__v16si)(__m512i)(W),\
4394 #define _mm512_maskz_shuffle_i32x4(U, X, Y, C) \
4395 ((__m512i) __builtin_ia32_shuf_i32x4_mask ((__v16si)(__m512i)(X), \
4396 (__v16si)(__m512i)(Y), (int)(C),\
4397 (__v16si)(__m512i)_mm512_setzero_si512 (),\
4400 #define _mm512_shuffle_f64x2(X, Y, C) \
4401 ((__m512d) __builtin_ia32_shuf_f64x2_mask ((__v8df)(__m512d)(X), \
4402 (__v8df)(__m512d)(Y), (int)(C),\
4403 (__v8df)(__m512d)_mm512_undefined_pd(),\
4406 #define _mm512_mask_shuffle_f64x2(W, U, X, Y, C) \
4407 ((__m512d) __builtin_ia32_shuf_f64x2_mask ((__v8df)(__m512d)(X), \
4408 (__v8df)(__m512d)(Y), (int)(C),\
4409 (__v8df)(__m512d)(W),\
4412 #define _mm512_maskz_shuffle_f64x2(U, X, Y, C) \
4413 ((__m512d) __builtin_ia32_shuf_f64x2_mask ((__v8df)(__m512d)(X), \
4414 (__v8df)(__m512d)(Y), (int)(C),\
4415 (__v8df)(__m512d)_mm512_setzero_pd(),\
4418 #define _mm512_shuffle_f32x4(X, Y, C) \
4419 ((__m512) __builtin_ia32_shuf_f32x4_mask ((__v16sf)(__m512)(X), \
4420 (__v16sf)(__m512)(Y), (int)(C),\
4421 (__v16sf)(__m512)_mm512_undefined_ps(),\
4424 #define _mm512_mask_shuffle_f32x4(W, U, X, Y, C) \
4425 ((__m512) __builtin_ia32_shuf_f32x4_mask ((__v16sf)(__m512)(X), \
4426 (__v16sf)(__m512)(Y), (int)(C),\
4427 (__v16sf)(__m512)(W),\
4430 #define _mm512_maskz_shuffle_f32x4(U, X, Y, C) \
4431 ((__m512) __builtin_ia32_shuf_f32x4_mask ((__v16sf)(__m512)(X), \
4432 (__v16sf)(__m512)(Y), (int)(C),\
4433 (__v16sf)(__m512)_mm512_setzero_ps(),\
4437 extern __inline __m512i
4438 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4439 _mm512_rolv_epi32 (__m512i __A
, __m512i __B
)
4441 return (__m512i
) __builtin_ia32_prolvd512_mask ((__v16si
) __A
,
4444 _mm512_undefined_epi32 (),
4448 extern __inline __m512i
4449 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4450 _mm512_mask_rolv_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
4452 return (__m512i
) __builtin_ia32_prolvd512_mask ((__v16si
) __A
,
4458 extern __inline __m512i
4459 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4460 _mm512_maskz_rolv_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
4462 return (__m512i
) __builtin_ia32_prolvd512_mask ((__v16si
) __A
,
4465 _mm512_setzero_si512 (),
4469 extern __inline __m512i
4470 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4471 _mm512_rorv_epi32 (__m512i __A
, __m512i __B
)
4473 return (__m512i
) __builtin_ia32_prorvd512_mask ((__v16si
) __A
,
4476 _mm512_undefined_epi32 (),
4480 extern __inline __m512i
4481 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4482 _mm512_mask_rorv_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
4484 return (__m512i
) __builtin_ia32_prorvd512_mask ((__v16si
) __A
,
4490 extern __inline __m512i
4491 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4492 _mm512_maskz_rorv_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
4494 return (__m512i
) __builtin_ia32_prorvd512_mask ((__v16si
) __A
,
4497 _mm512_setzero_si512 (),
4501 extern __inline __m512i
4502 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4503 _mm512_rolv_epi64 (__m512i __A
, __m512i __B
)
4505 return (__m512i
) __builtin_ia32_prolvq512_mask ((__v8di
) __A
,
4508 _mm512_undefined_epi32 (),
4512 extern __inline __m512i
4513 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4514 _mm512_mask_rolv_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
4516 return (__m512i
) __builtin_ia32_prolvq512_mask ((__v8di
) __A
,
4522 extern __inline __m512i
4523 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4524 _mm512_maskz_rolv_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
4526 return (__m512i
) __builtin_ia32_prolvq512_mask ((__v8di
) __A
,
4529 _mm512_setzero_si512 (),
4533 extern __inline __m512i
4534 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4535 _mm512_rorv_epi64 (__m512i __A
, __m512i __B
)
4537 return (__m512i
) __builtin_ia32_prorvq512_mask ((__v8di
) __A
,
4540 _mm512_undefined_epi32 (),
4544 extern __inline __m512i
4545 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4546 _mm512_mask_rorv_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
4548 return (__m512i
) __builtin_ia32_prorvq512_mask ((__v8di
) __A
,
4554 extern __inline __m512i
4555 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4556 _mm512_maskz_rorv_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
4558 return (__m512i
) __builtin_ia32_prorvq512_mask ((__v8di
) __A
,
4561 _mm512_setzero_si512 (),
4566 extern __inline __m256i
4567 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4568 _mm512_cvtt_roundpd_epi32 (__m512d __A
, const int __R
)
4570 return (__m256i
) __builtin_ia32_cvttpd2dq512_mask ((__v8df
) __A
,
4572 _mm256_undefined_si256 (),
4573 (__mmask8
) -1, __R
);
4576 extern __inline __m256i
4577 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4578 _mm512_mask_cvtt_roundpd_epi32 (__m256i __W
, __mmask8 __U
, __m512d __A
,
4581 return (__m256i
) __builtin_ia32_cvttpd2dq512_mask ((__v8df
) __A
,
4583 (__mmask8
) __U
, __R
);
4586 extern __inline __m256i
4587 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4588 _mm512_maskz_cvtt_roundpd_epi32 (__mmask8 __U
, __m512d __A
, const int __R
)
4590 return (__m256i
) __builtin_ia32_cvttpd2dq512_mask ((__v8df
) __A
,
4592 _mm256_setzero_si256 (),
4593 (__mmask8
) __U
, __R
);
4596 extern __inline __m256i
4597 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4598 _mm512_cvtt_roundpd_epu32 (__m512d __A
, const int __R
)
4600 return (__m256i
) __builtin_ia32_cvttpd2udq512_mask ((__v8df
) __A
,
4602 _mm256_undefined_si256 (),
4603 (__mmask8
) -1, __R
);
4606 extern __inline __m256i
4607 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4608 _mm512_mask_cvtt_roundpd_epu32 (__m256i __W
, __mmask8 __U
, __m512d __A
,
4611 return (__m256i
) __builtin_ia32_cvttpd2udq512_mask ((__v8df
) __A
,
4613 (__mmask8
) __U
, __R
);
4616 extern __inline __m256i
4617 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4618 _mm512_maskz_cvtt_roundpd_epu32 (__mmask8 __U
, __m512d __A
, const int __R
)
4620 return (__m256i
) __builtin_ia32_cvttpd2udq512_mask ((__v8df
) __A
,
4622 _mm256_setzero_si256 (),
4623 (__mmask8
) __U
, __R
);
4626 #define _mm512_cvtt_roundpd_epi32(A, B) \
4627 ((__m256i)__builtin_ia32_cvttpd2dq512_mask(A, (__v8si)_mm256_undefined_si256(), -1, B))
4629 #define _mm512_mask_cvtt_roundpd_epi32(W, U, A, B) \
4630 ((__m256i)__builtin_ia32_cvttpd2dq512_mask(A, (__v8si)(W), U, B))
4632 #define _mm512_maskz_cvtt_roundpd_epi32(U, A, B) \
4633 ((__m256i)__builtin_ia32_cvttpd2dq512_mask(A, (__v8si)_mm256_setzero_si256(), U, B))
4635 #define _mm512_cvtt_roundpd_epu32(A, B) \
4636 ((__m256i)__builtin_ia32_cvttpd2udq512_mask(A, (__v8si)_mm256_undefined_si256(), -1, B))
4638 #define _mm512_mask_cvtt_roundpd_epu32(W, U, A, B) \
4639 ((__m256i)__builtin_ia32_cvttpd2udq512_mask(A, (__v8si)(W), U, B))
4641 #define _mm512_maskz_cvtt_roundpd_epu32(U, A, B) \
4642 ((__m256i)__builtin_ia32_cvttpd2udq512_mask(A, (__v8si)_mm256_setzero_si256(), U, B))
4646 extern __inline __m256i
4647 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4648 _mm512_cvt_roundpd_epi32 (__m512d __A
, const int __R
)
4650 return (__m256i
) __builtin_ia32_cvtpd2dq512_mask ((__v8df
) __A
,
4652 _mm256_undefined_si256 (),
4653 (__mmask8
) -1, __R
);
4656 extern __inline __m256i
4657 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4658 _mm512_mask_cvt_roundpd_epi32 (__m256i __W
, __mmask8 __U
, __m512d __A
,
4661 return (__m256i
) __builtin_ia32_cvtpd2dq512_mask ((__v8df
) __A
,
4663 (__mmask8
) __U
, __R
);
4666 extern __inline __m256i
4667 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4668 _mm512_maskz_cvt_roundpd_epi32 (__mmask8 __U
, __m512d __A
, const int __R
)
4670 return (__m256i
) __builtin_ia32_cvtpd2dq512_mask ((__v8df
) __A
,
4672 _mm256_setzero_si256 (),
4673 (__mmask8
) __U
, __R
);
4676 extern __inline __m256i
4677 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4678 _mm512_cvt_roundpd_epu32 (__m512d __A
, const int __R
)
4680 return (__m256i
) __builtin_ia32_cvtpd2udq512_mask ((__v8df
) __A
,
4682 _mm256_undefined_si256 (),
4683 (__mmask8
) -1, __R
);
4686 extern __inline __m256i
4687 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4688 _mm512_mask_cvt_roundpd_epu32 (__m256i __W
, __mmask8 __U
, __m512d __A
,
4691 return (__m256i
) __builtin_ia32_cvtpd2udq512_mask ((__v8df
) __A
,
4693 (__mmask8
) __U
, __R
);
4696 extern __inline __m256i
4697 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4698 _mm512_maskz_cvt_roundpd_epu32 (__mmask8 __U
, __m512d __A
, const int __R
)
4700 return (__m256i
) __builtin_ia32_cvtpd2udq512_mask ((__v8df
) __A
,
4702 _mm256_setzero_si256 (),
4703 (__mmask8
) __U
, __R
);
4706 #define _mm512_cvt_roundpd_epi32(A, B) \
4707 ((__m256i)__builtin_ia32_cvtpd2dq512_mask(A, (__v8si)_mm256_undefined_si256(), -1, B))
4709 #define _mm512_mask_cvt_roundpd_epi32(W, U, A, B) \
4710 ((__m256i)__builtin_ia32_cvtpd2dq512_mask(A, (__v8si)(W), U, B))
4712 #define _mm512_maskz_cvt_roundpd_epi32(U, A, B) \
4713 ((__m256i)__builtin_ia32_cvtpd2dq512_mask(A, (__v8si)_mm256_setzero_si256(), U, B))
4715 #define _mm512_cvt_roundpd_epu32(A, B) \
4716 ((__m256i)__builtin_ia32_cvtpd2udq512_mask(A, (__v8si)_mm256_undefined_si256(), -1, B))
4718 #define _mm512_mask_cvt_roundpd_epu32(W, U, A, B) \
4719 ((__m256i)__builtin_ia32_cvtpd2udq512_mask(A, (__v8si)(W), U, B))
4721 #define _mm512_maskz_cvt_roundpd_epu32(U, A, B) \
4722 ((__m256i)__builtin_ia32_cvtpd2udq512_mask(A, (__v8si)_mm256_setzero_si256(), U, B))
4726 extern __inline __m512i
4727 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4728 _mm512_cvtt_roundps_epi32 (__m512 __A
, const int __R
)
4730 return (__m512i
) __builtin_ia32_cvttps2dq512_mask ((__v16sf
) __A
,
4732 _mm512_undefined_epi32 (),
4733 (__mmask16
) -1, __R
);
4736 extern __inline __m512i
4737 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4738 _mm512_mask_cvtt_roundps_epi32 (__m512i __W
, __mmask16 __U
, __m512 __A
,
4741 return (__m512i
) __builtin_ia32_cvttps2dq512_mask ((__v16sf
) __A
,
4743 (__mmask16
) __U
, __R
);
4746 extern __inline __m512i
4747 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4748 _mm512_maskz_cvtt_roundps_epi32 (__mmask16 __U
, __m512 __A
, const int __R
)
4750 return (__m512i
) __builtin_ia32_cvttps2dq512_mask ((__v16sf
) __A
,
4752 _mm512_setzero_si512 (),
4753 (__mmask16
) __U
, __R
);
4756 extern __inline __m512i
4757 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4758 _mm512_cvtt_roundps_epu32 (__m512 __A
, const int __R
)
4760 return (__m512i
) __builtin_ia32_cvttps2udq512_mask ((__v16sf
) __A
,
4762 _mm512_undefined_epi32 (),
4763 (__mmask16
) -1, __R
);
4766 extern __inline __m512i
4767 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4768 _mm512_mask_cvtt_roundps_epu32 (__m512i __W
, __mmask16 __U
, __m512 __A
,
4771 return (__m512i
) __builtin_ia32_cvttps2udq512_mask ((__v16sf
) __A
,
4773 (__mmask16
) __U
, __R
);
4776 extern __inline __m512i
4777 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4778 _mm512_maskz_cvtt_roundps_epu32 (__mmask16 __U
, __m512 __A
, const int __R
)
4780 return (__m512i
) __builtin_ia32_cvttps2udq512_mask ((__v16sf
) __A
,
4782 _mm512_setzero_si512 (),
4783 (__mmask16
) __U
, __R
);
4786 #define _mm512_cvtt_roundps_epi32(A, B) \
4787 ((__m512i)__builtin_ia32_cvttps2dq512_mask(A, (__v16si)_mm512_undefined_epi32 (), -1, B))
4789 #define _mm512_mask_cvtt_roundps_epi32(W, U, A, B) \
4790 ((__m512i)__builtin_ia32_cvttps2dq512_mask(A, (__v16si)(W), U, B))
4792 #define _mm512_maskz_cvtt_roundps_epi32(U, A, B) \
4793 ((__m512i)__builtin_ia32_cvttps2dq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
4795 #define _mm512_cvtt_roundps_epu32(A, B) \
4796 ((__m512i)__builtin_ia32_cvttps2udq512_mask(A, (__v16si)_mm512_undefined_epi32 (), -1, B))
4798 #define _mm512_mask_cvtt_roundps_epu32(W, U, A, B) \
4799 ((__m512i)__builtin_ia32_cvttps2udq512_mask(A, (__v16si)(W), U, B))
4801 #define _mm512_maskz_cvtt_roundps_epu32(U, A, B) \
4802 ((__m512i)__builtin_ia32_cvttps2udq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
4806 extern __inline __m512i
4807 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4808 _mm512_cvt_roundps_epi32 (__m512 __A
, const int __R
)
4810 return (__m512i
) __builtin_ia32_cvtps2dq512_mask ((__v16sf
) __A
,
4812 _mm512_undefined_epi32 (),
4813 (__mmask16
) -1, __R
);
4816 extern __inline __m512i
4817 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4818 _mm512_mask_cvt_roundps_epi32 (__m512i __W
, __mmask16 __U
, __m512 __A
,
4821 return (__m512i
) __builtin_ia32_cvtps2dq512_mask ((__v16sf
) __A
,
4823 (__mmask16
) __U
, __R
);
4826 extern __inline __m512i
4827 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4828 _mm512_maskz_cvt_roundps_epi32 (__mmask16 __U
, __m512 __A
, const int __R
)
4830 return (__m512i
) __builtin_ia32_cvtps2dq512_mask ((__v16sf
) __A
,
4832 _mm512_setzero_si512 (),
4833 (__mmask16
) __U
, __R
);
4836 extern __inline __m512i
4837 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4838 _mm512_cvt_roundps_epu32 (__m512 __A
, const int __R
)
4840 return (__m512i
) __builtin_ia32_cvtps2udq512_mask ((__v16sf
) __A
,
4842 _mm512_undefined_epi32 (),
4843 (__mmask16
) -1, __R
);
4846 extern __inline __m512i
4847 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4848 _mm512_mask_cvt_roundps_epu32 (__m512i __W
, __mmask16 __U
, __m512 __A
,
4851 return (__m512i
) __builtin_ia32_cvtps2udq512_mask ((__v16sf
) __A
,
4853 (__mmask16
) __U
, __R
);
4856 extern __inline __m512i
4857 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4858 _mm512_maskz_cvt_roundps_epu32 (__mmask16 __U
, __m512 __A
, const int __R
)
4860 return (__m512i
) __builtin_ia32_cvtps2udq512_mask ((__v16sf
) __A
,
4862 _mm512_setzero_si512 (),
4863 (__mmask16
) __U
, __R
);
4866 #define _mm512_cvt_roundps_epi32(A, B) \
4867 ((__m512i)__builtin_ia32_cvtps2dq512_mask(A, (__v16si)_mm512_undefined_epi32 (), -1, B))
4869 #define _mm512_mask_cvt_roundps_epi32(W, U, A, B) \
4870 ((__m512i)__builtin_ia32_cvtps2dq512_mask(A, (__v16si)(W), U, B))
4872 #define _mm512_maskz_cvt_roundps_epi32(U, A, B) \
4873 ((__m512i)__builtin_ia32_cvtps2dq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
4875 #define _mm512_cvt_roundps_epu32(A, B) \
4876 ((__m512i)__builtin_ia32_cvtps2udq512_mask(A, (__v16si)_mm512_undefined_epi32 (), -1, B))
4878 #define _mm512_mask_cvt_roundps_epu32(W, U, A, B) \
4879 ((__m512i)__builtin_ia32_cvtps2udq512_mask(A, (__v16si)(W), U, B))
4881 #define _mm512_maskz_cvt_roundps_epu32(U, A, B) \
4882 ((__m512i)__builtin_ia32_cvtps2udq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
4885 extern __inline __m128d
4886 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4887 _mm_cvtu32_sd (__m128d __A
, unsigned __B
)
4889 return (__m128d
) __builtin_ia32_cvtusi2sd32 ((__v2df
) __A
, __B
);
4894 extern __inline __m128d
4895 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4896 _mm_cvt_roundu64_sd (__m128d __A
, unsigned long long __B
, const int __R
)
4898 return (__m128d
) __builtin_ia32_cvtusi2sd64 ((__v2df
) __A
, __B
, __R
);
4901 extern __inline __m128d
4902 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4903 _mm_cvt_roundi64_sd (__m128d __A
, long long __B
, const int __R
)
4905 return (__m128d
) __builtin_ia32_cvtsi2sd64 ((__v2df
) __A
, __B
, __R
);
4908 extern __inline __m128d
4909 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4910 _mm_cvt_roundsi64_sd (__m128d __A
, long long __B
, const int __R
)
4912 return (__m128d
) __builtin_ia32_cvtsi2sd64 ((__v2df
) __A
, __B
, __R
);
4915 #define _mm_cvt_roundu64_sd(A, B, C) \
4916 (__m128d)__builtin_ia32_cvtusi2sd64(A, B, C)
4918 #define _mm_cvt_roundi64_sd(A, B, C) \
4919 (__m128d)__builtin_ia32_cvtsi2sd64(A, B, C)
4921 #define _mm_cvt_roundsi64_sd(A, B, C) \
4922 (__m128d)__builtin_ia32_cvtsi2sd64(A, B, C)
4928 extern __inline __m128
4929 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4930 _mm_cvt_roundu32_ss (__m128 __A
, unsigned __B
, const int __R
)
4932 return (__m128
) __builtin_ia32_cvtusi2ss32 ((__v4sf
) __A
, __B
, __R
);
4935 extern __inline __m128
4936 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4937 _mm_cvt_roundsi32_ss (__m128 __A
, int __B
, const int __R
)
4939 return (__m128
) __builtin_ia32_cvtsi2ss32 ((__v4sf
) __A
, __B
, __R
);
4942 extern __inline __m128
4943 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4944 _mm_cvt_roundi32_ss (__m128 __A
, int __B
, const int __R
)
4946 return (__m128
) __builtin_ia32_cvtsi2ss32 ((__v4sf
) __A
, __B
, __R
);
4949 #define _mm_cvt_roundu32_ss(A, B, C) \
4950 (__m128)__builtin_ia32_cvtusi2ss32(A, B, C)
4952 #define _mm_cvt_roundi32_ss(A, B, C) \
4953 (__m128)__builtin_ia32_cvtsi2ss32(A, B, C)
4955 #define _mm_cvt_roundsi32_ss(A, B, C) \
4956 (__m128)__builtin_ia32_cvtsi2ss32(A, B, C)
4961 extern __inline __m128
4962 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4963 _mm_cvt_roundu64_ss (__m128 __A
, unsigned long long __B
, const int __R
)
4965 return (__m128
) __builtin_ia32_cvtusi2ss64 ((__v4sf
) __A
, __B
, __R
);
4968 extern __inline __m128
4969 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4970 _mm_cvt_roundsi64_ss (__m128 __A
, long long __B
, const int __R
)
4972 return (__m128
) __builtin_ia32_cvtsi2ss64 ((__v4sf
) __A
, __B
, __R
);
4975 extern __inline __m128
4976 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4977 _mm_cvt_roundi64_ss (__m128 __A
, long long __B
, const int __R
)
4979 return (__m128
) __builtin_ia32_cvtsi2ss64 ((__v4sf
) __A
, __B
, __R
);
4982 #define _mm_cvt_roundu64_ss(A, B, C) \
4983 (__m128)__builtin_ia32_cvtusi2ss64(A, B, C)
4985 #define _mm_cvt_roundi64_ss(A, B, C) \
4986 (__m128)__builtin_ia32_cvtsi2ss64(A, B, C)
4988 #define _mm_cvt_roundsi64_ss(A, B, C) \
4989 (__m128)__builtin_ia32_cvtsi2ss64(A, B, C)
4994 extern __inline __m128i
4995 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4996 _mm512_cvtepi32_epi8 (__m512i __A
)
4998 return (__m128i
) __builtin_ia32_pmovdb512_mask ((__v16si
) __A
,
5000 _mm_undefined_si128 (),
5004 extern __inline
void
5005 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5006 _mm512_mask_cvtepi32_storeu_epi8 (void * __P
, __mmask16 __M
, __m512i __A
)
5008 __builtin_ia32_pmovdb512mem_mask ((__v16qi
*) __P
, (__v16si
) __A
, __M
);
5011 extern __inline __m128i
5012 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5013 _mm512_mask_cvtepi32_epi8 (__m128i __O
, __mmask16 __M
, __m512i __A
)
5015 return (__m128i
) __builtin_ia32_pmovdb512_mask ((__v16si
) __A
,
5016 (__v16qi
) __O
, __M
);
5019 extern __inline __m128i
5020 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5021 _mm512_maskz_cvtepi32_epi8 (__mmask16 __M
, __m512i __A
)
5023 return (__m128i
) __builtin_ia32_pmovdb512_mask ((__v16si
) __A
,
5025 _mm_setzero_si128 (),
5029 extern __inline __m128i
5030 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5031 _mm512_cvtsepi32_epi8 (__m512i __A
)
5033 return (__m128i
) __builtin_ia32_pmovsdb512_mask ((__v16si
) __A
,
5035 _mm_undefined_si128 (),
5039 extern __inline
void
5040 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5041 _mm512_mask_cvtsepi32_storeu_epi8 (void * __P
, __mmask16 __M
, __m512i __A
)
5043 __builtin_ia32_pmovsdb512mem_mask ((__v16qi
*) __P
, (__v16si
) __A
, __M
);
5046 extern __inline __m128i
5047 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5048 _mm512_mask_cvtsepi32_epi8 (__m128i __O
, __mmask16 __M
, __m512i __A
)
5050 return (__m128i
) __builtin_ia32_pmovsdb512_mask ((__v16si
) __A
,
5051 (__v16qi
) __O
, __M
);
5054 extern __inline __m128i
5055 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5056 _mm512_maskz_cvtsepi32_epi8 (__mmask16 __M
, __m512i __A
)
5058 return (__m128i
) __builtin_ia32_pmovsdb512_mask ((__v16si
) __A
,
5060 _mm_setzero_si128 (),
5064 extern __inline __m128i
5065 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5066 _mm512_cvtusepi32_epi8 (__m512i __A
)
5068 return (__m128i
) __builtin_ia32_pmovusdb512_mask ((__v16si
) __A
,
5070 _mm_undefined_si128 (),
5074 extern __inline
void
5075 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5076 _mm512_mask_cvtusepi32_storeu_epi8 (void * __P
, __mmask16 __M
, __m512i __A
)
5078 __builtin_ia32_pmovusdb512mem_mask ((__v16qi
*) __P
, (__v16si
) __A
, __M
);
5081 extern __inline __m128i
5082 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5083 _mm512_mask_cvtusepi32_epi8 (__m128i __O
, __mmask16 __M
, __m512i __A
)
5085 return (__m128i
) __builtin_ia32_pmovusdb512_mask ((__v16si
) __A
,
5090 extern __inline __m128i
5091 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5092 _mm512_maskz_cvtusepi32_epi8 (__mmask16 __M
, __m512i __A
)
5094 return (__m128i
) __builtin_ia32_pmovusdb512_mask ((__v16si
) __A
,
5096 _mm_setzero_si128 (),
5100 extern __inline __m256i
5101 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5102 _mm512_cvtepi32_epi16 (__m512i __A
)
5104 return (__m256i
) __builtin_ia32_pmovdw512_mask ((__v16si
) __A
,
5106 _mm256_undefined_si256 (),
5110 extern __inline
void
5111 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5112 _mm512_mask_cvtepi32_storeu_epi16 (void * __P
, __mmask16 __M
, __m512i __A
)
5114 __builtin_ia32_pmovdw512mem_mask ((__v16hi
*) __P
, (__v16si
) __A
, __M
);
5117 extern __inline __m256i
5118 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5119 _mm512_mask_cvtepi32_epi16 (__m256i __O
, __mmask16 __M
, __m512i __A
)
5121 return (__m256i
) __builtin_ia32_pmovdw512_mask ((__v16si
) __A
,
5122 (__v16hi
) __O
, __M
);
5125 extern __inline __m256i
5126 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5127 _mm512_maskz_cvtepi32_epi16 (__mmask16 __M
, __m512i __A
)
5129 return (__m256i
) __builtin_ia32_pmovdw512_mask ((__v16si
) __A
,
5131 _mm256_setzero_si256 (),
5135 extern __inline __m256i
5136 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5137 _mm512_cvtsepi32_epi16 (__m512i __A
)
5139 return (__m256i
) __builtin_ia32_pmovsdw512_mask ((__v16si
) __A
,
5141 _mm256_undefined_si256 (),
5145 extern __inline
void
5146 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5147 _mm512_mask_cvtsepi32_storeu_epi16 (void *__P
, __mmask16 __M
, __m512i __A
)
5149 __builtin_ia32_pmovsdw512mem_mask ((__v16hi
*) __P
, (__v16si
) __A
, __M
);
5152 extern __inline __m256i
5153 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5154 _mm512_mask_cvtsepi32_epi16 (__m256i __O
, __mmask16 __M
, __m512i __A
)
5156 return (__m256i
) __builtin_ia32_pmovsdw512_mask ((__v16si
) __A
,
5157 (__v16hi
) __O
, __M
);
5160 extern __inline __m256i
5161 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5162 _mm512_maskz_cvtsepi32_epi16 (__mmask16 __M
, __m512i __A
)
5164 return (__m256i
) __builtin_ia32_pmovsdw512_mask ((__v16si
) __A
,
5166 _mm256_setzero_si256 (),
5170 extern __inline __m256i
5171 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5172 _mm512_cvtusepi32_epi16 (__m512i __A
)
5174 return (__m256i
) __builtin_ia32_pmovusdw512_mask ((__v16si
) __A
,
5176 _mm256_undefined_si256 (),
5180 extern __inline
void
5181 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5182 _mm512_mask_cvtusepi32_storeu_epi16 (void *__P
, __mmask16 __M
, __m512i __A
)
5184 __builtin_ia32_pmovusdw512mem_mask ((__v16hi
*) __P
, (__v16si
) __A
, __M
);
5187 extern __inline __m256i
5188 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5189 _mm512_mask_cvtusepi32_epi16 (__m256i __O
, __mmask16 __M
, __m512i __A
)
5191 return (__m256i
) __builtin_ia32_pmovusdw512_mask ((__v16si
) __A
,
5196 extern __inline __m256i
5197 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5198 _mm512_maskz_cvtusepi32_epi16 (__mmask16 __M
, __m512i __A
)
5200 return (__m256i
) __builtin_ia32_pmovusdw512_mask ((__v16si
) __A
,
5202 _mm256_setzero_si256 (),
5206 extern __inline __m256i
5207 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5208 _mm512_cvtepi64_epi32 (__m512i __A
)
5210 return (__m256i
) __builtin_ia32_pmovqd512_mask ((__v8di
) __A
,
5212 _mm256_undefined_si256 (),
5216 extern __inline
void
5217 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5218 _mm512_mask_cvtepi64_storeu_epi32 (void* __P
, __mmask8 __M
, __m512i __A
)
5220 __builtin_ia32_pmovqd512mem_mask ((__v8si
*) __P
, (__v8di
) __A
, __M
);
5223 extern __inline __m256i
5224 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5225 _mm512_mask_cvtepi64_epi32 (__m256i __O
, __mmask8 __M
, __m512i __A
)
5227 return (__m256i
) __builtin_ia32_pmovqd512_mask ((__v8di
) __A
,
5231 extern __inline __m256i
5232 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5233 _mm512_maskz_cvtepi64_epi32 (__mmask8 __M
, __m512i __A
)
5235 return (__m256i
) __builtin_ia32_pmovqd512_mask ((__v8di
) __A
,
5237 _mm256_setzero_si256 (),
5241 extern __inline __m256i
5242 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5243 _mm512_cvtsepi64_epi32 (__m512i __A
)
5245 return (__m256i
) __builtin_ia32_pmovsqd512_mask ((__v8di
) __A
,
5247 _mm256_undefined_si256 (),
5251 extern __inline
void
5252 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5253 _mm512_mask_cvtsepi64_storeu_epi32 (void *__P
, __mmask8 __M
, __m512i __A
)
5255 __builtin_ia32_pmovsqd512mem_mask ((__v8si
*) __P
, (__v8di
) __A
, __M
);
5258 extern __inline __m256i
5259 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5260 _mm512_mask_cvtsepi64_epi32 (__m256i __O
, __mmask8 __M
, __m512i __A
)
5262 return (__m256i
) __builtin_ia32_pmovsqd512_mask ((__v8di
) __A
,
5266 extern __inline __m256i
5267 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5268 _mm512_maskz_cvtsepi64_epi32 (__mmask8 __M
, __m512i __A
)
5270 return (__m256i
) __builtin_ia32_pmovsqd512_mask ((__v8di
) __A
,
5272 _mm256_setzero_si256 (),
5276 extern __inline __m256i
5277 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5278 _mm512_cvtusepi64_epi32 (__m512i __A
)
5280 return (__m256i
) __builtin_ia32_pmovusqd512_mask ((__v8di
) __A
,
5282 _mm256_undefined_si256 (),
5286 extern __inline
void
5287 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5288 _mm512_mask_cvtusepi64_storeu_epi32 (void* __P
, __mmask8 __M
, __m512i __A
)
5290 __builtin_ia32_pmovusqd512mem_mask ((__v8si
*) __P
, (__v8di
) __A
, __M
);
5293 extern __inline __m256i
5294 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5295 _mm512_mask_cvtusepi64_epi32 (__m256i __O
, __mmask8 __M
, __m512i __A
)
5297 return (__m256i
) __builtin_ia32_pmovusqd512_mask ((__v8di
) __A
,
5301 extern __inline __m256i
5302 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5303 _mm512_maskz_cvtusepi64_epi32 (__mmask8 __M
, __m512i __A
)
5305 return (__m256i
) __builtin_ia32_pmovusqd512_mask ((__v8di
) __A
,
5307 _mm256_setzero_si256 (),
5311 extern __inline __m128i
5312 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5313 _mm512_cvtepi64_epi16 (__m512i __A
)
5315 return (__m128i
) __builtin_ia32_pmovqw512_mask ((__v8di
) __A
,
5317 _mm_undefined_si128 (),
5321 extern __inline
void
5322 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5323 _mm512_mask_cvtepi64_storeu_epi16 (void *__P
, __mmask8 __M
, __m512i __A
)
5325 __builtin_ia32_pmovqw512mem_mask ((__v8hi
*) __P
, (__v8di
) __A
, __M
);
5328 extern __inline __m128i
5329 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5330 _mm512_mask_cvtepi64_epi16 (__m128i __O
, __mmask8 __M
, __m512i __A
)
5332 return (__m128i
) __builtin_ia32_pmovqw512_mask ((__v8di
) __A
,
5336 extern __inline __m128i
5337 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5338 _mm512_maskz_cvtepi64_epi16 (__mmask8 __M
, __m512i __A
)
5340 return (__m128i
) __builtin_ia32_pmovqw512_mask ((__v8di
) __A
,
5342 _mm_setzero_si128 (),
5346 extern __inline __m128i
5347 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5348 _mm512_cvtsepi64_epi16 (__m512i __A
)
5350 return (__m128i
) __builtin_ia32_pmovsqw512_mask ((__v8di
) __A
,
5352 _mm_undefined_si128 (),
5356 extern __inline
void
5357 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5358 _mm512_mask_cvtsepi64_storeu_epi16 (void * __P
, __mmask8 __M
, __m512i __A
)
5360 __builtin_ia32_pmovsqw512mem_mask ((__v8hi
*) __P
, (__v8di
) __A
, __M
);
5363 extern __inline __m128i
5364 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5365 _mm512_mask_cvtsepi64_epi16 (__m128i __O
, __mmask8 __M
, __m512i __A
)
5367 return (__m128i
) __builtin_ia32_pmovsqw512_mask ((__v8di
) __A
,
5371 extern __inline __m128i
5372 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5373 _mm512_maskz_cvtsepi64_epi16 (__mmask8 __M
, __m512i __A
)
5375 return (__m128i
) __builtin_ia32_pmovsqw512_mask ((__v8di
) __A
,
5377 _mm_setzero_si128 (),
5381 extern __inline __m128i
5382 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5383 _mm512_cvtusepi64_epi16 (__m512i __A
)
5385 return (__m128i
) __builtin_ia32_pmovusqw512_mask ((__v8di
) __A
,
5387 _mm_undefined_si128 (),
5391 extern __inline
void
5392 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5393 _mm512_mask_cvtusepi64_storeu_epi16 (void *__P
, __mmask8 __M
, __m512i __A
)
5395 __builtin_ia32_pmovusqw512mem_mask ((__v8hi
*) __P
, (__v8di
) __A
, __M
);
5398 extern __inline __m128i
5399 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5400 _mm512_mask_cvtusepi64_epi16 (__m128i __O
, __mmask8 __M
, __m512i __A
)
5402 return (__m128i
) __builtin_ia32_pmovusqw512_mask ((__v8di
) __A
,
5406 extern __inline __m128i
5407 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5408 _mm512_maskz_cvtusepi64_epi16 (__mmask8 __M
, __m512i __A
)
5410 return (__m128i
) __builtin_ia32_pmovusqw512_mask ((__v8di
) __A
,
5412 _mm_setzero_si128 (),
5416 extern __inline __m128i
5417 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5418 _mm512_cvtepi64_epi8 (__m512i __A
)
5420 return (__m128i
) __builtin_ia32_pmovqb512_mask ((__v8di
) __A
,
5422 _mm_undefined_si128 (),
5426 extern __inline
void
5427 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5428 _mm512_mask_cvtepi64_storeu_epi8 (void * __P
, __mmask8 __M
, __m512i __A
)
5430 __builtin_ia32_pmovqb512mem_mask ((__v16qi
*) __P
, (__v8di
) __A
, __M
);
5433 extern __inline __m128i
5434 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5435 _mm512_mask_cvtepi64_epi8 (__m128i __O
, __mmask8 __M
, __m512i __A
)
5437 return (__m128i
) __builtin_ia32_pmovqb512_mask ((__v8di
) __A
,
5438 (__v16qi
) __O
, __M
);
5441 extern __inline __m128i
5442 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5443 _mm512_maskz_cvtepi64_epi8 (__mmask8 __M
, __m512i __A
)
5445 return (__m128i
) __builtin_ia32_pmovqb512_mask ((__v8di
) __A
,
5447 _mm_setzero_si128 (),
5451 extern __inline __m128i
5452 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5453 _mm512_cvtsepi64_epi8 (__m512i __A
)
5455 return (__m128i
) __builtin_ia32_pmovsqb512_mask ((__v8di
) __A
,
5457 _mm_undefined_si128 (),
5461 extern __inline
void
5462 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5463 _mm512_mask_cvtsepi64_storeu_epi8 (void * __P
, __mmask8 __M
, __m512i __A
)
5465 __builtin_ia32_pmovsqb512mem_mask ((__v16qi
*) __P
, (__v8di
) __A
, __M
);
5468 extern __inline __m128i
5469 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5470 _mm512_mask_cvtsepi64_epi8 (__m128i __O
, __mmask8 __M
, __m512i __A
)
5472 return (__m128i
) __builtin_ia32_pmovsqb512_mask ((__v8di
) __A
,
5473 (__v16qi
) __O
, __M
);
5476 extern __inline __m128i
5477 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5478 _mm512_maskz_cvtsepi64_epi8 (__mmask8 __M
, __m512i __A
)
5480 return (__m128i
) __builtin_ia32_pmovsqb512_mask ((__v8di
) __A
,
5482 _mm_setzero_si128 (),
5486 extern __inline __m128i
5487 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5488 _mm512_cvtusepi64_epi8 (__m512i __A
)
5490 return (__m128i
) __builtin_ia32_pmovusqb512_mask ((__v8di
) __A
,
5492 _mm_undefined_si128 (),
5496 extern __inline
void
5497 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5498 _mm512_mask_cvtusepi64_storeu_epi8 (void * __P
, __mmask8 __M
, __m512i __A
)
5500 __builtin_ia32_pmovusqb512mem_mask ((__v16qi
*) __P
, (__v8di
) __A
, __M
);
5503 extern __inline __m128i
5504 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5505 _mm512_mask_cvtusepi64_epi8 (__m128i __O
, __mmask8 __M
, __m512i __A
)
5507 return (__m128i
) __builtin_ia32_pmovusqb512_mask ((__v8di
) __A
,
5512 extern __inline __m128i
5513 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5514 _mm512_maskz_cvtusepi64_epi8 (__mmask8 __M
, __m512i __A
)
5516 return (__m128i
) __builtin_ia32_pmovusqb512_mask ((__v8di
) __A
,
5518 _mm_setzero_si128 (),
5522 extern __inline __m512d
5523 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5524 _mm512_cvtepi32_pd (__m256i __A
)
5526 return (__m512d
) __builtin_ia32_cvtdq2pd512_mask ((__v8si
) __A
,
5528 _mm512_undefined_pd (),
5532 extern __inline __m512d
5533 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5534 _mm512_mask_cvtepi32_pd (__m512d __W
, __mmask8 __U
, __m256i __A
)
5536 return (__m512d
) __builtin_ia32_cvtdq2pd512_mask ((__v8si
) __A
,
5541 extern __inline __m512d
5542 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5543 _mm512_maskz_cvtepi32_pd (__mmask8 __U
, __m256i __A
)
5545 return (__m512d
) __builtin_ia32_cvtdq2pd512_mask ((__v8si
) __A
,
5547 _mm512_setzero_pd (),
5551 extern __inline __m512d
5552 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5553 _mm512_cvtepu32_pd (__m256i __A
)
5555 return (__m512d
) __builtin_ia32_cvtudq2pd512_mask ((__v8si
) __A
,
5557 _mm512_undefined_pd (),
5561 extern __inline __m512d
5562 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5563 _mm512_mask_cvtepu32_pd (__m512d __W
, __mmask8 __U
, __m256i __A
)
5565 return (__m512d
) __builtin_ia32_cvtudq2pd512_mask ((__v8si
) __A
,
5570 extern __inline __m512d
5571 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5572 _mm512_maskz_cvtepu32_pd (__mmask8 __U
, __m256i __A
)
5574 return (__m512d
) __builtin_ia32_cvtudq2pd512_mask ((__v8si
) __A
,
5576 _mm512_setzero_pd (),
5581 extern __inline __m512
5582 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5583 _mm512_cvt_roundepi32_ps (__m512i __A
, const int __R
)
5585 return (__m512
) __builtin_ia32_cvtdq2ps512_mask ((__v16si
) __A
,
5587 _mm512_undefined_ps (),
5588 (__mmask16
) -1, __R
);
5591 extern __inline __m512
5592 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5593 _mm512_mask_cvt_roundepi32_ps (__m512 __W
, __mmask16 __U
, __m512i __A
,
5596 return (__m512
) __builtin_ia32_cvtdq2ps512_mask ((__v16si
) __A
,
5598 (__mmask16
) __U
, __R
);
5601 extern __inline __m512
5602 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5603 _mm512_maskz_cvt_roundepi32_ps (__mmask16 __U
, __m512i __A
, const int __R
)
5605 return (__m512
) __builtin_ia32_cvtdq2ps512_mask ((__v16si
) __A
,
5607 _mm512_setzero_ps (),
5608 (__mmask16
) __U
, __R
);
5611 extern __inline __m512
5612 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5613 _mm512_cvt_roundepu32_ps (__m512i __A
, const int __R
)
5615 return (__m512
) __builtin_ia32_cvtudq2ps512_mask ((__v16si
) __A
,
5617 _mm512_undefined_ps (),
5618 (__mmask16
) -1, __R
);
5621 extern __inline __m512
5622 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5623 _mm512_mask_cvt_roundepu32_ps (__m512 __W
, __mmask16 __U
, __m512i __A
,
5626 return (__m512
) __builtin_ia32_cvtudq2ps512_mask ((__v16si
) __A
,
5628 (__mmask16
) __U
, __R
);
5631 extern __inline __m512
5632 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5633 _mm512_maskz_cvt_roundepu32_ps (__mmask16 __U
, __m512i __A
, const int __R
)
5635 return (__m512
) __builtin_ia32_cvtudq2ps512_mask ((__v16si
) __A
,
5637 _mm512_setzero_ps (),
5638 (__mmask16
) __U
, __R
);
5642 #define _mm512_cvt_roundepi32_ps(A, B) \
5643 (__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(A), (__v16sf)_mm512_undefined_ps(), -1, B)
5645 #define _mm512_mask_cvt_roundepi32_ps(W, U, A, B) \
5646 (__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(A), W, U, B)
5648 #define _mm512_maskz_cvt_roundepi32_ps(U, A, B) \
5649 (__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(A), (__v16sf)_mm512_setzero_ps(), U, B)
5651 #define _mm512_cvt_roundepu32_ps(A, B) \
5652 (__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(A), (__v16sf)_mm512_undefined_ps(), -1, B)
5654 #define _mm512_mask_cvt_roundepu32_ps(W, U, A, B) \
5655 (__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(A), W, U, B)
5657 #define _mm512_maskz_cvt_roundepu32_ps(U, A, B) \
5658 (__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(A), (__v16sf)_mm512_setzero_ps(), U, B)
5662 extern __inline __m256d
5663 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5664 _mm512_extractf64x4_pd (__m512d __A
, const int __imm
)
5666 return (__m256d
) __builtin_ia32_extractf64x4_mask ((__v8df
) __A
,
5669 _mm256_undefined_pd (),
5673 extern __inline __m256d
5674 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5675 _mm512_mask_extractf64x4_pd (__m256d __W
, __mmask8 __U
, __m512d __A
,
5678 return (__m256d
) __builtin_ia32_extractf64x4_mask ((__v8df
) __A
,
5684 extern __inline __m256d
5685 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5686 _mm512_maskz_extractf64x4_pd (__mmask8 __U
, __m512d __A
, const int __imm
)
5688 return (__m256d
) __builtin_ia32_extractf64x4_mask ((__v8df
) __A
,
5691 _mm256_setzero_pd (),
5695 extern __inline __m128
5696 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5697 _mm512_extractf32x4_ps (__m512 __A
, const int __imm
)
5699 return (__m128
) __builtin_ia32_extractf32x4_mask ((__v16sf
) __A
,
5702 _mm_undefined_ps (),
5706 extern __inline __m128
5707 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5708 _mm512_mask_extractf32x4_ps (__m128 __W
, __mmask8 __U
, __m512 __A
,
5711 return (__m128
) __builtin_ia32_extractf32x4_mask ((__v16sf
) __A
,
5717 extern __inline __m128
5718 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5719 _mm512_maskz_extractf32x4_ps (__mmask8 __U
, __m512 __A
, const int __imm
)
5721 return (__m128
) __builtin_ia32_extractf32x4_mask ((__v16sf
) __A
,
5728 extern __inline __m256i
5729 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5730 _mm512_extracti64x4_epi64 (__m512i __A
, const int __imm
)
5732 return (__m256i
) __builtin_ia32_extracti64x4_mask ((__v8di
) __A
,
5735 _mm256_undefined_si256 (),
5739 extern __inline __m256i
5740 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5741 _mm512_mask_extracti64x4_epi64 (__m256i __W
, __mmask8 __U
, __m512i __A
,
5744 return (__m256i
) __builtin_ia32_extracti64x4_mask ((__v8di
) __A
,
5750 extern __inline __m256i
5751 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5752 _mm512_maskz_extracti64x4_epi64 (__mmask8 __U
, __m512i __A
, const int __imm
)
5754 return (__m256i
) __builtin_ia32_extracti64x4_mask ((__v8di
) __A
,
5757 _mm256_setzero_si256 (),
5761 extern __inline __m128i
5762 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5763 _mm512_extracti32x4_epi32 (__m512i __A
, const int __imm
)
5765 return (__m128i
) __builtin_ia32_extracti32x4_mask ((__v16si
) __A
,
5768 _mm_undefined_si128 (),
5772 extern __inline __m128i
5773 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5774 _mm512_mask_extracti32x4_epi32 (__m128i __W
, __mmask8 __U
, __m512i __A
,
5777 return (__m128i
) __builtin_ia32_extracti32x4_mask ((__v16si
) __A
,
5783 extern __inline __m128i
5784 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5785 _mm512_maskz_extracti32x4_epi32 (__mmask8 __U
, __m512i __A
, const int __imm
)
5787 return (__m128i
) __builtin_ia32_extracti32x4_mask ((__v16si
) __A
,
5790 _mm_setzero_si128 (),
5795 #define _mm512_extractf64x4_pd(X, C) \
5796 ((__m256d) __builtin_ia32_extractf64x4_mask ((__v8df)(__m512d) (X), \
5798 (__v4df)(__m256d)_mm256_undefined_pd(),\
5801 #define _mm512_mask_extractf64x4_pd(W, U, X, C) \
5802 ((__m256d) __builtin_ia32_extractf64x4_mask ((__v8df)(__m512d) (X), \
5804 (__v4df)(__m256d)(W),\
5807 #define _mm512_maskz_extractf64x4_pd(U, X, C) \
5808 ((__m256d) __builtin_ia32_extractf64x4_mask ((__v8df)(__m512d) (X), \
5810 (__v4df)(__m256d)_mm256_setzero_pd(),\
5813 #define _mm512_extractf32x4_ps(X, C) \
5814 ((__m128) __builtin_ia32_extractf32x4_mask ((__v16sf)(__m512) (X), \
5816 (__v4sf)(__m128)_mm_undefined_ps(),\
5819 #define _mm512_mask_extractf32x4_ps(W, U, X, C) \
5820 ((__m128) __builtin_ia32_extractf32x4_mask ((__v16sf)(__m512) (X), \
5822 (__v4sf)(__m128)(W),\
5825 #define _mm512_maskz_extractf32x4_ps(U, X, C) \
5826 ((__m128) __builtin_ia32_extractf32x4_mask ((__v16sf)(__m512) (X), \
5828 (__v4sf)(__m128)_mm_setzero_ps(),\
5831 #define _mm512_extracti64x4_epi64(X, C) \
5832 ((__m256i) __builtin_ia32_extracti64x4_mask ((__v8di)(__m512i) (X), \
5834 (__v4di)(__m256i)_mm256_undefined_si256 (),\
5837 #define _mm512_mask_extracti64x4_epi64(W, U, X, C) \
5838 ((__m256i) __builtin_ia32_extracti64x4_mask ((__v8di)(__m512i) (X), \
5840 (__v4di)(__m256i)(W),\
5843 #define _mm512_maskz_extracti64x4_epi64(U, X, C) \
5844 ((__m256i) __builtin_ia32_extracti64x4_mask ((__v8di)(__m512i) (X), \
5846 (__v4di)(__m256i)_mm256_setzero_si256 (),\
5849 #define _mm512_extracti32x4_epi32(X, C) \
5850 ((__m128i) __builtin_ia32_extracti32x4_mask ((__v16si)(__m512i) (X), \
5852 (__v4si)(__m128i)_mm_undefined_si128 (),\
5855 #define _mm512_mask_extracti32x4_epi32(W, U, X, C) \
5856 ((__m128i) __builtin_ia32_extracti32x4_mask ((__v16si)(__m512i) (X), \
5858 (__v4si)(__m128i)(W),\
5861 #define _mm512_maskz_extracti32x4_epi32(U, X, C) \
5862 ((__m128i) __builtin_ia32_extracti32x4_mask ((__v16si)(__m512i) (X), \
5864 (__v4si)(__m128i)_mm_setzero_si128 (),\
5869 extern __inline __m512i
5870 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5871 _mm512_inserti32x4 (__m512i __A
, __m128i __B
, const int __imm
)
5873 return (__m512i
) __builtin_ia32_inserti32x4_mask ((__v16si
) __A
,
5879 extern __inline __m512
5880 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5881 _mm512_insertf32x4 (__m512 __A
, __m128 __B
, const int __imm
)
5883 return (__m512
) __builtin_ia32_insertf32x4_mask ((__v16sf
) __A
,
5889 extern __inline __m512i
5890 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5891 _mm512_inserti64x4 (__m512i __A
, __m256i __B
, const int __imm
)
5893 return (__m512i
) __builtin_ia32_inserti64x4_mask ((__v8di
) __A
,
5897 _mm512_undefined_epi32 (),
5901 extern __inline __m512i
5902 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5903 _mm512_mask_inserti64x4 (__m512i __W
, __mmask8 __U
, __m512i __A
,
5904 __m256i __B
, const int __imm
)
5906 return (__m512i
) __builtin_ia32_inserti64x4_mask ((__v8di
) __A
,
5913 extern __inline __m512i
5914 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5915 _mm512_maskz_inserti64x4 (__mmask8 __U
, __m512i __A
, __m256i __B
,
5918 return (__m512i
) __builtin_ia32_inserti64x4_mask ((__v8di
) __A
,
5922 _mm512_setzero_si512 (),
5926 extern __inline __m512d
5927 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5928 _mm512_insertf64x4 (__m512d __A
, __m256d __B
, const int __imm
)
5930 return (__m512d
) __builtin_ia32_insertf64x4_mask ((__v8df
) __A
,
5934 _mm512_undefined_pd (),
5938 extern __inline __m512d
5939 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5940 _mm512_mask_insertf64x4 (__m512d __W
, __mmask8 __U
, __m512d __A
,
5941 __m256d __B
, const int __imm
)
5943 return (__m512d
) __builtin_ia32_insertf64x4_mask ((__v8df
) __A
,
5950 extern __inline __m512d
5951 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5952 _mm512_maskz_insertf64x4 (__mmask8 __U
, __m512d __A
, __m256d __B
,
5955 return (__m512d
) __builtin_ia32_insertf64x4_mask ((__v8df
) __A
,
5959 _mm512_setzero_pd (),
5963 #define _mm512_insertf32x4(X, Y, C) \
5964 ((__m512) __builtin_ia32_insertf32x4_mask ((__v16sf)(__m512) (X), \
5965 (__v4sf)(__m128) (Y), (int) (C), (__v16sf)(__m512) (X), (__mmask16)(-1)))
5967 #define _mm512_inserti32x4(X, Y, C) \
5968 ((__m512i) __builtin_ia32_inserti32x4_mask ((__v16si)(__m512i) (X), \
5969 (__v4si)(__m128i) (Y), (int) (C), (__v16si)(__m512i) (X), (__mmask16)(-1)))
5971 #define _mm512_insertf64x4(X, Y, C) \
5972 ((__m512d) __builtin_ia32_insertf64x4_mask ((__v8df)(__m512d) (X), \
5973 (__v4df)(__m256d) (Y), (int) (C), \
5974 (__v8df)(__m512d)_mm512_undefined_pd(), \
5977 #define _mm512_mask_insertf64x4(W, U, X, Y, C) \
5978 ((__m512d) __builtin_ia32_insertf64x4_mask ((__v8df)(__m512d) (X), \
5979 (__v4df)(__m256d) (Y), (int) (C), \
5980 (__v8df)(__m512d)(W), \
5983 #define _mm512_maskz_insertf64x4(U, X, Y, C) \
5984 ((__m512d) __builtin_ia32_insertf64x4_mask ((__v8df)(__m512d) (X), \
5985 (__v4df)(__m256d) (Y), (int) (C), \
5986 (__v8df)(__m512d)_mm512_setzero_pd(), \
5989 #define _mm512_inserti64x4(X, Y, C) \
5990 ((__m512i) __builtin_ia32_inserti64x4_mask ((__v8di)(__m512i) (X), \
5991 (__v4di)(__m256i) (Y), (int) (C), \
5992 (__v8di)(__m512i)_mm512_undefined_epi32 (), \
5995 #define _mm512_mask_inserti64x4(W, U, X, Y, C) \
5996 ((__m512i) __builtin_ia32_inserti64x4_mask ((__v8di)(__m512i) (X), \
5997 (__v4di)(__m256i) (Y), (int) (C),\
5998 (__v8di)(__m512i)(W),\
6001 #define _mm512_maskz_inserti64x4(U, X, Y, C) \
6002 ((__m512i) __builtin_ia32_inserti64x4_mask ((__v8di)(__m512i) (X), \
6003 (__v4di)(__m256i) (Y), (int) (C), \
6004 (__v8di)(__m512i)_mm512_setzero_si512 (), \
6008 extern __inline __m512d
6009 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6010 _mm512_loadu_pd (void const *__P
)
6012 return *(__m512d_u
*)__P
;
6015 extern __inline __m512d
6016 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6017 _mm512_mask_loadu_pd (__m512d __W
, __mmask8 __U
, void const *__P
)
6019 return (__m512d
) __builtin_ia32_loadupd512_mask ((const double *) __P
,
6024 extern __inline __m512d
6025 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6026 _mm512_maskz_loadu_pd (__mmask8 __U
, void const *__P
)
6028 return (__m512d
) __builtin_ia32_loadupd512_mask ((const double *) __P
,
6030 _mm512_setzero_pd (),
6034 extern __inline
void
6035 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6036 _mm512_storeu_pd (void *__P
, __m512d __A
)
6038 *(__m512d_u
*)__P
= __A
;
6041 extern __inline
void
6042 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6043 _mm512_mask_storeu_pd (void *__P
, __mmask8 __U
, __m512d __A
)
6045 __builtin_ia32_storeupd512_mask ((double *) __P
, (__v8df
) __A
,
6049 extern __inline __m512
6050 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6051 _mm512_loadu_ps (void const *__P
)
6053 return *(__m512_u
*)__P
;
6056 extern __inline __m512
6057 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6058 _mm512_mask_loadu_ps (__m512 __W
, __mmask16 __U
, void const *__P
)
6060 return (__m512
) __builtin_ia32_loadups512_mask ((const float *) __P
,
6065 extern __inline __m512
6066 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6067 _mm512_maskz_loadu_ps (__mmask16 __U
, void const *__P
)
6069 return (__m512
) __builtin_ia32_loadups512_mask ((const float *) __P
,
6071 _mm512_setzero_ps (),
6075 extern __inline
void
6076 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6077 _mm512_storeu_ps (void *__P
, __m512 __A
)
6079 *(__m512_u
*)__P
= __A
;
6082 extern __inline
void
6083 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6084 _mm512_mask_storeu_ps (void *__P
, __mmask16 __U
, __m512 __A
)
6086 __builtin_ia32_storeups512_mask ((float *) __P
, (__v16sf
) __A
,
6090 extern __inline __m512i
6091 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6092 _mm512_mask_loadu_epi64 (__m512i __W
, __mmask8 __U
, void const *__P
)
6094 return (__m512i
) __builtin_ia32_loaddqudi512_mask ((const long long *) __P
,
6099 extern __inline __m512i
6100 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6101 _mm512_maskz_loadu_epi64 (__mmask8 __U
, void const *__P
)
6103 return (__m512i
) __builtin_ia32_loaddqudi512_mask ((const long long *) __P
,
6105 _mm512_setzero_si512 (),
6109 extern __inline
void
6110 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6111 _mm512_mask_storeu_epi64 (void *__P
, __mmask8 __U
, __m512i __A
)
6113 __builtin_ia32_storedqudi512_mask ((long long *) __P
, (__v8di
) __A
,
6117 extern __inline __m512i
6118 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6119 _mm512_loadu_si512 (void const *__P
)
6121 return *(__m512i_u
*)__P
;
6124 extern __inline __m512i
6125 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6126 _mm512_mask_loadu_epi32 (__m512i __W
, __mmask16 __U
, void const *__P
)
6128 return (__m512i
) __builtin_ia32_loaddqusi512_mask ((const int *) __P
,
6133 extern __inline __m512i
6134 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6135 _mm512_maskz_loadu_epi32 (__mmask16 __U
, void const *__P
)
6137 return (__m512i
) __builtin_ia32_loaddqusi512_mask ((const int *) __P
,
6139 _mm512_setzero_si512 (),
6143 extern __inline
void
6144 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6145 _mm512_storeu_si512 (void *__P
, __m512i __A
)
6147 *(__m512i_u
*)__P
= __A
;
6150 extern __inline
void
6151 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6152 _mm512_mask_storeu_epi32 (void *__P
, __mmask16 __U
, __m512i __A
)
6154 __builtin_ia32_storedqusi512_mask ((int *) __P
, (__v16si
) __A
,
6158 extern __inline __m512d
6159 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6160 _mm512_permutevar_pd (__m512d __A
, __m512i __C
)
6162 return (__m512d
) __builtin_ia32_vpermilvarpd512_mask ((__v8df
) __A
,
6165 _mm512_undefined_pd (),
6169 extern __inline __m512d
6170 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6171 _mm512_mask_permutevar_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512i __C
)
6173 return (__m512d
) __builtin_ia32_vpermilvarpd512_mask ((__v8df
) __A
,
6179 extern __inline __m512d
6180 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6181 _mm512_maskz_permutevar_pd (__mmask8 __U
, __m512d __A
, __m512i __C
)
6183 return (__m512d
) __builtin_ia32_vpermilvarpd512_mask ((__v8df
) __A
,
6186 _mm512_setzero_pd (),
6190 extern __inline __m512
6191 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6192 _mm512_permutevar_ps (__m512 __A
, __m512i __C
)
6194 return (__m512
) __builtin_ia32_vpermilvarps512_mask ((__v16sf
) __A
,
6197 _mm512_undefined_ps (),
6201 extern __inline __m512
6202 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6203 _mm512_mask_permutevar_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512i __C
)
6205 return (__m512
) __builtin_ia32_vpermilvarps512_mask ((__v16sf
) __A
,
6211 extern __inline __m512
6212 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6213 _mm512_maskz_permutevar_ps (__mmask16 __U
, __m512 __A
, __m512i __C
)
6215 return (__m512
) __builtin_ia32_vpermilvarps512_mask ((__v16sf
) __A
,
6218 _mm512_setzero_ps (),
6222 extern __inline __m512i
6223 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6224 _mm512_permutex2var_epi64 (__m512i __A
, __m512i __I
, __m512i __B
)
6226 return (__m512i
) __builtin_ia32_vpermt2varq512_mask ((__v8di
) __I
6233 extern __inline __m512i
6234 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6235 _mm512_mask_permutex2var_epi64 (__m512i __A
, __mmask8 __U
, __m512i __I
,
6238 return (__m512i
) __builtin_ia32_vpermt2varq512_mask ((__v8di
) __I
6245 extern __inline __m512i
6246 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6247 _mm512_mask2_permutex2var_epi64 (__m512i __A
, __m512i __I
,
6248 __mmask8 __U
, __m512i __B
)
6250 return (__m512i
) __builtin_ia32_vpermi2varq512_mask ((__v8di
) __A
,
6257 extern __inline __m512i
6258 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6259 _mm512_maskz_permutex2var_epi64 (__mmask8 __U
, __m512i __A
,
6260 __m512i __I
, __m512i __B
)
6262 return (__m512i
) __builtin_ia32_vpermt2varq512_maskz ((__v8di
) __I
6269 extern __inline __m512i
6270 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6271 _mm512_permutex2var_epi32 (__m512i __A
, __m512i __I
, __m512i __B
)
6273 return (__m512i
) __builtin_ia32_vpermt2vard512_mask ((__v16si
) __I
6280 extern __inline __m512i
6281 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6282 _mm512_mask_permutex2var_epi32 (__m512i __A
, __mmask16 __U
,
6283 __m512i __I
, __m512i __B
)
6285 return (__m512i
) __builtin_ia32_vpermt2vard512_mask ((__v16si
) __I
6292 extern __inline __m512i
6293 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6294 _mm512_mask2_permutex2var_epi32 (__m512i __A
, __m512i __I
,
6295 __mmask16 __U
, __m512i __B
)
6297 return (__m512i
) __builtin_ia32_vpermi2vard512_mask ((__v16si
) __A
,
6304 extern __inline __m512i
6305 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6306 _mm512_maskz_permutex2var_epi32 (__mmask16 __U
, __m512i __A
,
6307 __m512i __I
, __m512i __B
)
6309 return (__m512i
) __builtin_ia32_vpermt2vard512_maskz ((__v16si
) __I
6316 extern __inline __m512d
6317 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6318 _mm512_permutex2var_pd (__m512d __A
, __m512i __I
, __m512d __B
)
6320 return (__m512d
) __builtin_ia32_vpermt2varpd512_mask ((__v8di
) __I
6327 extern __inline __m512d
6328 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6329 _mm512_mask_permutex2var_pd (__m512d __A
, __mmask8 __U
, __m512i __I
,
6332 return (__m512d
) __builtin_ia32_vpermt2varpd512_mask ((__v8di
) __I
6339 extern __inline __m512d
6340 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6341 _mm512_mask2_permutex2var_pd (__m512d __A
, __m512i __I
, __mmask8 __U
,
6344 return (__m512d
) __builtin_ia32_vpermi2varpd512_mask ((__v8df
) __A
,
6351 extern __inline __m512d
6352 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6353 _mm512_maskz_permutex2var_pd (__mmask8 __U
, __m512d __A
, __m512i __I
,
6356 return (__m512d
) __builtin_ia32_vpermt2varpd512_maskz ((__v8di
) __I
6363 extern __inline __m512
6364 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6365 _mm512_permutex2var_ps (__m512 __A
, __m512i __I
, __m512 __B
)
6367 return (__m512
) __builtin_ia32_vpermt2varps512_mask ((__v16si
) __I
6374 extern __inline __m512
6375 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6376 _mm512_mask_permutex2var_ps (__m512 __A
, __mmask16 __U
, __m512i __I
, __m512 __B
)
6378 return (__m512
) __builtin_ia32_vpermt2varps512_mask ((__v16si
) __I
6385 extern __inline __m512
6386 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6387 _mm512_mask2_permutex2var_ps (__m512 __A
, __m512i __I
, __mmask16 __U
,
6390 return (__m512
) __builtin_ia32_vpermi2varps512_mask ((__v16sf
) __A
,
6397 extern __inline __m512
6398 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6399 _mm512_maskz_permutex2var_ps (__mmask16 __U
, __m512 __A
, __m512i __I
,
6402 return (__m512
) __builtin_ia32_vpermt2varps512_maskz ((__v16si
) __I
6410 extern __inline __m512d
6411 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6412 _mm512_permute_pd (__m512d __X
, const int __C
)
6414 return (__m512d
) __builtin_ia32_vpermilpd512_mask ((__v8df
) __X
, __C
,
6416 _mm512_undefined_pd (),
6420 extern __inline __m512d
6421 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6422 _mm512_mask_permute_pd (__m512d __W
, __mmask8 __U
, __m512d __X
, const int __C
)
6424 return (__m512d
) __builtin_ia32_vpermilpd512_mask ((__v8df
) __X
, __C
,
6429 extern __inline __m512d
6430 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6431 _mm512_maskz_permute_pd (__mmask8 __U
, __m512d __X
, const int __C
)
6433 return (__m512d
) __builtin_ia32_vpermilpd512_mask ((__v8df
) __X
, __C
,
6435 _mm512_setzero_pd (),
6439 extern __inline __m512
6440 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6441 _mm512_permute_ps (__m512 __X
, const int __C
)
6443 return (__m512
) __builtin_ia32_vpermilps512_mask ((__v16sf
) __X
, __C
,
6445 _mm512_undefined_ps (),
6449 extern __inline __m512
6450 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6451 _mm512_mask_permute_ps (__m512 __W
, __mmask16 __U
, __m512 __X
, const int __C
)
6453 return (__m512
) __builtin_ia32_vpermilps512_mask ((__v16sf
) __X
, __C
,
6458 extern __inline __m512
6459 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6460 _mm512_maskz_permute_ps (__mmask16 __U
, __m512 __X
, const int __C
)
6462 return (__m512
) __builtin_ia32_vpermilps512_mask ((__v16sf
) __X
, __C
,
6464 _mm512_setzero_ps (),
6468 #define _mm512_permute_pd(X, C) \
6469 ((__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df)(__m512d)(X), (int)(C), \
6470 (__v8df)(__m512d)_mm512_undefined_pd(),\
6473 #define _mm512_mask_permute_pd(W, U, X, C) \
6474 ((__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df)(__m512d)(X), (int)(C), \
6475 (__v8df)(__m512d)(W), \
6478 #define _mm512_maskz_permute_pd(U, X, C) \
6479 ((__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df)(__m512d)(X), (int)(C), \
6480 (__v8df)(__m512d)_mm512_setzero_pd(), \
6483 #define _mm512_permute_ps(X, C) \
6484 ((__m512) __builtin_ia32_vpermilps512_mask ((__v16sf)(__m512)(X), (int)(C), \
6485 (__v16sf)(__m512)_mm512_undefined_ps(),\
6488 #define _mm512_mask_permute_ps(W, U, X, C) \
6489 ((__m512) __builtin_ia32_vpermilps512_mask ((__v16sf)(__m512)(X), (int)(C), \
6490 (__v16sf)(__m512)(W), \
6493 #define _mm512_maskz_permute_ps(U, X, C) \
6494 ((__m512) __builtin_ia32_vpermilps512_mask ((__v16sf)(__m512)(X), (int)(C), \
6495 (__v16sf)(__m512)_mm512_setzero_ps(), \
6500 extern __inline __m512i
6501 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6502 _mm512_permutex_epi64 (__m512i __X
, const int __I
)
6504 return (__m512i
) __builtin_ia32_permdi512_mask ((__v8di
) __X
, __I
,
6506 _mm512_undefined_epi32 (),
6510 extern __inline __m512i
6511 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6512 _mm512_mask_permutex_epi64 (__m512i __W
, __mmask8 __M
,
6513 __m512i __X
, const int __I
)
6515 return (__m512i
) __builtin_ia32_permdi512_mask ((__v8di
) __X
, __I
,
6520 extern __inline __m512i
6521 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6522 _mm512_maskz_permutex_epi64 (__mmask8 __M
, __m512i __X
, const int __I
)
6524 return (__m512i
) __builtin_ia32_permdi512_mask ((__v8di
) __X
, __I
,
6526 _mm512_setzero_si512 (),
6530 extern __inline __m512d
6531 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6532 _mm512_permutex_pd (__m512d __X
, const int __M
)
6534 return (__m512d
) __builtin_ia32_permdf512_mask ((__v8df
) __X
, __M
,
6536 _mm512_undefined_pd (),
6540 extern __inline __m512d
6541 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6542 _mm512_mask_permutex_pd (__m512d __W
, __mmask8 __U
, __m512d __X
, const int __M
)
6544 return (__m512d
) __builtin_ia32_permdf512_mask ((__v8df
) __X
, __M
,
6549 extern __inline __m512d
6550 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6551 _mm512_maskz_permutex_pd (__mmask8 __U
, __m512d __X
, const int __M
)
6553 return (__m512d
) __builtin_ia32_permdf512_mask ((__v8df
) __X
, __M
,
6555 _mm512_setzero_pd (),
6559 #define _mm512_permutex_pd(X, M) \
6560 ((__m512d) __builtin_ia32_permdf512_mask ((__v8df)(__m512d)(X), (int)(M), \
6561 (__v8df)(__m512d)_mm512_undefined_pd(),\
6564 #define _mm512_mask_permutex_pd(W, U, X, M) \
6565 ((__m512d) __builtin_ia32_permdf512_mask ((__v8df)(__m512d)(X), (int)(M), \
6566 (__v8df)(__m512d)(W), (__mmask8)(U)))
6568 #define _mm512_maskz_permutex_pd(U, X, M) \
6569 ((__m512d) __builtin_ia32_permdf512_mask ((__v8df)(__m512d)(X), (int)(M), \
6570 (__v8df)(__m512d)_mm512_setzero_pd(),\
6573 #define _mm512_permutex_epi64(X, I) \
6574 ((__m512i) __builtin_ia32_permdi512_mask ((__v8di)(__m512i)(X), \
6577 (_mm512_undefined_epi32 ()),\
6580 #define _mm512_maskz_permutex_epi64(M, X, I) \
6581 ((__m512i) __builtin_ia32_permdi512_mask ((__v8di)(__m512i)(X), \
6584 (_mm512_setzero_si512 ()),\
6587 #define _mm512_mask_permutex_epi64(W, M, X, I) \
6588 ((__m512i) __builtin_ia32_permdi512_mask ((__v8di)(__m512i)(X), \
6590 (__v8di)(__m512i)(W), \
6594 extern __inline __m512i
6595 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6596 _mm512_maskz_permutexvar_epi64 (__mmask8 __M
, __m512i __X
, __m512i __Y
)
6598 return (__m512i
) __builtin_ia32_permvardi512_mask ((__v8di
) __Y
,
6601 _mm512_setzero_si512 (),
6605 extern __inline __m512i
6606 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6607 _mm512_permutexvar_epi64 (__m512i __X
, __m512i __Y
)
6609 return (__m512i
) __builtin_ia32_permvardi512_mask ((__v8di
) __Y
,
6612 _mm512_undefined_epi32 (),
6616 extern __inline __m512i
6617 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6618 _mm512_mask_permutexvar_epi64 (__m512i __W
, __mmask8 __M
, __m512i __X
,
6621 return (__m512i
) __builtin_ia32_permvardi512_mask ((__v8di
) __Y
,
6627 extern __inline __m512i
6628 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6629 _mm512_maskz_permutexvar_epi32 (__mmask16 __M
, __m512i __X
, __m512i __Y
)
6631 return (__m512i
) __builtin_ia32_permvarsi512_mask ((__v16si
) __Y
,
6634 _mm512_setzero_si512 (),
6638 extern __inline __m512i
6639 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6640 _mm512_permutexvar_epi32 (__m512i __X
, __m512i __Y
)
6642 return (__m512i
) __builtin_ia32_permvarsi512_mask ((__v16si
) __Y
,
6645 _mm512_undefined_epi32 (),
6649 extern __inline __m512i
6650 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6651 _mm512_mask_permutexvar_epi32 (__m512i __W
, __mmask16 __M
, __m512i __X
,
6654 return (__m512i
) __builtin_ia32_permvarsi512_mask ((__v16si
) __Y
,
6660 extern __inline __m512d
6661 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6662 _mm512_permutexvar_pd (__m512i __X
, __m512d __Y
)
6664 return (__m512d
) __builtin_ia32_permvardf512_mask ((__v8df
) __Y
,
6667 _mm512_undefined_pd (),
6671 extern __inline __m512d
6672 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6673 _mm512_mask_permutexvar_pd (__m512d __W
, __mmask8 __U
, __m512i __X
, __m512d __Y
)
6675 return (__m512d
) __builtin_ia32_permvardf512_mask ((__v8df
) __Y
,
6681 extern __inline __m512d
6682 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6683 _mm512_maskz_permutexvar_pd (__mmask8 __U
, __m512i __X
, __m512d __Y
)
6685 return (__m512d
) __builtin_ia32_permvardf512_mask ((__v8df
) __Y
,
6688 _mm512_setzero_pd (),
6692 extern __inline __m512
6693 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6694 _mm512_permutexvar_ps (__m512i __X
, __m512 __Y
)
6696 return (__m512
) __builtin_ia32_permvarsf512_mask ((__v16sf
) __Y
,
6699 _mm512_undefined_ps (),
6703 extern __inline __m512
6704 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6705 _mm512_mask_permutexvar_ps (__m512 __W
, __mmask16 __U
, __m512i __X
, __m512 __Y
)
6707 return (__m512
) __builtin_ia32_permvarsf512_mask ((__v16sf
) __Y
,
6713 extern __inline __m512
6714 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6715 _mm512_maskz_permutexvar_ps (__mmask16 __U
, __m512i __X
, __m512 __Y
)
6717 return (__m512
) __builtin_ia32_permvarsf512_mask ((__v16sf
) __Y
,
6720 _mm512_setzero_ps (),
6725 extern __inline __m512
6726 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6727 _mm512_shuffle_ps (__m512 __M
, __m512 __V
, const int __imm
)
6729 return (__m512
) __builtin_ia32_shufps512_mask ((__v16sf
) __M
,
6730 (__v16sf
) __V
, __imm
,
6732 _mm512_undefined_ps (),
6736 extern __inline __m512
6737 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6738 _mm512_mask_shuffle_ps (__m512 __W
, __mmask16 __U
, __m512 __M
,
6739 __m512 __V
, const int __imm
)
6741 return (__m512
) __builtin_ia32_shufps512_mask ((__v16sf
) __M
,
6742 (__v16sf
) __V
, __imm
,
6747 extern __inline __m512
6748 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6749 _mm512_maskz_shuffle_ps (__mmask16 __U
, __m512 __M
, __m512 __V
, const int __imm
)
6751 return (__m512
) __builtin_ia32_shufps512_mask ((__v16sf
) __M
,
6752 (__v16sf
) __V
, __imm
,
6754 _mm512_setzero_ps (),
6758 extern __inline __m512d
6759 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6760 _mm512_shuffle_pd (__m512d __M
, __m512d __V
, const int __imm
)
6762 return (__m512d
) __builtin_ia32_shufpd512_mask ((__v8df
) __M
,
6763 (__v8df
) __V
, __imm
,
6765 _mm512_undefined_pd (),
6769 extern __inline __m512d
6770 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6771 _mm512_mask_shuffle_pd (__m512d __W
, __mmask8 __U
, __m512d __M
,
6772 __m512d __V
, const int __imm
)
6774 return (__m512d
) __builtin_ia32_shufpd512_mask ((__v8df
) __M
,
6775 (__v8df
) __V
, __imm
,
6780 extern __inline __m512d
6781 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6782 _mm512_maskz_shuffle_pd (__mmask8 __U
, __m512d __M
, __m512d __V
,
6785 return (__m512d
) __builtin_ia32_shufpd512_mask ((__v8df
) __M
,
6786 (__v8df
) __V
, __imm
,
6788 _mm512_setzero_pd (),
6792 extern __inline __m512d
6793 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6794 _mm512_fixupimm_round_pd (__m512d __A
, __m512d __B
, __m512i __C
,
6795 const int __imm
, const int __R
)
6797 return (__m512d
) __builtin_ia32_fixupimmpd512_mask ((__v8df
) __A
,
6801 (__mmask8
) -1, __R
);
6804 extern __inline __m512d
6805 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6806 _mm512_mask_fixupimm_round_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
6807 __m512i __C
, const int __imm
, const int __R
)
6809 return (__m512d
) __builtin_ia32_fixupimmpd512_mask ((__v8df
) __A
,
6813 (__mmask8
) __U
, __R
);
6816 extern __inline __m512d
6817 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6818 _mm512_maskz_fixupimm_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
6819 __m512i __C
, const int __imm
, const int __R
)
6821 return (__m512d
) __builtin_ia32_fixupimmpd512_maskz ((__v8df
) __A
,
6825 (__mmask8
) __U
, __R
);
6828 extern __inline __m512
6829 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6830 _mm512_fixupimm_round_ps (__m512 __A
, __m512 __B
, __m512i __C
,
6831 const int __imm
, const int __R
)
6833 return (__m512
) __builtin_ia32_fixupimmps512_mask ((__v16sf
) __A
,
6837 (__mmask16
) -1, __R
);
6840 extern __inline __m512
6841 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6842 _mm512_mask_fixupimm_round_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
6843 __m512i __C
, const int __imm
, const int __R
)
6845 return (__m512
) __builtin_ia32_fixupimmps512_mask ((__v16sf
) __A
,
6849 (__mmask16
) __U
, __R
);
6852 extern __inline __m512
6853 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6854 _mm512_maskz_fixupimm_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
6855 __m512i __C
, const int __imm
, const int __R
)
6857 return (__m512
) __builtin_ia32_fixupimmps512_maskz ((__v16sf
) __A
,
6861 (__mmask16
) __U
, __R
);
6864 extern __inline __m128d
6865 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6866 _mm_fixupimm_round_sd (__m128d __A
, __m128d __B
, __m128i __C
,
6867 const int __imm
, const int __R
)
6869 return (__m128d
) __builtin_ia32_fixupimmsd_mask ((__v2df
) __A
,
6871 (__v2di
) __C
, __imm
,
6872 (__mmask8
) -1, __R
);
6875 extern __inline __m128d
6876 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6877 _mm_mask_fixupimm_round_sd (__m128d __A
, __mmask8 __U
, __m128d __B
,
6878 __m128i __C
, const int __imm
, const int __R
)
6880 return (__m128d
) __builtin_ia32_fixupimmsd_mask ((__v2df
) __A
,
6882 (__v2di
) __C
, __imm
,
6883 (__mmask8
) __U
, __R
);
6886 extern __inline __m128d
6887 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6888 _mm_maskz_fixupimm_round_sd (__mmask8 __U
, __m128d __A
, __m128d __B
,
6889 __m128i __C
, const int __imm
, const int __R
)
6891 return (__m128d
) __builtin_ia32_fixupimmsd_maskz ((__v2df
) __A
,
6895 (__mmask8
) __U
, __R
);
6898 extern __inline __m128
6899 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6900 _mm_fixupimm_round_ss (__m128 __A
, __m128 __B
, __m128i __C
,
6901 const int __imm
, const int __R
)
6903 return (__m128
) __builtin_ia32_fixupimmss_mask ((__v4sf
) __A
,
6905 (__v4si
) __C
, __imm
,
6906 (__mmask8
) -1, __R
);
6909 extern __inline __m128
6910 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6911 _mm_mask_fixupimm_round_ss (__m128 __A
, __mmask8 __U
, __m128 __B
,
6912 __m128i __C
, const int __imm
, const int __R
)
6914 return (__m128
) __builtin_ia32_fixupimmss_mask ((__v4sf
) __A
,
6916 (__v4si
) __C
, __imm
,
6917 (__mmask8
) __U
, __R
);
6920 extern __inline __m128
6921 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6922 _mm_maskz_fixupimm_round_ss (__mmask8 __U
, __m128 __A
, __m128 __B
,
6923 __m128i __C
, const int __imm
, const int __R
)
6925 return (__m128
) __builtin_ia32_fixupimmss_maskz ((__v4sf
) __A
,
6927 (__v4si
) __C
, __imm
,
6928 (__mmask8
) __U
, __R
);
6932 #define _mm512_shuffle_pd(X, Y, C) \
6933 ((__m512d)__builtin_ia32_shufpd512_mask ((__v8df)(__m512d)(X), \
6934 (__v8df)(__m512d)(Y), (int)(C),\
6935 (__v8df)(__m512d)_mm512_undefined_pd(),\
6938 #define _mm512_mask_shuffle_pd(W, U, X, Y, C) \
6939 ((__m512d)__builtin_ia32_shufpd512_mask ((__v8df)(__m512d)(X), \
6940 (__v8df)(__m512d)(Y), (int)(C),\
6941 (__v8df)(__m512d)(W),\
6944 #define _mm512_maskz_shuffle_pd(U, X, Y, C) \
6945 ((__m512d)__builtin_ia32_shufpd512_mask ((__v8df)(__m512d)(X), \
6946 (__v8df)(__m512d)(Y), (int)(C),\
6947 (__v8df)(__m512d)_mm512_setzero_pd(),\
6950 #define _mm512_shuffle_ps(X, Y, C) \
6951 ((__m512)__builtin_ia32_shufps512_mask ((__v16sf)(__m512)(X), \
6952 (__v16sf)(__m512)(Y), (int)(C),\
6953 (__v16sf)(__m512)_mm512_undefined_ps(),\
6956 #define _mm512_mask_shuffle_ps(W, U, X, Y, C) \
6957 ((__m512)__builtin_ia32_shufps512_mask ((__v16sf)(__m512)(X), \
6958 (__v16sf)(__m512)(Y), (int)(C),\
6959 (__v16sf)(__m512)(W),\
6962 #define _mm512_maskz_shuffle_ps(U, X, Y, C) \
6963 ((__m512)__builtin_ia32_shufps512_mask ((__v16sf)(__m512)(X), \
6964 (__v16sf)(__m512)(Y), (int)(C),\
6965 (__v16sf)(__m512)_mm512_setzero_ps(),\
6968 #define _mm512_fixupimm_round_pd(X, Y, Z, C, R) \
6969 ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X), \
6970 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
6971 (__mmask8)(-1), (R)))
6973 #define _mm512_mask_fixupimm_round_pd(X, U, Y, Z, C, R) \
6974 ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X), \
6975 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
6976 (__mmask8)(U), (R)))
6978 #define _mm512_maskz_fixupimm_round_pd(U, X, Y, Z, C, R) \
6979 ((__m512d)__builtin_ia32_fixupimmpd512_maskz ((__v8df)(__m512d)(X), \
6980 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
6981 (__mmask8)(U), (R)))
6983 #define _mm512_fixupimm_round_ps(X, Y, Z, C, R) \
6984 ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X), \
6985 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
6986 (__mmask16)(-1), (R)))
6988 #define _mm512_mask_fixupimm_round_ps(X, U, Y, Z, C, R) \
6989 ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X), \
6990 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
6991 (__mmask16)(U), (R)))
6993 #define _mm512_maskz_fixupimm_round_ps(U, X, Y, Z, C, R) \
6994 ((__m512)__builtin_ia32_fixupimmps512_maskz ((__v16sf)(__m512)(X), \
6995 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
6996 (__mmask16)(U), (R)))
6998 #define _mm_fixupimm_round_sd(X, Y, Z, C, R) \
6999 ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X), \
7000 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
7001 (__mmask8)(-1), (R)))
7003 #define _mm_mask_fixupimm_round_sd(X, U, Y, Z, C, R) \
7004 ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X), \
7005 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
7006 (__mmask8)(U), (R)))
7008 #define _mm_maskz_fixupimm_round_sd(U, X, Y, Z, C, R) \
7009 ((__m128d)__builtin_ia32_fixupimmsd_maskz ((__v2df)(__m128d)(X), \
7010 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
7011 (__mmask8)(U), (R)))
7013 #define _mm_fixupimm_round_ss(X, Y, Z, C, R) \
7014 ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X), \
7015 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
7016 (__mmask8)(-1), (R)))
7018 #define _mm_mask_fixupimm_round_ss(X, U, Y, Z, C, R) \
7019 ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X), \
7020 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
7021 (__mmask8)(U), (R)))
7023 #define _mm_maskz_fixupimm_round_ss(U, X, Y, Z, C, R) \
7024 ((__m128)__builtin_ia32_fixupimmss_maskz ((__v4sf)(__m128)(X), \
7025 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
7026 (__mmask8)(U), (R)))
7029 extern __inline __m512
7030 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7031 _mm512_movehdup_ps (__m512 __A
)
7033 return (__m512
) __builtin_ia32_movshdup512_mask ((__v16sf
) __A
,
7035 _mm512_undefined_ps (),
7039 extern __inline __m512
7040 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7041 _mm512_mask_movehdup_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
7043 return (__m512
) __builtin_ia32_movshdup512_mask ((__v16sf
) __A
,
7048 extern __inline __m512
7049 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7050 _mm512_maskz_movehdup_ps (__mmask16 __U
, __m512 __A
)
7052 return (__m512
) __builtin_ia32_movshdup512_mask ((__v16sf
) __A
,
7054 _mm512_setzero_ps (),
7058 extern __inline __m512
7059 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7060 _mm512_moveldup_ps (__m512 __A
)
7062 return (__m512
) __builtin_ia32_movsldup512_mask ((__v16sf
) __A
,
7064 _mm512_undefined_ps (),
7068 extern __inline __m512
7069 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7070 _mm512_mask_moveldup_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
7072 return (__m512
) __builtin_ia32_movsldup512_mask ((__v16sf
) __A
,
7077 extern __inline __m512
7078 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7079 _mm512_maskz_moveldup_ps (__mmask16 __U
, __m512 __A
)
7081 return (__m512
) __builtin_ia32_movsldup512_mask ((__v16sf
) __A
,
7083 _mm512_setzero_ps (),
7087 extern __inline __m512i
7088 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7089 _mm512_or_si512 (__m512i __A
, __m512i __B
)
7091 return (__m512i
) ((__v16su
) __A
| (__v16su
) __B
);
7094 extern __inline __m512i
7095 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7096 _mm512_or_epi32 (__m512i __A
, __m512i __B
)
7098 return (__m512i
) ((__v16su
) __A
| (__v16su
) __B
);
7101 extern __inline __m512i
7102 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7103 _mm512_mask_or_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
7105 return (__m512i
) __builtin_ia32_pord512_mask ((__v16si
) __A
,
7111 extern __inline __m512i
7112 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7113 _mm512_maskz_or_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
7115 return (__m512i
) __builtin_ia32_pord512_mask ((__v16si
) __A
,
7118 _mm512_setzero_si512 (),
7122 extern __inline __m512i
7123 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7124 _mm512_or_epi64 (__m512i __A
, __m512i __B
)
7126 return (__m512i
) ((__v8du
) __A
| (__v8du
) __B
);
7129 extern __inline __m512i
7130 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7131 _mm512_mask_or_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
7133 return (__m512i
) __builtin_ia32_porq512_mask ((__v8di
) __A
,
7139 extern __inline __m512i
7140 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7141 _mm512_maskz_or_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
7143 return (__m512i
) __builtin_ia32_porq512_mask ((__v8di
) __A
,
7146 _mm512_setzero_si512 (),
7150 extern __inline __m512i
7151 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7152 _mm512_xor_si512 (__m512i __A
, __m512i __B
)
7154 return (__m512i
) ((__v16su
) __A
^ (__v16su
) __B
);
7157 extern __inline __m512i
7158 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7159 _mm512_xor_epi32 (__m512i __A
, __m512i __B
)
7161 return (__m512i
) ((__v16su
) __A
^ (__v16su
) __B
);
7164 extern __inline __m512i
7165 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7166 _mm512_mask_xor_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
7168 return (__m512i
) __builtin_ia32_pxord512_mask ((__v16si
) __A
,
7174 extern __inline __m512i
7175 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7176 _mm512_maskz_xor_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
7178 return (__m512i
) __builtin_ia32_pxord512_mask ((__v16si
) __A
,
7181 _mm512_setzero_si512 (),
7185 extern __inline __m512i
7186 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7187 _mm512_xor_epi64 (__m512i __A
, __m512i __B
)
7189 return (__m512i
) ((__v8du
) __A
^ (__v8du
) __B
);
7192 extern __inline __m512i
7193 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7194 _mm512_mask_xor_epi64 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
7196 return (__m512i
) __builtin_ia32_pxorq512_mask ((__v8di
) __A
,
7202 extern __inline __m512i
7203 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7204 _mm512_maskz_xor_epi64 (__mmask16 __U
, __m512i __A
, __m512i __B
)
7206 return (__m512i
) __builtin_ia32_pxorq512_mask ((__v8di
) __A
,
7209 _mm512_setzero_si512 (),
7214 extern __inline __m512i
7215 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7216 _mm512_rol_epi32 (__m512i __A
, const int __B
)
7218 return (__m512i
) __builtin_ia32_prold512_mask ((__v16si
) __A
, __B
,
7220 _mm512_undefined_epi32 (),
7224 extern __inline __m512i
7225 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7226 _mm512_mask_rol_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, const int __B
)
7228 return (__m512i
) __builtin_ia32_prold512_mask ((__v16si
) __A
, __B
,
7233 extern __inline __m512i
7234 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7235 _mm512_maskz_rol_epi32 (__mmask16 __U
, __m512i __A
, const int __B
)
7237 return (__m512i
) __builtin_ia32_prold512_mask ((__v16si
) __A
, __B
,
7239 _mm512_setzero_si512 (),
7243 extern __inline __m512i
7244 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7245 _mm512_ror_epi32 (__m512i __A
, int __B
)
7247 return (__m512i
) __builtin_ia32_prord512_mask ((__v16si
) __A
, __B
,
7249 _mm512_undefined_epi32 (),
7253 extern __inline __m512i
7254 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7255 _mm512_mask_ror_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, int __B
)
7257 return (__m512i
) __builtin_ia32_prord512_mask ((__v16si
) __A
, __B
,
7262 extern __inline __m512i
7263 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7264 _mm512_maskz_ror_epi32 (__mmask16 __U
, __m512i __A
, int __B
)
7266 return (__m512i
) __builtin_ia32_prord512_mask ((__v16si
) __A
, __B
,
7268 _mm512_setzero_si512 (),
7272 extern __inline __m512i
7273 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7274 _mm512_rol_epi64 (__m512i __A
, const int __B
)
7276 return (__m512i
) __builtin_ia32_prolq512_mask ((__v8di
) __A
, __B
,
7278 _mm512_undefined_epi32 (),
7282 extern __inline __m512i
7283 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7284 _mm512_mask_rol_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, const int __B
)
7286 return (__m512i
) __builtin_ia32_prolq512_mask ((__v8di
) __A
, __B
,
7291 extern __inline __m512i
7292 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7293 _mm512_maskz_rol_epi64 (__mmask8 __U
, __m512i __A
, const int __B
)
7295 return (__m512i
) __builtin_ia32_prolq512_mask ((__v8di
) __A
, __B
,
7297 _mm512_setzero_si512 (),
7301 extern __inline __m512i
7302 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7303 _mm512_ror_epi64 (__m512i __A
, int __B
)
7305 return (__m512i
) __builtin_ia32_prorq512_mask ((__v8di
) __A
, __B
,
7307 _mm512_undefined_epi32 (),
7311 extern __inline __m512i
7312 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7313 _mm512_mask_ror_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, int __B
)
7315 return (__m512i
) __builtin_ia32_prorq512_mask ((__v8di
) __A
, __B
,
7320 extern __inline __m512i
7321 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7322 _mm512_maskz_ror_epi64 (__mmask8 __U
, __m512i __A
, int __B
)
7324 return (__m512i
) __builtin_ia32_prorq512_mask ((__v8di
) __A
, __B
,
7326 _mm512_setzero_si512 (),
7331 #define _mm512_rol_epi32(A, B) \
7332 ((__m512i)__builtin_ia32_prold512_mask ((__v16si)(__m512i)(A), \
7334 (__v16si)_mm512_undefined_epi32 (), \
7336 #define _mm512_mask_rol_epi32(W, U, A, B) \
7337 ((__m512i)__builtin_ia32_prold512_mask ((__v16si)(__m512i)(A), \
7339 (__v16si)(__m512i)(W), \
7341 #define _mm512_maskz_rol_epi32(U, A, B) \
7342 ((__m512i)__builtin_ia32_prold512_mask ((__v16si)(__m512i)(A), \
7344 (__v16si)_mm512_setzero_si512 (), \
7346 #define _mm512_ror_epi32(A, B) \
7347 ((__m512i)__builtin_ia32_prord512_mask ((__v16si)(__m512i)(A), \
7349 (__v16si)_mm512_undefined_epi32 (), \
7351 #define _mm512_mask_ror_epi32(W, U, A, B) \
7352 ((__m512i)__builtin_ia32_prord512_mask ((__v16si)(__m512i)(A), \
7354 (__v16si)(__m512i)(W), \
7356 #define _mm512_maskz_ror_epi32(U, A, B) \
7357 ((__m512i)__builtin_ia32_prord512_mask ((__v16si)(__m512i)(A), \
7359 (__v16si)_mm512_setzero_si512 (), \
7361 #define _mm512_rol_epi64(A, B) \
7362 ((__m512i)__builtin_ia32_prolq512_mask ((__v8di)(__m512i)(A), \
7364 (__v8di)_mm512_undefined_epi32 (), \
7366 #define _mm512_mask_rol_epi64(W, U, A, B) \
7367 ((__m512i)__builtin_ia32_prolq512_mask ((__v8di)(__m512i)(A), \
7369 (__v8di)(__m512i)(W), \
7371 #define _mm512_maskz_rol_epi64(U, A, B) \
7372 ((__m512i)__builtin_ia32_prolq512_mask ((__v8di)(__m512i)(A), \
7374 (__v8di)_mm512_setzero_si512 (), \
7377 #define _mm512_ror_epi64(A, B) \
7378 ((__m512i)__builtin_ia32_prorq512_mask ((__v8di)(__m512i)(A), \
7380 (__v8di)_mm512_undefined_epi32 (), \
7382 #define _mm512_mask_ror_epi64(W, U, A, B) \
7383 ((__m512i)__builtin_ia32_prorq512_mask ((__v8di)(__m512i)(A), \
7385 (__v8di)(__m512i)(W), \
7387 #define _mm512_maskz_ror_epi64(U, A, B) \
7388 ((__m512i)__builtin_ia32_prorq512_mask ((__v8di)(__m512i)(A), \
7390 (__v8di)_mm512_setzero_si512 (), \
7394 extern __inline __m512i
7395 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7396 _mm512_and_si512 (__m512i __A
, __m512i __B
)
7398 return (__m512i
) ((__v16su
) __A
& (__v16su
) __B
);
7401 extern __inline __m512i
7402 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7403 _mm512_and_epi32 (__m512i __A
, __m512i __B
)
7405 return (__m512i
) ((__v16su
) __A
& (__v16su
) __B
);
7408 extern __inline __m512i
7409 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7410 _mm512_mask_and_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
7412 return (__m512i
) __builtin_ia32_pandd512_mask ((__v16si
) __A
,
7418 extern __inline __m512i
7419 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7420 _mm512_maskz_and_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
7422 return (__m512i
) __builtin_ia32_pandd512_mask ((__v16si
) __A
,
7425 _mm512_setzero_si512 (),
7429 extern __inline __m512i
7430 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7431 _mm512_and_epi64 (__m512i __A
, __m512i __B
)
7433 return (__m512i
) ((__v8du
) __A
& (__v8du
) __B
);
7436 extern __inline __m512i
7437 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7438 _mm512_mask_and_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
7440 return (__m512i
) __builtin_ia32_pandq512_mask ((__v8di
) __A
,
7445 extern __inline __m512i
7446 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7447 _mm512_maskz_and_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
7449 return (__m512i
) __builtin_ia32_pandq512_mask ((__v8di
) __A
,
7452 _mm512_setzero_pd (),
7456 extern __inline __m512i
7457 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7458 _mm512_andnot_si512 (__m512i __A
, __m512i __B
)
7460 return (__m512i
) __builtin_ia32_pandnd512_mask ((__v16si
) __A
,
7463 _mm512_undefined_epi32 (),
7467 extern __inline __m512i
7468 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7469 _mm512_andnot_epi32 (__m512i __A
, __m512i __B
)
7471 return (__m512i
) __builtin_ia32_pandnd512_mask ((__v16si
) __A
,
7474 _mm512_undefined_epi32 (),
7478 extern __inline __m512i
7479 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7480 _mm512_mask_andnot_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
7482 return (__m512i
) __builtin_ia32_pandnd512_mask ((__v16si
) __A
,
7488 extern __inline __m512i
7489 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7490 _mm512_maskz_andnot_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
7492 return (__m512i
) __builtin_ia32_pandnd512_mask ((__v16si
) __A
,
7495 _mm512_setzero_si512 (),
7499 extern __inline __m512i
7500 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7501 _mm512_andnot_epi64 (__m512i __A
, __m512i __B
)
7503 return (__m512i
) __builtin_ia32_pandnq512_mask ((__v8di
) __A
,
7506 _mm512_undefined_epi32 (),
7510 extern __inline __m512i
7511 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7512 _mm512_mask_andnot_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
7514 return (__m512i
) __builtin_ia32_pandnq512_mask ((__v8di
) __A
,
7519 extern __inline __m512i
7520 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7521 _mm512_maskz_andnot_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
7523 return (__m512i
) __builtin_ia32_pandnq512_mask ((__v8di
) __A
,
7526 _mm512_setzero_pd (),
7530 extern __inline __mmask16
7531 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7532 _mm512_test_epi32_mask (__m512i __A
, __m512i __B
)
7534 return (__mmask16
) __builtin_ia32_ptestmd512 ((__v16si
) __A
,
7539 extern __inline __mmask16
7540 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7541 _mm512_mask_test_epi32_mask (__mmask16 __U
, __m512i __A
, __m512i __B
)
7543 return (__mmask16
) __builtin_ia32_ptestmd512 ((__v16si
) __A
,
7544 (__v16si
) __B
, __U
);
7547 extern __inline __mmask8
7548 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7549 _mm512_test_epi64_mask (__m512i __A
, __m512i __B
)
7551 return (__mmask8
) __builtin_ia32_ptestmq512 ((__v8di
) __A
,
7556 extern __inline __mmask8
7557 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7558 _mm512_mask_test_epi64_mask (__mmask8 __U
, __m512i __A
, __m512i __B
)
7560 return (__mmask8
) __builtin_ia32_ptestmq512 ((__v8di
) __A
, (__v8di
) __B
, __U
);
7563 extern __inline __mmask16
7564 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7565 _mm512_testn_epi32_mask (__m512i __A
, __m512i __B
)
7567 return (__mmask16
) __builtin_ia32_ptestnmd512 ((__v16si
) __A
,
7572 extern __inline __mmask16
7573 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7574 _mm512_mask_testn_epi32_mask (__mmask16 __U
, __m512i __A
, __m512i __B
)
7576 return (__mmask16
) __builtin_ia32_ptestnmd512 ((__v16si
) __A
,
7577 (__v16si
) __B
, __U
);
7580 extern __inline __mmask8
7581 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7582 _mm512_testn_epi64_mask (__m512i __A
, __m512i __B
)
7584 return (__mmask8
) __builtin_ia32_ptestnmq512 ((__v8di
) __A
,
7589 extern __inline __mmask8
7590 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7591 _mm512_mask_testn_epi64_mask (__mmask8 __U
, __m512i __A
, __m512i __B
)
7593 return (__mmask8
) __builtin_ia32_ptestnmq512 ((__v8di
) __A
,
7597 extern __inline __m512
7598 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7599 _mm512_abs_ps (__m512 __A
)
7601 return (__m512
) _mm512_and_epi32 ((__m512i
) __A
,
7602 _mm512_set1_epi32 (0x7fffffff));
7605 extern __inline __m512
7606 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7607 _mm512_mask_abs_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
7609 return (__m512
) _mm512_mask_and_epi32 ((__m512i
) __W
, __U
, (__m512i
) __A
,
7610 _mm512_set1_epi32 (0x7fffffff));
7613 extern __inline __m512d
7614 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7615 _mm512_abs_pd (__m512 __A
)
7617 return (__m512d
) _mm512_and_epi64 ((__m512i
) __A
,
7618 _mm512_set1_epi64 (0x7fffffffffffffffLL
));
7621 extern __inline __m512d
7622 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7623 _mm512_mask_abs_pd (__m512d __W
, __mmask8 __U
, __m512 __A
)
7626 _mm512_mask_and_epi64 ((__m512i
) __W
, __U
, (__m512i
) __A
,
7627 _mm512_set1_epi64 (0x7fffffffffffffffLL
));
7630 extern __inline __m512i
7631 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7632 _mm512_unpackhi_epi32 (__m512i __A
, __m512i __B
)
7634 return (__m512i
) __builtin_ia32_punpckhdq512_mask ((__v16si
) __A
,
7637 _mm512_undefined_epi32 (),
7641 extern __inline __m512i
7642 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7643 _mm512_mask_unpackhi_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
,
7646 return (__m512i
) __builtin_ia32_punpckhdq512_mask ((__v16si
) __A
,
7652 extern __inline __m512i
7653 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7654 _mm512_maskz_unpackhi_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
7656 return (__m512i
) __builtin_ia32_punpckhdq512_mask ((__v16si
) __A
,
7659 _mm512_setzero_si512 (),
7663 extern __inline __m512i
7664 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7665 _mm512_unpackhi_epi64 (__m512i __A
, __m512i __B
)
7667 return (__m512i
) __builtin_ia32_punpckhqdq512_mask ((__v8di
) __A
,
7670 _mm512_undefined_epi32 (),
7674 extern __inline __m512i
7675 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7676 _mm512_mask_unpackhi_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
7678 return (__m512i
) __builtin_ia32_punpckhqdq512_mask ((__v8di
) __A
,
7684 extern __inline __m512i
7685 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7686 _mm512_maskz_unpackhi_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
7688 return (__m512i
) __builtin_ia32_punpckhqdq512_mask ((__v8di
) __A
,
7691 _mm512_setzero_si512 (),
7695 extern __inline __m512i
7696 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7697 _mm512_unpacklo_epi32 (__m512i __A
, __m512i __B
)
7699 return (__m512i
) __builtin_ia32_punpckldq512_mask ((__v16si
) __A
,
7702 _mm512_undefined_epi32 (),
7706 extern __inline __m512i
7707 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7708 _mm512_mask_unpacklo_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
,
7711 return (__m512i
) __builtin_ia32_punpckldq512_mask ((__v16si
) __A
,
7717 extern __inline __m512i
7718 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7719 _mm512_maskz_unpacklo_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
7721 return (__m512i
) __builtin_ia32_punpckldq512_mask ((__v16si
) __A
,
7724 _mm512_setzero_si512 (),
7728 extern __inline __m512i
7729 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7730 _mm512_unpacklo_epi64 (__m512i __A
, __m512i __B
)
7732 return (__m512i
) __builtin_ia32_punpcklqdq512_mask ((__v8di
) __A
,
7735 _mm512_undefined_epi32 (),
7739 extern __inline __m512i
7740 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7741 _mm512_mask_unpacklo_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
7743 return (__m512i
) __builtin_ia32_punpcklqdq512_mask ((__v8di
) __A
,
7749 extern __inline __m512i
7750 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7751 _mm512_maskz_unpacklo_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
7753 return (__m512i
) __builtin_ia32_punpcklqdq512_mask ((__v8di
) __A
,
7756 _mm512_setzero_si512 (),
7762 extern __inline
unsigned long long
7763 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7764 _mm_cvt_roundss_u64 (__m128 __A
, const int __R
)
7766 return (unsigned long long) __builtin_ia32_vcvtss2usi64 ((__v4sf
) __A
, __R
);
7769 extern __inline
long long
7770 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7771 _mm_cvt_roundss_si64 (__m128 __A
, const int __R
)
7773 return (long long) __builtin_ia32_vcvtss2si64 ((__v4sf
) __A
, __R
);
7776 extern __inline
long long
7777 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7778 _mm_cvt_roundss_i64 (__m128 __A
, const int __R
)
7780 return (long long) __builtin_ia32_vcvtss2si64 ((__v4sf
) __A
, __R
);
7783 extern __inline
unsigned long long
7784 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7785 _mm_cvtt_roundss_u64 (__m128 __A
, const int __R
)
7787 return (unsigned long long) __builtin_ia32_vcvttss2usi64 ((__v4sf
) __A
, __R
);
7790 extern __inline
long long
7791 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7792 _mm_cvtt_roundss_i64 (__m128 __A
, const int __R
)
7794 return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf
) __A
, __R
);
7797 extern __inline
long long
7798 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7799 _mm_cvtt_roundss_si64 (__m128 __A
, const int __R
)
7801 return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf
) __A
, __R
);
7804 #define _mm_cvt_roundss_u64(A, B) \
7805 ((unsigned long long)__builtin_ia32_vcvtss2usi64(A, B))
7807 #define _mm_cvt_roundss_si64(A, B) \
7808 ((long long)__builtin_ia32_vcvtss2si64(A, B))
7810 #define _mm_cvt_roundss_i64(A, B) \
7811 ((long long)__builtin_ia32_vcvtss2si64(A, B))
7813 #define _mm_cvtt_roundss_u64(A, B) \
7814 ((unsigned long long)__builtin_ia32_vcvttss2usi64(A, B))
7816 #define _mm_cvtt_roundss_i64(A, B) \
7817 ((long long)__builtin_ia32_vcvttss2si64(A, B))
7819 #define _mm_cvtt_roundss_si64(A, B) \
7820 ((long long)__builtin_ia32_vcvttss2si64(A, B))
7825 extern __inline
unsigned
7826 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7827 _mm_cvt_roundss_u32 (__m128 __A
, const int __R
)
7829 return (unsigned) __builtin_ia32_vcvtss2usi32 ((__v4sf
) __A
, __R
);
7833 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7834 _mm_cvt_roundss_si32 (__m128 __A
, const int __R
)
7836 return (int) __builtin_ia32_vcvtss2si32 ((__v4sf
) __A
, __R
);
7840 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7841 _mm_cvt_roundss_i32 (__m128 __A
, const int __R
)
7843 return (int) __builtin_ia32_vcvtss2si32 ((__v4sf
) __A
, __R
);
7846 extern __inline
unsigned
7847 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7848 _mm_cvtt_roundss_u32 (__m128 __A
, const int __R
)
7850 return (unsigned) __builtin_ia32_vcvttss2usi32 ((__v4sf
) __A
, __R
);
7854 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7855 _mm_cvtt_roundss_i32 (__m128 __A
, const int __R
)
7857 return (int) __builtin_ia32_vcvttss2si32 ((__v4sf
) __A
, __R
);
7861 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7862 _mm_cvtt_roundss_si32 (__m128 __A
, const int __R
)
7864 return (int) __builtin_ia32_vcvttss2si32 ((__v4sf
) __A
, __R
);
7867 #define _mm_cvt_roundss_u32(A, B) \
7868 ((unsigned)__builtin_ia32_vcvtss2usi32(A, B))
7870 #define _mm_cvt_roundss_si32(A, B) \
7871 ((int)__builtin_ia32_vcvtss2si32(A, B))
7873 #define _mm_cvt_roundss_i32(A, B) \
7874 ((int)__builtin_ia32_vcvtss2si32(A, B))
7876 #define _mm_cvtt_roundss_u32(A, B) \
7877 ((unsigned)__builtin_ia32_vcvttss2usi32(A, B))
7879 #define _mm_cvtt_roundss_si32(A, B) \
7880 ((int)__builtin_ia32_vcvttss2si32(A, B))
7882 #define _mm_cvtt_roundss_i32(A, B) \
7883 ((int)__builtin_ia32_vcvttss2si32(A, B))
7888 extern __inline
unsigned long long
7889 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7890 _mm_cvt_roundsd_u64 (__m128d __A
, const int __R
)
7892 return (unsigned long long) __builtin_ia32_vcvtsd2usi64 ((__v2df
) __A
, __R
);
7895 extern __inline
long long
7896 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7897 _mm_cvt_roundsd_si64 (__m128d __A
, const int __R
)
7899 return (long long) __builtin_ia32_vcvtsd2si64 ((__v2df
) __A
, __R
);
7902 extern __inline
long long
7903 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7904 _mm_cvt_roundsd_i64 (__m128d __A
, const int __R
)
7906 return (long long) __builtin_ia32_vcvtsd2si64 ((__v2df
) __A
, __R
);
7909 extern __inline
unsigned long long
7910 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7911 _mm_cvtt_roundsd_u64 (__m128d __A
, const int __R
)
7913 return (unsigned long long) __builtin_ia32_vcvttsd2usi64 ((__v2df
) __A
, __R
);
7916 extern __inline
long long
7917 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7918 _mm_cvtt_roundsd_si64 (__m128d __A
, const int __R
)
7920 return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df
) __A
, __R
);
7923 extern __inline
long long
7924 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7925 _mm_cvtt_roundsd_i64 (__m128d __A
, const int __R
)
7927 return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df
) __A
, __R
);
7930 #define _mm_cvt_roundsd_u64(A, B) \
7931 ((unsigned long long)__builtin_ia32_vcvtsd2usi64(A, B))
7933 #define _mm_cvt_roundsd_si64(A, B) \
7934 ((long long)__builtin_ia32_vcvtsd2si64(A, B))
7936 #define _mm_cvt_roundsd_i64(A, B) \
7937 ((long long)__builtin_ia32_vcvtsd2si64(A, B))
7939 #define _mm_cvtt_roundsd_u64(A, B) \
7940 ((unsigned long long)__builtin_ia32_vcvttsd2usi64(A, B))
7942 #define _mm_cvtt_roundsd_si64(A, B) \
7943 ((long long)__builtin_ia32_vcvttsd2si64(A, B))
7945 #define _mm_cvtt_roundsd_i64(A, B) \
7946 ((long long)__builtin_ia32_vcvttsd2si64(A, B))
7951 extern __inline
unsigned
7952 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7953 _mm_cvt_roundsd_u32 (__m128d __A
, const int __R
)
7955 return (unsigned) __builtin_ia32_vcvtsd2usi32 ((__v2df
) __A
, __R
);
7959 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7960 _mm_cvt_roundsd_si32 (__m128d __A
, const int __R
)
7962 return (int) __builtin_ia32_vcvtsd2si32 ((__v2df
) __A
, __R
);
7966 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7967 _mm_cvt_roundsd_i32 (__m128d __A
, const int __R
)
7969 return (int) __builtin_ia32_vcvtsd2si32 ((__v2df
) __A
, __R
);
7972 extern __inline
unsigned
7973 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7974 _mm_cvtt_roundsd_u32 (__m128d __A
, const int __R
)
7976 return (unsigned) __builtin_ia32_vcvttsd2usi32 ((__v2df
) __A
, __R
);
7980 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7981 _mm_cvtt_roundsd_i32 (__m128d __A
, const int __R
)
7983 return (int) __builtin_ia32_vcvttsd2si32 ((__v2df
) __A
, __R
);
7987 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7988 _mm_cvtt_roundsd_si32 (__m128d __A
, const int __R
)
7990 return (int) __builtin_ia32_vcvttsd2si32 ((__v2df
) __A
, __R
);
7993 #define _mm_cvt_roundsd_u32(A, B) \
7994 ((unsigned)__builtin_ia32_vcvtsd2usi32(A, B))
7996 #define _mm_cvt_roundsd_si32(A, B) \
7997 ((int)__builtin_ia32_vcvtsd2si32(A, B))
7999 #define _mm_cvt_roundsd_i32(A, B) \
8000 ((int)__builtin_ia32_vcvtsd2si32(A, B))
8002 #define _mm_cvtt_roundsd_u32(A, B) \
8003 ((unsigned)__builtin_ia32_vcvttsd2usi32(A, B))
8005 #define _mm_cvtt_roundsd_si32(A, B) \
8006 ((int)__builtin_ia32_vcvttsd2si32(A, B))
8008 #define _mm_cvtt_roundsd_i32(A, B) \
8009 ((int)__builtin_ia32_vcvttsd2si32(A, B))
8012 extern __inline __m512d
8013 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8014 _mm512_movedup_pd (__m512d __A
)
8016 return (__m512d
) __builtin_ia32_movddup512_mask ((__v8df
) __A
,
8018 _mm512_undefined_pd (),
8022 extern __inline __m512d
8023 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8024 _mm512_mask_movedup_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
8026 return (__m512d
) __builtin_ia32_movddup512_mask ((__v8df
) __A
,
8031 extern __inline __m512d
8032 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8033 _mm512_maskz_movedup_pd (__mmask8 __U
, __m512d __A
)
8035 return (__m512d
) __builtin_ia32_movddup512_mask ((__v8df
) __A
,
8037 _mm512_setzero_pd (),
8041 extern __inline __m512d
8042 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8043 _mm512_unpacklo_pd (__m512d __A
, __m512d __B
)
8045 return (__m512d
) __builtin_ia32_unpcklpd512_mask ((__v8df
) __A
,
8048 _mm512_undefined_pd (),
8052 extern __inline __m512d
8053 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8054 _mm512_mask_unpacklo_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
8056 return (__m512d
) __builtin_ia32_unpcklpd512_mask ((__v8df
) __A
,
8062 extern __inline __m512d
8063 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8064 _mm512_maskz_unpacklo_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
8066 return (__m512d
) __builtin_ia32_unpcklpd512_mask ((__v8df
) __A
,
8069 _mm512_setzero_pd (),
8073 extern __inline __m512d
8074 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8075 _mm512_unpackhi_pd (__m512d __A
, __m512d __B
)
8077 return (__m512d
) __builtin_ia32_unpckhpd512_mask ((__v8df
) __A
,
8080 _mm512_undefined_pd (),
8084 extern __inline __m512d
8085 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8086 _mm512_mask_unpackhi_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
8088 return (__m512d
) __builtin_ia32_unpckhpd512_mask ((__v8df
) __A
,
8094 extern __inline __m512d
8095 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8096 _mm512_maskz_unpackhi_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
8098 return (__m512d
) __builtin_ia32_unpckhpd512_mask ((__v8df
) __A
,
8101 _mm512_setzero_pd (),
8105 extern __inline __m512
8106 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8107 _mm512_unpackhi_ps (__m512 __A
, __m512 __B
)
8109 return (__m512
) __builtin_ia32_unpckhps512_mask ((__v16sf
) __A
,
8112 _mm512_undefined_ps (),
8116 extern __inline __m512
8117 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8118 _mm512_mask_unpackhi_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
8120 return (__m512
) __builtin_ia32_unpckhps512_mask ((__v16sf
) __A
,
8126 extern __inline __m512
8127 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8128 _mm512_maskz_unpackhi_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
8130 return (__m512
) __builtin_ia32_unpckhps512_mask ((__v16sf
) __A
,
8133 _mm512_setzero_ps (),
8138 extern __inline __m512d
8139 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8140 _mm512_cvt_roundps_pd (__m256 __A
, const int __R
)
8142 return (__m512d
) __builtin_ia32_cvtps2pd512_mask ((__v8sf
) __A
,
8144 _mm512_undefined_pd (),
8145 (__mmask8
) -1, __R
);
8148 extern __inline __m512d
8149 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8150 _mm512_mask_cvt_roundps_pd (__m512d __W
, __mmask8 __U
, __m256 __A
,
8153 return (__m512d
) __builtin_ia32_cvtps2pd512_mask ((__v8sf
) __A
,
8155 (__mmask8
) __U
, __R
);
8158 extern __inline __m512d
8159 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8160 _mm512_maskz_cvt_roundps_pd (__mmask8 __U
, __m256 __A
, const int __R
)
8162 return (__m512d
) __builtin_ia32_cvtps2pd512_mask ((__v8sf
) __A
,
8164 _mm512_setzero_pd (),
8165 (__mmask8
) __U
, __R
);
8168 extern __inline __m512
8169 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8170 _mm512_cvt_roundph_ps (__m256i __A
, const int __R
)
8172 return (__m512
) __builtin_ia32_vcvtph2ps512_mask ((__v16hi
) __A
,
8174 _mm512_undefined_ps (),
8175 (__mmask16
) -1, __R
);
8178 extern __inline __m512
8179 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8180 _mm512_mask_cvt_roundph_ps (__m512 __W
, __mmask16 __U
, __m256i __A
,
8183 return (__m512
) __builtin_ia32_vcvtph2ps512_mask ((__v16hi
) __A
,
8185 (__mmask16
) __U
, __R
);
8188 extern __inline __m512
8189 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8190 _mm512_maskz_cvt_roundph_ps (__mmask16 __U
, __m256i __A
, const int __R
)
8192 return (__m512
) __builtin_ia32_vcvtph2ps512_mask ((__v16hi
) __A
,
8194 _mm512_setzero_ps (),
8195 (__mmask16
) __U
, __R
);
8198 extern __inline __m256i
8199 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8200 _mm512_cvt_roundps_ph (__m512 __A
, const int __I
)
8202 return (__m256i
) __builtin_ia32_vcvtps2ph512_mask ((__v16sf
) __A
,
8205 _mm256_undefined_si256 (),
8209 extern __inline __m256i
8210 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8211 _mm512_cvtps_ph (__m512 __A
, const int __I
)
8213 return (__m256i
) __builtin_ia32_vcvtps2ph512_mask ((__v16sf
) __A
,
8216 _mm256_undefined_si256 (),
8220 extern __inline __m256i
8221 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8222 _mm512_mask_cvt_roundps_ph (__m256i __U
, __mmask16 __W
, __m512 __A
,
8225 return (__m256i
) __builtin_ia32_vcvtps2ph512_mask ((__v16sf
) __A
,
8231 extern __inline __m256i
8232 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8233 _mm512_mask_cvtps_ph (__m256i __U
, __mmask16 __W
, __m512 __A
, const int __I
)
8235 return (__m256i
) __builtin_ia32_vcvtps2ph512_mask ((__v16sf
) __A
,
8241 extern __inline __m256i
8242 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8243 _mm512_maskz_cvt_roundps_ph (__mmask16 __W
, __m512 __A
, const int __I
)
8245 return (__m256i
) __builtin_ia32_vcvtps2ph512_mask ((__v16sf
) __A
,
8248 _mm256_setzero_si256 (),
8252 extern __inline __m256i
8253 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8254 _mm512_maskz_cvtps_ph (__mmask16 __W
, __m512 __A
, const int __I
)
8256 return (__m256i
) __builtin_ia32_vcvtps2ph512_mask ((__v16sf
) __A
,
8259 _mm256_setzero_si256 (),
8263 #define _mm512_cvt_roundps_pd(A, B) \
8264 (__m512d)__builtin_ia32_cvtps2pd512_mask(A, (__v8df)_mm512_undefined_pd(), -1, B)
8266 #define _mm512_mask_cvt_roundps_pd(W, U, A, B) \
8267 (__m512d)__builtin_ia32_cvtps2pd512_mask(A, (__v8df)(W), U, B)
8269 #define _mm512_maskz_cvt_roundps_pd(U, A, B) \
8270 (__m512d)__builtin_ia32_cvtps2pd512_mask(A, (__v8df)_mm512_setzero_pd(), U, B)
8272 #define _mm512_cvt_roundph_ps(A, B) \
8273 (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(A), (__v16sf)_mm512_undefined_ps(), -1, B)
8275 #define _mm512_mask_cvt_roundph_ps(W, U, A, B) \
8276 (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(A), (__v16sf)(W), U, B)
8278 #define _mm512_maskz_cvt_roundph_ps(U, A, B) \
8279 (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(A), (__v16sf)_mm512_setzero_ps(), U, B)
8281 #define _mm512_cvt_roundps_ph(A, I) \
8282 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
8283 (__v16hi)_mm256_undefined_si256 (), -1))
8284 #define _mm512_cvtps_ph(A, I) \
8285 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
8286 (__v16hi)_mm256_undefined_si256 (), -1))
8287 #define _mm512_mask_cvt_roundps_ph(U, W, A, I) \
8288 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
8289 (__v16hi)(__m256i)(U), (__mmask16) (W)))
8290 #define _mm512_mask_cvtps_ph(U, W, A, I) \
8291 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
8292 (__v16hi)(__m256i)(U), (__mmask16) (W)))
8293 #define _mm512_maskz_cvt_roundps_ph(W, A, I) \
8294 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
8295 (__v16hi)_mm256_setzero_si256 (), (__mmask16) (W)))
8296 #define _mm512_maskz_cvtps_ph(W, A, I) \
8297 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
8298 (__v16hi)_mm256_setzero_si256 (), (__mmask16) (W)))
8302 extern __inline __m256
8303 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8304 _mm512_cvt_roundpd_ps (__m512d __A
, const int __R
)
8306 return (__m256
) __builtin_ia32_cvtpd2ps512_mask ((__v8df
) __A
,
8308 _mm256_undefined_ps (),
8309 (__mmask8
) -1, __R
);
8312 extern __inline __m256
8313 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8314 _mm512_mask_cvt_roundpd_ps (__m256 __W
, __mmask8 __U
, __m512d __A
,
8317 return (__m256
) __builtin_ia32_cvtpd2ps512_mask ((__v8df
) __A
,
8319 (__mmask8
) __U
, __R
);
8322 extern __inline __m256
8323 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8324 _mm512_maskz_cvt_roundpd_ps (__mmask8 __U
, __m512d __A
, const int __R
)
8326 return (__m256
) __builtin_ia32_cvtpd2ps512_mask ((__v8df
) __A
,
8328 _mm256_setzero_ps (),
8329 (__mmask8
) __U
, __R
);
8332 extern __inline __m128
8333 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8334 _mm_cvt_roundsd_ss (__m128 __A
, __m128d __B
, const int __R
)
8336 return (__m128
) __builtin_ia32_cvtsd2ss_round ((__v4sf
) __A
,
8341 extern __inline __m128d
8342 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8343 _mm_cvt_roundss_sd (__m128d __A
, __m128 __B
, const int __R
)
8345 return (__m128d
) __builtin_ia32_cvtss2sd_round ((__v2df
) __A
,
8350 #define _mm512_cvt_roundpd_ps(A, B) \
8351 (__m256)__builtin_ia32_cvtpd2ps512_mask(A, (__v8sf)_mm256_undefined_ps(), -1, B)
8353 #define _mm512_mask_cvt_roundpd_ps(W, U, A, B) \
8354 (__m256)__builtin_ia32_cvtpd2ps512_mask(A, (__v8sf)(W), U, B)
8356 #define _mm512_maskz_cvt_roundpd_ps(U, A, B) \
8357 (__m256)__builtin_ia32_cvtpd2ps512_mask(A, (__v8sf)_mm256_setzero_ps(), U, B)
8359 #define _mm_cvt_roundsd_ss(A, B, C) \
8360 (__m128)__builtin_ia32_cvtsd2ss_round(A, B, C)
8362 #define _mm_cvt_roundss_sd(A, B, C) \
8363 (__m128d)__builtin_ia32_cvtss2sd_round(A, B, C)
8366 extern __inline
void
8367 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8368 _mm512_stream_si512 (__m512i
* __P
, __m512i __A
)
8370 __builtin_ia32_movntdq512 ((__v8di
*) __P
, (__v8di
) __A
);
8373 extern __inline
void
8374 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8375 _mm512_stream_ps (float *__P
, __m512 __A
)
8377 __builtin_ia32_movntps512 (__P
, (__v16sf
) __A
);
8380 extern __inline
void
8381 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8382 _mm512_stream_pd (double *__P
, __m512d __A
)
8384 __builtin_ia32_movntpd512 (__P
, (__v8df
) __A
);
8387 extern __inline __m512i
8388 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8389 _mm512_stream_load_si512 (void *__P
)
8391 return __builtin_ia32_movntdqa512 ((__v8di
*)__P
);
8394 /* Constants for mantissa extraction */
8397 _MM_MANT_NORM_1_2
, /* interval [1, 2) */
8398 _MM_MANT_NORM_p5_2
, /* interval [0.5, 2) */
8399 _MM_MANT_NORM_p5_1
, /* interval [0.5, 1) */
8400 _MM_MANT_NORM_p75_1p5
/* interval [0.75, 1.5) */
8401 } _MM_MANTISSA_NORM_ENUM
;
8405 _MM_MANT_SIGN_src
, /* sign = sign(SRC) */
8406 _MM_MANT_SIGN_zero
, /* sign = 0 */
8407 _MM_MANT_SIGN_nan
/* DEST = NaN if sign(SRC) = 1 */
8408 } _MM_MANTISSA_SIGN_ENUM
;
8411 extern __inline __m128
8412 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8413 _mm_getexp_round_ss (__m128 __A
, __m128 __B
, const int __R
)
8415 return (__m128
) __builtin_ia32_getexpss128_round ((__v4sf
) __A
,
8420 extern __inline __m128d
8421 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8422 _mm_getexp_round_sd (__m128d __A
, __m128d __B
, const int __R
)
8424 return (__m128d
) __builtin_ia32_getexpsd128_round ((__v2df
) __A
,
8429 extern __inline __m512
8430 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8431 _mm512_getexp_round_ps (__m512 __A
, const int __R
)
8433 return (__m512
) __builtin_ia32_getexpps512_mask ((__v16sf
) __A
,
8435 _mm512_undefined_ps (),
8436 (__mmask16
) -1, __R
);
8439 extern __inline __m512
8440 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8441 _mm512_mask_getexp_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
8444 return (__m512
) __builtin_ia32_getexpps512_mask ((__v16sf
) __A
,
8446 (__mmask16
) __U
, __R
);
8449 extern __inline __m512
8450 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8451 _mm512_maskz_getexp_round_ps (__mmask16 __U
, __m512 __A
, const int __R
)
8453 return (__m512
) __builtin_ia32_getexpps512_mask ((__v16sf
) __A
,
8455 _mm512_setzero_ps (),
8456 (__mmask16
) __U
, __R
);
8459 extern __inline __m512d
8460 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8461 _mm512_getexp_round_pd (__m512d __A
, const int __R
)
8463 return (__m512d
) __builtin_ia32_getexppd512_mask ((__v8df
) __A
,
8465 _mm512_undefined_pd (),
8466 (__mmask8
) -1, __R
);
8469 extern __inline __m512d
8470 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8471 _mm512_mask_getexp_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
8474 return (__m512d
) __builtin_ia32_getexppd512_mask ((__v8df
) __A
,
8476 (__mmask8
) __U
, __R
);
8479 extern __inline __m512d
8480 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8481 _mm512_maskz_getexp_round_pd (__mmask8 __U
, __m512d __A
, const int __R
)
8483 return (__m512d
) __builtin_ia32_getexppd512_mask ((__v8df
) __A
,
8485 _mm512_setzero_pd (),
8486 (__mmask8
) __U
, __R
);
8489 extern __inline __m512d
8490 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8491 _mm512_getmant_round_pd (__m512d __A
, _MM_MANTISSA_NORM_ENUM __B
,
8492 _MM_MANTISSA_SIGN_ENUM __C
, const int __R
)
8494 return (__m512d
) __builtin_ia32_getmantpd512_mask ((__v8df
) __A
,
8496 _mm512_undefined_pd (),
8497 (__mmask8
) -1, __R
);
8500 extern __inline __m512d
8501 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8502 _mm512_mask_getmant_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
8503 _MM_MANTISSA_NORM_ENUM __B
,
8504 _MM_MANTISSA_SIGN_ENUM __C
, const int __R
)
8506 return (__m512d
) __builtin_ia32_getmantpd512_mask ((__v8df
) __A
,
8512 extern __inline __m512d
8513 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8514 _mm512_maskz_getmant_round_pd (__mmask8 __U
, __m512d __A
,
8515 _MM_MANTISSA_NORM_ENUM __B
,
8516 _MM_MANTISSA_SIGN_ENUM __C
, const int __R
)
8518 return (__m512d
) __builtin_ia32_getmantpd512_mask ((__v8df
) __A
,
8521 _mm512_setzero_pd (),
8525 extern __inline __m512
8526 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8527 _mm512_getmant_round_ps (__m512 __A
, _MM_MANTISSA_NORM_ENUM __B
,
8528 _MM_MANTISSA_SIGN_ENUM __C
, const int __R
)
8530 return (__m512
) __builtin_ia32_getmantps512_mask ((__v16sf
) __A
,
8532 _mm512_undefined_ps (),
8533 (__mmask16
) -1, __R
);
8536 extern __inline __m512
8537 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8538 _mm512_mask_getmant_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
8539 _MM_MANTISSA_NORM_ENUM __B
,
8540 _MM_MANTISSA_SIGN_ENUM __C
, const int __R
)
8542 return (__m512
) __builtin_ia32_getmantps512_mask ((__v16sf
) __A
,
8548 extern __inline __m512
8549 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8550 _mm512_maskz_getmant_round_ps (__mmask16 __U
, __m512 __A
,
8551 _MM_MANTISSA_NORM_ENUM __B
,
8552 _MM_MANTISSA_SIGN_ENUM __C
, const int __R
)
8554 return (__m512
) __builtin_ia32_getmantps512_mask ((__v16sf
) __A
,
8557 _mm512_setzero_ps (),
8561 extern __inline __m128d
8562 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8563 _mm_getmant_round_sd (__m128d __A
, __m128d __B
,
8564 _MM_MANTISSA_NORM_ENUM __C
,
8565 _MM_MANTISSA_SIGN_ENUM __D
, const int __R
)
8567 return (__m128d
) __builtin_ia32_getmantsd_round ((__v2df
) __A
,
8573 extern __inline __m128
8574 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8575 _mm_getmant_round_ss (__m128 __A
, __m128 __B
,
8576 _MM_MANTISSA_NORM_ENUM __C
,
8577 _MM_MANTISSA_SIGN_ENUM __D
, const int __R
)
8579 return (__m128
) __builtin_ia32_getmantss_round ((__v4sf
) __A
,
8586 #define _mm512_getmant_round_pd(X, B, C, R) \
8587 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
8588 (int)(((C)<<2) | (B)), \
8589 (__v8df)(__m512d)_mm512_undefined_pd(), \
8593 #define _mm512_mask_getmant_round_pd(W, U, X, B, C, R) \
8594 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
8595 (int)(((C)<<2) | (B)), \
8596 (__v8df)(__m512d)(W), \
8600 #define _mm512_maskz_getmant_round_pd(U, X, B, C, R) \
8601 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
8602 (int)(((C)<<2) | (B)), \
8603 (__v8df)(__m512d)_mm512_setzero_pd(), \
8606 #define _mm512_getmant_round_ps(X, B, C, R) \
8607 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
8608 (int)(((C)<<2) | (B)), \
8609 (__v16sf)(__m512)_mm512_undefined_ps(), \
8613 #define _mm512_mask_getmant_round_ps(W, U, X, B, C, R) \
8614 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
8615 (int)(((C)<<2) | (B)), \
8616 (__v16sf)(__m512)(W), \
8620 #define _mm512_maskz_getmant_round_ps(U, X, B, C, R) \
8621 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
8622 (int)(((C)<<2) | (B)), \
8623 (__v16sf)(__m512)_mm512_setzero_ps(), \
8626 #define _mm_getmant_round_sd(X, Y, C, D, R) \
8627 ((__m128d)__builtin_ia32_getmantsd_round ((__v2df)(__m128d)(X), \
8628 (__v2df)(__m128d)(Y), \
8629 (int)(((D)<<2) | (C)), \
8632 #define _mm_getmant_round_ss(X, Y, C, D, R) \
8633 ((__m128)__builtin_ia32_getmantss_round ((__v4sf)(__m128)(X), \
8634 (__v4sf)(__m128)(Y), \
8635 (int)(((D)<<2) | (C)), \
8638 #define _mm_getexp_round_ss(A, B, R) \
8639 ((__m128)__builtin_ia32_getexpss128_round((__v4sf)(__m128)(A), (__v4sf)(__m128)(B), R))
8641 #define _mm_getexp_round_sd(A, B, R) \
8642 ((__m128d)__builtin_ia32_getexpsd128_round((__v2df)(__m128d)(A), (__v2df)(__m128d)(B), R))
8644 #define _mm512_getexp_round_ps(A, R) \
8645 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
8646 (__v16sf)_mm512_undefined_ps(), (__mmask16)-1, R))
8648 #define _mm512_mask_getexp_round_ps(W, U, A, R) \
8649 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
8650 (__v16sf)(__m512)(W), (__mmask16)(U), R))
8652 #define _mm512_maskz_getexp_round_ps(U, A, R) \
8653 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
8654 (__v16sf)_mm512_setzero_ps(), (__mmask16)(U), R))
8656 #define _mm512_getexp_round_pd(A, R) \
8657 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
8658 (__v8df)_mm512_undefined_pd(), (__mmask8)-1, R))
8660 #define _mm512_mask_getexp_round_pd(W, U, A, R) \
8661 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
8662 (__v8df)(__m512d)(W), (__mmask8)(U), R))
8664 #define _mm512_maskz_getexp_round_pd(U, A, R) \
8665 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
8666 (__v8df)_mm512_setzero_pd(), (__mmask8)(U), R))
8670 extern __inline __m512
8671 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8672 _mm512_roundscale_round_ps (__m512 __A
, const int __imm
, const int __R
)
8674 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
, __imm
,
8676 _mm512_undefined_ps (),
8680 extern __inline __m512
8681 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8682 _mm512_mask_roundscale_round_ps (__m512 __A
, __mmask16 __B
, __m512 __C
,
8683 const int __imm
, const int __R
)
8685 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __C
, __imm
,
8687 (__mmask16
) __B
, __R
);
8690 extern __inline __m512
8691 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8692 _mm512_maskz_roundscale_round_ps (__mmask16 __A
, __m512 __B
,
8693 const int __imm
, const int __R
)
8695 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __B
,
8698 _mm512_setzero_ps (),
8699 (__mmask16
) __A
, __R
);
8702 extern __inline __m512d
8703 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8704 _mm512_roundscale_round_pd (__m512d __A
, const int __imm
, const int __R
)
8706 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
, __imm
,
8708 _mm512_undefined_pd (),
8712 extern __inline __m512d
8713 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8714 _mm512_mask_roundscale_round_pd (__m512d __A
, __mmask8 __B
,
8715 __m512d __C
, const int __imm
, const int __R
)
8717 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __C
, __imm
,
8719 (__mmask8
) __B
, __R
);
8722 extern __inline __m512d
8723 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8724 _mm512_maskz_roundscale_round_pd (__mmask8 __A
, __m512d __B
,
8725 const int __imm
, const int __R
)
8727 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __B
,
8730 _mm512_setzero_pd (),
8731 (__mmask8
) __A
, __R
);
8734 extern __inline __m128
8735 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8736 _mm_roundscale_round_ss (__m128 __A
, __m128 __B
, const int __imm
, const int __R
)
8738 return (__m128
) __builtin_ia32_rndscaless_round ((__v4sf
) __A
,
8739 (__v4sf
) __B
, __imm
, __R
);
8742 extern __inline __m128d
8743 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8744 _mm_roundscale_round_sd (__m128d __A
, __m128d __B
, const int __imm
,
8747 return (__m128d
) __builtin_ia32_rndscalesd_round ((__v2df
) __A
,
8748 (__v2df
) __B
, __imm
, __R
);
8752 #define _mm512_roundscale_round_ps(A, B, R) \
8753 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(A), (int)(B),\
8754 (__v16sf)_mm512_undefined_ps(), (__mmask16)(-1), R))
8755 #define _mm512_mask_roundscale_round_ps(A, B, C, D, R) \
8756 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(C), \
8758 (__v16sf)(__m512)(A), \
8760 #define _mm512_maskz_roundscale_round_ps(A, B, C, R) \
8761 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(B), \
8763 (__v16sf)_mm512_setzero_ps(),\
8765 #define _mm512_roundscale_round_pd(A, B, R) \
8766 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(A), (int)(B),\
8767 (__v8df)_mm512_undefined_pd(), (__mmask8)(-1), R))
8768 #define _mm512_mask_roundscale_round_pd(A, B, C, D, R) \
8769 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(C), \
8771 (__v8df)(__m512d)(A), \
8773 #define _mm512_maskz_roundscale_round_pd(A, B, C, R) \
8774 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(B), \
8776 (__v8df)_mm512_setzero_pd(),\
8778 #define _mm_roundscale_round_ss(A, B, C, R) \
8779 ((__m128) __builtin_ia32_rndscaless_round ((__v4sf)(__m128)(A), \
8780 (__v4sf)(__m128)(B), (int)(C), R))
8781 #define _mm_roundscale_round_sd(A, B, C, R) \
8782 ((__m128d) __builtin_ia32_rndscalesd_round ((__v2df)(__m128d)(A), \
8783 (__v2df)(__m128d)(B), (int)(C), R))
8786 extern __inline __m512
8787 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8788 _mm512_floor_ps (__m512 __A
)
8790 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
,
8793 _MM_FROUND_CUR_DIRECTION
);
8796 extern __inline __m512d
8797 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8798 _mm512_floor_pd (__m512d __A
)
8800 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
,
8803 _MM_FROUND_CUR_DIRECTION
);
8806 extern __inline __m512
8807 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8808 _mm512_ceil_ps (__m512 __A
)
8810 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
,
8813 _MM_FROUND_CUR_DIRECTION
);
8816 extern __inline __m512d
8817 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8818 _mm512_ceil_pd (__m512d __A
)
8820 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
,
8823 _MM_FROUND_CUR_DIRECTION
);
8826 extern __inline __m512
8827 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8828 _mm512_mask_floor_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
8830 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
,
8833 _MM_FROUND_CUR_DIRECTION
);
8836 extern __inline __m512d
8837 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8838 _mm512_mask_floor_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
8840 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
,
8843 _MM_FROUND_CUR_DIRECTION
);
8846 extern __inline __m512
8847 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8848 _mm512_mask_ceil_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
8850 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
,
8853 _MM_FROUND_CUR_DIRECTION
);
8856 extern __inline __m512d
8857 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8858 _mm512_mask_ceil_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
8860 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
,
8863 _MM_FROUND_CUR_DIRECTION
);
8867 extern __inline __m512i
8868 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8869 _mm512_alignr_epi32 (__m512i __A
, __m512i __B
, const int __imm
)
8871 return (__m512i
) __builtin_ia32_alignd512_mask ((__v16si
) __A
,
8872 (__v16si
) __B
, __imm
,
8874 _mm512_undefined_epi32 (),
8878 extern __inline __m512i
8879 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8880 _mm512_mask_alignr_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
,
8881 __m512i __B
, const int __imm
)
8883 return (__m512i
) __builtin_ia32_alignd512_mask ((__v16si
) __A
,
8884 (__v16si
) __B
, __imm
,
8889 extern __inline __m512i
8890 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8891 _mm512_maskz_alignr_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
,
8894 return (__m512i
) __builtin_ia32_alignd512_mask ((__v16si
) __A
,
8895 (__v16si
) __B
, __imm
,
8897 _mm512_setzero_si512 (),
8901 extern __inline __m512i
8902 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8903 _mm512_alignr_epi64 (__m512i __A
, __m512i __B
, const int __imm
)
8905 return (__m512i
) __builtin_ia32_alignq512_mask ((__v8di
) __A
,
8906 (__v8di
) __B
, __imm
,
8908 _mm512_undefined_epi32 (),
8912 extern __inline __m512i
8913 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8914 _mm512_mask_alignr_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
,
8915 __m512i __B
, const int __imm
)
8917 return (__m512i
) __builtin_ia32_alignq512_mask ((__v8di
) __A
,
8918 (__v8di
) __B
, __imm
,
8923 extern __inline __m512i
8924 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8925 _mm512_maskz_alignr_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
,
8928 return (__m512i
) __builtin_ia32_alignq512_mask ((__v8di
) __A
,
8929 (__v8di
) __B
, __imm
,
8931 _mm512_setzero_si512 (),
8935 #define _mm512_alignr_epi32(X, Y, C) \
8936 ((__m512i)__builtin_ia32_alignd512_mask ((__v16si)(__m512i)(X), \
8937 (__v16si)(__m512i)(Y), (int)(C), (__v16si)_mm512_undefined_epi32 (),\
8940 #define _mm512_mask_alignr_epi32(W, U, X, Y, C) \
8941 ((__m512i)__builtin_ia32_alignd512_mask ((__v16si)(__m512i)(X), \
8942 (__v16si)(__m512i)(Y), (int)(C), (__v16si)(__m512i)(W), \
8945 #define _mm512_maskz_alignr_epi32(U, X, Y, C) \
8946 ((__m512i)__builtin_ia32_alignd512_mask ((__v16si)(__m512i)(X), \
8947 (__v16si)(__m512i)(Y), (int)(C), (__v16si)_mm512_setzero_si512 (),\
8950 #define _mm512_alignr_epi64(X, Y, C) \
8951 ((__m512i)__builtin_ia32_alignq512_mask ((__v8di)(__m512i)(X), \
8952 (__v8di)(__m512i)(Y), (int)(C), (__v8di)_mm512_undefined_epi32 (), \
8955 #define _mm512_mask_alignr_epi64(W, U, X, Y, C) \
8956 ((__m512i)__builtin_ia32_alignq512_mask ((__v8di)(__m512i)(X), \
8957 (__v8di)(__m512i)(Y), (int)(C), (__v8di)(__m512i)(W), (__mmask8)(U)))
8959 #define _mm512_maskz_alignr_epi64(U, X, Y, C) \
8960 ((__m512i)__builtin_ia32_alignq512_mask ((__v8di)(__m512i)(X), \
8961 (__v8di)(__m512i)(Y), (int)(C), (__v8di)_mm512_setzero_si512 (),\
8965 extern __inline __mmask16
8966 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8967 _mm512_cmpeq_epi32_mask (__m512i __A
, __m512i __B
)
8969 return (__mmask16
) __builtin_ia32_pcmpeqd512_mask ((__v16si
) __A
,
8974 extern __inline __mmask16
8975 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8976 _mm512_mask_cmpeq_epi32_mask (__mmask16 __U
, __m512i __A
, __m512i __B
)
8978 return (__mmask16
) __builtin_ia32_pcmpeqd512_mask ((__v16si
) __A
,
8979 (__v16si
) __B
, __U
);
8982 extern __inline __mmask8
8983 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8984 _mm512_mask_cmpeq_epi64_mask (__mmask8 __U
, __m512i __A
, __m512i __B
)
8986 return (__mmask8
) __builtin_ia32_pcmpeqq512_mask ((__v8di
) __A
,
8990 extern __inline __mmask8
8991 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8992 _mm512_cmpeq_epi64_mask (__m512i __A
, __m512i __B
)
8994 return (__mmask8
) __builtin_ia32_pcmpeqq512_mask ((__v8di
) __A
,
8999 extern __inline __mmask16
9000 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9001 _mm512_cmpgt_epi32_mask (__m512i __A
, __m512i __B
)
9003 return (__mmask16
) __builtin_ia32_pcmpgtd512_mask ((__v16si
) __A
,
9008 extern __inline __mmask16
9009 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9010 _mm512_mask_cmpgt_epi32_mask (__mmask16 __U
, __m512i __A
, __m512i __B
)
9012 return (__mmask16
) __builtin_ia32_pcmpgtd512_mask ((__v16si
) __A
,
9013 (__v16si
) __B
, __U
);
9016 extern __inline __mmask8
9017 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9018 _mm512_mask_cmpgt_epi64_mask (__mmask8 __U
, __m512i __A
, __m512i __B
)
9020 return (__mmask8
) __builtin_ia32_pcmpgtq512_mask ((__v8di
) __A
,
9024 extern __inline __mmask8
9025 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9026 _mm512_cmpgt_epi64_mask (__m512i __A
, __m512i __B
)
9028 return (__mmask8
) __builtin_ia32_pcmpgtq512_mask ((__v8di
) __A
,
9033 extern __inline __mmask16
9034 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9035 _mm512_cmpge_epi32_mask (__m512i __X
, __m512i __Y
)
9037 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
9042 extern __inline __mmask16
9043 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9044 _mm512_mask_cmpge_epi32_mask (__mmask16 __M
, __m512i __X
, __m512i __Y
)
9046 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
9051 extern __inline __mmask16
9052 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9053 _mm512_mask_cmpge_epu32_mask (__mmask16 __M
, __m512i __X
, __m512i __Y
)
9055 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
9060 extern __inline __mmask16
9061 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9062 _mm512_cmpge_epu32_mask (__m512i __X
, __m512i __Y
)
9064 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
9069 extern __inline __mmask8
9070 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9071 _mm512_mask_cmpge_epi64_mask (__mmask8 __M
, __m512i __X
, __m512i __Y
)
9073 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
9078 extern __inline __mmask8
9079 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9080 _mm512_cmpge_epi64_mask (__m512i __X
, __m512i __Y
)
9082 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
9087 extern __inline __mmask8
9088 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9089 _mm512_mask_cmpge_epu64_mask (__mmask8 __M
, __m512i __X
, __m512i __Y
)
9091 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
9096 extern __inline __mmask8
9097 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9098 _mm512_cmpge_epu64_mask (__m512i __X
, __m512i __Y
)
9100 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
9105 extern __inline __mmask16
9106 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9107 _mm512_mask_cmple_epi32_mask (__mmask16 __M
, __m512i __X
, __m512i __Y
)
9109 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
9114 extern __inline __mmask16
9115 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9116 _mm512_cmple_epi32_mask (__m512i __X
, __m512i __Y
)
9118 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
9123 extern __inline __mmask16
9124 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9125 _mm512_mask_cmple_epu32_mask (__mmask16 __M
, __m512i __X
, __m512i __Y
)
9127 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
9132 extern __inline __mmask16
9133 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9134 _mm512_cmple_epu32_mask (__m512i __X
, __m512i __Y
)
9136 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
9141 extern __inline __mmask8
9142 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9143 _mm512_mask_cmple_epi64_mask (__mmask8 __M
, __m512i __X
, __m512i __Y
)
9145 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
9150 extern __inline __mmask8
9151 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9152 _mm512_cmple_epi64_mask (__m512i __X
, __m512i __Y
)
9154 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
9159 extern __inline __mmask8
9160 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9161 _mm512_mask_cmple_epu64_mask (__mmask8 __M
, __m512i __X
, __m512i __Y
)
9163 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
9168 extern __inline __mmask8
9169 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9170 _mm512_cmple_epu64_mask (__m512i __X
, __m512i __Y
)
9172 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
9177 extern __inline __mmask16
9178 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9179 _mm512_mask_cmplt_epi32_mask (__mmask16 __M
, __m512i __X
, __m512i __Y
)
9181 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
9186 extern __inline __mmask16
9187 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9188 _mm512_cmplt_epi32_mask (__m512i __X
, __m512i __Y
)
9190 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
9195 extern __inline __mmask16
9196 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9197 _mm512_mask_cmplt_epu32_mask (__mmask16 __M
, __m512i __X
, __m512i __Y
)
9199 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
9204 extern __inline __mmask16
9205 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9206 _mm512_cmplt_epu32_mask (__m512i __X
, __m512i __Y
)
9208 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
9213 extern __inline __mmask8
9214 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9215 _mm512_mask_cmplt_epi64_mask (__mmask8 __M
, __m512i __X
, __m512i __Y
)
9217 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
9222 extern __inline __mmask8
9223 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9224 _mm512_cmplt_epi64_mask (__m512i __X
, __m512i __Y
)
9226 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
9231 extern __inline __mmask8
9232 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9233 _mm512_mask_cmplt_epu64_mask (__mmask8 __M
, __m512i __X
, __m512i __Y
)
9235 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
9240 extern __inline __mmask8
9241 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9242 _mm512_cmplt_epu64_mask (__m512i __X
, __m512i __Y
)
9244 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
9249 extern __inline __mmask16
9250 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9251 _mm512_cmpneq_epi32_mask (__m512i __X
, __m512i __Y
)
9253 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
9258 extern __inline __mmask16
9259 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9260 _mm512_mask_cmpneq_epi32_mask (__mmask16 __M
, __m512i __X
, __m512i __Y
)
9262 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
9267 extern __inline __mmask16
9268 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9269 _mm512_mask_cmpneq_epu32_mask (__mmask16 __M
, __m512i __X
, __m512i __Y
)
9271 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
9276 extern __inline __mmask16
9277 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9278 _mm512_cmpneq_epu32_mask (__m512i __X
, __m512i __Y
)
9280 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
9285 extern __inline __mmask8
9286 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9287 _mm512_mask_cmpneq_epi64_mask (__mmask16 __M
, __m512i __X
, __m512i __Y
)
9289 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
9294 extern __inline __mmask8
9295 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9296 _mm512_cmpneq_epi64_mask (__m512i __X
, __m512i __Y
)
9298 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
9303 extern __inline __mmask8
9304 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9305 _mm512_mask_cmpneq_epu64_mask (__mmask8 __M
, __m512i __X
, __m512i __Y
)
9307 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
9312 extern __inline __mmask8
9313 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9314 _mm512_cmpneq_epu64_mask (__m512i __X
, __m512i __Y
)
9316 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
9321 #define _MM_CMPINT_EQ 0x0
9322 #define _MM_CMPINT_LT 0x1
9323 #define _MM_CMPINT_LE 0x2
9324 #define _MM_CMPINT_UNUSED 0x3
9325 #define _MM_CMPINT_NE 0x4
9326 #define _MM_CMPINT_NLT 0x5
9327 #define _MM_CMPINT_GE 0x5
9328 #define _MM_CMPINT_NLE 0x6
9329 #define _MM_CMPINT_GT 0x6
9332 extern __inline __mmask16
9333 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9334 _kshiftli_mask16 (__mmask16 __A
, unsigned int __B
)
9336 return (__mmask16
) __builtin_ia32_kshiftlihi ((__mmask16
) __A
,
9340 extern __inline __mmask16
9341 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9342 _kshiftri_mask16 (__mmask16 __A
, unsigned int __B
)
9344 return (__mmask16
) __builtin_ia32_kshiftrihi ((__mmask16
) __A
,
9348 extern __inline __mmask8
9349 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9350 _mm512_cmp_epi64_mask (__m512i __X
, __m512i __Y
, const int __P
)
9352 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
9357 extern __inline __mmask16
9358 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9359 _mm512_cmp_epi32_mask (__m512i __X
, __m512i __Y
, const int __P
)
9361 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
9366 extern __inline __mmask8
9367 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9368 _mm512_cmp_epu64_mask (__m512i __X
, __m512i __Y
, const int __P
)
9370 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
9375 extern __inline __mmask16
9376 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9377 _mm512_cmp_epu32_mask (__m512i __X
, __m512i __Y
, const int __P
)
9379 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
9384 extern __inline __mmask8
9385 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9386 _mm512_cmp_round_pd_mask (__m512d __X
, __m512d __Y
, const int __P
,
9389 return (__mmask8
) __builtin_ia32_cmppd512_mask ((__v8df
) __X
,
9391 (__mmask8
) -1, __R
);
9394 extern __inline __mmask16
9395 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9396 _mm512_cmp_round_ps_mask (__m512 __X
, __m512 __Y
, const int __P
, const int __R
)
9398 return (__mmask16
) __builtin_ia32_cmpps512_mask ((__v16sf
) __X
,
9400 (__mmask16
) -1, __R
);
9403 extern __inline __mmask8
9404 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9405 _mm512_mask_cmp_epi64_mask (__mmask8 __U
, __m512i __X
, __m512i __Y
,
9408 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
9413 extern __inline __mmask16
9414 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9415 _mm512_mask_cmp_epi32_mask (__mmask16 __U
, __m512i __X
, __m512i __Y
,
9418 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
9423 extern __inline __mmask8
9424 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9425 _mm512_mask_cmp_epu64_mask (__mmask8 __U
, __m512i __X
, __m512i __Y
,
9428 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
9433 extern __inline __mmask16
9434 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9435 _mm512_mask_cmp_epu32_mask (__mmask16 __U
, __m512i __X
, __m512i __Y
,
9438 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
9443 extern __inline __mmask8
9444 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9445 _mm512_mask_cmp_round_pd_mask (__mmask8 __U
, __m512d __X
, __m512d __Y
,
9446 const int __P
, const int __R
)
9448 return (__mmask8
) __builtin_ia32_cmppd512_mask ((__v8df
) __X
,
9450 (__mmask8
) __U
, __R
);
9453 extern __inline __mmask16
9454 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9455 _mm512_mask_cmp_round_ps_mask (__mmask16 __U
, __m512 __X
, __m512 __Y
,
9456 const int __P
, const int __R
)
9458 return (__mmask16
) __builtin_ia32_cmpps512_mask ((__v16sf
) __X
,
9460 (__mmask16
) __U
, __R
);
9463 extern __inline __mmask8
9464 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9465 _mm_cmp_round_sd_mask (__m128d __X
, __m128d __Y
, const int __P
, const int __R
)
9467 return (__mmask8
) __builtin_ia32_cmpsd_mask ((__v2df
) __X
,
9469 (__mmask8
) -1, __R
);
9472 extern __inline __mmask8
9473 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9474 _mm_mask_cmp_round_sd_mask (__mmask8 __M
, __m128d __X
, __m128d __Y
,
9475 const int __P
, const int __R
)
9477 return (__mmask8
) __builtin_ia32_cmpsd_mask ((__v2df
) __X
,
9479 (__mmask8
) __M
, __R
);
9482 extern __inline __mmask8
9483 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9484 _mm_cmp_round_ss_mask (__m128 __X
, __m128 __Y
, const int __P
, const int __R
)
9486 return (__mmask8
) __builtin_ia32_cmpss_mask ((__v4sf
) __X
,
9488 (__mmask8
) -1, __R
);
9491 extern __inline __mmask8
9492 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9493 _mm_mask_cmp_round_ss_mask (__mmask8 __M
, __m128 __X
, __m128 __Y
,
9494 const int __P
, const int __R
)
9496 return (__mmask8
) __builtin_ia32_cmpss_mask ((__v4sf
) __X
,
9498 (__mmask8
) __M
, __R
);
9502 #define _kshiftli_mask16(X, Y) \
9503 ((__mmask16) __builtin_ia32_kshiftlihi ((__mmask16)(X), (__mmask8)(Y)))
9505 #define _kshiftri_mask16(X, Y) \
9506 ((__mmask16) __builtin_ia32_kshiftrihi ((__mmask16)(X), (__mmask8)(Y)))
9508 #define _mm512_cmp_epi64_mask(X, Y, P) \
9509 ((__mmask8) __builtin_ia32_cmpq512_mask ((__v8di)(__m512i)(X), \
9510 (__v8di)(__m512i)(Y), (int)(P),\
9513 #define _mm512_cmp_epi32_mask(X, Y, P) \
9514 ((__mmask16) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X), \
9515 (__v16si)(__m512i)(Y), (int)(P), \
9518 #define _mm512_cmp_epu64_mask(X, Y, P) \
9519 ((__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di)(__m512i)(X), \
9520 (__v8di)(__m512i)(Y), (int)(P),\
9523 #define _mm512_cmp_epu32_mask(X, Y, P) \
9524 ((__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X), \
9525 (__v16si)(__m512i)(Y), (int)(P), \
9528 #define _mm512_cmp_round_pd_mask(X, Y, P, R) \
9529 ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X), \
9530 (__v8df)(__m512d)(Y), (int)(P),\
9533 #define _mm512_cmp_round_ps_mask(X, Y, P, R) \
9534 ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X), \
9535 (__v16sf)(__m512)(Y), (int)(P),\
9538 #define _mm512_mask_cmp_epi64_mask(M, X, Y, P) \
9539 ((__mmask8) __builtin_ia32_cmpq512_mask ((__v8di)(__m512i)(X), \
9540 (__v8di)(__m512i)(Y), (int)(P),\
9543 #define _mm512_mask_cmp_epi32_mask(M, X, Y, P) \
9544 ((__mmask16) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X), \
9545 (__v16si)(__m512i)(Y), (int)(P), \
9548 #define _mm512_mask_cmp_epu64_mask(M, X, Y, P) \
9549 ((__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di)(__m512i)(X), \
9550 (__v8di)(__m512i)(Y), (int)(P),\
9553 #define _mm512_mask_cmp_epu32_mask(M, X, Y, P) \
9554 ((__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X), \
9555 (__v16si)(__m512i)(Y), (int)(P), \
9558 #define _mm512_mask_cmp_round_pd_mask(M, X, Y, P, R) \
9559 ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X), \
9560 (__v8df)(__m512d)(Y), (int)(P),\
9563 #define _mm512_mask_cmp_round_ps_mask(M, X, Y, P, R) \
9564 ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X), \
9565 (__v16sf)(__m512)(Y), (int)(P),\
9568 #define _mm_cmp_round_sd_mask(X, Y, P, R) \
9569 ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X), \
9570 (__v2df)(__m128d)(Y), (int)(P),\
9573 #define _mm_mask_cmp_round_sd_mask(M, X, Y, P, R) \
9574 ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X), \
9575 (__v2df)(__m128d)(Y), (int)(P),\
9578 #define _mm_cmp_round_ss_mask(X, Y, P, R) \
9579 ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X), \
9580 (__v4sf)(__m128)(Y), (int)(P), \
9583 #define _mm_mask_cmp_round_ss_mask(M, X, Y, P, R) \
9584 ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X), \
9585 (__v4sf)(__m128)(Y), (int)(P), \
9590 extern __inline __m512
9591 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9592 _mm512_i32gather_ps (__m512i __index
, void const *__addr
, int __scale
)
9594 __m512 __v1_old
= _mm512_undefined_ps ();
9595 __mmask16 __mask
= 0xFFFF;
9597 return (__m512
) __builtin_ia32_gathersiv16sf ((__v16sf
) __v1_old
,
9603 extern __inline __m512
9604 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9605 _mm512_mask_i32gather_ps (__m512 __v1_old
, __mmask16 __mask
,
9606 __m512i __index
, void const *__addr
, int __scale
)
9608 return (__m512
) __builtin_ia32_gathersiv16sf ((__v16sf
) __v1_old
,
9614 extern __inline __m512d
9615 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9616 _mm512_i32gather_pd (__m256i __index
, void const *__addr
, int __scale
)
9618 __m512d __v1_old
= _mm512_undefined_pd ();
9619 __mmask8 __mask
= 0xFF;
9621 return (__m512d
) __builtin_ia32_gathersiv8df ((__v8df
) __v1_old
,
9623 (__v8si
) __index
, __mask
,
9627 extern __inline __m512d
9628 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9629 _mm512_mask_i32gather_pd (__m512d __v1_old
, __mmask8 __mask
,
9630 __m256i __index
, void const *__addr
, int __scale
)
9632 return (__m512d
) __builtin_ia32_gathersiv8df ((__v8df
) __v1_old
,
9638 extern __inline __m256
9639 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9640 _mm512_i64gather_ps (__m512i __index
, void const *__addr
, int __scale
)
9642 __m256 __v1_old
= _mm256_undefined_ps ();
9643 __mmask8 __mask
= 0xFF;
9645 return (__m256
) __builtin_ia32_gatherdiv16sf ((__v8sf
) __v1_old
,
9647 (__v8di
) __index
, __mask
,
9651 extern __inline __m256
9652 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9653 _mm512_mask_i64gather_ps (__m256 __v1_old
, __mmask8 __mask
,
9654 __m512i __index
, void const *__addr
, int __scale
)
9656 return (__m256
) __builtin_ia32_gatherdiv16sf ((__v8sf
) __v1_old
,
9662 extern __inline __m512d
9663 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9664 _mm512_i64gather_pd (__m512i __index
, void const *__addr
, int __scale
)
9666 __m512d __v1_old
= _mm512_undefined_pd ();
9667 __mmask8 __mask
= 0xFF;
9669 return (__m512d
) __builtin_ia32_gatherdiv8df ((__v8df
) __v1_old
,
9671 (__v8di
) __index
, __mask
,
9675 extern __inline __m512d
9676 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9677 _mm512_mask_i64gather_pd (__m512d __v1_old
, __mmask8 __mask
,
9678 __m512i __index
, void const *__addr
, int __scale
)
9680 return (__m512d
) __builtin_ia32_gatherdiv8df ((__v8df
) __v1_old
,
9686 extern __inline __m512i
9687 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9688 _mm512_i32gather_epi32 (__m512i __index
, void const *__addr
, int __scale
)
9690 __m512i __v1_old
= _mm512_undefined_epi32 ();
9691 __mmask16 __mask
= 0xFFFF;
9693 return (__m512i
) __builtin_ia32_gathersiv16si ((__v16si
) __v1_old
,
9699 extern __inline __m512i
9700 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9701 _mm512_mask_i32gather_epi32 (__m512i __v1_old
, __mmask16 __mask
,
9702 __m512i __index
, void const *__addr
, int __scale
)
9704 return (__m512i
) __builtin_ia32_gathersiv16si ((__v16si
) __v1_old
,
9710 extern __inline __m512i
9711 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9712 _mm512_i32gather_epi64 (__m256i __index
, void const *__addr
, int __scale
)
9714 __m512i __v1_old
= _mm512_undefined_epi32 ();
9715 __mmask8 __mask
= 0xFF;
9717 return (__m512i
) __builtin_ia32_gathersiv8di ((__v8di
) __v1_old
,
9719 (__v8si
) __index
, __mask
,
9723 extern __inline __m512i
9724 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9725 _mm512_mask_i32gather_epi64 (__m512i __v1_old
, __mmask8 __mask
,
9726 __m256i __index
, void const *__addr
,
9729 return (__m512i
) __builtin_ia32_gathersiv8di ((__v8di
) __v1_old
,
9735 extern __inline __m256i
9736 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9737 _mm512_i64gather_epi32 (__m512i __index
, void const *__addr
, int __scale
)
9739 __m256i __v1_old
= _mm256_undefined_si256 ();
9740 __mmask8 __mask
= 0xFF;
9742 return (__m256i
) __builtin_ia32_gatherdiv16si ((__v8si
) __v1_old
,
9748 extern __inline __m256i
9749 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9750 _mm512_mask_i64gather_epi32 (__m256i __v1_old
, __mmask8 __mask
,
9751 __m512i __index
, void const *__addr
, int __scale
)
9753 return (__m256i
) __builtin_ia32_gatherdiv16si ((__v8si
) __v1_old
,
9759 extern __inline __m512i
9760 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9761 _mm512_i64gather_epi64 (__m512i __index
, void const *__addr
, int __scale
)
9763 __m512i __v1_old
= _mm512_undefined_epi32 ();
9764 __mmask8 __mask
= 0xFF;
9766 return (__m512i
) __builtin_ia32_gatherdiv8di ((__v8di
) __v1_old
,
9768 (__v8di
) __index
, __mask
,
9772 extern __inline __m512i
9773 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9774 _mm512_mask_i64gather_epi64 (__m512i __v1_old
, __mmask8 __mask
,
9775 __m512i __index
, void const *__addr
,
9778 return (__m512i
) __builtin_ia32_gatherdiv8di ((__v8di
) __v1_old
,
9784 extern __inline
void
9785 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9786 _mm512_i32scatter_ps (void *__addr
, __m512i __index
, __m512 __v1
, int __scale
)
9788 __builtin_ia32_scattersiv16sf (__addr
, (__mmask16
) 0xFFFF,
9789 (__v16si
) __index
, (__v16sf
) __v1
, __scale
);
9792 extern __inline
void
9793 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9794 _mm512_mask_i32scatter_ps (void *__addr
, __mmask16 __mask
,
9795 __m512i __index
, __m512 __v1
, int __scale
)
9797 __builtin_ia32_scattersiv16sf (__addr
, __mask
, (__v16si
) __index
,
9798 (__v16sf
) __v1
, __scale
);
9801 extern __inline
void
9802 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9803 _mm512_i32scatter_pd (void *__addr
, __m256i __index
, __m512d __v1
,
9806 __builtin_ia32_scattersiv8df (__addr
, (__mmask8
) 0xFF,
9807 (__v8si
) __index
, (__v8df
) __v1
, __scale
);
9810 extern __inline
void
9811 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9812 _mm512_mask_i32scatter_pd (void *__addr
, __mmask8 __mask
,
9813 __m256i __index
, __m512d __v1
, int __scale
)
9815 __builtin_ia32_scattersiv8df (__addr
, __mask
, (__v8si
) __index
,
9816 (__v8df
) __v1
, __scale
);
9819 extern __inline
void
9820 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9821 _mm512_i64scatter_ps (void *__addr
, __m512i __index
, __m256 __v1
, int __scale
)
9823 __builtin_ia32_scatterdiv16sf (__addr
, (__mmask8
) 0xFF,
9824 (__v8di
) __index
, (__v8sf
) __v1
, __scale
);
9827 extern __inline
void
9828 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9829 _mm512_mask_i64scatter_ps (void *__addr
, __mmask8 __mask
,
9830 __m512i __index
, __m256 __v1
, int __scale
)
9832 __builtin_ia32_scatterdiv16sf (__addr
, __mask
, (__v8di
) __index
,
9833 (__v8sf
) __v1
, __scale
);
9836 extern __inline
void
9837 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9838 _mm512_i64scatter_pd (void *__addr
, __m512i __index
, __m512d __v1
,
9841 __builtin_ia32_scatterdiv8df (__addr
, (__mmask8
) 0xFF,
9842 (__v8di
) __index
, (__v8df
) __v1
, __scale
);
9845 extern __inline
void
9846 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9847 _mm512_mask_i64scatter_pd (void *__addr
, __mmask8 __mask
,
9848 __m512i __index
, __m512d __v1
, int __scale
)
9850 __builtin_ia32_scatterdiv8df (__addr
, __mask
, (__v8di
) __index
,
9851 (__v8df
) __v1
, __scale
);
9854 extern __inline
void
9855 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9856 _mm512_i32scatter_epi32 (void *__addr
, __m512i __index
,
9857 __m512i __v1
, int __scale
)
9859 __builtin_ia32_scattersiv16si (__addr
, (__mmask16
) 0xFFFF,
9860 (__v16si
) __index
, (__v16si
) __v1
, __scale
);
9863 extern __inline
void
9864 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9865 _mm512_mask_i32scatter_epi32 (void *__addr
, __mmask16 __mask
,
9866 __m512i __index
, __m512i __v1
, int __scale
)
9868 __builtin_ia32_scattersiv16si (__addr
, __mask
, (__v16si
) __index
,
9869 (__v16si
) __v1
, __scale
);
9872 extern __inline
void
9873 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9874 _mm512_i32scatter_epi64 (void *__addr
, __m256i __index
,
9875 __m512i __v1
, int __scale
)
9877 __builtin_ia32_scattersiv8di (__addr
, (__mmask8
) 0xFF,
9878 (__v8si
) __index
, (__v8di
) __v1
, __scale
);
9881 extern __inline
void
9882 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9883 _mm512_mask_i32scatter_epi64 (void *__addr
, __mmask8 __mask
,
9884 __m256i __index
, __m512i __v1
, int __scale
)
9886 __builtin_ia32_scattersiv8di (__addr
, __mask
, (__v8si
) __index
,
9887 (__v8di
) __v1
, __scale
);
9890 extern __inline
void
9891 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9892 _mm512_i64scatter_epi32 (void *__addr
, __m512i __index
,
9893 __m256i __v1
, int __scale
)
9895 __builtin_ia32_scatterdiv16si (__addr
, (__mmask8
) 0xFF,
9896 (__v8di
) __index
, (__v8si
) __v1
, __scale
);
9899 extern __inline
void
9900 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9901 _mm512_mask_i64scatter_epi32 (void *__addr
, __mmask8 __mask
,
9902 __m512i __index
, __m256i __v1
, int __scale
)
9904 __builtin_ia32_scatterdiv16si (__addr
, __mask
, (__v8di
) __index
,
9905 (__v8si
) __v1
, __scale
);
9908 extern __inline
void
9909 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9910 _mm512_i64scatter_epi64 (void *__addr
, __m512i __index
,
9911 __m512i __v1
, int __scale
)
9913 __builtin_ia32_scatterdiv8di (__addr
, (__mmask8
) 0xFF,
9914 (__v8di
) __index
, (__v8di
) __v1
, __scale
);
9917 extern __inline
void
9918 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9919 _mm512_mask_i64scatter_epi64 (void *__addr
, __mmask8 __mask
,
9920 __m512i __index
, __m512i __v1
, int __scale
)
9922 __builtin_ia32_scatterdiv8di (__addr
, __mask
, (__v8di
) __index
,
9923 (__v8di
) __v1
, __scale
);
9926 #define _mm512_i32gather_ps(INDEX, ADDR, SCALE) \
9927 (__m512) __builtin_ia32_gathersiv16sf ((__v16sf)_mm512_undefined_ps(),\
9928 (void const *)ADDR, \
9929 (__v16si)(__m512i)INDEX, \
9930 (__mmask16)0xFFFF, (int)SCALE)
9932 #define _mm512_mask_i32gather_ps(V1OLD, MASK, INDEX, ADDR, SCALE) \
9933 (__m512) __builtin_ia32_gathersiv16sf ((__v16sf)(__m512)V1OLD, \
9934 (void const *)ADDR, \
9935 (__v16si)(__m512i)INDEX, \
9936 (__mmask16)MASK, (int)SCALE)
9938 #define _mm512_i32gather_pd(INDEX, ADDR, SCALE) \
9939 (__m512d) __builtin_ia32_gathersiv8df ((__v8df)_mm512_undefined_pd(), \
9940 (void const *)ADDR, \
9941 (__v8si)(__m256i)INDEX, \
9942 (__mmask8)0xFF, (int)SCALE)
9944 #define _mm512_mask_i32gather_pd(V1OLD, MASK, INDEX, ADDR, SCALE) \
9945 (__m512d) __builtin_ia32_gathersiv8df ((__v8df)(__m512d)V1OLD, \
9946 (void const *)ADDR, \
9947 (__v8si)(__m256i)INDEX, \
9948 (__mmask8)MASK, (int)SCALE)
9950 #define _mm512_i64gather_ps(INDEX, ADDR, SCALE) \
9951 (__m256) __builtin_ia32_gatherdiv16sf ((__v8sf)_mm256_undefined_ps(), \
9952 (void const *)ADDR, \
9953 (__v8di)(__m512i)INDEX, \
9954 (__mmask8)0xFF, (int)SCALE)
9956 #define _mm512_mask_i64gather_ps(V1OLD, MASK, INDEX, ADDR, SCALE) \
9957 (__m256) __builtin_ia32_gatherdiv16sf ((__v8sf)(__m256)V1OLD, \
9958 (void const *)ADDR, \
9959 (__v8di)(__m512i)INDEX, \
9960 (__mmask8)MASK, (int)SCALE)
9962 #define _mm512_i64gather_pd(INDEX, ADDR, SCALE) \
9963 (__m512d) __builtin_ia32_gatherdiv8df ((__v8df)_mm512_undefined_pd(), \
9964 (void const *)ADDR, \
9965 (__v8di)(__m512i)INDEX, \
9966 (__mmask8)0xFF, (int)SCALE)
9968 #define _mm512_mask_i64gather_pd(V1OLD, MASK, INDEX, ADDR, SCALE) \
9969 (__m512d) __builtin_ia32_gatherdiv8df ((__v8df)(__m512d)V1OLD, \
9970 (void const *)ADDR, \
9971 (__v8di)(__m512i)INDEX, \
9972 (__mmask8)MASK, (int)SCALE)
9974 #define _mm512_i32gather_epi32(INDEX, ADDR, SCALE) \
9975 (__m512i) __builtin_ia32_gathersiv16si ((__v16si)_mm512_undefined_epi32 (), \
9976 (void const *)ADDR, \
9977 (__v16si)(__m512i)INDEX, \
9978 (__mmask16)0xFFFF, (int)SCALE)
9980 #define _mm512_mask_i32gather_epi32(V1OLD, MASK, INDEX, ADDR, SCALE) \
9981 (__m512i) __builtin_ia32_gathersiv16si ((__v16si)(__m512i)V1OLD, \
9982 (void const *)ADDR, \
9983 (__v16si)(__m512i)INDEX, \
9984 (__mmask16)MASK, (int)SCALE)
9986 #define _mm512_i32gather_epi64(INDEX, ADDR, SCALE) \
9987 (__m512i) __builtin_ia32_gathersiv8di ((__v8di)_mm512_undefined_epi32 (), \
9988 (void const *)ADDR, \
9989 (__v8si)(__m256i)INDEX, \
9990 (__mmask8)0xFF, (int)SCALE)
9992 #define _mm512_mask_i32gather_epi64(V1OLD, MASK, INDEX, ADDR, SCALE) \
9993 (__m512i) __builtin_ia32_gathersiv8di ((__v8di)(__m512i)V1OLD, \
9994 (void const *)ADDR, \
9995 (__v8si)(__m256i)INDEX, \
9996 (__mmask8)MASK, (int)SCALE)
9998 #define _mm512_i64gather_epi32(INDEX, ADDR, SCALE) \
9999 (__m256i) __builtin_ia32_gatherdiv16si ((__v8si)_mm256_undefined_si256(), \
10000 (void const *)ADDR, \
10001 (__v8di)(__m512i)INDEX, \
10002 (__mmask8)0xFF, (int)SCALE)
10004 #define _mm512_mask_i64gather_epi32(V1OLD, MASK, INDEX, ADDR, SCALE) \
10005 (__m256i) __builtin_ia32_gatherdiv16si ((__v8si)(__m256i)V1OLD, \
10006 (void const *)ADDR, \
10007 (__v8di)(__m512i)INDEX, \
10008 (__mmask8)MASK, (int)SCALE)
10010 #define _mm512_i64gather_epi64(INDEX, ADDR, SCALE) \
10011 (__m512i) __builtin_ia32_gatherdiv8di ((__v8di)_mm512_undefined_epi32 (), \
10012 (void const *)ADDR, \
10013 (__v8di)(__m512i)INDEX, \
10014 (__mmask8)0xFF, (int)SCALE)
10016 #define _mm512_mask_i64gather_epi64(V1OLD, MASK, INDEX, ADDR, SCALE) \
10017 (__m512i) __builtin_ia32_gatherdiv8di ((__v8di)(__m512i)V1OLD, \
10018 (void const *)ADDR, \
10019 (__v8di)(__m512i)INDEX, \
10020 (__mmask8)MASK, (int)SCALE)
10022 #define _mm512_i32scatter_ps(ADDR, INDEX, V1, SCALE) \
10023 __builtin_ia32_scattersiv16sf ((void *)ADDR, (__mmask16)0xFFFF, \
10024 (__v16si)(__m512i)INDEX, \
10025 (__v16sf)(__m512)V1, (int)SCALE)
10027 #define _mm512_mask_i32scatter_ps(ADDR, MASK, INDEX, V1, SCALE) \
10028 __builtin_ia32_scattersiv16sf ((void *)ADDR, (__mmask16)MASK, \
10029 (__v16si)(__m512i)INDEX, \
10030 (__v16sf)(__m512)V1, (int)SCALE)
10032 #define _mm512_i32scatter_pd(ADDR, INDEX, V1, SCALE) \
10033 __builtin_ia32_scattersiv8df ((void *)ADDR, (__mmask8)0xFF, \
10034 (__v8si)(__m256i)INDEX, \
10035 (__v8df)(__m512d)V1, (int)SCALE)
10037 #define _mm512_mask_i32scatter_pd(ADDR, MASK, INDEX, V1, SCALE) \
10038 __builtin_ia32_scattersiv8df ((void *)ADDR, (__mmask8)MASK, \
10039 (__v8si)(__m256i)INDEX, \
10040 (__v8df)(__m512d)V1, (int)SCALE)
10042 #define _mm512_i64scatter_ps(ADDR, INDEX, V1, SCALE) \
10043 __builtin_ia32_scatterdiv16sf ((void *)ADDR, (__mmask8)0xFF, \
10044 (__v8di)(__m512i)INDEX, \
10045 (__v8sf)(__m256)V1, (int)SCALE)
10047 #define _mm512_mask_i64scatter_ps(ADDR, MASK, INDEX, V1, SCALE) \
10048 __builtin_ia32_scatterdiv16sf ((void *)ADDR, (__mmask16)MASK, \
10049 (__v8di)(__m512i)INDEX, \
10050 (__v8sf)(__m256)V1, (int)SCALE)
10052 #define _mm512_i64scatter_pd(ADDR, INDEX, V1, SCALE) \
10053 __builtin_ia32_scatterdiv8df ((void *)ADDR, (__mmask8)0xFF, \
10054 (__v8di)(__m512i)INDEX, \
10055 (__v8df)(__m512d)V1, (int)SCALE)
10057 #define _mm512_mask_i64scatter_pd(ADDR, MASK, INDEX, V1, SCALE) \
10058 __builtin_ia32_scatterdiv8df ((void *)ADDR, (__mmask8)MASK, \
10059 (__v8di)(__m512i)INDEX, \
10060 (__v8df)(__m512d)V1, (int)SCALE)
10062 #define _mm512_i32scatter_epi32(ADDR, INDEX, V1, SCALE) \
10063 __builtin_ia32_scattersiv16si ((void *)ADDR, (__mmask16)0xFFFF, \
10064 (__v16si)(__m512i)INDEX, \
10065 (__v16si)(__m512i)V1, (int)SCALE)
10067 #define _mm512_mask_i32scatter_epi32(ADDR, MASK, INDEX, V1, SCALE) \
10068 __builtin_ia32_scattersiv16si ((void *)ADDR, (__mmask16)MASK, \
10069 (__v16si)(__m512i)INDEX, \
10070 (__v16si)(__m512i)V1, (int)SCALE)
10072 #define _mm512_i32scatter_epi64(ADDR, INDEX, V1, SCALE) \
10073 __builtin_ia32_scattersiv8di ((void *)ADDR, (__mmask8)0xFF, \
10074 (__v8si)(__m256i)INDEX, \
10075 (__v8di)(__m512i)V1, (int)SCALE)
10077 #define _mm512_mask_i32scatter_epi64(ADDR, MASK, INDEX, V1, SCALE) \
10078 __builtin_ia32_scattersiv8di ((void *)ADDR, (__mmask8)MASK, \
10079 (__v8si)(__m256i)INDEX, \
10080 (__v8di)(__m512i)V1, (int)SCALE)
10082 #define _mm512_i64scatter_epi32(ADDR, INDEX, V1, SCALE) \
10083 __builtin_ia32_scatterdiv16si ((void *)ADDR, (__mmask8)0xFF, \
10084 (__v8di)(__m512i)INDEX, \
10085 (__v8si)(__m256i)V1, (int)SCALE)
10087 #define _mm512_mask_i64scatter_epi32(ADDR, MASK, INDEX, V1, SCALE) \
10088 __builtin_ia32_scatterdiv16si ((void *)ADDR, (__mmask8)MASK, \
10089 (__v8di)(__m512i)INDEX, \
10090 (__v8si)(__m256i)V1, (int)SCALE)
10092 #define _mm512_i64scatter_epi64(ADDR, INDEX, V1, SCALE) \
10093 __builtin_ia32_scatterdiv8di ((void *)ADDR, (__mmask8)0xFF, \
10094 (__v8di)(__m512i)INDEX, \
10095 (__v8di)(__m512i)V1, (int)SCALE)
10097 #define _mm512_mask_i64scatter_epi64(ADDR, MASK, INDEX, V1, SCALE) \
10098 __builtin_ia32_scatterdiv8di ((void *)ADDR, (__mmask8)MASK, \
10099 (__v8di)(__m512i)INDEX, \
10100 (__v8di)(__m512i)V1, (int)SCALE)
10103 extern __inline __m512d
10104 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10105 _mm512_mask_compress_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
10107 return (__m512d
) __builtin_ia32_compressdf512_mask ((__v8df
) __A
,
10112 extern __inline __m512d
10113 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10114 _mm512_maskz_compress_pd (__mmask8 __U
, __m512d __A
)
10116 return (__m512d
) __builtin_ia32_compressdf512_mask ((__v8df
) __A
,
10118 _mm512_setzero_pd (),
10122 extern __inline
void
10123 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10124 _mm512_mask_compressstoreu_pd (void *__P
, __mmask8 __U
, __m512d __A
)
10126 __builtin_ia32_compressstoredf512_mask ((__v8df
*) __P
, (__v8df
) __A
,
10130 extern __inline __m512
10131 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10132 _mm512_mask_compress_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
10134 return (__m512
) __builtin_ia32_compresssf512_mask ((__v16sf
) __A
,
10139 extern __inline __m512
10140 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10141 _mm512_maskz_compress_ps (__mmask16 __U
, __m512 __A
)
10143 return (__m512
) __builtin_ia32_compresssf512_mask ((__v16sf
) __A
,
10145 _mm512_setzero_ps (),
10149 extern __inline
void
10150 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10151 _mm512_mask_compressstoreu_ps (void *__P
, __mmask16 __U
, __m512 __A
)
10153 __builtin_ia32_compressstoresf512_mask ((__v16sf
*) __P
, (__v16sf
) __A
,
10157 extern __inline __m512i
10158 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10159 _mm512_mask_compress_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
)
10161 return (__m512i
) __builtin_ia32_compressdi512_mask ((__v8di
) __A
,
10166 extern __inline __m512i
10167 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10168 _mm512_maskz_compress_epi64 (__mmask8 __U
, __m512i __A
)
10170 return (__m512i
) __builtin_ia32_compressdi512_mask ((__v8di
) __A
,
10172 _mm512_setzero_si512 (),
10176 extern __inline
void
10177 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10178 _mm512_mask_compressstoreu_epi64 (void *__P
, __mmask8 __U
, __m512i __A
)
10180 __builtin_ia32_compressstoredi512_mask ((__v8di
*) __P
, (__v8di
) __A
,
10184 extern __inline __m512i
10185 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10186 _mm512_mask_compress_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
)
10188 return (__m512i
) __builtin_ia32_compresssi512_mask ((__v16si
) __A
,
10193 extern __inline __m512i
10194 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10195 _mm512_maskz_compress_epi32 (__mmask16 __U
, __m512i __A
)
10197 return (__m512i
) __builtin_ia32_compresssi512_mask ((__v16si
) __A
,
10199 _mm512_setzero_si512 (),
10203 extern __inline
void
10204 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10205 _mm512_mask_compressstoreu_epi32 (void *__P
, __mmask16 __U
, __m512i __A
)
10207 __builtin_ia32_compressstoresi512_mask ((__v16si
*) __P
, (__v16si
) __A
,
10211 extern __inline __m512d
10212 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10213 _mm512_mask_expand_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
10215 return (__m512d
) __builtin_ia32_expanddf512_mask ((__v8df
) __A
,
10220 extern __inline __m512d
10221 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10222 _mm512_maskz_expand_pd (__mmask8 __U
, __m512d __A
)
10224 return (__m512d
) __builtin_ia32_expanddf512_maskz ((__v8df
) __A
,
10226 _mm512_setzero_pd (),
10230 extern __inline __m512d
10231 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10232 _mm512_mask_expandloadu_pd (__m512d __W
, __mmask8 __U
, void const *__P
)
10234 return (__m512d
) __builtin_ia32_expandloaddf512_mask ((const __v8df
*) __P
,
10239 extern __inline __m512d
10240 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10241 _mm512_maskz_expandloadu_pd (__mmask8 __U
, void const *__P
)
10243 return (__m512d
) __builtin_ia32_expandloaddf512_maskz ((const __v8df
*) __P
,
10245 _mm512_setzero_pd (),
10249 extern __inline __m512
10250 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10251 _mm512_mask_expand_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
10253 return (__m512
) __builtin_ia32_expandsf512_mask ((__v16sf
) __A
,
10258 extern __inline __m512
10259 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10260 _mm512_maskz_expand_ps (__mmask16 __U
, __m512 __A
)
10262 return (__m512
) __builtin_ia32_expandsf512_maskz ((__v16sf
) __A
,
10264 _mm512_setzero_ps (),
10268 extern __inline __m512
10269 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10270 _mm512_mask_expandloadu_ps (__m512 __W
, __mmask16 __U
, void const *__P
)
10272 return (__m512
) __builtin_ia32_expandloadsf512_mask ((const __v16sf
*) __P
,
10277 extern __inline __m512
10278 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10279 _mm512_maskz_expandloadu_ps (__mmask16 __U
, void const *__P
)
10281 return (__m512
) __builtin_ia32_expandloadsf512_maskz ((const __v16sf
*) __P
,
10283 _mm512_setzero_ps (),
10287 extern __inline __m512i
10288 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10289 _mm512_mask_expand_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
)
10291 return (__m512i
) __builtin_ia32_expanddi512_mask ((__v8di
) __A
,
10296 extern __inline __m512i
10297 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10298 _mm512_maskz_expand_epi64 (__mmask8 __U
, __m512i __A
)
10300 return (__m512i
) __builtin_ia32_expanddi512_maskz ((__v8di
) __A
,
10302 _mm512_setzero_si512 (),
10306 extern __inline __m512i
10307 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10308 _mm512_mask_expandloadu_epi64 (__m512i __W
, __mmask8 __U
, void const *__P
)
10310 return (__m512i
) __builtin_ia32_expandloaddi512_mask ((const __v8di
*) __P
,
10315 extern __inline __m512i
10316 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10317 _mm512_maskz_expandloadu_epi64 (__mmask8 __U
, void const *__P
)
10320 __builtin_ia32_expandloaddi512_maskz ((const __v8di
*) __P
,
10322 _mm512_setzero_si512 (),
10326 extern __inline __m512i
10327 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10328 _mm512_mask_expand_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
)
10330 return (__m512i
) __builtin_ia32_expandsi512_mask ((__v16si
) __A
,
10335 extern __inline __m512i
10336 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10337 _mm512_maskz_expand_epi32 (__mmask16 __U
, __m512i __A
)
10339 return (__m512i
) __builtin_ia32_expandsi512_maskz ((__v16si
) __A
,
10341 _mm512_setzero_si512 (),
10345 extern __inline __m512i
10346 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10347 _mm512_mask_expandloadu_epi32 (__m512i __W
, __mmask16 __U
, void const *__P
)
10349 return (__m512i
) __builtin_ia32_expandloadsi512_mask ((const __v16si
*) __P
,
10354 extern __inline __m512i
10355 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10356 _mm512_maskz_expandloadu_epi32 (__mmask16 __U
, void const *__P
)
10358 return (__m512i
) __builtin_ia32_expandloadsi512_maskz ((const __v16si
*) __P
,
10360 _mm512_setzero_si512
10361 (), (__mmask16
) __U
);
10364 /* Mask arithmetic operations */
10365 #define _kand_mask16 _mm512_kand
10366 #define _kandn_mask16 _mm512_kandn
10367 #define _knot_mask16 _mm512_knot
10368 #define _kor_mask16 _mm512_kor
10369 #define _kxnor_mask16 _mm512_kxnor
10370 #define _kxor_mask16 _mm512_kxor
10372 extern __inline
unsigned char
10373 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10374 _kortest_mask16_u8 (__mmask16 __A
, __mmask16 __B
, unsigned char *__CF
)
10376 *__CF
= (unsigned char) __builtin_ia32_kortestchi (__A
, __B
);
10377 return (unsigned char) __builtin_ia32_kortestzhi (__A
, __B
);
10380 extern __inline
unsigned char
10381 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10382 _kortestz_mask16_u8 (__mmask16 __A
, __mmask16 __B
)
10384 return (unsigned char) __builtin_ia32_kortestzhi ((__mmask16
) __A
,
10388 extern __inline
unsigned char
10389 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10390 _kortestc_mask16_u8 (__mmask16 __A
, __mmask16 __B
)
10392 return (unsigned char) __builtin_ia32_kortestchi ((__mmask16
) __A
,
10396 extern __inline
unsigned int
10397 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10398 _cvtmask16_u32 (__mmask16 __A
)
10400 return (unsigned int) __builtin_ia32_kmovw ((__mmask16
) __A
);
10403 extern __inline __mmask16
10404 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10405 _cvtu32_mask16 (unsigned int __A
)
10407 return (__mmask16
) __builtin_ia32_kmovw ((__mmask16
) __A
);
10410 extern __inline __mmask16
10411 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10412 _load_mask16 (__mmask16
*__A
)
10414 return (__mmask16
) __builtin_ia32_kmovw (*(__mmask16
*) __A
);
10417 extern __inline
void
10418 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10419 _store_mask16 (__mmask16
*__A
, __mmask16 __B
)
10421 *(__mmask16
*) __A
= __builtin_ia32_kmovw (__B
);
10424 extern __inline __mmask16
10425 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10426 _mm512_kand (__mmask16 __A
, __mmask16 __B
)
10428 return (__mmask16
) __builtin_ia32_kandhi ((__mmask16
) __A
, (__mmask16
) __B
);
10431 extern __inline __mmask16
10432 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10433 _mm512_kandn (__mmask16 __A
, __mmask16 __B
)
10435 return (__mmask16
) __builtin_ia32_kandnhi ((__mmask16
) __A
,
10439 extern __inline __mmask16
10440 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10441 _mm512_kor (__mmask16 __A
, __mmask16 __B
)
10443 return (__mmask16
) __builtin_ia32_korhi ((__mmask16
) __A
, (__mmask16
) __B
);
10446 extern __inline
int
10447 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10448 _mm512_kortestz (__mmask16 __A
, __mmask16 __B
)
10450 return (__mmask16
) __builtin_ia32_kortestzhi ((__mmask16
) __A
,
10454 extern __inline
int
10455 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10456 _mm512_kortestc (__mmask16 __A
, __mmask16 __B
)
10458 return (__mmask16
) __builtin_ia32_kortestchi ((__mmask16
) __A
,
10462 extern __inline __mmask16
10463 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10464 _mm512_kxnor (__mmask16 __A
, __mmask16 __B
)
10466 return (__mmask16
) __builtin_ia32_kxnorhi ((__mmask16
) __A
, (__mmask16
) __B
);
10469 extern __inline __mmask16
10470 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10471 _mm512_kxor (__mmask16 __A
, __mmask16 __B
)
10473 return (__mmask16
) __builtin_ia32_kxorhi ((__mmask16
) __A
, (__mmask16
) __B
);
10476 extern __inline __mmask16
10477 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10478 _mm512_knot (__mmask16 __A
)
10480 return (__mmask16
) __builtin_ia32_knothi ((__mmask16
) __A
);
10483 extern __inline __mmask16
10484 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10485 _mm512_kunpackb (__mmask16 __A
, __mmask16 __B
)
10487 return (__mmask16
) __builtin_ia32_kunpckhi ((__mmask16
) __A
, (__mmask16
) __B
);
10490 extern __inline __mmask16
10491 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10492 _kunpackb_mask16 (__mmask8 __A
, __mmask8 __B
)
10494 return (__mmask16
) __builtin_ia32_kunpckhi ((__mmask16
) __A
, (__mmask16
) __B
);
10497 #ifdef __OPTIMIZE__
10498 extern __inline __m512i
10499 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10500 _mm512_maskz_inserti32x4 (__mmask16 __B
, __m512i __C
, __m128i __D
,
10503 return (__m512i
) __builtin_ia32_inserti32x4_mask ((__v16si
) __C
,
10507 _mm512_setzero_si512 (),
10511 extern __inline __m512
10512 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10513 _mm512_maskz_insertf32x4 (__mmask16 __B
, __m512 __C
, __m128 __D
,
10516 return (__m512
) __builtin_ia32_insertf32x4_mask ((__v16sf
) __C
,
10520 _mm512_setzero_ps (), __B
);
10523 extern __inline __m512i
10524 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10525 _mm512_mask_inserti32x4 (__m512i __A
, __mmask16 __B
, __m512i __C
,
10526 __m128i __D
, const int __imm
)
10528 return (__m512i
) __builtin_ia32_inserti32x4_mask ((__v16si
) __C
,
10535 extern __inline __m512
10536 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10537 _mm512_mask_insertf32x4 (__m512 __A
, __mmask16 __B
, __m512 __C
,
10538 __m128 __D
, const int __imm
)
10540 return (__m512
) __builtin_ia32_insertf32x4_mask ((__v16sf
) __C
,
10543 (__v16sf
) __A
, __B
);
10546 #define _mm512_maskz_insertf32x4(A, X, Y, C) \
10547 ((__m512) __builtin_ia32_insertf32x4_mask ((__v16sf)(__m512) (X), \
10548 (__v4sf)(__m128) (Y), (int) (C), (__v16sf)_mm512_setzero_ps(), \
10551 #define _mm512_maskz_inserti32x4(A, X, Y, C) \
10552 ((__m512i) __builtin_ia32_inserti32x4_mask ((__v16si)(__m512i) (X), \
10553 (__v4si)(__m128i) (Y), (int) (C), (__v16si)_mm512_setzero_si512 (), \
10556 #define _mm512_mask_insertf32x4(A, B, X, Y, C) \
10557 ((__m512) __builtin_ia32_insertf32x4_mask ((__v16sf)(__m512) (X), \
10558 (__v4sf)(__m128) (Y), (int) (C), (__v16sf)(__m512) (A), \
10561 #define _mm512_mask_inserti32x4(A, B, X, Y, C) \
10562 ((__m512i) __builtin_ia32_inserti32x4_mask ((__v16si)(__m512i) (X), \
10563 (__v4si)(__m128i) (Y), (int) (C), (__v16si)(__m512i) (A), \
10567 extern __inline __m512i
10568 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10569 _mm512_max_epi64 (__m512i __A
, __m512i __B
)
10571 return (__m512i
) __builtin_ia32_pmaxsq512_mask ((__v8di
) __A
,
10574 _mm512_undefined_epi32 (),
10578 extern __inline __m512i
10579 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10580 _mm512_maskz_max_epi64 (__mmask8 __M
, __m512i __A
, __m512i __B
)
10582 return (__m512i
) __builtin_ia32_pmaxsq512_mask ((__v8di
) __A
,
10585 _mm512_setzero_si512 (),
10589 extern __inline __m512i
10590 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10591 _mm512_mask_max_epi64 (__m512i __W
, __mmask8 __M
, __m512i __A
, __m512i __B
)
10593 return (__m512i
) __builtin_ia32_pmaxsq512_mask ((__v8di
) __A
,
10595 (__v8di
) __W
, __M
);
10598 extern __inline __m512i
10599 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10600 _mm512_min_epi64 (__m512i __A
, __m512i __B
)
10602 return (__m512i
) __builtin_ia32_pminsq512_mask ((__v8di
) __A
,
10605 _mm512_undefined_epi32 (),
10609 extern __inline __m512i
10610 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10611 _mm512_mask_min_epi64 (__m512i __W
, __mmask8 __M
, __m512i __A
, __m512i __B
)
10613 return (__m512i
) __builtin_ia32_pminsq512_mask ((__v8di
) __A
,
10615 (__v8di
) __W
, __M
);
10618 extern __inline __m512i
10619 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10620 _mm512_maskz_min_epi64 (__mmask8 __M
, __m512i __A
, __m512i __B
)
10622 return (__m512i
) __builtin_ia32_pminsq512_mask ((__v8di
) __A
,
10625 _mm512_setzero_si512 (),
10629 extern __inline __m512i
10630 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10631 _mm512_max_epu64 (__m512i __A
, __m512i __B
)
10633 return (__m512i
) __builtin_ia32_pmaxuq512_mask ((__v8di
) __A
,
10636 _mm512_undefined_epi32 (),
10640 extern __inline __m512i
10641 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10642 _mm512_maskz_max_epu64 (__mmask8 __M
, __m512i __A
, __m512i __B
)
10644 return (__m512i
) __builtin_ia32_pmaxuq512_mask ((__v8di
) __A
,
10647 _mm512_setzero_si512 (),
10651 extern __inline __m512i
10652 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10653 _mm512_mask_max_epu64 (__m512i __W
, __mmask8 __M
, __m512i __A
, __m512i __B
)
10655 return (__m512i
) __builtin_ia32_pmaxuq512_mask ((__v8di
) __A
,
10657 (__v8di
) __W
, __M
);
10660 extern __inline __m512i
10661 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10662 _mm512_min_epu64 (__m512i __A
, __m512i __B
)
10664 return (__m512i
) __builtin_ia32_pminuq512_mask ((__v8di
) __A
,
10667 _mm512_undefined_epi32 (),
10671 extern __inline __m512i
10672 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10673 _mm512_mask_min_epu64 (__m512i __W
, __mmask8 __M
, __m512i __A
, __m512i __B
)
10675 return (__m512i
) __builtin_ia32_pminuq512_mask ((__v8di
) __A
,
10677 (__v8di
) __W
, __M
);
10680 extern __inline __m512i
10681 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10682 _mm512_maskz_min_epu64 (__mmask8 __M
, __m512i __A
, __m512i __B
)
10684 return (__m512i
) __builtin_ia32_pminuq512_mask ((__v8di
) __A
,
10687 _mm512_setzero_si512 (),
10691 extern __inline __m512i
10692 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10693 _mm512_max_epi32 (__m512i __A
, __m512i __B
)
10695 return (__m512i
) __builtin_ia32_pmaxsd512_mask ((__v16si
) __A
,
10698 _mm512_undefined_epi32 (),
10702 extern __inline __m512i
10703 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10704 _mm512_maskz_max_epi32 (__mmask16 __M
, __m512i __A
, __m512i __B
)
10706 return (__m512i
) __builtin_ia32_pmaxsd512_mask ((__v16si
) __A
,
10709 _mm512_setzero_si512 (),
10713 extern __inline __m512i
10714 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10715 _mm512_mask_max_epi32 (__m512i __W
, __mmask16 __M
, __m512i __A
, __m512i __B
)
10717 return (__m512i
) __builtin_ia32_pmaxsd512_mask ((__v16si
) __A
,
10719 (__v16si
) __W
, __M
);
10722 extern __inline __m512i
10723 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10724 _mm512_min_epi32 (__m512i __A
, __m512i __B
)
10726 return (__m512i
) __builtin_ia32_pminsd512_mask ((__v16si
) __A
,
10729 _mm512_undefined_epi32 (),
10733 extern __inline __m512i
10734 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10735 _mm512_maskz_min_epi32 (__mmask16 __M
, __m512i __A
, __m512i __B
)
10737 return (__m512i
) __builtin_ia32_pminsd512_mask ((__v16si
) __A
,
10740 _mm512_setzero_si512 (),
10744 extern __inline __m512i
10745 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10746 _mm512_mask_min_epi32 (__m512i __W
, __mmask16 __M
, __m512i __A
, __m512i __B
)
10748 return (__m512i
) __builtin_ia32_pminsd512_mask ((__v16si
) __A
,
10750 (__v16si
) __W
, __M
);
10753 extern __inline __m512i
10754 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10755 _mm512_max_epu32 (__m512i __A
, __m512i __B
)
10757 return (__m512i
) __builtin_ia32_pmaxud512_mask ((__v16si
) __A
,
10760 _mm512_undefined_epi32 (),
10764 extern __inline __m512i
10765 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10766 _mm512_maskz_max_epu32 (__mmask16 __M
, __m512i __A
, __m512i __B
)
10768 return (__m512i
) __builtin_ia32_pmaxud512_mask ((__v16si
) __A
,
10771 _mm512_setzero_si512 (),
10775 extern __inline __m512i
10776 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10777 _mm512_mask_max_epu32 (__m512i __W
, __mmask16 __M
, __m512i __A
, __m512i __B
)
10779 return (__m512i
) __builtin_ia32_pmaxud512_mask ((__v16si
) __A
,
10781 (__v16si
) __W
, __M
);
10784 extern __inline __m512i
10785 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10786 _mm512_min_epu32 (__m512i __A
, __m512i __B
)
10788 return (__m512i
) __builtin_ia32_pminud512_mask ((__v16si
) __A
,
10791 _mm512_undefined_epi32 (),
10795 extern __inline __m512i
10796 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10797 _mm512_maskz_min_epu32 (__mmask16 __M
, __m512i __A
, __m512i __B
)
10799 return (__m512i
) __builtin_ia32_pminud512_mask ((__v16si
) __A
,
10802 _mm512_setzero_si512 (),
10806 extern __inline __m512i
10807 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10808 _mm512_mask_min_epu32 (__m512i __W
, __mmask16 __M
, __m512i __A
, __m512i __B
)
10810 return (__m512i
) __builtin_ia32_pminud512_mask ((__v16si
) __A
,
10812 (__v16si
) __W
, __M
);
10815 extern __inline __m512
10816 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10817 _mm512_unpacklo_ps (__m512 __A
, __m512 __B
)
10819 return (__m512
) __builtin_ia32_unpcklps512_mask ((__v16sf
) __A
,
10822 _mm512_undefined_ps (),
10826 extern __inline __m512
10827 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10828 _mm512_mask_unpacklo_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
10830 return (__m512
) __builtin_ia32_unpcklps512_mask ((__v16sf
) __A
,
10836 extern __inline __m512
10837 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10838 _mm512_maskz_unpacklo_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
10840 return (__m512
) __builtin_ia32_unpcklps512_mask ((__v16sf
) __A
,
10843 _mm512_setzero_ps (),
10847 #ifdef __OPTIMIZE__
10848 extern __inline __m128d
10849 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10850 _mm_max_round_sd (__m128d __A
, __m128d __B
, const int __R
)
10852 return (__m128d
) __builtin_ia32_maxsd_round ((__v2df
) __A
,
10857 extern __inline __m128d
10858 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10859 _mm_mask_max_round_sd (__m128d __W
, __mmask8 __U
, __m128d __A
,
10860 __m128d __B
, const int __R
)
10862 return (__m128d
) __builtin_ia32_maxsd_mask_round ((__v2df
) __A
,
10865 (__mmask8
) __U
, __R
);
10868 extern __inline __m128d
10869 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10870 _mm_maskz_max_round_sd (__mmask8 __U
, __m128d __A
, __m128d __B
,
10873 return (__m128d
) __builtin_ia32_maxsd_mask_round ((__v2df
) __A
,
10877 (__mmask8
) __U
, __R
);
10880 extern __inline __m128
10881 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10882 _mm_max_round_ss (__m128 __A
, __m128 __B
, const int __R
)
10884 return (__m128
) __builtin_ia32_maxss_round ((__v4sf
) __A
,
10889 extern __inline __m128
10890 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10891 _mm_mask_max_round_ss (__m128 __W
, __mmask8 __U
, __m128 __A
,
10892 __m128 __B
, const int __R
)
10894 return (__m128
) __builtin_ia32_maxss_mask_round ((__v4sf
) __A
,
10897 (__mmask8
) __U
, __R
);
10900 extern __inline __m128
10901 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10902 _mm_maskz_max_round_ss (__mmask8 __U
, __m128 __A
, __m128 __B
,
10905 return (__m128
) __builtin_ia32_maxss_mask_round ((__v4sf
) __A
,
10909 (__mmask8
) __U
, __R
);
10912 extern __inline __m128d
10913 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10914 _mm_min_round_sd (__m128d __A
, __m128d __B
, const int __R
)
10916 return (__m128d
) __builtin_ia32_minsd_round ((__v2df
) __A
,
10921 extern __inline __m128d
10922 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10923 _mm_mask_min_round_sd (__m128d __W
, __mmask8 __U
, __m128d __A
,
10924 __m128d __B
, const int __R
)
10926 return (__m128d
) __builtin_ia32_minsd_mask_round ((__v2df
) __A
,
10929 (__mmask8
) __U
, __R
);
10932 extern __inline __m128d
10933 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10934 _mm_maskz_min_round_sd (__mmask8 __U
, __m128d __A
, __m128d __B
,
10937 return (__m128d
) __builtin_ia32_minsd_mask_round ((__v2df
) __A
,
10941 (__mmask8
) __U
, __R
);
10944 extern __inline __m128
10945 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10946 _mm_min_round_ss (__m128 __A
, __m128 __B
, const int __R
)
10948 return (__m128
) __builtin_ia32_minss_round ((__v4sf
) __A
,
10953 extern __inline __m128
10954 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10955 _mm_mask_min_round_ss (__m128 __W
, __mmask8 __U
, __m128 __A
,
10956 __m128 __B
, const int __R
)
10958 return (__m128
) __builtin_ia32_minss_mask_round ((__v4sf
) __A
,
10961 (__mmask8
) __U
, __R
);
10964 extern __inline __m128
10965 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10966 _mm_maskz_min_round_ss (__mmask8 __U
, __m128 __A
, __m128 __B
,
10969 return (__m128
) __builtin_ia32_minss_mask_round ((__v4sf
) __A
,
10973 (__mmask8
) __U
, __R
);
10977 #define _mm_max_round_sd(A, B, C) \
10978 (__m128d)__builtin_ia32_maxsd_round(A, B, C)
10980 #define _mm_mask_max_round_sd(W, U, A, B, C) \
10981 (__m128d)__builtin_ia32_maxsd_mask_round(A, B, W, U, C)
10983 #define _mm_maskz_max_round_sd(U, A, B, C) \
10984 (__m128d)__builtin_ia32_maxsd_mask_round(A, B, (__v2df)_mm_setzero_pd(), U, C)
10986 #define _mm_max_round_ss(A, B, C) \
10987 (__m128)__builtin_ia32_maxss_round(A, B, C)
10989 #define _mm_mask_max_round_ss(W, U, A, B, C) \
10990 (__m128)__builtin_ia32_maxss_mask_round(A, B, W, U, C)
10992 #define _mm_maskz_max_round_ss(U, A, B, C) \
10993 (__m128)__builtin_ia32_maxss_mask_round(A, B, (__v4sf)_mm_setzero_ps(), U, C)
10995 #define _mm_min_round_sd(A, B, C) \
10996 (__m128d)__builtin_ia32_minsd_round(A, B, C)
10998 #define _mm_mask_min_round_sd(W, U, A, B, C) \
10999 (__m128d)__builtin_ia32_minsd_mask_round(A, B, W, U, C)
11001 #define _mm_maskz_min_round_sd(U, A, B, C) \
11002 (__m128d)__builtin_ia32_minsd_mask_round(A, B, (__v2df)_mm_setzero_pd(), U, C)
11004 #define _mm_min_round_ss(A, B, C) \
11005 (__m128)__builtin_ia32_minss_round(A, B, C)
11007 #define _mm_mask_min_round_ss(W, U, A, B, C) \
11008 (__m128)__builtin_ia32_minss_mask_round(A, B, W, U, C)
11010 #define _mm_maskz_min_round_ss(U, A, B, C) \
11011 (__m128)__builtin_ia32_minss_mask_round(A, B, (__v4sf)_mm_setzero_ps(), U, C)
11015 extern __inline __m512d
11016 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11017 _mm512_mask_blend_pd (__mmask8 __U
, __m512d __A
, __m512d __W
)
11019 return (__m512d
) __builtin_ia32_blendmpd_512_mask ((__v8df
) __A
,
11024 extern __inline __m512
11025 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11026 _mm512_mask_blend_ps (__mmask16 __U
, __m512 __A
, __m512 __W
)
11028 return (__m512
) __builtin_ia32_blendmps_512_mask ((__v16sf
) __A
,
11033 extern __inline __m512i
11034 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11035 _mm512_mask_blend_epi64 (__mmask8 __U
, __m512i __A
, __m512i __W
)
11037 return (__m512i
) __builtin_ia32_blendmq_512_mask ((__v8di
) __A
,
11042 extern __inline __m512i
11043 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11044 _mm512_mask_blend_epi32 (__mmask16 __U
, __m512i __A
, __m512i __W
)
11046 return (__m512i
) __builtin_ia32_blendmd_512_mask ((__v16si
) __A
,
11051 #ifdef __OPTIMIZE__
11052 extern __inline __m128d
11053 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11054 _mm_fmadd_round_sd (__m128d __W
, __m128d __A
, __m128d __B
, const int __R
)
11056 return (__m128d
) __builtin_ia32_vfmaddsd3_round ((__v2df
) __W
,
11062 extern __inline __m128
11063 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11064 _mm_fmadd_round_ss (__m128 __W
, __m128 __A
, __m128 __B
, const int __R
)
11066 return (__m128
) __builtin_ia32_vfmaddss3_round ((__v4sf
) __W
,
11072 extern __inline __m128d
11073 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11074 _mm_fmsub_round_sd (__m128d __W
, __m128d __A
, __m128d __B
, const int __R
)
11076 return (__m128d
) __builtin_ia32_vfmaddsd3_round ((__v2df
) __W
,
11082 extern __inline __m128
11083 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11084 _mm_fmsub_round_ss (__m128 __W
, __m128 __A
, __m128 __B
, const int __R
)
11086 return (__m128
) __builtin_ia32_vfmaddss3_round ((__v4sf
) __W
,
11092 extern __inline __m128d
11093 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11094 _mm_fnmadd_round_sd (__m128d __W
, __m128d __A
, __m128d __B
, const int __R
)
11096 return (__m128d
) __builtin_ia32_vfmaddsd3_round ((__v2df
) __W
,
11102 extern __inline __m128
11103 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11104 _mm_fnmadd_round_ss (__m128 __W
, __m128 __A
, __m128 __B
, const int __R
)
11106 return (__m128
) __builtin_ia32_vfmaddss3_round ((__v4sf
) __W
,
11112 extern __inline __m128d
11113 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11114 _mm_fnmsub_round_sd (__m128d __W
, __m128d __A
, __m128d __B
, const int __R
)
11116 return (__m128d
) __builtin_ia32_vfmaddsd3_round ((__v2df
) __W
,
11122 extern __inline __m128
11123 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11124 _mm_fnmsub_round_ss (__m128 __W
, __m128 __A
, __m128 __B
, const int __R
)
11126 return (__m128
) __builtin_ia32_vfmaddss3_round ((__v4sf
) __W
,
11132 #define _mm_fmadd_round_sd(A, B, C, R) \
11133 (__m128d)__builtin_ia32_vfmaddsd3_round(A, B, C, R)
11135 #define _mm_fmadd_round_ss(A, B, C, R) \
11136 (__m128)__builtin_ia32_vfmaddss3_round(A, B, C, R)
11138 #define _mm_fmsub_round_sd(A, B, C, R) \
11139 (__m128d)__builtin_ia32_vfmaddsd3_round(A, B, -(C), R)
11141 #define _mm_fmsub_round_ss(A, B, C, R) \
11142 (__m128)__builtin_ia32_vfmaddss3_round(A, B, -(C), R)
11144 #define _mm_fnmadd_round_sd(A, B, C, R) \
11145 (__m128d)__builtin_ia32_vfmaddsd3_round(A, -(B), C, R)
11147 #define _mm_fnmadd_round_ss(A, B, C, R) \
11148 (__m128)__builtin_ia32_vfmaddss3_round(A, -(B), C, R)
11150 #define _mm_fnmsub_round_sd(A, B, C, R) \
11151 (__m128d)__builtin_ia32_vfmaddsd3_round(A, -(B), -(C), R)
11153 #define _mm_fnmsub_round_ss(A, B, C, R) \
11154 (__m128)__builtin_ia32_vfmaddss3_round(A, -(B), -(C), R)
11157 #ifdef __OPTIMIZE__
11158 extern __inline
int
11159 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11160 _mm_comi_round_ss (__m128 __A
, __m128 __B
, const int __P
, const int __R
)
11162 return __builtin_ia32_vcomiss ((__v4sf
) __A
, (__v4sf
) __B
, __P
, __R
);
11165 extern __inline
int
11166 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11167 _mm_comi_round_sd (__m128d __A
, __m128d __B
, const int __P
, const int __R
)
11169 return __builtin_ia32_vcomisd ((__v2df
) __A
, (__v2df
) __B
, __P
, __R
);
11172 #define _mm_comi_round_ss(A, B, C, D)\
11173 __builtin_ia32_vcomiss(A, B, C, D)
11174 #define _mm_comi_round_sd(A, B, C, D)\
11175 __builtin_ia32_vcomisd(A, B, C, D)
11178 extern __inline __m512d
11179 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11180 _mm512_sqrt_pd (__m512d __A
)
11182 return (__m512d
) __builtin_ia32_sqrtpd512_mask ((__v8df
) __A
,
11184 _mm512_undefined_pd (),
11186 _MM_FROUND_CUR_DIRECTION
);
11189 extern __inline __m512d
11190 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11191 _mm512_mask_sqrt_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
11193 return (__m512d
) __builtin_ia32_sqrtpd512_mask ((__v8df
) __A
,
11196 _MM_FROUND_CUR_DIRECTION
);
11199 extern __inline __m512d
11200 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11201 _mm512_maskz_sqrt_pd (__mmask8 __U
, __m512d __A
)
11203 return (__m512d
) __builtin_ia32_sqrtpd512_mask ((__v8df
) __A
,
11205 _mm512_setzero_pd (),
11207 _MM_FROUND_CUR_DIRECTION
);
11210 extern __inline __m512
11211 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11212 _mm512_sqrt_ps (__m512 __A
)
11214 return (__m512
) __builtin_ia32_sqrtps512_mask ((__v16sf
) __A
,
11216 _mm512_undefined_ps (),
11218 _MM_FROUND_CUR_DIRECTION
);
11221 extern __inline __m512
11222 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11223 _mm512_mask_sqrt_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
11225 return (__m512
) __builtin_ia32_sqrtps512_mask ((__v16sf
) __A
,
11228 _MM_FROUND_CUR_DIRECTION
);
11231 extern __inline __m512
11232 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11233 _mm512_maskz_sqrt_ps (__mmask16 __U
, __m512 __A
)
11235 return (__m512
) __builtin_ia32_sqrtps512_mask ((__v16sf
) __A
,
11237 _mm512_setzero_ps (),
11239 _MM_FROUND_CUR_DIRECTION
);
11242 extern __inline __m512d
11243 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11244 _mm512_add_pd (__m512d __A
, __m512d __B
)
11246 return (__m512d
) ((__v8df
)__A
+ (__v8df
)__B
);
11249 extern __inline __m512d
11250 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11251 _mm512_mask_add_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
11253 return (__m512d
) __builtin_ia32_addpd512_mask ((__v8df
) __A
,
11257 _MM_FROUND_CUR_DIRECTION
);
11260 extern __inline __m512d
11261 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11262 _mm512_maskz_add_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
11264 return (__m512d
) __builtin_ia32_addpd512_mask ((__v8df
) __A
,
11267 _mm512_setzero_pd (),
11269 _MM_FROUND_CUR_DIRECTION
);
11272 extern __inline __m512
11273 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11274 _mm512_add_ps (__m512 __A
, __m512 __B
)
11276 return (__m512
) ((__v16sf
)__A
+ (__v16sf
)__B
);
11279 extern __inline __m512
11280 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11281 _mm512_mask_add_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
11283 return (__m512
) __builtin_ia32_addps512_mask ((__v16sf
) __A
,
11287 _MM_FROUND_CUR_DIRECTION
);
11290 extern __inline __m512
11291 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11292 _mm512_maskz_add_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
11294 return (__m512
) __builtin_ia32_addps512_mask ((__v16sf
) __A
,
11297 _mm512_setzero_ps (),
11299 _MM_FROUND_CUR_DIRECTION
);
11302 extern __inline __m128d
11303 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11304 _mm_mask_add_sd (__m128d __W
, __mmask8 __U
, __m128d __A
, __m128d __B
)
11306 return (__m128d
) __builtin_ia32_addsd_mask_round ((__v2df
) __A
,
11310 _MM_FROUND_CUR_DIRECTION
);
11313 extern __inline __m128d
11314 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11315 _mm_maskz_add_sd (__mmask8 __U
, __m128d __A
, __m128d __B
)
11317 return (__m128d
) __builtin_ia32_addsd_mask_round ((__v2df
) __A
,
11322 _MM_FROUND_CUR_DIRECTION
);
11325 extern __inline __m128
11326 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11327 _mm_mask_add_ss (__m128 __W
, __mmask8 __U
, __m128 __A
, __m128 __B
)
11329 return (__m128
) __builtin_ia32_addss_mask_round ((__v4sf
) __A
,
11333 _MM_FROUND_CUR_DIRECTION
);
11336 extern __inline __m128
11337 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11338 _mm_maskz_add_ss (__mmask8 __U
, __m128 __A
, __m128 __B
)
11340 return (__m128
) __builtin_ia32_addss_mask_round ((__v4sf
) __A
,
11345 _MM_FROUND_CUR_DIRECTION
);
11348 extern __inline __m512d
11349 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11350 _mm512_sub_pd (__m512d __A
, __m512d __B
)
11352 return (__m512d
) ((__v8df
)__A
- (__v8df
)__B
);
11355 extern __inline __m512d
11356 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11357 _mm512_mask_sub_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
11359 return (__m512d
) __builtin_ia32_subpd512_mask ((__v8df
) __A
,
11363 _MM_FROUND_CUR_DIRECTION
);
11366 extern __inline __m512d
11367 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11368 _mm512_maskz_sub_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
11370 return (__m512d
) __builtin_ia32_subpd512_mask ((__v8df
) __A
,
11373 _mm512_setzero_pd (),
11375 _MM_FROUND_CUR_DIRECTION
);
11378 extern __inline __m512
11379 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11380 _mm512_sub_ps (__m512 __A
, __m512 __B
)
11382 return (__m512
) ((__v16sf
)__A
- (__v16sf
)__B
);
11385 extern __inline __m512
11386 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11387 _mm512_mask_sub_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
11389 return (__m512
) __builtin_ia32_subps512_mask ((__v16sf
) __A
,
11393 _MM_FROUND_CUR_DIRECTION
);
11396 extern __inline __m512
11397 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11398 _mm512_maskz_sub_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
11400 return (__m512
) __builtin_ia32_subps512_mask ((__v16sf
) __A
,
11403 _mm512_setzero_ps (),
11405 _MM_FROUND_CUR_DIRECTION
);
11408 extern __inline __m128d
11409 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11410 _mm_mask_sub_sd (__m128d __W
, __mmask8 __U
, __m128d __A
, __m128d __B
)
11412 return (__m128d
) __builtin_ia32_subsd_mask_round ((__v2df
) __A
,
11416 _MM_FROUND_CUR_DIRECTION
);
11419 extern __inline __m128d
11420 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11421 _mm_maskz_sub_sd (__mmask8 __U
, __m128d __A
, __m128d __B
)
11423 return (__m128d
) __builtin_ia32_subsd_mask_round ((__v2df
) __A
,
11428 _MM_FROUND_CUR_DIRECTION
);
11431 extern __inline __m128
11432 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11433 _mm_mask_sub_ss (__m128 __W
, __mmask8 __U
, __m128 __A
, __m128 __B
)
11435 return (__m128
) __builtin_ia32_subss_mask_round ((__v4sf
) __A
,
11439 _MM_FROUND_CUR_DIRECTION
);
11442 extern __inline __m128
11443 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11444 _mm_maskz_sub_ss (__mmask8 __U
, __m128 __A
, __m128 __B
)
11446 return (__m128
) __builtin_ia32_subss_mask_round ((__v4sf
) __A
,
11451 _MM_FROUND_CUR_DIRECTION
);
11454 extern __inline __m512d
11455 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11456 _mm512_mul_pd (__m512d __A
, __m512d __B
)
11458 return (__m512d
) ((__v8df
)__A
* (__v8df
)__B
);
11461 extern __inline __m512d
11462 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11463 _mm512_mask_mul_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
11465 return (__m512d
) __builtin_ia32_mulpd512_mask ((__v8df
) __A
,
11469 _MM_FROUND_CUR_DIRECTION
);
11472 extern __inline __m512d
11473 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11474 _mm512_maskz_mul_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
11476 return (__m512d
) __builtin_ia32_mulpd512_mask ((__v8df
) __A
,
11479 _mm512_setzero_pd (),
11481 _MM_FROUND_CUR_DIRECTION
);
11484 extern __inline __m512
11485 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11486 _mm512_mul_ps (__m512 __A
, __m512 __B
)
11488 return (__m512
) ((__v16sf
)__A
* (__v16sf
)__B
);
11491 extern __inline __m512
11492 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11493 _mm512_mask_mul_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
11495 return (__m512
) __builtin_ia32_mulps512_mask ((__v16sf
) __A
,
11499 _MM_FROUND_CUR_DIRECTION
);
11502 extern __inline __m512
11503 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11504 _mm512_maskz_mul_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
11506 return (__m512
) __builtin_ia32_mulps512_mask ((__v16sf
) __A
,
11509 _mm512_setzero_ps (),
11511 _MM_FROUND_CUR_DIRECTION
);
11514 extern __inline __m128d
11515 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11516 _mm_mask_mul_sd (__m128d __W
, __mmask8 __U
, __m128d __A
,
11519 return (__m128d
) __builtin_ia32_mulsd_mask_round ((__v2df
) __A
,
11523 _MM_FROUND_CUR_DIRECTION
);
11526 extern __inline __m128d
11527 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11528 _mm_maskz_mul_sd (__mmask8 __U
, __m128d __A
, __m128d __B
)
11530 return (__m128d
) __builtin_ia32_mulsd_mask_round ((__v2df
) __A
,
11535 _MM_FROUND_CUR_DIRECTION
);
11538 extern __inline __m128
11539 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11540 _mm_mask_mul_ss (__m128 __W
, __mmask8 __U
, __m128 __A
,
11543 return (__m128
) __builtin_ia32_mulss_mask_round ((__v4sf
) __A
,
11547 _MM_FROUND_CUR_DIRECTION
);
11550 extern __inline __m128
11551 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11552 _mm_maskz_mul_ss (__mmask8 __U
, __m128 __A
, __m128 __B
)
11554 return (__m128
) __builtin_ia32_mulss_mask_round ((__v4sf
) __A
,
11559 _MM_FROUND_CUR_DIRECTION
);
11562 extern __inline __m512d
11563 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11564 _mm512_div_pd (__m512d __M
, __m512d __V
)
11566 return (__m512d
) ((__v8df
)__M
/ (__v8df
)__V
);
11569 extern __inline __m512d
11570 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11571 _mm512_mask_div_pd (__m512d __W
, __mmask8 __U
, __m512d __M
, __m512d __V
)
11573 return (__m512d
) __builtin_ia32_divpd512_mask ((__v8df
) __M
,
11577 _MM_FROUND_CUR_DIRECTION
);
11580 extern __inline __m512d
11581 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11582 _mm512_maskz_div_pd (__mmask8 __U
, __m512d __M
, __m512d __V
)
11584 return (__m512d
) __builtin_ia32_divpd512_mask ((__v8df
) __M
,
11587 _mm512_setzero_pd (),
11589 _MM_FROUND_CUR_DIRECTION
);
11592 extern __inline __m512
11593 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11594 _mm512_div_ps (__m512 __A
, __m512 __B
)
11596 return (__m512
) ((__v16sf
)__A
/ (__v16sf
)__B
);
11599 extern __inline __m512
11600 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11601 _mm512_mask_div_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
11603 return (__m512
) __builtin_ia32_divps512_mask ((__v16sf
) __A
,
11607 _MM_FROUND_CUR_DIRECTION
);
11610 extern __inline __m512
11611 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11612 _mm512_maskz_div_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
11614 return (__m512
) __builtin_ia32_divps512_mask ((__v16sf
) __A
,
11617 _mm512_setzero_ps (),
11619 _MM_FROUND_CUR_DIRECTION
);
11622 extern __inline __m128d
11623 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11624 _mm_mask_div_sd (__m128d __W
, __mmask8 __U
, __m128d __A
,
11627 return (__m128d
) __builtin_ia32_divsd_mask_round ((__v2df
) __A
,
11631 _MM_FROUND_CUR_DIRECTION
);
11634 extern __inline __m128d
11635 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11636 _mm_maskz_div_sd (__mmask8 __U
, __m128d __A
, __m128d __B
)
11638 return (__m128d
) __builtin_ia32_divsd_mask_round ((__v2df
) __A
,
11643 _MM_FROUND_CUR_DIRECTION
);
11646 extern __inline __m128
11647 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11648 _mm_mask_div_ss (__m128 __W
, __mmask8 __U
, __m128 __A
,
11651 return (__m128
) __builtin_ia32_divss_mask_round ((__v4sf
) __A
,
11655 _MM_FROUND_CUR_DIRECTION
);
11658 extern __inline __m128
11659 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11660 _mm_maskz_div_ss (__mmask8 __U
, __m128 __A
, __m128 __B
)
11662 return (__m128
) __builtin_ia32_divss_mask_round ((__v4sf
) __A
,
11667 _MM_FROUND_CUR_DIRECTION
);
11670 extern __inline __m512d
11671 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11672 _mm512_max_pd (__m512d __A
, __m512d __B
)
11674 return (__m512d
) __builtin_ia32_maxpd512_mask ((__v8df
) __A
,
11677 _mm512_undefined_pd (),
11679 _MM_FROUND_CUR_DIRECTION
);
11682 extern __inline __m512d
11683 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11684 _mm512_mask_max_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
11686 return (__m512d
) __builtin_ia32_maxpd512_mask ((__v8df
) __A
,
11690 _MM_FROUND_CUR_DIRECTION
);
11693 extern __inline __m512d
11694 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11695 _mm512_maskz_max_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
11697 return (__m512d
) __builtin_ia32_maxpd512_mask ((__v8df
) __A
,
11700 _mm512_setzero_pd (),
11702 _MM_FROUND_CUR_DIRECTION
);
11705 extern __inline __m512
11706 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11707 _mm512_max_ps (__m512 __A
, __m512 __B
)
11709 return (__m512
) __builtin_ia32_maxps512_mask ((__v16sf
) __A
,
11712 _mm512_undefined_ps (),
11714 _MM_FROUND_CUR_DIRECTION
);
11717 extern __inline __m512
11718 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11719 _mm512_mask_max_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
11721 return (__m512
) __builtin_ia32_maxps512_mask ((__v16sf
) __A
,
11725 _MM_FROUND_CUR_DIRECTION
);
11728 extern __inline __m512
11729 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11730 _mm512_maskz_max_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
11732 return (__m512
) __builtin_ia32_maxps512_mask ((__v16sf
) __A
,
11735 _mm512_setzero_ps (),
11737 _MM_FROUND_CUR_DIRECTION
);
11740 extern __inline __m128d
11741 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11742 _mm_mask_max_sd (__m128d __W
, __mmask8 __U
, __m128d __A
, __m128d __B
)
11744 return (__m128d
) __builtin_ia32_maxsd_mask_round ((__v2df
) __A
,
11748 _MM_FROUND_CUR_DIRECTION
);
11751 extern __inline __m128d
11752 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11753 _mm_maskz_max_sd (__mmask8 __U
, __m128d __A
, __m128d __B
)
11755 return (__m128d
) __builtin_ia32_maxsd_mask_round ((__v2df
) __A
,
11760 _MM_FROUND_CUR_DIRECTION
);
11763 extern __inline __m128
11764 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11765 _mm_mask_max_ss (__m128 __W
, __mmask8 __U
, __m128 __A
, __m128 __B
)
11767 return (__m128
) __builtin_ia32_maxss_mask_round ((__v4sf
) __A
,
11771 _MM_FROUND_CUR_DIRECTION
);
11774 extern __inline __m128
11775 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11776 _mm_maskz_max_ss (__mmask8 __U
, __m128 __A
, __m128 __B
)
11778 return (__m128
) __builtin_ia32_maxss_mask_round ((__v4sf
) __A
,
11783 _MM_FROUND_CUR_DIRECTION
);
11786 extern __inline __m512d
11787 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11788 _mm512_min_pd (__m512d __A
, __m512d __B
)
11790 return (__m512d
) __builtin_ia32_minpd512_mask ((__v8df
) __A
,
11793 _mm512_undefined_pd (),
11795 _MM_FROUND_CUR_DIRECTION
);
11798 extern __inline __m512d
11799 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11800 _mm512_mask_min_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
11802 return (__m512d
) __builtin_ia32_minpd512_mask ((__v8df
) __A
,
11806 _MM_FROUND_CUR_DIRECTION
);
11809 extern __inline __m512d
11810 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11811 _mm512_maskz_min_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
11813 return (__m512d
) __builtin_ia32_minpd512_mask ((__v8df
) __A
,
11816 _mm512_setzero_pd (),
11818 _MM_FROUND_CUR_DIRECTION
);
11821 extern __inline __m512
11822 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11823 _mm512_min_ps (__m512 __A
, __m512 __B
)
11825 return (__m512
) __builtin_ia32_minps512_mask ((__v16sf
) __A
,
11828 _mm512_undefined_ps (),
11830 _MM_FROUND_CUR_DIRECTION
);
11833 extern __inline __m512
11834 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11835 _mm512_mask_min_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
11837 return (__m512
) __builtin_ia32_minps512_mask ((__v16sf
) __A
,
11841 _MM_FROUND_CUR_DIRECTION
);
11844 extern __inline __m512
11845 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11846 _mm512_maskz_min_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
11848 return (__m512
) __builtin_ia32_minps512_mask ((__v16sf
) __A
,
11851 _mm512_setzero_ps (),
11853 _MM_FROUND_CUR_DIRECTION
);
11856 extern __inline __m128d
11857 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11858 _mm_mask_min_sd (__m128d __W
, __mmask8 __U
, __m128d __A
, __m128d __B
)
11860 return (__m128d
) __builtin_ia32_minsd_mask_round ((__v2df
) __A
,
11864 _MM_FROUND_CUR_DIRECTION
);
11867 extern __inline __m128d
11868 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11869 _mm_maskz_min_sd (__mmask8 __U
, __m128d __A
, __m128d __B
)
11871 return (__m128d
) __builtin_ia32_minsd_mask_round ((__v2df
) __A
,
11876 _MM_FROUND_CUR_DIRECTION
);
11879 extern __inline __m128
11880 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11881 _mm_mask_min_ss (__m128 __W
, __mmask8 __U
, __m128 __A
, __m128 __B
)
11883 return (__m128
) __builtin_ia32_minss_mask_round ((__v4sf
) __A
,
11887 _MM_FROUND_CUR_DIRECTION
);
11890 extern __inline __m128
11891 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11892 _mm_maskz_min_ss (__mmask8 __U
, __m128 __A
, __m128 __B
)
11894 return (__m128
) __builtin_ia32_minss_mask_round ((__v4sf
) __A
,
11899 _MM_FROUND_CUR_DIRECTION
);
11902 extern __inline __m512d
11903 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11904 _mm512_scalef_pd (__m512d __A
, __m512d __B
)
11906 return (__m512d
) __builtin_ia32_scalefpd512_mask ((__v8df
) __A
,
11909 _mm512_undefined_pd (),
11911 _MM_FROUND_CUR_DIRECTION
);
11914 extern __inline __m512d
11915 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11916 _mm512_mask_scalef_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
11918 return (__m512d
) __builtin_ia32_scalefpd512_mask ((__v8df
) __A
,
11922 _MM_FROUND_CUR_DIRECTION
);
11925 extern __inline __m512d
11926 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11927 _mm512_maskz_scalef_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
11929 return (__m512d
) __builtin_ia32_scalefpd512_mask ((__v8df
) __A
,
11932 _mm512_setzero_pd (),
11934 _MM_FROUND_CUR_DIRECTION
);
11937 extern __inline __m512
11938 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11939 _mm512_scalef_ps (__m512 __A
, __m512 __B
)
11941 return (__m512
) __builtin_ia32_scalefps512_mask ((__v16sf
) __A
,
11944 _mm512_undefined_ps (),
11946 _MM_FROUND_CUR_DIRECTION
);
11949 extern __inline __m512
11950 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11951 _mm512_mask_scalef_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
11953 return (__m512
) __builtin_ia32_scalefps512_mask ((__v16sf
) __A
,
11957 _MM_FROUND_CUR_DIRECTION
);
11960 extern __inline __m512
11961 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11962 _mm512_maskz_scalef_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
11964 return (__m512
) __builtin_ia32_scalefps512_mask ((__v16sf
) __A
,
11967 _mm512_setzero_ps (),
11969 _MM_FROUND_CUR_DIRECTION
);
11972 extern __inline __m128d
11973 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11974 _mm_scalef_sd (__m128d __A
, __m128d __B
)
11976 return (__m128d
) __builtin_ia32_scalefsd_round ((__v2df
) __A
,
11978 _MM_FROUND_CUR_DIRECTION
);
11981 extern __inline __m128
11982 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11983 _mm_scalef_ss (__m128 __A
, __m128 __B
)
11985 return (__m128
) __builtin_ia32_scalefss_round ((__v4sf
) __A
,
11987 _MM_FROUND_CUR_DIRECTION
);
11990 extern __inline __m512d
11991 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11992 _mm512_fmadd_pd (__m512d __A
, __m512d __B
, __m512d __C
)
11994 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
11998 _MM_FROUND_CUR_DIRECTION
);
12001 extern __inline __m512d
12002 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12003 _mm512_mask_fmadd_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
12005 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
12009 _MM_FROUND_CUR_DIRECTION
);
12012 extern __inline __m512d
12013 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12014 _mm512_mask3_fmadd_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
12016 return (__m512d
) __builtin_ia32_vfmaddpd512_mask3 ((__v8df
) __A
,
12020 _MM_FROUND_CUR_DIRECTION
);
12023 extern __inline __m512d
12024 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12025 _mm512_maskz_fmadd_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
12027 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz ((__v8df
) __A
,
12031 _MM_FROUND_CUR_DIRECTION
);
12034 extern __inline __m512
12035 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12036 _mm512_fmadd_ps (__m512 __A
, __m512 __B
, __m512 __C
)
12038 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
12042 _MM_FROUND_CUR_DIRECTION
);
12045 extern __inline __m512
12046 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12047 _mm512_mask_fmadd_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
12049 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
12053 _MM_FROUND_CUR_DIRECTION
);
12056 extern __inline __m512
12057 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12058 _mm512_mask3_fmadd_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
12060 return (__m512
) __builtin_ia32_vfmaddps512_mask3 ((__v16sf
) __A
,
12064 _MM_FROUND_CUR_DIRECTION
);
12067 extern __inline __m512
12068 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12069 _mm512_maskz_fmadd_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
12071 return (__m512
) __builtin_ia32_vfmaddps512_maskz ((__v16sf
) __A
,
12075 _MM_FROUND_CUR_DIRECTION
);
12078 extern __inline __m512d
12079 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12080 _mm512_fmsub_pd (__m512d __A
, __m512d __B
, __m512d __C
)
12082 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
12086 _MM_FROUND_CUR_DIRECTION
);
12089 extern __inline __m512d
12090 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12091 _mm512_mask_fmsub_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
12093 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
12097 _MM_FROUND_CUR_DIRECTION
);
12100 extern __inline __m512d
12101 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12102 _mm512_mask3_fmsub_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
12104 return (__m512d
) __builtin_ia32_vfmsubpd512_mask3 ((__v8df
) __A
,
12108 _MM_FROUND_CUR_DIRECTION
);
12111 extern __inline __m512d
12112 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12113 _mm512_maskz_fmsub_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
12115 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz ((__v8df
) __A
,
12119 _MM_FROUND_CUR_DIRECTION
);
12122 extern __inline __m512
12123 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12124 _mm512_fmsub_ps (__m512 __A
, __m512 __B
, __m512 __C
)
12126 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
12130 _MM_FROUND_CUR_DIRECTION
);
12133 extern __inline __m512
12134 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12135 _mm512_mask_fmsub_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
12137 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
12141 _MM_FROUND_CUR_DIRECTION
);
12144 extern __inline __m512
12145 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12146 _mm512_mask3_fmsub_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
12148 return (__m512
) __builtin_ia32_vfmsubps512_mask3 ((__v16sf
) __A
,
12152 _MM_FROUND_CUR_DIRECTION
);
12155 extern __inline __m512
12156 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12157 _mm512_maskz_fmsub_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
12159 return (__m512
) __builtin_ia32_vfmaddps512_maskz ((__v16sf
) __A
,
12163 _MM_FROUND_CUR_DIRECTION
);
12166 extern __inline __m512d
12167 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12168 _mm512_fmaddsub_pd (__m512d __A
, __m512d __B
, __m512d __C
)
12170 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
12174 _MM_FROUND_CUR_DIRECTION
);
12177 extern __inline __m512d
12178 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12179 _mm512_mask_fmaddsub_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
12181 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
12185 _MM_FROUND_CUR_DIRECTION
);
12188 extern __inline __m512d
12189 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12190 _mm512_mask3_fmaddsub_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
12192 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask3 ((__v8df
) __A
,
12196 _MM_FROUND_CUR_DIRECTION
);
12199 extern __inline __m512d
12200 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12201 _mm512_maskz_fmaddsub_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
12203 return (__m512d
) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df
) __A
,
12207 _MM_FROUND_CUR_DIRECTION
);
12210 extern __inline __m512
12211 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12212 _mm512_fmaddsub_ps (__m512 __A
, __m512 __B
, __m512 __C
)
12214 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
12218 _MM_FROUND_CUR_DIRECTION
);
12221 extern __inline __m512
12222 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12223 _mm512_mask_fmaddsub_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
12225 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
12229 _MM_FROUND_CUR_DIRECTION
);
12232 extern __inline __m512
12233 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12234 _mm512_mask3_fmaddsub_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
12236 return (__m512
) __builtin_ia32_vfmaddsubps512_mask3 ((__v16sf
) __A
,
12240 _MM_FROUND_CUR_DIRECTION
);
12243 extern __inline __m512
12244 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12245 _mm512_maskz_fmaddsub_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
12247 return (__m512
) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf
) __A
,
12251 _MM_FROUND_CUR_DIRECTION
);
12254 extern __inline __m512d
12255 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12256 _mm512_fmsubadd_pd (__m512d __A
, __m512d __B
, __m512d __C
)
12258 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
12262 _MM_FROUND_CUR_DIRECTION
);
12265 extern __inline __m512d
12266 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12267 _mm512_mask_fmsubadd_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
12269 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
12273 _MM_FROUND_CUR_DIRECTION
);
12276 extern __inline __m512d
12277 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12278 _mm512_mask3_fmsubadd_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
12280 return (__m512d
) __builtin_ia32_vfmsubaddpd512_mask3 ((__v8df
) __A
,
12284 _MM_FROUND_CUR_DIRECTION
);
12287 extern __inline __m512d
12288 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12289 _mm512_maskz_fmsubadd_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
12291 return (__m512d
) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df
) __A
,
12295 _MM_FROUND_CUR_DIRECTION
);
12298 extern __inline __m512
12299 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12300 _mm512_fmsubadd_ps (__m512 __A
, __m512 __B
, __m512 __C
)
12302 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
12306 _MM_FROUND_CUR_DIRECTION
);
12309 extern __inline __m512
12310 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12311 _mm512_mask_fmsubadd_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
12313 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
12317 _MM_FROUND_CUR_DIRECTION
);
12320 extern __inline __m512
12321 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12322 _mm512_mask3_fmsubadd_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
12324 return (__m512
) __builtin_ia32_vfmsubaddps512_mask3 ((__v16sf
) __A
,
12328 _MM_FROUND_CUR_DIRECTION
);
12331 extern __inline __m512
12332 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12333 _mm512_maskz_fmsubadd_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
12335 return (__m512
) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf
) __A
,
12339 _MM_FROUND_CUR_DIRECTION
);
12342 extern __inline __m512d
12343 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12344 _mm512_fnmadd_pd (__m512d __A
, __m512d __B
, __m512d __C
)
12346 return (__m512d
) __builtin_ia32_vfmaddpd512_mask (-(__v8df
) __A
,
12350 _MM_FROUND_CUR_DIRECTION
);
12353 extern __inline __m512d
12354 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12355 _mm512_mask_fnmadd_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
12357 return (__m512d
) __builtin_ia32_vfnmaddpd512_mask ((__v8df
) __A
,
12361 _MM_FROUND_CUR_DIRECTION
);
12364 extern __inline __m512d
12365 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12366 _mm512_mask3_fnmadd_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
12368 return (__m512d
) __builtin_ia32_vfmaddpd512_mask3 (-(__v8df
) __A
,
12372 _MM_FROUND_CUR_DIRECTION
);
12375 extern __inline __m512d
12376 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12377 _mm512_maskz_fnmadd_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
12379 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz (-(__v8df
) __A
,
12383 _MM_FROUND_CUR_DIRECTION
);
12386 extern __inline __m512
12387 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12388 _mm512_fnmadd_ps (__m512 __A
, __m512 __B
, __m512 __C
)
12390 return (__m512
) __builtin_ia32_vfmaddps512_mask (-(__v16sf
) __A
,
12394 _MM_FROUND_CUR_DIRECTION
);
12397 extern __inline __m512
12398 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12399 _mm512_mask_fnmadd_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
12401 return (__m512
) __builtin_ia32_vfnmaddps512_mask ((__v16sf
) __A
,
12405 _MM_FROUND_CUR_DIRECTION
);
12408 extern __inline __m512
12409 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12410 _mm512_mask3_fnmadd_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
12412 return (__m512
) __builtin_ia32_vfmaddps512_mask3 (-(__v16sf
) __A
,
12416 _MM_FROUND_CUR_DIRECTION
);
12419 extern __inline __m512
12420 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12421 _mm512_maskz_fnmadd_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
12423 return (__m512
) __builtin_ia32_vfmaddps512_maskz (-(__v16sf
) __A
,
12427 _MM_FROUND_CUR_DIRECTION
);
12430 extern __inline __m512d
12431 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12432 _mm512_fnmsub_pd (__m512d __A
, __m512d __B
, __m512d __C
)
12434 return (__m512d
) __builtin_ia32_vfmaddpd512_mask (-(__v8df
) __A
,
12438 _MM_FROUND_CUR_DIRECTION
);
12441 extern __inline __m512d
12442 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12443 _mm512_mask_fnmsub_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
12445 return (__m512d
) __builtin_ia32_vfnmsubpd512_mask ((__v8df
) __A
,
12449 _MM_FROUND_CUR_DIRECTION
);
12452 extern __inline __m512d
12453 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12454 _mm512_mask3_fnmsub_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
12456 return (__m512d
) __builtin_ia32_vfnmsubpd512_mask3 ((__v8df
) __A
,
12460 _MM_FROUND_CUR_DIRECTION
);
12463 extern __inline __m512d
12464 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12465 _mm512_maskz_fnmsub_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
12467 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz (-(__v8df
) __A
,
12471 _MM_FROUND_CUR_DIRECTION
);
12474 extern __inline __m512
12475 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12476 _mm512_fnmsub_ps (__m512 __A
, __m512 __B
, __m512 __C
)
12478 return (__m512
) __builtin_ia32_vfmaddps512_mask (-(__v16sf
) __A
,
12482 _MM_FROUND_CUR_DIRECTION
);
12485 extern __inline __m512
12486 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12487 _mm512_mask_fnmsub_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
12489 return (__m512
) __builtin_ia32_vfnmsubps512_mask ((__v16sf
) __A
,
12493 _MM_FROUND_CUR_DIRECTION
);
12496 extern __inline __m512
12497 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12498 _mm512_mask3_fnmsub_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
12500 return (__m512
) __builtin_ia32_vfnmsubps512_mask3 ((__v16sf
) __A
,
12504 _MM_FROUND_CUR_DIRECTION
);
12507 extern __inline __m512
12508 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12509 _mm512_maskz_fnmsub_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
12511 return (__m512
) __builtin_ia32_vfmaddps512_maskz (-(__v16sf
) __A
,
12515 _MM_FROUND_CUR_DIRECTION
);
12518 extern __inline __m256i
12519 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12520 _mm512_cvttpd_epi32 (__m512d __A
)
12522 return (__m256i
) __builtin_ia32_cvttpd2dq512_mask ((__v8df
) __A
,
12524 _mm256_undefined_si256 (),
12526 _MM_FROUND_CUR_DIRECTION
);
12529 extern __inline __m256i
12530 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12531 _mm512_mask_cvttpd_epi32 (__m256i __W
, __mmask8 __U
, __m512d __A
)
12533 return (__m256i
) __builtin_ia32_cvttpd2dq512_mask ((__v8df
) __A
,
12536 _MM_FROUND_CUR_DIRECTION
);
12539 extern __inline __m256i
12540 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12541 _mm512_maskz_cvttpd_epi32 (__mmask8 __U
, __m512d __A
)
12543 return (__m256i
) __builtin_ia32_cvttpd2dq512_mask ((__v8df
) __A
,
12545 _mm256_setzero_si256 (),
12547 _MM_FROUND_CUR_DIRECTION
);
12550 extern __inline __m256i
12551 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12552 _mm512_cvttpd_epu32 (__m512d __A
)
12554 return (__m256i
) __builtin_ia32_cvttpd2udq512_mask ((__v8df
) __A
,
12556 _mm256_undefined_si256 (),
12558 _MM_FROUND_CUR_DIRECTION
);
12561 extern __inline __m256i
12562 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12563 _mm512_mask_cvttpd_epu32 (__m256i __W
, __mmask8 __U
, __m512d __A
)
12565 return (__m256i
) __builtin_ia32_cvttpd2udq512_mask ((__v8df
) __A
,
12568 _MM_FROUND_CUR_DIRECTION
);
12571 extern __inline __m256i
12572 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12573 _mm512_maskz_cvttpd_epu32 (__mmask8 __U
, __m512d __A
)
12575 return (__m256i
) __builtin_ia32_cvttpd2udq512_mask ((__v8df
) __A
,
12577 _mm256_setzero_si256 (),
12579 _MM_FROUND_CUR_DIRECTION
);
12582 extern __inline __m256i
12583 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12584 _mm512_cvtpd_epi32 (__m512d __A
)
12586 return (__m256i
) __builtin_ia32_cvtpd2dq512_mask ((__v8df
) __A
,
12588 _mm256_undefined_si256 (),
12590 _MM_FROUND_CUR_DIRECTION
);
12593 extern __inline __m256i
12594 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12595 _mm512_mask_cvtpd_epi32 (__m256i __W
, __mmask8 __U
, __m512d __A
)
12597 return (__m256i
) __builtin_ia32_cvtpd2dq512_mask ((__v8df
) __A
,
12600 _MM_FROUND_CUR_DIRECTION
);
12603 extern __inline __m256i
12604 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12605 _mm512_maskz_cvtpd_epi32 (__mmask8 __U
, __m512d __A
)
12607 return (__m256i
) __builtin_ia32_cvtpd2dq512_mask ((__v8df
) __A
,
12609 _mm256_setzero_si256 (),
12611 _MM_FROUND_CUR_DIRECTION
);
12614 extern __inline __m256i
12615 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12616 _mm512_cvtpd_epu32 (__m512d __A
)
12618 return (__m256i
) __builtin_ia32_cvtpd2udq512_mask ((__v8df
) __A
,
12620 _mm256_undefined_si256 (),
12622 _MM_FROUND_CUR_DIRECTION
);
12625 extern __inline __m256i
12626 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12627 _mm512_mask_cvtpd_epu32 (__m256i __W
, __mmask8 __U
, __m512d __A
)
12629 return (__m256i
) __builtin_ia32_cvtpd2udq512_mask ((__v8df
) __A
,
12632 _MM_FROUND_CUR_DIRECTION
);
12635 extern __inline __m256i
12636 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12637 _mm512_maskz_cvtpd_epu32 (__mmask8 __U
, __m512d __A
)
12639 return (__m256i
) __builtin_ia32_cvtpd2udq512_mask ((__v8df
) __A
,
12641 _mm256_setzero_si256 (),
12643 _MM_FROUND_CUR_DIRECTION
);
12646 extern __inline __m512i
12647 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12648 _mm512_cvttps_epi32 (__m512 __A
)
12650 return (__m512i
) __builtin_ia32_cvttps2dq512_mask ((__v16sf
) __A
,
12652 _mm512_undefined_epi32 (),
12654 _MM_FROUND_CUR_DIRECTION
);
12657 extern __inline __m512i
12658 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12659 _mm512_mask_cvttps_epi32 (__m512i __W
, __mmask16 __U
, __m512 __A
)
12661 return (__m512i
) __builtin_ia32_cvttps2dq512_mask ((__v16sf
) __A
,
12664 _MM_FROUND_CUR_DIRECTION
);
12667 extern __inline __m512i
12668 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12669 _mm512_maskz_cvttps_epi32 (__mmask16 __U
, __m512 __A
)
12671 return (__m512i
) __builtin_ia32_cvttps2dq512_mask ((__v16sf
) __A
,
12673 _mm512_setzero_si512 (),
12675 _MM_FROUND_CUR_DIRECTION
);
12678 extern __inline __m512i
12679 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12680 _mm512_cvttps_epu32 (__m512 __A
)
12682 return (__m512i
) __builtin_ia32_cvttps2udq512_mask ((__v16sf
) __A
,
12684 _mm512_undefined_epi32 (),
12686 _MM_FROUND_CUR_DIRECTION
);
12689 extern __inline __m512i
12690 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12691 _mm512_mask_cvttps_epu32 (__m512i __W
, __mmask16 __U
, __m512 __A
)
12693 return (__m512i
) __builtin_ia32_cvttps2udq512_mask ((__v16sf
) __A
,
12696 _MM_FROUND_CUR_DIRECTION
);
12699 extern __inline __m512i
12700 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12701 _mm512_maskz_cvttps_epu32 (__mmask16 __U
, __m512 __A
)
12703 return (__m512i
) __builtin_ia32_cvttps2udq512_mask ((__v16sf
) __A
,
12705 _mm512_setzero_si512 (),
12707 _MM_FROUND_CUR_DIRECTION
);
12710 extern __inline __m512i
12711 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12712 _mm512_cvtps_epi32 (__m512 __A
)
12714 return (__m512i
) __builtin_ia32_cvtps2dq512_mask ((__v16sf
) __A
,
12716 _mm512_undefined_epi32 (),
12718 _MM_FROUND_CUR_DIRECTION
);
12721 extern __inline __m512i
12722 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12723 _mm512_mask_cvtps_epi32 (__m512i __W
, __mmask16 __U
, __m512 __A
)
12725 return (__m512i
) __builtin_ia32_cvtps2dq512_mask ((__v16sf
) __A
,
12728 _MM_FROUND_CUR_DIRECTION
);
12731 extern __inline __m512i
12732 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12733 _mm512_maskz_cvtps_epi32 (__mmask16 __U
, __m512 __A
)
12735 return (__m512i
) __builtin_ia32_cvtps2dq512_mask ((__v16sf
) __A
,
12737 _mm512_setzero_si512 (),
12739 _MM_FROUND_CUR_DIRECTION
);
12742 extern __inline __m512i
12743 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12744 _mm512_cvtps_epu32 (__m512 __A
)
12746 return (__m512i
) __builtin_ia32_cvtps2udq512_mask ((__v16sf
) __A
,
12748 _mm512_undefined_epi32 (),
12750 _MM_FROUND_CUR_DIRECTION
);
12753 extern __inline __m512i
12754 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12755 _mm512_mask_cvtps_epu32 (__m512i __W
, __mmask16 __U
, __m512 __A
)
12757 return (__m512i
) __builtin_ia32_cvtps2udq512_mask ((__v16sf
) __A
,
12760 _MM_FROUND_CUR_DIRECTION
);
12763 extern __inline __m512i
12764 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12765 _mm512_maskz_cvtps_epu32 (__mmask16 __U
, __m512 __A
)
12767 return (__m512i
) __builtin_ia32_cvtps2udq512_mask ((__v16sf
) __A
,
12769 _mm512_setzero_si512 (),
12771 _MM_FROUND_CUR_DIRECTION
);
12774 extern __inline
double
12775 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12776 _mm512_cvtsd_f64 (__m512d __A
)
12781 extern __inline
float
12782 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12783 _mm512_cvtss_f32 (__m512 __A
)
12789 extern __inline __m128
12790 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12791 _mm_cvtu64_ss (__m128 __A
, unsigned long long __B
)
12793 return (__m128
) __builtin_ia32_cvtusi2ss64 ((__v4sf
) __A
, __B
,
12794 _MM_FROUND_CUR_DIRECTION
);
12797 extern __inline __m128d
12798 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12799 _mm_cvtu64_sd (__m128d __A
, unsigned long long __B
)
12801 return (__m128d
) __builtin_ia32_cvtusi2sd64 ((__v2df
) __A
, __B
,
12802 _MM_FROUND_CUR_DIRECTION
);
12806 extern __inline __m128
12807 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12808 _mm_cvtu32_ss (__m128 __A
, unsigned __B
)
12810 return (__m128
) __builtin_ia32_cvtusi2ss32 ((__v4sf
) __A
, __B
,
12811 _MM_FROUND_CUR_DIRECTION
);
12814 extern __inline __m512
12815 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12816 _mm512_cvtepi32_ps (__m512i __A
)
12818 return (__m512
) __builtin_ia32_cvtdq2ps512_mask ((__v16si
) __A
,
12820 _mm512_undefined_ps (),
12822 _MM_FROUND_CUR_DIRECTION
);
12825 extern __inline __m512
12826 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12827 _mm512_mask_cvtepi32_ps (__m512 __W
, __mmask16 __U
, __m512i __A
)
12829 return (__m512
) __builtin_ia32_cvtdq2ps512_mask ((__v16si
) __A
,
12832 _MM_FROUND_CUR_DIRECTION
);
12835 extern __inline __m512
12836 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12837 _mm512_maskz_cvtepi32_ps (__mmask16 __U
, __m512i __A
)
12839 return (__m512
) __builtin_ia32_cvtdq2ps512_mask ((__v16si
) __A
,
12841 _mm512_setzero_ps (),
12843 _MM_FROUND_CUR_DIRECTION
);
12846 extern __inline __m512
12847 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12848 _mm512_cvtepu32_ps (__m512i __A
)
12850 return (__m512
) __builtin_ia32_cvtudq2ps512_mask ((__v16si
) __A
,
12852 _mm512_undefined_ps (),
12854 _MM_FROUND_CUR_DIRECTION
);
12857 extern __inline __m512
12858 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12859 _mm512_mask_cvtepu32_ps (__m512 __W
, __mmask16 __U
, __m512i __A
)
12861 return (__m512
) __builtin_ia32_cvtudq2ps512_mask ((__v16si
) __A
,
12864 _MM_FROUND_CUR_DIRECTION
);
12867 extern __inline __m512
12868 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12869 _mm512_maskz_cvtepu32_ps (__mmask16 __U
, __m512i __A
)
12871 return (__m512
) __builtin_ia32_cvtudq2ps512_mask ((__v16si
) __A
,
12873 _mm512_setzero_ps (),
12875 _MM_FROUND_CUR_DIRECTION
);
12878 #ifdef __OPTIMIZE__
12879 extern __inline __m512d
12880 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12881 _mm512_fixupimm_pd (__m512d __A
, __m512d __B
, __m512i __C
, const int __imm
)
12883 return (__m512d
) __builtin_ia32_fixupimmpd512_mask ((__v8df
) __A
,
12888 _MM_FROUND_CUR_DIRECTION
);
12891 extern __inline __m512d
12892 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12893 _mm512_mask_fixupimm_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
12894 __m512i __C
, const int __imm
)
12896 return (__m512d
) __builtin_ia32_fixupimmpd512_mask ((__v8df
) __A
,
12901 _MM_FROUND_CUR_DIRECTION
);
12904 extern __inline __m512d
12905 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12906 _mm512_maskz_fixupimm_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
12907 __m512i __C
, const int __imm
)
12909 return (__m512d
) __builtin_ia32_fixupimmpd512_maskz ((__v8df
) __A
,
12914 _MM_FROUND_CUR_DIRECTION
);
12917 extern __inline __m512
12918 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12919 _mm512_fixupimm_ps (__m512 __A
, __m512 __B
, __m512i __C
, const int __imm
)
12921 return (__m512
) __builtin_ia32_fixupimmps512_mask ((__v16sf
) __A
,
12926 _MM_FROUND_CUR_DIRECTION
);
12929 extern __inline __m512
12930 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12931 _mm512_mask_fixupimm_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
12932 __m512i __C
, const int __imm
)
12934 return (__m512
) __builtin_ia32_fixupimmps512_mask ((__v16sf
) __A
,
12939 _MM_FROUND_CUR_DIRECTION
);
12942 extern __inline __m512
12943 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12944 _mm512_maskz_fixupimm_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
12945 __m512i __C
, const int __imm
)
12947 return (__m512
) __builtin_ia32_fixupimmps512_maskz ((__v16sf
) __A
,
12952 _MM_FROUND_CUR_DIRECTION
);
12955 extern __inline __m128d
12956 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12957 _mm_fixupimm_sd (__m128d __A
, __m128d __B
, __m128i __C
, const int __imm
)
12959 return (__m128d
) __builtin_ia32_fixupimmsd_mask ((__v2df
) __A
,
12961 (__v2di
) __C
, __imm
,
12963 _MM_FROUND_CUR_DIRECTION
);
12966 extern __inline __m128d
12967 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12968 _mm_mask_fixupimm_sd (__m128d __A
, __mmask8 __U
, __m128d __B
,
12969 __m128i __C
, const int __imm
)
12971 return (__m128d
) __builtin_ia32_fixupimmsd_mask ((__v2df
) __A
,
12973 (__v2di
) __C
, __imm
,
12975 _MM_FROUND_CUR_DIRECTION
);
12978 extern __inline __m128d
12979 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12980 _mm_maskz_fixupimm_sd (__mmask8 __U
, __m128d __A
, __m128d __B
,
12981 __m128i __C
, const int __imm
)
12983 return (__m128d
) __builtin_ia32_fixupimmsd_maskz ((__v2df
) __A
,
12988 _MM_FROUND_CUR_DIRECTION
);
12991 extern __inline __m128
12992 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12993 _mm_fixupimm_ss (__m128 __A
, __m128 __B
, __m128i __C
, const int __imm
)
12995 return (__m128
) __builtin_ia32_fixupimmss_mask ((__v4sf
) __A
,
12997 (__v4si
) __C
, __imm
,
12999 _MM_FROUND_CUR_DIRECTION
);
13002 extern __inline __m128
13003 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13004 _mm_mask_fixupimm_ss (__m128 __A
, __mmask8 __U
, __m128 __B
,
13005 __m128i __C
, const int __imm
)
13007 return (__m128
) __builtin_ia32_fixupimmss_mask ((__v4sf
) __A
,
13009 (__v4si
) __C
, __imm
,
13011 _MM_FROUND_CUR_DIRECTION
);
13014 extern __inline __m128
13015 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13016 _mm_maskz_fixupimm_ss (__mmask8 __U
, __m128 __A
, __m128 __B
,
13017 __m128i __C
, const int __imm
)
13019 return (__m128
) __builtin_ia32_fixupimmss_maskz ((__v4sf
) __A
,
13021 (__v4si
) __C
, __imm
,
13023 _MM_FROUND_CUR_DIRECTION
);
13026 #define _mm512_fixupimm_pd(X, Y, Z, C) \
13027 ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X), \
13028 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
13029 (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
13031 #define _mm512_mask_fixupimm_pd(X, U, Y, Z, C) \
13032 ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X), \
13033 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
13034 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
13036 #define _mm512_maskz_fixupimm_pd(U, X, Y, Z, C) \
13037 ((__m512d)__builtin_ia32_fixupimmpd512_maskz ((__v8df)(__m512d)(X), \
13038 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
13039 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
13041 #define _mm512_fixupimm_ps(X, Y, Z, C) \
13042 ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X), \
13043 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
13044 (__mmask16)(-1), _MM_FROUND_CUR_DIRECTION))
13046 #define _mm512_mask_fixupimm_ps(X, U, Y, Z, C) \
13047 ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X), \
13048 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
13049 (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
13051 #define _mm512_maskz_fixupimm_ps(U, X, Y, Z, C) \
13052 ((__m512)__builtin_ia32_fixupimmps512_maskz ((__v16sf)(__m512)(X), \
13053 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
13054 (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
13056 #define _mm_fixupimm_sd(X, Y, Z, C) \
13057 ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X), \
13058 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
13059 (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
13061 #define _mm_mask_fixupimm_sd(X, U, Y, Z, C) \
13062 ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X), \
13063 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
13064 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
13066 #define _mm_maskz_fixupimm_sd(U, X, Y, Z, C) \
13067 ((__m128d)__builtin_ia32_fixupimmsd_maskz ((__v2df)(__m128d)(X), \
13068 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
13069 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
13071 #define _mm_fixupimm_ss(X, Y, Z, C) \
13072 ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X), \
13073 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
13074 (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
13076 #define _mm_mask_fixupimm_ss(X, U, Y, Z, C) \
13077 ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X), \
13078 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
13079 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
13081 #define _mm_maskz_fixupimm_ss(U, X, Y, Z, C) \
13082 ((__m128)__builtin_ia32_fixupimmss_maskz ((__v4sf)(__m128)(X), \
13083 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
13084 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
13088 extern __inline
unsigned long long
13089 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13090 _mm_cvtss_u64 (__m128 __A
)
13092 return (unsigned long long) __builtin_ia32_vcvtss2usi64 ((__v4sf
)
13094 _MM_FROUND_CUR_DIRECTION
);
13097 extern __inline
unsigned long long
13098 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13099 _mm_cvttss_u64 (__m128 __A
)
13101 return (unsigned long long) __builtin_ia32_vcvttss2usi64 ((__v4sf
)
13103 _MM_FROUND_CUR_DIRECTION
);
13106 extern __inline
long long
13107 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13108 _mm_cvttss_i64 (__m128 __A
)
13110 return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf
) __A
,
13111 _MM_FROUND_CUR_DIRECTION
);
13113 #endif /* __x86_64__ */
13115 extern __inline
unsigned
13116 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13117 _mm_cvtss_u32 (__m128 __A
)
13119 return (unsigned) __builtin_ia32_vcvtss2usi32 ((__v4sf
) __A
,
13120 _MM_FROUND_CUR_DIRECTION
);
13123 extern __inline
unsigned
13124 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13125 _mm_cvttss_u32 (__m128 __A
)
13127 return (unsigned) __builtin_ia32_vcvttss2usi32 ((__v4sf
) __A
,
13128 _MM_FROUND_CUR_DIRECTION
);
13131 extern __inline
int
13132 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13133 _mm_cvttss_i32 (__m128 __A
)
13135 return (int) __builtin_ia32_vcvttss2si32 ((__v4sf
) __A
,
13136 _MM_FROUND_CUR_DIRECTION
);
13140 extern __inline
unsigned long long
13141 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13142 _mm_cvtsd_u64 (__m128d __A
)
13144 return (unsigned long long) __builtin_ia32_vcvtsd2usi64 ((__v2df
)
13146 _MM_FROUND_CUR_DIRECTION
);
13149 extern __inline
unsigned long long
13150 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13151 _mm_cvttsd_u64 (__m128d __A
)
13153 return (unsigned long long) __builtin_ia32_vcvttsd2usi64 ((__v2df
)
13155 _MM_FROUND_CUR_DIRECTION
);
13158 extern __inline
long long
13159 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13160 _mm_cvttsd_i64 (__m128d __A
)
13162 return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df
) __A
,
13163 _MM_FROUND_CUR_DIRECTION
);
13165 #endif /* __x86_64__ */
13167 extern __inline
unsigned
13168 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13169 _mm_cvtsd_u32 (__m128d __A
)
13171 return (unsigned) __builtin_ia32_vcvtsd2usi32 ((__v2df
) __A
,
13172 _MM_FROUND_CUR_DIRECTION
);
13175 extern __inline
unsigned
13176 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13177 _mm_cvttsd_u32 (__m128d __A
)
13179 return (unsigned) __builtin_ia32_vcvttsd2usi32 ((__v2df
) __A
,
13180 _MM_FROUND_CUR_DIRECTION
);
13183 extern __inline
int
13184 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13185 _mm_cvttsd_i32 (__m128d __A
)
13187 return (int) __builtin_ia32_vcvttsd2si32 ((__v2df
) __A
,
13188 _MM_FROUND_CUR_DIRECTION
);
13191 extern __inline __m512d
13192 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13193 _mm512_cvtps_pd (__m256 __A
)
13195 return (__m512d
) __builtin_ia32_cvtps2pd512_mask ((__v8sf
) __A
,
13197 _mm512_undefined_pd (),
13199 _MM_FROUND_CUR_DIRECTION
);
13202 extern __inline __m512d
13203 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13204 _mm512_mask_cvtps_pd (__m512d __W
, __mmask8 __U
, __m256 __A
)
13206 return (__m512d
) __builtin_ia32_cvtps2pd512_mask ((__v8sf
) __A
,
13209 _MM_FROUND_CUR_DIRECTION
);
13212 extern __inline __m512d
13213 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13214 _mm512_maskz_cvtps_pd (__mmask8 __U
, __m256 __A
)
13216 return (__m512d
) __builtin_ia32_cvtps2pd512_mask ((__v8sf
) __A
,
13218 _mm512_setzero_pd (),
13220 _MM_FROUND_CUR_DIRECTION
);
13223 extern __inline __m512
13224 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13225 _mm512_cvtph_ps (__m256i __A
)
13227 return (__m512
) __builtin_ia32_vcvtph2ps512_mask ((__v16hi
) __A
,
13229 _mm512_undefined_ps (),
13231 _MM_FROUND_CUR_DIRECTION
);
13234 extern __inline __m512
13235 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13236 _mm512_mask_cvtph_ps (__m512 __W
, __mmask16 __U
, __m256i __A
)
13238 return (__m512
) __builtin_ia32_vcvtph2ps512_mask ((__v16hi
) __A
,
13241 _MM_FROUND_CUR_DIRECTION
);
13244 extern __inline __m512
13245 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13246 _mm512_maskz_cvtph_ps (__mmask16 __U
, __m256i __A
)
13248 return (__m512
) __builtin_ia32_vcvtph2ps512_mask ((__v16hi
) __A
,
13250 _mm512_setzero_ps (),
13252 _MM_FROUND_CUR_DIRECTION
);
13255 extern __inline __m256
13256 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13257 _mm512_cvtpd_ps (__m512d __A
)
13259 return (__m256
) __builtin_ia32_cvtpd2ps512_mask ((__v8df
) __A
,
13261 _mm256_undefined_ps (),
13263 _MM_FROUND_CUR_DIRECTION
);
13266 extern __inline __m256
13267 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13268 _mm512_mask_cvtpd_ps (__m256 __W
, __mmask8 __U
, __m512d __A
)
13270 return (__m256
) __builtin_ia32_cvtpd2ps512_mask ((__v8df
) __A
,
13273 _MM_FROUND_CUR_DIRECTION
);
13276 extern __inline __m256
13277 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13278 _mm512_maskz_cvtpd_ps (__mmask8 __U
, __m512d __A
)
13280 return (__m256
) __builtin_ia32_cvtpd2ps512_mask ((__v8df
) __A
,
13282 _mm256_setzero_ps (),
13284 _MM_FROUND_CUR_DIRECTION
);
13287 #ifdef __OPTIMIZE__
13288 extern __inline __m512
13289 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13290 _mm512_getexp_ps (__m512 __A
)
13292 return (__m512
) __builtin_ia32_getexpps512_mask ((__v16sf
) __A
,
13294 _mm512_undefined_ps (),
13296 _MM_FROUND_CUR_DIRECTION
);
13299 extern __inline __m512
13300 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13301 _mm512_mask_getexp_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
13303 return (__m512
) __builtin_ia32_getexpps512_mask ((__v16sf
) __A
,
13306 _MM_FROUND_CUR_DIRECTION
);
13309 extern __inline __m512
13310 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13311 _mm512_maskz_getexp_ps (__mmask16 __U
, __m512 __A
)
13313 return (__m512
) __builtin_ia32_getexpps512_mask ((__v16sf
) __A
,
13315 _mm512_setzero_ps (),
13317 _MM_FROUND_CUR_DIRECTION
);
13320 extern __inline __m512d
13321 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13322 _mm512_getexp_pd (__m512d __A
)
13324 return (__m512d
) __builtin_ia32_getexppd512_mask ((__v8df
) __A
,
13326 _mm512_undefined_pd (),
13328 _MM_FROUND_CUR_DIRECTION
);
13331 extern __inline __m512d
13332 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13333 _mm512_mask_getexp_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
13335 return (__m512d
) __builtin_ia32_getexppd512_mask ((__v8df
) __A
,
13338 _MM_FROUND_CUR_DIRECTION
);
13341 extern __inline __m512d
13342 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13343 _mm512_maskz_getexp_pd (__mmask8 __U
, __m512d __A
)
13345 return (__m512d
) __builtin_ia32_getexppd512_mask ((__v8df
) __A
,
13347 _mm512_setzero_pd (),
13349 _MM_FROUND_CUR_DIRECTION
);
13352 extern __inline __m128
13353 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13354 _mm_getexp_ss (__m128 __A
, __m128 __B
)
13356 return (__m128
) __builtin_ia32_getexpss128_round ((__v4sf
) __A
,
13358 _MM_FROUND_CUR_DIRECTION
);
13361 extern __inline __m128d
13362 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13363 _mm_getexp_sd (__m128d __A
, __m128d __B
)
13365 return (__m128d
) __builtin_ia32_getexpsd128_round ((__v2df
) __A
,
13367 _MM_FROUND_CUR_DIRECTION
);
13370 extern __inline __m512d
13371 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13372 _mm512_getmant_pd (__m512d __A
, _MM_MANTISSA_NORM_ENUM __B
,
13373 _MM_MANTISSA_SIGN_ENUM __C
)
13375 return (__m512d
) __builtin_ia32_getmantpd512_mask ((__v8df
) __A
,
13377 _mm512_undefined_pd (),
13379 _MM_FROUND_CUR_DIRECTION
);
13382 extern __inline __m512d
13383 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13384 _mm512_mask_getmant_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
13385 _MM_MANTISSA_NORM_ENUM __B
, _MM_MANTISSA_SIGN_ENUM __C
)
13387 return (__m512d
) __builtin_ia32_getmantpd512_mask ((__v8df
) __A
,
13390 _MM_FROUND_CUR_DIRECTION
);
13393 extern __inline __m512d
13394 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13395 _mm512_maskz_getmant_pd (__mmask8 __U
, __m512d __A
,
13396 _MM_MANTISSA_NORM_ENUM __B
, _MM_MANTISSA_SIGN_ENUM __C
)
13398 return (__m512d
) __builtin_ia32_getmantpd512_mask ((__v8df
) __A
,
13401 _mm512_setzero_pd (),
13403 _MM_FROUND_CUR_DIRECTION
);
13406 extern __inline __m512
13407 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13408 _mm512_getmant_ps (__m512 __A
, _MM_MANTISSA_NORM_ENUM __B
,
13409 _MM_MANTISSA_SIGN_ENUM __C
)
13411 return (__m512
) __builtin_ia32_getmantps512_mask ((__v16sf
) __A
,
13413 _mm512_undefined_ps (),
13415 _MM_FROUND_CUR_DIRECTION
);
13418 extern __inline __m512
13419 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13420 _mm512_mask_getmant_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
13421 _MM_MANTISSA_NORM_ENUM __B
, _MM_MANTISSA_SIGN_ENUM __C
)
13423 return (__m512
) __builtin_ia32_getmantps512_mask ((__v16sf
) __A
,
13425 (__v16sf
) __W
, __U
,
13426 _MM_FROUND_CUR_DIRECTION
);
13429 extern __inline __m512
13430 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13431 _mm512_maskz_getmant_ps (__mmask16 __U
, __m512 __A
,
13432 _MM_MANTISSA_NORM_ENUM __B
, _MM_MANTISSA_SIGN_ENUM __C
)
13434 return (__m512
) __builtin_ia32_getmantps512_mask ((__v16sf
) __A
,
13437 _mm512_setzero_ps (),
13439 _MM_FROUND_CUR_DIRECTION
);
13442 extern __inline __m128d
13443 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13444 _mm_getmant_sd (__m128d __A
, __m128d __B
, _MM_MANTISSA_NORM_ENUM __C
,
13445 _MM_MANTISSA_SIGN_ENUM __D
)
13447 return (__m128d
) __builtin_ia32_getmantsd_round ((__v2df
) __A
,
13450 _MM_FROUND_CUR_DIRECTION
);
13453 extern __inline __m128
13454 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13455 _mm_getmant_ss (__m128 __A
, __m128 __B
, _MM_MANTISSA_NORM_ENUM __C
,
13456 _MM_MANTISSA_SIGN_ENUM __D
)
13458 return (__m128
) __builtin_ia32_getmantss_round ((__v4sf
) __A
,
13461 _MM_FROUND_CUR_DIRECTION
);
13465 #define _mm512_getmant_pd(X, B, C) \
13466 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
13467 (int)(((C)<<2) | (B)), \
13468 (__v8df)_mm512_undefined_pd(), \
13470 _MM_FROUND_CUR_DIRECTION))
13472 #define _mm512_mask_getmant_pd(W, U, X, B, C) \
13473 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
13474 (int)(((C)<<2) | (B)), \
13475 (__v8df)(__m512d)(W), \
13477 _MM_FROUND_CUR_DIRECTION))
13479 #define _mm512_maskz_getmant_pd(U, X, B, C) \
13480 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
13481 (int)(((C)<<2) | (B)), \
13482 (__v8df)_mm512_setzero_pd(), \
13484 _MM_FROUND_CUR_DIRECTION))
13485 #define _mm512_getmant_ps(X, B, C) \
13486 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
13487 (int)(((C)<<2) | (B)), \
13488 (__v16sf)_mm512_undefined_ps(), \
13490 _MM_FROUND_CUR_DIRECTION))
13492 #define _mm512_mask_getmant_ps(W, U, X, B, C) \
13493 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
13494 (int)(((C)<<2) | (B)), \
13495 (__v16sf)(__m512)(W), \
13497 _MM_FROUND_CUR_DIRECTION))
13499 #define _mm512_maskz_getmant_ps(U, X, B, C) \
13500 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
13501 (int)(((C)<<2) | (B)), \
13502 (__v16sf)_mm512_setzero_ps(), \
13504 _MM_FROUND_CUR_DIRECTION))
13505 #define _mm_getmant_sd(X, Y, C, D) \
13506 ((__m128d)__builtin_ia32_getmantsd_round ((__v2df)(__m128d)(X), \
13507 (__v2df)(__m128d)(Y), \
13508 (int)(((D)<<2) | (C)), \
13509 _MM_FROUND_CUR_DIRECTION))
13511 #define _mm_getmant_ss(X, Y, C, D) \
13512 ((__m128)__builtin_ia32_getmantss_round ((__v4sf)(__m128)(X), \
13513 (__v4sf)(__m128)(Y), \
13514 (int)(((D)<<2) | (C)), \
13515 _MM_FROUND_CUR_DIRECTION))
13517 #define _mm_getexp_ss(A, B) \
13518 ((__m128)__builtin_ia32_getexpss128_mask((__v4sf)(__m128)(A), (__v4sf)(__m128)(B), \
13519 _MM_FROUND_CUR_DIRECTION))
13521 #define _mm_getexp_sd(A, B) \
13522 ((__m128d)__builtin_ia32_getexpsd128_mask((__v2df)(__m128d)(A), (__v2df)(__m128d)(B),\
13523 _MM_FROUND_CUR_DIRECTION))
13525 #define _mm512_getexp_ps(A) \
13526 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
13527 (__v16sf)_mm512_undefined_ps(), (__mmask16)-1, _MM_FROUND_CUR_DIRECTION))
13529 #define _mm512_mask_getexp_ps(W, U, A) \
13530 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
13531 (__v16sf)(__m512)(W), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
13533 #define _mm512_maskz_getexp_ps(U, A) \
13534 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
13535 (__v16sf)_mm512_setzero_ps(), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
13537 #define _mm512_getexp_pd(A) \
13538 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
13539 (__v8df)_mm512_undefined_pd(), (__mmask8)-1, _MM_FROUND_CUR_DIRECTION))
13541 #define _mm512_mask_getexp_pd(W, U, A) \
13542 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
13543 (__v8df)(__m512d)(W), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
13545 #define _mm512_maskz_getexp_pd(U, A) \
13546 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
13547 (__v8df)_mm512_setzero_pd(), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
13550 #ifdef __OPTIMIZE__
13551 extern __inline __m512
13552 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13553 _mm512_roundscale_ps (__m512 __A
, const int __imm
)
13555 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
, __imm
,
13557 _mm512_undefined_ps (),
13559 _MM_FROUND_CUR_DIRECTION
);
13562 extern __inline __m512
13563 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13564 _mm512_mask_roundscale_ps (__m512 __A
, __mmask16 __B
, __m512 __C
,
13567 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __C
, __imm
,
13570 _MM_FROUND_CUR_DIRECTION
);
13573 extern __inline __m512
13574 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13575 _mm512_maskz_roundscale_ps (__mmask16 __A
, __m512 __B
, const int __imm
)
13577 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __B
,
13580 _mm512_setzero_ps (),
13582 _MM_FROUND_CUR_DIRECTION
);
13585 extern __inline __m512d
13586 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13587 _mm512_roundscale_pd (__m512d __A
, const int __imm
)
13589 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
, __imm
,
13591 _mm512_undefined_pd (),
13593 _MM_FROUND_CUR_DIRECTION
);
13596 extern __inline __m512d
13597 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13598 _mm512_mask_roundscale_pd (__m512d __A
, __mmask8 __B
, __m512d __C
,
13601 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __C
, __imm
,
13604 _MM_FROUND_CUR_DIRECTION
);
13607 extern __inline __m512d
13608 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13609 _mm512_maskz_roundscale_pd (__mmask8 __A
, __m512d __B
, const int __imm
)
13611 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __B
,
13614 _mm512_setzero_pd (),
13616 _MM_FROUND_CUR_DIRECTION
);
13619 extern __inline __m128
13620 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13621 _mm_roundscale_ss (__m128 __A
, __m128 __B
, const int __imm
)
13623 return (__m128
) __builtin_ia32_rndscaless_round ((__v4sf
) __A
,
13624 (__v4sf
) __B
, __imm
,
13625 _MM_FROUND_CUR_DIRECTION
);
13628 extern __inline __m128d
13629 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13630 _mm_roundscale_sd (__m128d __A
, __m128d __B
, const int __imm
)
13632 return (__m128d
) __builtin_ia32_rndscalesd_round ((__v2df
) __A
,
13633 (__v2df
) __B
, __imm
,
13634 _MM_FROUND_CUR_DIRECTION
);
13638 #define _mm512_roundscale_ps(A, B) \
13639 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(A), (int)(B),\
13640 (__v16sf)_mm512_undefined_ps(), (__mmask16)(-1), _MM_FROUND_CUR_DIRECTION))
13641 #define _mm512_mask_roundscale_ps(A, B, C, D) \
13642 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(C), \
13644 (__v16sf)(__m512)(A), \
13645 (__mmask16)(B), _MM_FROUND_CUR_DIRECTION))
13646 #define _mm512_maskz_roundscale_ps(A, B, C) \
13647 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(B), \
13649 (__v16sf)_mm512_setzero_ps(),\
13650 (__mmask16)(A), _MM_FROUND_CUR_DIRECTION))
13651 #define _mm512_roundscale_pd(A, B) \
13652 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(A), (int)(B),\
13653 (__v8df)_mm512_undefined_pd(), (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
13654 #define _mm512_mask_roundscale_pd(A, B, C, D) \
13655 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(C), \
13657 (__v8df)(__m512d)(A), \
13658 (__mmask8)(B), _MM_FROUND_CUR_DIRECTION))
13659 #define _mm512_maskz_roundscale_pd(A, B, C) \
13660 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(B), \
13662 (__v8df)_mm512_setzero_pd(),\
13663 (__mmask8)(A), _MM_FROUND_CUR_DIRECTION))
13664 #define _mm_roundscale_ss(A, B, C) \
13665 ((__m128) __builtin_ia32_rndscaless_round ((__v4sf)(__m128)(A), \
13666 (__v4sf)(__m128)(B), (int)(C), _MM_FROUND_CUR_DIRECTION))
13667 #define _mm_roundscale_sd(A, B, C) \
13668 ((__m128d) __builtin_ia32_rndscalesd_round ((__v2df)(__m128d)(A), \
13669 (__v2df)(__m128d)(B), (int)(C), _MM_FROUND_CUR_DIRECTION))
13672 #ifdef __OPTIMIZE__
13673 extern __inline __mmask8
13674 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13675 _mm512_cmp_pd_mask (__m512d __X
, __m512d __Y
, const int __P
)
13677 return (__mmask8
) __builtin_ia32_cmppd512_mask ((__v8df
) __X
,
13680 _MM_FROUND_CUR_DIRECTION
);
13683 extern __inline __mmask16
13684 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13685 _mm512_cmp_ps_mask (__m512 __X
, __m512 __Y
, const int __P
)
13687 return (__mmask16
) __builtin_ia32_cmpps512_mask ((__v16sf
) __X
,
13688 (__v16sf
) __Y
, __P
,
13690 _MM_FROUND_CUR_DIRECTION
);
13693 extern __inline __mmask16
13694 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13695 _mm512_mask_cmp_ps_mask (__mmask16 __U
, __m512 __X
, __m512 __Y
, const int __P
)
13697 return (__mmask16
) __builtin_ia32_cmpps512_mask ((__v16sf
) __X
,
13698 (__v16sf
) __Y
, __P
,
13700 _MM_FROUND_CUR_DIRECTION
);
13703 extern __inline __mmask8
13704 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13705 _mm512_mask_cmp_pd_mask (__mmask8 __U
, __m512d __X
, __m512d __Y
, const int __P
)
13707 return (__mmask8
) __builtin_ia32_cmppd512_mask ((__v8df
) __X
,
13710 _MM_FROUND_CUR_DIRECTION
);
13713 extern __inline __mmask8
13714 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13715 _mm_cmp_sd_mask (__m128d __X
, __m128d __Y
, const int __P
)
13717 return (__mmask8
) __builtin_ia32_cmpsd_mask ((__v2df
) __X
,
13720 _MM_FROUND_CUR_DIRECTION
);
13723 extern __inline __mmask8
13724 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13725 _mm_mask_cmp_sd_mask (__mmask8 __M
, __m128d __X
, __m128d __Y
, const int __P
)
13727 return (__mmask8
) __builtin_ia32_cmpsd_mask ((__v2df
) __X
,
13730 _MM_FROUND_CUR_DIRECTION
);
13733 extern __inline __mmask8
13734 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13735 _mm_cmp_ss_mask (__m128 __X
, __m128 __Y
, const int __P
)
13737 return (__mmask8
) __builtin_ia32_cmpss_mask ((__v4sf
) __X
,
13740 _MM_FROUND_CUR_DIRECTION
);
13743 extern __inline __mmask8
13744 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13745 _mm_mask_cmp_ss_mask (__mmask8 __M
, __m128 __X
, __m128 __Y
, const int __P
)
13747 return (__mmask8
) __builtin_ia32_cmpss_mask ((__v4sf
) __X
,
13750 _MM_FROUND_CUR_DIRECTION
);
13754 #define _mm512_cmp_pd_mask(X, Y, P) \
13755 ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X), \
13756 (__v8df)(__m512d)(Y), (int)(P),\
13757 (__mmask8)-1,_MM_FROUND_CUR_DIRECTION))
13759 #define _mm512_cmp_ps_mask(X, Y, P) \
13760 ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X), \
13761 (__v16sf)(__m512)(Y), (int)(P),\
13762 (__mmask16)-1,_MM_FROUND_CUR_DIRECTION))
13764 #define _mm512_mask_cmp_pd_mask(M, X, Y, P) \
13765 ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X), \
13766 (__v8df)(__m512d)(Y), (int)(P),\
13767 (__mmask8)M, _MM_FROUND_CUR_DIRECTION))
13769 #define _mm512_mask_cmp_ps_mask(M, X, Y, P) \
13770 ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X), \
13771 (__v16sf)(__m512)(Y), (int)(P),\
13772 (__mmask16)M,_MM_FROUND_CUR_DIRECTION))
13774 #define _mm_cmp_sd_mask(X, Y, P) \
13775 ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X), \
13776 (__v2df)(__m128d)(Y), (int)(P),\
13777 (__mmask8)-1,_MM_FROUND_CUR_DIRECTION))
13779 #define _mm_mask_cmp_sd_mask(M, X, Y, P) \
13780 ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X), \
13781 (__v2df)(__m128d)(Y), (int)(P),\
13782 M,_MM_FROUND_CUR_DIRECTION))
13784 #define _mm_cmp_ss_mask(X, Y, P) \
13785 ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X), \
13786 (__v4sf)(__m128)(Y), (int)(P), \
13787 (__mmask8)-1,_MM_FROUND_CUR_DIRECTION))
13789 #define _mm_mask_cmp_ss_mask(M, X, Y, P) \
13790 ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X), \
13791 (__v4sf)(__m128)(Y), (int)(P), \
13792 M,_MM_FROUND_CUR_DIRECTION))
13795 extern __inline __mmask16
13796 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13797 _mm512_kmov (__mmask16 __A
)
13799 return __builtin_ia32_kmovw (__A
);
13802 extern __inline __m512
13803 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13804 _mm512_castpd_ps (__m512d __A
)
13806 return (__m512
) (__A
);
13809 extern __inline __m512i
13810 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13811 _mm512_castpd_si512 (__m512d __A
)
13813 return (__m512i
) (__A
);
13816 extern __inline __m512d
13817 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13818 _mm512_castps_pd (__m512 __A
)
13820 return (__m512d
) (__A
);
13823 extern __inline __m512i
13824 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13825 _mm512_castps_si512 (__m512 __A
)
13827 return (__m512i
) (__A
);
13830 extern __inline __m512
13831 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13832 _mm512_castsi512_ps (__m512i __A
)
13834 return (__m512
) (__A
);
13837 extern __inline __m512d
13838 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13839 _mm512_castsi512_pd (__m512i __A
)
13841 return (__m512d
) (__A
);
13844 extern __inline __m128d
13845 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13846 _mm512_castpd512_pd128 (__m512d __A
)
13848 return (__m128d
)_mm512_extractf32x4_ps((__m512
)__A
, 0);
13851 extern __inline __m128
13852 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13853 _mm512_castps512_ps128 (__m512 __A
)
13855 return _mm512_extractf32x4_ps(__A
, 0);
13858 extern __inline __m128i
13859 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13860 _mm512_castsi512_si128 (__m512i __A
)
13862 return (__m128i
)_mm512_extracti32x4_epi32((__m512i
)__A
, 0);
13865 extern __inline __m256d
13866 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13867 _mm512_castpd512_pd256 (__m512d __A
)
13869 return _mm512_extractf64x4_pd(__A
, 0);
13872 extern __inline __m256
13873 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13874 _mm512_castps512_ps256 (__m512 __A
)
13876 return (__m256
)_mm512_extractf64x4_pd((__m512d
)__A
, 0);
13879 extern __inline __m256i
13880 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13881 _mm512_castsi512_si256 (__m512i __A
)
13883 return (__m256i
)_mm512_extractf64x4_pd((__m512d
)__A
, 0);
13886 extern __inline __m512d
13887 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13888 _mm512_castpd128_pd512 (__m128d __A
)
13890 return (__m512d
) __builtin_ia32_pd512_pd((__m128d
)__A
);
13893 extern __inline __m512
13894 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13895 _mm512_castps128_ps512 (__m128 __A
)
13897 return (__m512
) __builtin_ia32_ps512_ps((__m128
)__A
);
13900 extern __inline __m512i
13901 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13902 _mm512_castsi128_si512 (__m128i __A
)
13904 return (__m512i
) __builtin_ia32_si512_si((__v4si
)__A
);
13907 extern __inline __m512d
13908 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13909 _mm512_castpd256_pd512 (__m256d __A
)
13911 return __builtin_ia32_pd512_256pd (__A
);
13914 extern __inline __m512
13915 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13916 _mm512_castps256_ps512 (__m256 __A
)
13918 return __builtin_ia32_ps512_256ps (__A
);
13921 extern __inline __m512i
13922 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13923 _mm512_castsi256_si512 (__m256i __A
)
13925 return (__m512i
)__builtin_ia32_si512_256si ((__v8si
)__A
);
13928 extern __inline __mmask16
13929 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13930 _mm512_cmpeq_epu32_mask (__m512i __A
, __m512i __B
)
13932 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __A
,
13937 extern __inline __mmask16
13938 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13939 _mm512_mask_cmpeq_epu32_mask (__mmask16 __U
, __m512i __A
, __m512i __B
)
13941 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __A
,
13942 (__v16si
) __B
, 0, __U
);
13945 extern __inline __mmask8
13946 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13947 _mm512_mask_cmpeq_epu64_mask (__mmask8 __U
, __m512i __A
, __m512i __B
)
13949 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __A
,
13950 (__v8di
) __B
, 0, __U
);
13953 extern __inline __mmask8
13954 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13955 _mm512_cmpeq_epu64_mask (__m512i __A
, __m512i __B
)
13957 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __A
,
13962 extern __inline __mmask16
13963 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13964 _mm512_cmpgt_epu32_mask (__m512i __A
, __m512i __B
)
13966 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __A
,
13971 extern __inline __mmask16
13972 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13973 _mm512_mask_cmpgt_epu32_mask (__mmask16 __U
, __m512i __A
, __m512i __B
)
13975 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __A
,
13976 (__v16si
) __B
, 6, __U
);
13979 extern __inline __mmask8
13980 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13981 _mm512_mask_cmpgt_epu64_mask (__mmask8 __U
, __m512i __A
, __m512i __B
)
13983 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __A
,
13984 (__v8di
) __B
, 6, __U
);
13987 extern __inline __mmask8
13988 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13989 _mm512_cmpgt_epu64_mask (__m512i __A
, __m512i __B
)
13991 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __A
,
13996 #undef __MM512_REDUCE_OP
13997 #define __MM512_REDUCE_OP(op) \
13998 __v8si __T1 = (__v8si) _mm512_extracti64x4_epi64 (__A, 1); \
13999 __v8si __T2 = (__v8si) _mm512_extracti64x4_epi64 (__A, 0); \
14000 __m256i __T3 = (__m256i) (__T1 op __T2); \
14001 __v4si __T4 = (__v4si) _mm256_extracti128_si256 (__T3, 1); \
14002 __v4si __T5 = (__v4si) _mm256_extracti128_si256 (__T3, 0); \
14003 __v4si __T6 = __T4 op __T5; \
14004 __v4si __T7 = __builtin_shuffle (__T6, (__v4si) { 2, 3, 0, 1 }); \
14005 __v4si __T8 = __T6 op __T7; \
14006 return __T8[0] op __T8[1]
14008 extern __inline
int
14009 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14010 _mm512_reduce_add_epi32 (__m512i __A
)
14012 __MM512_REDUCE_OP (+);
14015 extern __inline
int
14016 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14017 _mm512_reduce_mul_epi32 (__m512i __A
)
14019 __MM512_REDUCE_OP (*);
14022 extern __inline
int
14023 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14024 _mm512_reduce_and_epi32 (__m512i __A
)
14026 __MM512_REDUCE_OP (&);
14029 extern __inline
int
14030 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14031 _mm512_reduce_or_epi32 (__m512i __A
)
14033 __MM512_REDUCE_OP (|);
14036 extern __inline
int
14037 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14038 _mm512_mask_reduce_add_epi32 (__mmask16 __U
, __m512i __A
)
14040 __A
= _mm512_maskz_mov_epi32 (__U
, __A
);
14041 __MM512_REDUCE_OP (+);
14044 extern __inline
int
14045 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14046 _mm512_mask_reduce_mul_epi32 (__mmask16 __U
, __m512i __A
)
14048 __A
= _mm512_mask_mov_epi32 (_mm512_set1_epi32 (1), __U
, __A
);
14049 __MM512_REDUCE_OP (*);
14052 extern __inline
int
14053 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14054 _mm512_mask_reduce_and_epi32 (__mmask16 __U
, __m512i __A
)
14056 __A
= _mm512_mask_mov_epi32 (_mm512_set1_epi32 (~0), __U
, __A
);
14057 __MM512_REDUCE_OP (&);
14060 extern __inline
int
14061 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14062 _mm512_mask_reduce_or_epi32 (__mmask16 __U
, __m512i __A
)
14064 __A
= _mm512_maskz_mov_epi32 (__U
, __A
);
14065 __MM512_REDUCE_OP (|);
14068 #undef __MM512_REDUCE_OP
14069 #define __MM512_REDUCE_OP(op) \
14070 __m256i __T1 = (__m256i) _mm512_extracti64x4_epi64 (__A, 1); \
14071 __m256i __T2 = (__m256i) _mm512_extracti64x4_epi64 (__A, 0); \
14072 __m256i __T3 = _mm256_##op (__T1, __T2); \
14073 __m128i __T4 = (__m128i) _mm256_extracti128_si256 (__T3, 1); \
14074 __m128i __T5 = (__m128i) _mm256_extracti128_si256 (__T3, 0); \
14075 __m128i __T6 = _mm_##op (__T4, __T5); \
14076 __m128i __T7 = (__m128i) __builtin_shuffle ((__v4si) __T6, \
14077 (__v4si) { 2, 3, 0, 1 }); \
14078 __m128i __T8 = _mm_##op (__T6, __T7); \
14079 __m128i __T9 = (__m128i) __builtin_shuffle ((__v4si) __T8, \
14080 (__v4si) { 1, 0, 1, 0 }); \
14081 __v4si __T10 = (__v4si) _mm_##op (__T8, __T9); \
14084 extern __inline
int
14085 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14086 _mm512_reduce_min_epi32 (__m512i __A
)
14088 __MM512_REDUCE_OP (min_epi32
);
14091 extern __inline
int
14092 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14093 _mm512_reduce_max_epi32 (__m512i __A
)
14095 __MM512_REDUCE_OP (max_epi32
);
14098 extern __inline
unsigned int
14099 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14100 _mm512_reduce_min_epu32 (__m512i __A
)
14102 __MM512_REDUCE_OP (min_epu32
);
14105 extern __inline
unsigned int
14106 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14107 _mm512_reduce_max_epu32 (__m512i __A
)
14109 __MM512_REDUCE_OP (max_epu32
);
14112 extern __inline
int
14113 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14114 _mm512_mask_reduce_min_epi32 (__mmask16 __U
, __m512i __A
)
14116 __A
= _mm512_mask_mov_epi32 (_mm512_set1_epi32 (__INT_MAX__
), __U
, __A
);
14117 __MM512_REDUCE_OP (min_epi32
);
14120 extern __inline
int
14121 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14122 _mm512_mask_reduce_max_epi32 (__mmask16 __U
, __m512i __A
)
14124 __A
= _mm512_mask_mov_epi32 (_mm512_set1_epi32 (-__INT_MAX__
- 1), __U
, __A
);
14125 __MM512_REDUCE_OP (max_epi32
);
14128 extern __inline
unsigned int
14129 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14130 _mm512_mask_reduce_min_epu32 (__mmask16 __U
, __m512i __A
)
14132 __A
= _mm512_mask_mov_epi32 (_mm512_set1_epi32 (~0), __U
, __A
);
14133 __MM512_REDUCE_OP (min_epu32
);
14136 extern __inline
unsigned int
14137 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14138 _mm512_mask_reduce_max_epu32 (__mmask16 __U
, __m512i __A
)
14140 __A
= _mm512_maskz_mov_epi32 (__U
, __A
);
14141 __MM512_REDUCE_OP (max_epu32
);
14144 #undef __MM512_REDUCE_OP
14145 #define __MM512_REDUCE_OP(op) \
14146 __m256 __T1 = (__m256) _mm512_extractf64x4_pd ((__m512d) __A, 1); \
14147 __m256 __T2 = (__m256) _mm512_extractf64x4_pd ((__m512d) __A, 0); \
14148 __m256 __T3 = __T1 op __T2; \
14149 __m128 __T4 = _mm256_extractf128_ps (__T3, 1); \
14150 __m128 __T5 = _mm256_extractf128_ps (__T3, 0); \
14151 __m128 __T6 = __T4 op __T5; \
14152 __m128 __T7 = __builtin_shuffle (__T6, (__v4si) { 2, 3, 0, 1 }); \
14153 __m128 __T8 = __T6 op __T7; \
14154 return __T8[0] op __T8[1]
14156 extern __inline
float
14157 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14158 _mm512_reduce_add_ps (__m512 __A
)
14160 __MM512_REDUCE_OP (+);
14163 extern __inline
float
14164 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14165 _mm512_reduce_mul_ps (__m512 __A
)
14167 __MM512_REDUCE_OP (*);
14170 extern __inline
float
14171 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14172 _mm512_mask_reduce_add_ps (__mmask16 __U
, __m512 __A
)
14174 __A
= _mm512_maskz_mov_ps (__U
, __A
);
14175 __MM512_REDUCE_OP (+);
14178 extern __inline
float
14179 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14180 _mm512_mask_reduce_mul_ps (__mmask16 __U
, __m512 __A
)
14182 __A
= _mm512_mask_mov_ps (_mm512_set1_ps (1.0f
), __U
, __A
);
14183 __MM512_REDUCE_OP (*);
14186 #undef __MM512_REDUCE_OP
14187 #define __MM512_REDUCE_OP(op) \
14188 __m256 __T1 = (__m256) _mm512_extractf64x4_pd ((__m512d) __A, 1); \
14189 __m256 __T2 = (__m256) _mm512_extractf64x4_pd ((__m512d) __A, 0); \
14190 __m256 __T3 = _mm256_##op (__T1, __T2); \
14191 __m128 __T4 = _mm256_extractf128_ps (__T3, 1); \
14192 __m128 __T5 = _mm256_extractf128_ps (__T3, 0); \
14193 __m128 __T6 = _mm_##op (__T4, __T5); \
14194 __m128 __T7 = __builtin_shuffle (__T6, (__v4si) { 2, 3, 0, 1 }); \
14195 __m128 __T8 = _mm_##op (__T6, __T7); \
14196 __m128 __T9 = __builtin_shuffle (__T8, (__v4si) { 1, 0, 1, 0 }); \
14197 __m128 __T10 = _mm_##op (__T8, __T9); \
14200 extern __inline
float
14201 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14202 _mm512_reduce_min_ps (__m512 __A
)
14204 __MM512_REDUCE_OP (min_ps
);
14207 extern __inline
float
14208 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14209 _mm512_reduce_max_ps (__m512 __A
)
14211 __MM512_REDUCE_OP (max_ps
);
14214 extern __inline
float
14215 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14216 _mm512_mask_reduce_min_ps (__mmask16 __U
, __m512 __A
)
14218 __A
= _mm512_mask_mov_ps (_mm512_set1_ps (__builtin_inff ()), __U
, __A
);
14219 __MM512_REDUCE_OP (min_ps
);
14222 extern __inline
float
14223 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14224 _mm512_mask_reduce_max_ps (__mmask16 __U
, __m512 __A
)
14226 __A
= _mm512_mask_mov_ps (_mm512_set1_ps (-__builtin_inff ()), __U
, __A
);
14227 __MM512_REDUCE_OP (max_ps
);
14230 #undef __MM512_REDUCE_OP
14231 #define __MM512_REDUCE_OP(op) \
14232 __v4di __T1 = (__v4di) _mm512_extracti64x4_epi64 (__A, 1); \
14233 __v4di __T2 = (__v4di) _mm512_extracti64x4_epi64 (__A, 0); \
14234 __m256i __T3 = (__m256i) (__T1 op __T2); \
14235 __v2di __T4 = (__v2di) _mm256_extracti128_si256 (__T3, 1); \
14236 __v2di __T5 = (__v2di) _mm256_extracti128_si256 (__T3, 0); \
14237 __v2di __T6 = __T4 op __T5; \
14238 return __T6[0] op __T6[1]
14240 extern __inline
long long
14241 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14242 _mm512_reduce_add_epi64 (__m512i __A
)
14244 __MM512_REDUCE_OP (+);
14247 extern __inline
long long
14248 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14249 _mm512_reduce_mul_epi64 (__m512i __A
)
14251 __MM512_REDUCE_OP (*);
14254 extern __inline
long long
14255 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14256 _mm512_reduce_and_epi64 (__m512i __A
)
14258 __MM512_REDUCE_OP (&);
14261 extern __inline
long long
14262 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14263 _mm512_reduce_or_epi64 (__m512i __A
)
14265 __MM512_REDUCE_OP (|);
14268 extern __inline
long long
14269 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14270 _mm512_mask_reduce_add_epi64 (__mmask8 __U
, __m512i __A
)
14272 __A
= _mm512_maskz_mov_epi64 (__U
, __A
);
14273 __MM512_REDUCE_OP (+);
14276 extern __inline
long long
14277 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14278 _mm512_mask_reduce_mul_epi64 (__mmask8 __U
, __m512i __A
)
14280 __A
= _mm512_mask_mov_epi64 (_mm512_set1_epi64 (1LL), __U
, __A
);
14281 __MM512_REDUCE_OP (*);
14284 extern __inline
long long
14285 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14286 _mm512_mask_reduce_and_epi64 (__mmask8 __U
, __m512i __A
)
14288 __A
= _mm512_mask_mov_epi64 (_mm512_set1_epi64 (~0LL), __U
, __A
);
14289 __MM512_REDUCE_OP (&);
14292 extern __inline
long long
14293 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14294 _mm512_mask_reduce_or_epi64 (__mmask8 __U
, __m512i __A
)
14296 __A
= _mm512_maskz_mov_epi64 (__U
, __A
);
14297 __MM512_REDUCE_OP (|);
14300 #undef __MM512_REDUCE_OP
14301 #define __MM512_REDUCE_OP(op) \
14302 __m512i __T1 = _mm512_shuffle_i64x2 (__A, __A, 0x4e); \
14303 __m512i __T2 = _mm512_##op (__A, __T1); \
14305 = (__m512i) __builtin_shuffle ((__v8di) __T2, \
14306 (__v8di) { 2, 3, 0, 1, 6, 7, 4, 5 });\
14307 __m512i __T4 = _mm512_##op (__T2, __T3); \
14309 = (__m512i) __builtin_shuffle ((__v8di) __T4, \
14310 (__v8di) { 1, 0, 3, 2, 5, 4, 7, 6 });\
14311 __v8di __T6 = (__v8di) _mm512_##op (__T4, __T5); \
14314 extern __inline
long long
14315 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14316 _mm512_reduce_min_epi64 (__m512i __A
)
14318 __MM512_REDUCE_OP (min_epi64
);
14321 extern __inline
long long
14322 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14323 _mm512_reduce_max_epi64 (__m512i __A
)
14325 __MM512_REDUCE_OP (max_epi64
);
14328 extern __inline
long long
14329 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14330 _mm512_mask_reduce_min_epi64 (__mmask8 __U
, __m512i __A
)
14332 __A
= _mm512_mask_mov_epi64 (_mm512_set1_epi64 (__LONG_LONG_MAX__
),
14334 __MM512_REDUCE_OP (min_epi64
);
14337 extern __inline
long long
14338 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14339 _mm512_mask_reduce_max_epi64 (__mmask8 __U
, __m512i __A
)
14341 __A
= _mm512_mask_mov_epi64 (_mm512_set1_epi64 (-__LONG_LONG_MAX__
- 1),
14343 __MM512_REDUCE_OP (max_epi64
);
14346 extern __inline
unsigned long long
14347 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14348 _mm512_reduce_min_epu64 (__m512i __A
)
14350 __MM512_REDUCE_OP (min_epu64
);
14353 extern __inline
unsigned long long
14354 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14355 _mm512_reduce_max_epu64 (__m512i __A
)
14357 __MM512_REDUCE_OP (max_epu64
);
14360 extern __inline
unsigned long long
14361 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14362 _mm512_mask_reduce_min_epu64 (__mmask8 __U
, __m512i __A
)
14364 __A
= _mm512_mask_mov_epi64 (_mm512_set1_epi64 (~0LL), __U
, __A
);
14365 __MM512_REDUCE_OP (min_epu64
);
14368 extern __inline
unsigned long long
14369 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14370 _mm512_mask_reduce_max_epu64 (__mmask8 __U
, __m512i __A
)
14372 __A
= _mm512_maskz_mov_epi64 (__U
, __A
);
14373 __MM512_REDUCE_OP (max_epu64
);
14376 #undef __MM512_REDUCE_OP
14377 #define __MM512_REDUCE_OP(op) \
14378 __m256d __T1 = (__m256d) _mm512_extractf64x4_pd (__A, 1); \
14379 __m256d __T2 = (__m256d) _mm512_extractf64x4_pd (__A, 0); \
14380 __m256d __T3 = __T1 op __T2; \
14381 __m128d __T4 = _mm256_extractf128_pd (__T3, 1); \
14382 __m128d __T5 = _mm256_extractf128_pd (__T3, 0); \
14383 __m128d __T6 = __T4 op __T5; \
14384 return __T6[0] op __T6[1]
14386 extern __inline
double
14387 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14388 _mm512_reduce_add_pd (__m512d __A
)
14390 __MM512_REDUCE_OP (+);
14393 extern __inline
double
14394 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14395 _mm512_reduce_mul_pd (__m512d __A
)
14397 __MM512_REDUCE_OP (*);
14400 extern __inline
double
14401 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14402 _mm512_mask_reduce_add_pd (__mmask8 __U
, __m512d __A
)
14404 __A
= _mm512_maskz_mov_pd (__U
, __A
);
14405 __MM512_REDUCE_OP (+);
14408 extern __inline
double
14409 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14410 _mm512_mask_reduce_mul_pd (__mmask8 __U
, __m512d __A
)
14412 __A
= _mm512_mask_mov_pd (_mm512_set1_pd (1.0), __U
, __A
);
14413 __MM512_REDUCE_OP (*);
14416 #undef __MM512_REDUCE_OP
14417 #define __MM512_REDUCE_OP(op) \
14418 __m256d __T1 = (__m256d) _mm512_extractf64x4_pd (__A, 1); \
14419 __m256d __T2 = (__m256d) _mm512_extractf64x4_pd (__A, 0); \
14420 __m256d __T3 = _mm256_##op (__T1, __T2); \
14421 __m128d __T4 = _mm256_extractf128_pd (__T3, 1); \
14422 __m128d __T5 = _mm256_extractf128_pd (__T3, 0); \
14423 __m128d __T6 = _mm_##op (__T4, __T5); \
14424 __m128d __T7 = (__m128d) __builtin_shuffle (__T6, (__v2di) { 1, 0 }); \
14425 __m128d __T8 = _mm_##op (__T6, __T7); \
14428 extern __inline
double
14429 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14430 _mm512_reduce_min_pd (__m512d __A
)
14432 __MM512_REDUCE_OP (min_pd
);
14435 extern __inline
double
14436 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14437 _mm512_reduce_max_pd (__m512d __A
)
14439 __MM512_REDUCE_OP (max_pd
);
14442 extern __inline
double
14443 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14444 _mm512_mask_reduce_min_pd (__mmask8 __U
, __m512d __A
)
14446 __A
= _mm512_mask_mov_pd (_mm512_set1_pd (__builtin_inf ()), __U
, __A
);
14447 __MM512_REDUCE_OP (min_pd
);
14450 extern __inline
double
14451 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
14452 _mm512_mask_reduce_max_pd (__mmask8 __U
, __m512d __A
)
14454 __A
= _mm512_mask_mov_pd (_mm512_set1_pd (-__builtin_inf ()), __U
, __A
);
14455 __MM512_REDUCE_OP (max_pd
);
14458 #undef __MM512_REDUCE_OP
14460 #ifdef __DISABLE_AVX512F__
14461 #undef __DISABLE_AVX512F__
14462 #pragma GCC pop_options
14463 #endif /* __DISABLE_AVX512F__ */
14465 #endif /* _AVX512FINTRIN_H_INCLUDED */