1 /* Copyright (C) 2013-2016 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 __mmask8
8970 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8971 _mm512_cmp_epi64_mask (__m512i __X
, __m512i __Y
, const int __P
)
8973 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
8978 extern __inline __mmask16
8979 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8980 _mm512_cmp_epi32_mask (__m512i __X
, __m512i __Y
, const int __P
)
8982 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
8987 extern __inline __mmask8
8988 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8989 _mm512_cmp_epu64_mask (__m512i __X
, __m512i __Y
, const int __P
)
8991 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
8996 extern __inline __mmask16
8997 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8998 _mm512_cmp_epu32_mask (__m512i __X
, __m512i __Y
, const int __P
)
9000 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
9005 extern __inline __mmask8
9006 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9007 _mm512_cmp_round_pd_mask (__m512d __X
, __m512d __Y
, const int __P
,
9010 return (__mmask8
) __builtin_ia32_cmppd512_mask ((__v8df
) __X
,
9012 (__mmask8
) -1, __R
);
9015 extern __inline __mmask16
9016 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9017 _mm512_cmp_round_ps_mask (__m512 __X
, __m512 __Y
, const int __P
, const int __R
)
9019 return (__mmask16
) __builtin_ia32_cmpps512_mask ((__v16sf
) __X
,
9021 (__mmask16
) -1, __R
);
9024 extern __inline __mmask8
9025 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9026 _mm512_mask_cmp_epi64_mask (__mmask8 __U
, __m512i __X
, __m512i __Y
,
9029 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
9034 extern __inline __mmask16
9035 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9036 _mm512_mask_cmp_epi32_mask (__mmask16 __U
, __m512i __X
, __m512i __Y
,
9039 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
9044 extern __inline __mmask8
9045 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9046 _mm512_mask_cmp_epu64_mask (__mmask8 __U
, __m512i __X
, __m512i __Y
,
9049 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
9054 extern __inline __mmask16
9055 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9056 _mm512_mask_cmp_epu32_mask (__mmask16 __U
, __m512i __X
, __m512i __Y
,
9059 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
9064 extern __inline __mmask8
9065 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9066 _mm512_mask_cmp_round_pd_mask (__mmask8 __U
, __m512d __X
, __m512d __Y
,
9067 const int __P
, const int __R
)
9069 return (__mmask8
) __builtin_ia32_cmppd512_mask ((__v8df
) __X
,
9071 (__mmask8
) __U
, __R
);
9074 extern __inline __mmask16
9075 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9076 _mm512_mask_cmp_round_ps_mask (__mmask16 __U
, __m512 __X
, __m512 __Y
,
9077 const int __P
, const int __R
)
9079 return (__mmask16
) __builtin_ia32_cmpps512_mask ((__v16sf
) __X
,
9081 (__mmask16
) __U
, __R
);
9084 extern __inline __mmask8
9085 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9086 _mm_cmp_round_sd_mask (__m128d __X
, __m128d __Y
, const int __P
, const int __R
)
9088 return (__mmask8
) __builtin_ia32_cmpsd_mask ((__v2df
) __X
,
9090 (__mmask8
) -1, __R
);
9093 extern __inline __mmask8
9094 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9095 _mm_mask_cmp_round_sd_mask (__mmask8 __M
, __m128d __X
, __m128d __Y
,
9096 const int __P
, const int __R
)
9098 return (__mmask8
) __builtin_ia32_cmpsd_mask ((__v2df
) __X
,
9100 (__mmask8
) __M
, __R
);
9103 extern __inline __mmask8
9104 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9105 _mm_cmp_round_ss_mask (__m128 __X
, __m128 __Y
, const int __P
, const int __R
)
9107 return (__mmask8
) __builtin_ia32_cmpss_mask ((__v4sf
) __X
,
9109 (__mmask8
) -1, __R
);
9112 extern __inline __mmask8
9113 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9114 _mm_mask_cmp_round_ss_mask (__mmask8 __M
, __m128 __X
, __m128 __Y
,
9115 const int __P
, const int __R
)
9117 return (__mmask8
) __builtin_ia32_cmpss_mask ((__v4sf
) __X
,
9119 (__mmask8
) __M
, __R
);
9123 #define _mm512_cmp_epi64_mask(X, Y, P) \
9124 ((__mmask8) __builtin_ia32_cmpq512_mask ((__v8di)(__m512i)(X), \
9125 (__v8di)(__m512i)(Y), (int)(P),\
9128 #define _mm512_cmp_epi32_mask(X, Y, P) \
9129 ((__mmask16) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X), \
9130 (__v16si)(__m512i)(Y), (int)(P), \
9133 #define _mm512_cmp_epu64_mask(X, Y, P) \
9134 ((__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di)(__m512i)(X), \
9135 (__v8di)(__m512i)(Y), (int)(P),\
9138 #define _mm512_cmp_epu32_mask(X, Y, P) \
9139 ((__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X), \
9140 (__v16si)(__m512i)(Y), (int)(P), \
9143 #define _mm512_cmp_round_pd_mask(X, Y, P, R) \
9144 ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X), \
9145 (__v8df)(__m512d)(Y), (int)(P),\
9148 #define _mm512_cmp_round_ps_mask(X, Y, P, R) \
9149 ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X), \
9150 (__v16sf)(__m512)(Y), (int)(P),\
9153 #define _mm512_mask_cmp_epi64_mask(M, X, Y, P) \
9154 ((__mmask8) __builtin_ia32_cmpq512_mask ((__v8di)(__m512i)(X), \
9155 (__v8di)(__m512i)(Y), (int)(P),\
9158 #define _mm512_mask_cmp_epi32_mask(M, X, Y, P) \
9159 ((__mmask16) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X), \
9160 (__v16si)(__m512i)(Y), (int)(P), \
9163 #define _mm512_mask_cmp_epu64_mask(M, X, Y, P) \
9164 ((__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di)(__m512i)(X), \
9165 (__v8di)(__m512i)(Y), (int)(P),\
9168 #define _mm512_mask_cmp_epu32_mask(M, X, Y, P) \
9169 ((__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X), \
9170 (__v16si)(__m512i)(Y), (int)(P), \
9173 #define _mm512_mask_cmp_round_pd_mask(M, X, Y, P, R) \
9174 ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X), \
9175 (__v8df)(__m512d)(Y), (int)(P),\
9178 #define _mm512_mask_cmp_round_ps_mask(M, X, Y, P, R) \
9179 ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X), \
9180 (__v16sf)(__m512)(Y), (int)(P),\
9183 #define _mm_cmp_round_sd_mask(X, Y, P, R) \
9184 ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X), \
9185 (__v2df)(__m128d)(Y), (int)(P),\
9188 #define _mm_mask_cmp_round_sd_mask(M, X, Y, P, R) \
9189 ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X), \
9190 (__v2df)(__m128d)(Y), (int)(P),\
9193 #define _mm_cmp_round_ss_mask(X, Y, P, R) \
9194 ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X), \
9195 (__v4sf)(__m128)(Y), (int)(P), \
9198 #define _mm_mask_cmp_round_ss_mask(M, X, Y, P, R) \
9199 ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X), \
9200 (__v4sf)(__m128)(Y), (int)(P), \
9205 extern __inline __m512
9206 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9207 _mm512_i32gather_ps (__m512i __index
, float const *__addr
, int __scale
)
9209 __m512 __v1_old
= _mm512_undefined_ps ();
9210 __mmask16 __mask
= 0xFFFF;
9212 return (__m512
) __builtin_ia32_gathersiv16sf ((__v16sf
) __v1_old
,
9218 extern __inline __m512
9219 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9220 _mm512_mask_i32gather_ps (__m512 __v1_old
, __mmask16 __mask
,
9221 __m512i __index
, float const *__addr
, int __scale
)
9223 return (__m512
) __builtin_ia32_gathersiv16sf ((__v16sf
) __v1_old
,
9229 extern __inline __m512d
9230 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9231 _mm512_i32gather_pd (__m256i __index
, double const *__addr
, int __scale
)
9233 __m512d __v1_old
= _mm512_undefined_pd ();
9234 __mmask8 __mask
= 0xFF;
9236 return (__m512d
) __builtin_ia32_gathersiv8df ((__v8df
) __v1_old
,
9238 (__v8si
) __index
, __mask
,
9242 extern __inline __m512d
9243 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9244 _mm512_mask_i32gather_pd (__m512d __v1_old
, __mmask8 __mask
,
9245 __m256i __index
, double const *__addr
, int __scale
)
9247 return (__m512d
) __builtin_ia32_gathersiv8df ((__v8df
) __v1_old
,
9253 extern __inline __m256
9254 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9255 _mm512_i64gather_ps (__m512i __index
, float const *__addr
, int __scale
)
9257 __m256 __v1_old
= _mm256_undefined_ps ();
9258 __mmask8 __mask
= 0xFF;
9260 return (__m256
) __builtin_ia32_gatherdiv16sf ((__v8sf
) __v1_old
,
9262 (__v8di
) __index
, __mask
,
9266 extern __inline __m256
9267 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9268 _mm512_mask_i64gather_ps (__m256 __v1_old
, __mmask8 __mask
,
9269 __m512i __index
, float const *__addr
, int __scale
)
9271 return (__m256
) __builtin_ia32_gatherdiv16sf ((__v8sf
) __v1_old
,
9277 extern __inline __m512d
9278 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9279 _mm512_i64gather_pd (__m512i __index
, double const *__addr
, int __scale
)
9281 __m512d __v1_old
= _mm512_undefined_pd ();
9282 __mmask8 __mask
= 0xFF;
9284 return (__m512d
) __builtin_ia32_gatherdiv8df ((__v8df
) __v1_old
,
9286 (__v8di
) __index
, __mask
,
9290 extern __inline __m512d
9291 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9292 _mm512_mask_i64gather_pd (__m512d __v1_old
, __mmask8 __mask
,
9293 __m512i __index
, double const *__addr
, int __scale
)
9295 return (__m512d
) __builtin_ia32_gatherdiv8df ((__v8df
) __v1_old
,
9301 extern __inline __m512i
9302 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9303 _mm512_i32gather_epi32 (__m512i __index
, int const *__addr
, int __scale
)
9305 __m512i __v1_old
= _mm512_undefined_epi32 ();
9306 __mmask16 __mask
= 0xFFFF;
9308 return (__m512i
) __builtin_ia32_gathersiv16si ((__v16si
) __v1_old
,
9314 extern __inline __m512i
9315 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9316 _mm512_mask_i32gather_epi32 (__m512i __v1_old
, __mmask16 __mask
,
9317 __m512i __index
, int const *__addr
, int __scale
)
9319 return (__m512i
) __builtin_ia32_gathersiv16si ((__v16si
) __v1_old
,
9325 extern __inline __m512i
9326 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9327 _mm512_i32gather_epi64 (__m256i __index
, long long const *__addr
, int __scale
)
9329 __m512i __v1_old
= _mm512_undefined_epi32 ();
9330 __mmask8 __mask
= 0xFF;
9332 return (__m512i
) __builtin_ia32_gathersiv8di ((__v8di
) __v1_old
,
9334 (__v8si
) __index
, __mask
,
9338 extern __inline __m512i
9339 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9340 _mm512_mask_i32gather_epi64 (__m512i __v1_old
, __mmask8 __mask
,
9341 __m256i __index
, long long const *__addr
,
9344 return (__m512i
) __builtin_ia32_gathersiv8di ((__v8di
) __v1_old
,
9350 extern __inline __m256i
9351 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9352 _mm512_i64gather_epi32 (__m512i __index
, int const *__addr
, int __scale
)
9354 __m256i __v1_old
= _mm256_undefined_si256 ();
9355 __mmask8 __mask
= 0xFF;
9357 return (__m256i
) __builtin_ia32_gatherdiv16si ((__v8si
) __v1_old
,
9363 extern __inline __m256i
9364 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9365 _mm512_mask_i64gather_epi32 (__m256i __v1_old
, __mmask8 __mask
,
9366 __m512i __index
, int const *__addr
, int __scale
)
9368 return (__m256i
) __builtin_ia32_gatherdiv16si ((__v8si
) __v1_old
,
9374 extern __inline __m512i
9375 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9376 _mm512_i64gather_epi64 (__m512i __index
, long long const *__addr
, int __scale
)
9378 __m512i __v1_old
= _mm512_undefined_epi32 ();
9379 __mmask8 __mask
= 0xFF;
9381 return (__m512i
) __builtin_ia32_gatherdiv8di ((__v8di
) __v1_old
,
9383 (__v8di
) __index
, __mask
,
9387 extern __inline __m512i
9388 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9389 _mm512_mask_i64gather_epi64 (__m512i __v1_old
, __mmask8 __mask
,
9390 __m512i __index
, long long const *__addr
,
9393 return (__m512i
) __builtin_ia32_gatherdiv8di ((__v8di
) __v1_old
,
9399 extern __inline
void
9400 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9401 _mm512_i32scatter_ps (float *__addr
, __m512i __index
, __m512 __v1
, int __scale
)
9403 __builtin_ia32_scattersiv16sf (__addr
, (__mmask16
) 0xFFFF,
9404 (__v16si
) __index
, (__v16sf
) __v1
, __scale
);
9407 extern __inline
void
9408 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9409 _mm512_mask_i32scatter_ps (float *__addr
, __mmask16 __mask
,
9410 __m512i __index
, __m512 __v1
, int __scale
)
9412 __builtin_ia32_scattersiv16sf (__addr
, __mask
, (__v16si
) __index
,
9413 (__v16sf
) __v1
, __scale
);
9416 extern __inline
void
9417 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9418 _mm512_i32scatter_pd (double *__addr
, __m256i __index
, __m512d __v1
,
9421 __builtin_ia32_scattersiv8df (__addr
, (__mmask8
) 0xFF,
9422 (__v8si
) __index
, (__v8df
) __v1
, __scale
);
9425 extern __inline
void
9426 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9427 _mm512_mask_i32scatter_pd (double *__addr
, __mmask8 __mask
,
9428 __m256i __index
, __m512d __v1
, int __scale
)
9430 __builtin_ia32_scattersiv8df (__addr
, __mask
, (__v8si
) __index
,
9431 (__v8df
) __v1
, __scale
);
9434 extern __inline
void
9435 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9436 _mm512_i64scatter_ps (float *__addr
, __m512i __index
, __m256 __v1
, int __scale
)
9438 __builtin_ia32_scatterdiv16sf (__addr
, (__mmask8
) 0xFF,
9439 (__v8di
) __index
, (__v8sf
) __v1
, __scale
);
9442 extern __inline
void
9443 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9444 _mm512_mask_i64scatter_ps (float *__addr
, __mmask8 __mask
,
9445 __m512i __index
, __m256 __v1
, int __scale
)
9447 __builtin_ia32_scatterdiv16sf (__addr
, __mask
, (__v8di
) __index
,
9448 (__v8sf
) __v1
, __scale
);
9451 extern __inline
void
9452 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9453 _mm512_i64scatter_pd (double *__addr
, __m512i __index
, __m512d __v1
,
9456 __builtin_ia32_scatterdiv8df (__addr
, (__mmask8
) 0xFF,
9457 (__v8di
) __index
, (__v8df
) __v1
, __scale
);
9460 extern __inline
void
9461 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9462 _mm512_mask_i64scatter_pd (double *__addr
, __mmask8 __mask
,
9463 __m512i __index
, __m512d __v1
, int __scale
)
9465 __builtin_ia32_scatterdiv8df (__addr
, __mask
, (__v8di
) __index
,
9466 (__v8df
) __v1
, __scale
);
9469 extern __inline
void
9470 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9471 _mm512_i32scatter_epi32 (int *__addr
, __m512i __index
,
9472 __m512i __v1
, int __scale
)
9474 __builtin_ia32_scattersiv16si (__addr
, (__mmask16
) 0xFFFF,
9475 (__v16si
) __index
, (__v16si
) __v1
, __scale
);
9478 extern __inline
void
9479 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9480 _mm512_mask_i32scatter_epi32 (int *__addr
, __mmask16 __mask
,
9481 __m512i __index
, __m512i __v1
, int __scale
)
9483 __builtin_ia32_scattersiv16si (__addr
, __mask
, (__v16si
) __index
,
9484 (__v16si
) __v1
, __scale
);
9487 extern __inline
void
9488 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9489 _mm512_i32scatter_epi64 (long long *__addr
, __m256i __index
,
9490 __m512i __v1
, int __scale
)
9492 __builtin_ia32_scattersiv8di (__addr
, (__mmask8
) 0xFF,
9493 (__v8si
) __index
, (__v8di
) __v1
, __scale
);
9496 extern __inline
void
9497 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9498 _mm512_mask_i32scatter_epi64 (long long *__addr
, __mmask8 __mask
,
9499 __m256i __index
, __m512i __v1
, int __scale
)
9501 __builtin_ia32_scattersiv8di (__addr
, __mask
, (__v8si
) __index
,
9502 (__v8di
) __v1
, __scale
);
9505 extern __inline
void
9506 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9507 _mm512_i64scatter_epi32 (int *__addr
, __m512i __index
,
9508 __m256i __v1
, int __scale
)
9510 __builtin_ia32_scatterdiv16si (__addr
, (__mmask8
) 0xFF,
9511 (__v8di
) __index
, (__v8si
) __v1
, __scale
);
9514 extern __inline
void
9515 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9516 _mm512_mask_i64scatter_epi32 (int *__addr
, __mmask8 __mask
,
9517 __m512i __index
, __m256i __v1
, int __scale
)
9519 __builtin_ia32_scatterdiv16si (__addr
, __mask
, (__v8di
) __index
,
9520 (__v8si
) __v1
, __scale
);
9523 extern __inline
void
9524 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9525 _mm512_i64scatter_epi64 (long long *__addr
, __m512i __index
,
9526 __m512i __v1
, int __scale
)
9528 __builtin_ia32_scatterdiv8di (__addr
, (__mmask8
) 0xFF,
9529 (__v8di
) __index
, (__v8di
) __v1
, __scale
);
9532 extern __inline
void
9533 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9534 _mm512_mask_i64scatter_epi64 (long long *__addr
, __mmask8 __mask
,
9535 __m512i __index
, __m512i __v1
, int __scale
)
9537 __builtin_ia32_scatterdiv8di (__addr
, __mask
, (__v8di
) __index
,
9538 (__v8di
) __v1
, __scale
);
9541 #define _mm512_i32gather_ps(INDEX, ADDR, SCALE) \
9542 (__m512) __builtin_ia32_gathersiv16sf ((__v16sf)_mm512_undefined_ps(),\
9543 (float const *)ADDR, \
9544 (__v16si)(__m512i)INDEX, \
9545 (__mmask16)0xFFFF, (int)SCALE)
9547 #define _mm512_mask_i32gather_ps(V1OLD, MASK, INDEX, ADDR, SCALE) \
9548 (__m512) __builtin_ia32_gathersiv16sf ((__v16sf)(__m512)V1OLD, \
9549 (float const *)ADDR, \
9550 (__v16si)(__m512i)INDEX, \
9551 (__mmask16)MASK, (int)SCALE)
9553 #define _mm512_i32gather_pd(INDEX, ADDR, SCALE) \
9554 (__m512d) __builtin_ia32_gathersiv8df ((__v8df)_mm512_undefined_pd(), \
9555 (double const *)ADDR, \
9556 (__v8si)(__m256i)INDEX, \
9557 (__mmask8)0xFF, (int)SCALE)
9559 #define _mm512_mask_i32gather_pd(V1OLD, MASK, INDEX, ADDR, SCALE) \
9560 (__m512d) __builtin_ia32_gathersiv8df ((__v8df)(__m512d)V1OLD, \
9561 (double const *)ADDR, \
9562 (__v8si)(__m256i)INDEX, \
9563 (__mmask8)MASK, (int)SCALE)
9565 #define _mm512_i64gather_ps(INDEX, ADDR, SCALE) \
9566 (__m256) __builtin_ia32_gatherdiv16sf ((__v8sf)_mm256_undefined_ps(), \
9567 (float const *)ADDR, \
9568 (__v8di)(__m512i)INDEX, \
9569 (__mmask8)0xFF, (int)SCALE)
9571 #define _mm512_mask_i64gather_ps(V1OLD, MASK, INDEX, ADDR, SCALE) \
9572 (__m256) __builtin_ia32_gatherdiv16sf ((__v8sf)(__m256)V1OLD, \
9573 (float const *)ADDR, \
9574 (__v8di)(__m512i)INDEX, \
9575 (__mmask8)MASK, (int)SCALE)
9577 #define _mm512_i64gather_pd(INDEX, ADDR, SCALE) \
9578 (__m512d) __builtin_ia32_gatherdiv8df ((__v8df)_mm512_undefined_pd(), \
9579 (double const *)ADDR, \
9580 (__v8di)(__m512i)INDEX, \
9581 (__mmask8)0xFF, (int)SCALE)
9583 #define _mm512_mask_i64gather_pd(V1OLD, MASK, INDEX, ADDR, SCALE) \
9584 (__m512d) __builtin_ia32_gatherdiv8df ((__v8df)(__m512d)V1OLD, \
9585 (double const *)ADDR, \
9586 (__v8di)(__m512i)INDEX, \
9587 (__mmask8)MASK, (int)SCALE)
9589 #define _mm512_i32gather_epi32(INDEX, ADDR, SCALE) \
9590 (__m512i) __builtin_ia32_gathersiv16si ((__v16si)_mm512_undefined_epi32 (), \
9591 (int const *)ADDR, \
9592 (__v16si)(__m512i)INDEX, \
9593 (__mmask16)0xFFFF, (int)SCALE)
9595 #define _mm512_mask_i32gather_epi32(V1OLD, MASK, INDEX, ADDR, SCALE) \
9596 (__m512i) __builtin_ia32_gathersiv16si ((__v16si)(__m512i)V1OLD, \
9597 (int const *)ADDR, \
9598 (__v16si)(__m512i)INDEX, \
9599 (__mmask16)MASK, (int)SCALE)
9601 #define _mm512_i32gather_epi64(INDEX, ADDR, SCALE) \
9602 (__m512i) __builtin_ia32_gathersiv8di ((__v8di)_mm512_undefined_epi32 (), \
9603 (long long const *)ADDR, \
9604 (__v8si)(__m256i)INDEX, \
9605 (__mmask8)0xFF, (int)SCALE)
9607 #define _mm512_mask_i32gather_epi64(V1OLD, MASK, INDEX, ADDR, SCALE) \
9608 (__m512i) __builtin_ia32_gathersiv8di ((__v8di)(__m512i)V1OLD, \
9609 (long long const *)ADDR, \
9610 (__v8si)(__m256i)INDEX, \
9611 (__mmask8)MASK, (int)SCALE)
9613 #define _mm512_i64gather_epi32(INDEX, ADDR, SCALE) \
9614 (__m256i) __builtin_ia32_gatherdiv16si ((__v8si)_mm256_undefined_si256(), \
9615 (int const *)ADDR, \
9616 (__v8di)(__m512i)INDEX, \
9617 (__mmask8)0xFF, (int)SCALE)
9619 #define _mm512_mask_i64gather_epi32(V1OLD, MASK, INDEX, ADDR, SCALE) \
9620 (__m256i) __builtin_ia32_gatherdiv16si ((__v8si)(__m256i)V1OLD, \
9621 (int const *)ADDR, \
9622 (__v8di)(__m512i)INDEX, \
9623 (__mmask8)MASK, (int)SCALE)
9625 #define _mm512_i64gather_epi64(INDEX, ADDR, SCALE) \
9626 (__m512i) __builtin_ia32_gatherdiv8di ((__v8di)_mm512_undefined_epi32 (), \
9627 (long long const *)ADDR, \
9628 (__v8di)(__m512i)INDEX, \
9629 (__mmask8)0xFF, (int)SCALE)
9631 #define _mm512_mask_i64gather_epi64(V1OLD, MASK, INDEX, ADDR, SCALE) \
9632 (__m512i) __builtin_ia32_gatherdiv8di ((__v8di)(__m512i)V1OLD, \
9633 (long long const *)ADDR, \
9634 (__v8di)(__m512i)INDEX, \
9635 (__mmask8)MASK, (int)SCALE)
9637 #define _mm512_i32scatter_ps(ADDR, INDEX, V1, SCALE) \
9638 __builtin_ia32_scattersiv16sf ((float *)ADDR, (__mmask16)0xFFFF, \
9639 (__v16si)(__m512i)INDEX, \
9640 (__v16sf)(__m512)V1, (int)SCALE)
9642 #define _mm512_mask_i32scatter_ps(ADDR, MASK, INDEX, V1, SCALE) \
9643 __builtin_ia32_scattersiv16sf ((float *)ADDR, (__mmask16)MASK, \
9644 (__v16si)(__m512i)INDEX, \
9645 (__v16sf)(__m512)V1, (int)SCALE)
9647 #define _mm512_i32scatter_pd(ADDR, INDEX, V1, SCALE) \
9648 __builtin_ia32_scattersiv8df ((double *)ADDR, (__mmask8)0xFF, \
9649 (__v8si)(__m256i)INDEX, \
9650 (__v8df)(__m512d)V1, (int)SCALE)
9652 #define _mm512_mask_i32scatter_pd(ADDR, MASK, INDEX, V1, SCALE) \
9653 __builtin_ia32_scattersiv8df ((double *)ADDR, (__mmask8)MASK, \
9654 (__v8si)(__m256i)INDEX, \
9655 (__v8df)(__m512d)V1, (int)SCALE)
9657 #define _mm512_i64scatter_ps(ADDR, INDEX, V1, SCALE) \
9658 __builtin_ia32_scatterdiv16sf ((float *)ADDR, (__mmask8)0xFF, \
9659 (__v8di)(__m512i)INDEX, \
9660 (__v8sf)(__m256)V1, (int)SCALE)
9662 #define _mm512_mask_i64scatter_ps(ADDR, MASK, INDEX, V1, SCALE) \
9663 __builtin_ia32_scatterdiv16sf ((float *)ADDR, (__mmask16)MASK, \
9664 (__v8di)(__m512i)INDEX, \
9665 (__v8sf)(__m256)V1, (int)SCALE)
9667 #define _mm512_i64scatter_pd(ADDR, INDEX, V1, SCALE) \
9668 __builtin_ia32_scatterdiv8df ((double *)ADDR, (__mmask8)0xFF, \
9669 (__v8di)(__m512i)INDEX, \
9670 (__v8df)(__m512d)V1, (int)SCALE)
9672 #define _mm512_mask_i64scatter_pd(ADDR, MASK, INDEX, V1, SCALE) \
9673 __builtin_ia32_scatterdiv8df ((double *)ADDR, (__mmask8)MASK, \
9674 (__v8di)(__m512i)INDEX, \
9675 (__v8df)(__m512d)V1, (int)SCALE)
9677 #define _mm512_i32scatter_epi32(ADDR, INDEX, V1, SCALE) \
9678 __builtin_ia32_scattersiv16si ((int *)ADDR, (__mmask16)0xFFFF, \
9679 (__v16si)(__m512i)INDEX, \
9680 (__v16si)(__m512i)V1, (int)SCALE)
9682 #define _mm512_mask_i32scatter_epi32(ADDR, MASK, INDEX, V1, SCALE) \
9683 __builtin_ia32_scattersiv16si ((int *)ADDR, (__mmask16)MASK, \
9684 (__v16si)(__m512i)INDEX, \
9685 (__v16si)(__m512i)V1, (int)SCALE)
9687 #define _mm512_i32scatter_epi64(ADDR, INDEX, V1, SCALE) \
9688 __builtin_ia32_scattersiv8di ((long long *)ADDR, (__mmask8)0xFF, \
9689 (__v8si)(__m256i)INDEX, \
9690 (__v8di)(__m512i)V1, (int)SCALE)
9692 #define _mm512_mask_i32scatter_epi64(ADDR, MASK, INDEX, V1, SCALE) \
9693 __builtin_ia32_scattersiv8di ((long long *)ADDR, (__mmask8)MASK, \
9694 (__v8si)(__m256i)INDEX, \
9695 (__v8di)(__m512i)V1, (int)SCALE)
9697 #define _mm512_i64scatter_epi32(ADDR, INDEX, V1, SCALE) \
9698 __builtin_ia32_scatterdiv16si ((int *)ADDR, (__mmask8)0xFF, \
9699 (__v8di)(__m512i)INDEX, \
9700 (__v8si)(__m256i)V1, (int)SCALE)
9702 #define _mm512_mask_i64scatter_epi32(ADDR, MASK, INDEX, V1, SCALE) \
9703 __builtin_ia32_scatterdiv16si ((int *)ADDR, (__mmask8)MASK, \
9704 (__v8di)(__m512i)INDEX, \
9705 (__v8si)(__m256i)V1, (int)SCALE)
9707 #define _mm512_i64scatter_epi64(ADDR, INDEX, V1, SCALE) \
9708 __builtin_ia32_scatterdiv8di ((long long *)ADDR, (__mmask8)0xFF, \
9709 (__v8di)(__m512i)INDEX, \
9710 (__v8di)(__m512i)V1, (int)SCALE)
9712 #define _mm512_mask_i64scatter_epi64(ADDR, MASK, INDEX, V1, SCALE) \
9713 __builtin_ia32_scatterdiv8di ((long long *)ADDR, (__mmask8)MASK, \
9714 (__v8di)(__m512i)INDEX, \
9715 (__v8di)(__m512i)V1, (int)SCALE)
9718 extern __inline __m512d
9719 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9720 _mm512_mask_compress_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
9722 return (__m512d
) __builtin_ia32_compressdf512_mask ((__v8df
) __A
,
9727 extern __inline __m512d
9728 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9729 _mm512_maskz_compress_pd (__mmask8 __U
, __m512d __A
)
9731 return (__m512d
) __builtin_ia32_compressdf512_mask ((__v8df
) __A
,
9733 _mm512_setzero_pd (),
9737 extern __inline
void
9738 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9739 _mm512_mask_compressstoreu_pd (void *__P
, __mmask8 __U
, __m512d __A
)
9741 __builtin_ia32_compressstoredf512_mask ((__v8df
*) __P
, (__v8df
) __A
,
9745 extern __inline __m512
9746 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9747 _mm512_mask_compress_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
9749 return (__m512
) __builtin_ia32_compresssf512_mask ((__v16sf
) __A
,
9754 extern __inline __m512
9755 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9756 _mm512_maskz_compress_ps (__mmask16 __U
, __m512 __A
)
9758 return (__m512
) __builtin_ia32_compresssf512_mask ((__v16sf
) __A
,
9760 _mm512_setzero_ps (),
9764 extern __inline
void
9765 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9766 _mm512_mask_compressstoreu_ps (void *__P
, __mmask16 __U
, __m512 __A
)
9768 __builtin_ia32_compressstoresf512_mask ((__v16sf
*) __P
, (__v16sf
) __A
,
9772 extern __inline __m512i
9773 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9774 _mm512_mask_compress_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
)
9776 return (__m512i
) __builtin_ia32_compressdi512_mask ((__v8di
) __A
,
9781 extern __inline __m512i
9782 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9783 _mm512_maskz_compress_epi64 (__mmask8 __U
, __m512i __A
)
9785 return (__m512i
) __builtin_ia32_compressdi512_mask ((__v8di
) __A
,
9787 _mm512_setzero_si512 (),
9791 extern __inline
void
9792 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9793 _mm512_mask_compressstoreu_epi64 (void *__P
, __mmask8 __U
, __m512i __A
)
9795 __builtin_ia32_compressstoredi512_mask ((__v8di
*) __P
, (__v8di
) __A
,
9799 extern __inline __m512i
9800 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9801 _mm512_mask_compress_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
)
9803 return (__m512i
) __builtin_ia32_compresssi512_mask ((__v16si
) __A
,
9808 extern __inline __m512i
9809 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9810 _mm512_maskz_compress_epi32 (__mmask16 __U
, __m512i __A
)
9812 return (__m512i
) __builtin_ia32_compresssi512_mask ((__v16si
) __A
,
9814 _mm512_setzero_si512 (),
9818 extern __inline
void
9819 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9820 _mm512_mask_compressstoreu_epi32 (void *__P
, __mmask16 __U
, __m512i __A
)
9822 __builtin_ia32_compressstoresi512_mask ((__v16si
*) __P
, (__v16si
) __A
,
9826 extern __inline __m512d
9827 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9828 _mm512_mask_expand_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
9830 return (__m512d
) __builtin_ia32_expanddf512_mask ((__v8df
) __A
,
9835 extern __inline __m512d
9836 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9837 _mm512_maskz_expand_pd (__mmask8 __U
, __m512d __A
)
9839 return (__m512d
) __builtin_ia32_expanddf512_maskz ((__v8df
) __A
,
9841 _mm512_setzero_pd (),
9845 extern __inline __m512d
9846 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9847 _mm512_mask_expandloadu_pd (__m512d __W
, __mmask8 __U
, void const *__P
)
9849 return (__m512d
) __builtin_ia32_expandloaddf512_mask ((const __v8df
*) __P
,
9854 extern __inline __m512d
9855 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9856 _mm512_maskz_expandloadu_pd (__mmask8 __U
, void const *__P
)
9858 return (__m512d
) __builtin_ia32_expandloaddf512_maskz ((const __v8df
*) __P
,
9860 _mm512_setzero_pd (),
9864 extern __inline __m512
9865 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9866 _mm512_mask_expand_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
9868 return (__m512
) __builtin_ia32_expandsf512_mask ((__v16sf
) __A
,
9873 extern __inline __m512
9874 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9875 _mm512_maskz_expand_ps (__mmask16 __U
, __m512 __A
)
9877 return (__m512
) __builtin_ia32_expandsf512_maskz ((__v16sf
) __A
,
9879 _mm512_setzero_ps (),
9883 extern __inline __m512
9884 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9885 _mm512_mask_expandloadu_ps (__m512 __W
, __mmask16 __U
, void const *__P
)
9887 return (__m512
) __builtin_ia32_expandloadsf512_mask ((const __v16sf
*) __P
,
9892 extern __inline __m512
9893 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9894 _mm512_maskz_expandloadu_ps (__mmask16 __U
, void const *__P
)
9896 return (__m512
) __builtin_ia32_expandloadsf512_maskz ((const __v16sf
*) __P
,
9898 _mm512_setzero_ps (),
9902 extern __inline __m512i
9903 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9904 _mm512_mask_expand_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
)
9906 return (__m512i
) __builtin_ia32_expanddi512_mask ((__v8di
) __A
,
9911 extern __inline __m512i
9912 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9913 _mm512_maskz_expand_epi64 (__mmask8 __U
, __m512i __A
)
9915 return (__m512i
) __builtin_ia32_expanddi512_maskz ((__v8di
) __A
,
9917 _mm512_setzero_si512 (),
9921 extern __inline __m512i
9922 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9923 _mm512_mask_expandloadu_epi64 (__m512i __W
, __mmask8 __U
, void const *__P
)
9925 return (__m512i
) __builtin_ia32_expandloaddi512_mask ((const __v8di
*) __P
,
9930 extern __inline __m512i
9931 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9932 _mm512_maskz_expandloadu_epi64 (__mmask8 __U
, void const *__P
)
9935 __builtin_ia32_expandloaddi512_maskz ((const __v8di
*) __P
,
9937 _mm512_setzero_si512 (),
9941 extern __inline __m512i
9942 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9943 _mm512_mask_expand_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
)
9945 return (__m512i
) __builtin_ia32_expandsi512_mask ((__v16si
) __A
,
9950 extern __inline __m512i
9951 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9952 _mm512_maskz_expand_epi32 (__mmask16 __U
, __m512i __A
)
9954 return (__m512i
) __builtin_ia32_expandsi512_maskz ((__v16si
) __A
,
9956 _mm512_setzero_si512 (),
9960 extern __inline __m512i
9961 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9962 _mm512_mask_expandloadu_epi32 (__m512i __W
, __mmask16 __U
, void const *__P
)
9964 return (__m512i
) __builtin_ia32_expandloadsi512_mask ((const __v16si
*) __P
,
9969 extern __inline __m512i
9970 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9971 _mm512_maskz_expandloadu_epi32 (__mmask16 __U
, void const *__P
)
9973 return (__m512i
) __builtin_ia32_expandloadsi512_maskz ((const __v16si
*) __P
,
9975 _mm512_setzero_si512
9976 (), (__mmask16
) __U
);
9979 /* Mask arithmetic operations */
9980 extern __inline __mmask16
9981 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9982 _mm512_kand (__mmask16 __A
, __mmask16 __B
)
9984 return (__mmask16
) __builtin_ia32_kandhi ((__mmask16
) __A
, (__mmask16
) __B
);
9987 extern __inline __mmask16
9988 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9989 _mm512_kandn (__mmask16 __A
, __mmask16 __B
)
9991 return (__mmask16
) __builtin_ia32_kandnhi ((__mmask16
) __A
, (__mmask16
) __B
);
9994 extern __inline __mmask16
9995 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9996 _mm512_kor (__mmask16 __A
, __mmask16 __B
)
9998 return (__mmask16
) __builtin_ia32_korhi ((__mmask16
) __A
, (__mmask16
) __B
);
10001 extern __inline
int
10002 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10003 _mm512_kortestz (__mmask16 __A
, __mmask16 __B
)
10005 return (__mmask16
) __builtin_ia32_kortestzhi ((__mmask16
) __A
,
10009 extern __inline
int
10010 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10011 _mm512_kortestc (__mmask16 __A
, __mmask16 __B
)
10013 return (__mmask16
) __builtin_ia32_kortestchi ((__mmask16
) __A
,
10017 extern __inline __mmask16
10018 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10019 _mm512_kxnor (__mmask16 __A
, __mmask16 __B
)
10021 return (__mmask16
) __builtin_ia32_kxnorhi ((__mmask16
) __A
, (__mmask16
) __B
);
10024 extern __inline __mmask16
10025 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10026 _mm512_kxor (__mmask16 __A
, __mmask16 __B
)
10028 return (__mmask16
) __builtin_ia32_kxorhi ((__mmask16
) __A
, (__mmask16
) __B
);
10031 extern __inline __mmask16
10032 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10033 _mm512_knot (__mmask16 __A
)
10035 return (__mmask16
) __builtin_ia32_knothi ((__mmask16
) __A
);
10038 extern __inline __mmask16
10039 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10040 _mm512_kunpackb (__mmask16 __A
, __mmask16 __B
)
10042 return (__mmask16
) __builtin_ia32_kunpckhi ((__mmask16
) __A
, (__mmask16
) __B
);
10045 #ifdef __OPTIMIZE__
10046 extern __inline __m512i
10047 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10048 _mm512_maskz_inserti32x4 (__mmask16 __B
, __m512i __C
, __m128i __D
,
10051 return (__m512i
) __builtin_ia32_inserti32x4_mask ((__v16si
) __C
,
10055 _mm512_setzero_si512 (),
10059 extern __inline __m512
10060 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10061 _mm512_maskz_insertf32x4 (__mmask16 __B
, __m512 __C
, __m128 __D
,
10064 return (__m512
) __builtin_ia32_insertf32x4_mask ((__v16sf
) __C
,
10068 _mm512_setzero_ps (), __B
);
10071 extern __inline __m512i
10072 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10073 _mm512_mask_inserti32x4 (__m512i __A
, __mmask16 __B
, __m512i __C
,
10074 __m128i __D
, const int __imm
)
10076 return (__m512i
) __builtin_ia32_inserti32x4_mask ((__v16si
) __C
,
10083 extern __inline __m512
10084 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10085 _mm512_mask_insertf32x4 (__m512 __A
, __mmask16 __B
, __m512 __C
,
10086 __m128 __D
, const int __imm
)
10088 return (__m512
) __builtin_ia32_insertf32x4_mask ((__v16sf
) __C
,
10091 (__v16sf
) __A
, __B
);
10094 #define _mm512_maskz_insertf32x4(A, X, Y, C) \
10095 ((__m512) __builtin_ia32_insertf32x4_mask ((__v16sf)(__m512) (X), \
10096 (__v4sf)(__m128) (Y), (int) (C), (__v16sf)_mm512_setzero_ps(), \
10099 #define _mm512_maskz_inserti32x4(A, X, Y, C) \
10100 ((__m512i) __builtin_ia32_inserti32x4_mask ((__v16si)(__m512i) (X), \
10101 (__v4si)(__m128i) (Y), (int) (C), (__v16si)_mm512_setzero_si512 (), \
10104 #define _mm512_mask_insertf32x4(A, B, X, Y, C) \
10105 ((__m512) __builtin_ia32_insertf32x4_mask ((__v16sf)(__m512) (X), \
10106 (__v4sf)(__m128) (Y), (int) (C), (__v16sf)(__m512) (A), \
10109 #define _mm512_mask_inserti32x4(A, B, X, Y, C) \
10110 ((__m512i) __builtin_ia32_inserti32x4_mask ((__v16si)(__m512i) (X), \
10111 (__v4si)(__m128i) (Y), (int) (C), (__v16si)(__m512i) (A), \
10115 extern __inline __m512i
10116 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10117 _mm512_max_epi64 (__m512i __A
, __m512i __B
)
10119 return (__m512i
) __builtin_ia32_pmaxsq512_mask ((__v8di
) __A
,
10122 _mm512_undefined_epi32 (),
10126 extern __inline __m512i
10127 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10128 _mm512_maskz_max_epi64 (__mmask8 __M
, __m512i __A
, __m512i __B
)
10130 return (__m512i
) __builtin_ia32_pmaxsq512_mask ((__v8di
) __A
,
10133 _mm512_setzero_si512 (),
10137 extern __inline __m512i
10138 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10139 _mm512_mask_max_epi64 (__m512i __W
, __mmask8 __M
, __m512i __A
, __m512i __B
)
10141 return (__m512i
) __builtin_ia32_pmaxsq512_mask ((__v8di
) __A
,
10143 (__v8di
) __W
, __M
);
10146 extern __inline __m512i
10147 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10148 _mm512_min_epi64 (__m512i __A
, __m512i __B
)
10150 return (__m512i
) __builtin_ia32_pminsq512_mask ((__v8di
) __A
,
10153 _mm512_undefined_epi32 (),
10157 extern __inline __m512i
10158 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10159 _mm512_mask_min_epi64 (__m512i __W
, __mmask8 __M
, __m512i __A
, __m512i __B
)
10161 return (__m512i
) __builtin_ia32_pminsq512_mask ((__v8di
) __A
,
10163 (__v8di
) __W
, __M
);
10166 extern __inline __m512i
10167 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10168 _mm512_maskz_min_epi64 (__mmask8 __M
, __m512i __A
, __m512i __B
)
10170 return (__m512i
) __builtin_ia32_pminsq512_mask ((__v8di
) __A
,
10173 _mm512_setzero_si512 (),
10177 extern __inline __m512i
10178 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10179 _mm512_max_epu64 (__m512i __A
, __m512i __B
)
10181 return (__m512i
) __builtin_ia32_pmaxuq512_mask ((__v8di
) __A
,
10184 _mm512_undefined_epi32 (),
10188 extern __inline __m512i
10189 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10190 _mm512_maskz_max_epu64 (__mmask8 __M
, __m512i __A
, __m512i __B
)
10192 return (__m512i
) __builtin_ia32_pmaxuq512_mask ((__v8di
) __A
,
10195 _mm512_setzero_si512 (),
10199 extern __inline __m512i
10200 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10201 _mm512_mask_max_epu64 (__m512i __W
, __mmask8 __M
, __m512i __A
, __m512i __B
)
10203 return (__m512i
) __builtin_ia32_pmaxuq512_mask ((__v8di
) __A
,
10205 (__v8di
) __W
, __M
);
10208 extern __inline __m512i
10209 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10210 _mm512_min_epu64 (__m512i __A
, __m512i __B
)
10212 return (__m512i
) __builtin_ia32_pminuq512_mask ((__v8di
) __A
,
10215 _mm512_undefined_epi32 (),
10219 extern __inline __m512i
10220 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10221 _mm512_mask_min_epu64 (__m512i __W
, __mmask8 __M
, __m512i __A
, __m512i __B
)
10223 return (__m512i
) __builtin_ia32_pminuq512_mask ((__v8di
) __A
,
10225 (__v8di
) __W
, __M
);
10228 extern __inline __m512i
10229 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10230 _mm512_maskz_min_epu64 (__mmask8 __M
, __m512i __A
, __m512i __B
)
10232 return (__m512i
) __builtin_ia32_pminuq512_mask ((__v8di
) __A
,
10235 _mm512_setzero_si512 (),
10239 extern __inline __m512i
10240 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10241 _mm512_max_epi32 (__m512i __A
, __m512i __B
)
10243 return (__m512i
) __builtin_ia32_pmaxsd512_mask ((__v16si
) __A
,
10246 _mm512_undefined_epi32 (),
10250 extern __inline __m512i
10251 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10252 _mm512_maskz_max_epi32 (__mmask16 __M
, __m512i __A
, __m512i __B
)
10254 return (__m512i
) __builtin_ia32_pmaxsd512_mask ((__v16si
) __A
,
10257 _mm512_setzero_si512 (),
10261 extern __inline __m512i
10262 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10263 _mm512_mask_max_epi32 (__m512i __W
, __mmask16 __M
, __m512i __A
, __m512i __B
)
10265 return (__m512i
) __builtin_ia32_pmaxsd512_mask ((__v16si
) __A
,
10267 (__v16si
) __W
, __M
);
10270 extern __inline __m512i
10271 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10272 _mm512_min_epi32 (__m512i __A
, __m512i __B
)
10274 return (__m512i
) __builtin_ia32_pminsd512_mask ((__v16si
) __A
,
10277 _mm512_undefined_epi32 (),
10281 extern __inline __m512i
10282 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10283 _mm512_maskz_min_epi32 (__mmask16 __M
, __m512i __A
, __m512i __B
)
10285 return (__m512i
) __builtin_ia32_pminsd512_mask ((__v16si
) __A
,
10288 _mm512_setzero_si512 (),
10292 extern __inline __m512i
10293 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10294 _mm512_mask_min_epi32 (__m512i __W
, __mmask16 __M
, __m512i __A
, __m512i __B
)
10296 return (__m512i
) __builtin_ia32_pminsd512_mask ((__v16si
) __A
,
10298 (__v16si
) __W
, __M
);
10301 extern __inline __m512i
10302 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10303 _mm512_max_epu32 (__m512i __A
, __m512i __B
)
10305 return (__m512i
) __builtin_ia32_pmaxud512_mask ((__v16si
) __A
,
10308 _mm512_undefined_epi32 (),
10312 extern __inline __m512i
10313 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10314 _mm512_maskz_max_epu32 (__mmask16 __M
, __m512i __A
, __m512i __B
)
10316 return (__m512i
) __builtin_ia32_pmaxud512_mask ((__v16si
) __A
,
10319 _mm512_setzero_si512 (),
10323 extern __inline __m512i
10324 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10325 _mm512_mask_max_epu32 (__m512i __W
, __mmask16 __M
, __m512i __A
, __m512i __B
)
10327 return (__m512i
) __builtin_ia32_pmaxud512_mask ((__v16si
) __A
,
10329 (__v16si
) __W
, __M
);
10332 extern __inline __m512i
10333 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10334 _mm512_min_epu32 (__m512i __A
, __m512i __B
)
10336 return (__m512i
) __builtin_ia32_pminud512_mask ((__v16si
) __A
,
10339 _mm512_undefined_epi32 (),
10343 extern __inline __m512i
10344 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10345 _mm512_maskz_min_epu32 (__mmask16 __M
, __m512i __A
, __m512i __B
)
10347 return (__m512i
) __builtin_ia32_pminud512_mask ((__v16si
) __A
,
10350 _mm512_setzero_si512 (),
10354 extern __inline __m512i
10355 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10356 _mm512_mask_min_epu32 (__m512i __W
, __mmask16 __M
, __m512i __A
, __m512i __B
)
10358 return (__m512i
) __builtin_ia32_pminud512_mask ((__v16si
) __A
,
10360 (__v16si
) __W
, __M
);
10363 extern __inline __m512
10364 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10365 _mm512_unpacklo_ps (__m512 __A
, __m512 __B
)
10367 return (__m512
) __builtin_ia32_unpcklps512_mask ((__v16sf
) __A
,
10370 _mm512_undefined_ps (),
10374 extern __inline __m512
10375 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10376 _mm512_mask_unpacklo_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
10378 return (__m512
) __builtin_ia32_unpcklps512_mask ((__v16sf
) __A
,
10384 extern __inline __m512
10385 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10386 _mm512_maskz_unpacklo_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
10388 return (__m512
) __builtin_ia32_unpcklps512_mask ((__v16sf
) __A
,
10391 _mm512_setzero_ps (),
10395 #ifdef __OPTIMIZE__
10396 extern __inline __m128d
10397 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10398 _mm_max_round_sd (__m128d __A
, __m128d __B
, const int __R
)
10400 return (__m128d
) __builtin_ia32_maxsd_round ((__v2df
) __A
,
10405 extern __inline __m128
10406 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10407 _mm_max_round_ss (__m128 __A
, __m128 __B
, const int __R
)
10409 return (__m128
) __builtin_ia32_maxss_round ((__v4sf
) __A
,
10414 extern __inline __m128d
10415 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10416 _mm_min_round_sd (__m128d __A
, __m128d __B
, const int __R
)
10418 return (__m128d
) __builtin_ia32_minsd_round ((__v2df
) __A
,
10423 extern __inline __m128
10424 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10425 _mm_min_round_ss (__m128 __A
, __m128 __B
, const int __R
)
10427 return (__m128
) __builtin_ia32_minss_round ((__v4sf
) __A
,
10433 #define _mm_max_round_sd(A, B, C) \
10434 (__m128d)__builtin_ia32_addsd_round(A, B, C)
10436 #define _mm_max_round_ss(A, B, C) \
10437 (__m128)__builtin_ia32_addss_round(A, B, C)
10439 #define _mm_min_round_sd(A, B, C) \
10440 (__m128d)__builtin_ia32_subsd_round(A, B, C)
10442 #define _mm_min_round_ss(A, B, C) \
10443 (__m128)__builtin_ia32_subss_round(A, B, C)
10446 extern __inline __m512d
10447 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10448 _mm512_mask_blend_pd (__mmask8 __U
, __m512d __A
, __m512d __W
)
10450 return (__m512d
) __builtin_ia32_blendmpd_512_mask ((__v8df
) __A
,
10455 extern __inline __m512
10456 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10457 _mm512_mask_blend_ps (__mmask16 __U
, __m512 __A
, __m512 __W
)
10459 return (__m512
) __builtin_ia32_blendmps_512_mask ((__v16sf
) __A
,
10464 extern __inline __m512i
10465 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10466 _mm512_mask_blend_epi64 (__mmask8 __U
, __m512i __A
, __m512i __W
)
10468 return (__m512i
) __builtin_ia32_blendmq_512_mask ((__v8di
) __A
,
10473 extern __inline __m512i
10474 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10475 _mm512_mask_blend_epi32 (__mmask16 __U
, __m512i __A
, __m512i __W
)
10477 return (__m512i
) __builtin_ia32_blendmd_512_mask ((__v16si
) __A
,
10482 #ifdef __OPTIMIZE__
10483 extern __inline __m128d
10484 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10485 _mm_fmadd_round_sd (__m128d __W
, __m128d __A
, __m128d __B
, const int __R
)
10487 return (__m128d
) __builtin_ia32_vfmaddsd3_round ((__v2df
) __W
,
10493 extern __inline __m128
10494 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10495 _mm_fmadd_round_ss (__m128 __W
, __m128 __A
, __m128 __B
, const int __R
)
10497 return (__m128
) __builtin_ia32_vfmaddss3_round ((__v4sf
) __W
,
10503 extern __inline __m128d
10504 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10505 _mm_fmsub_round_sd (__m128d __W
, __m128d __A
, __m128d __B
, const int __R
)
10507 return (__m128d
) __builtin_ia32_vfmaddsd3_round ((__v2df
) __W
,
10513 extern __inline __m128
10514 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10515 _mm_fmsub_round_ss (__m128 __W
, __m128 __A
, __m128 __B
, const int __R
)
10517 return (__m128
) __builtin_ia32_vfmaddss3_round ((__v4sf
) __W
,
10523 extern __inline __m128d
10524 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10525 _mm_fnmadd_round_sd (__m128d __W
, __m128d __A
, __m128d __B
, const int __R
)
10527 return (__m128d
) __builtin_ia32_vfmaddsd3_round ((__v2df
) __W
,
10533 extern __inline __m128
10534 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10535 _mm_fnmadd_round_ss (__m128 __W
, __m128 __A
, __m128 __B
, const int __R
)
10537 return (__m128
) __builtin_ia32_vfmaddss3_round ((__v4sf
) __W
,
10543 extern __inline __m128d
10544 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10545 _mm_fnmsub_round_sd (__m128d __W
, __m128d __A
, __m128d __B
, const int __R
)
10547 return (__m128d
) __builtin_ia32_vfmaddsd3_round ((__v2df
) __W
,
10553 extern __inline __m128
10554 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10555 _mm_fnmsub_round_ss (__m128 __W
, __m128 __A
, __m128 __B
, const int __R
)
10557 return (__m128
) __builtin_ia32_vfmaddss3_round ((__v4sf
) __W
,
10563 #define _mm_fmadd_round_sd(A, B, C, R) \
10564 (__m128d)__builtin_ia32_vfmaddsd3_round(A, B, C, R)
10566 #define _mm_fmadd_round_ss(A, B, C, R) \
10567 (__m128)__builtin_ia32_vfmaddss3_round(A, B, C, R)
10569 #define _mm_fmsub_round_sd(A, B, C, R) \
10570 (__m128d)__builtin_ia32_vfmaddsd3_round(A, B, -(C), R)
10572 #define _mm_fmsub_round_ss(A, B, C, R) \
10573 (__m128)__builtin_ia32_vfmaddss3_round(A, B, -(C), R)
10575 #define _mm_fnmadd_round_sd(A, B, C, R) \
10576 (__m128d)__builtin_ia32_vfmaddsd3_round(A, -(B), C, R)
10578 #define _mm_fnmadd_round_ss(A, B, C, R) \
10579 (__m128)__builtin_ia32_vfmaddss3_round(A, -(B), C, R)
10581 #define _mm_fnmsub_round_sd(A, B, C, R) \
10582 (__m128d)__builtin_ia32_vfmaddsd3_round(A, -(B), -(C), R)
10584 #define _mm_fnmsub_round_ss(A, B, C, R) \
10585 (__m128)__builtin_ia32_vfmaddss3_round(A, -(B), -(C), R)
10588 #ifdef __OPTIMIZE__
10589 extern __inline
int
10590 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10591 _mm_comi_round_ss (__m128 __A
, __m128 __B
, const int __P
, const int __R
)
10593 return __builtin_ia32_vcomiss ((__v4sf
) __A
, (__v4sf
) __B
, __P
, __R
);
10596 extern __inline
int
10597 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10598 _mm_comi_round_sd (__m128d __A
, __m128d __B
, const int __P
, const int __R
)
10600 return __builtin_ia32_vcomisd ((__v2df
) __A
, (__v2df
) __B
, __P
, __R
);
10603 #define _mm_comi_round_ss(A, B, C, D)\
10604 __builtin_ia32_vcomiss(A, B, C, D)
10605 #define _mm_comi_round_sd(A, B, C, D)\
10606 __builtin_ia32_vcomisd(A, B, C, D)
10609 extern __inline __m512d
10610 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10611 _mm512_sqrt_pd (__m512d __A
)
10613 return (__m512d
) __builtin_ia32_sqrtpd512_mask ((__v8df
) __A
,
10615 _mm512_undefined_pd (),
10617 _MM_FROUND_CUR_DIRECTION
);
10620 extern __inline __m512d
10621 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10622 _mm512_mask_sqrt_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
10624 return (__m512d
) __builtin_ia32_sqrtpd512_mask ((__v8df
) __A
,
10627 _MM_FROUND_CUR_DIRECTION
);
10630 extern __inline __m512d
10631 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10632 _mm512_maskz_sqrt_pd (__mmask8 __U
, __m512d __A
)
10634 return (__m512d
) __builtin_ia32_sqrtpd512_mask ((__v8df
) __A
,
10636 _mm512_setzero_pd (),
10638 _MM_FROUND_CUR_DIRECTION
);
10641 extern __inline __m512
10642 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10643 _mm512_sqrt_ps (__m512 __A
)
10645 return (__m512
) __builtin_ia32_sqrtps512_mask ((__v16sf
) __A
,
10647 _mm512_undefined_ps (),
10649 _MM_FROUND_CUR_DIRECTION
);
10652 extern __inline __m512
10653 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10654 _mm512_mask_sqrt_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
10656 return (__m512
) __builtin_ia32_sqrtps512_mask ((__v16sf
) __A
,
10659 _MM_FROUND_CUR_DIRECTION
);
10662 extern __inline __m512
10663 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10664 _mm512_maskz_sqrt_ps (__mmask16 __U
, __m512 __A
)
10666 return (__m512
) __builtin_ia32_sqrtps512_mask ((__v16sf
) __A
,
10668 _mm512_setzero_ps (),
10670 _MM_FROUND_CUR_DIRECTION
);
10673 extern __inline __m512d
10674 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10675 _mm512_add_pd (__m512d __A
, __m512d __B
)
10677 return (__m512d
) ((__v8df
)__A
+ (__v8df
)__B
);
10680 extern __inline __m512d
10681 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10682 _mm512_mask_add_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
10684 return (__m512d
) __builtin_ia32_addpd512_mask ((__v8df
) __A
,
10688 _MM_FROUND_CUR_DIRECTION
);
10691 extern __inline __m512d
10692 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10693 _mm512_maskz_add_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
10695 return (__m512d
) __builtin_ia32_addpd512_mask ((__v8df
) __A
,
10698 _mm512_setzero_pd (),
10700 _MM_FROUND_CUR_DIRECTION
);
10703 extern __inline __m512
10704 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10705 _mm512_add_ps (__m512 __A
, __m512 __B
)
10707 return (__m512
) ((__v16sf
)__A
+ (__v16sf
)__B
);
10710 extern __inline __m512
10711 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10712 _mm512_mask_add_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
10714 return (__m512
) __builtin_ia32_addps512_mask ((__v16sf
) __A
,
10718 _MM_FROUND_CUR_DIRECTION
);
10721 extern __inline __m512
10722 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10723 _mm512_maskz_add_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
10725 return (__m512
) __builtin_ia32_addps512_mask ((__v16sf
) __A
,
10728 _mm512_setzero_ps (),
10730 _MM_FROUND_CUR_DIRECTION
);
10733 extern __inline __m512d
10734 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10735 _mm512_sub_pd (__m512d __A
, __m512d __B
)
10737 return (__m512d
) ((__v8df
)__A
- (__v8df
)__B
);
10740 extern __inline __m512d
10741 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10742 _mm512_mask_sub_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
10744 return (__m512d
) __builtin_ia32_subpd512_mask ((__v8df
) __A
,
10748 _MM_FROUND_CUR_DIRECTION
);
10751 extern __inline __m512d
10752 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10753 _mm512_maskz_sub_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
10755 return (__m512d
) __builtin_ia32_subpd512_mask ((__v8df
) __A
,
10758 _mm512_setzero_pd (),
10760 _MM_FROUND_CUR_DIRECTION
);
10763 extern __inline __m512
10764 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10765 _mm512_sub_ps (__m512 __A
, __m512 __B
)
10767 return (__m512
) ((__v16sf
)__A
- (__v16sf
)__B
);
10770 extern __inline __m512
10771 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10772 _mm512_mask_sub_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
10774 return (__m512
) __builtin_ia32_subps512_mask ((__v16sf
) __A
,
10778 _MM_FROUND_CUR_DIRECTION
);
10781 extern __inline __m512
10782 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10783 _mm512_maskz_sub_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
10785 return (__m512
) __builtin_ia32_subps512_mask ((__v16sf
) __A
,
10788 _mm512_setzero_ps (),
10790 _MM_FROUND_CUR_DIRECTION
);
10793 extern __inline __m512d
10794 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10795 _mm512_mul_pd (__m512d __A
, __m512d __B
)
10797 return (__m512d
) ((__v8df
)__A
* (__v8df
)__B
);
10800 extern __inline __m512d
10801 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10802 _mm512_mask_mul_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
10804 return (__m512d
) __builtin_ia32_mulpd512_mask ((__v8df
) __A
,
10808 _MM_FROUND_CUR_DIRECTION
);
10811 extern __inline __m512d
10812 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10813 _mm512_maskz_mul_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
10815 return (__m512d
) __builtin_ia32_mulpd512_mask ((__v8df
) __A
,
10818 _mm512_setzero_pd (),
10820 _MM_FROUND_CUR_DIRECTION
);
10823 extern __inline __m512
10824 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10825 _mm512_mul_ps (__m512 __A
, __m512 __B
)
10827 return (__m512
) ((__v16sf
)__A
* (__v16sf
)__B
);
10830 extern __inline __m512
10831 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10832 _mm512_mask_mul_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
10834 return (__m512
) __builtin_ia32_mulps512_mask ((__v16sf
) __A
,
10838 _MM_FROUND_CUR_DIRECTION
);
10841 extern __inline __m512
10842 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10843 _mm512_maskz_mul_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
10845 return (__m512
) __builtin_ia32_mulps512_mask ((__v16sf
) __A
,
10848 _mm512_setzero_ps (),
10850 _MM_FROUND_CUR_DIRECTION
);
10853 extern __inline __m512d
10854 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10855 _mm512_div_pd (__m512d __M
, __m512d __V
)
10857 return (__m512d
) ((__v8df
)__M
/ (__v8df
)__V
);
10860 extern __inline __m512d
10861 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10862 _mm512_mask_div_pd (__m512d __W
, __mmask8 __U
, __m512d __M
, __m512d __V
)
10864 return (__m512d
) __builtin_ia32_divpd512_mask ((__v8df
) __M
,
10868 _MM_FROUND_CUR_DIRECTION
);
10871 extern __inline __m512d
10872 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10873 _mm512_maskz_div_pd (__mmask8 __U
, __m512d __M
, __m512d __V
)
10875 return (__m512d
) __builtin_ia32_divpd512_mask ((__v8df
) __M
,
10878 _mm512_setzero_pd (),
10880 _MM_FROUND_CUR_DIRECTION
);
10883 extern __inline __m512
10884 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10885 _mm512_div_ps (__m512 __A
, __m512 __B
)
10887 return (__m512
) ((__v16sf
)__A
/ (__v16sf
)__B
);
10890 extern __inline __m512
10891 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10892 _mm512_mask_div_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
10894 return (__m512
) __builtin_ia32_divps512_mask ((__v16sf
) __A
,
10898 _MM_FROUND_CUR_DIRECTION
);
10901 extern __inline __m512
10902 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10903 _mm512_maskz_div_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
10905 return (__m512
) __builtin_ia32_divps512_mask ((__v16sf
) __A
,
10908 _mm512_setzero_ps (),
10910 _MM_FROUND_CUR_DIRECTION
);
10913 extern __inline __m512d
10914 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10915 _mm512_max_pd (__m512d __A
, __m512d __B
)
10917 return (__m512d
) __builtin_ia32_maxpd512_mask ((__v8df
) __A
,
10920 _mm512_undefined_pd (),
10922 _MM_FROUND_CUR_DIRECTION
);
10925 extern __inline __m512d
10926 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10927 _mm512_mask_max_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
10929 return (__m512d
) __builtin_ia32_maxpd512_mask ((__v8df
) __A
,
10933 _MM_FROUND_CUR_DIRECTION
);
10936 extern __inline __m512d
10937 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10938 _mm512_maskz_max_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
10940 return (__m512d
) __builtin_ia32_maxpd512_mask ((__v8df
) __A
,
10943 _mm512_setzero_pd (),
10945 _MM_FROUND_CUR_DIRECTION
);
10948 extern __inline __m512
10949 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10950 _mm512_max_ps (__m512 __A
, __m512 __B
)
10952 return (__m512
) __builtin_ia32_maxps512_mask ((__v16sf
) __A
,
10955 _mm512_undefined_ps (),
10957 _MM_FROUND_CUR_DIRECTION
);
10960 extern __inline __m512
10961 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10962 _mm512_mask_max_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
10964 return (__m512
) __builtin_ia32_maxps512_mask ((__v16sf
) __A
,
10968 _MM_FROUND_CUR_DIRECTION
);
10971 extern __inline __m512
10972 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10973 _mm512_maskz_max_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
10975 return (__m512
) __builtin_ia32_maxps512_mask ((__v16sf
) __A
,
10978 _mm512_setzero_ps (),
10980 _MM_FROUND_CUR_DIRECTION
);
10983 extern __inline __m512d
10984 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10985 _mm512_min_pd (__m512d __A
, __m512d __B
)
10987 return (__m512d
) __builtin_ia32_minpd512_mask ((__v8df
) __A
,
10990 _mm512_undefined_pd (),
10992 _MM_FROUND_CUR_DIRECTION
);
10995 extern __inline __m512d
10996 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10997 _mm512_mask_min_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
10999 return (__m512d
) __builtin_ia32_minpd512_mask ((__v8df
) __A
,
11003 _MM_FROUND_CUR_DIRECTION
);
11006 extern __inline __m512d
11007 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11008 _mm512_maskz_min_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
11010 return (__m512d
) __builtin_ia32_minpd512_mask ((__v8df
) __A
,
11013 _mm512_setzero_pd (),
11015 _MM_FROUND_CUR_DIRECTION
);
11018 extern __inline __m512
11019 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11020 _mm512_min_ps (__m512 __A
, __m512 __B
)
11022 return (__m512
) __builtin_ia32_minps512_mask ((__v16sf
) __A
,
11025 _mm512_undefined_ps (),
11027 _MM_FROUND_CUR_DIRECTION
);
11030 extern __inline __m512
11031 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11032 _mm512_mask_min_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
11034 return (__m512
) __builtin_ia32_minps512_mask ((__v16sf
) __A
,
11038 _MM_FROUND_CUR_DIRECTION
);
11041 extern __inline __m512
11042 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11043 _mm512_maskz_min_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
11045 return (__m512
) __builtin_ia32_minps512_mask ((__v16sf
) __A
,
11048 _mm512_setzero_ps (),
11050 _MM_FROUND_CUR_DIRECTION
);
11053 extern __inline __m512d
11054 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11055 _mm512_scalef_pd (__m512d __A
, __m512d __B
)
11057 return (__m512d
) __builtin_ia32_scalefpd512_mask ((__v8df
) __A
,
11060 _mm512_undefined_pd (),
11062 _MM_FROUND_CUR_DIRECTION
);
11065 extern __inline __m512d
11066 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11067 _mm512_mask_scalef_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
11069 return (__m512d
) __builtin_ia32_scalefpd512_mask ((__v8df
) __A
,
11073 _MM_FROUND_CUR_DIRECTION
);
11076 extern __inline __m512d
11077 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11078 _mm512_maskz_scalef_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
11080 return (__m512d
) __builtin_ia32_scalefpd512_mask ((__v8df
) __A
,
11083 _mm512_setzero_pd (),
11085 _MM_FROUND_CUR_DIRECTION
);
11088 extern __inline __m512
11089 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11090 _mm512_scalef_ps (__m512 __A
, __m512 __B
)
11092 return (__m512
) __builtin_ia32_scalefps512_mask ((__v16sf
) __A
,
11095 _mm512_undefined_ps (),
11097 _MM_FROUND_CUR_DIRECTION
);
11100 extern __inline __m512
11101 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11102 _mm512_mask_scalef_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
11104 return (__m512
) __builtin_ia32_scalefps512_mask ((__v16sf
) __A
,
11108 _MM_FROUND_CUR_DIRECTION
);
11111 extern __inline __m512
11112 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11113 _mm512_maskz_scalef_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
11115 return (__m512
) __builtin_ia32_scalefps512_mask ((__v16sf
) __A
,
11118 _mm512_setzero_ps (),
11120 _MM_FROUND_CUR_DIRECTION
);
11123 extern __inline __m128d
11124 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11125 _mm_scalef_sd (__m128d __A
, __m128d __B
)
11127 return (__m128d
) __builtin_ia32_scalefsd_round ((__v2df
) __A
,
11129 _MM_FROUND_CUR_DIRECTION
);
11132 extern __inline __m128
11133 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11134 _mm_scalef_ss (__m128 __A
, __m128 __B
)
11136 return (__m128
) __builtin_ia32_scalefss_round ((__v4sf
) __A
,
11138 _MM_FROUND_CUR_DIRECTION
);
11141 extern __inline __m512d
11142 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11143 _mm512_fmadd_pd (__m512d __A
, __m512d __B
, __m512d __C
)
11145 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
11149 _MM_FROUND_CUR_DIRECTION
);
11152 extern __inline __m512d
11153 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11154 _mm512_mask_fmadd_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
11156 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
11160 _MM_FROUND_CUR_DIRECTION
);
11163 extern __inline __m512d
11164 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11165 _mm512_mask3_fmadd_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
11167 return (__m512d
) __builtin_ia32_vfmaddpd512_mask3 ((__v8df
) __A
,
11171 _MM_FROUND_CUR_DIRECTION
);
11174 extern __inline __m512d
11175 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11176 _mm512_maskz_fmadd_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
11178 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz ((__v8df
) __A
,
11182 _MM_FROUND_CUR_DIRECTION
);
11185 extern __inline __m512
11186 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11187 _mm512_fmadd_ps (__m512 __A
, __m512 __B
, __m512 __C
)
11189 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
11193 _MM_FROUND_CUR_DIRECTION
);
11196 extern __inline __m512
11197 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11198 _mm512_mask_fmadd_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
11200 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
11204 _MM_FROUND_CUR_DIRECTION
);
11207 extern __inline __m512
11208 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11209 _mm512_mask3_fmadd_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
11211 return (__m512
) __builtin_ia32_vfmaddps512_mask3 ((__v16sf
) __A
,
11215 _MM_FROUND_CUR_DIRECTION
);
11218 extern __inline __m512
11219 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11220 _mm512_maskz_fmadd_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
11222 return (__m512
) __builtin_ia32_vfmaddps512_maskz ((__v16sf
) __A
,
11226 _MM_FROUND_CUR_DIRECTION
);
11229 extern __inline __m512d
11230 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11231 _mm512_fmsub_pd (__m512d __A
, __m512d __B
, __m512d __C
)
11233 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
11237 _MM_FROUND_CUR_DIRECTION
);
11240 extern __inline __m512d
11241 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11242 _mm512_mask_fmsub_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
11244 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
11248 _MM_FROUND_CUR_DIRECTION
);
11251 extern __inline __m512d
11252 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11253 _mm512_mask3_fmsub_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
11255 return (__m512d
) __builtin_ia32_vfmsubpd512_mask3 ((__v8df
) __A
,
11259 _MM_FROUND_CUR_DIRECTION
);
11262 extern __inline __m512d
11263 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11264 _mm512_maskz_fmsub_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
11266 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz ((__v8df
) __A
,
11270 _MM_FROUND_CUR_DIRECTION
);
11273 extern __inline __m512
11274 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11275 _mm512_fmsub_ps (__m512 __A
, __m512 __B
, __m512 __C
)
11277 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
11281 _MM_FROUND_CUR_DIRECTION
);
11284 extern __inline __m512
11285 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11286 _mm512_mask_fmsub_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
11288 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
11292 _MM_FROUND_CUR_DIRECTION
);
11295 extern __inline __m512
11296 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11297 _mm512_mask3_fmsub_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
11299 return (__m512
) __builtin_ia32_vfmsubps512_mask3 ((__v16sf
) __A
,
11303 _MM_FROUND_CUR_DIRECTION
);
11306 extern __inline __m512
11307 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11308 _mm512_maskz_fmsub_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
11310 return (__m512
) __builtin_ia32_vfmaddps512_maskz ((__v16sf
) __A
,
11314 _MM_FROUND_CUR_DIRECTION
);
11317 extern __inline __m512d
11318 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11319 _mm512_fmaddsub_pd (__m512d __A
, __m512d __B
, __m512d __C
)
11321 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
11325 _MM_FROUND_CUR_DIRECTION
);
11328 extern __inline __m512d
11329 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11330 _mm512_mask_fmaddsub_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
11332 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
11336 _MM_FROUND_CUR_DIRECTION
);
11339 extern __inline __m512d
11340 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11341 _mm512_mask3_fmaddsub_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
11343 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask3 ((__v8df
) __A
,
11347 _MM_FROUND_CUR_DIRECTION
);
11350 extern __inline __m512d
11351 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11352 _mm512_maskz_fmaddsub_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
11354 return (__m512d
) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df
) __A
,
11358 _MM_FROUND_CUR_DIRECTION
);
11361 extern __inline __m512
11362 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11363 _mm512_fmaddsub_ps (__m512 __A
, __m512 __B
, __m512 __C
)
11365 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
11369 _MM_FROUND_CUR_DIRECTION
);
11372 extern __inline __m512
11373 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11374 _mm512_mask_fmaddsub_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
11376 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
11380 _MM_FROUND_CUR_DIRECTION
);
11383 extern __inline __m512
11384 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11385 _mm512_mask3_fmaddsub_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
11387 return (__m512
) __builtin_ia32_vfmaddsubps512_mask3 ((__v16sf
) __A
,
11391 _MM_FROUND_CUR_DIRECTION
);
11394 extern __inline __m512
11395 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11396 _mm512_maskz_fmaddsub_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
11398 return (__m512
) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf
) __A
,
11402 _MM_FROUND_CUR_DIRECTION
);
11405 extern __inline __m512d
11406 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11407 _mm512_fmsubadd_pd (__m512d __A
, __m512d __B
, __m512d __C
)
11409 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
11413 _MM_FROUND_CUR_DIRECTION
);
11416 extern __inline __m512d
11417 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11418 _mm512_mask_fmsubadd_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
11420 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
11424 _MM_FROUND_CUR_DIRECTION
);
11427 extern __inline __m512d
11428 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11429 _mm512_mask3_fmsubadd_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
11431 return (__m512d
) __builtin_ia32_vfmsubaddpd512_mask3 ((__v8df
) __A
,
11435 _MM_FROUND_CUR_DIRECTION
);
11438 extern __inline __m512d
11439 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11440 _mm512_maskz_fmsubadd_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
11442 return (__m512d
) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df
) __A
,
11446 _MM_FROUND_CUR_DIRECTION
);
11449 extern __inline __m512
11450 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11451 _mm512_fmsubadd_ps (__m512 __A
, __m512 __B
, __m512 __C
)
11453 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
11457 _MM_FROUND_CUR_DIRECTION
);
11460 extern __inline __m512
11461 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11462 _mm512_mask_fmsubadd_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
11464 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
11468 _MM_FROUND_CUR_DIRECTION
);
11471 extern __inline __m512
11472 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11473 _mm512_mask3_fmsubadd_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
11475 return (__m512
) __builtin_ia32_vfmsubaddps512_mask3 ((__v16sf
) __A
,
11479 _MM_FROUND_CUR_DIRECTION
);
11482 extern __inline __m512
11483 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11484 _mm512_maskz_fmsubadd_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
11486 return (__m512
) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf
) __A
,
11490 _MM_FROUND_CUR_DIRECTION
);
11493 extern __inline __m512d
11494 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11495 _mm512_fnmadd_pd (__m512d __A
, __m512d __B
, __m512d __C
)
11497 return (__m512d
) __builtin_ia32_vfmaddpd512_mask (-(__v8df
) __A
,
11501 _MM_FROUND_CUR_DIRECTION
);
11504 extern __inline __m512d
11505 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11506 _mm512_mask_fnmadd_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
11508 return (__m512d
) __builtin_ia32_vfnmaddpd512_mask ((__v8df
) __A
,
11512 _MM_FROUND_CUR_DIRECTION
);
11515 extern __inline __m512d
11516 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11517 _mm512_mask3_fnmadd_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
11519 return (__m512d
) __builtin_ia32_vfmaddpd512_mask3 (-(__v8df
) __A
,
11523 _MM_FROUND_CUR_DIRECTION
);
11526 extern __inline __m512d
11527 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11528 _mm512_maskz_fnmadd_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
11530 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz (-(__v8df
) __A
,
11534 _MM_FROUND_CUR_DIRECTION
);
11537 extern __inline __m512
11538 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11539 _mm512_fnmadd_ps (__m512 __A
, __m512 __B
, __m512 __C
)
11541 return (__m512
) __builtin_ia32_vfmaddps512_mask (-(__v16sf
) __A
,
11545 _MM_FROUND_CUR_DIRECTION
);
11548 extern __inline __m512
11549 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11550 _mm512_mask_fnmadd_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
11552 return (__m512
) __builtin_ia32_vfnmaddps512_mask ((__v16sf
) __A
,
11556 _MM_FROUND_CUR_DIRECTION
);
11559 extern __inline __m512
11560 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11561 _mm512_mask3_fnmadd_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
11563 return (__m512
) __builtin_ia32_vfmaddps512_mask3 (-(__v16sf
) __A
,
11567 _MM_FROUND_CUR_DIRECTION
);
11570 extern __inline __m512
11571 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11572 _mm512_maskz_fnmadd_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
11574 return (__m512
) __builtin_ia32_vfmaddps512_maskz (-(__v16sf
) __A
,
11578 _MM_FROUND_CUR_DIRECTION
);
11581 extern __inline __m512d
11582 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11583 _mm512_fnmsub_pd (__m512d __A
, __m512d __B
, __m512d __C
)
11585 return (__m512d
) __builtin_ia32_vfmaddpd512_mask (-(__v8df
) __A
,
11589 _MM_FROUND_CUR_DIRECTION
);
11592 extern __inline __m512d
11593 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11594 _mm512_mask_fnmsub_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
11596 return (__m512d
) __builtin_ia32_vfnmsubpd512_mask ((__v8df
) __A
,
11600 _MM_FROUND_CUR_DIRECTION
);
11603 extern __inline __m512d
11604 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11605 _mm512_mask3_fnmsub_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
11607 return (__m512d
) __builtin_ia32_vfnmsubpd512_mask3 ((__v8df
) __A
,
11611 _MM_FROUND_CUR_DIRECTION
);
11614 extern __inline __m512d
11615 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11616 _mm512_maskz_fnmsub_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
11618 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz (-(__v8df
) __A
,
11622 _MM_FROUND_CUR_DIRECTION
);
11625 extern __inline __m512
11626 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11627 _mm512_fnmsub_ps (__m512 __A
, __m512 __B
, __m512 __C
)
11629 return (__m512
) __builtin_ia32_vfmaddps512_mask (-(__v16sf
) __A
,
11633 _MM_FROUND_CUR_DIRECTION
);
11636 extern __inline __m512
11637 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11638 _mm512_mask_fnmsub_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
11640 return (__m512
) __builtin_ia32_vfnmsubps512_mask ((__v16sf
) __A
,
11644 _MM_FROUND_CUR_DIRECTION
);
11647 extern __inline __m512
11648 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11649 _mm512_mask3_fnmsub_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
11651 return (__m512
) __builtin_ia32_vfnmsubps512_mask3 ((__v16sf
) __A
,
11655 _MM_FROUND_CUR_DIRECTION
);
11658 extern __inline __m512
11659 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11660 _mm512_maskz_fnmsub_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
11662 return (__m512
) __builtin_ia32_vfmaddps512_maskz (-(__v16sf
) __A
,
11666 _MM_FROUND_CUR_DIRECTION
);
11669 extern __inline __m256i
11670 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11671 _mm512_cvttpd_epi32 (__m512d __A
)
11673 return (__m256i
) __builtin_ia32_cvttpd2dq512_mask ((__v8df
) __A
,
11675 _mm256_undefined_si256 (),
11677 _MM_FROUND_CUR_DIRECTION
);
11680 extern __inline __m256i
11681 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11682 _mm512_mask_cvttpd_epi32 (__m256i __W
, __mmask8 __U
, __m512d __A
)
11684 return (__m256i
) __builtin_ia32_cvttpd2dq512_mask ((__v8df
) __A
,
11687 _MM_FROUND_CUR_DIRECTION
);
11690 extern __inline __m256i
11691 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11692 _mm512_maskz_cvttpd_epi32 (__mmask8 __U
, __m512d __A
)
11694 return (__m256i
) __builtin_ia32_cvttpd2dq512_mask ((__v8df
) __A
,
11696 _mm256_setzero_si256 (),
11698 _MM_FROUND_CUR_DIRECTION
);
11701 extern __inline __m256i
11702 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11703 _mm512_cvttpd_epu32 (__m512d __A
)
11705 return (__m256i
) __builtin_ia32_cvttpd2udq512_mask ((__v8df
) __A
,
11707 _mm256_undefined_si256 (),
11709 _MM_FROUND_CUR_DIRECTION
);
11712 extern __inline __m256i
11713 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11714 _mm512_mask_cvttpd_epu32 (__m256i __W
, __mmask8 __U
, __m512d __A
)
11716 return (__m256i
) __builtin_ia32_cvttpd2udq512_mask ((__v8df
) __A
,
11719 _MM_FROUND_CUR_DIRECTION
);
11722 extern __inline __m256i
11723 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11724 _mm512_maskz_cvttpd_epu32 (__mmask8 __U
, __m512d __A
)
11726 return (__m256i
) __builtin_ia32_cvttpd2udq512_mask ((__v8df
) __A
,
11728 _mm256_setzero_si256 (),
11730 _MM_FROUND_CUR_DIRECTION
);
11733 extern __inline __m256i
11734 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11735 _mm512_cvtpd_epi32 (__m512d __A
)
11737 return (__m256i
) __builtin_ia32_cvtpd2dq512_mask ((__v8df
) __A
,
11739 _mm256_undefined_si256 (),
11741 _MM_FROUND_CUR_DIRECTION
);
11744 extern __inline __m256i
11745 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11746 _mm512_mask_cvtpd_epi32 (__m256i __W
, __mmask8 __U
, __m512d __A
)
11748 return (__m256i
) __builtin_ia32_cvtpd2dq512_mask ((__v8df
) __A
,
11751 _MM_FROUND_CUR_DIRECTION
);
11754 extern __inline __m256i
11755 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11756 _mm512_maskz_cvtpd_epi32 (__mmask8 __U
, __m512d __A
)
11758 return (__m256i
) __builtin_ia32_cvtpd2dq512_mask ((__v8df
) __A
,
11760 _mm256_setzero_si256 (),
11762 _MM_FROUND_CUR_DIRECTION
);
11765 extern __inline __m256i
11766 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11767 _mm512_cvtpd_epu32 (__m512d __A
)
11769 return (__m256i
) __builtin_ia32_cvtpd2udq512_mask ((__v8df
) __A
,
11771 _mm256_undefined_si256 (),
11773 _MM_FROUND_CUR_DIRECTION
);
11776 extern __inline __m256i
11777 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11778 _mm512_mask_cvtpd_epu32 (__m256i __W
, __mmask8 __U
, __m512d __A
)
11780 return (__m256i
) __builtin_ia32_cvtpd2udq512_mask ((__v8df
) __A
,
11783 _MM_FROUND_CUR_DIRECTION
);
11786 extern __inline __m256i
11787 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11788 _mm512_maskz_cvtpd_epu32 (__mmask8 __U
, __m512d __A
)
11790 return (__m256i
) __builtin_ia32_cvtpd2udq512_mask ((__v8df
) __A
,
11792 _mm256_setzero_si256 (),
11794 _MM_FROUND_CUR_DIRECTION
);
11797 extern __inline __m512i
11798 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11799 _mm512_cvttps_epi32 (__m512 __A
)
11801 return (__m512i
) __builtin_ia32_cvttps2dq512_mask ((__v16sf
) __A
,
11803 _mm512_undefined_epi32 (),
11805 _MM_FROUND_CUR_DIRECTION
);
11808 extern __inline __m512i
11809 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11810 _mm512_mask_cvttps_epi32 (__m512i __W
, __mmask16 __U
, __m512 __A
)
11812 return (__m512i
) __builtin_ia32_cvttps2dq512_mask ((__v16sf
) __A
,
11815 _MM_FROUND_CUR_DIRECTION
);
11818 extern __inline __m512i
11819 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11820 _mm512_maskz_cvttps_epi32 (__mmask16 __U
, __m512 __A
)
11822 return (__m512i
) __builtin_ia32_cvttps2dq512_mask ((__v16sf
) __A
,
11824 _mm512_setzero_si512 (),
11826 _MM_FROUND_CUR_DIRECTION
);
11829 extern __inline __m512i
11830 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11831 _mm512_cvttps_epu32 (__m512 __A
)
11833 return (__m512i
) __builtin_ia32_cvttps2udq512_mask ((__v16sf
) __A
,
11835 _mm512_undefined_epi32 (),
11837 _MM_FROUND_CUR_DIRECTION
);
11840 extern __inline __m512i
11841 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11842 _mm512_mask_cvttps_epu32 (__m512i __W
, __mmask16 __U
, __m512 __A
)
11844 return (__m512i
) __builtin_ia32_cvttps2udq512_mask ((__v16sf
) __A
,
11847 _MM_FROUND_CUR_DIRECTION
);
11850 extern __inline __m512i
11851 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11852 _mm512_maskz_cvttps_epu32 (__mmask16 __U
, __m512 __A
)
11854 return (__m512i
) __builtin_ia32_cvttps2udq512_mask ((__v16sf
) __A
,
11856 _mm512_setzero_si512 (),
11858 _MM_FROUND_CUR_DIRECTION
);
11861 extern __inline __m512i
11862 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11863 _mm512_cvtps_epi32 (__m512 __A
)
11865 return (__m512i
) __builtin_ia32_cvtps2dq512_mask ((__v16sf
) __A
,
11867 _mm512_undefined_epi32 (),
11869 _MM_FROUND_CUR_DIRECTION
);
11872 extern __inline __m512i
11873 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11874 _mm512_mask_cvtps_epi32 (__m512i __W
, __mmask16 __U
, __m512 __A
)
11876 return (__m512i
) __builtin_ia32_cvtps2dq512_mask ((__v16sf
) __A
,
11879 _MM_FROUND_CUR_DIRECTION
);
11882 extern __inline __m512i
11883 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11884 _mm512_maskz_cvtps_epi32 (__mmask16 __U
, __m512 __A
)
11886 return (__m512i
) __builtin_ia32_cvtps2dq512_mask ((__v16sf
) __A
,
11888 _mm512_setzero_si512 (),
11890 _MM_FROUND_CUR_DIRECTION
);
11893 extern __inline __m512i
11894 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11895 _mm512_cvtps_epu32 (__m512 __A
)
11897 return (__m512i
) __builtin_ia32_cvtps2udq512_mask ((__v16sf
) __A
,
11899 _mm512_undefined_epi32 (),
11901 _MM_FROUND_CUR_DIRECTION
);
11904 extern __inline __m512i
11905 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11906 _mm512_mask_cvtps_epu32 (__m512i __W
, __mmask16 __U
, __m512 __A
)
11908 return (__m512i
) __builtin_ia32_cvtps2udq512_mask ((__v16sf
) __A
,
11911 _MM_FROUND_CUR_DIRECTION
);
11914 extern __inline __m512i
11915 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11916 _mm512_maskz_cvtps_epu32 (__mmask16 __U
, __m512 __A
)
11918 return (__m512i
) __builtin_ia32_cvtps2udq512_mask ((__v16sf
) __A
,
11920 _mm512_setzero_si512 (),
11922 _MM_FROUND_CUR_DIRECTION
);
11926 extern __inline __m128
11927 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11928 _mm_cvtu64_ss (__m128 __A
, unsigned long long __B
)
11930 return (__m128
) __builtin_ia32_cvtusi2ss64 ((__v4sf
) __A
, __B
,
11931 _MM_FROUND_CUR_DIRECTION
);
11934 extern __inline __m128d
11935 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11936 _mm_cvtu64_sd (__m128d __A
, unsigned long long __B
)
11938 return (__m128d
) __builtin_ia32_cvtusi2sd64 ((__v2df
) __A
, __B
,
11939 _MM_FROUND_CUR_DIRECTION
);
11943 extern __inline __m128
11944 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11945 _mm_cvtu32_ss (__m128 __A
, unsigned __B
)
11947 return (__m128
) __builtin_ia32_cvtusi2ss32 ((__v4sf
) __A
, __B
,
11948 _MM_FROUND_CUR_DIRECTION
);
11951 extern __inline __m512
11952 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11953 _mm512_cvtepi32_ps (__m512i __A
)
11955 return (__m512
) __builtin_ia32_cvtdq2ps512_mask ((__v16si
) __A
,
11957 _mm512_undefined_ps (),
11959 _MM_FROUND_CUR_DIRECTION
);
11962 extern __inline __m512
11963 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11964 _mm512_mask_cvtepi32_ps (__m512 __W
, __mmask16 __U
, __m512i __A
)
11966 return (__m512
) __builtin_ia32_cvtdq2ps512_mask ((__v16si
) __A
,
11969 _MM_FROUND_CUR_DIRECTION
);
11972 extern __inline __m512
11973 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11974 _mm512_maskz_cvtepi32_ps (__mmask16 __U
, __m512i __A
)
11976 return (__m512
) __builtin_ia32_cvtdq2ps512_mask ((__v16si
) __A
,
11978 _mm512_setzero_ps (),
11980 _MM_FROUND_CUR_DIRECTION
);
11983 extern __inline __m512
11984 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11985 _mm512_cvtepu32_ps (__m512i __A
)
11987 return (__m512
) __builtin_ia32_cvtudq2ps512_mask ((__v16si
) __A
,
11989 _mm512_undefined_ps (),
11991 _MM_FROUND_CUR_DIRECTION
);
11994 extern __inline __m512
11995 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11996 _mm512_mask_cvtepu32_ps (__m512 __W
, __mmask16 __U
, __m512i __A
)
11998 return (__m512
) __builtin_ia32_cvtudq2ps512_mask ((__v16si
) __A
,
12001 _MM_FROUND_CUR_DIRECTION
);
12004 extern __inline __m512
12005 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12006 _mm512_maskz_cvtepu32_ps (__mmask16 __U
, __m512i __A
)
12008 return (__m512
) __builtin_ia32_cvtudq2ps512_mask ((__v16si
) __A
,
12010 _mm512_setzero_ps (),
12012 _MM_FROUND_CUR_DIRECTION
);
12015 #ifdef __OPTIMIZE__
12016 extern __inline __m512d
12017 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12018 _mm512_fixupimm_pd (__m512d __A
, __m512d __B
, __m512i __C
, const int __imm
)
12020 return (__m512d
) __builtin_ia32_fixupimmpd512_mask ((__v8df
) __A
,
12025 _MM_FROUND_CUR_DIRECTION
);
12028 extern __inline __m512d
12029 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12030 _mm512_mask_fixupimm_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
12031 __m512i __C
, const int __imm
)
12033 return (__m512d
) __builtin_ia32_fixupimmpd512_mask ((__v8df
) __A
,
12038 _MM_FROUND_CUR_DIRECTION
);
12041 extern __inline __m512d
12042 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12043 _mm512_maskz_fixupimm_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
12044 __m512i __C
, const int __imm
)
12046 return (__m512d
) __builtin_ia32_fixupimmpd512_maskz ((__v8df
) __A
,
12051 _MM_FROUND_CUR_DIRECTION
);
12054 extern __inline __m512
12055 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12056 _mm512_fixupimm_ps (__m512 __A
, __m512 __B
, __m512i __C
, const int __imm
)
12058 return (__m512
) __builtin_ia32_fixupimmps512_mask ((__v16sf
) __A
,
12063 _MM_FROUND_CUR_DIRECTION
);
12066 extern __inline __m512
12067 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12068 _mm512_mask_fixupimm_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
12069 __m512i __C
, const int __imm
)
12071 return (__m512
) __builtin_ia32_fixupimmps512_mask ((__v16sf
) __A
,
12076 _MM_FROUND_CUR_DIRECTION
);
12079 extern __inline __m512
12080 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12081 _mm512_maskz_fixupimm_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
12082 __m512i __C
, const int __imm
)
12084 return (__m512
) __builtin_ia32_fixupimmps512_maskz ((__v16sf
) __A
,
12089 _MM_FROUND_CUR_DIRECTION
);
12092 extern __inline __m128d
12093 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12094 _mm_fixupimm_sd (__m128d __A
, __m128d __B
, __m128i __C
, const int __imm
)
12096 return (__m128d
) __builtin_ia32_fixupimmsd_mask ((__v2df
) __A
,
12098 (__v2di
) __C
, __imm
,
12100 _MM_FROUND_CUR_DIRECTION
);
12103 extern __inline __m128d
12104 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12105 _mm_mask_fixupimm_sd (__m128d __A
, __mmask8 __U
, __m128d __B
,
12106 __m128i __C
, const int __imm
)
12108 return (__m128d
) __builtin_ia32_fixupimmsd_mask ((__v2df
) __A
,
12110 (__v2di
) __C
, __imm
,
12112 _MM_FROUND_CUR_DIRECTION
);
12115 extern __inline __m128d
12116 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12117 _mm_maskz_fixupimm_sd (__mmask8 __U
, __m128d __A
, __m128d __B
,
12118 __m128i __C
, const int __imm
)
12120 return (__m128d
) __builtin_ia32_fixupimmsd_maskz ((__v2df
) __A
,
12125 _MM_FROUND_CUR_DIRECTION
);
12128 extern __inline __m128
12129 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12130 _mm_fixupimm_ss (__m128 __A
, __m128 __B
, __m128i __C
, const int __imm
)
12132 return (__m128
) __builtin_ia32_fixupimmss_mask ((__v4sf
) __A
,
12134 (__v4si
) __C
, __imm
,
12136 _MM_FROUND_CUR_DIRECTION
);
12139 extern __inline __m128
12140 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12141 _mm_mask_fixupimm_ss (__m128 __A
, __mmask8 __U
, __m128 __B
,
12142 __m128i __C
, const int __imm
)
12144 return (__m128
) __builtin_ia32_fixupimmss_mask ((__v4sf
) __A
,
12146 (__v4si
) __C
, __imm
,
12148 _MM_FROUND_CUR_DIRECTION
);
12151 extern __inline __m128
12152 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12153 _mm_maskz_fixupimm_ss (__mmask8 __U
, __m128 __A
, __m128 __B
,
12154 __m128i __C
, const int __imm
)
12156 return (__m128
) __builtin_ia32_fixupimmss_maskz ((__v4sf
) __A
,
12158 (__v4si
) __C
, __imm
,
12160 _MM_FROUND_CUR_DIRECTION
);
12163 #define _mm512_fixupimm_pd(X, Y, Z, C) \
12164 ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X), \
12165 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
12166 (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
12168 #define _mm512_mask_fixupimm_pd(X, U, Y, Z, C) \
12169 ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X), \
12170 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
12171 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12173 #define _mm512_maskz_fixupimm_pd(U, X, Y, Z, C) \
12174 ((__m512d)__builtin_ia32_fixupimmpd512_maskz ((__v8df)(__m512d)(X), \
12175 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
12176 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12178 #define _mm512_fixupimm_ps(X, Y, Z, C) \
12179 ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X), \
12180 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
12181 (__mmask16)(-1), _MM_FROUND_CUR_DIRECTION))
12183 #define _mm512_mask_fixupimm_ps(X, U, Y, Z, C) \
12184 ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X), \
12185 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
12186 (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
12188 #define _mm512_maskz_fixupimm_ps(U, X, Y, Z, C) \
12189 ((__m512)__builtin_ia32_fixupimmps512_maskz ((__v16sf)(__m512)(X), \
12190 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
12191 (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
12193 #define _mm_fixupimm_sd(X, Y, Z, C) \
12194 ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X), \
12195 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
12196 (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
12198 #define _mm_mask_fixupimm_sd(X, U, Y, Z, C) \
12199 ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X), \
12200 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
12201 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12203 #define _mm_maskz_fixupimm_sd(U, X, Y, Z, C) \
12204 ((__m128d)__builtin_ia32_fixupimmsd_maskz ((__v2df)(__m128d)(X), \
12205 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
12206 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12208 #define _mm_fixupimm_ss(X, Y, Z, C) \
12209 ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X), \
12210 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
12211 (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
12213 #define _mm_mask_fixupimm_ss(X, U, Y, Z, C) \
12214 ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X), \
12215 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
12216 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12218 #define _mm_maskz_fixupimm_ss(U, X, Y, Z, C) \
12219 ((__m128)__builtin_ia32_fixupimmss_maskz ((__v4sf)(__m128)(X), \
12220 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
12221 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12225 extern __inline
unsigned long long
12226 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12227 _mm_cvtss_u64 (__m128 __A
)
12229 return (unsigned long long) __builtin_ia32_vcvtss2usi64 ((__v4sf
)
12231 _MM_FROUND_CUR_DIRECTION
);
12234 extern __inline
unsigned long long
12235 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12236 _mm_cvttss_u64 (__m128 __A
)
12238 return (unsigned long long) __builtin_ia32_vcvttss2usi64 ((__v4sf
)
12240 _MM_FROUND_CUR_DIRECTION
);
12243 extern __inline
long long
12244 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12245 _mm_cvttss_i64 (__m128 __A
)
12247 return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf
) __A
,
12248 _MM_FROUND_CUR_DIRECTION
);
12250 #endif /* __x86_64__ */
12252 extern __inline
unsigned
12253 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12254 _mm_cvtss_u32 (__m128 __A
)
12256 return (unsigned) __builtin_ia32_vcvtss2usi32 ((__v4sf
) __A
,
12257 _MM_FROUND_CUR_DIRECTION
);
12260 extern __inline
unsigned
12261 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12262 _mm_cvttss_u32 (__m128 __A
)
12264 return (unsigned) __builtin_ia32_vcvttss2usi32 ((__v4sf
) __A
,
12265 _MM_FROUND_CUR_DIRECTION
);
12268 extern __inline
int
12269 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12270 _mm_cvttss_i32 (__m128 __A
)
12272 return (int) __builtin_ia32_vcvttss2si32 ((__v4sf
) __A
,
12273 _MM_FROUND_CUR_DIRECTION
);
12277 extern __inline
unsigned long long
12278 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12279 _mm_cvtsd_u64 (__m128d __A
)
12281 return (unsigned long long) __builtin_ia32_vcvtsd2usi64 ((__v2df
)
12283 _MM_FROUND_CUR_DIRECTION
);
12286 extern __inline
unsigned long long
12287 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12288 _mm_cvttsd_u64 (__m128d __A
)
12290 return (unsigned long long) __builtin_ia32_vcvttsd2usi64 ((__v2df
)
12292 _MM_FROUND_CUR_DIRECTION
);
12295 extern __inline
long long
12296 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12297 _mm_cvttsd_i64 (__m128d __A
)
12299 return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df
) __A
,
12300 _MM_FROUND_CUR_DIRECTION
);
12302 #endif /* __x86_64__ */
12304 extern __inline
unsigned
12305 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12306 _mm_cvtsd_u32 (__m128d __A
)
12308 return (unsigned) __builtin_ia32_vcvtsd2usi32 ((__v2df
) __A
,
12309 _MM_FROUND_CUR_DIRECTION
);
12312 extern __inline
unsigned
12313 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12314 _mm_cvttsd_u32 (__m128d __A
)
12316 return (unsigned) __builtin_ia32_vcvttsd2usi32 ((__v2df
) __A
,
12317 _MM_FROUND_CUR_DIRECTION
);
12320 extern __inline
int
12321 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12322 _mm_cvttsd_i32 (__m128d __A
)
12324 return (int) __builtin_ia32_vcvttsd2si32 ((__v2df
) __A
,
12325 _MM_FROUND_CUR_DIRECTION
);
12328 extern __inline __m512d
12329 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12330 _mm512_cvtps_pd (__m256 __A
)
12332 return (__m512d
) __builtin_ia32_cvtps2pd512_mask ((__v8sf
) __A
,
12334 _mm512_undefined_pd (),
12336 _MM_FROUND_CUR_DIRECTION
);
12339 extern __inline __m512d
12340 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12341 _mm512_mask_cvtps_pd (__m512d __W
, __mmask8 __U
, __m256 __A
)
12343 return (__m512d
) __builtin_ia32_cvtps2pd512_mask ((__v8sf
) __A
,
12346 _MM_FROUND_CUR_DIRECTION
);
12349 extern __inline __m512d
12350 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12351 _mm512_maskz_cvtps_pd (__mmask8 __U
, __m256 __A
)
12353 return (__m512d
) __builtin_ia32_cvtps2pd512_mask ((__v8sf
) __A
,
12355 _mm512_setzero_pd (),
12357 _MM_FROUND_CUR_DIRECTION
);
12360 extern __inline __m512
12361 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12362 _mm512_cvtph_ps (__m256i __A
)
12364 return (__m512
) __builtin_ia32_vcvtph2ps512_mask ((__v16hi
) __A
,
12366 _mm512_undefined_ps (),
12368 _MM_FROUND_CUR_DIRECTION
);
12371 extern __inline __m512
12372 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12373 _mm512_mask_cvtph_ps (__m512 __W
, __mmask16 __U
, __m256i __A
)
12375 return (__m512
) __builtin_ia32_vcvtph2ps512_mask ((__v16hi
) __A
,
12378 _MM_FROUND_CUR_DIRECTION
);
12381 extern __inline __m512
12382 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12383 _mm512_maskz_cvtph_ps (__mmask16 __U
, __m256i __A
)
12385 return (__m512
) __builtin_ia32_vcvtph2ps512_mask ((__v16hi
) __A
,
12387 _mm512_setzero_ps (),
12389 _MM_FROUND_CUR_DIRECTION
);
12392 extern __inline __m256
12393 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12394 _mm512_cvtpd_ps (__m512d __A
)
12396 return (__m256
) __builtin_ia32_cvtpd2ps512_mask ((__v8df
) __A
,
12398 _mm256_undefined_ps (),
12400 _MM_FROUND_CUR_DIRECTION
);
12403 extern __inline __m256
12404 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12405 _mm512_mask_cvtpd_ps (__m256 __W
, __mmask8 __U
, __m512d __A
)
12407 return (__m256
) __builtin_ia32_cvtpd2ps512_mask ((__v8df
) __A
,
12410 _MM_FROUND_CUR_DIRECTION
);
12413 extern __inline __m256
12414 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12415 _mm512_maskz_cvtpd_ps (__mmask8 __U
, __m512d __A
)
12417 return (__m256
) __builtin_ia32_cvtpd2ps512_mask ((__v8df
) __A
,
12419 _mm256_setzero_ps (),
12421 _MM_FROUND_CUR_DIRECTION
);
12424 #ifdef __OPTIMIZE__
12425 extern __inline __m512
12426 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12427 _mm512_getexp_ps (__m512 __A
)
12429 return (__m512
) __builtin_ia32_getexpps512_mask ((__v16sf
) __A
,
12431 _mm512_undefined_ps (),
12433 _MM_FROUND_CUR_DIRECTION
);
12436 extern __inline __m512
12437 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12438 _mm512_mask_getexp_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
12440 return (__m512
) __builtin_ia32_getexpps512_mask ((__v16sf
) __A
,
12443 _MM_FROUND_CUR_DIRECTION
);
12446 extern __inline __m512
12447 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12448 _mm512_maskz_getexp_ps (__mmask16 __U
, __m512 __A
)
12450 return (__m512
) __builtin_ia32_getexpps512_mask ((__v16sf
) __A
,
12452 _mm512_setzero_ps (),
12454 _MM_FROUND_CUR_DIRECTION
);
12457 extern __inline __m512d
12458 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12459 _mm512_getexp_pd (__m512d __A
)
12461 return (__m512d
) __builtin_ia32_getexppd512_mask ((__v8df
) __A
,
12463 _mm512_undefined_pd (),
12465 _MM_FROUND_CUR_DIRECTION
);
12468 extern __inline __m512d
12469 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12470 _mm512_mask_getexp_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
12472 return (__m512d
) __builtin_ia32_getexppd512_mask ((__v8df
) __A
,
12475 _MM_FROUND_CUR_DIRECTION
);
12478 extern __inline __m512d
12479 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12480 _mm512_maskz_getexp_pd (__mmask8 __U
, __m512d __A
)
12482 return (__m512d
) __builtin_ia32_getexppd512_mask ((__v8df
) __A
,
12484 _mm512_setzero_pd (),
12486 _MM_FROUND_CUR_DIRECTION
);
12489 extern __inline __m128
12490 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12491 _mm_getexp_ss (__m128 __A
, __m128 __B
)
12493 return (__m128
) __builtin_ia32_getexpss128_round ((__v4sf
) __A
,
12495 _MM_FROUND_CUR_DIRECTION
);
12498 extern __inline __m128d
12499 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12500 _mm_getexp_sd (__m128d __A
, __m128d __B
)
12502 return (__m128d
) __builtin_ia32_getexpsd128_round ((__v2df
) __A
,
12504 _MM_FROUND_CUR_DIRECTION
);
12507 extern __inline __m512d
12508 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12509 _mm512_getmant_pd (__m512d __A
, _MM_MANTISSA_NORM_ENUM __B
,
12510 _MM_MANTISSA_SIGN_ENUM __C
)
12512 return (__m512d
) __builtin_ia32_getmantpd512_mask ((__v8df
) __A
,
12514 _mm512_undefined_pd (),
12516 _MM_FROUND_CUR_DIRECTION
);
12519 extern __inline __m512d
12520 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12521 _mm512_mask_getmant_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
12522 _MM_MANTISSA_NORM_ENUM __B
, _MM_MANTISSA_SIGN_ENUM __C
)
12524 return (__m512d
) __builtin_ia32_getmantpd512_mask ((__v8df
) __A
,
12527 _MM_FROUND_CUR_DIRECTION
);
12530 extern __inline __m512d
12531 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12532 _mm512_maskz_getmant_pd (__mmask8 __U
, __m512d __A
,
12533 _MM_MANTISSA_NORM_ENUM __B
, _MM_MANTISSA_SIGN_ENUM __C
)
12535 return (__m512d
) __builtin_ia32_getmantpd512_mask ((__v8df
) __A
,
12538 _mm512_setzero_pd (),
12540 _MM_FROUND_CUR_DIRECTION
);
12543 extern __inline __m512
12544 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12545 _mm512_getmant_ps (__m512 __A
, _MM_MANTISSA_NORM_ENUM __B
,
12546 _MM_MANTISSA_SIGN_ENUM __C
)
12548 return (__m512
) __builtin_ia32_getmantps512_mask ((__v16sf
) __A
,
12550 _mm512_undefined_ps (),
12552 _MM_FROUND_CUR_DIRECTION
);
12555 extern __inline __m512
12556 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12557 _mm512_mask_getmant_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
12558 _MM_MANTISSA_NORM_ENUM __B
, _MM_MANTISSA_SIGN_ENUM __C
)
12560 return (__m512
) __builtin_ia32_getmantps512_mask ((__v16sf
) __A
,
12562 (__v16sf
) __W
, __U
,
12563 _MM_FROUND_CUR_DIRECTION
);
12566 extern __inline __m512
12567 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12568 _mm512_maskz_getmant_ps (__mmask16 __U
, __m512 __A
,
12569 _MM_MANTISSA_NORM_ENUM __B
, _MM_MANTISSA_SIGN_ENUM __C
)
12571 return (__m512
) __builtin_ia32_getmantps512_mask ((__v16sf
) __A
,
12574 _mm512_setzero_ps (),
12576 _MM_FROUND_CUR_DIRECTION
);
12579 extern __inline __m128d
12580 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12581 _mm_getmant_sd (__m128d __A
, __m128d __B
, _MM_MANTISSA_NORM_ENUM __C
,
12582 _MM_MANTISSA_SIGN_ENUM __D
)
12584 return (__m128d
) __builtin_ia32_getmantsd_round ((__v2df
) __A
,
12587 _MM_FROUND_CUR_DIRECTION
);
12590 extern __inline __m128
12591 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12592 _mm_getmant_ss (__m128 __A
, __m128 __B
, _MM_MANTISSA_NORM_ENUM __C
,
12593 _MM_MANTISSA_SIGN_ENUM __D
)
12595 return (__m128
) __builtin_ia32_getmantss_round ((__v4sf
) __A
,
12598 _MM_FROUND_CUR_DIRECTION
);
12602 #define _mm512_getmant_pd(X, B, C) \
12603 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
12604 (int)(((C)<<2) | (B)), \
12605 (__v8df)_mm512_undefined_pd(), \
12607 _MM_FROUND_CUR_DIRECTION))
12609 #define _mm512_mask_getmant_pd(W, U, X, B, C) \
12610 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
12611 (int)(((C)<<2) | (B)), \
12612 (__v8df)(__m512d)(W), \
12614 _MM_FROUND_CUR_DIRECTION))
12616 #define _mm512_maskz_getmant_pd(U, X, B, C) \
12617 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
12618 (int)(((C)<<2) | (B)), \
12619 (__v8df)_mm512_setzero_pd(), \
12621 _MM_FROUND_CUR_DIRECTION))
12622 #define _mm512_getmant_ps(X, B, C) \
12623 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
12624 (int)(((C)<<2) | (B)), \
12625 (__v16sf)_mm512_undefined_ps(), \
12627 _MM_FROUND_CUR_DIRECTION))
12629 #define _mm512_mask_getmant_ps(W, U, X, B, C) \
12630 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
12631 (int)(((C)<<2) | (B)), \
12632 (__v16sf)(__m512)(W), \
12634 _MM_FROUND_CUR_DIRECTION))
12636 #define _mm512_maskz_getmant_ps(U, X, B, C) \
12637 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
12638 (int)(((C)<<2) | (B)), \
12639 (__v16sf)_mm512_setzero_ps(), \
12641 _MM_FROUND_CUR_DIRECTION))
12642 #define _mm_getmant_sd(X, Y, C, D) \
12643 ((__m128d)__builtin_ia32_getmantsd_round ((__v2df)(__m128d)(X), \
12644 (__v2df)(__m128d)(Y), \
12645 (int)(((D)<<2) | (C)), \
12646 _MM_FROUND_CUR_DIRECTION))
12648 #define _mm_getmant_ss(X, Y, C, D) \
12649 ((__m128)__builtin_ia32_getmantss_round ((__v4sf)(__m128)(X), \
12650 (__v4sf)(__m128)(Y), \
12651 (int)(((D)<<2) | (C)), \
12652 _MM_FROUND_CUR_DIRECTION))
12654 #define _mm_getexp_ss(A, B) \
12655 ((__m128)__builtin_ia32_getexpss128_mask((__v4sf)(__m128)(A), (__v4sf)(__m128)(B), \
12656 _MM_FROUND_CUR_DIRECTION))
12658 #define _mm_getexp_sd(A, B) \
12659 ((__m128d)__builtin_ia32_getexpsd128_mask((__v2df)(__m128d)(A), (__v2df)(__m128d)(B),\
12660 _MM_FROUND_CUR_DIRECTION))
12662 #define _mm512_getexp_ps(A) \
12663 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
12664 (__v16sf)_mm512_undefined_ps(), (__mmask16)-1, _MM_FROUND_CUR_DIRECTION))
12666 #define _mm512_mask_getexp_ps(W, U, A) \
12667 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
12668 (__v16sf)(__m512)(W), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
12670 #define _mm512_maskz_getexp_ps(U, A) \
12671 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
12672 (__v16sf)_mm512_setzero_ps(), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
12674 #define _mm512_getexp_pd(A) \
12675 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
12676 (__v8df)_mm512_undefined_pd(), (__mmask8)-1, _MM_FROUND_CUR_DIRECTION))
12678 #define _mm512_mask_getexp_pd(W, U, A) \
12679 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
12680 (__v8df)(__m512d)(W), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12682 #define _mm512_maskz_getexp_pd(U, A) \
12683 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
12684 (__v8df)_mm512_setzero_pd(), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12687 #ifdef __OPTIMIZE__
12688 extern __inline __m512
12689 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12690 _mm512_roundscale_ps (__m512 __A
, const int __imm
)
12692 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
, __imm
,
12694 _mm512_undefined_ps (),
12696 _MM_FROUND_CUR_DIRECTION
);
12699 extern __inline __m512
12700 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12701 _mm512_mask_roundscale_ps (__m512 __A
, __mmask16 __B
, __m512 __C
,
12704 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __C
, __imm
,
12707 _MM_FROUND_CUR_DIRECTION
);
12710 extern __inline __m512
12711 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12712 _mm512_maskz_roundscale_ps (__mmask16 __A
, __m512 __B
, const int __imm
)
12714 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __B
,
12717 _mm512_setzero_ps (),
12719 _MM_FROUND_CUR_DIRECTION
);
12722 extern __inline __m512d
12723 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12724 _mm512_roundscale_pd (__m512d __A
, const int __imm
)
12726 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
, __imm
,
12728 _mm512_undefined_pd (),
12730 _MM_FROUND_CUR_DIRECTION
);
12733 extern __inline __m512d
12734 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12735 _mm512_mask_roundscale_pd (__m512d __A
, __mmask8 __B
, __m512d __C
,
12738 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __C
, __imm
,
12741 _MM_FROUND_CUR_DIRECTION
);
12744 extern __inline __m512d
12745 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12746 _mm512_maskz_roundscale_pd (__mmask8 __A
, __m512d __B
, const int __imm
)
12748 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __B
,
12751 _mm512_setzero_pd (),
12753 _MM_FROUND_CUR_DIRECTION
);
12756 extern __inline __m128
12757 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12758 _mm_roundscale_ss (__m128 __A
, __m128 __B
, const int __imm
)
12760 return (__m128
) __builtin_ia32_rndscaless_round ((__v4sf
) __A
,
12761 (__v4sf
) __B
, __imm
,
12762 _MM_FROUND_CUR_DIRECTION
);
12765 extern __inline __m128d
12766 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12767 _mm_roundscale_sd (__m128d __A
, __m128d __B
, const int __imm
)
12769 return (__m128d
) __builtin_ia32_rndscalesd_round ((__v2df
) __A
,
12770 (__v2df
) __B
, __imm
,
12771 _MM_FROUND_CUR_DIRECTION
);
12775 #define _mm512_roundscale_ps(A, B) \
12776 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(A), (int)(B),\
12777 (__v16sf)_mm512_undefined_ps(), (__mmask16)(-1), _MM_FROUND_CUR_DIRECTION))
12778 #define _mm512_mask_roundscale_ps(A, B, C, D) \
12779 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(C), \
12781 (__v16sf)(__m512)(A), \
12782 (__mmask16)(B), _MM_FROUND_CUR_DIRECTION))
12783 #define _mm512_maskz_roundscale_ps(A, B, C) \
12784 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(B), \
12786 (__v16sf)_mm512_setzero_ps(),\
12787 (__mmask16)(A), _MM_FROUND_CUR_DIRECTION))
12788 #define _mm512_roundscale_pd(A, B) \
12789 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(A), (int)(B),\
12790 (__v8df)_mm512_undefined_pd(), (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
12791 #define _mm512_mask_roundscale_pd(A, B, C, D) \
12792 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(C), \
12794 (__v8df)(__m512d)(A), \
12795 (__mmask8)(B), _MM_FROUND_CUR_DIRECTION))
12796 #define _mm512_maskz_roundscale_pd(A, B, C) \
12797 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(B), \
12799 (__v8df)_mm512_setzero_pd(),\
12800 (__mmask8)(A), _MM_FROUND_CUR_DIRECTION))
12801 #define _mm_roundscale_ss(A, B, C) \
12802 ((__m128) __builtin_ia32_rndscaless_round ((__v4sf)(__m128)(A), \
12803 (__v4sf)(__m128)(B), (int)(C), _MM_FROUND_CUR_DIRECTION))
12804 #define _mm_roundscale_sd(A, B, C) \
12805 ((__m128d) __builtin_ia32_rndscalesd_round ((__v2df)(__m128d)(A), \
12806 (__v2df)(__m128d)(B), (int)(C), _MM_FROUND_CUR_DIRECTION))
12809 #ifdef __OPTIMIZE__
12810 extern __inline __mmask8
12811 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12812 _mm512_cmp_pd_mask (__m512d __X
, __m512d __Y
, const int __P
)
12814 return (__mmask8
) __builtin_ia32_cmppd512_mask ((__v8df
) __X
,
12817 _MM_FROUND_CUR_DIRECTION
);
12820 extern __inline __mmask16
12821 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12822 _mm512_cmp_ps_mask (__m512 __X
, __m512 __Y
, const int __P
)
12824 return (__mmask16
) __builtin_ia32_cmpps512_mask ((__v16sf
) __X
,
12825 (__v16sf
) __Y
, __P
,
12827 _MM_FROUND_CUR_DIRECTION
);
12830 extern __inline __mmask16
12831 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12832 _mm512_mask_cmp_ps_mask (__mmask16 __U
, __m512 __X
, __m512 __Y
, const int __P
)
12834 return (__mmask16
) __builtin_ia32_cmpps512_mask ((__v16sf
) __X
,
12835 (__v16sf
) __Y
, __P
,
12837 _MM_FROUND_CUR_DIRECTION
);
12840 extern __inline __mmask8
12841 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12842 _mm512_mask_cmp_pd_mask (__mmask8 __U
, __m512d __X
, __m512d __Y
, const int __P
)
12844 return (__mmask8
) __builtin_ia32_cmppd512_mask ((__v8df
) __X
,
12847 _MM_FROUND_CUR_DIRECTION
);
12850 extern __inline __mmask8
12851 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12852 _mm_cmp_sd_mask (__m128d __X
, __m128d __Y
, const int __P
)
12854 return (__mmask8
) __builtin_ia32_cmpsd_mask ((__v2df
) __X
,
12857 _MM_FROUND_CUR_DIRECTION
);
12860 extern __inline __mmask8
12861 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12862 _mm_mask_cmp_sd_mask (__mmask8 __M
, __m128d __X
, __m128d __Y
, const int __P
)
12864 return (__mmask8
) __builtin_ia32_cmpsd_mask ((__v2df
) __X
,
12867 _MM_FROUND_CUR_DIRECTION
);
12870 extern __inline __mmask8
12871 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12872 _mm_cmp_ss_mask (__m128 __X
, __m128 __Y
, const int __P
)
12874 return (__mmask8
) __builtin_ia32_cmpss_mask ((__v4sf
) __X
,
12877 _MM_FROUND_CUR_DIRECTION
);
12880 extern __inline __mmask8
12881 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12882 _mm_mask_cmp_ss_mask (__mmask8 __M
, __m128 __X
, __m128 __Y
, const int __P
)
12884 return (__mmask8
) __builtin_ia32_cmpss_mask ((__v4sf
) __X
,
12887 _MM_FROUND_CUR_DIRECTION
);
12891 #define _mm512_cmp_pd_mask(X, Y, P) \
12892 ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X), \
12893 (__v8df)(__m512d)(Y), (int)(P),\
12894 (__mmask8)-1,_MM_FROUND_CUR_DIRECTION))
12896 #define _mm512_cmp_ps_mask(X, Y, P) \
12897 ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X), \
12898 (__v16sf)(__m512)(Y), (int)(P),\
12899 (__mmask16)-1,_MM_FROUND_CUR_DIRECTION))
12901 #define _mm512_mask_cmp_pd_mask(M, X, Y, P) \
12902 ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X), \
12903 (__v8df)(__m512d)(Y), (int)(P),\
12904 (__mmask8)M, _MM_FROUND_CUR_DIRECTION))
12906 #define _mm512_mask_cmp_ps_mask(M, X, Y, P) \
12907 ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X), \
12908 (__v16sf)(__m512)(Y), (int)(P),\
12909 (__mmask16)M,_MM_FROUND_CUR_DIRECTION))
12911 #define _mm_cmp_sd_mask(X, Y, P) \
12912 ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X), \
12913 (__v2df)(__m128d)(Y), (int)(P),\
12914 (__mmask8)-1,_MM_FROUND_CUR_DIRECTION))
12916 #define _mm_mask_cmp_sd_mask(M, X, Y, P) \
12917 ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X), \
12918 (__v2df)(__m128d)(Y), (int)(P),\
12919 M,_MM_FROUND_CUR_DIRECTION))
12921 #define _mm_cmp_ss_mask(X, Y, P) \
12922 ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X), \
12923 (__v4sf)(__m128)(Y), (int)(P), \
12924 (__mmask8)-1,_MM_FROUND_CUR_DIRECTION))
12926 #define _mm_mask_cmp_ss_mask(M, X, Y, P) \
12927 ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X), \
12928 (__v4sf)(__m128)(Y), (int)(P), \
12929 M,_MM_FROUND_CUR_DIRECTION))
12932 extern __inline __mmask16
12933 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12934 _mm512_kmov (__mmask16 __A
)
12936 return __builtin_ia32_kmov16 (__A
);
12939 extern __inline __m512
12940 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12941 _mm512_castpd_ps (__m512d __A
)
12943 return (__m512
) (__A
);
12946 extern __inline __m512i
12947 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12948 _mm512_castpd_si512 (__m512d __A
)
12950 return (__m512i
) (__A
);
12953 extern __inline __m512d
12954 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12955 _mm512_castps_pd (__m512 __A
)
12957 return (__m512d
) (__A
);
12960 extern __inline __m512i
12961 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12962 _mm512_castps_si512 (__m512 __A
)
12964 return (__m512i
) (__A
);
12967 extern __inline __m512
12968 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12969 _mm512_castsi512_ps (__m512i __A
)
12971 return (__m512
) (__A
);
12974 extern __inline __m512d
12975 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12976 _mm512_castsi512_pd (__m512i __A
)
12978 return (__m512d
) (__A
);
12981 extern __inline __m128d
12982 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12983 _mm512_castpd512_pd128 (__m512d __A
)
12985 return (__m128d
)_mm512_extractf32x4_ps((__m512
)__A
, 0);
12988 extern __inline __m128
12989 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12990 _mm512_castps512_ps128 (__m512 __A
)
12992 return _mm512_extractf32x4_ps(__A
, 0);
12995 extern __inline __m128i
12996 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12997 _mm512_castsi512_si128 (__m512i __A
)
12999 return (__m128i
)_mm512_extracti32x4_epi32((__m512i
)__A
, 0);
13002 extern __inline __m256d
13003 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13004 _mm512_castpd512_pd256 (__m512d __A
)
13006 return _mm512_extractf64x4_pd(__A
, 0);
13009 extern __inline __m256
13010 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13011 _mm512_castps512_ps256 (__m512 __A
)
13013 return (__m256
)_mm512_extractf64x4_pd((__m512d
)__A
, 0);
13016 extern __inline __m256i
13017 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13018 _mm512_castsi512_si256 (__m512i __A
)
13020 return (__m256i
)_mm512_extractf64x4_pd((__m512d
)__A
, 0);
13023 extern __inline __m512d
13024 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13025 _mm512_castpd128_pd512 (__m128d __A
)
13027 return (__m512d
) __builtin_ia32_pd512_pd((__m128d
)__A
);
13030 extern __inline __m512
13031 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13032 _mm512_castps128_ps512 (__m128 __A
)
13034 return (__m512
) __builtin_ia32_ps512_ps((__m128
)__A
);
13037 extern __inline __m512i
13038 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13039 _mm512_castsi128_si512 (__m128i __A
)
13041 return (__m512i
) __builtin_ia32_si512_si((__v4si
)__A
);
13044 extern __inline __m512d
13045 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13046 _mm512_castpd256_pd512 (__m256d __A
)
13048 return __builtin_ia32_pd512_256pd (__A
);
13051 extern __inline __m512
13052 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13053 _mm512_castps256_ps512 (__m256 __A
)
13055 return __builtin_ia32_ps512_256ps (__A
);
13058 extern __inline __m512i
13059 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13060 _mm512_castsi256_si512 (__m256i __A
)
13062 return (__m512i
)__builtin_ia32_si512_256si ((__v8si
)__A
);
13065 extern __inline __mmask16
13066 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13067 _mm512_cmpeq_epu32_mask (__m512i __A
, __m512i __B
)
13069 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __A
,
13074 extern __inline __mmask16
13075 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13076 _mm512_mask_cmpeq_epu32_mask (__mmask16 __U
, __m512i __A
, __m512i __B
)
13078 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __A
,
13079 (__v16si
) __B
, 0, __U
);
13082 extern __inline __mmask8
13083 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13084 _mm512_mask_cmpeq_epu64_mask (__mmask8 __U
, __m512i __A
, __m512i __B
)
13086 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __A
,
13087 (__v8di
) __B
, 0, __U
);
13090 extern __inline __mmask8
13091 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13092 _mm512_cmpeq_epu64_mask (__m512i __A
, __m512i __B
)
13094 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __A
,
13099 extern __inline __mmask16
13100 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13101 _mm512_cmpgt_epu32_mask (__m512i __A
, __m512i __B
)
13103 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __A
,
13108 extern __inline __mmask16
13109 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13110 _mm512_mask_cmpgt_epu32_mask (__mmask16 __U
, __m512i __A
, __m512i __B
)
13112 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __A
,
13113 (__v16si
) __B
, 6, __U
);
13116 extern __inline __mmask8
13117 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13118 _mm512_mask_cmpgt_epu64_mask (__mmask8 __U
, __m512i __A
, __m512i __B
)
13120 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __A
,
13121 (__v8di
) __B
, 6, __U
);
13124 extern __inline __mmask8
13125 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13126 _mm512_cmpgt_epu64_mask (__m512i __A
, __m512i __B
)
13128 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __A
,
13133 #ifdef __DISABLE_AVX512F__
13134 #undef __DISABLE_AVX512F__
13135 #pragma GCC pop_options
13136 #endif /* __DISABLE_AVX512F__ */
13138 #endif /* _AVX512FINTRIN_H_INCLUDED */