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 __m512i
64 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
65 _mm512_set_epi64 (long long __A
, long long __B
, long long __C
,
66 long long __D
, long long __E
, long long __F
,
67 long long __G
, long long __H
)
69 return __extension__ (__m512i
) (__v8di
)
70 { __H
, __G
, __F
, __E
, __D
, __C
, __B
, __A
};
73 /* Create the vector [A B C D E F G H I J K L M N O P]. */
74 extern __inline __m512i
75 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
76 _mm512_set_epi32 (int __A
, int __B
, int __C
, int __D
,
77 int __E
, int __F
, int __G
, int __H
,
78 int __I
, int __J
, int __K
, int __L
,
79 int __M
, int __N
, int __O
, int __P
)
81 return __extension__ (__m512i
)(__v16si
)
82 { __P
, __O
, __N
, __M
, __L
, __K
, __J
, __I
,
83 __H
, __G
, __F
, __E
, __D
, __C
, __B
, __A
};
86 extern __inline __m512d
87 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
88 _mm512_set_pd (double __A
, double __B
, double __C
, double __D
,
89 double __E
, double __F
, double __G
, double __H
)
91 return __extension__ (__m512d
)
92 { __H
, __G
, __F
, __E
, __D
, __C
, __B
, __A
};
95 extern __inline __m512
96 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
97 _mm512_set_ps (float __A
, float __B
, float __C
, float __D
,
98 float __E
, float __F
, float __G
, float __H
,
99 float __I
, float __J
, float __K
, float __L
,
100 float __M
, float __N
, float __O
, float __P
)
102 return __extension__ (__m512
)
103 { __P
, __O
, __N
, __M
, __L
, __K
, __J
, __I
,
104 __H
, __G
, __F
, __E
, __D
, __C
, __B
, __A
};
107 #define _mm512_setr_epi64(e0,e1,e2,e3,e4,e5,e6,e7) \
108 _mm512_set_epi64(e7,e6,e5,e4,e3,e2,e1,e0)
110 #define _mm512_setr_epi32(e0,e1,e2,e3,e4,e5,e6,e7, \
111 e8,e9,e10,e11,e12,e13,e14,e15) \
112 _mm512_set_epi32(e15,e14,e13,e12,e11,e10,e9,e8,e7,e6,e5,e4,e3,e2,e1,e0)
114 #define _mm512_setr_pd(e0,e1,e2,e3,e4,e5,e6,e7) \
115 _mm512_set_pd(e7,e6,e5,e4,e3,e2,e1,e0)
117 #define _mm512_setr_ps(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12,e13,e14,e15) \
118 _mm512_set_ps(e15,e14,e13,e12,e11,e10,e9,e8,e7,e6,e5,e4,e3,e2,e1,e0)
120 extern __inline __m512
121 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
122 _mm512_undefined_ps (void)
128 extern __inline __m512d
129 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
130 _mm512_undefined_pd (void)
136 extern __inline __m512i
137 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
138 _mm512_undefined_epi32 (void)
144 #define _mm512_undefined_si512 _mm512_undefined_epi32
146 extern __inline __m512i
147 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
148 _mm512_set1_epi8 (char __A
)
150 return __extension__ (__m512i
)(__v64qi
)
151 { __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
,
152 __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
,
153 __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
,
154 __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
,
155 __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
,
156 __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
,
157 __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
,
158 __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
};
161 extern __inline __m512i
162 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
163 _mm512_set1_epi16 (short __A
)
165 return __extension__ (__m512i
)(__v32hi
)
166 { __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
,
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
};
172 extern __inline __m512d
173 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
174 _mm512_set1_pd (double __A
)
176 return (__m512d
) __builtin_ia32_broadcastsd512 (__extension__
179 _mm512_undefined_pd (),
183 extern __inline __m512
184 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
185 _mm512_set1_ps (float __A
)
187 return (__m512
) __builtin_ia32_broadcastss512 (__extension__
190 _mm512_undefined_ps (),
194 /* Create the vector [A B C D A B C D A B C D A B C D]. */
195 extern __inline __m512i
196 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
197 _mm512_set4_epi32 (int __A
, int __B
, int __C
, int __D
)
199 return __extension__ (__m512i
)(__v16si
)
200 { __D
, __C
, __B
, __A
, __D
, __C
, __B
, __A
,
201 __D
, __C
, __B
, __A
, __D
, __C
, __B
, __A
};
204 extern __inline __m512i
205 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
206 _mm512_set4_epi64 (long long __A
, long long __B
, long long __C
,
209 return __extension__ (__m512i
) (__v8di
)
210 { __D
, __C
, __B
, __A
, __D
, __C
, __B
, __A
};
213 extern __inline __m512d
214 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
215 _mm512_set4_pd (double __A
, double __B
, double __C
, double __D
)
217 return __extension__ (__m512d
)
218 { __D
, __C
, __B
, __A
, __D
, __C
, __B
, __A
};
221 extern __inline __m512
222 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
223 _mm512_set4_ps (float __A
, float __B
, float __C
, float __D
)
225 return __extension__ (__m512
)
226 { __D
, __C
, __B
, __A
, __D
, __C
, __B
, __A
,
227 __D
, __C
, __B
, __A
, __D
, __C
, __B
, __A
};
230 #define _mm512_setr4_epi64(e0,e1,e2,e3) \
231 _mm512_set4_epi64(e3,e2,e1,e0)
233 #define _mm512_setr4_epi32(e0,e1,e2,e3) \
234 _mm512_set4_epi32(e3,e2,e1,e0)
236 #define _mm512_setr4_pd(e0,e1,e2,e3) \
237 _mm512_set4_pd(e3,e2,e1,e0)
239 #define _mm512_setr4_ps(e0,e1,e2,e3) \
240 _mm512_set4_ps(e3,e2,e1,e0)
242 extern __inline __m512
243 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
244 _mm512_setzero_ps (void)
246 return __extension__ (__m512
){ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
247 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
250 extern __inline __m512d
251 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
252 _mm512_setzero_pd (void)
254 return __extension__ (__m512d
) { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
257 extern __inline __m512i
258 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
259 _mm512_setzero_epi32 (void)
261 return __extension__ (__m512i
)(__v8di
){ 0, 0, 0, 0, 0, 0, 0, 0 };
264 extern __inline __m512i
265 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
266 _mm512_setzero_si512 (void)
268 return __extension__ (__m512i
)(__v8di
){ 0, 0, 0, 0, 0, 0, 0, 0 };
271 extern __inline __m512d
272 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
273 _mm512_mask_mov_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
275 return (__m512d
) __builtin_ia32_movapd512_mask ((__v8df
) __A
,
280 extern __inline __m512d
281 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
282 _mm512_maskz_mov_pd (__mmask8 __U
, __m512d __A
)
284 return (__m512d
) __builtin_ia32_movapd512_mask ((__v8df
) __A
,
286 _mm512_setzero_pd (),
290 extern __inline __m512
291 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
292 _mm512_mask_mov_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
294 return (__m512
) __builtin_ia32_movaps512_mask ((__v16sf
) __A
,
299 extern __inline __m512
300 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
301 _mm512_maskz_mov_ps (__mmask16 __U
, __m512 __A
)
303 return (__m512
) __builtin_ia32_movaps512_mask ((__v16sf
) __A
,
305 _mm512_setzero_ps (),
309 extern __inline __m512d
310 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
311 _mm512_load_pd (void const *__P
)
313 return *(__m512d
*) __P
;
316 extern __inline __m512d
317 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
318 _mm512_mask_load_pd (__m512d __W
, __mmask8 __U
, void const *__P
)
320 return (__m512d
) __builtin_ia32_loadapd512_mask ((const __v8df
*) __P
,
325 extern __inline __m512d
326 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
327 _mm512_maskz_load_pd (__mmask8 __U
, void const *__P
)
329 return (__m512d
) __builtin_ia32_loadapd512_mask ((const __v8df
*) __P
,
331 _mm512_setzero_pd (),
336 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
337 _mm512_store_pd (void *__P
, __m512d __A
)
339 *(__m512d
*) __P
= __A
;
343 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
344 _mm512_mask_store_pd (void *__P
, __mmask8 __U
, __m512d __A
)
346 __builtin_ia32_storeapd512_mask ((__v8df
*) __P
, (__v8df
) __A
,
350 extern __inline __m512
351 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
352 _mm512_load_ps (void const *__P
)
354 return *(__m512
*) __P
;
357 extern __inline __m512
358 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
359 _mm512_mask_load_ps (__m512 __W
, __mmask16 __U
, void const *__P
)
361 return (__m512
) __builtin_ia32_loadaps512_mask ((const __v16sf
*) __P
,
366 extern __inline __m512
367 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
368 _mm512_maskz_load_ps (__mmask16 __U
, void const *__P
)
370 return (__m512
) __builtin_ia32_loadaps512_mask ((const __v16sf
*) __P
,
372 _mm512_setzero_ps (),
377 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
378 _mm512_store_ps (void *__P
, __m512 __A
)
380 *(__m512
*) __P
= __A
;
384 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
385 _mm512_mask_store_ps (void *__P
, __mmask16 __U
, __m512 __A
)
387 __builtin_ia32_storeaps512_mask ((__v16sf
*) __P
, (__v16sf
) __A
,
391 extern __inline __m512i
392 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
393 _mm512_mask_mov_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
)
395 return (__m512i
) __builtin_ia32_movdqa64_512_mask ((__v8di
) __A
,
400 extern __inline __m512i
401 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
402 _mm512_maskz_mov_epi64 (__mmask8 __U
, __m512i __A
)
404 return (__m512i
) __builtin_ia32_movdqa64_512_mask ((__v8di
) __A
,
406 _mm512_setzero_si512 (),
410 extern __inline __m512i
411 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
412 _mm512_load_epi64 (void const *__P
)
414 return *(__m512i
*) __P
;
417 extern __inline __m512i
418 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
419 _mm512_mask_load_epi64 (__m512i __W
, __mmask8 __U
, void const *__P
)
421 return (__m512i
) __builtin_ia32_movdqa64load512_mask ((const __v8di
*) __P
,
426 extern __inline __m512i
427 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
428 _mm512_maskz_load_epi64 (__mmask8 __U
, void const *__P
)
430 return (__m512i
) __builtin_ia32_movdqa64load512_mask ((const __v8di
*) __P
,
432 _mm512_setzero_si512 (),
437 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
438 _mm512_store_epi64 (void *__P
, __m512i __A
)
440 *(__m512i
*) __P
= __A
;
444 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
445 _mm512_mask_store_epi64 (void *__P
, __mmask8 __U
, __m512i __A
)
447 __builtin_ia32_movdqa64store512_mask ((__v8di
*) __P
, (__v8di
) __A
,
451 extern __inline __m512i
452 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
453 _mm512_mask_mov_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
)
455 return (__m512i
) __builtin_ia32_movdqa32_512_mask ((__v16si
) __A
,
460 extern __inline __m512i
461 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
462 _mm512_maskz_mov_epi32 (__mmask16 __U
, __m512i __A
)
464 return (__m512i
) __builtin_ia32_movdqa32_512_mask ((__v16si
) __A
,
466 _mm512_setzero_si512 (),
470 extern __inline __m512i
471 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
472 _mm512_load_si512 (void const *__P
)
474 return *(__m512i
*) __P
;
477 extern __inline __m512i
478 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
479 _mm512_load_epi32 (void const *__P
)
481 return *(__m512i
*) __P
;
484 extern __inline __m512i
485 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
486 _mm512_mask_load_epi32 (__m512i __W
, __mmask16 __U
, void const *__P
)
488 return (__m512i
) __builtin_ia32_movdqa32load512_mask ((const __v16si
*) __P
,
493 extern __inline __m512i
494 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
495 _mm512_maskz_load_epi32 (__mmask16 __U
, void const *__P
)
497 return (__m512i
) __builtin_ia32_movdqa32load512_mask ((const __v16si
*) __P
,
499 _mm512_setzero_si512 (),
504 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
505 _mm512_store_si512 (void *__P
, __m512i __A
)
507 *(__m512i
*) __P
= __A
;
511 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
512 _mm512_store_epi32 (void *__P
, __m512i __A
)
514 *(__m512i
*) __P
= __A
;
518 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
519 _mm512_mask_store_epi32 (void *__P
, __mmask16 __U
, __m512i __A
)
521 __builtin_ia32_movdqa32store512_mask ((__v16si
*) __P
, (__v16si
) __A
,
525 extern __inline __m512i
526 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
527 _mm512_mullo_epi32 (__m512i __A
, __m512i __B
)
529 return (__m512i
) ((__v16su
) __A
* (__v16su
) __B
);
532 extern __inline __m512i
533 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
534 _mm512_maskz_mullo_epi32 (__mmask16 __M
, __m512i __A
, __m512i __B
)
536 return (__m512i
) __builtin_ia32_pmulld512_mask ((__v16si
) __A
,
539 _mm512_setzero_si512 (),
543 extern __inline __m512i
544 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
545 _mm512_mask_mullo_epi32 (__m512i __W
, __mmask16 __M
, __m512i __A
, __m512i __B
)
547 return (__m512i
) __builtin_ia32_pmulld512_mask ((__v16si
) __A
,
552 extern __inline __m512i
553 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
554 _mm512_sllv_epi32 (__m512i __X
, __m512i __Y
)
556 return (__m512i
) __builtin_ia32_psllv16si_mask ((__v16si
) __X
,
559 _mm512_undefined_epi32 (),
563 extern __inline __m512i
564 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
565 _mm512_mask_sllv_epi32 (__m512i __W
, __mmask16 __U
, __m512i __X
, __m512i __Y
)
567 return (__m512i
) __builtin_ia32_psllv16si_mask ((__v16si
) __X
,
573 extern __inline __m512i
574 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
575 _mm512_maskz_sllv_epi32 (__mmask16 __U
, __m512i __X
, __m512i __Y
)
577 return (__m512i
) __builtin_ia32_psllv16si_mask ((__v16si
) __X
,
580 _mm512_setzero_si512 (),
584 extern __inline __m512i
585 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
586 _mm512_srav_epi32 (__m512i __X
, __m512i __Y
)
588 return (__m512i
) __builtin_ia32_psrav16si_mask ((__v16si
) __X
,
591 _mm512_undefined_epi32 (),
595 extern __inline __m512i
596 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
597 _mm512_mask_srav_epi32 (__m512i __W
, __mmask16 __U
, __m512i __X
, __m512i __Y
)
599 return (__m512i
) __builtin_ia32_psrav16si_mask ((__v16si
) __X
,
605 extern __inline __m512i
606 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
607 _mm512_maskz_srav_epi32 (__mmask16 __U
, __m512i __X
, __m512i __Y
)
609 return (__m512i
) __builtin_ia32_psrav16si_mask ((__v16si
) __X
,
612 _mm512_setzero_si512 (),
616 extern __inline __m512i
617 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
618 _mm512_srlv_epi32 (__m512i __X
, __m512i __Y
)
620 return (__m512i
) __builtin_ia32_psrlv16si_mask ((__v16si
) __X
,
623 _mm512_undefined_epi32 (),
627 extern __inline __m512i
628 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
629 _mm512_mask_srlv_epi32 (__m512i __W
, __mmask16 __U
, __m512i __X
, __m512i __Y
)
631 return (__m512i
) __builtin_ia32_psrlv16si_mask ((__v16si
) __X
,
637 extern __inline __m512i
638 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
639 _mm512_maskz_srlv_epi32 (__mmask16 __U
, __m512i __X
, __m512i __Y
)
641 return (__m512i
) __builtin_ia32_psrlv16si_mask ((__v16si
) __X
,
644 _mm512_setzero_si512 (),
648 extern __inline __m512i
649 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
650 _mm512_add_epi64 (__m512i __A
, __m512i __B
)
652 return (__m512i
) ((__v8du
) __A
+ (__v8du
) __B
);
655 extern __inline __m512i
656 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
657 _mm512_mask_add_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
659 return (__m512i
) __builtin_ia32_paddq512_mask ((__v8di
) __A
,
665 extern __inline __m512i
666 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
667 _mm512_maskz_add_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
669 return (__m512i
) __builtin_ia32_paddq512_mask ((__v8di
) __A
,
672 _mm512_setzero_si512 (),
676 extern __inline __m512i
677 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
678 _mm512_sub_epi64 (__m512i __A
, __m512i __B
)
680 return (__m512i
) ((__v8du
) __A
- (__v8du
) __B
);
683 extern __inline __m512i
684 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
685 _mm512_mask_sub_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
687 return (__m512i
) __builtin_ia32_psubq512_mask ((__v8di
) __A
,
693 extern __inline __m512i
694 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
695 _mm512_maskz_sub_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
697 return (__m512i
) __builtin_ia32_psubq512_mask ((__v8di
) __A
,
700 _mm512_setzero_si512 (),
704 extern __inline __m512i
705 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
706 _mm512_sllv_epi64 (__m512i __X
, __m512i __Y
)
708 return (__m512i
) __builtin_ia32_psllv8di_mask ((__v8di
) __X
,
711 _mm512_undefined_pd (),
715 extern __inline __m512i
716 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
717 _mm512_mask_sllv_epi64 (__m512i __W
, __mmask8 __U
, __m512i __X
, __m512i __Y
)
719 return (__m512i
) __builtin_ia32_psllv8di_mask ((__v8di
) __X
,
725 extern __inline __m512i
726 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
727 _mm512_maskz_sllv_epi64 (__mmask8 __U
, __m512i __X
, __m512i __Y
)
729 return (__m512i
) __builtin_ia32_psllv8di_mask ((__v8di
) __X
,
732 _mm512_setzero_si512 (),
736 extern __inline __m512i
737 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
738 _mm512_srav_epi64 (__m512i __X
, __m512i __Y
)
740 return (__m512i
) __builtin_ia32_psrav8di_mask ((__v8di
) __X
,
743 _mm512_undefined_epi32 (),
747 extern __inline __m512i
748 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
749 _mm512_mask_srav_epi64 (__m512i __W
, __mmask8 __U
, __m512i __X
, __m512i __Y
)
751 return (__m512i
) __builtin_ia32_psrav8di_mask ((__v8di
) __X
,
757 extern __inline __m512i
758 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
759 _mm512_maskz_srav_epi64 (__mmask8 __U
, __m512i __X
, __m512i __Y
)
761 return (__m512i
) __builtin_ia32_psrav8di_mask ((__v8di
) __X
,
764 _mm512_setzero_si512 (),
768 extern __inline __m512i
769 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
770 _mm512_srlv_epi64 (__m512i __X
, __m512i __Y
)
772 return (__m512i
) __builtin_ia32_psrlv8di_mask ((__v8di
) __X
,
775 _mm512_undefined_epi32 (),
779 extern __inline __m512i
780 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
781 _mm512_mask_srlv_epi64 (__m512i __W
, __mmask8 __U
, __m512i __X
, __m512i __Y
)
783 return (__m512i
) __builtin_ia32_psrlv8di_mask ((__v8di
) __X
,
789 extern __inline __m512i
790 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
791 _mm512_maskz_srlv_epi64 (__mmask8 __U
, __m512i __X
, __m512i __Y
)
793 return (__m512i
) __builtin_ia32_psrlv8di_mask ((__v8di
) __X
,
796 _mm512_setzero_si512 (),
800 extern __inline __m512i
801 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
802 _mm512_add_epi32 (__m512i __A
, __m512i __B
)
804 return (__m512i
) ((__v16su
) __A
+ (__v16su
) __B
);
807 extern __inline __m512i
808 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
809 _mm512_mask_add_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
811 return (__m512i
) __builtin_ia32_paddd512_mask ((__v16si
) __A
,
817 extern __inline __m512i
818 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
819 _mm512_maskz_add_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
821 return (__m512i
) __builtin_ia32_paddd512_mask ((__v16si
) __A
,
824 _mm512_setzero_si512 (),
828 extern __inline __m512i
829 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
830 _mm512_mul_epi32 (__m512i __X
, __m512i __Y
)
832 return (__m512i
) __builtin_ia32_pmuldq512_mask ((__v16si
) __X
,
835 _mm512_undefined_epi32 (),
839 extern __inline __m512i
840 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
841 _mm512_mask_mul_epi32 (__m512i __W
, __mmask8 __M
, __m512i __X
, __m512i __Y
)
843 return (__m512i
) __builtin_ia32_pmuldq512_mask ((__v16si
) __X
,
848 extern __inline __m512i
849 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
850 _mm512_maskz_mul_epi32 (__mmask8 __M
, __m512i __X
, __m512i __Y
)
852 return (__m512i
) __builtin_ia32_pmuldq512_mask ((__v16si
) __X
,
855 _mm512_setzero_si512 (),
859 extern __inline __m512i
860 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
861 _mm512_sub_epi32 (__m512i __A
, __m512i __B
)
863 return (__m512i
) ((__v16su
) __A
- (__v16su
) __B
);
866 extern __inline __m512i
867 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
868 _mm512_mask_sub_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
870 return (__m512i
) __builtin_ia32_psubd512_mask ((__v16si
) __A
,
876 extern __inline __m512i
877 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
878 _mm512_maskz_sub_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
880 return (__m512i
) __builtin_ia32_psubd512_mask ((__v16si
) __A
,
883 _mm512_setzero_si512 (),
887 extern __inline __m512i
888 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
889 _mm512_mul_epu32 (__m512i __X
, __m512i __Y
)
891 return (__m512i
) __builtin_ia32_pmuludq512_mask ((__v16si
) __X
,
894 _mm512_undefined_epi32 (),
898 extern __inline __m512i
899 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
900 _mm512_mask_mul_epu32 (__m512i __W
, __mmask8 __M
, __m512i __X
, __m512i __Y
)
902 return (__m512i
) __builtin_ia32_pmuludq512_mask ((__v16si
) __X
,
907 extern __inline __m512i
908 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
909 _mm512_maskz_mul_epu32 (__mmask8 __M
, __m512i __X
, __m512i __Y
)
911 return (__m512i
) __builtin_ia32_pmuludq512_mask ((__v16si
) __X
,
914 _mm512_setzero_si512 (),
919 extern __inline __m512i
920 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
921 _mm512_slli_epi64 (__m512i __A
, unsigned int __B
)
923 return (__m512i
) __builtin_ia32_psllqi512_mask ((__v8di
) __A
, __B
,
925 _mm512_undefined_epi32 (),
929 extern __inline __m512i
930 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
931 _mm512_mask_slli_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
,
934 return (__m512i
) __builtin_ia32_psllqi512_mask ((__v8di
) __A
, __B
,
939 extern __inline __m512i
940 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
941 _mm512_maskz_slli_epi64 (__mmask8 __U
, __m512i __A
, unsigned int __B
)
943 return (__m512i
) __builtin_ia32_psllqi512_mask ((__v8di
) __A
, __B
,
945 _mm512_setzero_si512 (),
949 #define _mm512_slli_epi64(X, C) \
950 ((__m512i) __builtin_ia32_psllqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
951 (__v8di)(__m512i)_mm512_undefined_epi32 (),\
954 #define _mm512_mask_slli_epi64(W, U, X, C) \
955 ((__m512i) __builtin_ia32_psllqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
956 (__v8di)(__m512i)(W),\
959 #define _mm512_maskz_slli_epi64(U, X, C) \
960 ((__m512i) __builtin_ia32_psllqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
961 (__v8di)(__m512i)_mm512_setzero_si512 (),\
965 extern __inline __m512i
966 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
967 _mm512_sll_epi64 (__m512i __A
, __m128i __B
)
969 return (__m512i
) __builtin_ia32_psllq512_mask ((__v8di
) __A
,
972 _mm512_undefined_epi32 (),
976 extern __inline __m512i
977 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
978 _mm512_mask_sll_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m128i __B
)
980 return (__m512i
) __builtin_ia32_psllq512_mask ((__v8di
) __A
,
986 extern __inline __m512i
987 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
988 _mm512_maskz_sll_epi64 (__mmask8 __U
, __m512i __A
, __m128i __B
)
990 return (__m512i
) __builtin_ia32_psllq512_mask ((__v8di
) __A
,
993 _mm512_setzero_si512 (),
998 extern __inline __m512i
999 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1000 _mm512_srli_epi64 (__m512i __A
, unsigned int __B
)
1002 return (__m512i
) __builtin_ia32_psrlqi512_mask ((__v8di
) __A
, __B
,
1004 _mm512_undefined_epi32 (),
1008 extern __inline __m512i
1009 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1010 _mm512_mask_srli_epi64 (__m512i __W
, __mmask8 __U
,
1011 __m512i __A
, unsigned int __B
)
1013 return (__m512i
) __builtin_ia32_psrlqi512_mask ((__v8di
) __A
, __B
,
1018 extern __inline __m512i
1019 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1020 _mm512_maskz_srli_epi64 (__mmask8 __U
, __m512i __A
, unsigned int __B
)
1022 return (__m512i
) __builtin_ia32_psrlqi512_mask ((__v8di
) __A
, __B
,
1024 _mm512_setzero_si512 (),
1028 #define _mm512_srli_epi64(X, C) \
1029 ((__m512i) __builtin_ia32_psrlqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1030 (__v8di)(__m512i)_mm512_undefined_epi32 (),\
1033 #define _mm512_mask_srli_epi64(W, U, X, C) \
1034 ((__m512i) __builtin_ia32_psrlqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1035 (__v8di)(__m512i)(W),\
1038 #define _mm512_maskz_srli_epi64(U, X, C) \
1039 ((__m512i) __builtin_ia32_psrlqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1040 (__v8di)(__m512i)_mm512_setzero_si512 (),\
1044 extern __inline __m512i
1045 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1046 _mm512_srl_epi64 (__m512i __A
, __m128i __B
)
1048 return (__m512i
) __builtin_ia32_psrlq512_mask ((__v8di
) __A
,
1051 _mm512_undefined_epi32 (),
1055 extern __inline __m512i
1056 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1057 _mm512_mask_srl_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m128i __B
)
1059 return (__m512i
) __builtin_ia32_psrlq512_mask ((__v8di
) __A
,
1065 extern __inline __m512i
1066 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1067 _mm512_maskz_srl_epi64 (__mmask8 __U
, __m512i __A
, __m128i __B
)
1069 return (__m512i
) __builtin_ia32_psrlq512_mask ((__v8di
) __A
,
1072 _mm512_setzero_si512 (),
1077 extern __inline __m512i
1078 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1079 _mm512_srai_epi64 (__m512i __A
, unsigned int __B
)
1081 return (__m512i
) __builtin_ia32_psraqi512_mask ((__v8di
) __A
, __B
,
1083 _mm512_undefined_epi32 (),
1087 extern __inline __m512i
1088 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1089 _mm512_mask_srai_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
,
1092 return (__m512i
) __builtin_ia32_psraqi512_mask ((__v8di
) __A
, __B
,
1097 extern __inline __m512i
1098 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1099 _mm512_maskz_srai_epi64 (__mmask8 __U
, __m512i __A
, unsigned int __B
)
1101 return (__m512i
) __builtin_ia32_psraqi512_mask ((__v8di
) __A
, __B
,
1103 _mm512_setzero_si512 (),
1107 #define _mm512_srai_epi64(X, C) \
1108 ((__m512i) __builtin_ia32_psraqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1109 (__v8di)(__m512i)_mm512_undefined_epi32 (),\
1112 #define _mm512_mask_srai_epi64(W, U, X, C) \
1113 ((__m512i) __builtin_ia32_psraqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1114 (__v8di)(__m512i)(W),\
1117 #define _mm512_maskz_srai_epi64(U, X, C) \
1118 ((__m512i) __builtin_ia32_psraqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1119 (__v8di)(__m512i)_mm512_setzero_si512 (),\
1123 extern __inline __m512i
1124 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1125 _mm512_sra_epi64 (__m512i __A
, __m128i __B
)
1127 return (__m512i
) __builtin_ia32_psraq512_mask ((__v8di
) __A
,
1130 _mm512_undefined_epi32 (),
1134 extern __inline __m512i
1135 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1136 _mm512_mask_sra_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m128i __B
)
1138 return (__m512i
) __builtin_ia32_psraq512_mask ((__v8di
) __A
,
1144 extern __inline __m512i
1145 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1146 _mm512_maskz_sra_epi64 (__mmask8 __U
, __m512i __A
, __m128i __B
)
1148 return (__m512i
) __builtin_ia32_psraq512_mask ((__v8di
) __A
,
1151 _mm512_setzero_si512 (),
1156 extern __inline __m512i
1157 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1158 _mm512_slli_epi32 (__m512i __A
, unsigned int __B
)
1160 return (__m512i
) __builtin_ia32_pslldi512_mask ((__v16si
) __A
, __B
,
1162 _mm512_undefined_epi32 (),
1166 extern __inline __m512i
1167 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1168 _mm512_mask_slli_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
,
1171 return (__m512i
) __builtin_ia32_pslldi512_mask ((__v16si
) __A
, __B
,
1176 extern __inline __m512i
1177 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1178 _mm512_maskz_slli_epi32 (__mmask16 __U
, __m512i __A
, unsigned int __B
)
1180 return (__m512i
) __builtin_ia32_pslldi512_mask ((__v16si
) __A
, __B
,
1182 _mm512_setzero_si512 (),
1186 #define _mm512_slli_epi32(X, C) \
1187 ((__m512i) __builtin_ia32_pslldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1188 (__v16si)(__m512i)_mm512_undefined_epi32 (),\
1191 #define _mm512_mask_slli_epi32(W, U, X, C) \
1192 ((__m512i) __builtin_ia32_pslldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1193 (__v16si)(__m512i)(W),\
1196 #define _mm512_maskz_slli_epi32(U, X, C) \
1197 ((__m512i) __builtin_ia32_pslldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1198 (__v16si)(__m512i)_mm512_setzero_si512 (),\
1202 extern __inline __m512i
1203 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1204 _mm512_sll_epi32 (__m512i __A
, __m128i __B
)
1206 return (__m512i
) __builtin_ia32_pslld512_mask ((__v16si
) __A
,
1209 _mm512_undefined_epi32 (),
1213 extern __inline __m512i
1214 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1215 _mm512_mask_sll_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m128i __B
)
1217 return (__m512i
) __builtin_ia32_pslld512_mask ((__v16si
) __A
,
1223 extern __inline __m512i
1224 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1225 _mm512_maskz_sll_epi32 (__mmask16 __U
, __m512i __A
, __m128i __B
)
1227 return (__m512i
) __builtin_ia32_pslld512_mask ((__v16si
) __A
,
1230 _mm512_setzero_si512 (),
1235 extern __inline __m512i
1236 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1237 _mm512_srli_epi32 (__m512i __A
, unsigned int __B
)
1239 return (__m512i
) __builtin_ia32_psrldi512_mask ((__v16si
) __A
, __B
,
1241 _mm512_undefined_epi32 (),
1245 extern __inline __m512i
1246 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1247 _mm512_mask_srli_epi32 (__m512i __W
, __mmask16 __U
,
1248 __m512i __A
, unsigned int __B
)
1250 return (__m512i
) __builtin_ia32_psrldi512_mask ((__v16si
) __A
, __B
,
1255 extern __inline __m512i
1256 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1257 _mm512_maskz_srli_epi32 (__mmask16 __U
, __m512i __A
, unsigned int __B
)
1259 return (__m512i
) __builtin_ia32_psrldi512_mask ((__v16si
) __A
, __B
,
1261 _mm512_setzero_si512 (),
1265 #define _mm512_srli_epi32(X, C) \
1266 ((__m512i) __builtin_ia32_psrldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1267 (__v16si)(__m512i)_mm512_undefined_epi32 (),\
1270 #define _mm512_mask_srli_epi32(W, U, X, C) \
1271 ((__m512i) __builtin_ia32_psrldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1272 (__v16si)(__m512i)(W),\
1275 #define _mm512_maskz_srli_epi32(U, X, C) \
1276 ((__m512i) __builtin_ia32_psrldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1277 (__v16si)(__m512i)_mm512_setzero_si512 (),\
1281 extern __inline __m512i
1282 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1283 _mm512_srl_epi32 (__m512i __A
, __m128i __B
)
1285 return (__m512i
) __builtin_ia32_psrld512_mask ((__v16si
) __A
,
1288 _mm512_undefined_epi32 (),
1292 extern __inline __m512i
1293 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1294 _mm512_mask_srl_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m128i __B
)
1296 return (__m512i
) __builtin_ia32_psrld512_mask ((__v16si
) __A
,
1302 extern __inline __m512i
1303 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1304 _mm512_maskz_srl_epi32 (__mmask16 __U
, __m512i __A
, __m128i __B
)
1306 return (__m512i
) __builtin_ia32_psrld512_mask ((__v16si
) __A
,
1309 _mm512_setzero_si512 (),
1314 extern __inline __m512i
1315 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1316 _mm512_srai_epi32 (__m512i __A
, unsigned int __B
)
1318 return (__m512i
) __builtin_ia32_psradi512_mask ((__v16si
) __A
, __B
,
1320 _mm512_undefined_epi32 (),
1324 extern __inline __m512i
1325 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1326 _mm512_mask_srai_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
,
1329 return (__m512i
) __builtin_ia32_psradi512_mask ((__v16si
) __A
, __B
,
1334 extern __inline __m512i
1335 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1336 _mm512_maskz_srai_epi32 (__mmask16 __U
, __m512i __A
, unsigned int __B
)
1338 return (__m512i
) __builtin_ia32_psradi512_mask ((__v16si
) __A
, __B
,
1340 _mm512_setzero_si512 (),
1344 #define _mm512_srai_epi32(X, C) \
1345 ((__m512i) __builtin_ia32_psradi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1346 (__v16si)(__m512i)_mm512_undefined_epi32 (),\
1349 #define _mm512_mask_srai_epi32(W, U, X, C) \
1350 ((__m512i) __builtin_ia32_psradi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1351 (__v16si)(__m512i)(W),\
1354 #define _mm512_maskz_srai_epi32(U, X, C) \
1355 ((__m512i) __builtin_ia32_psradi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1356 (__v16si)(__m512i)_mm512_setzero_si512 (),\
1360 extern __inline __m512i
1361 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1362 _mm512_sra_epi32 (__m512i __A
, __m128i __B
)
1364 return (__m512i
) __builtin_ia32_psrad512_mask ((__v16si
) __A
,
1367 _mm512_undefined_epi32 (),
1371 extern __inline __m512i
1372 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1373 _mm512_mask_sra_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m128i __B
)
1375 return (__m512i
) __builtin_ia32_psrad512_mask ((__v16si
) __A
,
1381 extern __inline __m512i
1382 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1383 _mm512_maskz_sra_epi32 (__mmask16 __U
, __m512i __A
, __m128i __B
)
1385 return (__m512i
) __builtin_ia32_psrad512_mask ((__v16si
) __A
,
1388 _mm512_setzero_si512 (),
1393 extern __inline __m128d
1394 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1395 _mm_add_round_sd (__m128d __A
, __m128d __B
, const int __R
)
1397 return (__m128d
) __builtin_ia32_addsd_round ((__v2df
) __A
,
1402 extern __inline __m128
1403 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1404 _mm_add_round_ss (__m128 __A
, __m128 __B
, const int __R
)
1406 return (__m128
) __builtin_ia32_addss_round ((__v4sf
) __A
,
1411 extern __inline __m128d
1412 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1413 _mm_sub_round_sd (__m128d __A
, __m128d __B
, const int __R
)
1415 return (__m128d
) __builtin_ia32_subsd_round ((__v2df
) __A
,
1420 extern __inline __m128
1421 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1422 _mm_sub_round_ss (__m128 __A
, __m128 __B
, const int __R
)
1424 return (__m128
) __builtin_ia32_subss_round ((__v4sf
) __A
,
1430 #define _mm_add_round_sd(A, B, C) \
1431 (__m128d)__builtin_ia32_addsd_round(A, B, C)
1433 #define _mm_add_round_ss(A, B, C) \
1434 (__m128)__builtin_ia32_addss_round(A, B, C)
1436 #define _mm_sub_round_sd(A, B, C) \
1437 (__m128d)__builtin_ia32_subsd_round(A, B, C)
1439 #define _mm_sub_round_ss(A, B, C) \
1440 (__m128)__builtin_ia32_subss_round(A, B, C)
1444 extern __inline __m512i
1445 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1446 _mm512_ternarylogic_epi64 (__m512i __A
, __m512i __B
, __m512i __C
,
1449 return (__m512i
) __builtin_ia32_pternlogq512_mask ((__v8di
) __A
,
1451 (__v8di
) __C
, __imm
,
1455 extern __inline __m512i
1456 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1457 _mm512_mask_ternarylogic_epi64 (__m512i __A
, __mmask8 __U
, __m512i __B
,
1458 __m512i __C
, const int __imm
)
1460 return (__m512i
) __builtin_ia32_pternlogq512_mask ((__v8di
) __A
,
1462 (__v8di
) __C
, __imm
,
1466 extern __inline __m512i
1467 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1468 _mm512_maskz_ternarylogic_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
,
1469 __m512i __C
, const int __imm
)
1471 return (__m512i
) __builtin_ia32_pternlogq512_maskz ((__v8di
) __A
,
1474 __imm
, (__mmask8
) __U
);
1477 extern __inline __m512i
1478 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1479 _mm512_ternarylogic_epi32 (__m512i __A
, __m512i __B
, __m512i __C
,
1482 return (__m512i
) __builtin_ia32_pternlogd512_mask ((__v16si
) __A
,
1485 __imm
, (__mmask16
) -1);
1488 extern __inline __m512i
1489 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1490 _mm512_mask_ternarylogic_epi32 (__m512i __A
, __mmask16 __U
, __m512i __B
,
1491 __m512i __C
, const int __imm
)
1493 return (__m512i
) __builtin_ia32_pternlogd512_mask ((__v16si
) __A
,
1496 __imm
, (__mmask16
) __U
);
1499 extern __inline __m512i
1500 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1501 _mm512_maskz_ternarylogic_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
,
1502 __m512i __C
, const int __imm
)
1504 return (__m512i
) __builtin_ia32_pternlogd512_maskz ((__v16si
) __A
,
1507 __imm
, (__mmask16
) __U
);
1510 #define _mm512_ternarylogic_epi64(A, B, C, I) \
1511 ((__m512i) __builtin_ia32_pternlogq512_mask ((__v8di)(__m512i)(A), \
1512 (__v8di)(__m512i)(B), (__v8di)(__m512i)(C), (int)(I), (__mmask8)-1))
1513 #define _mm512_mask_ternarylogic_epi64(A, U, B, C, I) \
1514 ((__m512i) __builtin_ia32_pternlogq512_mask ((__v8di)(__m512i)(A), \
1515 (__v8di)(__m512i)(B), (__v8di)(__m512i)(C), (int)(I), (__mmask8)(U)))
1516 #define _mm512_maskz_ternarylogic_epi64(U, A, B, C, I) \
1517 ((__m512i) __builtin_ia32_pternlogq512_maskz ((__v8di)(__m512i)(A), \
1518 (__v8di)(__m512i)(B), (__v8di)(__m512i)(C), (int)(I), (__mmask8)(U)))
1519 #define _mm512_ternarylogic_epi32(A, B, C, I) \
1520 ((__m512i) __builtin_ia32_pternlogd512_mask ((__v16si)(__m512i)(A), \
1521 (__v16si)(__m512i)(B), (__v16si)(__m512i)(C), (int)(I), \
1523 #define _mm512_mask_ternarylogic_epi32(A, U, B, C, I) \
1524 ((__m512i) __builtin_ia32_pternlogd512_mask ((__v16si)(__m512i)(A), \
1525 (__v16si)(__m512i)(B), (__v16si)(__m512i)(C), (int)(I), \
1527 #define _mm512_maskz_ternarylogic_epi32(U, A, B, C, I) \
1528 ((__m512i) __builtin_ia32_pternlogd512_maskz ((__v16si)(__m512i)(A), \
1529 (__v16si)(__m512i)(B), (__v16si)(__m512i)(C), (int)(I), \
1533 extern __inline __m512d
1534 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1535 _mm512_rcp14_pd (__m512d __A
)
1537 return (__m512d
) __builtin_ia32_rcp14pd512_mask ((__v8df
) __A
,
1539 _mm512_undefined_pd (),
1543 extern __inline __m512d
1544 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1545 _mm512_mask_rcp14_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
1547 return (__m512d
) __builtin_ia32_rcp14pd512_mask ((__v8df
) __A
,
1552 extern __inline __m512d
1553 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1554 _mm512_maskz_rcp14_pd (__mmask8 __U
, __m512d __A
)
1556 return (__m512d
) __builtin_ia32_rcp14pd512_mask ((__v8df
) __A
,
1558 _mm512_setzero_pd (),
1562 extern __inline __m512
1563 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1564 _mm512_rcp14_ps (__m512 __A
)
1566 return (__m512
) __builtin_ia32_rcp14ps512_mask ((__v16sf
) __A
,
1568 _mm512_undefined_ps (),
1572 extern __inline __m512
1573 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1574 _mm512_mask_rcp14_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
1576 return (__m512
) __builtin_ia32_rcp14ps512_mask ((__v16sf
) __A
,
1581 extern __inline __m512
1582 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1583 _mm512_maskz_rcp14_ps (__mmask16 __U
, __m512 __A
)
1585 return (__m512
) __builtin_ia32_rcp14ps512_mask ((__v16sf
) __A
,
1587 _mm512_setzero_ps (),
1591 extern __inline __m128d
1592 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1593 _mm_rcp14_sd (__m128d __A
, __m128d __B
)
1595 return (__m128d
) __builtin_ia32_rcp14sd ((__v2df
) __B
,
1599 extern __inline __m128
1600 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1601 _mm_rcp14_ss (__m128 __A
, __m128 __B
)
1603 return (__m128
) __builtin_ia32_rcp14ss ((__v4sf
) __B
,
1607 extern __inline __m512d
1608 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1609 _mm512_rsqrt14_pd (__m512d __A
)
1611 return (__m512d
) __builtin_ia32_rsqrt14pd512_mask ((__v8df
) __A
,
1613 _mm512_undefined_pd (),
1617 extern __inline __m512d
1618 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1619 _mm512_mask_rsqrt14_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
1621 return (__m512d
) __builtin_ia32_rsqrt14pd512_mask ((__v8df
) __A
,
1626 extern __inline __m512d
1627 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1628 _mm512_maskz_rsqrt14_pd (__mmask8 __U
, __m512d __A
)
1630 return (__m512d
) __builtin_ia32_rsqrt14pd512_mask ((__v8df
) __A
,
1632 _mm512_setzero_pd (),
1636 extern __inline __m512
1637 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1638 _mm512_rsqrt14_ps (__m512 __A
)
1640 return (__m512
) __builtin_ia32_rsqrt14ps512_mask ((__v16sf
) __A
,
1642 _mm512_undefined_ps (),
1646 extern __inline __m512
1647 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1648 _mm512_mask_rsqrt14_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
1650 return (__m512
) __builtin_ia32_rsqrt14ps512_mask ((__v16sf
) __A
,
1655 extern __inline __m512
1656 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1657 _mm512_maskz_rsqrt14_ps (__mmask16 __U
, __m512 __A
)
1659 return (__m512
) __builtin_ia32_rsqrt14ps512_mask ((__v16sf
) __A
,
1661 _mm512_setzero_ps (),
1665 extern __inline __m128d
1666 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1667 _mm_rsqrt14_sd (__m128d __A
, __m128d __B
)
1669 return (__m128d
) __builtin_ia32_rsqrt14sd ((__v2df
) __B
,
1673 extern __inline __m128
1674 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1675 _mm_rsqrt14_ss (__m128 __A
, __m128 __B
)
1677 return (__m128
) __builtin_ia32_rsqrt14ss ((__v4sf
) __B
,
1682 extern __inline __m512d
1683 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1684 _mm512_sqrt_round_pd (__m512d __A
, const int __R
)
1686 return (__m512d
) __builtin_ia32_sqrtpd512_mask ((__v8df
) __A
,
1688 _mm512_undefined_pd (),
1689 (__mmask8
) -1, __R
);
1692 extern __inline __m512d
1693 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1694 _mm512_mask_sqrt_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
1697 return (__m512d
) __builtin_ia32_sqrtpd512_mask ((__v8df
) __A
,
1699 (__mmask8
) __U
, __R
);
1702 extern __inline __m512d
1703 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1704 _mm512_maskz_sqrt_round_pd (__mmask8 __U
, __m512d __A
, const int __R
)
1706 return (__m512d
) __builtin_ia32_sqrtpd512_mask ((__v8df
) __A
,
1708 _mm512_setzero_pd (),
1709 (__mmask8
) __U
, __R
);
1712 extern __inline __m512
1713 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1714 _mm512_sqrt_round_ps (__m512 __A
, const int __R
)
1716 return (__m512
) __builtin_ia32_sqrtps512_mask ((__v16sf
) __A
,
1718 _mm512_undefined_ps (),
1719 (__mmask16
) -1, __R
);
1722 extern __inline __m512
1723 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1724 _mm512_mask_sqrt_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, const int __R
)
1726 return (__m512
) __builtin_ia32_sqrtps512_mask ((__v16sf
) __A
,
1728 (__mmask16
) __U
, __R
);
1731 extern __inline __m512
1732 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1733 _mm512_maskz_sqrt_round_ps (__mmask16 __U
, __m512 __A
, const int __R
)
1735 return (__m512
) __builtin_ia32_sqrtps512_mask ((__v16sf
) __A
,
1737 _mm512_setzero_ps (),
1738 (__mmask16
) __U
, __R
);
1741 extern __inline __m128d
1742 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1743 _mm_sqrt_round_sd (__m128d __A
, __m128d __B
, const int __R
)
1745 return (__m128d
) __builtin_ia32_sqrtsd_round ((__v2df
) __B
,
1750 extern __inline __m128
1751 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1752 _mm_sqrt_round_ss (__m128 __A
, __m128 __B
, const int __R
)
1754 return (__m128
) __builtin_ia32_sqrtss_round ((__v4sf
) __B
,
1759 #define _mm512_sqrt_round_pd(A, C) \
1760 (__m512d)__builtin_ia32_sqrtpd512_mask(A, (__v8df)_mm512_undefined_pd(), -1, C)
1762 #define _mm512_mask_sqrt_round_pd(W, U, A, C) \
1763 (__m512d)__builtin_ia32_sqrtpd512_mask(A, W, U, C)
1765 #define _mm512_maskz_sqrt_round_pd(U, A, C) \
1766 (__m512d)__builtin_ia32_sqrtpd512_mask(A, (__v8df)_mm512_setzero_pd(), U, C)
1768 #define _mm512_sqrt_round_ps(A, C) \
1769 (__m512)__builtin_ia32_sqrtps512_mask(A, (__v16sf)_mm512_undefined_ps(), -1, C)
1771 #define _mm512_mask_sqrt_round_ps(W, U, A, C) \
1772 (__m512)__builtin_ia32_sqrtps512_mask(A, W, U, C)
1774 #define _mm512_maskz_sqrt_round_ps(U, A, C) \
1775 (__m512)__builtin_ia32_sqrtps512_mask(A, (__v16sf)_mm512_setzero_ps(), U, C)
1777 #define _mm_sqrt_round_sd(A, B, C) \
1778 (__m128d)__builtin_ia32_sqrtsd_round(A, B, C)
1780 #define _mm_sqrt_round_ss(A, B, C) \
1781 (__m128)__builtin_ia32_sqrtss_round(A, B, C)
1784 extern __inline __m512i
1785 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1786 _mm512_cvtepi8_epi32 (__m128i __A
)
1788 return (__m512i
) __builtin_ia32_pmovsxbd512_mask ((__v16qi
) __A
,
1790 _mm512_undefined_epi32 (),
1794 extern __inline __m512i
1795 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1796 _mm512_mask_cvtepi8_epi32 (__m512i __W
, __mmask16 __U
, __m128i __A
)
1798 return (__m512i
) __builtin_ia32_pmovsxbd512_mask ((__v16qi
) __A
,
1803 extern __inline __m512i
1804 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1805 _mm512_maskz_cvtepi8_epi32 (__mmask16 __U
, __m128i __A
)
1807 return (__m512i
) __builtin_ia32_pmovsxbd512_mask ((__v16qi
) __A
,
1809 _mm512_setzero_si512 (),
1813 extern __inline __m512i
1814 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1815 _mm512_cvtepi8_epi64 (__m128i __A
)
1817 return (__m512i
) __builtin_ia32_pmovsxbq512_mask ((__v16qi
) __A
,
1819 _mm512_undefined_epi32 (),
1823 extern __inline __m512i
1824 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1825 _mm512_mask_cvtepi8_epi64 (__m512i __W
, __mmask8 __U
, __m128i __A
)
1827 return (__m512i
) __builtin_ia32_pmovsxbq512_mask ((__v16qi
) __A
,
1832 extern __inline __m512i
1833 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1834 _mm512_maskz_cvtepi8_epi64 (__mmask8 __U
, __m128i __A
)
1836 return (__m512i
) __builtin_ia32_pmovsxbq512_mask ((__v16qi
) __A
,
1838 _mm512_setzero_si512 (),
1842 extern __inline __m512i
1843 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1844 _mm512_cvtepi16_epi32 (__m256i __A
)
1846 return (__m512i
) __builtin_ia32_pmovsxwd512_mask ((__v16hi
) __A
,
1848 _mm512_undefined_epi32 (),
1852 extern __inline __m512i
1853 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1854 _mm512_mask_cvtepi16_epi32 (__m512i __W
, __mmask16 __U
, __m256i __A
)
1856 return (__m512i
) __builtin_ia32_pmovsxwd512_mask ((__v16hi
) __A
,
1861 extern __inline __m512i
1862 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1863 _mm512_maskz_cvtepi16_epi32 (__mmask16 __U
, __m256i __A
)
1865 return (__m512i
) __builtin_ia32_pmovsxwd512_mask ((__v16hi
) __A
,
1867 _mm512_setzero_si512 (),
1871 extern __inline __m512i
1872 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1873 _mm512_cvtepi16_epi64 (__m128i __A
)
1875 return (__m512i
) __builtin_ia32_pmovsxwq512_mask ((__v8hi
) __A
,
1877 _mm512_undefined_epi32 (),
1881 extern __inline __m512i
1882 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1883 _mm512_mask_cvtepi16_epi64 (__m512i __W
, __mmask8 __U
, __m128i __A
)
1885 return (__m512i
) __builtin_ia32_pmovsxwq512_mask ((__v8hi
) __A
,
1890 extern __inline __m512i
1891 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1892 _mm512_maskz_cvtepi16_epi64 (__mmask8 __U
, __m128i __A
)
1894 return (__m512i
) __builtin_ia32_pmovsxwq512_mask ((__v8hi
) __A
,
1896 _mm512_setzero_si512 (),
1900 extern __inline __m512i
1901 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1902 _mm512_cvtepi32_epi64 (__m256i __X
)
1904 return (__m512i
) __builtin_ia32_pmovsxdq512_mask ((__v8si
) __X
,
1906 _mm512_undefined_epi32 (),
1910 extern __inline __m512i
1911 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1912 _mm512_mask_cvtepi32_epi64 (__m512i __W
, __mmask8 __U
, __m256i __X
)
1914 return (__m512i
) __builtin_ia32_pmovsxdq512_mask ((__v8si
) __X
,
1919 extern __inline __m512i
1920 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1921 _mm512_maskz_cvtepi32_epi64 (__mmask8 __U
, __m256i __X
)
1923 return (__m512i
) __builtin_ia32_pmovsxdq512_mask ((__v8si
) __X
,
1925 _mm512_setzero_si512 (),
1929 extern __inline __m512i
1930 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1931 _mm512_cvtepu8_epi32 (__m128i __A
)
1933 return (__m512i
) __builtin_ia32_pmovzxbd512_mask ((__v16qi
) __A
,
1935 _mm512_undefined_epi32 (),
1939 extern __inline __m512i
1940 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1941 _mm512_mask_cvtepu8_epi32 (__m512i __W
, __mmask16 __U
, __m128i __A
)
1943 return (__m512i
) __builtin_ia32_pmovzxbd512_mask ((__v16qi
) __A
,
1948 extern __inline __m512i
1949 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1950 _mm512_maskz_cvtepu8_epi32 (__mmask16 __U
, __m128i __A
)
1952 return (__m512i
) __builtin_ia32_pmovzxbd512_mask ((__v16qi
) __A
,
1954 _mm512_setzero_si512 (),
1958 extern __inline __m512i
1959 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1960 _mm512_cvtepu8_epi64 (__m128i __A
)
1962 return (__m512i
) __builtin_ia32_pmovzxbq512_mask ((__v16qi
) __A
,
1964 _mm512_undefined_epi32 (),
1968 extern __inline __m512i
1969 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1970 _mm512_mask_cvtepu8_epi64 (__m512i __W
, __mmask8 __U
, __m128i __A
)
1972 return (__m512i
) __builtin_ia32_pmovzxbq512_mask ((__v16qi
) __A
,
1977 extern __inline __m512i
1978 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1979 _mm512_maskz_cvtepu8_epi64 (__mmask8 __U
, __m128i __A
)
1981 return (__m512i
) __builtin_ia32_pmovzxbq512_mask ((__v16qi
) __A
,
1983 _mm512_setzero_si512 (),
1987 extern __inline __m512i
1988 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1989 _mm512_cvtepu16_epi32 (__m256i __A
)
1991 return (__m512i
) __builtin_ia32_pmovzxwd512_mask ((__v16hi
) __A
,
1993 _mm512_undefined_epi32 (),
1997 extern __inline __m512i
1998 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1999 _mm512_mask_cvtepu16_epi32 (__m512i __W
, __mmask16 __U
, __m256i __A
)
2001 return (__m512i
) __builtin_ia32_pmovzxwd512_mask ((__v16hi
) __A
,
2006 extern __inline __m512i
2007 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2008 _mm512_maskz_cvtepu16_epi32 (__mmask16 __U
, __m256i __A
)
2010 return (__m512i
) __builtin_ia32_pmovzxwd512_mask ((__v16hi
) __A
,
2012 _mm512_setzero_si512 (),
2016 extern __inline __m512i
2017 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2018 _mm512_cvtepu16_epi64 (__m128i __A
)
2020 return (__m512i
) __builtin_ia32_pmovzxwq512_mask ((__v8hi
) __A
,
2022 _mm512_undefined_epi32 (),
2026 extern __inline __m512i
2027 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2028 _mm512_mask_cvtepu16_epi64 (__m512i __W
, __mmask8 __U
, __m128i __A
)
2030 return (__m512i
) __builtin_ia32_pmovzxwq512_mask ((__v8hi
) __A
,
2035 extern __inline __m512i
2036 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2037 _mm512_maskz_cvtepu16_epi64 (__mmask8 __U
, __m128i __A
)
2039 return (__m512i
) __builtin_ia32_pmovzxwq512_mask ((__v8hi
) __A
,
2041 _mm512_setzero_si512 (),
2045 extern __inline __m512i
2046 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2047 _mm512_cvtepu32_epi64 (__m256i __X
)
2049 return (__m512i
) __builtin_ia32_pmovzxdq512_mask ((__v8si
) __X
,
2051 _mm512_undefined_epi32 (),
2055 extern __inline __m512i
2056 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2057 _mm512_mask_cvtepu32_epi64 (__m512i __W
, __mmask8 __U
, __m256i __X
)
2059 return (__m512i
) __builtin_ia32_pmovzxdq512_mask ((__v8si
) __X
,
2064 extern __inline __m512i
2065 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2066 _mm512_maskz_cvtepu32_epi64 (__mmask8 __U
, __m256i __X
)
2068 return (__m512i
) __builtin_ia32_pmovzxdq512_mask ((__v8si
) __X
,
2070 _mm512_setzero_si512 (),
2075 extern __inline __m512d
2076 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2077 _mm512_add_round_pd (__m512d __A
, __m512d __B
, const int __R
)
2079 return (__m512d
) __builtin_ia32_addpd512_mask ((__v8df
) __A
,
2082 _mm512_undefined_pd (),
2083 (__mmask8
) -1, __R
);
2086 extern __inline __m512d
2087 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2088 _mm512_mask_add_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
2089 __m512d __B
, const int __R
)
2091 return (__m512d
) __builtin_ia32_addpd512_mask ((__v8df
) __A
,
2094 (__mmask8
) __U
, __R
);
2097 extern __inline __m512d
2098 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2099 _mm512_maskz_add_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2102 return (__m512d
) __builtin_ia32_addpd512_mask ((__v8df
) __A
,
2105 _mm512_setzero_pd (),
2106 (__mmask8
) __U
, __R
);
2109 extern __inline __m512
2110 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2111 _mm512_add_round_ps (__m512 __A
, __m512 __B
, const int __R
)
2113 return (__m512
) __builtin_ia32_addps512_mask ((__v16sf
) __A
,
2116 _mm512_undefined_ps (),
2117 (__mmask16
) -1, __R
);
2120 extern __inline __m512
2121 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2122 _mm512_mask_add_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
2123 __m512 __B
, const int __R
)
2125 return (__m512
) __builtin_ia32_addps512_mask ((__v16sf
) __A
,
2128 (__mmask16
) __U
, __R
);
2131 extern __inline __m512
2132 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2133 _mm512_maskz_add_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, const int __R
)
2135 return (__m512
) __builtin_ia32_addps512_mask ((__v16sf
) __A
,
2138 _mm512_setzero_ps (),
2139 (__mmask16
) __U
, __R
);
2142 extern __inline __m512d
2143 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2144 _mm512_sub_round_pd (__m512d __A
, __m512d __B
, const int __R
)
2146 return (__m512d
) __builtin_ia32_subpd512_mask ((__v8df
) __A
,
2149 _mm512_undefined_pd (),
2150 (__mmask8
) -1, __R
);
2153 extern __inline __m512d
2154 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2155 _mm512_mask_sub_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
2156 __m512d __B
, const int __R
)
2158 return (__m512d
) __builtin_ia32_subpd512_mask ((__v8df
) __A
,
2161 (__mmask8
) __U
, __R
);
2164 extern __inline __m512d
2165 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2166 _mm512_maskz_sub_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2169 return (__m512d
) __builtin_ia32_subpd512_mask ((__v8df
) __A
,
2172 _mm512_setzero_pd (),
2173 (__mmask8
) __U
, __R
);
2176 extern __inline __m512
2177 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2178 _mm512_sub_round_ps (__m512 __A
, __m512 __B
, const int __R
)
2180 return (__m512
) __builtin_ia32_subps512_mask ((__v16sf
) __A
,
2183 _mm512_undefined_ps (),
2184 (__mmask16
) -1, __R
);
2187 extern __inline __m512
2188 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2189 _mm512_mask_sub_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
2190 __m512 __B
, const int __R
)
2192 return (__m512
) __builtin_ia32_subps512_mask ((__v16sf
) __A
,
2195 (__mmask16
) __U
, __R
);
2198 extern __inline __m512
2199 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2200 _mm512_maskz_sub_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, const int __R
)
2202 return (__m512
) __builtin_ia32_subps512_mask ((__v16sf
) __A
,
2205 _mm512_setzero_ps (),
2206 (__mmask16
) __U
, __R
);
2209 #define _mm512_add_round_pd(A, B, C) \
2210 (__m512d)__builtin_ia32_addpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C)
2212 #define _mm512_mask_add_round_pd(W, U, A, B, C) \
2213 (__m512d)__builtin_ia32_addpd512_mask(A, B, W, U, C)
2215 #define _mm512_maskz_add_round_pd(U, A, B, C) \
2216 (__m512d)__builtin_ia32_addpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
2218 #define _mm512_add_round_ps(A, B, C) \
2219 (__m512)__builtin_ia32_addps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C)
2221 #define _mm512_mask_add_round_ps(W, U, A, B, C) \
2222 (__m512)__builtin_ia32_addps512_mask(A, B, W, U, C)
2224 #define _mm512_maskz_add_round_ps(U, A, B, C) \
2225 (__m512)__builtin_ia32_addps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
2227 #define _mm512_sub_round_pd(A, B, C) \
2228 (__m512d)__builtin_ia32_subpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C)
2230 #define _mm512_mask_sub_round_pd(W, U, A, B, C) \
2231 (__m512d)__builtin_ia32_subpd512_mask(A, B, W, U, C)
2233 #define _mm512_maskz_sub_round_pd(U, A, B, C) \
2234 (__m512d)__builtin_ia32_subpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
2236 #define _mm512_sub_round_ps(A, B, C) \
2237 (__m512)__builtin_ia32_subps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C)
2239 #define _mm512_mask_sub_round_ps(W, U, A, B, C) \
2240 (__m512)__builtin_ia32_subps512_mask(A, B, W, U, C)
2242 #define _mm512_maskz_sub_round_ps(U, A, B, C) \
2243 (__m512)__builtin_ia32_subps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
2247 extern __inline __m512d
2248 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2249 _mm512_mul_round_pd (__m512d __A
, __m512d __B
, const int __R
)
2251 return (__m512d
) __builtin_ia32_mulpd512_mask ((__v8df
) __A
,
2254 _mm512_undefined_pd (),
2255 (__mmask8
) -1, __R
);
2258 extern __inline __m512d
2259 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2260 _mm512_mask_mul_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
2261 __m512d __B
, const int __R
)
2263 return (__m512d
) __builtin_ia32_mulpd512_mask ((__v8df
) __A
,
2266 (__mmask8
) __U
, __R
);
2269 extern __inline __m512d
2270 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2271 _mm512_maskz_mul_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2274 return (__m512d
) __builtin_ia32_mulpd512_mask ((__v8df
) __A
,
2277 _mm512_setzero_pd (),
2278 (__mmask8
) __U
, __R
);
2281 extern __inline __m512
2282 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2283 _mm512_mul_round_ps (__m512 __A
, __m512 __B
, const int __R
)
2285 return (__m512
) __builtin_ia32_mulps512_mask ((__v16sf
) __A
,
2288 _mm512_undefined_ps (),
2289 (__mmask16
) -1, __R
);
2292 extern __inline __m512
2293 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2294 _mm512_mask_mul_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
2295 __m512 __B
, const int __R
)
2297 return (__m512
) __builtin_ia32_mulps512_mask ((__v16sf
) __A
,
2300 (__mmask16
) __U
, __R
);
2303 extern __inline __m512
2304 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2305 _mm512_maskz_mul_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, const int __R
)
2307 return (__m512
) __builtin_ia32_mulps512_mask ((__v16sf
) __A
,
2310 _mm512_setzero_ps (),
2311 (__mmask16
) __U
, __R
);
2314 extern __inline __m512d
2315 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2316 _mm512_div_round_pd (__m512d __M
, __m512d __V
, const int __R
)
2318 return (__m512d
) __builtin_ia32_divpd512_mask ((__v8df
) __M
,
2321 _mm512_undefined_pd (),
2322 (__mmask8
) -1, __R
);
2325 extern __inline __m512d
2326 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2327 _mm512_mask_div_round_pd (__m512d __W
, __mmask8 __U
, __m512d __M
,
2328 __m512d __V
, const int __R
)
2330 return (__m512d
) __builtin_ia32_divpd512_mask ((__v8df
) __M
,
2333 (__mmask8
) __U
, __R
);
2336 extern __inline __m512d
2337 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2338 _mm512_maskz_div_round_pd (__mmask8 __U
, __m512d __M
, __m512d __V
,
2341 return (__m512d
) __builtin_ia32_divpd512_mask ((__v8df
) __M
,
2344 _mm512_setzero_pd (),
2345 (__mmask8
) __U
, __R
);
2348 extern __inline __m512
2349 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2350 _mm512_div_round_ps (__m512 __A
, __m512 __B
, const int __R
)
2352 return (__m512
) __builtin_ia32_divps512_mask ((__v16sf
) __A
,
2355 _mm512_undefined_ps (),
2356 (__mmask16
) -1, __R
);
2359 extern __inline __m512
2360 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2361 _mm512_mask_div_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
2362 __m512 __B
, const int __R
)
2364 return (__m512
) __builtin_ia32_divps512_mask ((__v16sf
) __A
,
2367 (__mmask16
) __U
, __R
);
2370 extern __inline __m512
2371 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2372 _mm512_maskz_div_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, const int __R
)
2374 return (__m512
) __builtin_ia32_divps512_mask ((__v16sf
) __A
,
2377 _mm512_setzero_ps (),
2378 (__mmask16
) __U
, __R
);
2381 extern __inline __m128d
2382 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2383 _mm_mul_round_sd (__m128d __A
, __m128d __B
, const int __R
)
2385 return (__m128d
) __builtin_ia32_mulsd_round ((__v2df
) __A
,
2390 extern __inline __m128
2391 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2392 _mm_mul_round_ss (__m128 __A
, __m128 __B
, const int __R
)
2394 return (__m128
) __builtin_ia32_mulss_round ((__v4sf
) __A
,
2399 extern __inline __m128d
2400 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2401 _mm_div_round_sd (__m128d __A
, __m128d __B
, const int __R
)
2403 return (__m128d
) __builtin_ia32_divsd_round ((__v2df
) __A
,
2408 extern __inline __m128
2409 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2410 _mm_div_round_ss (__m128 __A
, __m128 __B
, const int __R
)
2412 return (__m128
) __builtin_ia32_divss_round ((__v4sf
) __A
,
2418 #define _mm512_mul_round_pd(A, B, C) \
2419 (__m512d)__builtin_ia32_mulpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C)
2421 #define _mm512_mask_mul_round_pd(W, U, A, B, C) \
2422 (__m512d)__builtin_ia32_mulpd512_mask(A, B, W, U, C)
2424 #define _mm512_maskz_mul_round_pd(U, A, B, C) \
2425 (__m512d)__builtin_ia32_mulpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
2427 #define _mm512_mul_round_ps(A, B, C) \
2428 (__m512)__builtin_ia32_mulps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C)
2430 #define _mm512_mask_mul_round_ps(W, U, A, B, C) \
2431 (__m512)__builtin_ia32_mulps512_mask(A, B, W, U, C)
2433 #define _mm512_maskz_mul_round_ps(U, A, B, C) \
2434 (__m512)__builtin_ia32_mulps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
2436 #define _mm512_div_round_pd(A, B, C) \
2437 (__m512d)__builtin_ia32_divpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C)
2439 #define _mm512_mask_div_round_pd(W, U, A, B, C) \
2440 (__m512d)__builtin_ia32_divpd512_mask(A, B, W, U, C)
2442 #define _mm512_maskz_div_round_pd(U, A, B, C) \
2443 (__m512d)__builtin_ia32_divpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
2445 #define _mm512_div_round_ps(A, B, C) \
2446 (__m512)__builtin_ia32_divps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C)
2448 #define _mm512_mask_div_round_ps(W, U, A, B, C) \
2449 (__m512)__builtin_ia32_divps512_mask(A, B, W, U, C)
2451 #define _mm512_maskz_div_round_ps(U, A, B, C) \
2452 (__m512)__builtin_ia32_divps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
2454 #define _mm_mul_round_sd(A, B, C) \
2455 (__m128d)__builtin_ia32_mulsd_round(A, B, C)
2457 #define _mm_mul_round_ss(A, B, C) \
2458 (__m128)__builtin_ia32_mulss_round(A, B, C)
2460 #define _mm_div_round_sd(A, B, C) \
2461 (__m128d)__builtin_ia32_divsd_round(A, B, C)
2463 #define _mm_div_round_ss(A, B, C) \
2464 (__m128)__builtin_ia32_divss_round(A, B, C)
2468 extern __inline __m512d
2469 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2470 _mm512_max_round_pd (__m512d __A
, __m512d __B
, const int __R
)
2472 return (__m512d
) __builtin_ia32_maxpd512_mask ((__v8df
) __A
,
2475 _mm512_undefined_pd (),
2476 (__mmask8
) -1, __R
);
2479 extern __inline __m512d
2480 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2481 _mm512_mask_max_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
2482 __m512d __B
, const int __R
)
2484 return (__m512d
) __builtin_ia32_maxpd512_mask ((__v8df
) __A
,
2487 (__mmask8
) __U
, __R
);
2490 extern __inline __m512d
2491 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2492 _mm512_maskz_max_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2495 return (__m512d
) __builtin_ia32_maxpd512_mask ((__v8df
) __A
,
2498 _mm512_setzero_pd (),
2499 (__mmask8
) __U
, __R
);
2502 extern __inline __m512
2503 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2504 _mm512_max_round_ps (__m512 __A
, __m512 __B
, const int __R
)
2506 return (__m512
) __builtin_ia32_maxps512_mask ((__v16sf
) __A
,
2509 _mm512_undefined_ps (),
2510 (__mmask16
) -1, __R
);
2513 extern __inline __m512
2514 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2515 _mm512_mask_max_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
2516 __m512 __B
, const int __R
)
2518 return (__m512
) __builtin_ia32_maxps512_mask ((__v16sf
) __A
,
2521 (__mmask16
) __U
, __R
);
2524 extern __inline __m512
2525 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2526 _mm512_maskz_max_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, const int __R
)
2528 return (__m512
) __builtin_ia32_maxps512_mask ((__v16sf
) __A
,
2531 _mm512_setzero_ps (),
2532 (__mmask16
) __U
, __R
);
2535 extern __inline __m512d
2536 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2537 _mm512_min_round_pd (__m512d __A
, __m512d __B
, const int __R
)
2539 return (__m512d
) __builtin_ia32_minpd512_mask ((__v8df
) __A
,
2542 _mm512_undefined_pd (),
2543 (__mmask8
) -1, __R
);
2546 extern __inline __m512d
2547 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2548 _mm512_mask_min_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
2549 __m512d __B
, const int __R
)
2551 return (__m512d
) __builtin_ia32_minpd512_mask ((__v8df
) __A
,
2554 (__mmask8
) __U
, __R
);
2557 extern __inline __m512d
2558 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2559 _mm512_maskz_min_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2562 return (__m512d
) __builtin_ia32_minpd512_mask ((__v8df
) __A
,
2565 _mm512_setzero_pd (),
2566 (__mmask8
) __U
, __R
);
2569 extern __inline __m512
2570 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2571 _mm512_min_round_ps (__m512 __A
, __m512 __B
, const int __R
)
2573 return (__m512
) __builtin_ia32_minps512_mask ((__v16sf
) __A
,
2576 _mm512_undefined_ps (),
2577 (__mmask16
) -1, __R
);
2580 extern __inline __m512
2581 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2582 _mm512_mask_min_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
2583 __m512 __B
, const int __R
)
2585 return (__m512
) __builtin_ia32_minps512_mask ((__v16sf
) __A
,
2588 (__mmask16
) __U
, __R
);
2591 extern __inline __m512
2592 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2593 _mm512_maskz_min_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, const int __R
)
2595 return (__m512
) __builtin_ia32_minps512_mask ((__v16sf
) __A
,
2598 _mm512_setzero_ps (),
2599 (__mmask16
) __U
, __R
);
2602 #define _mm512_max_round_pd(A, B, R) \
2603 (__m512d)__builtin_ia32_maxpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, R)
2605 #define _mm512_mask_max_round_pd(W, U, A, B, R) \
2606 (__m512d)__builtin_ia32_maxpd512_mask(A, B, W, U, R)
2608 #define _mm512_maskz_max_round_pd(U, A, B, R) \
2609 (__m512d)__builtin_ia32_maxpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, R)
2611 #define _mm512_max_round_ps(A, B, R) \
2612 (__m512)__builtin_ia32_maxps512_mask(A, B, (__v16sf)_mm512_undefined_pd(), -1, R)
2614 #define _mm512_mask_max_round_ps(W, U, A, B, R) \
2615 (__m512)__builtin_ia32_maxps512_mask(A, B, W, U, R)
2617 #define _mm512_maskz_max_round_ps(U, A, B, R) \
2618 (__m512)__builtin_ia32_maxps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, R)
2620 #define _mm512_min_round_pd(A, B, R) \
2621 (__m512d)__builtin_ia32_minpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, R)
2623 #define _mm512_mask_min_round_pd(W, U, A, B, R) \
2624 (__m512d)__builtin_ia32_minpd512_mask(A, B, W, U, R)
2626 #define _mm512_maskz_min_round_pd(U, A, B, R) \
2627 (__m512d)__builtin_ia32_minpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, R)
2629 #define _mm512_min_round_ps(A, B, R) \
2630 (__m512)__builtin_ia32_minps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, R)
2632 #define _mm512_mask_min_round_ps(W, U, A, B, R) \
2633 (__m512)__builtin_ia32_minps512_mask(A, B, W, U, R)
2635 #define _mm512_maskz_min_round_ps(U, A, B, R) \
2636 (__m512)__builtin_ia32_minps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, R)
2640 extern __inline __m512d
2641 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2642 _mm512_scalef_round_pd (__m512d __A
, __m512d __B
, const int __R
)
2644 return (__m512d
) __builtin_ia32_scalefpd512_mask ((__v8df
) __A
,
2647 _mm512_undefined_pd (),
2648 (__mmask8
) -1, __R
);
2651 extern __inline __m512d
2652 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2653 _mm512_mask_scalef_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
2654 __m512d __B
, const int __R
)
2656 return (__m512d
) __builtin_ia32_scalefpd512_mask ((__v8df
) __A
,
2659 (__mmask8
) __U
, __R
);
2662 extern __inline __m512d
2663 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2664 _mm512_maskz_scalef_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2667 return (__m512d
) __builtin_ia32_scalefpd512_mask ((__v8df
) __A
,
2670 _mm512_setzero_pd (),
2671 (__mmask8
) __U
, __R
);
2674 extern __inline __m512
2675 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2676 _mm512_scalef_round_ps (__m512 __A
, __m512 __B
, const int __R
)
2678 return (__m512
) __builtin_ia32_scalefps512_mask ((__v16sf
) __A
,
2681 _mm512_undefined_ps (),
2682 (__mmask16
) -1, __R
);
2685 extern __inline __m512
2686 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2687 _mm512_mask_scalef_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
2688 __m512 __B
, const int __R
)
2690 return (__m512
) __builtin_ia32_scalefps512_mask ((__v16sf
) __A
,
2693 (__mmask16
) __U
, __R
);
2696 extern __inline __m512
2697 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2698 _mm512_maskz_scalef_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
2701 return (__m512
) __builtin_ia32_scalefps512_mask ((__v16sf
) __A
,
2704 _mm512_setzero_ps (),
2705 (__mmask16
) __U
, __R
);
2708 extern __inline __m128d
2709 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2710 _mm_scalef_round_sd (__m128d __A
, __m128d __B
, const int __R
)
2712 return (__m128d
) __builtin_ia32_scalefsd_round ((__v2df
) __A
,
2717 extern __inline __m128
2718 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2719 _mm_scalef_round_ss (__m128 __A
, __m128 __B
, const int __R
)
2721 return (__m128
) __builtin_ia32_scalefss_round ((__v4sf
) __A
,
2726 #define _mm512_scalef_round_pd(A, B, C) \
2727 (__m512d)__builtin_ia32_scalefpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C)
2729 #define _mm512_mask_scalef_round_pd(W, U, A, B, C) \
2730 (__m512d)__builtin_ia32_scalefpd512_mask(A, B, W, U, C)
2732 #define _mm512_maskz_scalef_round_pd(U, A, B, C) \
2733 (__m512d)__builtin_ia32_scalefpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
2735 #define _mm512_scalef_round_ps(A, B, C) \
2736 (__m512)__builtin_ia32_scalefps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C)
2738 #define _mm512_mask_scalef_round_ps(W, U, A, B, C) \
2739 (__m512)__builtin_ia32_scalefps512_mask(A, B, W, U, C)
2741 #define _mm512_maskz_scalef_round_ps(U, A, B, C) \
2742 (__m512)__builtin_ia32_scalefps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
2744 #define _mm_scalef_round_sd(A, B, C) \
2745 (__m128d)__builtin_ia32_scalefsd_round(A, B, C)
2747 #define _mm_scalef_round_ss(A, B, C) \
2748 (__m128)__builtin_ia32_scalefss_round(A, B, C)
2752 extern __inline __m512d
2753 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2754 _mm512_fmadd_round_pd (__m512d __A
, __m512d __B
, __m512d __C
, const int __R
)
2756 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
2759 (__mmask8
) -1, __R
);
2762 extern __inline __m512d
2763 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2764 _mm512_mask_fmadd_round_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
2765 __m512d __C
, const int __R
)
2767 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
2770 (__mmask8
) __U
, __R
);
2773 extern __inline __m512d
2774 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2775 _mm512_mask3_fmadd_round_pd (__m512d __A
, __m512d __B
, __m512d __C
,
2776 __mmask8 __U
, const int __R
)
2778 return (__m512d
) __builtin_ia32_vfmaddpd512_mask3 ((__v8df
) __A
,
2781 (__mmask8
) __U
, __R
);
2784 extern __inline __m512d
2785 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2786 _mm512_maskz_fmadd_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2787 __m512d __C
, const int __R
)
2789 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz ((__v8df
) __A
,
2792 (__mmask8
) __U
, __R
);
2795 extern __inline __m512
2796 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2797 _mm512_fmadd_round_ps (__m512 __A
, __m512 __B
, __m512 __C
, const int __R
)
2799 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
2802 (__mmask16
) -1, __R
);
2805 extern __inline __m512
2806 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2807 _mm512_mask_fmadd_round_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
2808 __m512 __C
, const int __R
)
2810 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
2813 (__mmask16
) __U
, __R
);
2816 extern __inline __m512
2817 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2818 _mm512_mask3_fmadd_round_ps (__m512 __A
, __m512 __B
, __m512 __C
,
2819 __mmask16 __U
, const int __R
)
2821 return (__m512
) __builtin_ia32_vfmaddps512_mask3 ((__v16sf
) __A
,
2824 (__mmask16
) __U
, __R
);
2827 extern __inline __m512
2828 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2829 _mm512_maskz_fmadd_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
2830 __m512 __C
, const int __R
)
2832 return (__m512
) __builtin_ia32_vfmaddps512_maskz ((__v16sf
) __A
,
2835 (__mmask16
) __U
, __R
);
2838 extern __inline __m512d
2839 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2840 _mm512_fmsub_round_pd (__m512d __A
, __m512d __B
, __m512d __C
, const int __R
)
2842 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
2845 (__mmask8
) -1, __R
);
2848 extern __inline __m512d
2849 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2850 _mm512_mask_fmsub_round_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
2851 __m512d __C
, const int __R
)
2853 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
2856 (__mmask8
) __U
, __R
);
2859 extern __inline __m512d
2860 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2861 _mm512_mask3_fmsub_round_pd (__m512d __A
, __m512d __B
, __m512d __C
,
2862 __mmask8 __U
, const int __R
)
2864 return (__m512d
) __builtin_ia32_vfmsubpd512_mask3 ((__v8df
) __A
,
2867 (__mmask8
) __U
, __R
);
2870 extern __inline __m512d
2871 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2872 _mm512_maskz_fmsub_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2873 __m512d __C
, const int __R
)
2875 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz ((__v8df
) __A
,
2878 (__mmask8
) __U
, __R
);
2881 extern __inline __m512
2882 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2883 _mm512_fmsub_round_ps (__m512 __A
, __m512 __B
, __m512 __C
, const int __R
)
2885 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
2888 (__mmask16
) -1, __R
);
2891 extern __inline __m512
2892 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2893 _mm512_mask_fmsub_round_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
2894 __m512 __C
, const int __R
)
2896 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
2899 (__mmask16
) __U
, __R
);
2902 extern __inline __m512
2903 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2904 _mm512_mask3_fmsub_round_ps (__m512 __A
, __m512 __B
, __m512 __C
,
2905 __mmask16 __U
, const int __R
)
2907 return (__m512
) __builtin_ia32_vfmsubps512_mask3 ((__v16sf
) __A
,
2910 (__mmask16
) __U
, __R
);
2913 extern __inline __m512
2914 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2915 _mm512_maskz_fmsub_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
2916 __m512 __C
, const int __R
)
2918 return (__m512
) __builtin_ia32_vfmaddps512_maskz ((__v16sf
) __A
,
2921 (__mmask16
) __U
, __R
);
2924 extern __inline __m512d
2925 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2926 _mm512_fmaddsub_round_pd (__m512d __A
, __m512d __B
, __m512d __C
, const int __R
)
2928 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
2931 (__mmask8
) -1, __R
);
2934 extern __inline __m512d
2935 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2936 _mm512_mask_fmaddsub_round_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
2937 __m512d __C
, const int __R
)
2939 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
2942 (__mmask8
) __U
, __R
);
2945 extern __inline __m512d
2946 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2947 _mm512_mask3_fmaddsub_round_pd (__m512d __A
, __m512d __B
, __m512d __C
,
2948 __mmask8 __U
, const int __R
)
2950 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask3 ((__v8df
) __A
,
2953 (__mmask8
) __U
, __R
);
2956 extern __inline __m512d
2957 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2958 _mm512_maskz_fmaddsub_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2959 __m512d __C
, const int __R
)
2961 return (__m512d
) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df
) __A
,
2964 (__mmask8
) __U
, __R
);
2967 extern __inline __m512
2968 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2969 _mm512_fmaddsub_round_ps (__m512 __A
, __m512 __B
, __m512 __C
, const int __R
)
2971 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
2974 (__mmask16
) -1, __R
);
2977 extern __inline __m512
2978 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2979 _mm512_mask_fmaddsub_round_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
2980 __m512 __C
, const int __R
)
2982 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
2985 (__mmask16
) __U
, __R
);
2988 extern __inline __m512
2989 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2990 _mm512_mask3_fmaddsub_round_ps (__m512 __A
, __m512 __B
, __m512 __C
,
2991 __mmask16 __U
, const int __R
)
2993 return (__m512
) __builtin_ia32_vfmaddsubps512_mask3 ((__v16sf
) __A
,
2996 (__mmask16
) __U
, __R
);
2999 extern __inline __m512
3000 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3001 _mm512_maskz_fmaddsub_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
3002 __m512 __C
, const int __R
)
3004 return (__m512
) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf
) __A
,
3007 (__mmask16
) __U
, __R
);
3010 extern __inline __m512d
3011 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3012 _mm512_fmsubadd_round_pd (__m512d __A
, __m512d __B
, __m512d __C
, const int __R
)
3014 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
3017 (__mmask8
) -1, __R
);
3020 extern __inline __m512d
3021 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3022 _mm512_mask_fmsubadd_round_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
3023 __m512d __C
, const int __R
)
3025 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
3028 (__mmask8
) __U
, __R
);
3031 extern __inline __m512d
3032 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3033 _mm512_mask3_fmsubadd_round_pd (__m512d __A
, __m512d __B
, __m512d __C
,
3034 __mmask8 __U
, const int __R
)
3036 return (__m512d
) __builtin_ia32_vfmsubaddpd512_mask3 ((__v8df
) __A
,
3039 (__mmask8
) __U
, __R
);
3042 extern __inline __m512d
3043 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3044 _mm512_maskz_fmsubadd_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
3045 __m512d __C
, const int __R
)
3047 return (__m512d
) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df
) __A
,
3050 (__mmask8
) __U
, __R
);
3053 extern __inline __m512
3054 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3055 _mm512_fmsubadd_round_ps (__m512 __A
, __m512 __B
, __m512 __C
, const int __R
)
3057 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
3060 (__mmask16
) -1, __R
);
3063 extern __inline __m512
3064 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3065 _mm512_mask_fmsubadd_round_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
3066 __m512 __C
, const int __R
)
3068 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
3071 (__mmask16
) __U
, __R
);
3074 extern __inline __m512
3075 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3076 _mm512_mask3_fmsubadd_round_ps (__m512 __A
, __m512 __B
, __m512 __C
,
3077 __mmask16 __U
, const int __R
)
3079 return (__m512
) __builtin_ia32_vfmsubaddps512_mask3 ((__v16sf
) __A
,
3082 (__mmask16
) __U
, __R
);
3085 extern __inline __m512
3086 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3087 _mm512_maskz_fmsubadd_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
3088 __m512 __C
, const int __R
)
3090 return (__m512
) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf
) __A
,
3093 (__mmask16
) __U
, __R
);
3096 extern __inline __m512d
3097 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3098 _mm512_fnmadd_round_pd (__m512d __A
, __m512d __B
, __m512d __C
, const int __R
)
3100 return (__m512d
) __builtin_ia32_vfmaddpd512_mask (-(__v8df
) __A
,
3103 (__mmask8
) -1, __R
);
3106 extern __inline __m512d
3107 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3108 _mm512_mask_fnmadd_round_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
3109 __m512d __C
, const int __R
)
3111 return (__m512d
) __builtin_ia32_vfnmaddpd512_mask ((__v8df
) __A
,
3114 (__mmask8
) __U
, __R
);
3117 extern __inline __m512d
3118 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3119 _mm512_mask3_fnmadd_round_pd (__m512d __A
, __m512d __B
, __m512d __C
,
3120 __mmask8 __U
, const int __R
)
3122 return (__m512d
) __builtin_ia32_vfmaddpd512_mask3 (-(__v8df
) __A
,
3125 (__mmask8
) __U
, __R
);
3128 extern __inline __m512d
3129 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3130 _mm512_maskz_fnmadd_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
3131 __m512d __C
, const int __R
)
3133 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz (-(__v8df
) __A
,
3136 (__mmask8
) __U
, __R
);
3139 extern __inline __m512
3140 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3141 _mm512_fnmadd_round_ps (__m512 __A
, __m512 __B
, __m512 __C
, const int __R
)
3143 return (__m512
) __builtin_ia32_vfmaddps512_mask (-(__v16sf
) __A
,
3146 (__mmask16
) -1, __R
);
3149 extern __inline __m512
3150 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3151 _mm512_mask_fnmadd_round_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
3152 __m512 __C
, const int __R
)
3154 return (__m512
) __builtin_ia32_vfnmaddps512_mask ((__v16sf
) __A
,
3157 (__mmask16
) __U
, __R
);
3160 extern __inline __m512
3161 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3162 _mm512_mask3_fnmadd_round_ps (__m512 __A
, __m512 __B
, __m512 __C
,
3163 __mmask16 __U
, const int __R
)
3165 return (__m512
) __builtin_ia32_vfmaddps512_mask3 (-(__v16sf
) __A
,
3168 (__mmask16
) __U
, __R
);
3171 extern __inline __m512
3172 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3173 _mm512_maskz_fnmadd_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
3174 __m512 __C
, const int __R
)
3176 return (__m512
) __builtin_ia32_vfmaddps512_maskz (-(__v16sf
) __A
,
3179 (__mmask16
) __U
, __R
);
3182 extern __inline __m512d
3183 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3184 _mm512_fnmsub_round_pd (__m512d __A
, __m512d __B
, __m512d __C
, const int __R
)
3186 return (__m512d
) __builtin_ia32_vfmaddpd512_mask (-(__v8df
) __A
,
3189 (__mmask8
) -1, __R
);
3192 extern __inline __m512d
3193 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3194 _mm512_mask_fnmsub_round_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
3195 __m512d __C
, const int __R
)
3197 return (__m512d
) __builtin_ia32_vfnmsubpd512_mask ((__v8df
) __A
,
3200 (__mmask8
) __U
, __R
);
3203 extern __inline __m512d
3204 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3205 _mm512_mask3_fnmsub_round_pd (__m512d __A
, __m512d __B
, __m512d __C
,
3206 __mmask8 __U
, const int __R
)
3208 return (__m512d
) __builtin_ia32_vfnmsubpd512_mask3 ((__v8df
) __A
,
3211 (__mmask8
) __U
, __R
);
3214 extern __inline __m512d
3215 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3216 _mm512_maskz_fnmsub_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
3217 __m512d __C
, const int __R
)
3219 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz (-(__v8df
) __A
,
3222 (__mmask8
) __U
, __R
);
3225 extern __inline __m512
3226 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3227 _mm512_fnmsub_round_ps (__m512 __A
, __m512 __B
, __m512 __C
, const int __R
)
3229 return (__m512
) __builtin_ia32_vfmaddps512_mask (-(__v16sf
) __A
,
3232 (__mmask16
) -1, __R
);
3235 extern __inline __m512
3236 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3237 _mm512_mask_fnmsub_round_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
3238 __m512 __C
, const int __R
)
3240 return (__m512
) __builtin_ia32_vfnmsubps512_mask ((__v16sf
) __A
,
3243 (__mmask16
) __U
, __R
);
3246 extern __inline __m512
3247 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3248 _mm512_mask3_fnmsub_round_ps (__m512 __A
, __m512 __B
, __m512 __C
,
3249 __mmask16 __U
, const int __R
)
3251 return (__m512
) __builtin_ia32_vfnmsubps512_mask3 ((__v16sf
) __A
,
3254 (__mmask16
) __U
, __R
);
3257 extern __inline __m512
3258 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3259 _mm512_maskz_fnmsub_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
3260 __m512 __C
, const int __R
)
3262 return (__m512
) __builtin_ia32_vfmaddps512_maskz (-(__v16sf
) __A
,
3265 (__mmask16
) __U
, __R
);
3268 #define _mm512_fmadd_round_pd(A, B, C, R) \
3269 (__m512d)__builtin_ia32_vfmaddpd512_mask(A, B, C, -1, R)
3271 #define _mm512_mask_fmadd_round_pd(A, U, B, C, R) \
3272 (__m512d)__builtin_ia32_vfmaddpd512_mask(A, B, C, U, R)
3274 #define _mm512_mask3_fmadd_round_pd(A, B, C, U, R) \
3275 (__m512d)__builtin_ia32_vfmaddpd512_mask3(A, B, C, U, R)
3277 #define _mm512_maskz_fmadd_round_pd(U, A, B, C, R) \
3278 (__m512d)__builtin_ia32_vfmaddpd512_maskz(A, B, C, U, R)
3280 #define _mm512_fmadd_round_ps(A, B, C, R) \
3281 (__m512)__builtin_ia32_vfmaddps512_mask(A, B, C, -1, R)
3283 #define _mm512_mask_fmadd_round_ps(A, U, B, C, R) \
3284 (__m512)__builtin_ia32_vfmaddps512_mask(A, B, C, U, R)
3286 #define _mm512_mask3_fmadd_round_ps(A, B, C, U, R) \
3287 (__m512)__builtin_ia32_vfmaddps512_mask3(A, B, C, U, R)
3289 #define _mm512_maskz_fmadd_round_ps(U, A, B, C, R) \
3290 (__m512)__builtin_ia32_vfmaddps512_maskz(A, B, C, U, R)
3292 #define _mm512_fmsub_round_pd(A, B, C, R) \
3293 (__m512d)__builtin_ia32_vfmaddpd512_mask(A, B, -(C), -1, R)
3295 #define _mm512_mask_fmsub_round_pd(A, U, B, C, R) \
3296 (__m512d)__builtin_ia32_vfmaddpd512_mask(A, B, -(C), U, R)
3298 #define _mm512_mask3_fmsub_round_pd(A, B, C, U, R) \
3299 (__m512d)__builtin_ia32_vfmsubpd512_mask3(A, B, C, U, R)
3301 #define _mm512_maskz_fmsub_round_pd(U, A, B, C, R) \
3302 (__m512d)__builtin_ia32_vfmaddpd512_maskz(A, B, -(C), U, R)
3304 #define _mm512_fmsub_round_ps(A, B, C, R) \
3305 (__m512)__builtin_ia32_vfmaddps512_mask(A, B, -(C), -1, R)
3307 #define _mm512_mask_fmsub_round_ps(A, U, B, C, R) \
3308 (__m512)__builtin_ia32_vfmaddps512_mask(A, B, -(C), U, R)
3310 #define _mm512_mask3_fmsub_round_ps(A, B, C, U, R) \
3311 (__m512)__builtin_ia32_vfmsubps512_mask3(A, B, C, U, R)
3313 #define _mm512_maskz_fmsub_round_ps(U, A, B, C, R) \
3314 (__m512)__builtin_ia32_vfmaddps512_maskz(A, B, -(C), U, R)
3316 #define _mm512_fmaddsub_round_pd(A, B, C, R) \
3317 (__m512d)__builtin_ia32_vfmaddsubpd512_mask(A, B, C, -1, R)
3319 #define _mm512_mask_fmaddsub_round_pd(A, U, B, C, R) \
3320 (__m512d)__builtin_ia32_vfmaddpd512_mask(A, B, C, U, R)
3322 #define _mm512_mask3_fmaddsub_round_pd(A, B, C, U, R) \
3323 (__m512d)__builtin_ia32_vfmaddsubpd512_mask3(A, B, C, U, R)
3325 #define _mm512_maskz_fmaddsub_round_pd(U, A, B, C, R) \
3326 (__m512d)__builtin_ia32_vfmaddsubpd512_maskz(A, B, C, U, R)
3328 #define _mm512_fmaddsub_round_ps(A, B, C, R) \
3329 (__m512)__builtin_ia32_vfmaddsubps512_mask(A, B, C, -1, R)
3331 #define _mm512_mask_fmaddsub_round_ps(A, U, B, C, R) \
3332 (__m512)__builtin_ia32_vfmaddsubps512_mask(A, B, C, U, R)
3334 #define _mm512_mask3_fmaddsub_round_ps(A, B, C, U, R) \
3335 (__m512)__builtin_ia32_vfmaddsubps512_mask3(A, B, C, U, R)
3337 #define _mm512_maskz_fmaddsub_round_ps(U, A, B, C, R) \
3338 (__m512)__builtin_ia32_vfmaddsubps512_maskz(A, B, C, U, R)
3340 #define _mm512_fmsubadd_round_pd(A, B, C, R) \
3341 (__m512d)__builtin_ia32_vfmaddsubpd512_mask(A, B, -(C), -1, R)
3343 #define _mm512_mask_fmsubadd_round_pd(A, U, B, C, R) \
3344 (__m512d)__builtin_ia32_vfmaddsubpd512_mask(A, B, -(C), U, R)
3346 #define _mm512_mask3_fmsubadd_round_pd(A, B, C, U, R) \
3347 (__m512d)__builtin_ia32_vfmsubaddpd512_mask3(A, B, C, U, R)
3349 #define _mm512_maskz_fmsubadd_round_pd(U, A, B, C, R) \
3350 (__m512d)__builtin_ia32_vfmaddsubpd512_maskz(A, B, -(C), U, R)
3352 #define _mm512_fmsubadd_round_ps(A, B, C, R) \
3353 (__m512)__builtin_ia32_vfmaddsubps512_mask(A, B, -(C), -1, R)
3355 #define _mm512_mask_fmsubadd_round_ps(A, U, B, C, R) \
3356 (__m512)__builtin_ia32_vfmaddsubps512_mask(A, B, -(C), U, R)
3358 #define _mm512_mask3_fmsubadd_round_ps(A, B, C, U, R) \
3359 (__m512)__builtin_ia32_vfmsubaddps512_mask3(A, B, C, U, R)
3361 #define _mm512_maskz_fmsubadd_round_ps(U, A, B, C, R) \
3362 (__m512)__builtin_ia32_vfmaddsubps512_maskz(A, B, -(C), U, R)
3364 #define _mm512_fnmadd_round_pd(A, B, C, R) \
3365 (__m512d)__builtin_ia32_vfmaddpd512_mask(-(A), B, C, -1, R)
3367 #define _mm512_mask_fnmadd_round_pd(A, U, B, C, R) \
3368 (__m512d)__builtin_ia32_vfnmaddpd512_mask(-(A), B, C, U, R)
3370 #define _mm512_mask3_fnmadd_round_pd(A, B, C, U, R) \
3371 (__m512d)__builtin_ia32_vfmaddpd512_mask3(-(A), B, C, U, R)
3373 #define _mm512_maskz_fnmadd_round_pd(U, A, B, C, R) \
3374 (__m512d)__builtin_ia32_vfmaddpd512_maskz(-(A), B, C, U, R)
3376 #define _mm512_fnmadd_round_ps(A, B, C, R) \
3377 (__m512)__builtin_ia32_vfmaddps512_mask(-(A), B, C, -1, R)
3379 #define _mm512_mask_fnmadd_round_ps(A, U, B, C, R) \
3380 (__m512)__builtin_ia32_vfnmaddps512_mask(-(A), B, C, U, R)
3382 #define _mm512_mask3_fnmadd_round_ps(A, B, C, U, R) \
3383 (__m512)__builtin_ia32_vfmaddps512_mask3(-(A), B, C, U, R)
3385 #define _mm512_maskz_fnmadd_round_ps(U, A, B, C, R) \
3386 (__m512)__builtin_ia32_vfmaddps512_maskz(-(A), B, C, U, R)
3388 #define _mm512_fnmsub_round_pd(A, B, C, R) \
3389 (__m512d)__builtin_ia32_vfmaddpd512_mask(-(A), B, -(C), -1, R)
3391 #define _mm512_mask_fnmsub_round_pd(A, U, B, C, R) \
3392 (__m512d)__builtin_ia32_vfnmsubpd512_mask(A, B, C, U, R)
3394 #define _mm512_mask3_fnmsub_round_pd(A, B, C, U, R) \
3395 (__m512d)__builtin_ia32_vfnmsubpd512_mask3(A, B, C, U, R)
3397 #define _mm512_maskz_fnmsub_round_pd(U, A, B, C, R) \
3398 (__m512d)__builtin_ia32_vfmaddpd512_maskz(-(A), B, -(C), U, R)
3400 #define _mm512_fnmsub_round_ps(A, B, C, R) \
3401 (__m512)__builtin_ia32_vfmaddps512_mask(-(A), B, -(C), -1, R)
3403 #define _mm512_mask_fnmsub_round_ps(A, U, B, C, R) \
3404 (__m512)__builtin_ia32_vfnmsubps512_mask(A, B, C, U, R)
3406 #define _mm512_mask3_fnmsub_round_ps(A, B, C, U, R) \
3407 (__m512)__builtin_ia32_vfnmsubps512_mask3(A, B, C, U, R)
3409 #define _mm512_maskz_fnmsub_round_ps(U, A, B, C, R) \
3410 (__m512)__builtin_ia32_vfmaddps512_maskz(-(A), B, -(C), U, R)
3413 extern __inline __m512i
3414 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3415 _mm512_abs_epi64 (__m512i __A
)
3417 return (__m512i
) __builtin_ia32_pabsq512_mask ((__v8di
) __A
,
3419 _mm512_undefined_epi32 (),
3423 extern __inline __m512i
3424 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3425 _mm512_mask_abs_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
)
3427 return (__m512i
) __builtin_ia32_pabsq512_mask ((__v8di
) __A
,
3432 extern __inline __m512i
3433 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3434 _mm512_maskz_abs_epi64 (__mmask8 __U
, __m512i __A
)
3436 return (__m512i
) __builtin_ia32_pabsq512_mask ((__v8di
) __A
,
3438 _mm512_setzero_si512 (),
3442 extern __inline __m512i
3443 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3444 _mm512_abs_epi32 (__m512i __A
)
3446 return (__m512i
) __builtin_ia32_pabsd512_mask ((__v16si
) __A
,
3448 _mm512_undefined_epi32 (),
3452 extern __inline __m512i
3453 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3454 _mm512_mask_abs_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
)
3456 return (__m512i
) __builtin_ia32_pabsd512_mask ((__v16si
) __A
,
3461 extern __inline __m512i
3462 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3463 _mm512_maskz_abs_epi32 (__mmask16 __U
, __m512i __A
)
3465 return (__m512i
) __builtin_ia32_pabsd512_mask ((__v16si
) __A
,
3467 _mm512_setzero_si512 (),
3471 extern __inline __m512
3472 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3473 _mm512_broadcastss_ps (__m128 __A
)
3475 return (__m512
) __builtin_ia32_broadcastss512 ((__v4sf
) __A
,
3477 _mm512_undefined_ps (),
3481 extern __inline __m512
3482 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3483 _mm512_mask_broadcastss_ps (__m512 __O
, __mmask16 __M
, __m128 __A
)
3485 return (__m512
) __builtin_ia32_broadcastss512 ((__v4sf
) __A
,
3486 (__v16sf
) __O
, __M
);
3489 extern __inline __m512
3490 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3491 _mm512_maskz_broadcastss_ps (__mmask16 __M
, __m128 __A
)
3493 return (__m512
) __builtin_ia32_broadcastss512 ((__v4sf
) __A
,
3495 _mm512_setzero_ps (),
3499 extern __inline __m512d
3500 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3501 _mm512_broadcastsd_pd (__m128d __A
)
3503 return (__m512d
) __builtin_ia32_broadcastsd512 ((__v2df
) __A
,
3505 _mm512_undefined_pd (),
3509 extern __inline __m512d
3510 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3511 _mm512_mask_broadcastsd_pd (__m512d __O
, __mmask8 __M
, __m128d __A
)
3513 return (__m512d
) __builtin_ia32_broadcastsd512 ((__v2df
) __A
,
3517 extern __inline __m512d
3518 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3519 _mm512_maskz_broadcastsd_pd (__mmask8 __M
, __m128d __A
)
3521 return (__m512d
) __builtin_ia32_broadcastsd512 ((__v2df
) __A
,
3523 _mm512_setzero_pd (),
3527 extern __inline __m512i
3528 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3529 _mm512_broadcastd_epi32 (__m128i __A
)
3531 return (__m512i
) __builtin_ia32_pbroadcastd512 ((__v4si
) __A
,
3533 _mm512_undefined_epi32 (),
3537 extern __inline __m512i
3538 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3539 _mm512_mask_broadcastd_epi32 (__m512i __O
, __mmask16 __M
, __m128i __A
)
3541 return (__m512i
) __builtin_ia32_pbroadcastd512 ((__v4si
) __A
,
3542 (__v16si
) __O
, __M
);
3545 extern __inline __m512i
3546 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3547 _mm512_maskz_broadcastd_epi32 (__mmask16 __M
, __m128i __A
)
3549 return (__m512i
) __builtin_ia32_pbroadcastd512 ((__v4si
) __A
,
3551 _mm512_setzero_si512 (),
3555 extern __inline __m512i
3556 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3557 _mm512_set1_epi32 (int __A
)
3559 return (__m512i
) __builtin_ia32_pbroadcastd512_gpr_mask (__A
,
3561 _mm512_undefined_epi32 (),
3565 extern __inline __m512i
3566 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3567 _mm512_mask_set1_epi32 (__m512i __O
, __mmask16 __M
, int __A
)
3569 return (__m512i
) __builtin_ia32_pbroadcastd512_gpr_mask (__A
, (__v16si
) __O
,
3573 extern __inline __m512i
3574 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3575 _mm512_maskz_set1_epi32 (__mmask16 __M
, int __A
)
3578 __builtin_ia32_pbroadcastd512_gpr_mask (__A
,
3579 (__v16si
) _mm512_setzero_si512 (),
3583 extern __inline __m512i
3584 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3585 _mm512_broadcastq_epi64 (__m128i __A
)
3587 return (__m512i
) __builtin_ia32_pbroadcastq512 ((__v2di
) __A
,
3589 _mm512_undefined_epi32 (),
3593 extern __inline __m512i
3594 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3595 _mm512_mask_broadcastq_epi64 (__m512i __O
, __mmask8 __M
, __m128i __A
)
3597 return (__m512i
) __builtin_ia32_pbroadcastq512 ((__v2di
) __A
,
3601 extern __inline __m512i
3602 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3603 _mm512_maskz_broadcastq_epi64 (__mmask8 __M
, __m128i __A
)
3605 return (__m512i
) __builtin_ia32_pbroadcastq512 ((__v2di
) __A
,
3607 _mm512_setzero_si512 (),
3611 extern __inline __m512i
3612 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3613 _mm512_set1_epi64 (long long __A
)
3615 return (__m512i
) __builtin_ia32_pbroadcastq512_gpr_mask (__A
,
3617 _mm512_undefined_epi32 (),
3621 extern __inline __m512i
3622 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3623 _mm512_mask_set1_epi64 (__m512i __O
, __mmask8 __M
, long long __A
)
3625 return (__m512i
) __builtin_ia32_pbroadcastq512_gpr_mask (__A
, (__v8di
) __O
,
3629 extern __inline __m512i
3630 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3631 _mm512_maskz_set1_epi64 (__mmask8 __M
, long long __A
)
3634 __builtin_ia32_pbroadcastq512_gpr_mask (__A
,
3635 (__v8di
) _mm512_setzero_si512 (),
3639 extern __inline __m512
3640 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3641 _mm512_broadcast_f32x4 (__m128 __A
)
3643 return (__m512
) __builtin_ia32_broadcastf32x4_512 ((__v4sf
) __A
,
3645 _mm512_undefined_ps (),
3649 extern __inline __m512
3650 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3651 _mm512_mask_broadcast_f32x4 (__m512 __O
, __mmask16 __M
, __m128 __A
)
3653 return (__m512
) __builtin_ia32_broadcastf32x4_512 ((__v4sf
) __A
,
3658 extern __inline __m512
3659 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3660 _mm512_maskz_broadcast_f32x4 (__mmask16 __M
, __m128 __A
)
3662 return (__m512
) __builtin_ia32_broadcastf32x4_512 ((__v4sf
) __A
,
3664 _mm512_setzero_ps (),
3668 extern __inline __m512i
3669 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3670 _mm512_broadcast_i32x4 (__m128i __A
)
3672 return (__m512i
) __builtin_ia32_broadcasti32x4_512 ((__v4si
) __A
,
3674 _mm512_undefined_epi32 (),
3678 extern __inline __m512i
3679 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3680 _mm512_mask_broadcast_i32x4 (__m512i __O
, __mmask16 __M
, __m128i __A
)
3682 return (__m512i
) __builtin_ia32_broadcasti32x4_512 ((__v4si
) __A
,
3687 extern __inline __m512i
3688 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3689 _mm512_maskz_broadcast_i32x4 (__mmask16 __M
, __m128i __A
)
3691 return (__m512i
) __builtin_ia32_broadcasti32x4_512 ((__v4si
) __A
,
3693 _mm512_setzero_si512 (),
3697 extern __inline __m512d
3698 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3699 _mm512_broadcast_f64x4 (__m256d __A
)
3701 return (__m512d
) __builtin_ia32_broadcastf64x4_512 ((__v4df
) __A
,
3703 _mm512_undefined_pd (),
3707 extern __inline __m512d
3708 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3709 _mm512_mask_broadcast_f64x4 (__m512d __O
, __mmask8 __M
, __m256d __A
)
3711 return (__m512d
) __builtin_ia32_broadcastf64x4_512 ((__v4df
) __A
,
3716 extern __inline __m512d
3717 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3718 _mm512_maskz_broadcast_f64x4 (__mmask8 __M
, __m256d __A
)
3720 return (__m512d
) __builtin_ia32_broadcastf64x4_512 ((__v4df
) __A
,
3722 _mm512_setzero_pd (),
3726 extern __inline __m512i
3727 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3728 _mm512_broadcast_i64x4 (__m256i __A
)
3730 return (__m512i
) __builtin_ia32_broadcasti64x4_512 ((__v4di
) __A
,
3732 _mm512_undefined_epi32 (),
3736 extern __inline __m512i
3737 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3738 _mm512_mask_broadcast_i64x4 (__m512i __O
, __mmask8 __M
, __m256i __A
)
3740 return (__m512i
) __builtin_ia32_broadcasti64x4_512 ((__v4di
) __A
,
3745 extern __inline __m512i
3746 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3747 _mm512_maskz_broadcast_i64x4 (__mmask8 __M
, __m256i __A
)
3749 return (__m512i
) __builtin_ia32_broadcasti64x4_512 ((__v4di
) __A
,
3751 _mm512_setzero_si512 (),
3757 _MM_PERM_AAAA
= 0x00, _MM_PERM_AAAB
= 0x01, _MM_PERM_AAAC
= 0x02,
3758 _MM_PERM_AAAD
= 0x03, _MM_PERM_AABA
= 0x04, _MM_PERM_AABB
= 0x05,
3759 _MM_PERM_AABC
= 0x06, _MM_PERM_AABD
= 0x07, _MM_PERM_AACA
= 0x08,
3760 _MM_PERM_AACB
= 0x09, _MM_PERM_AACC
= 0x0A, _MM_PERM_AACD
= 0x0B,
3761 _MM_PERM_AADA
= 0x0C, _MM_PERM_AADB
= 0x0D, _MM_PERM_AADC
= 0x0E,
3762 _MM_PERM_AADD
= 0x0F, _MM_PERM_ABAA
= 0x10, _MM_PERM_ABAB
= 0x11,
3763 _MM_PERM_ABAC
= 0x12, _MM_PERM_ABAD
= 0x13, _MM_PERM_ABBA
= 0x14,
3764 _MM_PERM_ABBB
= 0x15, _MM_PERM_ABBC
= 0x16, _MM_PERM_ABBD
= 0x17,
3765 _MM_PERM_ABCA
= 0x18, _MM_PERM_ABCB
= 0x19, _MM_PERM_ABCC
= 0x1A,
3766 _MM_PERM_ABCD
= 0x1B, _MM_PERM_ABDA
= 0x1C, _MM_PERM_ABDB
= 0x1D,
3767 _MM_PERM_ABDC
= 0x1E, _MM_PERM_ABDD
= 0x1F, _MM_PERM_ACAA
= 0x20,
3768 _MM_PERM_ACAB
= 0x21, _MM_PERM_ACAC
= 0x22, _MM_PERM_ACAD
= 0x23,
3769 _MM_PERM_ACBA
= 0x24, _MM_PERM_ACBB
= 0x25, _MM_PERM_ACBC
= 0x26,
3770 _MM_PERM_ACBD
= 0x27, _MM_PERM_ACCA
= 0x28, _MM_PERM_ACCB
= 0x29,
3771 _MM_PERM_ACCC
= 0x2A, _MM_PERM_ACCD
= 0x2B, _MM_PERM_ACDA
= 0x2C,
3772 _MM_PERM_ACDB
= 0x2D, _MM_PERM_ACDC
= 0x2E, _MM_PERM_ACDD
= 0x2F,
3773 _MM_PERM_ADAA
= 0x30, _MM_PERM_ADAB
= 0x31, _MM_PERM_ADAC
= 0x32,
3774 _MM_PERM_ADAD
= 0x33, _MM_PERM_ADBA
= 0x34, _MM_PERM_ADBB
= 0x35,
3775 _MM_PERM_ADBC
= 0x36, _MM_PERM_ADBD
= 0x37, _MM_PERM_ADCA
= 0x38,
3776 _MM_PERM_ADCB
= 0x39, _MM_PERM_ADCC
= 0x3A, _MM_PERM_ADCD
= 0x3B,
3777 _MM_PERM_ADDA
= 0x3C, _MM_PERM_ADDB
= 0x3D, _MM_PERM_ADDC
= 0x3E,
3778 _MM_PERM_ADDD
= 0x3F, _MM_PERM_BAAA
= 0x40, _MM_PERM_BAAB
= 0x41,
3779 _MM_PERM_BAAC
= 0x42, _MM_PERM_BAAD
= 0x43, _MM_PERM_BABA
= 0x44,
3780 _MM_PERM_BABB
= 0x45, _MM_PERM_BABC
= 0x46, _MM_PERM_BABD
= 0x47,
3781 _MM_PERM_BACA
= 0x48, _MM_PERM_BACB
= 0x49, _MM_PERM_BACC
= 0x4A,
3782 _MM_PERM_BACD
= 0x4B, _MM_PERM_BADA
= 0x4C, _MM_PERM_BADB
= 0x4D,
3783 _MM_PERM_BADC
= 0x4E, _MM_PERM_BADD
= 0x4F, _MM_PERM_BBAA
= 0x50,
3784 _MM_PERM_BBAB
= 0x51, _MM_PERM_BBAC
= 0x52, _MM_PERM_BBAD
= 0x53,
3785 _MM_PERM_BBBA
= 0x54, _MM_PERM_BBBB
= 0x55, _MM_PERM_BBBC
= 0x56,
3786 _MM_PERM_BBBD
= 0x57, _MM_PERM_BBCA
= 0x58, _MM_PERM_BBCB
= 0x59,
3787 _MM_PERM_BBCC
= 0x5A, _MM_PERM_BBCD
= 0x5B, _MM_PERM_BBDA
= 0x5C,
3788 _MM_PERM_BBDB
= 0x5D, _MM_PERM_BBDC
= 0x5E, _MM_PERM_BBDD
= 0x5F,
3789 _MM_PERM_BCAA
= 0x60, _MM_PERM_BCAB
= 0x61, _MM_PERM_BCAC
= 0x62,
3790 _MM_PERM_BCAD
= 0x63, _MM_PERM_BCBA
= 0x64, _MM_PERM_BCBB
= 0x65,
3791 _MM_PERM_BCBC
= 0x66, _MM_PERM_BCBD
= 0x67, _MM_PERM_BCCA
= 0x68,
3792 _MM_PERM_BCCB
= 0x69, _MM_PERM_BCCC
= 0x6A, _MM_PERM_BCCD
= 0x6B,
3793 _MM_PERM_BCDA
= 0x6C, _MM_PERM_BCDB
= 0x6D, _MM_PERM_BCDC
= 0x6E,
3794 _MM_PERM_BCDD
= 0x6F, _MM_PERM_BDAA
= 0x70, _MM_PERM_BDAB
= 0x71,
3795 _MM_PERM_BDAC
= 0x72, _MM_PERM_BDAD
= 0x73, _MM_PERM_BDBA
= 0x74,
3796 _MM_PERM_BDBB
= 0x75, _MM_PERM_BDBC
= 0x76, _MM_PERM_BDBD
= 0x77,
3797 _MM_PERM_BDCA
= 0x78, _MM_PERM_BDCB
= 0x79, _MM_PERM_BDCC
= 0x7A,
3798 _MM_PERM_BDCD
= 0x7B, _MM_PERM_BDDA
= 0x7C, _MM_PERM_BDDB
= 0x7D,
3799 _MM_PERM_BDDC
= 0x7E, _MM_PERM_BDDD
= 0x7F, _MM_PERM_CAAA
= 0x80,
3800 _MM_PERM_CAAB
= 0x81, _MM_PERM_CAAC
= 0x82, _MM_PERM_CAAD
= 0x83,
3801 _MM_PERM_CABA
= 0x84, _MM_PERM_CABB
= 0x85, _MM_PERM_CABC
= 0x86,
3802 _MM_PERM_CABD
= 0x87, _MM_PERM_CACA
= 0x88, _MM_PERM_CACB
= 0x89,
3803 _MM_PERM_CACC
= 0x8A, _MM_PERM_CACD
= 0x8B, _MM_PERM_CADA
= 0x8C,
3804 _MM_PERM_CADB
= 0x8D, _MM_PERM_CADC
= 0x8E, _MM_PERM_CADD
= 0x8F,
3805 _MM_PERM_CBAA
= 0x90, _MM_PERM_CBAB
= 0x91, _MM_PERM_CBAC
= 0x92,
3806 _MM_PERM_CBAD
= 0x93, _MM_PERM_CBBA
= 0x94, _MM_PERM_CBBB
= 0x95,
3807 _MM_PERM_CBBC
= 0x96, _MM_PERM_CBBD
= 0x97, _MM_PERM_CBCA
= 0x98,
3808 _MM_PERM_CBCB
= 0x99, _MM_PERM_CBCC
= 0x9A, _MM_PERM_CBCD
= 0x9B,
3809 _MM_PERM_CBDA
= 0x9C, _MM_PERM_CBDB
= 0x9D, _MM_PERM_CBDC
= 0x9E,
3810 _MM_PERM_CBDD
= 0x9F, _MM_PERM_CCAA
= 0xA0, _MM_PERM_CCAB
= 0xA1,
3811 _MM_PERM_CCAC
= 0xA2, _MM_PERM_CCAD
= 0xA3, _MM_PERM_CCBA
= 0xA4,
3812 _MM_PERM_CCBB
= 0xA5, _MM_PERM_CCBC
= 0xA6, _MM_PERM_CCBD
= 0xA7,
3813 _MM_PERM_CCCA
= 0xA8, _MM_PERM_CCCB
= 0xA9, _MM_PERM_CCCC
= 0xAA,
3814 _MM_PERM_CCCD
= 0xAB, _MM_PERM_CCDA
= 0xAC, _MM_PERM_CCDB
= 0xAD,
3815 _MM_PERM_CCDC
= 0xAE, _MM_PERM_CCDD
= 0xAF, _MM_PERM_CDAA
= 0xB0,
3816 _MM_PERM_CDAB
= 0xB1, _MM_PERM_CDAC
= 0xB2, _MM_PERM_CDAD
= 0xB3,
3817 _MM_PERM_CDBA
= 0xB4, _MM_PERM_CDBB
= 0xB5, _MM_PERM_CDBC
= 0xB6,
3818 _MM_PERM_CDBD
= 0xB7, _MM_PERM_CDCA
= 0xB8, _MM_PERM_CDCB
= 0xB9,
3819 _MM_PERM_CDCC
= 0xBA, _MM_PERM_CDCD
= 0xBB, _MM_PERM_CDDA
= 0xBC,
3820 _MM_PERM_CDDB
= 0xBD, _MM_PERM_CDDC
= 0xBE, _MM_PERM_CDDD
= 0xBF,
3821 _MM_PERM_DAAA
= 0xC0, _MM_PERM_DAAB
= 0xC1, _MM_PERM_DAAC
= 0xC2,
3822 _MM_PERM_DAAD
= 0xC3, _MM_PERM_DABA
= 0xC4, _MM_PERM_DABB
= 0xC5,
3823 _MM_PERM_DABC
= 0xC6, _MM_PERM_DABD
= 0xC7, _MM_PERM_DACA
= 0xC8,
3824 _MM_PERM_DACB
= 0xC9, _MM_PERM_DACC
= 0xCA, _MM_PERM_DACD
= 0xCB,
3825 _MM_PERM_DADA
= 0xCC, _MM_PERM_DADB
= 0xCD, _MM_PERM_DADC
= 0xCE,
3826 _MM_PERM_DADD
= 0xCF, _MM_PERM_DBAA
= 0xD0, _MM_PERM_DBAB
= 0xD1,
3827 _MM_PERM_DBAC
= 0xD2, _MM_PERM_DBAD
= 0xD3, _MM_PERM_DBBA
= 0xD4,
3828 _MM_PERM_DBBB
= 0xD5, _MM_PERM_DBBC
= 0xD6, _MM_PERM_DBBD
= 0xD7,
3829 _MM_PERM_DBCA
= 0xD8, _MM_PERM_DBCB
= 0xD9, _MM_PERM_DBCC
= 0xDA,
3830 _MM_PERM_DBCD
= 0xDB, _MM_PERM_DBDA
= 0xDC, _MM_PERM_DBDB
= 0xDD,
3831 _MM_PERM_DBDC
= 0xDE, _MM_PERM_DBDD
= 0xDF, _MM_PERM_DCAA
= 0xE0,
3832 _MM_PERM_DCAB
= 0xE1, _MM_PERM_DCAC
= 0xE2, _MM_PERM_DCAD
= 0xE3,
3833 _MM_PERM_DCBA
= 0xE4, _MM_PERM_DCBB
= 0xE5, _MM_PERM_DCBC
= 0xE6,
3834 _MM_PERM_DCBD
= 0xE7, _MM_PERM_DCCA
= 0xE8, _MM_PERM_DCCB
= 0xE9,
3835 _MM_PERM_DCCC
= 0xEA, _MM_PERM_DCCD
= 0xEB, _MM_PERM_DCDA
= 0xEC,
3836 _MM_PERM_DCDB
= 0xED, _MM_PERM_DCDC
= 0xEE, _MM_PERM_DCDD
= 0xEF,
3837 _MM_PERM_DDAA
= 0xF0, _MM_PERM_DDAB
= 0xF1, _MM_PERM_DDAC
= 0xF2,
3838 _MM_PERM_DDAD
= 0xF3, _MM_PERM_DDBA
= 0xF4, _MM_PERM_DDBB
= 0xF5,
3839 _MM_PERM_DDBC
= 0xF6, _MM_PERM_DDBD
= 0xF7, _MM_PERM_DDCA
= 0xF8,
3840 _MM_PERM_DDCB
= 0xF9, _MM_PERM_DDCC
= 0xFA, _MM_PERM_DDCD
= 0xFB,
3841 _MM_PERM_DDDA
= 0xFC, _MM_PERM_DDDB
= 0xFD, _MM_PERM_DDDC
= 0xFE,
3842 _MM_PERM_DDDD
= 0xFF
3846 extern __inline __m512i
3847 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3848 _mm512_shuffle_epi32 (__m512i __A
, _MM_PERM_ENUM __mask
)
3850 return (__m512i
) __builtin_ia32_pshufd512_mask ((__v16si
) __A
,
3853 _mm512_undefined_epi32 (),
3857 extern __inline __m512i
3858 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3859 _mm512_mask_shuffle_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
,
3860 _MM_PERM_ENUM __mask
)
3862 return (__m512i
) __builtin_ia32_pshufd512_mask ((__v16si
) __A
,
3868 extern __inline __m512i
3869 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3870 _mm512_maskz_shuffle_epi32 (__mmask16 __U
, __m512i __A
, _MM_PERM_ENUM __mask
)
3872 return (__m512i
) __builtin_ia32_pshufd512_mask ((__v16si
) __A
,
3875 _mm512_setzero_si512 (),
3879 extern __inline __m512i
3880 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3881 _mm512_shuffle_i64x2 (__m512i __A
, __m512i __B
, const int __imm
)
3883 return (__m512i
) __builtin_ia32_shuf_i64x2_mask ((__v8di
) __A
,
3884 (__v8di
) __B
, __imm
,
3886 _mm512_undefined_epi32 (),
3890 extern __inline __m512i
3891 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3892 _mm512_mask_shuffle_i64x2 (__m512i __W
, __mmask8 __U
, __m512i __A
,
3893 __m512i __B
, const int __imm
)
3895 return (__m512i
) __builtin_ia32_shuf_i64x2_mask ((__v8di
) __A
,
3896 (__v8di
) __B
, __imm
,
3901 extern __inline __m512i
3902 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3903 _mm512_maskz_shuffle_i64x2 (__mmask8 __U
, __m512i __A
, __m512i __B
,
3906 return (__m512i
) __builtin_ia32_shuf_i64x2_mask ((__v8di
) __A
,
3907 (__v8di
) __B
, __imm
,
3909 _mm512_setzero_si512 (),
3913 extern __inline __m512i
3914 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3915 _mm512_shuffle_i32x4 (__m512i __A
, __m512i __B
, const int __imm
)
3917 return (__m512i
) __builtin_ia32_shuf_i32x4_mask ((__v16si
) __A
,
3921 _mm512_undefined_epi32 (),
3925 extern __inline __m512i
3926 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3927 _mm512_mask_shuffle_i32x4 (__m512i __W
, __mmask16 __U
, __m512i __A
,
3928 __m512i __B
, const int __imm
)
3930 return (__m512i
) __builtin_ia32_shuf_i32x4_mask ((__v16si
) __A
,
3937 extern __inline __m512i
3938 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3939 _mm512_maskz_shuffle_i32x4 (__mmask16 __U
, __m512i __A
, __m512i __B
,
3942 return (__m512i
) __builtin_ia32_shuf_i32x4_mask ((__v16si
) __A
,
3946 _mm512_setzero_si512 (),
3950 extern __inline __m512d
3951 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3952 _mm512_shuffle_f64x2 (__m512d __A
, __m512d __B
, const int __imm
)
3954 return (__m512d
) __builtin_ia32_shuf_f64x2_mask ((__v8df
) __A
,
3955 (__v8df
) __B
, __imm
,
3957 _mm512_undefined_pd (),
3961 extern __inline __m512d
3962 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3963 _mm512_mask_shuffle_f64x2 (__m512d __W
, __mmask8 __U
, __m512d __A
,
3964 __m512d __B
, const int __imm
)
3966 return (__m512d
) __builtin_ia32_shuf_f64x2_mask ((__v8df
) __A
,
3967 (__v8df
) __B
, __imm
,
3972 extern __inline __m512d
3973 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3974 _mm512_maskz_shuffle_f64x2 (__mmask8 __U
, __m512d __A
, __m512d __B
,
3977 return (__m512d
) __builtin_ia32_shuf_f64x2_mask ((__v8df
) __A
,
3978 (__v8df
) __B
, __imm
,
3980 _mm512_setzero_pd (),
3984 extern __inline __m512
3985 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3986 _mm512_shuffle_f32x4 (__m512 __A
, __m512 __B
, const int __imm
)
3988 return (__m512
) __builtin_ia32_shuf_f32x4_mask ((__v16sf
) __A
,
3989 (__v16sf
) __B
, __imm
,
3991 _mm512_undefined_ps (),
3995 extern __inline __m512
3996 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3997 _mm512_mask_shuffle_f32x4 (__m512 __W
, __mmask16 __U
, __m512 __A
,
3998 __m512 __B
, const int __imm
)
4000 return (__m512
) __builtin_ia32_shuf_f32x4_mask ((__v16sf
) __A
,
4001 (__v16sf
) __B
, __imm
,
4006 extern __inline __m512
4007 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4008 _mm512_maskz_shuffle_f32x4 (__mmask16 __U
, __m512 __A
, __m512 __B
,
4011 return (__m512
) __builtin_ia32_shuf_f32x4_mask ((__v16sf
) __A
,
4012 (__v16sf
) __B
, __imm
,
4014 _mm512_setzero_ps (),
4019 #define _mm512_shuffle_epi32(X, C) \
4020 ((__m512i) __builtin_ia32_pshufd512_mask ((__v16si)(__m512i)(X), (int)(C),\
4021 (__v16si)(__m512i)_mm512_undefined_epi32 (),\
4024 #define _mm512_mask_shuffle_epi32(W, U, X, C) \
4025 ((__m512i) __builtin_ia32_pshufd512_mask ((__v16si)(__m512i)(X), (int)(C),\
4026 (__v16si)(__m512i)(W),\
4029 #define _mm512_maskz_shuffle_epi32(U, X, C) \
4030 ((__m512i) __builtin_ia32_pshufd512_mask ((__v16si)(__m512i)(X), (int)(C),\
4031 (__v16si)(__m512i)_mm512_setzero_si512 (),\
4034 #define _mm512_shuffle_i64x2(X, Y, C) \
4035 ((__m512i) __builtin_ia32_shuf_i64x2_mask ((__v8di)(__m512i)(X), \
4036 (__v8di)(__m512i)(Y), (int)(C),\
4037 (__v8di)(__m512i)_mm512_undefined_epi32 (),\
4040 #define _mm512_mask_shuffle_i64x2(W, U, X, Y, C) \
4041 ((__m512i) __builtin_ia32_shuf_i64x2_mask ((__v8di)(__m512i)(X), \
4042 (__v8di)(__m512i)(Y), (int)(C),\
4043 (__v8di)(__m512i)(W),\
4046 #define _mm512_maskz_shuffle_i64x2(U, X, Y, C) \
4047 ((__m512i) __builtin_ia32_shuf_i64x2_mask ((__v8di)(__m512i)(X), \
4048 (__v8di)(__m512i)(Y), (int)(C),\
4049 (__v8di)(__m512i)_mm512_setzero_si512 (),\
4052 #define _mm512_shuffle_i32x4(X, Y, C) \
4053 ((__m512i) __builtin_ia32_shuf_i32x4_mask ((__v16si)(__m512i)(X), \
4054 (__v16si)(__m512i)(Y), (int)(C),\
4055 (__v16si)(__m512i)_mm512_undefined_epi32 (),\
4058 #define _mm512_mask_shuffle_i32x4(W, U, X, Y, C) \
4059 ((__m512i) __builtin_ia32_shuf_i32x4_mask ((__v16si)(__m512i)(X), \
4060 (__v16si)(__m512i)(Y), (int)(C),\
4061 (__v16si)(__m512i)(W),\
4064 #define _mm512_maskz_shuffle_i32x4(U, X, Y, C) \
4065 ((__m512i) __builtin_ia32_shuf_i32x4_mask ((__v16si)(__m512i)(X), \
4066 (__v16si)(__m512i)(Y), (int)(C),\
4067 (__v16si)(__m512i)_mm512_setzero_si512 (),\
4070 #define _mm512_shuffle_f64x2(X, Y, C) \
4071 ((__m512d) __builtin_ia32_shuf_f64x2_mask ((__v8df)(__m512d)(X), \
4072 (__v8df)(__m512d)(Y), (int)(C),\
4073 (__v8df)(__m512d)_mm512_undefined_pd(),\
4076 #define _mm512_mask_shuffle_f64x2(W, U, X, Y, C) \
4077 ((__m512d) __builtin_ia32_shuf_f64x2_mask ((__v8df)(__m512d)(X), \
4078 (__v8df)(__m512d)(Y), (int)(C),\
4079 (__v8df)(__m512d)(W),\
4082 #define _mm512_maskz_shuffle_f64x2(U, X, Y, C) \
4083 ((__m512d) __builtin_ia32_shuf_f64x2_mask ((__v8df)(__m512d)(X), \
4084 (__v8df)(__m512d)(Y), (int)(C),\
4085 (__v8df)(__m512d)_mm512_setzero_pd(),\
4088 #define _mm512_shuffle_f32x4(X, Y, C) \
4089 ((__m512) __builtin_ia32_shuf_f32x4_mask ((__v16sf)(__m512)(X), \
4090 (__v16sf)(__m512)(Y), (int)(C),\
4091 (__v16sf)(__m512)_mm512_undefined_ps(),\
4094 #define _mm512_mask_shuffle_f32x4(W, U, X, Y, C) \
4095 ((__m512) __builtin_ia32_shuf_f32x4_mask ((__v16sf)(__m512)(X), \
4096 (__v16sf)(__m512)(Y), (int)(C),\
4097 (__v16sf)(__m512)(W),\
4100 #define _mm512_maskz_shuffle_f32x4(U, X, Y, C) \
4101 ((__m512) __builtin_ia32_shuf_f32x4_mask ((__v16sf)(__m512)(X), \
4102 (__v16sf)(__m512)(Y), (int)(C),\
4103 (__v16sf)(__m512)_mm512_setzero_ps(),\
4107 extern __inline __m512i
4108 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4109 _mm512_rolv_epi32 (__m512i __A
, __m512i __B
)
4111 return (__m512i
) __builtin_ia32_prolvd512_mask ((__v16si
) __A
,
4114 _mm512_undefined_epi32 (),
4118 extern __inline __m512i
4119 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4120 _mm512_mask_rolv_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
4122 return (__m512i
) __builtin_ia32_prolvd512_mask ((__v16si
) __A
,
4128 extern __inline __m512i
4129 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4130 _mm512_maskz_rolv_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
4132 return (__m512i
) __builtin_ia32_prolvd512_mask ((__v16si
) __A
,
4135 _mm512_setzero_si512 (),
4139 extern __inline __m512i
4140 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4141 _mm512_rorv_epi32 (__m512i __A
, __m512i __B
)
4143 return (__m512i
) __builtin_ia32_prorvd512_mask ((__v16si
) __A
,
4146 _mm512_undefined_epi32 (),
4150 extern __inline __m512i
4151 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4152 _mm512_mask_rorv_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
4154 return (__m512i
) __builtin_ia32_prorvd512_mask ((__v16si
) __A
,
4160 extern __inline __m512i
4161 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4162 _mm512_maskz_rorv_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
4164 return (__m512i
) __builtin_ia32_prorvd512_mask ((__v16si
) __A
,
4167 _mm512_setzero_si512 (),
4171 extern __inline __m512i
4172 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4173 _mm512_rolv_epi64 (__m512i __A
, __m512i __B
)
4175 return (__m512i
) __builtin_ia32_prolvq512_mask ((__v8di
) __A
,
4178 _mm512_undefined_epi32 (),
4182 extern __inline __m512i
4183 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4184 _mm512_mask_rolv_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
4186 return (__m512i
) __builtin_ia32_prolvq512_mask ((__v8di
) __A
,
4192 extern __inline __m512i
4193 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4194 _mm512_maskz_rolv_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
4196 return (__m512i
) __builtin_ia32_prolvq512_mask ((__v8di
) __A
,
4199 _mm512_setzero_si512 (),
4203 extern __inline __m512i
4204 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4205 _mm512_rorv_epi64 (__m512i __A
, __m512i __B
)
4207 return (__m512i
) __builtin_ia32_prorvq512_mask ((__v8di
) __A
,
4210 _mm512_undefined_epi32 (),
4214 extern __inline __m512i
4215 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4216 _mm512_mask_rorv_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
4218 return (__m512i
) __builtin_ia32_prorvq512_mask ((__v8di
) __A
,
4224 extern __inline __m512i
4225 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4226 _mm512_maskz_rorv_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
4228 return (__m512i
) __builtin_ia32_prorvq512_mask ((__v8di
) __A
,
4231 _mm512_setzero_si512 (),
4236 extern __inline __m256i
4237 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4238 _mm512_cvtt_roundpd_epi32 (__m512d __A
, const int __R
)
4240 return (__m256i
) __builtin_ia32_cvttpd2dq512_mask ((__v8df
) __A
,
4242 _mm256_undefined_si256 (),
4243 (__mmask8
) -1, __R
);
4246 extern __inline __m256i
4247 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4248 _mm512_mask_cvtt_roundpd_epi32 (__m256i __W
, __mmask8 __U
, __m512d __A
,
4251 return (__m256i
) __builtin_ia32_cvttpd2dq512_mask ((__v8df
) __A
,
4253 (__mmask8
) __U
, __R
);
4256 extern __inline __m256i
4257 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4258 _mm512_maskz_cvtt_roundpd_epi32 (__mmask8 __U
, __m512d __A
, const int __R
)
4260 return (__m256i
) __builtin_ia32_cvttpd2dq512_mask ((__v8df
) __A
,
4262 _mm256_setzero_si256 (),
4263 (__mmask8
) __U
, __R
);
4266 extern __inline __m256i
4267 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4268 _mm512_cvtt_roundpd_epu32 (__m512d __A
, const int __R
)
4270 return (__m256i
) __builtin_ia32_cvttpd2udq512_mask ((__v8df
) __A
,
4272 _mm256_undefined_si256 (),
4273 (__mmask8
) -1, __R
);
4276 extern __inline __m256i
4277 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4278 _mm512_mask_cvtt_roundpd_epu32 (__m256i __W
, __mmask8 __U
, __m512d __A
,
4281 return (__m256i
) __builtin_ia32_cvttpd2udq512_mask ((__v8df
) __A
,
4283 (__mmask8
) __U
, __R
);
4286 extern __inline __m256i
4287 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4288 _mm512_maskz_cvtt_roundpd_epu32 (__mmask8 __U
, __m512d __A
, const int __R
)
4290 return (__m256i
) __builtin_ia32_cvttpd2udq512_mask ((__v8df
) __A
,
4292 _mm256_setzero_si256 (),
4293 (__mmask8
) __U
, __R
);
4296 #define _mm512_cvtt_roundpd_epi32(A, B) \
4297 ((__m256i)__builtin_ia32_cvttpd2dq512_mask(A, (__v8si)_mm256_undefined_si256(), -1, B))
4299 #define _mm512_mask_cvtt_roundpd_epi32(W, U, A, B) \
4300 ((__m256i)__builtin_ia32_cvttpd2dq512_mask(A, (__v8si)(W), U, B))
4302 #define _mm512_maskz_cvtt_roundpd_epi32(U, A, B) \
4303 ((__m256i)__builtin_ia32_cvttpd2dq512_mask(A, (__v8si)_mm256_setzero_si256(), U, B))
4305 #define _mm512_cvtt_roundpd_epu32(A, B) \
4306 ((__m256i)__builtin_ia32_cvttpd2udq512_mask(A, (__v8si)_mm256_undefined_si256(), -1, B))
4308 #define _mm512_mask_cvtt_roundpd_epu32(W, U, A, B) \
4309 ((__m256i)__builtin_ia32_cvttpd2udq512_mask(A, (__v8si)(W), U, B))
4311 #define _mm512_maskz_cvtt_roundpd_epu32(U, A, B) \
4312 ((__m256i)__builtin_ia32_cvttpd2udq512_mask(A, (__v8si)_mm256_setzero_si256(), U, B))
4316 extern __inline __m256i
4317 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4318 _mm512_cvt_roundpd_epi32 (__m512d __A
, const int __R
)
4320 return (__m256i
) __builtin_ia32_cvtpd2dq512_mask ((__v8df
) __A
,
4322 _mm256_undefined_si256 (),
4323 (__mmask8
) -1, __R
);
4326 extern __inline __m256i
4327 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4328 _mm512_mask_cvt_roundpd_epi32 (__m256i __W
, __mmask8 __U
, __m512d __A
,
4331 return (__m256i
) __builtin_ia32_cvtpd2dq512_mask ((__v8df
) __A
,
4333 (__mmask8
) __U
, __R
);
4336 extern __inline __m256i
4337 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4338 _mm512_maskz_cvt_roundpd_epi32 (__mmask8 __U
, __m512d __A
, const int __R
)
4340 return (__m256i
) __builtin_ia32_cvtpd2dq512_mask ((__v8df
) __A
,
4342 _mm256_setzero_si256 (),
4343 (__mmask8
) __U
, __R
);
4346 extern __inline __m256i
4347 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4348 _mm512_cvt_roundpd_epu32 (__m512d __A
, const int __R
)
4350 return (__m256i
) __builtin_ia32_cvtpd2udq512_mask ((__v8df
) __A
,
4352 _mm256_undefined_si256 (),
4353 (__mmask8
) -1, __R
);
4356 extern __inline __m256i
4357 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4358 _mm512_mask_cvt_roundpd_epu32 (__m256i __W
, __mmask8 __U
, __m512d __A
,
4361 return (__m256i
) __builtin_ia32_cvtpd2udq512_mask ((__v8df
) __A
,
4363 (__mmask8
) __U
, __R
);
4366 extern __inline __m256i
4367 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4368 _mm512_maskz_cvt_roundpd_epu32 (__mmask8 __U
, __m512d __A
, const int __R
)
4370 return (__m256i
) __builtin_ia32_cvtpd2udq512_mask ((__v8df
) __A
,
4372 _mm256_setzero_si256 (),
4373 (__mmask8
) __U
, __R
);
4376 #define _mm512_cvt_roundpd_epi32(A, B) \
4377 ((__m256i)__builtin_ia32_cvtpd2dq512_mask(A, (__v8si)_mm256_undefined_si256(), -1, B))
4379 #define _mm512_mask_cvt_roundpd_epi32(W, U, A, B) \
4380 ((__m256i)__builtin_ia32_cvtpd2dq512_mask(A, (__v8si)(W), U, B))
4382 #define _mm512_maskz_cvt_roundpd_epi32(U, A, B) \
4383 ((__m256i)__builtin_ia32_cvtpd2dq512_mask(A, (__v8si)_mm256_setzero_si256(), U, B))
4385 #define _mm512_cvt_roundpd_epu32(A, B) \
4386 ((__m256i)__builtin_ia32_cvtpd2udq512_mask(A, (__v8si)_mm256_undefined_si256(), -1, B))
4388 #define _mm512_mask_cvt_roundpd_epu32(W, U, A, B) \
4389 ((__m256i)__builtin_ia32_cvtpd2udq512_mask(A, (__v8si)(W), U, B))
4391 #define _mm512_maskz_cvt_roundpd_epu32(U, A, B) \
4392 ((__m256i)__builtin_ia32_cvtpd2udq512_mask(A, (__v8si)_mm256_setzero_si256(), U, B))
4396 extern __inline __m512i
4397 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4398 _mm512_cvtt_roundps_epi32 (__m512 __A
, const int __R
)
4400 return (__m512i
) __builtin_ia32_cvttps2dq512_mask ((__v16sf
) __A
,
4402 _mm512_undefined_epi32 (),
4403 (__mmask16
) -1, __R
);
4406 extern __inline __m512i
4407 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4408 _mm512_mask_cvtt_roundps_epi32 (__m512i __W
, __mmask16 __U
, __m512 __A
,
4411 return (__m512i
) __builtin_ia32_cvttps2dq512_mask ((__v16sf
) __A
,
4413 (__mmask16
) __U
, __R
);
4416 extern __inline __m512i
4417 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4418 _mm512_maskz_cvtt_roundps_epi32 (__mmask16 __U
, __m512 __A
, const int __R
)
4420 return (__m512i
) __builtin_ia32_cvttps2dq512_mask ((__v16sf
) __A
,
4422 _mm512_setzero_si512 (),
4423 (__mmask16
) __U
, __R
);
4426 extern __inline __m512i
4427 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4428 _mm512_cvtt_roundps_epu32 (__m512 __A
, const int __R
)
4430 return (__m512i
) __builtin_ia32_cvttps2udq512_mask ((__v16sf
) __A
,
4432 _mm512_undefined_epi32 (),
4433 (__mmask16
) -1, __R
);
4436 extern __inline __m512i
4437 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4438 _mm512_mask_cvtt_roundps_epu32 (__m512i __W
, __mmask16 __U
, __m512 __A
,
4441 return (__m512i
) __builtin_ia32_cvttps2udq512_mask ((__v16sf
) __A
,
4443 (__mmask16
) __U
, __R
);
4446 extern __inline __m512i
4447 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4448 _mm512_maskz_cvtt_roundps_epu32 (__mmask16 __U
, __m512 __A
, const int __R
)
4450 return (__m512i
) __builtin_ia32_cvttps2udq512_mask ((__v16sf
) __A
,
4452 _mm512_setzero_si512 (),
4453 (__mmask16
) __U
, __R
);
4456 #define _mm512_cvtt_roundps_epi32(A, B) \
4457 ((__m512i)__builtin_ia32_cvttps2dq512_mask(A, (__v16si)_mm512_undefined_epi32 (), -1, B))
4459 #define _mm512_mask_cvtt_roundps_epi32(W, U, A, B) \
4460 ((__m512i)__builtin_ia32_cvttps2dq512_mask(A, (__v16si)(W), U, B))
4462 #define _mm512_maskz_cvtt_roundps_epi32(U, A, B) \
4463 ((__m512i)__builtin_ia32_cvttps2dq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
4465 #define _mm512_cvtt_roundps_epu32(A, B) \
4466 ((__m512i)__builtin_ia32_cvttps2udq512_mask(A, (__v16si)_mm512_undefined_epi32 (), -1, B))
4468 #define _mm512_mask_cvtt_roundps_epu32(W, U, A, B) \
4469 ((__m512i)__builtin_ia32_cvttps2udq512_mask(A, (__v16si)(W), U, B))
4471 #define _mm512_maskz_cvtt_roundps_epu32(U, A, B) \
4472 ((__m512i)__builtin_ia32_cvttps2udq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
4476 extern __inline __m512i
4477 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4478 _mm512_cvt_roundps_epi32 (__m512 __A
, const int __R
)
4480 return (__m512i
) __builtin_ia32_cvtps2dq512_mask ((__v16sf
) __A
,
4482 _mm512_undefined_epi32 (),
4483 (__mmask16
) -1, __R
);
4486 extern __inline __m512i
4487 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4488 _mm512_mask_cvt_roundps_epi32 (__m512i __W
, __mmask16 __U
, __m512 __A
,
4491 return (__m512i
) __builtin_ia32_cvtps2dq512_mask ((__v16sf
) __A
,
4493 (__mmask16
) __U
, __R
);
4496 extern __inline __m512i
4497 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4498 _mm512_maskz_cvt_roundps_epi32 (__mmask16 __U
, __m512 __A
, const int __R
)
4500 return (__m512i
) __builtin_ia32_cvtps2dq512_mask ((__v16sf
) __A
,
4502 _mm512_setzero_si512 (),
4503 (__mmask16
) __U
, __R
);
4506 extern __inline __m512i
4507 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4508 _mm512_cvt_roundps_epu32 (__m512 __A
, const int __R
)
4510 return (__m512i
) __builtin_ia32_cvtps2udq512_mask ((__v16sf
) __A
,
4512 _mm512_undefined_epi32 (),
4513 (__mmask16
) -1, __R
);
4516 extern __inline __m512i
4517 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4518 _mm512_mask_cvt_roundps_epu32 (__m512i __W
, __mmask16 __U
, __m512 __A
,
4521 return (__m512i
) __builtin_ia32_cvtps2udq512_mask ((__v16sf
) __A
,
4523 (__mmask16
) __U
, __R
);
4526 extern __inline __m512i
4527 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4528 _mm512_maskz_cvt_roundps_epu32 (__mmask16 __U
, __m512 __A
, const int __R
)
4530 return (__m512i
) __builtin_ia32_cvtps2udq512_mask ((__v16sf
) __A
,
4532 _mm512_setzero_si512 (),
4533 (__mmask16
) __U
, __R
);
4536 #define _mm512_cvt_roundps_epi32(A, B) \
4537 ((__m512i)__builtin_ia32_cvtps2dq512_mask(A, (__v16si)_mm512_undefined_epi32 (), -1, B))
4539 #define _mm512_mask_cvt_roundps_epi32(W, U, A, B) \
4540 ((__m512i)__builtin_ia32_cvtps2dq512_mask(A, (__v16si)(W), U, B))
4542 #define _mm512_maskz_cvt_roundps_epi32(U, A, B) \
4543 ((__m512i)__builtin_ia32_cvtps2dq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
4545 #define _mm512_cvt_roundps_epu32(A, B) \
4546 ((__m512i)__builtin_ia32_cvtps2udq512_mask(A, (__v16si)_mm512_undefined_epi32 (), -1, B))
4548 #define _mm512_mask_cvt_roundps_epu32(W, U, A, B) \
4549 ((__m512i)__builtin_ia32_cvtps2udq512_mask(A, (__v16si)(W), U, B))
4551 #define _mm512_maskz_cvt_roundps_epu32(U, A, B) \
4552 ((__m512i)__builtin_ia32_cvtps2udq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
4555 extern __inline __m128d
4556 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4557 _mm_cvtu32_sd (__m128d __A
, unsigned __B
)
4559 return (__m128d
) __builtin_ia32_cvtusi2sd32 ((__v2df
) __A
, __B
);
4564 extern __inline __m128d
4565 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4566 _mm_cvt_roundu64_sd (__m128d __A
, unsigned long long __B
, const int __R
)
4568 return (__m128d
) __builtin_ia32_cvtusi2sd64 ((__v2df
) __A
, __B
, __R
);
4571 extern __inline __m128d
4572 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4573 _mm_cvt_roundi64_sd (__m128d __A
, long long __B
, const int __R
)
4575 return (__m128d
) __builtin_ia32_cvtsi2sd64 ((__v2df
) __A
, __B
, __R
);
4578 extern __inline __m128d
4579 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4580 _mm_cvt_roundsi64_sd (__m128d __A
, long long __B
, const int __R
)
4582 return (__m128d
) __builtin_ia32_cvtsi2sd64 ((__v2df
) __A
, __B
, __R
);
4585 #define _mm_cvt_roundu64_sd(A, B, C) \
4586 (__m128d)__builtin_ia32_cvtusi2sd64(A, B, C)
4588 #define _mm_cvt_roundi64_sd(A, B, C) \
4589 (__m128d)__builtin_ia32_cvtsi2sd64(A, B, C)
4591 #define _mm_cvt_roundsi64_sd(A, B, C) \
4592 (__m128d)__builtin_ia32_cvtsi2sd64(A, B, C)
4598 extern __inline __m128
4599 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4600 _mm_cvt_roundu32_ss (__m128 __A
, unsigned __B
, const int __R
)
4602 return (__m128
) __builtin_ia32_cvtusi2ss32 ((__v4sf
) __A
, __B
, __R
);
4605 extern __inline __m128
4606 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4607 _mm_cvt_roundsi32_ss (__m128 __A
, int __B
, const int __R
)
4609 return (__m128
) __builtin_ia32_cvtsi2ss32 ((__v4sf
) __A
, __B
, __R
);
4612 extern __inline __m128
4613 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4614 _mm_cvt_roundi32_ss (__m128 __A
, int __B
, const int __R
)
4616 return (__m128
) __builtin_ia32_cvtsi2ss32 ((__v4sf
) __A
, __B
, __R
);
4619 #define _mm_cvt_roundu32_ss(A, B, C) \
4620 (__m128)__builtin_ia32_cvtusi2ss32(A, B, C)
4622 #define _mm_cvt_roundi32_ss(A, B, C) \
4623 (__m128)__builtin_ia32_cvtsi2ss32(A, B, C)
4625 #define _mm_cvt_roundsi32_ss(A, B, C) \
4626 (__m128)__builtin_ia32_cvtsi2ss32(A, B, C)
4631 extern __inline __m128
4632 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4633 _mm_cvt_roundu64_ss (__m128 __A
, unsigned long long __B
, const int __R
)
4635 return (__m128
) __builtin_ia32_cvtusi2ss64 ((__v4sf
) __A
, __B
, __R
);
4638 extern __inline __m128
4639 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4640 _mm_cvt_roundsi64_ss (__m128 __A
, long long __B
, const int __R
)
4642 return (__m128
) __builtin_ia32_cvtsi2ss64 ((__v4sf
) __A
, __B
, __R
);
4645 extern __inline __m128
4646 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4647 _mm_cvt_roundi64_ss (__m128 __A
, long long __B
, const int __R
)
4649 return (__m128
) __builtin_ia32_cvtsi2ss64 ((__v4sf
) __A
, __B
, __R
);
4652 #define _mm_cvt_roundu64_ss(A, B, C) \
4653 (__m128)__builtin_ia32_cvtusi2ss64(A, B, C)
4655 #define _mm_cvt_roundi64_ss(A, B, C) \
4656 (__m128)__builtin_ia32_cvtsi2ss64(A, B, C)
4658 #define _mm_cvt_roundsi64_ss(A, B, C) \
4659 (__m128)__builtin_ia32_cvtsi2ss64(A, B, C)
4664 extern __inline __m128i
4665 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4666 _mm512_cvtepi32_epi8 (__m512i __A
)
4668 return (__m128i
) __builtin_ia32_pmovdb512_mask ((__v16si
) __A
,
4670 _mm_undefined_si128 (),
4674 extern __inline
void
4675 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4676 _mm512_mask_cvtepi32_storeu_epi8 (void * __P
, __mmask16 __M
, __m512i __A
)
4678 __builtin_ia32_pmovdb512mem_mask ((__v16qi
*) __P
, (__v16si
) __A
, __M
);
4681 extern __inline __m128i
4682 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4683 _mm512_mask_cvtepi32_epi8 (__m128i __O
, __mmask16 __M
, __m512i __A
)
4685 return (__m128i
) __builtin_ia32_pmovdb512_mask ((__v16si
) __A
,
4686 (__v16qi
) __O
, __M
);
4689 extern __inline __m128i
4690 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4691 _mm512_maskz_cvtepi32_epi8 (__mmask16 __M
, __m512i __A
)
4693 return (__m128i
) __builtin_ia32_pmovdb512_mask ((__v16si
) __A
,
4695 _mm_setzero_si128 (),
4699 extern __inline __m128i
4700 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4701 _mm512_cvtsepi32_epi8 (__m512i __A
)
4703 return (__m128i
) __builtin_ia32_pmovsdb512_mask ((__v16si
) __A
,
4705 _mm_undefined_si128 (),
4709 extern __inline
void
4710 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4711 _mm512_mask_cvtsepi32_storeu_epi8 (void * __P
, __mmask16 __M
, __m512i __A
)
4713 __builtin_ia32_pmovsdb512mem_mask ((__v16qi
*) __P
, (__v16si
) __A
, __M
);
4716 extern __inline __m128i
4717 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4718 _mm512_mask_cvtsepi32_epi8 (__m128i __O
, __mmask16 __M
, __m512i __A
)
4720 return (__m128i
) __builtin_ia32_pmovsdb512_mask ((__v16si
) __A
,
4721 (__v16qi
) __O
, __M
);
4724 extern __inline __m128i
4725 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4726 _mm512_maskz_cvtsepi32_epi8 (__mmask16 __M
, __m512i __A
)
4728 return (__m128i
) __builtin_ia32_pmovsdb512_mask ((__v16si
) __A
,
4730 _mm_setzero_si128 (),
4734 extern __inline __m128i
4735 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4736 _mm512_cvtusepi32_epi8 (__m512i __A
)
4738 return (__m128i
) __builtin_ia32_pmovusdb512_mask ((__v16si
) __A
,
4740 _mm_undefined_si128 (),
4744 extern __inline
void
4745 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4746 _mm512_mask_cvtusepi32_storeu_epi8 (void * __P
, __mmask16 __M
, __m512i __A
)
4748 __builtin_ia32_pmovusdb512mem_mask ((__v16qi
*) __P
, (__v16si
) __A
, __M
);
4751 extern __inline __m128i
4752 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4753 _mm512_mask_cvtusepi32_epi8 (__m128i __O
, __mmask16 __M
, __m512i __A
)
4755 return (__m128i
) __builtin_ia32_pmovusdb512_mask ((__v16si
) __A
,
4760 extern __inline __m128i
4761 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4762 _mm512_maskz_cvtusepi32_epi8 (__mmask16 __M
, __m512i __A
)
4764 return (__m128i
) __builtin_ia32_pmovusdb512_mask ((__v16si
) __A
,
4766 _mm_setzero_si128 (),
4770 extern __inline __m256i
4771 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4772 _mm512_cvtepi32_epi16 (__m512i __A
)
4774 return (__m256i
) __builtin_ia32_pmovdw512_mask ((__v16si
) __A
,
4776 _mm256_undefined_si256 (),
4780 extern __inline
void
4781 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4782 _mm512_mask_cvtepi32_storeu_epi16 (void * __P
, __mmask16 __M
, __m512i __A
)
4784 __builtin_ia32_pmovdw512mem_mask ((__v16hi
*) __P
, (__v16si
) __A
, __M
);
4787 extern __inline __m256i
4788 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4789 _mm512_mask_cvtepi32_epi16 (__m256i __O
, __mmask16 __M
, __m512i __A
)
4791 return (__m256i
) __builtin_ia32_pmovdw512_mask ((__v16si
) __A
,
4792 (__v16hi
) __O
, __M
);
4795 extern __inline __m256i
4796 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4797 _mm512_maskz_cvtepi32_epi16 (__mmask16 __M
, __m512i __A
)
4799 return (__m256i
) __builtin_ia32_pmovdw512_mask ((__v16si
) __A
,
4801 _mm256_setzero_si256 (),
4805 extern __inline __m256i
4806 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4807 _mm512_cvtsepi32_epi16 (__m512i __A
)
4809 return (__m256i
) __builtin_ia32_pmovsdw512_mask ((__v16si
) __A
,
4811 _mm256_undefined_si256 (),
4815 extern __inline
void
4816 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4817 _mm512_mask_cvtsepi32_storeu_epi16 (void *__P
, __mmask16 __M
, __m512i __A
)
4819 __builtin_ia32_pmovsdw512mem_mask ((__v16hi
*) __P
, (__v16si
) __A
, __M
);
4822 extern __inline __m256i
4823 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4824 _mm512_mask_cvtsepi32_epi16 (__m256i __O
, __mmask16 __M
, __m512i __A
)
4826 return (__m256i
) __builtin_ia32_pmovsdw512_mask ((__v16si
) __A
,
4827 (__v16hi
) __O
, __M
);
4830 extern __inline __m256i
4831 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4832 _mm512_maskz_cvtsepi32_epi16 (__mmask16 __M
, __m512i __A
)
4834 return (__m256i
) __builtin_ia32_pmovsdw512_mask ((__v16si
) __A
,
4836 _mm256_setzero_si256 (),
4840 extern __inline __m256i
4841 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4842 _mm512_cvtusepi32_epi16 (__m512i __A
)
4844 return (__m256i
) __builtin_ia32_pmovusdw512_mask ((__v16si
) __A
,
4846 _mm256_undefined_si256 (),
4850 extern __inline
void
4851 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4852 _mm512_mask_cvtusepi32_storeu_epi16 (void *__P
, __mmask16 __M
, __m512i __A
)
4854 __builtin_ia32_pmovusdw512mem_mask ((__v16hi
*) __P
, (__v16si
) __A
, __M
);
4857 extern __inline __m256i
4858 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4859 _mm512_mask_cvtusepi32_epi16 (__m256i __O
, __mmask16 __M
, __m512i __A
)
4861 return (__m256i
) __builtin_ia32_pmovusdw512_mask ((__v16si
) __A
,
4866 extern __inline __m256i
4867 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4868 _mm512_maskz_cvtusepi32_epi16 (__mmask16 __M
, __m512i __A
)
4870 return (__m256i
) __builtin_ia32_pmovusdw512_mask ((__v16si
) __A
,
4872 _mm256_setzero_si256 (),
4876 extern __inline __m256i
4877 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4878 _mm512_cvtepi64_epi32 (__m512i __A
)
4880 return (__m256i
) __builtin_ia32_pmovqd512_mask ((__v8di
) __A
,
4882 _mm256_undefined_si256 (),
4886 extern __inline
void
4887 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4888 _mm512_mask_cvtepi64_storeu_epi32 (void* __P
, __mmask8 __M
, __m512i __A
)
4890 __builtin_ia32_pmovqd512mem_mask ((__v8si
*) __P
, (__v8di
) __A
, __M
);
4893 extern __inline __m256i
4894 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4895 _mm512_mask_cvtepi64_epi32 (__m256i __O
, __mmask8 __M
, __m512i __A
)
4897 return (__m256i
) __builtin_ia32_pmovqd512_mask ((__v8di
) __A
,
4901 extern __inline __m256i
4902 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4903 _mm512_maskz_cvtepi64_epi32 (__mmask8 __M
, __m512i __A
)
4905 return (__m256i
) __builtin_ia32_pmovqd512_mask ((__v8di
) __A
,
4907 _mm256_setzero_si256 (),
4911 extern __inline __m256i
4912 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4913 _mm512_cvtsepi64_epi32 (__m512i __A
)
4915 return (__m256i
) __builtin_ia32_pmovsqd512_mask ((__v8di
) __A
,
4917 _mm256_undefined_si256 (),
4921 extern __inline
void
4922 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4923 _mm512_mask_cvtsepi64_storeu_epi32 (void *__P
, __mmask8 __M
, __m512i __A
)
4925 __builtin_ia32_pmovsqd512mem_mask ((__v8si
*) __P
, (__v8di
) __A
, __M
);
4928 extern __inline __m256i
4929 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4930 _mm512_mask_cvtsepi64_epi32 (__m256i __O
, __mmask8 __M
, __m512i __A
)
4932 return (__m256i
) __builtin_ia32_pmovsqd512_mask ((__v8di
) __A
,
4936 extern __inline __m256i
4937 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4938 _mm512_maskz_cvtsepi64_epi32 (__mmask8 __M
, __m512i __A
)
4940 return (__m256i
) __builtin_ia32_pmovsqd512_mask ((__v8di
) __A
,
4942 _mm256_setzero_si256 (),
4946 extern __inline __m256i
4947 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4948 _mm512_cvtusepi64_epi32 (__m512i __A
)
4950 return (__m256i
) __builtin_ia32_pmovusqd512_mask ((__v8di
) __A
,
4952 _mm256_undefined_si256 (),
4956 extern __inline
void
4957 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4958 _mm512_mask_cvtusepi64_storeu_epi32 (void* __P
, __mmask8 __M
, __m512i __A
)
4960 __builtin_ia32_pmovusqd512mem_mask ((__v8si
*) __P
, (__v8di
) __A
, __M
);
4963 extern __inline __m256i
4964 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4965 _mm512_mask_cvtusepi64_epi32 (__m256i __O
, __mmask8 __M
, __m512i __A
)
4967 return (__m256i
) __builtin_ia32_pmovusqd512_mask ((__v8di
) __A
,
4971 extern __inline __m256i
4972 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4973 _mm512_maskz_cvtusepi64_epi32 (__mmask8 __M
, __m512i __A
)
4975 return (__m256i
) __builtin_ia32_pmovusqd512_mask ((__v8di
) __A
,
4977 _mm256_setzero_si256 (),
4981 extern __inline __m128i
4982 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4983 _mm512_cvtepi64_epi16 (__m512i __A
)
4985 return (__m128i
) __builtin_ia32_pmovqw512_mask ((__v8di
) __A
,
4987 _mm_undefined_si128 (),
4991 extern __inline
void
4992 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4993 _mm512_mask_cvtepi64_storeu_epi16 (void *__P
, __mmask8 __M
, __m512i __A
)
4995 __builtin_ia32_pmovqw512mem_mask ((__v8hi
*) __P
, (__v8di
) __A
, __M
);
4998 extern __inline __m128i
4999 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5000 _mm512_mask_cvtepi64_epi16 (__m128i __O
, __mmask8 __M
, __m512i __A
)
5002 return (__m128i
) __builtin_ia32_pmovqw512_mask ((__v8di
) __A
,
5006 extern __inline __m128i
5007 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5008 _mm512_maskz_cvtepi64_epi16 (__mmask8 __M
, __m512i __A
)
5010 return (__m128i
) __builtin_ia32_pmovqw512_mask ((__v8di
) __A
,
5012 _mm_setzero_si128 (),
5016 extern __inline __m128i
5017 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5018 _mm512_cvtsepi64_epi16 (__m512i __A
)
5020 return (__m128i
) __builtin_ia32_pmovsqw512_mask ((__v8di
) __A
,
5022 _mm_undefined_si128 (),
5026 extern __inline
void
5027 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5028 _mm512_mask_cvtsepi64_storeu_epi16 (void * __P
, __mmask8 __M
, __m512i __A
)
5030 __builtin_ia32_pmovsqw512mem_mask ((__v8hi
*) __P
, (__v8di
) __A
, __M
);
5033 extern __inline __m128i
5034 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5035 _mm512_mask_cvtsepi64_epi16 (__m128i __O
, __mmask8 __M
, __m512i __A
)
5037 return (__m128i
) __builtin_ia32_pmovsqw512_mask ((__v8di
) __A
,
5041 extern __inline __m128i
5042 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5043 _mm512_maskz_cvtsepi64_epi16 (__mmask8 __M
, __m512i __A
)
5045 return (__m128i
) __builtin_ia32_pmovsqw512_mask ((__v8di
) __A
,
5047 _mm_setzero_si128 (),
5051 extern __inline __m128i
5052 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5053 _mm512_cvtusepi64_epi16 (__m512i __A
)
5055 return (__m128i
) __builtin_ia32_pmovusqw512_mask ((__v8di
) __A
,
5057 _mm_undefined_si128 (),
5061 extern __inline
void
5062 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5063 _mm512_mask_cvtusepi64_storeu_epi16 (void *__P
, __mmask8 __M
, __m512i __A
)
5065 __builtin_ia32_pmovusqw512mem_mask ((__v8hi
*) __P
, (__v8di
) __A
, __M
);
5068 extern __inline __m128i
5069 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5070 _mm512_mask_cvtusepi64_epi16 (__m128i __O
, __mmask8 __M
, __m512i __A
)
5072 return (__m128i
) __builtin_ia32_pmovusqw512_mask ((__v8di
) __A
,
5076 extern __inline __m128i
5077 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5078 _mm512_maskz_cvtusepi64_epi16 (__mmask8 __M
, __m512i __A
)
5080 return (__m128i
) __builtin_ia32_pmovusqw512_mask ((__v8di
) __A
,
5082 _mm_setzero_si128 (),
5086 extern __inline __m128i
5087 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5088 _mm512_cvtepi64_epi8 (__m512i __A
)
5090 return (__m128i
) __builtin_ia32_pmovqb512_mask ((__v8di
) __A
,
5092 _mm_undefined_si128 (),
5096 extern __inline
void
5097 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5098 _mm512_mask_cvtepi64_storeu_epi8 (void * __P
, __mmask8 __M
, __m512i __A
)
5100 __builtin_ia32_pmovqb512mem_mask ((__v16qi
*) __P
, (__v8di
) __A
, __M
);
5103 extern __inline __m128i
5104 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5105 _mm512_mask_cvtepi64_epi8 (__m128i __O
, __mmask8 __M
, __m512i __A
)
5107 return (__m128i
) __builtin_ia32_pmovqb512_mask ((__v8di
) __A
,
5108 (__v16qi
) __O
, __M
);
5111 extern __inline __m128i
5112 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5113 _mm512_maskz_cvtepi64_epi8 (__mmask8 __M
, __m512i __A
)
5115 return (__m128i
) __builtin_ia32_pmovqb512_mask ((__v8di
) __A
,
5117 _mm_setzero_si128 (),
5121 extern __inline __m128i
5122 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5123 _mm512_cvtsepi64_epi8 (__m512i __A
)
5125 return (__m128i
) __builtin_ia32_pmovsqb512_mask ((__v8di
) __A
,
5127 _mm_undefined_si128 (),
5131 extern __inline
void
5132 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5133 _mm512_mask_cvtsepi64_storeu_epi8 (void * __P
, __mmask8 __M
, __m512i __A
)
5135 __builtin_ia32_pmovsqb512mem_mask ((__v16qi
*) __P
, (__v8di
) __A
, __M
);
5138 extern __inline __m128i
5139 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5140 _mm512_mask_cvtsepi64_epi8 (__m128i __O
, __mmask8 __M
, __m512i __A
)
5142 return (__m128i
) __builtin_ia32_pmovsqb512_mask ((__v8di
) __A
,
5143 (__v16qi
) __O
, __M
);
5146 extern __inline __m128i
5147 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5148 _mm512_maskz_cvtsepi64_epi8 (__mmask8 __M
, __m512i __A
)
5150 return (__m128i
) __builtin_ia32_pmovsqb512_mask ((__v8di
) __A
,
5152 _mm_setzero_si128 (),
5156 extern __inline __m128i
5157 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5158 _mm512_cvtusepi64_epi8 (__m512i __A
)
5160 return (__m128i
) __builtin_ia32_pmovusqb512_mask ((__v8di
) __A
,
5162 _mm_undefined_si128 (),
5166 extern __inline
void
5167 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5168 _mm512_mask_cvtusepi64_storeu_epi8 (void * __P
, __mmask8 __M
, __m512i __A
)
5170 __builtin_ia32_pmovusqb512mem_mask ((__v16qi
*) __P
, (__v8di
) __A
, __M
);
5173 extern __inline __m128i
5174 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5175 _mm512_mask_cvtusepi64_epi8 (__m128i __O
, __mmask8 __M
, __m512i __A
)
5177 return (__m128i
) __builtin_ia32_pmovusqb512_mask ((__v8di
) __A
,
5182 extern __inline __m128i
5183 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5184 _mm512_maskz_cvtusepi64_epi8 (__mmask8 __M
, __m512i __A
)
5186 return (__m128i
) __builtin_ia32_pmovusqb512_mask ((__v8di
) __A
,
5188 _mm_setzero_si128 (),
5192 extern __inline __m512d
5193 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5194 _mm512_cvtepi32_pd (__m256i __A
)
5196 return (__m512d
) __builtin_ia32_cvtdq2pd512_mask ((__v8si
) __A
,
5198 _mm512_undefined_pd (),
5202 extern __inline __m512d
5203 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5204 _mm512_mask_cvtepi32_pd (__m512d __W
, __mmask8 __U
, __m256i __A
)
5206 return (__m512d
) __builtin_ia32_cvtdq2pd512_mask ((__v8si
) __A
,
5211 extern __inline __m512d
5212 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5213 _mm512_maskz_cvtepi32_pd (__mmask8 __U
, __m256i __A
)
5215 return (__m512d
) __builtin_ia32_cvtdq2pd512_mask ((__v8si
) __A
,
5217 _mm512_setzero_pd (),
5221 extern __inline __m512d
5222 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5223 _mm512_cvtepu32_pd (__m256i __A
)
5225 return (__m512d
) __builtin_ia32_cvtudq2pd512_mask ((__v8si
) __A
,
5227 _mm512_undefined_pd (),
5231 extern __inline __m512d
5232 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5233 _mm512_mask_cvtepu32_pd (__m512d __W
, __mmask8 __U
, __m256i __A
)
5235 return (__m512d
) __builtin_ia32_cvtudq2pd512_mask ((__v8si
) __A
,
5240 extern __inline __m512d
5241 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5242 _mm512_maskz_cvtepu32_pd (__mmask8 __U
, __m256i __A
)
5244 return (__m512d
) __builtin_ia32_cvtudq2pd512_mask ((__v8si
) __A
,
5246 _mm512_setzero_pd (),
5251 extern __inline __m512
5252 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5253 _mm512_cvt_roundepi32_ps (__m512i __A
, const int __R
)
5255 return (__m512
) __builtin_ia32_cvtdq2ps512_mask ((__v16si
) __A
,
5257 _mm512_undefined_ps (),
5258 (__mmask16
) -1, __R
);
5261 extern __inline __m512
5262 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5263 _mm512_mask_cvt_roundepi32_ps (__m512 __W
, __mmask16 __U
, __m512i __A
,
5266 return (__m512
) __builtin_ia32_cvtdq2ps512_mask ((__v16si
) __A
,
5268 (__mmask16
) __U
, __R
);
5271 extern __inline __m512
5272 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5273 _mm512_maskz_cvt_roundepi32_ps (__mmask16 __U
, __m512i __A
, const int __R
)
5275 return (__m512
) __builtin_ia32_cvtdq2ps512_mask ((__v16si
) __A
,
5277 _mm512_setzero_ps (),
5278 (__mmask16
) __U
, __R
);
5281 extern __inline __m512
5282 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5283 _mm512_cvt_roundepu32_ps (__m512i __A
, const int __R
)
5285 return (__m512
) __builtin_ia32_cvtudq2ps512_mask ((__v16si
) __A
,
5287 _mm512_undefined_ps (),
5288 (__mmask16
) -1, __R
);
5291 extern __inline __m512
5292 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5293 _mm512_mask_cvt_roundepu32_ps (__m512 __W
, __mmask16 __U
, __m512i __A
,
5296 return (__m512
) __builtin_ia32_cvtudq2ps512_mask ((__v16si
) __A
,
5298 (__mmask16
) __U
, __R
);
5301 extern __inline __m512
5302 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5303 _mm512_maskz_cvt_roundepu32_ps (__mmask16 __U
, __m512i __A
, const int __R
)
5305 return (__m512
) __builtin_ia32_cvtudq2ps512_mask ((__v16si
) __A
,
5307 _mm512_setzero_ps (),
5308 (__mmask16
) __U
, __R
);
5312 #define _mm512_cvt_roundepi32_ps(A, B) \
5313 (__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(A), (__v16sf)_mm512_undefined_ps(), -1, B)
5315 #define _mm512_mask_cvt_roundepi32_ps(W, U, A, B) \
5316 (__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(A), W, U, B)
5318 #define _mm512_maskz_cvt_roundepi32_ps(U, A, B) \
5319 (__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(A), (__v16sf)_mm512_setzero_ps(), U, B)
5321 #define _mm512_cvt_roundepu32_ps(A, B) \
5322 (__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(A), (__v16sf)_mm512_undefined_ps(), -1, B)
5324 #define _mm512_mask_cvt_roundepu32_ps(W, U, A, B) \
5325 (__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(A), W, U, B)
5327 #define _mm512_maskz_cvt_roundepu32_ps(U, A, B) \
5328 (__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(A), (__v16sf)_mm512_setzero_ps(), U, B)
5332 extern __inline __m256d
5333 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5334 _mm512_extractf64x4_pd (__m512d __A
, const int __imm
)
5336 return (__m256d
) __builtin_ia32_extractf64x4_mask ((__v8df
) __A
,
5339 _mm256_undefined_pd (),
5343 extern __inline __m256d
5344 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5345 _mm512_mask_extractf64x4_pd (__m256d __W
, __mmask8 __U
, __m512d __A
,
5348 return (__m256d
) __builtin_ia32_extractf64x4_mask ((__v8df
) __A
,
5354 extern __inline __m256d
5355 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5356 _mm512_maskz_extractf64x4_pd (__mmask8 __U
, __m512d __A
, const int __imm
)
5358 return (__m256d
) __builtin_ia32_extractf64x4_mask ((__v8df
) __A
,
5361 _mm256_setzero_pd (),
5365 extern __inline __m128
5366 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5367 _mm512_extractf32x4_ps (__m512 __A
, const int __imm
)
5369 return (__m128
) __builtin_ia32_extractf32x4_mask ((__v16sf
) __A
,
5372 _mm_undefined_ps (),
5376 extern __inline __m128
5377 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5378 _mm512_mask_extractf32x4_ps (__m128 __W
, __mmask8 __U
, __m512 __A
,
5381 return (__m128
) __builtin_ia32_extractf32x4_mask ((__v16sf
) __A
,
5387 extern __inline __m128
5388 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5389 _mm512_maskz_extractf32x4_ps (__mmask8 __U
, __m512 __A
, const int __imm
)
5391 return (__m128
) __builtin_ia32_extractf32x4_mask ((__v16sf
) __A
,
5398 extern __inline __m256i
5399 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5400 _mm512_extracti64x4_epi64 (__m512i __A
, const int __imm
)
5402 return (__m256i
) __builtin_ia32_extracti64x4_mask ((__v8di
) __A
,
5405 _mm256_undefined_si256 (),
5409 extern __inline __m256i
5410 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5411 _mm512_mask_extracti64x4_epi64 (__m256i __W
, __mmask8 __U
, __m512i __A
,
5414 return (__m256i
) __builtin_ia32_extracti64x4_mask ((__v8di
) __A
,
5420 extern __inline __m256i
5421 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5422 _mm512_maskz_extracti64x4_epi64 (__mmask8 __U
, __m512i __A
, const int __imm
)
5424 return (__m256i
) __builtin_ia32_extracti64x4_mask ((__v8di
) __A
,
5427 _mm256_setzero_si256 (),
5431 extern __inline __m128i
5432 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5433 _mm512_extracti32x4_epi32 (__m512i __A
, const int __imm
)
5435 return (__m128i
) __builtin_ia32_extracti32x4_mask ((__v16si
) __A
,
5438 _mm_undefined_si128 (),
5442 extern __inline __m128i
5443 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5444 _mm512_mask_extracti32x4_epi32 (__m128i __W
, __mmask8 __U
, __m512i __A
,
5447 return (__m128i
) __builtin_ia32_extracti32x4_mask ((__v16si
) __A
,
5453 extern __inline __m128i
5454 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5455 _mm512_maskz_extracti32x4_epi32 (__mmask8 __U
, __m512i __A
, const int __imm
)
5457 return (__m128i
) __builtin_ia32_extracti32x4_mask ((__v16si
) __A
,
5460 _mm_setzero_si128 (),
5465 #define _mm512_extractf64x4_pd(X, C) \
5466 ((__m256d) __builtin_ia32_extractf64x4_mask ((__v8df)(__m512d) (X), \
5468 (__v4df)(__m256d)_mm256_undefined_pd(),\
5471 #define _mm512_mask_extractf64x4_pd(W, U, X, C) \
5472 ((__m256d) __builtin_ia32_extractf64x4_mask ((__v8df)(__m512d) (X), \
5474 (__v4df)(__m256d)(W),\
5477 #define _mm512_maskz_extractf64x4_pd(U, X, C) \
5478 ((__m256d) __builtin_ia32_extractf64x4_mask ((__v8df)(__m512d) (X), \
5480 (__v4df)(__m256d)_mm256_setzero_pd(),\
5483 #define _mm512_extractf32x4_ps(X, C) \
5484 ((__m128) __builtin_ia32_extractf32x4_mask ((__v16sf)(__m512) (X), \
5486 (__v4sf)(__m128)_mm_undefined_ps(),\
5489 #define _mm512_mask_extractf32x4_ps(W, U, X, C) \
5490 ((__m128) __builtin_ia32_extractf32x4_mask ((__v16sf)(__m512) (X), \
5492 (__v4sf)(__m128)(W),\
5495 #define _mm512_maskz_extractf32x4_ps(U, X, C) \
5496 ((__m128) __builtin_ia32_extractf32x4_mask ((__v16sf)(__m512) (X), \
5498 (__v4sf)(__m128)_mm_setzero_ps(),\
5501 #define _mm512_extracti64x4_epi64(X, C) \
5502 ((__m256i) __builtin_ia32_extracti64x4_mask ((__v8di)(__m512i) (X), \
5504 (__v4di)(__m256i)_mm256_undefined_si256 (),\
5507 #define _mm512_mask_extracti64x4_epi64(W, U, X, C) \
5508 ((__m256i) __builtin_ia32_extracti64x4_mask ((__v8di)(__m512i) (X), \
5510 (__v4di)(__m256i)(W),\
5513 #define _mm512_maskz_extracti64x4_epi64(U, X, C) \
5514 ((__m256i) __builtin_ia32_extracti64x4_mask ((__v8di)(__m512i) (X), \
5516 (__v4di)(__m256i)_mm256_setzero_si256 (),\
5519 #define _mm512_extracti32x4_epi32(X, C) \
5520 ((__m128i) __builtin_ia32_extracti32x4_mask ((__v16si)(__m512i) (X), \
5522 (__v4si)(__m128i)_mm_undefined_si128 (),\
5525 #define _mm512_mask_extracti32x4_epi32(W, U, X, C) \
5526 ((__m128i) __builtin_ia32_extracti32x4_mask ((__v16si)(__m512i) (X), \
5528 (__v4si)(__m128i)(W),\
5531 #define _mm512_maskz_extracti32x4_epi32(U, X, C) \
5532 ((__m128i) __builtin_ia32_extracti32x4_mask ((__v16si)(__m512i) (X), \
5534 (__v4si)(__m128i)_mm_setzero_si128 (),\
5539 extern __inline __m512i
5540 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5541 _mm512_inserti32x4 (__m512i __A
, __m128i __B
, const int __imm
)
5543 return (__m512i
) __builtin_ia32_inserti32x4_mask ((__v16si
) __A
,
5549 extern __inline __m512
5550 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5551 _mm512_insertf32x4 (__m512 __A
, __m128 __B
, const int __imm
)
5553 return (__m512
) __builtin_ia32_insertf32x4_mask ((__v16sf
) __A
,
5559 extern __inline __m512i
5560 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5561 _mm512_inserti64x4 (__m512i __A
, __m256i __B
, const int __imm
)
5563 return (__m512i
) __builtin_ia32_inserti64x4_mask ((__v8di
) __A
,
5567 _mm512_undefined_epi32 (),
5571 extern __inline __m512i
5572 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5573 _mm512_mask_inserti64x4 (__m512i __W
, __mmask8 __U
, __m512i __A
,
5574 __m256i __B
, const int __imm
)
5576 return (__m512i
) __builtin_ia32_inserti64x4_mask ((__v8di
) __A
,
5583 extern __inline __m512i
5584 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5585 _mm512_maskz_inserti64x4 (__mmask8 __U
, __m512i __A
, __m256i __B
,
5588 return (__m512i
) __builtin_ia32_inserti64x4_mask ((__v8di
) __A
,
5592 _mm512_setzero_si512 (),
5596 extern __inline __m512d
5597 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5598 _mm512_insertf64x4 (__m512d __A
, __m256d __B
, const int __imm
)
5600 return (__m512d
) __builtin_ia32_insertf64x4_mask ((__v8df
) __A
,
5604 _mm512_undefined_pd (),
5608 extern __inline __m512d
5609 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5610 _mm512_mask_insertf64x4 (__m512d __W
, __mmask8 __U
, __m512d __A
,
5611 __m256d __B
, const int __imm
)
5613 return (__m512d
) __builtin_ia32_insertf64x4_mask ((__v8df
) __A
,
5620 extern __inline __m512d
5621 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5622 _mm512_maskz_insertf64x4 (__mmask8 __U
, __m512d __A
, __m256d __B
,
5625 return (__m512d
) __builtin_ia32_insertf64x4_mask ((__v8df
) __A
,
5629 _mm512_setzero_pd (),
5633 #define _mm512_insertf32x4(X, Y, C) \
5634 ((__m512) __builtin_ia32_insertf32x4_mask ((__v16sf)(__m512) (X), \
5635 (__v4sf)(__m128) (Y), (int) (C), (__v16sf)(__m512) (X), (__mmask16)(-1)))
5637 #define _mm512_inserti32x4(X, Y, C) \
5638 ((__m512i) __builtin_ia32_inserti32x4_mask ((__v16si)(__m512i) (X), \
5639 (__v4si)(__m128i) (Y), (int) (C), (__v16si)(__m512i) (X), (__mmask16)(-1)))
5641 #define _mm512_insertf64x4(X, Y, C) \
5642 ((__m512d) __builtin_ia32_insertf64x4_mask ((__v8df)(__m512d) (X), \
5643 (__v4df)(__m256d) (Y), (int) (C), \
5644 (__v8df)(__m512d)_mm512_undefined_pd(), \
5647 #define _mm512_mask_insertf64x4(W, U, X, Y, C) \
5648 ((__m512d) __builtin_ia32_insertf64x4_mask ((__v8df)(__m512d) (X), \
5649 (__v4df)(__m256d) (Y), (int) (C), \
5650 (__v8df)(__m512d)(W), \
5653 #define _mm512_maskz_insertf64x4(U, X, Y, C) \
5654 ((__m512d) __builtin_ia32_insertf64x4_mask ((__v8df)(__m512d) (X), \
5655 (__v4df)(__m256d) (Y), (int) (C), \
5656 (__v8df)(__m512d)_mm512_setzero_pd(), \
5659 #define _mm512_inserti64x4(X, Y, C) \
5660 ((__m512i) __builtin_ia32_inserti64x4_mask ((__v8di)(__m512i) (X), \
5661 (__v4di)(__m256i) (Y), (int) (C), \
5662 (__v8di)(__m512i)_mm512_undefined_epi32 (), \
5665 #define _mm512_mask_inserti64x4(W, U, X, Y, C) \
5666 ((__m512i) __builtin_ia32_inserti64x4_mask ((__v8di)(__m512i) (X), \
5667 (__v4di)(__m256i) (Y), (int) (C),\
5668 (__v8di)(__m512i)(W),\
5671 #define _mm512_maskz_inserti64x4(U, X, Y, C) \
5672 ((__m512i) __builtin_ia32_inserti64x4_mask ((__v8di)(__m512i) (X), \
5673 (__v4di)(__m256i) (Y), (int) (C), \
5674 (__v8di)(__m512i)_mm512_setzero_si512 (), \
5678 extern __inline __m512d
5679 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5680 _mm512_loadu_pd (void const *__P
)
5682 return *(__m512d_u
*)__P
;
5685 extern __inline __m512d
5686 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5687 _mm512_mask_loadu_pd (__m512d __W
, __mmask8 __U
, void const *__P
)
5689 return (__m512d
) __builtin_ia32_loadupd512_mask ((const double *) __P
,
5694 extern __inline __m512d
5695 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5696 _mm512_maskz_loadu_pd (__mmask8 __U
, void const *__P
)
5698 return (__m512d
) __builtin_ia32_loadupd512_mask ((const double *) __P
,
5700 _mm512_setzero_pd (),
5704 extern __inline
void
5705 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5706 _mm512_storeu_pd (void *__P
, __m512d __A
)
5708 *(__m512d_u
*)__P
= __A
;
5711 extern __inline
void
5712 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5713 _mm512_mask_storeu_pd (void *__P
, __mmask8 __U
, __m512d __A
)
5715 __builtin_ia32_storeupd512_mask ((double *) __P
, (__v8df
) __A
,
5719 extern __inline __m512
5720 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5721 _mm512_loadu_ps (void const *__P
)
5723 return *(__m512_u
*)__P
;
5726 extern __inline __m512
5727 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5728 _mm512_mask_loadu_ps (__m512 __W
, __mmask16 __U
, void const *__P
)
5730 return (__m512
) __builtin_ia32_loadups512_mask ((const float *) __P
,
5735 extern __inline __m512
5736 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5737 _mm512_maskz_loadu_ps (__mmask16 __U
, void const *__P
)
5739 return (__m512
) __builtin_ia32_loadups512_mask ((const float *) __P
,
5741 _mm512_setzero_ps (),
5745 extern __inline
void
5746 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5747 _mm512_storeu_ps (void *__P
, __m512 __A
)
5749 *(__m512_u
*)__P
= __A
;
5752 extern __inline
void
5753 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5754 _mm512_mask_storeu_ps (void *__P
, __mmask16 __U
, __m512 __A
)
5756 __builtin_ia32_storeups512_mask ((float *) __P
, (__v16sf
) __A
,
5760 extern __inline __m512i
5761 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5762 _mm512_mask_loadu_epi64 (__m512i __W
, __mmask8 __U
, void const *__P
)
5764 return (__m512i
) __builtin_ia32_loaddqudi512_mask ((const long long *) __P
,
5769 extern __inline __m512i
5770 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5771 _mm512_maskz_loadu_epi64 (__mmask8 __U
, void const *__P
)
5773 return (__m512i
) __builtin_ia32_loaddqudi512_mask ((const long long *) __P
,
5775 _mm512_setzero_si512 (),
5779 extern __inline
void
5780 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5781 _mm512_mask_storeu_epi64 (void *__P
, __mmask8 __U
, __m512i __A
)
5783 __builtin_ia32_storedqudi512_mask ((long long *) __P
, (__v8di
) __A
,
5787 extern __inline __m512i
5788 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5789 _mm512_loadu_si512 (void const *__P
)
5791 return *(__m512i_u
*)__P
;
5794 extern __inline __m512i
5795 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5796 _mm512_mask_loadu_epi32 (__m512i __W
, __mmask16 __U
, void const *__P
)
5798 return (__m512i
) __builtin_ia32_loaddqusi512_mask ((const int *) __P
,
5803 extern __inline __m512i
5804 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5805 _mm512_maskz_loadu_epi32 (__mmask16 __U
, void const *__P
)
5807 return (__m512i
) __builtin_ia32_loaddqusi512_mask ((const int *) __P
,
5809 _mm512_setzero_si512 (),
5813 extern __inline
void
5814 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5815 _mm512_storeu_si512 (void *__P
, __m512i __A
)
5817 *(__m512i_u
*)__P
= __A
;
5820 extern __inline
void
5821 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5822 _mm512_mask_storeu_epi32 (void *__P
, __mmask16 __U
, __m512i __A
)
5824 __builtin_ia32_storedqusi512_mask ((int *) __P
, (__v16si
) __A
,
5828 extern __inline __m512d
5829 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5830 _mm512_permutevar_pd (__m512d __A
, __m512i __C
)
5832 return (__m512d
) __builtin_ia32_vpermilvarpd512_mask ((__v8df
) __A
,
5835 _mm512_undefined_pd (),
5839 extern __inline __m512d
5840 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5841 _mm512_mask_permutevar_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512i __C
)
5843 return (__m512d
) __builtin_ia32_vpermilvarpd512_mask ((__v8df
) __A
,
5849 extern __inline __m512d
5850 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5851 _mm512_maskz_permutevar_pd (__mmask8 __U
, __m512d __A
, __m512i __C
)
5853 return (__m512d
) __builtin_ia32_vpermilvarpd512_mask ((__v8df
) __A
,
5856 _mm512_setzero_pd (),
5860 extern __inline __m512
5861 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5862 _mm512_permutevar_ps (__m512 __A
, __m512i __C
)
5864 return (__m512
) __builtin_ia32_vpermilvarps512_mask ((__v16sf
) __A
,
5867 _mm512_undefined_ps (),
5871 extern __inline __m512
5872 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5873 _mm512_mask_permutevar_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512i __C
)
5875 return (__m512
) __builtin_ia32_vpermilvarps512_mask ((__v16sf
) __A
,
5881 extern __inline __m512
5882 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5883 _mm512_maskz_permutevar_ps (__mmask16 __U
, __m512 __A
, __m512i __C
)
5885 return (__m512
) __builtin_ia32_vpermilvarps512_mask ((__v16sf
) __A
,
5888 _mm512_setzero_ps (),
5892 extern __inline __m512i
5893 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5894 _mm512_permutex2var_epi64 (__m512i __A
, __m512i __I
, __m512i __B
)
5896 return (__m512i
) __builtin_ia32_vpermt2varq512_mask ((__v8di
) __I
5903 extern __inline __m512i
5904 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5905 _mm512_mask_permutex2var_epi64 (__m512i __A
, __mmask8 __U
, __m512i __I
,
5908 return (__m512i
) __builtin_ia32_vpermt2varq512_mask ((__v8di
) __I
5915 extern __inline __m512i
5916 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5917 _mm512_mask2_permutex2var_epi64 (__m512i __A
, __m512i __I
,
5918 __mmask8 __U
, __m512i __B
)
5920 return (__m512i
) __builtin_ia32_vpermi2varq512_mask ((__v8di
) __A
,
5927 extern __inline __m512i
5928 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5929 _mm512_maskz_permutex2var_epi64 (__mmask8 __U
, __m512i __A
,
5930 __m512i __I
, __m512i __B
)
5932 return (__m512i
) __builtin_ia32_vpermt2varq512_maskz ((__v8di
) __I
5939 extern __inline __m512i
5940 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5941 _mm512_permutex2var_epi32 (__m512i __A
, __m512i __I
, __m512i __B
)
5943 return (__m512i
) __builtin_ia32_vpermt2vard512_mask ((__v16si
) __I
5950 extern __inline __m512i
5951 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5952 _mm512_mask_permutex2var_epi32 (__m512i __A
, __mmask16 __U
,
5953 __m512i __I
, __m512i __B
)
5955 return (__m512i
) __builtin_ia32_vpermt2vard512_mask ((__v16si
) __I
5962 extern __inline __m512i
5963 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5964 _mm512_mask2_permutex2var_epi32 (__m512i __A
, __m512i __I
,
5965 __mmask16 __U
, __m512i __B
)
5967 return (__m512i
) __builtin_ia32_vpermi2vard512_mask ((__v16si
) __A
,
5974 extern __inline __m512i
5975 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5976 _mm512_maskz_permutex2var_epi32 (__mmask16 __U
, __m512i __A
,
5977 __m512i __I
, __m512i __B
)
5979 return (__m512i
) __builtin_ia32_vpermt2vard512_maskz ((__v16si
) __I
5986 extern __inline __m512d
5987 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5988 _mm512_permutex2var_pd (__m512d __A
, __m512i __I
, __m512d __B
)
5990 return (__m512d
) __builtin_ia32_vpermt2varpd512_mask ((__v8di
) __I
5997 extern __inline __m512d
5998 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5999 _mm512_mask_permutex2var_pd (__m512d __A
, __mmask8 __U
, __m512i __I
,
6002 return (__m512d
) __builtin_ia32_vpermt2varpd512_mask ((__v8di
) __I
6009 extern __inline __m512d
6010 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6011 _mm512_mask2_permutex2var_pd (__m512d __A
, __m512i __I
, __mmask8 __U
,
6014 return (__m512d
) __builtin_ia32_vpermi2varpd512_mask ((__v8df
) __A
,
6021 extern __inline __m512d
6022 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6023 _mm512_maskz_permutex2var_pd (__mmask8 __U
, __m512d __A
, __m512i __I
,
6026 return (__m512d
) __builtin_ia32_vpermt2varpd512_maskz ((__v8di
) __I
6033 extern __inline __m512
6034 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6035 _mm512_permutex2var_ps (__m512 __A
, __m512i __I
, __m512 __B
)
6037 return (__m512
) __builtin_ia32_vpermt2varps512_mask ((__v16si
) __I
6044 extern __inline __m512
6045 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6046 _mm512_mask_permutex2var_ps (__m512 __A
, __mmask16 __U
, __m512i __I
, __m512 __B
)
6048 return (__m512
) __builtin_ia32_vpermt2varps512_mask ((__v16si
) __I
6055 extern __inline __m512
6056 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6057 _mm512_mask2_permutex2var_ps (__m512 __A
, __m512i __I
, __mmask16 __U
,
6060 return (__m512
) __builtin_ia32_vpermi2varps512_mask ((__v16sf
) __A
,
6067 extern __inline __m512
6068 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6069 _mm512_maskz_permutex2var_ps (__mmask16 __U
, __m512 __A
, __m512i __I
,
6072 return (__m512
) __builtin_ia32_vpermt2varps512_maskz ((__v16si
) __I
6080 extern __inline __m512d
6081 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6082 _mm512_permute_pd (__m512d __X
, const int __C
)
6084 return (__m512d
) __builtin_ia32_vpermilpd512_mask ((__v8df
) __X
, __C
,
6086 _mm512_undefined_pd (),
6090 extern __inline __m512d
6091 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6092 _mm512_mask_permute_pd (__m512d __W
, __mmask8 __U
, __m512d __X
, const int __C
)
6094 return (__m512d
) __builtin_ia32_vpermilpd512_mask ((__v8df
) __X
, __C
,
6099 extern __inline __m512d
6100 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6101 _mm512_maskz_permute_pd (__mmask8 __U
, __m512d __X
, const int __C
)
6103 return (__m512d
) __builtin_ia32_vpermilpd512_mask ((__v8df
) __X
, __C
,
6105 _mm512_setzero_pd (),
6109 extern __inline __m512
6110 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6111 _mm512_permute_ps (__m512 __X
, const int __C
)
6113 return (__m512
) __builtin_ia32_vpermilps512_mask ((__v16sf
) __X
, __C
,
6115 _mm512_undefined_ps (),
6119 extern __inline __m512
6120 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6121 _mm512_mask_permute_ps (__m512 __W
, __mmask16 __U
, __m512 __X
, const int __C
)
6123 return (__m512
) __builtin_ia32_vpermilps512_mask ((__v16sf
) __X
, __C
,
6128 extern __inline __m512
6129 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6130 _mm512_maskz_permute_ps (__mmask16 __U
, __m512 __X
, const int __C
)
6132 return (__m512
) __builtin_ia32_vpermilps512_mask ((__v16sf
) __X
, __C
,
6134 _mm512_setzero_ps (),
6138 #define _mm512_permute_pd(X, C) \
6139 ((__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df)(__m512d)(X), (int)(C), \
6140 (__v8df)(__m512d)_mm512_undefined_pd(),\
6143 #define _mm512_mask_permute_pd(W, U, X, C) \
6144 ((__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df)(__m512d)(X), (int)(C), \
6145 (__v8df)(__m512d)(W), \
6148 #define _mm512_maskz_permute_pd(U, X, C) \
6149 ((__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df)(__m512d)(X), (int)(C), \
6150 (__v8df)(__m512d)_mm512_setzero_pd(), \
6153 #define _mm512_permute_ps(X, C) \
6154 ((__m512) __builtin_ia32_vpermilps512_mask ((__v16sf)(__m512)(X), (int)(C), \
6155 (__v16sf)(__m512)_mm512_undefined_ps(),\
6158 #define _mm512_mask_permute_ps(W, U, X, C) \
6159 ((__m512) __builtin_ia32_vpermilps512_mask ((__v16sf)(__m512)(X), (int)(C), \
6160 (__v16sf)(__m512)(W), \
6163 #define _mm512_maskz_permute_ps(U, X, C) \
6164 ((__m512) __builtin_ia32_vpermilps512_mask ((__v16sf)(__m512)(X), (int)(C), \
6165 (__v16sf)(__m512)_mm512_setzero_ps(), \
6170 extern __inline __m512i
6171 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6172 _mm512_permutex_epi64 (__m512i __X
, const int __I
)
6174 return (__m512i
) __builtin_ia32_permdi512_mask ((__v8di
) __X
, __I
,
6176 _mm512_undefined_epi32 (),
6180 extern __inline __m512i
6181 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6182 _mm512_mask_permutex_epi64 (__m512i __W
, __mmask8 __M
,
6183 __m512i __X
, const int __I
)
6185 return (__m512i
) __builtin_ia32_permdi512_mask ((__v8di
) __X
, __I
,
6190 extern __inline __m512i
6191 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6192 _mm512_maskz_permutex_epi64 (__mmask8 __M
, __m512i __X
, const int __I
)
6194 return (__m512i
) __builtin_ia32_permdi512_mask ((__v8di
) __X
, __I
,
6196 _mm512_setzero_si512 (),
6200 extern __inline __m512d
6201 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6202 _mm512_permutex_pd (__m512d __X
, const int __M
)
6204 return (__m512d
) __builtin_ia32_permdf512_mask ((__v8df
) __X
, __M
,
6206 _mm512_undefined_pd (),
6210 extern __inline __m512d
6211 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6212 _mm512_mask_permutex_pd (__m512d __W
, __mmask8 __U
, __m512d __X
, const int __M
)
6214 return (__m512d
) __builtin_ia32_permdf512_mask ((__v8df
) __X
, __M
,
6219 extern __inline __m512d
6220 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6221 _mm512_maskz_permutex_pd (__mmask8 __U
, __m512d __X
, const int __M
)
6223 return (__m512d
) __builtin_ia32_permdf512_mask ((__v8df
) __X
, __M
,
6225 _mm512_setzero_pd (),
6229 #define _mm512_permutex_pd(X, M) \
6230 ((__m512d) __builtin_ia32_permdf512_mask ((__v8df)(__m512d)(X), (int)(M), \
6231 (__v8df)(__m512d)_mm512_undefined_pd(),\
6234 #define _mm512_mask_permutex_pd(W, U, X, M) \
6235 ((__m512d) __builtin_ia32_permdf512_mask ((__v8df)(__m512d)(X), (int)(M), \
6236 (__v8df)(__m512d)(W), (__mmask8)(U)))
6238 #define _mm512_maskz_permutex_pd(U, X, M) \
6239 ((__m512d) __builtin_ia32_permdf512_mask ((__v8df)(__m512d)(X), (int)(M), \
6240 (__v8df)(__m512d)_mm512_setzero_pd(),\
6243 #define _mm512_permutex_epi64(X, I) \
6244 ((__m512i) __builtin_ia32_permdi512_mask ((__v8di)(__m512i)(X), \
6247 (_mm512_undefined_epi32 ()),\
6250 #define _mm512_maskz_permutex_epi64(M, X, I) \
6251 ((__m512i) __builtin_ia32_permdi512_mask ((__v8di)(__m512i)(X), \
6254 (_mm512_setzero_si512 ()),\
6257 #define _mm512_mask_permutex_epi64(W, M, X, I) \
6258 ((__m512i) __builtin_ia32_permdi512_mask ((__v8di)(__m512i)(X), \
6260 (__v8di)(__m512i)(W), \
6264 extern __inline __m512i
6265 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6266 _mm512_maskz_permutexvar_epi64 (__mmask8 __M
, __m512i __X
, __m512i __Y
)
6268 return (__m512i
) __builtin_ia32_permvardi512_mask ((__v8di
) __Y
,
6271 _mm512_setzero_si512 (),
6275 extern __inline __m512i
6276 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6277 _mm512_permutexvar_epi64 (__m512i __X
, __m512i __Y
)
6279 return (__m512i
) __builtin_ia32_permvardi512_mask ((__v8di
) __Y
,
6282 _mm512_undefined_epi32 (),
6286 extern __inline __m512i
6287 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6288 _mm512_mask_permutexvar_epi64 (__m512i __W
, __mmask8 __M
, __m512i __X
,
6291 return (__m512i
) __builtin_ia32_permvardi512_mask ((__v8di
) __Y
,
6297 extern __inline __m512i
6298 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6299 _mm512_maskz_permutexvar_epi32 (__mmask16 __M
, __m512i __X
, __m512i __Y
)
6301 return (__m512i
) __builtin_ia32_permvarsi512_mask ((__v16si
) __Y
,
6304 _mm512_setzero_si512 (),
6308 extern __inline __m512i
6309 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6310 _mm512_permutexvar_epi32 (__m512i __X
, __m512i __Y
)
6312 return (__m512i
) __builtin_ia32_permvarsi512_mask ((__v16si
) __Y
,
6315 _mm512_undefined_epi32 (),
6319 extern __inline __m512i
6320 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6321 _mm512_mask_permutexvar_epi32 (__m512i __W
, __mmask16 __M
, __m512i __X
,
6324 return (__m512i
) __builtin_ia32_permvarsi512_mask ((__v16si
) __Y
,
6330 extern __inline __m512d
6331 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6332 _mm512_permutexvar_pd (__m512i __X
, __m512d __Y
)
6334 return (__m512d
) __builtin_ia32_permvardf512_mask ((__v8df
) __Y
,
6337 _mm512_undefined_pd (),
6341 extern __inline __m512d
6342 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6343 _mm512_mask_permutexvar_pd (__m512d __W
, __mmask8 __U
, __m512i __X
, __m512d __Y
)
6345 return (__m512d
) __builtin_ia32_permvardf512_mask ((__v8df
) __Y
,
6351 extern __inline __m512d
6352 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6353 _mm512_maskz_permutexvar_pd (__mmask8 __U
, __m512i __X
, __m512d __Y
)
6355 return (__m512d
) __builtin_ia32_permvardf512_mask ((__v8df
) __Y
,
6358 _mm512_setzero_pd (),
6362 extern __inline __m512
6363 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6364 _mm512_permutexvar_ps (__m512i __X
, __m512 __Y
)
6366 return (__m512
) __builtin_ia32_permvarsf512_mask ((__v16sf
) __Y
,
6369 _mm512_undefined_ps (),
6373 extern __inline __m512
6374 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6375 _mm512_mask_permutexvar_ps (__m512 __W
, __mmask16 __U
, __m512i __X
, __m512 __Y
)
6377 return (__m512
) __builtin_ia32_permvarsf512_mask ((__v16sf
) __Y
,
6383 extern __inline __m512
6384 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6385 _mm512_maskz_permutexvar_ps (__mmask16 __U
, __m512i __X
, __m512 __Y
)
6387 return (__m512
) __builtin_ia32_permvarsf512_mask ((__v16sf
) __Y
,
6390 _mm512_setzero_ps (),
6395 extern __inline __m512
6396 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6397 _mm512_shuffle_ps (__m512 __M
, __m512 __V
, const int __imm
)
6399 return (__m512
) __builtin_ia32_shufps512_mask ((__v16sf
) __M
,
6400 (__v16sf
) __V
, __imm
,
6402 _mm512_undefined_ps (),
6406 extern __inline __m512
6407 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6408 _mm512_mask_shuffle_ps (__m512 __W
, __mmask16 __U
, __m512 __M
,
6409 __m512 __V
, const int __imm
)
6411 return (__m512
) __builtin_ia32_shufps512_mask ((__v16sf
) __M
,
6412 (__v16sf
) __V
, __imm
,
6417 extern __inline __m512
6418 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6419 _mm512_maskz_shuffle_ps (__mmask16 __U
, __m512 __M
, __m512 __V
, const int __imm
)
6421 return (__m512
) __builtin_ia32_shufps512_mask ((__v16sf
) __M
,
6422 (__v16sf
) __V
, __imm
,
6424 _mm512_setzero_ps (),
6428 extern __inline __m512d
6429 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6430 _mm512_shuffle_pd (__m512d __M
, __m512d __V
, const int __imm
)
6432 return (__m512d
) __builtin_ia32_shufpd512_mask ((__v8df
) __M
,
6433 (__v8df
) __V
, __imm
,
6435 _mm512_undefined_pd (),
6439 extern __inline __m512d
6440 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6441 _mm512_mask_shuffle_pd (__m512d __W
, __mmask8 __U
, __m512d __M
,
6442 __m512d __V
, const int __imm
)
6444 return (__m512d
) __builtin_ia32_shufpd512_mask ((__v8df
) __M
,
6445 (__v8df
) __V
, __imm
,
6450 extern __inline __m512d
6451 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6452 _mm512_maskz_shuffle_pd (__mmask8 __U
, __m512d __M
, __m512d __V
,
6455 return (__m512d
) __builtin_ia32_shufpd512_mask ((__v8df
) __M
,
6456 (__v8df
) __V
, __imm
,
6458 _mm512_setzero_pd (),
6462 extern __inline __m512d
6463 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6464 _mm512_fixupimm_round_pd (__m512d __A
, __m512d __B
, __m512i __C
,
6465 const int __imm
, const int __R
)
6467 return (__m512d
) __builtin_ia32_fixupimmpd512_mask ((__v8df
) __A
,
6471 (__mmask8
) -1, __R
);
6474 extern __inline __m512d
6475 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6476 _mm512_mask_fixupimm_round_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
6477 __m512i __C
, const int __imm
, const int __R
)
6479 return (__m512d
) __builtin_ia32_fixupimmpd512_mask ((__v8df
) __A
,
6483 (__mmask8
) __U
, __R
);
6486 extern __inline __m512d
6487 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6488 _mm512_maskz_fixupimm_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
6489 __m512i __C
, const int __imm
, const int __R
)
6491 return (__m512d
) __builtin_ia32_fixupimmpd512_maskz ((__v8df
) __A
,
6495 (__mmask8
) __U
, __R
);
6498 extern __inline __m512
6499 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6500 _mm512_fixupimm_round_ps (__m512 __A
, __m512 __B
, __m512i __C
,
6501 const int __imm
, const int __R
)
6503 return (__m512
) __builtin_ia32_fixupimmps512_mask ((__v16sf
) __A
,
6507 (__mmask16
) -1, __R
);
6510 extern __inline __m512
6511 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6512 _mm512_mask_fixupimm_round_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
6513 __m512i __C
, const int __imm
, const int __R
)
6515 return (__m512
) __builtin_ia32_fixupimmps512_mask ((__v16sf
) __A
,
6519 (__mmask16
) __U
, __R
);
6522 extern __inline __m512
6523 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6524 _mm512_maskz_fixupimm_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
6525 __m512i __C
, const int __imm
, const int __R
)
6527 return (__m512
) __builtin_ia32_fixupimmps512_maskz ((__v16sf
) __A
,
6531 (__mmask16
) __U
, __R
);
6534 extern __inline __m128d
6535 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6536 _mm_fixupimm_round_sd (__m128d __A
, __m128d __B
, __m128i __C
,
6537 const int __imm
, const int __R
)
6539 return (__m128d
) __builtin_ia32_fixupimmsd_mask ((__v2df
) __A
,
6541 (__v2di
) __C
, __imm
,
6542 (__mmask8
) -1, __R
);
6545 extern __inline __m128d
6546 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6547 _mm_mask_fixupimm_round_sd (__m128d __A
, __mmask8 __U
, __m128d __B
,
6548 __m128i __C
, const int __imm
, const int __R
)
6550 return (__m128d
) __builtin_ia32_fixupimmsd_mask ((__v2df
) __A
,
6552 (__v2di
) __C
, __imm
,
6553 (__mmask8
) __U
, __R
);
6556 extern __inline __m128d
6557 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6558 _mm_maskz_fixupimm_round_sd (__mmask8 __U
, __m128d __A
, __m128d __B
,
6559 __m128i __C
, const int __imm
, const int __R
)
6561 return (__m128d
) __builtin_ia32_fixupimmsd_maskz ((__v2df
) __A
,
6565 (__mmask8
) __U
, __R
);
6568 extern __inline __m128
6569 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6570 _mm_fixupimm_round_ss (__m128 __A
, __m128 __B
, __m128i __C
,
6571 const int __imm
, const int __R
)
6573 return (__m128
) __builtin_ia32_fixupimmss_mask ((__v4sf
) __A
,
6575 (__v4si
) __C
, __imm
,
6576 (__mmask8
) -1, __R
);
6579 extern __inline __m128
6580 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6581 _mm_mask_fixupimm_round_ss (__m128 __A
, __mmask8 __U
, __m128 __B
,
6582 __m128i __C
, const int __imm
, const int __R
)
6584 return (__m128
) __builtin_ia32_fixupimmss_mask ((__v4sf
) __A
,
6586 (__v4si
) __C
, __imm
,
6587 (__mmask8
) __U
, __R
);
6590 extern __inline __m128
6591 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6592 _mm_maskz_fixupimm_round_ss (__mmask8 __U
, __m128 __A
, __m128 __B
,
6593 __m128i __C
, const int __imm
, const int __R
)
6595 return (__m128
) __builtin_ia32_fixupimmss_maskz ((__v4sf
) __A
,
6597 (__v4si
) __C
, __imm
,
6598 (__mmask8
) __U
, __R
);
6602 #define _mm512_shuffle_pd(X, Y, C) \
6603 ((__m512d)__builtin_ia32_shufpd512_mask ((__v8df)(__m512d)(X), \
6604 (__v8df)(__m512d)(Y), (int)(C),\
6605 (__v8df)(__m512d)_mm512_undefined_pd(),\
6608 #define _mm512_mask_shuffle_pd(W, U, X, Y, C) \
6609 ((__m512d)__builtin_ia32_shufpd512_mask ((__v8df)(__m512d)(X), \
6610 (__v8df)(__m512d)(Y), (int)(C),\
6611 (__v8df)(__m512d)(W),\
6614 #define _mm512_maskz_shuffle_pd(U, X, Y, C) \
6615 ((__m512d)__builtin_ia32_shufpd512_mask ((__v8df)(__m512d)(X), \
6616 (__v8df)(__m512d)(Y), (int)(C),\
6617 (__v8df)(__m512d)_mm512_setzero_pd(),\
6620 #define _mm512_shuffle_ps(X, Y, C) \
6621 ((__m512)__builtin_ia32_shufps512_mask ((__v16sf)(__m512)(X), \
6622 (__v16sf)(__m512)(Y), (int)(C),\
6623 (__v16sf)(__m512)_mm512_undefined_ps(),\
6626 #define _mm512_mask_shuffle_ps(W, U, X, Y, C) \
6627 ((__m512)__builtin_ia32_shufps512_mask ((__v16sf)(__m512)(X), \
6628 (__v16sf)(__m512)(Y), (int)(C),\
6629 (__v16sf)(__m512)(W),\
6632 #define _mm512_maskz_shuffle_ps(U, X, Y, C) \
6633 ((__m512)__builtin_ia32_shufps512_mask ((__v16sf)(__m512)(X), \
6634 (__v16sf)(__m512)(Y), (int)(C),\
6635 (__v16sf)(__m512)_mm512_setzero_ps(),\
6638 #define _mm512_fixupimm_round_pd(X, Y, Z, C, R) \
6639 ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X), \
6640 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
6641 (__mmask8)(-1), (R)))
6643 #define _mm512_mask_fixupimm_round_pd(X, U, Y, Z, C, R) \
6644 ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X), \
6645 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
6646 (__mmask8)(U), (R)))
6648 #define _mm512_maskz_fixupimm_round_pd(U, X, Y, Z, C, R) \
6649 ((__m512d)__builtin_ia32_fixupimmpd512_maskz ((__v8df)(__m512d)(X), \
6650 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
6651 (__mmask8)(U), (R)))
6653 #define _mm512_fixupimm_round_ps(X, Y, Z, C, R) \
6654 ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X), \
6655 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
6656 (__mmask16)(-1), (R)))
6658 #define _mm512_mask_fixupimm_round_ps(X, U, Y, Z, C, R) \
6659 ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X), \
6660 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
6661 (__mmask16)(U), (R)))
6663 #define _mm512_maskz_fixupimm_round_ps(U, X, Y, Z, C, R) \
6664 ((__m512)__builtin_ia32_fixupimmps512_maskz ((__v16sf)(__m512)(X), \
6665 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
6666 (__mmask16)(U), (R)))
6668 #define _mm_fixupimm_round_sd(X, Y, Z, C, R) \
6669 ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X), \
6670 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
6671 (__mmask8)(-1), (R)))
6673 #define _mm_mask_fixupimm_round_sd(X, U, Y, Z, C, R) \
6674 ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X), \
6675 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
6676 (__mmask8)(U), (R)))
6678 #define _mm_maskz_fixupimm_round_sd(U, X, Y, Z, C, R) \
6679 ((__m128d)__builtin_ia32_fixupimmsd_maskz ((__v2df)(__m128d)(X), \
6680 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
6681 (__mmask8)(U), (R)))
6683 #define _mm_fixupimm_round_ss(X, Y, Z, C, R) \
6684 ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X), \
6685 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
6686 (__mmask8)(-1), (R)))
6688 #define _mm_mask_fixupimm_round_ss(X, U, Y, Z, C, R) \
6689 ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X), \
6690 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
6691 (__mmask8)(U), (R)))
6693 #define _mm_maskz_fixupimm_round_ss(U, X, Y, Z, C, R) \
6694 ((__m128)__builtin_ia32_fixupimmss_maskz ((__v4sf)(__m128)(X), \
6695 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
6696 (__mmask8)(U), (R)))
6699 extern __inline __m512
6700 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6701 _mm512_movehdup_ps (__m512 __A
)
6703 return (__m512
) __builtin_ia32_movshdup512_mask ((__v16sf
) __A
,
6705 _mm512_undefined_ps (),
6709 extern __inline __m512
6710 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6711 _mm512_mask_movehdup_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
6713 return (__m512
) __builtin_ia32_movshdup512_mask ((__v16sf
) __A
,
6718 extern __inline __m512
6719 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6720 _mm512_maskz_movehdup_ps (__mmask16 __U
, __m512 __A
)
6722 return (__m512
) __builtin_ia32_movshdup512_mask ((__v16sf
) __A
,
6724 _mm512_setzero_ps (),
6728 extern __inline __m512
6729 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6730 _mm512_moveldup_ps (__m512 __A
)
6732 return (__m512
) __builtin_ia32_movsldup512_mask ((__v16sf
) __A
,
6734 _mm512_undefined_ps (),
6738 extern __inline __m512
6739 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6740 _mm512_mask_moveldup_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
6742 return (__m512
) __builtin_ia32_movsldup512_mask ((__v16sf
) __A
,
6747 extern __inline __m512
6748 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6749 _mm512_maskz_moveldup_ps (__mmask16 __U
, __m512 __A
)
6751 return (__m512
) __builtin_ia32_movsldup512_mask ((__v16sf
) __A
,
6753 _mm512_setzero_ps (),
6757 extern __inline __m512i
6758 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6759 _mm512_or_si512 (__m512i __A
, __m512i __B
)
6761 return (__m512i
) ((__v16su
) __A
| (__v16su
) __B
);
6764 extern __inline __m512i
6765 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6766 _mm512_or_epi32 (__m512i __A
, __m512i __B
)
6768 return (__m512i
) ((__v16su
) __A
| (__v16su
) __B
);
6771 extern __inline __m512i
6772 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6773 _mm512_mask_or_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
6775 return (__m512i
) __builtin_ia32_pord512_mask ((__v16si
) __A
,
6781 extern __inline __m512i
6782 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6783 _mm512_maskz_or_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
6785 return (__m512i
) __builtin_ia32_pord512_mask ((__v16si
) __A
,
6788 _mm512_setzero_si512 (),
6792 extern __inline __m512i
6793 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6794 _mm512_or_epi64 (__m512i __A
, __m512i __B
)
6796 return (__m512i
) ((__v8du
) __A
| (__v8du
) __B
);
6799 extern __inline __m512i
6800 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6801 _mm512_mask_or_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
6803 return (__m512i
) __builtin_ia32_porq512_mask ((__v8di
) __A
,
6809 extern __inline __m512i
6810 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6811 _mm512_maskz_or_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
6813 return (__m512i
) __builtin_ia32_porq512_mask ((__v8di
) __A
,
6816 _mm512_setzero_si512 (),
6820 extern __inline __m512i
6821 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6822 _mm512_xor_si512 (__m512i __A
, __m512i __B
)
6824 return (__m512i
) ((__v16su
) __A
^ (__v16su
) __B
);
6827 extern __inline __m512i
6828 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6829 _mm512_xor_epi32 (__m512i __A
, __m512i __B
)
6831 return (__m512i
) ((__v16su
) __A
^ (__v16su
) __B
);
6834 extern __inline __m512i
6835 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6836 _mm512_mask_xor_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
6838 return (__m512i
) __builtin_ia32_pxord512_mask ((__v16si
) __A
,
6844 extern __inline __m512i
6845 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6846 _mm512_maskz_xor_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
6848 return (__m512i
) __builtin_ia32_pxord512_mask ((__v16si
) __A
,
6851 _mm512_setzero_si512 (),
6855 extern __inline __m512i
6856 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6857 _mm512_xor_epi64 (__m512i __A
, __m512i __B
)
6859 return (__m512i
) ((__v8du
) __A
^ (__v8du
) __B
);
6862 extern __inline __m512i
6863 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6864 _mm512_mask_xor_epi64 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
6866 return (__m512i
) __builtin_ia32_pxorq512_mask ((__v8di
) __A
,
6872 extern __inline __m512i
6873 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6874 _mm512_maskz_xor_epi64 (__mmask16 __U
, __m512i __A
, __m512i __B
)
6876 return (__m512i
) __builtin_ia32_pxorq512_mask ((__v8di
) __A
,
6879 _mm512_setzero_si512 (),
6884 extern __inline __m512i
6885 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6886 _mm512_rol_epi32 (__m512i __A
, const int __B
)
6888 return (__m512i
) __builtin_ia32_prold512_mask ((__v16si
) __A
, __B
,
6890 _mm512_undefined_epi32 (),
6894 extern __inline __m512i
6895 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6896 _mm512_mask_rol_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, const int __B
)
6898 return (__m512i
) __builtin_ia32_prold512_mask ((__v16si
) __A
, __B
,
6903 extern __inline __m512i
6904 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6905 _mm512_maskz_rol_epi32 (__mmask16 __U
, __m512i __A
, const int __B
)
6907 return (__m512i
) __builtin_ia32_prold512_mask ((__v16si
) __A
, __B
,
6909 _mm512_setzero_si512 (),
6913 extern __inline __m512i
6914 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6915 _mm512_ror_epi32 (__m512i __A
, int __B
)
6917 return (__m512i
) __builtin_ia32_prord512_mask ((__v16si
) __A
, __B
,
6919 _mm512_undefined_epi32 (),
6923 extern __inline __m512i
6924 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6925 _mm512_mask_ror_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, int __B
)
6927 return (__m512i
) __builtin_ia32_prord512_mask ((__v16si
) __A
, __B
,
6932 extern __inline __m512i
6933 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6934 _mm512_maskz_ror_epi32 (__mmask16 __U
, __m512i __A
, int __B
)
6936 return (__m512i
) __builtin_ia32_prord512_mask ((__v16si
) __A
, __B
,
6938 _mm512_setzero_si512 (),
6942 extern __inline __m512i
6943 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6944 _mm512_rol_epi64 (__m512i __A
, const int __B
)
6946 return (__m512i
) __builtin_ia32_prolq512_mask ((__v8di
) __A
, __B
,
6948 _mm512_undefined_epi32 (),
6952 extern __inline __m512i
6953 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6954 _mm512_mask_rol_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, const int __B
)
6956 return (__m512i
) __builtin_ia32_prolq512_mask ((__v8di
) __A
, __B
,
6961 extern __inline __m512i
6962 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6963 _mm512_maskz_rol_epi64 (__mmask8 __U
, __m512i __A
, const int __B
)
6965 return (__m512i
) __builtin_ia32_prolq512_mask ((__v8di
) __A
, __B
,
6967 _mm512_setzero_si512 (),
6971 extern __inline __m512i
6972 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6973 _mm512_ror_epi64 (__m512i __A
, int __B
)
6975 return (__m512i
) __builtin_ia32_prorq512_mask ((__v8di
) __A
, __B
,
6977 _mm512_undefined_epi32 (),
6981 extern __inline __m512i
6982 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6983 _mm512_mask_ror_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, int __B
)
6985 return (__m512i
) __builtin_ia32_prorq512_mask ((__v8di
) __A
, __B
,
6990 extern __inline __m512i
6991 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6992 _mm512_maskz_ror_epi64 (__mmask8 __U
, __m512i __A
, int __B
)
6994 return (__m512i
) __builtin_ia32_prorq512_mask ((__v8di
) __A
, __B
,
6996 _mm512_setzero_si512 (),
7001 #define _mm512_rol_epi32(A, B) \
7002 ((__m512i)__builtin_ia32_prold512_mask ((__v16si)(__m512i)(A), \
7004 (__v16si)_mm512_undefined_epi32 (), \
7006 #define _mm512_mask_rol_epi32(W, U, A, B) \
7007 ((__m512i)__builtin_ia32_prold512_mask ((__v16si)(__m512i)(A), \
7009 (__v16si)(__m512i)(W), \
7011 #define _mm512_maskz_rol_epi32(U, A, B) \
7012 ((__m512i)__builtin_ia32_prold512_mask ((__v16si)(__m512i)(A), \
7014 (__v16si)_mm512_setzero_si512 (), \
7016 #define _mm512_ror_epi32(A, B) \
7017 ((__m512i)__builtin_ia32_prord512_mask ((__v16si)(__m512i)(A), \
7019 (__v16si)_mm512_undefined_epi32 (), \
7021 #define _mm512_mask_ror_epi32(W, U, A, B) \
7022 ((__m512i)__builtin_ia32_prord512_mask ((__v16si)(__m512i)(A), \
7024 (__v16si)(__m512i)(W), \
7026 #define _mm512_maskz_ror_epi32(U, A, B) \
7027 ((__m512i)__builtin_ia32_prord512_mask ((__v16si)(__m512i)(A), \
7029 (__v16si)_mm512_setzero_si512 (), \
7031 #define _mm512_rol_epi64(A, B) \
7032 ((__m512i)__builtin_ia32_prolq512_mask ((__v8di)(__m512i)(A), \
7034 (__v8di)_mm512_undefined_epi32 (), \
7036 #define _mm512_mask_rol_epi64(W, U, A, B) \
7037 ((__m512i)__builtin_ia32_prolq512_mask ((__v8di)(__m512i)(A), \
7039 (__v8di)(__m512i)(W), \
7041 #define _mm512_maskz_rol_epi64(U, A, B) \
7042 ((__m512i)__builtin_ia32_prolq512_mask ((__v8di)(__m512i)(A), \
7044 (__v8di)_mm512_setzero_si512 (), \
7047 #define _mm512_ror_epi64(A, B) \
7048 ((__m512i)__builtin_ia32_prorq512_mask ((__v8di)(__m512i)(A), \
7050 (__v8di)_mm512_undefined_epi32 (), \
7052 #define _mm512_mask_ror_epi64(W, U, A, B) \
7053 ((__m512i)__builtin_ia32_prorq512_mask ((__v8di)(__m512i)(A), \
7055 (__v8di)(__m512i)(W), \
7057 #define _mm512_maskz_ror_epi64(U, A, B) \
7058 ((__m512i)__builtin_ia32_prorq512_mask ((__v8di)(__m512i)(A), \
7060 (__v8di)_mm512_setzero_si512 (), \
7064 extern __inline __m512i
7065 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7066 _mm512_and_si512 (__m512i __A
, __m512i __B
)
7068 return (__m512i
) ((__v16su
) __A
& (__v16su
) __B
);
7071 extern __inline __m512i
7072 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7073 _mm512_and_epi32 (__m512i __A
, __m512i __B
)
7075 return (__m512i
) ((__v16su
) __A
& (__v16su
) __B
);
7078 extern __inline __m512i
7079 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7080 _mm512_mask_and_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
7082 return (__m512i
) __builtin_ia32_pandd512_mask ((__v16si
) __A
,
7088 extern __inline __m512i
7089 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7090 _mm512_maskz_and_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
7092 return (__m512i
) __builtin_ia32_pandd512_mask ((__v16si
) __A
,
7095 _mm512_setzero_si512 (),
7099 extern __inline __m512i
7100 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7101 _mm512_and_epi64 (__m512i __A
, __m512i __B
)
7103 return (__m512i
) ((__v8du
) __A
& (__v8du
) __B
);
7106 extern __inline __m512i
7107 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7108 _mm512_mask_and_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
7110 return (__m512i
) __builtin_ia32_pandq512_mask ((__v8di
) __A
,
7115 extern __inline __m512i
7116 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7117 _mm512_maskz_and_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
7119 return (__m512i
) __builtin_ia32_pandq512_mask ((__v8di
) __A
,
7122 _mm512_setzero_pd (),
7126 extern __inline __m512i
7127 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7128 _mm512_andnot_si512 (__m512i __A
, __m512i __B
)
7130 return (__m512i
) __builtin_ia32_pandnd512_mask ((__v16si
) __A
,
7133 _mm512_undefined_epi32 (),
7137 extern __inline __m512i
7138 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7139 _mm512_andnot_epi32 (__m512i __A
, __m512i __B
)
7141 return (__m512i
) __builtin_ia32_pandnd512_mask ((__v16si
) __A
,
7144 _mm512_undefined_epi32 (),
7148 extern __inline __m512i
7149 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7150 _mm512_mask_andnot_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
7152 return (__m512i
) __builtin_ia32_pandnd512_mask ((__v16si
) __A
,
7158 extern __inline __m512i
7159 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7160 _mm512_maskz_andnot_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
7162 return (__m512i
) __builtin_ia32_pandnd512_mask ((__v16si
) __A
,
7165 _mm512_setzero_si512 (),
7169 extern __inline __m512i
7170 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7171 _mm512_andnot_epi64 (__m512i __A
, __m512i __B
)
7173 return (__m512i
) __builtin_ia32_pandnq512_mask ((__v8di
) __A
,
7176 _mm512_undefined_epi32 (),
7180 extern __inline __m512i
7181 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7182 _mm512_mask_andnot_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
7184 return (__m512i
) __builtin_ia32_pandnq512_mask ((__v8di
) __A
,
7189 extern __inline __m512i
7190 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7191 _mm512_maskz_andnot_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
7193 return (__m512i
) __builtin_ia32_pandnq512_mask ((__v8di
) __A
,
7196 _mm512_setzero_pd (),
7200 extern __inline __mmask16
7201 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7202 _mm512_test_epi32_mask (__m512i __A
, __m512i __B
)
7204 return (__mmask16
) __builtin_ia32_ptestmd512 ((__v16si
) __A
,
7209 extern __inline __mmask16
7210 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7211 _mm512_mask_test_epi32_mask (__mmask16 __U
, __m512i __A
, __m512i __B
)
7213 return (__mmask16
) __builtin_ia32_ptestmd512 ((__v16si
) __A
,
7214 (__v16si
) __B
, __U
);
7217 extern __inline __mmask8
7218 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7219 _mm512_test_epi64_mask (__m512i __A
, __m512i __B
)
7221 return (__mmask8
) __builtin_ia32_ptestmq512 ((__v8di
) __A
,
7226 extern __inline __mmask8
7227 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7228 _mm512_mask_test_epi64_mask (__mmask8 __U
, __m512i __A
, __m512i __B
)
7230 return (__mmask8
) __builtin_ia32_ptestmq512 ((__v8di
) __A
, (__v8di
) __B
, __U
);
7233 extern __inline __mmask16
7234 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7235 _mm512_testn_epi32_mask (__m512i __A
, __m512i __B
)
7237 return (__mmask16
) __builtin_ia32_ptestnmd512 ((__v16si
) __A
,
7242 extern __inline __mmask16
7243 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7244 _mm512_mask_testn_epi32_mask (__mmask16 __U
, __m512i __A
, __m512i __B
)
7246 return (__mmask16
) __builtin_ia32_ptestnmd512 ((__v16si
) __A
,
7247 (__v16si
) __B
, __U
);
7250 extern __inline __mmask8
7251 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7252 _mm512_testn_epi64_mask (__m512i __A
, __m512i __B
)
7254 return (__mmask8
) __builtin_ia32_ptestnmq512 ((__v8di
) __A
,
7259 extern __inline __mmask8
7260 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7261 _mm512_mask_testn_epi64_mask (__mmask8 __U
, __m512i __A
, __m512i __B
)
7263 return (__mmask8
) __builtin_ia32_ptestnmq512 ((__v8di
) __A
,
7267 extern __inline __m512i
7268 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7269 _mm512_unpackhi_epi32 (__m512i __A
, __m512i __B
)
7271 return (__m512i
) __builtin_ia32_punpckhdq512_mask ((__v16si
) __A
,
7274 _mm512_undefined_epi32 (),
7278 extern __inline __m512i
7279 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7280 _mm512_mask_unpackhi_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
,
7283 return (__m512i
) __builtin_ia32_punpckhdq512_mask ((__v16si
) __A
,
7289 extern __inline __m512i
7290 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7291 _mm512_maskz_unpackhi_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
7293 return (__m512i
) __builtin_ia32_punpckhdq512_mask ((__v16si
) __A
,
7296 _mm512_setzero_si512 (),
7300 extern __inline __m512i
7301 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7302 _mm512_unpackhi_epi64 (__m512i __A
, __m512i __B
)
7304 return (__m512i
) __builtin_ia32_punpckhqdq512_mask ((__v8di
) __A
,
7307 _mm512_undefined_epi32 (),
7311 extern __inline __m512i
7312 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7313 _mm512_mask_unpackhi_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
7315 return (__m512i
) __builtin_ia32_punpckhqdq512_mask ((__v8di
) __A
,
7321 extern __inline __m512i
7322 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7323 _mm512_maskz_unpackhi_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
7325 return (__m512i
) __builtin_ia32_punpckhqdq512_mask ((__v8di
) __A
,
7328 _mm512_setzero_si512 (),
7332 extern __inline __m512i
7333 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7334 _mm512_unpacklo_epi32 (__m512i __A
, __m512i __B
)
7336 return (__m512i
) __builtin_ia32_punpckldq512_mask ((__v16si
) __A
,
7339 _mm512_undefined_epi32 (),
7343 extern __inline __m512i
7344 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7345 _mm512_mask_unpacklo_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
,
7348 return (__m512i
) __builtin_ia32_punpckldq512_mask ((__v16si
) __A
,
7354 extern __inline __m512i
7355 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7356 _mm512_maskz_unpacklo_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
7358 return (__m512i
) __builtin_ia32_punpckldq512_mask ((__v16si
) __A
,
7361 _mm512_setzero_si512 (),
7365 extern __inline __m512i
7366 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7367 _mm512_unpacklo_epi64 (__m512i __A
, __m512i __B
)
7369 return (__m512i
) __builtin_ia32_punpcklqdq512_mask ((__v8di
) __A
,
7372 _mm512_undefined_epi32 (),
7376 extern __inline __m512i
7377 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7378 _mm512_mask_unpacklo_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
7380 return (__m512i
) __builtin_ia32_punpcklqdq512_mask ((__v8di
) __A
,
7386 extern __inline __m512i
7387 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7388 _mm512_maskz_unpacklo_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
7390 return (__m512i
) __builtin_ia32_punpcklqdq512_mask ((__v8di
) __A
,
7393 _mm512_setzero_si512 (),
7399 extern __inline
unsigned long long
7400 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7401 _mm_cvt_roundss_u64 (__m128 __A
, const int __R
)
7403 return (unsigned long long) __builtin_ia32_vcvtss2usi64 ((__v4sf
) __A
, __R
);
7406 extern __inline
long long
7407 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7408 _mm_cvt_roundss_si64 (__m128 __A
, const int __R
)
7410 return (long long) __builtin_ia32_vcvtss2si64 ((__v4sf
) __A
, __R
);
7413 extern __inline
long long
7414 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7415 _mm_cvt_roundss_i64 (__m128 __A
, const int __R
)
7417 return (long long) __builtin_ia32_vcvtss2si64 ((__v4sf
) __A
, __R
);
7420 extern __inline
unsigned long long
7421 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7422 _mm_cvtt_roundss_u64 (__m128 __A
, const int __R
)
7424 return (unsigned long long) __builtin_ia32_vcvttss2usi64 ((__v4sf
) __A
, __R
);
7427 extern __inline
long long
7428 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7429 _mm_cvtt_roundss_i64 (__m128 __A
, const int __R
)
7431 return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf
) __A
, __R
);
7434 extern __inline
long long
7435 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7436 _mm_cvtt_roundss_si64 (__m128 __A
, const int __R
)
7438 return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf
) __A
, __R
);
7441 #define _mm_cvt_roundss_u64(A, B) \
7442 ((unsigned long long)__builtin_ia32_vcvtss2usi64(A, B))
7444 #define _mm_cvt_roundss_si64(A, B) \
7445 ((long long)__builtin_ia32_vcvtss2si64(A, B))
7447 #define _mm_cvt_roundss_i64(A, B) \
7448 ((long long)__builtin_ia32_vcvtss2si64(A, B))
7450 #define _mm_cvtt_roundss_u64(A, B) \
7451 ((unsigned long long)__builtin_ia32_vcvttss2usi64(A, B))
7453 #define _mm_cvtt_roundss_i64(A, B) \
7454 ((long long)__builtin_ia32_vcvttss2si64(A, B))
7456 #define _mm_cvtt_roundss_si64(A, B) \
7457 ((long long)__builtin_ia32_vcvttss2si64(A, B))
7462 extern __inline
unsigned
7463 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7464 _mm_cvt_roundss_u32 (__m128 __A
, const int __R
)
7466 return (unsigned) __builtin_ia32_vcvtss2usi32 ((__v4sf
) __A
, __R
);
7470 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7471 _mm_cvt_roundss_si32 (__m128 __A
, const int __R
)
7473 return (int) __builtin_ia32_vcvtss2si32 ((__v4sf
) __A
, __R
);
7477 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7478 _mm_cvt_roundss_i32 (__m128 __A
, const int __R
)
7480 return (int) __builtin_ia32_vcvtss2si32 ((__v4sf
) __A
, __R
);
7483 extern __inline
unsigned
7484 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7485 _mm_cvtt_roundss_u32 (__m128 __A
, const int __R
)
7487 return (unsigned) __builtin_ia32_vcvttss2usi32 ((__v4sf
) __A
, __R
);
7491 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7492 _mm_cvtt_roundss_i32 (__m128 __A
, const int __R
)
7494 return (int) __builtin_ia32_vcvttss2si32 ((__v4sf
) __A
, __R
);
7498 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7499 _mm_cvtt_roundss_si32 (__m128 __A
, const int __R
)
7501 return (int) __builtin_ia32_vcvttss2si32 ((__v4sf
) __A
, __R
);
7504 #define _mm_cvt_roundss_u32(A, B) \
7505 ((unsigned)__builtin_ia32_vcvtss2usi32(A, B))
7507 #define _mm_cvt_roundss_si32(A, B) \
7508 ((int)__builtin_ia32_vcvtss2si32(A, B))
7510 #define _mm_cvt_roundss_i32(A, B) \
7511 ((int)__builtin_ia32_vcvtss2si32(A, B))
7513 #define _mm_cvtt_roundss_u32(A, B) \
7514 ((unsigned)__builtin_ia32_vcvttss2usi32(A, B))
7516 #define _mm_cvtt_roundss_si32(A, B) \
7517 ((int)__builtin_ia32_vcvttss2si32(A, B))
7519 #define _mm_cvtt_roundss_i32(A, B) \
7520 ((int)__builtin_ia32_vcvttss2si32(A, B))
7525 extern __inline
unsigned long long
7526 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7527 _mm_cvt_roundsd_u64 (__m128d __A
, const int __R
)
7529 return (unsigned long long) __builtin_ia32_vcvtsd2usi64 ((__v2df
) __A
, __R
);
7532 extern __inline
long long
7533 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7534 _mm_cvt_roundsd_si64 (__m128d __A
, const int __R
)
7536 return (long long) __builtin_ia32_vcvtsd2si64 ((__v2df
) __A
, __R
);
7539 extern __inline
long long
7540 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7541 _mm_cvt_roundsd_i64 (__m128d __A
, const int __R
)
7543 return (long long) __builtin_ia32_vcvtsd2si64 ((__v2df
) __A
, __R
);
7546 extern __inline
unsigned long long
7547 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7548 _mm_cvtt_roundsd_u64 (__m128d __A
, const int __R
)
7550 return (unsigned long long) __builtin_ia32_vcvttsd2usi64 ((__v2df
) __A
, __R
);
7553 extern __inline
long long
7554 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7555 _mm_cvtt_roundsd_si64 (__m128d __A
, const int __R
)
7557 return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df
) __A
, __R
);
7560 extern __inline
long long
7561 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7562 _mm_cvtt_roundsd_i64 (__m128d __A
, const int __R
)
7564 return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df
) __A
, __R
);
7567 #define _mm_cvt_roundsd_u64(A, B) \
7568 ((unsigned long long)__builtin_ia32_vcvtsd2usi64(A, B))
7570 #define _mm_cvt_roundsd_si64(A, B) \
7571 ((long long)__builtin_ia32_vcvtsd2si64(A, B))
7573 #define _mm_cvt_roundsd_i64(A, B) \
7574 ((long long)__builtin_ia32_vcvtsd2si64(A, B))
7576 #define _mm_cvtt_roundsd_u64(A, B) \
7577 ((unsigned long long)__builtin_ia32_vcvttsd2usi64(A, B))
7579 #define _mm_cvtt_roundsd_si64(A, B) \
7580 ((long long)__builtin_ia32_vcvttsd2si64(A, B))
7582 #define _mm_cvtt_roundsd_i64(A, B) \
7583 ((long long)__builtin_ia32_vcvttsd2si64(A, B))
7588 extern __inline
unsigned
7589 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7590 _mm_cvt_roundsd_u32 (__m128d __A
, const int __R
)
7592 return (unsigned) __builtin_ia32_vcvtsd2usi32 ((__v2df
) __A
, __R
);
7596 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7597 _mm_cvt_roundsd_si32 (__m128d __A
, const int __R
)
7599 return (int) __builtin_ia32_vcvtsd2si32 ((__v2df
) __A
, __R
);
7603 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7604 _mm_cvt_roundsd_i32 (__m128d __A
, const int __R
)
7606 return (int) __builtin_ia32_vcvtsd2si32 ((__v2df
) __A
, __R
);
7609 extern __inline
unsigned
7610 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7611 _mm_cvtt_roundsd_u32 (__m128d __A
, const int __R
)
7613 return (unsigned) __builtin_ia32_vcvttsd2usi32 ((__v2df
) __A
, __R
);
7617 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7618 _mm_cvtt_roundsd_i32 (__m128d __A
, const int __R
)
7620 return (int) __builtin_ia32_vcvttsd2si32 ((__v2df
) __A
, __R
);
7624 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7625 _mm_cvtt_roundsd_si32 (__m128d __A
, const int __R
)
7627 return (int) __builtin_ia32_vcvttsd2si32 ((__v2df
) __A
, __R
);
7630 #define _mm_cvt_roundsd_u32(A, B) \
7631 ((unsigned)__builtin_ia32_vcvtsd2usi32(A, B))
7633 #define _mm_cvt_roundsd_si32(A, B) \
7634 ((int)__builtin_ia32_vcvtsd2si32(A, B))
7636 #define _mm_cvt_roundsd_i32(A, B) \
7637 ((int)__builtin_ia32_vcvtsd2si32(A, B))
7639 #define _mm_cvtt_roundsd_u32(A, B) \
7640 ((unsigned)__builtin_ia32_vcvttsd2usi32(A, B))
7642 #define _mm_cvtt_roundsd_si32(A, B) \
7643 ((int)__builtin_ia32_vcvttsd2si32(A, B))
7645 #define _mm_cvtt_roundsd_i32(A, B) \
7646 ((int)__builtin_ia32_vcvttsd2si32(A, B))
7649 extern __inline __m512d
7650 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7651 _mm512_movedup_pd (__m512d __A
)
7653 return (__m512d
) __builtin_ia32_movddup512_mask ((__v8df
) __A
,
7655 _mm512_undefined_pd (),
7659 extern __inline __m512d
7660 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7661 _mm512_mask_movedup_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
7663 return (__m512d
) __builtin_ia32_movddup512_mask ((__v8df
) __A
,
7668 extern __inline __m512d
7669 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7670 _mm512_maskz_movedup_pd (__mmask8 __U
, __m512d __A
)
7672 return (__m512d
) __builtin_ia32_movddup512_mask ((__v8df
) __A
,
7674 _mm512_setzero_pd (),
7678 extern __inline __m512d
7679 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7680 _mm512_unpacklo_pd (__m512d __A
, __m512d __B
)
7682 return (__m512d
) __builtin_ia32_unpcklpd512_mask ((__v8df
) __A
,
7685 _mm512_undefined_pd (),
7689 extern __inline __m512d
7690 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7691 _mm512_mask_unpacklo_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
7693 return (__m512d
) __builtin_ia32_unpcklpd512_mask ((__v8df
) __A
,
7699 extern __inline __m512d
7700 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7701 _mm512_maskz_unpacklo_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
7703 return (__m512d
) __builtin_ia32_unpcklpd512_mask ((__v8df
) __A
,
7706 _mm512_setzero_pd (),
7710 extern __inline __m512d
7711 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7712 _mm512_unpackhi_pd (__m512d __A
, __m512d __B
)
7714 return (__m512d
) __builtin_ia32_unpckhpd512_mask ((__v8df
) __A
,
7717 _mm512_undefined_pd (),
7721 extern __inline __m512d
7722 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7723 _mm512_mask_unpackhi_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
7725 return (__m512d
) __builtin_ia32_unpckhpd512_mask ((__v8df
) __A
,
7731 extern __inline __m512d
7732 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7733 _mm512_maskz_unpackhi_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
7735 return (__m512d
) __builtin_ia32_unpckhpd512_mask ((__v8df
) __A
,
7738 _mm512_setzero_pd (),
7742 extern __inline __m512
7743 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7744 _mm512_unpackhi_ps (__m512 __A
, __m512 __B
)
7746 return (__m512
) __builtin_ia32_unpckhps512_mask ((__v16sf
) __A
,
7749 _mm512_undefined_ps (),
7753 extern __inline __m512
7754 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7755 _mm512_mask_unpackhi_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
7757 return (__m512
) __builtin_ia32_unpckhps512_mask ((__v16sf
) __A
,
7763 extern __inline __m512
7764 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7765 _mm512_maskz_unpackhi_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
7767 return (__m512
) __builtin_ia32_unpckhps512_mask ((__v16sf
) __A
,
7770 _mm512_setzero_ps (),
7775 extern __inline __m512d
7776 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7777 _mm512_cvt_roundps_pd (__m256 __A
, const int __R
)
7779 return (__m512d
) __builtin_ia32_cvtps2pd512_mask ((__v8sf
) __A
,
7781 _mm512_undefined_pd (),
7782 (__mmask8
) -1, __R
);
7785 extern __inline __m512d
7786 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7787 _mm512_mask_cvt_roundps_pd (__m512d __W
, __mmask8 __U
, __m256 __A
,
7790 return (__m512d
) __builtin_ia32_cvtps2pd512_mask ((__v8sf
) __A
,
7792 (__mmask8
) __U
, __R
);
7795 extern __inline __m512d
7796 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7797 _mm512_maskz_cvt_roundps_pd (__mmask8 __U
, __m256 __A
, const int __R
)
7799 return (__m512d
) __builtin_ia32_cvtps2pd512_mask ((__v8sf
) __A
,
7801 _mm512_setzero_pd (),
7802 (__mmask8
) __U
, __R
);
7805 extern __inline __m512
7806 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7807 _mm512_cvt_roundph_ps (__m256i __A
, const int __R
)
7809 return (__m512
) __builtin_ia32_vcvtph2ps512_mask ((__v16hi
) __A
,
7811 _mm512_undefined_ps (),
7812 (__mmask16
) -1, __R
);
7815 extern __inline __m512
7816 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7817 _mm512_mask_cvt_roundph_ps (__m512 __W
, __mmask16 __U
, __m256i __A
,
7820 return (__m512
) __builtin_ia32_vcvtph2ps512_mask ((__v16hi
) __A
,
7822 (__mmask16
) __U
, __R
);
7825 extern __inline __m512
7826 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7827 _mm512_maskz_cvt_roundph_ps (__mmask16 __U
, __m256i __A
, const int __R
)
7829 return (__m512
) __builtin_ia32_vcvtph2ps512_mask ((__v16hi
) __A
,
7831 _mm512_setzero_ps (),
7832 (__mmask16
) __U
, __R
);
7835 extern __inline __m256i
7836 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7837 _mm512_cvt_roundps_ph (__m512 __A
, const int __I
)
7839 return (__m256i
) __builtin_ia32_vcvtps2ph512_mask ((__v16sf
) __A
,
7842 _mm256_undefined_si256 (),
7846 extern __inline __m256i
7847 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7848 _mm512_cvtps_ph (__m512 __A
, const int __I
)
7850 return (__m256i
) __builtin_ia32_vcvtps2ph512_mask ((__v16sf
) __A
,
7853 _mm256_undefined_si256 (),
7857 extern __inline __m256i
7858 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7859 _mm512_mask_cvt_roundps_ph (__m256i __U
, __mmask16 __W
, __m512 __A
,
7862 return (__m256i
) __builtin_ia32_vcvtps2ph512_mask ((__v16sf
) __A
,
7868 extern __inline __m256i
7869 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7870 _mm512_mask_cvtps_ph (__m256i __U
, __mmask16 __W
, __m512 __A
, const int __I
)
7872 return (__m256i
) __builtin_ia32_vcvtps2ph512_mask ((__v16sf
) __A
,
7878 extern __inline __m256i
7879 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7880 _mm512_maskz_cvt_roundps_ph (__mmask16 __W
, __m512 __A
, const int __I
)
7882 return (__m256i
) __builtin_ia32_vcvtps2ph512_mask ((__v16sf
) __A
,
7885 _mm256_setzero_si256 (),
7889 extern __inline __m256i
7890 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7891 _mm512_maskz_cvtps_ph (__mmask16 __W
, __m512 __A
, const int __I
)
7893 return (__m256i
) __builtin_ia32_vcvtps2ph512_mask ((__v16sf
) __A
,
7896 _mm256_setzero_si256 (),
7900 #define _mm512_cvt_roundps_pd(A, B) \
7901 (__m512d)__builtin_ia32_cvtps2pd512_mask(A, (__v8df)_mm512_undefined_pd(), -1, B)
7903 #define _mm512_mask_cvt_roundps_pd(W, U, A, B) \
7904 (__m512d)__builtin_ia32_cvtps2pd512_mask(A, (__v8df)(W), U, B)
7906 #define _mm512_maskz_cvt_roundps_pd(U, A, B) \
7907 (__m512d)__builtin_ia32_cvtps2pd512_mask(A, (__v8df)_mm512_setzero_pd(), U, B)
7909 #define _mm512_cvt_roundph_ps(A, B) \
7910 (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(A), (__v16sf)_mm512_undefined_ps(), -1, B)
7912 #define _mm512_mask_cvt_roundph_ps(W, U, A, B) \
7913 (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(A), (__v16sf)(W), U, B)
7915 #define _mm512_maskz_cvt_roundph_ps(U, A, B) \
7916 (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(A), (__v16sf)_mm512_setzero_ps(), U, B)
7918 #define _mm512_cvt_roundps_ph(A, I) \
7919 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
7920 (__v16hi)_mm256_undefined_si256 (), -1))
7921 #define _mm512_cvtps_ph(A, I) \
7922 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
7923 (__v16hi)_mm256_undefined_si256 (), -1))
7924 #define _mm512_mask_cvt_roundps_ph(U, W, A, I) \
7925 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
7926 (__v16hi)(__m256i)(U), (__mmask16) (W)))
7927 #define _mm512_mask_cvtps_ph(U, W, A, I) \
7928 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
7929 (__v16hi)(__m256i)(U), (__mmask16) (W)))
7930 #define _mm512_maskz_cvt_roundps_ph(W, A, I) \
7931 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
7932 (__v16hi)_mm256_setzero_si256 (), (__mmask16) (W)))
7933 #define _mm512_maskz_cvtps_ph(W, A, I) \
7934 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
7935 (__v16hi)_mm256_setzero_si256 (), (__mmask16) (W)))
7939 extern __inline __m256
7940 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7941 _mm512_cvt_roundpd_ps (__m512d __A
, const int __R
)
7943 return (__m256
) __builtin_ia32_cvtpd2ps512_mask ((__v8df
) __A
,
7945 _mm256_undefined_ps (),
7946 (__mmask8
) -1, __R
);
7949 extern __inline __m256
7950 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7951 _mm512_mask_cvt_roundpd_ps (__m256 __W
, __mmask8 __U
, __m512d __A
,
7954 return (__m256
) __builtin_ia32_cvtpd2ps512_mask ((__v8df
) __A
,
7956 (__mmask8
) __U
, __R
);
7959 extern __inline __m256
7960 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7961 _mm512_maskz_cvt_roundpd_ps (__mmask8 __U
, __m512d __A
, const int __R
)
7963 return (__m256
) __builtin_ia32_cvtpd2ps512_mask ((__v8df
) __A
,
7965 _mm256_setzero_ps (),
7966 (__mmask8
) __U
, __R
);
7969 extern __inline __m128
7970 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7971 _mm_cvt_roundsd_ss (__m128 __A
, __m128d __B
, const int __R
)
7973 return (__m128
) __builtin_ia32_cvtsd2ss_round ((__v4sf
) __A
,
7978 extern __inline __m128d
7979 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7980 _mm_cvt_roundss_sd (__m128d __A
, __m128 __B
, const int __R
)
7982 return (__m128d
) __builtin_ia32_cvtss2sd_round ((__v2df
) __A
,
7987 #define _mm512_cvt_roundpd_ps(A, B) \
7988 (__m256)__builtin_ia32_cvtpd2ps512_mask(A, (__v8sf)_mm256_undefined_ps(), -1, B)
7990 #define _mm512_mask_cvt_roundpd_ps(W, U, A, B) \
7991 (__m256)__builtin_ia32_cvtpd2ps512_mask(A, (__v8sf)(W), U, B)
7993 #define _mm512_maskz_cvt_roundpd_ps(U, A, B) \
7994 (__m256)__builtin_ia32_cvtpd2ps512_mask(A, (__v8sf)_mm256_setzero_ps(), U, B)
7996 #define _mm_cvt_roundsd_ss(A, B, C) \
7997 (__m128)__builtin_ia32_cvtsd2ss_round(A, B, C)
7999 #define _mm_cvt_roundss_sd(A, B, C) \
8000 (__m128d)__builtin_ia32_cvtss2sd_round(A, B, C)
8003 extern __inline
void
8004 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8005 _mm512_stream_si512 (__m512i
* __P
, __m512i __A
)
8007 __builtin_ia32_movntdq512 ((__v8di
*) __P
, (__v8di
) __A
);
8010 extern __inline
void
8011 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8012 _mm512_stream_ps (float *__P
, __m512 __A
)
8014 __builtin_ia32_movntps512 (__P
, (__v16sf
) __A
);
8017 extern __inline
void
8018 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8019 _mm512_stream_pd (double *__P
, __m512d __A
)
8021 __builtin_ia32_movntpd512 (__P
, (__v8df
) __A
);
8024 extern __inline __m512i
8025 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8026 _mm512_stream_load_si512 (void *__P
)
8028 return __builtin_ia32_movntdqa512 ((__v8di
*)__P
);
8031 /* Constants for mantissa extraction */
8034 _MM_MANT_NORM_1_2
, /* interval [1, 2) */
8035 _MM_MANT_NORM_p5_2
, /* interval [0.5, 2) */
8036 _MM_MANT_NORM_p5_1
, /* interval [0.5, 1) */
8037 _MM_MANT_NORM_p75_1p5
/* interval [0.75, 1.5) */
8038 } _MM_MANTISSA_NORM_ENUM
;
8042 _MM_MANT_SIGN_src
, /* sign = sign(SRC) */
8043 _MM_MANT_SIGN_zero
, /* sign = 0 */
8044 _MM_MANT_SIGN_nan
/* DEST = NaN if sign(SRC) = 1 */
8045 } _MM_MANTISSA_SIGN_ENUM
;
8048 extern __inline __m128
8049 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8050 _mm_getexp_round_ss (__m128 __A
, __m128 __B
, const int __R
)
8052 return (__m128
) __builtin_ia32_getexpss128_round ((__v4sf
) __A
,
8057 extern __inline __m128d
8058 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8059 _mm_getexp_round_sd (__m128d __A
, __m128d __B
, const int __R
)
8061 return (__m128d
) __builtin_ia32_getexpsd128_round ((__v2df
) __A
,
8066 extern __inline __m512
8067 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8068 _mm512_getexp_round_ps (__m512 __A
, const int __R
)
8070 return (__m512
) __builtin_ia32_getexpps512_mask ((__v16sf
) __A
,
8072 _mm512_undefined_ps (),
8073 (__mmask16
) -1, __R
);
8076 extern __inline __m512
8077 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8078 _mm512_mask_getexp_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
8081 return (__m512
) __builtin_ia32_getexpps512_mask ((__v16sf
) __A
,
8083 (__mmask16
) __U
, __R
);
8086 extern __inline __m512
8087 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8088 _mm512_maskz_getexp_round_ps (__mmask16 __U
, __m512 __A
, const int __R
)
8090 return (__m512
) __builtin_ia32_getexpps512_mask ((__v16sf
) __A
,
8092 _mm512_setzero_ps (),
8093 (__mmask16
) __U
, __R
);
8096 extern __inline __m512d
8097 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8098 _mm512_getexp_round_pd (__m512d __A
, const int __R
)
8100 return (__m512d
) __builtin_ia32_getexppd512_mask ((__v8df
) __A
,
8102 _mm512_undefined_pd (),
8103 (__mmask8
) -1, __R
);
8106 extern __inline __m512d
8107 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8108 _mm512_mask_getexp_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
8111 return (__m512d
) __builtin_ia32_getexppd512_mask ((__v8df
) __A
,
8113 (__mmask8
) __U
, __R
);
8116 extern __inline __m512d
8117 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8118 _mm512_maskz_getexp_round_pd (__mmask8 __U
, __m512d __A
, const int __R
)
8120 return (__m512d
) __builtin_ia32_getexppd512_mask ((__v8df
) __A
,
8122 _mm512_setzero_pd (),
8123 (__mmask8
) __U
, __R
);
8126 extern __inline __m512d
8127 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8128 _mm512_getmant_round_pd (__m512d __A
, _MM_MANTISSA_NORM_ENUM __B
,
8129 _MM_MANTISSA_SIGN_ENUM __C
, const int __R
)
8131 return (__m512d
) __builtin_ia32_getmantpd512_mask ((__v8df
) __A
,
8133 _mm512_undefined_pd (),
8134 (__mmask8
) -1, __R
);
8137 extern __inline __m512d
8138 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8139 _mm512_mask_getmant_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
8140 _MM_MANTISSA_NORM_ENUM __B
,
8141 _MM_MANTISSA_SIGN_ENUM __C
, const int __R
)
8143 return (__m512d
) __builtin_ia32_getmantpd512_mask ((__v8df
) __A
,
8149 extern __inline __m512d
8150 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8151 _mm512_maskz_getmant_round_pd (__mmask8 __U
, __m512d __A
,
8152 _MM_MANTISSA_NORM_ENUM __B
,
8153 _MM_MANTISSA_SIGN_ENUM __C
, const int __R
)
8155 return (__m512d
) __builtin_ia32_getmantpd512_mask ((__v8df
) __A
,
8158 _mm512_setzero_pd (),
8162 extern __inline __m512
8163 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8164 _mm512_getmant_round_ps (__m512 __A
, _MM_MANTISSA_NORM_ENUM __B
,
8165 _MM_MANTISSA_SIGN_ENUM __C
, const int __R
)
8167 return (__m512
) __builtin_ia32_getmantps512_mask ((__v16sf
) __A
,
8169 _mm512_undefined_ps (),
8170 (__mmask16
) -1, __R
);
8173 extern __inline __m512
8174 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8175 _mm512_mask_getmant_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
8176 _MM_MANTISSA_NORM_ENUM __B
,
8177 _MM_MANTISSA_SIGN_ENUM __C
, const int __R
)
8179 return (__m512
) __builtin_ia32_getmantps512_mask ((__v16sf
) __A
,
8185 extern __inline __m512
8186 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8187 _mm512_maskz_getmant_round_ps (__mmask16 __U
, __m512 __A
,
8188 _MM_MANTISSA_NORM_ENUM __B
,
8189 _MM_MANTISSA_SIGN_ENUM __C
, const int __R
)
8191 return (__m512
) __builtin_ia32_getmantps512_mask ((__v16sf
) __A
,
8194 _mm512_setzero_ps (),
8198 extern __inline __m128d
8199 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8200 _mm_getmant_round_sd (__m128d __A
, __m128d __B
,
8201 _MM_MANTISSA_NORM_ENUM __C
,
8202 _MM_MANTISSA_SIGN_ENUM __D
, const int __R
)
8204 return (__m128d
) __builtin_ia32_getmantsd_round ((__v2df
) __A
,
8210 extern __inline __m128
8211 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8212 _mm_getmant_round_ss (__m128 __A
, __m128 __B
,
8213 _MM_MANTISSA_NORM_ENUM __C
,
8214 _MM_MANTISSA_SIGN_ENUM __D
, const int __R
)
8216 return (__m128
) __builtin_ia32_getmantss_round ((__v4sf
) __A
,
8223 #define _mm512_getmant_round_pd(X, B, C, R) \
8224 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
8225 (int)(((C)<<2) | (B)), \
8226 (__v8df)(__m512d)_mm512_undefined_pd(), \
8230 #define _mm512_mask_getmant_round_pd(W, U, X, B, C, R) \
8231 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
8232 (int)(((C)<<2) | (B)), \
8233 (__v8df)(__m512d)(W), \
8237 #define _mm512_maskz_getmant_round_pd(U, X, B, C, R) \
8238 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
8239 (int)(((C)<<2) | (B)), \
8240 (__v8df)(__m512d)_mm512_setzero_pd(), \
8243 #define _mm512_getmant_round_ps(X, B, C, R) \
8244 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
8245 (int)(((C)<<2) | (B)), \
8246 (__v16sf)(__m512)_mm512_undefined_ps(), \
8250 #define _mm512_mask_getmant_round_ps(W, U, X, B, C, R) \
8251 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
8252 (int)(((C)<<2) | (B)), \
8253 (__v16sf)(__m512)(W), \
8257 #define _mm512_maskz_getmant_round_ps(U, X, B, C, R) \
8258 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
8259 (int)(((C)<<2) | (B)), \
8260 (__v16sf)(__m512)_mm512_setzero_ps(), \
8263 #define _mm_getmant_round_sd(X, Y, C, D, R) \
8264 ((__m128d)__builtin_ia32_getmantsd_round ((__v2df)(__m128d)(X), \
8265 (__v2df)(__m128d)(Y), \
8266 (int)(((D)<<2) | (C)), \
8269 #define _mm_getmant_round_ss(X, Y, C, D, R) \
8270 ((__m128)__builtin_ia32_getmantss_round ((__v4sf)(__m128)(X), \
8271 (__v4sf)(__m128)(Y), \
8272 (int)(((D)<<2) | (C)), \
8275 #define _mm_getexp_round_ss(A, B, R) \
8276 ((__m128)__builtin_ia32_getexpss128_round((__v4sf)(__m128)(A), (__v4sf)(__m128)(B), R))
8278 #define _mm_getexp_round_sd(A, B, R) \
8279 ((__m128d)__builtin_ia32_getexpsd128_round((__v2df)(__m128d)(A), (__v2df)(__m128d)(B), R))
8281 #define _mm512_getexp_round_ps(A, R) \
8282 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
8283 (__v16sf)_mm512_undefined_ps(), (__mmask16)-1, R))
8285 #define _mm512_mask_getexp_round_ps(W, U, A, R) \
8286 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
8287 (__v16sf)(__m512)(W), (__mmask16)(U), R))
8289 #define _mm512_maskz_getexp_round_ps(U, A, R) \
8290 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
8291 (__v16sf)_mm512_setzero_ps(), (__mmask16)(U), R))
8293 #define _mm512_getexp_round_pd(A, R) \
8294 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
8295 (__v8df)_mm512_undefined_pd(), (__mmask8)-1, R))
8297 #define _mm512_mask_getexp_round_pd(W, U, A, R) \
8298 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
8299 (__v8df)(__m512d)(W), (__mmask8)(U), R))
8301 #define _mm512_maskz_getexp_round_pd(U, A, R) \
8302 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
8303 (__v8df)_mm512_setzero_pd(), (__mmask8)(U), R))
8307 extern __inline __m512
8308 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8309 _mm512_roundscale_round_ps (__m512 __A
, const int __imm
, const int __R
)
8311 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
, __imm
,
8313 _mm512_undefined_ps (),
8317 extern __inline __m512
8318 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8319 _mm512_mask_roundscale_round_ps (__m512 __A
, __mmask16 __B
, __m512 __C
,
8320 const int __imm
, const int __R
)
8322 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __C
, __imm
,
8324 (__mmask16
) __B
, __R
);
8327 extern __inline __m512
8328 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8329 _mm512_maskz_roundscale_round_ps (__mmask16 __A
, __m512 __B
,
8330 const int __imm
, const int __R
)
8332 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __B
,
8335 _mm512_setzero_ps (),
8336 (__mmask16
) __A
, __R
);
8339 extern __inline __m512d
8340 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8341 _mm512_roundscale_round_pd (__m512d __A
, const int __imm
, const int __R
)
8343 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
, __imm
,
8345 _mm512_undefined_pd (),
8349 extern __inline __m512d
8350 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8351 _mm512_mask_roundscale_round_pd (__m512d __A
, __mmask8 __B
,
8352 __m512d __C
, const int __imm
, const int __R
)
8354 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __C
, __imm
,
8356 (__mmask8
) __B
, __R
);
8359 extern __inline __m512d
8360 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8361 _mm512_maskz_roundscale_round_pd (__mmask8 __A
, __m512d __B
,
8362 const int __imm
, const int __R
)
8364 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __B
,
8367 _mm512_setzero_pd (),
8368 (__mmask8
) __A
, __R
);
8371 extern __inline __m128
8372 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8373 _mm_roundscale_round_ss (__m128 __A
, __m128 __B
, const int __imm
, const int __R
)
8375 return (__m128
) __builtin_ia32_rndscaless_round ((__v4sf
) __A
,
8376 (__v4sf
) __B
, __imm
, __R
);
8379 extern __inline __m128d
8380 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8381 _mm_roundscale_round_sd (__m128d __A
, __m128d __B
, const int __imm
,
8384 return (__m128d
) __builtin_ia32_rndscalesd_round ((__v2df
) __A
,
8385 (__v2df
) __B
, __imm
, __R
);
8389 #define _mm512_roundscale_round_ps(A, B, R) \
8390 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(A), (int)(B),\
8391 (__v16sf)_mm512_undefined_ps(), (__mmask16)(-1), R))
8392 #define _mm512_mask_roundscale_round_ps(A, B, C, D, R) \
8393 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(C), \
8395 (__v16sf)(__m512)(A), \
8397 #define _mm512_maskz_roundscale_round_ps(A, B, C, R) \
8398 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(B), \
8400 (__v16sf)_mm512_setzero_ps(),\
8402 #define _mm512_roundscale_round_pd(A, B, R) \
8403 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(A), (int)(B),\
8404 (__v8df)_mm512_undefined_pd(), (__mmask8)(-1), R))
8405 #define _mm512_mask_roundscale_round_pd(A, B, C, D, R) \
8406 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(C), \
8408 (__v8df)(__m512d)(A), \
8410 #define _mm512_maskz_roundscale_round_pd(A, B, C, R) \
8411 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(B), \
8413 (__v8df)_mm512_setzero_pd(),\
8415 #define _mm_roundscale_round_ss(A, B, C, R) \
8416 ((__m128) __builtin_ia32_rndscaless_round ((__v4sf)(__m128)(A), \
8417 (__v4sf)(__m128)(B), (int)(C), R))
8418 #define _mm_roundscale_round_sd(A, B, C, R) \
8419 ((__m128d) __builtin_ia32_rndscalesd_round ((__v2df)(__m128d)(A), \
8420 (__v2df)(__m128d)(B), (int)(C), R))
8423 extern __inline __m512
8424 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8425 _mm512_floor_ps (__m512 __A
)
8427 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
,
8430 _MM_FROUND_CUR_DIRECTION
);
8433 extern __inline __m512d
8434 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8435 _mm512_floor_pd (__m512d __A
)
8437 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
,
8440 _MM_FROUND_CUR_DIRECTION
);
8443 extern __inline __m512
8444 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8445 _mm512_ceil_ps (__m512 __A
)
8447 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
,
8450 _MM_FROUND_CUR_DIRECTION
);
8453 extern __inline __m512d
8454 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8455 _mm512_ceil_pd (__m512d __A
)
8457 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
,
8460 _MM_FROUND_CUR_DIRECTION
);
8463 extern __inline __m512
8464 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8465 _mm512_mask_floor_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
8467 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
,
8470 _MM_FROUND_CUR_DIRECTION
);
8473 extern __inline __m512d
8474 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8475 _mm512_mask_floor_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
8477 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
,
8480 _MM_FROUND_CUR_DIRECTION
);
8483 extern __inline __m512
8484 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8485 _mm512_mask_ceil_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
8487 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
,
8490 _MM_FROUND_CUR_DIRECTION
);
8493 extern __inline __m512d
8494 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8495 _mm512_mask_ceil_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
8497 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
,
8500 _MM_FROUND_CUR_DIRECTION
);
8504 extern __inline __m512i
8505 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8506 _mm512_alignr_epi32 (__m512i __A
, __m512i __B
, const int __imm
)
8508 return (__m512i
) __builtin_ia32_alignd512_mask ((__v16si
) __A
,
8509 (__v16si
) __B
, __imm
,
8511 _mm512_undefined_epi32 (),
8515 extern __inline __m512i
8516 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8517 _mm512_mask_alignr_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
,
8518 __m512i __B
, const int __imm
)
8520 return (__m512i
) __builtin_ia32_alignd512_mask ((__v16si
) __A
,
8521 (__v16si
) __B
, __imm
,
8526 extern __inline __m512i
8527 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8528 _mm512_maskz_alignr_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
,
8531 return (__m512i
) __builtin_ia32_alignd512_mask ((__v16si
) __A
,
8532 (__v16si
) __B
, __imm
,
8534 _mm512_setzero_si512 (),
8538 extern __inline __m512i
8539 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8540 _mm512_alignr_epi64 (__m512i __A
, __m512i __B
, const int __imm
)
8542 return (__m512i
) __builtin_ia32_alignq512_mask ((__v8di
) __A
,
8543 (__v8di
) __B
, __imm
,
8545 _mm512_undefined_epi32 (),
8549 extern __inline __m512i
8550 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8551 _mm512_mask_alignr_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
,
8552 __m512i __B
, const int __imm
)
8554 return (__m512i
) __builtin_ia32_alignq512_mask ((__v8di
) __A
,
8555 (__v8di
) __B
, __imm
,
8560 extern __inline __m512i
8561 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8562 _mm512_maskz_alignr_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
,
8565 return (__m512i
) __builtin_ia32_alignq512_mask ((__v8di
) __A
,
8566 (__v8di
) __B
, __imm
,
8568 _mm512_setzero_si512 (),
8572 #define _mm512_alignr_epi32(X, Y, C) \
8573 ((__m512i)__builtin_ia32_alignd512_mask ((__v16si)(__m512i)(X), \
8574 (__v16si)(__m512i)(Y), (int)(C), (__v16si)_mm512_undefined_epi32 (),\
8577 #define _mm512_mask_alignr_epi32(W, U, X, Y, C) \
8578 ((__m512i)__builtin_ia32_alignd512_mask ((__v16si)(__m512i)(X), \
8579 (__v16si)(__m512i)(Y), (int)(C), (__v16si)(__m512i)(W), \
8582 #define _mm512_maskz_alignr_epi32(U, X, Y, C) \
8583 ((__m512i)__builtin_ia32_alignd512_mask ((__v16si)(__m512i)(X), \
8584 (__v16si)(__m512i)(Y), (int)(C), (__v16si)_mm512_setzero_si512 (),\
8587 #define _mm512_alignr_epi64(X, Y, C) \
8588 ((__m512i)__builtin_ia32_alignq512_mask ((__v8di)(__m512i)(X), \
8589 (__v8di)(__m512i)(Y), (int)(C), (__v8di)_mm512_undefined_epi32 (), \
8592 #define _mm512_mask_alignr_epi64(W, U, X, Y, C) \
8593 ((__m512i)__builtin_ia32_alignq512_mask ((__v8di)(__m512i)(X), \
8594 (__v8di)(__m512i)(Y), (int)(C), (__v8di)(__m512i)(W), (__mmask8)(U)))
8596 #define _mm512_maskz_alignr_epi64(U, X, Y, C) \
8597 ((__m512i)__builtin_ia32_alignq512_mask ((__v8di)(__m512i)(X), \
8598 (__v8di)(__m512i)(Y), (int)(C), (__v8di)_mm512_setzero_si512 (),\
8602 extern __inline __mmask16
8603 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8604 _mm512_cmpeq_epi32_mask (__m512i __A
, __m512i __B
)
8606 return (__mmask16
) __builtin_ia32_pcmpeqd512_mask ((__v16si
) __A
,
8611 extern __inline __mmask16
8612 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8613 _mm512_mask_cmpeq_epi32_mask (__mmask16 __U
, __m512i __A
, __m512i __B
)
8615 return (__mmask16
) __builtin_ia32_pcmpeqd512_mask ((__v16si
) __A
,
8616 (__v16si
) __B
, __U
);
8619 extern __inline __mmask8
8620 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8621 _mm512_mask_cmpeq_epi64_mask (__mmask8 __U
, __m512i __A
, __m512i __B
)
8623 return (__mmask8
) __builtin_ia32_pcmpeqq512_mask ((__v8di
) __A
,
8627 extern __inline __mmask8
8628 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8629 _mm512_cmpeq_epi64_mask (__m512i __A
, __m512i __B
)
8631 return (__mmask8
) __builtin_ia32_pcmpeqq512_mask ((__v8di
) __A
,
8636 extern __inline __mmask16
8637 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8638 _mm512_cmpgt_epi32_mask (__m512i __A
, __m512i __B
)
8640 return (__mmask16
) __builtin_ia32_pcmpgtd512_mask ((__v16si
) __A
,
8645 extern __inline __mmask16
8646 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8647 _mm512_mask_cmpgt_epi32_mask (__mmask16 __U
, __m512i __A
, __m512i __B
)
8649 return (__mmask16
) __builtin_ia32_pcmpgtd512_mask ((__v16si
) __A
,
8650 (__v16si
) __B
, __U
);
8653 extern __inline __mmask8
8654 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8655 _mm512_mask_cmpgt_epi64_mask (__mmask8 __U
, __m512i __A
, __m512i __B
)
8657 return (__mmask8
) __builtin_ia32_pcmpgtq512_mask ((__v8di
) __A
,
8661 extern __inline __mmask8
8662 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8663 _mm512_cmpgt_epi64_mask (__m512i __A
, __m512i __B
)
8665 return (__mmask8
) __builtin_ia32_pcmpgtq512_mask ((__v8di
) __A
,
8670 extern __inline __mmask16
8671 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8672 _mm512_cmpge_epi32_mask (__m512i __X
, __m512i __Y
)
8674 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
8679 extern __inline __mmask16
8680 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8681 _mm512_mask_cmpge_epi32_mask (__mmask16 __M
, __m512i __X
, __m512i __Y
)
8683 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
8688 extern __inline __mmask16
8689 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8690 _mm512_mask_cmpge_epu32_mask (__mmask16 __M
, __m512i __X
, __m512i __Y
)
8692 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
8697 extern __inline __mmask16
8698 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8699 _mm512_cmpge_epu32_mask (__m512i __X
, __m512i __Y
)
8701 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
8706 extern __inline __mmask8
8707 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8708 _mm512_mask_cmpge_epi64_mask (__mmask8 __M
, __m512i __X
, __m512i __Y
)
8710 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
8715 extern __inline __mmask8
8716 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8717 _mm512_cmpge_epi64_mask (__m512i __X
, __m512i __Y
)
8719 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
8724 extern __inline __mmask8
8725 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8726 _mm512_mask_cmpge_epu64_mask (__mmask8 __M
, __m512i __X
, __m512i __Y
)
8728 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
8733 extern __inline __mmask8
8734 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8735 _mm512_cmpge_epu64_mask (__m512i __X
, __m512i __Y
)
8737 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
8742 extern __inline __mmask16
8743 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8744 _mm512_mask_cmple_epi32_mask (__mmask16 __M
, __m512i __X
, __m512i __Y
)
8746 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
8751 extern __inline __mmask16
8752 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8753 _mm512_cmple_epi32_mask (__m512i __X
, __m512i __Y
)
8755 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
8760 extern __inline __mmask16
8761 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8762 _mm512_mask_cmple_epu32_mask (__mmask16 __M
, __m512i __X
, __m512i __Y
)
8764 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
8769 extern __inline __mmask16
8770 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8771 _mm512_cmple_epu32_mask (__m512i __X
, __m512i __Y
)
8773 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
8778 extern __inline __mmask8
8779 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8780 _mm512_mask_cmple_epi64_mask (__mmask8 __M
, __m512i __X
, __m512i __Y
)
8782 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
8787 extern __inline __mmask8
8788 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8789 _mm512_cmple_epi64_mask (__m512i __X
, __m512i __Y
)
8791 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
8796 extern __inline __mmask8
8797 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8798 _mm512_mask_cmple_epu64_mask (__mmask8 __M
, __m512i __X
, __m512i __Y
)
8800 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
8805 extern __inline __mmask8
8806 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8807 _mm512_cmple_epu64_mask (__m512i __X
, __m512i __Y
)
8809 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
8814 extern __inline __mmask16
8815 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8816 _mm512_mask_cmplt_epi32_mask (__mmask16 __M
, __m512i __X
, __m512i __Y
)
8818 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
8823 extern __inline __mmask16
8824 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8825 _mm512_cmplt_epi32_mask (__m512i __X
, __m512i __Y
)
8827 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
8832 extern __inline __mmask16
8833 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8834 _mm512_mask_cmplt_epu32_mask (__mmask16 __M
, __m512i __X
, __m512i __Y
)
8836 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
8841 extern __inline __mmask16
8842 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8843 _mm512_cmplt_epu32_mask (__m512i __X
, __m512i __Y
)
8845 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
8850 extern __inline __mmask8
8851 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8852 _mm512_mask_cmplt_epi64_mask (__mmask8 __M
, __m512i __X
, __m512i __Y
)
8854 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
8859 extern __inline __mmask8
8860 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8861 _mm512_cmplt_epi64_mask (__m512i __X
, __m512i __Y
)
8863 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
8868 extern __inline __mmask8
8869 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8870 _mm512_mask_cmplt_epu64_mask (__mmask8 __M
, __m512i __X
, __m512i __Y
)
8872 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
8877 extern __inline __mmask8
8878 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8879 _mm512_cmplt_epu64_mask (__m512i __X
, __m512i __Y
)
8881 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
8886 extern __inline __mmask16
8887 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8888 _mm512_cmpneq_epi32_mask (__m512i __X
, __m512i __Y
)
8890 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
8895 extern __inline __mmask16
8896 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8897 _mm512_mask_cmpneq_epi32_mask (__mmask16 __M
, __m512i __X
, __m512i __Y
)
8899 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
8904 extern __inline __mmask16
8905 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8906 _mm512_mask_cmpneq_epu32_mask (__mmask16 __M
, __m512i __X
, __m512i __Y
)
8908 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
8913 extern __inline __mmask16
8914 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8915 _mm512_cmpneq_epu32_mask (__m512i __X
, __m512i __Y
)
8917 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
8922 extern __inline __mmask8
8923 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8924 _mm512_mask_cmpneq_epi64_mask (__mmask16 __M
, __m512i __X
, __m512i __Y
)
8926 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
8931 extern __inline __mmask8
8932 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8933 _mm512_cmpneq_epi64_mask (__m512i __X
, __m512i __Y
)
8935 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
8940 extern __inline __mmask8
8941 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8942 _mm512_mask_cmpneq_epu64_mask (__mmask8 __M
, __m512i __X
, __m512i __Y
)
8944 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
8949 extern __inline __mmask8
8950 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8951 _mm512_cmpneq_epu64_mask (__m512i __X
, __m512i __Y
)
8953 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
8958 #define _MM_CMPINT_EQ 0x0
8959 #define _MM_CMPINT_LT 0x1
8960 #define _MM_CMPINT_LE 0x2
8961 #define _MM_CMPINT_UNUSED 0x3
8962 #define _MM_CMPINT_NE 0x4
8963 #define _MM_CMPINT_NLT 0x5
8964 #define _MM_CMPINT_GE 0x5
8965 #define _MM_CMPINT_NLE 0x6
8966 #define _MM_CMPINT_GT 0x6
8969 extern __inline __mmask16
8970 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8971 _kshiftli_mask16 (__mmask16 __A
, unsigned int __B
)
8973 return (__mmask16
) __builtin_ia32_kshiftlihi ((__mmask16
) __A
,
8977 extern __inline __mmask16
8978 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8979 _kshiftri_mask16 (__mmask16 __A
, unsigned int __B
)
8981 return (__mmask16
) __builtin_ia32_kshiftrihi ((__mmask16
) __A
,
8985 extern __inline __mmask8
8986 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8987 _mm512_cmp_epi64_mask (__m512i __X
, __m512i __Y
, const int __P
)
8989 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
8994 extern __inline __mmask16
8995 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8996 _mm512_cmp_epi32_mask (__m512i __X
, __m512i __Y
, const int __P
)
8998 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
9003 extern __inline __mmask8
9004 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9005 _mm512_cmp_epu64_mask (__m512i __X
, __m512i __Y
, const int __P
)
9007 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
9012 extern __inline __mmask16
9013 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9014 _mm512_cmp_epu32_mask (__m512i __X
, __m512i __Y
, const int __P
)
9016 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
9021 extern __inline __mmask8
9022 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9023 _mm512_cmp_round_pd_mask (__m512d __X
, __m512d __Y
, const int __P
,
9026 return (__mmask8
) __builtin_ia32_cmppd512_mask ((__v8df
) __X
,
9028 (__mmask8
) -1, __R
);
9031 extern __inline __mmask16
9032 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9033 _mm512_cmp_round_ps_mask (__m512 __X
, __m512 __Y
, const int __P
, const int __R
)
9035 return (__mmask16
) __builtin_ia32_cmpps512_mask ((__v16sf
) __X
,
9037 (__mmask16
) -1, __R
);
9040 extern __inline __mmask8
9041 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9042 _mm512_mask_cmp_epi64_mask (__mmask8 __U
, __m512i __X
, __m512i __Y
,
9045 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
9050 extern __inline __mmask16
9051 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9052 _mm512_mask_cmp_epi32_mask (__mmask16 __U
, __m512i __X
, __m512i __Y
,
9055 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
9060 extern __inline __mmask8
9061 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9062 _mm512_mask_cmp_epu64_mask (__mmask8 __U
, __m512i __X
, __m512i __Y
,
9065 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
9070 extern __inline __mmask16
9071 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9072 _mm512_mask_cmp_epu32_mask (__mmask16 __U
, __m512i __X
, __m512i __Y
,
9075 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
9080 extern __inline __mmask8
9081 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9082 _mm512_mask_cmp_round_pd_mask (__mmask8 __U
, __m512d __X
, __m512d __Y
,
9083 const int __P
, const int __R
)
9085 return (__mmask8
) __builtin_ia32_cmppd512_mask ((__v8df
) __X
,
9087 (__mmask8
) __U
, __R
);
9090 extern __inline __mmask16
9091 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9092 _mm512_mask_cmp_round_ps_mask (__mmask16 __U
, __m512 __X
, __m512 __Y
,
9093 const int __P
, const int __R
)
9095 return (__mmask16
) __builtin_ia32_cmpps512_mask ((__v16sf
) __X
,
9097 (__mmask16
) __U
, __R
);
9100 extern __inline __mmask8
9101 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9102 _mm_cmp_round_sd_mask (__m128d __X
, __m128d __Y
, const int __P
, const int __R
)
9104 return (__mmask8
) __builtin_ia32_cmpsd_mask ((__v2df
) __X
,
9106 (__mmask8
) -1, __R
);
9109 extern __inline __mmask8
9110 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9111 _mm_mask_cmp_round_sd_mask (__mmask8 __M
, __m128d __X
, __m128d __Y
,
9112 const int __P
, const int __R
)
9114 return (__mmask8
) __builtin_ia32_cmpsd_mask ((__v2df
) __X
,
9116 (__mmask8
) __M
, __R
);
9119 extern __inline __mmask8
9120 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9121 _mm_cmp_round_ss_mask (__m128 __X
, __m128 __Y
, const int __P
, const int __R
)
9123 return (__mmask8
) __builtin_ia32_cmpss_mask ((__v4sf
) __X
,
9125 (__mmask8
) -1, __R
);
9128 extern __inline __mmask8
9129 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9130 _mm_mask_cmp_round_ss_mask (__mmask8 __M
, __m128 __X
, __m128 __Y
,
9131 const int __P
, const int __R
)
9133 return (__mmask8
) __builtin_ia32_cmpss_mask ((__v4sf
) __X
,
9135 (__mmask8
) __M
, __R
);
9139 #define _kshiftli_mask16(X, Y) \
9140 ((__mmask16) __builtin_ia32_kshiftlihi ((__mmask16)(X), (__mmask8)(Y)))
9142 #define _kshiftri_mask16(X, Y) \
9143 ((__mmask16) __builtin_ia32_kshiftrihi ((__mmask16)(X), (__mmask8)(Y)))
9145 #define _mm512_cmp_epi64_mask(X, Y, P) \
9146 ((__mmask8) __builtin_ia32_cmpq512_mask ((__v8di)(__m512i)(X), \
9147 (__v8di)(__m512i)(Y), (int)(P),\
9150 #define _mm512_cmp_epi32_mask(X, Y, P) \
9151 ((__mmask16) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X), \
9152 (__v16si)(__m512i)(Y), (int)(P), \
9155 #define _mm512_cmp_epu64_mask(X, Y, P) \
9156 ((__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di)(__m512i)(X), \
9157 (__v8di)(__m512i)(Y), (int)(P),\
9160 #define _mm512_cmp_epu32_mask(X, Y, P) \
9161 ((__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X), \
9162 (__v16si)(__m512i)(Y), (int)(P), \
9165 #define _mm512_cmp_round_pd_mask(X, Y, P, R) \
9166 ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X), \
9167 (__v8df)(__m512d)(Y), (int)(P),\
9170 #define _mm512_cmp_round_ps_mask(X, Y, P, R) \
9171 ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X), \
9172 (__v16sf)(__m512)(Y), (int)(P),\
9175 #define _mm512_mask_cmp_epi64_mask(M, X, Y, P) \
9176 ((__mmask8) __builtin_ia32_cmpq512_mask ((__v8di)(__m512i)(X), \
9177 (__v8di)(__m512i)(Y), (int)(P),\
9180 #define _mm512_mask_cmp_epi32_mask(M, X, Y, P) \
9181 ((__mmask16) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X), \
9182 (__v16si)(__m512i)(Y), (int)(P), \
9185 #define _mm512_mask_cmp_epu64_mask(M, X, Y, P) \
9186 ((__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di)(__m512i)(X), \
9187 (__v8di)(__m512i)(Y), (int)(P),\
9190 #define _mm512_mask_cmp_epu32_mask(M, X, Y, P) \
9191 ((__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X), \
9192 (__v16si)(__m512i)(Y), (int)(P), \
9195 #define _mm512_mask_cmp_round_pd_mask(M, X, Y, P, R) \
9196 ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X), \
9197 (__v8df)(__m512d)(Y), (int)(P),\
9200 #define _mm512_mask_cmp_round_ps_mask(M, X, Y, P, R) \
9201 ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X), \
9202 (__v16sf)(__m512)(Y), (int)(P),\
9205 #define _mm_cmp_round_sd_mask(X, Y, P, R) \
9206 ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X), \
9207 (__v2df)(__m128d)(Y), (int)(P),\
9210 #define _mm_mask_cmp_round_sd_mask(M, X, Y, P, R) \
9211 ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X), \
9212 (__v2df)(__m128d)(Y), (int)(P),\
9215 #define _mm_cmp_round_ss_mask(X, Y, P, R) \
9216 ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X), \
9217 (__v4sf)(__m128)(Y), (int)(P), \
9220 #define _mm_mask_cmp_round_ss_mask(M, X, Y, P, R) \
9221 ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X), \
9222 (__v4sf)(__m128)(Y), (int)(P), \
9227 extern __inline __m512
9228 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9229 _mm512_i32gather_ps (__m512i __index
, void const *__addr
, int __scale
)
9231 __m512 __v1_old
= _mm512_undefined_ps ();
9232 __mmask16 __mask
= 0xFFFF;
9234 return (__m512
) __builtin_ia32_gathersiv16sf ((__v16sf
) __v1_old
,
9240 extern __inline __m512
9241 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9242 _mm512_mask_i32gather_ps (__m512 __v1_old
, __mmask16 __mask
,
9243 __m512i __index
, void const *__addr
, int __scale
)
9245 return (__m512
) __builtin_ia32_gathersiv16sf ((__v16sf
) __v1_old
,
9251 extern __inline __m512d
9252 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9253 _mm512_i32gather_pd (__m256i __index
, void const *__addr
, int __scale
)
9255 __m512d __v1_old
= _mm512_undefined_pd ();
9256 __mmask8 __mask
= 0xFF;
9258 return (__m512d
) __builtin_ia32_gathersiv8df ((__v8df
) __v1_old
,
9260 (__v8si
) __index
, __mask
,
9264 extern __inline __m512d
9265 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9266 _mm512_mask_i32gather_pd (__m512d __v1_old
, __mmask8 __mask
,
9267 __m256i __index
, void const *__addr
, int __scale
)
9269 return (__m512d
) __builtin_ia32_gathersiv8df ((__v8df
) __v1_old
,
9275 extern __inline __m256
9276 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9277 _mm512_i64gather_ps (__m512i __index
, void const *__addr
, int __scale
)
9279 __m256 __v1_old
= _mm256_undefined_ps ();
9280 __mmask8 __mask
= 0xFF;
9282 return (__m256
) __builtin_ia32_gatherdiv16sf ((__v8sf
) __v1_old
,
9284 (__v8di
) __index
, __mask
,
9288 extern __inline __m256
9289 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9290 _mm512_mask_i64gather_ps (__m256 __v1_old
, __mmask8 __mask
,
9291 __m512i __index
, void const *__addr
, int __scale
)
9293 return (__m256
) __builtin_ia32_gatherdiv16sf ((__v8sf
) __v1_old
,
9299 extern __inline __m512d
9300 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9301 _mm512_i64gather_pd (__m512i __index
, void const *__addr
, int __scale
)
9303 __m512d __v1_old
= _mm512_undefined_pd ();
9304 __mmask8 __mask
= 0xFF;
9306 return (__m512d
) __builtin_ia32_gatherdiv8df ((__v8df
) __v1_old
,
9308 (__v8di
) __index
, __mask
,
9312 extern __inline __m512d
9313 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9314 _mm512_mask_i64gather_pd (__m512d __v1_old
, __mmask8 __mask
,
9315 __m512i __index
, void const *__addr
, int __scale
)
9317 return (__m512d
) __builtin_ia32_gatherdiv8df ((__v8df
) __v1_old
,
9323 extern __inline __m512i
9324 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9325 _mm512_i32gather_epi32 (__m512i __index
, void const *__addr
, int __scale
)
9327 __m512i __v1_old
= _mm512_undefined_epi32 ();
9328 __mmask16 __mask
= 0xFFFF;
9330 return (__m512i
) __builtin_ia32_gathersiv16si ((__v16si
) __v1_old
,
9336 extern __inline __m512i
9337 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9338 _mm512_mask_i32gather_epi32 (__m512i __v1_old
, __mmask16 __mask
,
9339 __m512i __index
, void const *__addr
, int __scale
)
9341 return (__m512i
) __builtin_ia32_gathersiv16si ((__v16si
) __v1_old
,
9347 extern __inline __m512i
9348 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9349 _mm512_i32gather_epi64 (__m256i __index
, void const *__addr
, int __scale
)
9351 __m512i __v1_old
= _mm512_undefined_epi32 ();
9352 __mmask8 __mask
= 0xFF;
9354 return (__m512i
) __builtin_ia32_gathersiv8di ((__v8di
) __v1_old
,
9356 (__v8si
) __index
, __mask
,
9360 extern __inline __m512i
9361 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9362 _mm512_mask_i32gather_epi64 (__m512i __v1_old
, __mmask8 __mask
,
9363 __m256i __index
, void const *__addr
,
9366 return (__m512i
) __builtin_ia32_gathersiv8di ((__v8di
) __v1_old
,
9372 extern __inline __m256i
9373 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9374 _mm512_i64gather_epi32 (__m512i __index
, void const *__addr
, int __scale
)
9376 __m256i __v1_old
= _mm256_undefined_si256 ();
9377 __mmask8 __mask
= 0xFF;
9379 return (__m256i
) __builtin_ia32_gatherdiv16si ((__v8si
) __v1_old
,
9385 extern __inline __m256i
9386 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9387 _mm512_mask_i64gather_epi32 (__m256i __v1_old
, __mmask8 __mask
,
9388 __m512i __index
, void const *__addr
, int __scale
)
9390 return (__m256i
) __builtin_ia32_gatherdiv16si ((__v8si
) __v1_old
,
9396 extern __inline __m512i
9397 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9398 _mm512_i64gather_epi64 (__m512i __index
, void const *__addr
, int __scale
)
9400 __m512i __v1_old
= _mm512_undefined_epi32 ();
9401 __mmask8 __mask
= 0xFF;
9403 return (__m512i
) __builtin_ia32_gatherdiv8di ((__v8di
) __v1_old
,
9405 (__v8di
) __index
, __mask
,
9409 extern __inline __m512i
9410 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9411 _mm512_mask_i64gather_epi64 (__m512i __v1_old
, __mmask8 __mask
,
9412 __m512i __index
, void const *__addr
,
9415 return (__m512i
) __builtin_ia32_gatherdiv8di ((__v8di
) __v1_old
,
9421 extern __inline
void
9422 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9423 _mm512_i32scatter_ps (void *__addr
, __m512i __index
, __m512 __v1
, int __scale
)
9425 __builtin_ia32_scattersiv16sf (__addr
, (__mmask16
) 0xFFFF,
9426 (__v16si
) __index
, (__v16sf
) __v1
, __scale
);
9429 extern __inline
void
9430 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9431 _mm512_mask_i32scatter_ps (void *__addr
, __mmask16 __mask
,
9432 __m512i __index
, __m512 __v1
, int __scale
)
9434 __builtin_ia32_scattersiv16sf (__addr
, __mask
, (__v16si
) __index
,
9435 (__v16sf
) __v1
, __scale
);
9438 extern __inline
void
9439 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9440 _mm512_i32scatter_pd (void *__addr
, __m256i __index
, __m512d __v1
,
9443 __builtin_ia32_scattersiv8df (__addr
, (__mmask8
) 0xFF,
9444 (__v8si
) __index
, (__v8df
) __v1
, __scale
);
9447 extern __inline
void
9448 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9449 _mm512_mask_i32scatter_pd (void *__addr
, __mmask8 __mask
,
9450 __m256i __index
, __m512d __v1
, int __scale
)
9452 __builtin_ia32_scattersiv8df (__addr
, __mask
, (__v8si
) __index
,
9453 (__v8df
) __v1
, __scale
);
9456 extern __inline
void
9457 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9458 _mm512_i64scatter_ps (void *__addr
, __m512i __index
, __m256 __v1
, int __scale
)
9460 __builtin_ia32_scatterdiv16sf (__addr
, (__mmask8
) 0xFF,
9461 (__v8di
) __index
, (__v8sf
) __v1
, __scale
);
9464 extern __inline
void
9465 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9466 _mm512_mask_i64scatter_ps (void *__addr
, __mmask8 __mask
,
9467 __m512i __index
, __m256 __v1
, int __scale
)
9469 __builtin_ia32_scatterdiv16sf (__addr
, __mask
, (__v8di
) __index
,
9470 (__v8sf
) __v1
, __scale
);
9473 extern __inline
void
9474 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9475 _mm512_i64scatter_pd (void *__addr
, __m512i __index
, __m512d __v1
,
9478 __builtin_ia32_scatterdiv8df (__addr
, (__mmask8
) 0xFF,
9479 (__v8di
) __index
, (__v8df
) __v1
, __scale
);
9482 extern __inline
void
9483 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9484 _mm512_mask_i64scatter_pd (void *__addr
, __mmask8 __mask
,
9485 __m512i __index
, __m512d __v1
, int __scale
)
9487 __builtin_ia32_scatterdiv8df (__addr
, __mask
, (__v8di
) __index
,
9488 (__v8df
) __v1
, __scale
);
9491 extern __inline
void
9492 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9493 _mm512_i32scatter_epi32 (void *__addr
, __m512i __index
,
9494 __m512i __v1
, int __scale
)
9496 __builtin_ia32_scattersiv16si (__addr
, (__mmask16
) 0xFFFF,
9497 (__v16si
) __index
, (__v16si
) __v1
, __scale
);
9500 extern __inline
void
9501 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9502 _mm512_mask_i32scatter_epi32 (void *__addr
, __mmask16 __mask
,
9503 __m512i __index
, __m512i __v1
, int __scale
)
9505 __builtin_ia32_scattersiv16si (__addr
, __mask
, (__v16si
) __index
,
9506 (__v16si
) __v1
, __scale
);
9509 extern __inline
void
9510 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9511 _mm512_i32scatter_epi64 (void *__addr
, __m256i __index
,
9512 __m512i __v1
, int __scale
)
9514 __builtin_ia32_scattersiv8di (__addr
, (__mmask8
) 0xFF,
9515 (__v8si
) __index
, (__v8di
) __v1
, __scale
);
9518 extern __inline
void
9519 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9520 _mm512_mask_i32scatter_epi64 (void *__addr
, __mmask8 __mask
,
9521 __m256i __index
, __m512i __v1
, int __scale
)
9523 __builtin_ia32_scattersiv8di (__addr
, __mask
, (__v8si
) __index
,
9524 (__v8di
) __v1
, __scale
);
9527 extern __inline
void
9528 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9529 _mm512_i64scatter_epi32 (void *__addr
, __m512i __index
,
9530 __m256i __v1
, int __scale
)
9532 __builtin_ia32_scatterdiv16si (__addr
, (__mmask8
) 0xFF,
9533 (__v8di
) __index
, (__v8si
) __v1
, __scale
);
9536 extern __inline
void
9537 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9538 _mm512_mask_i64scatter_epi32 (void *__addr
, __mmask8 __mask
,
9539 __m512i __index
, __m256i __v1
, int __scale
)
9541 __builtin_ia32_scatterdiv16si (__addr
, __mask
, (__v8di
) __index
,
9542 (__v8si
) __v1
, __scale
);
9545 extern __inline
void
9546 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9547 _mm512_i64scatter_epi64 (void *__addr
, __m512i __index
,
9548 __m512i __v1
, int __scale
)
9550 __builtin_ia32_scatterdiv8di (__addr
, (__mmask8
) 0xFF,
9551 (__v8di
) __index
, (__v8di
) __v1
, __scale
);
9554 extern __inline
void
9555 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9556 _mm512_mask_i64scatter_epi64 (void *__addr
, __mmask8 __mask
,
9557 __m512i __index
, __m512i __v1
, int __scale
)
9559 __builtin_ia32_scatterdiv8di (__addr
, __mask
, (__v8di
) __index
,
9560 (__v8di
) __v1
, __scale
);
9563 #define _mm512_i32gather_ps(INDEX, ADDR, SCALE) \
9564 (__m512) __builtin_ia32_gathersiv16sf ((__v16sf)_mm512_undefined_ps(),\
9565 (void const *)ADDR, \
9566 (__v16si)(__m512i)INDEX, \
9567 (__mmask16)0xFFFF, (int)SCALE)
9569 #define _mm512_mask_i32gather_ps(V1OLD, MASK, INDEX, ADDR, SCALE) \
9570 (__m512) __builtin_ia32_gathersiv16sf ((__v16sf)(__m512)V1OLD, \
9571 (void const *)ADDR, \
9572 (__v16si)(__m512i)INDEX, \
9573 (__mmask16)MASK, (int)SCALE)
9575 #define _mm512_i32gather_pd(INDEX, ADDR, SCALE) \
9576 (__m512d) __builtin_ia32_gathersiv8df ((__v8df)_mm512_undefined_pd(), \
9577 (void const *)ADDR, \
9578 (__v8si)(__m256i)INDEX, \
9579 (__mmask8)0xFF, (int)SCALE)
9581 #define _mm512_mask_i32gather_pd(V1OLD, MASK, INDEX, ADDR, SCALE) \
9582 (__m512d) __builtin_ia32_gathersiv8df ((__v8df)(__m512d)V1OLD, \
9583 (void const *)ADDR, \
9584 (__v8si)(__m256i)INDEX, \
9585 (__mmask8)MASK, (int)SCALE)
9587 #define _mm512_i64gather_ps(INDEX, ADDR, SCALE) \
9588 (__m256) __builtin_ia32_gatherdiv16sf ((__v8sf)_mm256_undefined_ps(), \
9589 (void const *)ADDR, \
9590 (__v8di)(__m512i)INDEX, \
9591 (__mmask8)0xFF, (int)SCALE)
9593 #define _mm512_mask_i64gather_ps(V1OLD, MASK, INDEX, ADDR, SCALE) \
9594 (__m256) __builtin_ia32_gatherdiv16sf ((__v8sf)(__m256)V1OLD, \
9595 (void const *)ADDR, \
9596 (__v8di)(__m512i)INDEX, \
9597 (__mmask8)MASK, (int)SCALE)
9599 #define _mm512_i64gather_pd(INDEX, ADDR, SCALE) \
9600 (__m512d) __builtin_ia32_gatherdiv8df ((__v8df)_mm512_undefined_pd(), \
9601 (void const *)ADDR, \
9602 (__v8di)(__m512i)INDEX, \
9603 (__mmask8)0xFF, (int)SCALE)
9605 #define _mm512_mask_i64gather_pd(V1OLD, MASK, INDEX, ADDR, SCALE) \
9606 (__m512d) __builtin_ia32_gatherdiv8df ((__v8df)(__m512d)V1OLD, \
9607 (void const *)ADDR, \
9608 (__v8di)(__m512i)INDEX, \
9609 (__mmask8)MASK, (int)SCALE)
9611 #define _mm512_i32gather_epi32(INDEX, ADDR, SCALE) \
9612 (__m512i) __builtin_ia32_gathersiv16si ((__v16si)_mm512_undefined_epi32 (), \
9613 (void const *)ADDR, \
9614 (__v16si)(__m512i)INDEX, \
9615 (__mmask16)0xFFFF, (int)SCALE)
9617 #define _mm512_mask_i32gather_epi32(V1OLD, MASK, INDEX, ADDR, SCALE) \
9618 (__m512i) __builtin_ia32_gathersiv16si ((__v16si)(__m512i)V1OLD, \
9619 (void const *)ADDR, \
9620 (__v16si)(__m512i)INDEX, \
9621 (__mmask16)MASK, (int)SCALE)
9623 #define _mm512_i32gather_epi64(INDEX, ADDR, SCALE) \
9624 (__m512i) __builtin_ia32_gathersiv8di ((__v8di)_mm512_undefined_epi32 (), \
9625 (void const *)ADDR, \
9626 (__v8si)(__m256i)INDEX, \
9627 (__mmask8)0xFF, (int)SCALE)
9629 #define _mm512_mask_i32gather_epi64(V1OLD, MASK, INDEX, ADDR, SCALE) \
9630 (__m512i) __builtin_ia32_gathersiv8di ((__v8di)(__m512i)V1OLD, \
9631 (void const *)ADDR, \
9632 (__v8si)(__m256i)INDEX, \
9633 (__mmask8)MASK, (int)SCALE)
9635 #define _mm512_i64gather_epi32(INDEX, ADDR, SCALE) \
9636 (__m256i) __builtin_ia32_gatherdiv16si ((__v8si)_mm256_undefined_si256(), \
9637 (void const *)ADDR, \
9638 (__v8di)(__m512i)INDEX, \
9639 (__mmask8)0xFF, (int)SCALE)
9641 #define _mm512_mask_i64gather_epi32(V1OLD, MASK, INDEX, ADDR, SCALE) \
9642 (__m256i) __builtin_ia32_gatherdiv16si ((__v8si)(__m256i)V1OLD, \
9643 (void const *)ADDR, \
9644 (__v8di)(__m512i)INDEX, \
9645 (__mmask8)MASK, (int)SCALE)
9647 #define _mm512_i64gather_epi64(INDEX, ADDR, SCALE) \
9648 (__m512i) __builtin_ia32_gatherdiv8di ((__v8di)_mm512_undefined_epi32 (), \
9649 (void const *)ADDR, \
9650 (__v8di)(__m512i)INDEX, \
9651 (__mmask8)0xFF, (int)SCALE)
9653 #define _mm512_mask_i64gather_epi64(V1OLD, MASK, INDEX, ADDR, SCALE) \
9654 (__m512i) __builtin_ia32_gatherdiv8di ((__v8di)(__m512i)V1OLD, \
9655 (void const *)ADDR, \
9656 (__v8di)(__m512i)INDEX, \
9657 (__mmask8)MASK, (int)SCALE)
9659 #define _mm512_i32scatter_ps(ADDR, INDEX, V1, SCALE) \
9660 __builtin_ia32_scattersiv16sf ((void *)ADDR, (__mmask16)0xFFFF, \
9661 (__v16si)(__m512i)INDEX, \
9662 (__v16sf)(__m512)V1, (int)SCALE)
9664 #define _mm512_mask_i32scatter_ps(ADDR, MASK, INDEX, V1, SCALE) \
9665 __builtin_ia32_scattersiv16sf ((void *)ADDR, (__mmask16)MASK, \
9666 (__v16si)(__m512i)INDEX, \
9667 (__v16sf)(__m512)V1, (int)SCALE)
9669 #define _mm512_i32scatter_pd(ADDR, INDEX, V1, SCALE) \
9670 __builtin_ia32_scattersiv8df ((void *)ADDR, (__mmask8)0xFF, \
9671 (__v8si)(__m256i)INDEX, \
9672 (__v8df)(__m512d)V1, (int)SCALE)
9674 #define _mm512_mask_i32scatter_pd(ADDR, MASK, INDEX, V1, SCALE) \
9675 __builtin_ia32_scattersiv8df ((void *)ADDR, (__mmask8)MASK, \
9676 (__v8si)(__m256i)INDEX, \
9677 (__v8df)(__m512d)V1, (int)SCALE)
9679 #define _mm512_i64scatter_ps(ADDR, INDEX, V1, SCALE) \
9680 __builtin_ia32_scatterdiv16sf ((void *)ADDR, (__mmask8)0xFF, \
9681 (__v8di)(__m512i)INDEX, \
9682 (__v8sf)(__m256)V1, (int)SCALE)
9684 #define _mm512_mask_i64scatter_ps(ADDR, MASK, INDEX, V1, SCALE) \
9685 __builtin_ia32_scatterdiv16sf ((void *)ADDR, (__mmask16)MASK, \
9686 (__v8di)(__m512i)INDEX, \
9687 (__v8sf)(__m256)V1, (int)SCALE)
9689 #define _mm512_i64scatter_pd(ADDR, INDEX, V1, SCALE) \
9690 __builtin_ia32_scatterdiv8df ((void *)ADDR, (__mmask8)0xFF, \
9691 (__v8di)(__m512i)INDEX, \
9692 (__v8df)(__m512d)V1, (int)SCALE)
9694 #define _mm512_mask_i64scatter_pd(ADDR, MASK, INDEX, V1, SCALE) \
9695 __builtin_ia32_scatterdiv8df ((void *)ADDR, (__mmask8)MASK, \
9696 (__v8di)(__m512i)INDEX, \
9697 (__v8df)(__m512d)V1, (int)SCALE)
9699 #define _mm512_i32scatter_epi32(ADDR, INDEX, V1, SCALE) \
9700 __builtin_ia32_scattersiv16si ((void *)ADDR, (__mmask16)0xFFFF, \
9701 (__v16si)(__m512i)INDEX, \
9702 (__v16si)(__m512i)V1, (int)SCALE)
9704 #define _mm512_mask_i32scatter_epi32(ADDR, MASK, INDEX, V1, SCALE) \
9705 __builtin_ia32_scattersiv16si ((void *)ADDR, (__mmask16)MASK, \
9706 (__v16si)(__m512i)INDEX, \
9707 (__v16si)(__m512i)V1, (int)SCALE)
9709 #define _mm512_i32scatter_epi64(ADDR, INDEX, V1, SCALE) \
9710 __builtin_ia32_scattersiv8di ((void *)ADDR, (__mmask8)0xFF, \
9711 (__v8si)(__m256i)INDEX, \
9712 (__v8di)(__m512i)V1, (int)SCALE)
9714 #define _mm512_mask_i32scatter_epi64(ADDR, MASK, INDEX, V1, SCALE) \
9715 __builtin_ia32_scattersiv8di ((void *)ADDR, (__mmask8)MASK, \
9716 (__v8si)(__m256i)INDEX, \
9717 (__v8di)(__m512i)V1, (int)SCALE)
9719 #define _mm512_i64scatter_epi32(ADDR, INDEX, V1, SCALE) \
9720 __builtin_ia32_scatterdiv16si ((void *)ADDR, (__mmask8)0xFF, \
9721 (__v8di)(__m512i)INDEX, \
9722 (__v8si)(__m256i)V1, (int)SCALE)
9724 #define _mm512_mask_i64scatter_epi32(ADDR, MASK, INDEX, V1, SCALE) \
9725 __builtin_ia32_scatterdiv16si ((void *)ADDR, (__mmask8)MASK, \
9726 (__v8di)(__m512i)INDEX, \
9727 (__v8si)(__m256i)V1, (int)SCALE)
9729 #define _mm512_i64scatter_epi64(ADDR, INDEX, V1, SCALE) \
9730 __builtin_ia32_scatterdiv8di ((void *)ADDR, (__mmask8)0xFF, \
9731 (__v8di)(__m512i)INDEX, \
9732 (__v8di)(__m512i)V1, (int)SCALE)
9734 #define _mm512_mask_i64scatter_epi64(ADDR, MASK, INDEX, V1, SCALE) \
9735 __builtin_ia32_scatterdiv8di ((void *)ADDR, (__mmask8)MASK, \
9736 (__v8di)(__m512i)INDEX, \
9737 (__v8di)(__m512i)V1, (int)SCALE)
9740 extern __inline __m512d
9741 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9742 _mm512_mask_compress_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
9744 return (__m512d
) __builtin_ia32_compressdf512_mask ((__v8df
) __A
,
9749 extern __inline __m512d
9750 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9751 _mm512_maskz_compress_pd (__mmask8 __U
, __m512d __A
)
9753 return (__m512d
) __builtin_ia32_compressdf512_mask ((__v8df
) __A
,
9755 _mm512_setzero_pd (),
9759 extern __inline
void
9760 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9761 _mm512_mask_compressstoreu_pd (void *__P
, __mmask8 __U
, __m512d __A
)
9763 __builtin_ia32_compressstoredf512_mask ((__v8df
*) __P
, (__v8df
) __A
,
9767 extern __inline __m512
9768 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9769 _mm512_mask_compress_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
9771 return (__m512
) __builtin_ia32_compresssf512_mask ((__v16sf
) __A
,
9776 extern __inline __m512
9777 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9778 _mm512_maskz_compress_ps (__mmask16 __U
, __m512 __A
)
9780 return (__m512
) __builtin_ia32_compresssf512_mask ((__v16sf
) __A
,
9782 _mm512_setzero_ps (),
9786 extern __inline
void
9787 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9788 _mm512_mask_compressstoreu_ps (void *__P
, __mmask16 __U
, __m512 __A
)
9790 __builtin_ia32_compressstoresf512_mask ((__v16sf
*) __P
, (__v16sf
) __A
,
9794 extern __inline __m512i
9795 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9796 _mm512_mask_compress_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
)
9798 return (__m512i
) __builtin_ia32_compressdi512_mask ((__v8di
) __A
,
9803 extern __inline __m512i
9804 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9805 _mm512_maskz_compress_epi64 (__mmask8 __U
, __m512i __A
)
9807 return (__m512i
) __builtin_ia32_compressdi512_mask ((__v8di
) __A
,
9809 _mm512_setzero_si512 (),
9813 extern __inline
void
9814 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9815 _mm512_mask_compressstoreu_epi64 (void *__P
, __mmask8 __U
, __m512i __A
)
9817 __builtin_ia32_compressstoredi512_mask ((__v8di
*) __P
, (__v8di
) __A
,
9821 extern __inline __m512i
9822 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9823 _mm512_mask_compress_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
)
9825 return (__m512i
) __builtin_ia32_compresssi512_mask ((__v16si
) __A
,
9830 extern __inline __m512i
9831 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9832 _mm512_maskz_compress_epi32 (__mmask16 __U
, __m512i __A
)
9834 return (__m512i
) __builtin_ia32_compresssi512_mask ((__v16si
) __A
,
9836 _mm512_setzero_si512 (),
9840 extern __inline
void
9841 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9842 _mm512_mask_compressstoreu_epi32 (void *__P
, __mmask16 __U
, __m512i __A
)
9844 __builtin_ia32_compressstoresi512_mask ((__v16si
*) __P
, (__v16si
) __A
,
9848 extern __inline __m512d
9849 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9850 _mm512_mask_expand_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
9852 return (__m512d
) __builtin_ia32_expanddf512_mask ((__v8df
) __A
,
9857 extern __inline __m512d
9858 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9859 _mm512_maskz_expand_pd (__mmask8 __U
, __m512d __A
)
9861 return (__m512d
) __builtin_ia32_expanddf512_maskz ((__v8df
) __A
,
9863 _mm512_setzero_pd (),
9867 extern __inline __m512d
9868 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9869 _mm512_mask_expandloadu_pd (__m512d __W
, __mmask8 __U
, void const *__P
)
9871 return (__m512d
) __builtin_ia32_expandloaddf512_mask ((const __v8df
*) __P
,
9876 extern __inline __m512d
9877 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9878 _mm512_maskz_expandloadu_pd (__mmask8 __U
, void const *__P
)
9880 return (__m512d
) __builtin_ia32_expandloaddf512_maskz ((const __v8df
*) __P
,
9882 _mm512_setzero_pd (),
9886 extern __inline __m512
9887 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9888 _mm512_mask_expand_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
9890 return (__m512
) __builtin_ia32_expandsf512_mask ((__v16sf
) __A
,
9895 extern __inline __m512
9896 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9897 _mm512_maskz_expand_ps (__mmask16 __U
, __m512 __A
)
9899 return (__m512
) __builtin_ia32_expandsf512_maskz ((__v16sf
) __A
,
9901 _mm512_setzero_ps (),
9905 extern __inline __m512
9906 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9907 _mm512_mask_expandloadu_ps (__m512 __W
, __mmask16 __U
, void const *__P
)
9909 return (__m512
) __builtin_ia32_expandloadsf512_mask ((const __v16sf
*) __P
,
9914 extern __inline __m512
9915 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9916 _mm512_maskz_expandloadu_ps (__mmask16 __U
, void const *__P
)
9918 return (__m512
) __builtin_ia32_expandloadsf512_maskz ((const __v16sf
*) __P
,
9920 _mm512_setzero_ps (),
9924 extern __inline __m512i
9925 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9926 _mm512_mask_expand_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
)
9928 return (__m512i
) __builtin_ia32_expanddi512_mask ((__v8di
) __A
,
9933 extern __inline __m512i
9934 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9935 _mm512_maskz_expand_epi64 (__mmask8 __U
, __m512i __A
)
9937 return (__m512i
) __builtin_ia32_expanddi512_maskz ((__v8di
) __A
,
9939 _mm512_setzero_si512 (),
9943 extern __inline __m512i
9944 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9945 _mm512_mask_expandloadu_epi64 (__m512i __W
, __mmask8 __U
, void const *__P
)
9947 return (__m512i
) __builtin_ia32_expandloaddi512_mask ((const __v8di
*) __P
,
9952 extern __inline __m512i
9953 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9954 _mm512_maskz_expandloadu_epi64 (__mmask8 __U
, void const *__P
)
9957 __builtin_ia32_expandloaddi512_maskz ((const __v8di
*) __P
,
9959 _mm512_setzero_si512 (),
9963 extern __inline __m512i
9964 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9965 _mm512_mask_expand_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
)
9967 return (__m512i
) __builtin_ia32_expandsi512_mask ((__v16si
) __A
,
9972 extern __inline __m512i
9973 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9974 _mm512_maskz_expand_epi32 (__mmask16 __U
, __m512i __A
)
9976 return (__m512i
) __builtin_ia32_expandsi512_maskz ((__v16si
) __A
,
9978 _mm512_setzero_si512 (),
9982 extern __inline __m512i
9983 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9984 _mm512_mask_expandloadu_epi32 (__m512i __W
, __mmask16 __U
, void const *__P
)
9986 return (__m512i
) __builtin_ia32_expandloadsi512_mask ((const __v16si
*) __P
,
9991 extern __inline __m512i
9992 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9993 _mm512_maskz_expandloadu_epi32 (__mmask16 __U
, void const *__P
)
9995 return (__m512i
) __builtin_ia32_expandloadsi512_maskz ((const __v16si
*) __P
,
9997 _mm512_setzero_si512
9998 (), (__mmask16
) __U
);
10001 /* Mask arithmetic operations */
10002 #define _kand_mask16 _mm512_kand
10003 #define _kandn_mask16 _mm512_kandn
10004 #define _knot_mask16 _mm512_knot
10005 #define _kor_mask16 _mm512_kor
10006 #define _kxnor_mask16 _mm512_kxnor
10007 #define _kxor_mask16 _mm512_kxor
10009 extern __inline __mmask16
10010 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10011 _kadd_mask16 (__mmask16 __A
, __mmask16 __B
)
10013 return (__mmask16
) __builtin_ia32_kaddhi ((__mmask16
) __A
, (__mmask16
) __B
);
10016 extern __inline
unsigned int
10017 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10018 _cvtmask16_u32 (__mmask16 __A
)
10020 return (unsigned int) __builtin_ia32_kmovw ((__mmask16
) __A
);
10023 extern __inline __mmask16
10024 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10025 _cvtu32_mask16 (unsigned int __A
)
10027 return (__mmask16
) __builtin_ia32_kmovw ((__mmask16
) __A
);
10030 extern __inline __mmask16
10031 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10032 _load_mask16 (__mmask16
*__A
)
10034 return (__mmask16
) __builtin_ia32_kmovw (*(__mmask16
*) __A
);
10037 extern __inline
void
10038 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10039 _store_mask16 (__mmask16
*__A
, __mmask16 __B
)
10041 *(__mmask16
*) __A
= __builtin_ia32_kmovw (__B
);
10044 extern __inline __mmask16
10045 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10046 _mm512_kand (__mmask16 __A
, __mmask16 __B
)
10048 return (__mmask16
) __builtin_ia32_kandhi ((__mmask16
) __A
, (__mmask16
) __B
);
10051 extern __inline __mmask16
10052 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10053 _mm512_kandn (__mmask16 __A
, __mmask16 __B
)
10055 return (__mmask16
) __builtin_ia32_kandnhi ((__mmask16
) __A
,
10059 extern __inline __mmask16
10060 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10061 _mm512_kor (__mmask16 __A
, __mmask16 __B
)
10063 return (__mmask16
) __builtin_ia32_korhi ((__mmask16
) __A
, (__mmask16
) __B
);
10066 extern __inline
int
10067 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10068 _mm512_kortestz (__mmask16 __A
, __mmask16 __B
)
10070 return (__mmask16
) __builtin_ia32_kortestzhi ((__mmask16
) __A
,
10074 extern __inline
int
10075 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10076 _mm512_kortestc (__mmask16 __A
, __mmask16 __B
)
10078 return (__mmask16
) __builtin_ia32_kortestchi ((__mmask16
) __A
,
10082 extern __inline __mmask16
10083 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10084 _mm512_kxnor (__mmask16 __A
, __mmask16 __B
)
10086 return (__mmask16
) __builtin_ia32_kxnorhi ((__mmask16
) __A
, (__mmask16
) __B
);
10089 extern __inline __mmask16
10090 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10091 _mm512_kxor (__mmask16 __A
, __mmask16 __B
)
10093 return (__mmask16
) __builtin_ia32_kxorhi ((__mmask16
) __A
, (__mmask16
) __B
);
10096 extern __inline __mmask16
10097 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10098 _mm512_knot (__mmask16 __A
)
10100 return (__mmask16
) __builtin_ia32_knothi ((__mmask16
) __A
);
10103 extern __inline __mmask16
10104 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10105 _mm512_kunpackb (__mmask16 __A
, __mmask16 __B
)
10107 return (__mmask16
) __builtin_ia32_kunpckhi ((__mmask16
) __A
, (__mmask16
) __B
);
10110 extern __inline __mmask16
10111 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10112 _kunpackb_mask16 (__mmask8 __A
, __mmask8 __B
)
10114 return (__mmask16
) __builtin_ia32_kunpckhi ((__mmask16
) __A
, (__mmask16
) __B
);
10117 #ifdef __OPTIMIZE__
10118 extern __inline __m512i
10119 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10120 _mm512_maskz_inserti32x4 (__mmask16 __B
, __m512i __C
, __m128i __D
,
10123 return (__m512i
) __builtin_ia32_inserti32x4_mask ((__v16si
) __C
,
10127 _mm512_setzero_si512 (),
10131 extern __inline __m512
10132 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10133 _mm512_maskz_insertf32x4 (__mmask16 __B
, __m512 __C
, __m128 __D
,
10136 return (__m512
) __builtin_ia32_insertf32x4_mask ((__v16sf
) __C
,
10140 _mm512_setzero_ps (), __B
);
10143 extern __inline __m512i
10144 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10145 _mm512_mask_inserti32x4 (__m512i __A
, __mmask16 __B
, __m512i __C
,
10146 __m128i __D
, const int __imm
)
10148 return (__m512i
) __builtin_ia32_inserti32x4_mask ((__v16si
) __C
,
10155 extern __inline __m512
10156 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10157 _mm512_mask_insertf32x4 (__m512 __A
, __mmask16 __B
, __m512 __C
,
10158 __m128 __D
, const int __imm
)
10160 return (__m512
) __builtin_ia32_insertf32x4_mask ((__v16sf
) __C
,
10163 (__v16sf
) __A
, __B
);
10166 #define _mm512_maskz_insertf32x4(A, X, Y, C) \
10167 ((__m512) __builtin_ia32_insertf32x4_mask ((__v16sf)(__m512) (X), \
10168 (__v4sf)(__m128) (Y), (int) (C), (__v16sf)_mm512_setzero_ps(), \
10171 #define _mm512_maskz_inserti32x4(A, X, Y, C) \
10172 ((__m512i) __builtin_ia32_inserti32x4_mask ((__v16si)(__m512i) (X), \
10173 (__v4si)(__m128i) (Y), (int) (C), (__v16si)_mm512_setzero_si512 (), \
10176 #define _mm512_mask_insertf32x4(A, B, X, Y, C) \
10177 ((__m512) __builtin_ia32_insertf32x4_mask ((__v16sf)(__m512) (X), \
10178 (__v4sf)(__m128) (Y), (int) (C), (__v16sf)(__m512) (A), \
10181 #define _mm512_mask_inserti32x4(A, B, X, Y, C) \
10182 ((__m512i) __builtin_ia32_inserti32x4_mask ((__v16si)(__m512i) (X), \
10183 (__v4si)(__m128i) (Y), (int) (C), (__v16si)(__m512i) (A), \
10187 extern __inline __m512i
10188 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10189 _mm512_max_epi64 (__m512i __A
, __m512i __B
)
10191 return (__m512i
) __builtin_ia32_pmaxsq512_mask ((__v8di
) __A
,
10194 _mm512_undefined_epi32 (),
10198 extern __inline __m512i
10199 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10200 _mm512_maskz_max_epi64 (__mmask8 __M
, __m512i __A
, __m512i __B
)
10202 return (__m512i
) __builtin_ia32_pmaxsq512_mask ((__v8di
) __A
,
10205 _mm512_setzero_si512 (),
10209 extern __inline __m512i
10210 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10211 _mm512_mask_max_epi64 (__m512i __W
, __mmask8 __M
, __m512i __A
, __m512i __B
)
10213 return (__m512i
) __builtin_ia32_pmaxsq512_mask ((__v8di
) __A
,
10215 (__v8di
) __W
, __M
);
10218 extern __inline __m512i
10219 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10220 _mm512_min_epi64 (__m512i __A
, __m512i __B
)
10222 return (__m512i
) __builtin_ia32_pminsq512_mask ((__v8di
) __A
,
10225 _mm512_undefined_epi32 (),
10229 extern __inline __m512i
10230 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10231 _mm512_mask_min_epi64 (__m512i __W
, __mmask8 __M
, __m512i __A
, __m512i __B
)
10233 return (__m512i
) __builtin_ia32_pminsq512_mask ((__v8di
) __A
,
10235 (__v8di
) __W
, __M
);
10238 extern __inline __m512i
10239 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10240 _mm512_maskz_min_epi64 (__mmask8 __M
, __m512i __A
, __m512i __B
)
10242 return (__m512i
) __builtin_ia32_pminsq512_mask ((__v8di
) __A
,
10245 _mm512_setzero_si512 (),
10249 extern __inline __m512i
10250 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10251 _mm512_max_epu64 (__m512i __A
, __m512i __B
)
10253 return (__m512i
) __builtin_ia32_pmaxuq512_mask ((__v8di
) __A
,
10256 _mm512_undefined_epi32 (),
10260 extern __inline __m512i
10261 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10262 _mm512_maskz_max_epu64 (__mmask8 __M
, __m512i __A
, __m512i __B
)
10264 return (__m512i
) __builtin_ia32_pmaxuq512_mask ((__v8di
) __A
,
10267 _mm512_setzero_si512 (),
10271 extern __inline __m512i
10272 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10273 _mm512_mask_max_epu64 (__m512i __W
, __mmask8 __M
, __m512i __A
, __m512i __B
)
10275 return (__m512i
) __builtin_ia32_pmaxuq512_mask ((__v8di
) __A
,
10277 (__v8di
) __W
, __M
);
10280 extern __inline __m512i
10281 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10282 _mm512_min_epu64 (__m512i __A
, __m512i __B
)
10284 return (__m512i
) __builtin_ia32_pminuq512_mask ((__v8di
) __A
,
10287 _mm512_undefined_epi32 (),
10291 extern __inline __m512i
10292 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10293 _mm512_mask_min_epu64 (__m512i __W
, __mmask8 __M
, __m512i __A
, __m512i __B
)
10295 return (__m512i
) __builtin_ia32_pminuq512_mask ((__v8di
) __A
,
10297 (__v8di
) __W
, __M
);
10300 extern __inline __m512i
10301 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10302 _mm512_maskz_min_epu64 (__mmask8 __M
, __m512i __A
, __m512i __B
)
10304 return (__m512i
) __builtin_ia32_pminuq512_mask ((__v8di
) __A
,
10307 _mm512_setzero_si512 (),
10311 extern __inline __m512i
10312 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10313 _mm512_max_epi32 (__m512i __A
, __m512i __B
)
10315 return (__m512i
) __builtin_ia32_pmaxsd512_mask ((__v16si
) __A
,
10318 _mm512_undefined_epi32 (),
10322 extern __inline __m512i
10323 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10324 _mm512_maskz_max_epi32 (__mmask16 __M
, __m512i __A
, __m512i __B
)
10326 return (__m512i
) __builtin_ia32_pmaxsd512_mask ((__v16si
) __A
,
10329 _mm512_setzero_si512 (),
10333 extern __inline __m512i
10334 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10335 _mm512_mask_max_epi32 (__m512i __W
, __mmask16 __M
, __m512i __A
, __m512i __B
)
10337 return (__m512i
) __builtin_ia32_pmaxsd512_mask ((__v16si
) __A
,
10339 (__v16si
) __W
, __M
);
10342 extern __inline __m512i
10343 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10344 _mm512_min_epi32 (__m512i __A
, __m512i __B
)
10346 return (__m512i
) __builtin_ia32_pminsd512_mask ((__v16si
) __A
,
10349 _mm512_undefined_epi32 (),
10353 extern __inline __m512i
10354 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10355 _mm512_maskz_min_epi32 (__mmask16 __M
, __m512i __A
, __m512i __B
)
10357 return (__m512i
) __builtin_ia32_pminsd512_mask ((__v16si
) __A
,
10360 _mm512_setzero_si512 (),
10364 extern __inline __m512i
10365 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10366 _mm512_mask_min_epi32 (__m512i __W
, __mmask16 __M
, __m512i __A
, __m512i __B
)
10368 return (__m512i
) __builtin_ia32_pminsd512_mask ((__v16si
) __A
,
10370 (__v16si
) __W
, __M
);
10373 extern __inline __m512i
10374 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10375 _mm512_max_epu32 (__m512i __A
, __m512i __B
)
10377 return (__m512i
) __builtin_ia32_pmaxud512_mask ((__v16si
) __A
,
10380 _mm512_undefined_epi32 (),
10384 extern __inline __m512i
10385 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10386 _mm512_maskz_max_epu32 (__mmask16 __M
, __m512i __A
, __m512i __B
)
10388 return (__m512i
) __builtin_ia32_pmaxud512_mask ((__v16si
) __A
,
10391 _mm512_setzero_si512 (),
10395 extern __inline __m512i
10396 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10397 _mm512_mask_max_epu32 (__m512i __W
, __mmask16 __M
, __m512i __A
, __m512i __B
)
10399 return (__m512i
) __builtin_ia32_pmaxud512_mask ((__v16si
) __A
,
10401 (__v16si
) __W
, __M
);
10404 extern __inline __m512i
10405 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10406 _mm512_min_epu32 (__m512i __A
, __m512i __B
)
10408 return (__m512i
) __builtin_ia32_pminud512_mask ((__v16si
) __A
,
10411 _mm512_undefined_epi32 (),
10415 extern __inline __m512i
10416 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10417 _mm512_maskz_min_epu32 (__mmask16 __M
, __m512i __A
, __m512i __B
)
10419 return (__m512i
) __builtin_ia32_pminud512_mask ((__v16si
) __A
,
10422 _mm512_setzero_si512 (),
10426 extern __inline __m512i
10427 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10428 _mm512_mask_min_epu32 (__m512i __W
, __mmask16 __M
, __m512i __A
, __m512i __B
)
10430 return (__m512i
) __builtin_ia32_pminud512_mask ((__v16si
) __A
,
10432 (__v16si
) __W
, __M
);
10435 extern __inline __m512
10436 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10437 _mm512_unpacklo_ps (__m512 __A
, __m512 __B
)
10439 return (__m512
) __builtin_ia32_unpcklps512_mask ((__v16sf
) __A
,
10442 _mm512_undefined_ps (),
10446 extern __inline __m512
10447 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10448 _mm512_mask_unpacklo_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
10450 return (__m512
) __builtin_ia32_unpcklps512_mask ((__v16sf
) __A
,
10456 extern __inline __m512
10457 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10458 _mm512_maskz_unpacklo_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
10460 return (__m512
) __builtin_ia32_unpcklps512_mask ((__v16sf
) __A
,
10463 _mm512_setzero_ps (),
10467 #ifdef __OPTIMIZE__
10468 extern __inline __m128d
10469 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10470 _mm_max_round_sd (__m128d __A
, __m128d __B
, const int __R
)
10472 return (__m128d
) __builtin_ia32_maxsd_round ((__v2df
) __A
,
10477 extern __inline __m128
10478 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10479 _mm_max_round_ss (__m128 __A
, __m128 __B
, const int __R
)
10481 return (__m128
) __builtin_ia32_maxss_round ((__v4sf
) __A
,
10486 extern __inline __m128d
10487 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10488 _mm_min_round_sd (__m128d __A
, __m128d __B
, const int __R
)
10490 return (__m128d
) __builtin_ia32_minsd_round ((__v2df
) __A
,
10495 extern __inline __m128
10496 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10497 _mm_min_round_ss (__m128 __A
, __m128 __B
, const int __R
)
10499 return (__m128
) __builtin_ia32_minss_round ((__v4sf
) __A
,
10505 #define _mm_max_round_sd(A, B, C) \
10506 (__m128d)__builtin_ia32_addsd_round(A, B, C)
10508 #define _mm_max_round_ss(A, B, C) \
10509 (__m128)__builtin_ia32_addss_round(A, B, C)
10511 #define _mm_min_round_sd(A, B, C) \
10512 (__m128d)__builtin_ia32_subsd_round(A, B, C)
10514 #define _mm_min_round_ss(A, B, C) \
10515 (__m128)__builtin_ia32_subss_round(A, B, C)
10518 extern __inline __m512d
10519 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10520 _mm512_mask_blend_pd (__mmask8 __U
, __m512d __A
, __m512d __W
)
10522 return (__m512d
) __builtin_ia32_blendmpd_512_mask ((__v8df
) __A
,
10527 extern __inline __m512
10528 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10529 _mm512_mask_blend_ps (__mmask16 __U
, __m512 __A
, __m512 __W
)
10531 return (__m512
) __builtin_ia32_blendmps_512_mask ((__v16sf
) __A
,
10536 extern __inline __m512i
10537 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10538 _mm512_mask_blend_epi64 (__mmask8 __U
, __m512i __A
, __m512i __W
)
10540 return (__m512i
) __builtin_ia32_blendmq_512_mask ((__v8di
) __A
,
10545 extern __inline __m512i
10546 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10547 _mm512_mask_blend_epi32 (__mmask16 __U
, __m512i __A
, __m512i __W
)
10549 return (__m512i
) __builtin_ia32_blendmd_512_mask ((__v16si
) __A
,
10554 #ifdef __OPTIMIZE__
10555 extern __inline __m128d
10556 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10557 _mm_fmadd_round_sd (__m128d __W
, __m128d __A
, __m128d __B
, const int __R
)
10559 return (__m128d
) __builtin_ia32_vfmaddsd3_round ((__v2df
) __W
,
10565 extern __inline __m128
10566 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10567 _mm_fmadd_round_ss (__m128 __W
, __m128 __A
, __m128 __B
, const int __R
)
10569 return (__m128
) __builtin_ia32_vfmaddss3_round ((__v4sf
) __W
,
10575 extern __inline __m128d
10576 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10577 _mm_fmsub_round_sd (__m128d __W
, __m128d __A
, __m128d __B
, const int __R
)
10579 return (__m128d
) __builtin_ia32_vfmaddsd3_round ((__v2df
) __W
,
10585 extern __inline __m128
10586 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10587 _mm_fmsub_round_ss (__m128 __W
, __m128 __A
, __m128 __B
, const int __R
)
10589 return (__m128
) __builtin_ia32_vfmaddss3_round ((__v4sf
) __W
,
10595 extern __inline __m128d
10596 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10597 _mm_fnmadd_round_sd (__m128d __W
, __m128d __A
, __m128d __B
, const int __R
)
10599 return (__m128d
) __builtin_ia32_vfmaddsd3_round ((__v2df
) __W
,
10605 extern __inline __m128
10606 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10607 _mm_fnmadd_round_ss (__m128 __W
, __m128 __A
, __m128 __B
, const int __R
)
10609 return (__m128
) __builtin_ia32_vfmaddss3_round ((__v4sf
) __W
,
10615 extern __inline __m128d
10616 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10617 _mm_fnmsub_round_sd (__m128d __W
, __m128d __A
, __m128d __B
, const int __R
)
10619 return (__m128d
) __builtin_ia32_vfmaddsd3_round ((__v2df
) __W
,
10625 extern __inline __m128
10626 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10627 _mm_fnmsub_round_ss (__m128 __W
, __m128 __A
, __m128 __B
, const int __R
)
10629 return (__m128
) __builtin_ia32_vfmaddss3_round ((__v4sf
) __W
,
10635 #define _mm_fmadd_round_sd(A, B, C, R) \
10636 (__m128d)__builtin_ia32_vfmaddsd3_round(A, B, C, R)
10638 #define _mm_fmadd_round_ss(A, B, C, R) \
10639 (__m128)__builtin_ia32_vfmaddss3_round(A, B, C, R)
10641 #define _mm_fmsub_round_sd(A, B, C, R) \
10642 (__m128d)__builtin_ia32_vfmaddsd3_round(A, B, -(C), R)
10644 #define _mm_fmsub_round_ss(A, B, C, R) \
10645 (__m128)__builtin_ia32_vfmaddss3_round(A, B, -(C), R)
10647 #define _mm_fnmadd_round_sd(A, B, C, R) \
10648 (__m128d)__builtin_ia32_vfmaddsd3_round(A, -(B), C, R)
10650 #define _mm_fnmadd_round_ss(A, B, C, R) \
10651 (__m128)__builtin_ia32_vfmaddss3_round(A, -(B), C, R)
10653 #define _mm_fnmsub_round_sd(A, B, C, R) \
10654 (__m128d)__builtin_ia32_vfmaddsd3_round(A, -(B), -(C), R)
10656 #define _mm_fnmsub_round_ss(A, B, C, R) \
10657 (__m128)__builtin_ia32_vfmaddss3_round(A, -(B), -(C), R)
10660 #ifdef __OPTIMIZE__
10661 extern __inline
int
10662 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10663 _mm_comi_round_ss (__m128 __A
, __m128 __B
, const int __P
, const int __R
)
10665 return __builtin_ia32_vcomiss ((__v4sf
) __A
, (__v4sf
) __B
, __P
, __R
);
10668 extern __inline
int
10669 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10670 _mm_comi_round_sd (__m128d __A
, __m128d __B
, const int __P
, const int __R
)
10672 return __builtin_ia32_vcomisd ((__v2df
) __A
, (__v2df
) __B
, __P
, __R
);
10675 #define _mm_comi_round_ss(A, B, C, D)\
10676 __builtin_ia32_vcomiss(A, B, C, D)
10677 #define _mm_comi_round_sd(A, B, C, D)\
10678 __builtin_ia32_vcomisd(A, B, C, D)
10681 extern __inline __m512d
10682 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10683 _mm512_sqrt_pd (__m512d __A
)
10685 return (__m512d
) __builtin_ia32_sqrtpd512_mask ((__v8df
) __A
,
10687 _mm512_undefined_pd (),
10689 _MM_FROUND_CUR_DIRECTION
);
10692 extern __inline __m512d
10693 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10694 _mm512_mask_sqrt_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
10696 return (__m512d
) __builtin_ia32_sqrtpd512_mask ((__v8df
) __A
,
10699 _MM_FROUND_CUR_DIRECTION
);
10702 extern __inline __m512d
10703 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10704 _mm512_maskz_sqrt_pd (__mmask8 __U
, __m512d __A
)
10706 return (__m512d
) __builtin_ia32_sqrtpd512_mask ((__v8df
) __A
,
10708 _mm512_setzero_pd (),
10710 _MM_FROUND_CUR_DIRECTION
);
10713 extern __inline __m512
10714 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10715 _mm512_sqrt_ps (__m512 __A
)
10717 return (__m512
) __builtin_ia32_sqrtps512_mask ((__v16sf
) __A
,
10719 _mm512_undefined_ps (),
10721 _MM_FROUND_CUR_DIRECTION
);
10724 extern __inline __m512
10725 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10726 _mm512_mask_sqrt_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
10728 return (__m512
) __builtin_ia32_sqrtps512_mask ((__v16sf
) __A
,
10731 _MM_FROUND_CUR_DIRECTION
);
10734 extern __inline __m512
10735 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10736 _mm512_maskz_sqrt_ps (__mmask16 __U
, __m512 __A
)
10738 return (__m512
) __builtin_ia32_sqrtps512_mask ((__v16sf
) __A
,
10740 _mm512_setzero_ps (),
10742 _MM_FROUND_CUR_DIRECTION
);
10745 extern __inline __m512d
10746 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10747 _mm512_add_pd (__m512d __A
, __m512d __B
)
10749 return (__m512d
) ((__v8df
)__A
+ (__v8df
)__B
);
10752 extern __inline __m512d
10753 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10754 _mm512_mask_add_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
10756 return (__m512d
) __builtin_ia32_addpd512_mask ((__v8df
) __A
,
10760 _MM_FROUND_CUR_DIRECTION
);
10763 extern __inline __m512d
10764 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10765 _mm512_maskz_add_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
10767 return (__m512d
) __builtin_ia32_addpd512_mask ((__v8df
) __A
,
10770 _mm512_setzero_pd (),
10772 _MM_FROUND_CUR_DIRECTION
);
10775 extern __inline __m512
10776 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10777 _mm512_add_ps (__m512 __A
, __m512 __B
)
10779 return (__m512
) ((__v16sf
)__A
+ (__v16sf
)__B
);
10782 extern __inline __m512
10783 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10784 _mm512_mask_add_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
10786 return (__m512
) __builtin_ia32_addps512_mask ((__v16sf
) __A
,
10790 _MM_FROUND_CUR_DIRECTION
);
10793 extern __inline __m512
10794 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10795 _mm512_maskz_add_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
10797 return (__m512
) __builtin_ia32_addps512_mask ((__v16sf
) __A
,
10800 _mm512_setzero_ps (),
10802 _MM_FROUND_CUR_DIRECTION
);
10805 extern __inline __m512d
10806 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10807 _mm512_sub_pd (__m512d __A
, __m512d __B
)
10809 return (__m512d
) ((__v8df
)__A
- (__v8df
)__B
);
10812 extern __inline __m512d
10813 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10814 _mm512_mask_sub_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
10816 return (__m512d
) __builtin_ia32_subpd512_mask ((__v8df
) __A
,
10820 _MM_FROUND_CUR_DIRECTION
);
10823 extern __inline __m512d
10824 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10825 _mm512_maskz_sub_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
10827 return (__m512d
) __builtin_ia32_subpd512_mask ((__v8df
) __A
,
10830 _mm512_setzero_pd (),
10832 _MM_FROUND_CUR_DIRECTION
);
10835 extern __inline __m512
10836 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10837 _mm512_sub_ps (__m512 __A
, __m512 __B
)
10839 return (__m512
) ((__v16sf
)__A
- (__v16sf
)__B
);
10842 extern __inline __m512
10843 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10844 _mm512_mask_sub_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
10846 return (__m512
) __builtin_ia32_subps512_mask ((__v16sf
) __A
,
10850 _MM_FROUND_CUR_DIRECTION
);
10853 extern __inline __m512
10854 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10855 _mm512_maskz_sub_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
10857 return (__m512
) __builtin_ia32_subps512_mask ((__v16sf
) __A
,
10860 _mm512_setzero_ps (),
10862 _MM_FROUND_CUR_DIRECTION
);
10865 extern __inline __m512d
10866 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10867 _mm512_mul_pd (__m512d __A
, __m512d __B
)
10869 return (__m512d
) ((__v8df
)__A
* (__v8df
)__B
);
10872 extern __inline __m512d
10873 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10874 _mm512_mask_mul_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
10876 return (__m512d
) __builtin_ia32_mulpd512_mask ((__v8df
) __A
,
10880 _MM_FROUND_CUR_DIRECTION
);
10883 extern __inline __m512d
10884 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10885 _mm512_maskz_mul_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
10887 return (__m512d
) __builtin_ia32_mulpd512_mask ((__v8df
) __A
,
10890 _mm512_setzero_pd (),
10892 _MM_FROUND_CUR_DIRECTION
);
10895 extern __inline __m512
10896 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10897 _mm512_mul_ps (__m512 __A
, __m512 __B
)
10899 return (__m512
) ((__v16sf
)__A
* (__v16sf
)__B
);
10902 extern __inline __m512
10903 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10904 _mm512_mask_mul_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
10906 return (__m512
) __builtin_ia32_mulps512_mask ((__v16sf
) __A
,
10910 _MM_FROUND_CUR_DIRECTION
);
10913 extern __inline __m512
10914 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10915 _mm512_maskz_mul_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
10917 return (__m512
) __builtin_ia32_mulps512_mask ((__v16sf
) __A
,
10920 _mm512_setzero_ps (),
10922 _MM_FROUND_CUR_DIRECTION
);
10925 extern __inline __m512d
10926 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10927 _mm512_div_pd (__m512d __M
, __m512d __V
)
10929 return (__m512d
) ((__v8df
)__M
/ (__v8df
)__V
);
10932 extern __inline __m512d
10933 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10934 _mm512_mask_div_pd (__m512d __W
, __mmask8 __U
, __m512d __M
, __m512d __V
)
10936 return (__m512d
) __builtin_ia32_divpd512_mask ((__v8df
) __M
,
10940 _MM_FROUND_CUR_DIRECTION
);
10943 extern __inline __m512d
10944 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10945 _mm512_maskz_div_pd (__mmask8 __U
, __m512d __M
, __m512d __V
)
10947 return (__m512d
) __builtin_ia32_divpd512_mask ((__v8df
) __M
,
10950 _mm512_setzero_pd (),
10952 _MM_FROUND_CUR_DIRECTION
);
10955 extern __inline __m512
10956 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10957 _mm512_div_ps (__m512 __A
, __m512 __B
)
10959 return (__m512
) ((__v16sf
)__A
/ (__v16sf
)__B
);
10962 extern __inline __m512
10963 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10964 _mm512_mask_div_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
10966 return (__m512
) __builtin_ia32_divps512_mask ((__v16sf
) __A
,
10970 _MM_FROUND_CUR_DIRECTION
);
10973 extern __inline __m512
10974 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10975 _mm512_maskz_div_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
10977 return (__m512
) __builtin_ia32_divps512_mask ((__v16sf
) __A
,
10980 _mm512_setzero_ps (),
10982 _MM_FROUND_CUR_DIRECTION
);
10985 extern __inline __m512d
10986 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10987 _mm512_max_pd (__m512d __A
, __m512d __B
)
10989 return (__m512d
) __builtin_ia32_maxpd512_mask ((__v8df
) __A
,
10992 _mm512_undefined_pd (),
10994 _MM_FROUND_CUR_DIRECTION
);
10997 extern __inline __m512d
10998 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10999 _mm512_mask_max_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
11001 return (__m512d
) __builtin_ia32_maxpd512_mask ((__v8df
) __A
,
11005 _MM_FROUND_CUR_DIRECTION
);
11008 extern __inline __m512d
11009 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11010 _mm512_maskz_max_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
11012 return (__m512d
) __builtin_ia32_maxpd512_mask ((__v8df
) __A
,
11015 _mm512_setzero_pd (),
11017 _MM_FROUND_CUR_DIRECTION
);
11020 extern __inline __m512
11021 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11022 _mm512_max_ps (__m512 __A
, __m512 __B
)
11024 return (__m512
) __builtin_ia32_maxps512_mask ((__v16sf
) __A
,
11027 _mm512_undefined_ps (),
11029 _MM_FROUND_CUR_DIRECTION
);
11032 extern __inline __m512
11033 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11034 _mm512_mask_max_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
11036 return (__m512
) __builtin_ia32_maxps512_mask ((__v16sf
) __A
,
11040 _MM_FROUND_CUR_DIRECTION
);
11043 extern __inline __m512
11044 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11045 _mm512_maskz_max_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
11047 return (__m512
) __builtin_ia32_maxps512_mask ((__v16sf
) __A
,
11050 _mm512_setzero_ps (),
11052 _MM_FROUND_CUR_DIRECTION
);
11055 extern __inline __m512d
11056 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11057 _mm512_min_pd (__m512d __A
, __m512d __B
)
11059 return (__m512d
) __builtin_ia32_minpd512_mask ((__v8df
) __A
,
11062 _mm512_undefined_pd (),
11064 _MM_FROUND_CUR_DIRECTION
);
11067 extern __inline __m512d
11068 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11069 _mm512_mask_min_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
11071 return (__m512d
) __builtin_ia32_minpd512_mask ((__v8df
) __A
,
11075 _MM_FROUND_CUR_DIRECTION
);
11078 extern __inline __m512d
11079 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11080 _mm512_maskz_min_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
11082 return (__m512d
) __builtin_ia32_minpd512_mask ((__v8df
) __A
,
11085 _mm512_setzero_pd (),
11087 _MM_FROUND_CUR_DIRECTION
);
11090 extern __inline __m512
11091 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11092 _mm512_min_ps (__m512 __A
, __m512 __B
)
11094 return (__m512
) __builtin_ia32_minps512_mask ((__v16sf
) __A
,
11097 _mm512_undefined_ps (),
11099 _MM_FROUND_CUR_DIRECTION
);
11102 extern __inline __m512
11103 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11104 _mm512_mask_min_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
11106 return (__m512
) __builtin_ia32_minps512_mask ((__v16sf
) __A
,
11110 _MM_FROUND_CUR_DIRECTION
);
11113 extern __inline __m512
11114 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11115 _mm512_maskz_min_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
11117 return (__m512
) __builtin_ia32_minps512_mask ((__v16sf
) __A
,
11120 _mm512_setzero_ps (),
11122 _MM_FROUND_CUR_DIRECTION
);
11125 extern __inline __m512d
11126 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11127 _mm512_scalef_pd (__m512d __A
, __m512d __B
)
11129 return (__m512d
) __builtin_ia32_scalefpd512_mask ((__v8df
) __A
,
11132 _mm512_undefined_pd (),
11134 _MM_FROUND_CUR_DIRECTION
);
11137 extern __inline __m512d
11138 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11139 _mm512_mask_scalef_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
11141 return (__m512d
) __builtin_ia32_scalefpd512_mask ((__v8df
) __A
,
11145 _MM_FROUND_CUR_DIRECTION
);
11148 extern __inline __m512d
11149 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11150 _mm512_maskz_scalef_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
11152 return (__m512d
) __builtin_ia32_scalefpd512_mask ((__v8df
) __A
,
11155 _mm512_setzero_pd (),
11157 _MM_FROUND_CUR_DIRECTION
);
11160 extern __inline __m512
11161 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11162 _mm512_scalef_ps (__m512 __A
, __m512 __B
)
11164 return (__m512
) __builtin_ia32_scalefps512_mask ((__v16sf
) __A
,
11167 _mm512_undefined_ps (),
11169 _MM_FROUND_CUR_DIRECTION
);
11172 extern __inline __m512
11173 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11174 _mm512_mask_scalef_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
11176 return (__m512
) __builtin_ia32_scalefps512_mask ((__v16sf
) __A
,
11180 _MM_FROUND_CUR_DIRECTION
);
11183 extern __inline __m512
11184 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11185 _mm512_maskz_scalef_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
11187 return (__m512
) __builtin_ia32_scalefps512_mask ((__v16sf
) __A
,
11190 _mm512_setzero_ps (),
11192 _MM_FROUND_CUR_DIRECTION
);
11195 extern __inline __m128d
11196 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11197 _mm_scalef_sd (__m128d __A
, __m128d __B
)
11199 return (__m128d
) __builtin_ia32_scalefsd_round ((__v2df
) __A
,
11201 _MM_FROUND_CUR_DIRECTION
);
11204 extern __inline __m128
11205 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11206 _mm_scalef_ss (__m128 __A
, __m128 __B
)
11208 return (__m128
) __builtin_ia32_scalefss_round ((__v4sf
) __A
,
11210 _MM_FROUND_CUR_DIRECTION
);
11213 extern __inline __m512d
11214 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11215 _mm512_fmadd_pd (__m512d __A
, __m512d __B
, __m512d __C
)
11217 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
11221 _MM_FROUND_CUR_DIRECTION
);
11224 extern __inline __m512d
11225 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11226 _mm512_mask_fmadd_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
11228 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
11232 _MM_FROUND_CUR_DIRECTION
);
11235 extern __inline __m512d
11236 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11237 _mm512_mask3_fmadd_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
11239 return (__m512d
) __builtin_ia32_vfmaddpd512_mask3 ((__v8df
) __A
,
11243 _MM_FROUND_CUR_DIRECTION
);
11246 extern __inline __m512d
11247 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11248 _mm512_maskz_fmadd_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
11250 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz ((__v8df
) __A
,
11254 _MM_FROUND_CUR_DIRECTION
);
11257 extern __inline __m512
11258 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11259 _mm512_fmadd_ps (__m512 __A
, __m512 __B
, __m512 __C
)
11261 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
11265 _MM_FROUND_CUR_DIRECTION
);
11268 extern __inline __m512
11269 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11270 _mm512_mask_fmadd_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
11272 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
11276 _MM_FROUND_CUR_DIRECTION
);
11279 extern __inline __m512
11280 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11281 _mm512_mask3_fmadd_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
11283 return (__m512
) __builtin_ia32_vfmaddps512_mask3 ((__v16sf
) __A
,
11287 _MM_FROUND_CUR_DIRECTION
);
11290 extern __inline __m512
11291 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11292 _mm512_maskz_fmadd_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
11294 return (__m512
) __builtin_ia32_vfmaddps512_maskz ((__v16sf
) __A
,
11298 _MM_FROUND_CUR_DIRECTION
);
11301 extern __inline __m512d
11302 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11303 _mm512_fmsub_pd (__m512d __A
, __m512d __B
, __m512d __C
)
11305 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
11309 _MM_FROUND_CUR_DIRECTION
);
11312 extern __inline __m512d
11313 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11314 _mm512_mask_fmsub_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
11316 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
11320 _MM_FROUND_CUR_DIRECTION
);
11323 extern __inline __m512d
11324 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11325 _mm512_mask3_fmsub_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
11327 return (__m512d
) __builtin_ia32_vfmsubpd512_mask3 ((__v8df
) __A
,
11331 _MM_FROUND_CUR_DIRECTION
);
11334 extern __inline __m512d
11335 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11336 _mm512_maskz_fmsub_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
11338 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz ((__v8df
) __A
,
11342 _MM_FROUND_CUR_DIRECTION
);
11345 extern __inline __m512
11346 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11347 _mm512_fmsub_ps (__m512 __A
, __m512 __B
, __m512 __C
)
11349 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
11353 _MM_FROUND_CUR_DIRECTION
);
11356 extern __inline __m512
11357 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11358 _mm512_mask_fmsub_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
11360 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
11364 _MM_FROUND_CUR_DIRECTION
);
11367 extern __inline __m512
11368 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11369 _mm512_mask3_fmsub_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
11371 return (__m512
) __builtin_ia32_vfmsubps512_mask3 ((__v16sf
) __A
,
11375 _MM_FROUND_CUR_DIRECTION
);
11378 extern __inline __m512
11379 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11380 _mm512_maskz_fmsub_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
11382 return (__m512
) __builtin_ia32_vfmaddps512_maskz ((__v16sf
) __A
,
11386 _MM_FROUND_CUR_DIRECTION
);
11389 extern __inline __m512d
11390 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11391 _mm512_fmaddsub_pd (__m512d __A
, __m512d __B
, __m512d __C
)
11393 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
11397 _MM_FROUND_CUR_DIRECTION
);
11400 extern __inline __m512d
11401 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11402 _mm512_mask_fmaddsub_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
11404 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
11408 _MM_FROUND_CUR_DIRECTION
);
11411 extern __inline __m512d
11412 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11413 _mm512_mask3_fmaddsub_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
11415 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask3 ((__v8df
) __A
,
11419 _MM_FROUND_CUR_DIRECTION
);
11422 extern __inline __m512d
11423 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11424 _mm512_maskz_fmaddsub_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
11426 return (__m512d
) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df
) __A
,
11430 _MM_FROUND_CUR_DIRECTION
);
11433 extern __inline __m512
11434 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11435 _mm512_fmaddsub_ps (__m512 __A
, __m512 __B
, __m512 __C
)
11437 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
11441 _MM_FROUND_CUR_DIRECTION
);
11444 extern __inline __m512
11445 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11446 _mm512_mask_fmaddsub_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
11448 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
11452 _MM_FROUND_CUR_DIRECTION
);
11455 extern __inline __m512
11456 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11457 _mm512_mask3_fmaddsub_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
11459 return (__m512
) __builtin_ia32_vfmaddsubps512_mask3 ((__v16sf
) __A
,
11463 _MM_FROUND_CUR_DIRECTION
);
11466 extern __inline __m512
11467 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11468 _mm512_maskz_fmaddsub_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
11470 return (__m512
) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf
) __A
,
11474 _MM_FROUND_CUR_DIRECTION
);
11477 extern __inline __m512d
11478 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11479 _mm512_fmsubadd_pd (__m512d __A
, __m512d __B
, __m512d __C
)
11481 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
11485 _MM_FROUND_CUR_DIRECTION
);
11488 extern __inline __m512d
11489 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11490 _mm512_mask_fmsubadd_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
11492 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
11496 _MM_FROUND_CUR_DIRECTION
);
11499 extern __inline __m512d
11500 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11501 _mm512_mask3_fmsubadd_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
11503 return (__m512d
) __builtin_ia32_vfmsubaddpd512_mask3 ((__v8df
) __A
,
11507 _MM_FROUND_CUR_DIRECTION
);
11510 extern __inline __m512d
11511 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11512 _mm512_maskz_fmsubadd_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
11514 return (__m512d
) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df
) __A
,
11518 _MM_FROUND_CUR_DIRECTION
);
11521 extern __inline __m512
11522 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11523 _mm512_fmsubadd_ps (__m512 __A
, __m512 __B
, __m512 __C
)
11525 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
11529 _MM_FROUND_CUR_DIRECTION
);
11532 extern __inline __m512
11533 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11534 _mm512_mask_fmsubadd_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
11536 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
11540 _MM_FROUND_CUR_DIRECTION
);
11543 extern __inline __m512
11544 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11545 _mm512_mask3_fmsubadd_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
11547 return (__m512
) __builtin_ia32_vfmsubaddps512_mask3 ((__v16sf
) __A
,
11551 _MM_FROUND_CUR_DIRECTION
);
11554 extern __inline __m512
11555 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11556 _mm512_maskz_fmsubadd_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
11558 return (__m512
) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf
) __A
,
11562 _MM_FROUND_CUR_DIRECTION
);
11565 extern __inline __m512d
11566 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11567 _mm512_fnmadd_pd (__m512d __A
, __m512d __B
, __m512d __C
)
11569 return (__m512d
) __builtin_ia32_vfmaddpd512_mask (-(__v8df
) __A
,
11573 _MM_FROUND_CUR_DIRECTION
);
11576 extern __inline __m512d
11577 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11578 _mm512_mask_fnmadd_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
11580 return (__m512d
) __builtin_ia32_vfnmaddpd512_mask ((__v8df
) __A
,
11584 _MM_FROUND_CUR_DIRECTION
);
11587 extern __inline __m512d
11588 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11589 _mm512_mask3_fnmadd_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
11591 return (__m512d
) __builtin_ia32_vfmaddpd512_mask3 (-(__v8df
) __A
,
11595 _MM_FROUND_CUR_DIRECTION
);
11598 extern __inline __m512d
11599 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11600 _mm512_maskz_fnmadd_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
11602 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz (-(__v8df
) __A
,
11606 _MM_FROUND_CUR_DIRECTION
);
11609 extern __inline __m512
11610 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11611 _mm512_fnmadd_ps (__m512 __A
, __m512 __B
, __m512 __C
)
11613 return (__m512
) __builtin_ia32_vfmaddps512_mask (-(__v16sf
) __A
,
11617 _MM_FROUND_CUR_DIRECTION
);
11620 extern __inline __m512
11621 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11622 _mm512_mask_fnmadd_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
11624 return (__m512
) __builtin_ia32_vfnmaddps512_mask ((__v16sf
) __A
,
11628 _MM_FROUND_CUR_DIRECTION
);
11631 extern __inline __m512
11632 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11633 _mm512_mask3_fnmadd_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
11635 return (__m512
) __builtin_ia32_vfmaddps512_mask3 (-(__v16sf
) __A
,
11639 _MM_FROUND_CUR_DIRECTION
);
11642 extern __inline __m512
11643 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11644 _mm512_maskz_fnmadd_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
11646 return (__m512
) __builtin_ia32_vfmaddps512_maskz (-(__v16sf
) __A
,
11650 _MM_FROUND_CUR_DIRECTION
);
11653 extern __inline __m512d
11654 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11655 _mm512_fnmsub_pd (__m512d __A
, __m512d __B
, __m512d __C
)
11657 return (__m512d
) __builtin_ia32_vfmaddpd512_mask (-(__v8df
) __A
,
11661 _MM_FROUND_CUR_DIRECTION
);
11664 extern __inline __m512d
11665 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11666 _mm512_mask_fnmsub_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
11668 return (__m512d
) __builtin_ia32_vfnmsubpd512_mask ((__v8df
) __A
,
11672 _MM_FROUND_CUR_DIRECTION
);
11675 extern __inline __m512d
11676 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11677 _mm512_mask3_fnmsub_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
11679 return (__m512d
) __builtin_ia32_vfnmsubpd512_mask3 ((__v8df
) __A
,
11683 _MM_FROUND_CUR_DIRECTION
);
11686 extern __inline __m512d
11687 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11688 _mm512_maskz_fnmsub_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
11690 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz (-(__v8df
) __A
,
11694 _MM_FROUND_CUR_DIRECTION
);
11697 extern __inline __m512
11698 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11699 _mm512_fnmsub_ps (__m512 __A
, __m512 __B
, __m512 __C
)
11701 return (__m512
) __builtin_ia32_vfmaddps512_mask (-(__v16sf
) __A
,
11705 _MM_FROUND_CUR_DIRECTION
);
11708 extern __inline __m512
11709 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11710 _mm512_mask_fnmsub_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
11712 return (__m512
) __builtin_ia32_vfnmsubps512_mask ((__v16sf
) __A
,
11716 _MM_FROUND_CUR_DIRECTION
);
11719 extern __inline __m512
11720 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11721 _mm512_mask3_fnmsub_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
11723 return (__m512
) __builtin_ia32_vfnmsubps512_mask3 ((__v16sf
) __A
,
11727 _MM_FROUND_CUR_DIRECTION
);
11730 extern __inline __m512
11731 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11732 _mm512_maskz_fnmsub_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
11734 return (__m512
) __builtin_ia32_vfmaddps512_maskz (-(__v16sf
) __A
,
11738 _MM_FROUND_CUR_DIRECTION
);
11741 extern __inline __m256i
11742 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11743 _mm512_cvttpd_epi32 (__m512d __A
)
11745 return (__m256i
) __builtin_ia32_cvttpd2dq512_mask ((__v8df
) __A
,
11747 _mm256_undefined_si256 (),
11749 _MM_FROUND_CUR_DIRECTION
);
11752 extern __inline __m256i
11753 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11754 _mm512_mask_cvttpd_epi32 (__m256i __W
, __mmask8 __U
, __m512d __A
)
11756 return (__m256i
) __builtin_ia32_cvttpd2dq512_mask ((__v8df
) __A
,
11759 _MM_FROUND_CUR_DIRECTION
);
11762 extern __inline __m256i
11763 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11764 _mm512_maskz_cvttpd_epi32 (__mmask8 __U
, __m512d __A
)
11766 return (__m256i
) __builtin_ia32_cvttpd2dq512_mask ((__v8df
) __A
,
11768 _mm256_setzero_si256 (),
11770 _MM_FROUND_CUR_DIRECTION
);
11773 extern __inline __m256i
11774 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11775 _mm512_cvttpd_epu32 (__m512d __A
)
11777 return (__m256i
) __builtin_ia32_cvttpd2udq512_mask ((__v8df
) __A
,
11779 _mm256_undefined_si256 (),
11781 _MM_FROUND_CUR_DIRECTION
);
11784 extern __inline __m256i
11785 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11786 _mm512_mask_cvttpd_epu32 (__m256i __W
, __mmask8 __U
, __m512d __A
)
11788 return (__m256i
) __builtin_ia32_cvttpd2udq512_mask ((__v8df
) __A
,
11791 _MM_FROUND_CUR_DIRECTION
);
11794 extern __inline __m256i
11795 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11796 _mm512_maskz_cvttpd_epu32 (__mmask8 __U
, __m512d __A
)
11798 return (__m256i
) __builtin_ia32_cvttpd2udq512_mask ((__v8df
) __A
,
11800 _mm256_setzero_si256 (),
11802 _MM_FROUND_CUR_DIRECTION
);
11805 extern __inline __m256i
11806 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11807 _mm512_cvtpd_epi32 (__m512d __A
)
11809 return (__m256i
) __builtin_ia32_cvtpd2dq512_mask ((__v8df
) __A
,
11811 _mm256_undefined_si256 (),
11813 _MM_FROUND_CUR_DIRECTION
);
11816 extern __inline __m256i
11817 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11818 _mm512_mask_cvtpd_epi32 (__m256i __W
, __mmask8 __U
, __m512d __A
)
11820 return (__m256i
) __builtin_ia32_cvtpd2dq512_mask ((__v8df
) __A
,
11823 _MM_FROUND_CUR_DIRECTION
);
11826 extern __inline __m256i
11827 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11828 _mm512_maskz_cvtpd_epi32 (__mmask8 __U
, __m512d __A
)
11830 return (__m256i
) __builtin_ia32_cvtpd2dq512_mask ((__v8df
) __A
,
11832 _mm256_setzero_si256 (),
11834 _MM_FROUND_CUR_DIRECTION
);
11837 extern __inline __m256i
11838 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11839 _mm512_cvtpd_epu32 (__m512d __A
)
11841 return (__m256i
) __builtin_ia32_cvtpd2udq512_mask ((__v8df
) __A
,
11843 _mm256_undefined_si256 (),
11845 _MM_FROUND_CUR_DIRECTION
);
11848 extern __inline __m256i
11849 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11850 _mm512_mask_cvtpd_epu32 (__m256i __W
, __mmask8 __U
, __m512d __A
)
11852 return (__m256i
) __builtin_ia32_cvtpd2udq512_mask ((__v8df
) __A
,
11855 _MM_FROUND_CUR_DIRECTION
);
11858 extern __inline __m256i
11859 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11860 _mm512_maskz_cvtpd_epu32 (__mmask8 __U
, __m512d __A
)
11862 return (__m256i
) __builtin_ia32_cvtpd2udq512_mask ((__v8df
) __A
,
11864 _mm256_setzero_si256 (),
11866 _MM_FROUND_CUR_DIRECTION
);
11869 extern __inline __m512i
11870 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11871 _mm512_cvttps_epi32 (__m512 __A
)
11873 return (__m512i
) __builtin_ia32_cvttps2dq512_mask ((__v16sf
) __A
,
11875 _mm512_undefined_epi32 (),
11877 _MM_FROUND_CUR_DIRECTION
);
11880 extern __inline __m512i
11881 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11882 _mm512_mask_cvttps_epi32 (__m512i __W
, __mmask16 __U
, __m512 __A
)
11884 return (__m512i
) __builtin_ia32_cvttps2dq512_mask ((__v16sf
) __A
,
11887 _MM_FROUND_CUR_DIRECTION
);
11890 extern __inline __m512i
11891 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11892 _mm512_maskz_cvttps_epi32 (__mmask16 __U
, __m512 __A
)
11894 return (__m512i
) __builtin_ia32_cvttps2dq512_mask ((__v16sf
) __A
,
11896 _mm512_setzero_si512 (),
11898 _MM_FROUND_CUR_DIRECTION
);
11901 extern __inline __m512i
11902 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11903 _mm512_cvttps_epu32 (__m512 __A
)
11905 return (__m512i
) __builtin_ia32_cvttps2udq512_mask ((__v16sf
) __A
,
11907 _mm512_undefined_epi32 (),
11909 _MM_FROUND_CUR_DIRECTION
);
11912 extern __inline __m512i
11913 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11914 _mm512_mask_cvttps_epu32 (__m512i __W
, __mmask16 __U
, __m512 __A
)
11916 return (__m512i
) __builtin_ia32_cvttps2udq512_mask ((__v16sf
) __A
,
11919 _MM_FROUND_CUR_DIRECTION
);
11922 extern __inline __m512i
11923 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11924 _mm512_maskz_cvttps_epu32 (__mmask16 __U
, __m512 __A
)
11926 return (__m512i
) __builtin_ia32_cvttps2udq512_mask ((__v16sf
) __A
,
11928 _mm512_setzero_si512 (),
11930 _MM_FROUND_CUR_DIRECTION
);
11933 extern __inline __m512i
11934 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11935 _mm512_cvtps_epi32 (__m512 __A
)
11937 return (__m512i
) __builtin_ia32_cvtps2dq512_mask ((__v16sf
) __A
,
11939 _mm512_undefined_epi32 (),
11941 _MM_FROUND_CUR_DIRECTION
);
11944 extern __inline __m512i
11945 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11946 _mm512_mask_cvtps_epi32 (__m512i __W
, __mmask16 __U
, __m512 __A
)
11948 return (__m512i
) __builtin_ia32_cvtps2dq512_mask ((__v16sf
) __A
,
11951 _MM_FROUND_CUR_DIRECTION
);
11954 extern __inline __m512i
11955 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11956 _mm512_maskz_cvtps_epi32 (__mmask16 __U
, __m512 __A
)
11958 return (__m512i
) __builtin_ia32_cvtps2dq512_mask ((__v16sf
) __A
,
11960 _mm512_setzero_si512 (),
11962 _MM_FROUND_CUR_DIRECTION
);
11965 extern __inline __m512i
11966 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11967 _mm512_cvtps_epu32 (__m512 __A
)
11969 return (__m512i
) __builtin_ia32_cvtps2udq512_mask ((__v16sf
) __A
,
11971 _mm512_undefined_epi32 (),
11973 _MM_FROUND_CUR_DIRECTION
);
11976 extern __inline __m512i
11977 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11978 _mm512_mask_cvtps_epu32 (__m512i __W
, __mmask16 __U
, __m512 __A
)
11980 return (__m512i
) __builtin_ia32_cvtps2udq512_mask ((__v16sf
) __A
,
11983 _MM_FROUND_CUR_DIRECTION
);
11986 extern __inline __m512i
11987 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11988 _mm512_maskz_cvtps_epu32 (__mmask16 __U
, __m512 __A
)
11990 return (__m512i
) __builtin_ia32_cvtps2udq512_mask ((__v16sf
) __A
,
11992 _mm512_setzero_si512 (),
11994 _MM_FROUND_CUR_DIRECTION
);
11998 extern __inline __m128
11999 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12000 _mm_cvtu64_ss (__m128 __A
, unsigned long long __B
)
12002 return (__m128
) __builtin_ia32_cvtusi2ss64 ((__v4sf
) __A
, __B
,
12003 _MM_FROUND_CUR_DIRECTION
);
12006 extern __inline __m128d
12007 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12008 _mm_cvtu64_sd (__m128d __A
, unsigned long long __B
)
12010 return (__m128d
) __builtin_ia32_cvtusi2sd64 ((__v2df
) __A
, __B
,
12011 _MM_FROUND_CUR_DIRECTION
);
12015 extern __inline __m128
12016 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12017 _mm_cvtu32_ss (__m128 __A
, unsigned __B
)
12019 return (__m128
) __builtin_ia32_cvtusi2ss32 ((__v4sf
) __A
, __B
,
12020 _MM_FROUND_CUR_DIRECTION
);
12023 extern __inline __m512
12024 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12025 _mm512_cvtepi32_ps (__m512i __A
)
12027 return (__m512
) __builtin_ia32_cvtdq2ps512_mask ((__v16si
) __A
,
12029 _mm512_undefined_ps (),
12031 _MM_FROUND_CUR_DIRECTION
);
12034 extern __inline __m512
12035 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12036 _mm512_mask_cvtepi32_ps (__m512 __W
, __mmask16 __U
, __m512i __A
)
12038 return (__m512
) __builtin_ia32_cvtdq2ps512_mask ((__v16si
) __A
,
12041 _MM_FROUND_CUR_DIRECTION
);
12044 extern __inline __m512
12045 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12046 _mm512_maskz_cvtepi32_ps (__mmask16 __U
, __m512i __A
)
12048 return (__m512
) __builtin_ia32_cvtdq2ps512_mask ((__v16si
) __A
,
12050 _mm512_setzero_ps (),
12052 _MM_FROUND_CUR_DIRECTION
);
12055 extern __inline __m512
12056 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12057 _mm512_cvtepu32_ps (__m512i __A
)
12059 return (__m512
) __builtin_ia32_cvtudq2ps512_mask ((__v16si
) __A
,
12061 _mm512_undefined_ps (),
12063 _MM_FROUND_CUR_DIRECTION
);
12066 extern __inline __m512
12067 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12068 _mm512_mask_cvtepu32_ps (__m512 __W
, __mmask16 __U
, __m512i __A
)
12070 return (__m512
) __builtin_ia32_cvtudq2ps512_mask ((__v16si
) __A
,
12073 _MM_FROUND_CUR_DIRECTION
);
12076 extern __inline __m512
12077 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12078 _mm512_maskz_cvtepu32_ps (__mmask16 __U
, __m512i __A
)
12080 return (__m512
) __builtin_ia32_cvtudq2ps512_mask ((__v16si
) __A
,
12082 _mm512_setzero_ps (),
12084 _MM_FROUND_CUR_DIRECTION
);
12087 #ifdef __OPTIMIZE__
12088 extern __inline __m512d
12089 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12090 _mm512_fixupimm_pd (__m512d __A
, __m512d __B
, __m512i __C
, const int __imm
)
12092 return (__m512d
) __builtin_ia32_fixupimmpd512_mask ((__v8df
) __A
,
12097 _MM_FROUND_CUR_DIRECTION
);
12100 extern __inline __m512d
12101 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12102 _mm512_mask_fixupimm_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
12103 __m512i __C
, const int __imm
)
12105 return (__m512d
) __builtin_ia32_fixupimmpd512_mask ((__v8df
) __A
,
12110 _MM_FROUND_CUR_DIRECTION
);
12113 extern __inline __m512d
12114 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12115 _mm512_maskz_fixupimm_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
12116 __m512i __C
, const int __imm
)
12118 return (__m512d
) __builtin_ia32_fixupimmpd512_maskz ((__v8df
) __A
,
12123 _MM_FROUND_CUR_DIRECTION
);
12126 extern __inline __m512
12127 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12128 _mm512_fixupimm_ps (__m512 __A
, __m512 __B
, __m512i __C
, const int __imm
)
12130 return (__m512
) __builtin_ia32_fixupimmps512_mask ((__v16sf
) __A
,
12135 _MM_FROUND_CUR_DIRECTION
);
12138 extern __inline __m512
12139 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12140 _mm512_mask_fixupimm_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
12141 __m512i __C
, const int __imm
)
12143 return (__m512
) __builtin_ia32_fixupimmps512_mask ((__v16sf
) __A
,
12148 _MM_FROUND_CUR_DIRECTION
);
12151 extern __inline __m512
12152 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12153 _mm512_maskz_fixupimm_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
12154 __m512i __C
, const int __imm
)
12156 return (__m512
) __builtin_ia32_fixupimmps512_maskz ((__v16sf
) __A
,
12161 _MM_FROUND_CUR_DIRECTION
);
12164 extern __inline __m128d
12165 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12166 _mm_fixupimm_sd (__m128d __A
, __m128d __B
, __m128i __C
, const int __imm
)
12168 return (__m128d
) __builtin_ia32_fixupimmsd_mask ((__v2df
) __A
,
12170 (__v2di
) __C
, __imm
,
12172 _MM_FROUND_CUR_DIRECTION
);
12175 extern __inline __m128d
12176 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12177 _mm_mask_fixupimm_sd (__m128d __A
, __mmask8 __U
, __m128d __B
,
12178 __m128i __C
, const int __imm
)
12180 return (__m128d
) __builtin_ia32_fixupimmsd_mask ((__v2df
) __A
,
12182 (__v2di
) __C
, __imm
,
12184 _MM_FROUND_CUR_DIRECTION
);
12187 extern __inline __m128d
12188 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12189 _mm_maskz_fixupimm_sd (__mmask8 __U
, __m128d __A
, __m128d __B
,
12190 __m128i __C
, const int __imm
)
12192 return (__m128d
) __builtin_ia32_fixupimmsd_maskz ((__v2df
) __A
,
12197 _MM_FROUND_CUR_DIRECTION
);
12200 extern __inline __m128
12201 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12202 _mm_fixupimm_ss (__m128 __A
, __m128 __B
, __m128i __C
, const int __imm
)
12204 return (__m128
) __builtin_ia32_fixupimmss_mask ((__v4sf
) __A
,
12206 (__v4si
) __C
, __imm
,
12208 _MM_FROUND_CUR_DIRECTION
);
12211 extern __inline __m128
12212 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12213 _mm_mask_fixupimm_ss (__m128 __A
, __mmask8 __U
, __m128 __B
,
12214 __m128i __C
, const int __imm
)
12216 return (__m128
) __builtin_ia32_fixupimmss_mask ((__v4sf
) __A
,
12218 (__v4si
) __C
, __imm
,
12220 _MM_FROUND_CUR_DIRECTION
);
12223 extern __inline __m128
12224 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12225 _mm_maskz_fixupimm_ss (__mmask8 __U
, __m128 __A
, __m128 __B
,
12226 __m128i __C
, const int __imm
)
12228 return (__m128
) __builtin_ia32_fixupimmss_maskz ((__v4sf
) __A
,
12230 (__v4si
) __C
, __imm
,
12232 _MM_FROUND_CUR_DIRECTION
);
12235 #define _mm512_fixupimm_pd(X, Y, Z, C) \
12236 ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X), \
12237 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
12238 (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
12240 #define _mm512_mask_fixupimm_pd(X, U, Y, Z, C) \
12241 ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X), \
12242 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
12243 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12245 #define _mm512_maskz_fixupimm_pd(U, X, Y, Z, C) \
12246 ((__m512d)__builtin_ia32_fixupimmpd512_maskz ((__v8df)(__m512d)(X), \
12247 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
12248 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12250 #define _mm512_fixupimm_ps(X, Y, Z, C) \
12251 ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X), \
12252 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
12253 (__mmask16)(-1), _MM_FROUND_CUR_DIRECTION))
12255 #define _mm512_mask_fixupimm_ps(X, U, Y, Z, C) \
12256 ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X), \
12257 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
12258 (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
12260 #define _mm512_maskz_fixupimm_ps(U, X, Y, Z, C) \
12261 ((__m512)__builtin_ia32_fixupimmps512_maskz ((__v16sf)(__m512)(X), \
12262 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
12263 (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
12265 #define _mm_fixupimm_sd(X, Y, Z, C) \
12266 ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X), \
12267 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
12268 (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
12270 #define _mm_mask_fixupimm_sd(X, U, Y, Z, C) \
12271 ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X), \
12272 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
12273 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12275 #define _mm_maskz_fixupimm_sd(U, X, Y, Z, C) \
12276 ((__m128d)__builtin_ia32_fixupimmsd_maskz ((__v2df)(__m128d)(X), \
12277 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
12278 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12280 #define _mm_fixupimm_ss(X, Y, Z, C) \
12281 ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X), \
12282 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
12283 (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
12285 #define _mm_mask_fixupimm_ss(X, U, Y, Z, C) \
12286 ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X), \
12287 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
12288 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12290 #define _mm_maskz_fixupimm_ss(U, X, Y, Z, C) \
12291 ((__m128)__builtin_ia32_fixupimmss_maskz ((__v4sf)(__m128)(X), \
12292 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
12293 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12297 extern __inline
unsigned long long
12298 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12299 _mm_cvtss_u64 (__m128 __A
)
12301 return (unsigned long long) __builtin_ia32_vcvtss2usi64 ((__v4sf
)
12303 _MM_FROUND_CUR_DIRECTION
);
12306 extern __inline
unsigned long long
12307 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12308 _mm_cvttss_u64 (__m128 __A
)
12310 return (unsigned long long) __builtin_ia32_vcvttss2usi64 ((__v4sf
)
12312 _MM_FROUND_CUR_DIRECTION
);
12315 extern __inline
long long
12316 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12317 _mm_cvttss_i64 (__m128 __A
)
12319 return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf
) __A
,
12320 _MM_FROUND_CUR_DIRECTION
);
12322 #endif /* __x86_64__ */
12324 extern __inline
unsigned
12325 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12326 _mm_cvtss_u32 (__m128 __A
)
12328 return (unsigned) __builtin_ia32_vcvtss2usi32 ((__v4sf
) __A
,
12329 _MM_FROUND_CUR_DIRECTION
);
12332 extern __inline
unsigned
12333 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12334 _mm_cvttss_u32 (__m128 __A
)
12336 return (unsigned) __builtin_ia32_vcvttss2usi32 ((__v4sf
) __A
,
12337 _MM_FROUND_CUR_DIRECTION
);
12340 extern __inline
int
12341 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12342 _mm_cvttss_i32 (__m128 __A
)
12344 return (int) __builtin_ia32_vcvttss2si32 ((__v4sf
) __A
,
12345 _MM_FROUND_CUR_DIRECTION
);
12349 extern __inline
unsigned long long
12350 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12351 _mm_cvtsd_u64 (__m128d __A
)
12353 return (unsigned long long) __builtin_ia32_vcvtsd2usi64 ((__v2df
)
12355 _MM_FROUND_CUR_DIRECTION
);
12358 extern __inline
unsigned long long
12359 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12360 _mm_cvttsd_u64 (__m128d __A
)
12362 return (unsigned long long) __builtin_ia32_vcvttsd2usi64 ((__v2df
)
12364 _MM_FROUND_CUR_DIRECTION
);
12367 extern __inline
long long
12368 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12369 _mm_cvttsd_i64 (__m128d __A
)
12371 return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df
) __A
,
12372 _MM_FROUND_CUR_DIRECTION
);
12374 #endif /* __x86_64__ */
12376 extern __inline
unsigned
12377 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12378 _mm_cvtsd_u32 (__m128d __A
)
12380 return (unsigned) __builtin_ia32_vcvtsd2usi32 ((__v2df
) __A
,
12381 _MM_FROUND_CUR_DIRECTION
);
12384 extern __inline
unsigned
12385 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12386 _mm_cvttsd_u32 (__m128d __A
)
12388 return (unsigned) __builtin_ia32_vcvttsd2usi32 ((__v2df
) __A
,
12389 _MM_FROUND_CUR_DIRECTION
);
12392 extern __inline
int
12393 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12394 _mm_cvttsd_i32 (__m128d __A
)
12396 return (int) __builtin_ia32_vcvttsd2si32 ((__v2df
) __A
,
12397 _MM_FROUND_CUR_DIRECTION
);
12400 extern __inline __m512d
12401 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12402 _mm512_cvtps_pd (__m256 __A
)
12404 return (__m512d
) __builtin_ia32_cvtps2pd512_mask ((__v8sf
) __A
,
12406 _mm512_undefined_pd (),
12408 _MM_FROUND_CUR_DIRECTION
);
12411 extern __inline __m512d
12412 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12413 _mm512_mask_cvtps_pd (__m512d __W
, __mmask8 __U
, __m256 __A
)
12415 return (__m512d
) __builtin_ia32_cvtps2pd512_mask ((__v8sf
) __A
,
12418 _MM_FROUND_CUR_DIRECTION
);
12421 extern __inline __m512d
12422 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12423 _mm512_maskz_cvtps_pd (__mmask8 __U
, __m256 __A
)
12425 return (__m512d
) __builtin_ia32_cvtps2pd512_mask ((__v8sf
) __A
,
12427 _mm512_setzero_pd (),
12429 _MM_FROUND_CUR_DIRECTION
);
12432 extern __inline __m512
12433 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12434 _mm512_cvtph_ps (__m256i __A
)
12436 return (__m512
) __builtin_ia32_vcvtph2ps512_mask ((__v16hi
) __A
,
12438 _mm512_undefined_ps (),
12440 _MM_FROUND_CUR_DIRECTION
);
12443 extern __inline __m512
12444 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12445 _mm512_mask_cvtph_ps (__m512 __W
, __mmask16 __U
, __m256i __A
)
12447 return (__m512
) __builtin_ia32_vcvtph2ps512_mask ((__v16hi
) __A
,
12450 _MM_FROUND_CUR_DIRECTION
);
12453 extern __inline __m512
12454 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12455 _mm512_maskz_cvtph_ps (__mmask16 __U
, __m256i __A
)
12457 return (__m512
) __builtin_ia32_vcvtph2ps512_mask ((__v16hi
) __A
,
12459 _mm512_setzero_ps (),
12461 _MM_FROUND_CUR_DIRECTION
);
12464 extern __inline __m256
12465 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12466 _mm512_cvtpd_ps (__m512d __A
)
12468 return (__m256
) __builtin_ia32_cvtpd2ps512_mask ((__v8df
) __A
,
12470 _mm256_undefined_ps (),
12472 _MM_FROUND_CUR_DIRECTION
);
12475 extern __inline __m256
12476 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12477 _mm512_mask_cvtpd_ps (__m256 __W
, __mmask8 __U
, __m512d __A
)
12479 return (__m256
) __builtin_ia32_cvtpd2ps512_mask ((__v8df
) __A
,
12482 _MM_FROUND_CUR_DIRECTION
);
12485 extern __inline __m256
12486 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12487 _mm512_maskz_cvtpd_ps (__mmask8 __U
, __m512d __A
)
12489 return (__m256
) __builtin_ia32_cvtpd2ps512_mask ((__v8df
) __A
,
12491 _mm256_setzero_ps (),
12493 _MM_FROUND_CUR_DIRECTION
);
12496 #ifdef __OPTIMIZE__
12497 extern __inline __m512
12498 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12499 _mm512_getexp_ps (__m512 __A
)
12501 return (__m512
) __builtin_ia32_getexpps512_mask ((__v16sf
) __A
,
12503 _mm512_undefined_ps (),
12505 _MM_FROUND_CUR_DIRECTION
);
12508 extern __inline __m512
12509 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12510 _mm512_mask_getexp_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
12512 return (__m512
) __builtin_ia32_getexpps512_mask ((__v16sf
) __A
,
12515 _MM_FROUND_CUR_DIRECTION
);
12518 extern __inline __m512
12519 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12520 _mm512_maskz_getexp_ps (__mmask16 __U
, __m512 __A
)
12522 return (__m512
) __builtin_ia32_getexpps512_mask ((__v16sf
) __A
,
12524 _mm512_setzero_ps (),
12526 _MM_FROUND_CUR_DIRECTION
);
12529 extern __inline __m512d
12530 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12531 _mm512_getexp_pd (__m512d __A
)
12533 return (__m512d
) __builtin_ia32_getexppd512_mask ((__v8df
) __A
,
12535 _mm512_undefined_pd (),
12537 _MM_FROUND_CUR_DIRECTION
);
12540 extern __inline __m512d
12541 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12542 _mm512_mask_getexp_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
12544 return (__m512d
) __builtin_ia32_getexppd512_mask ((__v8df
) __A
,
12547 _MM_FROUND_CUR_DIRECTION
);
12550 extern __inline __m512d
12551 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12552 _mm512_maskz_getexp_pd (__mmask8 __U
, __m512d __A
)
12554 return (__m512d
) __builtin_ia32_getexppd512_mask ((__v8df
) __A
,
12556 _mm512_setzero_pd (),
12558 _MM_FROUND_CUR_DIRECTION
);
12561 extern __inline __m128
12562 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12563 _mm_getexp_ss (__m128 __A
, __m128 __B
)
12565 return (__m128
) __builtin_ia32_getexpss128_round ((__v4sf
) __A
,
12567 _MM_FROUND_CUR_DIRECTION
);
12570 extern __inline __m128d
12571 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12572 _mm_getexp_sd (__m128d __A
, __m128d __B
)
12574 return (__m128d
) __builtin_ia32_getexpsd128_round ((__v2df
) __A
,
12576 _MM_FROUND_CUR_DIRECTION
);
12579 extern __inline __m512d
12580 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12581 _mm512_getmant_pd (__m512d __A
, _MM_MANTISSA_NORM_ENUM __B
,
12582 _MM_MANTISSA_SIGN_ENUM __C
)
12584 return (__m512d
) __builtin_ia32_getmantpd512_mask ((__v8df
) __A
,
12586 _mm512_undefined_pd (),
12588 _MM_FROUND_CUR_DIRECTION
);
12591 extern __inline __m512d
12592 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12593 _mm512_mask_getmant_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
12594 _MM_MANTISSA_NORM_ENUM __B
, _MM_MANTISSA_SIGN_ENUM __C
)
12596 return (__m512d
) __builtin_ia32_getmantpd512_mask ((__v8df
) __A
,
12599 _MM_FROUND_CUR_DIRECTION
);
12602 extern __inline __m512d
12603 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12604 _mm512_maskz_getmant_pd (__mmask8 __U
, __m512d __A
,
12605 _MM_MANTISSA_NORM_ENUM __B
, _MM_MANTISSA_SIGN_ENUM __C
)
12607 return (__m512d
) __builtin_ia32_getmantpd512_mask ((__v8df
) __A
,
12610 _mm512_setzero_pd (),
12612 _MM_FROUND_CUR_DIRECTION
);
12615 extern __inline __m512
12616 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12617 _mm512_getmant_ps (__m512 __A
, _MM_MANTISSA_NORM_ENUM __B
,
12618 _MM_MANTISSA_SIGN_ENUM __C
)
12620 return (__m512
) __builtin_ia32_getmantps512_mask ((__v16sf
) __A
,
12622 _mm512_undefined_ps (),
12624 _MM_FROUND_CUR_DIRECTION
);
12627 extern __inline __m512
12628 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12629 _mm512_mask_getmant_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
12630 _MM_MANTISSA_NORM_ENUM __B
, _MM_MANTISSA_SIGN_ENUM __C
)
12632 return (__m512
) __builtin_ia32_getmantps512_mask ((__v16sf
) __A
,
12634 (__v16sf
) __W
, __U
,
12635 _MM_FROUND_CUR_DIRECTION
);
12638 extern __inline __m512
12639 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12640 _mm512_maskz_getmant_ps (__mmask16 __U
, __m512 __A
,
12641 _MM_MANTISSA_NORM_ENUM __B
, _MM_MANTISSA_SIGN_ENUM __C
)
12643 return (__m512
) __builtin_ia32_getmantps512_mask ((__v16sf
) __A
,
12646 _mm512_setzero_ps (),
12648 _MM_FROUND_CUR_DIRECTION
);
12651 extern __inline __m128d
12652 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12653 _mm_getmant_sd (__m128d __A
, __m128d __B
, _MM_MANTISSA_NORM_ENUM __C
,
12654 _MM_MANTISSA_SIGN_ENUM __D
)
12656 return (__m128d
) __builtin_ia32_getmantsd_round ((__v2df
) __A
,
12659 _MM_FROUND_CUR_DIRECTION
);
12662 extern __inline __m128
12663 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12664 _mm_getmant_ss (__m128 __A
, __m128 __B
, _MM_MANTISSA_NORM_ENUM __C
,
12665 _MM_MANTISSA_SIGN_ENUM __D
)
12667 return (__m128
) __builtin_ia32_getmantss_round ((__v4sf
) __A
,
12670 _MM_FROUND_CUR_DIRECTION
);
12674 #define _mm512_getmant_pd(X, B, C) \
12675 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
12676 (int)(((C)<<2) | (B)), \
12677 (__v8df)_mm512_undefined_pd(), \
12679 _MM_FROUND_CUR_DIRECTION))
12681 #define _mm512_mask_getmant_pd(W, U, X, B, C) \
12682 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
12683 (int)(((C)<<2) | (B)), \
12684 (__v8df)(__m512d)(W), \
12686 _MM_FROUND_CUR_DIRECTION))
12688 #define _mm512_maskz_getmant_pd(U, X, B, C) \
12689 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
12690 (int)(((C)<<2) | (B)), \
12691 (__v8df)_mm512_setzero_pd(), \
12693 _MM_FROUND_CUR_DIRECTION))
12694 #define _mm512_getmant_ps(X, B, C) \
12695 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
12696 (int)(((C)<<2) | (B)), \
12697 (__v16sf)_mm512_undefined_ps(), \
12699 _MM_FROUND_CUR_DIRECTION))
12701 #define _mm512_mask_getmant_ps(W, U, X, B, C) \
12702 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
12703 (int)(((C)<<2) | (B)), \
12704 (__v16sf)(__m512)(W), \
12706 _MM_FROUND_CUR_DIRECTION))
12708 #define _mm512_maskz_getmant_ps(U, X, B, C) \
12709 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
12710 (int)(((C)<<2) | (B)), \
12711 (__v16sf)_mm512_setzero_ps(), \
12713 _MM_FROUND_CUR_DIRECTION))
12714 #define _mm_getmant_sd(X, Y, C, D) \
12715 ((__m128d)__builtin_ia32_getmantsd_round ((__v2df)(__m128d)(X), \
12716 (__v2df)(__m128d)(Y), \
12717 (int)(((D)<<2) | (C)), \
12718 _MM_FROUND_CUR_DIRECTION))
12720 #define _mm_getmant_ss(X, Y, C, D) \
12721 ((__m128)__builtin_ia32_getmantss_round ((__v4sf)(__m128)(X), \
12722 (__v4sf)(__m128)(Y), \
12723 (int)(((D)<<2) | (C)), \
12724 _MM_FROUND_CUR_DIRECTION))
12726 #define _mm_getexp_ss(A, B) \
12727 ((__m128)__builtin_ia32_getexpss128_mask((__v4sf)(__m128)(A), (__v4sf)(__m128)(B), \
12728 _MM_FROUND_CUR_DIRECTION))
12730 #define _mm_getexp_sd(A, B) \
12731 ((__m128d)__builtin_ia32_getexpsd128_mask((__v2df)(__m128d)(A), (__v2df)(__m128d)(B),\
12732 _MM_FROUND_CUR_DIRECTION))
12734 #define _mm512_getexp_ps(A) \
12735 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
12736 (__v16sf)_mm512_undefined_ps(), (__mmask16)-1, _MM_FROUND_CUR_DIRECTION))
12738 #define _mm512_mask_getexp_ps(W, U, A) \
12739 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
12740 (__v16sf)(__m512)(W), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
12742 #define _mm512_maskz_getexp_ps(U, A) \
12743 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
12744 (__v16sf)_mm512_setzero_ps(), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
12746 #define _mm512_getexp_pd(A) \
12747 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
12748 (__v8df)_mm512_undefined_pd(), (__mmask8)-1, _MM_FROUND_CUR_DIRECTION))
12750 #define _mm512_mask_getexp_pd(W, U, A) \
12751 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
12752 (__v8df)(__m512d)(W), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12754 #define _mm512_maskz_getexp_pd(U, A) \
12755 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
12756 (__v8df)_mm512_setzero_pd(), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12759 #ifdef __OPTIMIZE__
12760 extern __inline __m512
12761 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12762 _mm512_roundscale_ps (__m512 __A
, const int __imm
)
12764 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
, __imm
,
12766 _mm512_undefined_ps (),
12768 _MM_FROUND_CUR_DIRECTION
);
12771 extern __inline __m512
12772 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12773 _mm512_mask_roundscale_ps (__m512 __A
, __mmask16 __B
, __m512 __C
,
12776 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __C
, __imm
,
12779 _MM_FROUND_CUR_DIRECTION
);
12782 extern __inline __m512
12783 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12784 _mm512_maskz_roundscale_ps (__mmask16 __A
, __m512 __B
, const int __imm
)
12786 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __B
,
12789 _mm512_setzero_ps (),
12791 _MM_FROUND_CUR_DIRECTION
);
12794 extern __inline __m512d
12795 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12796 _mm512_roundscale_pd (__m512d __A
, const int __imm
)
12798 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
, __imm
,
12800 _mm512_undefined_pd (),
12802 _MM_FROUND_CUR_DIRECTION
);
12805 extern __inline __m512d
12806 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12807 _mm512_mask_roundscale_pd (__m512d __A
, __mmask8 __B
, __m512d __C
,
12810 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __C
, __imm
,
12813 _MM_FROUND_CUR_DIRECTION
);
12816 extern __inline __m512d
12817 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12818 _mm512_maskz_roundscale_pd (__mmask8 __A
, __m512d __B
, const int __imm
)
12820 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __B
,
12823 _mm512_setzero_pd (),
12825 _MM_FROUND_CUR_DIRECTION
);
12828 extern __inline __m128
12829 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12830 _mm_roundscale_ss (__m128 __A
, __m128 __B
, const int __imm
)
12832 return (__m128
) __builtin_ia32_rndscaless_round ((__v4sf
) __A
,
12833 (__v4sf
) __B
, __imm
,
12834 _MM_FROUND_CUR_DIRECTION
);
12837 extern __inline __m128d
12838 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12839 _mm_roundscale_sd (__m128d __A
, __m128d __B
, const int __imm
)
12841 return (__m128d
) __builtin_ia32_rndscalesd_round ((__v2df
) __A
,
12842 (__v2df
) __B
, __imm
,
12843 _MM_FROUND_CUR_DIRECTION
);
12847 #define _mm512_roundscale_ps(A, B) \
12848 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(A), (int)(B),\
12849 (__v16sf)_mm512_undefined_ps(), (__mmask16)(-1), _MM_FROUND_CUR_DIRECTION))
12850 #define _mm512_mask_roundscale_ps(A, B, C, D) \
12851 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(C), \
12853 (__v16sf)(__m512)(A), \
12854 (__mmask16)(B), _MM_FROUND_CUR_DIRECTION))
12855 #define _mm512_maskz_roundscale_ps(A, B, C) \
12856 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(B), \
12858 (__v16sf)_mm512_setzero_ps(),\
12859 (__mmask16)(A), _MM_FROUND_CUR_DIRECTION))
12860 #define _mm512_roundscale_pd(A, B) \
12861 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(A), (int)(B),\
12862 (__v8df)_mm512_undefined_pd(), (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
12863 #define _mm512_mask_roundscale_pd(A, B, C, D) \
12864 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(C), \
12866 (__v8df)(__m512d)(A), \
12867 (__mmask8)(B), _MM_FROUND_CUR_DIRECTION))
12868 #define _mm512_maskz_roundscale_pd(A, B, C) \
12869 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(B), \
12871 (__v8df)_mm512_setzero_pd(),\
12872 (__mmask8)(A), _MM_FROUND_CUR_DIRECTION))
12873 #define _mm_roundscale_ss(A, B, C) \
12874 ((__m128) __builtin_ia32_rndscaless_round ((__v4sf)(__m128)(A), \
12875 (__v4sf)(__m128)(B), (int)(C), _MM_FROUND_CUR_DIRECTION))
12876 #define _mm_roundscale_sd(A, B, C) \
12877 ((__m128d) __builtin_ia32_rndscalesd_round ((__v2df)(__m128d)(A), \
12878 (__v2df)(__m128d)(B), (int)(C), _MM_FROUND_CUR_DIRECTION))
12881 #ifdef __OPTIMIZE__
12882 extern __inline __mmask8
12883 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12884 _mm512_cmp_pd_mask (__m512d __X
, __m512d __Y
, const int __P
)
12886 return (__mmask8
) __builtin_ia32_cmppd512_mask ((__v8df
) __X
,
12889 _MM_FROUND_CUR_DIRECTION
);
12892 extern __inline __mmask16
12893 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12894 _mm512_cmp_ps_mask (__m512 __X
, __m512 __Y
, const int __P
)
12896 return (__mmask16
) __builtin_ia32_cmpps512_mask ((__v16sf
) __X
,
12897 (__v16sf
) __Y
, __P
,
12899 _MM_FROUND_CUR_DIRECTION
);
12902 extern __inline __mmask16
12903 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12904 _mm512_mask_cmp_ps_mask (__mmask16 __U
, __m512 __X
, __m512 __Y
, const int __P
)
12906 return (__mmask16
) __builtin_ia32_cmpps512_mask ((__v16sf
) __X
,
12907 (__v16sf
) __Y
, __P
,
12909 _MM_FROUND_CUR_DIRECTION
);
12912 extern __inline __mmask8
12913 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12914 _mm512_mask_cmp_pd_mask (__mmask8 __U
, __m512d __X
, __m512d __Y
, const int __P
)
12916 return (__mmask8
) __builtin_ia32_cmppd512_mask ((__v8df
) __X
,
12919 _MM_FROUND_CUR_DIRECTION
);
12922 extern __inline __mmask8
12923 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12924 _mm_cmp_sd_mask (__m128d __X
, __m128d __Y
, const int __P
)
12926 return (__mmask8
) __builtin_ia32_cmpsd_mask ((__v2df
) __X
,
12929 _MM_FROUND_CUR_DIRECTION
);
12932 extern __inline __mmask8
12933 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12934 _mm_mask_cmp_sd_mask (__mmask8 __M
, __m128d __X
, __m128d __Y
, const int __P
)
12936 return (__mmask8
) __builtin_ia32_cmpsd_mask ((__v2df
) __X
,
12939 _MM_FROUND_CUR_DIRECTION
);
12942 extern __inline __mmask8
12943 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12944 _mm_cmp_ss_mask (__m128 __X
, __m128 __Y
, const int __P
)
12946 return (__mmask8
) __builtin_ia32_cmpss_mask ((__v4sf
) __X
,
12949 _MM_FROUND_CUR_DIRECTION
);
12952 extern __inline __mmask8
12953 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12954 _mm_mask_cmp_ss_mask (__mmask8 __M
, __m128 __X
, __m128 __Y
, const int __P
)
12956 return (__mmask8
) __builtin_ia32_cmpss_mask ((__v4sf
) __X
,
12959 _MM_FROUND_CUR_DIRECTION
);
12963 #define _mm512_cmp_pd_mask(X, Y, P) \
12964 ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X), \
12965 (__v8df)(__m512d)(Y), (int)(P),\
12966 (__mmask8)-1,_MM_FROUND_CUR_DIRECTION))
12968 #define _mm512_cmp_ps_mask(X, Y, P) \
12969 ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X), \
12970 (__v16sf)(__m512)(Y), (int)(P),\
12971 (__mmask16)-1,_MM_FROUND_CUR_DIRECTION))
12973 #define _mm512_mask_cmp_pd_mask(M, X, Y, P) \
12974 ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X), \
12975 (__v8df)(__m512d)(Y), (int)(P),\
12976 (__mmask8)M, _MM_FROUND_CUR_DIRECTION))
12978 #define _mm512_mask_cmp_ps_mask(M, X, Y, P) \
12979 ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X), \
12980 (__v16sf)(__m512)(Y), (int)(P),\
12981 (__mmask16)M,_MM_FROUND_CUR_DIRECTION))
12983 #define _mm_cmp_sd_mask(X, Y, P) \
12984 ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X), \
12985 (__v2df)(__m128d)(Y), (int)(P),\
12986 (__mmask8)-1,_MM_FROUND_CUR_DIRECTION))
12988 #define _mm_mask_cmp_sd_mask(M, X, Y, P) \
12989 ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X), \
12990 (__v2df)(__m128d)(Y), (int)(P),\
12991 M,_MM_FROUND_CUR_DIRECTION))
12993 #define _mm_cmp_ss_mask(X, Y, P) \
12994 ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X), \
12995 (__v4sf)(__m128)(Y), (int)(P), \
12996 (__mmask8)-1,_MM_FROUND_CUR_DIRECTION))
12998 #define _mm_mask_cmp_ss_mask(M, X, Y, P) \
12999 ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X), \
13000 (__v4sf)(__m128)(Y), (int)(P), \
13001 M,_MM_FROUND_CUR_DIRECTION))
13004 extern __inline __mmask16
13005 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13006 _mm512_kmov (__mmask16 __A
)
13008 return __builtin_ia32_kmovw (__A
);
13011 extern __inline __m512
13012 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13013 _mm512_castpd_ps (__m512d __A
)
13015 return (__m512
) (__A
);
13018 extern __inline __m512i
13019 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13020 _mm512_castpd_si512 (__m512d __A
)
13022 return (__m512i
) (__A
);
13025 extern __inline __m512d
13026 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13027 _mm512_castps_pd (__m512 __A
)
13029 return (__m512d
) (__A
);
13032 extern __inline __m512i
13033 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13034 _mm512_castps_si512 (__m512 __A
)
13036 return (__m512i
) (__A
);
13039 extern __inline __m512
13040 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13041 _mm512_castsi512_ps (__m512i __A
)
13043 return (__m512
) (__A
);
13046 extern __inline __m512d
13047 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13048 _mm512_castsi512_pd (__m512i __A
)
13050 return (__m512d
) (__A
);
13053 extern __inline __m128d
13054 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13055 _mm512_castpd512_pd128 (__m512d __A
)
13057 return (__m128d
)_mm512_extractf32x4_ps((__m512
)__A
, 0);
13060 extern __inline __m128
13061 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13062 _mm512_castps512_ps128 (__m512 __A
)
13064 return _mm512_extractf32x4_ps(__A
, 0);
13067 extern __inline __m128i
13068 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13069 _mm512_castsi512_si128 (__m512i __A
)
13071 return (__m128i
)_mm512_extracti32x4_epi32((__m512i
)__A
, 0);
13074 extern __inline __m256d
13075 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13076 _mm512_castpd512_pd256 (__m512d __A
)
13078 return _mm512_extractf64x4_pd(__A
, 0);
13081 extern __inline __m256
13082 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13083 _mm512_castps512_ps256 (__m512 __A
)
13085 return (__m256
)_mm512_extractf64x4_pd((__m512d
)__A
, 0);
13088 extern __inline __m256i
13089 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13090 _mm512_castsi512_si256 (__m512i __A
)
13092 return (__m256i
)_mm512_extractf64x4_pd((__m512d
)__A
, 0);
13095 extern __inline __m512d
13096 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13097 _mm512_castpd128_pd512 (__m128d __A
)
13099 return (__m512d
) __builtin_ia32_pd512_pd((__m128d
)__A
);
13102 extern __inline __m512
13103 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13104 _mm512_castps128_ps512 (__m128 __A
)
13106 return (__m512
) __builtin_ia32_ps512_ps((__m128
)__A
);
13109 extern __inline __m512i
13110 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13111 _mm512_castsi128_si512 (__m128i __A
)
13113 return (__m512i
) __builtin_ia32_si512_si((__v4si
)__A
);
13116 extern __inline __m512d
13117 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13118 _mm512_castpd256_pd512 (__m256d __A
)
13120 return __builtin_ia32_pd512_256pd (__A
);
13123 extern __inline __m512
13124 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13125 _mm512_castps256_ps512 (__m256 __A
)
13127 return __builtin_ia32_ps512_256ps (__A
);
13130 extern __inline __m512i
13131 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13132 _mm512_castsi256_si512 (__m256i __A
)
13134 return (__m512i
)__builtin_ia32_si512_256si ((__v8si
)__A
);
13137 extern __inline __mmask16
13138 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13139 _mm512_cmpeq_epu32_mask (__m512i __A
, __m512i __B
)
13141 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __A
,
13146 extern __inline __mmask16
13147 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13148 _mm512_mask_cmpeq_epu32_mask (__mmask16 __U
, __m512i __A
, __m512i __B
)
13150 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __A
,
13151 (__v16si
) __B
, 0, __U
);
13154 extern __inline __mmask8
13155 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13156 _mm512_mask_cmpeq_epu64_mask (__mmask8 __U
, __m512i __A
, __m512i __B
)
13158 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __A
,
13159 (__v8di
) __B
, 0, __U
);
13162 extern __inline __mmask8
13163 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13164 _mm512_cmpeq_epu64_mask (__m512i __A
, __m512i __B
)
13166 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __A
,
13171 extern __inline __mmask16
13172 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13173 _mm512_cmpgt_epu32_mask (__m512i __A
, __m512i __B
)
13175 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __A
,
13180 extern __inline __mmask16
13181 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13182 _mm512_mask_cmpgt_epu32_mask (__mmask16 __U
, __m512i __A
, __m512i __B
)
13184 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __A
,
13185 (__v16si
) __B
, 6, __U
);
13188 extern __inline __mmask8
13189 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13190 _mm512_mask_cmpgt_epu64_mask (__mmask8 __U
, __m512i __A
, __m512i __B
)
13192 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __A
,
13193 (__v8di
) __B
, 6, __U
);
13196 extern __inline __mmask8
13197 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13198 _mm512_cmpgt_epu64_mask (__m512i __A
, __m512i __B
)
13200 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __A
,
13205 #ifdef __DISABLE_AVX512F__
13206 #undef __DISABLE_AVX512F__
13207 #pragma GCC pop_options
13208 #endif /* __DISABLE_AVX512F__ */
13210 #endif /* _AVX512FINTRIN_H_INCLUDED */