1 /* Copyright (C) 2013-2014 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 int __v16si
__attribute__ ((__vector_size__ (64)));
43 /* The Intel API is flexible enough that we must allow aliasing with other
44 vector types, and their scalar components. */
45 typedef float __m512
__attribute__ ((__vector_size__ (64), __may_alias__
));
46 typedef long long __m512i
__attribute__ ((__vector_size__ (64), __may_alias__
));
47 typedef double __m512d
__attribute__ ((__vector_size__ (64), __may_alias__
));
49 typedef unsigned char __mmask8
;
50 typedef unsigned short __mmask16
;
52 /* Rounding mode macros. */
53 #define _MM_FROUND_TO_NEAREST_INT 0x00
54 #define _MM_FROUND_TO_NEG_INF 0x01
55 #define _MM_FROUND_TO_POS_INF 0x02
56 #define _MM_FROUND_TO_ZERO 0x03
57 #define _MM_FROUND_CUR_DIRECTION 0x04
58 #define _MM_FROUND_NO_EXC 0x05
60 extern __inline __m512i
61 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
62 _mm512_set_epi64 (long long __A
, long long __B
, long long __C
,
63 long long __D
, long long __E
, long long __F
,
64 long long __G
, long long __H
)
66 return __extension__ (__m512i
) (__v8di
)
67 { __H
, __G
, __F
, __E
, __D
, __C
, __B
, __A
};
70 /* Create the vector [A B C D E F G H I J K L M N O P]. */
71 extern __inline __m512i
72 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
73 _mm512_set_epi32 (int __A
, int __B
, int __C
, int __D
,
74 int __E
, int __F
, int __G
, int __H
,
75 int __I
, int __J
, int __K
, int __L
,
76 int __M
, int __N
, int __O
, int __P
)
78 return __extension__ (__m512i
)(__v16si
)
79 { __P
, __O
, __N
, __M
, __L
, __K
, __J
, __I
,
80 __H
, __G
, __F
, __E
, __D
, __C
, __B
, __A
};
83 extern __inline __m512d
84 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
85 _mm512_set_pd (double __A
, double __B
, double __C
, double __D
,
86 double __E
, double __F
, double __G
, double __H
)
88 return __extension__ (__m512d
)
89 { __H
, __G
, __F
, __E
, __D
, __C
, __B
, __A
};
92 extern __inline __m512
93 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
94 _mm512_set_ps (float __A
, float __B
, float __C
, float __D
,
95 float __E
, float __F
, float __G
, float __H
,
96 float __I
, float __J
, float __K
, float __L
,
97 float __M
, float __N
, float __O
, float __P
)
99 return __extension__ (__m512
)
100 { __P
, __O
, __N
, __M
, __L
, __K
, __J
, __I
,
101 __H
, __G
, __F
, __E
, __D
, __C
, __B
, __A
};
104 #define _mm512_setr_epi64(e0,e1,e2,e3,e4,e5,e6,e7) \
105 _mm512_set_epi64(e7,e6,e5,e4,e3,e2,e1,e0)
107 #define _mm512_setr_epi32(e0,e1,e2,e3,e4,e5,e6,e7, \
108 e8,e9,e10,e11,e12,e13,e14,e15) \
109 _mm512_set_epi32(e15,e14,e13,e12,e11,e10,e9,e8,e7,e6,e5,e4,e3,e2,e1,e0)
111 #define _mm512_setr_pd(e0,e1,e2,e3,e4,e5,e6,e7) \
112 _mm512_set_pd(e7,e6,e5,e4,e3,e2,e1,e0)
114 #define _mm512_setr_ps(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12,e13,e14,e15) \
115 _mm512_set_ps(e15,e14,e13,e12,e11,e10,e9,e8,e7,e6,e5,e4,e3,e2,e1,e0)
117 extern __inline __m512
118 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
119 _mm512_setzero_ps (void)
121 return __extension__ (__m512
){ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
122 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
125 extern __inline __m512d
126 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
127 _mm512_setzero_pd (void)
129 return __extension__ (__m512d
) { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
132 extern __inline __m512i
133 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
134 _mm512_setzero_si512 (void)
136 return __extension__ (__m512i
)(__v8di
){ 0, 0, 0, 0, 0, 0, 0, 0 };
139 extern __inline __m512d
140 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
141 _mm512_mask_mov_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
143 return (__m512d
) __builtin_ia32_movapd512_mask ((__v8df
) __A
,
148 extern __inline __m512d
149 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
150 _mm512_maskz_mov_pd (__mmask8 __U
, __m512d __A
)
152 return (__m512d
) __builtin_ia32_movapd512_mask ((__v8df
) __A
,
154 _mm512_setzero_pd (),
158 extern __inline __m512
159 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
160 _mm512_mask_mov_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
162 return (__m512
) __builtin_ia32_movaps512_mask ((__v16sf
) __A
,
167 extern __inline __m512
168 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
169 _mm512_maskz_mov_ps (__mmask16 __U
, __m512 __A
)
171 return (__m512
) __builtin_ia32_movaps512_mask ((__v16sf
) __A
,
173 _mm512_setzero_ps (),
177 extern __inline __m512d
178 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
179 _mm512_load_pd (void const *__P
)
181 return *(__m512d
*) __P
;
184 extern __inline __m512d
185 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
186 _mm512_mask_load_pd (__m512d __W
, __mmask8 __U
, void const *__P
)
188 return (__m512d
) __builtin_ia32_loadapd512_mask ((const __v8df
*) __P
,
193 extern __inline __m512d
194 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
195 _mm512_maskz_load_pd (__mmask8 __U
, void const *__P
)
197 return (__m512d
) __builtin_ia32_loadapd512_mask ((const __v8df
*) __P
,
199 _mm512_setzero_pd (),
204 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
205 _mm512_store_pd (void *__P
, __m512d __A
)
207 *(__m512d
*) __P
= __A
;
211 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
212 _mm512_mask_store_pd (void *__P
, __mmask8 __U
, __m512d __A
)
214 __builtin_ia32_storeapd512_mask ((__v8df
*) __P
, (__v8df
) __A
,
218 extern __inline __m512
219 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
220 _mm512_load_ps (void const *__P
)
222 return *(__m512
*) __P
;
225 extern __inline __m512
226 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
227 _mm512_mask_load_ps (__m512 __W
, __mmask16 __U
, void const *__P
)
229 return (__m512
) __builtin_ia32_loadaps512_mask ((const __v16sf
*) __P
,
234 extern __inline __m512
235 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
236 _mm512_maskz_load_ps (__mmask16 __U
, void const *__P
)
238 return (__m512
) __builtin_ia32_loadaps512_mask ((const __v16sf
*) __P
,
240 _mm512_setzero_ps (),
245 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
246 _mm512_store_ps (void *__P
, __m512 __A
)
248 *(__m512
*) __P
= __A
;
252 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
253 _mm512_mask_store_ps (void *__P
, __mmask16 __U
, __m512 __A
)
255 __builtin_ia32_storeaps512_mask ((__v16sf
*) __P
, (__v16sf
) __A
,
259 extern __inline __m512i
260 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
261 _mm512_mask_mov_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
)
263 return (__m512i
) __builtin_ia32_movdqa64_512_mask ((__v8di
) __A
,
268 extern __inline __m512i
269 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
270 _mm512_maskz_mov_epi64 (__mmask8 __U
, __m512i __A
)
272 return (__m512i
) __builtin_ia32_movdqa64_512_mask ((__v8di
) __A
,
274 _mm512_setzero_si512 (),
278 extern __inline __m512i
279 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
280 _mm512_load_epi64 (void const *__P
)
282 return *(__m512i
*) __P
;
285 extern __inline __m512i
286 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
287 _mm512_mask_load_epi64 (__m512i __W
, __mmask8 __U
, void const *__P
)
289 return (__m512i
) __builtin_ia32_movdqa64load512_mask ((const __v8di
*) __P
,
294 extern __inline __m512i
295 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
296 _mm512_maskz_load_epi64 (__mmask8 __U
, void const *__P
)
298 return (__m512i
) __builtin_ia32_movdqa64load512_mask ((const __v8di
*) __P
,
300 _mm512_setzero_si512 (),
305 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
306 _mm512_store_epi64 (void *__P
, __m512i __A
)
308 *(__m512i
*) __P
= __A
;
312 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
313 _mm512_mask_store_epi64 (void *__P
, __mmask8 __U
, __m512i __A
)
315 __builtin_ia32_movdqa64store512_mask ((__v8di
*) __P
, (__v8di
) __A
,
319 extern __inline __m512i
320 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
321 _mm512_mask_mov_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
)
323 return (__m512i
) __builtin_ia32_movdqa32_512_mask ((__v16si
) __A
,
328 extern __inline __m512i
329 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
330 _mm512_maskz_mov_epi32 (__mmask16 __U
, __m512i __A
)
332 return (__m512i
) __builtin_ia32_movdqa32_512_mask ((__v16si
) __A
,
334 _mm512_setzero_si512 (),
338 extern __inline __m512i
339 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
340 _mm512_load_si512 (void const *__P
)
342 return *(__m512i
*) __P
;
345 extern __inline __m512i
346 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
347 _mm512_load_epi32 (void const *__P
)
349 return *(__m512i
*) __P
;
352 extern __inline __m512i
353 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
354 _mm512_mask_load_epi32 (__m512i __W
, __mmask16 __U
, void const *__P
)
356 return (__m512i
) __builtin_ia32_movdqa32load512_mask ((const __v16si
*) __P
,
361 extern __inline __m512i
362 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
363 _mm512_maskz_load_epi32 (__mmask16 __U
, void const *__P
)
365 return (__m512i
) __builtin_ia32_movdqa32load512_mask ((const __v16si
*) __P
,
367 _mm512_setzero_si512 (),
372 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
373 _mm512_store_si512 (void *__P
, __m512i __A
)
375 *(__m512i
*) __P
= __A
;
379 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
380 _mm512_store_epi32 (void *__P
, __m512i __A
)
382 *(__m512i
*) __P
= __A
;
386 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
387 _mm512_mask_store_epi32 (void *__P
, __mmask16 __U
, __m512i __A
)
389 __builtin_ia32_movdqa32store512_mask ((__v16si
*) __P
, (__v16si
) __A
,
393 extern __inline __m512i
394 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
395 _mm512_mullo_epi32 (__m512i __A
, __m512i __B
)
397 return (__m512i
) __builtin_ia32_pmulld512_mask ((__v16si
) __A
,
400 _mm512_setzero_si512 (),
404 extern __inline __m512i
405 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
406 _mm512_maskz_mullo_epi32 (__mmask16 __M
, __m512i __A
, __m512i __B
)
408 return (__m512i
) __builtin_ia32_pmulld512_mask ((__v16si
) __A
,
411 _mm512_setzero_si512 (),
415 extern __inline __m512i
416 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
417 _mm512_mask_mullo_epi32 (__m512i __W
, __mmask16 __M
, __m512i __A
, __m512i __B
)
419 return (__m512i
) __builtin_ia32_pmulld512_mask ((__v16si
) __A
,
424 extern __inline __m512i
425 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
426 _mm512_sllv_epi32 (__m512i __X
, __m512i __Y
)
428 return (__m512i
) __builtin_ia32_psllv16si_mask ((__v16si
) __X
,
431 _mm512_setzero_si512 (),
435 extern __inline __m512i
436 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
437 _mm512_mask_sllv_epi32 (__m512i __W
, __mmask16 __U
, __m512i __X
, __m512i __Y
)
439 return (__m512i
) __builtin_ia32_psllv16si_mask ((__v16si
) __X
,
445 extern __inline __m512i
446 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
447 _mm512_maskz_sllv_epi32 (__mmask16 __U
, __m512i __X
, __m512i __Y
)
449 return (__m512i
) __builtin_ia32_psllv16si_mask ((__v16si
) __X
,
452 _mm512_setzero_si512 (),
456 extern __inline __m512i
457 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
458 _mm512_srav_epi32 (__m512i __X
, __m512i __Y
)
460 return (__m512i
) __builtin_ia32_psrav16si_mask ((__v16si
) __X
,
463 _mm512_setzero_si512 (),
467 extern __inline __m512i
468 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
469 _mm512_mask_srav_epi32 (__m512i __W
, __mmask16 __U
, __m512i __X
, __m512i __Y
)
471 return (__m512i
) __builtin_ia32_psrav16si_mask ((__v16si
) __X
,
477 extern __inline __m512i
478 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
479 _mm512_maskz_srav_epi32 (__mmask16 __U
, __m512i __X
, __m512i __Y
)
481 return (__m512i
) __builtin_ia32_psrav16si_mask ((__v16si
) __X
,
484 _mm512_setzero_si512 (),
488 extern __inline __m512i
489 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
490 _mm512_srlv_epi32 (__m512i __X
, __m512i __Y
)
492 return (__m512i
) __builtin_ia32_psrlv16si_mask ((__v16si
) __X
,
495 _mm512_setzero_si512 (),
499 extern __inline __m512i
500 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
501 _mm512_mask_srlv_epi32 (__m512i __W
, __mmask16 __U
, __m512i __X
, __m512i __Y
)
503 return (__m512i
) __builtin_ia32_psrlv16si_mask ((__v16si
) __X
,
509 extern __inline __m512i
510 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
511 _mm512_maskz_srlv_epi32 (__mmask16 __U
, __m512i __X
, __m512i __Y
)
513 return (__m512i
) __builtin_ia32_psrlv16si_mask ((__v16si
) __X
,
516 _mm512_setzero_si512 (),
520 extern __inline __m512i
521 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
522 _mm512_add_epi64 (__m512i __A
, __m512i __B
)
524 return (__m512i
) __builtin_ia32_paddq512_mask ((__v8di
) __A
,
527 _mm512_setzero_si512 (),
531 extern __inline __m512i
532 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
533 _mm512_mask_add_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
535 return (__m512i
) __builtin_ia32_paddq512_mask ((__v8di
) __A
,
541 extern __inline __m512i
542 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
543 _mm512_maskz_add_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
545 return (__m512i
) __builtin_ia32_paddq512_mask ((__v8di
) __A
,
548 _mm512_setzero_si512 (),
552 extern __inline __m512i
553 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
554 _mm512_sub_epi64 (__m512i __A
, __m512i __B
)
556 return (__m512i
) __builtin_ia32_psubq512_mask ((__v8di
) __A
,
559 _mm512_setzero_pd (),
563 extern __inline __m512i
564 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
565 _mm512_mask_sub_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
567 return (__m512i
) __builtin_ia32_psubq512_mask ((__v8di
) __A
,
573 extern __inline __m512i
574 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
575 _mm512_maskz_sub_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
577 return (__m512i
) __builtin_ia32_psubq512_mask ((__v8di
) __A
,
580 _mm512_setzero_si512 (),
584 extern __inline __m512i
585 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
586 _mm512_sllv_epi64 (__m512i __X
, __m512i __Y
)
588 return (__m512i
) __builtin_ia32_psllv8di_mask ((__v8di
) __X
,
591 _mm512_setzero_pd (),
595 extern __inline __m512i
596 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
597 _mm512_mask_sllv_epi64 (__m512i __W
, __mmask8 __U
, __m512i __X
, __m512i __Y
)
599 return (__m512i
) __builtin_ia32_psllv8di_mask ((__v8di
) __X
,
605 extern __inline __m512i
606 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
607 _mm512_maskz_sllv_epi64 (__mmask8 __U
, __m512i __X
, __m512i __Y
)
609 return (__m512i
) __builtin_ia32_psllv8di_mask ((__v8di
) __X
,
612 _mm512_setzero_si512 (),
616 extern __inline __m512i
617 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
618 _mm512_srav_epi64 (__m512i __X
, __m512i __Y
)
620 return (__m512i
) __builtin_ia32_psrav8di_mask ((__v8di
) __X
,
623 _mm512_setzero_si512 (),
627 extern __inline __m512i
628 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
629 _mm512_mask_srav_epi64 (__m512i __W
, __mmask8 __U
, __m512i __X
, __m512i __Y
)
631 return (__m512i
) __builtin_ia32_psrav8di_mask ((__v8di
) __X
,
637 extern __inline __m512i
638 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
639 _mm512_maskz_srav_epi64 (__mmask8 __U
, __m512i __X
, __m512i __Y
)
641 return (__m512i
) __builtin_ia32_psrav8di_mask ((__v8di
) __X
,
644 _mm512_setzero_si512 (),
648 extern __inline __m512i
649 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
650 _mm512_srlv_epi64 (__m512i __X
, __m512i __Y
)
652 return (__m512i
) __builtin_ia32_psrlv8di_mask ((__v8di
) __X
,
655 _mm512_setzero_si512 (),
659 extern __inline __m512i
660 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
661 _mm512_mask_srlv_epi64 (__m512i __W
, __mmask8 __U
, __m512i __X
, __m512i __Y
)
663 return (__m512i
) __builtin_ia32_psrlv8di_mask ((__v8di
) __X
,
669 extern __inline __m512i
670 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
671 _mm512_maskz_srlv_epi64 (__mmask8 __U
, __m512i __X
, __m512i __Y
)
673 return (__m512i
) __builtin_ia32_psrlv8di_mask ((__v8di
) __X
,
676 _mm512_setzero_si512 (),
680 extern __inline __m512i
681 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
682 _mm512_add_epi32 (__m512i __A
, __m512i __B
)
684 return (__m512i
) __builtin_ia32_paddd512_mask ((__v16si
) __A
,
687 _mm512_setzero_si512 (),
691 extern __inline __m512i
692 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
693 _mm512_mask_add_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
695 return (__m512i
) __builtin_ia32_paddd512_mask ((__v16si
) __A
,
701 extern __inline __m512i
702 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
703 _mm512_maskz_add_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
705 return (__m512i
) __builtin_ia32_paddd512_mask ((__v16si
) __A
,
708 _mm512_setzero_si512 (),
712 extern __inline __m512i
713 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
714 _mm512_mul_epi32 (__m512i __X
, __m512i __Y
)
716 return (__m512i
) __builtin_ia32_pmuldq512_mask ((__v16si
) __X
,
719 _mm512_setzero_si512 (),
723 extern __inline __m512i
724 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
725 _mm512_mask_mul_epi32 (__m512i __W
, __mmask8 __M
, __m512i __X
, __m512i __Y
)
727 return (__m512i
) __builtin_ia32_pmuldq512_mask ((__v16si
) __X
,
732 extern __inline __m512i
733 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
734 _mm512_maskz_mul_epi32 (__mmask8 __M
, __m512i __X
, __m512i __Y
)
736 return (__m512i
) __builtin_ia32_pmuldq512_mask ((__v16si
) __X
,
739 _mm512_setzero_si512 (),
743 extern __inline __m512i
744 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
745 _mm512_sub_epi32 (__m512i __A
, __m512i __B
)
747 return (__m512i
) __builtin_ia32_psubd512_mask ((__v16si
) __A
,
750 _mm512_setzero_si512 (),
754 extern __inline __m512i
755 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
756 _mm512_mask_sub_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
758 return (__m512i
) __builtin_ia32_psubd512_mask ((__v16si
) __A
,
764 extern __inline __m512i
765 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
766 _mm512_maskz_sub_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
768 return (__m512i
) __builtin_ia32_psubd512_mask ((__v16si
) __A
,
771 _mm512_setzero_si512 (),
775 extern __inline __m512i
776 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
777 _mm512_mul_epu32 (__m512i __X
, __m512i __Y
)
779 return (__m512i
) __builtin_ia32_pmuludq512_mask ((__v16si
) __X
,
782 _mm512_setzero_si512 (),
786 extern __inline __m512i
787 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
788 _mm512_mask_mul_epu32 (__m512i __W
, __mmask8 __M
, __m512i __X
, __m512i __Y
)
790 return (__m512i
) __builtin_ia32_pmuludq512_mask ((__v16si
) __X
,
795 extern __inline __m512i
796 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
797 _mm512_maskz_mul_epu32 (__mmask8 __M
, __m512i __X
, __m512i __Y
)
799 return (__m512i
) __builtin_ia32_pmuludq512_mask ((__v16si
) __X
,
802 _mm512_setzero_si512 (),
807 extern __inline __m512i
808 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
809 _mm512_slli_epi64 (__m512i __A
, unsigned int __B
)
811 return (__m512i
) __builtin_ia32_psllqi512_mask ((__v8di
) __A
, __B
,
813 _mm512_setzero_si512 (),
817 extern __inline __m512i
818 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
819 _mm512_mask_slli_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
,
822 return (__m512i
) __builtin_ia32_psllqi512_mask ((__v8di
) __A
, __B
,
827 extern __inline __m512i
828 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
829 _mm512_maskz_slli_epi64 (__mmask8 __U
, __m512i __A
, unsigned int __B
)
831 return (__m512i
) __builtin_ia32_psllqi512_mask ((__v8di
) __A
, __B
,
833 _mm512_setzero_si512 (),
837 #define _mm512_slli_epi64(X, C) \
838 ((__m512i) __builtin_ia32_psllqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
839 (__v8di)(__m512i)_mm512_setzero_si512 (),\
842 #define _mm512_mask_slli_epi64(W, U, X, C) \
843 ((__m512i) __builtin_ia32_psllqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
844 (__v8di)(__m512i)(W),\
847 #define _mm512_maskz_slli_epi64(U, X, C) \
848 ((__m512i) __builtin_ia32_psllqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
849 (__v8di)(__m512i)_mm512_setzero_si512 (),\
853 extern __inline __m512i
854 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
855 _mm512_sll_epi64 (__m512i __A
, __m128i __B
)
857 return (__m512i
) __builtin_ia32_psllq512_mask ((__v8di
) __A
,
860 _mm512_setzero_si512 (),
864 extern __inline __m512i
865 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
866 _mm512_mask_sll_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m128i __B
)
868 return (__m512i
) __builtin_ia32_psllq512_mask ((__v8di
) __A
,
874 extern __inline __m512i
875 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
876 _mm512_maskz_sll_epi64 (__mmask8 __U
, __m512i __A
, __m128i __B
)
878 return (__m512i
) __builtin_ia32_psllq512_mask ((__v8di
) __A
,
881 _mm512_setzero_si512 (),
886 extern __inline __m512i
887 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
888 _mm512_srli_epi64 (__m512i __A
, unsigned int __B
)
890 return (__m512i
) __builtin_ia32_psrlqi512_mask ((__v8di
) __A
, __B
,
892 _mm512_setzero_si512 (),
896 extern __inline __m512i
897 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
898 _mm512_mask_srli_epi64 (__m512i __W
, __mmask8 __U
,
899 __m512i __A
, unsigned int __B
)
901 return (__m512i
) __builtin_ia32_psrlqi512_mask ((__v8di
) __A
, __B
,
906 extern __inline __m512i
907 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
908 _mm512_maskz_srli_epi64 (__mmask8 __U
, __m512i __A
, unsigned int __B
)
910 return (__m512i
) __builtin_ia32_psrlqi512_mask ((__v8di
) __A
, __B
,
912 _mm512_setzero_si512 (),
916 #define _mm512_srli_epi64(X, C) \
917 ((__m512i) __builtin_ia32_psrlqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
918 (__v8di)(__m512i)_mm512_setzero_si512 (),\
921 #define _mm512_mask_srli_epi64(W, U, X, C) \
922 ((__m512i) __builtin_ia32_psrlqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
923 (__v8di)(__m512i)(W),\
926 #define _mm512_maskz_srli_epi64(U, X, C) \
927 ((__m512i) __builtin_ia32_psrlqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
928 (__v8di)(__m512i)_mm512_setzero_si512 (),\
932 extern __inline __m512i
933 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
934 _mm512_srl_epi64 (__m512i __A
, __m128i __B
)
936 return (__m512i
) __builtin_ia32_psrlq512_mask ((__v8di
) __A
,
939 _mm512_setzero_si512 (),
943 extern __inline __m512i
944 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
945 _mm512_mask_srl_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m128i __B
)
947 return (__m512i
) __builtin_ia32_psrlq512_mask ((__v8di
) __A
,
953 extern __inline __m512i
954 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
955 _mm512_maskz_srl_epi64 (__mmask8 __U
, __m512i __A
, __m128i __B
)
957 return (__m512i
) __builtin_ia32_psrlq512_mask ((__v8di
) __A
,
960 _mm512_setzero_si512 (),
965 extern __inline __m512i
966 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
967 _mm512_srai_epi64 (__m512i __A
, unsigned int __B
)
969 return (__m512i
) __builtin_ia32_psraqi512_mask ((__v8di
) __A
, __B
,
971 _mm512_setzero_si512 (),
975 extern __inline __m512i
976 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
977 _mm512_mask_srai_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
,
980 return (__m512i
) __builtin_ia32_psraqi512_mask ((__v8di
) __A
, __B
,
985 extern __inline __m512i
986 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
987 _mm512_maskz_srai_epi64 (__mmask8 __U
, __m512i __A
, unsigned int __B
)
989 return (__m512i
) __builtin_ia32_psraqi512_mask ((__v8di
) __A
, __B
,
991 _mm512_setzero_si512 (),
995 #define _mm512_srai_epi64(X, C) \
996 ((__m512i) __builtin_ia32_psraqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
997 (__v8di)(__m512i)_mm512_setzero_si512 (),\
1000 #define _mm512_mask_srai_epi64(W, U, X, C) \
1001 ((__m512i) __builtin_ia32_psraqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1002 (__v8di)(__m512i)(W),\
1005 #define _mm512_maskz_srai_epi64(U, X, C) \
1006 ((__m512i) __builtin_ia32_psraqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1007 (__v8di)(__m512i)_mm512_setzero_si512 (),\
1011 extern __inline __m512i
1012 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1013 _mm512_sra_epi64 (__m512i __A
, __m128i __B
)
1015 return (__m512i
) __builtin_ia32_psraq512_mask ((__v8di
) __A
,
1018 _mm512_setzero_si512 (),
1022 extern __inline __m512i
1023 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1024 _mm512_mask_sra_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m128i __B
)
1026 return (__m512i
) __builtin_ia32_psraq512_mask ((__v8di
) __A
,
1032 extern __inline __m512i
1033 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1034 _mm512_maskz_sra_epi64 (__mmask8 __U
, __m512i __A
, __m128i __B
)
1036 return (__m512i
) __builtin_ia32_psraq512_mask ((__v8di
) __A
,
1039 _mm512_setzero_si512 (),
1044 extern __inline __m512i
1045 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1046 _mm512_slli_epi32 (__m512i __A
, unsigned int __B
)
1048 return (__m512i
) __builtin_ia32_pslldi512_mask ((__v16si
) __A
, __B
,
1050 _mm512_setzero_si512 (),
1054 extern __inline __m512i
1055 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1056 _mm512_mask_slli_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
,
1059 return (__m512i
) __builtin_ia32_pslldi512_mask ((__v16si
) __A
, __B
,
1064 extern __inline __m512i
1065 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1066 _mm512_maskz_slli_epi32 (__mmask16 __U
, __m512i __A
, unsigned int __B
)
1068 return (__m512i
) __builtin_ia32_pslldi512_mask ((__v16si
) __A
, __B
,
1070 _mm512_setzero_si512 (),
1074 #define _mm512_slli_epi32(X, C) \
1075 ((__m512i) __builtin_ia32_pslldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1076 (__v16si)(__m512i)_mm512_setzero_si512 (),\
1079 #define _mm512_mask_slli_epi32(W, U, X, C) \
1080 ((__m512i) __builtin_ia32_pslldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1081 (__v16si)(__m512i)(W),\
1084 #define _mm512_maskz_slli_epi32(U, X, C) \
1085 ((__m512i) __builtin_ia32_pslldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1086 (__v16si)(__m512i)_mm512_setzero_si512 (),\
1090 extern __inline __m512i
1091 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1092 _mm512_sll_epi32 (__m512i __A
, __m128i __B
)
1094 return (__m512i
) __builtin_ia32_pslld512_mask ((__v16si
) __A
,
1097 _mm512_setzero_si512 (),
1101 extern __inline __m512i
1102 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1103 _mm512_mask_sll_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m128i __B
)
1105 return (__m512i
) __builtin_ia32_pslld512_mask ((__v16si
) __A
,
1111 extern __inline __m512i
1112 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1113 _mm512_maskz_sll_epi32 (__mmask16 __U
, __m512i __A
, __m128i __B
)
1115 return (__m512i
) __builtin_ia32_pslld512_mask ((__v16si
) __A
,
1118 _mm512_setzero_si512 (),
1123 extern __inline __m512i
1124 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1125 _mm512_srli_epi32 (__m512i __A
, unsigned int __B
)
1127 return (__m512i
) __builtin_ia32_psrldi512_mask ((__v16si
) __A
, __B
,
1129 _mm512_setzero_si512 (),
1133 extern __inline __m512i
1134 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1135 _mm512_mask_srli_epi32 (__m512i __W
, __mmask16 __U
,
1136 __m512i __A
, unsigned int __B
)
1138 return (__m512i
) __builtin_ia32_psrldi512_mask ((__v16si
) __A
, __B
,
1143 extern __inline __m512i
1144 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1145 _mm512_maskz_srli_epi32 (__mmask16 __U
, __m512i __A
, unsigned int __B
)
1147 return (__m512i
) __builtin_ia32_psrldi512_mask ((__v16si
) __A
, __B
,
1149 _mm512_setzero_si512 (),
1153 #define _mm512_srli_epi32(X, C) \
1154 ((__m512i) __builtin_ia32_psrldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1155 (__v16si)(__m512i)_mm512_setzero_si512 (),\
1158 #define _mm512_mask_srli_epi32(W, U, X, C) \
1159 ((__m512i) __builtin_ia32_psrldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1160 (__v16si)(__m512i)(W),\
1163 #define _mm512_maskz_srli_epi32(U, X, C) \
1164 ((__m512i) __builtin_ia32_psrldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1165 (__v16si)(__m512i)_mm512_setzero_si512 (),\
1169 extern __inline __m512i
1170 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1171 _mm512_srl_epi32 (__m512i __A
, __m128i __B
)
1173 return (__m512i
) __builtin_ia32_psrld512_mask ((__v16si
) __A
,
1176 _mm512_setzero_si512 (),
1180 extern __inline __m512i
1181 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1182 _mm512_mask_srl_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m128i __B
)
1184 return (__m512i
) __builtin_ia32_psrld512_mask ((__v16si
) __A
,
1190 extern __inline __m512i
1191 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1192 _mm512_maskz_srl_epi32 (__mmask16 __U
, __m512i __A
, __m128i __B
)
1194 return (__m512i
) __builtin_ia32_psrld512_mask ((__v16si
) __A
,
1197 _mm512_setzero_si512 (),
1202 extern __inline __m512i
1203 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1204 _mm512_srai_epi32 (__m512i __A
, unsigned int __B
)
1206 return (__m512i
) __builtin_ia32_psradi512_mask ((__v16si
) __A
, __B
,
1208 _mm512_setzero_si512 (),
1212 extern __inline __m512i
1213 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1214 _mm512_mask_srai_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
,
1217 return (__m512i
) __builtin_ia32_psradi512_mask ((__v16si
) __A
, __B
,
1222 extern __inline __m512i
1223 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1224 _mm512_maskz_srai_epi32 (__mmask16 __U
, __m512i __A
, unsigned int __B
)
1226 return (__m512i
) __builtin_ia32_psradi512_mask ((__v16si
) __A
, __B
,
1228 _mm512_setzero_si512 (),
1232 #define _mm512_srai_epi32(X, C) \
1233 ((__m512i) __builtin_ia32_psradi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1234 (__v16si)(__m512i)_mm512_setzero_si512 (),\
1237 #define _mm512_mask_srai_epi32(W, U, X, C) \
1238 ((__m512i) __builtin_ia32_psradi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1239 (__v16si)(__m512i)(W),\
1242 #define _mm512_maskz_srai_epi32(U, X, C) \
1243 ((__m512i) __builtin_ia32_psradi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1244 (__v16si)(__m512i)_mm512_setzero_si512 (),\
1248 extern __inline __m512i
1249 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1250 _mm512_sra_epi32 (__m512i __A
, __m128i __B
)
1252 return (__m512i
) __builtin_ia32_psrad512_mask ((__v16si
) __A
,
1255 _mm512_setzero_si512 (),
1259 extern __inline __m512i
1260 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1261 _mm512_mask_sra_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m128i __B
)
1263 return (__m512i
) __builtin_ia32_psrad512_mask ((__v16si
) __A
,
1269 extern __inline __m512i
1270 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1271 _mm512_maskz_sra_epi32 (__mmask16 __U
, __m512i __A
, __m128i __B
)
1273 return (__m512i
) __builtin_ia32_psrad512_mask ((__v16si
) __A
,
1276 _mm512_setzero_si512 (),
1281 extern __inline __m128d
1282 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1283 _mm_add_round_sd (__m128d __A
, __m128d __B
, const int __R
)
1285 return (__m128d
) __builtin_ia32_addsd_round ((__v2df
) __A
,
1290 extern __inline __m128
1291 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1292 _mm_add_round_ss (__m128 __A
, __m128 __B
, const int __R
)
1294 return (__m128
) __builtin_ia32_addss_round ((__v4sf
) __A
,
1299 extern __inline __m128d
1300 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1301 _mm_sub_round_sd (__m128d __A
, __m128d __B
, const int __R
)
1303 return (__m128d
) __builtin_ia32_subsd_round ((__v2df
) __A
,
1308 extern __inline __m128
1309 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1310 _mm_sub_round_ss (__m128 __A
, __m128 __B
, const int __R
)
1312 return (__m128
) __builtin_ia32_subss_round ((__v4sf
) __A
,
1318 #define _mm_add_round_sd(A, B, C) \
1319 (__m128d)__builtin_ia32_addsd_round(A, B, C)
1321 #define _mm_add_round_ss(A, B, C) \
1322 (__m128)__builtin_ia32_addss_round(A, B, C)
1324 #define _mm_sub_round_sd(A, B, C) \
1325 (__m128d)__builtin_ia32_subsd_round(A, B, C)
1327 #define _mm_sub_round_ss(A, B, C) \
1328 (__m128)__builtin_ia32_subss_round(A, B, C)
1332 extern __inline __m512i
1333 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1334 _mm512_ternarylogic_epi64 (__m512i __A
, __m512i __B
, __m512i __C
, const int imm
)
1336 return (__m512i
) __builtin_ia32_pternlogq512_mask ((__v8di
) __A
,
1342 extern __inline __m512i
1343 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1344 _mm512_mask_ternarylogic_epi64 (__m512i __A
, __mmask8 __U
, __m512i __B
,
1345 __m512i __C
, const int imm
)
1347 return (__m512i
) __builtin_ia32_pternlogq512_mask ((__v8di
) __A
,
1353 extern __inline __m512i
1354 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1355 _mm512_maskz_ternarylogic_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
,
1356 __m512i __C
, const int imm
)
1358 return (__m512i
) __builtin_ia32_pternlogq512_maskz ((__v8di
) __A
,
1361 imm
, (__mmask8
) __U
);
1364 extern __inline __m512i
1365 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1366 _mm512_ternarylogic_epi32 (__m512i __A
, __m512i __B
, __m512i __C
, const int imm
)
1368 return (__m512i
) __builtin_ia32_pternlogd512_mask ((__v16si
) __A
,
1371 imm
, (__mmask16
) -1);
1374 extern __inline __m512i
1375 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1376 _mm512_mask_ternarylogic_epi32 (__m512i __A
, __mmask16 __U
, __m512i __B
,
1377 __m512i __C
, const int imm
)
1379 return (__m512i
) __builtin_ia32_pternlogd512_mask ((__v16si
) __A
,
1382 imm
, (__mmask16
) __U
);
1385 extern __inline __m512i
1386 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1387 _mm512_maskz_ternarylogic_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
,
1388 __m512i __C
, const int imm
)
1390 return (__m512i
) __builtin_ia32_pternlogd512_maskz ((__v16si
) __A
,
1393 imm
, (__mmask16
) __U
);
1396 #define _mm512_ternarylogic_epi64(A, B, C, I) \
1397 ((__m512i) __builtin_ia32_pternlogq512_mask ((__v8di)(__m512i)(A), \
1398 (__v8di)(__m512i)(B), (__v8di)(__m512i)(C), (int)(I), (__mmask8)-1))
1399 #define _mm512_mask_ternarylogic_epi64(A, U, B, C, I) \
1400 ((__m512i) __builtin_ia32_pternlogq512_mask ((__v8di)(__m512i)(A), \
1401 (__v8di)(__m512i)(B), (__v8di)(__m512i)(C), (int)(I), (__mmask8)(U)))
1402 #define _mm512_maskz_ternarylogic_epi64(U, A, B, C, I) \
1403 ((__m512i) __builtin_ia32_pternlogq512_maskz ((__v8di)(__m512i)(A), \
1404 (__v8di)(__m512i)(B), (__v8di)(__m512i)(C), (int)(I), (__mmask8)(U)))
1405 #define _mm512_ternarylogic_epi32(A, B, C, I) \
1406 ((__m512i) __builtin_ia32_pternlogd512_mask ((__v16si)(__m512i)(A), \
1407 (__v16si)(__m512i)(B), (__v16si)(__m512i)(C), (int)(I), \
1409 #define _mm512_mask_ternarylogic_epi32(A, U, B, C, I) \
1410 ((__m512i) __builtin_ia32_pternlogd512_mask ((__v16si)(__m512i)(A), \
1411 (__v16si)(__m512i)(B), (__v16si)(__m512i)(C), (int)(I), \
1413 #define _mm512_maskz_ternarylogic_epi32(U, A, B, C, I) \
1414 ((__m512i) __builtin_ia32_pternlogd512_maskz ((__v16si)(__m512i)(A), \
1415 (__v16si)(__m512i)(B), (__v16si)(__m512i)(C), (int)(I), \
1419 extern __inline __m512d
1420 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1421 _mm512_rcp14_pd (__m512d __A
)
1423 return (__m512d
) __builtin_ia32_rcp14pd512_mask ((__v8df
) __A
,
1425 _mm512_setzero_pd (),
1429 extern __inline __m512d
1430 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1431 _mm512_mask_rcp14_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
1433 return (__m512d
) __builtin_ia32_rcp14pd512_mask ((__v8df
) __A
,
1438 extern __inline __m512d
1439 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1440 _mm512_maskz_rcp14_pd (__mmask8 __U
, __m512d __A
)
1442 return (__m512d
) __builtin_ia32_rcp14pd512_mask ((__v8df
) __A
,
1444 _mm512_setzero_pd (),
1448 extern __inline __m512
1449 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1450 _mm512_rcp14_ps (__m512 __A
)
1452 return (__m512
) __builtin_ia32_rcp14ps512_mask ((__v16sf
) __A
,
1454 _mm512_setzero_ps (),
1458 extern __inline __m512
1459 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1460 _mm512_mask_rcp14_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
1462 return (__m512
) __builtin_ia32_rcp14ps512_mask ((__v16sf
) __A
,
1467 extern __inline __m512
1468 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1469 _mm512_maskz_rcp14_ps (__mmask16 __U
, __m512 __A
)
1471 return (__m512
) __builtin_ia32_rcp14ps512_mask ((__v16sf
) __A
,
1473 _mm512_setzero_ps (),
1477 extern __inline __m128d
1478 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1479 _mm_rcp14_sd (__m128d __A
, __m128d __B
)
1481 return (__m128d
) __builtin_ia32_rcp14sd ((__v2df
) __A
,
1485 extern __inline __m128
1486 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1487 _mm_rcp14_ss (__m128 __A
, __m128 __B
)
1489 return (__m128
) __builtin_ia32_rcp14ss ((__v4sf
) __A
,
1493 extern __inline __m512d
1494 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1495 _mm512_rsqrt14_pd (__m512d __A
)
1497 return (__m512d
) __builtin_ia32_rsqrt14pd512_mask ((__v8df
) __A
,
1499 _mm512_setzero_pd (),
1503 extern __inline __m512d
1504 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1505 _mm512_mask_rsqrt14_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
1507 return (__m512d
) __builtin_ia32_rsqrt14pd512_mask ((__v8df
) __A
,
1512 extern __inline __m512d
1513 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1514 _mm512_maskz_rsqrt14_pd (__mmask8 __U
, __m512d __A
)
1516 return (__m512d
) __builtin_ia32_rsqrt14pd512_mask ((__v8df
) __A
,
1518 _mm512_setzero_pd (),
1522 extern __inline __m512
1523 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1524 _mm512_rsqrt14_ps (__m512 __A
)
1526 return (__m512
) __builtin_ia32_rsqrt14ps512_mask ((__v16sf
) __A
,
1528 _mm512_setzero_ps (),
1532 extern __inline __m512
1533 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1534 _mm512_mask_rsqrt14_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
1536 return (__m512
) __builtin_ia32_rsqrt14ps512_mask ((__v16sf
) __A
,
1541 extern __inline __m512
1542 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1543 _mm512_maskz_rsqrt14_ps (__mmask16 __U
, __m512 __A
)
1545 return (__m512
) __builtin_ia32_rsqrt14ps512_mask ((__v16sf
) __A
,
1547 _mm512_setzero_ps (),
1551 extern __inline __m128d
1552 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1553 _mm_rsqrt14_sd (__m128d __A
, __m128d __B
)
1555 return (__m128d
) __builtin_ia32_rsqrt14sd ((__v2df
) __A
,
1559 extern __inline __m128
1560 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1561 _mm_rsqrt14_ss (__m128 __A
, __m128 __B
)
1563 return (__m128
) __builtin_ia32_rsqrt14ss ((__v4sf
) __A
,
1568 extern __inline __m512d
1569 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1570 _mm512_sqrt_round_pd (__m512d __A
, const int __R
)
1572 return (__m512d
) __builtin_ia32_sqrtpd512_mask ((__v8df
) __A
,
1574 _mm512_setzero_pd (),
1575 (__mmask8
) -1, __R
);
1578 extern __inline __m512d
1579 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1580 _mm512_mask_sqrt_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
1583 return (__m512d
) __builtin_ia32_sqrtpd512_mask ((__v8df
) __A
,
1585 (__mmask8
) __U
, __R
);
1588 extern __inline __m512d
1589 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1590 _mm512_maskz_sqrt_round_pd (__mmask8 __U
, __m512d __A
, const int __R
)
1592 return (__m512d
) __builtin_ia32_sqrtpd512_mask ((__v8df
) __A
,
1594 _mm512_setzero_pd (),
1595 (__mmask8
) __U
, __R
);
1598 extern __inline __m512
1599 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1600 _mm512_sqrt_round_ps (__m512 __A
, const int __R
)
1602 return (__m512
) __builtin_ia32_sqrtps512_mask ((__v16sf
) __A
,
1604 _mm512_setzero_ps (),
1605 (__mmask16
) -1, __R
);
1608 extern __inline __m512
1609 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1610 _mm512_mask_sqrt_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, const int __R
)
1612 return (__m512
) __builtin_ia32_sqrtps512_mask ((__v16sf
) __A
,
1614 (__mmask16
) __U
, __R
);
1617 extern __inline __m512
1618 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1619 _mm512_maskz_sqrt_round_ps (__mmask16 __U
, __m512 __A
, const int __R
)
1621 return (__m512
) __builtin_ia32_sqrtps512_mask ((__v16sf
) __A
,
1623 _mm512_setzero_ps (),
1624 (__mmask16
) __U
, __R
);
1627 extern __inline __m128d
1628 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1629 _mm_sqrt_round_sd (__m128d __A
, __m128d __B
, const int __R
)
1631 return (__m128d
) __builtin_ia32_sqrtsd_round ((__v2df
) __B
,
1636 extern __inline __m128
1637 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1638 _mm_sqrt_round_ss (__m128 __A
, __m128 __B
, const int __R
)
1640 return (__m128
) __builtin_ia32_sqrtss_round ((__v4sf
) __B
,
1645 #define _mm512_sqrt_round_pd(A, C) \
1646 (__m512d)__builtin_ia32_sqrtpd512_mask(A, (__v8df)_mm512_setzero_pd(), -1, C)
1648 #define _mm512_mask_sqrt_round_pd(W, U, A, C) \
1649 (__m512d)__builtin_ia32_sqrtpd512_mask(A, W, U, C)
1651 #define _mm512_maskz_sqrt_round_pd(U, A, C) \
1652 (__m512d)__builtin_ia32_sqrtpd512_mask(A, (__v8df)_mm512_setzero_pd(), U, C)
1654 #define _mm512_sqrt_round_ps(A, C) \
1655 (__m512)__builtin_ia32_sqrtps512_mask(A, (__v16sf)_mm512_setzero_ps(), -1, C)
1657 #define _mm512_mask_sqrt_round_ps(W, U, A, C) \
1658 (__m512)__builtin_ia32_sqrtps512_mask(A, W, U, C)
1660 #define _mm512_maskz_sqrt_round_ps(U, A, C) \
1661 (__m512)__builtin_ia32_sqrtps512_mask(A, (__v16sf)_mm512_setzero_ps(), U, C)
1663 #define _mm_sqrt_round_sd(A, B, C) \
1664 (__m128d)__builtin_ia32_sqrtsd_round(A, B, C)
1666 #define _mm_sqrt_round_ss(A, B, C) \
1667 (__m128)__builtin_ia32_sqrtss_round(A, B, C)
1670 extern __inline __m512i
1671 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1672 _mm512_cvtepi8_epi32 (__m128i __A
)
1674 return (__m512i
) __builtin_ia32_pmovsxbd512_mask ((__v16qi
) __A
,
1676 _mm512_setzero_si512 (),
1680 extern __inline __m512i
1681 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1682 _mm512_mask_cvtepi8_epi32 (__m512i __W
, __mmask16 __U
, __m128i __A
)
1684 return (__m512i
) __builtin_ia32_pmovsxbd512_mask ((__v16qi
) __A
,
1689 extern __inline __m512i
1690 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1691 _mm512_maskz_cvtepi8_epi32 (__mmask16 __U
, __m128i __A
)
1693 return (__m512i
) __builtin_ia32_pmovsxbd512_mask ((__v16qi
) __A
,
1695 _mm512_setzero_si512 (),
1699 extern __inline __m512i
1700 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1701 _mm512_cvtepi8_epi64 (__m128i __A
)
1703 return (__m512i
) __builtin_ia32_pmovsxbq512_mask ((__v16qi
) __A
,
1705 _mm512_setzero_si512 (),
1709 extern __inline __m512i
1710 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1711 _mm512_mask_cvtepi8_epi64 (__m512i __W
, __mmask8 __U
, __m128i __A
)
1713 return (__m512i
) __builtin_ia32_pmovsxbq512_mask ((__v16qi
) __A
,
1718 extern __inline __m512i
1719 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1720 _mm512_maskz_cvtepi8_epi64 (__mmask8 __U
, __m128i __A
)
1722 return (__m512i
) __builtin_ia32_pmovsxbq512_mask ((__v16qi
) __A
,
1724 _mm512_setzero_si512 (),
1728 extern __inline __m512i
1729 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1730 _mm512_cvtepi16_epi32 (__m256i __A
)
1732 return (__m512i
) __builtin_ia32_pmovsxwd512_mask ((__v16hi
) __A
,
1734 _mm512_setzero_si512 (),
1738 extern __inline __m512i
1739 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1740 _mm512_mask_cvtepi16_epi32 (__m512i __W
, __mmask16 __U
, __m256i __A
)
1742 return (__m512i
) __builtin_ia32_pmovsxwd512_mask ((__v16hi
) __A
,
1747 extern __inline __m512i
1748 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1749 _mm512_maskz_cvtepi16_epi32 (__mmask16 __U
, __m256i __A
)
1751 return (__m512i
) __builtin_ia32_pmovsxwd512_mask ((__v16hi
) __A
,
1753 _mm512_setzero_si512 (),
1757 extern __inline __m512i
1758 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1759 _mm512_cvtepi16_epi64 (__m128i __A
)
1761 return (__m512i
) __builtin_ia32_pmovsxwq512_mask ((__v8hi
) __A
,
1763 _mm512_setzero_si512 (),
1767 extern __inline __m512i
1768 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1769 _mm512_mask_cvtepi16_epi64 (__m512i __W
, __mmask8 __U
, __m128i __A
)
1771 return (__m512i
) __builtin_ia32_pmovsxwq512_mask ((__v8hi
) __A
,
1776 extern __inline __m512i
1777 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1778 _mm512_maskz_cvtepi16_epi64 (__mmask8 __U
, __m128i __A
)
1780 return (__m512i
) __builtin_ia32_pmovsxwq512_mask ((__v8hi
) __A
,
1782 _mm512_setzero_si512 (),
1786 extern __inline __m512i
1787 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1788 _mm512_cvtepi32_epi64 (__m256i __X
)
1790 return (__m512i
) __builtin_ia32_pmovsxdq512_mask ((__v8si
) __X
,
1792 _mm512_setzero_si512 (),
1796 extern __inline __m512i
1797 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1798 _mm512_mask_cvtepi32_epi64 (__m512i __W
, __mmask8 __U
, __m256i __X
)
1800 return (__m512i
) __builtin_ia32_pmovsxdq512_mask ((__v8si
) __X
,
1805 extern __inline __m512i
1806 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1807 _mm512_maskz_cvtepi32_epi64 (__mmask8 __U
, __m256i __X
)
1809 return (__m512i
) __builtin_ia32_pmovsxdq512_mask ((__v8si
) __X
,
1811 _mm512_setzero_si512 (),
1815 extern __inline __m512i
1816 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1817 _mm512_cvtepu8_epi32 (__m128i __A
)
1819 return (__m512i
) __builtin_ia32_pmovzxbd512_mask ((__v16qi
) __A
,
1821 _mm512_setzero_si512 (),
1825 extern __inline __m512i
1826 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1827 _mm512_mask_cvtepu8_epi32 (__m512i __W
, __mmask16 __U
, __m128i __A
)
1829 return (__m512i
) __builtin_ia32_pmovzxbd512_mask ((__v16qi
) __A
,
1834 extern __inline __m512i
1835 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1836 _mm512_maskz_cvtepu8_epi32 (__mmask16 __U
, __m128i __A
)
1838 return (__m512i
) __builtin_ia32_pmovzxbd512_mask ((__v16qi
) __A
,
1840 _mm512_setzero_si512 (),
1844 extern __inline __m512i
1845 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1846 _mm512_cvtepu8_epi64 (__m128i __A
)
1848 return (__m512i
) __builtin_ia32_pmovzxbq512_mask ((__v16qi
) __A
,
1850 _mm512_setzero_si512 (),
1854 extern __inline __m512i
1855 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1856 _mm512_mask_cvtepu8_epi64 (__m512i __W
, __mmask8 __U
, __m128i __A
)
1858 return (__m512i
) __builtin_ia32_pmovzxbq512_mask ((__v16qi
) __A
,
1863 extern __inline __m512i
1864 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1865 _mm512_maskz_cvtepu8_epi64 (__mmask8 __U
, __m128i __A
)
1867 return (__m512i
) __builtin_ia32_pmovzxbq512_mask ((__v16qi
) __A
,
1869 _mm512_setzero_si512 (),
1873 extern __inline __m512i
1874 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1875 _mm512_cvtepu16_epi32 (__m256i __A
)
1877 return (__m512i
) __builtin_ia32_pmovzxwd512_mask ((__v16hi
) __A
,
1879 _mm512_setzero_si512 (),
1883 extern __inline __m512i
1884 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1885 _mm512_mask_cvtepu16_epi32 (__m512i __W
, __mmask16 __U
, __m256i __A
)
1887 return (__m512i
) __builtin_ia32_pmovzxwd512_mask ((__v16hi
) __A
,
1892 extern __inline __m512i
1893 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1894 _mm512_maskz_cvtepu16_epi32 (__mmask16 __U
, __m256i __A
)
1896 return (__m512i
) __builtin_ia32_pmovzxwd512_mask ((__v16hi
) __A
,
1898 _mm512_setzero_si512 (),
1902 extern __inline __m512i
1903 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1904 _mm512_cvtepu16_epi64 (__m128i __A
)
1906 return (__m512i
) __builtin_ia32_pmovzxwq512_mask ((__v8hi
) __A
,
1908 _mm512_setzero_si512 (),
1912 extern __inline __m512i
1913 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1914 _mm512_mask_cvtepu16_epi64 (__m512i __W
, __mmask8 __U
, __m128i __A
)
1916 return (__m512i
) __builtin_ia32_pmovzxwq512_mask ((__v8hi
) __A
,
1921 extern __inline __m512i
1922 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1923 _mm512_maskz_cvtepu16_epi64 (__mmask8 __U
, __m128i __A
)
1925 return (__m512i
) __builtin_ia32_pmovzxwq512_mask ((__v8hi
) __A
,
1927 _mm512_setzero_si512 (),
1931 extern __inline __m512i
1932 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1933 _mm512_cvtepu32_epi64 (__m256i __X
)
1935 return (__m512i
) __builtin_ia32_pmovzxdq512_mask ((__v8si
) __X
,
1937 _mm512_setzero_si512 (),
1941 extern __inline __m512i
1942 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1943 _mm512_mask_cvtepu32_epi64 (__m512i __W
, __mmask8 __U
, __m256i __X
)
1945 return (__m512i
) __builtin_ia32_pmovzxdq512_mask ((__v8si
) __X
,
1950 extern __inline __m512i
1951 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1952 _mm512_maskz_cvtepu32_epi64 (__mmask8 __U
, __m256i __X
)
1954 return (__m512i
) __builtin_ia32_pmovzxdq512_mask ((__v8si
) __X
,
1956 _mm512_setzero_si512 (),
1961 extern __inline __m512d
1962 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1963 _mm512_add_round_pd (__m512d __A
, __m512d __B
, const int __R
)
1965 return (__m512d
) __builtin_ia32_addpd512_mask ((__v8df
) __A
,
1968 _mm512_setzero_pd (),
1969 (__mmask8
) -1, __R
);
1972 extern __inline __m512d
1973 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1974 _mm512_mask_add_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
1975 __m512d __B
, const int __R
)
1977 return (__m512d
) __builtin_ia32_addpd512_mask ((__v8df
) __A
,
1980 (__mmask8
) __U
, __R
);
1983 extern __inline __m512d
1984 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1985 _mm512_maskz_add_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
1988 return (__m512d
) __builtin_ia32_addpd512_mask ((__v8df
) __A
,
1991 _mm512_setzero_pd (),
1992 (__mmask8
) __U
, __R
);
1995 extern __inline __m512
1996 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1997 _mm512_add_round_ps (__m512 __A
, __m512 __B
, const int __R
)
1999 return (__m512
) __builtin_ia32_addps512_mask ((__v16sf
) __A
,
2002 _mm512_setzero_ps (),
2003 (__mmask16
) -1, __R
);
2006 extern __inline __m512
2007 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2008 _mm512_mask_add_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
2009 __m512 __B
, const int __R
)
2011 return (__m512
) __builtin_ia32_addps512_mask ((__v16sf
) __A
,
2014 (__mmask16
) __U
, __R
);
2017 extern __inline __m512
2018 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2019 _mm512_maskz_add_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, const int __R
)
2021 return (__m512
) __builtin_ia32_addps512_mask ((__v16sf
) __A
,
2024 _mm512_setzero_ps (),
2025 (__mmask16
) __U
, __R
);
2028 extern __inline __m512d
2029 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2030 _mm512_sub_round_pd (__m512d __A
, __m512d __B
, const int __R
)
2032 return (__m512d
) __builtin_ia32_subpd512_mask ((__v8df
) __A
,
2035 _mm512_setzero_pd (),
2036 (__mmask8
) -1, __R
);
2039 extern __inline __m512d
2040 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2041 _mm512_mask_sub_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
2042 __m512d __B
, const int __R
)
2044 return (__m512d
) __builtin_ia32_subpd512_mask ((__v8df
) __A
,
2047 (__mmask8
) __U
, __R
);
2050 extern __inline __m512d
2051 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2052 _mm512_maskz_sub_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2055 return (__m512d
) __builtin_ia32_subpd512_mask ((__v8df
) __A
,
2058 _mm512_setzero_pd (),
2059 (__mmask8
) __U
, __R
);
2062 extern __inline __m512
2063 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2064 _mm512_sub_round_ps (__m512 __A
, __m512 __B
, const int __R
)
2066 return (__m512
) __builtin_ia32_subps512_mask ((__v16sf
) __A
,
2069 _mm512_setzero_ps (),
2070 (__mmask16
) -1, __R
);
2073 extern __inline __m512
2074 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2075 _mm512_mask_sub_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
2076 __m512 __B
, const int __R
)
2078 return (__m512
) __builtin_ia32_subps512_mask ((__v16sf
) __A
,
2081 (__mmask16
) __U
, __R
);
2084 extern __inline __m512
2085 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2086 _mm512_maskz_sub_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, const int __R
)
2088 return (__m512
) __builtin_ia32_subps512_mask ((__v16sf
) __A
,
2091 _mm512_setzero_ps (),
2092 (__mmask16
) __U
, __R
);
2095 #define _mm512_add_round_pd(A, B, C) \
2096 (__m512d)__builtin_ia32_addpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), -1, C)
2098 #define _mm512_mask_add_round_pd(W, U, A, B, C) \
2099 (__m512d)__builtin_ia32_addpd512_mask(A, B, W, U, C)
2101 #define _mm512_maskz_add_round_pd(U, A, B, C) \
2102 (__m512d)__builtin_ia32_addpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
2104 #define _mm512_add_round_ps(A, B, C) \
2105 (__m512)__builtin_ia32_addps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), -1, C)
2107 #define _mm512_mask_add_round_ps(W, U, A, B, C) \
2108 (__m512)__builtin_ia32_addps512_mask(A, B, W, U, C)
2110 #define _mm512_maskz_add_round_ps(U, A, B, C) \
2111 (__m512)__builtin_ia32_addps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
2113 #define _mm512_sub_round_pd(A, B, C) \
2114 (__m512d)__builtin_ia32_subpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), -1, C)
2116 #define _mm512_mask_sub_round_pd(W, U, A, B, C) \
2117 (__m512d)__builtin_ia32_subpd512_mask(A, B, W, U, C)
2119 #define _mm512_maskz_sub_round_pd(U, A, B, C) \
2120 (__m512d)__builtin_ia32_subpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
2122 #define _mm512_sub_round_ps(A, B, C) \
2123 (__m512)__builtin_ia32_subps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), -1, C)
2125 #define _mm512_mask_sub_round_ps(W, U, A, B, C) \
2126 (__m512)__builtin_ia32_subps512_mask(A, B, W, U, C)
2128 #define _mm512_maskz_sub_round_ps(U, A, B, C) \
2129 (__m512)__builtin_ia32_subps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
2133 extern __inline __m512d
2134 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2135 _mm512_mul_round_pd (__m512d __A
, __m512d __B
, const int __R
)
2137 return (__m512d
) __builtin_ia32_mulpd512_mask ((__v8df
) __A
,
2140 _mm512_setzero_pd (),
2141 (__mmask8
) -1, __R
);
2144 extern __inline __m512d
2145 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2146 _mm512_mask_mul_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
2147 __m512d __B
, const int __R
)
2149 return (__m512d
) __builtin_ia32_mulpd512_mask ((__v8df
) __A
,
2152 (__mmask8
) __U
, __R
);
2155 extern __inline __m512d
2156 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2157 _mm512_maskz_mul_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2160 return (__m512d
) __builtin_ia32_mulpd512_mask ((__v8df
) __A
,
2163 _mm512_setzero_pd (),
2164 (__mmask8
) __U
, __R
);
2167 extern __inline __m512
2168 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2169 _mm512_mul_round_ps (__m512 __A
, __m512 __B
, const int __R
)
2171 return (__m512
) __builtin_ia32_mulps512_mask ((__v16sf
) __A
,
2174 _mm512_setzero_ps (),
2175 (__mmask16
) -1, __R
);
2178 extern __inline __m512
2179 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2180 _mm512_mask_mul_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
2181 __m512 __B
, const int __R
)
2183 return (__m512
) __builtin_ia32_mulps512_mask ((__v16sf
) __A
,
2186 (__mmask16
) __U
, __R
);
2189 extern __inline __m512
2190 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2191 _mm512_maskz_mul_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, const int __R
)
2193 return (__m512
) __builtin_ia32_mulps512_mask ((__v16sf
) __A
,
2196 _mm512_setzero_ps (),
2197 (__mmask16
) __U
, __R
);
2200 extern __inline __m512d
2201 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2202 _mm512_div_round_pd (__m512d __M
, __m512d __V
, const int __R
)
2204 return (__m512d
) __builtin_ia32_divpd512_mask ((__v8df
) __M
,
2207 _mm512_setzero_pd (),
2208 (__mmask8
) -1, __R
);
2211 extern __inline __m512d
2212 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2213 _mm512_mask_div_round_pd (__m512d __W
, __mmask8 __U
, __m512d __M
,
2214 __m512d __V
, const int __R
)
2216 return (__m512d
) __builtin_ia32_divpd512_mask ((__v8df
) __M
,
2219 (__mmask8
) __U
, __R
);
2222 extern __inline __m512d
2223 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2224 _mm512_maskz_div_round_pd (__mmask8 __U
, __m512d __M
, __m512d __V
,
2227 return (__m512d
) __builtin_ia32_divpd512_mask ((__v8df
) __M
,
2230 _mm512_setzero_pd (),
2231 (__mmask8
) __U
, __R
);
2234 extern __inline __m512
2235 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2236 _mm512_div_round_ps (__m512 __A
, __m512 __B
, const int __R
)
2238 return (__m512
) __builtin_ia32_divps512_mask ((__v16sf
) __A
,
2241 _mm512_setzero_ps (),
2242 (__mmask16
) -1, __R
);
2245 extern __inline __m512
2246 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2247 _mm512_mask_div_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
2248 __m512 __B
, const int __R
)
2250 return (__m512
) __builtin_ia32_divps512_mask ((__v16sf
) __A
,
2253 (__mmask16
) __U
, __R
);
2256 extern __inline __m512
2257 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2258 _mm512_maskz_div_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, const int __R
)
2260 return (__m512
) __builtin_ia32_divps512_mask ((__v16sf
) __A
,
2263 _mm512_setzero_ps (),
2264 (__mmask16
) __U
, __R
);
2267 extern __inline __m128d
2268 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2269 _mm_mul_round_sd (__m128d __A
, __m128d __B
, const int __R
)
2271 return (__m128d
) __builtin_ia32_mulsd_round ((__v2df
) __A
,
2276 extern __inline __m128
2277 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2278 _mm_mul_round_ss (__m128 __A
, __m128 __B
, const int __R
)
2280 return (__m128
) __builtin_ia32_mulss_round ((__v4sf
) __A
,
2285 extern __inline __m128d
2286 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2287 _mm_div_round_sd (__m128d __A
, __m128d __B
, const int __R
)
2289 return (__m128d
) __builtin_ia32_divsd_round ((__v2df
) __A
,
2294 extern __inline __m128
2295 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2296 _mm_div_round_ss (__m128 __A
, __m128 __B
, const int __R
)
2298 return (__m128
) __builtin_ia32_divss_round ((__v4sf
) __A
,
2304 #define _mm512_mul_round_pd(A, B, C) \
2305 (__m512d)__builtin_ia32_mulpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), -1, C)
2307 #define _mm512_mask_mul_round_pd(W, U, A, B, C) \
2308 (__m512d)__builtin_ia32_mulpd512_mask(A, B, W, U, C)
2310 #define _mm512_maskz_mul_round_pd(U, A, B, C) \
2311 (__m512d)__builtin_ia32_mulpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
2313 #define _mm512_mul_round_ps(A, B, C) \
2314 (__m512)__builtin_ia32_mulps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), -1, C)
2316 #define _mm512_mask_mul_round_ps(W, U, A, B, C) \
2317 (__m512)__builtin_ia32_mulps512_mask(A, B, W, U, C)
2319 #define _mm512_maskz_mul_round_ps(U, A, B, C) \
2320 (__m512)__builtin_ia32_mulps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
2322 #define _mm512_div_round_pd(A, B, C) \
2323 (__m512d)__builtin_ia32_divpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), -1, C)
2325 #define _mm512_mask_div_round_pd(W, U, A, B, C) \
2326 (__m512d)__builtin_ia32_divpd512_mask(A, B, W, U, C)
2328 #define _mm512_maskz_div_round_pd(U, A, B, C) \
2329 (__m512d)__builtin_ia32_divpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
2331 #define _mm512_div_round_ps(A, B, C) \
2332 (__m512)__builtin_ia32_divps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), -1, C)
2334 #define _mm512_mask_div_round_ps(W, U, A, B, C) \
2335 (__m512)__builtin_ia32_divps512_mask(A, B, W, U, C)
2337 #define _mm512_maskz_div_round_ps(U, A, B, C) \
2338 (__m512)__builtin_ia32_divps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
2340 #define _mm_mul_round_sd(A, B, C) \
2341 (__m128d)__builtin_ia32_mulsd_round(A, B, C)
2343 #define _mm_mul_round_ss(A, B, C) \
2344 (__m128)__builtin_ia32_mulss_round(A, B, C)
2346 #define _mm_div_round_sd(A, B, C) \
2347 (__m128d)__builtin_ia32_divsd_round(A, B, C)
2349 #define _mm_div_round_ss(A, B, C) \
2350 (__m128)__builtin_ia32_divss_round(A, B, C)
2354 extern __inline __m512d
2355 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2356 _mm512_max_round_pd (__m512d __A
, __m512d __B
, const int __R
)
2358 return (__m512d
) __builtin_ia32_maxpd512_mask ((__v8df
) __A
,
2361 _mm512_setzero_pd (),
2362 (__mmask8
) -1, __R
);
2365 extern __inline __m512d
2366 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2367 _mm512_mask_max_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
2368 __m512d __B
, const int __R
)
2370 return (__m512d
) __builtin_ia32_maxpd512_mask ((__v8df
) __A
,
2373 (__mmask8
) __U
, __R
);
2376 extern __inline __m512d
2377 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2378 _mm512_maskz_max_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2381 return (__m512d
) __builtin_ia32_maxpd512_mask ((__v8df
) __A
,
2384 _mm512_setzero_pd (),
2385 (__mmask8
) __U
, __R
);
2388 extern __inline __m512
2389 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2390 _mm512_max_round_ps (__m512 __A
, __m512 __B
, const int __R
)
2392 return (__m512
) __builtin_ia32_maxps512_mask ((__v16sf
) __A
,
2395 _mm512_setzero_ps (),
2396 (__mmask16
) -1, __R
);
2399 extern __inline __m512
2400 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2401 _mm512_mask_max_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
2402 __m512 __B
, const int __R
)
2404 return (__m512
) __builtin_ia32_maxps512_mask ((__v16sf
) __A
,
2407 (__mmask16
) __U
, __R
);
2410 extern __inline __m512
2411 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2412 _mm512_maskz_max_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, const int __R
)
2414 return (__m512
) __builtin_ia32_maxps512_mask ((__v16sf
) __A
,
2417 _mm512_setzero_ps (),
2418 (__mmask16
) __U
, __R
);
2421 extern __inline __m512d
2422 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2423 _mm512_min_round_pd (__m512d __A
, __m512d __B
, const int __R
)
2425 return (__m512d
) __builtin_ia32_minpd512_mask ((__v8df
) __A
,
2428 _mm512_setzero_pd (),
2429 (__mmask8
) -1, __R
);
2432 extern __inline __m512d
2433 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2434 _mm512_mask_min_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
2435 __m512d __B
, const int __R
)
2437 return (__m512d
) __builtin_ia32_minpd512_mask ((__v8df
) __A
,
2440 (__mmask8
) __U
, __R
);
2443 extern __inline __m512d
2444 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2445 _mm512_maskz_min_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2448 return (__m512d
) __builtin_ia32_minpd512_mask ((__v8df
) __A
,
2451 _mm512_setzero_pd (),
2452 (__mmask8
) __U
, __R
);
2455 extern __inline __m512
2456 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2457 _mm512_min_round_ps (__m512 __A
, __m512 __B
, const int __R
)
2459 return (__m512
) __builtin_ia32_minps512_mask ((__v16sf
) __A
,
2462 _mm512_setzero_ps (),
2463 (__mmask16
) -1, __R
);
2466 extern __inline __m512
2467 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2468 _mm512_mask_min_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
2469 __m512 __B
, const int __R
)
2471 return (__m512
) __builtin_ia32_minps512_mask ((__v16sf
) __A
,
2474 (__mmask16
) __U
, __R
);
2477 extern __inline __m512
2478 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2479 _mm512_maskz_min_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, const int __R
)
2481 return (__m512
) __builtin_ia32_minps512_mask ((__v16sf
) __A
,
2484 _mm512_setzero_ps (),
2485 (__mmask16
) __U
, __R
);
2488 #define _mm512_max_round_pd(A, B, R) \
2489 (__m512d)__builtin_ia32_maxpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), -1, R)
2491 #define _mm512_mask_max_round_pd(W, U, A, B, R) \
2492 (__m512d)__builtin_ia32_maxpd512_mask(A, B, W, U, R)
2494 #define _mm512_maskz_max_round_pd(U, A, B, R) \
2495 (__m512d)__builtin_ia32_maxpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, R)
2497 #define _mm512_max_round_ps(A, B, R) \
2498 (__m512)__builtin_ia32_maxps512_mask(A, B, (__v16sf)_mm512_setzero_pd(), -1, R)
2500 #define _mm512_mask_max_round_ps(W, U, A, B, R) \
2501 (__m512)__builtin_ia32_maxps512_mask(A, B, W, U, R)
2503 #define _mm512_maskz_max_round_ps(U, A, B, R) \
2504 (__m512)__builtin_ia32_maxps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, R)
2506 #define _mm512_min_round_pd(A, B, R) \
2507 (__m512d)__builtin_ia32_minpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), -1, R)
2509 #define _mm512_mask_min_round_pd(W, U, A, B, R) \
2510 (__m512d)__builtin_ia32_minpd512_mask(A, B, W, U, R)
2512 #define _mm512_maskz_min_round_pd(U, A, B, R) \
2513 (__m512d)__builtin_ia32_minpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, R)
2515 #define _mm512_min_round_ps(A, B, R) \
2516 (__m512)__builtin_ia32_minps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), -1, R)
2518 #define _mm512_mask_min_round_ps(W, U, A, B, R) \
2519 (__m512)__builtin_ia32_minps512_mask(A, B, W, U, R)
2521 #define _mm512_maskz_min_round_ps(U, A, B, R) \
2522 (__m512)__builtin_ia32_minps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, R)
2526 extern __inline __m512d
2527 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2528 _mm512_scalef_round_pd (__m512d __A
, __m512d __B
, const int __R
)
2530 return (__m512d
) __builtin_ia32_scalefpd512_mask ((__v8df
) __A
,
2533 _mm512_setzero_pd (),
2534 (__mmask8
) -1, __R
);
2537 extern __inline __m512d
2538 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2539 _mm512_mask_scalef_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
2540 __m512d __B
, const int __R
)
2542 return (__m512d
) __builtin_ia32_scalefpd512_mask ((__v8df
) __A
,
2545 (__mmask8
) __U
, __R
);
2548 extern __inline __m512d
2549 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2550 _mm512_maskz_scalef_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2553 return (__m512d
) __builtin_ia32_scalefpd512_mask ((__v8df
) __A
,
2556 _mm512_setzero_pd (),
2557 (__mmask8
) __U
, __R
);
2560 extern __inline __m512
2561 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2562 _mm512_scalef_round_ps (__m512 __A
, __m512 __B
, const int __R
)
2564 return (__m512
) __builtin_ia32_scalefps512_mask ((__v16sf
) __A
,
2567 _mm512_setzero_ps (),
2568 (__mmask16
) -1, __R
);
2571 extern __inline __m512
2572 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2573 _mm512_mask_scalef_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
2574 __m512 __B
, const int __R
)
2576 return (__m512
) __builtin_ia32_scalefps512_mask ((__v16sf
) __A
,
2579 (__mmask16
) __U
, __R
);
2582 extern __inline __m512
2583 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2584 _mm512_maskz_scalef_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
2587 return (__m512
) __builtin_ia32_scalefps512_mask ((__v16sf
) __A
,
2590 _mm512_setzero_ps (),
2591 (__mmask16
) __U
, __R
);
2594 extern __inline __m128d
2595 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2596 _mm_scalef_round_sd (__m128d __A
, __m128d __B
, const int __R
)
2598 return (__m128d
) __builtin_ia32_scalefsd_round ((__v2df
) __A
,
2603 extern __inline __m128
2604 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2605 _mm_scalef_round_ss (__m128 __A
, __m128 __B
, const int __R
)
2607 return (__m128
) __builtin_ia32_scalefss_round ((__v4sf
) __A
,
2612 #define _mm512_scalef_round_pd(A, B, C) \
2613 (__m512d)__builtin_ia32_scalefpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), -1, C)
2615 #define _mm512_mask_scalef_round_pd(W, U, A, B, C) \
2616 (__m512d)__builtin_ia32_scalefpd512_mask(A, B, W, U, C)
2618 #define _mm512_maskz_scalef_round_pd(U, A, B, C) \
2619 (__m512d)__builtin_ia32_scalefpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
2621 #define _mm512_scalef_round_ps(A, B, C) \
2622 (__m512)__builtin_ia32_scalefps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), -1, C)
2624 #define _mm512_mask_scalef_round_ps(W, U, A, B, C) \
2625 (__m512)__builtin_ia32_scalefps512_mask(A, B, W, U, C)
2627 #define _mm512_maskz_scalef_round_ps(U, A, B, C) \
2628 (__m512)__builtin_ia32_scalefps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
2630 #define _mm_scalef_round_sd(A, B, C) \
2631 (__m128d)__builtin_ia32_scalefsd_round(A, B, C)
2633 #define _mm_scalef_round_ss(A, B, C) \
2634 (__m128)__builtin_ia32_scalefss_round(A, B, C)
2638 extern __inline __m512d
2639 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2640 _mm512_fmadd_round_pd (__m512d __A
, __m512d __B
, __m512d __C
, const int __R
)
2642 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
2645 (__mmask8
) -1, __R
);
2648 extern __inline __m512d
2649 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2650 _mm512_mask_fmadd_round_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
2651 __m512d __C
, const int __R
)
2653 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
2656 (__mmask8
) __U
, __R
);
2659 extern __inline __m512d
2660 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2661 _mm512_mask3_fmadd_round_pd (__m512d __A
, __m512d __B
, __m512d __C
,
2662 __mmask8 __U
, const int __R
)
2664 return (__m512d
) __builtin_ia32_vfmaddpd512_mask3 ((__v8df
) __A
,
2667 (__mmask8
) __U
, __R
);
2670 extern __inline __m512d
2671 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2672 _mm512_maskz_fmadd_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2673 __m512d __C
, const int __R
)
2675 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz ((__v8df
) __A
,
2678 (__mmask8
) __U
, __R
);
2681 extern __inline __m512
2682 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2683 _mm512_fmadd_round_ps (__m512 __A
, __m512 __B
, __m512 __C
, const int __R
)
2685 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
2688 (__mmask16
) -1, __R
);
2691 extern __inline __m512
2692 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2693 _mm512_mask_fmadd_round_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
2694 __m512 __C
, const int __R
)
2696 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
2699 (__mmask16
) __U
, __R
);
2702 extern __inline __m512
2703 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2704 _mm512_mask3_fmadd_round_ps (__m512 __A
, __m512 __B
, __m512 __C
,
2705 __mmask16 __U
, const int __R
)
2707 return (__m512
) __builtin_ia32_vfmaddps512_mask3 ((__v16sf
) __A
,
2710 (__mmask16
) __U
, __R
);
2713 extern __inline __m512
2714 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2715 _mm512_maskz_fmadd_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
2716 __m512 __C
, const int __R
)
2718 return (__m512
) __builtin_ia32_vfmaddps512_maskz ((__v16sf
) __A
,
2721 (__mmask16
) __U
, __R
);
2724 extern __inline __m512d
2725 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2726 _mm512_fmsub_round_pd (__m512d __A
, __m512d __B
, __m512d __C
, const int __R
)
2728 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
2731 (__mmask8
) -1, __R
);
2734 extern __inline __m512d
2735 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2736 _mm512_mask_fmsub_round_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
2737 __m512d __C
, const int __R
)
2739 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
2742 (__mmask8
) __U
, __R
);
2745 extern __inline __m512d
2746 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2747 _mm512_mask3_fmsub_round_pd (__m512d __A
, __m512d __B
, __m512d __C
,
2748 __mmask8 __U
, const int __R
)
2750 return (__m512d
) __builtin_ia32_vfmsubpd512_mask3 ((__v8df
) __A
,
2753 (__mmask8
) __U
, __R
);
2756 extern __inline __m512d
2757 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2758 _mm512_maskz_fmsub_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2759 __m512d __C
, const int __R
)
2761 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz ((__v8df
) __A
,
2764 (__mmask8
) __U
, __R
);
2767 extern __inline __m512
2768 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2769 _mm512_fmsub_round_ps (__m512 __A
, __m512 __B
, __m512 __C
, const int __R
)
2771 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
2774 (__mmask16
) -1, __R
);
2777 extern __inline __m512
2778 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2779 _mm512_mask_fmsub_round_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
2780 __m512 __C
, const int __R
)
2782 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
2785 (__mmask16
) __U
, __R
);
2788 extern __inline __m512
2789 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2790 _mm512_mask3_fmsub_round_ps (__m512 __A
, __m512 __B
, __m512 __C
,
2791 __mmask16 __U
, const int __R
)
2793 return (__m512
) __builtin_ia32_vfmsubps512_mask3 ((__v16sf
) __A
,
2796 (__mmask16
) __U
, __R
);
2799 extern __inline __m512
2800 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2801 _mm512_maskz_fmsub_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
2802 __m512 __C
, const int __R
)
2804 return (__m512
) __builtin_ia32_vfmaddps512_maskz ((__v16sf
) __A
,
2807 (__mmask16
) __U
, __R
);
2810 extern __inline __m512d
2811 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2812 _mm512_fmaddsub_round_pd (__m512d __A
, __m512d __B
, __m512d __C
, const int __R
)
2814 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
2817 (__mmask8
) -1, __R
);
2820 extern __inline __m512d
2821 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2822 _mm512_mask_fmaddsub_round_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
2823 __m512d __C
, const int __R
)
2825 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
2828 (__mmask8
) __U
, __R
);
2831 extern __inline __m512d
2832 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2833 _mm512_mask3_fmaddsub_round_pd (__m512d __A
, __m512d __B
, __m512d __C
,
2834 __mmask8 __U
, const int __R
)
2836 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask3 ((__v8df
) __A
,
2839 (__mmask8
) __U
, __R
);
2842 extern __inline __m512d
2843 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2844 _mm512_maskz_fmaddsub_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2845 __m512d __C
, const int __R
)
2847 return (__m512d
) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df
) __A
,
2850 (__mmask8
) __U
, __R
);
2853 extern __inline __m512
2854 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2855 _mm512_fmaddsub_round_ps (__m512 __A
, __m512 __B
, __m512 __C
, const int __R
)
2857 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
2860 (__mmask16
) -1, __R
);
2863 extern __inline __m512
2864 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2865 _mm512_mask_fmaddsub_round_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
2866 __m512 __C
, const int __R
)
2868 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
2871 (__mmask16
) __U
, __R
);
2874 extern __inline __m512
2875 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2876 _mm512_mask3_fmaddsub_round_ps (__m512 __A
, __m512 __B
, __m512 __C
,
2877 __mmask16 __U
, const int __R
)
2879 return (__m512
) __builtin_ia32_vfmaddsubps512_mask3 ((__v16sf
) __A
,
2882 (__mmask16
) __U
, __R
);
2885 extern __inline __m512
2886 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2887 _mm512_maskz_fmaddsub_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
2888 __m512 __C
, const int __R
)
2890 return (__m512
) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf
) __A
,
2893 (__mmask16
) __U
, __R
);
2896 extern __inline __m512d
2897 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2898 _mm512_fmsubadd_round_pd (__m512d __A
, __m512d __B
, __m512d __C
, const int __R
)
2900 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
2903 (__mmask8
) -1, __R
);
2906 extern __inline __m512d
2907 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2908 _mm512_mask_fmsubadd_round_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
2909 __m512d __C
, const int __R
)
2911 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
2914 (__mmask8
) __U
, __R
);
2917 extern __inline __m512d
2918 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2919 _mm512_mask3_fmsubadd_round_pd (__m512d __A
, __m512d __B
, __m512d __C
,
2920 __mmask8 __U
, const int __R
)
2922 return (__m512d
) __builtin_ia32_vfmsubaddpd512_mask3 ((__v8df
) __A
,
2925 (__mmask8
) __U
, __R
);
2928 extern __inline __m512d
2929 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2930 _mm512_maskz_fmsubadd_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2931 __m512d __C
, const int __R
)
2933 return (__m512d
) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df
) __A
,
2936 (__mmask8
) __U
, __R
);
2939 extern __inline __m512
2940 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2941 _mm512_fmsubadd_round_ps (__m512 __A
, __m512 __B
, __m512 __C
, const int __R
)
2943 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
2946 (__mmask16
) -1, __R
);
2949 extern __inline __m512
2950 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2951 _mm512_mask_fmsubadd_round_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
2952 __m512 __C
, const int __R
)
2954 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
2957 (__mmask16
) __U
, __R
);
2960 extern __inline __m512
2961 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2962 _mm512_mask3_fmsubadd_round_ps (__m512 __A
, __m512 __B
, __m512 __C
,
2963 __mmask16 __U
, const int __R
)
2965 return (__m512
) __builtin_ia32_vfmsubaddps512_mask3 ((__v16sf
) __A
,
2968 (__mmask16
) __U
, __R
);
2971 extern __inline __m512
2972 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2973 _mm512_maskz_fmsubadd_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
2974 __m512 __C
, const int __R
)
2976 return (__m512
) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf
) __A
,
2979 (__mmask16
) __U
, __R
);
2982 extern __inline __m512d
2983 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2984 _mm512_fnmadd_round_pd (__m512d __A
, __m512d __B
, __m512d __C
, const int __R
)
2986 return (__m512d
) __builtin_ia32_vfmaddpd512_mask (-(__v8df
) __A
,
2989 (__mmask8
) -1, __R
);
2992 extern __inline __m512d
2993 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2994 _mm512_mask_fnmadd_round_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
2995 __m512d __C
, const int __R
)
2997 return (__m512d
) __builtin_ia32_vfnmaddpd512_mask ((__v8df
) __A
,
3000 (__mmask8
) __U
, __R
);
3003 extern __inline __m512d
3004 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3005 _mm512_mask3_fnmadd_round_pd (__m512d __A
, __m512d __B
, __m512d __C
,
3006 __mmask8 __U
, const int __R
)
3008 return (__m512d
) __builtin_ia32_vfmaddpd512_mask3 (-(__v8df
) __A
,
3011 (__mmask8
) __U
, __R
);
3014 extern __inline __m512d
3015 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3016 _mm512_maskz_fnmadd_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
3017 __m512d __C
, const int __R
)
3019 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz (-(__v8df
) __A
,
3022 (__mmask8
) __U
, __R
);
3025 extern __inline __m512
3026 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3027 _mm512_fnmadd_round_ps (__m512 __A
, __m512 __B
, __m512 __C
, const int __R
)
3029 return (__m512
) __builtin_ia32_vfmaddps512_mask (-(__v16sf
) __A
,
3032 (__mmask16
) -1, __R
);
3035 extern __inline __m512
3036 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3037 _mm512_mask_fnmadd_round_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
3038 __m512 __C
, const int __R
)
3040 return (__m512
) __builtin_ia32_vfnmaddps512_mask ((__v16sf
) __A
,
3043 (__mmask16
) __U
, __R
);
3046 extern __inline __m512
3047 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3048 _mm512_mask3_fnmadd_round_ps (__m512 __A
, __m512 __B
, __m512 __C
,
3049 __mmask16 __U
, const int __R
)
3051 return (__m512
) __builtin_ia32_vfmaddps512_mask3 (-(__v16sf
) __A
,
3054 (__mmask16
) __U
, __R
);
3057 extern __inline __m512
3058 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3059 _mm512_maskz_fnmadd_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
3060 __m512 __C
, const int __R
)
3062 return (__m512
) __builtin_ia32_vfmaddps512_maskz (-(__v16sf
) __A
,
3065 (__mmask16
) __U
, __R
);
3068 extern __inline __m512d
3069 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3070 _mm512_fnmsub_round_pd (__m512d __A
, __m512d __B
, __m512d __C
, const int __R
)
3072 return (__m512d
) __builtin_ia32_vfmaddpd512_mask (-(__v8df
) __A
,
3075 (__mmask8
) -1, __R
);
3078 extern __inline __m512d
3079 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3080 _mm512_mask_fnmsub_round_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
3081 __m512d __C
, const int __R
)
3083 return (__m512d
) __builtin_ia32_vfnmsubpd512_mask ((__v8df
) __A
,
3086 (__mmask8
) __U
, __R
);
3089 extern __inline __m512d
3090 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3091 _mm512_mask3_fnmsub_round_pd (__m512d __A
, __m512d __B
, __m512d __C
,
3092 __mmask8 __U
, const int __R
)
3094 return (__m512d
) __builtin_ia32_vfnmsubpd512_mask3 ((__v8df
) __A
,
3097 (__mmask8
) __U
, __R
);
3100 extern __inline __m512d
3101 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3102 _mm512_maskz_fnmsub_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
3103 __m512d __C
, const int __R
)
3105 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz (-(__v8df
) __A
,
3108 (__mmask8
) __U
, __R
);
3111 extern __inline __m512
3112 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3113 _mm512_fnmsub_round_ps (__m512 __A
, __m512 __B
, __m512 __C
, const int __R
)
3115 return (__m512
) __builtin_ia32_vfmaddps512_mask (-(__v16sf
) __A
,
3118 (__mmask16
) -1, __R
);
3121 extern __inline __m512
3122 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3123 _mm512_mask_fnmsub_round_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
3124 __m512 __C
, const int __R
)
3126 return (__m512
) __builtin_ia32_vfnmsubps512_mask ((__v16sf
) __A
,
3129 (__mmask16
) __U
, __R
);
3132 extern __inline __m512
3133 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3134 _mm512_mask3_fnmsub_round_ps (__m512 __A
, __m512 __B
, __m512 __C
,
3135 __mmask16 __U
, const int __R
)
3137 return (__m512
) __builtin_ia32_vfnmsubps512_mask3 ((__v16sf
) __A
,
3140 (__mmask16
) __U
, __R
);
3143 extern __inline __m512
3144 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3145 _mm512_maskz_fnmsub_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
3146 __m512 __C
, const int __R
)
3148 return (__m512
) __builtin_ia32_vfmaddps512_maskz (-(__v16sf
) __A
,
3151 (__mmask16
) __U
, __R
);
3154 #define _mm512_fmadd_round_pd(A, B, C, R) \
3155 (__m512d)__builtin_ia32_vfmaddpd512_mask(A, B, C, -1, R)
3157 #define _mm512_mask_fmadd_round_pd(A, U, B, C, R) \
3158 (__m512d)__builtin_ia32_vfmaddpd512_mask(A, B, C, U, R)
3160 #define _mm512_mask3_fmadd_round_pd(A, B, C, U, R) \
3161 (__m512d)__builtin_ia32_vfmaddpd512_mask3(A, B, C, U, R)
3163 #define _mm512_maskz_fmadd_round_pd(U, A, B, C, R) \
3164 (__m512d)__builtin_ia32_vfmaddpd512_maskz(A, B, C, U, R)
3166 #define _mm512_fmadd_round_ps(A, B, C, R) \
3167 (__m512)__builtin_ia32_vfmaddps512_mask(A, B, C, -1, R)
3169 #define _mm512_mask_fmadd_round_ps(A, U, B, C, R) \
3170 (__m512)__builtin_ia32_vfmaddps512_mask(A, B, C, U, R)
3172 #define _mm512_mask3_fmadd_round_ps(A, B, C, U, R) \
3173 (__m512)__builtin_ia32_vfmaddps512_mask3(A, B, C, U, R)
3175 #define _mm512_maskz_fmadd_round_ps(U, A, B, C, R) \
3176 (__m512)__builtin_ia32_vfmaddps512_maskz(A, B, C, U, R)
3178 #define _mm512_fmsub_round_pd(A, B, C, R) \
3179 (__m512d)__builtin_ia32_vfmaddpd512_mask(A, B, -(C), -1, R)
3181 #define _mm512_mask_fmsub_round_pd(A, U, B, C, R) \
3182 (__m512d)__builtin_ia32_vfmaddpd512_mask(A, B, -(C), U, R)
3184 #define _mm512_mask3_fmsub_round_pd(A, B, C, U, R) \
3185 (__m512d)__builtin_ia32_vfmsubpd512_mask3(A, B, C, U, R)
3187 #define _mm512_maskz_fmsub_round_pd(U, A, B, C, R) \
3188 (__m512d)__builtin_ia32_vfmaddpd512_maskz(A, B, -(C), U, R)
3190 #define _mm512_fmsub_round_ps(A, B, C, R) \
3191 (__m512)__builtin_ia32_vfmaddps512_mask(A, B, -(C), -1, R)
3193 #define _mm512_mask_fmsub_round_ps(A, U, B, C, R) \
3194 (__m512)__builtin_ia32_vfmaddps512_mask(A, B, -(C), U, R)
3196 #define _mm512_mask3_fmsub_round_ps(A, B, C, U, R) \
3197 (__m512)__builtin_ia32_vfmsubps512_mask3(A, B, C, U, R)
3199 #define _mm512_maskz_fmsub_round_ps(U, A, B, C, R) \
3200 (__m512)__builtin_ia32_vfmaddps512_maskz(A, B, -(C), U, R)
3202 #define _mm512_fmaddsub_round_pd(A, B, C, R) \
3203 (__m512d)__builtin_ia32_vfmaddsubpd512_mask(A, B, C, -1, R)
3205 #define _mm512_mask_fmaddsub_round_pd(A, U, B, C, R) \
3206 (__m512d)__builtin_ia32_vfmaddpd512_mask(A, B, C, U, R)
3208 #define _mm512_mask3_fmaddsub_round_pd(A, B, C, U, R) \
3209 (__m512d)__builtin_ia32_vfmaddsubpd512_mask3(A, B, C, U, R)
3211 #define _mm512_maskz_fmaddsub_round_pd(U, A, B, C, R) \
3212 (__m512d)__builtin_ia32_vfmaddsubpd512_maskz(A, B, C, U, R)
3214 #define _mm512_fmaddsub_round_ps(A, B, C, R) \
3215 (__m512)__builtin_ia32_vfmaddsubps512_mask(A, B, C, -1, R)
3217 #define _mm512_mask_fmaddsub_round_ps(A, U, B, C, R) \
3218 (__m512)__builtin_ia32_vfmaddsubps512_mask(A, B, C, U, R)
3220 #define _mm512_mask3_fmaddsub_round_ps(A, B, C, U, R) \
3221 (__m512)__builtin_ia32_vfmaddsubps512_mask3(A, B, C, U, R)
3223 #define _mm512_maskz_fmaddsub_round_ps(U, A, B, C, R) \
3224 (__m512)__builtin_ia32_vfmaddsubps512_maskz(A, B, C, U, R)
3226 #define _mm512_fmsubadd_round_pd(A, B, C, R) \
3227 (__m512d)__builtin_ia32_vfmaddsubpd512_mask(A, B, -(C), -1, R)
3229 #define _mm512_mask_fmsubadd_round_pd(A, U, B, C, R) \
3230 (__m512d)__builtin_ia32_vfmaddsubpd512_mask(A, B, -(C), U, R)
3232 #define _mm512_mask3_fmsubadd_round_pd(A, B, C, U, R) \
3233 (__m512d)__builtin_ia32_vfmsubaddpd512_mask3(A, B, C, U, R)
3235 #define _mm512_maskz_fmsubadd_round_pd(U, A, B, C, R) \
3236 (__m512d)__builtin_ia32_vfmaddsubpd512_maskz(A, B, -(C), U, R)
3238 #define _mm512_fmsubadd_round_ps(A, B, C, R) \
3239 (__m512)__builtin_ia32_vfmaddsubps512_mask(A, B, -(C), -1, R)
3241 #define _mm512_mask_fmsubadd_round_ps(A, U, B, C, R) \
3242 (__m512)__builtin_ia32_vfmaddsubps512_mask(A, B, -(C), U, R)
3244 #define _mm512_mask3_fmsubadd_round_ps(A, B, C, U, R) \
3245 (__m512)__builtin_ia32_vfmsubaddps512_mask3(A, B, C, U, R)
3247 #define _mm512_maskz_fmsubadd_round_ps(U, A, B, C, R) \
3248 (__m512)__builtin_ia32_vfmaddsubps512_maskz(A, B, -(C), U, R)
3250 #define _mm512_fnmadd_round_pd(A, B, C, R) \
3251 (__m512d)__builtin_ia32_vfmaddpd512_mask(-(A), B, C, -1, R)
3253 #define _mm512_mask_fnmadd_round_pd(A, U, B, C, R) \
3254 (__m512d)__builtin_ia32_vfnmaddpd512_mask(-(A), B, C, U, R)
3256 #define _mm512_mask3_fnmadd_round_pd(A, B, C, U, R) \
3257 (__m512d)__builtin_ia32_vfmaddpd512_mask3(-(A), B, C, U, R)
3259 #define _mm512_maskz_fnmadd_round_pd(U, A, B, C, R) \
3260 (__m512d)__builtin_ia32_vfmaddpd512_maskz(-(A), B, C, U, R)
3262 #define _mm512_fnmadd_round_ps(A, B, C, R) \
3263 (__m512)__builtin_ia32_vfmaddps512_mask(-(A), B, C, -1, R)
3265 #define _mm512_mask_fnmadd_round_ps(A, U, B, C, R) \
3266 (__m512)__builtin_ia32_vfnmaddps512_mask(-(A), B, C, U, R)
3268 #define _mm512_mask3_fnmadd_round_ps(A, B, C, U, R) \
3269 (__m512)__builtin_ia32_vfmaddps512_mask3(-(A), B, C, U, R)
3271 #define _mm512_maskz_fnmadd_round_ps(U, A, B, C, R) \
3272 (__m512)__builtin_ia32_vfmaddps512_maskz(-(A), B, C, U, R)
3274 #define _mm512_fnmsub_round_pd(A, B, C, R) \
3275 (__m512d)__builtin_ia32_vfmaddpd512_mask(-(A), B, -(C), -1, R)
3277 #define _mm512_mask_fnmsub_round_pd(A, U, B, C, R) \
3278 (__m512d)__builtin_ia32_vfnmsubpd512_mask(A, B, C, U, R)
3280 #define _mm512_mask3_fnmsub_round_pd(A, B, C, U, R) \
3281 (__m512d)__builtin_ia32_vfnmsubpd512_mask3(A, B, C, U, R)
3283 #define _mm512_maskz_fnmsub_round_pd(U, A, B, C, R) \
3284 (__m512d)__builtin_ia32_vfmaddpd512_maskz(-(A), B, -(C), U, R)
3286 #define _mm512_fnmsub_round_ps(A, B, C, R) \
3287 (__m512)__builtin_ia32_vfmaddps512_mask(-(A), B, -(C), -1, R)
3289 #define _mm512_mask_fnmsub_round_ps(A, U, B, C, R) \
3290 (__m512)__builtin_ia32_vfnmsubps512_mask(A, B, C, U, R)
3292 #define _mm512_mask3_fnmsub_round_ps(A, B, C, U, R) \
3293 (__m512)__builtin_ia32_vfnmsubps512_mask3(A, B, C, U, R)
3295 #define _mm512_maskz_fnmsub_round_ps(U, A, B, C, R) \
3296 (__m512)__builtin_ia32_vfmaddps512_maskz(-(A), B, -(C), U, R)
3299 extern __inline __m512i
3300 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3301 _mm512_abs_epi64 (__m512i __A
)
3303 return (__m512i
) __builtin_ia32_pabsq512_mask ((__v8di
) __A
,
3305 _mm512_setzero_si512 (),
3309 extern __inline __m512i
3310 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3311 _mm512_mask_abs_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
)
3313 return (__m512i
) __builtin_ia32_pabsq512_mask ((__v8di
) __A
,
3318 extern __inline __m512i
3319 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3320 _mm512_maskz_abs_epi64 (__mmask8 __U
, __m512i __A
)
3322 return (__m512i
) __builtin_ia32_pabsq512_mask ((__v8di
) __A
,
3324 _mm512_setzero_si512 (),
3328 extern __inline __m512i
3329 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3330 _mm512_abs_epi32 (__m512i __A
)
3332 return (__m512i
) __builtin_ia32_pabsd512_mask ((__v16si
) __A
,
3334 _mm512_setzero_si512 (),
3338 extern __inline __m512i
3339 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3340 _mm512_mask_abs_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
)
3342 return (__m512i
) __builtin_ia32_pabsd512_mask ((__v16si
) __A
,
3347 extern __inline __m512i
3348 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3349 _mm512_maskz_abs_epi32 (__mmask16 __U
, __m512i __A
)
3351 return (__m512i
) __builtin_ia32_pabsd512_mask ((__v16si
) __A
,
3353 _mm512_setzero_si512 (),
3357 extern __inline __m512
3358 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3359 _mm512_broadcastss_ps (__m128 __A
)
3362 return (__m512
) __builtin_ia32_broadcastss512 ((__v4sf
) __A
, __O
,
3366 extern __inline __m512
3367 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3368 _mm512_mask_broadcastss_ps (__m512 __O
, __mmask16 __M
, __m128 __A
)
3370 return (__m512
) __builtin_ia32_broadcastss512 ((__v4sf
) __A
,
3371 (__v16sf
) __O
, __M
);
3374 extern __inline __m512
3375 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3376 _mm512_maskz_broadcastss_ps (__mmask16 __M
, __m128 __A
)
3378 return (__m512
) __builtin_ia32_broadcastss512 ((__v4sf
) __A
,
3380 _mm512_setzero_ps (),
3384 extern __inline __m512d
3385 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3386 _mm512_broadcastsd_pd (__m128d __A
)
3389 return (__m512d
) __builtin_ia32_broadcastsd512 ((__v2df
) __A
, __O
,
3393 extern __inline __m512d
3394 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3395 _mm512_mask_broadcastsd_pd (__m512d __O
, __mmask8 __M
, __m128d __A
)
3397 return (__m512d
) __builtin_ia32_broadcastsd512 ((__v2df
) __A
,
3401 extern __inline __m512d
3402 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3403 _mm512_maskz_broadcastsd_pd (__mmask8 __M
, __m128d __A
)
3405 return (__m512d
) __builtin_ia32_broadcastsd512 ((__v2df
) __A
,
3407 _mm512_setzero_pd (),
3411 extern __inline __m512i
3412 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3413 _mm512_broadcastd_epi32 (__m128i __A
)
3416 return (__m512i
) __builtin_ia32_pbroadcastd512 ((__v4si
) __A
, __O
,
3420 extern __inline __m512i
3421 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3422 _mm512_mask_broadcastd_epi32 (__m512i __O
, __mmask16 __M
, __m128i __A
)
3424 return (__m512i
) __builtin_ia32_pbroadcastd512 ((__v4si
) __A
,
3425 (__v16si
) __O
, __M
);
3428 extern __inline __m512i
3429 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3430 _mm512_maskz_broadcastd_epi32 (__mmask16 __M
, __m128i __A
)
3432 return (__m512i
) __builtin_ia32_pbroadcastd512 ((__v4si
) __A
,
3434 _mm512_setzero_si512 (),
3438 extern __inline __m512i
3439 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3440 _mm512_set1_epi32 (int __A
)
3443 return (__m512i
) __builtin_ia32_pbroadcastd512_gpr_mask (__A
, __O
,
3447 extern __inline __m512i
3448 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3449 _mm512_mask_set1_epi32 (__m512i __O
, __mmask16 __M
, int __A
)
3451 return (__m512i
) __builtin_ia32_pbroadcastd512_gpr_mask (__A
, (__v16si
) __O
,
3455 extern __inline __m512i
3456 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3457 _mm512_maskz_set1_epi32 (__mmask16 __M
, int __A
)
3460 __builtin_ia32_pbroadcastd512_gpr_mask (__A
,
3461 (__v16si
) _mm512_setzero_si512 (),
3465 extern __inline __m512i
3466 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3467 _mm512_broadcastq_epi64 (__m128i __A
)
3470 return (__m512i
) __builtin_ia32_pbroadcastq512 ((__v2di
) __A
, __O
,
3474 extern __inline __m512i
3475 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3476 _mm512_mask_broadcastq_epi64 (__m512i __O
, __mmask8 __M
, __m128i __A
)
3478 return (__m512i
) __builtin_ia32_pbroadcastq512 ((__v2di
) __A
,
3482 extern __inline __m512i
3483 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3484 _mm512_maskz_broadcastq_epi64 (__mmask8 __M
, __m128i __A
)
3486 return (__m512i
) __builtin_ia32_pbroadcastq512 ((__v2di
) __A
,
3488 _mm512_setzero_si512 (),
3492 extern __inline __m512i
3493 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3494 _mm512_set1_epi64 (long long __A
)
3498 return (__m512i
) __builtin_ia32_pbroadcastq512_gpr_mask (__A
, __O
,
3501 return (__m512i
) __builtin_ia32_pbroadcastq512_mem_mask (__A
, __O
,
3506 extern __inline __m512i
3507 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3508 _mm512_mask_set1_epi64 (__m512i __O
, __mmask8 __M
, long long __A
)
3511 return (__m512i
) __builtin_ia32_pbroadcastq512_gpr_mask (__A
, (__v8di
) __O
,
3514 return (__m512i
) __builtin_ia32_pbroadcastq512_mem_mask (__A
, (__v8di
) __O
,
3519 extern __inline __m512i
3520 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3521 _mm512_maskz_set1_epi64 (__mmask8 __M
, long long __A
)
3525 __builtin_ia32_pbroadcastq512_gpr_mask (__A
,
3526 (__v8di
) _mm512_setzero_si512 (),
3530 __builtin_ia32_pbroadcastq512_mem_mask (__A
,
3531 (__v8di
) _mm512_setzero_si512 (),
3536 extern __inline __m512
3537 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3538 _mm512_broadcast_f32x4 (__m128 __A
)
3541 return (__m512
) __builtin_ia32_broadcastf32x4_512 ((__v4sf
) __A
, __O
,
3545 extern __inline __m512
3546 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3547 _mm512_mask_broadcast_f32x4 (__m512 __O
, __mmask16 __M
, __m128 __A
)
3549 return (__m512
) __builtin_ia32_broadcastf32x4_512 ((__v4sf
) __A
,
3554 extern __inline __m512
3555 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3556 _mm512_maskz_broadcast_f32x4 (__mmask16 __M
, __m128 __A
)
3558 return (__m512
) __builtin_ia32_broadcastf32x4_512 ((__v4sf
) __A
,
3560 _mm512_setzero_ps (),
3564 extern __inline __m512i
3565 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3566 _mm512_broadcast_i32x4 (__m128i __A
)
3569 return (__m512i
) __builtin_ia32_broadcasti32x4_512 ((__v4si
) __A
,
3574 extern __inline __m512i
3575 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3576 _mm512_mask_broadcast_i32x4 (__m512i __O
, __mmask16 __M
, __m128i __A
)
3578 return (__m512i
) __builtin_ia32_broadcasti32x4_512 ((__v4si
) __A
,
3583 extern __inline __m512i
3584 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3585 _mm512_maskz_broadcast_i32x4 (__mmask16 __M
, __m128i __A
)
3587 return (__m512i
) __builtin_ia32_broadcasti32x4_512 ((__v4si
) __A
,
3589 _mm512_setzero_si512 (),
3593 extern __inline __m512d
3594 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3595 _mm512_broadcast_f64x4 (__m256d __A
)
3598 return (__m512d
) __builtin_ia32_broadcastf64x4_512 ((__v4df
) __A
,
3603 extern __inline __m512d
3604 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3605 _mm512_mask_broadcast_f64x4 (__m512d __O
, __mmask8 __M
, __m256d __A
)
3607 return (__m512d
) __builtin_ia32_broadcastf64x4_512 ((__v4df
) __A
,
3612 extern __inline __m512d
3613 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3614 _mm512_maskz_broadcast_f64x4 (__mmask8 __M
, __m256d __A
)
3616 return (__m512d
) __builtin_ia32_broadcastf64x4_512 ((__v4df
) __A
,
3618 _mm512_setzero_pd (),
3622 extern __inline __m512i
3623 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3624 _mm512_broadcast_i64x4 (__m256i __A
)
3627 return (__m512i
) __builtin_ia32_broadcasti64x4_512 ((__v4di
) __A
,
3632 extern __inline __m512i
3633 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3634 _mm512_mask_broadcast_i64x4 (__m512i __O
, __mmask8 __M
, __m256i __A
)
3636 return (__m512i
) __builtin_ia32_broadcasti64x4_512 ((__v4di
) __A
,
3641 extern __inline __m512i
3642 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3643 _mm512_maskz_broadcast_i64x4 (__mmask8 __M
, __m256i __A
)
3645 return (__m512i
) __builtin_ia32_broadcasti64x4_512 ((__v4di
) __A
,
3647 _mm512_setzero_si512 (),
3653 _MM_PERM_AAAA
= 0x00, _MM_PERM_AAAB
= 0x01, _MM_PERM_AAAC
= 0x02,
3654 _MM_PERM_AAAD
= 0x03, _MM_PERM_AABA
= 0x04, _MM_PERM_AABB
= 0x05,
3655 _MM_PERM_AABC
= 0x06, _MM_PERM_AABD
= 0x07, _MM_PERM_AACA
= 0x08,
3656 _MM_PERM_AACB
= 0x09, _MM_PERM_AACC
= 0x0A, _MM_PERM_AACD
= 0x0B,
3657 _MM_PERM_AADA
= 0x0C, _MM_PERM_AADB
= 0x0D, _MM_PERM_AADC
= 0x0E,
3658 _MM_PERM_AADD
= 0x0F, _MM_PERM_ABAA
= 0x10, _MM_PERM_ABAB
= 0x11,
3659 _MM_PERM_ABAC
= 0x12, _MM_PERM_ABAD
= 0x13, _MM_PERM_ABBA
= 0x14,
3660 _MM_PERM_ABBB
= 0x15, _MM_PERM_ABBC
= 0x16, _MM_PERM_ABBD
= 0x17,
3661 _MM_PERM_ABCA
= 0x18, _MM_PERM_ABCB
= 0x19, _MM_PERM_ABCC
= 0x1A,
3662 _MM_PERM_ABCD
= 0x1B, _MM_PERM_ABDA
= 0x1C, _MM_PERM_ABDB
= 0x1D,
3663 _MM_PERM_ABDC
= 0x1E, _MM_PERM_ABDD
= 0x1F, _MM_PERM_ACAA
= 0x20,
3664 _MM_PERM_ACAB
= 0x21, _MM_PERM_ACAC
= 0x22, _MM_PERM_ACAD
= 0x23,
3665 _MM_PERM_ACBA
= 0x24, _MM_PERM_ACBB
= 0x25, _MM_PERM_ACBC
= 0x26,
3666 _MM_PERM_ACBD
= 0x27, _MM_PERM_ACCA
= 0x28, _MM_PERM_ACCB
= 0x29,
3667 _MM_PERM_ACCC
= 0x2A, _MM_PERM_ACCD
= 0x2B, _MM_PERM_ACDA
= 0x2C,
3668 _MM_PERM_ACDB
= 0x2D, _MM_PERM_ACDC
= 0x2E, _MM_PERM_ACDD
= 0x2F,
3669 _MM_PERM_ADAA
= 0x30, _MM_PERM_ADAB
= 0x31, _MM_PERM_ADAC
= 0x32,
3670 _MM_PERM_ADAD
= 0x33, _MM_PERM_ADBA
= 0x34, _MM_PERM_ADBB
= 0x35,
3671 _MM_PERM_ADBC
= 0x36, _MM_PERM_ADBD
= 0x37, _MM_PERM_ADCA
= 0x38,
3672 _MM_PERM_ADCB
= 0x39, _MM_PERM_ADCC
= 0x3A, _MM_PERM_ADCD
= 0x3B,
3673 _MM_PERM_ADDA
= 0x3C, _MM_PERM_ADDB
= 0x3D, _MM_PERM_ADDC
= 0x3E,
3674 _MM_PERM_ADDD
= 0x3F, _MM_PERM_BAAA
= 0x40, _MM_PERM_BAAB
= 0x41,
3675 _MM_PERM_BAAC
= 0x42, _MM_PERM_BAAD
= 0x43, _MM_PERM_BABA
= 0x44,
3676 _MM_PERM_BABB
= 0x45, _MM_PERM_BABC
= 0x46, _MM_PERM_BABD
= 0x47,
3677 _MM_PERM_BACA
= 0x48, _MM_PERM_BACB
= 0x49, _MM_PERM_BACC
= 0x4A,
3678 _MM_PERM_BACD
= 0x4B, _MM_PERM_BADA
= 0x4C, _MM_PERM_BADB
= 0x4D,
3679 _MM_PERM_BADC
= 0x4E, _MM_PERM_BADD
= 0x4F, _MM_PERM_BBAA
= 0x50,
3680 _MM_PERM_BBAB
= 0x51, _MM_PERM_BBAC
= 0x52, _MM_PERM_BBAD
= 0x53,
3681 _MM_PERM_BBBA
= 0x54, _MM_PERM_BBBB
= 0x55, _MM_PERM_BBBC
= 0x56,
3682 _MM_PERM_BBBD
= 0x57, _MM_PERM_BBCA
= 0x58, _MM_PERM_BBCB
= 0x59,
3683 _MM_PERM_BBCC
= 0x5A, _MM_PERM_BBCD
= 0x5B, _MM_PERM_BBDA
= 0x5C,
3684 _MM_PERM_BBDB
= 0x5D, _MM_PERM_BBDC
= 0x5E, _MM_PERM_BBDD
= 0x5F,
3685 _MM_PERM_BCAA
= 0x60, _MM_PERM_BCAB
= 0x61, _MM_PERM_BCAC
= 0x62,
3686 _MM_PERM_BCAD
= 0x63, _MM_PERM_BCBA
= 0x64, _MM_PERM_BCBB
= 0x65,
3687 _MM_PERM_BCBC
= 0x66, _MM_PERM_BCBD
= 0x67, _MM_PERM_BCCA
= 0x68,
3688 _MM_PERM_BCCB
= 0x69, _MM_PERM_BCCC
= 0x6A, _MM_PERM_BCCD
= 0x6B,
3689 _MM_PERM_BCDA
= 0x6C, _MM_PERM_BCDB
= 0x6D, _MM_PERM_BCDC
= 0x6E,
3690 _MM_PERM_BCDD
= 0x6F, _MM_PERM_BDAA
= 0x70, _MM_PERM_BDAB
= 0x71,
3691 _MM_PERM_BDAC
= 0x72, _MM_PERM_BDAD
= 0x73, _MM_PERM_BDBA
= 0x74,
3692 _MM_PERM_BDBB
= 0x75, _MM_PERM_BDBC
= 0x76, _MM_PERM_BDBD
= 0x77,
3693 _MM_PERM_BDCA
= 0x78, _MM_PERM_BDCB
= 0x79, _MM_PERM_BDCC
= 0x7A,
3694 _MM_PERM_BDCD
= 0x7B, _MM_PERM_BDDA
= 0x7C, _MM_PERM_BDDB
= 0x7D,
3695 _MM_PERM_BDDC
= 0x7E, _MM_PERM_BDDD
= 0x7F, _MM_PERM_CAAA
= 0x80,
3696 _MM_PERM_CAAB
= 0x81, _MM_PERM_CAAC
= 0x82, _MM_PERM_CAAD
= 0x83,
3697 _MM_PERM_CABA
= 0x84, _MM_PERM_CABB
= 0x85, _MM_PERM_CABC
= 0x86,
3698 _MM_PERM_CABD
= 0x87, _MM_PERM_CACA
= 0x88, _MM_PERM_CACB
= 0x89,
3699 _MM_PERM_CACC
= 0x8A, _MM_PERM_CACD
= 0x8B, _MM_PERM_CADA
= 0x8C,
3700 _MM_PERM_CADB
= 0x8D, _MM_PERM_CADC
= 0x8E, _MM_PERM_CADD
= 0x8F,
3701 _MM_PERM_CBAA
= 0x90, _MM_PERM_CBAB
= 0x91, _MM_PERM_CBAC
= 0x92,
3702 _MM_PERM_CBAD
= 0x93, _MM_PERM_CBBA
= 0x94, _MM_PERM_CBBB
= 0x95,
3703 _MM_PERM_CBBC
= 0x96, _MM_PERM_CBBD
= 0x97, _MM_PERM_CBCA
= 0x98,
3704 _MM_PERM_CBCB
= 0x99, _MM_PERM_CBCC
= 0x9A, _MM_PERM_CBCD
= 0x9B,
3705 _MM_PERM_CBDA
= 0x9C, _MM_PERM_CBDB
= 0x9D, _MM_PERM_CBDC
= 0x9E,
3706 _MM_PERM_CBDD
= 0x9F, _MM_PERM_CCAA
= 0xA0, _MM_PERM_CCAB
= 0xA1,
3707 _MM_PERM_CCAC
= 0xA2, _MM_PERM_CCAD
= 0xA3, _MM_PERM_CCBA
= 0xA4,
3708 _MM_PERM_CCBB
= 0xA5, _MM_PERM_CCBC
= 0xA6, _MM_PERM_CCBD
= 0xA7,
3709 _MM_PERM_CCCA
= 0xA8, _MM_PERM_CCCB
= 0xA9, _MM_PERM_CCCC
= 0xAA,
3710 _MM_PERM_CCCD
= 0xAB, _MM_PERM_CCDA
= 0xAC, _MM_PERM_CCDB
= 0xAD,
3711 _MM_PERM_CCDC
= 0xAE, _MM_PERM_CCDD
= 0xAF, _MM_PERM_CDAA
= 0xB0,
3712 _MM_PERM_CDAB
= 0xB1, _MM_PERM_CDAC
= 0xB2, _MM_PERM_CDAD
= 0xB3,
3713 _MM_PERM_CDBA
= 0xB4, _MM_PERM_CDBB
= 0xB5, _MM_PERM_CDBC
= 0xB6,
3714 _MM_PERM_CDBD
= 0xB7, _MM_PERM_CDCA
= 0xB8, _MM_PERM_CDCB
= 0xB9,
3715 _MM_PERM_CDCC
= 0xBA, _MM_PERM_CDCD
= 0xBB, _MM_PERM_CDDA
= 0xBC,
3716 _MM_PERM_CDDB
= 0xBD, _MM_PERM_CDDC
= 0xBE, _MM_PERM_CDDD
= 0xBF,
3717 _MM_PERM_DAAA
= 0xC0, _MM_PERM_DAAB
= 0xC1, _MM_PERM_DAAC
= 0xC2,
3718 _MM_PERM_DAAD
= 0xC3, _MM_PERM_DABA
= 0xC4, _MM_PERM_DABB
= 0xC5,
3719 _MM_PERM_DABC
= 0xC6, _MM_PERM_DABD
= 0xC7, _MM_PERM_DACA
= 0xC8,
3720 _MM_PERM_DACB
= 0xC9, _MM_PERM_DACC
= 0xCA, _MM_PERM_DACD
= 0xCB,
3721 _MM_PERM_DADA
= 0xCC, _MM_PERM_DADB
= 0xCD, _MM_PERM_DADC
= 0xCE,
3722 _MM_PERM_DADD
= 0xCF, _MM_PERM_DBAA
= 0xD0, _MM_PERM_DBAB
= 0xD1,
3723 _MM_PERM_DBAC
= 0xD2, _MM_PERM_DBAD
= 0xD3, _MM_PERM_DBBA
= 0xD4,
3724 _MM_PERM_DBBB
= 0xD5, _MM_PERM_DBBC
= 0xD6, _MM_PERM_DBBD
= 0xD7,
3725 _MM_PERM_DBCA
= 0xD8, _MM_PERM_DBCB
= 0xD9, _MM_PERM_DBCC
= 0xDA,
3726 _MM_PERM_DBCD
= 0xDB, _MM_PERM_DBDA
= 0xDC, _MM_PERM_DBDB
= 0xDD,
3727 _MM_PERM_DBDC
= 0xDE, _MM_PERM_DBDD
= 0xDF, _MM_PERM_DCAA
= 0xE0,
3728 _MM_PERM_DCAB
= 0xE1, _MM_PERM_DCAC
= 0xE2, _MM_PERM_DCAD
= 0xE3,
3729 _MM_PERM_DCBA
= 0xE4, _MM_PERM_DCBB
= 0xE5, _MM_PERM_DCBC
= 0xE6,
3730 _MM_PERM_DCBD
= 0xE7, _MM_PERM_DCCA
= 0xE8, _MM_PERM_DCCB
= 0xE9,
3731 _MM_PERM_DCCC
= 0xEA, _MM_PERM_DCCD
= 0xEB, _MM_PERM_DCDA
= 0xEC,
3732 _MM_PERM_DCDB
= 0xED, _MM_PERM_DCDC
= 0xEE, _MM_PERM_DCDD
= 0xEF,
3733 _MM_PERM_DDAA
= 0xF0, _MM_PERM_DDAB
= 0xF1, _MM_PERM_DDAC
= 0xF2,
3734 _MM_PERM_DDAD
= 0xF3, _MM_PERM_DDBA
= 0xF4, _MM_PERM_DDBB
= 0xF5,
3735 _MM_PERM_DDBC
= 0xF6, _MM_PERM_DDBD
= 0xF7, _MM_PERM_DDCA
= 0xF8,
3736 _MM_PERM_DDCB
= 0xF9, _MM_PERM_DDCC
= 0xFA, _MM_PERM_DDCD
= 0xFB,
3737 _MM_PERM_DDDA
= 0xFC, _MM_PERM_DDDB
= 0xFD, _MM_PERM_DDDC
= 0xFE,
3738 _MM_PERM_DDDD
= 0xFF
3742 extern __inline __m512i
3743 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3744 _mm512_shuffle_epi32 (__m512i __A
, _MM_PERM_ENUM __mask
)
3746 return (__m512i
) __builtin_ia32_pshufd512_mask ((__v16si
) __A
,
3749 _mm512_setzero_si512 (),
3753 extern __inline __m512i
3754 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3755 _mm512_mask_shuffle_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
,
3756 _MM_PERM_ENUM __mask
)
3758 return (__m512i
) __builtin_ia32_pshufd512_mask ((__v16si
) __A
,
3764 extern __inline __m512i
3765 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3766 _mm512_maskz_shuffle_epi32 (__mmask16 __U
, __m512i __A
, _MM_PERM_ENUM __mask
)
3768 return (__m512i
) __builtin_ia32_pshufd512_mask ((__v16si
) __A
,
3771 _mm512_setzero_si512 (),
3775 extern __inline __m512i
3776 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3777 _mm512_shuffle_i64x2 (__m512i __A
, __m512i __B
, const int __imm
)
3779 return (__m512i
) __builtin_ia32_shuf_i64x2_mask ((__v8di
) __A
,
3780 (__v8di
) __B
, __imm
,
3782 _mm512_setzero_si512 (),
3786 extern __inline __m512i
3787 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3788 _mm512_mask_shuffle_i64x2 (__m512i __W
, __mmask8 __U
, __m512i __A
,
3789 __m512i __B
, const int __imm
)
3791 return (__m512i
) __builtin_ia32_shuf_i64x2_mask ((__v8di
) __A
,
3792 (__v8di
) __B
, __imm
,
3797 extern __inline __m512i
3798 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3799 _mm512_maskz_shuffle_i64x2 (__mmask8 __U
, __m512i __A
, __m512i __B
,
3802 return (__m512i
) __builtin_ia32_shuf_i64x2_mask ((__v8di
) __A
,
3803 (__v8di
) __B
, __imm
,
3805 _mm512_setzero_si512 (),
3809 extern __inline __m512i
3810 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3811 _mm512_shuffle_i32x4 (__m512i __A
, __m512i __B
, const int __imm
)
3813 return (__m512i
) __builtin_ia32_shuf_i32x4_mask ((__v16si
) __A
,
3817 _mm512_setzero_si512 (),
3821 extern __inline __m512i
3822 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3823 _mm512_mask_shuffle_i32x4 (__m512i __W
, __mmask16 __U
, __m512i __A
,
3824 __m512i __B
, const int __imm
)
3826 return (__m512i
) __builtin_ia32_shuf_i32x4_mask ((__v16si
) __A
,
3833 extern __inline __m512i
3834 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3835 _mm512_maskz_shuffle_i32x4 (__mmask16 __U
, __m512i __A
, __m512i __B
,
3838 return (__m512i
) __builtin_ia32_shuf_i32x4_mask ((__v16si
) __A
,
3842 _mm512_setzero_si512 (),
3846 extern __inline __m512d
3847 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3848 _mm512_shuffle_f64x2 (__m512d __A
, __m512d __B
, const int __imm
)
3850 return (__m512d
) __builtin_ia32_shuf_f64x2_mask ((__v8df
) __A
,
3851 (__v8df
) __B
, __imm
,
3853 _mm512_setzero_pd (),
3857 extern __inline __m512d
3858 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3859 _mm512_mask_shuffle_f64x2 (__m512d __W
, __mmask8 __U
, __m512d __A
,
3860 __m512d __B
, const int __imm
)
3862 return (__m512d
) __builtin_ia32_shuf_f64x2_mask ((__v8df
) __A
,
3863 (__v8df
) __B
, __imm
,
3868 extern __inline __m512d
3869 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3870 _mm512_maskz_shuffle_f64x2 (__mmask8 __U
, __m512d __A
, __m512d __B
,
3873 return (__m512d
) __builtin_ia32_shuf_f64x2_mask ((__v8df
) __A
,
3874 (__v8df
) __B
, __imm
,
3876 _mm512_setzero_pd (),
3880 extern __inline __m512
3881 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3882 _mm512_shuffle_f32x4 (__m512 __A
, __m512 __B
, const int __imm
)
3884 return (__m512
) __builtin_ia32_shuf_f32x4_mask ((__v16sf
) __A
,
3885 (__v16sf
) __B
, __imm
,
3887 _mm512_setzero_ps (),
3891 extern __inline __m512
3892 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3893 _mm512_mask_shuffle_f32x4 (__m512 __W
, __mmask16 __U
, __m512 __A
,
3894 __m512 __B
, const int __imm
)
3896 return (__m512
) __builtin_ia32_shuf_f32x4_mask ((__v16sf
) __A
,
3897 (__v16sf
) __B
, __imm
,
3902 extern __inline __m512
3903 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3904 _mm512_maskz_shuffle_f32x4 (__mmask16 __U
, __m512 __A
, __m512 __B
,
3907 return (__m512
) __builtin_ia32_shuf_f32x4_mask ((__v16sf
) __A
,
3908 (__v16sf
) __B
, __imm
,
3910 _mm512_setzero_ps (),
3915 #define _mm512_shuffle_epi32(X, C) \
3916 ((__m512i) __builtin_ia32_pshufd512_mask ((__v16si)(__m512i)(X), (int)(C),\
3917 (__v16si)(__m512i)_mm512_setzero_si512 (),\
3920 #define _mm512_mask_shuffle_epi32(W, U, X, C) \
3921 ((__m512i) __builtin_ia32_pshufd512_mask ((__v16si)(__m512i)(X), (int)(C),\
3922 (__v16si)(__m512i)(W),\
3925 #define _mm512_maskz_shuffle_epi32(U, X, C) \
3926 ((__m512i) __builtin_ia32_pshufd512_mask ((__v16si)(__m512i)(X), (int)(C),\
3927 (__v16si)(__m512i)_mm512_setzero_si512 (),\
3930 #define _mm512_shuffle_i64x2(X, Y, C) \
3931 ((__m512i) __builtin_ia32_shuf_i64x2_mask ((__v8di)(__m512i)(X), \
3932 (__v8di)(__m512i)(Y), (int)(C),\
3933 (__v8di)(__m512i)_mm512_setzero_si512 (),\
3936 #define _mm512_mask_shuffle_i64x2(W, U, X, Y, C) \
3937 ((__m512i) __builtin_ia32_shuf_i64x2_mask ((__v8di)(__m512i)(X), \
3938 (__v8di)(__m512i)(Y), (int)(C),\
3939 (__v8di)(__m512i)(W),\
3942 #define _mm512_maskz_shuffle_i64x2(U, X, Y, C) \
3943 ((__m512i) __builtin_ia32_shuf_i64x2_mask ((__v8di)(__m512i)(X), \
3944 (__v8di)(__m512i)(Y), (int)(C),\
3945 (__v8di)(__m512i)_mm512_setzero_si512 (),\
3948 #define _mm512_shuffle_i32x4(X, Y, C) \
3949 ((__m512i) __builtin_ia32_shuf_i32x4_mask ((__v16si)(__m512i)(X), \
3950 (__v16si)(__m512i)(Y), (int)(C),\
3951 (__v16si)(__m512i)_mm512_setzero_si512 (),\
3954 #define _mm512_mask_shuffle_i32x4(W, U, X, Y, C) \
3955 ((__m512i) __builtin_ia32_shuf_i32x4_mask ((__v16si)(__m512i)(X), \
3956 (__v16si)(__m512i)(Y), (int)(C),\
3957 (__v16si)(__m512i)(W),\
3960 #define _mm512_maskz_shuffle_i32x4(U, X, Y, C) \
3961 ((__m512i) __builtin_ia32_shuf_i32x4_mask ((__v16si)(__m512i)(X), \
3962 (__v16si)(__m512i)(Y), (int)(C),\
3963 (__v16si)(__m512i)_mm512_setzero_si512 (),\
3966 #define _mm512_shuffle_f64x2(X, Y, C) \
3967 ((__m512d) __builtin_ia32_shuf_f64x2_mask ((__v8df)(__m512d)(X), \
3968 (__v8df)(__m512d)(Y), (int)(C),\
3969 (__v8df)(__m512d)_mm512_setzero_pd(),\
3972 #define _mm512_mask_shuffle_f64x2(W, U, X, Y, C) \
3973 ((__m512d) __builtin_ia32_shuf_f64x2_mask ((__v8df)(__m512d)(X), \
3974 (__v8df)(__m512d)(Y), (int)(C),\
3975 (__v8df)(__m512d)(W),\
3978 #define _mm512_maskz_shuffle_f64x2(U, X, Y, C) \
3979 ((__m512d) __builtin_ia32_shuf_f64x2_mask ((__v8df)(__m512d)(X), \
3980 (__v8df)(__m512d)(Y), (int)(C),\
3981 (__v8df)(__m512d)_mm512_setzero_pd(),\
3984 #define _mm512_shuffle_f32x4(X, Y, C) \
3985 ((__m512) __builtin_ia32_shuf_f32x4_mask ((__v16sf)(__m512)(X), \
3986 (__v16sf)(__m512)(Y), (int)(C),\
3987 (__v16sf)(__m512)_mm512_setzero_ps(),\
3990 #define _mm512_mask_shuffle_f32x4(W, U, X, Y, C) \
3991 ((__m512) __builtin_ia32_shuf_f32x4_mask ((__v16sf)(__m512)(X), \
3992 (__v16sf)(__m512)(Y), (int)(C),\
3993 (__v16sf)(__m512)(W),\
3996 #define _mm512_maskz_shuffle_f32x4(U, X, Y, C) \
3997 ((__m512) __builtin_ia32_shuf_f32x4_mask ((__v16sf)(__m512)(X), \
3998 (__v16sf)(__m512)(Y), (int)(C),\
3999 (__v16sf)(__m512)_mm512_setzero_ps(),\
4003 extern __inline __m512i
4004 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4005 _mm512_rolv_epi32 (__m512i __A
, __m512i __B
)
4007 return (__m512i
) __builtin_ia32_prolvd512_mask ((__v16si
) __A
,
4010 _mm512_setzero_si512 (),
4014 extern __inline __m512i
4015 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4016 _mm512_mask_rolv_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
4018 return (__m512i
) __builtin_ia32_prolvd512_mask ((__v16si
) __A
,
4024 extern __inline __m512i
4025 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4026 _mm512_maskz_rolv_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
4028 return (__m512i
) __builtin_ia32_prolvd512_mask ((__v16si
) __A
,
4031 _mm512_setzero_si512 (),
4035 extern __inline __m512i
4036 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4037 _mm512_rorv_epi32 (__m512i __A
, __m512i __B
)
4039 return (__m512i
) __builtin_ia32_prorvd512_mask ((__v16si
) __A
,
4042 _mm512_setzero_si512 (),
4046 extern __inline __m512i
4047 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4048 _mm512_mask_rorv_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
4050 return (__m512i
) __builtin_ia32_prorvd512_mask ((__v16si
) __A
,
4056 extern __inline __m512i
4057 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4058 _mm512_maskz_rorv_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
4060 return (__m512i
) __builtin_ia32_prorvd512_mask ((__v16si
) __A
,
4063 _mm512_setzero_si512 (),
4067 extern __inline __m512i
4068 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4069 _mm512_rolv_epi64 (__m512i __A
, __m512i __B
)
4071 return (__m512i
) __builtin_ia32_prolvq512_mask ((__v8di
) __A
,
4074 _mm512_setzero_si512 (),
4078 extern __inline __m512i
4079 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4080 _mm512_mask_rolv_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
4082 return (__m512i
) __builtin_ia32_prolvq512_mask ((__v8di
) __A
,
4088 extern __inline __m512i
4089 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4090 _mm512_maskz_rolv_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
4092 return (__m512i
) __builtin_ia32_prolvq512_mask ((__v8di
) __A
,
4095 _mm512_setzero_si512 (),
4099 extern __inline __m512i
4100 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4101 _mm512_rorv_epi64 (__m512i __A
, __m512i __B
)
4103 return (__m512i
) __builtin_ia32_prorvq512_mask ((__v8di
) __A
,
4106 _mm512_setzero_si512 (),
4110 extern __inline __m512i
4111 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4112 _mm512_mask_rorv_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
4114 return (__m512i
) __builtin_ia32_prorvq512_mask ((__v8di
) __A
,
4120 extern __inline __m512i
4121 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4122 _mm512_maskz_rorv_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
4124 return (__m512i
) __builtin_ia32_prorvq512_mask ((__v8di
) __A
,
4127 _mm512_setzero_si512 (),
4132 extern __inline __m256i
4133 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4134 _mm512_cvtt_roundpd_epi32 (__m512d __A
, const int __R
)
4136 return (__m256i
) __builtin_ia32_cvttpd2dq512_mask ((__v8df
) __A
,
4138 _mm256_setzero_si256 (),
4139 (__mmask8
) -1, __R
);
4142 extern __inline __m256i
4143 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4144 _mm512_mask_cvtt_roundpd_epi32 (__m256i __W
, __mmask8 __U
, __m512d __A
,
4147 return (__m256i
) __builtin_ia32_cvttpd2dq512_mask ((__v8df
) __A
,
4149 (__mmask8
) __U
, __R
);
4152 extern __inline __m256i
4153 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4154 _mm512_maskz_cvtt_roundpd_epi32 (__mmask8 __U
, __m512d __A
, const int __R
)
4156 return (__m256i
) __builtin_ia32_cvttpd2dq512_mask ((__v8df
) __A
,
4158 _mm256_setzero_si256 (),
4159 (__mmask8
) __U
, __R
);
4162 extern __inline __m256i
4163 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4164 _mm512_cvtt_roundpd_epu32 (__m512d __A
, const int __R
)
4166 return (__m256i
) __builtin_ia32_cvttpd2udq512_mask ((__v8df
) __A
,
4168 _mm256_setzero_si256 (),
4169 (__mmask8
) -1, __R
);
4172 extern __inline __m256i
4173 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4174 _mm512_mask_cvtt_roundpd_epu32 (__m256i __W
, __mmask8 __U
, __m512d __A
,
4177 return (__m256i
) __builtin_ia32_cvttpd2udq512_mask ((__v8df
) __A
,
4179 (__mmask8
) __U
, __R
);
4182 extern __inline __m256i
4183 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4184 _mm512_maskz_cvtt_roundpd_epu32 (__mmask8 __U
, __m512d __A
, const int __R
)
4186 return (__m256i
) __builtin_ia32_cvttpd2udq512_mask ((__v8df
) __A
,
4188 _mm256_setzero_si256 (),
4189 (__mmask8
) __U
, __R
);
4192 #define _mm512_cvtt_roundpd_epi32(A, B) \
4193 ((__m256i)__builtin_ia32_cvttpd2dq512_mask(A, (__v8si)_mm256_setzero_si256(), -1, B))
4195 #define _mm512_mask_cvtt_roundpd_epi32(W, U, A, B) \
4196 ((__m256i)__builtin_ia32_cvttpd2dq512_mask(A, (__v8si)(W), U, B))
4198 #define _mm512_maskz_cvtt_roundpd_epi32(U, A, B) \
4199 ((__m256i)__builtin_ia32_cvttpd2dq512_mask(A, (__v8si)_mm256_setzero_si256(), U, B))
4201 #define _mm512_cvtt_roundpd_epu32(A, B) \
4202 ((__m256i)__builtin_ia32_cvttpd2udq512_mask(A, (__v8si)_mm256_setzero_si256(), -1, B))
4204 #define _mm512_mask_cvtt_roundpd_epu32(W, U, A, B) \
4205 ((__m256i)__builtin_ia32_cvttpd2udq512_mask(A, (__v8si)(W), U, B))
4207 #define _mm512_maskz_cvtt_roundpd_epu32(U, A, B) \
4208 ((__m256i)__builtin_ia32_cvttpd2udq512_mask(A, (__v8si)_mm256_setzero_si256(), U, B))
4212 extern __inline __m256i
4213 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4214 _mm512_cvt_roundpd_epi32 (__m512d __A
, const int __R
)
4216 return (__m256i
) __builtin_ia32_cvtpd2dq512_mask ((__v8df
) __A
,
4218 _mm256_setzero_si256 (),
4219 (__mmask8
) -1, __R
);
4222 extern __inline __m256i
4223 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4224 _mm512_mask_cvt_roundpd_epi32 (__m256i __W
, __mmask8 __U
, __m512d __A
,
4227 return (__m256i
) __builtin_ia32_cvtpd2dq512_mask ((__v8df
) __A
,
4229 (__mmask8
) __U
, __R
);
4232 extern __inline __m256i
4233 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4234 _mm512_maskz_cvt_roundpd_epi32 (__mmask8 __U
, __m512d __A
, const int __R
)
4236 return (__m256i
) __builtin_ia32_cvtpd2dq512_mask ((__v8df
) __A
,
4238 _mm256_setzero_si256 (),
4239 (__mmask8
) __U
, __R
);
4242 extern __inline __m256i
4243 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4244 _mm512_cvt_roundpd_epu32 (__m512d __A
, const int __R
)
4246 return (__m256i
) __builtin_ia32_cvtpd2udq512_mask ((__v8df
) __A
,
4248 _mm256_setzero_si256 (),
4249 (__mmask8
) -1, __R
);
4252 extern __inline __m256i
4253 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4254 _mm512_mask_cvt_roundpd_epu32 (__m256i __W
, __mmask8 __U
, __m512d __A
,
4257 return (__m256i
) __builtin_ia32_cvtpd2udq512_mask ((__v8df
) __A
,
4259 (__mmask8
) __U
, __R
);
4262 extern __inline __m256i
4263 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4264 _mm512_maskz_cvt_roundpd_epu32 (__mmask8 __U
, __m512d __A
, const int __R
)
4266 return (__m256i
) __builtin_ia32_cvtpd2udq512_mask ((__v8df
) __A
,
4268 _mm256_setzero_si256 (),
4269 (__mmask8
) __U
, __R
);
4272 #define _mm512_cvt_roundpd_epi32(A, B) \
4273 ((__m256i)__builtin_ia32_cvtpd2dq512_mask(A, (__v8si)_mm256_setzero_si256(), -1, B))
4275 #define _mm512_mask_cvt_roundpd_epi32(W, U, A, B) \
4276 ((__m256i)__builtin_ia32_cvtpd2dq512_mask(A, (__v8si)(W), U, B))
4278 #define _mm512_maskz_cvt_roundpd_epi32(U, A, B) \
4279 ((__m256i)__builtin_ia32_cvtpd2dq512_mask(A, (__v8si)_mm256_setzero_si256(), U, B))
4281 #define _mm512_cvt_roundpd_epu32(A, B) \
4282 ((__m256i)__builtin_ia32_cvtpd2udq512_mask(A, (__v8si)_mm256_setzero_si256(), -1, B))
4284 #define _mm512_mask_cvt_roundpd_epu32(W, U, A, B) \
4285 ((__m256i)__builtin_ia32_cvtpd2udq512_mask(A, (__v8si)(W), U, B))
4287 #define _mm512_maskz_cvt_roundpd_epu32(U, A, B) \
4288 ((__m256i)__builtin_ia32_cvtpd2udq512_mask(A, (__v8si)_mm256_setzero_si256(), U, B))
4292 extern __inline __m512i
4293 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4294 _mm512_cvtt_roundps_epi32 (__m512 __A
, const int __R
)
4296 return (__m512i
) __builtin_ia32_cvttps2dq512_mask ((__v16sf
) __A
,
4298 _mm512_setzero_si512 (),
4299 (__mmask16
) -1, __R
);
4302 extern __inline __m512i
4303 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4304 _mm512_mask_cvtt_roundps_epi32 (__m512i __W
, __mmask16 __U
, __m512 __A
,
4307 return (__m512i
) __builtin_ia32_cvttps2dq512_mask ((__v16sf
) __A
,
4309 (__mmask16
) __U
, __R
);
4312 extern __inline __m512i
4313 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4314 _mm512_maskz_cvtt_roundps_epi32 (__mmask16 __U
, __m512 __A
, const int __R
)
4316 return (__m512i
) __builtin_ia32_cvttps2dq512_mask ((__v16sf
) __A
,
4318 _mm512_setzero_si512 (),
4319 (__mmask16
) __U
, __R
);
4322 extern __inline __m512i
4323 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4324 _mm512_cvtt_roundps_epu32 (__m512 __A
, const int __R
)
4326 return (__m512i
) __builtin_ia32_cvttps2udq512_mask ((__v16sf
) __A
,
4328 _mm512_setzero_si512 (),
4329 (__mmask16
) -1, __R
);
4332 extern __inline __m512i
4333 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4334 _mm512_mask_cvtt_roundps_epu32 (__m512i __W
, __mmask16 __U
, __m512 __A
,
4337 return (__m512i
) __builtin_ia32_cvttps2udq512_mask ((__v16sf
) __A
,
4339 (__mmask16
) __U
, __R
);
4342 extern __inline __m512i
4343 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4344 _mm512_maskz_cvtt_roundps_epu32 (__mmask16 __U
, __m512 __A
, const int __R
)
4346 return (__m512i
) __builtin_ia32_cvttps2udq512_mask ((__v16sf
) __A
,
4348 _mm512_setzero_si512 (),
4349 (__mmask16
) __U
, __R
);
4352 #define _mm512_cvtt_roundps_epi32(A, B) \
4353 ((__m512i)__builtin_ia32_cvttps2dq512_mask(A, (__v16si)_mm512_setzero_si512 (), -1, B))
4355 #define _mm512_mask_cvtt_roundps_epi32(W, U, A, B) \
4356 ((__m512i)__builtin_ia32_cvttps2dq512_mask(A, (__v16si)(W), U, B))
4358 #define _mm512_maskz_cvtt_roundps_epi32(U, A, B) \
4359 ((__m512i)__builtin_ia32_cvttps2dq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
4361 #define _mm512_cvtt_roundps_epu32(A, B) \
4362 ((__m512i)__builtin_ia32_cvttps2udq512_mask(A, (__v16si)_mm512_setzero_si512 (), -1, B))
4364 #define _mm512_mask_cvtt_roundps_epu32(W, U, A, B) \
4365 ((__m512i)__builtin_ia32_cvttps2udq512_mask(A, (__v16si)(W), U, B))
4367 #define _mm512_maskz_cvtt_roundps_epu32(U, A, B) \
4368 ((__m512i)__builtin_ia32_cvttps2udq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
4372 extern __inline __m512i
4373 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4374 _mm512_cvt_roundps_epi32 (__m512 __A
, const int __R
)
4376 return (__m512i
) __builtin_ia32_cvtps2dq512_mask ((__v16sf
) __A
,
4378 _mm512_setzero_si512 (),
4379 (__mmask16
) -1, __R
);
4382 extern __inline __m512i
4383 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4384 _mm512_mask_cvt_roundps_epi32 (__m512i __W
, __mmask16 __U
, __m512 __A
,
4387 return (__m512i
) __builtin_ia32_cvtps2dq512_mask ((__v16sf
) __A
,
4389 (__mmask16
) __U
, __R
);
4392 extern __inline __m512i
4393 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4394 _mm512_maskz_cvt_roundps_epi32 (__mmask16 __U
, __m512 __A
, const int __R
)
4396 return (__m512i
) __builtin_ia32_cvtps2dq512_mask ((__v16sf
) __A
,
4398 _mm512_setzero_si512 (),
4399 (__mmask16
) __U
, __R
);
4402 extern __inline __m512i
4403 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4404 _mm512_cvt_roundps_epu32 (__m512 __A
, const int __R
)
4406 return (__m512i
) __builtin_ia32_cvtps2udq512_mask ((__v16sf
) __A
,
4408 _mm512_setzero_si512 (),
4409 (__mmask16
) -1, __R
);
4412 extern __inline __m512i
4413 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4414 _mm512_mask_cvt_roundps_epu32 (__m512i __W
, __mmask16 __U
, __m512 __A
,
4417 return (__m512i
) __builtin_ia32_cvtps2udq512_mask ((__v16sf
) __A
,
4419 (__mmask16
) __U
, __R
);
4422 extern __inline __m512i
4423 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4424 _mm512_maskz_cvt_roundps_epu32 (__mmask16 __U
, __m512 __A
, const int __R
)
4426 return (__m512i
) __builtin_ia32_cvtps2udq512_mask ((__v16sf
) __A
,
4428 _mm512_setzero_si512 (),
4429 (__mmask16
) __U
, __R
);
4432 #define _mm512_cvt_roundps_epi32(A, B) \
4433 ((__m512i)__builtin_ia32_cvtps2dq512_mask(A, (__v16si)_mm512_setzero_si512 (), -1, B))
4435 #define _mm512_mask_cvt_roundps_epi32(W, U, A, B) \
4436 ((__m512i)__builtin_ia32_cvtps2dq512_mask(A, (__v16si)(W), U, B))
4438 #define _mm512_maskz_cvt_roundps_epi32(U, A, B) \
4439 ((__m512i)__builtin_ia32_cvtps2dq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
4441 #define _mm512_cvt_roundps_epu32(A, B) \
4442 ((__m512i)__builtin_ia32_cvtps2udq512_mask(A, (__v16si)_mm512_setzero_si512 (), -1, B))
4444 #define _mm512_mask_cvt_roundps_epu32(W, U, A, B) \
4445 ((__m512i)__builtin_ia32_cvtps2udq512_mask(A, (__v16si)(W), U, B))
4447 #define _mm512_maskz_cvt_roundps_epu32(U, A, B) \
4448 ((__m512i)__builtin_ia32_cvtps2udq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
4451 extern __inline __m128d
4452 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4453 _mm_cvtu32_sd (__m128d __A
, unsigned __B
)
4455 return (__m128d
) __builtin_ia32_cvtusi2sd32 ((__v2df
) __A
, __B
);
4460 extern __inline __m128d
4461 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4462 _mm_cvt_roundu64_sd (__m128d __A
, unsigned long long __B
, const int __R
)
4464 return (__m128d
) __builtin_ia32_cvtusi2sd64 ((__v2df
) __A
, __B
, __R
);
4467 extern __inline __m128d
4468 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4469 _mm_cvt_roundi64_sd (__m128d __A
, long long __B
, const int __R
)
4471 return (__m128d
) __builtin_ia32_cvtsi2sd64 ((__v2df
) __A
, __B
, __R
);
4474 extern __inline __m128d
4475 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4476 _mm_cvt_roundsi64_sd (__m128d __A
, long long __B
, const int __R
)
4478 return (__m128d
) __builtin_ia32_cvtsi2sd64 ((__v2df
) __A
, __B
, __R
);
4481 #define _mm_cvt_roundu64_sd(A, B, C) \
4482 (__m128d)__builtin_ia32_cvtusi2sd64(A, B, C)
4484 #define _mm_cvt_roundi64_sd(A, B, C) \
4485 (__m128d)__builtin_ia32_cvtsi2sd64(A, B, C)
4487 #define _mm_cvt_roundsi64_sd(A, B, C) \
4488 (__m128d)__builtin_ia32_cvtsi2sd64(A, B, C)
4494 extern __inline __m128
4495 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4496 _mm_cvt_roundu32_ss (__m128 __A
, unsigned __B
, const int __R
)
4498 return (__m128
) __builtin_ia32_cvtusi2ss32 ((__v4sf
) __A
, __B
, __R
);
4501 extern __inline __m128
4502 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4503 _mm_cvt_roundsi32_ss (__m128 __A
, int __B
, const int __R
)
4505 return (__m128
) __builtin_ia32_cvtsi2ss32 ((__v4sf
) __A
, __B
, __R
);
4508 extern __inline __m128
4509 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4510 _mm_cvt_roundi32_ss (__m128 __A
, int __B
, const int __R
)
4512 return (__m128
) __builtin_ia32_cvtsi2ss32 ((__v4sf
) __A
, __B
, __R
);
4515 #define _mm_cvt_roundu32_ss(A, B, C) \
4516 (__m128)__builtin_ia32_cvtusi2ss32(A, B, C)
4518 #define _mm_cvt_roundi32_ss(A, B, C) \
4519 (__m128)__builtin_ia32_cvtsi2ss32(A, B, C)
4521 #define _mm_cvt_roundsi32_ss(A, B, C) \
4522 (__m128)__builtin_ia32_cvtsi2ss32(A, B, C)
4527 extern __inline __m128
4528 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4529 _mm_cvt_roundu64_ss (__m128 __A
, unsigned long long __B
, const int __R
)
4531 return (__m128
) __builtin_ia32_cvtusi2ss64 ((__v4sf
) __A
, __B
, __R
);
4534 extern __inline __m128
4535 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4536 _mm_cvt_roundsi64_ss (__m128 __A
, long long __B
, const int __R
)
4538 return (__m128
) __builtin_ia32_cvtsi2ss64 ((__v4sf
) __A
, __B
, __R
);
4541 extern __inline __m128
4542 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4543 _mm_cvt_roundi64_ss (__m128 __A
, long long __B
, const int __R
)
4545 return (__m128
) __builtin_ia32_cvtsi2ss64 ((__v4sf
) __A
, __B
, __R
);
4548 #define _mm_cvt_roundu64_ss(A, B, C) \
4549 (__m128)__builtin_ia32_cvtusi2ss64(A, B, C)
4551 #define _mm_cvt_roundi64_ss(A, B, C) \
4552 (__m128)__builtin_ia32_cvtsi2ss64(A, B, C)
4554 #define _mm_cvt_roundsi64_ss(A, B, C) \
4555 (__m128)__builtin_ia32_cvtsi2ss64(A, B, C)
4560 extern __inline __m128i
4561 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4562 _mm512_cvtepi32_epi8 (__m512i __A
)
4565 return (__m128i
) __builtin_ia32_pmovdb512_mask ((__v16si
) __A
, __O
,
4569 extern __inline
void
4570 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4571 _mm512_mask_cvtepi32_storeu_epi8 (void * __P
, __mmask16 __M
, __m512i __A
)
4573 __builtin_ia32_pmovdb512mem_mask ((__v16qi
*) __P
, (__v16si
) __A
, __M
);
4576 extern __inline __m128i
4577 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4578 _mm512_mask_cvtepi32_epi8 (__m128i __O
, __mmask16 __M
, __m512i __A
)
4580 return (__m128i
) __builtin_ia32_pmovdb512_mask ((__v16si
) __A
,
4581 (__v16qi
) __O
, __M
);
4584 extern __inline __m128i
4585 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4586 _mm512_maskz_cvtepi32_epi8 (__mmask16 __M
, __m512i __A
)
4588 return (__m128i
) __builtin_ia32_pmovdb512_mask ((__v16si
) __A
,
4590 _mm_setzero_si128 (),
4594 extern __inline __m128i
4595 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4596 _mm512_cvtsepi32_epi8 (__m512i __A
)
4599 return (__m128i
) __builtin_ia32_pmovsdb512_mask ((__v16si
) __A
, __O
,
4603 extern __inline
void
4604 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4605 _mm512_mask_cvtsepi32_storeu_epi8 (void * __P
, __mmask16 __M
, __m512i __A
)
4607 __builtin_ia32_pmovsdb512mem_mask ((__v16qi
*) __P
, (__v16si
) __A
, __M
);
4610 extern __inline __m128i
4611 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4612 _mm512_mask_cvtsepi32_epi8 (__m128i __O
, __mmask16 __M
, __m512i __A
)
4614 return (__m128i
) __builtin_ia32_pmovsdb512_mask ((__v16si
) __A
,
4615 (__v16qi
) __O
, __M
);
4618 extern __inline __m128i
4619 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4620 _mm512_maskz_cvtsepi32_epi8 (__mmask16 __M
, __m512i __A
)
4622 return (__m128i
) __builtin_ia32_pmovsdb512_mask ((__v16si
) __A
,
4624 _mm_setzero_si128 (),
4628 extern __inline __m128i
4629 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4630 _mm512_cvtusepi32_epi8 (__m512i __A
)
4633 return (__m128i
) __builtin_ia32_pmovusdb512_mask ((__v16si
) __A
, __O
,
4637 extern __inline
void
4638 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4639 _mm512_mask_cvtusepi32_storeu_epi8 (void * __P
, __mmask16 __M
, __m512i __A
)
4641 __builtin_ia32_pmovusdb512mem_mask ((__v16qi
*) __P
, (__v16si
) __A
, __M
);
4644 extern __inline __m128i
4645 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4646 _mm512_mask_cvtusepi32_epi8 (__m128i __O
, __mmask16 __M
, __m512i __A
)
4648 return (__m128i
) __builtin_ia32_pmovusdb512_mask ((__v16si
) __A
,
4653 extern __inline __m128i
4654 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4655 _mm512_maskz_cvtusepi32_epi8 (__mmask16 __M
, __m512i __A
)
4657 return (__m128i
) __builtin_ia32_pmovusdb512_mask ((__v16si
) __A
,
4659 _mm_setzero_si128 (),
4663 extern __inline __m256i
4664 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4665 _mm512_cvtepi32_epi16 (__m512i __A
)
4668 return (__m256i
) __builtin_ia32_pmovdw512_mask ((__v16si
) __A
, __O
,
4672 extern __inline
void
4673 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4674 _mm512_mask_cvtepi32_storeu_epi16 (void * __P
, __mmask16 __M
, __m512i __A
)
4676 __builtin_ia32_pmovdw512mem_mask ((__v16hi
*) __P
, (__v16si
) __A
, __M
);
4679 extern __inline __m256i
4680 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4681 _mm512_mask_cvtepi32_epi16 (__m256i __O
, __mmask16 __M
, __m512i __A
)
4683 return (__m256i
) __builtin_ia32_pmovdw512_mask ((__v16si
) __A
,
4684 (__v16hi
) __O
, __M
);
4687 extern __inline __m256i
4688 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4689 _mm512_maskz_cvtepi32_epi16 (__mmask16 __M
, __m512i __A
)
4691 return (__m256i
) __builtin_ia32_pmovdw512_mask ((__v16si
) __A
,
4693 _mm256_setzero_si256 (),
4697 extern __inline __m256i
4698 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4699 _mm512_cvtsepi32_epi16 (__m512i __A
)
4702 return (__m256i
) __builtin_ia32_pmovsdw512_mask ((__v16si
) __A
, __O
,
4706 extern __inline
void
4707 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4708 _mm512_mask_cvtsepi32_storeu_epi16 (void *__P
, __mmask16 __M
, __m512i __A
)
4710 __builtin_ia32_pmovsdw512mem_mask ((__v16hi
*) __P
, (__v16si
) __A
, __M
);
4713 extern __inline __m256i
4714 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4715 _mm512_mask_cvtsepi32_epi16 (__m256i __O
, __mmask16 __M
, __m512i __A
)
4717 return (__m256i
) __builtin_ia32_pmovsdw512_mask ((__v16si
) __A
,
4718 (__v16hi
) __O
, __M
);
4721 extern __inline __m256i
4722 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4723 _mm512_maskz_cvtsepi32_epi16 (__mmask16 __M
, __m512i __A
)
4725 return (__m256i
) __builtin_ia32_pmovsdw512_mask ((__v16si
) __A
,
4727 _mm256_setzero_si256 (),
4731 extern __inline __m256i
4732 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4733 _mm512_cvtusepi32_epi16 (__m512i __A
)
4736 return (__m256i
) __builtin_ia32_pmovusdw512_mask ((__v16si
) __A
, __O
,
4740 extern __inline
void
4741 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4742 _mm512_mask_cvtusepi32_storeu_epi16 (void *__P
, __mmask16 __M
, __m512i __A
)
4744 __builtin_ia32_pmovusdw512mem_mask ((__v16hi
*) __P
, (__v16si
) __A
, __M
);
4747 extern __inline __m256i
4748 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4749 _mm512_mask_cvtusepi32_epi16 (__m256i __O
, __mmask16 __M
, __m512i __A
)
4751 return (__m256i
) __builtin_ia32_pmovusdw512_mask ((__v16si
) __A
,
4756 extern __inline __m256i
4757 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4758 _mm512_maskz_cvtusepi32_epi16 (__mmask16 __M
, __m512i __A
)
4760 return (__m256i
) __builtin_ia32_pmovusdw512_mask ((__v16si
) __A
,
4762 _mm256_setzero_si256 (),
4766 extern __inline __m256i
4767 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4768 _mm512_cvtepi64_epi32 (__m512i __A
)
4771 return (__m256i
) __builtin_ia32_pmovqd512_mask ((__v8di
) __A
, __O
,
4775 extern __inline
void
4776 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4777 _mm512_mask_cvtepi64_storeu_epi32 (void* __P
, __mmask8 __M
, __m512i __A
)
4779 __builtin_ia32_pmovqd512mem_mask ((__v8si
*) __P
, (__v8di
) __A
, __M
);
4782 extern __inline __m256i
4783 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4784 _mm512_mask_cvtepi64_epi32 (__m256i __O
, __mmask8 __M
, __m512i __A
)
4786 return (__m256i
) __builtin_ia32_pmovqd512_mask ((__v8di
) __A
,
4790 extern __inline __m256i
4791 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4792 _mm512_maskz_cvtepi64_epi32 (__mmask8 __M
, __m512i __A
)
4794 return (__m256i
) __builtin_ia32_pmovqd512_mask ((__v8di
) __A
,
4796 _mm256_setzero_si256 (),
4800 extern __inline __m256i
4801 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4802 _mm512_cvtsepi64_epi32 (__m512i __A
)
4805 return (__m256i
) __builtin_ia32_pmovsqd512_mask ((__v8di
) __A
, __O
,
4809 extern __inline
void
4810 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4811 _mm512_mask_cvtsepi64_storeu_epi32 (void *__P
, __mmask8 __M
, __m512i __A
)
4813 __builtin_ia32_pmovsqd512mem_mask ((__v8si
*) __P
, (__v8di
) __A
, __M
);
4816 extern __inline __m256i
4817 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4818 _mm512_mask_cvtsepi64_epi32 (__m256i __O
, __mmask8 __M
, __m512i __A
)
4820 return (__m256i
) __builtin_ia32_pmovsqd512_mask ((__v8di
) __A
,
4824 extern __inline __m256i
4825 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4826 _mm512_maskz_cvtsepi64_epi32 (__mmask8 __M
, __m512i __A
)
4828 return (__m256i
) __builtin_ia32_pmovsqd512_mask ((__v8di
) __A
,
4830 _mm256_setzero_si256 (),
4834 extern __inline __m256i
4835 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4836 _mm512_cvtusepi64_epi32 (__m512i __A
)
4839 return (__m256i
) __builtin_ia32_pmovusqd512_mask ((__v8di
) __A
, __O
,
4844 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4845 _mm512_mask_cvtusepi64_storeu_epi32 (void* __P
, __mmask8 __M
, __m512i __A
)
4847 __builtin_ia32_pmovusqd512mem_mask ((__v8si
*) __P
, (__v8di
) __A
, __M
);
4850 extern __inline __m256i
4851 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4852 _mm512_mask_cvtusepi64_epi32 (__m256i __O
, __mmask8 __M
, __m512i __A
)
4854 return (__m256i
) __builtin_ia32_pmovusqd512_mask ((__v8di
) __A
,
4858 extern __inline __m256i
4859 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4860 _mm512_maskz_cvtusepi64_epi32 (__mmask8 __M
, __m512i __A
)
4862 return (__m256i
) __builtin_ia32_pmovusqd512_mask ((__v8di
) __A
,
4864 _mm256_setzero_si256 (),
4868 extern __inline __m128i
4869 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4870 _mm512_cvtepi64_epi16 (__m512i __A
)
4873 return (__m128i
) __builtin_ia32_pmovqw512_mask ((__v8di
) __A
, __O
,
4877 extern __inline
void
4878 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4879 _mm512_mask_cvtepi64_storeu_epi16 (void *__P
, __mmask8 __M
, __m512i __A
)
4881 __builtin_ia32_pmovqw512mem_mask ((__v8hi
*) __P
, (__v8di
) __A
, __M
);
4884 extern __inline __m128i
4885 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4886 _mm512_mask_cvtepi64_epi16 (__m128i __O
, __mmask8 __M
, __m512i __A
)
4888 return (__m128i
) __builtin_ia32_pmovqw512_mask ((__v8di
) __A
,
4892 extern __inline __m128i
4893 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4894 _mm512_maskz_cvtepi64_epi16 (__mmask8 __M
, __m512i __A
)
4896 return (__m128i
) __builtin_ia32_pmovqw512_mask ((__v8di
) __A
,
4898 _mm_setzero_si128 (),
4902 extern __inline __m128i
4903 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4904 _mm512_cvtsepi64_epi16 (__m512i __A
)
4907 return (__m128i
) __builtin_ia32_pmovsqw512_mask ((__v8di
) __A
, __O
,
4911 extern __inline
void
4912 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4913 _mm512_mask_cvtsepi64_storeu_epi16 (void * __P
, __mmask8 __M
, __m512i __A
)
4915 __builtin_ia32_pmovsqw512mem_mask ((__v8hi
*) __P
, (__v8di
) __A
, __M
);
4918 extern __inline __m128i
4919 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4920 _mm512_mask_cvtsepi64_epi16 (__m128i __O
, __mmask8 __M
, __m512i __A
)
4922 return (__m128i
) __builtin_ia32_pmovsqw512_mask ((__v8di
) __A
,
4926 extern __inline __m128i
4927 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4928 _mm512_maskz_cvtsepi64_epi16 (__mmask8 __M
, __m512i __A
)
4930 return (__m128i
) __builtin_ia32_pmovsqw512_mask ((__v8di
) __A
,
4932 _mm_setzero_si128 (),
4936 extern __inline __m128i
4937 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4938 _mm512_cvtusepi64_epi16 (__m512i __A
)
4941 return (__m128i
) __builtin_ia32_pmovusqw512_mask ((__v8di
) __A
, __O
,
4945 extern __inline
void
4946 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4947 _mm512_mask_cvtusepi64_storeu_epi16 (void *__P
, __mmask8 __M
, __m512i __A
)
4949 __builtin_ia32_pmovusqw512mem_mask ((__v8hi
*) __P
, (__v8di
) __A
, __M
);
4952 extern __inline __m128i
4953 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4954 _mm512_mask_cvtusepi64_epi16 (__m128i __O
, __mmask8 __M
, __m512i __A
)
4956 return (__m128i
) __builtin_ia32_pmovusqw512_mask ((__v8di
) __A
,
4960 extern __inline __m128i
4961 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4962 _mm512_maskz_cvtusepi64_epi16 (__mmask8 __M
, __m512i __A
)
4964 return (__m128i
) __builtin_ia32_pmovusqw512_mask ((__v8di
) __A
,
4966 _mm_setzero_si128 (),
4970 extern __inline __m128i
4971 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4972 _mm512_cvtepi64_epi8 (__m512i __A
)
4975 return (__m128i
) __builtin_ia32_pmovqb512_mask ((__v8di
) __A
, __O
,
4979 extern __inline
void
4980 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4981 _mm512_mask_cvtepi64_storeu_epi8 (void * __P
, __mmask8 __M
, __m512i __A
)
4983 __builtin_ia32_pmovqb512mem_mask ((__v16qi
*) __P
, (__v8di
) __A
, __M
);
4986 extern __inline __m128i
4987 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4988 _mm512_mask_cvtepi64_epi8 (__m128i __O
, __mmask8 __M
, __m512i __A
)
4990 return (__m128i
) __builtin_ia32_pmovqb512_mask ((__v8di
) __A
,
4991 (__v16qi
) __O
, __M
);
4994 extern __inline __m128i
4995 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4996 _mm512_maskz_cvtepi64_epi8 (__mmask8 __M
, __m512i __A
)
4998 return (__m128i
) __builtin_ia32_pmovqb512_mask ((__v8di
) __A
,
5000 _mm_setzero_si128 (),
5004 extern __inline __m128i
5005 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5006 _mm512_cvtsepi64_epi8 (__m512i __A
)
5009 return (__m128i
) __builtin_ia32_pmovsqb512_mask ((__v8di
) __A
, __O
,
5013 extern __inline
void
5014 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5015 _mm512_mask_cvtsepi64_storeu_epi8 (void * __P
, __mmask8 __M
, __m512i __A
)
5017 __builtin_ia32_pmovsqb512mem_mask ((__v16qi
*) __P
, (__v8di
) __A
, __M
);
5020 extern __inline __m128i
5021 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5022 _mm512_mask_cvtsepi64_epi8 (__m128i __O
, __mmask8 __M
, __m512i __A
)
5024 return (__m128i
) __builtin_ia32_pmovsqb512_mask ((__v8di
) __A
,
5025 (__v16qi
) __O
, __M
);
5028 extern __inline __m128i
5029 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5030 _mm512_maskz_cvtsepi64_epi8 (__mmask8 __M
, __m512i __A
)
5032 return (__m128i
) __builtin_ia32_pmovsqb512_mask ((__v8di
) __A
,
5034 _mm_setzero_si128 (),
5038 extern __inline __m128i
5039 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5040 _mm512_cvtusepi64_epi8 (__m512i __A
)
5043 return (__m128i
) __builtin_ia32_pmovusqb512_mask ((__v8di
) __A
, __O
,
5047 extern __inline
void
5048 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5049 _mm512_mask_cvtusepi64_storeu_epi8 (void * __P
, __mmask8 __M
, __m512i __A
)
5051 __builtin_ia32_pmovusqb512mem_mask ((__v16qi
*) __P
, (__v8di
) __A
, __M
);
5054 extern __inline __m128i
5055 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5056 _mm512_mask_cvtusepi64_epi8 (__m128i __O
, __mmask8 __M
, __m512i __A
)
5058 return (__m128i
) __builtin_ia32_pmovusqb512_mask ((__v8di
) __A
,
5063 extern __inline __m128i
5064 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5065 _mm512_maskz_cvtusepi64_epi8 (__mmask8 __M
, __m512i __A
)
5067 return (__m128i
) __builtin_ia32_pmovusqb512_mask ((__v8di
) __A
,
5069 _mm_setzero_si128 (),
5073 extern __inline __m512d
5074 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5075 _mm512_cvtepi32_pd (__m256i __A
)
5077 return (__m512d
) __builtin_ia32_cvtdq2pd512_mask ((__v8si
) __A
,
5079 _mm512_setzero_pd (),
5083 extern __inline __m512d
5084 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5085 _mm512_mask_cvtepi32_pd (__m512d __W
, __mmask8 __U
, __m256i __A
)
5087 return (__m512d
) __builtin_ia32_cvtdq2pd512_mask ((__v8si
) __A
,
5092 extern __inline __m512d
5093 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5094 _mm512_maskz_cvtepi32_pd (__mmask8 __U
, __m256i __A
)
5096 return (__m512d
) __builtin_ia32_cvtdq2pd512_mask ((__v8si
) __A
,
5098 _mm512_setzero_pd (),
5102 extern __inline __m512d
5103 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5104 _mm512_cvtepu32_pd (__m256i __A
)
5106 return (__m512d
) __builtin_ia32_cvtudq2pd512_mask ((__v8si
) __A
,
5108 _mm512_setzero_pd (),
5112 extern __inline __m512d
5113 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5114 _mm512_mask_cvtepu32_pd (__m512d __W
, __mmask8 __U
, __m256i __A
)
5116 return (__m512d
) __builtin_ia32_cvtudq2pd512_mask ((__v8si
) __A
,
5121 extern __inline __m512d
5122 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5123 _mm512_maskz_cvtepu32_pd (__mmask8 __U
, __m256i __A
)
5125 return (__m512d
) __builtin_ia32_cvtudq2pd512_mask ((__v8si
) __A
,
5127 _mm512_setzero_pd (),
5132 extern __inline __m512
5133 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5134 _mm512_cvt_roundepi32_ps (__m512i __A
, const int __R
)
5136 return (__m512
) __builtin_ia32_cvtdq2ps512_mask ((__v16si
) __A
,
5138 _mm512_setzero_ps (),
5139 (__mmask16
) -1, __R
);
5142 extern __inline __m512
5143 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5144 _mm512_mask_cvt_roundepi32_ps (__m512 __W
, __mmask16 __U
, __m512i __A
,
5147 return (__m512
) __builtin_ia32_cvtdq2ps512_mask ((__v16si
) __A
,
5149 (__mmask16
) __U
, __R
);
5152 extern __inline __m512
5153 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5154 _mm512_maskz_cvt_roundepi32_ps (__mmask16 __U
, __m512i __A
, const int __R
)
5156 return (__m512
) __builtin_ia32_cvtdq2ps512_mask ((__v16si
) __A
,
5158 _mm512_setzero_ps (),
5159 (__mmask16
) __U
, __R
);
5162 extern __inline __m512
5163 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5164 _mm512_cvt_roundepu32_ps (__m512i __A
, const int __R
)
5166 return (__m512
) __builtin_ia32_cvtudq2ps512_mask ((__v16si
) __A
,
5168 _mm512_setzero_ps (),
5169 (__mmask16
) -1, __R
);
5172 extern __inline __m512
5173 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5174 _mm512_mask_cvt_roundepu32_ps (__m512 __W
, __mmask16 __U
, __m512i __A
,
5177 return (__m512
) __builtin_ia32_cvtudq2ps512_mask ((__v16si
) __A
,
5179 (__mmask16
) __U
, __R
);
5182 extern __inline __m512
5183 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5184 _mm512_maskz_cvt_roundepu32_ps (__mmask16 __U
, __m512i __A
, const int __R
)
5186 return (__m512
) __builtin_ia32_cvtudq2ps512_mask ((__v16si
) __A
,
5188 _mm512_setzero_ps (),
5189 (__mmask16
) __U
, __R
);
5193 #define _mm512_cvt_roundepi32_ps(A, B) \
5194 (__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(A), (__v16sf)_mm512_setzero_ps(), -1, B)
5196 #define _mm512_mask_cvt_roundepi32_ps(W, U, A, B) \
5197 (__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(A), W, U, B)
5199 #define _mm512_maskz_cvt_roundepi32_ps(U, A, B) \
5200 (__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(A), (__v16sf)_mm512_setzero_ps(), U, B)
5202 #define _mm512_cvt_roundepu32_ps(A, B) \
5203 (__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(A), (__v16sf)_mm512_setzero_ps(), -1, B)
5205 #define _mm512_mask_cvt_roundepu32_ps(W, U, A, B) \
5206 (__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(A), W, U, B)
5208 #define _mm512_maskz_cvt_roundepu32_ps(U, A, B) \
5209 (__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(A), (__v16sf)_mm512_setzero_ps(), U, B)
5213 extern __inline __m256d
5214 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5215 _mm512_extractf64x4_pd (__m512d __A
, const int __imm
)
5217 return (__m256d
) __builtin_ia32_extractf64x4_mask ((__v8df
) __A
,
5220 _mm256_setzero_pd (),
5224 extern __inline __m256d
5225 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5226 _mm512_mask_extractf64x4_pd (__m256d __W
, __mmask8 __U
, __m512d __A
,
5229 return (__m256d
) __builtin_ia32_extractf64x4_mask ((__v8df
) __A
,
5235 extern __inline __m256d
5236 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5237 _mm512_maskz_extractf64x4_pd (__mmask8 __U
, __m512d __A
, const int __imm
)
5239 return (__m256d
) __builtin_ia32_extractf64x4_mask ((__v8df
) __A
,
5242 _mm256_setzero_pd (),
5246 extern __inline __m128
5247 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5248 _mm512_extractf32x4_ps (__m512 __A
, const int __imm
)
5250 return (__m128
) __builtin_ia32_extractf32x4_mask ((__v16sf
) __A
,
5257 extern __inline __m128
5258 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5259 _mm512_mask_extractf32x4_ps (__m128 __W
, __mmask8 __U
, __m512 __A
,
5262 return (__m128
) __builtin_ia32_extractf32x4_mask ((__v16sf
) __A
,
5268 extern __inline __m128
5269 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5270 _mm512_maskz_extractf32x4_ps (__mmask8 __U
, __m512 __A
, const int __imm
)
5272 return (__m128
) __builtin_ia32_extractf32x4_mask ((__v16sf
) __A
,
5279 extern __inline __m256i
5280 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5281 _mm512_extracti64x4_epi64 (__m512i __A
, const int __imm
)
5283 return (__m256i
) __builtin_ia32_extracti64x4_mask ((__v8di
) __A
,
5286 _mm256_setzero_si256 (),
5290 extern __inline __m256i
5291 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5292 _mm512_mask_extracti64x4_epi64 (__m256i __W
, __mmask8 __U
, __m512i __A
,
5295 return (__m256i
) __builtin_ia32_extracti64x4_mask ((__v8di
) __A
,
5301 extern __inline __m256i
5302 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5303 _mm512_maskz_extracti64x4_epi64 (__mmask8 __U
, __m512i __A
, const int __imm
)
5305 return (__m256i
) __builtin_ia32_extracti64x4_mask ((__v8di
) __A
,
5308 _mm256_setzero_si256 (),
5312 extern __inline __m128i
5313 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5314 _mm512_extracti32x4_epi32 (__m512i __A
, const int __imm
)
5316 return (__m128i
) __builtin_ia32_extracti32x4_mask ((__v16si
) __A
,
5319 _mm_setzero_si128 (),
5323 extern __inline __m128i
5324 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5325 _mm512_mask_extracti32x4_epi32 (__m128i __W
, __mmask8 __U
, __m512i __A
,
5328 return (__m128i
) __builtin_ia32_extracti32x4_mask ((__v16si
) __A
,
5334 extern __inline __m128i
5335 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5336 _mm512_maskz_extracti32x4_epi32 (__mmask8 __U
, __m512i __A
, const int __imm
)
5338 return (__m128i
) __builtin_ia32_extracti32x4_mask ((__v16si
) __A
,
5341 _mm_setzero_si128 (),
5346 #define _mm512_extractf64x4_pd(X, C) \
5347 ((__m256d) __builtin_ia32_extractf64x4_mask ((__v8df)(__m512d) (X), \
5349 (__v4df)(__m256d)_mm256_setzero_pd(),\
5352 #define _mm512_mask_extractf64x4_pd(W, U, X, C) \
5353 ((__m256d) __builtin_ia32_extractf64x4_mask ((__v8df)(__m512d) (X), \
5355 (__v4df)(__m256d)(W),\
5358 #define _mm512_maskz_extractf64x4_pd(U, X, C) \
5359 ((__m256d) __builtin_ia32_extractf64x4_mask ((__v8df)(__m512d) (X), \
5361 (__v4df)(__m256d)_mm256_setzero_pd(),\
5364 #define _mm512_extractf32x4_ps(X, C) \
5365 ((__m128) __builtin_ia32_extractf32x4_mask ((__v16sf)(__m512) (X), \
5367 (__v4sf)(__m128)_mm_setzero_ps(),\
5370 #define _mm512_mask_extractf32x4_ps(W, U, X, C) \
5371 ((__m128) __builtin_ia32_extractf32x4_mask ((__v16sf)(__m512) (X), \
5373 (__v4sf)(__m128)(W),\
5376 #define _mm512_maskz_extractf32x4_ps(U, X, C) \
5377 ((__m128) __builtin_ia32_extractf32x4_mask ((__v16sf)(__m512) (X), \
5379 (__v4sf)(__m128)_mm_setzero_ps(),\
5382 #define _mm512_extracti64x4_epi64(X, C) \
5383 ((__m256i) __builtin_ia32_extracti64x4_mask ((__v8di)(__m512i) (X), \
5385 (__v4di)(__m256i)_mm256_setzero_si256 (),\
5388 #define _mm512_mask_extracti64x4_epi64(W, U, X, C) \
5389 ((__m256i) __builtin_ia32_extracti64x4_mask ((__v8di)(__m512i) (X), \
5391 (__v4di)(__m256i)(W),\
5394 #define _mm512_maskz_extracti64x4_epi64(U, X, C) \
5395 ((__m256i) __builtin_ia32_extracti64x4_mask ((__v8di)(__m512i) (X), \
5397 (__v4di)(__m256i)_mm256_setzero_si256 (),\
5400 #define _mm512_extracti32x4_epi32(X, C) \
5401 ((__m128i) __builtin_ia32_extracti32x4_mask ((__v16si)(__m512i) (X), \
5403 (__v4si)(__m128i)_mm_setzero_si128 (),\
5406 #define _mm512_mask_extracti32x4_epi32(W, U, X, C) \
5407 ((__m128i) __builtin_ia32_extracti32x4_mask ((__v16si)(__m512i) (X), \
5409 (__v4si)(__m128i)(W),\
5412 #define _mm512_maskz_extracti32x4_epi32(U, X, C) \
5413 ((__m128i) __builtin_ia32_extracti32x4_mask ((__v16si)(__m512i) (X), \
5415 (__v4si)(__m128i)_mm_setzero_si128 (),\
5420 extern __inline __m512i
5421 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5422 _mm512_inserti32x4 (__m512i __A
, __m128i __B
, const int __imm
)
5424 return (__m512i
) __builtin_ia32_inserti32x4_mask ((__v16si
) __A
,
5430 extern __inline __m512
5431 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5432 _mm512_insertf32x4 (__m512 __A
, __m128 __B
, const int __imm
)
5434 return (__m512
) __builtin_ia32_insertf32x4_mask ((__v16sf
) __A
,
5440 extern __inline __m512i
5441 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5442 _mm512_inserti64x4 (__m512i __A
, __m256i __B
, const int __imm
)
5444 return (__m512i
) __builtin_ia32_inserti64x4_mask ((__v8di
) __A
,
5448 _mm512_setzero_si512 (),
5452 extern __inline __m512i
5453 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5454 _mm512_mask_inserti64x4 (__m512i __W
, __mmask8 __U
, __m512i __A
,
5455 __m256i __B
, const int __imm
)
5457 return (__m512i
) __builtin_ia32_inserti64x4_mask ((__v8di
) __A
,
5464 extern __inline __m512i
5465 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5466 _mm512_maskz_inserti64x4 (__mmask8 __U
, __m512i __A
, __m256i __B
,
5469 return (__m512i
) __builtin_ia32_inserti64x4_mask ((__v8di
) __A
,
5473 _mm512_setzero_si512 (),
5477 extern __inline __m512d
5478 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5479 _mm512_insertf64x4 (__m512d __A
, __m256d __B
, const int __imm
)
5481 return (__m512d
) __builtin_ia32_insertf64x4_mask ((__v8df
) __A
,
5485 _mm512_setzero_pd (),
5489 extern __inline __m512d
5490 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5491 _mm512_mask_insertf64x4 (__m512d __W
, __mmask8 __U
, __m512d __A
,
5492 __m256d __B
, const int __imm
)
5494 return (__m512d
) __builtin_ia32_insertf64x4_mask ((__v8df
) __A
,
5501 extern __inline __m512d
5502 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5503 _mm512_maskz_insertf64x4 (__mmask8 __U
, __m512d __A
, __m256d __B
,
5506 return (__m512d
) __builtin_ia32_insertf64x4_mask ((__v8df
) __A
,
5510 _mm512_setzero_pd (),
5514 #define _mm512_insertf32x4(X, Y, C) \
5515 ((__m512) __builtin_ia32_insertf32x4_mask ((__v16sf)(__m512) (X), \
5516 (__v4sf)(__m128) (Y), (int) (C), (__v16sf)(__m512) (X), (__mmask16)(-1)))
5518 #define _mm512_inserti32x4(X, Y, C) \
5519 ((__m512i) __builtin_ia32_inserti32x4_mask ((__v16si)(__m512i) (X), \
5520 (__v4si)(__m128i) (Y), (int) (C), (__v16si)(__m512i) (X), (__mmask16)(-1)))
5522 #define _mm512_insertf64x4(X, Y, C) \
5523 ((__m512d) __builtin_ia32_insertf64x4_mask ((__v8df)(__m512d) (X), \
5524 (__v4df)(__m256d) (Y), (int) (C), \
5525 (__v8df)(__m512d)_mm512_setzero_pd(), \
5528 #define _mm512_mask_insertf64x4(W, U, X, Y, C) \
5529 ((__m512d) __builtin_ia32_insertf64x4_mask ((__v8df)(__m512d) (X), \
5530 (__v4df)(__m256d) (Y), (int) (C), \
5531 (__v8df)(__m512d)(W), \
5534 #define _mm512_maskz_insertf64x4(U, X, Y, C) \
5535 ((__m512d) __builtin_ia32_insertf64x4_mask ((__v8df)(__m512d) (X), \
5536 (__v4df)(__m256d) (Y), (int) (C), \
5537 (__v8df)(__m512d)_mm512_setzero_pd(), \
5540 #define _mm512_inserti64x4(X, Y, C) \
5541 ((__m512i) __builtin_ia32_inserti64x4_mask ((__v8di)(__m512i) (X), \
5542 (__v4di)(__m256i) (Y), (int) (C), \
5543 (__v8di)(__m512i)_mm512_setzero_si512 (), \
5546 #define _mm512_mask_inserti64x4(W, U, X, Y, C) \
5547 ((__m512i) __builtin_ia32_inserti64x4_mask ((__v8di)(__m512i) (X), \
5548 (__v4di)(__m256i) (Y), (int) (C),\
5549 (__v8di)(__m512i)(W),\
5552 #define _mm512_maskz_inserti64x4(U, X, Y, C) \
5553 ((__m512i) __builtin_ia32_inserti64x4_mask ((__v8di)(__m512i) (X), \
5554 (__v4di)(__m256i) (Y), (int) (C), \
5555 (__v8di)(__m512i)_mm512_setzero_si512 (), \
5559 extern __inline __m512d
5560 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5561 _mm512_loadu_pd (void const *__P
)
5563 return (__m512d
) __builtin_ia32_loadupd512_mask ((const __v8df
*) __P
,
5565 _mm512_setzero_pd (),
5569 extern __inline __m512d
5570 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5571 _mm512_mask_loadu_pd (__m512d __W
, __mmask8 __U
, void const *__P
)
5573 return (__m512d
) __builtin_ia32_loadupd512_mask ((const __v8df
*) __P
,
5578 extern __inline __m512d
5579 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5580 _mm512_maskz_loadu_pd (__mmask8 __U
, void const *__P
)
5582 return (__m512d
) __builtin_ia32_loadupd512_mask ((const __v8df
*) __P
,
5584 _mm512_setzero_pd (),
5588 extern __inline
void
5589 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5590 _mm512_storeu_pd (void *__P
, __m512d __A
)
5592 __builtin_ia32_storeupd512_mask ((__v8df
*) __P
, (__v8df
) __A
,
5596 extern __inline
void
5597 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5598 _mm512_mask_storeu_pd (void *__P
, __mmask8 __U
, __m512d __A
)
5600 __builtin_ia32_storeupd512_mask ((__v8df
*) __P
, (__v8df
) __A
,
5604 extern __inline __m512
5605 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5606 _mm512_loadu_ps (void const *__P
)
5608 return (__m512
) __builtin_ia32_loadups512_mask ((const __v16sf
*) __P
,
5610 _mm512_setzero_ps (),
5614 extern __inline __m512
5615 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5616 _mm512_mask_loadu_ps (__m512 __W
, __mmask16 __U
, void const *__P
)
5618 return (__m512
) __builtin_ia32_loadups512_mask ((const __v16sf
*) __P
,
5623 extern __inline __m512
5624 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5625 _mm512_maskz_loadu_ps (__mmask16 __U
, void const *__P
)
5627 return (__m512
) __builtin_ia32_loadups512_mask ((const __v16sf
*) __P
,
5629 _mm512_setzero_ps (),
5633 extern __inline
void
5634 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5635 _mm512_storeu_ps (void *__P
, __m512 __A
)
5637 __builtin_ia32_storeups512_mask ((__v16sf
*) __P
, (__v16sf
) __A
,
5641 extern __inline
void
5642 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5643 _mm512_mask_storeu_ps (void *__P
, __mmask16 __U
, __m512 __A
)
5645 __builtin_ia32_storeups512_mask ((__v16sf
*) __P
, (__v16sf
) __A
,
5649 extern __inline __m512i
5650 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5651 _mm512_mask_loadu_epi64 (__m512i __W
, __mmask8 __U
, void const *__P
)
5653 return (__m512i
) __builtin_ia32_loaddqudi512_mask ((const __v8di
*) __P
,
5658 extern __inline __m512i
5659 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5660 _mm512_maskz_loadu_epi64 (__mmask8 __U
, void const *__P
)
5662 return (__m512i
) __builtin_ia32_loaddqudi512_mask ((const __v8di
*) __P
,
5664 _mm512_setzero_si512 (),
5668 extern __inline
void
5669 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5670 _mm512_mask_storeu_epi64 (void *__P
, __mmask8 __U
, __m512i __A
)
5672 __builtin_ia32_storedqudi512_mask ((__v8di
*) __P
, (__v8di
) __A
,
5676 extern __inline
void
5677 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5678 _mm512_storeu_epi64 (void *__P
, __m512i __A
)
5680 __builtin_ia32_storedqudi512_mask ((__v8di
*) __P
, (__v8di
) __A
,
5684 extern __inline __m512i
5685 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5686 _mm512_loadu_epi32 (void const *__P
)
5688 return (__m512i
) __builtin_ia32_loaddqusi512_mask ((const __v16si
*) __P
,
5690 _mm512_setzero_si512 (),
5694 extern __inline __m512i
5695 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5696 _mm512_mask_loadu_epi32 (__m512i __W
, __mmask16 __U
, void const *__P
)
5698 return (__m512i
) __builtin_ia32_loaddqusi512_mask ((const __v16si
*) __P
,
5703 extern __inline __m512i
5704 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5705 _mm512_maskz_loadu_epi32 (__mmask16 __U
, void const *__P
)
5707 return (__m512i
) __builtin_ia32_loaddqusi512_mask ((const __v16si
*) __P
,
5709 _mm512_setzero_si512 (),
5713 extern __inline
void
5714 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5715 _mm512_storeu_epi32 (void *__P
, __m512i __A
)
5717 __builtin_ia32_storedqusi512_mask ((__v16si
*) __P
, (__v16si
) __A
,
5721 extern __inline
void
5722 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5723 _mm512_mask_storeu_epi32 (void *__P
, __mmask16 __U
, __m512i __A
)
5725 __builtin_ia32_storedqusi512_mask ((__v16si
*) __P
, (__v16si
) __A
,
5729 extern __inline __m512d
5730 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5731 _mm512_permutevar_pd (__m512d __A
, __m512i __C
)
5733 return (__m512d
) __builtin_ia32_vpermilvarpd512_mask ((__v8df
) __A
,
5736 _mm512_setzero_pd (),
5740 extern __inline __m512d
5741 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5742 _mm512_mask_permutevar_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512i __C
)
5744 return (__m512d
) __builtin_ia32_vpermilvarpd512_mask ((__v8df
) __A
,
5750 extern __inline __m512d
5751 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5752 _mm512_maskz_permutevar_pd (__mmask8 __U
, __m512d __A
, __m512i __C
)
5754 return (__m512d
) __builtin_ia32_vpermilvarpd512_mask ((__v8df
) __A
,
5757 _mm512_setzero_pd (),
5761 extern __inline __m512
5762 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5763 _mm512_permutevar_ps (__m512 __A
, __m512i __C
)
5765 return (__m512
) __builtin_ia32_vpermilvarps512_mask ((__v16sf
) __A
,
5768 _mm512_setzero_ps (),
5772 extern __inline __m512
5773 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5774 _mm512_mask_permutevar_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512i __C
)
5776 return (__m512
) __builtin_ia32_vpermilvarps512_mask ((__v16sf
) __A
,
5782 extern __inline __m512
5783 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5784 _mm512_maskz_permutevar_ps (__mmask16 __U
, __m512 __A
, __m512i __C
)
5786 return (__m512
) __builtin_ia32_vpermilvarps512_mask ((__v16sf
) __A
,
5789 _mm512_setzero_ps (),
5793 extern __inline __m512i
5794 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5795 _mm512_permutex2var_epi64 (__m512i __A
, __m512i __I
, __m512i __B
)
5797 return (__m512i
) __builtin_ia32_vpermt2varq512_mask ((__v8di
) __I
5804 extern __inline __m512i
5805 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5806 _mm512_mask_permutex2var_epi64 (__m512i __A
, __mmask8 __U
, __m512i __I
,
5809 return (__m512i
) __builtin_ia32_vpermt2varq512_mask ((__v8di
) __I
5816 extern __inline __m512i
5817 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5818 _mm512_mask2_permutex2var_epi64 (__m512i __A
, __m512i __I
,
5819 __mmask8 __U
, __m512i __B
)
5821 return (__m512i
) __builtin_ia32_vpermi2varq512_mask ((__v8di
) __A
,
5828 extern __inline __m512i
5829 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5830 _mm512_maskz_permutex2var_epi64 (__mmask8 __U
, __m512i __A
,
5831 __m512i __I
, __m512i __B
)
5833 return (__m512i
) __builtin_ia32_vpermt2varq512_maskz ((__v8di
) __I
5840 extern __inline __m512i
5841 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5842 _mm512_permutex2var_epi32 (__m512i __A
, __m512i __I
, __m512i __B
)
5844 return (__m512i
) __builtin_ia32_vpermt2vard512_mask ((__v16si
) __I
5851 extern __inline __m512i
5852 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5853 _mm512_mask_permutex2var_epi32 (__m512i __A
, __mmask16 __U
,
5854 __m512i __I
, __m512i __B
)
5856 return (__m512i
) __builtin_ia32_vpermt2vard512_mask ((__v16si
) __I
5863 extern __inline __m512i
5864 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5865 _mm512_mask2_permutex2var_epi32 (__m512i __A
, __m512i __I
,
5866 __mmask16 __U
, __m512i __B
)
5868 return (__m512i
) __builtin_ia32_vpermi2vard512_mask ((__v16si
) __A
,
5875 extern __inline __m512i
5876 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5877 _mm512_maskz_permutex2var_epi32 (__mmask16 __U
, __m512i __A
,
5878 __m512i __I
, __m512i __B
)
5880 return (__m512i
) __builtin_ia32_vpermt2vard512_maskz ((__v16si
) __I
5887 extern __inline __m512d
5888 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5889 _mm512_permutex2var_pd (__m512d __A
, __m512i __I
, __m512d __B
)
5891 return (__m512d
) __builtin_ia32_vpermt2varpd512_mask ((__v8di
) __I
5898 extern __inline __m512d
5899 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5900 _mm512_mask_permutex2var_pd (__m512d __A
, __mmask8 __U
, __m512i __I
,
5903 return (__m512d
) __builtin_ia32_vpermt2varpd512_mask ((__v8di
) __I
5910 extern __inline __m512d
5911 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5912 _mm512_mask2_permutex2var_pd (__m512d __A
, __m512i __I
, __mmask8 __U
,
5915 return (__m512d
) __builtin_ia32_vpermi2varpd512_mask ((__v8df
) __A
,
5922 extern __inline __m512d
5923 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5924 _mm512_maskz_permutex2var_pd (__mmask8 __U
, __m512d __A
, __m512i __I
,
5927 return (__m512d
) __builtin_ia32_vpermt2varpd512_maskz ((__v8di
) __I
5934 extern __inline __m512
5935 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5936 _mm512_permutex2var_ps (__m512 __A
, __m512i __I
, __m512 __B
)
5938 return (__m512
) __builtin_ia32_vpermt2varps512_mask ((__v16si
) __I
5945 extern __inline __m512
5946 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5947 _mm512_mask_permutex2var_ps (__m512 __A
, __mmask16 __U
, __m512i __I
, __m512 __B
)
5949 return (__m512
) __builtin_ia32_vpermt2varps512_mask ((__v16si
) __I
5956 extern __inline __m512
5957 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5958 _mm512_mask2_permutex2var_ps (__m512 __A
, __m512i __I
, __mmask16 __U
,
5961 return (__m512
) __builtin_ia32_vpermi2varps512_mask ((__v16sf
) __A
,
5968 extern __inline __m512
5969 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5970 _mm512_maskz_permutex2var_ps (__mmask16 __U
, __m512 __A
, __m512i __I
,
5973 return (__m512
) __builtin_ia32_vpermt2varps512_maskz ((__v16si
) __I
5981 extern __inline __m512d
5982 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5983 _mm512_permute_pd (__m512d __X
, const int __C
)
5985 return (__m512d
) __builtin_ia32_vpermilpd512_mask ((__v8df
) __X
, __C
,
5987 _mm512_setzero_pd (),
5991 extern __inline __m512d
5992 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5993 _mm512_mask_permute_pd (__m512d __W
, __mmask8 __U
, __m512d __X
, const int __C
)
5995 return (__m512d
) __builtin_ia32_vpermilpd512_mask ((__v8df
) __X
, __C
,
6000 extern __inline __m512d
6001 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6002 _mm512_maskz_permute_pd (__mmask8 __U
, __m512d __X
, const int __C
)
6004 return (__m512d
) __builtin_ia32_vpermilpd512_mask ((__v8df
) __X
, __C
,
6006 _mm512_setzero_pd (),
6010 extern __inline __m512
6011 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6012 _mm512_permute_ps (__m512 __X
, const int __C
)
6014 return (__m512
) __builtin_ia32_vpermilps512_mask ((__v16sf
) __X
, __C
,
6016 _mm512_setzero_ps (),
6020 extern __inline __m512
6021 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6022 _mm512_mask_permute_ps (__m512 __W
, __mmask16 __U
, __m512 __X
, const int __C
)
6024 return (__m512
) __builtin_ia32_vpermilps512_mask ((__v16sf
) __X
, __C
,
6029 extern __inline __m512
6030 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6031 _mm512_maskz_permute_ps (__mmask16 __U
, __m512 __X
, const int __C
)
6033 return (__m512
) __builtin_ia32_vpermilps512_mask ((__v16sf
) __X
, __C
,
6035 _mm512_setzero_ps (),
6039 #define _mm512_permute_pd(X, C) \
6040 ((__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df)(__m512d)(X), (int)(C), \
6041 (__v8df)(__m512d)(X), \
6044 #define _mm512_mask_permute_pd(W, U, X, C) \
6045 ((__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df)(__m512d)(X), (int)(C), \
6046 (__v8df)(__m512d)(W), \
6049 #define _mm512_maskz_permute_pd(U, X, C) \
6050 ((__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df)(__m512d)(X), (int)(C), \
6051 (__v8df)(__m512d)_mm512_setzero_pd(), \
6054 #define _mm512_permute_ps(X, C) \
6055 ((__m512) __builtin_ia32_vpermilps512_mask ((__v16sf)(__m512)(X), (int)(C), \
6056 (__v16sf)(__m512)(X), \
6059 #define _mm512_mask_permute_ps(W, U, X, C) \
6060 ((__m512) __builtin_ia32_vpermilps512_mask ((__v16sf)(__m512)(X), (int)(C), \
6061 (__v16sf)(__m512)(W), \
6064 #define _mm512_maskz_permute_ps(U, X, C) \
6065 ((__m512) __builtin_ia32_vpermilps512_mask ((__v16sf)(__m512)(X), (int)(C), \
6066 (__v16sf)(__m512)_mm512_setzero_ps(), \
6071 extern __inline __m512i
6072 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6073 _mm512_permutex_epi64 (__m512i __X
, const int __I
)
6075 return (__m512i
) __builtin_ia32_permdi512_mask ((__v8di
) __X
, __I
,
6077 _mm512_setzero_si512 (),
6081 extern __inline __m512i
6082 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6083 _mm512_mask_permutex_epi64 (__m512i __W
, __mmask8 __M
,
6084 __m512i __X
, const int __I
)
6086 return (__m512i
) __builtin_ia32_permdi512_mask ((__v8di
) __X
, __I
,
6091 extern __inline __m512i
6092 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6093 _mm512_maskz_permutex_epi64 (__mmask8 __M
, __m512i __X
, const int __I
)
6095 return (__m512i
) __builtin_ia32_permdi512_mask ((__v8di
) __X
, __I
,
6097 _mm512_setzero_si512 (),
6101 extern __inline __m512d
6102 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6103 _mm512_permutex_pd (__m512d __X
, const int __M
)
6105 return (__m512d
) __builtin_ia32_permdf512_mask ((__v8df
) __X
, __M
,
6107 _mm512_setzero_pd (),
6111 extern __inline __m512d
6112 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6113 _mm512_mask_permutex_pd (__m512d __W
, __mmask8 __U
, __m512d __X
, const int __M
)
6115 return (__m512d
) __builtin_ia32_permdf512_mask ((__v8df
) __X
, __M
,
6120 extern __inline __m512d
6121 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6122 _mm512_maskz_permutex_pd (__mmask8 __U
, __m512d __X
, const int __M
)
6124 return (__m512d
) __builtin_ia32_permdf512_mask ((__v8df
) __X
, __M
,
6126 _mm512_setzero_pd (),
6130 #define _mm512_permutex_pd(X, M) \
6131 ((__m512d) __builtin_ia32_permdf512_mask ((__v8df)(__m512d)(X), (int)(M), \
6132 (__v8df)(__m512d)(X), (__mmask8)-1))
6134 #define _mm512_mask_permutex_pd(W, U, X, M) \
6135 ((__m512d) __builtin_ia32_permdf512_mask ((__v8df)(__m512d)(X), (int)(M), \
6136 (__v8df)(__m512d)(W), (__mmask8)(U)))
6138 #define _mm512_maskz_permutex_pd(U, X, M) \
6139 ((__m512d) __builtin_ia32_permdf512_mask ((__v8df)(__m512d)(X), (int)(M), \
6140 (__v8df)(__m512d)_mm512_setzero_pd(),\
6143 #define _mm512_permutex_epi64(X, I) \
6144 ((__m512i) __builtin_ia32_permdi512_mask ((__v8di)(__m512i)(X), \
6146 (__v8di)(__m512i)(X), \
6149 #define _mm512_maskz_permutex_epi64(M, X, I) \
6150 ((__m512i) __builtin_ia32_permdi512_mask ((__v8di)(__m512i)(X), \
6153 (_mm512_setzero_si512 ()),\
6156 #define _mm512_mask_permutex_epi64(W, M, X, I) \
6157 ((__m512i) __builtin_ia32_permdi512_mask ((__v8di)(__m512i)(X), \
6159 (__v8di)(__m512i)(W), \
6163 extern __inline __m512i
6164 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6165 _mm512_maskz_permutexvar_epi64 (__mmask8 __M
, __m512i __X
, __m512i __Y
)
6167 return (__m512i
) __builtin_ia32_permvardi512_mask ((__v8di
) __X
,
6170 _mm512_setzero_si512 (),
6174 extern __inline __m512i
6175 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6176 _mm512_permutexvar_epi64 (__m512i __X
, __m512i __Y
)
6178 return (__m512i
) __builtin_ia32_permvardi512_mask ((__v8di
) __X
,
6181 _mm512_setzero_si512 (),
6185 extern __inline __m512i
6186 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6187 _mm512_mask_permutexvar_epi64 (__m512i __W
, __mmask8 __M
, __m512i __X
,
6190 return (__m512i
) __builtin_ia32_permvardi512_mask ((__v8di
) __X
,
6196 extern __inline __m512i
6197 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6198 _mm512_maskz_permutexvar_epi32 (__mmask16 __M
, __m512i __X
, __m512i __Y
)
6200 return (__m512i
) __builtin_ia32_permvarsi512_mask ((__v16si
) __X
,
6203 _mm512_setzero_si512 (),
6207 extern __inline __m512i
6208 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6209 _mm512_permutexvar_epi32 (__m512i __X
, __m512i __Y
)
6211 return (__m512i
) __builtin_ia32_permvarsi512_mask ((__v16si
) __X
,
6214 _mm512_setzero_si512 (),
6218 extern __inline __m512i
6219 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6220 _mm512_mask_permutexvar_epi32 (__m512i __W
, __mmask16 __M
, __m512i __X
,
6223 return (__m512i
) __builtin_ia32_permvarsi512_mask ((__v16si
) __X
,
6229 extern __inline __m512d
6230 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6231 _mm512_permutexvar_pd (__m512i __X
, __m512d __Y
)
6233 return (__m512d
) __builtin_ia32_permvardf512_mask ((__v8df
) __Y
,
6236 _mm512_setzero_pd (),
6240 extern __inline __m512d
6241 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6242 _mm512_mask_permutexvar_pd (__m512d __W
, __mmask8 __U
, __m512i __X
, __m512d __Y
)
6244 return (__m512d
) __builtin_ia32_permvardf512_mask ((__v8df
) __Y
,
6250 extern __inline __m512d
6251 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6252 _mm512_maskz_permutexvar_pd (__mmask8 __U
, __m512i __X
, __m512d __Y
)
6254 return (__m512d
) __builtin_ia32_permvardf512_mask ((__v8df
) __Y
,
6257 _mm512_setzero_pd (),
6261 extern __inline __m512
6262 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6263 _mm512_permutexvar_ps (__m512i __X
, __m512 __Y
)
6265 return (__m512
) __builtin_ia32_permvarsf512_mask ((__v16sf
) __Y
,
6268 _mm512_setzero_ps (),
6272 extern __inline __m512
6273 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6274 _mm512_mask_permutexvar_ps (__m512 __W
, __mmask16 __U
, __m512i __X
, __m512 __Y
)
6276 return (__m512
) __builtin_ia32_permvarsf512_mask ((__v16sf
) __Y
,
6282 extern __inline __m512
6283 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6284 _mm512_maskz_permutexvar_ps (__mmask16 __U
, __m512i __X
, __m512 __Y
)
6286 return (__m512
) __builtin_ia32_permvarsf512_mask ((__v16sf
) __Y
,
6289 _mm512_setzero_ps (),
6294 extern __inline __m512
6295 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6296 _mm512_shuffle_ps (__m512 __M
, __m512 __V
, const int __imm
)
6298 return (__m512
) __builtin_ia32_shufps512_mask ((__v16sf
) __M
,
6299 (__v16sf
) __V
, __imm
,
6301 _mm512_setzero_ps (),
6305 extern __inline __m512
6306 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6307 _mm512_mask_shuffle_ps (__m512 __W
, __mmask16 __U
, __m512 __M
,
6308 __m512 __V
, const int __imm
)
6310 return (__m512
) __builtin_ia32_shufps512_mask ((__v16sf
) __M
,
6311 (__v16sf
) __V
, __imm
,
6316 extern __inline __m512
6317 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6318 _mm512_maskz_shuffle_ps (__mmask16 __U
, __m512 __M
, __m512 __V
, const int __imm
)
6320 return (__m512
) __builtin_ia32_shufps512_mask ((__v16sf
) __M
,
6321 (__v16sf
) __V
, __imm
,
6323 _mm512_setzero_ps (),
6327 extern __inline __m512d
6328 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6329 _mm512_shuffle_pd (__m512d __M
, __m512d __V
, const int __imm
)
6331 return (__m512d
) __builtin_ia32_shufpd512_mask ((__v8df
) __M
,
6332 (__v8df
) __V
, __imm
,
6334 _mm512_setzero_pd (),
6338 extern __inline __m512d
6339 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6340 _mm512_mask_shuffle_pd (__m512d __W
, __mmask8 __U
, __m512d __M
,
6341 __m512d __V
, const int __imm
)
6343 return (__m512d
) __builtin_ia32_shufpd512_mask ((__v8df
) __M
,
6344 (__v8df
) __V
, __imm
,
6349 extern __inline __m512d
6350 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6351 _mm512_maskz_shuffle_pd (__mmask8 __U
, __m512d __M
, __m512d __V
,
6354 return (__m512d
) __builtin_ia32_shufpd512_mask ((__v8df
) __M
,
6355 (__v8df
) __V
, __imm
,
6357 _mm512_setzero_pd (),
6361 extern __inline __m512d
6362 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6363 _mm512_fixupimm_round_pd (__m512d __A
, __m512d __B
, __m512i __C
,
6364 const int __imm
, const int __R
)
6366 return (__m512d
) __builtin_ia32_fixupimmpd512_mask ((__v8df
) __A
,
6370 (__mmask8
) -1, __R
);
6373 extern __inline __m512d
6374 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6375 _mm512_mask_fixupimm_round_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
6376 __m512i __C
, const int __imm
, const int __R
)
6378 return (__m512d
) __builtin_ia32_fixupimmpd512_mask ((__v8df
) __A
,
6382 (__mmask8
) __U
, __R
);
6385 extern __inline __m512d
6386 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6387 _mm512_maskz_fixupimm_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
6388 __m512i __C
, const int __imm
, const int __R
)
6390 return (__m512d
) __builtin_ia32_fixupimmpd512_maskz ((__v8df
) __A
,
6394 (__mmask8
) __U
, __R
);
6397 extern __inline __m512
6398 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6399 _mm512_fixupimm_round_ps (__m512 __A
, __m512 __B
, __m512i __C
,
6400 const int __imm
, const int __R
)
6402 return (__m512
) __builtin_ia32_fixupimmps512_mask ((__v16sf
) __A
,
6406 (__mmask16
) -1, __R
);
6409 extern __inline __m512
6410 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6411 _mm512_mask_fixupimm_round_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
6412 __m512i __C
, const int __imm
, const int __R
)
6414 return (__m512
) __builtin_ia32_fixupimmps512_mask ((__v16sf
) __A
,
6418 (__mmask16
) __U
, __R
);
6421 extern __inline __m512
6422 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6423 _mm512_maskz_fixupimm_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
6424 __m512i __C
, const int __imm
, const int __R
)
6426 return (__m512
) __builtin_ia32_fixupimmps512_maskz ((__v16sf
) __A
,
6430 (__mmask16
) __U
, __R
);
6433 extern __inline __m128d
6434 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6435 _mm_fixupimm_round_sd (__m128d __A
, __m128d __B
, __m128i __C
,
6436 const int __imm
, const int __R
)
6438 return (__m128d
) __builtin_ia32_fixupimmsd_mask ((__v2df
) __A
,
6440 (__v2di
) __C
, __imm
,
6441 (__mmask8
) -1, __R
);
6444 extern __inline __m128d
6445 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6446 _mm_mask_fixupimm_round_sd (__m128d __A
, __mmask8 __U
, __m128d __B
,
6447 __m128i __C
, const int __imm
, const int __R
)
6449 return (__m128d
) __builtin_ia32_fixupimmsd_mask ((__v2df
) __A
,
6451 (__v2di
) __C
, __imm
,
6452 (__mmask8
) __U
, __R
);
6455 extern __inline __m128d
6456 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6457 _mm_maskz_fixupimm_round_sd (__mmask8 __U
, __m128d __A
, __m128d __B
,
6458 __m128i __C
, const int __imm
, const int __R
)
6460 return (__m128d
) __builtin_ia32_fixupimmsd_maskz ((__v2df
) __A
,
6464 (__mmask8
) __U
, __R
);
6467 extern __inline __m128
6468 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6469 _mm_fixupimm_round_ss (__m128 __A
, __m128 __B
, __m128i __C
,
6470 const int __imm
, const int __R
)
6472 return (__m128
) __builtin_ia32_fixupimmss_mask ((__v4sf
) __A
,
6474 (__v4si
) __C
, __imm
,
6475 (__mmask8
) -1, __R
);
6478 extern __inline __m128
6479 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6480 _mm_mask_fixupimm_round_ss (__m128 __A
, __mmask8 __U
, __m128 __B
,
6481 __m128i __C
, const int __imm
, const int __R
)
6483 return (__m128
) __builtin_ia32_fixupimmss_mask ((__v4sf
) __A
,
6485 (__v4si
) __C
, __imm
,
6486 (__mmask8
) __U
, __R
);
6489 extern __inline __m128
6490 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6491 _mm_maskz_fixupimm_round_ss (__mmask8 __U
, __m128 __A
, __m128 __B
,
6492 __m128i __C
, const int __imm
, const int __R
)
6494 return (__m128
) __builtin_ia32_fixupimmss_maskz ((__v4sf
) __A
,
6496 (__v4si
) __C
, __imm
,
6497 (__mmask8
) __U
, __R
);
6501 #define _mm512_shuffle_pd(X, Y, C) \
6502 ((__m512d)__builtin_ia32_shufpd512_mask ((__v8df)(__m512d)(X), \
6503 (__v8df)(__m512d)(Y), (int)(C),\
6504 (__v8df)(__m512d)_mm512_setzero_pd(),\
6507 #define _mm512_mask_shuffle_pd(W, U, X, Y, C) \
6508 ((__m512d)__builtin_ia32_shufpd512_mask ((__v8df)(__m512d)(X), \
6509 (__v8df)(__m512d)(Y), (int)(C),\
6510 (__v8df)(__m512d)(W),\
6513 #define _mm512_maskz_shuffle_pd(U, X, Y, C) \
6514 ((__m512d)__builtin_ia32_shufpd512_mask ((__v8df)(__m512d)(X), \
6515 (__v8df)(__m512d)(Y), (int)(C),\
6516 (__v8df)(__m512d)_mm512_setzero_pd(),\
6519 #define _mm512_shuffle_ps(X, Y, C) \
6520 ((__m512)__builtin_ia32_shufps512_mask ((__v16sf)(__m512)(X), \
6521 (__v16sf)(__m512)(Y), (int)(C),\
6522 (__v16sf)(__m512)_mm512_setzero_ps(),\
6525 #define _mm512_mask_shuffle_ps(W, U, X, Y, C) \
6526 ((__m512)__builtin_ia32_shufps512_mask ((__v16sf)(__m512)(X), \
6527 (__v16sf)(__m512)(Y), (int)(C),\
6528 (__v16sf)(__m512)(W),\
6531 #define _mm512_maskz_shuffle_ps(U, X, Y, C) \
6532 ((__m512)__builtin_ia32_shufps512_mask ((__v16sf)(__m512)(X), \
6533 (__v16sf)(__m512)(Y), (int)(C),\
6534 (__v16sf)(__m512)_mm512_setzero_ps(),\
6537 #define _mm512_fixupimm_round_pd(X, Y, Z, C, R) \
6538 ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X), \
6539 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
6540 (__mmask8)(-1), (R)))
6542 #define _mm512_mask_fixupimm_round_pd(X, U, Y, Z, C, R) \
6543 ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X), \
6544 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
6545 (__mmask8)(U), (R)))
6547 #define _mm512_maskz_fixupimm_round_pd(U, X, Y, Z, C, R) \
6548 ((__m512d)__builtin_ia32_fixupimmpd512_maskz ((__v8df)(__m512d)(X), \
6549 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
6550 (__mmask8)(U), (R)))
6552 #define _mm512_fixupimm_round_ps(X, Y, Z, C, R) \
6553 ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X), \
6554 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
6555 (__mmask16)(-1), (R)))
6557 #define _mm512_mask_fixupimm_round_ps(X, U, Y, Z, C, R) \
6558 ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X), \
6559 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
6560 (__mmask16)(U), (R)))
6562 #define _mm512_maskz_fixupimm_round_ps(U, X, Y, Z, C, R) \
6563 ((__m512)__builtin_ia32_fixupimmps512_maskz ((__v16sf)(__m512)(X), \
6564 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
6565 (__mmask16)(U), (R)))
6567 #define _mm_fixupimm_round_sd(X, Y, Z, C, R) \
6568 ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X), \
6569 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
6570 (__mmask8)(-1), (R)))
6572 #define _mm_mask_fixupimm_round_sd(X, U, Y, Z, C, R) \
6573 ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X), \
6574 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
6575 (__mmask8)(U), (R)))
6577 #define _mm_maskz_fixupimm_round_sd(U, X, Y, Z, C, R) \
6578 ((__m128d)__builtin_ia32_fixupimmsd_maskz ((__v2df)(__m128d)(X), \
6579 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
6580 (__mmask8)(U), (R)))
6582 #define _mm_fixupimm_round_ss(X, Y, Z, C, R) \
6583 ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X), \
6584 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
6585 (__mmask8)(-1), (R)))
6587 #define _mm_mask_fixupimm_round_ss(X, U, Y, Z, C, R) \
6588 ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X), \
6589 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
6590 (__mmask8)(U), (R)))
6592 #define _mm_maskz_fixupimm_round_ss(U, X, Y, Z, C, R) \
6593 ((__m128)__builtin_ia32_fixupimmss_maskz ((__v4sf)(__m128)(X), \
6594 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
6595 (__mmask8)(U), (R)))
6598 extern __inline __m512
6599 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6600 _mm512_movehdup_ps (__m512 __A
)
6602 return (__m512
) __builtin_ia32_movshdup512_mask ((__v16sf
) __A
,
6604 _mm512_setzero_ps (),
6608 extern __inline __m512
6609 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6610 _mm512_mask_movehdup_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
6612 return (__m512
) __builtin_ia32_movshdup512_mask ((__v16sf
) __A
,
6617 extern __inline __m512
6618 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6619 _mm512_maskz_movehdup_ps (__mmask16 __U
, __m512 __A
)
6621 return (__m512
) __builtin_ia32_movshdup512_mask ((__v16sf
) __A
,
6623 _mm512_setzero_ps (),
6627 extern __inline __m512
6628 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6629 _mm512_moveldup_ps (__m512 __A
)
6631 return (__m512
) __builtin_ia32_movsldup512_mask ((__v16sf
) __A
,
6633 _mm512_setzero_ps (),
6637 extern __inline __m512
6638 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6639 _mm512_mask_moveldup_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
6641 return (__m512
) __builtin_ia32_movsldup512_mask ((__v16sf
) __A
,
6646 extern __inline __m512
6647 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6648 _mm512_maskz_moveldup_ps (__mmask16 __U
, __m512 __A
)
6650 return (__m512
) __builtin_ia32_movsldup512_mask ((__v16sf
) __A
,
6652 _mm512_setzero_ps (),
6656 extern __inline __m512i
6657 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6658 _mm512_or_si512 (__m512i __A
, __m512i __B
)
6660 return (__m512i
) __builtin_ia32_pord512_mask ((__v16si
) __A
,
6663 _mm512_setzero_si512 (),
6667 extern __inline __m512i
6668 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6669 _mm512_or_epi32 (__m512i __A
, __m512i __B
)
6671 return (__m512i
) __builtin_ia32_pord512_mask ((__v16si
) __A
,
6674 _mm512_setzero_si512 (),
6678 extern __inline __m512i
6679 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6680 _mm512_mask_or_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
6682 return (__m512i
) __builtin_ia32_pord512_mask ((__v16si
) __A
,
6688 extern __inline __m512i
6689 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6690 _mm512_maskz_or_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
6692 return (__m512i
) __builtin_ia32_pord512_mask ((__v16si
) __A
,
6695 _mm512_setzero_si512 (),
6699 extern __inline __m512i
6700 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6701 _mm512_or_epi64 (__m512i __A
, __m512i __B
)
6703 return (__m512i
) __builtin_ia32_porq512_mask ((__v8di
) __A
,
6706 _mm512_setzero_si512 (),
6710 extern __inline __m512i
6711 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6712 _mm512_mask_or_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
6714 return (__m512i
) __builtin_ia32_porq512_mask ((__v8di
) __A
,
6720 extern __inline __m512i
6721 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6722 _mm512_maskz_or_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
6724 return (__m512i
) __builtin_ia32_porq512_mask ((__v8di
) __A
,
6727 _mm512_setzero_si512 (),
6731 extern __inline __m512i
6732 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6733 _mm512_xor_si512 (__m512i __A
, __m512i __B
)
6735 return (__m512i
) __builtin_ia32_pxord512_mask ((__v16si
) __A
,
6738 _mm512_setzero_si512 (),
6742 extern __inline __m512i
6743 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6744 _mm512_xor_epi32 (__m512i __A
, __m512i __B
)
6746 return (__m512i
) __builtin_ia32_pxord512_mask ((__v16si
) __A
,
6749 _mm512_setzero_si512 (),
6753 extern __inline __m512i
6754 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6755 _mm512_mask_xor_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
6757 return (__m512i
) __builtin_ia32_pxord512_mask ((__v16si
) __A
,
6763 extern __inline __m512i
6764 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6765 _mm512_maskz_xor_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
6767 return (__m512i
) __builtin_ia32_pxord512_mask ((__v16si
) __A
,
6770 _mm512_setzero_si512 (),
6774 extern __inline __m512i
6775 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6776 _mm512_xor_epi64 (__m512i __A
, __m512i __B
)
6778 return (__m512i
) __builtin_ia32_pxorq512_mask ((__v8di
) __A
,
6781 _mm512_setzero_si512 (),
6785 extern __inline __m512i
6786 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6787 _mm512_mask_xor_epi64 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
6789 return (__m512i
) __builtin_ia32_pxorq512_mask ((__v8di
) __A
,
6795 extern __inline __m512i
6796 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6797 _mm512_maskz_xor_epi64 (__mmask16 __U
, __m512i __A
, __m512i __B
)
6799 return (__m512i
) __builtin_ia32_pxorq512_mask ((__v8di
) __A
,
6802 _mm512_setzero_si512 (),
6807 extern __inline __m512i
6808 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6809 _mm512_rol_epi32 (__m512i __A
, const int __B
)
6811 return (__m512i
) __builtin_ia32_prold512_mask ((__v16si
) __A
, __B
,
6813 _mm512_setzero_si512 (),
6817 extern __inline __m512i
6818 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6819 _mm512_mask_rol_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, const int __B
)
6821 return (__m512i
) __builtin_ia32_prold512_mask ((__v16si
) __A
, __B
,
6826 extern __inline __m512i
6827 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6828 _mm512_maskz_rol_epi32 (__mmask16 __U
, __m512i __A
, const int __B
)
6830 return (__m512i
) __builtin_ia32_prold512_mask ((__v16si
) __A
, __B
,
6832 _mm512_setzero_si512 (),
6836 extern __inline __m512i
6837 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6838 _mm512_ror_epi32 (__m512i __A
, int __B
)
6840 return (__m512i
) __builtin_ia32_prord512_mask ((__v16si
) __A
, __B
,
6842 _mm512_setzero_si512 (),
6846 extern __inline __m512i
6847 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6848 _mm512_mask_ror_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, int __B
)
6850 return (__m512i
) __builtin_ia32_prord512_mask ((__v16si
) __A
, __B
,
6855 extern __inline __m512i
6856 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6857 _mm512_maskz_ror_epi32 (__mmask16 __U
, __m512i __A
, int __B
)
6859 return (__m512i
) __builtin_ia32_prord512_mask ((__v16si
) __A
, __B
,
6861 _mm512_setzero_si512 (),
6865 extern __inline __m512i
6866 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6867 _mm512_rol_epi64 (__m512i __A
, const int __B
)
6869 return (__m512i
) __builtin_ia32_prolq512_mask ((__v8di
) __A
, __B
,
6871 _mm512_setzero_si512 (),
6875 extern __inline __m512i
6876 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6877 _mm512_mask_rol_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, const int __B
)
6879 return (__m512i
) __builtin_ia32_prolq512_mask ((__v8di
) __A
, __B
,
6884 extern __inline __m512i
6885 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6886 _mm512_maskz_rol_epi64 (__mmask8 __U
, __m512i __A
, const int __B
)
6888 return (__m512i
) __builtin_ia32_prolq512_mask ((__v8di
) __A
, __B
,
6890 _mm512_setzero_si512 (),
6894 extern __inline __m512i
6895 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6896 _mm512_ror_epi64 (__m512i __A
, int __B
)
6898 return (__m512i
) __builtin_ia32_prorq512_mask ((__v8di
) __A
, __B
,
6900 _mm512_setzero_si512 (),
6904 extern __inline __m512i
6905 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6906 _mm512_mask_ror_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, int __B
)
6908 return (__m512i
) __builtin_ia32_prorq512_mask ((__v8di
) __A
, __B
,
6913 extern __inline __m512i
6914 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6915 _mm512_maskz_ror_epi64 (__mmask8 __U
, __m512i __A
, int __B
)
6917 return (__m512i
) __builtin_ia32_prorq512_mask ((__v8di
) __A
, __B
,
6919 _mm512_setzero_si512 (),
6924 #define _mm512_rol_epi32(A, B) \
6925 ((__m512i)__builtin_ia32_prold512_mask ((__v16si)(__m512i)(A), \
6927 (__v16si)_mm512_setzero_si512 (), \
6929 #define _mm512_mask_rol_epi32(W, U, A, B) \
6930 ((__m512i)__builtin_ia32_prold512_mask ((__v16si)(__m512i)(A), \
6932 (__v16si)(__m512i)(W), \
6934 #define _mm512_maskz_rol_epi32(U, A, B) \
6935 ((__m512i)__builtin_ia32_prold512_mask ((__v16si)(__m512i)(A), \
6937 (__v16si)_mm512_setzero_si512 (), \
6939 #define _mm512_ror_epi32(A, B) \
6940 ((__m512i)__builtin_ia32_prord512_mask ((__v16si)(__m512i)(A), \
6942 (__v16si)_mm512_setzero_si512 (), \
6944 #define _mm512_mask_ror_epi32(W, U, A, B) \
6945 ((__m512i)__builtin_ia32_prord512_mask ((__v16si)(__m512i)(A), \
6947 (__v16si)(__m512i)(W), \
6949 #define _mm512_maskz_ror_epi32(U, A, B) \
6950 ((__m512i)__builtin_ia32_prord512_mask ((__v16si)(__m512i)(A), \
6952 (__v16si)_mm512_setzero_si512 (), \
6954 #define _mm512_rol_epi64(A, B) \
6955 ((__m512i)__builtin_ia32_prolq512_mask ((__v8di)(__m512i)(A), \
6957 (__v8di)_mm512_setzero_si512 (), \
6959 #define _mm512_mask_rol_epi64(W, U, A, B) \
6960 ((__m512i)__builtin_ia32_prolq512_mask ((__v8di)(__m512i)(A), \
6962 (__v8di)(__m512i)(W), \
6964 #define _mm512_maskz_rol_epi64(U, A, B) \
6965 ((__m512i)__builtin_ia32_prolq512_mask ((__v8di)(__m512i)(A), \
6967 (__v8di)_mm512_setzero_si512 (), \
6970 #define _mm512_ror_epi64(A, B) \
6971 ((__m512i)__builtin_ia32_prorq512_mask ((__v8di)(__m512i)(A), \
6973 (__v8di)_mm512_setzero_si512 (), \
6975 #define _mm512_mask_ror_epi64(W, U, A, B) \
6976 ((__m512i)__builtin_ia32_prorq512_mask ((__v8di)(__m512i)(A), \
6978 (__v8di)(__m512i)(W), \
6980 #define _mm512_maskz_ror_epi64(U, A, B) \
6981 ((__m512i)__builtin_ia32_prorq512_mask ((__v8di)(__m512i)(A), \
6983 (__v8di)_mm512_setzero_si512 (), \
6987 extern __inline __m512i
6988 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6989 _mm512_and_si512 (__m512i __A
, __m512i __B
)
6991 return (__m512i
) __builtin_ia32_pandd512_mask ((__v16si
) __A
,
6994 _mm512_setzero_si512 (),
6998 extern __inline __m512i
6999 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7000 _mm512_and_epi32 (__m512i __A
, __m512i __B
)
7002 return (__m512i
) __builtin_ia32_pandd512_mask ((__v16si
) __A
,
7005 _mm512_setzero_si512 (),
7009 extern __inline __m512i
7010 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7011 _mm512_mask_and_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
7013 return (__m512i
) __builtin_ia32_pandd512_mask ((__v16si
) __A
,
7019 extern __inline __m512i
7020 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7021 _mm512_maskz_and_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
7023 return (__m512i
) __builtin_ia32_pandd512_mask ((__v16si
) __A
,
7026 _mm512_setzero_si512 (),
7030 extern __inline __m512i
7031 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7032 _mm512_and_epi64 (__m512i __A
, __m512i __B
)
7034 return (__m512i
) __builtin_ia32_pandq512_mask ((__v8di
) __A
,
7037 _mm512_setzero_si512 (),
7041 extern __inline __m512i
7042 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7043 _mm512_mask_and_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
7045 return (__m512i
) __builtin_ia32_pandq512_mask ((__v8di
) __A
,
7050 extern __inline __m512i
7051 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7052 _mm512_maskz_and_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
7054 return (__m512i
) __builtin_ia32_pandq512_mask ((__v8di
) __A
,
7057 _mm512_setzero_pd (),
7061 extern __inline __m512i
7062 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7063 _mm512_andnot_si512 (__m512i __A
, __m512i __B
)
7065 return (__m512i
) __builtin_ia32_pandnd512_mask ((__v16si
) __A
,
7068 _mm512_setzero_si512 (),
7072 extern __inline __m512i
7073 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7074 _mm512_andnot_epi32 (__m512i __A
, __m512i __B
)
7076 return (__m512i
) __builtin_ia32_pandnd512_mask ((__v16si
) __A
,
7079 _mm512_setzero_si512 (),
7083 extern __inline __m512i
7084 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7085 _mm512_mask_andnot_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
7087 return (__m512i
) __builtin_ia32_pandnd512_mask ((__v16si
) __A
,
7093 extern __inline __m512i
7094 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7095 _mm512_maskz_andnot_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
7097 return (__m512i
) __builtin_ia32_pandnd512_mask ((__v16si
) __A
,
7100 _mm512_setzero_si512 (),
7104 extern __inline __m512i
7105 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7106 _mm512_andnot_epi64 (__m512i __A
, __m512i __B
)
7108 return (__m512i
) __builtin_ia32_pandnq512_mask ((__v8di
) __A
,
7111 _mm512_setzero_si512 (),
7115 extern __inline __m512i
7116 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7117 _mm512_mask_andnot_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
7119 return (__m512i
) __builtin_ia32_pandnq512_mask ((__v8di
) __A
,
7124 extern __inline __m512i
7125 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7126 _mm512_maskz_andnot_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
7128 return (__m512i
) __builtin_ia32_pandnq512_mask ((__v8di
) __A
,
7131 _mm512_setzero_pd (),
7135 extern __inline __mmask16
7136 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7137 _mm512_test_epi32_mask (__m512i __A
, __m512i __B
)
7139 return (__mmask16
) __builtin_ia32_ptestmd512 ((__v16si
) __A
,
7144 extern __inline __mmask16
7145 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7146 _mm512_mask_test_epi32_mask (__mmask16 __U
, __m512i __A
, __m512i __B
)
7148 return (__mmask16
) __builtin_ia32_ptestmd512 ((__v16si
) __A
,
7149 (__v16si
) __B
, __U
);
7152 extern __inline __mmask8
7153 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7154 _mm512_test_epi64_mask (__m512i __A
, __m512i __B
)
7156 return (__mmask8
) __builtin_ia32_ptestmq512 ((__v8di
) __A
,
7161 extern __inline __mmask8
7162 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7163 _mm512_mask_test_epi64_mask (__mmask8 __U
, __m512i __A
, __m512i __B
)
7165 return (__mmask8
) __builtin_ia32_ptestmq512 ((__v8di
) __A
, (__v8di
) __B
, __U
);
7168 extern __inline __m512i
7169 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7170 _mm512_unpackhi_epi32 (__m512i __A
, __m512i __B
)
7172 return (__m512i
) __builtin_ia32_punpckhdq512_mask ((__v16si
) __A
,
7175 _mm512_setzero_si512 (),
7179 extern __inline __m512i
7180 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7181 _mm512_mask_unpackhi_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
,
7184 return (__m512i
) __builtin_ia32_punpckhdq512_mask ((__v16si
) __A
,
7190 extern __inline __m512i
7191 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7192 _mm512_maskz_unpackhi_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
7194 return (__m512i
) __builtin_ia32_punpckhdq512_mask ((__v16si
) __A
,
7197 _mm512_setzero_si512 (),
7201 extern __inline __m512i
7202 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7203 _mm512_unpackhi_epi64 (__m512i __A
, __m512i __B
)
7205 return (__m512i
) __builtin_ia32_punpckhqdq512_mask ((__v8di
) __A
,
7208 _mm512_setzero_si512 (),
7212 extern __inline __m512i
7213 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7214 _mm512_mask_unpackhi_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
7216 return (__m512i
) __builtin_ia32_punpckhqdq512_mask ((__v8di
) __A
,
7222 extern __inline __m512i
7223 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7224 _mm512_maskz_unpackhi_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
7226 return (__m512i
) __builtin_ia32_punpckhqdq512_mask ((__v8di
) __A
,
7229 _mm512_setzero_si512 (),
7233 extern __inline __m512i
7234 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7235 _mm512_unpacklo_epi32 (__m512i __A
, __m512i __B
)
7237 return (__m512i
) __builtin_ia32_punpckldq512_mask ((__v16si
) __A
,
7240 _mm512_setzero_si512 (),
7244 extern __inline __m512i
7245 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7246 _mm512_mask_unpacklo_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
,
7249 return (__m512i
) __builtin_ia32_punpckldq512_mask ((__v16si
) __A
,
7255 extern __inline __m512i
7256 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7257 _mm512_maskz_unpacklo_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
7259 return (__m512i
) __builtin_ia32_punpckldq512_mask ((__v16si
) __A
,
7262 _mm512_setzero_si512 (),
7266 extern __inline __m512i
7267 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7268 _mm512_unpacklo_epi64 (__m512i __A
, __m512i __B
)
7270 return (__m512i
) __builtin_ia32_punpcklqdq512_mask ((__v8di
) __A
,
7273 _mm512_setzero_si512 (),
7277 extern __inline __m512i
7278 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7279 _mm512_mask_unpacklo_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
7281 return (__m512i
) __builtin_ia32_punpcklqdq512_mask ((__v8di
) __A
,
7287 extern __inline __m512i
7288 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7289 _mm512_maskz_unpacklo_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
7291 return (__m512i
) __builtin_ia32_punpcklqdq512_mask ((__v8di
) __A
,
7294 _mm512_setzero_si512 (),
7300 extern __inline
unsigned long long
7301 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7302 _mm_cvt_roundss_u64 (__m128 __A
, const int __R
)
7304 return (unsigned long long) __builtin_ia32_vcvtss2usi64 ((__v4sf
) __A
, __R
);
7307 extern __inline
long long
7308 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7309 _mm_cvt_roundss_si64 (__m128 __A
, const int __R
)
7311 return (long long) __builtin_ia32_vcvtss2si64 ((__v4sf
) __A
, __R
);
7314 extern __inline
long long
7315 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7316 _mm_cvt_roundss_i64 (__m128 __A
, const int __R
)
7318 return (long long) __builtin_ia32_vcvtss2si64 ((__v4sf
) __A
, __R
);
7321 extern __inline
unsigned long long
7322 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7323 _mm_cvtt_roundss_u64 (__m128 __A
, const int __R
)
7325 return (unsigned long long) __builtin_ia32_vcvttss2usi64 ((__v4sf
) __A
, __R
);
7328 extern __inline
long long
7329 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7330 _mm_cvtt_roundss_i64 (__m128 __A
, const int __R
)
7332 return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf
) __A
, __R
);
7335 extern __inline
long long
7336 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7337 _mm_cvtt_roundss_si64 (__m128 __A
, const int __R
)
7339 return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf
) __A
, __R
);
7342 #define _mm_cvt_roundss_u64(A, B) \
7343 ((unsigned long long)__builtin_ia32_vcvtss2usi64(A, B))
7345 #define _mm_cvt_roundss_si64(A, B) \
7346 ((long long)__builtin_ia32_vcvtss2si64(A, B))
7348 #define _mm_cvt_roundss_i64(A, B) \
7349 ((long long)__builtin_ia32_vcvtss2si64(A, B))
7351 #define _mm_cvtt_roundss_u64(A, B) \
7352 ((unsigned long long)__builtin_ia32_vcvttss2usi64(A, B))
7354 #define _mm_cvtt_roundss_i64(A, B) \
7355 ((long long)__builtin_ia32_vcvttss2si64(A, B))
7357 #define _mm_cvtt_roundss_si64(A, B) \
7358 ((long long)__builtin_ia32_vcvttss2si64(A, B))
7363 extern __inline
unsigned
7364 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7365 _mm_cvt_roundss_u32 (__m128 __A
, const int __R
)
7367 return (unsigned) __builtin_ia32_vcvtss2usi32 ((__v4sf
) __A
, __R
);
7371 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7372 _mm_cvt_roundss_si32 (__m128 __A
, const int __R
)
7374 return (int) __builtin_ia32_vcvtss2si32 ((__v4sf
) __A
, __R
);
7378 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7379 _mm_cvt_roundss_i32 (__m128 __A
, const int __R
)
7381 return (int) __builtin_ia32_vcvtss2si32 ((__v4sf
) __A
, __R
);
7384 extern __inline
unsigned
7385 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7386 _mm_cvtt_roundss_u32 (__m128 __A
, const int __R
)
7388 return (unsigned) __builtin_ia32_vcvttss2usi32 ((__v4sf
) __A
, __R
);
7392 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7393 _mm_cvtt_roundss_i32 (__m128 __A
, const int __R
)
7395 return (int) __builtin_ia32_vcvttss2si32 ((__v4sf
) __A
, __R
);
7399 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7400 _mm_cvtt_roundss_si32 (__m128 __A
, const int __R
)
7402 return (int) __builtin_ia32_vcvttss2si32 ((__v4sf
) __A
, __R
);
7405 #define _mm_cvt_roundss_u32(A, B) \
7406 ((unsigned)__builtin_ia32_vcvtss2usi32(A, B))
7408 #define _mm_cvt_roundss_si32(A, B) \
7409 ((int)__builtin_ia32_vcvtss2si32(A, B))
7411 #define _mm_cvt_roundss_i32(A, B) \
7412 ((int)__builtin_ia32_vcvtss2si32(A, B))
7414 #define _mm_cvtt_roundss_u32(A, B) \
7415 ((unsigned)__builtin_ia32_vcvttss2usi32(A, B))
7417 #define _mm_cvtt_roundss_si32(A, B) \
7418 ((int)__builtin_ia32_vcvttss2si32(A, B))
7420 #define _mm_cvtt_roundss_i32(A, B) \
7421 ((int)__builtin_ia32_vcvttss2si32(A, B))
7426 extern __inline
unsigned long long
7427 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7428 _mm_cvt_roundsd_u64 (__m128d __A
, const int __R
)
7430 return (unsigned long long) __builtin_ia32_vcvtsd2usi64 ((__v2df
) __A
, __R
);
7433 extern __inline
long long
7434 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7435 _mm_cvt_roundsd_si64 (__m128d __A
, const int __R
)
7437 return (long long) __builtin_ia32_vcvtsd2si64 ((__v2df
) __A
, __R
);
7440 extern __inline
long long
7441 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7442 _mm_cvt_roundsd_i64 (__m128d __A
, const int __R
)
7444 return (long long) __builtin_ia32_vcvtsd2si64 ((__v2df
) __A
, __R
);
7447 extern __inline
unsigned long long
7448 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7449 _mm_cvtt_roundsd_u64 (__m128d __A
, const int __R
)
7451 return (unsigned long long) __builtin_ia32_vcvttsd2usi64 ((__v2df
) __A
, __R
);
7454 extern __inline
long long
7455 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7456 _mm_cvtt_roundsd_si64 (__m128d __A
, const int __R
)
7458 return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df
) __A
, __R
);
7461 extern __inline
long long
7462 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7463 _mm_cvtt_roundsd_i64 (__m128d __A
, const int __R
)
7465 return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df
) __A
, __R
);
7468 #define _mm_cvt_roundsd_u64(A, B) \
7469 ((unsigned long long)__builtin_ia32_vcvtsd2usi64(A, B))
7471 #define _mm_cvt_roundsd_si64(A, B) \
7472 ((long long)__builtin_ia32_vcvtsd2si64(A, B))
7474 #define _mm_cvt_roundsd_i64(A, B) \
7475 ((long long)__builtin_ia32_vcvtsd2si64(A, B))
7477 #define _mm_cvtt_roundsd_u64(A, B) \
7478 ((unsigned long long)__builtin_ia32_vcvttsd2usi64(A, B))
7480 #define _mm_cvtt_roundsd_si64(A, B) \
7481 ((long long)__builtin_ia32_vcvttsd2si64(A, B))
7483 #define _mm_cvtt_roundsd_i64(A, B) \
7484 ((long long)__builtin_ia32_vcvttsd2si64(A, B))
7489 extern __inline
unsigned
7490 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7491 _mm_cvt_roundsd_u32 (__m128d __A
, const int __R
)
7493 return (unsigned) __builtin_ia32_vcvtsd2usi32 ((__v2df
) __A
, __R
);
7497 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7498 _mm_cvt_roundsd_si32 (__m128d __A
, const int __R
)
7500 return (int) __builtin_ia32_vcvtsd2si32 ((__v2df
) __A
, __R
);
7504 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7505 _mm_cvt_roundsd_i32 (__m128d __A
, const int __R
)
7507 return (int) __builtin_ia32_vcvtsd2si32 ((__v2df
) __A
, __R
);
7510 extern __inline
unsigned
7511 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7512 _mm_cvtt_roundsd_u32 (__m128d __A
, const int __R
)
7514 return (unsigned) __builtin_ia32_vcvttsd2usi32 ((__v2df
) __A
, __R
);
7518 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7519 _mm_cvtt_roundsd_i32 (__m128d __A
, const int __R
)
7521 return (int) __builtin_ia32_vcvttsd2si32 ((__v2df
) __A
, __R
);
7525 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7526 _mm_cvtt_roundsd_si32 (__m128d __A
, const int __R
)
7528 return (int) __builtin_ia32_vcvttsd2si32 ((__v2df
) __A
, __R
);
7531 #define _mm_cvt_roundsd_u32(A, B) \
7532 ((unsigned)__builtin_ia32_vcvtsd2usi32(A, B))
7534 #define _mm_cvt_roundsd_si32(A, B) \
7535 ((int)__builtin_ia32_vcvtsd2si32(A, B))
7537 #define _mm_cvt_roundsd_i32(A, B) \
7538 ((int)__builtin_ia32_vcvtsd2si32(A, B))
7540 #define _mm_cvtt_roundsd_u32(A, B) \
7541 ((unsigned)__builtin_ia32_vcvttsd2usi32(A, B))
7543 #define _mm_cvtt_roundsd_si32(A, B) \
7544 ((int)__builtin_ia32_vcvttsd2si32(A, B))
7546 #define _mm_cvtt_roundsd_i32(A, B) \
7547 ((int)__builtin_ia32_vcvttsd2si32(A, B))
7550 extern __inline __m512d
7551 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7552 _mm512_movedup_pd (__m512d __A
)
7554 return (__m512d
) __builtin_ia32_movddup512_mask ((__v8df
) __A
,
7556 _mm512_setzero_pd (),
7560 extern __inline __m512d
7561 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7562 _mm512_mask_movedup_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
7564 return (__m512d
) __builtin_ia32_movddup512_mask ((__v8df
) __A
,
7569 extern __inline __m512d
7570 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7571 _mm512_maskz_movedup_pd (__mmask8 __U
, __m512d __A
)
7573 return (__m512d
) __builtin_ia32_movddup512_mask ((__v8df
) __A
,
7575 _mm512_setzero_pd (),
7579 extern __inline __m512d
7580 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7581 _mm512_unpacklo_pd (__m512d __A
, __m512d __B
)
7583 return (__m512d
) __builtin_ia32_unpcklpd512_mask ((__v8df
) __A
,
7586 _mm512_setzero_pd (),
7590 extern __inline __m512d
7591 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7592 _mm512_mask_unpacklo_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
7594 return (__m512d
) __builtin_ia32_unpcklpd512_mask ((__v8df
) __A
,
7600 extern __inline __m512d
7601 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7602 _mm512_maskz_unpacklo_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
7604 return (__m512d
) __builtin_ia32_unpcklpd512_mask ((__v8df
) __A
,
7607 _mm512_setzero_pd (),
7611 extern __inline __m512d
7612 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7613 _mm512_unpackhi_pd (__m512d __A
, __m512d __B
)
7615 return (__m512d
) __builtin_ia32_unpckhpd512_mask ((__v8df
) __A
,
7618 _mm512_setzero_pd (),
7622 extern __inline __m512d
7623 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7624 _mm512_mask_unpackhi_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
7626 return (__m512d
) __builtin_ia32_unpckhpd512_mask ((__v8df
) __A
,
7632 extern __inline __m512d
7633 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7634 _mm512_maskz_unpackhi_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
7636 return (__m512d
) __builtin_ia32_unpckhpd512_mask ((__v8df
) __A
,
7639 _mm512_setzero_pd (),
7643 extern __inline __m512
7644 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7645 _mm512_unpackhi_ps (__m512 __A
, __m512 __B
)
7647 return (__m512
) __builtin_ia32_unpckhps512_mask ((__v16sf
) __A
,
7650 _mm512_setzero_ps (),
7654 extern __inline __m512
7655 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7656 _mm512_mask_unpackhi_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
7658 return (__m512
) __builtin_ia32_unpckhps512_mask ((__v16sf
) __A
,
7664 extern __inline __m512
7665 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7666 _mm512_maskz_unpackhi_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
7668 return (__m512
) __builtin_ia32_unpckhps512_mask ((__v16sf
) __A
,
7671 _mm512_setzero_ps (),
7676 extern __inline __m512d
7677 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7678 _mm512_cvt_roundps_pd (__m256 __A
, const int __R
)
7680 return (__m512d
) __builtin_ia32_cvtps2pd512_mask ((__v8sf
) __A
,
7682 _mm512_setzero_pd (),
7683 (__mmask8
) -1, __R
);
7686 extern __inline __m512d
7687 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7688 _mm512_mask_cvt_roundps_pd (__m512d __W
, __mmask8 __U
, __m256 __A
,
7691 return (__m512d
) __builtin_ia32_cvtps2pd512_mask ((__v8sf
) __A
,
7693 (__mmask8
) __U
, __R
);
7696 extern __inline __m512d
7697 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7698 _mm512_maskz_cvt_roundps_pd (__mmask8 __U
, __m256 __A
, const int __R
)
7700 return (__m512d
) __builtin_ia32_cvtps2pd512_mask ((__v8sf
) __A
,
7702 _mm512_setzero_pd (),
7703 (__mmask8
) __U
, __R
);
7706 extern __inline __m512
7707 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7708 _mm512_cvt_roundph_ps (__m256i __A
, const int __R
)
7710 return (__m512
) __builtin_ia32_vcvtph2ps512_mask ((__v16hi
) __A
,
7712 _mm512_setzero_ps (),
7713 (__mmask16
) -1, __R
);
7716 extern __inline __m512
7717 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7718 _mm512_mask_cvt_roundph_ps (__m512 __W
, __mmask16 __U
, __m256i __A
,
7721 return (__m512
) __builtin_ia32_vcvtph2ps512_mask ((__v16hi
) __A
,
7723 (__mmask16
) __U
, __R
);
7726 extern __inline __m512
7727 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7728 _mm512_maskz_cvt_roundph_ps (__mmask16 __U
, __m256i __A
, const int __R
)
7730 return (__m512
) __builtin_ia32_vcvtph2ps512_mask ((__v16hi
) __A
,
7732 _mm512_setzero_ps (),
7733 (__mmask16
) __U
, __R
);
7736 extern __inline __m256i
7737 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7738 _mm512_cvt_roundps_ph (__m512 __A
, const int __I
)
7740 return (__m256i
) __builtin_ia32_vcvtps2ph512_mask ((__v16sf
) __A
,
7743 _mm256_setzero_si256 (),
7747 extern __inline __m256i
7748 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7749 _mm512_cvtps_ph (__m512 __A
, const int __I
)
7751 return (__m256i
) __builtin_ia32_vcvtps2ph512_mask ((__v16sf
) __A
,
7754 _mm256_setzero_si256 (),
7758 extern __inline __m256i
7759 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7760 _mm512_mask_cvt_roundps_ph (__m256i __U
, __mmask16 __W
, __m512 __A
,
7763 return (__m256i
) __builtin_ia32_vcvtps2ph512_mask ((__v16sf
) __A
,
7769 extern __inline __m256i
7770 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7771 _mm512_mask_cvtps_ph (__m256i __U
, __mmask16 __W
, __m512 __A
, const int __I
)
7773 return (__m256i
) __builtin_ia32_vcvtps2ph512_mask ((__v16sf
) __A
,
7779 extern __inline __m256i
7780 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7781 _mm512_maskz_cvt_roundps_ph (__mmask16 __W
, __m512 __A
, const int __I
)
7783 return (__m256i
) __builtin_ia32_vcvtps2ph512_mask ((__v16sf
) __A
,
7786 _mm256_setzero_si256 (),
7790 extern __inline __m256i
7791 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7792 _mm512_maskz_cvtps_ph (__mmask16 __W
, __m512 __A
, const int __I
)
7794 return (__m256i
) __builtin_ia32_vcvtps2ph512_mask ((__v16sf
) __A
,
7797 _mm256_setzero_si256 (),
7801 #define _mm512_cvt_roundps_pd(A, B) \
7802 (__m512d)__builtin_ia32_cvtps2pd512_mask(A, (__v8df)_mm512_setzero_pd(), -1, B)
7804 #define _mm512_mask_cvt_roundps_pd(W, U, A, B) \
7805 (__m512d)__builtin_ia32_cvtps2pd512_mask(A, (__v8df)(W), U, B)
7807 #define _mm512_maskz_cvt_roundps_pd(U, A, B) \
7808 (__m512d)__builtin_ia32_cvtps2pd512_mask(A, (__v8df)_mm512_setzero_pd(), U, B)
7810 #define _mm512_cvt_roundph_ps(A, B) \
7811 (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(A), (__v16sf)_mm512_setzero_ps(), -1, B)
7813 #define _mm512_mask_cvt_roundph_ps(W, U, A, B) \
7814 (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(A), (__v16sf)(W), U, B)
7816 #define _mm512_maskz_cvt_roundph_ps(U, A, B) \
7817 (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(A), (__v16sf)_mm512_setzero_ps(), U, B)
7819 #define _mm512_cvt_roundps_ph(A, I) \
7820 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
7821 (__v16hi)_mm256_setzero_si256 (), -1))
7822 #define _mm512_cvtps_ph(A, I) \
7823 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
7824 (__v16hi)_mm256_setzero_si256 (), -1))
7825 #define _mm512_mask_cvt_roundps_ph(U, W, A, I) \
7826 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
7827 (__v16hi)(__m256i)(U), (__mmask16) (W)))
7828 #define _mm512_mask_cvtps_ph(U, W, A, I) \
7829 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
7830 (__v16hi)(__m256i)(U), (__mmask16) (W)))
7831 #define _mm512_maskz_cvt_roundps_ph(W, A, I) \
7832 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
7833 (__v16hi)_mm256_setzero_si256 (), (__mmask16) (W)))
7834 #define _mm512_maskz_cvtps_ph(W, A, I) \
7835 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
7836 (__v16hi)_mm256_setzero_si256 (), (__mmask16) (W)))
7840 extern __inline __m256
7841 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7842 _mm512_cvt_roundpd_ps (__m512d __A
, const int __R
)
7844 return (__m256
) __builtin_ia32_cvtpd2ps512_mask ((__v8df
) __A
,
7846 _mm256_setzero_ps (),
7847 (__mmask8
) -1, __R
);
7850 extern __inline __m256
7851 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7852 _mm512_mask_cvt_roundpd_ps (__m256 __W
, __mmask8 __U
, __m512d __A
,
7855 return (__m256
) __builtin_ia32_cvtpd2ps512_mask ((__v8df
) __A
,
7857 (__mmask8
) __U
, __R
);
7860 extern __inline __m256
7861 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7862 _mm512_maskz_cvt_roundpd_ps (__mmask8 __U
, __m512d __A
, const int __R
)
7864 return (__m256
) __builtin_ia32_cvtpd2ps512_mask ((__v8df
) __A
,
7866 _mm256_setzero_ps (),
7867 (__mmask8
) __U
, __R
);
7870 extern __inline __m128
7871 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7872 _mm_cvt_roundsd_ss (__m128 __A
, __m128d __B
, const int __R
)
7874 return (__m128
) __builtin_ia32_cvtsd2ss_round ((__v4sf
) __A
,
7879 extern __inline __m128d
7880 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7881 _mm_cvt_roundss_sd (__m128d __A
, __m128 __B
, const int __R
)
7883 return (__m128d
) __builtin_ia32_cvtss2sd_round ((__v2df
) __A
,
7888 #define _mm512_cvt_roundpd_ps(A, B) \
7889 (__m256)__builtin_ia32_cvtpd2ps512_mask(A, (__v8sf)_mm256_setzero_ps(), -1, B)
7891 #define _mm512_mask_cvt_roundpd_ps(W, U, A, B) \
7892 (__m256)__builtin_ia32_cvtpd2ps512_mask(A, (__v8sf)(W), U, B)
7894 #define _mm512_maskz_cvt_roundpd_ps(U, A, B) \
7895 (__m256)__builtin_ia32_cvtpd2ps512_mask(A, (__v8sf)_mm256_setzero_ps(), U, B)
7897 #define _mm_cvt_roundsd_ss(A, B, C) \
7898 (__m128)__builtin_ia32_cvtsd2ss_round(A, B, C)
7900 #define _mm_cvt_roundss_sd(A, B, C) \
7901 (__m128d)__builtin_ia32_cvtss2sd_round(A, B, C)
7904 extern __inline
void
7905 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7906 _mm512_stream_si512 (__m512i
* __P
, __m512i __A
)
7908 __builtin_ia32_movntdq512 ((__v8di
*) __P
, (__v8di
) __A
);
7911 extern __inline
void
7912 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7913 _mm512_stream_ps (float *__P
, __m512 __A
)
7915 __builtin_ia32_movntps512 (__P
, (__v16sf
) __A
);
7918 extern __inline
void
7919 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7920 _mm512_stream_pd (double *__P
, __m512d __A
)
7922 __builtin_ia32_movntpd512 (__P
, (__v8df
) __A
);
7925 extern __inline __m512i
7926 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7927 _mm512_stream_load_si512 (void *__P
)
7929 return __builtin_ia32_movntdqa512 ((__v8di
*)__P
);
7933 extern __inline __m128
7934 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7935 _mm_getexp_round_ss (__m128 __A
, __m128 __B
, const int __R
)
7937 return (__m128
) __builtin_ia32_getexpss128_round ((__v4sf
) __A
,
7942 extern __inline __m128d
7943 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7944 _mm_getexp_round_sd (__m128d __A
, __m128d __B
, const int __R
)
7946 return (__m128d
) __builtin_ia32_getexpsd128_round ((__v2df
) __A
,
7951 extern __inline __m512
7952 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7953 _mm512_getexp_round_ps (__m512 __A
, const int __R
)
7955 return (__m512
) __builtin_ia32_getexpps512_mask ((__v16sf
) __A
,
7957 _mm512_setzero_ps (),
7958 (__mmask16
) -1, __R
);
7961 extern __inline __m512
7962 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7963 _mm512_mask_getexp_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
7966 return (__m512
) __builtin_ia32_getexpps512_mask ((__v16sf
) __A
,
7968 (__mmask16
) __U
, __R
);
7971 extern __inline __m512
7972 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7973 _mm512_maskz_getexp_round_ps (__mmask16 __U
, __m512 __A
, const int __R
)
7975 return (__m512
) __builtin_ia32_getexpps512_mask ((__v16sf
) __A
,
7977 _mm512_setzero_ps (),
7978 (__mmask16
) __U
, __R
);
7981 extern __inline __m512d
7982 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7983 _mm512_getexp_round_pd (__m512d __A
, const int __R
)
7985 return (__m512d
) __builtin_ia32_getexppd512_mask ((__v8df
) __A
,
7987 _mm512_setzero_pd (),
7988 (__mmask8
) -1, __R
);
7991 extern __inline __m512d
7992 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7993 _mm512_mask_getexp_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
7996 return (__m512d
) __builtin_ia32_getexppd512_mask ((__v8df
) __A
,
7998 (__mmask8
) __U
, __R
);
8001 extern __inline __m512d
8002 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8003 _mm512_maskz_getexp_round_pd (__mmask8 __U
, __m512d __A
, const int __R
)
8005 return (__m512d
) __builtin_ia32_getexppd512_mask ((__v8df
) __A
,
8007 _mm512_setzero_pd (),
8008 (__mmask8
) __U
, __R
);
8011 /* Constants for mantissa extraction */
8014 _MM_MANT_NORM_1_2
, /* interval [1, 2) */
8015 _MM_MANT_NORM_p5_2
, /* interval [0.5, 2) */
8016 _MM_MANT_NORM_p5_1
, /* interval [0.5, 1) */
8017 _MM_MANT_NORM_p75_1p5
/* interval [0.75, 1.5) */
8018 } _MM_MANTISSA_NORM_ENUM
;
8022 _MM_MANT_SIGN_src
, /* sign = sign(SRC) */
8023 _MM_MANT_SIGN_zero
, /* sign = 0 */
8024 _MM_MANT_SIGN_nan
/* DEST = NaN if sign(SRC) = 1 */
8025 } _MM_MANTISSA_SIGN_ENUM
;
8027 extern __inline __m512d
8028 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8029 _mm512_getmant_round_pd (__m512d __A
, _MM_MANTISSA_NORM_ENUM __B
,
8030 _MM_MANTISSA_SIGN_ENUM __C
, const int __R
)
8032 return (__m512d
) __builtin_ia32_getmantpd512_mask ((__v8df
) __A
,
8034 _mm512_setzero_pd (),
8035 (__mmask8
) -1, __R
);
8038 extern __inline __m512d
8039 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8040 _mm512_mask_getmant_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
8041 _MM_MANTISSA_NORM_ENUM __B
,
8042 _MM_MANTISSA_SIGN_ENUM __C
, const int __R
)
8044 return (__m512d
) __builtin_ia32_getmantpd512_mask ((__v8df
) __A
,
8050 extern __inline __m512d
8051 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8052 _mm512_maskz_getmant_round_pd (__mmask8 __U
, __m512d __A
,
8053 _MM_MANTISSA_NORM_ENUM __B
,
8054 _MM_MANTISSA_SIGN_ENUM __C
, const int __R
)
8056 return (__m512d
) __builtin_ia32_getmantpd512_mask ((__v8df
) __A
,
8059 _mm512_setzero_pd (),
8063 extern __inline __m512
8064 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8065 _mm512_getmant_round_ps (__m512 __A
, _MM_MANTISSA_NORM_ENUM __B
,
8066 _MM_MANTISSA_SIGN_ENUM __C
, const int __R
)
8068 return (__m512
) __builtin_ia32_getmantps512_mask ((__v16sf
) __A
,
8070 _mm512_setzero_ps (),
8071 (__mmask16
) -1, __R
);
8074 extern __inline __m512
8075 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8076 _mm512_mask_getmant_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
8077 _MM_MANTISSA_NORM_ENUM __B
,
8078 _MM_MANTISSA_SIGN_ENUM __C
, const int __R
)
8080 return (__m512
) __builtin_ia32_getmantps512_mask ((__v16sf
) __A
,
8086 extern __inline __m512
8087 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8088 _mm512_maskz_getmant_round_ps (__mmask16 __U
, __m512 __A
,
8089 _MM_MANTISSA_NORM_ENUM __B
,
8090 _MM_MANTISSA_SIGN_ENUM __C
, const int __R
)
8092 return (__m512
) __builtin_ia32_getmantps512_mask ((__v16sf
) __A
,
8095 _mm512_setzero_ps (),
8099 extern __inline __m128d
8100 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8101 _mm_getmant_round_sd (__m128d __A
, __m128d __B
,
8102 _MM_MANTISSA_NORM_ENUM __C
,
8103 _MM_MANTISSA_SIGN_ENUM __D
, const int __R
)
8105 return (__m128d
) __builtin_ia32_getmantsd_round ((__v2df
) __A
,
8111 extern __inline __m128
8112 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8113 _mm_getmant_round_ss (__m128 __A
, __m128 __B
,
8114 _MM_MANTISSA_NORM_ENUM __C
,
8115 _MM_MANTISSA_SIGN_ENUM __D
, const int __R
)
8117 return (__m128
) __builtin_ia32_getmantss_round ((__v4sf
) __A
,
8124 #define _mm512_getmant_round_pd(X, B, C, R) \
8125 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
8126 (int)(((C)<<2) | (B)), \
8127 (__v8df)(__m512d)_mm512_setzero_pd(), \
8131 #define _mm512_mask_getmant_round_pd(W, U, X, B, C, R) \
8132 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
8133 (int)(((C)<<2) | (B)), \
8134 (__v8df)(__m512d)(W), \
8138 #define _mm512_maskz_getmant_round_pd(U, X, B, C, R) \
8139 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
8140 (int)(((C)<<2) | (B)), \
8141 (__v8df)(__m512d)_mm512_setzero_pd(), \
8144 #define _mm512_getmant_round_ps(X, B, C, R) \
8145 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
8146 (int)(((C)<<2) | (B)), \
8147 (__v16sf)(__m512)_mm512_setzero_ps(), \
8151 #define _mm512_mask_getmant_round_ps(W, U, X, B, C, R) \
8152 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
8153 (int)(((C)<<2) | (B)), \
8154 (__v16sf)(__m512)(W), \
8158 #define _mm512_maskz_getmant_round_ps(U, X, B, C, R) \
8159 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
8160 (int)(((C)<<2) | (B)), \
8161 (__v16sf)(__m512)_mm512_setzero_ps(), \
8164 #define _mm_getmant_round_sd(X, Y, C, D, R) \
8165 ((__m128d)__builtin_ia32_getmantsd_round ((__v2df)(__m128d)(X), \
8166 (__v2df)(__m128d)(Y), \
8167 (int)(((D)<<2) | (C)), \
8170 #define _mm_getmant_round_ss(X, Y, C, D, R) \
8171 ((__m128)__builtin_ia32_getmantss_round ((__v4sf)(__m128)(X), \
8172 (__v4sf)(__m128)(Y), \
8173 (int)(((D)<<2) | (C)), \
8176 #define _mm_getexp_round_ss(A, B, R) \
8177 ((__m128)__builtin_ia32_getexpss128_round((__v4sf)(__m128)(A), (__v4sf)(__m128)(B), R))
8179 #define _mm_getexp_round_sd(A, B, R) \
8180 ((__m128d)__builtin_ia32_getexpsd128_round((__v2df)(__m128d)(A), (__v2df)(__m128d)(B), R))
8182 #define _mm512_getexp_round_ps(A, R) \
8183 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
8184 (__v16sf)_mm512_setzero_ps(), (__mmask16)-1, R))
8186 #define _mm512_mask_getexp_round_ps(W, U, A, R) \
8187 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
8188 (__v16sf)(__m512)(W), (__mmask16)(U), R))
8190 #define _mm512_maskz_getexp_round_ps(U, A, R) \
8191 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
8192 (__v16sf)_mm512_setzero_ps(), (__mmask16)(U), R))
8194 #define _mm512_getexp_round_pd(A, R) \
8195 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
8196 (__v8df)_mm512_setzero_pd(), (__mmask8)-1, R))
8198 #define _mm512_mask_getexp_round_pd(W, U, A, R) \
8199 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
8200 (__v8df)(__m512d)(W), (__mmask8)(U), R))
8202 #define _mm512_maskz_getexp_round_pd(U, A, R) \
8203 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
8204 (__v8df)_mm512_setzero_pd(), (__mmask8)(U), R))
8208 extern __inline __m512
8209 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8210 _mm512_roundscale_round_ps (__m512 __A
, const int __imm
, const int __R
)
8212 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
, __imm
,
8213 (__v16sf
) __A
, -1, __R
);
8216 extern __inline __m512
8217 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8218 _mm512_mask_roundscale_round_ps (__m512 __A
, __mmask16 __B
, __m512 __C
,
8219 const int __imm
, const int __R
)
8221 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __C
, __imm
,
8223 (__mmask16
) __B
, __R
);
8226 extern __inline __m512
8227 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8228 _mm512_maskz_roundscale_round_ps (__mmask16 __A
, __m512 __B
,
8229 const int __imm
, const int __R
)
8231 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __B
,
8234 _mm512_setzero_ps (),
8235 (__mmask16
) __A
, __R
);
8238 extern __inline __m512d
8239 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8240 _mm512_roundscale_round_pd (__m512d __A
, const int __imm
, const int __R
)
8242 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
, __imm
,
8243 (__v8df
) __A
, -1, __R
);
8246 extern __inline __m512d
8247 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8248 _mm512_mask_roundscale_round_pd (__m512d __A
, __mmask8 __B
,
8249 __m512d __C
, const int __imm
, const int __R
)
8251 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __C
, __imm
,
8253 (__mmask8
) __B
, __R
);
8256 extern __inline __m512d
8257 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8258 _mm512_maskz_roundscale_round_pd (__mmask8 __A
, __m512d __B
,
8259 const int __imm
, const int __R
)
8261 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __B
,
8264 _mm512_setzero_pd (),
8265 (__mmask8
) __A
, __R
);
8268 extern __inline __m128
8269 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8270 _mm_roundscale_round_ss (__m128 __A
, __m128 __B
, const int __imm
, const int __R
)
8272 return (__m128
) __builtin_ia32_rndscaless_round ((__v4sf
) __A
,
8273 (__v4sf
) __B
, __imm
, __R
);
8276 extern __inline __m128d
8277 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8278 _mm_roundscale_round_sd (__m128d __A
, __m128d __B
, const int __imm
,
8281 return (__m128d
) __builtin_ia32_rndscalesd_round ((__v2df
) __A
,
8282 (__v2df
) __B
, __imm
, __R
);
8286 #define _mm512_roundscale_round_ps(A, B, R) \
8287 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(A), (int)(B),\
8288 (__v16sf)(__m512)(A), (__mmask16)(-1), R))
8289 #define _mm512_mask_roundscale_round_ps(A, B, C, D, R) \
8290 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(C), \
8292 (__v16sf)(__m512)(A), \
8294 #define _mm512_maskz_roundscale_round_ps(A, B, C, R) \
8295 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(B), \
8297 (__v16sf)_mm512_setzero_ps(),\
8299 #define _mm512_roundscale_round_pd(A, B, R) \
8300 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(A), (int)(B),\
8301 (__v8df)(__m512d)(A), (__mmask8)(-1), R))
8302 #define _mm512_mask_roundscale_round_pd(A, B, C, D, R) \
8303 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(C), \
8305 (__v8df)(__m512d)(A), \
8307 #define _mm512_maskz_roundscale_round_pd(A, B, C, R) \
8308 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(B), \
8310 (__v8df)_mm512_setzero_pd(),\
8312 #define _mm_roundscale_round_ss(A, B, C, R) \
8313 ((__m128) __builtin_ia32_rndscaless_round ((__v4sf)(__m128)(A), \
8314 (__v4sf)(__m128)(B), (int)(C), R))
8315 #define _mm_roundscale_round_sd(A, B, C, R) \
8316 ((__m128d) __builtin_ia32_rndscalesd_round ((__v2df)(__m128d)(A), \
8317 (__v2df)(__m128d)(B), (int)(C), R))
8320 extern __inline __m512
8321 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8322 _mm512_floor_ps (__m512 __A
)
8324 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
,
8327 _MM_FROUND_CUR_DIRECTION
);
8330 extern __inline __m512d
8331 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8332 _mm512_floor_pd (__m512d __A
)
8334 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
,
8337 _MM_FROUND_CUR_DIRECTION
);
8340 extern __inline __m512
8341 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8342 _mm512_ceil_ps (__m512 __A
)
8344 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
,
8347 _MM_FROUND_CUR_DIRECTION
);
8350 extern __inline __m512d
8351 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8352 _mm512_ceil_pd (__m512d __A
)
8354 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
,
8357 _MM_FROUND_CUR_DIRECTION
);
8360 extern __inline __m512
8361 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8362 _mm512_mask_floor_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
8364 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
,
8367 _MM_FROUND_CUR_DIRECTION
);
8370 extern __inline __m512d
8371 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8372 _mm512_mask_floor_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
8374 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
,
8377 _MM_FROUND_CUR_DIRECTION
);
8380 extern __inline __m512
8381 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8382 _mm512_mask_ceil_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
8384 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
,
8387 _MM_FROUND_CUR_DIRECTION
);
8390 extern __inline __m512d
8391 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8392 _mm512_mask_ceil_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
8394 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
,
8397 _MM_FROUND_CUR_DIRECTION
);
8400 extern __inline __m512
8401 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8402 _mm512_maskz_floor_ps (__mmask16 __U
, __m512 __A
)
8404 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
,
8407 _mm512_setzero_ps (),
8409 _MM_FROUND_CUR_DIRECTION
);
8412 extern __inline __m512d
8413 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8414 _mm512_maskz_floor_pd (__mmask8 __U
, __m512d __A
)
8416 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
,
8419 _mm512_setzero_pd (),
8421 _MM_FROUND_CUR_DIRECTION
);
8424 extern __inline __m512
8425 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8426 _mm512_maskz_ceil_ps (__mmask16 __U
, __m512 __A
)
8428 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
,
8431 _mm512_setzero_ps (),
8433 _MM_FROUND_CUR_DIRECTION
);
8436 extern __inline __m512d
8437 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8438 _mm512_maskz_ceil_pd (__mmask8 __U
, __m512d __A
)
8440 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
,
8443 _mm512_setzero_pd (),
8445 _MM_FROUND_CUR_DIRECTION
);
8449 extern __inline __m512
8450 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8451 _mm512_floor_round_ps (__m512 __A
, const int __R
)
8453 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
,
8455 (__v16sf
) __A
, -1, __R
);
8458 extern __inline __m512d
8459 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8460 _mm512_floor_round_pd (__m512d __A
, const int __R
)
8462 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
,
8464 (__v8df
) __A
, -1, __R
);
8467 extern __inline __m512
8468 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8469 _mm512_ceil_round_ps (__m512 __A
, const int __R
)
8471 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
,
8473 (__v16sf
) __A
, -1, __R
);
8476 extern __inline __m512d
8477 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8478 _mm512_ceil_round_pd (__m512d __A
, const int __R
)
8480 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
,
8482 (__v8df
) __A
, -1, __R
);
8485 extern __inline __m512
8486 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8487 _mm512_mask_floor_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
8490 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
,
8492 (__v16sf
) __W
, __U
, __R
);
8495 extern __inline __m512d
8496 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8497 _mm512_mask_floor_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
8500 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
,
8502 (__v8df
) __W
, __U
, __R
);
8505 extern __inline __m512
8506 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8507 _mm512_mask_ceil_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, const int __R
)
8509 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
,
8511 (__v16sf
) __W
, __U
, __R
);
8514 extern __inline __m512d
8515 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8516 _mm512_mask_ceil_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
8519 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
,
8521 (__v8df
) __W
, __U
, __R
);
8524 extern __inline __m512
8525 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8526 _mm512_maskz_floor_round_ps (__mmask16 __U
, __m512 __A
, const int __R
)
8528 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
,
8531 _mm512_setzero_ps (),
8535 extern __inline __m512d
8536 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8537 _mm512_maskz_floor_round_pd (__mmask8 __U
, __m512d __A
, const int __R
)
8539 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
,
8542 _mm512_setzero_pd (),
8546 extern __inline __m512
8547 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8548 _mm512_maskz_ceil_round_ps (__mmask16 __U
, __m512 __A
, const int __R
)
8550 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
,
8553 _mm512_setzero_ps (),
8557 extern __inline __m512d
8558 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8559 _mm512_maskz_ceil_round_pd (__mmask8 __U
, __m512d __A
, const int __R
)
8561 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
,
8564 _mm512_setzero_pd (),
8568 extern __inline __m512i
8569 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8570 _mm512_alignr_epi32 (__m512i __A
, __m512i __B
, const int __imm
)
8572 return (__m512i
) __builtin_ia32_alignd512_mask ((__v16si
) __A
,
8573 (__v16si
) __B
, __imm
,
8575 _mm512_setzero_si512 (),
8579 extern __inline __m512i
8580 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8581 _mm512_mask_alignr_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
,
8582 __m512i __B
, const int __imm
)
8584 return (__m512i
) __builtin_ia32_alignd512_mask ((__v16si
) __A
,
8585 (__v16si
) __B
, __imm
,
8590 extern __inline __m512i
8591 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8592 _mm512_maskz_alignr_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
,
8595 return (__m512i
) __builtin_ia32_alignd512_mask ((__v16si
) __A
,
8596 (__v16si
) __B
, __imm
,
8598 _mm512_setzero_si512 (),
8602 extern __inline __m512i
8603 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8604 _mm512_alignr_epi64 (__m512i __A
, __m512i __B
, const int __imm
)
8606 return (__m512i
) __builtin_ia32_alignq512_mask ((__v8di
) __A
,
8607 (__v8di
) __B
, __imm
,
8609 _mm512_setzero_si512 (),
8613 extern __inline __m512i
8614 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8615 _mm512_mask_alignr_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
,
8616 __m512i __B
, const int __imm
)
8618 return (__m512i
) __builtin_ia32_alignq512_mask ((__v8di
) __A
,
8619 (__v8di
) __B
, __imm
,
8624 extern __inline __m512i
8625 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8626 _mm512_maskz_alignr_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
,
8629 return (__m512i
) __builtin_ia32_alignq512_mask ((__v8di
) __A
,
8630 (__v8di
) __B
, __imm
,
8632 _mm512_setzero_si512 (),
8636 #define _mm512_floor_round_ps(A, R) \
8637 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(A), \
8639 (__v16sf)(__m512)(A), \
8640 (__mmask16)(-1), R))
8641 #define _mm512_mask_floor_round_ps(A, B, C, R) \
8642 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(C), \
8644 (__v16sf)(__m512)(A), \
8646 #define _mm512_maskz_floor_round_ps(A, B, R) \
8647 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(B), \
8649 (__v16sf)_mm512_setzero_ps(),\
8651 #define _mm512_floor_round_pd(A, R) \
8652 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(A), \
8654 (__v8df)(__m512d)(A), \
8656 #define _mm512_mask_floor_round_pd(A, B, C, R) \
8657 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(C), \
8659 (__v8df)(__m512d)(A), \
8661 #define _mm512_maskz_floor_round_pd(A, B, R) \
8662 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(B), \
8664 (__v8df)_mm512_setzero_pd(),\
8666 #define _mm512_ceil_round_ps(A, R) \
8667 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(A), \
8669 (__v16sf)(__m512)(A), \
8670 (__mmask16)(-1), R))
8671 #define _mm512_mask_ceil_round_ps(A, B, C, R) \
8672 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(C), \
8674 (__v16sf)(__m512)(A), \
8676 #define _mm512_maskz_ceil_round_ps(A, B, R) \
8677 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(B), \
8679 (__v16sf)_mm512_setzero_ps(),\
8681 #define _mm512_ceil_round_pd(A, R) \
8682 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(A), \
8684 (__v8df)(__m512d)(A), \
8686 #define _mm512_mask_ceil_round_pd(A, B, C, R) \
8687 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(C), \
8689 (__v8df)(__m512d)(A), \
8691 #define _mm512_maskz_ceil_round_pd(A, B, R) \
8692 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(B), \
8694 (__v8df)_mm512_setzero_pd(),\
8697 #define _mm512_alignr_epi32(X, Y, C) \
8698 ((__m512i)__builtin_ia32_alignd512_mask ((__v16si)(__m512i)(X), \
8699 (__v16si)(__m512i)(Y), (int)(C), (__v16si)(__m512i)(X), \
8702 #define _mm512_mask_alignr_epi32(W, U, X, Y, C) \
8703 ((__m512i)__builtin_ia32_alignd512_mask ((__v16si)(__m512i)(X), \
8704 (__v16si)(__m512i)(Y), (int)(C), (__v16si)(__m512i)(W), \
8707 #define _mm512_maskz_alignr_epi32(U, X, Y, C) \
8708 ((__m512i)__builtin_ia32_alignd512_mask ((__v16si)(__m512i)(X), \
8709 (__v16si)(__m512i)(Y), (int)(C), (__v16si)(__m512i)_mm512_setzero_si512 (),\
8712 #define _mm512_alignr_epi64(X, Y, C) \
8713 ((__m512i)__builtin_ia32_alignq512_mask ((__v8di)(__m512i)(X), \
8714 (__v8di)(__m512i)(Y), (int)(C), (__v8di)(__m512i)(X), (__mmask8)-1))
8716 #define _mm512_mask_alignr_epi64(W, U, X, Y, C) \
8717 ((__m512i)__builtin_ia32_alignq512_mask ((__v8di)(__m512i)(X), \
8718 (__v8di)(__m512i)(Y), (int)(C), (__v8di)(__m512i)(W), (__mmask8)(U)))
8720 #define _mm512_maskz_alignr_epi64(U, X, Y, C) \
8721 ((__m512i)__builtin_ia32_alignq512_mask ((__v8di)(__m512i)(X), \
8722 (__v8di)(__m512i)(Y), (int)(C), (__v8di)(__m512i)_mm512_setzero_si512 (),\
8726 extern __inline __mmask16
8727 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8728 _mm512_cmpeq_epi32_mask (__m512i __A
, __m512i __B
)
8730 return (__mmask16
) __builtin_ia32_pcmpeqd512_mask ((__v16si
) __A
,
8735 extern __inline __mmask16
8736 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8737 _mm512_mask_cmpeq_epi32_mask (__mmask16 __U
, __m512i __A
, __m512i __B
)
8739 return (__mmask16
) __builtin_ia32_pcmpeqd512_mask ((__v16si
) __A
,
8740 (__v16si
) __B
, __U
);
8743 extern __inline __mmask8
8744 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8745 _mm512_mask_cmpeq_epi64_mask (__mmask8 __U
, __m512i __A
, __m512i __B
)
8747 return (__mmask8
) __builtin_ia32_pcmpeqq512_mask ((__v8di
) __A
,
8751 extern __inline __mmask8
8752 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8753 _mm512_cmpeq_epi64_mask (__m512i __A
, __m512i __B
)
8755 return (__mmask8
) __builtin_ia32_pcmpeqq512_mask ((__v8di
) __A
,
8760 extern __inline __mmask16
8761 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8762 _mm512_cmpgt_epi32_mask (__m512i __A
, __m512i __B
)
8764 return (__mmask16
) __builtin_ia32_pcmpgtd512_mask ((__v16si
) __A
,
8769 extern __inline __mmask16
8770 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8771 _mm512_mask_cmpgt_epi32_mask (__mmask16 __U
, __m512i __A
, __m512i __B
)
8773 return (__mmask16
) __builtin_ia32_pcmpgtd512_mask ((__v16si
) __A
,
8774 (__v16si
) __B
, __U
);
8777 extern __inline __mmask8
8778 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8779 _mm512_mask_cmpgt_epi64_mask (__mmask8 __U
, __m512i __A
, __m512i __B
)
8781 return (__mmask8
) __builtin_ia32_pcmpgtq512_mask ((__v8di
) __A
,
8785 extern __inline __mmask8
8786 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8787 _mm512_cmpgt_epi64_mask (__m512i __A
, __m512i __B
)
8789 return (__mmask8
) __builtin_ia32_pcmpgtq512_mask ((__v8di
) __A
,
8794 extern __inline __mmask16
8795 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8796 _mm512_cmpge_epi32_mask (__m512i __X
, __m512i __Y
)
8798 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
8803 extern __inline __mmask16
8804 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8805 _mm512_cmpge_epu32_mask (__m512i __X
, __m512i __Y
)
8807 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
8812 extern __inline __mmask8
8813 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8814 _mm512_cmpge_epi64_mask (__m512i __X
, __m512i __Y
)
8816 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
8821 extern __inline __mmask8
8822 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8823 _mm512_cmpge_epu64_mask (__m512i __X
, __m512i __Y
)
8825 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
8830 extern __inline __mmask16
8831 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8832 _mm512_cmple_epi32_mask (__m512i __X
, __m512i __Y
)
8834 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
8839 extern __inline __mmask16
8840 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8841 _mm512_cmple_epu32_mask (__m512i __X
, __m512i __Y
)
8843 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
8848 extern __inline __mmask8
8849 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8850 _mm512_cmple_epi64_mask (__m512i __X
, __m512i __Y
)
8852 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
8857 extern __inline __mmask8
8858 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8859 _mm512_cmple_epu64_mask (__m512i __X
, __m512i __Y
)
8861 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
8866 extern __inline __mmask16
8867 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8868 _mm512_cmplt_epi32_mask (__m512i __X
, __m512i __Y
)
8870 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
8875 extern __inline __mmask16
8876 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8877 _mm512_cmplt_epu32_mask (__m512i __X
, __m512i __Y
)
8879 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
8884 extern __inline __mmask8
8885 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8886 _mm512_cmplt_epi64_mask (__m512i __X
, __m512i __Y
)
8888 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
8893 extern __inline __mmask8
8894 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8895 _mm512_cmplt_epu64_mask (__m512i __X
, __m512i __Y
)
8897 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
8902 extern __inline __mmask16
8903 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8904 _mm512_cmpneq_epi32_mask (__m512i __X
, __m512i __Y
)
8906 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
8911 extern __inline __mmask16
8912 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8913 _mm512_cmpneq_epu32_mask (__m512i __X
, __m512i __Y
)
8915 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
8920 extern __inline __mmask8
8921 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8922 _mm512_cmpneq_epi64_mask (__m512i __X
, __m512i __Y
)
8924 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
8929 extern __inline __mmask8
8930 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8931 _mm512_cmpneq_epu64_mask (__m512i __X
, __m512i __Y
)
8933 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
8938 #define _MM_CMPINT_EQ 0x0
8939 #define _MM_CMPINT_LT 0x1
8940 #define _MM_CMPINT_LE 0x2
8941 #define _MM_CMPINT_UNUSED 0x3
8942 #define _MM_CMPINT_NE 0x4
8943 #define _MM_CMPINT_NLT 0x5
8944 #define _MM_CMPINT_GE 0x5
8945 #define _MM_CMPINT_NLE 0x6
8946 #define _MM_CMPINT_GT 0x6
8949 extern __inline __mmask8
8950 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8951 _mm512_cmp_epi64_mask (__m512i __X
, __m512i __Y
, const int __P
)
8953 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
8958 extern __inline __mmask16
8959 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8960 _mm512_cmp_epi32_mask (__m512i __X
, __m512i __Y
, const int __P
)
8962 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
8967 extern __inline __mmask8
8968 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8969 _mm512_cmp_epu64_mask (__m512i __X
, __m512i __Y
, const int __P
)
8971 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
8976 extern __inline __mmask16
8977 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8978 _mm512_cmp_epu32_mask (__m512i __X
, __m512i __Y
, const int __P
)
8980 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
8985 extern __inline __mmask8
8986 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8987 _mm512_cmp_round_pd_mask (__m512d __X
, __m512d __Y
, const int __P
,
8990 return (__mmask8
) __builtin_ia32_cmppd512_mask ((__v8df
) __X
,
8992 (__mmask8
) -1, __R
);
8995 extern __inline __mmask16
8996 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8997 _mm512_cmp_round_ps_mask (__m512 __X
, __m512 __Y
, const int __P
, const int __R
)
8999 return (__mmask16
) __builtin_ia32_cmpps512_mask ((__v16sf
) __X
,
9001 (__mmask16
) -1, __R
);
9004 extern __inline __mmask8
9005 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9006 _mm512_mask_cmp_epi64_mask (__mmask8 __U
, __m512i __X
, __m512i __Y
,
9009 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
9014 extern __inline __mmask16
9015 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9016 _mm512_mask_cmp_epi32_mask (__mmask16 __U
, __m512i __X
, __m512i __Y
,
9019 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
9024 extern __inline __mmask8
9025 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9026 _mm512_mask_cmp_epu64_mask (__mmask8 __U
, __m512i __X
, __m512i __Y
,
9029 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
9034 extern __inline __mmask16
9035 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9036 _mm512_mask_cmp_epu32_mask (__mmask16 __U
, __m512i __X
, __m512i __Y
,
9039 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
9044 extern __inline __mmask8
9045 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9046 _mm512_mask_cmp_round_pd_mask (__mmask8 __U
, __m512d __X
, __m512d __Y
,
9047 const int __P
, const int __R
)
9049 return (__mmask8
) __builtin_ia32_cmppd512_mask ((__v8df
) __X
,
9051 (__mmask8
) __U
, __R
);
9054 extern __inline __mmask16
9055 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9056 _mm512_mask_cmp_round_ps_mask (__mmask16 __U
, __m512 __X
, __m512 __Y
,
9057 const int __P
, const int __R
)
9059 return (__mmask16
) __builtin_ia32_cmpps512_mask ((__v16sf
) __X
,
9061 (__mmask16
) __U
, __R
);
9064 extern __inline __mmask8
9065 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9066 _mm_cmp_round_sd_mask (__m128d __X
, __m128d __Y
, const int __P
, const int __R
)
9068 return (__mmask8
) __builtin_ia32_cmpsd_mask ((__v2df
) __X
,
9070 (__mmask8
) -1, __R
);
9073 extern __inline __mmask8
9074 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9075 _mm_mask_cmp_round_sd_mask (__mmask8 __M
, __m128d __X
, __m128d __Y
,
9076 const int __P
, const int __R
)
9078 return (__mmask8
) __builtin_ia32_cmpsd_mask ((__v2df
) __X
,
9080 (__mmask8
) __M
, __R
);
9083 extern __inline __mmask8
9084 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9085 _mm_cmp_round_ss_mask (__m128 __X
, __m128 __Y
, const int __P
, const int __R
)
9087 return (__mmask8
) __builtin_ia32_cmpss_mask ((__v4sf
) __X
,
9089 (__mmask8
) -1, __R
);
9092 extern __inline __mmask8
9093 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9094 _mm_mask_cmp_round_ss_mask (__mmask8 __M
, __m128 __X
, __m128 __Y
,
9095 const int __P
, const int __R
)
9097 return (__mmask8
) __builtin_ia32_cmpss_mask ((__v4sf
) __X
,
9099 (__mmask8
) __M
, __R
);
9103 #define _mm512_cmp_epi64_mask(X, Y, P) \
9104 ((__mmask8) __builtin_ia32_cmpq512_mask ((__v8di)(__m512i)(X), \
9105 (__v8di)(__m512i)(Y), (int)(P),\
9108 #define _mm512_cmp_epi32_mask(X, Y, P) \
9109 ((__mmask8) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X), \
9110 (__v16si)(__m512i)(Y), (int)(P),\
9113 #define _mm512_cmp_epu64_mask(X, Y, P) \
9114 ((__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di)(__m512i)(X), \
9115 (__v8di)(__m512i)(Y), (int)(P),\
9118 #define _mm512_cmp_epu32_mask(X, Y, P) \
9119 ((__mmask8) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X), \
9120 (__v16si)(__m512i)(Y), (int)(P),\
9123 #define _mm512_cmp_round_pd_mask(X, Y, P, R) \
9124 ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X), \
9125 (__v8df)(__m512d)(Y), (int)(P),\
9128 #define _mm512_cmp_round_ps_mask(X, Y, P, R) \
9129 ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X), \
9130 (__v16sf)(__m512)(Y), (int)(P),\
9133 #define _mm512_mask_cmp_epi64_mask(M, X, Y, P) \
9134 ((__mmask8) __builtin_ia32_cmpq512_mask ((__v8di)(__m512i)(X), \
9135 (__v8di)(__m512i)(Y), (int)(P),\
9138 #define _mm512_mask_cmp_epi32_mask(M, X, Y, P) \
9139 ((__mmask8) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X), \
9140 (__v16si)(__m512i)(Y), (int)(P),\
9143 #define _mm512_mask_cmp_epu64_mask(M, X, Y, P) \
9144 ((__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di)(__m512i)(X), \
9145 (__v8di)(__m512i)(Y), (int)(P),\
9148 #define _mm512_mask_cmp_epu32_mask(M, X, Y, P) \
9149 ((__mmask8) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X), \
9150 (__v16si)(__m512i)(Y), (int)(P),\
9153 #define _mm512_mask_cmp_round_pd_mask(M, X, Y, P, R) \
9154 ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X), \
9155 (__v8df)(__m512d)(Y), (int)(P),\
9158 #define _mm512_mask_cmp_round_ps_mask(M, X, Y, P, R) \
9159 ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X), \
9160 (__v16sf)(__m512)(Y), (int)(P),\
9163 #define _mm_cmp_round_sd_mask(X, Y, P, R) \
9164 ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X), \
9165 (__v2df)(__m128d)(Y), (int)(P),\
9168 #define _mm_mask_cmp_round_sd_mask(M, X, Y, P, R) \
9169 ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X), \
9170 (__v2df)(__m128d)(Y), (int)(P),\
9173 #define _mm_cmp_round_ss_mask(X, Y, P, R) \
9174 ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X), \
9175 (__v4sf)(__m128)(Y), (int)(P), \
9178 #define _mm_mask_cmp_round_ss_mask(M, X, Y, P, R) \
9179 ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X), \
9180 (__v4sf)(__m128)(Y), (int)(P), \
9185 extern __inline __m512
9186 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9187 _mm512_i32gather_ps (__m512i __index
, float const *__addr
, int __scale
)
9189 __m512 v1_old
= _mm512_setzero_ps ();
9190 __mmask16 mask
= 0xFFFF;
9192 return (__m512
) __builtin_ia32_gathersiv16sf ((__v16sf
) v1_old
,
9198 extern __inline __m512
9199 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9200 _mm512_mask_i32gather_ps (__m512 v1_old
, __mmask16 __mask
,
9201 __m512i __index
, float const *__addr
, int __scale
)
9203 return (__m512
) __builtin_ia32_gathersiv16sf ((__v16sf
) v1_old
,
9209 extern __inline __m512d
9210 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9211 _mm512_i32gather_pd (__m256i __index
, double const *__addr
, int __scale
)
9213 __m512d v1_old
= _mm512_setzero_pd ();
9214 __mmask8 mask
= 0xFF;
9216 return (__m512d
) __builtin_ia32_gathersiv8df ((__v8df
) v1_old
,
9218 (__v8si
) __index
, mask
,
9222 extern __inline __m512d
9223 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9224 _mm512_mask_i32gather_pd (__m512d __v1_old
, __mmask8 __mask
,
9225 __m256i __index
, double const *__addr
, int __scale
)
9227 return (__m512d
) __builtin_ia32_gathersiv8df ((__v8df
) __v1_old
,
9233 extern __inline __m256
9234 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9235 _mm512_i64gather_ps (__m512i __index
, float const *__addr
, int __scale
)
9237 __m256 v1_old
= _mm256_setzero_ps ();
9238 __mmask8 mask
= 0xFF;
9240 return (__m256
) __builtin_ia32_gatherdiv16sf ((__v8sf
) v1_old
,
9242 (__v8di
) __index
, mask
,
9246 extern __inline __m256
9247 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9248 _mm512_mask_i64gather_ps (__m256 __v1_old
, __mmask8 __mask
,
9249 __m512i __index
, float const *__addr
, int __scale
)
9251 return (__m256
) __builtin_ia32_gatherdiv16sf ((__v8sf
) __v1_old
,
9257 extern __inline __m512d
9258 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9259 _mm512_i64gather_pd (__m512i __index
, double const *__addr
, int __scale
)
9261 __m512d v1_old
= _mm512_setzero_pd ();
9262 __mmask8 mask
= 0xFF;
9264 return (__m512d
) __builtin_ia32_gatherdiv8df ((__v8df
) v1_old
,
9266 (__v8di
) __index
, mask
,
9270 extern __inline __m512d
9271 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9272 _mm512_mask_i64gather_pd (__m512d __v1_old
, __mmask8 __mask
,
9273 __m512i __index
, double const *__addr
, int __scale
)
9275 return (__m512d
) __builtin_ia32_gatherdiv8df ((__v8df
) __v1_old
,
9281 extern __inline __m512i
9282 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9283 _mm512_i32gather_epi32 (__m512i __index
, int const *__addr
, int __scale
)
9285 __m512i v1_old
= _mm512_setzero_si512 ();
9286 __mmask16 mask
= 0xFFFF;
9288 return (__m512i
) __builtin_ia32_gathersiv16si ((__v16si
) v1_old
,
9294 extern __inline __m512i
9295 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9296 _mm512_mask_i32gather_epi32 (__m512i __v1_old
, __mmask16 __mask
,
9297 __m512i __index
, int const *__addr
, int __scale
)
9299 return (__m512i
) __builtin_ia32_gathersiv16si ((__v16si
) __v1_old
,
9305 extern __inline __m512i
9306 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9307 _mm512_i32gather_epi64 (__m256i __index
, long long const *__addr
, int __scale
)
9309 __m512i v1_old
= _mm512_setzero_si512 ();
9310 __mmask8 mask
= 0xFF;
9312 return (__m512i
) __builtin_ia32_gathersiv8di ((__v8di
) v1_old
,
9314 (__v8si
) __index
, mask
,
9318 extern __inline __m512i
9319 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9320 _mm512_mask_i32gather_epi64 (__m512i __v1_old
, __mmask8 __mask
,
9321 __m256i __index
, long long const *__addr
,
9324 return (__m512i
) __builtin_ia32_gathersiv8di ((__v8di
) __v1_old
,
9330 extern __inline __m256i
9331 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9332 _mm512_i64gather_epi32 (__m512i __index
, int const *__addr
, int __scale
)
9334 __m256i v1_old
= _mm256_setzero_si256 ();
9335 __mmask8 mask
= 0xFF;
9337 return (__m256i
) __builtin_ia32_gatherdiv16si ((__v8si
) v1_old
,
9343 extern __inline __m256i
9344 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9345 _mm512_mask_i64gather_epi32 (__m256i __v1_old
, __mmask8 __mask
,
9346 __m512i __index
, int const *__addr
, int __scale
)
9348 return (__m256i
) __builtin_ia32_gatherdiv16si ((__v8si
) __v1_old
,
9354 extern __inline __m512i
9355 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9356 _mm512_i64gather_epi64 (__m512i __index
, long long const *__addr
, int __scale
)
9358 __m512i v1_old
= _mm512_setzero_si512 ();
9359 __mmask8 mask
= 0xFF;
9361 return (__m512i
) __builtin_ia32_gatherdiv8di ((__v8di
) v1_old
,
9363 (__v8di
) __index
, mask
,
9367 extern __inline __m512i
9368 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9369 _mm512_mask_i64gather_epi64 (__m512i __v1_old
, __mmask8 __mask
,
9370 __m512i __index
, long long const *__addr
,
9373 return (__m512i
) __builtin_ia32_gatherdiv8di ((__v8di
) __v1_old
,
9379 extern __inline
void
9380 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9381 _mm512_i32scatter_ps (float *__addr
, __m512i __index
, __m512 __v1
, int __scale
)
9383 __builtin_ia32_scattersiv16sf (__addr
, (__mmask16
) 0xFFFF,
9384 (__v16si
) __index
, (__v16sf
) __v1
, __scale
);
9387 extern __inline
void
9388 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9389 _mm512_mask_i32scatter_ps (float *__addr
, __mmask16 __mask
,
9390 __m512i __index
, __m512 __v1
, int __scale
)
9392 __builtin_ia32_scattersiv16sf (__addr
, __mask
, (__v16si
) __index
,
9393 (__v16sf
) __v1
, __scale
);
9396 extern __inline
void
9397 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9398 _mm512_i32scatter_pd (double *__addr
, __m256i __index
, __m512d __v1
,
9401 __builtin_ia32_scattersiv8df (__addr
, (__mmask8
) 0xFF,
9402 (__v8si
) __index
, (__v8df
) __v1
, __scale
);
9405 extern __inline
void
9406 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9407 _mm512_mask_i32scatter_pd (double *__addr
, __mmask8 __mask
,
9408 __m256i __index
, __m512d __v1
, int __scale
)
9410 __builtin_ia32_scattersiv8df (__addr
, __mask
, (__v8si
) __index
,
9411 (__v8df
) __v1
, __scale
);
9414 extern __inline
void
9415 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9416 _mm512_i64scatter_ps (float *__addr
, __m512i __index
, __m256 __v1
, int __scale
)
9418 __builtin_ia32_scatterdiv16sf (__addr
, (__mmask8
) 0xFF,
9419 (__v8di
) __index
, (__v8sf
) __v1
, __scale
);
9422 extern __inline
void
9423 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9424 _mm512_mask_i64scatter_ps (float *__addr
, __mmask8 __mask
,
9425 __m512i __index
, __m256 __v1
, int __scale
)
9427 __builtin_ia32_scatterdiv16sf (__addr
, __mask
, (__v8di
) __index
,
9428 (__v8sf
) __v1
, __scale
);
9431 extern __inline
void
9432 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9433 _mm512_i64scatter_pd (double *__addr
, __m512i __index
, __m512d __v1
,
9436 __builtin_ia32_scatterdiv8df (__addr
, (__mmask8
) 0xFF,
9437 (__v8di
) __index
, (__v8df
) __v1
, __scale
);
9440 extern __inline
void
9441 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9442 _mm512_mask_i64scatter_pd (double *__addr
, __mmask8 __mask
,
9443 __m512i __index
, __m512d __v1
, int __scale
)
9445 __builtin_ia32_scatterdiv8df (__addr
, __mask
, (__v8di
) __index
,
9446 (__v8df
) __v1
, __scale
);
9449 extern __inline
void
9450 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9451 _mm512_i32scatter_epi32 (int *__addr
, __m512i __index
,
9452 __m512i __v1
, int __scale
)
9454 __builtin_ia32_scattersiv16si (__addr
, (__mmask16
) 0xFFFF,
9455 (__v16si
) __index
, (__v16si
) __v1
, __scale
);
9458 extern __inline
void
9459 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9460 _mm512_mask_i32scatter_epi32 (int *__addr
, __mmask16 __mask
,
9461 __m512i __index
, __m512i __v1
, int __scale
)
9463 __builtin_ia32_scattersiv16si (__addr
, __mask
, (__v16si
) __index
,
9464 (__v16si
) __v1
, __scale
);
9467 extern __inline
void
9468 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9469 _mm512_i32scatter_epi64 (long long *__addr
, __m256i __index
,
9470 __m512i __v1
, int __scale
)
9472 __builtin_ia32_scattersiv8di (__addr
, (__mmask8
) 0xFF,
9473 (__v8si
) __index
, (__v8di
) __v1
, __scale
);
9476 extern __inline
void
9477 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9478 _mm512_mask_i32scatter_epi64 (long long *__addr
, __mmask8 __mask
,
9479 __m256i __index
, __m512i __v1
, int __scale
)
9481 __builtin_ia32_scattersiv8di (__addr
, __mask
, (__v8si
) __index
,
9482 (__v8di
) __v1
, __scale
);
9485 extern __inline
void
9486 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9487 _mm512_i64scatter_epi32 (int *__addr
, __m512i __index
,
9488 __m256i __v1
, int __scale
)
9490 __builtin_ia32_scatterdiv16si (__addr
, (__mmask8
) 0xFF,
9491 (__v8di
) __index
, (__v8si
) __v1
, __scale
);
9494 extern __inline
void
9495 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9496 _mm512_mask_i64scatter_epi32 (int *__addr
, __mmask8 __mask
,
9497 __m512i __index
, __m256i __v1
, int __scale
)
9499 __builtin_ia32_scatterdiv16si (__addr
, __mask
, (__v8di
) __index
,
9500 (__v8si
) __v1
, __scale
);
9503 extern __inline
void
9504 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9505 _mm512_i64scatter_epi64 (long long *__addr
, __m512i __index
,
9506 __m512i __v1
, int __scale
)
9508 __builtin_ia32_scatterdiv8di (__addr
, (__mmask8
) 0xFF,
9509 (__v8di
) __index
, (__v8di
) __v1
, __scale
);
9512 extern __inline
void
9513 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9514 _mm512_mask_i64scatter_epi64 (long long *__addr
, __mmask8 __mask
,
9515 __m512i __index
, __m512i __v1
, int __scale
)
9517 __builtin_ia32_scatterdiv8di (__addr
, __mask
, (__v8di
) __index
,
9518 (__v8di
) __v1
, __scale
);
9521 #define _mm512_i32gather_ps(INDEX, ADDR, SCALE) \
9522 (__m512) __builtin_ia32_gathersiv16sf ((__v16sf)_mm512_setzero_ps(), \
9523 (float const *)ADDR, \
9524 (__v16si)(__m512i)INDEX, \
9525 (__mmask16)0xFFFF, (int)SCALE)
9527 #define _mm512_mask_i32gather_ps(V1OLD, MASK, INDEX, ADDR, SCALE) \
9528 (__m512) __builtin_ia32_gathersiv16sf ((__v16sf)(__m512)V1OLD, \
9529 (float const *)ADDR, \
9530 (__v16si)(__m512i)INDEX, \
9531 (__mmask16)MASK, (int)SCALE)
9533 #define _mm512_i32gather_pd(INDEX, ADDR, SCALE) \
9534 (__m512d) __builtin_ia32_gathersiv8df ((__v8df)_mm512_setzero_pd(), \
9535 (double const *)ADDR, \
9536 (__v8si)(__m256i)INDEX, \
9537 (__mmask8)0xFF, (int)SCALE)
9539 #define _mm512_mask_i32gather_pd(V1OLD, MASK, INDEX, ADDR, SCALE) \
9540 (__m512d) __builtin_ia32_gathersiv8df ((__v8df)(__m512d)V1OLD, \
9541 (double const *)ADDR, \
9542 (__v8si)(__m256i)INDEX, \
9543 (__mmask8)MASK, (int)SCALE)
9545 #define _mm512_i64gather_ps(INDEX, ADDR, SCALE) \
9546 (__m256) __builtin_ia32_gatherdiv16sf ((__v8sf)_mm256_setzero_ps(), \
9547 (float const *)ADDR, \
9548 (__v8di)(__m512i)INDEX, \
9549 (__mmask8)0xFF, (int)SCALE)
9551 #define _mm512_mask_i64gather_ps(V1OLD, MASK, INDEX, ADDR, SCALE) \
9552 (__m256) __builtin_ia32_gatherdiv16sf ((__v8sf)(__m256)V1OLD, \
9553 (float const *)ADDR, \
9554 (__v8di)(__m512i)INDEX, \
9555 (__mmask8)MASK, (int)SCALE)
9557 #define _mm512_i64gather_pd(INDEX, ADDR, SCALE) \
9558 (__m512d) __builtin_ia32_gatherdiv8df ((__v8df)_mm512_setzero_pd(), \
9559 (double const *)ADDR, \
9560 (__v8di)(__m512i)INDEX, \
9561 (__mmask8)0xFF, (int)SCALE)
9563 #define _mm512_mask_i64gather_pd(V1OLD, MASK, INDEX, ADDR, SCALE) \
9564 (__m512d) __builtin_ia32_gatherdiv8df ((__v8df)(__m512d)V1OLD, \
9565 (double const *)ADDR, \
9566 (__v8di)(__m512i)INDEX, \
9567 (__mmask8)MASK, (int)SCALE)
9569 #define _mm512_i32gather_epi32(INDEX, ADDR, SCALE) \
9570 (__m512i) __builtin_ia32_gathersiv16si ((__v16si)_mm512_setzero_si512 (), \
9571 (int const *)ADDR, \
9572 (__v16si)(__m512i)INDEX, \
9573 (__mmask16)0xFFFF, (int)SCALE)
9575 #define _mm512_mask_i32gather_epi32(V1OLD, MASK, INDEX, ADDR, SCALE) \
9576 (__m512i) __builtin_ia32_gathersiv16si ((__v16si)(__m512i)V1OLD, \
9577 (int const *)ADDR, \
9578 (__v16si)(__m512i)INDEX, \
9579 (__mmask16)MASK, (int)SCALE)
9581 #define _mm512_i32gather_epi64(INDEX, ADDR, SCALE) \
9582 (__m512i) __builtin_ia32_gathersiv8di ((__v8di)_mm512_setzero_si512 (), \
9583 (long long const *)ADDR, \
9584 (__v8si)(__m256i)INDEX, \
9585 (__mmask8)0xFF, (int)SCALE)
9587 #define _mm512_mask_i32gather_epi64(V1OLD, MASK, INDEX, ADDR, SCALE) \
9588 (__m512i) __builtin_ia32_gathersiv8di ((__v8di)(__m512i)V1OLD, \
9589 (long long const *)ADDR, \
9590 (__v8si)(__m256i)INDEX, \
9591 (__mmask8)MASK, (int)SCALE)
9593 #define _mm512_i64gather_epi32(INDEX, ADDR, SCALE) \
9594 (__m256i) __builtin_ia32_gatherdiv16si ((__v8si)_mm256_setzero_si256(), \
9595 (int const *)ADDR, \
9596 (__v8di)(__m512i)INDEX, \
9597 (__mmask8)0xFF, (int)SCALE)
9599 #define _mm512_mask_i64gather_epi32(V1OLD, MASK, INDEX, ADDR, SCALE) \
9600 (__m256i) __builtin_ia32_gatherdiv16si ((__v8si)(__m256i)V1OLD, \
9601 (int const *)ADDR, \
9602 (__v8di)(__m512i)INDEX, \
9603 (__mmask8)MASK, (int)SCALE)
9605 #define _mm512_i64gather_epi64(INDEX, ADDR, SCALE) \
9606 (__m512i) __builtin_ia32_gatherdiv8di ((__v8di)_mm512_setzero_si512 (), \
9607 (long long const *)ADDR, \
9608 (__v8di)(__m512i)INDEX, \
9609 (__mmask8)0xFF, (int)SCALE)
9611 #define _mm512_mask_i64gather_epi64(V1OLD, MASK, INDEX, ADDR, SCALE) \
9612 (__m512i) __builtin_ia32_gatherdiv8di ((__v8di)(__m512i)V1OLD, \
9613 (long long const *)ADDR, \
9614 (__v8di)(__m512i)INDEX, \
9615 (__mmask8)MASK, (int)SCALE)
9617 #define _mm512_i32scatter_ps(ADDR, INDEX, V1, SCALE) \
9618 __builtin_ia32_scattersiv16sf ((float *)ADDR, (__mmask16)0xFFFF, \
9619 (__v16si)(__m512i)INDEX, \
9620 (__v16sf)(__m512)V1, (int)SCALE)
9622 #define _mm512_mask_i32scatter_ps(ADDR, MASK, INDEX, V1, SCALE) \
9623 __builtin_ia32_scattersiv16sf ((float *)ADDR, (__mmask16)MASK, \
9624 (__v16si)(__m512i)INDEX, \
9625 (__v16sf)(__m512)V1, (int)SCALE)
9627 #define _mm512_i32scatter_pd(ADDR, INDEX, V1, SCALE) \
9628 __builtin_ia32_scattersiv8df ((double *)ADDR, (__mmask8)0xFF, \
9629 (__v8si)(__m256i)INDEX, \
9630 (__v8df)(__m512d)V1, (int)SCALE)
9632 #define _mm512_mask_i32scatter_pd(ADDR, MASK, INDEX, V1, SCALE) \
9633 __builtin_ia32_scattersiv8df ((double *)ADDR, (__mmask8)MASK, \
9634 (__v8si)(__m256i)INDEX, \
9635 (__v8df)(__m512d)V1, (int)SCALE)
9637 #define _mm512_i64scatter_ps(ADDR, INDEX, V1, SCALE) \
9638 __builtin_ia32_scatterdiv16sf ((float *)ADDR, (__mmask8)0xFF, \
9639 (__v8di)(__m512i)INDEX, \
9640 (__v8sf)(__m256)V1, (int)SCALE)
9642 #define _mm512_mask_i64scatter_ps(ADDR, MASK, INDEX, V1, SCALE) \
9643 __builtin_ia32_scatterdiv16sf ((float *)ADDR, (__mmask16)MASK, \
9644 (__v8di)(__m512i)INDEX, \
9645 (__v8sf)(__m256)V1, (int)SCALE)
9647 #define _mm512_i64scatter_pd(ADDR, INDEX, V1, SCALE) \
9648 __builtin_ia32_scatterdiv8df ((double *)ADDR, (__mmask8)0xFF, \
9649 (__v8di)(__m512i)INDEX, \
9650 (__v8df)(__m512d)V1, (int)SCALE)
9652 #define _mm512_mask_i64scatter_pd(ADDR, MASK, INDEX, V1, SCALE) \
9653 __builtin_ia32_scatterdiv8df ((double *)ADDR, (__mmask8)MASK, \
9654 (__v8di)(__m512i)INDEX, \
9655 (__v8df)(__m512d)V1, (int)SCALE)
9657 #define _mm512_i32scatter_epi32(ADDR, INDEX, V1, SCALE) \
9658 __builtin_ia32_scattersiv16si ((int *)ADDR, (__mmask16)0xFFFF, \
9659 (__v16si)(__m512i)INDEX, \
9660 (__v16si)(__m512i)V1, (int)SCALE)
9662 #define _mm512_mask_i32scatter_epi32(ADDR, MASK, INDEX, V1, SCALE) \
9663 __builtin_ia32_scattersiv16si ((int *)ADDR, (__mmask16)MASK, \
9664 (__v16si)(__m512i)INDEX, \
9665 (__v16si)(__m512i)V1, (int)SCALE)
9667 #define _mm512_i32scatter_epi64(ADDR, INDEX, V1, SCALE) \
9668 __builtin_ia32_scattersiv8di ((long long *)ADDR, (__mmask8)0xFF, \
9669 (__v8si)(__m256i)INDEX, \
9670 (__v8di)(__m512i)V1, (int)SCALE)
9672 #define _mm512_mask_i32scatter_epi64(ADDR, MASK, INDEX, V1, SCALE) \
9673 __builtin_ia32_scattersiv8di ((long long *)ADDR, (__mmask8)MASK, \
9674 (__v8si)(__m256i)INDEX, \
9675 (__v8di)(__m512i)V1, (int)SCALE)
9677 #define _mm512_i64scatter_epi32(ADDR, INDEX, V1, SCALE) \
9678 __builtin_ia32_scatterdiv16si ((int *)ADDR, (__mmask8)0xFF, \
9679 (__v8di)(__m512i)INDEX, \
9680 (__v8si)(__m256i)V1, (int)SCALE)
9682 #define _mm512_mask_i64scatter_epi32(ADDR, MASK, INDEX, V1, SCALE) \
9683 __builtin_ia32_scatterdiv16si ((int *)ADDR, (__mmask8)MASK, \
9684 (__v8di)(__m512i)INDEX, \
9685 (__v8si)(__m256i)V1, (int)SCALE)
9687 #define _mm512_i64scatter_epi64(ADDR, INDEX, V1, SCALE) \
9688 __builtin_ia32_scatterdiv8di ((long long *)ADDR, (__mmask8)0xFF, \
9689 (__v8di)(__m512i)INDEX, \
9690 (__v8di)(__m512i)V1, (int)SCALE)
9692 #define _mm512_mask_i64scatter_epi64(ADDR, MASK, INDEX, V1, SCALE) \
9693 __builtin_ia32_scatterdiv8di ((long long *)ADDR, (__mmask8)MASK, \
9694 (__v8di)(__m512i)INDEX, \
9695 (__v8di)(__m512i)V1, (int)SCALE)
9698 extern __inline __m512d
9699 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9700 _mm512_mask_compress_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
9702 return (__m512d
) __builtin_ia32_compressdf512_mask ((__v8df
) __A
,
9707 extern __inline __m512d
9708 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9709 _mm512_maskz_compress_pd (__mmask8 __U
, __m512d __A
)
9711 return (__m512d
) __builtin_ia32_compressdf512_mask ((__v8df
) __A
,
9713 _mm512_setzero_pd (),
9717 extern __inline
void
9718 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9719 _mm512_mask_compressstoreu_pd (void *__P
, __mmask8 __U
, __m512d __A
)
9721 __builtin_ia32_compressstoredf512_mask ((__v8df
*) __P
, (__v8df
) __A
,
9725 extern __inline __m512
9726 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9727 _mm512_mask_compress_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
9729 return (__m512
) __builtin_ia32_compresssf512_mask ((__v16sf
) __A
,
9734 extern __inline __m512
9735 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9736 _mm512_maskz_compress_ps (__mmask16 __U
, __m512 __A
)
9738 return (__m512
) __builtin_ia32_compresssf512_mask ((__v16sf
) __A
,
9740 _mm512_setzero_ps (),
9744 extern __inline
void
9745 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9746 _mm512_mask_compressstoreu_ps (void *__P
, __mmask16 __U
, __m512 __A
)
9748 __builtin_ia32_compressstoresf512_mask ((__v16sf
*) __P
, (__v16sf
) __A
,
9752 extern __inline __m512i
9753 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9754 _mm512_mask_compress_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
)
9756 return (__m512i
) __builtin_ia32_compressdi512_mask ((__v8di
) __A
,
9761 extern __inline __m512i
9762 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9763 _mm512_maskz_compress_epi64 (__mmask8 __U
, __m512i __A
)
9765 return (__m512i
) __builtin_ia32_compressdi512_mask ((__v8di
) __A
,
9767 _mm512_setzero_si512 (),
9771 extern __inline
void
9772 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9773 _mm512_mask_compressstoreu_epi64 (void *__P
, __mmask8 __U
, __m512i __A
)
9775 __builtin_ia32_compressstoredi512_mask ((__v8di
*) __P
, (__v8di
) __A
,
9779 extern __inline __m512i
9780 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9781 _mm512_mask_compress_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
)
9783 return (__m512i
) __builtin_ia32_compresssi512_mask ((__v16si
) __A
,
9788 extern __inline __m512i
9789 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9790 _mm512_maskz_compress_epi32 (__mmask16 __U
, __m512i __A
)
9792 return (__m512i
) __builtin_ia32_compresssi512_mask ((__v16si
) __A
,
9794 _mm512_setzero_si512 (),
9798 extern __inline
void
9799 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9800 _mm512_mask_compressstoreu_epi32 (void *__P
, __mmask16 __U
, __m512i __A
)
9802 __builtin_ia32_compressstoresi512_mask ((__v16si
*) __P
, (__v16si
) __A
,
9806 extern __inline __m512d
9807 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9808 _mm512_expand_pd (__m512d __A
)
9810 return (__m512d
) __builtin_ia32_expanddf512 ((__v8df
) __A
);
9813 extern __inline __m512d
9814 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9815 _mm512_mask_expand_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
9817 return (__m512d
) __builtin_ia32_expanddf512_mask ((__v8df
) __A
,
9822 extern __inline __m512d
9823 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9824 _mm512_maskz_expand_pd (__mmask8 __U
, __m512d __A
)
9826 return (__m512d
) __builtin_ia32_expanddf512_maskz ((__v8df
) __A
,
9828 _mm512_setzero_pd (),
9832 extern __inline __m512d
9833 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9834 _mm512_mask_expandloadu_pd (__m512d __W
, __mmask8 __U
, void const *__P
)
9836 return (__m512d
) __builtin_ia32_expandloaddf512_mask ((const __v8df
*) __P
,
9841 extern __inline __m512d
9842 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9843 _mm512_maskz_expandloadu_pd (__mmask8 __U
, void const *__P
)
9845 return (__m512d
) __builtin_ia32_expandloaddf512_maskz ((const __v8df
*) __P
,
9847 _mm512_setzero_pd (),
9851 extern __inline __m512
9852 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9853 _mm512_expand_ps (__m512 __A
)
9855 return (__m512
) __builtin_ia32_expandsf512 ((__v16sf
) __A
);
9858 extern __inline __m512
9859 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9860 _mm512_mask_expand_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
9862 return (__m512
) __builtin_ia32_expandsf512_mask ((__v16sf
) __A
,
9867 extern __inline __m512
9868 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9869 _mm512_maskz_expand_ps (__mmask16 __U
, __m512 __A
)
9871 return (__m512
) __builtin_ia32_expandsf512_maskz ((__v16sf
) __A
,
9873 _mm512_setzero_ps (),
9877 extern __inline __m512
9878 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9879 _mm512_mask_expandloadu_ps (__m512 __W
, __mmask16 __U
, void const *__P
)
9881 return (__m512
) __builtin_ia32_expandloadsf512_mask ((const __v16sf
*) __P
,
9886 extern __inline __m512
9887 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9888 _mm512_maskz_expandloadu_ps (__mmask16 __U
, void const *__P
)
9890 return (__m512
) __builtin_ia32_expandloadsf512_maskz ((const __v16sf
*) __P
,
9892 _mm512_setzero_ps (),
9896 extern __inline __m512i
9897 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9898 _mm512_mask_expand_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
)
9900 return (__m512i
) __builtin_ia32_expanddi512_mask ((__v8di
) __A
,
9905 extern __inline __m512i
9906 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9907 _mm512_maskz_expand_epi64 (__mmask8 __U
, __m512i __A
)
9909 return (__m512i
) __builtin_ia32_expanddi512_maskz ((__v8di
) __A
,
9911 _mm512_setzero_si512 (),
9915 extern __inline __m512i
9916 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9917 _mm512_mask_expandloadu_epi64 (__m512i __W
, __mmask8 __U
, void const *__P
)
9919 return (__m512i
) __builtin_ia32_expandloaddi512_mask ((const __v8di
*) __P
,
9924 extern __inline __m512i
9925 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9926 _mm512_maskz_expandloadu_epi64 (__mmask8 __U
, void const *__P
)
9929 __builtin_ia32_expandloaddi512_maskz ((const __v8di
*) __P
,
9931 _mm512_setzero_si512 (),
9935 extern __inline __m512i
9936 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9937 _mm512_mask_expand_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
)
9939 return (__m512i
) __builtin_ia32_expandsi512_mask ((__v16si
) __A
,
9944 extern __inline __m512i
9945 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9946 _mm512_maskz_expand_epi32 (__mmask16 __U
, __m512i __A
)
9948 return (__m512i
) __builtin_ia32_expandsi512_maskz ((__v16si
) __A
,
9950 _mm512_setzero_si512 (),
9954 extern __inline __m512i
9955 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9956 _mm512_mask_expandloadu_epi32 (__m512i __W
, __mmask16 __U
, void const *__P
)
9958 return (__m512i
) __builtin_ia32_expandloadsi512_mask ((const __v16si
*) __P
,
9963 extern __inline __m512i
9964 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9965 _mm512_maskz_expandloadu_epi32 (__mmask16 __U
, void const *__P
)
9967 return (__m512i
) __builtin_ia32_expandloadsi512_maskz ((const __v16si
*) __P
,
9969 _mm512_setzero_si512
9970 (), (__mmask16
) __U
);
9973 /* Mask arithmetic operations */
9974 extern __inline __mmask16
9975 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9976 _mm512_kand (__mmask16 __A
, __mmask16 __B
)
9978 return (__mmask16
) __builtin_ia32_kandhi ((__mmask16
) __A
, (__mmask16
) __B
);
9981 extern __inline __mmask16
9982 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9983 _mm512_kandn (__mmask16 __A
, __mmask16 __B
)
9985 return (__mmask16
) __builtin_ia32_kandnhi ((__mmask16
) __A
, (__mmask16
) __B
);
9988 extern __inline __mmask16
9989 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9990 _mm512_kor (__mmask16 __A
, __mmask16 __B
)
9992 return (__mmask16
) __builtin_ia32_korhi ((__mmask16
) __A
, (__mmask16
) __B
);
9996 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9997 _mm512_kortestz (__mmask16 __A
, __mmask16 __B
)
9999 return (__mmask16
) __builtin_ia32_kortestzhi ((__mmask16
) __A
,
10003 extern __inline
int
10004 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10005 _mm512_kortestc (__mmask16 __A
, __mmask16 __B
)
10007 return (__mmask16
) __builtin_ia32_kortestchi ((__mmask16
) __A
,
10011 extern __inline __mmask16
10012 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10013 _mm512_kxnor (__mmask16 __A
, __mmask16 __B
)
10015 return (__mmask16
) __builtin_ia32_kxnorhi ((__mmask16
) __A
, (__mmask16
) __B
);
10018 extern __inline __mmask16
10019 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10020 _mm512_kxor (__mmask16 __A
, __mmask16 __B
)
10022 return (__mmask16
) __builtin_ia32_kxorhi ((__mmask16
) __A
, (__mmask16
) __B
);
10025 extern __inline __mmask16
10026 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10027 _mm512_knot (__mmask16 __A
)
10029 return (__mmask16
) __builtin_ia32_knothi ((__mmask16
) __A
);
10032 extern __inline __mmask16
10033 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10034 _mm512_kunpackb (__mmask16 __A
, __mmask16 __B
)
10036 return (__mmask16
) __builtin_ia32_kunpckhi ((__mmask16
) __A
, (__mmask16
) __B
);
10039 #ifdef __OPTIMIZE__
10040 extern __inline __m512i
10041 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10042 _mm512_maskz_inserti32x4 (__mmask16 __B
, __m512i __C
, __m128i __D
,
10045 return (__m512i
) __builtin_ia32_inserti32x4_mask ((__v16si
) __C
,
10049 _mm512_setzero_si512 (),
10053 extern __inline __m512
10054 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10055 _mm512_maskz_insertf32x4 (__mmask16 __B
, __m512 __C
, __m128 __D
,
10058 return (__m512
) __builtin_ia32_insertf32x4_mask ((__v16sf
) __C
,
10062 _mm512_setzero_ps (), __B
);
10065 extern __inline __m512i
10066 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10067 _mm512_mask_inserti32x4 (__m512i __A
, __mmask16 __B
, __m512i __C
,
10068 __m128i __D
, const int __imm
)
10070 return (__m512i
) __builtin_ia32_inserti32x4_mask ((__v16si
) __C
,
10077 extern __inline __m512
10078 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10079 _mm512_mask_insertf32x4 (__m512 __A
, __mmask16 __B
, __m512 __C
,
10080 __m128 __D
, const int __imm
)
10082 return (__m512
) __builtin_ia32_insertf32x4_mask ((__v16sf
) __C
,
10085 (__v16sf
) __A
, __B
);
10088 #define _mm512_maskz_insertf32x4(A, X, Y, C) \
10089 ((__m512) __builtin_ia32_insertf32x4_mask ((__v16sf)(__m512) (X), \
10090 (__v4sf)(__m128) (Y), (int) (C), (__v16sf)_mm512_setzero_ps(), \
10093 #define _mm512_maskz_inserti32x4(A, X, Y, C) \
10094 ((__m512i) __builtin_ia32_inserti32x4_mask ((__v16si)(__m512i) (X), \
10095 (__v4si)(__m128i) (Y), (int) (C), (__v16si)_mm512_setzero_si512 (), \
10098 #define _mm512_mask_insertf32x4(A, B, X, Y, C) \
10099 ((__m512) __builtin_ia32_insertf32x4_mask ((__v16sf)(__m512) (X), \
10100 (__v4sf)(__m128) (Y), (int) (C), (__v16sf)(__m512) (A), \
10103 #define _mm512_mask_inserti32x4(A, B, X, Y, C) \
10104 ((__m512i) __builtin_ia32_inserti32x4_mask ((__v16si)(__m512i) (X), \
10105 (__v4si)(__m128i) (Y), (int) (C), (__v16si)(__m512i) (A), \
10109 extern __inline __m512i
10110 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10111 _mm512_max_epi64 (__m512i __A
, __m512i __B
)
10113 return (__m512i
) __builtin_ia32_pmaxsq512_mask ((__v8di
) __A
,
10116 _mm512_setzero_si512 (),
10120 extern __inline __m512i
10121 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10122 _mm512_maskz_max_epi64 (__mmask8 __M
, __m512i __A
, __m512i __B
)
10124 return (__m512i
) __builtin_ia32_pmaxsq512_mask ((__v8di
) __A
,
10127 _mm512_setzero_si512 (),
10131 extern __inline __m512i
10132 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10133 _mm512_mask_max_epi64 (__m512i __W
, __mmask8 __M
, __m512i __A
, __m512i __B
)
10135 return (__m512i
) __builtin_ia32_pmaxsq512_mask ((__v8di
) __A
,
10137 (__v8di
) __W
, __M
);
10140 extern __inline __m512i
10141 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10142 _mm512_min_epi64 (__m512i __A
, __m512i __B
)
10144 return (__m512i
) __builtin_ia32_pminsq512_mask ((__v8di
) __A
,
10147 _mm512_setzero_si512 (),
10151 extern __inline __m512i
10152 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10153 _mm512_mask_min_epi64 (__m512i __W
, __mmask8 __M
, __m512i __A
, __m512i __B
)
10155 return (__m512i
) __builtin_ia32_pminsq512_mask ((__v8di
) __A
,
10157 (__v8di
) __W
, __M
);
10160 extern __inline __m512i
10161 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10162 _mm512_maskz_min_epi64 (__mmask8 __M
, __m512i __A
, __m512i __B
)
10164 return (__m512i
) __builtin_ia32_pminsq512_mask ((__v8di
) __A
,
10167 _mm512_setzero_si512 (),
10171 extern __inline __m512i
10172 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10173 _mm512_max_epu64 (__m512i __A
, __m512i __B
)
10175 return (__m512i
) __builtin_ia32_pmaxuq512_mask ((__v8di
) __A
,
10178 _mm512_setzero_si512 (),
10182 extern __inline __m512i
10183 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10184 _mm512_maskz_max_epu64 (__mmask8 __M
, __m512i __A
, __m512i __B
)
10186 return (__m512i
) __builtin_ia32_pmaxuq512_mask ((__v8di
) __A
,
10189 _mm512_setzero_si512 (),
10193 extern __inline __m512i
10194 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10195 _mm512_mask_max_epu64 (__m512i __W
, __mmask8 __M
, __m512i __A
, __m512i __B
)
10197 return (__m512i
) __builtin_ia32_pmaxuq512_mask ((__v8di
) __A
,
10199 (__v8di
) __W
, __M
);
10202 extern __inline __m512i
10203 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10204 _mm512_min_epu64 (__m512i __A
, __m512i __B
)
10206 return (__m512i
) __builtin_ia32_pminuq512_mask ((__v8di
) __A
,
10209 _mm512_setzero_si512 (),
10213 extern __inline __m512i
10214 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10215 _mm512_mask_min_epu64 (__m512i __W
, __mmask8 __M
, __m512i __A
, __m512i __B
)
10217 return (__m512i
) __builtin_ia32_pminuq512_mask ((__v8di
) __A
,
10219 (__v8di
) __W
, __M
);
10222 extern __inline __m512i
10223 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10224 _mm512_maskz_min_epu64 (__mmask8 __M
, __m512i __A
, __m512i __B
)
10226 return (__m512i
) __builtin_ia32_pminuq512_mask ((__v8di
) __A
,
10229 _mm512_setzero_si512 (),
10233 extern __inline __m512i
10234 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10235 _mm512_max_epi32 (__m512i __A
, __m512i __B
)
10237 return (__m512i
) __builtin_ia32_pmaxsd512_mask ((__v16si
) __A
,
10240 _mm512_setzero_si512 (),
10244 extern __inline __m512i
10245 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10246 _mm512_maskz_max_epi32 (__mmask16 __M
, __m512i __A
, __m512i __B
)
10248 return (__m512i
) __builtin_ia32_pmaxsd512_mask ((__v16si
) __A
,
10251 _mm512_setzero_si512 (),
10255 extern __inline __m512i
10256 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10257 _mm512_mask_max_epi32 (__m512i __W
, __mmask16 __M
, __m512i __A
, __m512i __B
)
10259 return (__m512i
) __builtin_ia32_pmaxsd512_mask ((__v16si
) __A
,
10261 (__v16si
) __W
, __M
);
10264 extern __inline __m512i
10265 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10266 _mm512_min_epi32 (__m512i __A
, __m512i __B
)
10268 return (__m512i
) __builtin_ia32_pminsd512_mask ((__v16si
) __A
,
10271 _mm512_setzero_si512 (),
10275 extern __inline __m512i
10276 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10277 _mm512_maskz_min_epi32 (__mmask16 __M
, __m512i __A
, __m512i __B
)
10279 return (__m512i
) __builtin_ia32_pminsd512_mask ((__v16si
) __A
,
10282 _mm512_setzero_si512 (),
10286 extern __inline __m512i
10287 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10288 _mm512_mask_min_epi32 (__m512i __W
, __mmask16 __M
, __m512i __A
, __m512i __B
)
10290 return (__m512i
) __builtin_ia32_pminsd512_mask ((__v16si
) __A
,
10292 (__v16si
) __W
, __M
);
10295 extern __inline __m512i
10296 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10297 _mm512_max_epu32 (__m512i __A
, __m512i __B
)
10299 return (__m512i
) __builtin_ia32_pmaxud512_mask ((__v16si
) __A
,
10302 _mm512_setzero_si512 (),
10306 extern __inline __m512i
10307 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10308 _mm512_maskz_max_epu32 (__mmask16 __M
, __m512i __A
, __m512i __B
)
10310 return (__m512i
) __builtin_ia32_pmaxud512_mask ((__v16si
) __A
,
10313 _mm512_setzero_si512 (),
10317 extern __inline __m512i
10318 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10319 _mm512_mask_max_epu32 (__m512i __W
, __mmask16 __M
, __m512i __A
, __m512i __B
)
10321 return (__m512i
) __builtin_ia32_pmaxud512_mask ((__v16si
) __A
,
10323 (__v16si
) __W
, __M
);
10326 extern __inline __m512i
10327 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10328 _mm512_min_epu32 (__m512i __A
, __m512i __B
)
10330 return (__m512i
) __builtin_ia32_pminud512_mask ((__v16si
) __A
,
10333 _mm512_setzero_si512 (),
10337 extern __inline __m512i
10338 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10339 _mm512_maskz_min_epu32 (__mmask16 __M
, __m512i __A
, __m512i __B
)
10341 return (__m512i
) __builtin_ia32_pminud512_mask ((__v16si
) __A
,
10344 _mm512_setzero_si512 (),
10348 extern __inline __m512i
10349 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10350 _mm512_mask_min_epu32 (__m512i __W
, __mmask16 __M
, __m512i __A
, __m512i __B
)
10352 return (__m512i
) __builtin_ia32_pminud512_mask ((__v16si
) __A
,
10354 (__v16si
) __W
, __M
);
10357 extern __inline __m512
10358 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10359 _mm512_unpacklo_ps (__m512 __A
, __m512 __B
)
10361 return (__m512
) __builtin_ia32_unpcklps512_mask ((__v16sf
) __A
,
10364 _mm512_setzero_ps (),
10368 extern __inline __m512
10369 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10370 _mm512_mask_unpacklo_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
10372 return (__m512
) __builtin_ia32_unpcklps512_mask ((__v16sf
) __A
,
10378 extern __inline __m512
10379 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10380 _mm512_maskz_unpacklo_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
10382 return (__m512
) __builtin_ia32_unpcklps512_mask ((__v16sf
) __A
,
10385 _mm512_setzero_ps (),
10389 #ifdef __OPTIMIZE__
10390 extern __inline __m128d
10391 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10392 _mm_max_round_sd (__m128d __A
, __m128d __B
, const int __R
)
10394 return (__m128d
) __builtin_ia32_maxsd_round ((__v2df
) __A
,
10399 extern __inline __m128
10400 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10401 _mm_max_round_ss (__m128 __A
, __m128 __B
, const int __R
)
10403 return (__m128
) __builtin_ia32_maxss_round ((__v4sf
) __A
,
10408 extern __inline __m128d
10409 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10410 _mm_min_round_sd (__m128d __A
, __m128d __B
, const int __R
)
10412 return (__m128d
) __builtin_ia32_minsd_round ((__v2df
) __A
,
10417 extern __inline __m128
10418 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10419 _mm_min_round_ss (__m128 __A
, __m128 __B
, const int __R
)
10421 return (__m128
) __builtin_ia32_minss_round ((__v4sf
) __A
,
10427 #define _mm_max_round_sd(A, B, C) \
10428 (__m128d)__builtin_ia32_addsd_round(A, B, C)
10430 #define _mm_max_round_ss(A, B, C) \
10431 (__m128)__builtin_ia32_addss_round(A, B, C)
10433 #define _mm_min_round_sd(A, B, C) \
10434 (__m128d)__builtin_ia32_subsd_round(A, B, C)
10436 #define _mm_min_round_ss(A, B, C) \
10437 (__m128)__builtin_ia32_subss_round(A, B, C)
10440 extern __inline __m512d
10441 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10442 _mm512_mask_blend_pd (__mmask8 __U
, __m512d __A
, __m512d __W
)
10444 return (__m512d
) __builtin_ia32_blendmpd_512_mask ((__v8df
) __A
,
10449 extern __inline __m512
10450 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10451 _mm512_mask_blend_ps (__mmask16 __U
, __m512 __A
, __m512 __W
)
10453 return (__m512
) __builtin_ia32_blendmps_512_mask ((__v16sf
) __A
,
10458 extern __inline __m512i
10459 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10460 _mm512_mask_blend_epi64 (__mmask8 __U
, __m512i __A
, __m512i __W
)
10462 return (__m512i
) __builtin_ia32_blendmq_512_mask ((__v8di
) __A
,
10467 extern __inline __m512i
10468 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10469 _mm512_mask_blend_epi32 (__mmask16 __U
, __m512i __A
, __m512i __W
)
10471 return (__m512i
) __builtin_ia32_blendmd_512_mask ((__v16si
) __A
,
10476 #ifdef __OPTIMIZE__
10477 extern __inline __m128d
10478 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10479 _mm_fmadd_round_sd (__m128d __W
, __m128d __A
, __m128d __B
, const int __R
)
10481 return (__m128d
) __builtin_ia32_vfmaddsd3_round ((__v2df
) __W
,
10487 extern __inline __m128
10488 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10489 _mm_fmadd_round_ss (__m128 __W
, __m128 __A
, __m128 __B
, const int __R
)
10491 return (__m128
) __builtin_ia32_vfmaddss3_round ((__v4sf
) __W
,
10497 extern __inline __m128d
10498 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10499 _mm_fmsub_round_sd (__m128d __W
, __m128d __A
, __m128d __B
, const int __R
)
10501 return (__m128d
) __builtin_ia32_vfmaddsd3_round ((__v2df
) __W
,
10507 extern __inline __m128
10508 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10509 _mm_fmsub_round_ss (__m128 __W
, __m128 __A
, __m128 __B
, const int __R
)
10511 return (__m128
) __builtin_ia32_vfmaddss3_round ((__v4sf
) __W
,
10517 extern __inline __m128d
10518 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10519 _mm_fnmadd_round_sd (__m128d __W
, __m128d __A
, __m128d __B
, const int __R
)
10521 return (__m128d
) __builtin_ia32_vfmaddsd3_round ((__v2df
) __W
,
10527 extern __inline __m128
10528 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10529 _mm_fnmadd_round_ss (__m128 __W
, __m128 __A
, __m128 __B
, const int __R
)
10531 return (__m128
) __builtin_ia32_vfmaddss3_round ((__v4sf
) __W
,
10537 extern __inline __m128d
10538 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10539 _mm_fnmsub_round_sd (__m128d __W
, __m128d __A
, __m128d __B
, const int __R
)
10541 return (__m128d
) __builtin_ia32_vfmaddsd3_round ((__v2df
) __W
,
10547 extern __inline __m128
10548 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10549 _mm_fnmsub_round_ss (__m128 __W
, __m128 __A
, __m128 __B
, const int __R
)
10551 return (__m128
) __builtin_ia32_vfmaddss3_round ((__v4sf
) __W
,
10557 #define _mm_fmadd_round_sd(A, B, C, R) \
10558 (__m128d)__builtin_ia32_vfmaddsd3_round(A, B, C, R)
10560 #define _mm_fmadd_round_ss(A, B, C, R) \
10561 (__m128)__builtin_ia32_vfmaddss3_round(A, B, C, R)
10563 #define _mm_fmsub_round_sd(A, B, C, R) \
10564 (__m128d)__builtin_ia32_vfmaddsd3_round(A, B, -(C), R)
10566 #define _mm_fmsub_round_ss(A, B, C, R) \
10567 (__m128)__builtin_ia32_vfmaddss3_round(A, B, -(C), R)
10569 #define _mm_fnmadd_round_sd(A, B, C, R) \
10570 (__m128d)__builtin_ia32_vfmaddsd3_round(A, -(B), C, R)
10572 #define _mm_fnmadd_round_ss(A, B, C, R) \
10573 (__m128)__builtin_ia32_vfmaddss3_round(A, -(B), C, R)
10575 #define _mm_fnmsub_round_sd(A, B, C, R) \
10576 (__m128d)__builtin_ia32_vfmaddsd3_round(A, -(B), -(C), R)
10578 #define _mm_fnmsub_round_ss(A, B, C, R) \
10579 (__m128)__builtin_ia32_vfmaddss3_round(A, -(B), -(C), R)
10582 #ifdef __OPTIMIZE__
10583 extern __inline
int
10584 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10585 _mm_comi_round_ss (__m128 __A
, __m128 __B
, const int __P
, const int __R
)
10587 return __builtin_ia32_vcomiss ((__v4sf
) __A
, (__v4sf
) __B
, __P
, __R
);
10590 extern __inline
int
10591 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10592 _mm_comi_round_sd (__m128d __A
, __m128d __B
, const int __P
, const int __R
)
10594 return __builtin_ia32_vcomisd ((__v2df
) __A
, (__v2df
) __B
, __P
, __R
);
10597 #define _mm_comi_round_ss(A, B, C, D)\
10598 __builtin_ia32_vcomiss(A, B, C, D)
10599 #define _mm_comi_round_sd(A, B, C, D)\
10600 __builtin_ia32_vcomisd(A, B, C, D)
10603 extern __inline __m512d
10604 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10605 _mm512_sqrt_pd (__m512d __A
)
10607 return (__m512d
) __builtin_ia32_sqrtpd512_mask ((__v8df
) __A
,
10609 _mm512_setzero_pd (),
10611 _MM_FROUND_CUR_DIRECTION
);
10614 extern __inline __m512d
10615 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10616 _mm512_mask_sqrt_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
10618 return (__m512d
) __builtin_ia32_sqrtpd512_mask ((__v8df
) __A
,
10621 _MM_FROUND_CUR_DIRECTION
);
10624 extern __inline __m512d
10625 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10626 _mm512_maskz_sqrt_pd (__mmask8 __U
, __m512d __A
)
10628 return (__m512d
) __builtin_ia32_sqrtpd512_mask ((__v8df
) __A
,
10630 _mm512_setzero_pd (),
10632 _MM_FROUND_CUR_DIRECTION
);
10635 extern __inline __m512
10636 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10637 _mm512_sqrt_ps (__m512 __A
)
10639 return (__m512
) __builtin_ia32_sqrtps512_mask ((__v16sf
) __A
,
10641 _mm512_setzero_ps (),
10643 _MM_FROUND_CUR_DIRECTION
);
10646 extern __inline __m512
10647 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10648 _mm512_mask_sqrt_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
10650 return (__m512
) __builtin_ia32_sqrtps512_mask ((__v16sf
) __A
,
10653 _MM_FROUND_CUR_DIRECTION
);
10656 extern __inline __m512
10657 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10658 _mm512_maskz_sqrt_ps (__mmask16 __U
, __m512 __A
)
10660 return (__m512
) __builtin_ia32_sqrtps512_mask ((__v16sf
) __A
,
10662 _mm512_setzero_ps (),
10664 _MM_FROUND_CUR_DIRECTION
);
10667 extern __inline __m512d
10668 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10669 _mm512_add_pd (__m512d __A
, __m512d __B
)
10671 return (__m512d
) __builtin_ia32_addpd512_mask ((__v8df
) __A
,
10674 _mm512_setzero_pd (),
10676 _MM_FROUND_CUR_DIRECTION
);
10679 extern __inline __m512d
10680 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10681 _mm512_mask_add_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
10683 return (__m512d
) __builtin_ia32_addpd512_mask ((__v8df
) __A
,
10687 _MM_FROUND_CUR_DIRECTION
);
10690 extern __inline __m512d
10691 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10692 _mm512_maskz_add_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
10694 return (__m512d
) __builtin_ia32_addpd512_mask ((__v8df
) __A
,
10697 _mm512_setzero_pd (),
10699 _MM_FROUND_CUR_DIRECTION
);
10702 extern __inline __m512
10703 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10704 _mm512_add_ps (__m512 __A
, __m512 __B
)
10706 return (__m512
) __builtin_ia32_addps512_mask ((__v16sf
) __A
,
10709 _mm512_setzero_ps (),
10711 _MM_FROUND_CUR_DIRECTION
);
10714 extern __inline __m512
10715 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10716 _mm512_mask_add_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
10718 return (__m512
) __builtin_ia32_addps512_mask ((__v16sf
) __A
,
10722 _MM_FROUND_CUR_DIRECTION
);
10725 extern __inline __m512
10726 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10727 _mm512_maskz_add_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
10729 return (__m512
) __builtin_ia32_addps512_mask ((__v16sf
) __A
,
10732 _mm512_setzero_ps (),
10734 _MM_FROUND_CUR_DIRECTION
);
10737 extern __inline __m512d
10738 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10739 _mm512_sub_pd (__m512d __A
, __m512d __B
)
10741 return (__m512d
) __builtin_ia32_subpd512_mask ((__v8df
) __A
,
10744 _mm512_setzero_pd (),
10746 _MM_FROUND_CUR_DIRECTION
);
10749 extern __inline __m512d
10750 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10751 _mm512_mask_sub_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
10753 return (__m512d
) __builtin_ia32_subpd512_mask ((__v8df
) __A
,
10757 _MM_FROUND_CUR_DIRECTION
);
10760 extern __inline __m512d
10761 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10762 _mm512_maskz_sub_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
10764 return (__m512d
) __builtin_ia32_subpd512_mask ((__v8df
) __A
,
10767 _mm512_setzero_pd (),
10769 _MM_FROUND_CUR_DIRECTION
);
10772 extern __inline __m512
10773 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10774 _mm512_sub_ps (__m512 __A
, __m512 __B
)
10776 return (__m512
) __builtin_ia32_subps512_mask ((__v16sf
) __A
,
10779 _mm512_setzero_ps (),
10781 _MM_FROUND_CUR_DIRECTION
);
10784 extern __inline __m512
10785 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10786 _mm512_mask_sub_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
10788 return (__m512
) __builtin_ia32_subps512_mask ((__v16sf
) __A
,
10792 _MM_FROUND_CUR_DIRECTION
);
10795 extern __inline __m512
10796 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10797 _mm512_maskz_sub_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
10799 return (__m512
) __builtin_ia32_subps512_mask ((__v16sf
) __A
,
10802 _mm512_setzero_ps (),
10804 _MM_FROUND_CUR_DIRECTION
);
10807 extern __inline __m512d
10808 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10809 _mm512_mul_pd (__m512d __A
, __m512d __B
)
10811 return (__m512d
) __builtin_ia32_mulpd512_mask ((__v8df
) __A
,
10814 _mm512_setzero_pd (),
10816 _MM_FROUND_CUR_DIRECTION
);
10819 extern __inline __m512d
10820 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10821 _mm512_mask_mul_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
10823 return (__m512d
) __builtin_ia32_mulpd512_mask ((__v8df
) __A
,
10827 _MM_FROUND_CUR_DIRECTION
);
10830 extern __inline __m512d
10831 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10832 _mm512_maskz_mul_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
10834 return (__m512d
) __builtin_ia32_mulpd512_mask ((__v8df
) __A
,
10837 _mm512_setzero_pd (),
10839 _MM_FROUND_CUR_DIRECTION
);
10842 extern __inline __m512
10843 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10844 _mm512_mul_ps (__m512 __A
, __m512 __B
)
10846 return (__m512
) __builtin_ia32_mulps512_mask ((__v16sf
) __A
,
10849 _mm512_setzero_ps (),
10851 _MM_FROUND_CUR_DIRECTION
);
10854 extern __inline __m512
10855 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10856 _mm512_mask_mul_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
10858 return (__m512
) __builtin_ia32_mulps512_mask ((__v16sf
) __A
,
10862 _MM_FROUND_CUR_DIRECTION
);
10865 extern __inline __m512
10866 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10867 _mm512_maskz_mul_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
10869 return (__m512
) __builtin_ia32_mulps512_mask ((__v16sf
) __A
,
10872 _mm512_setzero_ps (),
10874 _MM_FROUND_CUR_DIRECTION
);
10877 extern __inline __m512d
10878 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10879 _mm512_div_pd (__m512d __M
, __m512d __V
)
10881 return (__m512d
) __builtin_ia32_divpd512_mask ((__v8df
) __M
,
10884 _mm512_setzero_pd (),
10886 _MM_FROUND_CUR_DIRECTION
);
10889 extern __inline __m512d
10890 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10891 _mm512_mask_div_pd (__m512d __W
, __mmask8 __U
, __m512d __M
, __m512d __V
)
10893 return (__m512d
) __builtin_ia32_divpd512_mask ((__v8df
) __M
,
10897 _MM_FROUND_CUR_DIRECTION
);
10900 extern __inline __m512d
10901 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10902 _mm512_maskz_div_pd (__mmask8 __U
, __m512d __M
, __m512d __V
)
10904 return (__m512d
) __builtin_ia32_divpd512_mask ((__v8df
) __M
,
10907 _mm512_setzero_pd (),
10909 _MM_FROUND_CUR_DIRECTION
);
10912 extern __inline __m512
10913 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10914 _mm512_div_ps (__m512 __A
, __m512 __B
)
10916 return (__m512
) __builtin_ia32_divps512_mask ((__v16sf
) __A
,
10919 _mm512_setzero_ps (),
10921 _MM_FROUND_CUR_DIRECTION
);
10924 extern __inline __m512
10925 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10926 _mm512_mask_div_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
10928 return (__m512
) __builtin_ia32_divps512_mask ((__v16sf
) __A
,
10932 _MM_FROUND_CUR_DIRECTION
);
10935 extern __inline __m512
10936 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10937 _mm512_maskz_div_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
10939 return (__m512
) __builtin_ia32_divps512_mask ((__v16sf
) __A
,
10942 _mm512_setzero_ps (),
10944 _MM_FROUND_CUR_DIRECTION
);
10947 extern __inline __m512d
10948 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10949 _mm512_max_pd (__m512d __A
, __m512d __B
)
10951 return (__m512d
) __builtin_ia32_maxpd512_mask ((__v8df
) __A
,
10954 _mm512_setzero_pd (),
10956 _MM_FROUND_CUR_DIRECTION
);
10959 extern __inline __m512d
10960 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10961 _mm512_mask_max_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
10963 return (__m512d
) __builtin_ia32_maxpd512_mask ((__v8df
) __A
,
10967 _MM_FROUND_CUR_DIRECTION
);
10970 extern __inline __m512d
10971 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10972 _mm512_maskz_max_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
10974 return (__m512d
) __builtin_ia32_maxpd512_mask ((__v8df
) __A
,
10977 _mm512_setzero_pd (),
10979 _MM_FROUND_CUR_DIRECTION
);
10982 extern __inline __m512
10983 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10984 _mm512_max_ps (__m512 __A
, __m512 __B
)
10986 return (__m512
) __builtin_ia32_maxps512_mask ((__v16sf
) __A
,
10989 _mm512_setzero_ps (),
10991 _MM_FROUND_CUR_DIRECTION
);
10994 extern __inline __m512
10995 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10996 _mm512_mask_max_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
10998 return (__m512
) __builtin_ia32_maxps512_mask ((__v16sf
) __A
,
11002 _MM_FROUND_CUR_DIRECTION
);
11005 extern __inline __m512
11006 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11007 _mm512_maskz_max_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
11009 return (__m512
) __builtin_ia32_maxps512_mask ((__v16sf
) __A
,
11012 _mm512_setzero_ps (),
11014 _MM_FROUND_CUR_DIRECTION
);
11017 extern __inline __m512d
11018 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11019 _mm512_min_pd (__m512d __A
, __m512d __B
)
11021 return (__m512d
) __builtin_ia32_minpd512_mask ((__v8df
) __A
,
11024 _mm512_setzero_pd (),
11026 _MM_FROUND_CUR_DIRECTION
);
11029 extern __inline __m512d
11030 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11031 _mm512_mask_min_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
11033 return (__m512d
) __builtin_ia32_minpd512_mask ((__v8df
) __A
,
11037 _MM_FROUND_CUR_DIRECTION
);
11040 extern __inline __m512d
11041 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11042 _mm512_maskz_min_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
11044 return (__m512d
) __builtin_ia32_minpd512_mask ((__v8df
) __A
,
11047 _mm512_setzero_pd (),
11049 _MM_FROUND_CUR_DIRECTION
);
11052 extern __inline __m512
11053 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11054 _mm512_min_ps (__m512 __A
, __m512 __B
)
11056 return (__m512
) __builtin_ia32_minps512_mask ((__v16sf
) __A
,
11059 _mm512_setzero_ps (),
11061 _MM_FROUND_CUR_DIRECTION
);
11064 extern __inline __m512
11065 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11066 _mm512_mask_min_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
11068 return (__m512
) __builtin_ia32_minps512_mask ((__v16sf
) __A
,
11072 _MM_FROUND_CUR_DIRECTION
);
11075 extern __inline __m512
11076 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11077 _mm512_maskz_min_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
11079 return (__m512
) __builtin_ia32_minps512_mask ((__v16sf
) __A
,
11082 _mm512_setzero_ps (),
11084 _MM_FROUND_CUR_DIRECTION
);
11087 extern __inline __m512d
11088 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11089 _mm512_scalef_pd (__m512d __A
, __m512d __B
)
11091 return (__m512d
) __builtin_ia32_scalefpd512_mask ((__v8df
) __A
,
11094 _mm512_setzero_pd (),
11096 _MM_FROUND_CUR_DIRECTION
);
11099 extern __inline __m512d
11100 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11101 _mm512_mask_scalef_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
11103 return (__m512d
) __builtin_ia32_scalefpd512_mask ((__v8df
) __A
,
11107 _MM_FROUND_CUR_DIRECTION
);
11110 extern __inline __m512d
11111 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11112 _mm512_maskz_scalef_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
11114 return (__m512d
) __builtin_ia32_scalefpd512_mask ((__v8df
) __A
,
11117 _mm512_setzero_pd (),
11119 _MM_FROUND_CUR_DIRECTION
);
11122 extern __inline __m512
11123 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11124 _mm512_scalef_ps (__m512 __A
, __m512 __B
)
11126 return (__m512
) __builtin_ia32_scalefps512_mask ((__v16sf
) __A
,
11129 _mm512_setzero_ps (),
11131 _MM_FROUND_CUR_DIRECTION
);
11134 extern __inline __m512
11135 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11136 _mm512_mask_scalef_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
11138 return (__m512
) __builtin_ia32_scalefps512_mask ((__v16sf
) __A
,
11142 _MM_FROUND_CUR_DIRECTION
);
11145 extern __inline __m512
11146 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11147 _mm512_maskz_scalef_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
11149 return (__m512
) __builtin_ia32_scalefps512_mask ((__v16sf
) __A
,
11152 _mm512_setzero_ps (),
11154 _MM_FROUND_CUR_DIRECTION
);
11157 extern __inline __m128d
11158 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11159 _mm_scalef_sd (__m128d __A
, __m128d __B
)
11161 return (__m128d
) __builtin_ia32_scalefsd_round ((__v2df
) __A
,
11163 _MM_FROUND_CUR_DIRECTION
);
11166 extern __inline __m128
11167 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11168 _mm_scalef_ss (__m128 __A
, __m128 __B
)
11170 return (__m128
) __builtin_ia32_scalefss_round ((__v4sf
) __A
,
11172 _MM_FROUND_CUR_DIRECTION
);
11175 extern __inline __m512d
11176 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11177 _mm512_fmadd_pd (__m512d __A
, __m512d __B
, __m512d __C
)
11179 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
11183 _MM_FROUND_CUR_DIRECTION
);
11186 extern __inline __m512d
11187 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11188 _mm512_mask_fmadd_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
11190 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
11194 _MM_FROUND_CUR_DIRECTION
);
11197 extern __inline __m512d
11198 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11199 _mm512_mask3_fmadd_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
11201 return (__m512d
) __builtin_ia32_vfmaddpd512_mask3 ((__v8df
) __A
,
11205 _MM_FROUND_CUR_DIRECTION
);
11208 extern __inline __m512d
11209 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11210 _mm512_maskz_fmadd_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
11212 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz ((__v8df
) __A
,
11216 _MM_FROUND_CUR_DIRECTION
);
11219 extern __inline __m512
11220 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11221 _mm512_fmadd_ps (__m512 __A
, __m512 __B
, __m512 __C
)
11223 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
11227 _MM_FROUND_CUR_DIRECTION
);
11230 extern __inline __m512
11231 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11232 _mm512_mask_fmadd_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
11234 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
11238 _MM_FROUND_CUR_DIRECTION
);
11241 extern __inline __m512
11242 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11243 _mm512_mask3_fmadd_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
11245 return (__m512
) __builtin_ia32_vfmaddps512_mask3 ((__v16sf
) __A
,
11249 _MM_FROUND_CUR_DIRECTION
);
11252 extern __inline __m512
11253 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11254 _mm512_maskz_fmadd_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
11256 return (__m512
) __builtin_ia32_vfmaddps512_maskz ((__v16sf
) __A
,
11260 _MM_FROUND_CUR_DIRECTION
);
11263 extern __inline __m512d
11264 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11265 _mm512_fmsub_pd (__m512d __A
, __m512d __B
, __m512d __C
)
11267 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
11271 _MM_FROUND_CUR_DIRECTION
);
11274 extern __inline __m512d
11275 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11276 _mm512_mask_fmsub_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
11278 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
11282 _MM_FROUND_CUR_DIRECTION
);
11285 extern __inline __m512d
11286 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11287 _mm512_mask3_fmsub_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
11289 return (__m512d
) __builtin_ia32_vfmsubpd512_mask3 ((__v8df
) __A
,
11293 _MM_FROUND_CUR_DIRECTION
);
11296 extern __inline __m512d
11297 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11298 _mm512_maskz_fmsub_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
11300 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz ((__v8df
) __A
,
11304 _MM_FROUND_CUR_DIRECTION
);
11307 extern __inline __m512
11308 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11309 _mm512_fmsub_ps (__m512 __A
, __m512 __B
, __m512 __C
)
11311 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
11315 _MM_FROUND_CUR_DIRECTION
);
11318 extern __inline __m512
11319 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11320 _mm512_mask_fmsub_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
11322 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
11326 _MM_FROUND_CUR_DIRECTION
);
11329 extern __inline __m512
11330 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11331 _mm512_mask3_fmsub_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
11333 return (__m512
) __builtin_ia32_vfmsubps512_mask3 ((__v16sf
) __A
,
11337 _MM_FROUND_CUR_DIRECTION
);
11340 extern __inline __m512
11341 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11342 _mm512_maskz_fmsub_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
11344 return (__m512
) __builtin_ia32_vfmaddps512_maskz ((__v16sf
) __A
,
11348 _MM_FROUND_CUR_DIRECTION
);
11351 extern __inline __m512d
11352 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11353 _mm512_fmaddsub_pd (__m512d __A
, __m512d __B
, __m512d __C
)
11355 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
11359 _MM_FROUND_CUR_DIRECTION
);
11362 extern __inline __m512d
11363 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11364 _mm512_mask_fmaddsub_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
11366 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
11370 _MM_FROUND_CUR_DIRECTION
);
11373 extern __inline __m512d
11374 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11375 _mm512_mask3_fmaddsub_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
11377 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask3 ((__v8df
) __A
,
11381 _MM_FROUND_CUR_DIRECTION
);
11384 extern __inline __m512d
11385 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11386 _mm512_maskz_fmaddsub_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
11388 return (__m512d
) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df
) __A
,
11392 _MM_FROUND_CUR_DIRECTION
);
11395 extern __inline __m512
11396 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11397 _mm512_fmaddsub_ps (__m512 __A
, __m512 __B
, __m512 __C
)
11399 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
11403 _MM_FROUND_CUR_DIRECTION
);
11406 extern __inline __m512
11407 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11408 _mm512_mask_fmaddsub_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
11410 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
11414 _MM_FROUND_CUR_DIRECTION
);
11417 extern __inline __m512
11418 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11419 _mm512_mask3_fmaddsub_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
11421 return (__m512
) __builtin_ia32_vfmaddsubps512_mask3 ((__v16sf
) __A
,
11425 _MM_FROUND_CUR_DIRECTION
);
11428 extern __inline __m512
11429 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11430 _mm512_maskz_fmaddsub_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
11432 return (__m512
) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf
) __A
,
11436 _MM_FROUND_CUR_DIRECTION
);
11439 extern __inline __m512d
11440 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11441 _mm512_fmsubadd_pd (__m512d __A
, __m512d __B
, __m512d __C
)
11443 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
11447 _MM_FROUND_CUR_DIRECTION
);
11450 extern __inline __m512d
11451 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11452 _mm512_mask_fmsubadd_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
11454 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
11458 _MM_FROUND_CUR_DIRECTION
);
11461 extern __inline __m512d
11462 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11463 _mm512_mask3_fmsubadd_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
11465 return (__m512d
) __builtin_ia32_vfmsubaddpd512_mask3 ((__v8df
) __A
,
11469 _MM_FROUND_CUR_DIRECTION
);
11472 extern __inline __m512d
11473 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11474 _mm512_maskz_fmsubadd_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
11476 return (__m512d
) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df
) __A
,
11480 _MM_FROUND_CUR_DIRECTION
);
11483 extern __inline __m512
11484 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11485 _mm512_fmsubadd_ps (__m512 __A
, __m512 __B
, __m512 __C
)
11487 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
11491 _MM_FROUND_CUR_DIRECTION
);
11494 extern __inline __m512
11495 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11496 _mm512_mask_fmsubadd_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
11498 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
11502 _MM_FROUND_CUR_DIRECTION
);
11505 extern __inline __m512
11506 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11507 _mm512_mask3_fmsubadd_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
11509 return (__m512
) __builtin_ia32_vfmsubaddps512_mask3 ((__v16sf
) __A
,
11513 _MM_FROUND_CUR_DIRECTION
);
11516 extern __inline __m512
11517 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11518 _mm512_maskz_fmsubadd_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
11520 return (__m512
) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf
) __A
,
11524 _MM_FROUND_CUR_DIRECTION
);
11527 extern __inline __m512d
11528 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11529 _mm512_fnmadd_pd (__m512d __A
, __m512d __B
, __m512d __C
)
11531 return (__m512d
) __builtin_ia32_vfmaddpd512_mask (-(__v8df
) __A
,
11535 _MM_FROUND_CUR_DIRECTION
);
11538 extern __inline __m512d
11539 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11540 _mm512_mask_fnmadd_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
11542 return (__m512d
) __builtin_ia32_vfnmaddpd512_mask ((__v8df
) __A
,
11546 _MM_FROUND_CUR_DIRECTION
);
11549 extern __inline __m512d
11550 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11551 _mm512_mask3_fnmadd_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
11553 return (__m512d
) __builtin_ia32_vfmaddpd512_mask3 (-(__v8df
) __A
,
11557 _MM_FROUND_CUR_DIRECTION
);
11560 extern __inline __m512d
11561 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11562 _mm512_maskz_fnmadd_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
11564 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz (-(__v8df
) __A
,
11568 _MM_FROUND_CUR_DIRECTION
);
11571 extern __inline __m512
11572 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11573 _mm512_fnmadd_ps (__m512 __A
, __m512 __B
, __m512 __C
)
11575 return (__m512
) __builtin_ia32_vfmaddps512_mask (-(__v16sf
) __A
,
11579 _MM_FROUND_CUR_DIRECTION
);
11582 extern __inline __m512
11583 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11584 _mm512_mask_fnmadd_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
11586 return (__m512
) __builtin_ia32_vfnmaddps512_mask ((__v16sf
) __A
,
11590 _MM_FROUND_CUR_DIRECTION
);
11593 extern __inline __m512
11594 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11595 _mm512_mask3_fnmadd_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
11597 return (__m512
) __builtin_ia32_vfmaddps512_mask3 (-(__v16sf
) __A
,
11601 _MM_FROUND_CUR_DIRECTION
);
11604 extern __inline __m512
11605 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11606 _mm512_maskz_fnmadd_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
11608 return (__m512
) __builtin_ia32_vfmaddps512_maskz (-(__v16sf
) __A
,
11612 _MM_FROUND_CUR_DIRECTION
);
11615 extern __inline __m512d
11616 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11617 _mm512_fnmsub_pd (__m512d __A
, __m512d __B
, __m512d __C
)
11619 return (__m512d
) __builtin_ia32_vfmaddpd512_mask (-(__v8df
) __A
,
11623 _MM_FROUND_CUR_DIRECTION
);
11626 extern __inline __m512d
11627 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11628 _mm512_mask_fnmsub_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
11630 return (__m512d
) __builtin_ia32_vfnmsubpd512_mask ((__v8df
) __A
,
11634 _MM_FROUND_CUR_DIRECTION
);
11637 extern __inline __m512d
11638 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11639 _mm512_mask3_fnmsub_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
11641 return (__m512d
) __builtin_ia32_vfnmsubpd512_mask3 ((__v8df
) __A
,
11645 _MM_FROUND_CUR_DIRECTION
);
11648 extern __inline __m512d
11649 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11650 _mm512_maskz_fnmsub_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
11652 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz (-(__v8df
) __A
,
11656 _MM_FROUND_CUR_DIRECTION
);
11659 extern __inline __m512
11660 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11661 _mm512_fnmsub_ps (__m512 __A
, __m512 __B
, __m512 __C
)
11663 return (__m512
) __builtin_ia32_vfmaddps512_mask (-(__v16sf
) __A
,
11667 _MM_FROUND_CUR_DIRECTION
);
11670 extern __inline __m512
11671 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11672 _mm512_mask_fnmsub_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
11674 return (__m512
) __builtin_ia32_vfnmsubps512_mask ((__v16sf
) __A
,
11678 _MM_FROUND_CUR_DIRECTION
);
11681 extern __inline __m512
11682 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11683 _mm512_mask3_fnmsub_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
11685 return (__m512
) __builtin_ia32_vfnmsubps512_mask3 ((__v16sf
) __A
,
11689 _MM_FROUND_CUR_DIRECTION
);
11692 extern __inline __m512
11693 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11694 _mm512_maskz_fnmsub_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
11696 return (__m512
) __builtin_ia32_vfmaddps512_maskz (-(__v16sf
) __A
,
11700 _MM_FROUND_CUR_DIRECTION
);
11703 extern __inline __m256i
11704 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11705 _mm512_cvttpd_epi32 (__m512d __A
)
11707 return (__m256i
) __builtin_ia32_cvttpd2dq512_mask ((__v8df
) __A
,
11709 _mm256_setzero_si256 (),
11711 _MM_FROUND_CUR_DIRECTION
);
11714 extern __inline __m256i
11715 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11716 _mm512_mask_cvttpd_epi32 (__m256i __W
, __mmask8 __U
, __m512d __A
)
11718 return (__m256i
) __builtin_ia32_cvttpd2dq512_mask ((__v8df
) __A
,
11721 _MM_FROUND_CUR_DIRECTION
);
11724 extern __inline __m256i
11725 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11726 _mm512_maskz_cvttpd_epi32 (__mmask8 __U
, __m512d __A
)
11728 return (__m256i
) __builtin_ia32_cvttpd2dq512_mask ((__v8df
) __A
,
11730 _mm256_setzero_si256 (),
11732 _MM_FROUND_CUR_DIRECTION
);
11735 extern __inline __m256i
11736 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11737 _mm512_cvttpd_epu32 (__m512d __A
)
11739 return (__m256i
) __builtin_ia32_cvttpd2udq512_mask ((__v8df
) __A
,
11741 _mm256_setzero_si256 (),
11743 _MM_FROUND_CUR_DIRECTION
);
11746 extern __inline __m256i
11747 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11748 _mm512_mask_cvttpd_epu32 (__m256i __W
, __mmask8 __U
, __m512d __A
)
11750 return (__m256i
) __builtin_ia32_cvttpd2udq512_mask ((__v8df
) __A
,
11753 _MM_FROUND_CUR_DIRECTION
);
11756 extern __inline __m256i
11757 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11758 _mm512_maskz_cvttpd_epu32 (__mmask8 __U
, __m512d __A
)
11760 return (__m256i
) __builtin_ia32_cvttpd2udq512_mask ((__v8df
) __A
,
11762 _mm256_setzero_si256 (),
11764 _MM_FROUND_CUR_DIRECTION
);
11767 extern __inline __m256i
11768 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11769 _mm512_cvtpd_epi32 (__m512d __A
)
11771 return (__m256i
) __builtin_ia32_cvtpd2dq512_mask ((__v8df
) __A
,
11773 _mm256_setzero_si256 (),
11775 _MM_FROUND_CUR_DIRECTION
);
11778 extern __inline __m256i
11779 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11780 _mm512_mask_cvtpd_epi32 (__m256i __W
, __mmask8 __U
, __m512d __A
)
11782 return (__m256i
) __builtin_ia32_cvtpd2dq512_mask ((__v8df
) __A
,
11785 _MM_FROUND_CUR_DIRECTION
);
11788 extern __inline __m256i
11789 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11790 _mm512_maskz_cvtpd_epi32 (__mmask8 __U
, __m512d __A
)
11792 return (__m256i
) __builtin_ia32_cvtpd2dq512_mask ((__v8df
) __A
,
11794 _mm256_setzero_si256 (),
11796 _MM_FROUND_CUR_DIRECTION
);
11799 extern __inline __m256i
11800 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11801 _mm512_cvtpd_epu32 (__m512d __A
)
11803 return (__m256i
) __builtin_ia32_cvtpd2udq512_mask ((__v8df
) __A
,
11805 _mm256_setzero_si256 (),
11807 _MM_FROUND_CUR_DIRECTION
);
11810 extern __inline __m256i
11811 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11812 _mm512_mask_cvtpd_epu32 (__m256i __W
, __mmask8 __U
, __m512d __A
)
11814 return (__m256i
) __builtin_ia32_cvtpd2udq512_mask ((__v8df
) __A
,
11817 _MM_FROUND_CUR_DIRECTION
);
11820 extern __inline __m256i
11821 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11822 _mm512_maskz_cvtpd_epu32 (__mmask8 __U
, __m512d __A
)
11824 return (__m256i
) __builtin_ia32_cvtpd2udq512_mask ((__v8df
) __A
,
11826 _mm256_setzero_si256 (),
11828 _MM_FROUND_CUR_DIRECTION
);
11831 extern __inline __m512i
11832 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11833 _mm512_cvttps_epi32 (__m512 __A
)
11835 return (__m512i
) __builtin_ia32_cvttps2dq512_mask ((__v16sf
) __A
,
11837 _mm512_setzero_si512 (),
11839 _MM_FROUND_CUR_DIRECTION
);
11842 extern __inline __m512i
11843 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11844 _mm512_mask_cvttps_epi32 (__m512i __W
, __mmask16 __U
, __m512 __A
)
11846 return (__m512i
) __builtin_ia32_cvttps2dq512_mask ((__v16sf
) __A
,
11849 _MM_FROUND_CUR_DIRECTION
);
11852 extern __inline __m512i
11853 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11854 _mm512_maskz_cvttps_epi32 (__mmask16 __U
, __m512 __A
)
11856 return (__m512i
) __builtin_ia32_cvttps2dq512_mask ((__v16sf
) __A
,
11858 _mm512_setzero_si512 (),
11860 _MM_FROUND_CUR_DIRECTION
);
11863 extern __inline __m512i
11864 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11865 _mm512_cvttps_epu32 (__m512 __A
)
11867 return (__m512i
) __builtin_ia32_cvttps2udq512_mask ((__v16sf
) __A
,
11869 _mm512_setzero_si512 (),
11871 _MM_FROUND_CUR_DIRECTION
);
11874 extern __inline __m512i
11875 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11876 _mm512_mask_cvttps_epu32 (__m512i __W
, __mmask16 __U
, __m512 __A
)
11878 return (__m512i
) __builtin_ia32_cvttps2udq512_mask ((__v16sf
) __A
,
11881 _MM_FROUND_CUR_DIRECTION
);
11884 extern __inline __m512i
11885 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11886 _mm512_maskz_cvttps_epu32 (__mmask16 __U
, __m512 __A
)
11888 return (__m512i
) __builtin_ia32_cvttps2udq512_mask ((__v16sf
) __A
,
11890 _mm512_setzero_si512 (),
11892 _MM_FROUND_CUR_DIRECTION
);
11895 extern __inline __m512i
11896 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11897 _mm512_cvtps_epi32 (__m512 __A
)
11899 return (__m512i
) __builtin_ia32_cvtps2dq512_mask ((__v16sf
) __A
,
11901 _mm512_setzero_si512 (),
11903 _MM_FROUND_CUR_DIRECTION
);
11906 extern __inline __m512i
11907 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11908 _mm512_mask_cvtps_epi32 (__m512i __W
, __mmask16 __U
, __m512 __A
)
11910 return (__m512i
) __builtin_ia32_cvtps2dq512_mask ((__v16sf
) __A
,
11913 _MM_FROUND_CUR_DIRECTION
);
11916 extern __inline __m512i
11917 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11918 _mm512_maskz_cvtps_epi32 (__mmask16 __U
, __m512 __A
)
11920 return (__m512i
) __builtin_ia32_cvtps2dq512_mask ((__v16sf
) __A
,
11922 _mm512_setzero_si512 (),
11924 _MM_FROUND_CUR_DIRECTION
);
11927 extern __inline __m512i
11928 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11929 _mm512_cvtps_epu32 (__m512 __A
)
11931 return (__m512i
) __builtin_ia32_cvtps2udq512_mask ((__v16sf
) __A
,
11933 _mm512_setzero_si512 (),
11935 _MM_FROUND_CUR_DIRECTION
);
11938 extern __inline __m512i
11939 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11940 _mm512_mask_cvtps_epu32 (__m512i __W
, __mmask16 __U
, __m512 __A
)
11942 return (__m512i
) __builtin_ia32_cvtps2udq512_mask ((__v16sf
) __A
,
11945 _MM_FROUND_CUR_DIRECTION
);
11948 extern __inline __m512i
11949 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11950 _mm512_maskz_cvtps_epu32 (__mmask16 __U
, __m512 __A
)
11952 return (__m512i
) __builtin_ia32_cvtps2udq512_mask ((__v16sf
) __A
,
11954 _mm512_setzero_si512 (),
11956 _MM_FROUND_CUR_DIRECTION
);
11960 extern __inline __m128
11961 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11962 _mm_cvtu64_ss (__m128 __A
, unsigned long long __B
)
11964 return (__m128
) __builtin_ia32_cvtusi2ss64 ((__v4sf
) __A
, __B
,
11965 _MM_FROUND_CUR_DIRECTION
);
11968 extern __inline __m128d
11969 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11970 _mm_cvtu64_sd (__m128d __A
, unsigned long long __B
)
11972 return (__m128d
) __builtin_ia32_cvtusi2sd64 ((__v2df
) __A
, __B
,
11973 _MM_FROUND_CUR_DIRECTION
);
11977 extern __inline __m128
11978 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11979 _mm_cvtu32_ss (__m128 __A
, unsigned __B
)
11981 return (__m128
) __builtin_ia32_cvtusi2ss32 ((__v4sf
) __A
, __B
,
11982 _MM_FROUND_CUR_DIRECTION
);
11985 extern __inline __m512
11986 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11987 _mm512_cvtepi32_ps (__m512i __A
)
11989 return (__m512
) __builtin_ia32_cvtdq2ps512_mask ((__v16si
) __A
,
11991 _mm512_setzero_ps (),
11993 _MM_FROUND_CUR_DIRECTION
);
11996 extern __inline __m512
11997 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11998 _mm512_mask_cvtepi32_ps (__m512 __W
, __mmask16 __U
, __m512i __A
)
12000 return (__m512
) __builtin_ia32_cvtdq2ps512_mask ((__v16si
) __A
,
12003 _MM_FROUND_CUR_DIRECTION
);
12006 extern __inline __m512
12007 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12008 _mm512_maskz_cvtepi32_ps (__mmask16 __U
, __m512i __A
)
12010 return (__m512
) __builtin_ia32_cvtdq2ps512_mask ((__v16si
) __A
,
12012 _mm512_setzero_ps (),
12014 _MM_FROUND_CUR_DIRECTION
);
12017 extern __inline __m512
12018 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12019 _mm512_cvtepu32_ps (__m512i __A
)
12021 return (__m512
) __builtin_ia32_cvtudq2ps512_mask ((__v16si
) __A
,
12023 _mm512_setzero_ps (),
12025 _MM_FROUND_CUR_DIRECTION
);
12028 extern __inline __m512
12029 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12030 _mm512_mask_cvtepu32_ps (__m512 __W
, __mmask16 __U
, __m512i __A
)
12032 return (__m512
) __builtin_ia32_cvtudq2ps512_mask ((__v16si
) __A
,
12035 _MM_FROUND_CUR_DIRECTION
);
12038 extern __inline __m512
12039 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12040 _mm512_maskz_cvtepu32_ps (__mmask16 __U
, __m512i __A
)
12042 return (__m512
) __builtin_ia32_cvtudq2ps512_mask ((__v16si
) __A
,
12044 _mm512_setzero_ps (),
12046 _MM_FROUND_CUR_DIRECTION
);
12049 #ifdef __OPTIMIZE__
12050 extern __inline __m512d
12051 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12052 _mm512_fixupimm_pd (__m512d __A
, __m512d __B
, __m512i __C
, const int __imm
)
12054 return (__m512d
) __builtin_ia32_fixupimmpd512_mask ((__v8df
) __A
,
12059 _MM_FROUND_CUR_DIRECTION
);
12062 extern __inline __m512d
12063 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12064 _mm512_mask_fixupimm_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
12065 __m512i __C
, const int __imm
)
12067 return (__m512d
) __builtin_ia32_fixupimmpd512_mask ((__v8df
) __A
,
12072 _MM_FROUND_CUR_DIRECTION
);
12075 extern __inline __m512d
12076 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12077 _mm512_maskz_fixupimm_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
12078 __m512i __C
, const int __imm
)
12080 return (__m512d
) __builtin_ia32_fixupimmpd512_maskz ((__v8df
) __A
,
12085 _MM_FROUND_CUR_DIRECTION
);
12088 extern __inline __m512
12089 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12090 _mm512_fixupimm_ps (__m512 __A
, __m512 __B
, __m512i __C
, const int __imm
)
12092 return (__m512
) __builtin_ia32_fixupimmps512_mask ((__v16sf
) __A
,
12097 _MM_FROUND_CUR_DIRECTION
);
12100 extern __inline __m512
12101 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12102 _mm512_mask_fixupimm_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
12103 __m512i __C
, const int __imm
)
12105 return (__m512
) __builtin_ia32_fixupimmps512_mask ((__v16sf
) __A
,
12110 _MM_FROUND_CUR_DIRECTION
);
12113 extern __inline __m512
12114 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12115 _mm512_maskz_fixupimm_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
12116 __m512i __C
, const int __imm
)
12118 return (__m512
) __builtin_ia32_fixupimmps512_maskz ((__v16sf
) __A
,
12123 _MM_FROUND_CUR_DIRECTION
);
12126 extern __inline __m128d
12127 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12128 _mm_fixupimm_sd (__m128d __A
, __m128d __B
, __m128i __C
, const int __imm
)
12130 return (__m128d
) __builtin_ia32_fixupimmsd_mask ((__v2df
) __A
,
12132 (__v2di
) __C
, __imm
,
12134 _MM_FROUND_CUR_DIRECTION
);
12137 extern __inline __m128d
12138 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12139 _mm_mask_fixupimm_sd (__m128d __A
, __mmask8 __U
, __m128d __B
,
12140 __m128i __C
, const int __imm
)
12142 return (__m128d
) __builtin_ia32_fixupimmsd_mask ((__v2df
) __A
,
12144 (__v2di
) __C
, __imm
,
12146 _MM_FROUND_CUR_DIRECTION
);
12149 extern __inline __m128d
12150 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12151 _mm_maskz_fixupimm_sd (__mmask8 __U
, __m128d __A
, __m128d __B
,
12152 __m128i __C
, const int __imm
)
12154 return (__m128d
) __builtin_ia32_fixupimmsd_maskz ((__v2df
) __A
,
12159 _MM_FROUND_CUR_DIRECTION
);
12162 extern __inline __m128
12163 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12164 _mm_fixupimm_ss (__m128 __A
, __m128 __B
, __m128i __C
, const int __imm
)
12166 return (__m128
) __builtin_ia32_fixupimmss_mask ((__v4sf
) __A
,
12168 (__v4si
) __C
, __imm
,
12170 _MM_FROUND_CUR_DIRECTION
);
12173 extern __inline __m128
12174 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12175 _mm_mask_fixupimm_ss (__m128 __A
, __mmask8 __U
, __m128 __B
,
12176 __m128i __C
, const int __imm
)
12178 return (__m128
) __builtin_ia32_fixupimmss_mask ((__v4sf
) __A
,
12180 (__v4si
) __C
, __imm
,
12182 _MM_FROUND_CUR_DIRECTION
);
12185 extern __inline __m128
12186 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12187 _mm_maskz_fixupimm_ss (__mmask8 __U
, __m128 __A
, __m128 __B
,
12188 __m128i __C
, const int __imm
)
12190 return (__m128
) __builtin_ia32_fixupimmss_maskz ((__v4sf
) __A
,
12192 (__v4si
) __C
, __imm
,
12194 _MM_FROUND_CUR_DIRECTION
);
12197 #define _mm512_fixupimm_pd(X, Y, Z, C) \
12198 ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X), \
12199 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
12200 (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
12202 #define _mm512_mask_fixupimm_pd(X, U, Y, Z, C) \
12203 ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X), \
12204 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
12205 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12207 #define _mm512_maskz_fixupimm_pd(U, X, Y, Z, C) \
12208 ((__m512d)__builtin_ia32_fixupimmpd512_maskz ((__v8df)(__m512d)(X), \
12209 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
12210 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12212 #define _mm512_fixupimm_ps(X, Y, Z, C) \
12213 ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X), \
12214 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
12215 (__mmask16)(-1), _MM_FROUND_CUR_DIRECTION))
12217 #define _mm512_mask_fixupimm_ps(X, U, Y, Z, C) \
12218 ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X), \
12219 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
12220 (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
12222 #define _mm512_maskz_fixupimm_ps(U, X, Y, Z, C) \
12223 ((__m512)__builtin_ia32_fixupimmps512_maskz ((__v16sf)(__m512)(X), \
12224 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
12225 (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
12227 #define _mm_fixupimm_sd(X, Y, Z, C) \
12228 ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X), \
12229 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
12230 (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
12232 #define _mm_mask_fixupimm_sd(X, U, Y, Z, C) \
12233 ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X), \
12234 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
12235 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12237 #define _mm_maskz_fixupimm_sd(U, X, Y, Z, C) \
12238 ((__m128d)__builtin_ia32_fixupimmsd_maskz ((__v2df)(__m128d)(X), \
12239 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
12240 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12242 #define _mm_fixupimm_ss(X, Y, Z, C) \
12243 ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X), \
12244 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
12245 (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
12247 #define _mm_mask_fixupimm_ss(X, U, Y, Z, C) \
12248 ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X), \
12249 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
12250 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12252 #define _mm_maskz_fixupimm_ss(U, X, Y, Z, C) \
12253 ((__m128)__builtin_ia32_fixupimmss_maskz ((__v4sf)(__m128)(X), \
12254 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
12255 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12259 extern __inline
unsigned long long
12260 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12261 _mm_cvtss_u64 (__m128 __A
)
12263 return (unsigned long long) __builtin_ia32_vcvtss2usi64 ((__v4sf
)
12265 _MM_FROUND_CUR_DIRECTION
);
12268 extern __inline
unsigned long long
12269 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12270 _mm_cvttss_u64 (__m128 __A
)
12272 return (unsigned long long) __builtin_ia32_vcvttss2usi64 ((__v4sf
)
12274 _MM_FROUND_CUR_DIRECTION
);
12277 extern __inline
long long
12278 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12279 _mm_cvttss_i64 (__m128 __A
)
12281 return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf
) __A
,
12282 _MM_FROUND_CUR_DIRECTION
);
12284 #endif /* __x86_64__ */
12286 extern __inline
unsigned
12287 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12288 _mm_cvtss_u32 (__m128 __A
)
12290 return (unsigned) __builtin_ia32_vcvtss2usi32 ((__v4sf
) __A
,
12291 _MM_FROUND_CUR_DIRECTION
);
12294 extern __inline
unsigned
12295 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12296 _mm_cvttss_u32 (__m128 __A
)
12298 return (unsigned) __builtin_ia32_vcvttss2usi32 ((__v4sf
) __A
,
12299 _MM_FROUND_CUR_DIRECTION
);
12302 extern __inline
int
12303 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12304 _mm_cvttss_i32 (__m128 __A
)
12306 return (int) __builtin_ia32_vcvttss2si32 ((__v4sf
) __A
,
12307 _MM_FROUND_CUR_DIRECTION
);
12311 extern __inline
unsigned long long
12312 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12313 _mm_cvtsd_u64 (__m128d __A
)
12315 return (unsigned long long) __builtin_ia32_vcvtsd2usi64 ((__v2df
)
12317 _MM_FROUND_CUR_DIRECTION
);
12320 extern __inline
unsigned long long
12321 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12322 _mm_cvttsd_u64 (__m128d __A
)
12324 return (unsigned long long) __builtin_ia32_vcvttsd2usi64 ((__v2df
)
12326 _MM_FROUND_CUR_DIRECTION
);
12329 extern __inline
long long
12330 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12331 _mm_cvttsd_i64 (__m128d __A
)
12333 return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df
) __A
,
12334 _MM_FROUND_CUR_DIRECTION
);
12336 #endif /* __x86_64__ */
12338 extern __inline
unsigned
12339 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12340 _mm_cvtsd_u32 (__m128d __A
)
12342 return (unsigned) __builtin_ia32_vcvtsd2usi32 ((__v2df
) __A
,
12343 _MM_FROUND_CUR_DIRECTION
);
12346 extern __inline
unsigned
12347 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12348 _mm_cvttsd_u32 (__m128d __A
)
12350 return (unsigned) __builtin_ia32_vcvttsd2usi32 ((__v2df
) __A
,
12351 _MM_FROUND_CUR_DIRECTION
);
12354 extern __inline
int
12355 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12356 _mm_cvttsd_i32 (__m128d __A
)
12358 return (int) __builtin_ia32_vcvttsd2si32 ((__v2df
) __A
,
12359 _MM_FROUND_CUR_DIRECTION
);
12362 extern __inline __m512d
12363 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12364 _mm512_cvtps_pd (__m256 __A
)
12366 return (__m512d
) __builtin_ia32_cvtps2pd512_mask ((__v8sf
) __A
,
12368 _mm512_setzero_pd (),
12370 _MM_FROUND_CUR_DIRECTION
);
12373 extern __inline __m512d
12374 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12375 _mm512_mask_cvtps_pd (__m512d __W
, __mmask8 __U
, __m256 __A
)
12377 return (__m512d
) __builtin_ia32_cvtps2pd512_mask ((__v8sf
) __A
,
12380 _MM_FROUND_CUR_DIRECTION
);
12383 extern __inline __m512d
12384 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12385 _mm512_maskz_cvtps_pd (__mmask8 __U
, __m256 __A
)
12387 return (__m512d
) __builtin_ia32_cvtps2pd512_mask ((__v8sf
) __A
,
12389 _mm512_setzero_pd (),
12391 _MM_FROUND_CUR_DIRECTION
);
12394 extern __inline __m512
12395 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12396 _mm512_cvtph_ps (__m256i __A
)
12398 return (__m512
) __builtin_ia32_vcvtph2ps512_mask ((__v16hi
) __A
,
12400 _mm512_setzero_ps (),
12402 _MM_FROUND_CUR_DIRECTION
);
12405 extern __inline __m512
12406 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12407 _mm512_mask_cvtph_ps (__m512 __W
, __mmask16 __U
, __m256i __A
)
12409 return (__m512
) __builtin_ia32_vcvtph2ps512_mask ((__v16hi
) __A
,
12412 _MM_FROUND_CUR_DIRECTION
);
12415 extern __inline __m512
12416 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12417 _mm512_maskz_cvtph_ps (__mmask16 __U
, __m256i __A
)
12419 return (__m512
) __builtin_ia32_vcvtph2ps512_mask ((__v16hi
) __A
,
12421 _mm512_setzero_ps (),
12423 _MM_FROUND_CUR_DIRECTION
);
12426 extern __inline __m256
12427 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12428 _mm512_cvtpd_ps (__m512d __A
)
12430 return (__m256
) __builtin_ia32_cvtpd2ps512_mask ((__v8df
) __A
,
12432 _mm256_setzero_ps (),
12434 _MM_FROUND_CUR_DIRECTION
);
12437 extern __inline __m256
12438 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12439 _mm512_mask_cvtpd_ps (__m256 __W
, __mmask8 __U
, __m512d __A
)
12441 return (__m256
) __builtin_ia32_cvtpd2ps512_mask ((__v8df
) __A
,
12444 _MM_FROUND_CUR_DIRECTION
);
12447 extern __inline __m256
12448 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12449 _mm512_maskz_cvtpd_ps (__mmask8 __U
, __m512d __A
)
12451 return (__m256
) __builtin_ia32_cvtpd2ps512_mask ((__v8df
) __A
,
12453 _mm256_setzero_ps (),
12455 _MM_FROUND_CUR_DIRECTION
);
12458 #ifdef __OPTIMIZE__
12459 extern __inline __m512
12460 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12461 _mm512_getexp_ps (__m512 __A
)
12463 return (__m512
) __builtin_ia32_getexpps512_mask ((__v16sf
) __A
,
12465 _mm512_setzero_ps (),
12467 _MM_FROUND_CUR_DIRECTION
);
12470 extern __inline __m512
12471 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12472 _mm512_mask_getexp_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
12474 return (__m512
) __builtin_ia32_getexpps512_mask ((__v16sf
) __A
,
12477 _MM_FROUND_CUR_DIRECTION
);
12480 extern __inline __m512
12481 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12482 _mm512_maskz_getexp_ps (__mmask16 __U
, __m512 __A
)
12484 return (__m512
) __builtin_ia32_getexpps512_mask ((__v16sf
) __A
,
12486 _mm512_setzero_ps (),
12488 _MM_FROUND_CUR_DIRECTION
);
12491 extern __inline __m512d
12492 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12493 _mm512_getexp_pd (__m512d __A
)
12495 return (__m512d
) __builtin_ia32_getexppd512_mask ((__v8df
) __A
,
12497 _mm512_setzero_pd (),
12499 _MM_FROUND_CUR_DIRECTION
);
12502 extern __inline __m512d
12503 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12504 _mm512_mask_getexp_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
12506 return (__m512d
) __builtin_ia32_getexppd512_mask ((__v8df
) __A
,
12509 _MM_FROUND_CUR_DIRECTION
);
12512 extern __inline __m512d
12513 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12514 _mm512_maskz_getexp_pd (__mmask8 __U
, __m512d __A
)
12516 return (__m512d
) __builtin_ia32_getexppd512_mask ((__v8df
) __A
,
12518 _mm512_setzero_pd (),
12520 _MM_FROUND_CUR_DIRECTION
);
12523 extern __inline __m128
12524 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12525 _mm_getexp_ss (__m128 __A
, __m128 __B
)
12527 return (__m128
) __builtin_ia32_getexpss128_round ((__v4sf
) __A
,
12529 _MM_FROUND_CUR_DIRECTION
);
12532 extern __inline __m128d
12533 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12534 _mm_getexp_sd (__m128d __A
, __m128d __B
)
12536 return (__m128d
) __builtin_ia32_getexpsd128_round ((__v2df
) __A
,
12538 _MM_FROUND_CUR_DIRECTION
);
12541 extern __inline __m512d
12542 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12543 _mm512_getmant_pd (__m512d __A
, _MM_MANTISSA_NORM_ENUM __B
,
12544 _MM_MANTISSA_SIGN_ENUM __C
)
12546 return (__m512d
) __builtin_ia32_getmantpd512_mask ((__v8df
) __A
,
12548 _mm512_setzero_pd (),
12550 _MM_FROUND_CUR_DIRECTION
);
12553 extern __inline __m512d
12554 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12555 _mm512_mask_getmant_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
12556 _MM_MANTISSA_NORM_ENUM __B
, _MM_MANTISSA_SIGN_ENUM __C
)
12558 return (__m512d
) __builtin_ia32_getmantpd512_mask ((__v8df
) __A
,
12561 _MM_FROUND_CUR_DIRECTION
);
12564 extern __inline __m512d
12565 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12566 _mm512_maskz_getmant_pd (__mmask8 __U
, __m512d __A
,
12567 _MM_MANTISSA_NORM_ENUM __B
, _MM_MANTISSA_SIGN_ENUM __C
)
12569 return (__m512d
) __builtin_ia32_getmantpd512_mask ((__v8df
) __A
,
12572 _mm512_setzero_pd (),
12574 _MM_FROUND_CUR_DIRECTION
);
12577 extern __inline __m512
12578 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12579 _mm512_getmant_ps (__m512 __A
, _MM_MANTISSA_NORM_ENUM __B
,
12580 _MM_MANTISSA_SIGN_ENUM __C
)
12582 return (__m512
) __builtin_ia32_getmantps512_mask ((__v16sf
) __A
,
12584 _mm512_setzero_ps (),
12586 _MM_FROUND_CUR_DIRECTION
);
12589 extern __inline __m512
12590 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12591 _mm512_mask_getmant_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
12592 _MM_MANTISSA_NORM_ENUM __B
, _MM_MANTISSA_SIGN_ENUM __C
)
12594 return (__m512
) __builtin_ia32_getmantps512_mask ((__v16sf
) __A
,
12596 (__v16sf
) __W
, __U
,
12597 _MM_FROUND_CUR_DIRECTION
);
12600 extern __inline __m512
12601 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12602 _mm512_maskz_getmant_ps (__mmask16 __U
, __m512 __A
,
12603 _MM_MANTISSA_NORM_ENUM __B
, _MM_MANTISSA_SIGN_ENUM __C
)
12605 return (__m512
) __builtin_ia32_getmantps512_mask ((__v16sf
) __A
,
12608 _mm512_setzero_ps (),
12610 _MM_FROUND_CUR_DIRECTION
);
12613 extern __inline __m128d
12614 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12615 _mm_getmant_sd (__m128d __A
, __m128d __B
, _MM_MANTISSA_NORM_ENUM __C
,
12616 _MM_MANTISSA_SIGN_ENUM __D
)
12618 return (__m128d
) __builtin_ia32_getmantsd_round ((__v2df
) __A
,
12621 _MM_FROUND_CUR_DIRECTION
);
12624 extern __inline __m128
12625 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12626 _mm_getmant_ss (__m128 __A
, __m128 __B
, _MM_MANTISSA_NORM_ENUM __C
,
12627 _MM_MANTISSA_SIGN_ENUM __D
)
12629 return (__m128
) __builtin_ia32_getmantss_round ((__v4sf
) __A
,
12632 _MM_FROUND_CUR_DIRECTION
);
12636 #define _mm512_getmant_pd(X, B, C) \
12637 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
12638 (int)(((C)<<2) | (B)), \
12639 (__v8df)(__m512d)_mm512_setzero_pd(), \
12641 _MM_FROUND_CUR_DIRECTION))
12643 #define _mm512_mask_getmant_pd(W, U, X, B, C) \
12644 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
12645 (int)(((C)<<2) | (B)), \
12646 (__v8df)(__m512d)(W), \
12648 _MM_FROUND_CUR_DIRECTION))
12650 #define _mm512_maskz_getmant_pd(U, X, B, C) \
12651 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
12652 (int)(((C)<<2) | (B)), \
12653 (__v8df)(__m512d)_mm512_setzero_pd(), \
12655 _MM_FROUND_CUR_DIRECTION))
12656 #define _mm512_getmant_ps(X, B, C) \
12657 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
12658 (int)(((C)<<2) | (B)), \
12659 (__v16sf)(__m512)_mm512_setzero_ps(), \
12661 _MM_FROUND_CUR_DIRECTION))
12663 #define _mm512_mask_getmant_ps(W, U, X, B, C) \
12664 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
12665 (int)(((C)<<2) | (B)), \
12666 (__v16sf)(__m512)(W), \
12668 _MM_FROUND_CUR_DIRECTION))
12670 #define _mm512_maskz_getmant_ps(U, X, B, C) \
12671 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
12672 (int)(((C)<<2) | (B)), \
12673 (__v16sf)(__m512)_mm512_setzero_ps(), \
12675 _MM_FROUND_CUR_DIRECTION))
12676 #define _mm_getmant_sd(X, Y, C, D) \
12677 ((__m128d)__builtin_ia32_getmantsd_round ((__v2df)(__m128d)(X), \
12678 (__v2df)(__m128d)(Y), \
12679 (int)(((D)<<2) | (C)), \
12680 _MM_FROUND_CUR_DIRECTION))
12682 #define _mm_getmant_ss(X, Y, C, D) \
12683 ((__m128)__builtin_ia32_getmantss_round ((__v4sf)(__m128)(X), \
12684 (__v4sf)(__m128)(Y), \
12685 (int)(((D)<<2) | (C)), \
12686 _MM_FROUND_CUR_DIRECTION))
12688 #define _mm_getexp_ss(A, B) \
12689 ((__m128)__builtin_ia32_getexpss128_mask((__v4sf)(__m128)(A), (__v4sf)(__m128)(B), \
12690 _MM_FROUND_CUR_DIRECTION))
12692 #define _mm_getexp_sd(A, B) \
12693 ((__m128d)__builtin_ia32_getexpsd128_mask((__v2df)(__m128d)(A), (__v2df)(__m128d)(B),\
12694 _MM_FROUND_CUR_DIRECTION))
12696 #define _mm512_getexp_ps(A) \
12697 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
12698 (__v16sf)_mm512_setzero_ps(), (__mmask16)-1, _MM_FROUND_CUR_DIRECTION))
12700 #define _mm512_mask_getexp_ps(W, U, A) \
12701 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
12702 (__v16sf)(__m512)(W), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
12704 #define _mm512_maskz_getexp_ps(U, A) \
12705 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
12706 (__v16sf)_mm512_setzero_ps(), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
12708 #define _mm512_getexp_pd(A) \
12709 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
12710 (__v8df)_mm512_setzero_pd(), (__mmask8)-1, _MM_FROUND_CUR_DIRECTION))
12712 #define _mm512_mask_getexp_pd(W, U, A) \
12713 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
12714 (__v8df)(__m512d)(W), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12716 #define _mm512_maskz_getexp_pd(U, A) \
12717 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
12718 (__v8df)_mm512_setzero_pd(), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12721 #ifdef __OPTIMIZE__
12722 extern __inline __m512
12723 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12724 _mm512_roundscale_ps (__m512 __A
, const int __imm
)
12726 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
, __imm
,
12728 _MM_FROUND_CUR_DIRECTION
);
12731 extern __inline __m512
12732 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12733 _mm512_mask_roundscale_ps (__m512 __A
, __mmask16 __B
, __m512 __C
,
12736 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __C
, __imm
,
12739 _MM_FROUND_CUR_DIRECTION
);
12742 extern __inline __m512
12743 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12744 _mm512_maskz_roundscale_ps (__mmask16 __A
, __m512 __B
, const int __imm
)
12746 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __B
,
12749 _mm512_setzero_ps (),
12751 _MM_FROUND_CUR_DIRECTION
);
12754 extern __inline __m512d
12755 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12756 _mm512_roundscale_pd (__m512d __A
, const int __imm
)
12758 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
, __imm
,
12760 _MM_FROUND_CUR_DIRECTION
);
12763 extern __inline __m512d
12764 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12765 _mm512_mask_roundscale_pd (__m512d __A
, __mmask8 __B
, __m512d __C
,
12768 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __C
, __imm
,
12771 _MM_FROUND_CUR_DIRECTION
);
12774 extern __inline __m512d
12775 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12776 _mm512_maskz_roundscale_pd (__mmask8 __A
, __m512d __B
, const int __imm
)
12778 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __B
,
12781 _mm512_setzero_pd (),
12783 _MM_FROUND_CUR_DIRECTION
);
12786 extern __inline __m128
12787 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12788 _mm_roundscale_ss (__m128 __A
, __m128 __B
, const int __imm
)
12790 return (__m128
) __builtin_ia32_rndscaless_round ((__v4sf
) __A
,
12791 (__v4sf
) __B
, __imm
,
12792 _MM_FROUND_CUR_DIRECTION
);
12795 extern __inline __m128d
12796 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12797 _mm_roundscale_sd (__m128d __A
, __m128d __B
, const int __imm
)
12799 return (__m128d
) __builtin_ia32_rndscalesd_round ((__v2df
) __A
,
12800 (__v2df
) __B
, __imm
,
12801 _MM_FROUND_CUR_DIRECTION
);
12805 #define _mm512_roundscale_ps(A, B) \
12806 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(A), (int)(B),\
12807 (__v16sf)(__m512)(A), (__mmask16)(-1), _MM_FROUND_CUR_DIRECTION))
12808 #define _mm512_mask_roundscale_ps(A, B, C, D) \
12809 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(C), \
12811 (__v16sf)(__m512)(A), \
12812 (__mmask16)(B), _MM_FROUND_CUR_DIRECTION))
12813 #define _mm512_maskz_roundscale_ps(A, B, C) \
12814 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(B), \
12816 (__v16sf)_mm512_setzero_ps(),\
12817 (__mmask16)(A), _MM_FROUND_CUR_DIRECTION))
12818 #define _mm512_roundscale_pd(A, B) \
12819 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(A), (int)(B),\
12820 (__v8df)(__m512d)(A), (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
12821 #define _mm512_mask_roundscale_pd(A, B, C, D) \
12822 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(C), \
12824 (__v8df)(__m512d)(A), \
12825 (__mmask8)(B), _MM_FROUND_CUR_DIRECTION))
12826 #define _mm512_maskz_roundscale_pd(A, B, C) \
12827 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(B), \
12829 (__v8df)_mm512_setzero_pd(),\
12830 (__mmask8)(A), _MM_FROUND_CUR_DIRECTION))
12831 #define _mm_roundscale_ss(A, B, C) \
12832 ((__m128) __builtin_ia32_rndscaless_round ((__v4sf)(__m128)(A), \
12833 (__v4sf)(__m128)(B), (int)(C), _MM_FROUND_CUR_DIRECTION))
12834 #define _mm_roundscale_sd(A, B, C) \
12835 ((__m128d) __builtin_ia32_rndscalesd_round ((__v2df)(__m128d)(A), \
12836 (__v2df)(__m128d)(B), (int)(C), _MM_FROUND_CUR_DIRECTION))
12839 #ifdef __OPTIMIZE__
12840 extern __inline __mmask8
12841 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12842 _mm512_cmp_pd_mask (__m512d __X
, __m512d __Y
, const int __P
)
12844 return (__mmask8
) __builtin_ia32_cmppd512_mask ((__v8df
) __X
,
12847 _MM_FROUND_CUR_DIRECTION
);
12850 extern __inline __mmask16
12851 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12852 _mm512_cmp_ps_mask (__m512 __X
, __m512 __Y
, const int __P
)
12854 return (__mmask16
) __builtin_ia32_cmpps512_mask ((__v16sf
) __X
,
12855 (__v16sf
) __Y
, __P
,
12857 _MM_FROUND_CUR_DIRECTION
);
12860 extern __inline __mmask16
12861 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12862 _mm512_mask_cmp_ps_mask (__mmask16 __U
, __m512 __X
, __m512 __Y
, const int __P
)
12864 return (__mmask16
) __builtin_ia32_cmpps512_mask ((__v16sf
) __X
,
12865 (__v16sf
) __Y
, __P
,
12867 _MM_FROUND_CUR_DIRECTION
);
12870 extern __inline __mmask8
12871 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12872 _mm512_mask_cmp_pd_mask (__mmask8 __U
, __m512d __X
, __m512d __Y
, const int __P
)
12874 return (__mmask8
) __builtin_ia32_cmppd512_mask ((__v8df
) __X
,
12877 _MM_FROUND_CUR_DIRECTION
);
12880 extern __inline __mmask8
12881 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12882 _mm_cmp_sd_mask (__m128d __X
, __m128d __Y
, const int __P
)
12884 return (__mmask8
) __builtin_ia32_cmpsd_mask ((__v2df
) __X
,
12887 _MM_FROUND_CUR_DIRECTION
);
12890 extern __inline __mmask8
12891 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12892 _mm_mask_cmp_sd_mask (__mmask8 __M
, __m128d __X
, __m128d __Y
, const int __P
)
12894 return (__mmask8
) __builtin_ia32_cmpsd_mask ((__v2df
) __X
,
12897 _MM_FROUND_CUR_DIRECTION
);
12900 extern __inline __mmask8
12901 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12902 _mm_cmp_ss_mask (__m128 __X
, __m128 __Y
, const int __P
)
12904 return (__mmask8
) __builtin_ia32_cmpss_mask ((__v4sf
) __X
,
12907 _MM_FROUND_CUR_DIRECTION
);
12910 extern __inline __mmask8
12911 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12912 _mm_mask_cmp_ss_mask (__mmask8 __M
, __m128 __X
, __m128 __Y
, const int __P
)
12914 return (__mmask8
) __builtin_ia32_cmpss_mask ((__v4sf
) __X
,
12917 _MM_FROUND_CUR_DIRECTION
);
12921 #define _mm512_cmp_pd_mask(X, Y, P) \
12922 ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X), \
12923 (__v8df)(__m512d)(Y), (int)(P),\
12924 (__mmask8)-1,_MM_FROUND_CUR_DIRECTION))
12926 #define _mm512_cmp_ps_mask(X, Y, P) \
12927 ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X), \
12928 (__v16sf)(__m512)(Y), (int)(P),\
12929 (__mmask16)-1,_MM_FROUND_CUR_DIRECTION))
12931 #define _mm512_mask_cmp_pd_mask(M, X, Y, P) \
12932 ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X), \
12933 (__v8df)(__m512d)(Y), (int)(P),\
12934 (__mmask8)M, _MM_FROUND_CUR_DIRECTION))
12936 #define _mm512_mask_cmp_ps_mask(M, X, Y, P) \
12937 ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X), \
12938 (__v16sf)(__m512)(Y), (int)(P),\
12939 (__mmask16)M,_MM_FROUND_CUR_DIRECTION))
12941 #define _mm_cmp_sd_mask(X, Y, P) \
12942 ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X), \
12943 (__v2df)(__m128d)(Y), (int)(P),\
12944 (__mmask8)-1,_MM_FROUND_CUR_DIRECTION))
12946 #define _mm_mask_cmp_sd_mask(M, X, Y, P) \
12947 ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X), \
12948 (__v2df)(__m128d)(Y), (int)(P),\
12949 M,_MM_FROUND_CUR_DIRECTION))
12951 #define _mm_cmp_ss_mask(X, Y, P) \
12952 ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X), \
12953 (__v4sf)(__m128)(Y), (int)(P), \
12954 (__mmask8)-1,_MM_FROUND_CUR_DIRECTION))
12956 #define _mm_mask_cmp_ss_mask(M, X, Y, P) \
12957 ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X), \
12958 (__v4sf)(__m128)(Y), (int)(P), \
12959 M,_MM_FROUND_CUR_DIRECTION))
12962 extern __inline __mmask16
12963 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12964 _mm512_kmov (__mmask16 __A
)
12966 return __builtin_ia32_kmov16 (__A
);
12969 #ifdef __DISABLE_AVX512F__
12970 #undef __DISABLE_AVX512F__
12971 #pragma GCC pop_options
12972 #endif /* __DISABLE_AVX512F__ */
12974 #endif /* _AVX512FINTRIN_H_INCLUDED */