1 /* Copyright (C) 2013-2016 Free Software Foundation, Inc.
3 This file is part of GCC.
5 GCC is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 3, or (at your option)
10 GCC is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 Under Section 7 of GPL version 3, you are granted additional
16 permissions described in the GCC Runtime Library Exception, version
17 3.1, as published by the Free Software Foundation.
19 You should have received a copy of the GNU General Public License and
20 a copy of the GCC Runtime Library Exception along with this program;
21 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
22 <http://www.gnu.org/licenses/>. */
24 #ifndef _IMMINTRIN_H_INCLUDED
25 #error "Never use <avx512fintrin.h> directly; include <immintrin.h> instead."
28 #ifndef _AVX512FINTRIN_H_INCLUDED
29 #define _AVX512FINTRIN_H_INCLUDED
32 #pragma GCC push_options
33 #pragma GCC target("avx512f")
34 #define __DISABLE_AVX512F__
35 #endif /* __AVX512F__ */
37 /* Internal data types for implementing the intrinsics. */
38 typedef double __v8df
__attribute__ ((__vector_size__ (64)));
39 typedef float __v16sf
__attribute__ ((__vector_size__ (64)));
40 typedef long long __v8di
__attribute__ ((__vector_size__ (64)));
41 typedef unsigned long long __v8du
__attribute__ ((__vector_size__ (64)));
42 typedef int __v16si
__attribute__ ((__vector_size__ (64)));
43 typedef unsigned int __v16su
__attribute__ ((__vector_size__ (64)));
44 typedef short __v32hi
__attribute__ ((__vector_size__ (64)));
45 typedef unsigned short __v32hu
__attribute__ ((__vector_size__ (64)));
46 typedef char __v64qi
__attribute__ ((__vector_size__ (64)));
47 typedef unsigned char __v64qu
__attribute__ ((__vector_size__ (64)));
49 /* The Intel API is flexible enough that we must allow aliasing with other
50 vector types, and their scalar components. */
51 typedef float __m512
__attribute__ ((__vector_size__ (64), __may_alias__
));
52 typedef long long __m512i
__attribute__ ((__vector_size__ (64), __may_alias__
));
53 typedef double __m512d
__attribute__ ((__vector_size__ (64), __may_alias__
));
55 typedef unsigned char __mmask8
;
56 typedef unsigned short __mmask16
;
58 extern __inline __m512i
59 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
60 _mm512_set_epi64 (long long __A
, long long __B
, long long __C
,
61 long long __D
, long long __E
, long long __F
,
62 long long __G
, long long __H
)
64 return __extension__ (__m512i
) (__v8di
)
65 { __H
, __G
, __F
, __E
, __D
, __C
, __B
, __A
};
68 /* Create the vector [A B C D E F G H I J K L M N O P]. */
69 extern __inline __m512i
70 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
71 _mm512_set_epi32 (int __A
, int __B
, int __C
, int __D
,
72 int __E
, int __F
, int __G
, int __H
,
73 int __I
, int __J
, int __K
, int __L
,
74 int __M
, int __N
, int __O
, int __P
)
76 return __extension__ (__m512i
)(__v16si
)
77 { __P
, __O
, __N
, __M
, __L
, __K
, __J
, __I
,
78 __H
, __G
, __F
, __E
, __D
, __C
, __B
, __A
};
81 extern __inline __m512d
82 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
83 _mm512_set_pd (double __A
, double __B
, double __C
, double __D
,
84 double __E
, double __F
, double __G
, double __H
)
86 return __extension__ (__m512d
)
87 { __H
, __G
, __F
, __E
, __D
, __C
, __B
, __A
};
90 extern __inline __m512
91 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
92 _mm512_set_ps (float __A
, float __B
, float __C
, float __D
,
93 float __E
, float __F
, float __G
, float __H
,
94 float __I
, float __J
, float __K
, float __L
,
95 float __M
, float __N
, float __O
, float __P
)
97 return __extension__ (__m512
)
98 { __P
, __O
, __N
, __M
, __L
, __K
, __J
, __I
,
99 __H
, __G
, __F
, __E
, __D
, __C
, __B
, __A
};
102 #define _mm512_setr_epi64(e0,e1,e2,e3,e4,e5,e6,e7) \
103 _mm512_set_epi64(e7,e6,e5,e4,e3,e2,e1,e0)
105 #define _mm512_setr_epi32(e0,e1,e2,e3,e4,e5,e6,e7, \
106 e8,e9,e10,e11,e12,e13,e14,e15) \
107 _mm512_set_epi32(e15,e14,e13,e12,e11,e10,e9,e8,e7,e6,e5,e4,e3,e2,e1,e0)
109 #define _mm512_setr_pd(e0,e1,e2,e3,e4,e5,e6,e7) \
110 _mm512_set_pd(e7,e6,e5,e4,e3,e2,e1,e0)
112 #define _mm512_setr_ps(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12,e13,e14,e15) \
113 _mm512_set_ps(e15,e14,e13,e12,e11,e10,e9,e8,e7,e6,e5,e4,e3,e2,e1,e0)
115 extern __inline __m512
116 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
117 _mm512_undefined_ps (void)
123 extern __inline __m512d
124 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
125 _mm512_undefined_pd (void)
131 extern __inline __m512i
132 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
133 _mm512_undefined_si512 (void)
139 extern __inline __m512i
140 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
141 _mm512_set1_epi8 (char __A
)
143 return __extension__ (__m512i
)(__v64qi
)
144 { __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
,
145 __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
,
146 __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
,
147 __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
,
148 __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
,
149 __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
,
150 __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
,
151 __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
};
154 extern __inline __m512i
155 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
156 _mm512_set1_epi16 (short __A
)
158 return __extension__ (__m512i
)(__v32hi
)
159 { __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
,
160 __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
,
161 __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
,
162 __A
, __A
, __A
, __A
, __A
, __A
, __A
, __A
};
165 extern __inline __m512d
166 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
167 _mm512_set1_pd (double __A
)
169 return (__m512d
) __builtin_ia32_broadcastsd512 (__extension__
172 _mm512_undefined_pd (),
176 extern __inline __m512
177 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
178 _mm512_set1_ps (float __A
)
180 return (__m512
) __builtin_ia32_broadcastss512 (__extension__
183 _mm512_undefined_ps (),
187 /* Create the vector [A B C D A B C D A B C D A B C D]. */
188 extern __inline __m512i
189 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
190 _mm512_set4_epi32 (int __A
, int __B
, int __C
, int __D
)
192 return __extension__ (__m512i
)(__v16si
)
193 { __D
, __C
, __B
, __A
, __D
, __C
, __B
, __A
,
194 __D
, __C
, __B
, __A
, __D
, __C
, __B
, __A
};
197 extern __inline __m512i
198 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
199 _mm512_set4_epi64 (long long __A
, long long __B
, long long __C
,
202 return __extension__ (__m512i
) (__v8di
)
203 { __D
, __C
, __B
, __A
, __D
, __C
, __B
, __A
};
206 extern __inline __m512d
207 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
208 _mm512_set4_pd (double __A
, double __B
, double __C
, double __D
)
210 return __extension__ (__m512d
)
211 { __D
, __C
, __B
, __A
, __D
, __C
, __B
, __A
};
214 extern __inline __m512
215 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
216 _mm512_set4_ps (float __A
, float __B
, float __C
, float __D
)
218 return __extension__ (__m512
)
219 { __D
, __C
, __B
, __A
, __D
, __C
, __B
, __A
,
220 __D
, __C
, __B
, __A
, __D
, __C
, __B
, __A
};
223 #define _mm512_setr4_epi64(e0,e1,e2,e3) \
224 _mm512_set4_epi64(e3,e2,e1,e0)
226 #define _mm512_setr4_epi32(e0,e1,e2,e3) \
227 _mm512_set4_epi32(e3,e2,e1,e0)
229 #define _mm512_setr4_pd(e0,e1,e2,e3) \
230 _mm512_set4_pd(e3,e2,e1,e0)
232 #define _mm512_setr4_ps(e0,e1,e2,e3) \
233 _mm512_set4_ps(e3,e2,e1,e0)
235 extern __inline __m512
236 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
237 _mm512_setzero_ps (void)
239 return __extension__ (__m512
){ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
240 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
243 extern __inline __m512d
244 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
245 _mm512_setzero_pd (void)
247 return __extension__ (__m512d
) { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
250 extern __inline __m512i
251 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
252 _mm512_setzero_epi32 (void)
254 return __extension__ (__m512i
)(__v8di
){ 0, 0, 0, 0, 0, 0, 0, 0 };
257 extern __inline __m512i
258 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
259 _mm512_setzero_si512 (void)
261 return __extension__ (__m512i
)(__v8di
){ 0, 0, 0, 0, 0, 0, 0, 0 };
264 extern __inline __m512d
265 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
266 _mm512_mask_mov_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
268 return (__m512d
) __builtin_ia32_movapd512_mask ((__v8df
) __A
,
273 extern __inline __m512d
274 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
275 _mm512_maskz_mov_pd (__mmask8 __U
, __m512d __A
)
277 return (__m512d
) __builtin_ia32_movapd512_mask ((__v8df
) __A
,
279 _mm512_setzero_pd (),
283 extern __inline __m512
284 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
285 _mm512_mask_mov_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
287 return (__m512
) __builtin_ia32_movaps512_mask ((__v16sf
) __A
,
292 extern __inline __m512
293 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
294 _mm512_maskz_mov_ps (__mmask16 __U
, __m512 __A
)
296 return (__m512
) __builtin_ia32_movaps512_mask ((__v16sf
) __A
,
298 _mm512_setzero_ps (),
302 extern __inline __m512d
303 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
304 _mm512_load_pd (void const *__P
)
306 return *(__m512d
*) __P
;
309 extern __inline __m512d
310 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
311 _mm512_mask_load_pd (__m512d __W
, __mmask8 __U
, void const *__P
)
313 return (__m512d
) __builtin_ia32_loadapd512_mask ((const __v8df
*) __P
,
318 extern __inline __m512d
319 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
320 _mm512_maskz_load_pd (__mmask8 __U
, void const *__P
)
322 return (__m512d
) __builtin_ia32_loadapd512_mask ((const __v8df
*) __P
,
324 _mm512_setzero_pd (),
329 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
330 _mm512_store_pd (void *__P
, __m512d __A
)
332 *(__m512d
*) __P
= __A
;
336 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
337 _mm512_mask_store_pd (void *__P
, __mmask8 __U
, __m512d __A
)
339 __builtin_ia32_storeapd512_mask ((__v8df
*) __P
, (__v8df
) __A
,
343 extern __inline __m512
344 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
345 _mm512_load_ps (void const *__P
)
347 return *(__m512
*) __P
;
350 extern __inline __m512
351 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
352 _mm512_mask_load_ps (__m512 __W
, __mmask16 __U
, void const *__P
)
354 return (__m512
) __builtin_ia32_loadaps512_mask ((const __v16sf
*) __P
,
359 extern __inline __m512
360 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
361 _mm512_maskz_load_ps (__mmask16 __U
, void const *__P
)
363 return (__m512
) __builtin_ia32_loadaps512_mask ((const __v16sf
*) __P
,
365 _mm512_setzero_ps (),
370 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
371 _mm512_store_ps (void *__P
, __m512 __A
)
373 *(__m512
*) __P
= __A
;
377 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
378 _mm512_mask_store_ps (void *__P
, __mmask16 __U
, __m512 __A
)
380 __builtin_ia32_storeaps512_mask ((__v16sf
*) __P
, (__v16sf
) __A
,
384 extern __inline __m512i
385 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
386 _mm512_mask_mov_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
)
388 return (__m512i
) __builtin_ia32_movdqa64_512_mask ((__v8di
) __A
,
393 extern __inline __m512i
394 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
395 _mm512_maskz_mov_epi64 (__mmask8 __U
, __m512i __A
)
397 return (__m512i
) __builtin_ia32_movdqa64_512_mask ((__v8di
) __A
,
399 _mm512_setzero_si512 (),
403 extern __inline __m512i
404 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
405 _mm512_load_epi64 (void const *__P
)
407 return *(__m512i
*) __P
;
410 extern __inline __m512i
411 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
412 _mm512_mask_load_epi64 (__m512i __W
, __mmask8 __U
, void const *__P
)
414 return (__m512i
) __builtin_ia32_movdqa64load512_mask ((const __v8di
*) __P
,
419 extern __inline __m512i
420 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
421 _mm512_maskz_load_epi64 (__mmask8 __U
, void const *__P
)
423 return (__m512i
) __builtin_ia32_movdqa64load512_mask ((const __v8di
*) __P
,
425 _mm512_setzero_si512 (),
430 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
431 _mm512_store_epi64 (void *__P
, __m512i __A
)
433 *(__m512i
*) __P
= __A
;
437 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
438 _mm512_mask_store_epi64 (void *__P
, __mmask8 __U
, __m512i __A
)
440 __builtin_ia32_movdqa64store512_mask ((__v8di
*) __P
, (__v8di
) __A
,
444 extern __inline __m512i
445 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
446 _mm512_mask_mov_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
)
448 return (__m512i
) __builtin_ia32_movdqa32_512_mask ((__v16si
) __A
,
453 extern __inline __m512i
454 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
455 _mm512_maskz_mov_epi32 (__mmask16 __U
, __m512i __A
)
457 return (__m512i
) __builtin_ia32_movdqa32_512_mask ((__v16si
) __A
,
459 _mm512_setzero_si512 (),
463 extern __inline __m512i
464 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
465 _mm512_load_si512 (void const *__P
)
467 return *(__m512i
*) __P
;
470 extern __inline __m512i
471 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
472 _mm512_load_epi32 (void const *__P
)
474 return *(__m512i
*) __P
;
477 extern __inline __m512i
478 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
479 _mm512_mask_load_epi32 (__m512i __W
, __mmask16 __U
, void const *__P
)
481 return (__m512i
) __builtin_ia32_movdqa32load512_mask ((const __v16si
*) __P
,
486 extern __inline __m512i
487 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
488 _mm512_maskz_load_epi32 (__mmask16 __U
, void const *__P
)
490 return (__m512i
) __builtin_ia32_movdqa32load512_mask ((const __v16si
*) __P
,
492 _mm512_setzero_si512 (),
497 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
498 _mm512_store_si512 (void *__P
, __m512i __A
)
500 *(__m512i
*) __P
= __A
;
504 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
505 _mm512_store_epi32 (void *__P
, __m512i __A
)
507 *(__m512i
*) __P
= __A
;
511 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
512 _mm512_mask_store_epi32 (void *__P
, __mmask16 __U
, __m512i __A
)
514 __builtin_ia32_movdqa32store512_mask ((__v16si
*) __P
, (__v16si
) __A
,
518 extern __inline __m512i
519 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
520 _mm512_mullo_epi32 (__m512i __A
, __m512i __B
)
522 return (__m512i
) ((__v16su
) __A
* (__v16su
) __B
);
525 extern __inline __m512i
526 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
527 _mm512_maskz_mullo_epi32 (__mmask16 __M
, __m512i __A
, __m512i __B
)
529 return (__m512i
) __builtin_ia32_pmulld512_mask ((__v16si
) __A
,
532 _mm512_setzero_si512 (),
536 extern __inline __m512i
537 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
538 _mm512_mask_mullo_epi32 (__m512i __W
, __mmask16 __M
, __m512i __A
, __m512i __B
)
540 return (__m512i
) __builtin_ia32_pmulld512_mask ((__v16si
) __A
,
545 extern __inline __m512i
546 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
547 _mm512_sllv_epi32 (__m512i __X
, __m512i __Y
)
549 return (__m512i
) __builtin_ia32_psllv16si_mask ((__v16si
) __X
,
552 _mm512_undefined_si512 (),
556 extern __inline __m512i
557 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
558 _mm512_mask_sllv_epi32 (__m512i __W
, __mmask16 __U
, __m512i __X
, __m512i __Y
)
560 return (__m512i
) __builtin_ia32_psllv16si_mask ((__v16si
) __X
,
566 extern __inline __m512i
567 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
568 _mm512_maskz_sllv_epi32 (__mmask16 __U
, __m512i __X
, __m512i __Y
)
570 return (__m512i
) __builtin_ia32_psllv16si_mask ((__v16si
) __X
,
573 _mm512_setzero_si512 (),
577 extern __inline __m512i
578 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
579 _mm512_srav_epi32 (__m512i __X
, __m512i __Y
)
581 return (__m512i
) __builtin_ia32_psrav16si_mask ((__v16si
) __X
,
584 _mm512_undefined_si512 (),
588 extern __inline __m512i
589 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
590 _mm512_mask_srav_epi32 (__m512i __W
, __mmask16 __U
, __m512i __X
, __m512i __Y
)
592 return (__m512i
) __builtin_ia32_psrav16si_mask ((__v16si
) __X
,
598 extern __inline __m512i
599 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
600 _mm512_maskz_srav_epi32 (__mmask16 __U
, __m512i __X
, __m512i __Y
)
602 return (__m512i
) __builtin_ia32_psrav16si_mask ((__v16si
) __X
,
605 _mm512_setzero_si512 (),
609 extern __inline __m512i
610 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
611 _mm512_srlv_epi32 (__m512i __X
, __m512i __Y
)
613 return (__m512i
) __builtin_ia32_psrlv16si_mask ((__v16si
) __X
,
616 _mm512_undefined_si512 (),
620 extern __inline __m512i
621 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
622 _mm512_mask_srlv_epi32 (__m512i __W
, __mmask16 __U
, __m512i __X
, __m512i __Y
)
624 return (__m512i
) __builtin_ia32_psrlv16si_mask ((__v16si
) __X
,
630 extern __inline __m512i
631 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
632 _mm512_maskz_srlv_epi32 (__mmask16 __U
, __m512i __X
, __m512i __Y
)
634 return (__m512i
) __builtin_ia32_psrlv16si_mask ((__v16si
) __X
,
637 _mm512_setzero_si512 (),
641 extern __inline __m512i
642 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
643 _mm512_add_epi64 (__m512i __A
, __m512i __B
)
645 return (__m512i
) ((__v8du
) __A
+ (__v8du
) __B
);
648 extern __inline __m512i
649 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
650 _mm512_mask_add_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
652 return (__m512i
) __builtin_ia32_paddq512_mask ((__v8di
) __A
,
658 extern __inline __m512i
659 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
660 _mm512_maskz_add_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
662 return (__m512i
) __builtin_ia32_paddq512_mask ((__v8di
) __A
,
665 _mm512_setzero_si512 (),
669 extern __inline __m512i
670 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
671 _mm512_sub_epi64 (__m512i __A
, __m512i __B
)
673 return (__m512i
) ((__v8du
) __A
- (__v8du
) __B
);
676 extern __inline __m512i
677 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
678 _mm512_mask_sub_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
680 return (__m512i
) __builtin_ia32_psubq512_mask ((__v8di
) __A
,
686 extern __inline __m512i
687 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
688 _mm512_maskz_sub_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
690 return (__m512i
) __builtin_ia32_psubq512_mask ((__v8di
) __A
,
693 _mm512_setzero_si512 (),
697 extern __inline __m512i
698 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
699 _mm512_sllv_epi64 (__m512i __X
, __m512i __Y
)
701 return (__m512i
) __builtin_ia32_psllv8di_mask ((__v8di
) __X
,
704 _mm512_undefined_pd (),
708 extern __inline __m512i
709 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
710 _mm512_mask_sllv_epi64 (__m512i __W
, __mmask8 __U
, __m512i __X
, __m512i __Y
)
712 return (__m512i
) __builtin_ia32_psllv8di_mask ((__v8di
) __X
,
718 extern __inline __m512i
719 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
720 _mm512_maskz_sllv_epi64 (__mmask8 __U
, __m512i __X
, __m512i __Y
)
722 return (__m512i
) __builtin_ia32_psllv8di_mask ((__v8di
) __X
,
725 _mm512_setzero_si512 (),
729 extern __inline __m512i
730 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
731 _mm512_srav_epi64 (__m512i __X
, __m512i __Y
)
733 return (__m512i
) __builtin_ia32_psrav8di_mask ((__v8di
) __X
,
736 _mm512_undefined_si512 (),
740 extern __inline __m512i
741 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
742 _mm512_mask_srav_epi64 (__m512i __W
, __mmask8 __U
, __m512i __X
, __m512i __Y
)
744 return (__m512i
) __builtin_ia32_psrav8di_mask ((__v8di
) __X
,
750 extern __inline __m512i
751 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
752 _mm512_maskz_srav_epi64 (__mmask8 __U
, __m512i __X
, __m512i __Y
)
754 return (__m512i
) __builtin_ia32_psrav8di_mask ((__v8di
) __X
,
757 _mm512_setzero_si512 (),
761 extern __inline __m512i
762 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
763 _mm512_srlv_epi64 (__m512i __X
, __m512i __Y
)
765 return (__m512i
) __builtin_ia32_psrlv8di_mask ((__v8di
) __X
,
768 _mm512_undefined_si512 (),
772 extern __inline __m512i
773 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
774 _mm512_mask_srlv_epi64 (__m512i __W
, __mmask8 __U
, __m512i __X
, __m512i __Y
)
776 return (__m512i
) __builtin_ia32_psrlv8di_mask ((__v8di
) __X
,
782 extern __inline __m512i
783 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
784 _mm512_maskz_srlv_epi64 (__mmask8 __U
, __m512i __X
, __m512i __Y
)
786 return (__m512i
) __builtin_ia32_psrlv8di_mask ((__v8di
) __X
,
789 _mm512_setzero_si512 (),
793 extern __inline __m512i
794 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
795 _mm512_add_epi32 (__m512i __A
, __m512i __B
)
797 return (__m512i
) ((__v16su
) __A
+ (__v16su
) __B
);
800 extern __inline __m512i
801 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
802 _mm512_mask_add_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
804 return (__m512i
) __builtin_ia32_paddd512_mask ((__v16si
) __A
,
810 extern __inline __m512i
811 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
812 _mm512_maskz_add_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
814 return (__m512i
) __builtin_ia32_paddd512_mask ((__v16si
) __A
,
817 _mm512_setzero_si512 (),
821 extern __inline __m512i
822 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
823 _mm512_mul_epi32 (__m512i __X
, __m512i __Y
)
825 return (__m512i
) __builtin_ia32_pmuldq512_mask ((__v16si
) __X
,
828 _mm512_undefined_si512 (),
832 extern __inline __m512i
833 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
834 _mm512_mask_mul_epi32 (__m512i __W
, __mmask8 __M
, __m512i __X
, __m512i __Y
)
836 return (__m512i
) __builtin_ia32_pmuldq512_mask ((__v16si
) __X
,
841 extern __inline __m512i
842 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
843 _mm512_maskz_mul_epi32 (__mmask8 __M
, __m512i __X
, __m512i __Y
)
845 return (__m512i
) __builtin_ia32_pmuldq512_mask ((__v16si
) __X
,
848 _mm512_setzero_si512 (),
852 extern __inline __m512i
853 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
854 _mm512_sub_epi32 (__m512i __A
, __m512i __B
)
856 return (__m512i
) ((__v16su
) __A
- (__v16su
) __B
);
859 extern __inline __m512i
860 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
861 _mm512_mask_sub_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
863 return (__m512i
) __builtin_ia32_psubd512_mask ((__v16si
) __A
,
869 extern __inline __m512i
870 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
871 _mm512_maskz_sub_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
873 return (__m512i
) __builtin_ia32_psubd512_mask ((__v16si
) __A
,
876 _mm512_setzero_si512 (),
880 extern __inline __m512i
881 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
882 _mm512_mul_epu32 (__m512i __X
, __m512i __Y
)
884 return (__m512i
) __builtin_ia32_pmuludq512_mask ((__v16si
) __X
,
887 _mm512_undefined_si512 (),
891 extern __inline __m512i
892 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
893 _mm512_mask_mul_epu32 (__m512i __W
, __mmask8 __M
, __m512i __X
, __m512i __Y
)
895 return (__m512i
) __builtin_ia32_pmuludq512_mask ((__v16si
) __X
,
900 extern __inline __m512i
901 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
902 _mm512_maskz_mul_epu32 (__mmask8 __M
, __m512i __X
, __m512i __Y
)
904 return (__m512i
) __builtin_ia32_pmuludq512_mask ((__v16si
) __X
,
907 _mm512_setzero_si512 (),
912 extern __inline __m512i
913 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
914 _mm512_slli_epi64 (__m512i __A
, unsigned int __B
)
916 return (__m512i
) __builtin_ia32_psllqi512_mask ((__v8di
) __A
, __B
,
918 _mm512_undefined_si512 (),
922 extern __inline __m512i
923 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
924 _mm512_mask_slli_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
,
927 return (__m512i
) __builtin_ia32_psllqi512_mask ((__v8di
) __A
, __B
,
932 extern __inline __m512i
933 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
934 _mm512_maskz_slli_epi64 (__mmask8 __U
, __m512i __A
, unsigned int __B
)
936 return (__m512i
) __builtin_ia32_psllqi512_mask ((__v8di
) __A
, __B
,
938 _mm512_setzero_si512 (),
942 #define _mm512_slli_epi64(X, C) \
943 ((__m512i) __builtin_ia32_psllqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
944 (__v8di)(__m512i)_mm512_undefined_si512 (),\
947 #define _mm512_mask_slli_epi64(W, U, X, C) \
948 ((__m512i) __builtin_ia32_psllqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
949 (__v8di)(__m512i)(W),\
952 #define _mm512_maskz_slli_epi64(U, X, C) \
953 ((__m512i) __builtin_ia32_psllqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
954 (__v8di)(__m512i)_mm512_setzero_si512 (),\
958 extern __inline __m512i
959 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
960 _mm512_sll_epi64 (__m512i __A
, __m128i __B
)
962 return (__m512i
) __builtin_ia32_psllq512_mask ((__v8di
) __A
,
965 _mm512_undefined_si512 (),
969 extern __inline __m512i
970 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
971 _mm512_mask_sll_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m128i __B
)
973 return (__m512i
) __builtin_ia32_psllq512_mask ((__v8di
) __A
,
979 extern __inline __m512i
980 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
981 _mm512_maskz_sll_epi64 (__mmask8 __U
, __m512i __A
, __m128i __B
)
983 return (__m512i
) __builtin_ia32_psllq512_mask ((__v8di
) __A
,
986 _mm512_setzero_si512 (),
991 extern __inline __m512i
992 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
993 _mm512_srli_epi64 (__m512i __A
, unsigned int __B
)
995 return (__m512i
) __builtin_ia32_psrlqi512_mask ((__v8di
) __A
, __B
,
997 _mm512_undefined_si512 (),
1001 extern __inline __m512i
1002 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1003 _mm512_mask_srli_epi64 (__m512i __W
, __mmask8 __U
,
1004 __m512i __A
, unsigned int __B
)
1006 return (__m512i
) __builtin_ia32_psrlqi512_mask ((__v8di
) __A
, __B
,
1011 extern __inline __m512i
1012 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1013 _mm512_maskz_srli_epi64 (__mmask8 __U
, __m512i __A
, unsigned int __B
)
1015 return (__m512i
) __builtin_ia32_psrlqi512_mask ((__v8di
) __A
, __B
,
1017 _mm512_setzero_si512 (),
1021 #define _mm512_srli_epi64(X, C) \
1022 ((__m512i) __builtin_ia32_psrlqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1023 (__v8di)(__m512i)_mm512_undefined_si512 (),\
1026 #define _mm512_mask_srli_epi64(W, U, X, C) \
1027 ((__m512i) __builtin_ia32_psrlqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1028 (__v8di)(__m512i)(W),\
1031 #define _mm512_maskz_srli_epi64(U, X, C) \
1032 ((__m512i) __builtin_ia32_psrlqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1033 (__v8di)(__m512i)_mm512_setzero_si512 (),\
1037 extern __inline __m512i
1038 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1039 _mm512_srl_epi64 (__m512i __A
, __m128i __B
)
1041 return (__m512i
) __builtin_ia32_psrlq512_mask ((__v8di
) __A
,
1044 _mm512_undefined_si512 (),
1048 extern __inline __m512i
1049 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1050 _mm512_mask_srl_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m128i __B
)
1052 return (__m512i
) __builtin_ia32_psrlq512_mask ((__v8di
) __A
,
1058 extern __inline __m512i
1059 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1060 _mm512_maskz_srl_epi64 (__mmask8 __U
, __m512i __A
, __m128i __B
)
1062 return (__m512i
) __builtin_ia32_psrlq512_mask ((__v8di
) __A
,
1065 _mm512_setzero_si512 (),
1070 extern __inline __m512i
1071 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1072 _mm512_srai_epi64 (__m512i __A
, unsigned int __B
)
1074 return (__m512i
) __builtin_ia32_psraqi512_mask ((__v8di
) __A
, __B
,
1076 _mm512_undefined_si512 (),
1080 extern __inline __m512i
1081 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1082 _mm512_mask_srai_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
,
1085 return (__m512i
) __builtin_ia32_psraqi512_mask ((__v8di
) __A
, __B
,
1090 extern __inline __m512i
1091 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1092 _mm512_maskz_srai_epi64 (__mmask8 __U
, __m512i __A
, unsigned int __B
)
1094 return (__m512i
) __builtin_ia32_psraqi512_mask ((__v8di
) __A
, __B
,
1096 _mm512_setzero_si512 (),
1100 #define _mm512_srai_epi64(X, C) \
1101 ((__m512i) __builtin_ia32_psraqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1102 (__v8di)(__m512i)_mm512_undefined_si512 (),\
1105 #define _mm512_mask_srai_epi64(W, U, X, C) \
1106 ((__m512i) __builtin_ia32_psraqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1107 (__v8di)(__m512i)(W),\
1110 #define _mm512_maskz_srai_epi64(U, X, C) \
1111 ((__m512i) __builtin_ia32_psraqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1112 (__v8di)(__m512i)_mm512_setzero_si512 (),\
1116 extern __inline __m512i
1117 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1118 _mm512_sra_epi64 (__m512i __A
, __m128i __B
)
1120 return (__m512i
) __builtin_ia32_psraq512_mask ((__v8di
) __A
,
1123 _mm512_undefined_si512 (),
1127 extern __inline __m512i
1128 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1129 _mm512_mask_sra_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m128i __B
)
1131 return (__m512i
) __builtin_ia32_psraq512_mask ((__v8di
) __A
,
1137 extern __inline __m512i
1138 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1139 _mm512_maskz_sra_epi64 (__mmask8 __U
, __m512i __A
, __m128i __B
)
1141 return (__m512i
) __builtin_ia32_psraq512_mask ((__v8di
) __A
,
1144 _mm512_setzero_si512 (),
1149 extern __inline __m512i
1150 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1151 _mm512_slli_epi32 (__m512i __A
, unsigned int __B
)
1153 return (__m512i
) __builtin_ia32_pslldi512_mask ((__v16si
) __A
, __B
,
1155 _mm512_undefined_si512 (),
1159 extern __inline __m512i
1160 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1161 _mm512_mask_slli_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
,
1164 return (__m512i
) __builtin_ia32_pslldi512_mask ((__v16si
) __A
, __B
,
1169 extern __inline __m512i
1170 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1171 _mm512_maskz_slli_epi32 (__mmask16 __U
, __m512i __A
, unsigned int __B
)
1173 return (__m512i
) __builtin_ia32_pslldi512_mask ((__v16si
) __A
, __B
,
1175 _mm512_setzero_si512 (),
1179 #define _mm512_slli_epi32(X, C) \
1180 ((__m512i) __builtin_ia32_pslldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1181 (__v16si)(__m512i)_mm512_undefined_si512 (),\
1184 #define _mm512_mask_slli_epi32(W, U, X, C) \
1185 ((__m512i) __builtin_ia32_pslldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1186 (__v16si)(__m512i)(W),\
1189 #define _mm512_maskz_slli_epi32(U, X, C) \
1190 ((__m512i) __builtin_ia32_pslldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1191 (__v16si)(__m512i)_mm512_setzero_si512 (),\
1195 extern __inline __m512i
1196 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1197 _mm512_sll_epi32 (__m512i __A
, __m128i __B
)
1199 return (__m512i
) __builtin_ia32_pslld512_mask ((__v16si
) __A
,
1202 _mm512_undefined_si512 (),
1206 extern __inline __m512i
1207 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1208 _mm512_mask_sll_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m128i __B
)
1210 return (__m512i
) __builtin_ia32_pslld512_mask ((__v16si
) __A
,
1216 extern __inline __m512i
1217 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1218 _mm512_maskz_sll_epi32 (__mmask16 __U
, __m512i __A
, __m128i __B
)
1220 return (__m512i
) __builtin_ia32_pslld512_mask ((__v16si
) __A
,
1223 _mm512_setzero_si512 (),
1228 extern __inline __m512i
1229 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1230 _mm512_srli_epi32 (__m512i __A
, unsigned int __B
)
1232 return (__m512i
) __builtin_ia32_psrldi512_mask ((__v16si
) __A
, __B
,
1234 _mm512_undefined_si512 (),
1238 extern __inline __m512i
1239 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1240 _mm512_mask_srli_epi32 (__m512i __W
, __mmask16 __U
,
1241 __m512i __A
, unsigned int __B
)
1243 return (__m512i
) __builtin_ia32_psrldi512_mask ((__v16si
) __A
, __B
,
1248 extern __inline __m512i
1249 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1250 _mm512_maskz_srli_epi32 (__mmask16 __U
, __m512i __A
, unsigned int __B
)
1252 return (__m512i
) __builtin_ia32_psrldi512_mask ((__v16si
) __A
, __B
,
1254 _mm512_setzero_si512 (),
1258 #define _mm512_srli_epi32(X, C) \
1259 ((__m512i) __builtin_ia32_psrldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1260 (__v16si)(__m512i)_mm512_undefined_si512 (),\
1263 #define _mm512_mask_srli_epi32(W, U, X, C) \
1264 ((__m512i) __builtin_ia32_psrldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1265 (__v16si)(__m512i)(W),\
1268 #define _mm512_maskz_srli_epi32(U, X, C) \
1269 ((__m512i) __builtin_ia32_psrldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1270 (__v16si)(__m512i)_mm512_setzero_si512 (),\
1274 extern __inline __m512i
1275 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1276 _mm512_srl_epi32 (__m512i __A
, __m128i __B
)
1278 return (__m512i
) __builtin_ia32_psrld512_mask ((__v16si
) __A
,
1281 _mm512_undefined_si512 (),
1285 extern __inline __m512i
1286 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1287 _mm512_mask_srl_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m128i __B
)
1289 return (__m512i
) __builtin_ia32_psrld512_mask ((__v16si
) __A
,
1295 extern __inline __m512i
1296 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1297 _mm512_maskz_srl_epi32 (__mmask16 __U
, __m512i __A
, __m128i __B
)
1299 return (__m512i
) __builtin_ia32_psrld512_mask ((__v16si
) __A
,
1302 _mm512_setzero_si512 (),
1307 extern __inline __m512i
1308 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1309 _mm512_srai_epi32 (__m512i __A
, unsigned int __B
)
1311 return (__m512i
) __builtin_ia32_psradi512_mask ((__v16si
) __A
, __B
,
1313 _mm512_undefined_si512 (),
1317 extern __inline __m512i
1318 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1319 _mm512_mask_srai_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
,
1322 return (__m512i
) __builtin_ia32_psradi512_mask ((__v16si
) __A
, __B
,
1327 extern __inline __m512i
1328 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1329 _mm512_maskz_srai_epi32 (__mmask16 __U
, __m512i __A
, unsigned int __B
)
1331 return (__m512i
) __builtin_ia32_psradi512_mask ((__v16si
) __A
, __B
,
1333 _mm512_setzero_si512 (),
1337 #define _mm512_srai_epi32(X, C) \
1338 ((__m512i) __builtin_ia32_psradi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1339 (__v16si)(__m512i)_mm512_undefined_si512 (),\
1342 #define _mm512_mask_srai_epi32(W, U, X, C) \
1343 ((__m512i) __builtin_ia32_psradi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1344 (__v16si)(__m512i)(W),\
1347 #define _mm512_maskz_srai_epi32(U, X, C) \
1348 ((__m512i) __builtin_ia32_psradi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1349 (__v16si)(__m512i)_mm512_setzero_si512 (),\
1353 extern __inline __m512i
1354 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1355 _mm512_sra_epi32 (__m512i __A
, __m128i __B
)
1357 return (__m512i
) __builtin_ia32_psrad512_mask ((__v16si
) __A
,
1360 _mm512_undefined_si512 (),
1364 extern __inline __m512i
1365 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1366 _mm512_mask_sra_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m128i __B
)
1368 return (__m512i
) __builtin_ia32_psrad512_mask ((__v16si
) __A
,
1374 extern __inline __m512i
1375 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1376 _mm512_maskz_sra_epi32 (__mmask16 __U
, __m512i __A
, __m128i __B
)
1378 return (__m512i
) __builtin_ia32_psrad512_mask ((__v16si
) __A
,
1381 _mm512_setzero_si512 (),
1386 extern __inline __m128d
1387 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1388 _mm_add_round_sd (__m128d __A
, __m128d __B
, const int __R
)
1390 return (__m128d
) __builtin_ia32_addsd_round ((__v2df
) __A
,
1395 extern __inline __m128
1396 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1397 _mm_add_round_ss (__m128 __A
, __m128 __B
, const int __R
)
1399 return (__m128
) __builtin_ia32_addss_round ((__v4sf
) __A
,
1404 extern __inline __m128d
1405 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1406 _mm_sub_round_sd (__m128d __A
, __m128d __B
, const int __R
)
1408 return (__m128d
) __builtin_ia32_subsd_round ((__v2df
) __A
,
1413 extern __inline __m128
1414 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1415 _mm_sub_round_ss (__m128 __A
, __m128 __B
, const int __R
)
1417 return (__m128
) __builtin_ia32_subss_round ((__v4sf
) __A
,
1423 #define _mm_add_round_sd(A, B, C) \
1424 (__m128d)__builtin_ia32_addsd_round(A, B, C)
1426 #define _mm_add_round_ss(A, B, C) \
1427 (__m128)__builtin_ia32_addss_round(A, B, C)
1429 #define _mm_sub_round_sd(A, B, C) \
1430 (__m128d)__builtin_ia32_subsd_round(A, B, C)
1432 #define _mm_sub_round_ss(A, B, C) \
1433 (__m128)__builtin_ia32_subss_round(A, B, C)
1437 extern __inline __m512i
1438 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1439 _mm512_ternarylogic_epi64 (__m512i __A
, __m512i __B
, __m512i __C
, const int imm
)
1441 return (__m512i
) __builtin_ia32_pternlogq512_mask ((__v8di
) __A
,
1447 extern __inline __m512i
1448 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1449 _mm512_mask_ternarylogic_epi64 (__m512i __A
, __mmask8 __U
, __m512i __B
,
1450 __m512i __C
, const int imm
)
1452 return (__m512i
) __builtin_ia32_pternlogq512_mask ((__v8di
) __A
,
1458 extern __inline __m512i
1459 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1460 _mm512_maskz_ternarylogic_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
,
1461 __m512i __C
, const int imm
)
1463 return (__m512i
) __builtin_ia32_pternlogq512_maskz ((__v8di
) __A
,
1466 imm
, (__mmask8
) __U
);
1469 extern __inline __m512i
1470 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1471 _mm512_ternarylogic_epi32 (__m512i __A
, __m512i __B
, __m512i __C
, const int imm
)
1473 return (__m512i
) __builtin_ia32_pternlogd512_mask ((__v16si
) __A
,
1476 imm
, (__mmask16
) -1);
1479 extern __inline __m512i
1480 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1481 _mm512_mask_ternarylogic_epi32 (__m512i __A
, __mmask16 __U
, __m512i __B
,
1482 __m512i __C
, const int imm
)
1484 return (__m512i
) __builtin_ia32_pternlogd512_mask ((__v16si
) __A
,
1487 imm
, (__mmask16
) __U
);
1490 extern __inline __m512i
1491 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1492 _mm512_maskz_ternarylogic_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
,
1493 __m512i __C
, const int imm
)
1495 return (__m512i
) __builtin_ia32_pternlogd512_maskz ((__v16si
) __A
,
1498 imm
, (__mmask16
) __U
);
1501 #define _mm512_ternarylogic_epi64(A, B, C, I) \
1502 ((__m512i) __builtin_ia32_pternlogq512_mask ((__v8di)(__m512i)(A), \
1503 (__v8di)(__m512i)(B), (__v8di)(__m512i)(C), (int)(I), (__mmask8)-1))
1504 #define _mm512_mask_ternarylogic_epi64(A, U, B, C, I) \
1505 ((__m512i) __builtin_ia32_pternlogq512_mask ((__v8di)(__m512i)(A), \
1506 (__v8di)(__m512i)(B), (__v8di)(__m512i)(C), (int)(I), (__mmask8)(U)))
1507 #define _mm512_maskz_ternarylogic_epi64(U, A, B, C, I) \
1508 ((__m512i) __builtin_ia32_pternlogq512_maskz ((__v8di)(__m512i)(A), \
1509 (__v8di)(__m512i)(B), (__v8di)(__m512i)(C), (int)(I), (__mmask8)(U)))
1510 #define _mm512_ternarylogic_epi32(A, B, C, I) \
1511 ((__m512i) __builtin_ia32_pternlogd512_mask ((__v16si)(__m512i)(A), \
1512 (__v16si)(__m512i)(B), (__v16si)(__m512i)(C), (int)(I), \
1514 #define _mm512_mask_ternarylogic_epi32(A, U, B, C, I) \
1515 ((__m512i) __builtin_ia32_pternlogd512_mask ((__v16si)(__m512i)(A), \
1516 (__v16si)(__m512i)(B), (__v16si)(__m512i)(C), (int)(I), \
1518 #define _mm512_maskz_ternarylogic_epi32(U, A, B, C, I) \
1519 ((__m512i) __builtin_ia32_pternlogd512_maskz ((__v16si)(__m512i)(A), \
1520 (__v16si)(__m512i)(B), (__v16si)(__m512i)(C), (int)(I), \
1524 extern __inline __m512d
1525 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1526 _mm512_rcp14_pd (__m512d __A
)
1528 return (__m512d
) __builtin_ia32_rcp14pd512_mask ((__v8df
) __A
,
1530 _mm512_undefined_pd (),
1534 extern __inline __m512d
1535 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1536 _mm512_mask_rcp14_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
1538 return (__m512d
) __builtin_ia32_rcp14pd512_mask ((__v8df
) __A
,
1543 extern __inline __m512d
1544 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1545 _mm512_maskz_rcp14_pd (__mmask8 __U
, __m512d __A
)
1547 return (__m512d
) __builtin_ia32_rcp14pd512_mask ((__v8df
) __A
,
1549 _mm512_setzero_pd (),
1553 extern __inline __m512
1554 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1555 _mm512_rcp14_ps (__m512 __A
)
1557 return (__m512
) __builtin_ia32_rcp14ps512_mask ((__v16sf
) __A
,
1559 _mm512_undefined_ps (),
1563 extern __inline __m512
1564 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1565 _mm512_mask_rcp14_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
1567 return (__m512
) __builtin_ia32_rcp14ps512_mask ((__v16sf
) __A
,
1572 extern __inline __m512
1573 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1574 _mm512_maskz_rcp14_ps (__mmask16 __U
, __m512 __A
)
1576 return (__m512
) __builtin_ia32_rcp14ps512_mask ((__v16sf
) __A
,
1578 _mm512_setzero_ps (),
1582 extern __inline __m128d
1583 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1584 _mm_rcp14_sd (__m128d __A
, __m128d __B
)
1586 return (__m128d
) __builtin_ia32_rcp14sd ((__v2df
) __B
,
1590 extern __inline __m128
1591 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1592 _mm_rcp14_ss (__m128 __A
, __m128 __B
)
1594 return (__m128
) __builtin_ia32_rcp14ss ((__v4sf
) __B
,
1598 extern __inline __m512d
1599 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1600 _mm512_rsqrt14_pd (__m512d __A
)
1602 return (__m512d
) __builtin_ia32_rsqrt14pd512_mask ((__v8df
) __A
,
1604 _mm512_undefined_pd (),
1608 extern __inline __m512d
1609 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1610 _mm512_mask_rsqrt14_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
1612 return (__m512d
) __builtin_ia32_rsqrt14pd512_mask ((__v8df
) __A
,
1617 extern __inline __m512d
1618 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1619 _mm512_maskz_rsqrt14_pd (__mmask8 __U
, __m512d __A
)
1621 return (__m512d
) __builtin_ia32_rsqrt14pd512_mask ((__v8df
) __A
,
1623 _mm512_setzero_pd (),
1627 extern __inline __m512
1628 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1629 _mm512_rsqrt14_ps (__m512 __A
)
1631 return (__m512
) __builtin_ia32_rsqrt14ps512_mask ((__v16sf
) __A
,
1633 _mm512_undefined_ps (),
1637 extern __inline __m512
1638 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1639 _mm512_mask_rsqrt14_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
1641 return (__m512
) __builtin_ia32_rsqrt14ps512_mask ((__v16sf
) __A
,
1646 extern __inline __m512
1647 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1648 _mm512_maskz_rsqrt14_ps (__mmask16 __U
, __m512 __A
)
1650 return (__m512
) __builtin_ia32_rsqrt14ps512_mask ((__v16sf
) __A
,
1652 _mm512_setzero_ps (),
1656 extern __inline __m128d
1657 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1658 _mm_rsqrt14_sd (__m128d __A
, __m128d __B
)
1660 return (__m128d
) __builtin_ia32_rsqrt14sd ((__v2df
) __B
,
1664 extern __inline __m128
1665 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1666 _mm_rsqrt14_ss (__m128 __A
, __m128 __B
)
1668 return (__m128
) __builtin_ia32_rsqrt14ss ((__v4sf
) __B
,
1673 extern __inline __m512d
1674 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1675 _mm512_sqrt_round_pd (__m512d __A
, const int __R
)
1677 return (__m512d
) __builtin_ia32_sqrtpd512_mask ((__v8df
) __A
,
1679 _mm512_undefined_pd (),
1680 (__mmask8
) -1, __R
);
1683 extern __inline __m512d
1684 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1685 _mm512_mask_sqrt_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
1688 return (__m512d
) __builtin_ia32_sqrtpd512_mask ((__v8df
) __A
,
1690 (__mmask8
) __U
, __R
);
1693 extern __inline __m512d
1694 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1695 _mm512_maskz_sqrt_round_pd (__mmask8 __U
, __m512d __A
, const int __R
)
1697 return (__m512d
) __builtin_ia32_sqrtpd512_mask ((__v8df
) __A
,
1699 _mm512_setzero_pd (),
1700 (__mmask8
) __U
, __R
);
1703 extern __inline __m512
1704 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1705 _mm512_sqrt_round_ps (__m512 __A
, const int __R
)
1707 return (__m512
) __builtin_ia32_sqrtps512_mask ((__v16sf
) __A
,
1709 _mm512_undefined_ps (),
1710 (__mmask16
) -1, __R
);
1713 extern __inline __m512
1714 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1715 _mm512_mask_sqrt_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, const int __R
)
1717 return (__m512
) __builtin_ia32_sqrtps512_mask ((__v16sf
) __A
,
1719 (__mmask16
) __U
, __R
);
1722 extern __inline __m512
1723 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1724 _mm512_maskz_sqrt_round_ps (__mmask16 __U
, __m512 __A
, const int __R
)
1726 return (__m512
) __builtin_ia32_sqrtps512_mask ((__v16sf
) __A
,
1728 _mm512_setzero_ps (),
1729 (__mmask16
) __U
, __R
);
1732 extern __inline __m128d
1733 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1734 _mm_sqrt_round_sd (__m128d __A
, __m128d __B
, const int __R
)
1736 return (__m128d
) __builtin_ia32_sqrtsd_round ((__v2df
) __B
,
1741 extern __inline __m128
1742 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1743 _mm_sqrt_round_ss (__m128 __A
, __m128 __B
, const int __R
)
1745 return (__m128
) __builtin_ia32_sqrtss_round ((__v4sf
) __B
,
1750 #define _mm512_sqrt_round_pd(A, C) \
1751 (__m512d)__builtin_ia32_sqrtpd512_mask(A, (__v8df)_mm512_undefined_pd(), -1, C)
1753 #define _mm512_mask_sqrt_round_pd(W, U, A, C) \
1754 (__m512d)__builtin_ia32_sqrtpd512_mask(A, W, U, C)
1756 #define _mm512_maskz_sqrt_round_pd(U, A, C) \
1757 (__m512d)__builtin_ia32_sqrtpd512_mask(A, (__v8df)_mm512_setzero_pd(), U, C)
1759 #define _mm512_sqrt_round_ps(A, C) \
1760 (__m512)__builtin_ia32_sqrtps512_mask(A, (__v16sf)_mm512_undefined_ps(), -1, C)
1762 #define _mm512_mask_sqrt_round_ps(W, U, A, C) \
1763 (__m512)__builtin_ia32_sqrtps512_mask(A, W, U, C)
1765 #define _mm512_maskz_sqrt_round_ps(U, A, C) \
1766 (__m512)__builtin_ia32_sqrtps512_mask(A, (__v16sf)_mm512_setzero_ps(), U, C)
1768 #define _mm_sqrt_round_sd(A, B, C) \
1769 (__m128d)__builtin_ia32_sqrtsd_round(A, B, C)
1771 #define _mm_sqrt_round_ss(A, B, C) \
1772 (__m128)__builtin_ia32_sqrtss_round(A, B, C)
1775 extern __inline __m512i
1776 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1777 _mm512_cvtepi8_epi32 (__m128i __A
)
1779 return (__m512i
) __builtin_ia32_pmovsxbd512_mask ((__v16qi
) __A
,
1781 _mm512_undefined_si512 (),
1785 extern __inline __m512i
1786 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1787 _mm512_mask_cvtepi8_epi32 (__m512i __W
, __mmask16 __U
, __m128i __A
)
1789 return (__m512i
) __builtin_ia32_pmovsxbd512_mask ((__v16qi
) __A
,
1794 extern __inline __m512i
1795 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1796 _mm512_maskz_cvtepi8_epi32 (__mmask16 __U
, __m128i __A
)
1798 return (__m512i
) __builtin_ia32_pmovsxbd512_mask ((__v16qi
) __A
,
1800 _mm512_setzero_si512 (),
1804 extern __inline __m512i
1805 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1806 _mm512_cvtepi8_epi64 (__m128i __A
)
1808 return (__m512i
) __builtin_ia32_pmovsxbq512_mask ((__v16qi
) __A
,
1810 _mm512_undefined_si512 (),
1814 extern __inline __m512i
1815 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1816 _mm512_mask_cvtepi8_epi64 (__m512i __W
, __mmask8 __U
, __m128i __A
)
1818 return (__m512i
) __builtin_ia32_pmovsxbq512_mask ((__v16qi
) __A
,
1823 extern __inline __m512i
1824 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1825 _mm512_maskz_cvtepi8_epi64 (__mmask8 __U
, __m128i __A
)
1827 return (__m512i
) __builtin_ia32_pmovsxbq512_mask ((__v16qi
) __A
,
1829 _mm512_setzero_si512 (),
1833 extern __inline __m512i
1834 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1835 _mm512_cvtepi16_epi32 (__m256i __A
)
1837 return (__m512i
) __builtin_ia32_pmovsxwd512_mask ((__v16hi
) __A
,
1839 _mm512_undefined_si512 (),
1843 extern __inline __m512i
1844 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1845 _mm512_mask_cvtepi16_epi32 (__m512i __W
, __mmask16 __U
, __m256i __A
)
1847 return (__m512i
) __builtin_ia32_pmovsxwd512_mask ((__v16hi
) __A
,
1852 extern __inline __m512i
1853 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1854 _mm512_maskz_cvtepi16_epi32 (__mmask16 __U
, __m256i __A
)
1856 return (__m512i
) __builtin_ia32_pmovsxwd512_mask ((__v16hi
) __A
,
1858 _mm512_setzero_si512 (),
1862 extern __inline __m512i
1863 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1864 _mm512_cvtepi16_epi64 (__m128i __A
)
1866 return (__m512i
) __builtin_ia32_pmovsxwq512_mask ((__v8hi
) __A
,
1868 _mm512_undefined_si512 (),
1872 extern __inline __m512i
1873 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1874 _mm512_mask_cvtepi16_epi64 (__m512i __W
, __mmask8 __U
, __m128i __A
)
1876 return (__m512i
) __builtin_ia32_pmovsxwq512_mask ((__v8hi
) __A
,
1881 extern __inline __m512i
1882 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1883 _mm512_maskz_cvtepi16_epi64 (__mmask8 __U
, __m128i __A
)
1885 return (__m512i
) __builtin_ia32_pmovsxwq512_mask ((__v8hi
) __A
,
1887 _mm512_setzero_si512 (),
1891 extern __inline __m512i
1892 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1893 _mm512_cvtepi32_epi64 (__m256i __X
)
1895 return (__m512i
) __builtin_ia32_pmovsxdq512_mask ((__v8si
) __X
,
1897 _mm512_undefined_si512 (),
1901 extern __inline __m512i
1902 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1903 _mm512_mask_cvtepi32_epi64 (__m512i __W
, __mmask8 __U
, __m256i __X
)
1905 return (__m512i
) __builtin_ia32_pmovsxdq512_mask ((__v8si
) __X
,
1910 extern __inline __m512i
1911 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1912 _mm512_maskz_cvtepi32_epi64 (__mmask8 __U
, __m256i __X
)
1914 return (__m512i
) __builtin_ia32_pmovsxdq512_mask ((__v8si
) __X
,
1916 _mm512_setzero_si512 (),
1920 extern __inline __m512i
1921 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1922 _mm512_cvtepu8_epi32 (__m128i __A
)
1924 return (__m512i
) __builtin_ia32_pmovzxbd512_mask ((__v16qi
) __A
,
1926 _mm512_undefined_si512 (),
1930 extern __inline __m512i
1931 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1932 _mm512_mask_cvtepu8_epi32 (__m512i __W
, __mmask16 __U
, __m128i __A
)
1934 return (__m512i
) __builtin_ia32_pmovzxbd512_mask ((__v16qi
) __A
,
1939 extern __inline __m512i
1940 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1941 _mm512_maskz_cvtepu8_epi32 (__mmask16 __U
, __m128i __A
)
1943 return (__m512i
) __builtin_ia32_pmovzxbd512_mask ((__v16qi
) __A
,
1945 _mm512_setzero_si512 (),
1949 extern __inline __m512i
1950 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1951 _mm512_cvtepu8_epi64 (__m128i __A
)
1953 return (__m512i
) __builtin_ia32_pmovzxbq512_mask ((__v16qi
) __A
,
1955 _mm512_undefined_si512 (),
1959 extern __inline __m512i
1960 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1961 _mm512_mask_cvtepu8_epi64 (__m512i __W
, __mmask8 __U
, __m128i __A
)
1963 return (__m512i
) __builtin_ia32_pmovzxbq512_mask ((__v16qi
) __A
,
1968 extern __inline __m512i
1969 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1970 _mm512_maskz_cvtepu8_epi64 (__mmask8 __U
, __m128i __A
)
1972 return (__m512i
) __builtin_ia32_pmovzxbq512_mask ((__v16qi
) __A
,
1974 _mm512_setzero_si512 (),
1978 extern __inline __m512i
1979 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1980 _mm512_cvtepu16_epi32 (__m256i __A
)
1982 return (__m512i
) __builtin_ia32_pmovzxwd512_mask ((__v16hi
) __A
,
1984 _mm512_undefined_si512 (),
1988 extern __inline __m512i
1989 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1990 _mm512_mask_cvtepu16_epi32 (__m512i __W
, __mmask16 __U
, __m256i __A
)
1992 return (__m512i
) __builtin_ia32_pmovzxwd512_mask ((__v16hi
) __A
,
1997 extern __inline __m512i
1998 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
1999 _mm512_maskz_cvtepu16_epi32 (__mmask16 __U
, __m256i __A
)
2001 return (__m512i
) __builtin_ia32_pmovzxwd512_mask ((__v16hi
) __A
,
2003 _mm512_setzero_si512 (),
2007 extern __inline __m512i
2008 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2009 _mm512_cvtepu16_epi64 (__m128i __A
)
2011 return (__m512i
) __builtin_ia32_pmovzxwq512_mask ((__v8hi
) __A
,
2013 _mm512_undefined_si512 (),
2017 extern __inline __m512i
2018 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2019 _mm512_mask_cvtepu16_epi64 (__m512i __W
, __mmask8 __U
, __m128i __A
)
2021 return (__m512i
) __builtin_ia32_pmovzxwq512_mask ((__v8hi
) __A
,
2026 extern __inline __m512i
2027 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2028 _mm512_maskz_cvtepu16_epi64 (__mmask8 __U
, __m128i __A
)
2030 return (__m512i
) __builtin_ia32_pmovzxwq512_mask ((__v8hi
) __A
,
2032 _mm512_setzero_si512 (),
2036 extern __inline __m512i
2037 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2038 _mm512_cvtepu32_epi64 (__m256i __X
)
2040 return (__m512i
) __builtin_ia32_pmovzxdq512_mask ((__v8si
) __X
,
2042 _mm512_undefined_si512 (),
2046 extern __inline __m512i
2047 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2048 _mm512_mask_cvtepu32_epi64 (__m512i __W
, __mmask8 __U
, __m256i __X
)
2050 return (__m512i
) __builtin_ia32_pmovzxdq512_mask ((__v8si
) __X
,
2055 extern __inline __m512i
2056 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2057 _mm512_maskz_cvtepu32_epi64 (__mmask8 __U
, __m256i __X
)
2059 return (__m512i
) __builtin_ia32_pmovzxdq512_mask ((__v8si
) __X
,
2061 _mm512_setzero_si512 (),
2066 extern __inline __m512d
2067 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2068 _mm512_add_round_pd (__m512d __A
, __m512d __B
, const int __R
)
2070 return (__m512d
) __builtin_ia32_addpd512_mask ((__v8df
) __A
,
2073 _mm512_undefined_pd (),
2074 (__mmask8
) -1, __R
);
2077 extern __inline __m512d
2078 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2079 _mm512_mask_add_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
2080 __m512d __B
, const int __R
)
2082 return (__m512d
) __builtin_ia32_addpd512_mask ((__v8df
) __A
,
2085 (__mmask8
) __U
, __R
);
2088 extern __inline __m512d
2089 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2090 _mm512_maskz_add_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2093 return (__m512d
) __builtin_ia32_addpd512_mask ((__v8df
) __A
,
2096 _mm512_setzero_pd (),
2097 (__mmask8
) __U
, __R
);
2100 extern __inline __m512
2101 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2102 _mm512_add_round_ps (__m512 __A
, __m512 __B
, const int __R
)
2104 return (__m512
) __builtin_ia32_addps512_mask ((__v16sf
) __A
,
2107 _mm512_undefined_ps (),
2108 (__mmask16
) -1, __R
);
2111 extern __inline __m512
2112 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2113 _mm512_mask_add_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
2114 __m512 __B
, const int __R
)
2116 return (__m512
) __builtin_ia32_addps512_mask ((__v16sf
) __A
,
2119 (__mmask16
) __U
, __R
);
2122 extern __inline __m512
2123 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2124 _mm512_maskz_add_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, const int __R
)
2126 return (__m512
) __builtin_ia32_addps512_mask ((__v16sf
) __A
,
2129 _mm512_setzero_ps (),
2130 (__mmask16
) __U
, __R
);
2133 extern __inline __m512d
2134 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2135 _mm512_sub_round_pd (__m512d __A
, __m512d __B
, const int __R
)
2137 return (__m512d
) __builtin_ia32_subpd512_mask ((__v8df
) __A
,
2140 _mm512_undefined_pd (),
2141 (__mmask8
) -1, __R
);
2144 extern __inline __m512d
2145 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2146 _mm512_mask_sub_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
2147 __m512d __B
, const int __R
)
2149 return (__m512d
) __builtin_ia32_subpd512_mask ((__v8df
) __A
,
2152 (__mmask8
) __U
, __R
);
2155 extern __inline __m512d
2156 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2157 _mm512_maskz_sub_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2160 return (__m512d
) __builtin_ia32_subpd512_mask ((__v8df
) __A
,
2163 _mm512_setzero_pd (),
2164 (__mmask8
) __U
, __R
);
2167 extern __inline __m512
2168 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2169 _mm512_sub_round_ps (__m512 __A
, __m512 __B
, const int __R
)
2171 return (__m512
) __builtin_ia32_subps512_mask ((__v16sf
) __A
,
2174 _mm512_undefined_ps (),
2175 (__mmask16
) -1, __R
);
2178 extern __inline __m512
2179 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2180 _mm512_mask_sub_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
2181 __m512 __B
, const int __R
)
2183 return (__m512
) __builtin_ia32_subps512_mask ((__v16sf
) __A
,
2186 (__mmask16
) __U
, __R
);
2189 extern __inline __m512
2190 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2191 _mm512_maskz_sub_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, const int __R
)
2193 return (__m512
) __builtin_ia32_subps512_mask ((__v16sf
) __A
,
2196 _mm512_setzero_ps (),
2197 (__mmask16
) __U
, __R
);
2200 #define _mm512_add_round_pd(A, B, C) \
2201 (__m512d)__builtin_ia32_addpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C)
2203 #define _mm512_mask_add_round_pd(W, U, A, B, C) \
2204 (__m512d)__builtin_ia32_addpd512_mask(A, B, W, U, C)
2206 #define _mm512_maskz_add_round_pd(U, A, B, C) \
2207 (__m512d)__builtin_ia32_addpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
2209 #define _mm512_add_round_ps(A, B, C) \
2210 (__m512)__builtin_ia32_addps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C)
2212 #define _mm512_mask_add_round_ps(W, U, A, B, C) \
2213 (__m512)__builtin_ia32_addps512_mask(A, B, W, U, C)
2215 #define _mm512_maskz_add_round_ps(U, A, B, C) \
2216 (__m512)__builtin_ia32_addps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
2218 #define _mm512_sub_round_pd(A, B, C) \
2219 (__m512d)__builtin_ia32_subpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C)
2221 #define _mm512_mask_sub_round_pd(W, U, A, B, C) \
2222 (__m512d)__builtin_ia32_subpd512_mask(A, B, W, U, C)
2224 #define _mm512_maskz_sub_round_pd(U, A, B, C) \
2225 (__m512d)__builtin_ia32_subpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
2227 #define _mm512_sub_round_ps(A, B, C) \
2228 (__m512)__builtin_ia32_subps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C)
2230 #define _mm512_mask_sub_round_ps(W, U, A, B, C) \
2231 (__m512)__builtin_ia32_subps512_mask(A, B, W, U, C)
2233 #define _mm512_maskz_sub_round_ps(U, A, B, C) \
2234 (__m512)__builtin_ia32_subps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
2238 extern __inline __m512d
2239 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2240 _mm512_mul_round_pd (__m512d __A
, __m512d __B
, const int __R
)
2242 return (__m512d
) __builtin_ia32_mulpd512_mask ((__v8df
) __A
,
2245 _mm512_undefined_pd (),
2246 (__mmask8
) -1, __R
);
2249 extern __inline __m512d
2250 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2251 _mm512_mask_mul_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
2252 __m512d __B
, const int __R
)
2254 return (__m512d
) __builtin_ia32_mulpd512_mask ((__v8df
) __A
,
2257 (__mmask8
) __U
, __R
);
2260 extern __inline __m512d
2261 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2262 _mm512_maskz_mul_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2265 return (__m512d
) __builtin_ia32_mulpd512_mask ((__v8df
) __A
,
2268 _mm512_setzero_pd (),
2269 (__mmask8
) __U
, __R
);
2272 extern __inline __m512
2273 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2274 _mm512_mul_round_ps (__m512 __A
, __m512 __B
, const int __R
)
2276 return (__m512
) __builtin_ia32_mulps512_mask ((__v16sf
) __A
,
2279 _mm512_undefined_ps (),
2280 (__mmask16
) -1, __R
);
2283 extern __inline __m512
2284 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2285 _mm512_mask_mul_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
2286 __m512 __B
, const int __R
)
2288 return (__m512
) __builtin_ia32_mulps512_mask ((__v16sf
) __A
,
2291 (__mmask16
) __U
, __R
);
2294 extern __inline __m512
2295 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2296 _mm512_maskz_mul_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, const int __R
)
2298 return (__m512
) __builtin_ia32_mulps512_mask ((__v16sf
) __A
,
2301 _mm512_setzero_ps (),
2302 (__mmask16
) __U
, __R
);
2305 extern __inline __m512d
2306 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2307 _mm512_div_round_pd (__m512d __M
, __m512d __V
, const int __R
)
2309 return (__m512d
) __builtin_ia32_divpd512_mask ((__v8df
) __M
,
2312 _mm512_undefined_pd (),
2313 (__mmask8
) -1, __R
);
2316 extern __inline __m512d
2317 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2318 _mm512_mask_div_round_pd (__m512d __W
, __mmask8 __U
, __m512d __M
,
2319 __m512d __V
, const int __R
)
2321 return (__m512d
) __builtin_ia32_divpd512_mask ((__v8df
) __M
,
2324 (__mmask8
) __U
, __R
);
2327 extern __inline __m512d
2328 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2329 _mm512_maskz_div_round_pd (__mmask8 __U
, __m512d __M
, __m512d __V
,
2332 return (__m512d
) __builtin_ia32_divpd512_mask ((__v8df
) __M
,
2335 _mm512_setzero_pd (),
2336 (__mmask8
) __U
, __R
);
2339 extern __inline __m512
2340 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2341 _mm512_div_round_ps (__m512 __A
, __m512 __B
, const int __R
)
2343 return (__m512
) __builtin_ia32_divps512_mask ((__v16sf
) __A
,
2346 _mm512_undefined_ps (),
2347 (__mmask16
) -1, __R
);
2350 extern __inline __m512
2351 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2352 _mm512_mask_div_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
2353 __m512 __B
, const int __R
)
2355 return (__m512
) __builtin_ia32_divps512_mask ((__v16sf
) __A
,
2358 (__mmask16
) __U
, __R
);
2361 extern __inline __m512
2362 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2363 _mm512_maskz_div_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, const int __R
)
2365 return (__m512
) __builtin_ia32_divps512_mask ((__v16sf
) __A
,
2368 _mm512_setzero_ps (),
2369 (__mmask16
) __U
, __R
);
2372 extern __inline __m128d
2373 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2374 _mm_mul_round_sd (__m128d __A
, __m128d __B
, const int __R
)
2376 return (__m128d
) __builtin_ia32_mulsd_round ((__v2df
) __A
,
2381 extern __inline __m128
2382 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2383 _mm_mul_round_ss (__m128 __A
, __m128 __B
, const int __R
)
2385 return (__m128
) __builtin_ia32_mulss_round ((__v4sf
) __A
,
2390 extern __inline __m128d
2391 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2392 _mm_div_round_sd (__m128d __A
, __m128d __B
, const int __R
)
2394 return (__m128d
) __builtin_ia32_divsd_round ((__v2df
) __A
,
2399 extern __inline __m128
2400 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2401 _mm_div_round_ss (__m128 __A
, __m128 __B
, const int __R
)
2403 return (__m128
) __builtin_ia32_divss_round ((__v4sf
) __A
,
2409 #define _mm512_mul_round_pd(A, B, C) \
2410 (__m512d)__builtin_ia32_mulpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C)
2412 #define _mm512_mask_mul_round_pd(W, U, A, B, C) \
2413 (__m512d)__builtin_ia32_mulpd512_mask(A, B, W, U, C)
2415 #define _mm512_maskz_mul_round_pd(U, A, B, C) \
2416 (__m512d)__builtin_ia32_mulpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
2418 #define _mm512_mul_round_ps(A, B, C) \
2419 (__m512)__builtin_ia32_mulps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C)
2421 #define _mm512_mask_mul_round_ps(W, U, A, B, C) \
2422 (__m512)__builtin_ia32_mulps512_mask(A, B, W, U, C)
2424 #define _mm512_maskz_mul_round_ps(U, A, B, C) \
2425 (__m512)__builtin_ia32_mulps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
2427 #define _mm512_div_round_pd(A, B, C) \
2428 (__m512d)__builtin_ia32_divpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C)
2430 #define _mm512_mask_div_round_pd(W, U, A, B, C) \
2431 (__m512d)__builtin_ia32_divpd512_mask(A, B, W, U, C)
2433 #define _mm512_maskz_div_round_pd(U, A, B, C) \
2434 (__m512d)__builtin_ia32_divpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
2436 #define _mm512_div_round_ps(A, B, C) \
2437 (__m512)__builtin_ia32_divps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C)
2439 #define _mm512_mask_div_round_ps(W, U, A, B, C) \
2440 (__m512)__builtin_ia32_divps512_mask(A, B, W, U, C)
2442 #define _mm512_maskz_div_round_ps(U, A, B, C) \
2443 (__m512)__builtin_ia32_divps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
2445 #define _mm_mul_round_sd(A, B, C) \
2446 (__m128d)__builtin_ia32_mulsd_round(A, B, C)
2448 #define _mm_mul_round_ss(A, B, C) \
2449 (__m128)__builtin_ia32_mulss_round(A, B, C)
2451 #define _mm_div_round_sd(A, B, C) \
2452 (__m128d)__builtin_ia32_divsd_round(A, B, C)
2454 #define _mm_div_round_ss(A, B, C) \
2455 (__m128)__builtin_ia32_divss_round(A, B, C)
2459 extern __inline __m512d
2460 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2461 _mm512_max_round_pd (__m512d __A
, __m512d __B
, const int __R
)
2463 return (__m512d
) __builtin_ia32_maxpd512_mask ((__v8df
) __A
,
2466 _mm512_undefined_pd (),
2467 (__mmask8
) -1, __R
);
2470 extern __inline __m512d
2471 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2472 _mm512_mask_max_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
2473 __m512d __B
, const int __R
)
2475 return (__m512d
) __builtin_ia32_maxpd512_mask ((__v8df
) __A
,
2478 (__mmask8
) __U
, __R
);
2481 extern __inline __m512d
2482 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2483 _mm512_maskz_max_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2486 return (__m512d
) __builtin_ia32_maxpd512_mask ((__v8df
) __A
,
2489 _mm512_setzero_pd (),
2490 (__mmask8
) __U
, __R
);
2493 extern __inline __m512
2494 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2495 _mm512_max_round_ps (__m512 __A
, __m512 __B
, const int __R
)
2497 return (__m512
) __builtin_ia32_maxps512_mask ((__v16sf
) __A
,
2500 _mm512_undefined_ps (),
2501 (__mmask16
) -1, __R
);
2504 extern __inline __m512
2505 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2506 _mm512_mask_max_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
2507 __m512 __B
, const int __R
)
2509 return (__m512
) __builtin_ia32_maxps512_mask ((__v16sf
) __A
,
2512 (__mmask16
) __U
, __R
);
2515 extern __inline __m512
2516 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2517 _mm512_maskz_max_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, const int __R
)
2519 return (__m512
) __builtin_ia32_maxps512_mask ((__v16sf
) __A
,
2522 _mm512_setzero_ps (),
2523 (__mmask16
) __U
, __R
);
2526 extern __inline __m512d
2527 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2528 _mm512_min_round_pd (__m512d __A
, __m512d __B
, const int __R
)
2530 return (__m512d
) __builtin_ia32_minpd512_mask ((__v8df
) __A
,
2533 _mm512_undefined_pd (),
2534 (__mmask8
) -1, __R
);
2537 extern __inline __m512d
2538 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2539 _mm512_mask_min_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
2540 __m512d __B
, const int __R
)
2542 return (__m512d
) __builtin_ia32_minpd512_mask ((__v8df
) __A
,
2545 (__mmask8
) __U
, __R
);
2548 extern __inline __m512d
2549 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2550 _mm512_maskz_min_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2553 return (__m512d
) __builtin_ia32_minpd512_mask ((__v8df
) __A
,
2556 _mm512_setzero_pd (),
2557 (__mmask8
) __U
, __R
);
2560 extern __inline __m512
2561 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2562 _mm512_min_round_ps (__m512 __A
, __m512 __B
, const int __R
)
2564 return (__m512
) __builtin_ia32_minps512_mask ((__v16sf
) __A
,
2567 _mm512_undefined_ps (),
2568 (__mmask16
) -1, __R
);
2571 extern __inline __m512
2572 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2573 _mm512_mask_min_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
2574 __m512 __B
, const int __R
)
2576 return (__m512
) __builtin_ia32_minps512_mask ((__v16sf
) __A
,
2579 (__mmask16
) __U
, __R
);
2582 extern __inline __m512
2583 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2584 _mm512_maskz_min_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, const int __R
)
2586 return (__m512
) __builtin_ia32_minps512_mask ((__v16sf
) __A
,
2589 _mm512_setzero_ps (),
2590 (__mmask16
) __U
, __R
);
2593 #define _mm512_max_round_pd(A, B, R) \
2594 (__m512d)__builtin_ia32_maxpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, R)
2596 #define _mm512_mask_max_round_pd(W, U, A, B, R) \
2597 (__m512d)__builtin_ia32_maxpd512_mask(A, B, W, U, R)
2599 #define _mm512_maskz_max_round_pd(U, A, B, R) \
2600 (__m512d)__builtin_ia32_maxpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, R)
2602 #define _mm512_max_round_ps(A, B, R) \
2603 (__m512)__builtin_ia32_maxps512_mask(A, B, (__v16sf)_mm512_undefined_pd(), -1, R)
2605 #define _mm512_mask_max_round_ps(W, U, A, B, R) \
2606 (__m512)__builtin_ia32_maxps512_mask(A, B, W, U, R)
2608 #define _mm512_maskz_max_round_ps(U, A, B, R) \
2609 (__m512)__builtin_ia32_maxps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, R)
2611 #define _mm512_min_round_pd(A, B, R) \
2612 (__m512d)__builtin_ia32_minpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, R)
2614 #define _mm512_mask_min_round_pd(W, U, A, B, R) \
2615 (__m512d)__builtin_ia32_minpd512_mask(A, B, W, U, R)
2617 #define _mm512_maskz_min_round_pd(U, A, B, R) \
2618 (__m512d)__builtin_ia32_minpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, R)
2620 #define _mm512_min_round_ps(A, B, R) \
2621 (__m512)__builtin_ia32_minps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, R)
2623 #define _mm512_mask_min_round_ps(W, U, A, B, R) \
2624 (__m512)__builtin_ia32_minps512_mask(A, B, W, U, R)
2626 #define _mm512_maskz_min_round_ps(U, A, B, R) \
2627 (__m512)__builtin_ia32_minps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, R)
2631 extern __inline __m512d
2632 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2633 _mm512_scalef_round_pd (__m512d __A
, __m512d __B
, const int __R
)
2635 return (__m512d
) __builtin_ia32_scalefpd512_mask ((__v8df
) __A
,
2638 _mm512_undefined_pd (),
2639 (__mmask8
) -1, __R
);
2642 extern __inline __m512d
2643 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2644 _mm512_mask_scalef_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
2645 __m512d __B
, const int __R
)
2647 return (__m512d
) __builtin_ia32_scalefpd512_mask ((__v8df
) __A
,
2650 (__mmask8
) __U
, __R
);
2653 extern __inline __m512d
2654 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2655 _mm512_maskz_scalef_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2658 return (__m512d
) __builtin_ia32_scalefpd512_mask ((__v8df
) __A
,
2661 _mm512_setzero_pd (),
2662 (__mmask8
) __U
, __R
);
2665 extern __inline __m512
2666 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2667 _mm512_scalef_round_ps (__m512 __A
, __m512 __B
, const int __R
)
2669 return (__m512
) __builtin_ia32_scalefps512_mask ((__v16sf
) __A
,
2672 _mm512_undefined_ps (),
2673 (__mmask16
) -1, __R
);
2676 extern __inline __m512
2677 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2678 _mm512_mask_scalef_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
2679 __m512 __B
, const int __R
)
2681 return (__m512
) __builtin_ia32_scalefps512_mask ((__v16sf
) __A
,
2684 (__mmask16
) __U
, __R
);
2687 extern __inline __m512
2688 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2689 _mm512_maskz_scalef_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
2692 return (__m512
) __builtin_ia32_scalefps512_mask ((__v16sf
) __A
,
2695 _mm512_setzero_ps (),
2696 (__mmask16
) __U
, __R
);
2699 extern __inline __m128d
2700 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2701 _mm_scalef_round_sd (__m128d __A
, __m128d __B
, const int __R
)
2703 return (__m128d
) __builtin_ia32_scalefsd_round ((__v2df
) __A
,
2708 extern __inline __m128
2709 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2710 _mm_scalef_round_ss (__m128 __A
, __m128 __B
, const int __R
)
2712 return (__m128
) __builtin_ia32_scalefss_round ((__v4sf
) __A
,
2717 #define _mm512_scalef_round_pd(A, B, C) \
2718 (__m512d)__builtin_ia32_scalefpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C)
2720 #define _mm512_mask_scalef_round_pd(W, U, A, B, C) \
2721 (__m512d)__builtin_ia32_scalefpd512_mask(A, B, W, U, C)
2723 #define _mm512_maskz_scalef_round_pd(U, A, B, C) \
2724 (__m512d)__builtin_ia32_scalefpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
2726 #define _mm512_scalef_round_ps(A, B, C) \
2727 (__m512)__builtin_ia32_scalefps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C)
2729 #define _mm512_mask_scalef_round_ps(W, U, A, B, C) \
2730 (__m512)__builtin_ia32_scalefps512_mask(A, B, W, U, C)
2732 #define _mm512_maskz_scalef_round_ps(U, A, B, C) \
2733 (__m512)__builtin_ia32_scalefps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
2735 #define _mm_scalef_round_sd(A, B, C) \
2736 (__m128d)__builtin_ia32_scalefsd_round(A, B, C)
2738 #define _mm_scalef_round_ss(A, B, C) \
2739 (__m128)__builtin_ia32_scalefss_round(A, B, C)
2743 extern __inline __m512d
2744 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2745 _mm512_fmadd_round_pd (__m512d __A
, __m512d __B
, __m512d __C
, const int __R
)
2747 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
2750 (__mmask8
) -1, __R
);
2753 extern __inline __m512d
2754 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2755 _mm512_mask_fmadd_round_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
2756 __m512d __C
, const int __R
)
2758 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
2761 (__mmask8
) __U
, __R
);
2764 extern __inline __m512d
2765 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2766 _mm512_mask3_fmadd_round_pd (__m512d __A
, __m512d __B
, __m512d __C
,
2767 __mmask8 __U
, const int __R
)
2769 return (__m512d
) __builtin_ia32_vfmaddpd512_mask3 ((__v8df
) __A
,
2772 (__mmask8
) __U
, __R
);
2775 extern __inline __m512d
2776 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2777 _mm512_maskz_fmadd_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2778 __m512d __C
, const int __R
)
2780 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz ((__v8df
) __A
,
2783 (__mmask8
) __U
, __R
);
2786 extern __inline __m512
2787 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2788 _mm512_fmadd_round_ps (__m512 __A
, __m512 __B
, __m512 __C
, const int __R
)
2790 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
2793 (__mmask16
) -1, __R
);
2796 extern __inline __m512
2797 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2798 _mm512_mask_fmadd_round_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
2799 __m512 __C
, const int __R
)
2801 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
2804 (__mmask16
) __U
, __R
);
2807 extern __inline __m512
2808 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2809 _mm512_mask3_fmadd_round_ps (__m512 __A
, __m512 __B
, __m512 __C
,
2810 __mmask16 __U
, const int __R
)
2812 return (__m512
) __builtin_ia32_vfmaddps512_mask3 ((__v16sf
) __A
,
2815 (__mmask16
) __U
, __R
);
2818 extern __inline __m512
2819 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2820 _mm512_maskz_fmadd_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
2821 __m512 __C
, const int __R
)
2823 return (__m512
) __builtin_ia32_vfmaddps512_maskz ((__v16sf
) __A
,
2826 (__mmask16
) __U
, __R
);
2829 extern __inline __m512d
2830 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2831 _mm512_fmsub_round_pd (__m512d __A
, __m512d __B
, __m512d __C
, const int __R
)
2833 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
2836 (__mmask8
) -1, __R
);
2839 extern __inline __m512d
2840 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2841 _mm512_mask_fmsub_round_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
2842 __m512d __C
, const int __R
)
2844 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
2847 (__mmask8
) __U
, __R
);
2850 extern __inline __m512d
2851 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2852 _mm512_mask3_fmsub_round_pd (__m512d __A
, __m512d __B
, __m512d __C
,
2853 __mmask8 __U
, const int __R
)
2855 return (__m512d
) __builtin_ia32_vfmsubpd512_mask3 ((__v8df
) __A
,
2858 (__mmask8
) __U
, __R
);
2861 extern __inline __m512d
2862 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2863 _mm512_maskz_fmsub_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2864 __m512d __C
, const int __R
)
2866 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz ((__v8df
) __A
,
2869 (__mmask8
) __U
, __R
);
2872 extern __inline __m512
2873 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2874 _mm512_fmsub_round_ps (__m512 __A
, __m512 __B
, __m512 __C
, const int __R
)
2876 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
2879 (__mmask16
) -1, __R
);
2882 extern __inline __m512
2883 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2884 _mm512_mask_fmsub_round_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
2885 __m512 __C
, const int __R
)
2887 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
2890 (__mmask16
) __U
, __R
);
2893 extern __inline __m512
2894 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2895 _mm512_mask3_fmsub_round_ps (__m512 __A
, __m512 __B
, __m512 __C
,
2896 __mmask16 __U
, const int __R
)
2898 return (__m512
) __builtin_ia32_vfmsubps512_mask3 ((__v16sf
) __A
,
2901 (__mmask16
) __U
, __R
);
2904 extern __inline __m512
2905 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2906 _mm512_maskz_fmsub_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
2907 __m512 __C
, const int __R
)
2909 return (__m512
) __builtin_ia32_vfmaddps512_maskz ((__v16sf
) __A
,
2912 (__mmask16
) __U
, __R
);
2915 extern __inline __m512d
2916 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2917 _mm512_fmaddsub_round_pd (__m512d __A
, __m512d __B
, __m512d __C
, const int __R
)
2919 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
2922 (__mmask8
) -1, __R
);
2925 extern __inline __m512d
2926 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2927 _mm512_mask_fmaddsub_round_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
2928 __m512d __C
, const int __R
)
2930 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
2933 (__mmask8
) __U
, __R
);
2936 extern __inline __m512d
2937 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2938 _mm512_mask3_fmaddsub_round_pd (__m512d __A
, __m512d __B
, __m512d __C
,
2939 __mmask8 __U
, const int __R
)
2941 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask3 ((__v8df
) __A
,
2944 (__mmask8
) __U
, __R
);
2947 extern __inline __m512d
2948 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2949 _mm512_maskz_fmaddsub_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
2950 __m512d __C
, const int __R
)
2952 return (__m512d
) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df
) __A
,
2955 (__mmask8
) __U
, __R
);
2958 extern __inline __m512
2959 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2960 _mm512_fmaddsub_round_ps (__m512 __A
, __m512 __B
, __m512 __C
, const int __R
)
2962 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
2965 (__mmask16
) -1, __R
);
2968 extern __inline __m512
2969 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2970 _mm512_mask_fmaddsub_round_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
2971 __m512 __C
, const int __R
)
2973 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
2976 (__mmask16
) __U
, __R
);
2979 extern __inline __m512
2980 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2981 _mm512_mask3_fmaddsub_round_ps (__m512 __A
, __m512 __B
, __m512 __C
,
2982 __mmask16 __U
, const int __R
)
2984 return (__m512
) __builtin_ia32_vfmaddsubps512_mask3 ((__v16sf
) __A
,
2987 (__mmask16
) __U
, __R
);
2990 extern __inline __m512
2991 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
2992 _mm512_maskz_fmaddsub_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
2993 __m512 __C
, const int __R
)
2995 return (__m512
) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf
) __A
,
2998 (__mmask16
) __U
, __R
);
3001 extern __inline __m512d
3002 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3003 _mm512_fmsubadd_round_pd (__m512d __A
, __m512d __B
, __m512d __C
, const int __R
)
3005 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
3008 (__mmask8
) -1, __R
);
3011 extern __inline __m512d
3012 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3013 _mm512_mask_fmsubadd_round_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
3014 __m512d __C
, const int __R
)
3016 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
3019 (__mmask8
) __U
, __R
);
3022 extern __inline __m512d
3023 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3024 _mm512_mask3_fmsubadd_round_pd (__m512d __A
, __m512d __B
, __m512d __C
,
3025 __mmask8 __U
, const int __R
)
3027 return (__m512d
) __builtin_ia32_vfmsubaddpd512_mask3 ((__v8df
) __A
,
3030 (__mmask8
) __U
, __R
);
3033 extern __inline __m512d
3034 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3035 _mm512_maskz_fmsubadd_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
3036 __m512d __C
, const int __R
)
3038 return (__m512d
) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df
) __A
,
3041 (__mmask8
) __U
, __R
);
3044 extern __inline __m512
3045 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3046 _mm512_fmsubadd_round_ps (__m512 __A
, __m512 __B
, __m512 __C
, const int __R
)
3048 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
3051 (__mmask16
) -1, __R
);
3054 extern __inline __m512
3055 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3056 _mm512_mask_fmsubadd_round_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
3057 __m512 __C
, const int __R
)
3059 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
3062 (__mmask16
) __U
, __R
);
3065 extern __inline __m512
3066 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3067 _mm512_mask3_fmsubadd_round_ps (__m512 __A
, __m512 __B
, __m512 __C
,
3068 __mmask16 __U
, const int __R
)
3070 return (__m512
) __builtin_ia32_vfmsubaddps512_mask3 ((__v16sf
) __A
,
3073 (__mmask16
) __U
, __R
);
3076 extern __inline __m512
3077 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3078 _mm512_maskz_fmsubadd_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
3079 __m512 __C
, const int __R
)
3081 return (__m512
) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf
) __A
,
3084 (__mmask16
) __U
, __R
);
3087 extern __inline __m512d
3088 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3089 _mm512_fnmadd_round_pd (__m512d __A
, __m512d __B
, __m512d __C
, const int __R
)
3091 return (__m512d
) __builtin_ia32_vfmaddpd512_mask (-(__v8df
) __A
,
3094 (__mmask8
) -1, __R
);
3097 extern __inline __m512d
3098 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3099 _mm512_mask_fnmadd_round_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
3100 __m512d __C
, const int __R
)
3102 return (__m512d
) __builtin_ia32_vfnmaddpd512_mask ((__v8df
) __A
,
3105 (__mmask8
) __U
, __R
);
3108 extern __inline __m512d
3109 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3110 _mm512_mask3_fnmadd_round_pd (__m512d __A
, __m512d __B
, __m512d __C
,
3111 __mmask8 __U
, const int __R
)
3113 return (__m512d
) __builtin_ia32_vfmaddpd512_mask3 (-(__v8df
) __A
,
3116 (__mmask8
) __U
, __R
);
3119 extern __inline __m512d
3120 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3121 _mm512_maskz_fnmadd_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
3122 __m512d __C
, const int __R
)
3124 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz (-(__v8df
) __A
,
3127 (__mmask8
) __U
, __R
);
3130 extern __inline __m512
3131 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3132 _mm512_fnmadd_round_ps (__m512 __A
, __m512 __B
, __m512 __C
, const int __R
)
3134 return (__m512
) __builtin_ia32_vfmaddps512_mask (-(__v16sf
) __A
,
3137 (__mmask16
) -1, __R
);
3140 extern __inline __m512
3141 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3142 _mm512_mask_fnmadd_round_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
3143 __m512 __C
, const int __R
)
3145 return (__m512
) __builtin_ia32_vfnmaddps512_mask ((__v16sf
) __A
,
3148 (__mmask16
) __U
, __R
);
3151 extern __inline __m512
3152 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3153 _mm512_mask3_fnmadd_round_ps (__m512 __A
, __m512 __B
, __m512 __C
,
3154 __mmask16 __U
, const int __R
)
3156 return (__m512
) __builtin_ia32_vfmaddps512_mask3 (-(__v16sf
) __A
,
3159 (__mmask16
) __U
, __R
);
3162 extern __inline __m512
3163 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3164 _mm512_maskz_fnmadd_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
3165 __m512 __C
, const int __R
)
3167 return (__m512
) __builtin_ia32_vfmaddps512_maskz (-(__v16sf
) __A
,
3170 (__mmask16
) __U
, __R
);
3173 extern __inline __m512d
3174 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3175 _mm512_fnmsub_round_pd (__m512d __A
, __m512d __B
, __m512d __C
, const int __R
)
3177 return (__m512d
) __builtin_ia32_vfmaddpd512_mask (-(__v8df
) __A
,
3180 (__mmask8
) -1, __R
);
3183 extern __inline __m512d
3184 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3185 _mm512_mask_fnmsub_round_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
3186 __m512d __C
, const int __R
)
3188 return (__m512d
) __builtin_ia32_vfnmsubpd512_mask ((__v8df
) __A
,
3191 (__mmask8
) __U
, __R
);
3194 extern __inline __m512d
3195 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3196 _mm512_mask3_fnmsub_round_pd (__m512d __A
, __m512d __B
, __m512d __C
,
3197 __mmask8 __U
, const int __R
)
3199 return (__m512d
) __builtin_ia32_vfnmsubpd512_mask3 ((__v8df
) __A
,
3202 (__mmask8
) __U
, __R
);
3205 extern __inline __m512d
3206 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3207 _mm512_maskz_fnmsub_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
3208 __m512d __C
, const int __R
)
3210 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz (-(__v8df
) __A
,
3213 (__mmask8
) __U
, __R
);
3216 extern __inline __m512
3217 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3218 _mm512_fnmsub_round_ps (__m512 __A
, __m512 __B
, __m512 __C
, const int __R
)
3220 return (__m512
) __builtin_ia32_vfmaddps512_mask (-(__v16sf
) __A
,
3223 (__mmask16
) -1, __R
);
3226 extern __inline __m512
3227 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3228 _mm512_mask_fnmsub_round_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
3229 __m512 __C
, const int __R
)
3231 return (__m512
) __builtin_ia32_vfnmsubps512_mask ((__v16sf
) __A
,
3234 (__mmask16
) __U
, __R
);
3237 extern __inline __m512
3238 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3239 _mm512_mask3_fnmsub_round_ps (__m512 __A
, __m512 __B
, __m512 __C
,
3240 __mmask16 __U
, const int __R
)
3242 return (__m512
) __builtin_ia32_vfnmsubps512_mask3 ((__v16sf
) __A
,
3245 (__mmask16
) __U
, __R
);
3248 extern __inline __m512
3249 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3250 _mm512_maskz_fnmsub_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
3251 __m512 __C
, const int __R
)
3253 return (__m512
) __builtin_ia32_vfmaddps512_maskz (-(__v16sf
) __A
,
3256 (__mmask16
) __U
, __R
);
3259 #define _mm512_fmadd_round_pd(A, B, C, R) \
3260 (__m512d)__builtin_ia32_vfmaddpd512_mask(A, B, C, -1, R)
3262 #define _mm512_mask_fmadd_round_pd(A, U, B, C, R) \
3263 (__m512d)__builtin_ia32_vfmaddpd512_mask(A, B, C, U, R)
3265 #define _mm512_mask3_fmadd_round_pd(A, B, C, U, R) \
3266 (__m512d)__builtin_ia32_vfmaddpd512_mask3(A, B, C, U, R)
3268 #define _mm512_maskz_fmadd_round_pd(U, A, B, C, R) \
3269 (__m512d)__builtin_ia32_vfmaddpd512_maskz(A, B, C, U, R)
3271 #define _mm512_fmadd_round_ps(A, B, C, R) \
3272 (__m512)__builtin_ia32_vfmaddps512_mask(A, B, C, -1, R)
3274 #define _mm512_mask_fmadd_round_ps(A, U, B, C, R) \
3275 (__m512)__builtin_ia32_vfmaddps512_mask(A, B, C, U, R)
3277 #define _mm512_mask3_fmadd_round_ps(A, B, C, U, R) \
3278 (__m512)__builtin_ia32_vfmaddps512_mask3(A, B, C, U, R)
3280 #define _mm512_maskz_fmadd_round_ps(U, A, B, C, R) \
3281 (__m512)__builtin_ia32_vfmaddps512_maskz(A, B, C, U, R)
3283 #define _mm512_fmsub_round_pd(A, B, C, R) \
3284 (__m512d)__builtin_ia32_vfmaddpd512_mask(A, B, -(C), -1, R)
3286 #define _mm512_mask_fmsub_round_pd(A, U, B, C, R) \
3287 (__m512d)__builtin_ia32_vfmaddpd512_mask(A, B, -(C), U, R)
3289 #define _mm512_mask3_fmsub_round_pd(A, B, C, U, R) \
3290 (__m512d)__builtin_ia32_vfmsubpd512_mask3(A, B, C, U, R)
3292 #define _mm512_maskz_fmsub_round_pd(U, A, B, C, R) \
3293 (__m512d)__builtin_ia32_vfmaddpd512_maskz(A, B, -(C), U, R)
3295 #define _mm512_fmsub_round_ps(A, B, C, R) \
3296 (__m512)__builtin_ia32_vfmaddps512_mask(A, B, -(C), -1, R)
3298 #define _mm512_mask_fmsub_round_ps(A, U, B, C, R) \
3299 (__m512)__builtin_ia32_vfmaddps512_mask(A, B, -(C), U, R)
3301 #define _mm512_mask3_fmsub_round_ps(A, B, C, U, R) \
3302 (__m512)__builtin_ia32_vfmsubps512_mask3(A, B, C, U, R)
3304 #define _mm512_maskz_fmsub_round_ps(U, A, B, C, R) \
3305 (__m512)__builtin_ia32_vfmaddps512_maskz(A, B, -(C), U, R)
3307 #define _mm512_fmaddsub_round_pd(A, B, C, R) \
3308 (__m512d)__builtin_ia32_vfmaddsubpd512_mask(A, B, C, -1, R)
3310 #define _mm512_mask_fmaddsub_round_pd(A, U, B, C, R) \
3311 (__m512d)__builtin_ia32_vfmaddpd512_mask(A, B, C, U, R)
3313 #define _mm512_mask3_fmaddsub_round_pd(A, B, C, U, R) \
3314 (__m512d)__builtin_ia32_vfmaddsubpd512_mask3(A, B, C, U, R)
3316 #define _mm512_maskz_fmaddsub_round_pd(U, A, B, C, R) \
3317 (__m512d)__builtin_ia32_vfmaddsubpd512_maskz(A, B, C, U, R)
3319 #define _mm512_fmaddsub_round_ps(A, B, C, R) \
3320 (__m512)__builtin_ia32_vfmaddsubps512_mask(A, B, C, -1, R)
3322 #define _mm512_mask_fmaddsub_round_ps(A, U, B, C, R) \
3323 (__m512)__builtin_ia32_vfmaddsubps512_mask(A, B, C, U, R)
3325 #define _mm512_mask3_fmaddsub_round_ps(A, B, C, U, R) \
3326 (__m512)__builtin_ia32_vfmaddsubps512_mask3(A, B, C, U, R)
3328 #define _mm512_maskz_fmaddsub_round_ps(U, A, B, C, R) \
3329 (__m512)__builtin_ia32_vfmaddsubps512_maskz(A, B, C, U, R)
3331 #define _mm512_fmsubadd_round_pd(A, B, C, R) \
3332 (__m512d)__builtin_ia32_vfmaddsubpd512_mask(A, B, -(C), -1, R)
3334 #define _mm512_mask_fmsubadd_round_pd(A, U, B, C, R) \
3335 (__m512d)__builtin_ia32_vfmaddsubpd512_mask(A, B, -(C), U, R)
3337 #define _mm512_mask3_fmsubadd_round_pd(A, B, C, U, R) \
3338 (__m512d)__builtin_ia32_vfmsubaddpd512_mask3(A, B, C, U, R)
3340 #define _mm512_maskz_fmsubadd_round_pd(U, A, B, C, R) \
3341 (__m512d)__builtin_ia32_vfmaddsubpd512_maskz(A, B, -(C), U, R)
3343 #define _mm512_fmsubadd_round_ps(A, B, C, R) \
3344 (__m512)__builtin_ia32_vfmaddsubps512_mask(A, B, -(C), -1, R)
3346 #define _mm512_mask_fmsubadd_round_ps(A, U, B, C, R) \
3347 (__m512)__builtin_ia32_vfmaddsubps512_mask(A, B, -(C), U, R)
3349 #define _mm512_mask3_fmsubadd_round_ps(A, B, C, U, R) \
3350 (__m512)__builtin_ia32_vfmsubaddps512_mask3(A, B, C, U, R)
3352 #define _mm512_maskz_fmsubadd_round_ps(U, A, B, C, R) \
3353 (__m512)__builtin_ia32_vfmaddsubps512_maskz(A, B, -(C), U, R)
3355 #define _mm512_fnmadd_round_pd(A, B, C, R) \
3356 (__m512d)__builtin_ia32_vfmaddpd512_mask(-(A), B, C, -1, R)
3358 #define _mm512_mask_fnmadd_round_pd(A, U, B, C, R) \
3359 (__m512d)__builtin_ia32_vfnmaddpd512_mask(-(A), B, C, U, R)
3361 #define _mm512_mask3_fnmadd_round_pd(A, B, C, U, R) \
3362 (__m512d)__builtin_ia32_vfmaddpd512_mask3(-(A), B, C, U, R)
3364 #define _mm512_maskz_fnmadd_round_pd(U, A, B, C, R) \
3365 (__m512d)__builtin_ia32_vfmaddpd512_maskz(-(A), B, C, U, R)
3367 #define _mm512_fnmadd_round_ps(A, B, C, R) \
3368 (__m512)__builtin_ia32_vfmaddps512_mask(-(A), B, C, -1, R)
3370 #define _mm512_mask_fnmadd_round_ps(A, U, B, C, R) \
3371 (__m512)__builtin_ia32_vfnmaddps512_mask(-(A), B, C, U, R)
3373 #define _mm512_mask3_fnmadd_round_ps(A, B, C, U, R) \
3374 (__m512)__builtin_ia32_vfmaddps512_mask3(-(A), B, C, U, R)
3376 #define _mm512_maskz_fnmadd_round_ps(U, A, B, C, R) \
3377 (__m512)__builtin_ia32_vfmaddps512_maskz(-(A), B, C, U, R)
3379 #define _mm512_fnmsub_round_pd(A, B, C, R) \
3380 (__m512d)__builtin_ia32_vfmaddpd512_mask(-(A), B, -(C), -1, R)
3382 #define _mm512_mask_fnmsub_round_pd(A, U, B, C, R) \
3383 (__m512d)__builtin_ia32_vfnmsubpd512_mask(A, B, C, U, R)
3385 #define _mm512_mask3_fnmsub_round_pd(A, B, C, U, R) \
3386 (__m512d)__builtin_ia32_vfnmsubpd512_mask3(A, B, C, U, R)
3388 #define _mm512_maskz_fnmsub_round_pd(U, A, B, C, R) \
3389 (__m512d)__builtin_ia32_vfmaddpd512_maskz(-(A), B, -(C), U, R)
3391 #define _mm512_fnmsub_round_ps(A, B, C, R) \
3392 (__m512)__builtin_ia32_vfmaddps512_mask(-(A), B, -(C), -1, R)
3394 #define _mm512_mask_fnmsub_round_ps(A, U, B, C, R) \
3395 (__m512)__builtin_ia32_vfnmsubps512_mask(A, B, C, U, R)
3397 #define _mm512_mask3_fnmsub_round_ps(A, B, C, U, R) \
3398 (__m512)__builtin_ia32_vfnmsubps512_mask3(A, B, C, U, R)
3400 #define _mm512_maskz_fnmsub_round_ps(U, A, B, C, R) \
3401 (__m512)__builtin_ia32_vfmaddps512_maskz(-(A), B, -(C), U, R)
3404 extern __inline __m512i
3405 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3406 _mm512_abs_epi64 (__m512i __A
)
3408 return (__m512i
) __builtin_ia32_pabsq512_mask ((__v8di
) __A
,
3410 _mm512_undefined_si512 (),
3414 extern __inline __m512i
3415 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3416 _mm512_mask_abs_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
)
3418 return (__m512i
) __builtin_ia32_pabsq512_mask ((__v8di
) __A
,
3423 extern __inline __m512i
3424 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3425 _mm512_maskz_abs_epi64 (__mmask8 __U
, __m512i __A
)
3427 return (__m512i
) __builtin_ia32_pabsq512_mask ((__v8di
) __A
,
3429 _mm512_setzero_si512 (),
3433 extern __inline __m512i
3434 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3435 _mm512_abs_epi32 (__m512i __A
)
3437 return (__m512i
) __builtin_ia32_pabsd512_mask ((__v16si
) __A
,
3439 _mm512_undefined_si512 (),
3443 extern __inline __m512i
3444 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3445 _mm512_mask_abs_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
)
3447 return (__m512i
) __builtin_ia32_pabsd512_mask ((__v16si
) __A
,
3452 extern __inline __m512i
3453 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3454 _mm512_maskz_abs_epi32 (__mmask16 __U
, __m512i __A
)
3456 return (__m512i
) __builtin_ia32_pabsd512_mask ((__v16si
) __A
,
3458 _mm512_setzero_si512 (),
3462 extern __inline __m512
3463 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3464 _mm512_broadcastss_ps (__m128 __A
)
3466 return (__m512
) __builtin_ia32_broadcastss512 ((__v4sf
) __A
,
3468 _mm512_undefined_ps (),
3472 extern __inline __m512
3473 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3474 _mm512_mask_broadcastss_ps (__m512 __O
, __mmask16 __M
, __m128 __A
)
3476 return (__m512
) __builtin_ia32_broadcastss512 ((__v4sf
) __A
,
3477 (__v16sf
) __O
, __M
);
3480 extern __inline __m512
3481 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3482 _mm512_maskz_broadcastss_ps (__mmask16 __M
, __m128 __A
)
3484 return (__m512
) __builtin_ia32_broadcastss512 ((__v4sf
) __A
,
3486 _mm512_setzero_ps (),
3490 extern __inline __m512d
3491 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3492 _mm512_broadcastsd_pd (__m128d __A
)
3494 return (__m512d
) __builtin_ia32_broadcastsd512 ((__v2df
) __A
,
3496 _mm512_undefined_pd (),
3500 extern __inline __m512d
3501 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3502 _mm512_mask_broadcastsd_pd (__m512d __O
, __mmask8 __M
, __m128d __A
)
3504 return (__m512d
) __builtin_ia32_broadcastsd512 ((__v2df
) __A
,
3508 extern __inline __m512d
3509 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3510 _mm512_maskz_broadcastsd_pd (__mmask8 __M
, __m128d __A
)
3512 return (__m512d
) __builtin_ia32_broadcastsd512 ((__v2df
) __A
,
3514 _mm512_setzero_pd (),
3518 extern __inline __m512i
3519 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3520 _mm512_broadcastd_epi32 (__m128i __A
)
3522 return (__m512i
) __builtin_ia32_pbroadcastd512 ((__v4si
) __A
,
3524 _mm512_undefined_si512 (),
3528 extern __inline __m512i
3529 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3530 _mm512_mask_broadcastd_epi32 (__m512i __O
, __mmask16 __M
, __m128i __A
)
3532 return (__m512i
) __builtin_ia32_pbroadcastd512 ((__v4si
) __A
,
3533 (__v16si
) __O
, __M
);
3536 extern __inline __m512i
3537 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3538 _mm512_maskz_broadcastd_epi32 (__mmask16 __M
, __m128i __A
)
3540 return (__m512i
) __builtin_ia32_pbroadcastd512 ((__v4si
) __A
,
3542 _mm512_setzero_si512 (),
3546 extern __inline __m512i
3547 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3548 _mm512_set1_epi32 (int __A
)
3550 return (__m512i
) __builtin_ia32_pbroadcastd512_gpr_mask (__A
,
3552 _mm512_undefined_si512 (),
3556 extern __inline __m512i
3557 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3558 _mm512_mask_set1_epi32 (__m512i __O
, __mmask16 __M
, int __A
)
3560 return (__m512i
) __builtin_ia32_pbroadcastd512_gpr_mask (__A
, (__v16si
) __O
,
3564 extern __inline __m512i
3565 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3566 _mm512_maskz_set1_epi32 (__mmask16 __M
, int __A
)
3569 __builtin_ia32_pbroadcastd512_gpr_mask (__A
,
3570 (__v16si
) _mm512_setzero_si512 (),
3574 extern __inline __m512i
3575 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3576 _mm512_broadcastq_epi64 (__m128i __A
)
3578 return (__m512i
) __builtin_ia32_pbroadcastq512 ((__v2di
) __A
,
3580 _mm512_undefined_si512 (),
3584 extern __inline __m512i
3585 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3586 _mm512_mask_broadcastq_epi64 (__m512i __O
, __mmask8 __M
, __m128i __A
)
3588 return (__m512i
) __builtin_ia32_pbroadcastq512 ((__v2di
) __A
,
3592 extern __inline __m512i
3593 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3594 _mm512_maskz_broadcastq_epi64 (__mmask8 __M
, __m128i __A
)
3596 return (__m512i
) __builtin_ia32_pbroadcastq512 ((__v2di
) __A
,
3598 _mm512_setzero_si512 (),
3602 extern __inline __m512i
3603 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3604 _mm512_set1_epi64 (long long __A
)
3606 return (__m512i
) __builtin_ia32_pbroadcastq512_gpr_mask (__A
,
3608 _mm512_undefined_si512 (),
3612 extern __inline __m512i
3613 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3614 _mm512_mask_set1_epi64 (__m512i __O
, __mmask8 __M
, long long __A
)
3616 return (__m512i
) __builtin_ia32_pbroadcastq512_gpr_mask (__A
, (__v8di
) __O
,
3620 extern __inline __m512i
3621 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3622 _mm512_maskz_set1_epi64 (__mmask8 __M
, long long __A
)
3625 __builtin_ia32_pbroadcastq512_gpr_mask (__A
,
3626 (__v8di
) _mm512_setzero_si512 (),
3630 extern __inline __m512
3631 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3632 _mm512_broadcast_f32x4 (__m128 __A
)
3634 return (__m512
) __builtin_ia32_broadcastf32x4_512 ((__v4sf
) __A
,
3636 _mm512_undefined_ps (),
3640 extern __inline __m512
3641 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3642 _mm512_mask_broadcast_f32x4 (__m512 __O
, __mmask16 __M
, __m128 __A
)
3644 return (__m512
) __builtin_ia32_broadcastf32x4_512 ((__v4sf
) __A
,
3649 extern __inline __m512
3650 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3651 _mm512_maskz_broadcast_f32x4 (__mmask16 __M
, __m128 __A
)
3653 return (__m512
) __builtin_ia32_broadcastf32x4_512 ((__v4sf
) __A
,
3655 _mm512_setzero_ps (),
3659 extern __inline __m512i
3660 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3661 _mm512_broadcast_i32x4 (__m128i __A
)
3663 return (__m512i
) __builtin_ia32_broadcasti32x4_512 ((__v4si
) __A
,
3665 _mm512_undefined_si512 (),
3669 extern __inline __m512i
3670 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3671 _mm512_mask_broadcast_i32x4 (__m512i __O
, __mmask16 __M
, __m128i __A
)
3673 return (__m512i
) __builtin_ia32_broadcasti32x4_512 ((__v4si
) __A
,
3678 extern __inline __m512i
3679 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3680 _mm512_maskz_broadcast_i32x4 (__mmask16 __M
, __m128i __A
)
3682 return (__m512i
) __builtin_ia32_broadcasti32x4_512 ((__v4si
) __A
,
3684 _mm512_setzero_si512 (),
3688 extern __inline __m512d
3689 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3690 _mm512_broadcast_f64x4 (__m256d __A
)
3692 return (__m512d
) __builtin_ia32_broadcastf64x4_512 ((__v4df
) __A
,
3694 _mm512_undefined_pd (),
3698 extern __inline __m512d
3699 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3700 _mm512_mask_broadcast_f64x4 (__m512d __O
, __mmask8 __M
, __m256d __A
)
3702 return (__m512d
) __builtin_ia32_broadcastf64x4_512 ((__v4df
) __A
,
3707 extern __inline __m512d
3708 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3709 _mm512_maskz_broadcast_f64x4 (__mmask8 __M
, __m256d __A
)
3711 return (__m512d
) __builtin_ia32_broadcastf64x4_512 ((__v4df
) __A
,
3713 _mm512_setzero_pd (),
3717 extern __inline __m512i
3718 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3719 _mm512_broadcast_i64x4 (__m256i __A
)
3721 return (__m512i
) __builtin_ia32_broadcasti64x4_512 ((__v4di
) __A
,
3723 _mm512_undefined_si512 (),
3727 extern __inline __m512i
3728 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3729 _mm512_mask_broadcast_i64x4 (__m512i __O
, __mmask8 __M
, __m256i __A
)
3731 return (__m512i
) __builtin_ia32_broadcasti64x4_512 ((__v4di
) __A
,
3736 extern __inline __m512i
3737 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3738 _mm512_maskz_broadcast_i64x4 (__mmask8 __M
, __m256i __A
)
3740 return (__m512i
) __builtin_ia32_broadcasti64x4_512 ((__v4di
) __A
,
3742 _mm512_setzero_si512 (),
3748 _MM_PERM_AAAA
= 0x00, _MM_PERM_AAAB
= 0x01, _MM_PERM_AAAC
= 0x02,
3749 _MM_PERM_AAAD
= 0x03, _MM_PERM_AABA
= 0x04, _MM_PERM_AABB
= 0x05,
3750 _MM_PERM_AABC
= 0x06, _MM_PERM_AABD
= 0x07, _MM_PERM_AACA
= 0x08,
3751 _MM_PERM_AACB
= 0x09, _MM_PERM_AACC
= 0x0A, _MM_PERM_AACD
= 0x0B,
3752 _MM_PERM_AADA
= 0x0C, _MM_PERM_AADB
= 0x0D, _MM_PERM_AADC
= 0x0E,
3753 _MM_PERM_AADD
= 0x0F, _MM_PERM_ABAA
= 0x10, _MM_PERM_ABAB
= 0x11,
3754 _MM_PERM_ABAC
= 0x12, _MM_PERM_ABAD
= 0x13, _MM_PERM_ABBA
= 0x14,
3755 _MM_PERM_ABBB
= 0x15, _MM_PERM_ABBC
= 0x16, _MM_PERM_ABBD
= 0x17,
3756 _MM_PERM_ABCA
= 0x18, _MM_PERM_ABCB
= 0x19, _MM_PERM_ABCC
= 0x1A,
3757 _MM_PERM_ABCD
= 0x1B, _MM_PERM_ABDA
= 0x1C, _MM_PERM_ABDB
= 0x1D,
3758 _MM_PERM_ABDC
= 0x1E, _MM_PERM_ABDD
= 0x1F, _MM_PERM_ACAA
= 0x20,
3759 _MM_PERM_ACAB
= 0x21, _MM_PERM_ACAC
= 0x22, _MM_PERM_ACAD
= 0x23,
3760 _MM_PERM_ACBA
= 0x24, _MM_PERM_ACBB
= 0x25, _MM_PERM_ACBC
= 0x26,
3761 _MM_PERM_ACBD
= 0x27, _MM_PERM_ACCA
= 0x28, _MM_PERM_ACCB
= 0x29,
3762 _MM_PERM_ACCC
= 0x2A, _MM_PERM_ACCD
= 0x2B, _MM_PERM_ACDA
= 0x2C,
3763 _MM_PERM_ACDB
= 0x2D, _MM_PERM_ACDC
= 0x2E, _MM_PERM_ACDD
= 0x2F,
3764 _MM_PERM_ADAA
= 0x30, _MM_PERM_ADAB
= 0x31, _MM_PERM_ADAC
= 0x32,
3765 _MM_PERM_ADAD
= 0x33, _MM_PERM_ADBA
= 0x34, _MM_PERM_ADBB
= 0x35,
3766 _MM_PERM_ADBC
= 0x36, _MM_PERM_ADBD
= 0x37, _MM_PERM_ADCA
= 0x38,
3767 _MM_PERM_ADCB
= 0x39, _MM_PERM_ADCC
= 0x3A, _MM_PERM_ADCD
= 0x3B,
3768 _MM_PERM_ADDA
= 0x3C, _MM_PERM_ADDB
= 0x3D, _MM_PERM_ADDC
= 0x3E,
3769 _MM_PERM_ADDD
= 0x3F, _MM_PERM_BAAA
= 0x40, _MM_PERM_BAAB
= 0x41,
3770 _MM_PERM_BAAC
= 0x42, _MM_PERM_BAAD
= 0x43, _MM_PERM_BABA
= 0x44,
3771 _MM_PERM_BABB
= 0x45, _MM_PERM_BABC
= 0x46, _MM_PERM_BABD
= 0x47,
3772 _MM_PERM_BACA
= 0x48, _MM_PERM_BACB
= 0x49, _MM_PERM_BACC
= 0x4A,
3773 _MM_PERM_BACD
= 0x4B, _MM_PERM_BADA
= 0x4C, _MM_PERM_BADB
= 0x4D,
3774 _MM_PERM_BADC
= 0x4E, _MM_PERM_BADD
= 0x4F, _MM_PERM_BBAA
= 0x50,
3775 _MM_PERM_BBAB
= 0x51, _MM_PERM_BBAC
= 0x52, _MM_PERM_BBAD
= 0x53,
3776 _MM_PERM_BBBA
= 0x54, _MM_PERM_BBBB
= 0x55, _MM_PERM_BBBC
= 0x56,
3777 _MM_PERM_BBBD
= 0x57, _MM_PERM_BBCA
= 0x58, _MM_PERM_BBCB
= 0x59,
3778 _MM_PERM_BBCC
= 0x5A, _MM_PERM_BBCD
= 0x5B, _MM_PERM_BBDA
= 0x5C,
3779 _MM_PERM_BBDB
= 0x5D, _MM_PERM_BBDC
= 0x5E, _MM_PERM_BBDD
= 0x5F,
3780 _MM_PERM_BCAA
= 0x60, _MM_PERM_BCAB
= 0x61, _MM_PERM_BCAC
= 0x62,
3781 _MM_PERM_BCAD
= 0x63, _MM_PERM_BCBA
= 0x64, _MM_PERM_BCBB
= 0x65,
3782 _MM_PERM_BCBC
= 0x66, _MM_PERM_BCBD
= 0x67, _MM_PERM_BCCA
= 0x68,
3783 _MM_PERM_BCCB
= 0x69, _MM_PERM_BCCC
= 0x6A, _MM_PERM_BCCD
= 0x6B,
3784 _MM_PERM_BCDA
= 0x6C, _MM_PERM_BCDB
= 0x6D, _MM_PERM_BCDC
= 0x6E,
3785 _MM_PERM_BCDD
= 0x6F, _MM_PERM_BDAA
= 0x70, _MM_PERM_BDAB
= 0x71,
3786 _MM_PERM_BDAC
= 0x72, _MM_PERM_BDAD
= 0x73, _MM_PERM_BDBA
= 0x74,
3787 _MM_PERM_BDBB
= 0x75, _MM_PERM_BDBC
= 0x76, _MM_PERM_BDBD
= 0x77,
3788 _MM_PERM_BDCA
= 0x78, _MM_PERM_BDCB
= 0x79, _MM_PERM_BDCC
= 0x7A,
3789 _MM_PERM_BDCD
= 0x7B, _MM_PERM_BDDA
= 0x7C, _MM_PERM_BDDB
= 0x7D,
3790 _MM_PERM_BDDC
= 0x7E, _MM_PERM_BDDD
= 0x7F, _MM_PERM_CAAA
= 0x80,
3791 _MM_PERM_CAAB
= 0x81, _MM_PERM_CAAC
= 0x82, _MM_PERM_CAAD
= 0x83,
3792 _MM_PERM_CABA
= 0x84, _MM_PERM_CABB
= 0x85, _MM_PERM_CABC
= 0x86,
3793 _MM_PERM_CABD
= 0x87, _MM_PERM_CACA
= 0x88, _MM_PERM_CACB
= 0x89,
3794 _MM_PERM_CACC
= 0x8A, _MM_PERM_CACD
= 0x8B, _MM_PERM_CADA
= 0x8C,
3795 _MM_PERM_CADB
= 0x8D, _MM_PERM_CADC
= 0x8E, _MM_PERM_CADD
= 0x8F,
3796 _MM_PERM_CBAA
= 0x90, _MM_PERM_CBAB
= 0x91, _MM_PERM_CBAC
= 0x92,
3797 _MM_PERM_CBAD
= 0x93, _MM_PERM_CBBA
= 0x94, _MM_PERM_CBBB
= 0x95,
3798 _MM_PERM_CBBC
= 0x96, _MM_PERM_CBBD
= 0x97, _MM_PERM_CBCA
= 0x98,
3799 _MM_PERM_CBCB
= 0x99, _MM_PERM_CBCC
= 0x9A, _MM_PERM_CBCD
= 0x9B,
3800 _MM_PERM_CBDA
= 0x9C, _MM_PERM_CBDB
= 0x9D, _MM_PERM_CBDC
= 0x9E,
3801 _MM_PERM_CBDD
= 0x9F, _MM_PERM_CCAA
= 0xA0, _MM_PERM_CCAB
= 0xA1,
3802 _MM_PERM_CCAC
= 0xA2, _MM_PERM_CCAD
= 0xA3, _MM_PERM_CCBA
= 0xA4,
3803 _MM_PERM_CCBB
= 0xA5, _MM_PERM_CCBC
= 0xA6, _MM_PERM_CCBD
= 0xA7,
3804 _MM_PERM_CCCA
= 0xA8, _MM_PERM_CCCB
= 0xA9, _MM_PERM_CCCC
= 0xAA,
3805 _MM_PERM_CCCD
= 0xAB, _MM_PERM_CCDA
= 0xAC, _MM_PERM_CCDB
= 0xAD,
3806 _MM_PERM_CCDC
= 0xAE, _MM_PERM_CCDD
= 0xAF, _MM_PERM_CDAA
= 0xB0,
3807 _MM_PERM_CDAB
= 0xB1, _MM_PERM_CDAC
= 0xB2, _MM_PERM_CDAD
= 0xB3,
3808 _MM_PERM_CDBA
= 0xB4, _MM_PERM_CDBB
= 0xB5, _MM_PERM_CDBC
= 0xB6,
3809 _MM_PERM_CDBD
= 0xB7, _MM_PERM_CDCA
= 0xB8, _MM_PERM_CDCB
= 0xB9,
3810 _MM_PERM_CDCC
= 0xBA, _MM_PERM_CDCD
= 0xBB, _MM_PERM_CDDA
= 0xBC,
3811 _MM_PERM_CDDB
= 0xBD, _MM_PERM_CDDC
= 0xBE, _MM_PERM_CDDD
= 0xBF,
3812 _MM_PERM_DAAA
= 0xC0, _MM_PERM_DAAB
= 0xC1, _MM_PERM_DAAC
= 0xC2,
3813 _MM_PERM_DAAD
= 0xC3, _MM_PERM_DABA
= 0xC4, _MM_PERM_DABB
= 0xC5,
3814 _MM_PERM_DABC
= 0xC6, _MM_PERM_DABD
= 0xC7, _MM_PERM_DACA
= 0xC8,
3815 _MM_PERM_DACB
= 0xC9, _MM_PERM_DACC
= 0xCA, _MM_PERM_DACD
= 0xCB,
3816 _MM_PERM_DADA
= 0xCC, _MM_PERM_DADB
= 0xCD, _MM_PERM_DADC
= 0xCE,
3817 _MM_PERM_DADD
= 0xCF, _MM_PERM_DBAA
= 0xD0, _MM_PERM_DBAB
= 0xD1,
3818 _MM_PERM_DBAC
= 0xD2, _MM_PERM_DBAD
= 0xD3, _MM_PERM_DBBA
= 0xD4,
3819 _MM_PERM_DBBB
= 0xD5, _MM_PERM_DBBC
= 0xD6, _MM_PERM_DBBD
= 0xD7,
3820 _MM_PERM_DBCA
= 0xD8, _MM_PERM_DBCB
= 0xD9, _MM_PERM_DBCC
= 0xDA,
3821 _MM_PERM_DBCD
= 0xDB, _MM_PERM_DBDA
= 0xDC, _MM_PERM_DBDB
= 0xDD,
3822 _MM_PERM_DBDC
= 0xDE, _MM_PERM_DBDD
= 0xDF, _MM_PERM_DCAA
= 0xE0,
3823 _MM_PERM_DCAB
= 0xE1, _MM_PERM_DCAC
= 0xE2, _MM_PERM_DCAD
= 0xE3,
3824 _MM_PERM_DCBA
= 0xE4, _MM_PERM_DCBB
= 0xE5, _MM_PERM_DCBC
= 0xE6,
3825 _MM_PERM_DCBD
= 0xE7, _MM_PERM_DCCA
= 0xE8, _MM_PERM_DCCB
= 0xE9,
3826 _MM_PERM_DCCC
= 0xEA, _MM_PERM_DCCD
= 0xEB, _MM_PERM_DCDA
= 0xEC,
3827 _MM_PERM_DCDB
= 0xED, _MM_PERM_DCDC
= 0xEE, _MM_PERM_DCDD
= 0xEF,
3828 _MM_PERM_DDAA
= 0xF0, _MM_PERM_DDAB
= 0xF1, _MM_PERM_DDAC
= 0xF2,
3829 _MM_PERM_DDAD
= 0xF3, _MM_PERM_DDBA
= 0xF4, _MM_PERM_DDBB
= 0xF5,
3830 _MM_PERM_DDBC
= 0xF6, _MM_PERM_DDBD
= 0xF7, _MM_PERM_DDCA
= 0xF8,
3831 _MM_PERM_DDCB
= 0xF9, _MM_PERM_DDCC
= 0xFA, _MM_PERM_DDCD
= 0xFB,
3832 _MM_PERM_DDDA
= 0xFC, _MM_PERM_DDDB
= 0xFD, _MM_PERM_DDDC
= 0xFE,
3833 _MM_PERM_DDDD
= 0xFF
3837 extern __inline __m512i
3838 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3839 _mm512_shuffle_epi32 (__m512i __A
, _MM_PERM_ENUM __mask
)
3841 return (__m512i
) __builtin_ia32_pshufd512_mask ((__v16si
) __A
,
3844 _mm512_undefined_si512 (),
3848 extern __inline __m512i
3849 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3850 _mm512_mask_shuffle_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
,
3851 _MM_PERM_ENUM __mask
)
3853 return (__m512i
) __builtin_ia32_pshufd512_mask ((__v16si
) __A
,
3859 extern __inline __m512i
3860 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3861 _mm512_maskz_shuffle_epi32 (__mmask16 __U
, __m512i __A
, _MM_PERM_ENUM __mask
)
3863 return (__m512i
) __builtin_ia32_pshufd512_mask ((__v16si
) __A
,
3866 _mm512_setzero_si512 (),
3870 extern __inline __m512i
3871 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3872 _mm512_shuffle_i64x2 (__m512i __A
, __m512i __B
, const int __imm
)
3874 return (__m512i
) __builtin_ia32_shuf_i64x2_mask ((__v8di
) __A
,
3875 (__v8di
) __B
, __imm
,
3877 _mm512_undefined_si512 (),
3881 extern __inline __m512i
3882 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3883 _mm512_mask_shuffle_i64x2 (__m512i __W
, __mmask8 __U
, __m512i __A
,
3884 __m512i __B
, const int __imm
)
3886 return (__m512i
) __builtin_ia32_shuf_i64x2_mask ((__v8di
) __A
,
3887 (__v8di
) __B
, __imm
,
3892 extern __inline __m512i
3893 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3894 _mm512_maskz_shuffle_i64x2 (__mmask8 __U
, __m512i __A
, __m512i __B
,
3897 return (__m512i
) __builtin_ia32_shuf_i64x2_mask ((__v8di
) __A
,
3898 (__v8di
) __B
, __imm
,
3900 _mm512_setzero_si512 (),
3904 extern __inline __m512i
3905 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3906 _mm512_shuffle_i32x4 (__m512i __A
, __m512i __B
, const int __imm
)
3908 return (__m512i
) __builtin_ia32_shuf_i32x4_mask ((__v16si
) __A
,
3912 _mm512_undefined_si512 (),
3916 extern __inline __m512i
3917 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3918 _mm512_mask_shuffle_i32x4 (__m512i __W
, __mmask16 __U
, __m512i __A
,
3919 __m512i __B
, const int __imm
)
3921 return (__m512i
) __builtin_ia32_shuf_i32x4_mask ((__v16si
) __A
,
3928 extern __inline __m512i
3929 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3930 _mm512_maskz_shuffle_i32x4 (__mmask16 __U
, __m512i __A
, __m512i __B
,
3933 return (__m512i
) __builtin_ia32_shuf_i32x4_mask ((__v16si
) __A
,
3937 _mm512_setzero_si512 (),
3941 extern __inline __m512d
3942 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3943 _mm512_shuffle_f64x2 (__m512d __A
, __m512d __B
, const int __imm
)
3945 return (__m512d
) __builtin_ia32_shuf_f64x2_mask ((__v8df
) __A
,
3946 (__v8df
) __B
, __imm
,
3948 _mm512_undefined_pd (),
3952 extern __inline __m512d
3953 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3954 _mm512_mask_shuffle_f64x2 (__m512d __W
, __mmask8 __U
, __m512d __A
,
3955 __m512d __B
, const int __imm
)
3957 return (__m512d
) __builtin_ia32_shuf_f64x2_mask ((__v8df
) __A
,
3958 (__v8df
) __B
, __imm
,
3963 extern __inline __m512d
3964 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3965 _mm512_maskz_shuffle_f64x2 (__mmask8 __U
, __m512d __A
, __m512d __B
,
3968 return (__m512d
) __builtin_ia32_shuf_f64x2_mask ((__v8df
) __A
,
3969 (__v8df
) __B
, __imm
,
3971 _mm512_setzero_pd (),
3975 extern __inline __m512
3976 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3977 _mm512_shuffle_f32x4 (__m512 __A
, __m512 __B
, const int __imm
)
3979 return (__m512
) __builtin_ia32_shuf_f32x4_mask ((__v16sf
) __A
,
3980 (__v16sf
) __B
, __imm
,
3982 _mm512_undefined_ps (),
3986 extern __inline __m512
3987 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3988 _mm512_mask_shuffle_f32x4 (__m512 __W
, __mmask16 __U
, __m512 __A
,
3989 __m512 __B
, const int __imm
)
3991 return (__m512
) __builtin_ia32_shuf_f32x4_mask ((__v16sf
) __A
,
3992 (__v16sf
) __B
, __imm
,
3997 extern __inline __m512
3998 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
3999 _mm512_maskz_shuffle_f32x4 (__mmask16 __U
, __m512 __A
, __m512 __B
,
4002 return (__m512
) __builtin_ia32_shuf_f32x4_mask ((__v16sf
) __A
,
4003 (__v16sf
) __B
, __imm
,
4005 _mm512_setzero_ps (),
4010 #define _mm512_shuffle_epi32(X, C) \
4011 ((__m512i) __builtin_ia32_pshufd512_mask ((__v16si)(__m512i)(X), (int)(C),\
4012 (__v16si)(__m512i)_mm512_undefined_si512 (),\
4015 #define _mm512_mask_shuffle_epi32(W, U, X, C) \
4016 ((__m512i) __builtin_ia32_pshufd512_mask ((__v16si)(__m512i)(X), (int)(C),\
4017 (__v16si)(__m512i)(W),\
4020 #define _mm512_maskz_shuffle_epi32(U, X, C) \
4021 ((__m512i) __builtin_ia32_pshufd512_mask ((__v16si)(__m512i)(X), (int)(C),\
4022 (__v16si)(__m512i)_mm512_setzero_si512 (),\
4025 #define _mm512_shuffle_i64x2(X, Y, C) \
4026 ((__m512i) __builtin_ia32_shuf_i64x2_mask ((__v8di)(__m512i)(X), \
4027 (__v8di)(__m512i)(Y), (int)(C),\
4028 (__v8di)(__m512i)_mm512_undefined_si512 (),\
4031 #define _mm512_mask_shuffle_i64x2(W, U, X, Y, C) \
4032 ((__m512i) __builtin_ia32_shuf_i64x2_mask ((__v8di)(__m512i)(X), \
4033 (__v8di)(__m512i)(Y), (int)(C),\
4034 (__v8di)(__m512i)(W),\
4037 #define _mm512_maskz_shuffle_i64x2(U, X, Y, C) \
4038 ((__m512i) __builtin_ia32_shuf_i64x2_mask ((__v8di)(__m512i)(X), \
4039 (__v8di)(__m512i)(Y), (int)(C),\
4040 (__v8di)(__m512i)_mm512_setzero_si512 (),\
4043 #define _mm512_shuffle_i32x4(X, Y, C) \
4044 ((__m512i) __builtin_ia32_shuf_i32x4_mask ((__v16si)(__m512i)(X), \
4045 (__v16si)(__m512i)(Y), (int)(C),\
4046 (__v16si)(__m512i)_mm512_undefined_si512 (),\
4049 #define _mm512_mask_shuffle_i32x4(W, U, X, Y, C) \
4050 ((__m512i) __builtin_ia32_shuf_i32x4_mask ((__v16si)(__m512i)(X), \
4051 (__v16si)(__m512i)(Y), (int)(C),\
4052 (__v16si)(__m512i)(W),\
4055 #define _mm512_maskz_shuffle_i32x4(U, X, Y, C) \
4056 ((__m512i) __builtin_ia32_shuf_i32x4_mask ((__v16si)(__m512i)(X), \
4057 (__v16si)(__m512i)(Y), (int)(C),\
4058 (__v16si)(__m512i)_mm512_setzero_si512 (),\
4061 #define _mm512_shuffle_f64x2(X, Y, C) \
4062 ((__m512d) __builtin_ia32_shuf_f64x2_mask ((__v8df)(__m512d)(X), \
4063 (__v8df)(__m512d)(Y), (int)(C),\
4064 (__v8df)(__m512d)_mm512_undefined_pd(),\
4067 #define _mm512_mask_shuffle_f64x2(W, U, X, Y, C) \
4068 ((__m512d) __builtin_ia32_shuf_f64x2_mask ((__v8df)(__m512d)(X), \
4069 (__v8df)(__m512d)(Y), (int)(C),\
4070 (__v8df)(__m512d)(W),\
4073 #define _mm512_maskz_shuffle_f64x2(U, X, Y, C) \
4074 ((__m512d) __builtin_ia32_shuf_f64x2_mask ((__v8df)(__m512d)(X), \
4075 (__v8df)(__m512d)(Y), (int)(C),\
4076 (__v8df)(__m512d)_mm512_setzero_pd(),\
4079 #define _mm512_shuffle_f32x4(X, Y, C) \
4080 ((__m512) __builtin_ia32_shuf_f32x4_mask ((__v16sf)(__m512)(X), \
4081 (__v16sf)(__m512)(Y), (int)(C),\
4082 (__v16sf)(__m512)_mm512_undefined_ps(),\
4085 #define _mm512_mask_shuffle_f32x4(W, U, X, Y, C) \
4086 ((__m512) __builtin_ia32_shuf_f32x4_mask ((__v16sf)(__m512)(X), \
4087 (__v16sf)(__m512)(Y), (int)(C),\
4088 (__v16sf)(__m512)(W),\
4091 #define _mm512_maskz_shuffle_f32x4(U, X, Y, C) \
4092 ((__m512) __builtin_ia32_shuf_f32x4_mask ((__v16sf)(__m512)(X), \
4093 (__v16sf)(__m512)(Y), (int)(C),\
4094 (__v16sf)(__m512)_mm512_setzero_ps(),\
4098 extern __inline __m512i
4099 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4100 _mm512_rolv_epi32 (__m512i __A
, __m512i __B
)
4102 return (__m512i
) __builtin_ia32_prolvd512_mask ((__v16si
) __A
,
4105 _mm512_undefined_si512 (),
4109 extern __inline __m512i
4110 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4111 _mm512_mask_rolv_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
4113 return (__m512i
) __builtin_ia32_prolvd512_mask ((__v16si
) __A
,
4119 extern __inline __m512i
4120 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4121 _mm512_maskz_rolv_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
4123 return (__m512i
) __builtin_ia32_prolvd512_mask ((__v16si
) __A
,
4126 _mm512_setzero_si512 (),
4130 extern __inline __m512i
4131 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4132 _mm512_rorv_epi32 (__m512i __A
, __m512i __B
)
4134 return (__m512i
) __builtin_ia32_prorvd512_mask ((__v16si
) __A
,
4137 _mm512_undefined_si512 (),
4141 extern __inline __m512i
4142 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4143 _mm512_mask_rorv_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
4145 return (__m512i
) __builtin_ia32_prorvd512_mask ((__v16si
) __A
,
4151 extern __inline __m512i
4152 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4153 _mm512_maskz_rorv_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
4155 return (__m512i
) __builtin_ia32_prorvd512_mask ((__v16si
) __A
,
4158 _mm512_setzero_si512 (),
4162 extern __inline __m512i
4163 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4164 _mm512_rolv_epi64 (__m512i __A
, __m512i __B
)
4166 return (__m512i
) __builtin_ia32_prolvq512_mask ((__v8di
) __A
,
4169 _mm512_undefined_si512 (),
4173 extern __inline __m512i
4174 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4175 _mm512_mask_rolv_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
4177 return (__m512i
) __builtin_ia32_prolvq512_mask ((__v8di
) __A
,
4183 extern __inline __m512i
4184 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4185 _mm512_maskz_rolv_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
4187 return (__m512i
) __builtin_ia32_prolvq512_mask ((__v8di
) __A
,
4190 _mm512_setzero_si512 (),
4194 extern __inline __m512i
4195 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4196 _mm512_rorv_epi64 (__m512i __A
, __m512i __B
)
4198 return (__m512i
) __builtin_ia32_prorvq512_mask ((__v8di
) __A
,
4201 _mm512_undefined_si512 (),
4205 extern __inline __m512i
4206 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4207 _mm512_mask_rorv_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
4209 return (__m512i
) __builtin_ia32_prorvq512_mask ((__v8di
) __A
,
4215 extern __inline __m512i
4216 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4217 _mm512_maskz_rorv_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
4219 return (__m512i
) __builtin_ia32_prorvq512_mask ((__v8di
) __A
,
4222 _mm512_setzero_si512 (),
4227 extern __inline __m256i
4228 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4229 _mm512_cvtt_roundpd_epi32 (__m512d __A
, const int __R
)
4231 return (__m256i
) __builtin_ia32_cvttpd2dq512_mask ((__v8df
) __A
,
4233 _mm256_undefined_si256 (),
4234 (__mmask8
) -1, __R
);
4237 extern __inline __m256i
4238 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4239 _mm512_mask_cvtt_roundpd_epi32 (__m256i __W
, __mmask8 __U
, __m512d __A
,
4242 return (__m256i
) __builtin_ia32_cvttpd2dq512_mask ((__v8df
) __A
,
4244 (__mmask8
) __U
, __R
);
4247 extern __inline __m256i
4248 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4249 _mm512_maskz_cvtt_roundpd_epi32 (__mmask8 __U
, __m512d __A
, const int __R
)
4251 return (__m256i
) __builtin_ia32_cvttpd2dq512_mask ((__v8df
) __A
,
4253 _mm256_setzero_si256 (),
4254 (__mmask8
) __U
, __R
);
4257 extern __inline __m256i
4258 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4259 _mm512_cvtt_roundpd_epu32 (__m512d __A
, const int __R
)
4261 return (__m256i
) __builtin_ia32_cvttpd2udq512_mask ((__v8df
) __A
,
4263 _mm256_undefined_si256 (),
4264 (__mmask8
) -1, __R
);
4267 extern __inline __m256i
4268 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4269 _mm512_mask_cvtt_roundpd_epu32 (__m256i __W
, __mmask8 __U
, __m512d __A
,
4272 return (__m256i
) __builtin_ia32_cvttpd2udq512_mask ((__v8df
) __A
,
4274 (__mmask8
) __U
, __R
);
4277 extern __inline __m256i
4278 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4279 _mm512_maskz_cvtt_roundpd_epu32 (__mmask8 __U
, __m512d __A
, const int __R
)
4281 return (__m256i
) __builtin_ia32_cvttpd2udq512_mask ((__v8df
) __A
,
4283 _mm256_setzero_si256 (),
4284 (__mmask8
) __U
, __R
);
4287 #define _mm512_cvtt_roundpd_epi32(A, B) \
4288 ((__m256i)__builtin_ia32_cvttpd2dq512_mask(A, (__v8si)_mm256_undefined_si256(), -1, B))
4290 #define _mm512_mask_cvtt_roundpd_epi32(W, U, A, B) \
4291 ((__m256i)__builtin_ia32_cvttpd2dq512_mask(A, (__v8si)(W), U, B))
4293 #define _mm512_maskz_cvtt_roundpd_epi32(U, A, B) \
4294 ((__m256i)__builtin_ia32_cvttpd2dq512_mask(A, (__v8si)_mm256_setzero_si256(), U, B))
4296 #define _mm512_cvtt_roundpd_epu32(A, B) \
4297 ((__m256i)__builtin_ia32_cvttpd2udq512_mask(A, (__v8si)_mm256_undefined_si256(), -1, B))
4299 #define _mm512_mask_cvtt_roundpd_epu32(W, U, A, B) \
4300 ((__m256i)__builtin_ia32_cvttpd2udq512_mask(A, (__v8si)(W), U, B))
4302 #define _mm512_maskz_cvtt_roundpd_epu32(U, A, B) \
4303 ((__m256i)__builtin_ia32_cvttpd2udq512_mask(A, (__v8si)_mm256_setzero_si256(), U, B))
4307 extern __inline __m256i
4308 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4309 _mm512_cvt_roundpd_epi32 (__m512d __A
, const int __R
)
4311 return (__m256i
) __builtin_ia32_cvtpd2dq512_mask ((__v8df
) __A
,
4313 _mm256_undefined_si256 (),
4314 (__mmask8
) -1, __R
);
4317 extern __inline __m256i
4318 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4319 _mm512_mask_cvt_roundpd_epi32 (__m256i __W
, __mmask8 __U
, __m512d __A
,
4322 return (__m256i
) __builtin_ia32_cvtpd2dq512_mask ((__v8df
) __A
,
4324 (__mmask8
) __U
, __R
);
4327 extern __inline __m256i
4328 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4329 _mm512_maskz_cvt_roundpd_epi32 (__mmask8 __U
, __m512d __A
, const int __R
)
4331 return (__m256i
) __builtin_ia32_cvtpd2dq512_mask ((__v8df
) __A
,
4333 _mm256_setzero_si256 (),
4334 (__mmask8
) __U
, __R
);
4337 extern __inline __m256i
4338 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4339 _mm512_cvt_roundpd_epu32 (__m512d __A
, const int __R
)
4341 return (__m256i
) __builtin_ia32_cvtpd2udq512_mask ((__v8df
) __A
,
4343 _mm256_undefined_si256 (),
4344 (__mmask8
) -1, __R
);
4347 extern __inline __m256i
4348 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4349 _mm512_mask_cvt_roundpd_epu32 (__m256i __W
, __mmask8 __U
, __m512d __A
,
4352 return (__m256i
) __builtin_ia32_cvtpd2udq512_mask ((__v8df
) __A
,
4354 (__mmask8
) __U
, __R
);
4357 extern __inline __m256i
4358 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4359 _mm512_maskz_cvt_roundpd_epu32 (__mmask8 __U
, __m512d __A
, const int __R
)
4361 return (__m256i
) __builtin_ia32_cvtpd2udq512_mask ((__v8df
) __A
,
4363 _mm256_setzero_si256 (),
4364 (__mmask8
) __U
, __R
);
4367 #define _mm512_cvt_roundpd_epi32(A, B) \
4368 ((__m256i)__builtin_ia32_cvtpd2dq512_mask(A, (__v8si)_mm256_undefined_si256(), -1, B))
4370 #define _mm512_mask_cvt_roundpd_epi32(W, U, A, B) \
4371 ((__m256i)__builtin_ia32_cvtpd2dq512_mask(A, (__v8si)(W), U, B))
4373 #define _mm512_maskz_cvt_roundpd_epi32(U, A, B) \
4374 ((__m256i)__builtin_ia32_cvtpd2dq512_mask(A, (__v8si)_mm256_setzero_si256(), U, B))
4376 #define _mm512_cvt_roundpd_epu32(A, B) \
4377 ((__m256i)__builtin_ia32_cvtpd2udq512_mask(A, (__v8si)_mm256_undefined_si256(), -1, B))
4379 #define _mm512_mask_cvt_roundpd_epu32(W, U, A, B) \
4380 ((__m256i)__builtin_ia32_cvtpd2udq512_mask(A, (__v8si)(W), U, B))
4382 #define _mm512_maskz_cvt_roundpd_epu32(U, A, B) \
4383 ((__m256i)__builtin_ia32_cvtpd2udq512_mask(A, (__v8si)_mm256_setzero_si256(), U, B))
4387 extern __inline __m512i
4388 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4389 _mm512_cvtt_roundps_epi32 (__m512 __A
, const int __R
)
4391 return (__m512i
) __builtin_ia32_cvttps2dq512_mask ((__v16sf
) __A
,
4393 _mm512_undefined_si512 (),
4394 (__mmask16
) -1, __R
);
4397 extern __inline __m512i
4398 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4399 _mm512_mask_cvtt_roundps_epi32 (__m512i __W
, __mmask16 __U
, __m512 __A
,
4402 return (__m512i
) __builtin_ia32_cvttps2dq512_mask ((__v16sf
) __A
,
4404 (__mmask16
) __U
, __R
);
4407 extern __inline __m512i
4408 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4409 _mm512_maskz_cvtt_roundps_epi32 (__mmask16 __U
, __m512 __A
, const int __R
)
4411 return (__m512i
) __builtin_ia32_cvttps2dq512_mask ((__v16sf
) __A
,
4413 _mm512_setzero_si512 (),
4414 (__mmask16
) __U
, __R
);
4417 extern __inline __m512i
4418 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4419 _mm512_cvtt_roundps_epu32 (__m512 __A
, const int __R
)
4421 return (__m512i
) __builtin_ia32_cvttps2udq512_mask ((__v16sf
) __A
,
4423 _mm512_undefined_si512 (),
4424 (__mmask16
) -1, __R
);
4427 extern __inline __m512i
4428 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4429 _mm512_mask_cvtt_roundps_epu32 (__m512i __W
, __mmask16 __U
, __m512 __A
,
4432 return (__m512i
) __builtin_ia32_cvttps2udq512_mask ((__v16sf
) __A
,
4434 (__mmask16
) __U
, __R
);
4437 extern __inline __m512i
4438 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4439 _mm512_maskz_cvtt_roundps_epu32 (__mmask16 __U
, __m512 __A
, const int __R
)
4441 return (__m512i
) __builtin_ia32_cvttps2udq512_mask ((__v16sf
) __A
,
4443 _mm512_setzero_si512 (),
4444 (__mmask16
) __U
, __R
);
4447 #define _mm512_cvtt_roundps_epi32(A, B) \
4448 ((__m512i)__builtin_ia32_cvttps2dq512_mask(A, (__v16si)_mm512_undefined_si512 (), -1, B))
4450 #define _mm512_mask_cvtt_roundps_epi32(W, U, A, B) \
4451 ((__m512i)__builtin_ia32_cvttps2dq512_mask(A, (__v16si)(W), U, B))
4453 #define _mm512_maskz_cvtt_roundps_epi32(U, A, B) \
4454 ((__m512i)__builtin_ia32_cvttps2dq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
4456 #define _mm512_cvtt_roundps_epu32(A, B) \
4457 ((__m512i)__builtin_ia32_cvttps2udq512_mask(A, (__v16si)_mm512_undefined_si512 (), -1, B))
4459 #define _mm512_mask_cvtt_roundps_epu32(W, U, A, B) \
4460 ((__m512i)__builtin_ia32_cvttps2udq512_mask(A, (__v16si)(W), U, B))
4462 #define _mm512_maskz_cvtt_roundps_epu32(U, A, B) \
4463 ((__m512i)__builtin_ia32_cvttps2udq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
4467 extern __inline __m512i
4468 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4469 _mm512_cvt_roundps_epi32 (__m512 __A
, const int __R
)
4471 return (__m512i
) __builtin_ia32_cvtps2dq512_mask ((__v16sf
) __A
,
4473 _mm512_undefined_si512 (),
4474 (__mmask16
) -1, __R
);
4477 extern __inline __m512i
4478 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4479 _mm512_mask_cvt_roundps_epi32 (__m512i __W
, __mmask16 __U
, __m512 __A
,
4482 return (__m512i
) __builtin_ia32_cvtps2dq512_mask ((__v16sf
) __A
,
4484 (__mmask16
) __U
, __R
);
4487 extern __inline __m512i
4488 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4489 _mm512_maskz_cvt_roundps_epi32 (__mmask16 __U
, __m512 __A
, const int __R
)
4491 return (__m512i
) __builtin_ia32_cvtps2dq512_mask ((__v16sf
) __A
,
4493 _mm512_setzero_si512 (),
4494 (__mmask16
) __U
, __R
);
4497 extern __inline __m512i
4498 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4499 _mm512_cvt_roundps_epu32 (__m512 __A
, const int __R
)
4501 return (__m512i
) __builtin_ia32_cvtps2udq512_mask ((__v16sf
) __A
,
4503 _mm512_undefined_si512 (),
4504 (__mmask16
) -1, __R
);
4507 extern __inline __m512i
4508 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4509 _mm512_mask_cvt_roundps_epu32 (__m512i __W
, __mmask16 __U
, __m512 __A
,
4512 return (__m512i
) __builtin_ia32_cvtps2udq512_mask ((__v16sf
) __A
,
4514 (__mmask16
) __U
, __R
);
4517 extern __inline __m512i
4518 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4519 _mm512_maskz_cvt_roundps_epu32 (__mmask16 __U
, __m512 __A
, const int __R
)
4521 return (__m512i
) __builtin_ia32_cvtps2udq512_mask ((__v16sf
) __A
,
4523 _mm512_setzero_si512 (),
4524 (__mmask16
) __U
, __R
);
4527 #define _mm512_cvt_roundps_epi32(A, B) \
4528 ((__m512i)__builtin_ia32_cvtps2dq512_mask(A, (__v16si)_mm512_undefined_si512 (), -1, B))
4530 #define _mm512_mask_cvt_roundps_epi32(W, U, A, B) \
4531 ((__m512i)__builtin_ia32_cvtps2dq512_mask(A, (__v16si)(W), U, B))
4533 #define _mm512_maskz_cvt_roundps_epi32(U, A, B) \
4534 ((__m512i)__builtin_ia32_cvtps2dq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
4536 #define _mm512_cvt_roundps_epu32(A, B) \
4537 ((__m512i)__builtin_ia32_cvtps2udq512_mask(A, (__v16si)_mm512_undefined_si512 (), -1, B))
4539 #define _mm512_mask_cvt_roundps_epu32(W, U, A, B) \
4540 ((__m512i)__builtin_ia32_cvtps2udq512_mask(A, (__v16si)(W), U, B))
4542 #define _mm512_maskz_cvt_roundps_epu32(U, A, B) \
4543 ((__m512i)__builtin_ia32_cvtps2udq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
4546 extern __inline __m128d
4547 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4548 _mm_cvtu32_sd (__m128d __A
, unsigned __B
)
4550 return (__m128d
) __builtin_ia32_cvtusi2sd32 ((__v2df
) __A
, __B
);
4555 extern __inline __m128d
4556 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4557 _mm_cvt_roundu64_sd (__m128d __A
, unsigned long long __B
, const int __R
)
4559 return (__m128d
) __builtin_ia32_cvtusi2sd64 ((__v2df
) __A
, __B
, __R
);
4562 extern __inline __m128d
4563 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4564 _mm_cvt_roundi64_sd (__m128d __A
, long long __B
, const int __R
)
4566 return (__m128d
) __builtin_ia32_cvtsi2sd64 ((__v2df
) __A
, __B
, __R
);
4569 extern __inline __m128d
4570 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4571 _mm_cvt_roundsi64_sd (__m128d __A
, long long __B
, const int __R
)
4573 return (__m128d
) __builtin_ia32_cvtsi2sd64 ((__v2df
) __A
, __B
, __R
);
4576 #define _mm_cvt_roundu64_sd(A, B, C) \
4577 (__m128d)__builtin_ia32_cvtusi2sd64(A, B, C)
4579 #define _mm_cvt_roundi64_sd(A, B, C) \
4580 (__m128d)__builtin_ia32_cvtsi2sd64(A, B, C)
4582 #define _mm_cvt_roundsi64_sd(A, B, C) \
4583 (__m128d)__builtin_ia32_cvtsi2sd64(A, B, C)
4589 extern __inline __m128
4590 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4591 _mm_cvt_roundu32_ss (__m128 __A
, unsigned __B
, const int __R
)
4593 return (__m128
) __builtin_ia32_cvtusi2ss32 ((__v4sf
) __A
, __B
, __R
);
4596 extern __inline __m128
4597 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4598 _mm_cvt_roundsi32_ss (__m128 __A
, int __B
, const int __R
)
4600 return (__m128
) __builtin_ia32_cvtsi2ss32 ((__v4sf
) __A
, __B
, __R
);
4603 extern __inline __m128
4604 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4605 _mm_cvt_roundi32_ss (__m128 __A
, int __B
, const int __R
)
4607 return (__m128
) __builtin_ia32_cvtsi2ss32 ((__v4sf
) __A
, __B
, __R
);
4610 #define _mm_cvt_roundu32_ss(A, B, C) \
4611 (__m128)__builtin_ia32_cvtusi2ss32(A, B, C)
4613 #define _mm_cvt_roundi32_ss(A, B, C) \
4614 (__m128)__builtin_ia32_cvtsi2ss32(A, B, C)
4616 #define _mm_cvt_roundsi32_ss(A, B, C) \
4617 (__m128)__builtin_ia32_cvtsi2ss32(A, B, C)
4622 extern __inline __m128
4623 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4624 _mm_cvt_roundu64_ss (__m128 __A
, unsigned long long __B
, const int __R
)
4626 return (__m128
) __builtin_ia32_cvtusi2ss64 ((__v4sf
) __A
, __B
, __R
);
4629 extern __inline __m128
4630 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4631 _mm_cvt_roundsi64_ss (__m128 __A
, long long __B
, const int __R
)
4633 return (__m128
) __builtin_ia32_cvtsi2ss64 ((__v4sf
) __A
, __B
, __R
);
4636 extern __inline __m128
4637 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4638 _mm_cvt_roundi64_ss (__m128 __A
, long long __B
, const int __R
)
4640 return (__m128
) __builtin_ia32_cvtsi2ss64 ((__v4sf
) __A
, __B
, __R
);
4643 #define _mm_cvt_roundu64_ss(A, B, C) \
4644 (__m128)__builtin_ia32_cvtusi2ss64(A, B, C)
4646 #define _mm_cvt_roundi64_ss(A, B, C) \
4647 (__m128)__builtin_ia32_cvtsi2ss64(A, B, C)
4649 #define _mm_cvt_roundsi64_ss(A, B, C) \
4650 (__m128)__builtin_ia32_cvtsi2ss64(A, B, C)
4655 extern __inline __m128i
4656 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4657 _mm512_cvtepi32_epi8 (__m512i __A
)
4659 return (__m128i
) __builtin_ia32_pmovdb512_mask ((__v16si
) __A
,
4661 _mm_undefined_si128 (),
4665 extern __inline
void
4666 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4667 _mm512_mask_cvtepi32_storeu_epi8 (void * __P
, __mmask16 __M
, __m512i __A
)
4669 __builtin_ia32_pmovdb512mem_mask ((__v16qi
*) __P
, (__v16si
) __A
, __M
);
4672 extern __inline __m128i
4673 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4674 _mm512_mask_cvtepi32_epi8 (__m128i __O
, __mmask16 __M
, __m512i __A
)
4676 return (__m128i
) __builtin_ia32_pmovdb512_mask ((__v16si
) __A
,
4677 (__v16qi
) __O
, __M
);
4680 extern __inline __m128i
4681 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4682 _mm512_maskz_cvtepi32_epi8 (__mmask16 __M
, __m512i __A
)
4684 return (__m128i
) __builtin_ia32_pmovdb512_mask ((__v16si
) __A
,
4686 _mm_setzero_si128 (),
4690 extern __inline __m128i
4691 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4692 _mm512_cvtsepi32_epi8 (__m512i __A
)
4694 return (__m128i
) __builtin_ia32_pmovsdb512_mask ((__v16si
) __A
,
4696 _mm_undefined_si128 (),
4700 extern __inline
void
4701 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4702 _mm512_mask_cvtsepi32_storeu_epi8 (void * __P
, __mmask16 __M
, __m512i __A
)
4704 __builtin_ia32_pmovsdb512mem_mask ((__v16qi
*) __P
, (__v16si
) __A
, __M
);
4707 extern __inline __m128i
4708 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4709 _mm512_mask_cvtsepi32_epi8 (__m128i __O
, __mmask16 __M
, __m512i __A
)
4711 return (__m128i
) __builtin_ia32_pmovsdb512_mask ((__v16si
) __A
,
4712 (__v16qi
) __O
, __M
);
4715 extern __inline __m128i
4716 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4717 _mm512_maskz_cvtsepi32_epi8 (__mmask16 __M
, __m512i __A
)
4719 return (__m128i
) __builtin_ia32_pmovsdb512_mask ((__v16si
) __A
,
4721 _mm_setzero_si128 (),
4725 extern __inline __m128i
4726 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4727 _mm512_cvtusepi32_epi8 (__m512i __A
)
4729 return (__m128i
) __builtin_ia32_pmovusdb512_mask ((__v16si
) __A
,
4731 _mm_undefined_si128 (),
4735 extern __inline
void
4736 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4737 _mm512_mask_cvtusepi32_storeu_epi8 (void * __P
, __mmask16 __M
, __m512i __A
)
4739 __builtin_ia32_pmovusdb512mem_mask ((__v16qi
*) __P
, (__v16si
) __A
, __M
);
4742 extern __inline __m128i
4743 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4744 _mm512_mask_cvtusepi32_epi8 (__m128i __O
, __mmask16 __M
, __m512i __A
)
4746 return (__m128i
) __builtin_ia32_pmovusdb512_mask ((__v16si
) __A
,
4751 extern __inline __m128i
4752 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4753 _mm512_maskz_cvtusepi32_epi8 (__mmask16 __M
, __m512i __A
)
4755 return (__m128i
) __builtin_ia32_pmovusdb512_mask ((__v16si
) __A
,
4757 _mm_setzero_si128 (),
4761 extern __inline __m256i
4762 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4763 _mm512_cvtepi32_epi16 (__m512i __A
)
4765 return (__m256i
) __builtin_ia32_pmovdw512_mask ((__v16si
) __A
,
4767 _mm256_undefined_si256 (),
4771 extern __inline
void
4772 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4773 _mm512_mask_cvtepi32_storeu_epi16 (void * __P
, __mmask16 __M
, __m512i __A
)
4775 __builtin_ia32_pmovdw512mem_mask ((__v16hi
*) __P
, (__v16si
) __A
, __M
);
4778 extern __inline __m256i
4779 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4780 _mm512_mask_cvtepi32_epi16 (__m256i __O
, __mmask16 __M
, __m512i __A
)
4782 return (__m256i
) __builtin_ia32_pmovdw512_mask ((__v16si
) __A
,
4783 (__v16hi
) __O
, __M
);
4786 extern __inline __m256i
4787 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4788 _mm512_maskz_cvtepi32_epi16 (__mmask16 __M
, __m512i __A
)
4790 return (__m256i
) __builtin_ia32_pmovdw512_mask ((__v16si
) __A
,
4792 _mm256_setzero_si256 (),
4796 extern __inline __m256i
4797 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4798 _mm512_cvtsepi32_epi16 (__m512i __A
)
4800 return (__m256i
) __builtin_ia32_pmovsdw512_mask ((__v16si
) __A
,
4802 _mm256_undefined_si256 (),
4806 extern __inline
void
4807 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4808 _mm512_mask_cvtsepi32_storeu_epi16 (void *__P
, __mmask16 __M
, __m512i __A
)
4810 __builtin_ia32_pmovsdw512mem_mask ((__v16hi
*) __P
, (__v16si
) __A
, __M
);
4813 extern __inline __m256i
4814 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4815 _mm512_mask_cvtsepi32_epi16 (__m256i __O
, __mmask16 __M
, __m512i __A
)
4817 return (__m256i
) __builtin_ia32_pmovsdw512_mask ((__v16si
) __A
,
4818 (__v16hi
) __O
, __M
);
4821 extern __inline __m256i
4822 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4823 _mm512_maskz_cvtsepi32_epi16 (__mmask16 __M
, __m512i __A
)
4825 return (__m256i
) __builtin_ia32_pmovsdw512_mask ((__v16si
) __A
,
4827 _mm256_setzero_si256 (),
4831 extern __inline __m256i
4832 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4833 _mm512_cvtusepi32_epi16 (__m512i __A
)
4835 return (__m256i
) __builtin_ia32_pmovusdw512_mask ((__v16si
) __A
,
4837 _mm256_undefined_si256 (),
4841 extern __inline
void
4842 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4843 _mm512_mask_cvtusepi32_storeu_epi16 (void *__P
, __mmask16 __M
, __m512i __A
)
4845 __builtin_ia32_pmovusdw512mem_mask ((__v16hi
*) __P
, (__v16si
) __A
, __M
);
4848 extern __inline __m256i
4849 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4850 _mm512_mask_cvtusepi32_epi16 (__m256i __O
, __mmask16 __M
, __m512i __A
)
4852 return (__m256i
) __builtin_ia32_pmovusdw512_mask ((__v16si
) __A
,
4857 extern __inline __m256i
4858 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4859 _mm512_maskz_cvtusepi32_epi16 (__mmask16 __M
, __m512i __A
)
4861 return (__m256i
) __builtin_ia32_pmovusdw512_mask ((__v16si
) __A
,
4863 _mm256_setzero_si256 (),
4867 extern __inline __m256i
4868 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4869 _mm512_cvtepi64_epi32 (__m512i __A
)
4871 return (__m256i
) __builtin_ia32_pmovqd512_mask ((__v8di
) __A
,
4873 _mm256_undefined_si256 (),
4877 extern __inline
void
4878 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4879 _mm512_mask_cvtepi64_storeu_epi32 (void* __P
, __mmask8 __M
, __m512i __A
)
4881 __builtin_ia32_pmovqd512mem_mask ((__v8si
*) __P
, (__v8di
) __A
, __M
);
4884 extern __inline __m256i
4885 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4886 _mm512_mask_cvtepi64_epi32 (__m256i __O
, __mmask8 __M
, __m512i __A
)
4888 return (__m256i
) __builtin_ia32_pmovqd512_mask ((__v8di
) __A
,
4892 extern __inline __m256i
4893 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4894 _mm512_maskz_cvtepi64_epi32 (__mmask8 __M
, __m512i __A
)
4896 return (__m256i
) __builtin_ia32_pmovqd512_mask ((__v8di
) __A
,
4898 _mm256_setzero_si256 (),
4902 extern __inline __m256i
4903 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4904 _mm512_cvtsepi64_epi32 (__m512i __A
)
4906 return (__m256i
) __builtin_ia32_pmovsqd512_mask ((__v8di
) __A
,
4908 _mm256_undefined_si256 (),
4912 extern __inline
void
4913 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4914 _mm512_mask_cvtsepi64_storeu_epi32 (void *__P
, __mmask8 __M
, __m512i __A
)
4916 __builtin_ia32_pmovsqd512mem_mask ((__v8si
*) __P
, (__v8di
) __A
, __M
);
4919 extern __inline __m256i
4920 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4921 _mm512_mask_cvtsepi64_epi32 (__m256i __O
, __mmask8 __M
, __m512i __A
)
4923 return (__m256i
) __builtin_ia32_pmovsqd512_mask ((__v8di
) __A
,
4927 extern __inline __m256i
4928 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4929 _mm512_maskz_cvtsepi64_epi32 (__mmask8 __M
, __m512i __A
)
4931 return (__m256i
) __builtin_ia32_pmovsqd512_mask ((__v8di
) __A
,
4933 _mm256_setzero_si256 (),
4937 extern __inline __m256i
4938 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4939 _mm512_cvtusepi64_epi32 (__m512i __A
)
4941 return (__m256i
) __builtin_ia32_pmovusqd512_mask ((__v8di
) __A
,
4943 _mm256_undefined_si256 (),
4947 extern __inline
void
4948 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4949 _mm512_mask_cvtusepi64_storeu_epi32 (void* __P
, __mmask8 __M
, __m512i __A
)
4951 __builtin_ia32_pmovusqd512mem_mask ((__v8si
*) __P
, (__v8di
) __A
, __M
);
4954 extern __inline __m256i
4955 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4956 _mm512_mask_cvtusepi64_epi32 (__m256i __O
, __mmask8 __M
, __m512i __A
)
4958 return (__m256i
) __builtin_ia32_pmovusqd512_mask ((__v8di
) __A
,
4962 extern __inline __m256i
4963 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4964 _mm512_maskz_cvtusepi64_epi32 (__mmask8 __M
, __m512i __A
)
4966 return (__m256i
) __builtin_ia32_pmovusqd512_mask ((__v8di
) __A
,
4968 _mm256_setzero_si256 (),
4972 extern __inline __m128i
4973 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4974 _mm512_cvtepi64_epi16 (__m512i __A
)
4976 return (__m128i
) __builtin_ia32_pmovqw512_mask ((__v8di
) __A
,
4978 _mm_undefined_si128 (),
4982 extern __inline
void
4983 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4984 _mm512_mask_cvtepi64_storeu_epi16 (void *__P
, __mmask8 __M
, __m512i __A
)
4986 __builtin_ia32_pmovqw512mem_mask ((__v8hi
*) __P
, (__v8di
) __A
, __M
);
4989 extern __inline __m128i
4990 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4991 _mm512_mask_cvtepi64_epi16 (__m128i __O
, __mmask8 __M
, __m512i __A
)
4993 return (__m128i
) __builtin_ia32_pmovqw512_mask ((__v8di
) __A
,
4997 extern __inline __m128i
4998 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
4999 _mm512_maskz_cvtepi64_epi16 (__mmask8 __M
, __m512i __A
)
5001 return (__m128i
) __builtin_ia32_pmovqw512_mask ((__v8di
) __A
,
5003 _mm_setzero_si128 (),
5007 extern __inline __m128i
5008 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5009 _mm512_cvtsepi64_epi16 (__m512i __A
)
5011 return (__m128i
) __builtin_ia32_pmovsqw512_mask ((__v8di
) __A
,
5013 _mm_undefined_si128 (),
5017 extern __inline
void
5018 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5019 _mm512_mask_cvtsepi64_storeu_epi16 (void * __P
, __mmask8 __M
, __m512i __A
)
5021 __builtin_ia32_pmovsqw512mem_mask ((__v8hi
*) __P
, (__v8di
) __A
, __M
);
5024 extern __inline __m128i
5025 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5026 _mm512_mask_cvtsepi64_epi16 (__m128i __O
, __mmask8 __M
, __m512i __A
)
5028 return (__m128i
) __builtin_ia32_pmovsqw512_mask ((__v8di
) __A
,
5032 extern __inline __m128i
5033 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5034 _mm512_maskz_cvtsepi64_epi16 (__mmask8 __M
, __m512i __A
)
5036 return (__m128i
) __builtin_ia32_pmovsqw512_mask ((__v8di
) __A
,
5038 _mm_setzero_si128 (),
5042 extern __inline __m128i
5043 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5044 _mm512_cvtusepi64_epi16 (__m512i __A
)
5046 return (__m128i
) __builtin_ia32_pmovusqw512_mask ((__v8di
) __A
,
5048 _mm_undefined_si128 (),
5052 extern __inline
void
5053 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5054 _mm512_mask_cvtusepi64_storeu_epi16 (void *__P
, __mmask8 __M
, __m512i __A
)
5056 __builtin_ia32_pmovusqw512mem_mask ((__v8hi
*) __P
, (__v8di
) __A
, __M
);
5059 extern __inline __m128i
5060 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5061 _mm512_mask_cvtusepi64_epi16 (__m128i __O
, __mmask8 __M
, __m512i __A
)
5063 return (__m128i
) __builtin_ia32_pmovusqw512_mask ((__v8di
) __A
,
5067 extern __inline __m128i
5068 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5069 _mm512_maskz_cvtusepi64_epi16 (__mmask8 __M
, __m512i __A
)
5071 return (__m128i
) __builtin_ia32_pmovusqw512_mask ((__v8di
) __A
,
5073 _mm_setzero_si128 (),
5077 extern __inline __m128i
5078 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5079 _mm512_cvtepi64_epi8 (__m512i __A
)
5081 return (__m128i
) __builtin_ia32_pmovqb512_mask ((__v8di
) __A
,
5083 _mm_undefined_si128 (),
5087 extern __inline
void
5088 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5089 _mm512_mask_cvtepi64_storeu_epi8 (void * __P
, __mmask8 __M
, __m512i __A
)
5091 __builtin_ia32_pmovqb512mem_mask ((__v16qi
*) __P
, (__v8di
) __A
, __M
);
5094 extern __inline __m128i
5095 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5096 _mm512_mask_cvtepi64_epi8 (__m128i __O
, __mmask8 __M
, __m512i __A
)
5098 return (__m128i
) __builtin_ia32_pmovqb512_mask ((__v8di
) __A
,
5099 (__v16qi
) __O
, __M
);
5102 extern __inline __m128i
5103 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5104 _mm512_maskz_cvtepi64_epi8 (__mmask8 __M
, __m512i __A
)
5106 return (__m128i
) __builtin_ia32_pmovqb512_mask ((__v8di
) __A
,
5108 _mm_setzero_si128 (),
5112 extern __inline __m128i
5113 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5114 _mm512_cvtsepi64_epi8 (__m512i __A
)
5116 return (__m128i
) __builtin_ia32_pmovsqb512_mask ((__v8di
) __A
,
5118 _mm_undefined_si128 (),
5122 extern __inline
void
5123 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5124 _mm512_mask_cvtsepi64_storeu_epi8 (void * __P
, __mmask8 __M
, __m512i __A
)
5126 __builtin_ia32_pmovsqb512mem_mask ((__v16qi
*) __P
, (__v8di
) __A
, __M
);
5129 extern __inline __m128i
5130 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5131 _mm512_mask_cvtsepi64_epi8 (__m128i __O
, __mmask8 __M
, __m512i __A
)
5133 return (__m128i
) __builtin_ia32_pmovsqb512_mask ((__v8di
) __A
,
5134 (__v16qi
) __O
, __M
);
5137 extern __inline __m128i
5138 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5139 _mm512_maskz_cvtsepi64_epi8 (__mmask8 __M
, __m512i __A
)
5141 return (__m128i
) __builtin_ia32_pmovsqb512_mask ((__v8di
) __A
,
5143 _mm_setzero_si128 (),
5147 extern __inline __m128i
5148 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5149 _mm512_cvtusepi64_epi8 (__m512i __A
)
5151 return (__m128i
) __builtin_ia32_pmovusqb512_mask ((__v8di
) __A
,
5153 _mm_undefined_si128 (),
5157 extern __inline
void
5158 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5159 _mm512_mask_cvtusepi64_storeu_epi8 (void * __P
, __mmask8 __M
, __m512i __A
)
5161 __builtin_ia32_pmovusqb512mem_mask ((__v16qi
*) __P
, (__v8di
) __A
, __M
);
5164 extern __inline __m128i
5165 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5166 _mm512_mask_cvtusepi64_epi8 (__m128i __O
, __mmask8 __M
, __m512i __A
)
5168 return (__m128i
) __builtin_ia32_pmovusqb512_mask ((__v8di
) __A
,
5173 extern __inline __m128i
5174 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5175 _mm512_maskz_cvtusepi64_epi8 (__mmask8 __M
, __m512i __A
)
5177 return (__m128i
) __builtin_ia32_pmovusqb512_mask ((__v8di
) __A
,
5179 _mm_setzero_si128 (),
5183 extern __inline __m512d
5184 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5185 _mm512_cvtepi32_pd (__m256i __A
)
5187 return (__m512d
) __builtin_ia32_cvtdq2pd512_mask ((__v8si
) __A
,
5189 _mm512_undefined_pd (),
5193 extern __inline __m512d
5194 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5195 _mm512_mask_cvtepi32_pd (__m512d __W
, __mmask8 __U
, __m256i __A
)
5197 return (__m512d
) __builtin_ia32_cvtdq2pd512_mask ((__v8si
) __A
,
5202 extern __inline __m512d
5203 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5204 _mm512_maskz_cvtepi32_pd (__mmask8 __U
, __m256i __A
)
5206 return (__m512d
) __builtin_ia32_cvtdq2pd512_mask ((__v8si
) __A
,
5208 _mm512_setzero_pd (),
5212 extern __inline __m512d
5213 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5214 _mm512_cvtepu32_pd (__m256i __A
)
5216 return (__m512d
) __builtin_ia32_cvtudq2pd512_mask ((__v8si
) __A
,
5218 _mm512_undefined_pd (),
5222 extern __inline __m512d
5223 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5224 _mm512_mask_cvtepu32_pd (__m512d __W
, __mmask8 __U
, __m256i __A
)
5226 return (__m512d
) __builtin_ia32_cvtudq2pd512_mask ((__v8si
) __A
,
5231 extern __inline __m512d
5232 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5233 _mm512_maskz_cvtepu32_pd (__mmask8 __U
, __m256i __A
)
5235 return (__m512d
) __builtin_ia32_cvtudq2pd512_mask ((__v8si
) __A
,
5237 _mm512_setzero_pd (),
5242 extern __inline __m512
5243 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5244 _mm512_cvt_roundepi32_ps (__m512i __A
, const int __R
)
5246 return (__m512
) __builtin_ia32_cvtdq2ps512_mask ((__v16si
) __A
,
5248 _mm512_undefined_ps (),
5249 (__mmask16
) -1, __R
);
5252 extern __inline __m512
5253 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5254 _mm512_mask_cvt_roundepi32_ps (__m512 __W
, __mmask16 __U
, __m512i __A
,
5257 return (__m512
) __builtin_ia32_cvtdq2ps512_mask ((__v16si
) __A
,
5259 (__mmask16
) __U
, __R
);
5262 extern __inline __m512
5263 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5264 _mm512_maskz_cvt_roundepi32_ps (__mmask16 __U
, __m512i __A
, const int __R
)
5266 return (__m512
) __builtin_ia32_cvtdq2ps512_mask ((__v16si
) __A
,
5268 _mm512_setzero_ps (),
5269 (__mmask16
) __U
, __R
);
5272 extern __inline __m512
5273 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5274 _mm512_cvt_roundepu32_ps (__m512i __A
, const int __R
)
5276 return (__m512
) __builtin_ia32_cvtudq2ps512_mask ((__v16si
) __A
,
5278 _mm512_undefined_ps (),
5279 (__mmask16
) -1, __R
);
5282 extern __inline __m512
5283 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5284 _mm512_mask_cvt_roundepu32_ps (__m512 __W
, __mmask16 __U
, __m512i __A
,
5287 return (__m512
) __builtin_ia32_cvtudq2ps512_mask ((__v16si
) __A
,
5289 (__mmask16
) __U
, __R
);
5292 extern __inline __m512
5293 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5294 _mm512_maskz_cvt_roundepu32_ps (__mmask16 __U
, __m512i __A
, const int __R
)
5296 return (__m512
) __builtin_ia32_cvtudq2ps512_mask ((__v16si
) __A
,
5298 _mm512_setzero_ps (),
5299 (__mmask16
) __U
, __R
);
5303 #define _mm512_cvt_roundepi32_ps(A, B) \
5304 (__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(A), (__v16sf)_mm512_undefined_ps(), -1, B)
5306 #define _mm512_mask_cvt_roundepi32_ps(W, U, A, B) \
5307 (__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(A), W, U, B)
5309 #define _mm512_maskz_cvt_roundepi32_ps(U, A, B) \
5310 (__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(A), (__v16sf)_mm512_setzero_ps(), U, B)
5312 #define _mm512_cvt_roundepu32_ps(A, B) \
5313 (__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(A), (__v16sf)_mm512_undefined_ps(), -1, B)
5315 #define _mm512_mask_cvt_roundepu32_ps(W, U, A, B) \
5316 (__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(A), W, U, B)
5318 #define _mm512_maskz_cvt_roundepu32_ps(U, A, B) \
5319 (__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(A), (__v16sf)_mm512_setzero_ps(), U, B)
5323 extern __inline __m256d
5324 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5325 _mm512_extractf64x4_pd (__m512d __A
, const int __imm
)
5327 return (__m256d
) __builtin_ia32_extractf64x4_mask ((__v8df
) __A
,
5330 _mm256_undefined_pd (),
5334 extern __inline __m256d
5335 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5336 _mm512_mask_extractf64x4_pd (__m256d __W
, __mmask8 __U
, __m512d __A
,
5339 return (__m256d
) __builtin_ia32_extractf64x4_mask ((__v8df
) __A
,
5345 extern __inline __m256d
5346 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5347 _mm512_maskz_extractf64x4_pd (__mmask8 __U
, __m512d __A
, const int __imm
)
5349 return (__m256d
) __builtin_ia32_extractf64x4_mask ((__v8df
) __A
,
5352 _mm256_setzero_pd (),
5356 extern __inline __m128
5357 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5358 _mm512_extractf32x4_ps (__m512 __A
, const int __imm
)
5360 return (__m128
) __builtin_ia32_extractf32x4_mask ((__v16sf
) __A
,
5363 _mm_undefined_ps (),
5367 extern __inline __m128
5368 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5369 _mm512_mask_extractf32x4_ps (__m128 __W
, __mmask8 __U
, __m512 __A
,
5372 return (__m128
) __builtin_ia32_extractf32x4_mask ((__v16sf
) __A
,
5378 extern __inline __m128
5379 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5380 _mm512_maskz_extractf32x4_ps (__mmask8 __U
, __m512 __A
, const int __imm
)
5382 return (__m128
) __builtin_ia32_extractf32x4_mask ((__v16sf
) __A
,
5389 extern __inline __m256i
5390 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5391 _mm512_extracti64x4_epi64 (__m512i __A
, const int __imm
)
5393 return (__m256i
) __builtin_ia32_extracti64x4_mask ((__v8di
) __A
,
5396 _mm256_undefined_si256 (),
5400 extern __inline __m256i
5401 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5402 _mm512_mask_extracti64x4_epi64 (__m256i __W
, __mmask8 __U
, __m512i __A
,
5405 return (__m256i
) __builtin_ia32_extracti64x4_mask ((__v8di
) __A
,
5411 extern __inline __m256i
5412 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5413 _mm512_maskz_extracti64x4_epi64 (__mmask8 __U
, __m512i __A
, const int __imm
)
5415 return (__m256i
) __builtin_ia32_extracti64x4_mask ((__v8di
) __A
,
5418 _mm256_setzero_si256 (),
5422 extern __inline __m128i
5423 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5424 _mm512_extracti32x4_epi32 (__m512i __A
, const int __imm
)
5426 return (__m128i
) __builtin_ia32_extracti32x4_mask ((__v16si
) __A
,
5429 _mm_undefined_si128 (),
5433 extern __inline __m128i
5434 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5435 _mm512_mask_extracti32x4_epi32 (__m128i __W
, __mmask8 __U
, __m512i __A
,
5438 return (__m128i
) __builtin_ia32_extracti32x4_mask ((__v16si
) __A
,
5444 extern __inline __m128i
5445 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5446 _mm512_maskz_extracti32x4_epi32 (__mmask8 __U
, __m512i __A
, const int __imm
)
5448 return (__m128i
) __builtin_ia32_extracti32x4_mask ((__v16si
) __A
,
5451 _mm_setzero_si128 (),
5456 #define _mm512_extractf64x4_pd(X, C) \
5457 ((__m256d) __builtin_ia32_extractf64x4_mask ((__v8df)(__m512d) (X), \
5459 (__v4df)(__m256d)_mm256_undefined_pd(),\
5462 #define _mm512_mask_extractf64x4_pd(W, U, X, C) \
5463 ((__m256d) __builtin_ia32_extractf64x4_mask ((__v8df)(__m512d) (X), \
5465 (__v4df)(__m256d)(W),\
5468 #define _mm512_maskz_extractf64x4_pd(U, X, C) \
5469 ((__m256d) __builtin_ia32_extractf64x4_mask ((__v8df)(__m512d) (X), \
5471 (__v4df)(__m256d)_mm256_setzero_pd(),\
5474 #define _mm512_extractf32x4_ps(X, C) \
5475 ((__m128) __builtin_ia32_extractf32x4_mask ((__v16sf)(__m512) (X), \
5477 (__v4sf)(__m128)_mm_undefined_ps(),\
5480 #define _mm512_mask_extractf32x4_ps(W, U, X, C) \
5481 ((__m128) __builtin_ia32_extractf32x4_mask ((__v16sf)(__m512) (X), \
5483 (__v4sf)(__m128)(W),\
5486 #define _mm512_maskz_extractf32x4_ps(U, X, C) \
5487 ((__m128) __builtin_ia32_extractf32x4_mask ((__v16sf)(__m512) (X), \
5489 (__v4sf)(__m128)_mm_setzero_ps(),\
5492 #define _mm512_extracti64x4_epi64(X, C) \
5493 ((__m256i) __builtin_ia32_extracti64x4_mask ((__v8di)(__m512i) (X), \
5495 (__v4di)(__m256i)_mm256_undefined_si256 (),\
5498 #define _mm512_mask_extracti64x4_epi64(W, U, X, C) \
5499 ((__m256i) __builtin_ia32_extracti64x4_mask ((__v8di)(__m512i) (X), \
5501 (__v4di)(__m256i)(W),\
5504 #define _mm512_maskz_extracti64x4_epi64(U, X, C) \
5505 ((__m256i) __builtin_ia32_extracti64x4_mask ((__v8di)(__m512i) (X), \
5507 (__v4di)(__m256i)_mm256_setzero_si256 (),\
5510 #define _mm512_extracti32x4_epi32(X, C) \
5511 ((__m128i) __builtin_ia32_extracti32x4_mask ((__v16si)(__m512i) (X), \
5513 (__v4si)(__m128i)_mm_undefined_si128 (),\
5516 #define _mm512_mask_extracti32x4_epi32(W, U, X, C) \
5517 ((__m128i) __builtin_ia32_extracti32x4_mask ((__v16si)(__m512i) (X), \
5519 (__v4si)(__m128i)(W),\
5522 #define _mm512_maskz_extracti32x4_epi32(U, X, C) \
5523 ((__m128i) __builtin_ia32_extracti32x4_mask ((__v16si)(__m512i) (X), \
5525 (__v4si)(__m128i)_mm_setzero_si128 (),\
5530 extern __inline __m512i
5531 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5532 _mm512_inserti32x4 (__m512i __A
, __m128i __B
, const int __imm
)
5534 return (__m512i
) __builtin_ia32_inserti32x4_mask ((__v16si
) __A
,
5540 extern __inline __m512
5541 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5542 _mm512_insertf32x4 (__m512 __A
, __m128 __B
, const int __imm
)
5544 return (__m512
) __builtin_ia32_insertf32x4_mask ((__v16sf
) __A
,
5550 extern __inline __m512i
5551 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5552 _mm512_inserti64x4 (__m512i __A
, __m256i __B
, const int __imm
)
5554 return (__m512i
) __builtin_ia32_inserti64x4_mask ((__v8di
) __A
,
5558 _mm512_undefined_si512 (),
5562 extern __inline __m512i
5563 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5564 _mm512_mask_inserti64x4 (__m512i __W
, __mmask8 __U
, __m512i __A
,
5565 __m256i __B
, const int __imm
)
5567 return (__m512i
) __builtin_ia32_inserti64x4_mask ((__v8di
) __A
,
5574 extern __inline __m512i
5575 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5576 _mm512_maskz_inserti64x4 (__mmask8 __U
, __m512i __A
, __m256i __B
,
5579 return (__m512i
) __builtin_ia32_inserti64x4_mask ((__v8di
) __A
,
5583 _mm512_setzero_si512 (),
5587 extern __inline __m512d
5588 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5589 _mm512_insertf64x4 (__m512d __A
, __m256d __B
, const int __imm
)
5591 return (__m512d
) __builtin_ia32_insertf64x4_mask ((__v8df
) __A
,
5595 _mm512_undefined_pd (),
5599 extern __inline __m512d
5600 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5601 _mm512_mask_insertf64x4 (__m512d __W
, __mmask8 __U
, __m512d __A
,
5602 __m256d __B
, const int __imm
)
5604 return (__m512d
) __builtin_ia32_insertf64x4_mask ((__v8df
) __A
,
5611 extern __inline __m512d
5612 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5613 _mm512_maskz_insertf64x4 (__mmask8 __U
, __m512d __A
, __m256d __B
,
5616 return (__m512d
) __builtin_ia32_insertf64x4_mask ((__v8df
) __A
,
5620 _mm512_setzero_pd (),
5624 #define _mm512_insertf32x4(X, Y, C) \
5625 ((__m512) __builtin_ia32_insertf32x4_mask ((__v16sf)(__m512) (X), \
5626 (__v4sf)(__m128) (Y), (int) (C), (__v16sf)(__m512) (X), (__mmask16)(-1)))
5628 #define _mm512_inserti32x4(X, Y, C) \
5629 ((__m512i) __builtin_ia32_inserti32x4_mask ((__v16si)(__m512i) (X), \
5630 (__v4si)(__m128i) (Y), (int) (C), (__v16si)(__m512i) (X), (__mmask16)(-1)))
5632 #define _mm512_insertf64x4(X, Y, C) \
5633 ((__m512d) __builtin_ia32_insertf64x4_mask ((__v8df)(__m512d) (X), \
5634 (__v4df)(__m256d) (Y), (int) (C), \
5635 (__v8df)(__m512d)_mm512_undefined_pd(), \
5638 #define _mm512_mask_insertf64x4(W, U, X, Y, C) \
5639 ((__m512d) __builtin_ia32_insertf64x4_mask ((__v8df)(__m512d) (X), \
5640 (__v4df)(__m256d) (Y), (int) (C), \
5641 (__v8df)(__m512d)(W), \
5644 #define _mm512_maskz_insertf64x4(U, X, Y, C) \
5645 ((__m512d) __builtin_ia32_insertf64x4_mask ((__v8df)(__m512d) (X), \
5646 (__v4df)(__m256d) (Y), (int) (C), \
5647 (__v8df)(__m512d)_mm512_setzero_pd(), \
5650 #define _mm512_inserti64x4(X, Y, C) \
5651 ((__m512i) __builtin_ia32_inserti64x4_mask ((__v8di)(__m512i) (X), \
5652 (__v4di)(__m256i) (Y), (int) (C), \
5653 (__v8di)(__m512i)_mm512_undefined_si512 (), \
5656 #define _mm512_mask_inserti64x4(W, U, X, Y, C) \
5657 ((__m512i) __builtin_ia32_inserti64x4_mask ((__v8di)(__m512i) (X), \
5658 (__v4di)(__m256i) (Y), (int) (C),\
5659 (__v8di)(__m512i)(W),\
5662 #define _mm512_maskz_inserti64x4(U, X, Y, C) \
5663 ((__m512i) __builtin_ia32_inserti64x4_mask ((__v8di)(__m512i) (X), \
5664 (__v4di)(__m256i) (Y), (int) (C), \
5665 (__v8di)(__m512i)_mm512_setzero_si512 (), \
5669 extern __inline __m512d
5670 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5671 _mm512_loadu_pd (void const *__P
)
5673 return (__m512d
) __builtin_ia32_loadupd512_mask ((const double *) __P
,
5675 _mm512_undefined_pd (),
5679 extern __inline __m512d
5680 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5681 _mm512_mask_loadu_pd (__m512d __W
, __mmask8 __U
, void const *__P
)
5683 return (__m512d
) __builtin_ia32_loadupd512_mask ((const double *) __P
,
5688 extern __inline __m512d
5689 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5690 _mm512_maskz_loadu_pd (__mmask8 __U
, void const *__P
)
5692 return (__m512d
) __builtin_ia32_loadupd512_mask ((const double *) __P
,
5694 _mm512_setzero_pd (),
5698 extern __inline
void
5699 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5700 _mm512_storeu_pd (void *__P
, __m512d __A
)
5702 __builtin_ia32_storeupd512_mask ((double *) __P
, (__v8df
) __A
,
5706 extern __inline
void
5707 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5708 _mm512_mask_storeu_pd (void *__P
, __mmask8 __U
, __m512d __A
)
5710 __builtin_ia32_storeupd512_mask ((double *) __P
, (__v8df
) __A
,
5714 extern __inline __m512
5715 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5716 _mm512_loadu_ps (void const *__P
)
5718 return (__m512
) __builtin_ia32_loadups512_mask ((const float *) __P
,
5720 _mm512_undefined_ps (),
5724 extern __inline __m512
5725 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5726 _mm512_mask_loadu_ps (__m512 __W
, __mmask16 __U
, void const *__P
)
5728 return (__m512
) __builtin_ia32_loadups512_mask ((const float *) __P
,
5733 extern __inline __m512
5734 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5735 _mm512_maskz_loadu_ps (__mmask16 __U
, void const *__P
)
5737 return (__m512
) __builtin_ia32_loadups512_mask ((const float *) __P
,
5739 _mm512_setzero_ps (),
5743 extern __inline
void
5744 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5745 _mm512_storeu_ps (void *__P
, __m512 __A
)
5747 __builtin_ia32_storeups512_mask ((float *) __P
, (__v16sf
) __A
,
5751 extern __inline
void
5752 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5753 _mm512_mask_storeu_ps (void *__P
, __mmask16 __U
, __m512 __A
)
5755 __builtin_ia32_storeups512_mask ((float *) __P
, (__v16sf
) __A
,
5759 extern __inline __m512i
5760 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5761 _mm512_mask_loadu_epi64 (__m512i __W
, __mmask8 __U
, void const *__P
)
5763 return (__m512i
) __builtin_ia32_loaddqudi512_mask ((const long long *) __P
,
5768 extern __inline __m512i
5769 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5770 _mm512_maskz_loadu_epi64 (__mmask8 __U
, void const *__P
)
5772 return (__m512i
) __builtin_ia32_loaddqudi512_mask ((const long long *) __P
,
5774 _mm512_setzero_si512 (),
5778 extern __inline
void
5779 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5780 _mm512_mask_storeu_epi64 (void *__P
, __mmask8 __U
, __m512i __A
)
5782 __builtin_ia32_storedqudi512_mask ((long long *) __P
, (__v8di
) __A
,
5786 extern __inline __m512i
5787 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5788 _mm512_loadu_si512 (void const *__P
)
5790 return (__m512i
) __builtin_ia32_loaddqusi512_mask ((const int *) __P
,
5792 _mm512_setzero_si512 (),
5796 extern __inline __m512i
5797 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5798 _mm512_mask_loadu_epi32 (__m512i __W
, __mmask16 __U
, void const *__P
)
5800 return (__m512i
) __builtin_ia32_loaddqusi512_mask ((const int *) __P
,
5805 extern __inline __m512i
5806 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5807 _mm512_maskz_loadu_epi32 (__mmask16 __U
, void const *__P
)
5809 return (__m512i
) __builtin_ia32_loaddqusi512_mask ((const int *) __P
,
5811 _mm512_setzero_si512 (),
5815 extern __inline
void
5816 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5817 _mm512_storeu_si512 (void *__P
, __m512i __A
)
5819 __builtin_ia32_storedqusi512_mask ((int *) __P
, (__v16si
) __A
,
5823 extern __inline
void
5824 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5825 _mm512_mask_storeu_epi32 (void *__P
, __mmask16 __U
, __m512i __A
)
5827 __builtin_ia32_storedqusi512_mask ((int *) __P
, (__v16si
) __A
,
5831 extern __inline __m512d
5832 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5833 _mm512_permutevar_pd (__m512d __A
, __m512i __C
)
5835 return (__m512d
) __builtin_ia32_vpermilvarpd512_mask ((__v8df
) __A
,
5838 _mm512_undefined_pd (),
5842 extern __inline __m512d
5843 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5844 _mm512_mask_permutevar_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512i __C
)
5846 return (__m512d
) __builtin_ia32_vpermilvarpd512_mask ((__v8df
) __A
,
5852 extern __inline __m512d
5853 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5854 _mm512_maskz_permutevar_pd (__mmask8 __U
, __m512d __A
, __m512i __C
)
5856 return (__m512d
) __builtin_ia32_vpermilvarpd512_mask ((__v8df
) __A
,
5859 _mm512_setzero_pd (),
5863 extern __inline __m512
5864 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5865 _mm512_permutevar_ps (__m512 __A
, __m512i __C
)
5867 return (__m512
) __builtin_ia32_vpermilvarps512_mask ((__v16sf
) __A
,
5870 _mm512_undefined_ps (),
5874 extern __inline __m512
5875 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5876 _mm512_mask_permutevar_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512i __C
)
5878 return (__m512
) __builtin_ia32_vpermilvarps512_mask ((__v16sf
) __A
,
5884 extern __inline __m512
5885 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5886 _mm512_maskz_permutevar_ps (__mmask16 __U
, __m512 __A
, __m512i __C
)
5888 return (__m512
) __builtin_ia32_vpermilvarps512_mask ((__v16sf
) __A
,
5891 _mm512_setzero_ps (),
5895 extern __inline __m512i
5896 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5897 _mm512_permutex2var_epi64 (__m512i __A
, __m512i __I
, __m512i __B
)
5899 return (__m512i
) __builtin_ia32_vpermt2varq512_mask ((__v8di
) __I
5906 extern __inline __m512i
5907 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5908 _mm512_mask_permutex2var_epi64 (__m512i __A
, __mmask8 __U
, __m512i __I
,
5911 return (__m512i
) __builtin_ia32_vpermt2varq512_mask ((__v8di
) __I
5918 extern __inline __m512i
5919 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5920 _mm512_mask2_permutex2var_epi64 (__m512i __A
, __m512i __I
,
5921 __mmask8 __U
, __m512i __B
)
5923 return (__m512i
) __builtin_ia32_vpermi2varq512_mask ((__v8di
) __A
,
5930 extern __inline __m512i
5931 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5932 _mm512_maskz_permutex2var_epi64 (__mmask8 __U
, __m512i __A
,
5933 __m512i __I
, __m512i __B
)
5935 return (__m512i
) __builtin_ia32_vpermt2varq512_maskz ((__v8di
) __I
5942 extern __inline __m512i
5943 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5944 _mm512_permutex2var_epi32 (__m512i __A
, __m512i __I
, __m512i __B
)
5946 return (__m512i
) __builtin_ia32_vpermt2vard512_mask ((__v16si
) __I
5953 extern __inline __m512i
5954 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5955 _mm512_mask_permutex2var_epi32 (__m512i __A
, __mmask16 __U
,
5956 __m512i __I
, __m512i __B
)
5958 return (__m512i
) __builtin_ia32_vpermt2vard512_mask ((__v16si
) __I
5965 extern __inline __m512i
5966 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5967 _mm512_mask2_permutex2var_epi32 (__m512i __A
, __m512i __I
,
5968 __mmask16 __U
, __m512i __B
)
5970 return (__m512i
) __builtin_ia32_vpermi2vard512_mask ((__v16si
) __A
,
5977 extern __inline __m512i
5978 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5979 _mm512_maskz_permutex2var_epi32 (__mmask16 __U
, __m512i __A
,
5980 __m512i __I
, __m512i __B
)
5982 return (__m512i
) __builtin_ia32_vpermt2vard512_maskz ((__v16si
) __I
5989 extern __inline __m512d
5990 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
5991 _mm512_permutex2var_pd (__m512d __A
, __m512i __I
, __m512d __B
)
5993 return (__m512d
) __builtin_ia32_vpermt2varpd512_mask ((__v8di
) __I
6000 extern __inline __m512d
6001 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6002 _mm512_mask_permutex2var_pd (__m512d __A
, __mmask8 __U
, __m512i __I
,
6005 return (__m512d
) __builtin_ia32_vpermt2varpd512_mask ((__v8di
) __I
6012 extern __inline __m512d
6013 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6014 _mm512_mask2_permutex2var_pd (__m512d __A
, __m512i __I
, __mmask8 __U
,
6017 return (__m512d
) __builtin_ia32_vpermi2varpd512_mask ((__v8df
) __A
,
6024 extern __inline __m512d
6025 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6026 _mm512_maskz_permutex2var_pd (__mmask8 __U
, __m512d __A
, __m512i __I
,
6029 return (__m512d
) __builtin_ia32_vpermt2varpd512_maskz ((__v8di
) __I
6036 extern __inline __m512
6037 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6038 _mm512_permutex2var_ps (__m512 __A
, __m512i __I
, __m512 __B
)
6040 return (__m512
) __builtin_ia32_vpermt2varps512_mask ((__v16si
) __I
6047 extern __inline __m512
6048 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6049 _mm512_mask_permutex2var_ps (__m512 __A
, __mmask16 __U
, __m512i __I
, __m512 __B
)
6051 return (__m512
) __builtin_ia32_vpermt2varps512_mask ((__v16si
) __I
6058 extern __inline __m512
6059 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6060 _mm512_mask2_permutex2var_ps (__m512 __A
, __m512i __I
, __mmask16 __U
,
6063 return (__m512
) __builtin_ia32_vpermi2varps512_mask ((__v16sf
) __A
,
6070 extern __inline __m512
6071 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6072 _mm512_maskz_permutex2var_ps (__mmask16 __U
, __m512 __A
, __m512i __I
,
6075 return (__m512
) __builtin_ia32_vpermt2varps512_maskz ((__v16si
) __I
6083 extern __inline __m512d
6084 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6085 _mm512_permute_pd (__m512d __X
, const int __C
)
6087 return (__m512d
) __builtin_ia32_vpermilpd512_mask ((__v8df
) __X
, __C
,
6089 _mm512_undefined_pd (),
6093 extern __inline __m512d
6094 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6095 _mm512_mask_permute_pd (__m512d __W
, __mmask8 __U
, __m512d __X
, const int __C
)
6097 return (__m512d
) __builtin_ia32_vpermilpd512_mask ((__v8df
) __X
, __C
,
6102 extern __inline __m512d
6103 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6104 _mm512_maskz_permute_pd (__mmask8 __U
, __m512d __X
, const int __C
)
6106 return (__m512d
) __builtin_ia32_vpermilpd512_mask ((__v8df
) __X
, __C
,
6108 _mm512_setzero_pd (),
6112 extern __inline __m512
6113 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6114 _mm512_permute_ps (__m512 __X
, const int __C
)
6116 return (__m512
) __builtin_ia32_vpermilps512_mask ((__v16sf
) __X
, __C
,
6118 _mm512_undefined_ps (),
6122 extern __inline __m512
6123 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6124 _mm512_mask_permute_ps (__m512 __W
, __mmask16 __U
, __m512 __X
, const int __C
)
6126 return (__m512
) __builtin_ia32_vpermilps512_mask ((__v16sf
) __X
, __C
,
6131 extern __inline __m512
6132 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6133 _mm512_maskz_permute_ps (__mmask16 __U
, __m512 __X
, const int __C
)
6135 return (__m512
) __builtin_ia32_vpermilps512_mask ((__v16sf
) __X
, __C
,
6137 _mm512_setzero_ps (),
6141 #define _mm512_permute_pd(X, C) \
6142 ((__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df)(__m512d)(X), (int)(C), \
6143 (__v8df)(__m512d)_mm512_undefined_pd(),\
6146 #define _mm512_mask_permute_pd(W, U, X, C) \
6147 ((__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df)(__m512d)(X), (int)(C), \
6148 (__v8df)(__m512d)(W), \
6151 #define _mm512_maskz_permute_pd(U, X, C) \
6152 ((__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df)(__m512d)(X), (int)(C), \
6153 (__v8df)(__m512d)_mm512_setzero_pd(), \
6156 #define _mm512_permute_ps(X, C) \
6157 ((__m512) __builtin_ia32_vpermilps512_mask ((__v16sf)(__m512)(X), (int)(C), \
6158 (__v16sf)(__m512)_mm512_undefined_ps(),\
6161 #define _mm512_mask_permute_ps(W, U, X, C) \
6162 ((__m512) __builtin_ia32_vpermilps512_mask ((__v16sf)(__m512)(X), (int)(C), \
6163 (__v16sf)(__m512)(W), \
6166 #define _mm512_maskz_permute_ps(U, X, C) \
6167 ((__m512) __builtin_ia32_vpermilps512_mask ((__v16sf)(__m512)(X), (int)(C), \
6168 (__v16sf)(__m512)_mm512_setzero_ps(), \
6173 extern __inline __m512i
6174 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6175 _mm512_permutex_epi64 (__m512i __X
, const int __I
)
6177 return (__m512i
) __builtin_ia32_permdi512_mask ((__v8di
) __X
, __I
,
6179 _mm512_undefined_si512 (),
6183 extern __inline __m512i
6184 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6185 _mm512_mask_permutex_epi64 (__m512i __W
, __mmask8 __M
,
6186 __m512i __X
, const int __I
)
6188 return (__m512i
) __builtin_ia32_permdi512_mask ((__v8di
) __X
, __I
,
6193 extern __inline __m512i
6194 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6195 _mm512_maskz_permutex_epi64 (__mmask8 __M
, __m512i __X
, const int __I
)
6197 return (__m512i
) __builtin_ia32_permdi512_mask ((__v8di
) __X
, __I
,
6199 _mm512_setzero_si512 (),
6203 extern __inline __m512d
6204 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6205 _mm512_permutex_pd (__m512d __X
, const int __M
)
6207 return (__m512d
) __builtin_ia32_permdf512_mask ((__v8df
) __X
, __M
,
6209 _mm512_undefined_pd (),
6213 extern __inline __m512d
6214 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6215 _mm512_mask_permutex_pd (__m512d __W
, __mmask8 __U
, __m512d __X
, const int __M
)
6217 return (__m512d
) __builtin_ia32_permdf512_mask ((__v8df
) __X
, __M
,
6222 extern __inline __m512d
6223 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6224 _mm512_maskz_permutex_pd (__mmask8 __U
, __m512d __X
, const int __M
)
6226 return (__m512d
) __builtin_ia32_permdf512_mask ((__v8df
) __X
, __M
,
6228 _mm512_setzero_pd (),
6232 #define _mm512_permutex_pd(X, M) \
6233 ((__m512d) __builtin_ia32_permdf512_mask ((__v8df)(__m512d)(X), (int)(M), \
6234 (__v8df)(__m512d)_mm512_undefined_pd(),\
6237 #define _mm512_mask_permutex_pd(W, U, X, M) \
6238 ((__m512d) __builtin_ia32_permdf512_mask ((__v8df)(__m512d)(X), (int)(M), \
6239 (__v8df)(__m512d)(W), (__mmask8)(U)))
6241 #define _mm512_maskz_permutex_pd(U, X, M) \
6242 ((__m512d) __builtin_ia32_permdf512_mask ((__v8df)(__m512d)(X), (int)(M), \
6243 (__v8df)(__m512d)_mm512_setzero_pd(),\
6246 #define _mm512_permutex_epi64(X, I) \
6247 ((__m512i) __builtin_ia32_permdi512_mask ((__v8di)(__m512i)(X), \
6250 (_mm512_undefined_si512 ()),\
6253 #define _mm512_maskz_permutex_epi64(M, X, I) \
6254 ((__m512i) __builtin_ia32_permdi512_mask ((__v8di)(__m512i)(X), \
6257 (_mm512_setzero_si512 ()),\
6260 #define _mm512_mask_permutex_epi64(W, M, X, I) \
6261 ((__m512i) __builtin_ia32_permdi512_mask ((__v8di)(__m512i)(X), \
6263 (__v8di)(__m512i)(W), \
6267 extern __inline __m512i
6268 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6269 _mm512_maskz_permutexvar_epi64 (__mmask8 __M
, __m512i __X
, __m512i __Y
)
6271 return (__m512i
) __builtin_ia32_permvardi512_mask ((__v8di
) __Y
,
6274 _mm512_setzero_si512 (),
6278 extern __inline __m512i
6279 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6280 _mm512_permutexvar_epi64 (__m512i __X
, __m512i __Y
)
6282 return (__m512i
) __builtin_ia32_permvardi512_mask ((__v8di
) __Y
,
6285 _mm512_undefined_si512 (),
6289 extern __inline __m512i
6290 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6291 _mm512_mask_permutexvar_epi64 (__m512i __W
, __mmask8 __M
, __m512i __X
,
6294 return (__m512i
) __builtin_ia32_permvardi512_mask ((__v8di
) __Y
,
6300 extern __inline __m512i
6301 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6302 _mm512_maskz_permutexvar_epi32 (__mmask16 __M
, __m512i __X
, __m512i __Y
)
6304 return (__m512i
) __builtin_ia32_permvarsi512_mask ((__v16si
) __Y
,
6307 _mm512_setzero_si512 (),
6311 extern __inline __m512i
6312 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6313 _mm512_permutexvar_epi32 (__m512i __X
, __m512i __Y
)
6315 return (__m512i
) __builtin_ia32_permvarsi512_mask ((__v16si
) __Y
,
6318 _mm512_undefined_si512 (),
6322 extern __inline __m512i
6323 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6324 _mm512_mask_permutexvar_epi32 (__m512i __W
, __mmask16 __M
, __m512i __X
,
6327 return (__m512i
) __builtin_ia32_permvarsi512_mask ((__v16si
) __Y
,
6333 extern __inline __m512d
6334 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6335 _mm512_permutexvar_pd (__m512i __X
, __m512d __Y
)
6337 return (__m512d
) __builtin_ia32_permvardf512_mask ((__v8df
) __Y
,
6340 _mm512_undefined_pd (),
6344 extern __inline __m512d
6345 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6346 _mm512_mask_permutexvar_pd (__m512d __W
, __mmask8 __U
, __m512i __X
, __m512d __Y
)
6348 return (__m512d
) __builtin_ia32_permvardf512_mask ((__v8df
) __Y
,
6354 extern __inline __m512d
6355 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6356 _mm512_maskz_permutexvar_pd (__mmask8 __U
, __m512i __X
, __m512d __Y
)
6358 return (__m512d
) __builtin_ia32_permvardf512_mask ((__v8df
) __Y
,
6361 _mm512_setzero_pd (),
6365 extern __inline __m512
6366 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6367 _mm512_permutexvar_ps (__m512i __X
, __m512 __Y
)
6369 return (__m512
) __builtin_ia32_permvarsf512_mask ((__v16sf
) __Y
,
6372 _mm512_undefined_ps (),
6376 extern __inline __m512
6377 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6378 _mm512_mask_permutexvar_ps (__m512 __W
, __mmask16 __U
, __m512i __X
, __m512 __Y
)
6380 return (__m512
) __builtin_ia32_permvarsf512_mask ((__v16sf
) __Y
,
6386 extern __inline __m512
6387 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6388 _mm512_maskz_permutexvar_ps (__mmask16 __U
, __m512i __X
, __m512 __Y
)
6390 return (__m512
) __builtin_ia32_permvarsf512_mask ((__v16sf
) __Y
,
6393 _mm512_setzero_ps (),
6398 extern __inline __m512
6399 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6400 _mm512_shuffle_ps (__m512 __M
, __m512 __V
, const int __imm
)
6402 return (__m512
) __builtin_ia32_shufps512_mask ((__v16sf
) __M
,
6403 (__v16sf
) __V
, __imm
,
6405 _mm512_undefined_ps (),
6409 extern __inline __m512
6410 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6411 _mm512_mask_shuffle_ps (__m512 __W
, __mmask16 __U
, __m512 __M
,
6412 __m512 __V
, const int __imm
)
6414 return (__m512
) __builtin_ia32_shufps512_mask ((__v16sf
) __M
,
6415 (__v16sf
) __V
, __imm
,
6420 extern __inline __m512
6421 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6422 _mm512_maskz_shuffle_ps (__mmask16 __U
, __m512 __M
, __m512 __V
, const int __imm
)
6424 return (__m512
) __builtin_ia32_shufps512_mask ((__v16sf
) __M
,
6425 (__v16sf
) __V
, __imm
,
6427 _mm512_setzero_ps (),
6431 extern __inline __m512d
6432 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6433 _mm512_shuffle_pd (__m512d __M
, __m512d __V
, const int __imm
)
6435 return (__m512d
) __builtin_ia32_shufpd512_mask ((__v8df
) __M
,
6436 (__v8df
) __V
, __imm
,
6438 _mm512_undefined_pd (),
6442 extern __inline __m512d
6443 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6444 _mm512_mask_shuffle_pd (__m512d __W
, __mmask8 __U
, __m512d __M
,
6445 __m512d __V
, const int __imm
)
6447 return (__m512d
) __builtin_ia32_shufpd512_mask ((__v8df
) __M
,
6448 (__v8df
) __V
, __imm
,
6453 extern __inline __m512d
6454 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6455 _mm512_maskz_shuffle_pd (__mmask8 __U
, __m512d __M
, __m512d __V
,
6458 return (__m512d
) __builtin_ia32_shufpd512_mask ((__v8df
) __M
,
6459 (__v8df
) __V
, __imm
,
6461 _mm512_setzero_pd (),
6465 extern __inline __m512d
6466 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6467 _mm512_fixupimm_round_pd (__m512d __A
, __m512d __B
, __m512i __C
,
6468 const int __imm
, const int __R
)
6470 return (__m512d
) __builtin_ia32_fixupimmpd512_mask ((__v8df
) __A
,
6474 (__mmask8
) -1, __R
);
6477 extern __inline __m512d
6478 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6479 _mm512_mask_fixupimm_round_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
6480 __m512i __C
, const int __imm
, const int __R
)
6482 return (__m512d
) __builtin_ia32_fixupimmpd512_mask ((__v8df
) __A
,
6486 (__mmask8
) __U
, __R
);
6489 extern __inline __m512d
6490 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6491 _mm512_maskz_fixupimm_round_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
6492 __m512i __C
, const int __imm
, const int __R
)
6494 return (__m512d
) __builtin_ia32_fixupimmpd512_maskz ((__v8df
) __A
,
6498 (__mmask8
) __U
, __R
);
6501 extern __inline __m512
6502 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6503 _mm512_fixupimm_round_ps (__m512 __A
, __m512 __B
, __m512i __C
,
6504 const int __imm
, const int __R
)
6506 return (__m512
) __builtin_ia32_fixupimmps512_mask ((__v16sf
) __A
,
6510 (__mmask16
) -1, __R
);
6513 extern __inline __m512
6514 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6515 _mm512_mask_fixupimm_round_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
6516 __m512i __C
, const int __imm
, const int __R
)
6518 return (__m512
) __builtin_ia32_fixupimmps512_mask ((__v16sf
) __A
,
6522 (__mmask16
) __U
, __R
);
6525 extern __inline __m512
6526 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6527 _mm512_maskz_fixupimm_round_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
6528 __m512i __C
, const int __imm
, const int __R
)
6530 return (__m512
) __builtin_ia32_fixupimmps512_maskz ((__v16sf
) __A
,
6534 (__mmask16
) __U
, __R
);
6537 extern __inline __m128d
6538 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6539 _mm_fixupimm_round_sd (__m128d __A
, __m128d __B
, __m128i __C
,
6540 const int __imm
, const int __R
)
6542 return (__m128d
) __builtin_ia32_fixupimmsd_mask ((__v2df
) __A
,
6544 (__v2di
) __C
, __imm
,
6545 (__mmask8
) -1, __R
);
6548 extern __inline __m128d
6549 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6550 _mm_mask_fixupimm_round_sd (__m128d __A
, __mmask8 __U
, __m128d __B
,
6551 __m128i __C
, const int __imm
, const int __R
)
6553 return (__m128d
) __builtin_ia32_fixupimmsd_mask ((__v2df
) __A
,
6555 (__v2di
) __C
, __imm
,
6556 (__mmask8
) __U
, __R
);
6559 extern __inline __m128d
6560 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6561 _mm_maskz_fixupimm_round_sd (__mmask8 __U
, __m128d __A
, __m128d __B
,
6562 __m128i __C
, const int __imm
, const int __R
)
6564 return (__m128d
) __builtin_ia32_fixupimmsd_maskz ((__v2df
) __A
,
6568 (__mmask8
) __U
, __R
);
6571 extern __inline __m128
6572 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6573 _mm_fixupimm_round_ss (__m128 __A
, __m128 __B
, __m128i __C
,
6574 const int __imm
, const int __R
)
6576 return (__m128
) __builtin_ia32_fixupimmss_mask ((__v4sf
) __A
,
6578 (__v4si
) __C
, __imm
,
6579 (__mmask8
) -1, __R
);
6582 extern __inline __m128
6583 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6584 _mm_mask_fixupimm_round_ss (__m128 __A
, __mmask8 __U
, __m128 __B
,
6585 __m128i __C
, const int __imm
, const int __R
)
6587 return (__m128
) __builtin_ia32_fixupimmss_mask ((__v4sf
) __A
,
6589 (__v4si
) __C
, __imm
,
6590 (__mmask8
) __U
, __R
);
6593 extern __inline __m128
6594 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6595 _mm_maskz_fixupimm_round_ss (__mmask8 __U
, __m128 __A
, __m128 __B
,
6596 __m128i __C
, const int __imm
, const int __R
)
6598 return (__m128
) __builtin_ia32_fixupimmss_maskz ((__v4sf
) __A
,
6600 (__v4si
) __C
, __imm
,
6601 (__mmask8
) __U
, __R
);
6605 #define _mm512_shuffle_pd(X, Y, C) \
6606 ((__m512d)__builtin_ia32_shufpd512_mask ((__v8df)(__m512d)(X), \
6607 (__v8df)(__m512d)(Y), (int)(C),\
6608 (__v8df)(__m512d)_mm512_undefined_pd(),\
6611 #define _mm512_mask_shuffle_pd(W, U, X, Y, C) \
6612 ((__m512d)__builtin_ia32_shufpd512_mask ((__v8df)(__m512d)(X), \
6613 (__v8df)(__m512d)(Y), (int)(C),\
6614 (__v8df)(__m512d)(W),\
6617 #define _mm512_maskz_shuffle_pd(U, X, Y, C) \
6618 ((__m512d)__builtin_ia32_shufpd512_mask ((__v8df)(__m512d)(X), \
6619 (__v8df)(__m512d)(Y), (int)(C),\
6620 (__v8df)(__m512d)_mm512_setzero_pd(),\
6623 #define _mm512_shuffle_ps(X, Y, C) \
6624 ((__m512)__builtin_ia32_shufps512_mask ((__v16sf)(__m512)(X), \
6625 (__v16sf)(__m512)(Y), (int)(C),\
6626 (__v16sf)(__m512)_mm512_undefined_ps(),\
6629 #define _mm512_mask_shuffle_ps(W, U, X, Y, C) \
6630 ((__m512)__builtin_ia32_shufps512_mask ((__v16sf)(__m512)(X), \
6631 (__v16sf)(__m512)(Y), (int)(C),\
6632 (__v16sf)(__m512)(W),\
6635 #define _mm512_maskz_shuffle_ps(U, X, Y, C) \
6636 ((__m512)__builtin_ia32_shufps512_mask ((__v16sf)(__m512)(X), \
6637 (__v16sf)(__m512)(Y), (int)(C),\
6638 (__v16sf)(__m512)_mm512_setzero_ps(),\
6641 #define _mm512_fixupimm_round_pd(X, Y, Z, C, R) \
6642 ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X), \
6643 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
6644 (__mmask8)(-1), (R)))
6646 #define _mm512_mask_fixupimm_round_pd(X, U, Y, Z, C, R) \
6647 ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X), \
6648 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
6649 (__mmask8)(U), (R)))
6651 #define _mm512_maskz_fixupimm_round_pd(U, X, Y, Z, C, R) \
6652 ((__m512d)__builtin_ia32_fixupimmpd512_maskz ((__v8df)(__m512d)(X), \
6653 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
6654 (__mmask8)(U), (R)))
6656 #define _mm512_fixupimm_round_ps(X, Y, Z, C, R) \
6657 ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X), \
6658 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
6659 (__mmask16)(-1), (R)))
6661 #define _mm512_mask_fixupimm_round_ps(X, U, Y, Z, C, R) \
6662 ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X), \
6663 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
6664 (__mmask16)(U), (R)))
6666 #define _mm512_maskz_fixupimm_round_ps(U, X, Y, Z, C, R) \
6667 ((__m512)__builtin_ia32_fixupimmps512_maskz ((__v16sf)(__m512)(X), \
6668 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
6669 (__mmask16)(U), (R)))
6671 #define _mm_fixupimm_round_sd(X, Y, Z, C, R) \
6672 ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X), \
6673 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
6674 (__mmask8)(-1), (R)))
6676 #define _mm_mask_fixupimm_round_sd(X, U, Y, Z, C, R) \
6677 ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X), \
6678 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
6679 (__mmask8)(U), (R)))
6681 #define _mm_maskz_fixupimm_round_sd(U, X, Y, Z, C, R) \
6682 ((__m128d)__builtin_ia32_fixupimmsd_maskz ((__v2df)(__m128d)(X), \
6683 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
6684 (__mmask8)(U), (R)))
6686 #define _mm_fixupimm_round_ss(X, Y, Z, C, R) \
6687 ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X), \
6688 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
6689 (__mmask8)(-1), (R)))
6691 #define _mm_mask_fixupimm_round_ss(X, U, Y, Z, C, R) \
6692 ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X), \
6693 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
6694 (__mmask8)(U), (R)))
6696 #define _mm_maskz_fixupimm_round_ss(U, X, Y, Z, C, R) \
6697 ((__m128)__builtin_ia32_fixupimmss_maskz ((__v4sf)(__m128)(X), \
6698 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
6699 (__mmask8)(U), (R)))
6702 extern __inline __m512
6703 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6704 _mm512_movehdup_ps (__m512 __A
)
6706 return (__m512
) __builtin_ia32_movshdup512_mask ((__v16sf
) __A
,
6708 _mm512_undefined_ps (),
6712 extern __inline __m512
6713 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6714 _mm512_mask_movehdup_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
6716 return (__m512
) __builtin_ia32_movshdup512_mask ((__v16sf
) __A
,
6721 extern __inline __m512
6722 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6723 _mm512_maskz_movehdup_ps (__mmask16 __U
, __m512 __A
)
6725 return (__m512
) __builtin_ia32_movshdup512_mask ((__v16sf
) __A
,
6727 _mm512_setzero_ps (),
6731 extern __inline __m512
6732 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6733 _mm512_moveldup_ps (__m512 __A
)
6735 return (__m512
) __builtin_ia32_movsldup512_mask ((__v16sf
) __A
,
6737 _mm512_undefined_ps (),
6741 extern __inline __m512
6742 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6743 _mm512_mask_moveldup_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
6745 return (__m512
) __builtin_ia32_movsldup512_mask ((__v16sf
) __A
,
6750 extern __inline __m512
6751 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6752 _mm512_maskz_moveldup_ps (__mmask16 __U
, __m512 __A
)
6754 return (__m512
) __builtin_ia32_movsldup512_mask ((__v16sf
) __A
,
6756 _mm512_setzero_ps (),
6760 extern __inline __m512i
6761 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6762 _mm512_or_si512 (__m512i __A
, __m512i __B
)
6764 return (__m512i
) ((__v16su
) __A
| (__v16su
) __B
);
6767 extern __inline __m512i
6768 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6769 _mm512_or_epi32 (__m512i __A
, __m512i __B
)
6771 return (__m512i
) ((__v16su
) __A
| (__v16su
) __B
);
6774 extern __inline __m512i
6775 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6776 _mm512_mask_or_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
6778 return (__m512i
) __builtin_ia32_pord512_mask ((__v16si
) __A
,
6784 extern __inline __m512i
6785 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6786 _mm512_maskz_or_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
6788 return (__m512i
) __builtin_ia32_pord512_mask ((__v16si
) __A
,
6791 _mm512_setzero_si512 (),
6795 extern __inline __m512i
6796 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6797 _mm512_or_epi64 (__m512i __A
, __m512i __B
)
6799 return (__m512i
) ((__v8du
) __A
| (__v8du
) __B
);
6802 extern __inline __m512i
6803 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6804 _mm512_mask_or_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
6806 return (__m512i
) __builtin_ia32_porq512_mask ((__v8di
) __A
,
6812 extern __inline __m512i
6813 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6814 _mm512_maskz_or_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
6816 return (__m512i
) __builtin_ia32_porq512_mask ((__v8di
) __A
,
6819 _mm512_setzero_si512 (),
6823 extern __inline __m512i
6824 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6825 _mm512_xor_si512 (__m512i __A
, __m512i __B
)
6827 return (__m512i
) ((__v16su
) __A
^ (__v16su
) __B
);
6830 extern __inline __m512i
6831 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6832 _mm512_xor_epi32 (__m512i __A
, __m512i __B
)
6834 return (__m512i
) ((__v16su
) __A
^ (__v16su
) __B
);
6837 extern __inline __m512i
6838 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6839 _mm512_mask_xor_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
6841 return (__m512i
) __builtin_ia32_pxord512_mask ((__v16si
) __A
,
6847 extern __inline __m512i
6848 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6849 _mm512_maskz_xor_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
6851 return (__m512i
) __builtin_ia32_pxord512_mask ((__v16si
) __A
,
6854 _mm512_setzero_si512 (),
6858 extern __inline __m512i
6859 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6860 _mm512_xor_epi64 (__m512i __A
, __m512i __B
)
6862 return (__m512i
) ((__v8du
) __A
^ (__v8du
) __B
);
6865 extern __inline __m512i
6866 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6867 _mm512_mask_xor_epi64 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
6869 return (__m512i
) __builtin_ia32_pxorq512_mask ((__v8di
) __A
,
6875 extern __inline __m512i
6876 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6877 _mm512_maskz_xor_epi64 (__mmask16 __U
, __m512i __A
, __m512i __B
)
6879 return (__m512i
) __builtin_ia32_pxorq512_mask ((__v8di
) __A
,
6882 _mm512_setzero_si512 (),
6887 extern __inline __m512i
6888 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6889 _mm512_rol_epi32 (__m512i __A
, const int __B
)
6891 return (__m512i
) __builtin_ia32_prold512_mask ((__v16si
) __A
, __B
,
6893 _mm512_undefined_si512 (),
6897 extern __inline __m512i
6898 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6899 _mm512_mask_rol_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, const int __B
)
6901 return (__m512i
) __builtin_ia32_prold512_mask ((__v16si
) __A
, __B
,
6906 extern __inline __m512i
6907 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6908 _mm512_maskz_rol_epi32 (__mmask16 __U
, __m512i __A
, const int __B
)
6910 return (__m512i
) __builtin_ia32_prold512_mask ((__v16si
) __A
, __B
,
6912 _mm512_setzero_si512 (),
6916 extern __inline __m512i
6917 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6918 _mm512_ror_epi32 (__m512i __A
, int __B
)
6920 return (__m512i
) __builtin_ia32_prord512_mask ((__v16si
) __A
, __B
,
6922 _mm512_undefined_si512 (),
6926 extern __inline __m512i
6927 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6928 _mm512_mask_ror_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, int __B
)
6930 return (__m512i
) __builtin_ia32_prord512_mask ((__v16si
) __A
, __B
,
6935 extern __inline __m512i
6936 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6937 _mm512_maskz_ror_epi32 (__mmask16 __U
, __m512i __A
, int __B
)
6939 return (__m512i
) __builtin_ia32_prord512_mask ((__v16si
) __A
, __B
,
6941 _mm512_setzero_si512 (),
6945 extern __inline __m512i
6946 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6947 _mm512_rol_epi64 (__m512i __A
, const int __B
)
6949 return (__m512i
) __builtin_ia32_prolq512_mask ((__v8di
) __A
, __B
,
6951 _mm512_undefined_si512 (),
6955 extern __inline __m512i
6956 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6957 _mm512_mask_rol_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, const int __B
)
6959 return (__m512i
) __builtin_ia32_prolq512_mask ((__v8di
) __A
, __B
,
6964 extern __inline __m512i
6965 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6966 _mm512_maskz_rol_epi64 (__mmask8 __U
, __m512i __A
, const int __B
)
6968 return (__m512i
) __builtin_ia32_prolq512_mask ((__v8di
) __A
, __B
,
6970 _mm512_setzero_si512 (),
6974 extern __inline __m512i
6975 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6976 _mm512_ror_epi64 (__m512i __A
, int __B
)
6978 return (__m512i
) __builtin_ia32_prorq512_mask ((__v8di
) __A
, __B
,
6980 _mm512_undefined_si512 (),
6984 extern __inline __m512i
6985 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6986 _mm512_mask_ror_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, int __B
)
6988 return (__m512i
) __builtin_ia32_prorq512_mask ((__v8di
) __A
, __B
,
6993 extern __inline __m512i
6994 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
6995 _mm512_maskz_ror_epi64 (__mmask8 __U
, __m512i __A
, int __B
)
6997 return (__m512i
) __builtin_ia32_prorq512_mask ((__v8di
) __A
, __B
,
6999 _mm512_setzero_si512 (),
7004 #define _mm512_rol_epi32(A, B) \
7005 ((__m512i)__builtin_ia32_prold512_mask ((__v16si)(__m512i)(A), \
7007 (__v16si)_mm512_undefined_si512 (), \
7009 #define _mm512_mask_rol_epi32(W, U, A, B) \
7010 ((__m512i)__builtin_ia32_prold512_mask ((__v16si)(__m512i)(A), \
7012 (__v16si)(__m512i)(W), \
7014 #define _mm512_maskz_rol_epi32(U, A, B) \
7015 ((__m512i)__builtin_ia32_prold512_mask ((__v16si)(__m512i)(A), \
7017 (__v16si)_mm512_setzero_si512 (), \
7019 #define _mm512_ror_epi32(A, B) \
7020 ((__m512i)__builtin_ia32_prord512_mask ((__v16si)(__m512i)(A), \
7022 (__v16si)_mm512_undefined_si512 (), \
7024 #define _mm512_mask_ror_epi32(W, U, A, B) \
7025 ((__m512i)__builtin_ia32_prord512_mask ((__v16si)(__m512i)(A), \
7027 (__v16si)(__m512i)(W), \
7029 #define _mm512_maskz_ror_epi32(U, A, B) \
7030 ((__m512i)__builtin_ia32_prord512_mask ((__v16si)(__m512i)(A), \
7032 (__v16si)_mm512_setzero_si512 (), \
7034 #define _mm512_rol_epi64(A, B) \
7035 ((__m512i)__builtin_ia32_prolq512_mask ((__v8di)(__m512i)(A), \
7037 (__v8di)_mm512_undefined_si512 (), \
7039 #define _mm512_mask_rol_epi64(W, U, A, B) \
7040 ((__m512i)__builtin_ia32_prolq512_mask ((__v8di)(__m512i)(A), \
7042 (__v8di)(__m512i)(W), \
7044 #define _mm512_maskz_rol_epi64(U, A, B) \
7045 ((__m512i)__builtin_ia32_prolq512_mask ((__v8di)(__m512i)(A), \
7047 (__v8di)_mm512_setzero_si512 (), \
7050 #define _mm512_ror_epi64(A, B) \
7051 ((__m512i)__builtin_ia32_prorq512_mask ((__v8di)(__m512i)(A), \
7053 (__v8di)_mm512_undefined_si512 (), \
7055 #define _mm512_mask_ror_epi64(W, U, A, B) \
7056 ((__m512i)__builtin_ia32_prorq512_mask ((__v8di)(__m512i)(A), \
7058 (__v8di)(__m512i)(W), \
7060 #define _mm512_maskz_ror_epi64(U, A, B) \
7061 ((__m512i)__builtin_ia32_prorq512_mask ((__v8di)(__m512i)(A), \
7063 (__v8di)_mm512_setzero_si512 (), \
7067 extern __inline __m512i
7068 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7069 _mm512_and_si512 (__m512i __A
, __m512i __B
)
7071 return (__m512i
) ((__v16su
) __A
& (__v16su
) __B
);
7074 extern __inline __m512i
7075 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7076 _mm512_and_epi32 (__m512i __A
, __m512i __B
)
7078 return (__m512i
) ((__v16su
) __A
& (__v16su
) __B
);
7081 extern __inline __m512i
7082 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7083 _mm512_mask_and_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
7085 return (__m512i
) __builtin_ia32_pandd512_mask ((__v16si
) __A
,
7091 extern __inline __m512i
7092 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7093 _mm512_maskz_and_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
7095 return (__m512i
) __builtin_ia32_pandd512_mask ((__v16si
) __A
,
7098 _mm512_setzero_si512 (),
7102 extern __inline __m512i
7103 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7104 _mm512_and_epi64 (__m512i __A
, __m512i __B
)
7106 return (__m512i
) ((__v8du
) __A
& (__v8du
) __B
);
7109 extern __inline __m512i
7110 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7111 _mm512_mask_and_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
7113 return (__m512i
) __builtin_ia32_pandq512_mask ((__v8di
) __A
,
7118 extern __inline __m512i
7119 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7120 _mm512_maskz_and_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
7122 return (__m512i
) __builtin_ia32_pandq512_mask ((__v8di
) __A
,
7125 _mm512_setzero_pd (),
7129 extern __inline __m512i
7130 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7131 _mm512_andnot_si512 (__m512i __A
, __m512i __B
)
7133 return (__m512i
) __builtin_ia32_pandnd512_mask ((__v16si
) __A
,
7136 _mm512_undefined_si512 (),
7140 extern __inline __m512i
7141 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7142 _mm512_andnot_epi32 (__m512i __A
, __m512i __B
)
7144 return (__m512i
) __builtin_ia32_pandnd512_mask ((__v16si
) __A
,
7147 _mm512_undefined_si512 (),
7151 extern __inline __m512i
7152 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7153 _mm512_mask_andnot_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
, __m512i __B
)
7155 return (__m512i
) __builtin_ia32_pandnd512_mask ((__v16si
) __A
,
7161 extern __inline __m512i
7162 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7163 _mm512_maskz_andnot_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
7165 return (__m512i
) __builtin_ia32_pandnd512_mask ((__v16si
) __A
,
7168 _mm512_setzero_si512 (),
7172 extern __inline __m512i
7173 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7174 _mm512_andnot_epi64 (__m512i __A
, __m512i __B
)
7176 return (__m512i
) __builtin_ia32_pandnq512_mask ((__v8di
) __A
,
7179 _mm512_undefined_si512 (),
7183 extern __inline __m512i
7184 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7185 _mm512_mask_andnot_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
7187 return (__m512i
) __builtin_ia32_pandnq512_mask ((__v8di
) __A
,
7192 extern __inline __m512i
7193 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7194 _mm512_maskz_andnot_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
7196 return (__m512i
) __builtin_ia32_pandnq512_mask ((__v8di
) __A
,
7199 _mm512_setzero_pd (),
7203 extern __inline __mmask16
7204 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7205 _mm512_test_epi32_mask (__m512i __A
, __m512i __B
)
7207 return (__mmask16
) __builtin_ia32_ptestmd512 ((__v16si
) __A
,
7212 extern __inline __mmask16
7213 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7214 _mm512_mask_test_epi32_mask (__mmask16 __U
, __m512i __A
, __m512i __B
)
7216 return (__mmask16
) __builtin_ia32_ptestmd512 ((__v16si
) __A
,
7217 (__v16si
) __B
, __U
);
7220 extern __inline __mmask8
7221 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7222 _mm512_test_epi64_mask (__m512i __A
, __m512i __B
)
7224 return (__mmask8
) __builtin_ia32_ptestmq512 ((__v8di
) __A
,
7229 extern __inline __mmask8
7230 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7231 _mm512_mask_test_epi64_mask (__mmask8 __U
, __m512i __A
, __m512i __B
)
7233 return (__mmask8
) __builtin_ia32_ptestmq512 ((__v8di
) __A
, (__v8di
) __B
, __U
);
7236 extern __inline __mmask16
7237 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7238 _mm512_testn_epi32_mask (__m512i __A
, __m512i __B
)
7240 return (__mmask16
) __builtin_ia32_ptestnmd512 ((__v16si
) __A
,
7245 extern __inline __mmask16
7246 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7247 _mm512_mask_testn_epi32_mask (__mmask16 __U
, __m512i __A
, __m512i __B
)
7249 return (__mmask16
) __builtin_ia32_ptestnmd512 ((__v16si
) __A
,
7250 (__v16si
) __B
, __U
);
7253 extern __inline __mmask8
7254 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7255 _mm512_testn_epi64_mask (__m512i __A
, __m512i __B
)
7257 return (__mmask8
) __builtin_ia32_ptestnmq512 ((__v8di
) __A
,
7262 extern __inline __mmask8
7263 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7264 _mm512_mask_testn_epi64_mask (__mmask8 __U
, __m512i __A
, __m512i __B
)
7266 return (__mmask8
) __builtin_ia32_ptestnmq512 ((__v8di
) __A
,
7270 extern __inline __m512i
7271 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7272 _mm512_unpackhi_epi32 (__m512i __A
, __m512i __B
)
7274 return (__m512i
) __builtin_ia32_punpckhdq512_mask ((__v16si
) __A
,
7277 _mm512_undefined_si512 (),
7281 extern __inline __m512i
7282 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7283 _mm512_mask_unpackhi_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
,
7286 return (__m512i
) __builtin_ia32_punpckhdq512_mask ((__v16si
) __A
,
7292 extern __inline __m512i
7293 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7294 _mm512_maskz_unpackhi_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
7296 return (__m512i
) __builtin_ia32_punpckhdq512_mask ((__v16si
) __A
,
7299 _mm512_setzero_si512 (),
7303 extern __inline __m512i
7304 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7305 _mm512_unpackhi_epi64 (__m512i __A
, __m512i __B
)
7307 return (__m512i
) __builtin_ia32_punpckhqdq512_mask ((__v8di
) __A
,
7310 _mm512_undefined_si512 (),
7314 extern __inline __m512i
7315 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7316 _mm512_mask_unpackhi_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
7318 return (__m512i
) __builtin_ia32_punpckhqdq512_mask ((__v8di
) __A
,
7324 extern __inline __m512i
7325 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7326 _mm512_maskz_unpackhi_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
7328 return (__m512i
) __builtin_ia32_punpckhqdq512_mask ((__v8di
) __A
,
7331 _mm512_setzero_si512 (),
7335 extern __inline __m512i
7336 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7337 _mm512_unpacklo_epi32 (__m512i __A
, __m512i __B
)
7339 return (__m512i
) __builtin_ia32_punpckldq512_mask ((__v16si
) __A
,
7342 _mm512_undefined_si512 (),
7346 extern __inline __m512i
7347 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7348 _mm512_mask_unpacklo_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
,
7351 return (__m512i
) __builtin_ia32_punpckldq512_mask ((__v16si
) __A
,
7357 extern __inline __m512i
7358 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7359 _mm512_maskz_unpacklo_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
)
7361 return (__m512i
) __builtin_ia32_punpckldq512_mask ((__v16si
) __A
,
7364 _mm512_setzero_si512 (),
7368 extern __inline __m512i
7369 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7370 _mm512_unpacklo_epi64 (__m512i __A
, __m512i __B
)
7372 return (__m512i
) __builtin_ia32_punpcklqdq512_mask ((__v8di
) __A
,
7375 _mm512_undefined_si512 (),
7379 extern __inline __m512i
7380 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7381 _mm512_mask_unpacklo_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
, __m512i __B
)
7383 return (__m512i
) __builtin_ia32_punpcklqdq512_mask ((__v8di
) __A
,
7389 extern __inline __m512i
7390 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7391 _mm512_maskz_unpacklo_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
)
7393 return (__m512i
) __builtin_ia32_punpcklqdq512_mask ((__v8di
) __A
,
7396 _mm512_setzero_si512 (),
7402 extern __inline
unsigned long long
7403 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7404 _mm_cvt_roundss_u64 (__m128 __A
, const int __R
)
7406 return (unsigned long long) __builtin_ia32_vcvtss2usi64 ((__v4sf
) __A
, __R
);
7409 extern __inline
long long
7410 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7411 _mm_cvt_roundss_si64 (__m128 __A
, const int __R
)
7413 return (long long) __builtin_ia32_vcvtss2si64 ((__v4sf
) __A
, __R
);
7416 extern __inline
long long
7417 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7418 _mm_cvt_roundss_i64 (__m128 __A
, const int __R
)
7420 return (long long) __builtin_ia32_vcvtss2si64 ((__v4sf
) __A
, __R
);
7423 extern __inline
unsigned long long
7424 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7425 _mm_cvtt_roundss_u64 (__m128 __A
, const int __R
)
7427 return (unsigned long long) __builtin_ia32_vcvttss2usi64 ((__v4sf
) __A
, __R
);
7430 extern __inline
long long
7431 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7432 _mm_cvtt_roundss_i64 (__m128 __A
, const int __R
)
7434 return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf
) __A
, __R
);
7437 extern __inline
long long
7438 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7439 _mm_cvtt_roundss_si64 (__m128 __A
, const int __R
)
7441 return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf
) __A
, __R
);
7444 #define _mm_cvt_roundss_u64(A, B) \
7445 ((unsigned long long)__builtin_ia32_vcvtss2usi64(A, B))
7447 #define _mm_cvt_roundss_si64(A, B) \
7448 ((long long)__builtin_ia32_vcvtss2si64(A, B))
7450 #define _mm_cvt_roundss_i64(A, B) \
7451 ((long long)__builtin_ia32_vcvtss2si64(A, B))
7453 #define _mm_cvtt_roundss_u64(A, B) \
7454 ((unsigned long long)__builtin_ia32_vcvttss2usi64(A, B))
7456 #define _mm_cvtt_roundss_i64(A, B) \
7457 ((long long)__builtin_ia32_vcvttss2si64(A, B))
7459 #define _mm_cvtt_roundss_si64(A, B) \
7460 ((long long)__builtin_ia32_vcvttss2si64(A, B))
7465 extern __inline
unsigned
7466 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7467 _mm_cvt_roundss_u32 (__m128 __A
, const int __R
)
7469 return (unsigned) __builtin_ia32_vcvtss2usi32 ((__v4sf
) __A
, __R
);
7473 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7474 _mm_cvt_roundss_si32 (__m128 __A
, const int __R
)
7476 return (int) __builtin_ia32_vcvtss2si32 ((__v4sf
) __A
, __R
);
7480 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7481 _mm_cvt_roundss_i32 (__m128 __A
, const int __R
)
7483 return (int) __builtin_ia32_vcvtss2si32 ((__v4sf
) __A
, __R
);
7486 extern __inline
unsigned
7487 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7488 _mm_cvtt_roundss_u32 (__m128 __A
, const int __R
)
7490 return (unsigned) __builtin_ia32_vcvttss2usi32 ((__v4sf
) __A
, __R
);
7494 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7495 _mm_cvtt_roundss_i32 (__m128 __A
, const int __R
)
7497 return (int) __builtin_ia32_vcvttss2si32 ((__v4sf
) __A
, __R
);
7501 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7502 _mm_cvtt_roundss_si32 (__m128 __A
, const int __R
)
7504 return (int) __builtin_ia32_vcvttss2si32 ((__v4sf
) __A
, __R
);
7507 #define _mm_cvt_roundss_u32(A, B) \
7508 ((unsigned)__builtin_ia32_vcvtss2usi32(A, B))
7510 #define _mm_cvt_roundss_si32(A, B) \
7511 ((int)__builtin_ia32_vcvtss2si32(A, B))
7513 #define _mm_cvt_roundss_i32(A, B) \
7514 ((int)__builtin_ia32_vcvtss2si32(A, B))
7516 #define _mm_cvtt_roundss_u32(A, B) \
7517 ((unsigned)__builtin_ia32_vcvttss2usi32(A, B))
7519 #define _mm_cvtt_roundss_si32(A, B) \
7520 ((int)__builtin_ia32_vcvttss2si32(A, B))
7522 #define _mm_cvtt_roundss_i32(A, B) \
7523 ((int)__builtin_ia32_vcvttss2si32(A, B))
7528 extern __inline
unsigned long long
7529 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7530 _mm_cvt_roundsd_u64 (__m128d __A
, const int __R
)
7532 return (unsigned long long) __builtin_ia32_vcvtsd2usi64 ((__v2df
) __A
, __R
);
7535 extern __inline
long long
7536 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7537 _mm_cvt_roundsd_si64 (__m128d __A
, const int __R
)
7539 return (long long) __builtin_ia32_vcvtsd2si64 ((__v2df
) __A
, __R
);
7542 extern __inline
long long
7543 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7544 _mm_cvt_roundsd_i64 (__m128d __A
, const int __R
)
7546 return (long long) __builtin_ia32_vcvtsd2si64 ((__v2df
) __A
, __R
);
7549 extern __inline
unsigned long long
7550 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7551 _mm_cvtt_roundsd_u64 (__m128d __A
, const int __R
)
7553 return (unsigned long long) __builtin_ia32_vcvttsd2usi64 ((__v2df
) __A
, __R
);
7556 extern __inline
long long
7557 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7558 _mm_cvtt_roundsd_si64 (__m128d __A
, const int __R
)
7560 return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df
) __A
, __R
);
7563 extern __inline
long long
7564 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7565 _mm_cvtt_roundsd_i64 (__m128d __A
, const int __R
)
7567 return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df
) __A
, __R
);
7570 #define _mm_cvt_roundsd_u64(A, B) \
7571 ((unsigned long long)__builtin_ia32_vcvtsd2usi64(A, B))
7573 #define _mm_cvt_roundsd_si64(A, B) \
7574 ((long long)__builtin_ia32_vcvtsd2si64(A, B))
7576 #define _mm_cvt_roundsd_i64(A, B) \
7577 ((long long)__builtin_ia32_vcvtsd2si64(A, B))
7579 #define _mm_cvtt_roundsd_u64(A, B) \
7580 ((unsigned long long)__builtin_ia32_vcvttsd2usi64(A, B))
7582 #define _mm_cvtt_roundsd_si64(A, B) \
7583 ((long long)__builtin_ia32_vcvttsd2si64(A, B))
7585 #define _mm_cvtt_roundsd_i64(A, B) \
7586 ((long long)__builtin_ia32_vcvttsd2si64(A, B))
7591 extern __inline
unsigned
7592 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7593 _mm_cvt_roundsd_u32 (__m128d __A
, const int __R
)
7595 return (unsigned) __builtin_ia32_vcvtsd2usi32 ((__v2df
) __A
, __R
);
7599 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7600 _mm_cvt_roundsd_si32 (__m128d __A
, const int __R
)
7602 return (int) __builtin_ia32_vcvtsd2si32 ((__v2df
) __A
, __R
);
7606 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7607 _mm_cvt_roundsd_i32 (__m128d __A
, const int __R
)
7609 return (int) __builtin_ia32_vcvtsd2si32 ((__v2df
) __A
, __R
);
7612 extern __inline
unsigned
7613 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7614 _mm_cvtt_roundsd_u32 (__m128d __A
, const int __R
)
7616 return (unsigned) __builtin_ia32_vcvttsd2usi32 ((__v2df
) __A
, __R
);
7620 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7621 _mm_cvtt_roundsd_i32 (__m128d __A
, const int __R
)
7623 return (int) __builtin_ia32_vcvttsd2si32 ((__v2df
) __A
, __R
);
7627 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7628 _mm_cvtt_roundsd_si32 (__m128d __A
, const int __R
)
7630 return (int) __builtin_ia32_vcvttsd2si32 ((__v2df
) __A
, __R
);
7633 #define _mm_cvt_roundsd_u32(A, B) \
7634 ((unsigned)__builtin_ia32_vcvtsd2usi32(A, B))
7636 #define _mm_cvt_roundsd_si32(A, B) \
7637 ((int)__builtin_ia32_vcvtsd2si32(A, B))
7639 #define _mm_cvt_roundsd_i32(A, B) \
7640 ((int)__builtin_ia32_vcvtsd2si32(A, B))
7642 #define _mm_cvtt_roundsd_u32(A, B) \
7643 ((unsigned)__builtin_ia32_vcvttsd2usi32(A, B))
7645 #define _mm_cvtt_roundsd_si32(A, B) \
7646 ((int)__builtin_ia32_vcvttsd2si32(A, B))
7648 #define _mm_cvtt_roundsd_i32(A, B) \
7649 ((int)__builtin_ia32_vcvttsd2si32(A, B))
7652 extern __inline __m512d
7653 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7654 _mm512_movedup_pd (__m512d __A
)
7656 return (__m512d
) __builtin_ia32_movddup512_mask ((__v8df
) __A
,
7658 _mm512_undefined_pd (),
7662 extern __inline __m512d
7663 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7664 _mm512_mask_movedup_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
7666 return (__m512d
) __builtin_ia32_movddup512_mask ((__v8df
) __A
,
7671 extern __inline __m512d
7672 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7673 _mm512_maskz_movedup_pd (__mmask8 __U
, __m512d __A
)
7675 return (__m512d
) __builtin_ia32_movddup512_mask ((__v8df
) __A
,
7677 _mm512_setzero_pd (),
7681 extern __inline __m512d
7682 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7683 _mm512_unpacklo_pd (__m512d __A
, __m512d __B
)
7685 return (__m512d
) __builtin_ia32_unpcklpd512_mask ((__v8df
) __A
,
7688 _mm512_undefined_pd (),
7692 extern __inline __m512d
7693 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7694 _mm512_mask_unpacklo_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
7696 return (__m512d
) __builtin_ia32_unpcklpd512_mask ((__v8df
) __A
,
7702 extern __inline __m512d
7703 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7704 _mm512_maskz_unpacklo_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
7706 return (__m512d
) __builtin_ia32_unpcklpd512_mask ((__v8df
) __A
,
7709 _mm512_setzero_pd (),
7713 extern __inline __m512d
7714 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7715 _mm512_unpackhi_pd (__m512d __A
, __m512d __B
)
7717 return (__m512d
) __builtin_ia32_unpckhpd512_mask ((__v8df
) __A
,
7720 _mm512_undefined_pd (),
7724 extern __inline __m512d
7725 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7726 _mm512_mask_unpackhi_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
7728 return (__m512d
) __builtin_ia32_unpckhpd512_mask ((__v8df
) __A
,
7734 extern __inline __m512d
7735 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7736 _mm512_maskz_unpackhi_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
7738 return (__m512d
) __builtin_ia32_unpckhpd512_mask ((__v8df
) __A
,
7741 _mm512_setzero_pd (),
7745 extern __inline __m512
7746 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7747 _mm512_unpackhi_ps (__m512 __A
, __m512 __B
)
7749 return (__m512
) __builtin_ia32_unpckhps512_mask ((__v16sf
) __A
,
7752 _mm512_undefined_ps (),
7756 extern __inline __m512
7757 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7758 _mm512_mask_unpackhi_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
7760 return (__m512
) __builtin_ia32_unpckhps512_mask ((__v16sf
) __A
,
7766 extern __inline __m512
7767 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7768 _mm512_maskz_unpackhi_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
7770 return (__m512
) __builtin_ia32_unpckhps512_mask ((__v16sf
) __A
,
7773 _mm512_setzero_ps (),
7778 extern __inline __m512d
7779 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7780 _mm512_cvt_roundps_pd (__m256 __A
, const int __R
)
7782 return (__m512d
) __builtin_ia32_cvtps2pd512_mask ((__v8sf
) __A
,
7784 _mm512_undefined_pd (),
7785 (__mmask8
) -1, __R
);
7788 extern __inline __m512d
7789 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7790 _mm512_mask_cvt_roundps_pd (__m512d __W
, __mmask8 __U
, __m256 __A
,
7793 return (__m512d
) __builtin_ia32_cvtps2pd512_mask ((__v8sf
) __A
,
7795 (__mmask8
) __U
, __R
);
7798 extern __inline __m512d
7799 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7800 _mm512_maskz_cvt_roundps_pd (__mmask8 __U
, __m256 __A
, const int __R
)
7802 return (__m512d
) __builtin_ia32_cvtps2pd512_mask ((__v8sf
) __A
,
7804 _mm512_setzero_pd (),
7805 (__mmask8
) __U
, __R
);
7808 extern __inline __m512
7809 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7810 _mm512_cvt_roundph_ps (__m256i __A
, const int __R
)
7812 return (__m512
) __builtin_ia32_vcvtph2ps512_mask ((__v16hi
) __A
,
7814 _mm512_undefined_ps (),
7815 (__mmask16
) -1, __R
);
7818 extern __inline __m512
7819 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7820 _mm512_mask_cvt_roundph_ps (__m512 __W
, __mmask16 __U
, __m256i __A
,
7823 return (__m512
) __builtin_ia32_vcvtph2ps512_mask ((__v16hi
) __A
,
7825 (__mmask16
) __U
, __R
);
7828 extern __inline __m512
7829 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7830 _mm512_maskz_cvt_roundph_ps (__mmask16 __U
, __m256i __A
, const int __R
)
7832 return (__m512
) __builtin_ia32_vcvtph2ps512_mask ((__v16hi
) __A
,
7834 _mm512_setzero_ps (),
7835 (__mmask16
) __U
, __R
);
7838 extern __inline __m256i
7839 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7840 _mm512_cvt_roundps_ph (__m512 __A
, const int __I
)
7842 return (__m256i
) __builtin_ia32_vcvtps2ph512_mask ((__v16sf
) __A
,
7845 _mm256_undefined_si256 (),
7849 extern __inline __m256i
7850 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7851 _mm512_cvtps_ph (__m512 __A
, const int __I
)
7853 return (__m256i
) __builtin_ia32_vcvtps2ph512_mask ((__v16sf
) __A
,
7856 _mm256_undefined_si256 (),
7860 extern __inline __m256i
7861 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7862 _mm512_mask_cvt_roundps_ph (__m256i __U
, __mmask16 __W
, __m512 __A
,
7865 return (__m256i
) __builtin_ia32_vcvtps2ph512_mask ((__v16sf
) __A
,
7871 extern __inline __m256i
7872 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7873 _mm512_mask_cvtps_ph (__m256i __U
, __mmask16 __W
, __m512 __A
, const int __I
)
7875 return (__m256i
) __builtin_ia32_vcvtps2ph512_mask ((__v16sf
) __A
,
7881 extern __inline __m256i
7882 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7883 _mm512_maskz_cvt_roundps_ph (__mmask16 __W
, __m512 __A
, const int __I
)
7885 return (__m256i
) __builtin_ia32_vcvtps2ph512_mask ((__v16sf
) __A
,
7888 _mm256_setzero_si256 (),
7892 extern __inline __m256i
7893 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7894 _mm512_maskz_cvtps_ph (__mmask16 __W
, __m512 __A
, const int __I
)
7896 return (__m256i
) __builtin_ia32_vcvtps2ph512_mask ((__v16sf
) __A
,
7899 _mm256_setzero_si256 (),
7903 #define _mm512_cvt_roundps_pd(A, B) \
7904 (__m512d)__builtin_ia32_cvtps2pd512_mask(A, (__v8df)_mm512_undefined_pd(), -1, B)
7906 #define _mm512_mask_cvt_roundps_pd(W, U, A, B) \
7907 (__m512d)__builtin_ia32_cvtps2pd512_mask(A, (__v8df)(W), U, B)
7909 #define _mm512_maskz_cvt_roundps_pd(U, A, B) \
7910 (__m512d)__builtin_ia32_cvtps2pd512_mask(A, (__v8df)_mm512_setzero_pd(), U, B)
7912 #define _mm512_cvt_roundph_ps(A, B) \
7913 (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(A), (__v16sf)_mm512_undefined_ps(), -1, B)
7915 #define _mm512_mask_cvt_roundph_ps(W, U, A, B) \
7916 (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(A), (__v16sf)(W), U, B)
7918 #define _mm512_maskz_cvt_roundph_ps(U, A, B) \
7919 (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(A), (__v16sf)_mm512_setzero_ps(), U, B)
7921 #define _mm512_cvt_roundps_ph(A, I) \
7922 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
7923 (__v16hi)_mm256_undefined_si256 (), -1))
7924 #define _mm512_cvtps_ph(A, I) \
7925 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
7926 (__v16hi)_mm256_undefined_si256 (), -1))
7927 #define _mm512_mask_cvt_roundps_ph(U, W, A, I) \
7928 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
7929 (__v16hi)(__m256i)(U), (__mmask16) (W)))
7930 #define _mm512_mask_cvtps_ph(U, W, A, I) \
7931 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
7932 (__v16hi)(__m256i)(U), (__mmask16) (W)))
7933 #define _mm512_maskz_cvt_roundps_ph(W, A, I) \
7934 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
7935 (__v16hi)_mm256_setzero_si256 (), (__mmask16) (W)))
7936 #define _mm512_maskz_cvtps_ph(W, A, I) \
7937 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
7938 (__v16hi)_mm256_setzero_si256 (), (__mmask16) (W)))
7942 extern __inline __m256
7943 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7944 _mm512_cvt_roundpd_ps (__m512d __A
, const int __R
)
7946 return (__m256
) __builtin_ia32_cvtpd2ps512_mask ((__v8df
) __A
,
7948 _mm256_undefined_ps (),
7949 (__mmask8
) -1, __R
);
7952 extern __inline __m256
7953 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7954 _mm512_mask_cvt_roundpd_ps (__m256 __W
, __mmask8 __U
, __m512d __A
,
7957 return (__m256
) __builtin_ia32_cvtpd2ps512_mask ((__v8df
) __A
,
7959 (__mmask8
) __U
, __R
);
7962 extern __inline __m256
7963 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7964 _mm512_maskz_cvt_roundpd_ps (__mmask8 __U
, __m512d __A
, const int __R
)
7966 return (__m256
) __builtin_ia32_cvtpd2ps512_mask ((__v8df
) __A
,
7968 _mm256_setzero_ps (),
7969 (__mmask8
) __U
, __R
);
7972 extern __inline __m128
7973 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7974 _mm_cvt_roundsd_ss (__m128 __A
, __m128d __B
, const int __R
)
7976 return (__m128
) __builtin_ia32_cvtsd2ss_round ((__v4sf
) __A
,
7981 extern __inline __m128d
7982 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
7983 _mm_cvt_roundss_sd (__m128d __A
, __m128 __B
, const int __R
)
7985 return (__m128d
) __builtin_ia32_cvtss2sd_round ((__v2df
) __A
,
7990 #define _mm512_cvt_roundpd_ps(A, B) \
7991 (__m256)__builtin_ia32_cvtpd2ps512_mask(A, (__v8sf)_mm256_undefined_ps(), -1, B)
7993 #define _mm512_mask_cvt_roundpd_ps(W, U, A, B) \
7994 (__m256)__builtin_ia32_cvtpd2ps512_mask(A, (__v8sf)(W), U, B)
7996 #define _mm512_maskz_cvt_roundpd_ps(U, A, B) \
7997 (__m256)__builtin_ia32_cvtpd2ps512_mask(A, (__v8sf)_mm256_setzero_ps(), U, B)
7999 #define _mm_cvt_roundsd_ss(A, B, C) \
8000 (__m128)__builtin_ia32_cvtsd2ss_round(A, B, C)
8002 #define _mm_cvt_roundss_sd(A, B, C) \
8003 (__m128d)__builtin_ia32_cvtss2sd_round(A, B, C)
8006 extern __inline
void
8007 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8008 _mm512_stream_si512 (__m512i
* __P
, __m512i __A
)
8010 __builtin_ia32_movntdq512 ((__v8di
*) __P
, (__v8di
) __A
);
8013 extern __inline
void
8014 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8015 _mm512_stream_ps (float *__P
, __m512 __A
)
8017 __builtin_ia32_movntps512 (__P
, (__v16sf
) __A
);
8020 extern __inline
void
8021 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8022 _mm512_stream_pd (double *__P
, __m512d __A
)
8024 __builtin_ia32_movntpd512 (__P
, (__v8df
) __A
);
8027 extern __inline __m512i
8028 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8029 _mm512_stream_load_si512 (void *__P
)
8031 return __builtin_ia32_movntdqa512 ((__v8di
*)__P
);
8034 /* Constants for mantissa extraction */
8037 _MM_MANT_NORM_1_2
, /* interval [1, 2) */
8038 _MM_MANT_NORM_p5_2
, /* interval [0.5, 2) */
8039 _MM_MANT_NORM_p5_1
, /* interval [0.5, 1) */
8040 _MM_MANT_NORM_p75_1p5
/* interval [0.75, 1.5) */
8041 } _MM_MANTISSA_NORM_ENUM
;
8045 _MM_MANT_SIGN_src
, /* sign = sign(SRC) */
8046 _MM_MANT_SIGN_zero
, /* sign = 0 */
8047 _MM_MANT_SIGN_nan
/* DEST = NaN if sign(SRC) = 1 */
8048 } _MM_MANTISSA_SIGN_ENUM
;
8051 extern __inline __m128
8052 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8053 _mm_getexp_round_ss (__m128 __A
, __m128 __B
, const int __R
)
8055 return (__m128
) __builtin_ia32_getexpss128_round ((__v4sf
) __A
,
8060 extern __inline __m128d
8061 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8062 _mm_getexp_round_sd (__m128d __A
, __m128d __B
, const int __R
)
8064 return (__m128d
) __builtin_ia32_getexpsd128_round ((__v2df
) __A
,
8069 extern __inline __m512
8070 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8071 _mm512_getexp_round_ps (__m512 __A
, const int __R
)
8073 return (__m512
) __builtin_ia32_getexpps512_mask ((__v16sf
) __A
,
8075 _mm512_undefined_ps (),
8076 (__mmask16
) -1, __R
);
8079 extern __inline __m512
8080 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8081 _mm512_mask_getexp_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
8084 return (__m512
) __builtin_ia32_getexpps512_mask ((__v16sf
) __A
,
8086 (__mmask16
) __U
, __R
);
8089 extern __inline __m512
8090 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8091 _mm512_maskz_getexp_round_ps (__mmask16 __U
, __m512 __A
, const int __R
)
8093 return (__m512
) __builtin_ia32_getexpps512_mask ((__v16sf
) __A
,
8095 _mm512_setzero_ps (),
8096 (__mmask16
) __U
, __R
);
8099 extern __inline __m512d
8100 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8101 _mm512_getexp_round_pd (__m512d __A
, const int __R
)
8103 return (__m512d
) __builtin_ia32_getexppd512_mask ((__v8df
) __A
,
8105 _mm512_undefined_pd (),
8106 (__mmask8
) -1, __R
);
8109 extern __inline __m512d
8110 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8111 _mm512_mask_getexp_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
8114 return (__m512d
) __builtin_ia32_getexppd512_mask ((__v8df
) __A
,
8116 (__mmask8
) __U
, __R
);
8119 extern __inline __m512d
8120 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8121 _mm512_maskz_getexp_round_pd (__mmask8 __U
, __m512d __A
, const int __R
)
8123 return (__m512d
) __builtin_ia32_getexppd512_mask ((__v8df
) __A
,
8125 _mm512_setzero_pd (),
8126 (__mmask8
) __U
, __R
);
8129 extern __inline __m512d
8130 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8131 _mm512_getmant_round_pd (__m512d __A
, _MM_MANTISSA_NORM_ENUM __B
,
8132 _MM_MANTISSA_SIGN_ENUM __C
, const int __R
)
8134 return (__m512d
) __builtin_ia32_getmantpd512_mask ((__v8df
) __A
,
8136 _mm512_undefined_pd (),
8137 (__mmask8
) -1, __R
);
8140 extern __inline __m512d
8141 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8142 _mm512_mask_getmant_round_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
8143 _MM_MANTISSA_NORM_ENUM __B
,
8144 _MM_MANTISSA_SIGN_ENUM __C
, const int __R
)
8146 return (__m512d
) __builtin_ia32_getmantpd512_mask ((__v8df
) __A
,
8152 extern __inline __m512d
8153 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8154 _mm512_maskz_getmant_round_pd (__mmask8 __U
, __m512d __A
,
8155 _MM_MANTISSA_NORM_ENUM __B
,
8156 _MM_MANTISSA_SIGN_ENUM __C
, const int __R
)
8158 return (__m512d
) __builtin_ia32_getmantpd512_mask ((__v8df
) __A
,
8161 _mm512_setzero_pd (),
8165 extern __inline __m512
8166 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8167 _mm512_getmant_round_ps (__m512 __A
, _MM_MANTISSA_NORM_ENUM __B
,
8168 _MM_MANTISSA_SIGN_ENUM __C
, const int __R
)
8170 return (__m512
) __builtin_ia32_getmantps512_mask ((__v16sf
) __A
,
8172 _mm512_undefined_ps (),
8173 (__mmask16
) -1, __R
);
8176 extern __inline __m512
8177 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8178 _mm512_mask_getmant_round_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
8179 _MM_MANTISSA_NORM_ENUM __B
,
8180 _MM_MANTISSA_SIGN_ENUM __C
, const int __R
)
8182 return (__m512
) __builtin_ia32_getmantps512_mask ((__v16sf
) __A
,
8188 extern __inline __m512
8189 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8190 _mm512_maskz_getmant_round_ps (__mmask16 __U
, __m512 __A
,
8191 _MM_MANTISSA_NORM_ENUM __B
,
8192 _MM_MANTISSA_SIGN_ENUM __C
, const int __R
)
8194 return (__m512
) __builtin_ia32_getmantps512_mask ((__v16sf
) __A
,
8197 _mm512_setzero_ps (),
8201 extern __inline __m128d
8202 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8203 _mm_getmant_round_sd (__m128d __A
, __m128d __B
,
8204 _MM_MANTISSA_NORM_ENUM __C
,
8205 _MM_MANTISSA_SIGN_ENUM __D
, const int __R
)
8207 return (__m128d
) __builtin_ia32_getmantsd_round ((__v2df
) __A
,
8213 extern __inline __m128
8214 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8215 _mm_getmant_round_ss (__m128 __A
, __m128 __B
,
8216 _MM_MANTISSA_NORM_ENUM __C
,
8217 _MM_MANTISSA_SIGN_ENUM __D
, const int __R
)
8219 return (__m128
) __builtin_ia32_getmantss_round ((__v4sf
) __A
,
8226 #define _mm512_getmant_round_pd(X, B, C, R) \
8227 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
8228 (int)(((C)<<2) | (B)), \
8229 (__v8df)(__m512d)_mm512_undefined_pd(), \
8233 #define _mm512_mask_getmant_round_pd(W, U, X, B, C, R) \
8234 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
8235 (int)(((C)<<2) | (B)), \
8236 (__v8df)(__m512d)(W), \
8240 #define _mm512_maskz_getmant_round_pd(U, X, B, C, R) \
8241 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
8242 (int)(((C)<<2) | (B)), \
8243 (__v8df)(__m512d)_mm512_setzero_pd(), \
8246 #define _mm512_getmant_round_ps(X, B, C, R) \
8247 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
8248 (int)(((C)<<2) | (B)), \
8249 (__v16sf)(__m512)_mm512_undefined_ps(), \
8253 #define _mm512_mask_getmant_round_ps(W, U, X, B, C, R) \
8254 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
8255 (int)(((C)<<2) | (B)), \
8256 (__v16sf)(__m512)(W), \
8260 #define _mm512_maskz_getmant_round_ps(U, X, B, C, R) \
8261 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
8262 (int)(((C)<<2) | (B)), \
8263 (__v16sf)(__m512)_mm512_setzero_ps(), \
8266 #define _mm_getmant_round_sd(X, Y, C, D, R) \
8267 ((__m128d)__builtin_ia32_getmantsd_round ((__v2df)(__m128d)(X), \
8268 (__v2df)(__m128d)(Y), \
8269 (int)(((D)<<2) | (C)), \
8272 #define _mm_getmant_round_ss(X, Y, C, D, R) \
8273 ((__m128)__builtin_ia32_getmantss_round ((__v4sf)(__m128)(X), \
8274 (__v4sf)(__m128)(Y), \
8275 (int)(((D)<<2) | (C)), \
8278 #define _mm_getexp_round_ss(A, B, R) \
8279 ((__m128)__builtin_ia32_getexpss128_round((__v4sf)(__m128)(A), (__v4sf)(__m128)(B), R))
8281 #define _mm_getexp_round_sd(A, B, R) \
8282 ((__m128d)__builtin_ia32_getexpsd128_round((__v2df)(__m128d)(A), (__v2df)(__m128d)(B), R))
8284 #define _mm512_getexp_round_ps(A, R) \
8285 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
8286 (__v16sf)_mm512_undefined_ps(), (__mmask16)-1, R))
8288 #define _mm512_mask_getexp_round_ps(W, U, A, R) \
8289 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
8290 (__v16sf)(__m512)(W), (__mmask16)(U), R))
8292 #define _mm512_maskz_getexp_round_ps(U, A, R) \
8293 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
8294 (__v16sf)_mm512_setzero_ps(), (__mmask16)(U), R))
8296 #define _mm512_getexp_round_pd(A, R) \
8297 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
8298 (__v8df)_mm512_undefined_pd(), (__mmask8)-1, R))
8300 #define _mm512_mask_getexp_round_pd(W, U, A, R) \
8301 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
8302 (__v8df)(__m512d)(W), (__mmask8)(U), R))
8304 #define _mm512_maskz_getexp_round_pd(U, A, R) \
8305 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
8306 (__v8df)_mm512_setzero_pd(), (__mmask8)(U), R))
8310 extern __inline __m512
8311 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8312 _mm512_roundscale_round_ps (__m512 __A
, const int __imm
, const int __R
)
8314 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
, __imm
,
8316 _mm512_undefined_ps (),
8320 extern __inline __m512
8321 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8322 _mm512_mask_roundscale_round_ps (__m512 __A
, __mmask16 __B
, __m512 __C
,
8323 const int __imm
, const int __R
)
8325 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __C
, __imm
,
8327 (__mmask16
) __B
, __R
);
8330 extern __inline __m512
8331 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8332 _mm512_maskz_roundscale_round_ps (__mmask16 __A
, __m512 __B
,
8333 const int __imm
, const int __R
)
8335 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __B
,
8338 _mm512_setzero_ps (),
8339 (__mmask16
) __A
, __R
);
8342 extern __inline __m512d
8343 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8344 _mm512_roundscale_round_pd (__m512d __A
, const int __imm
, const int __R
)
8346 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
, __imm
,
8348 _mm512_undefined_pd (),
8352 extern __inline __m512d
8353 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8354 _mm512_mask_roundscale_round_pd (__m512d __A
, __mmask8 __B
,
8355 __m512d __C
, const int __imm
, const int __R
)
8357 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __C
, __imm
,
8359 (__mmask8
) __B
, __R
);
8362 extern __inline __m512d
8363 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8364 _mm512_maskz_roundscale_round_pd (__mmask8 __A
, __m512d __B
,
8365 const int __imm
, const int __R
)
8367 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __B
,
8370 _mm512_setzero_pd (),
8371 (__mmask8
) __A
, __R
);
8374 extern __inline __m128
8375 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8376 _mm_roundscale_round_ss (__m128 __A
, __m128 __B
, const int __imm
, const int __R
)
8378 return (__m128
) __builtin_ia32_rndscaless_round ((__v4sf
) __A
,
8379 (__v4sf
) __B
, __imm
, __R
);
8382 extern __inline __m128d
8383 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8384 _mm_roundscale_round_sd (__m128d __A
, __m128d __B
, const int __imm
,
8387 return (__m128d
) __builtin_ia32_rndscalesd_round ((__v2df
) __A
,
8388 (__v2df
) __B
, __imm
, __R
);
8392 #define _mm512_roundscale_round_ps(A, B, R) \
8393 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(A), (int)(B),\
8394 (__v16sf)_mm512_undefined_ps(), (__mmask16)(-1), R))
8395 #define _mm512_mask_roundscale_round_ps(A, B, C, D, R) \
8396 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(C), \
8398 (__v16sf)(__m512)(A), \
8400 #define _mm512_maskz_roundscale_round_ps(A, B, C, R) \
8401 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(B), \
8403 (__v16sf)_mm512_setzero_ps(),\
8405 #define _mm512_roundscale_round_pd(A, B, R) \
8406 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(A), (int)(B),\
8407 (__v8df)_mm512_undefined_pd(), (__mmask8)(-1), R))
8408 #define _mm512_mask_roundscale_round_pd(A, B, C, D, R) \
8409 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(C), \
8411 (__v8df)(__m512d)(A), \
8413 #define _mm512_maskz_roundscale_round_pd(A, B, C, R) \
8414 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(B), \
8416 (__v8df)_mm512_setzero_pd(),\
8418 #define _mm_roundscale_round_ss(A, B, C, R) \
8419 ((__m128) __builtin_ia32_rndscaless_round ((__v4sf)(__m128)(A), \
8420 (__v4sf)(__m128)(B), (int)(C), R))
8421 #define _mm_roundscale_round_sd(A, B, C, R) \
8422 ((__m128d) __builtin_ia32_rndscalesd_round ((__v2df)(__m128d)(A), \
8423 (__v2df)(__m128d)(B), (int)(C), R))
8426 extern __inline __m512
8427 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8428 _mm512_floor_ps (__m512 __A
)
8430 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
,
8433 _MM_FROUND_CUR_DIRECTION
);
8436 extern __inline __m512d
8437 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8438 _mm512_floor_pd (__m512d __A
)
8440 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
,
8443 _MM_FROUND_CUR_DIRECTION
);
8446 extern __inline __m512
8447 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8448 _mm512_ceil_ps (__m512 __A
)
8450 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
,
8453 _MM_FROUND_CUR_DIRECTION
);
8456 extern __inline __m512d
8457 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8458 _mm512_ceil_pd (__m512d __A
)
8460 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
,
8463 _MM_FROUND_CUR_DIRECTION
);
8466 extern __inline __m512
8467 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8468 _mm512_mask_floor_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
8470 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
,
8473 _MM_FROUND_CUR_DIRECTION
);
8476 extern __inline __m512d
8477 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8478 _mm512_mask_floor_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
8480 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
,
8483 _MM_FROUND_CUR_DIRECTION
);
8486 extern __inline __m512
8487 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8488 _mm512_mask_ceil_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
8490 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
,
8493 _MM_FROUND_CUR_DIRECTION
);
8496 extern __inline __m512d
8497 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8498 _mm512_mask_ceil_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
8500 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
,
8503 _MM_FROUND_CUR_DIRECTION
);
8507 extern __inline __m512i
8508 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8509 _mm512_alignr_epi32 (__m512i __A
, __m512i __B
, const int __imm
)
8511 return (__m512i
) __builtin_ia32_alignd512_mask ((__v16si
) __A
,
8512 (__v16si
) __B
, __imm
,
8514 _mm512_undefined_si512 (),
8518 extern __inline __m512i
8519 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8520 _mm512_mask_alignr_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
,
8521 __m512i __B
, const int __imm
)
8523 return (__m512i
) __builtin_ia32_alignd512_mask ((__v16si
) __A
,
8524 (__v16si
) __B
, __imm
,
8529 extern __inline __m512i
8530 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8531 _mm512_maskz_alignr_epi32 (__mmask16 __U
, __m512i __A
, __m512i __B
,
8534 return (__m512i
) __builtin_ia32_alignd512_mask ((__v16si
) __A
,
8535 (__v16si
) __B
, __imm
,
8537 _mm512_setzero_si512 (),
8541 extern __inline __m512i
8542 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8543 _mm512_alignr_epi64 (__m512i __A
, __m512i __B
, const int __imm
)
8545 return (__m512i
) __builtin_ia32_alignq512_mask ((__v8di
) __A
,
8546 (__v8di
) __B
, __imm
,
8548 _mm512_undefined_si512 (),
8552 extern __inline __m512i
8553 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8554 _mm512_mask_alignr_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
,
8555 __m512i __B
, const int __imm
)
8557 return (__m512i
) __builtin_ia32_alignq512_mask ((__v8di
) __A
,
8558 (__v8di
) __B
, __imm
,
8563 extern __inline __m512i
8564 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8565 _mm512_maskz_alignr_epi64 (__mmask8 __U
, __m512i __A
, __m512i __B
,
8568 return (__m512i
) __builtin_ia32_alignq512_mask ((__v8di
) __A
,
8569 (__v8di
) __B
, __imm
,
8571 _mm512_setzero_si512 (),
8575 #define _mm512_alignr_epi32(X, Y, C) \
8576 ((__m512i)__builtin_ia32_alignd512_mask ((__v16si)(__m512i)(X), \
8577 (__v16si)(__m512i)(Y), (int)(C), (__v16si)_mm512_undefined_si512 (),\
8580 #define _mm512_mask_alignr_epi32(W, U, X, Y, C) \
8581 ((__m512i)__builtin_ia32_alignd512_mask ((__v16si)(__m512i)(X), \
8582 (__v16si)(__m512i)(Y), (int)(C), (__v16si)(__m512i)(W), \
8585 #define _mm512_maskz_alignr_epi32(U, X, Y, C) \
8586 ((__m512i)__builtin_ia32_alignd512_mask ((__v16si)(__m512i)(X), \
8587 (__v16si)(__m512i)(Y), (int)(C), (__v16si)_mm512_setzero_si512 (),\
8590 #define _mm512_alignr_epi64(X, Y, C) \
8591 ((__m512i)__builtin_ia32_alignq512_mask ((__v8di)(__m512i)(X), \
8592 (__v8di)(__m512i)(Y), (int)(C), (__v8di)_mm512_undefined_si512 (), \
8595 #define _mm512_mask_alignr_epi64(W, U, X, Y, C) \
8596 ((__m512i)__builtin_ia32_alignq512_mask ((__v8di)(__m512i)(X), \
8597 (__v8di)(__m512i)(Y), (int)(C), (__v8di)(__m512i)(W), (__mmask8)(U)))
8599 #define _mm512_maskz_alignr_epi64(U, X, Y, C) \
8600 ((__m512i)__builtin_ia32_alignq512_mask ((__v8di)(__m512i)(X), \
8601 (__v8di)(__m512i)(Y), (int)(C), (__v8di)_mm512_setzero_si512 (),\
8605 extern __inline __mmask16
8606 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8607 _mm512_cmpeq_epi32_mask (__m512i __A
, __m512i __B
)
8609 return (__mmask16
) __builtin_ia32_pcmpeqd512_mask ((__v16si
) __A
,
8614 extern __inline __mmask16
8615 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8616 _mm512_mask_cmpeq_epi32_mask (__mmask16 __U
, __m512i __A
, __m512i __B
)
8618 return (__mmask16
) __builtin_ia32_pcmpeqd512_mask ((__v16si
) __A
,
8619 (__v16si
) __B
, __U
);
8622 extern __inline __mmask8
8623 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8624 _mm512_mask_cmpeq_epi64_mask (__mmask8 __U
, __m512i __A
, __m512i __B
)
8626 return (__mmask8
) __builtin_ia32_pcmpeqq512_mask ((__v8di
) __A
,
8630 extern __inline __mmask8
8631 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8632 _mm512_cmpeq_epi64_mask (__m512i __A
, __m512i __B
)
8634 return (__mmask8
) __builtin_ia32_pcmpeqq512_mask ((__v8di
) __A
,
8639 extern __inline __mmask16
8640 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8641 _mm512_cmpgt_epi32_mask (__m512i __A
, __m512i __B
)
8643 return (__mmask16
) __builtin_ia32_pcmpgtd512_mask ((__v16si
) __A
,
8648 extern __inline __mmask16
8649 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8650 _mm512_mask_cmpgt_epi32_mask (__mmask16 __U
, __m512i __A
, __m512i __B
)
8652 return (__mmask16
) __builtin_ia32_pcmpgtd512_mask ((__v16si
) __A
,
8653 (__v16si
) __B
, __U
);
8656 extern __inline __mmask8
8657 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8658 _mm512_mask_cmpgt_epi64_mask (__mmask8 __U
, __m512i __A
, __m512i __B
)
8660 return (__mmask8
) __builtin_ia32_pcmpgtq512_mask ((__v8di
) __A
,
8664 extern __inline __mmask8
8665 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8666 _mm512_cmpgt_epi64_mask (__m512i __A
, __m512i __B
)
8668 return (__mmask8
) __builtin_ia32_pcmpgtq512_mask ((__v8di
) __A
,
8673 extern __inline __mmask16
8674 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8675 _mm512_cmpge_epi32_mask (__m512i __X
, __m512i __Y
)
8677 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
8682 extern __inline __mmask16
8683 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8684 _mm512_mask_cmpge_epi32_mask (__mmask16 __M
, __m512i __X
, __m512i __Y
)
8686 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
8691 extern __inline __mmask16
8692 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8693 _mm512_mask_cmpge_epu32_mask (__mmask16 __M
, __m512i __X
, __m512i __Y
)
8695 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
8700 extern __inline __mmask16
8701 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8702 _mm512_cmpge_epu32_mask (__m512i __X
, __m512i __Y
)
8704 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
8709 extern __inline __mmask8
8710 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8711 _mm512_mask_cmpge_epi64_mask (__mmask8 __M
, __m512i __X
, __m512i __Y
)
8713 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
8718 extern __inline __mmask8
8719 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8720 _mm512_cmpge_epi64_mask (__m512i __X
, __m512i __Y
)
8722 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
8727 extern __inline __mmask8
8728 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8729 _mm512_mask_cmpge_epu64_mask (__mmask8 __M
, __m512i __X
, __m512i __Y
)
8731 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
8736 extern __inline __mmask8
8737 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8738 _mm512_cmpge_epu64_mask (__m512i __X
, __m512i __Y
)
8740 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
8745 extern __inline __mmask16
8746 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8747 _mm512_mask_cmple_epi32_mask (__mmask16 __M
, __m512i __X
, __m512i __Y
)
8749 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
8754 extern __inline __mmask16
8755 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8756 _mm512_cmple_epi32_mask (__m512i __X
, __m512i __Y
)
8758 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
8763 extern __inline __mmask16
8764 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8765 _mm512_mask_cmple_epu32_mask (__mmask16 __M
, __m512i __X
, __m512i __Y
)
8767 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
8772 extern __inline __mmask16
8773 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8774 _mm512_cmple_epu32_mask (__m512i __X
, __m512i __Y
)
8776 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
8781 extern __inline __mmask8
8782 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8783 _mm512_mask_cmple_epi64_mask (__mmask8 __M
, __m512i __X
, __m512i __Y
)
8785 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
8790 extern __inline __mmask8
8791 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8792 _mm512_cmple_epi64_mask (__m512i __X
, __m512i __Y
)
8794 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
8799 extern __inline __mmask8
8800 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8801 _mm512_mask_cmple_epu64_mask (__mmask8 __M
, __m512i __X
, __m512i __Y
)
8803 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
8808 extern __inline __mmask8
8809 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8810 _mm512_cmple_epu64_mask (__m512i __X
, __m512i __Y
)
8812 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
8817 extern __inline __mmask16
8818 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8819 _mm512_mask_cmplt_epi32_mask (__mmask16 __M
, __m512i __X
, __m512i __Y
)
8821 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
8826 extern __inline __mmask16
8827 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8828 _mm512_cmplt_epi32_mask (__m512i __X
, __m512i __Y
)
8830 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
8835 extern __inline __mmask16
8836 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8837 _mm512_mask_cmplt_epu32_mask (__mmask16 __M
, __m512i __X
, __m512i __Y
)
8839 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
8844 extern __inline __mmask16
8845 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8846 _mm512_cmplt_epu32_mask (__m512i __X
, __m512i __Y
)
8848 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
8853 extern __inline __mmask8
8854 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8855 _mm512_mask_cmplt_epi64_mask (__mmask8 __M
, __m512i __X
, __m512i __Y
)
8857 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
8862 extern __inline __mmask8
8863 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8864 _mm512_cmplt_epi64_mask (__m512i __X
, __m512i __Y
)
8866 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
8871 extern __inline __mmask8
8872 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8873 _mm512_mask_cmplt_epu64_mask (__mmask8 __M
, __m512i __X
, __m512i __Y
)
8875 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
8880 extern __inline __mmask8
8881 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8882 _mm512_cmplt_epu64_mask (__m512i __X
, __m512i __Y
)
8884 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
8889 extern __inline __mmask16
8890 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8891 _mm512_cmpneq_epi32_mask (__m512i __X
, __m512i __Y
)
8893 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
8898 extern __inline __mmask16
8899 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8900 _mm512_mask_cmpneq_epi32_mask (__mmask16 __M
, __m512i __X
, __m512i __Y
)
8902 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
8907 extern __inline __mmask16
8908 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8909 _mm512_mask_cmpneq_epu32_mask (__mmask16 __M
, __m512i __X
, __m512i __Y
)
8911 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
8916 extern __inline __mmask16
8917 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8918 _mm512_cmpneq_epu32_mask (__m512i __X
, __m512i __Y
)
8920 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
8925 extern __inline __mmask8
8926 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8927 _mm512_mask_cmpneq_epi64_mask (__mmask16 __M
, __m512i __X
, __m512i __Y
)
8929 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
8934 extern __inline __mmask8
8935 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8936 _mm512_cmpneq_epi64_mask (__m512i __X
, __m512i __Y
)
8938 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
8943 extern __inline __mmask8
8944 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8945 _mm512_mask_cmpneq_epu64_mask (__mmask8 __M
, __m512i __X
, __m512i __Y
)
8947 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
8952 extern __inline __mmask8
8953 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8954 _mm512_cmpneq_epu64_mask (__m512i __X
, __m512i __Y
)
8956 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
8961 #define _MM_CMPINT_EQ 0x0
8962 #define _MM_CMPINT_LT 0x1
8963 #define _MM_CMPINT_LE 0x2
8964 #define _MM_CMPINT_UNUSED 0x3
8965 #define _MM_CMPINT_NE 0x4
8966 #define _MM_CMPINT_NLT 0x5
8967 #define _MM_CMPINT_GE 0x5
8968 #define _MM_CMPINT_NLE 0x6
8969 #define _MM_CMPINT_GT 0x6
8972 extern __inline __mmask8
8973 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8974 _mm512_cmp_epi64_mask (__m512i __X
, __m512i __Y
, const int __P
)
8976 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
8981 extern __inline __mmask16
8982 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8983 _mm512_cmp_epi32_mask (__m512i __X
, __m512i __Y
, const int __P
)
8985 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
8990 extern __inline __mmask8
8991 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
8992 _mm512_cmp_epu64_mask (__m512i __X
, __m512i __Y
, const int __P
)
8994 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
8999 extern __inline __mmask16
9000 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9001 _mm512_cmp_epu32_mask (__m512i __X
, __m512i __Y
, const int __P
)
9003 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
9008 extern __inline __mmask8
9009 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9010 _mm512_cmp_round_pd_mask (__m512d __X
, __m512d __Y
, const int __P
,
9013 return (__mmask8
) __builtin_ia32_cmppd512_mask ((__v8df
) __X
,
9015 (__mmask8
) -1, __R
);
9018 extern __inline __mmask16
9019 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9020 _mm512_cmp_round_ps_mask (__m512 __X
, __m512 __Y
, const int __P
, const int __R
)
9022 return (__mmask16
) __builtin_ia32_cmpps512_mask ((__v16sf
) __X
,
9024 (__mmask16
) -1, __R
);
9027 extern __inline __mmask8
9028 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9029 _mm512_mask_cmp_epi64_mask (__mmask8 __U
, __m512i __X
, __m512i __Y
,
9032 return (__mmask8
) __builtin_ia32_cmpq512_mask ((__v8di
) __X
,
9037 extern __inline __mmask16
9038 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9039 _mm512_mask_cmp_epi32_mask (__mmask16 __U
, __m512i __X
, __m512i __Y
,
9042 return (__mmask16
) __builtin_ia32_cmpd512_mask ((__v16si
) __X
,
9047 extern __inline __mmask8
9048 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9049 _mm512_mask_cmp_epu64_mask (__mmask8 __U
, __m512i __X
, __m512i __Y
,
9052 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __X
,
9057 extern __inline __mmask16
9058 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9059 _mm512_mask_cmp_epu32_mask (__mmask16 __U
, __m512i __X
, __m512i __Y
,
9062 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __X
,
9067 extern __inline __mmask8
9068 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9069 _mm512_mask_cmp_round_pd_mask (__mmask8 __U
, __m512d __X
, __m512d __Y
,
9070 const int __P
, const int __R
)
9072 return (__mmask8
) __builtin_ia32_cmppd512_mask ((__v8df
) __X
,
9074 (__mmask8
) __U
, __R
);
9077 extern __inline __mmask16
9078 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9079 _mm512_mask_cmp_round_ps_mask (__mmask16 __U
, __m512 __X
, __m512 __Y
,
9080 const int __P
, const int __R
)
9082 return (__mmask16
) __builtin_ia32_cmpps512_mask ((__v16sf
) __X
,
9084 (__mmask16
) __U
, __R
);
9087 extern __inline __mmask8
9088 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9089 _mm_cmp_round_sd_mask (__m128d __X
, __m128d __Y
, const int __P
, const int __R
)
9091 return (__mmask8
) __builtin_ia32_cmpsd_mask ((__v2df
) __X
,
9093 (__mmask8
) -1, __R
);
9096 extern __inline __mmask8
9097 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9098 _mm_mask_cmp_round_sd_mask (__mmask8 __M
, __m128d __X
, __m128d __Y
,
9099 const int __P
, const int __R
)
9101 return (__mmask8
) __builtin_ia32_cmpsd_mask ((__v2df
) __X
,
9103 (__mmask8
) __M
, __R
);
9106 extern __inline __mmask8
9107 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9108 _mm_cmp_round_ss_mask (__m128 __X
, __m128 __Y
, const int __P
, const int __R
)
9110 return (__mmask8
) __builtin_ia32_cmpss_mask ((__v4sf
) __X
,
9112 (__mmask8
) -1, __R
);
9115 extern __inline __mmask8
9116 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9117 _mm_mask_cmp_round_ss_mask (__mmask8 __M
, __m128 __X
, __m128 __Y
,
9118 const int __P
, const int __R
)
9120 return (__mmask8
) __builtin_ia32_cmpss_mask ((__v4sf
) __X
,
9122 (__mmask8
) __M
, __R
);
9126 #define _mm512_cmp_epi64_mask(X, Y, P) \
9127 ((__mmask8) __builtin_ia32_cmpq512_mask ((__v8di)(__m512i)(X), \
9128 (__v8di)(__m512i)(Y), (int)(P),\
9131 #define _mm512_cmp_epi32_mask(X, Y, P) \
9132 ((__mmask16) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X), \
9133 (__v16si)(__m512i)(Y), (int)(P), \
9136 #define _mm512_cmp_epu64_mask(X, Y, P) \
9137 ((__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di)(__m512i)(X), \
9138 (__v8di)(__m512i)(Y), (int)(P),\
9141 #define _mm512_cmp_epu32_mask(X, Y, P) \
9142 ((__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X), \
9143 (__v16si)(__m512i)(Y), (int)(P), \
9146 #define _mm512_cmp_round_pd_mask(X, Y, P, R) \
9147 ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X), \
9148 (__v8df)(__m512d)(Y), (int)(P),\
9151 #define _mm512_cmp_round_ps_mask(X, Y, P, R) \
9152 ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X), \
9153 (__v16sf)(__m512)(Y), (int)(P),\
9156 #define _mm512_mask_cmp_epi64_mask(M, X, Y, P) \
9157 ((__mmask8) __builtin_ia32_cmpq512_mask ((__v8di)(__m512i)(X), \
9158 (__v8di)(__m512i)(Y), (int)(P),\
9161 #define _mm512_mask_cmp_epi32_mask(M, X, Y, P) \
9162 ((__mmask16) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X), \
9163 (__v16si)(__m512i)(Y), (int)(P), \
9166 #define _mm512_mask_cmp_epu64_mask(M, X, Y, P) \
9167 ((__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di)(__m512i)(X), \
9168 (__v8di)(__m512i)(Y), (int)(P),\
9171 #define _mm512_mask_cmp_epu32_mask(M, X, Y, P) \
9172 ((__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X), \
9173 (__v16si)(__m512i)(Y), (int)(P), \
9176 #define _mm512_mask_cmp_round_pd_mask(M, X, Y, P, R) \
9177 ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X), \
9178 (__v8df)(__m512d)(Y), (int)(P),\
9181 #define _mm512_mask_cmp_round_ps_mask(M, X, Y, P, R) \
9182 ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X), \
9183 (__v16sf)(__m512)(Y), (int)(P),\
9186 #define _mm_cmp_round_sd_mask(X, Y, P, R) \
9187 ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X), \
9188 (__v2df)(__m128d)(Y), (int)(P),\
9191 #define _mm_mask_cmp_round_sd_mask(M, X, Y, P, R) \
9192 ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X), \
9193 (__v2df)(__m128d)(Y), (int)(P),\
9196 #define _mm_cmp_round_ss_mask(X, Y, P, R) \
9197 ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X), \
9198 (__v4sf)(__m128)(Y), (int)(P), \
9201 #define _mm_mask_cmp_round_ss_mask(M, X, Y, P, R) \
9202 ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X), \
9203 (__v4sf)(__m128)(Y), (int)(P), \
9208 extern __inline __m512
9209 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9210 _mm512_i32gather_ps (__m512i __index
, float const *__addr
, int __scale
)
9212 __m512 v1_old
= _mm512_undefined_ps ();
9213 __mmask16 mask
= 0xFFFF;
9215 return (__m512
) __builtin_ia32_gathersiv16sf ((__v16sf
) v1_old
,
9221 extern __inline __m512
9222 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9223 _mm512_mask_i32gather_ps (__m512 v1_old
, __mmask16 __mask
,
9224 __m512i __index
, float const *__addr
, int __scale
)
9226 return (__m512
) __builtin_ia32_gathersiv16sf ((__v16sf
) v1_old
,
9232 extern __inline __m512d
9233 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9234 _mm512_i32gather_pd (__m256i __index
, double const *__addr
, int __scale
)
9236 __m512d v1_old
= _mm512_undefined_pd ();
9237 __mmask8 mask
= 0xFF;
9239 return (__m512d
) __builtin_ia32_gathersiv8df ((__v8df
) v1_old
,
9241 (__v8si
) __index
, mask
,
9245 extern __inline __m512d
9246 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9247 _mm512_mask_i32gather_pd (__m512d __v1_old
, __mmask8 __mask
,
9248 __m256i __index
, double const *__addr
, int __scale
)
9250 return (__m512d
) __builtin_ia32_gathersiv8df ((__v8df
) __v1_old
,
9256 extern __inline __m256
9257 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9258 _mm512_i64gather_ps (__m512i __index
, float const *__addr
, int __scale
)
9260 __m256 v1_old
= _mm256_undefined_ps ();
9261 __mmask8 mask
= 0xFF;
9263 return (__m256
) __builtin_ia32_gatherdiv16sf ((__v8sf
) v1_old
,
9265 (__v8di
) __index
, mask
,
9269 extern __inline __m256
9270 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9271 _mm512_mask_i64gather_ps (__m256 __v1_old
, __mmask8 __mask
,
9272 __m512i __index
, float const *__addr
, int __scale
)
9274 return (__m256
) __builtin_ia32_gatherdiv16sf ((__v8sf
) __v1_old
,
9280 extern __inline __m512d
9281 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9282 _mm512_i64gather_pd (__m512i __index
, double const *__addr
, int __scale
)
9284 __m512d v1_old
= _mm512_undefined_pd ();
9285 __mmask8 mask
= 0xFF;
9287 return (__m512d
) __builtin_ia32_gatherdiv8df ((__v8df
) v1_old
,
9289 (__v8di
) __index
, mask
,
9293 extern __inline __m512d
9294 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9295 _mm512_mask_i64gather_pd (__m512d __v1_old
, __mmask8 __mask
,
9296 __m512i __index
, double const *__addr
, int __scale
)
9298 return (__m512d
) __builtin_ia32_gatherdiv8df ((__v8df
) __v1_old
,
9304 extern __inline __m512i
9305 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9306 _mm512_i32gather_epi32 (__m512i __index
, int const *__addr
, int __scale
)
9308 __m512i v1_old
= _mm512_undefined_si512 ();
9309 __mmask16 mask
= 0xFFFF;
9311 return (__m512i
) __builtin_ia32_gathersiv16si ((__v16si
) v1_old
,
9317 extern __inline __m512i
9318 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9319 _mm512_mask_i32gather_epi32 (__m512i __v1_old
, __mmask16 __mask
,
9320 __m512i __index
, int const *__addr
, int __scale
)
9322 return (__m512i
) __builtin_ia32_gathersiv16si ((__v16si
) __v1_old
,
9328 extern __inline __m512i
9329 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9330 _mm512_i32gather_epi64 (__m256i __index
, long long const *__addr
, int __scale
)
9332 __m512i v1_old
= _mm512_undefined_si512 ();
9333 __mmask8 mask
= 0xFF;
9335 return (__m512i
) __builtin_ia32_gathersiv8di ((__v8di
) v1_old
,
9337 (__v8si
) __index
, mask
,
9341 extern __inline __m512i
9342 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9343 _mm512_mask_i32gather_epi64 (__m512i __v1_old
, __mmask8 __mask
,
9344 __m256i __index
, long long const *__addr
,
9347 return (__m512i
) __builtin_ia32_gathersiv8di ((__v8di
) __v1_old
,
9353 extern __inline __m256i
9354 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9355 _mm512_i64gather_epi32 (__m512i __index
, int const *__addr
, int __scale
)
9357 __m256i v1_old
= _mm256_undefined_si256 ();
9358 __mmask8 mask
= 0xFF;
9360 return (__m256i
) __builtin_ia32_gatherdiv16si ((__v8si
) v1_old
,
9366 extern __inline __m256i
9367 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9368 _mm512_mask_i64gather_epi32 (__m256i __v1_old
, __mmask8 __mask
,
9369 __m512i __index
, int const *__addr
, int __scale
)
9371 return (__m256i
) __builtin_ia32_gatherdiv16si ((__v8si
) __v1_old
,
9377 extern __inline __m512i
9378 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9379 _mm512_i64gather_epi64 (__m512i __index
, long long const *__addr
, int __scale
)
9381 __m512i v1_old
= _mm512_undefined_si512 ();
9382 __mmask8 mask
= 0xFF;
9384 return (__m512i
) __builtin_ia32_gatherdiv8di ((__v8di
) v1_old
,
9386 (__v8di
) __index
, mask
,
9390 extern __inline __m512i
9391 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9392 _mm512_mask_i64gather_epi64 (__m512i __v1_old
, __mmask8 __mask
,
9393 __m512i __index
, long long const *__addr
,
9396 return (__m512i
) __builtin_ia32_gatherdiv8di ((__v8di
) __v1_old
,
9402 extern __inline
void
9403 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9404 _mm512_i32scatter_ps (float *__addr
, __m512i __index
, __m512 __v1
, int __scale
)
9406 __builtin_ia32_scattersiv16sf (__addr
, (__mmask16
) 0xFFFF,
9407 (__v16si
) __index
, (__v16sf
) __v1
, __scale
);
9410 extern __inline
void
9411 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9412 _mm512_mask_i32scatter_ps (float *__addr
, __mmask16 __mask
,
9413 __m512i __index
, __m512 __v1
, int __scale
)
9415 __builtin_ia32_scattersiv16sf (__addr
, __mask
, (__v16si
) __index
,
9416 (__v16sf
) __v1
, __scale
);
9419 extern __inline
void
9420 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9421 _mm512_i32scatter_pd (double *__addr
, __m256i __index
, __m512d __v1
,
9424 __builtin_ia32_scattersiv8df (__addr
, (__mmask8
) 0xFF,
9425 (__v8si
) __index
, (__v8df
) __v1
, __scale
);
9428 extern __inline
void
9429 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9430 _mm512_mask_i32scatter_pd (double *__addr
, __mmask8 __mask
,
9431 __m256i __index
, __m512d __v1
, int __scale
)
9433 __builtin_ia32_scattersiv8df (__addr
, __mask
, (__v8si
) __index
,
9434 (__v8df
) __v1
, __scale
);
9437 extern __inline
void
9438 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9439 _mm512_i64scatter_ps (float *__addr
, __m512i __index
, __m256 __v1
, int __scale
)
9441 __builtin_ia32_scatterdiv16sf (__addr
, (__mmask8
) 0xFF,
9442 (__v8di
) __index
, (__v8sf
) __v1
, __scale
);
9445 extern __inline
void
9446 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9447 _mm512_mask_i64scatter_ps (float *__addr
, __mmask8 __mask
,
9448 __m512i __index
, __m256 __v1
, int __scale
)
9450 __builtin_ia32_scatterdiv16sf (__addr
, __mask
, (__v8di
) __index
,
9451 (__v8sf
) __v1
, __scale
);
9454 extern __inline
void
9455 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9456 _mm512_i64scatter_pd (double *__addr
, __m512i __index
, __m512d __v1
,
9459 __builtin_ia32_scatterdiv8df (__addr
, (__mmask8
) 0xFF,
9460 (__v8di
) __index
, (__v8df
) __v1
, __scale
);
9463 extern __inline
void
9464 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9465 _mm512_mask_i64scatter_pd (double *__addr
, __mmask8 __mask
,
9466 __m512i __index
, __m512d __v1
, int __scale
)
9468 __builtin_ia32_scatterdiv8df (__addr
, __mask
, (__v8di
) __index
,
9469 (__v8df
) __v1
, __scale
);
9472 extern __inline
void
9473 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9474 _mm512_i32scatter_epi32 (int *__addr
, __m512i __index
,
9475 __m512i __v1
, int __scale
)
9477 __builtin_ia32_scattersiv16si (__addr
, (__mmask16
) 0xFFFF,
9478 (__v16si
) __index
, (__v16si
) __v1
, __scale
);
9481 extern __inline
void
9482 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9483 _mm512_mask_i32scatter_epi32 (int *__addr
, __mmask16 __mask
,
9484 __m512i __index
, __m512i __v1
, int __scale
)
9486 __builtin_ia32_scattersiv16si (__addr
, __mask
, (__v16si
) __index
,
9487 (__v16si
) __v1
, __scale
);
9490 extern __inline
void
9491 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9492 _mm512_i32scatter_epi64 (long long *__addr
, __m256i __index
,
9493 __m512i __v1
, int __scale
)
9495 __builtin_ia32_scattersiv8di (__addr
, (__mmask8
) 0xFF,
9496 (__v8si
) __index
, (__v8di
) __v1
, __scale
);
9499 extern __inline
void
9500 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9501 _mm512_mask_i32scatter_epi64 (long long *__addr
, __mmask8 __mask
,
9502 __m256i __index
, __m512i __v1
, int __scale
)
9504 __builtin_ia32_scattersiv8di (__addr
, __mask
, (__v8si
) __index
,
9505 (__v8di
) __v1
, __scale
);
9508 extern __inline
void
9509 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9510 _mm512_i64scatter_epi32 (int *__addr
, __m512i __index
,
9511 __m256i __v1
, int __scale
)
9513 __builtin_ia32_scatterdiv16si (__addr
, (__mmask8
) 0xFF,
9514 (__v8di
) __index
, (__v8si
) __v1
, __scale
);
9517 extern __inline
void
9518 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9519 _mm512_mask_i64scatter_epi32 (int *__addr
, __mmask8 __mask
,
9520 __m512i __index
, __m256i __v1
, int __scale
)
9522 __builtin_ia32_scatterdiv16si (__addr
, __mask
, (__v8di
) __index
,
9523 (__v8si
) __v1
, __scale
);
9526 extern __inline
void
9527 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9528 _mm512_i64scatter_epi64 (long long *__addr
, __m512i __index
,
9529 __m512i __v1
, int __scale
)
9531 __builtin_ia32_scatterdiv8di (__addr
, (__mmask8
) 0xFF,
9532 (__v8di
) __index
, (__v8di
) __v1
, __scale
);
9535 extern __inline
void
9536 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9537 _mm512_mask_i64scatter_epi64 (long long *__addr
, __mmask8 __mask
,
9538 __m512i __index
, __m512i __v1
, int __scale
)
9540 __builtin_ia32_scatterdiv8di (__addr
, __mask
, (__v8di
) __index
,
9541 (__v8di
) __v1
, __scale
);
9544 #define _mm512_i32gather_ps(INDEX, ADDR, SCALE) \
9545 (__m512) __builtin_ia32_gathersiv16sf ((__v16sf)_mm512_undefined_ps(),\
9546 (float const *)ADDR, \
9547 (__v16si)(__m512i)INDEX, \
9548 (__mmask16)0xFFFF, (int)SCALE)
9550 #define _mm512_mask_i32gather_ps(V1OLD, MASK, INDEX, ADDR, SCALE) \
9551 (__m512) __builtin_ia32_gathersiv16sf ((__v16sf)(__m512)V1OLD, \
9552 (float const *)ADDR, \
9553 (__v16si)(__m512i)INDEX, \
9554 (__mmask16)MASK, (int)SCALE)
9556 #define _mm512_i32gather_pd(INDEX, ADDR, SCALE) \
9557 (__m512d) __builtin_ia32_gathersiv8df ((__v8df)_mm512_undefined_pd(), \
9558 (double const *)ADDR, \
9559 (__v8si)(__m256i)INDEX, \
9560 (__mmask8)0xFF, (int)SCALE)
9562 #define _mm512_mask_i32gather_pd(V1OLD, MASK, INDEX, ADDR, SCALE) \
9563 (__m512d) __builtin_ia32_gathersiv8df ((__v8df)(__m512d)V1OLD, \
9564 (double const *)ADDR, \
9565 (__v8si)(__m256i)INDEX, \
9566 (__mmask8)MASK, (int)SCALE)
9568 #define _mm512_i64gather_ps(INDEX, ADDR, SCALE) \
9569 (__m256) __builtin_ia32_gatherdiv16sf ((__v8sf)_mm256_undefined_ps(), \
9570 (float const *)ADDR, \
9571 (__v8di)(__m512i)INDEX, \
9572 (__mmask8)0xFF, (int)SCALE)
9574 #define _mm512_mask_i64gather_ps(V1OLD, MASK, INDEX, ADDR, SCALE) \
9575 (__m256) __builtin_ia32_gatherdiv16sf ((__v8sf)(__m256)V1OLD, \
9576 (float const *)ADDR, \
9577 (__v8di)(__m512i)INDEX, \
9578 (__mmask8)MASK, (int)SCALE)
9580 #define _mm512_i64gather_pd(INDEX, ADDR, SCALE) \
9581 (__m512d) __builtin_ia32_gatherdiv8df ((__v8df)_mm512_undefined_pd(), \
9582 (double const *)ADDR, \
9583 (__v8di)(__m512i)INDEX, \
9584 (__mmask8)0xFF, (int)SCALE)
9586 #define _mm512_mask_i64gather_pd(V1OLD, MASK, INDEX, ADDR, SCALE) \
9587 (__m512d) __builtin_ia32_gatherdiv8df ((__v8df)(__m512d)V1OLD, \
9588 (double const *)ADDR, \
9589 (__v8di)(__m512i)INDEX, \
9590 (__mmask8)MASK, (int)SCALE)
9592 #define _mm512_i32gather_epi32(INDEX, ADDR, SCALE) \
9593 (__m512i) __builtin_ia32_gathersiv16si ((__v16si)_mm512_undefined_si512 (), \
9594 (int const *)ADDR, \
9595 (__v16si)(__m512i)INDEX, \
9596 (__mmask16)0xFFFF, (int)SCALE)
9598 #define _mm512_mask_i32gather_epi32(V1OLD, MASK, INDEX, ADDR, SCALE) \
9599 (__m512i) __builtin_ia32_gathersiv16si ((__v16si)(__m512i)V1OLD, \
9600 (int const *)ADDR, \
9601 (__v16si)(__m512i)INDEX, \
9602 (__mmask16)MASK, (int)SCALE)
9604 #define _mm512_i32gather_epi64(INDEX, ADDR, SCALE) \
9605 (__m512i) __builtin_ia32_gathersiv8di ((__v8di)_mm512_undefined_si512 (), \
9606 (long long const *)ADDR, \
9607 (__v8si)(__m256i)INDEX, \
9608 (__mmask8)0xFF, (int)SCALE)
9610 #define _mm512_mask_i32gather_epi64(V1OLD, MASK, INDEX, ADDR, SCALE) \
9611 (__m512i) __builtin_ia32_gathersiv8di ((__v8di)(__m512i)V1OLD, \
9612 (long long const *)ADDR, \
9613 (__v8si)(__m256i)INDEX, \
9614 (__mmask8)MASK, (int)SCALE)
9616 #define _mm512_i64gather_epi32(INDEX, ADDR, SCALE) \
9617 (__m256i) __builtin_ia32_gatherdiv16si ((__v8si)_mm256_undefined_si256(), \
9618 (int const *)ADDR, \
9619 (__v8di)(__m512i)INDEX, \
9620 (__mmask8)0xFF, (int)SCALE)
9622 #define _mm512_mask_i64gather_epi32(V1OLD, MASK, INDEX, ADDR, SCALE) \
9623 (__m256i) __builtin_ia32_gatherdiv16si ((__v8si)(__m256i)V1OLD, \
9624 (int const *)ADDR, \
9625 (__v8di)(__m512i)INDEX, \
9626 (__mmask8)MASK, (int)SCALE)
9628 #define _mm512_i64gather_epi64(INDEX, ADDR, SCALE) \
9629 (__m512i) __builtin_ia32_gatherdiv8di ((__v8di)_mm512_undefined_si512 (), \
9630 (long long const *)ADDR, \
9631 (__v8di)(__m512i)INDEX, \
9632 (__mmask8)0xFF, (int)SCALE)
9634 #define _mm512_mask_i64gather_epi64(V1OLD, MASK, INDEX, ADDR, SCALE) \
9635 (__m512i) __builtin_ia32_gatherdiv8di ((__v8di)(__m512i)V1OLD, \
9636 (long long const *)ADDR, \
9637 (__v8di)(__m512i)INDEX, \
9638 (__mmask8)MASK, (int)SCALE)
9640 #define _mm512_i32scatter_ps(ADDR, INDEX, V1, SCALE) \
9641 __builtin_ia32_scattersiv16sf ((float *)ADDR, (__mmask16)0xFFFF, \
9642 (__v16si)(__m512i)INDEX, \
9643 (__v16sf)(__m512)V1, (int)SCALE)
9645 #define _mm512_mask_i32scatter_ps(ADDR, MASK, INDEX, V1, SCALE) \
9646 __builtin_ia32_scattersiv16sf ((float *)ADDR, (__mmask16)MASK, \
9647 (__v16si)(__m512i)INDEX, \
9648 (__v16sf)(__m512)V1, (int)SCALE)
9650 #define _mm512_i32scatter_pd(ADDR, INDEX, V1, SCALE) \
9651 __builtin_ia32_scattersiv8df ((double *)ADDR, (__mmask8)0xFF, \
9652 (__v8si)(__m256i)INDEX, \
9653 (__v8df)(__m512d)V1, (int)SCALE)
9655 #define _mm512_mask_i32scatter_pd(ADDR, MASK, INDEX, V1, SCALE) \
9656 __builtin_ia32_scattersiv8df ((double *)ADDR, (__mmask8)MASK, \
9657 (__v8si)(__m256i)INDEX, \
9658 (__v8df)(__m512d)V1, (int)SCALE)
9660 #define _mm512_i64scatter_ps(ADDR, INDEX, V1, SCALE) \
9661 __builtin_ia32_scatterdiv16sf ((float *)ADDR, (__mmask8)0xFF, \
9662 (__v8di)(__m512i)INDEX, \
9663 (__v8sf)(__m256)V1, (int)SCALE)
9665 #define _mm512_mask_i64scatter_ps(ADDR, MASK, INDEX, V1, SCALE) \
9666 __builtin_ia32_scatterdiv16sf ((float *)ADDR, (__mmask16)MASK, \
9667 (__v8di)(__m512i)INDEX, \
9668 (__v8sf)(__m256)V1, (int)SCALE)
9670 #define _mm512_i64scatter_pd(ADDR, INDEX, V1, SCALE) \
9671 __builtin_ia32_scatterdiv8df ((double *)ADDR, (__mmask8)0xFF, \
9672 (__v8di)(__m512i)INDEX, \
9673 (__v8df)(__m512d)V1, (int)SCALE)
9675 #define _mm512_mask_i64scatter_pd(ADDR, MASK, INDEX, V1, SCALE) \
9676 __builtin_ia32_scatterdiv8df ((double *)ADDR, (__mmask8)MASK, \
9677 (__v8di)(__m512i)INDEX, \
9678 (__v8df)(__m512d)V1, (int)SCALE)
9680 #define _mm512_i32scatter_epi32(ADDR, INDEX, V1, SCALE) \
9681 __builtin_ia32_scattersiv16si ((int *)ADDR, (__mmask16)0xFFFF, \
9682 (__v16si)(__m512i)INDEX, \
9683 (__v16si)(__m512i)V1, (int)SCALE)
9685 #define _mm512_mask_i32scatter_epi32(ADDR, MASK, INDEX, V1, SCALE) \
9686 __builtin_ia32_scattersiv16si ((int *)ADDR, (__mmask16)MASK, \
9687 (__v16si)(__m512i)INDEX, \
9688 (__v16si)(__m512i)V1, (int)SCALE)
9690 #define _mm512_i32scatter_epi64(ADDR, INDEX, V1, SCALE) \
9691 __builtin_ia32_scattersiv8di ((long long *)ADDR, (__mmask8)0xFF, \
9692 (__v8si)(__m256i)INDEX, \
9693 (__v8di)(__m512i)V1, (int)SCALE)
9695 #define _mm512_mask_i32scatter_epi64(ADDR, MASK, INDEX, V1, SCALE) \
9696 __builtin_ia32_scattersiv8di ((long long *)ADDR, (__mmask8)MASK, \
9697 (__v8si)(__m256i)INDEX, \
9698 (__v8di)(__m512i)V1, (int)SCALE)
9700 #define _mm512_i64scatter_epi32(ADDR, INDEX, V1, SCALE) \
9701 __builtin_ia32_scatterdiv16si ((int *)ADDR, (__mmask8)0xFF, \
9702 (__v8di)(__m512i)INDEX, \
9703 (__v8si)(__m256i)V1, (int)SCALE)
9705 #define _mm512_mask_i64scatter_epi32(ADDR, MASK, INDEX, V1, SCALE) \
9706 __builtin_ia32_scatterdiv16si ((int *)ADDR, (__mmask8)MASK, \
9707 (__v8di)(__m512i)INDEX, \
9708 (__v8si)(__m256i)V1, (int)SCALE)
9710 #define _mm512_i64scatter_epi64(ADDR, INDEX, V1, SCALE) \
9711 __builtin_ia32_scatterdiv8di ((long long *)ADDR, (__mmask8)0xFF, \
9712 (__v8di)(__m512i)INDEX, \
9713 (__v8di)(__m512i)V1, (int)SCALE)
9715 #define _mm512_mask_i64scatter_epi64(ADDR, MASK, INDEX, V1, SCALE) \
9716 __builtin_ia32_scatterdiv8di ((long long *)ADDR, (__mmask8)MASK, \
9717 (__v8di)(__m512i)INDEX, \
9718 (__v8di)(__m512i)V1, (int)SCALE)
9721 extern __inline __m512d
9722 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9723 _mm512_mask_compress_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
9725 return (__m512d
) __builtin_ia32_compressdf512_mask ((__v8df
) __A
,
9730 extern __inline __m512d
9731 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9732 _mm512_maskz_compress_pd (__mmask8 __U
, __m512d __A
)
9734 return (__m512d
) __builtin_ia32_compressdf512_mask ((__v8df
) __A
,
9736 _mm512_setzero_pd (),
9740 extern __inline
void
9741 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9742 _mm512_mask_compressstoreu_pd (void *__P
, __mmask8 __U
, __m512d __A
)
9744 __builtin_ia32_compressstoredf512_mask ((__v8df
*) __P
, (__v8df
) __A
,
9748 extern __inline __m512
9749 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9750 _mm512_mask_compress_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
9752 return (__m512
) __builtin_ia32_compresssf512_mask ((__v16sf
) __A
,
9757 extern __inline __m512
9758 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9759 _mm512_maskz_compress_ps (__mmask16 __U
, __m512 __A
)
9761 return (__m512
) __builtin_ia32_compresssf512_mask ((__v16sf
) __A
,
9763 _mm512_setzero_ps (),
9767 extern __inline
void
9768 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9769 _mm512_mask_compressstoreu_ps (void *__P
, __mmask16 __U
, __m512 __A
)
9771 __builtin_ia32_compressstoresf512_mask ((__v16sf
*) __P
, (__v16sf
) __A
,
9775 extern __inline __m512i
9776 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9777 _mm512_mask_compress_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
)
9779 return (__m512i
) __builtin_ia32_compressdi512_mask ((__v8di
) __A
,
9784 extern __inline __m512i
9785 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9786 _mm512_maskz_compress_epi64 (__mmask8 __U
, __m512i __A
)
9788 return (__m512i
) __builtin_ia32_compressdi512_mask ((__v8di
) __A
,
9790 _mm512_setzero_si512 (),
9794 extern __inline
void
9795 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9796 _mm512_mask_compressstoreu_epi64 (void *__P
, __mmask8 __U
, __m512i __A
)
9798 __builtin_ia32_compressstoredi512_mask ((__v8di
*) __P
, (__v8di
) __A
,
9802 extern __inline __m512i
9803 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9804 _mm512_mask_compress_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
)
9806 return (__m512i
) __builtin_ia32_compresssi512_mask ((__v16si
) __A
,
9811 extern __inline __m512i
9812 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9813 _mm512_maskz_compress_epi32 (__mmask16 __U
, __m512i __A
)
9815 return (__m512i
) __builtin_ia32_compresssi512_mask ((__v16si
) __A
,
9817 _mm512_setzero_si512 (),
9821 extern __inline
void
9822 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9823 _mm512_mask_compressstoreu_epi32 (void *__P
, __mmask16 __U
, __m512i __A
)
9825 __builtin_ia32_compressstoresi512_mask ((__v16si
*) __P
, (__v16si
) __A
,
9829 extern __inline __m512d
9830 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9831 _mm512_mask_expand_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
9833 return (__m512d
) __builtin_ia32_expanddf512_mask ((__v8df
) __A
,
9838 extern __inline __m512d
9839 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9840 _mm512_maskz_expand_pd (__mmask8 __U
, __m512d __A
)
9842 return (__m512d
) __builtin_ia32_expanddf512_maskz ((__v8df
) __A
,
9844 _mm512_setzero_pd (),
9848 extern __inline __m512d
9849 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9850 _mm512_mask_expandloadu_pd (__m512d __W
, __mmask8 __U
, void const *__P
)
9852 return (__m512d
) __builtin_ia32_expandloaddf512_mask ((const __v8df
*) __P
,
9857 extern __inline __m512d
9858 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9859 _mm512_maskz_expandloadu_pd (__mmask8 __U
, void const *__P
)
9861 return (__m512d
) __builtin_ia32_expandloaddf512_maskz ((const __v8df
*) __P
,
9863 _mm512_setzero_pd (),
9867 extern __inline __m512
9868 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9869 _mm512_mask_expand_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
9871 return (__m512
) __builtin_ia32_expandsf512_mask ((__v16sf
) __A
,
9876 extern __inline __m512
9877 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9878 _mm512_maskz_expand_ps (__mmask16 __U
, __m512 __A
)
9880 return (__m512
) __builtin_ia32_expandsf512_maskz ((__v16sf
) __A
,
9882 _mm512_setzero_ps (),
9886 extern __inline __m512
9887 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9888 _mm512_mask_expandloadu_ps (__m512 __W
, __mmask16 __U
, void const *__P
)
9890 return (__m512
) __builtin_ia32_expandloadsf512_mask ((const __v16sf
*) __P
,
9895 extern __inline __m512
9896 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9897 _mm512_maskz_expandloadu_ps (__mmask16 __U
, void const *__P
)
9899 return (__m512
) __builtin_ia32_expandloadsf512_maskz ((const __v16sf
*) __P
,
9901 _mm512_setzero_ps (),
9905 extern __inline __m512i
9906 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9907 _mm512_mask_expand_epi64 (__m512i __W
, __mmask8 __U
, __m512i __A
)
9909 return (__m512i
) __builtin_ia32_expanddi512_mask ((__v8di
) __A
,
9914 extern __inline __m512i
9915 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9916 _mm512_maskz_expand_epi64 (__mmask8 __U
, __m512i __A
)
9918 return (__m512i
) __builtin_ia32_expanddi512_maskz ((__v8di
) __A
,
9920 _mm512_setzero_si512 (),
9924 extern __inline __m512i
9925 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9926 _mm512_mask_expandloadu_epi64 (__m512i __W
, __mmask8 __U
, void const *__P
)
9928 return (__m512i
) __builtin_ia32_expandloaddi512_mask ((const __v8di
*) __P
,
9933 extern __inline __m512i
9934 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9935 _mm512_maskz_expandloadu_epi64 (__mmask8 __U
, void const *__P
)
9938 __builtin_ia32_expandloaddi512_maskz ((const __v8di
*) __P
,
9940 _mm512_setzero_si512 (),
9944 extern __inline __m512i
9945 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9946 _mm512_mask_expand_epi32 (__m512i __W
, __mmask16 __U
, __m512i __A
)
9948 return (__m512i
) __builtin_ia32_expandsi512_mask ((__v16si
) __A
,
9953 extern __inline __m512i
9954 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9955 _mm512_maskz_expand_epi32 (__mmask16 __U
, __m512i __A
)
9957 return (__m512i
) __builtin_ia32_expandsi512_maskz ((__v16si
) __A
,
9959 _mm512_setzero_si512 (),
9963 extern __inline __m512i
9964 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9965 _mm512_mask_expandloadu_epi32 (__m512i __W
, __mmask16 __U
, void const *__P
)
9967 return (__m512i
) __builtin_ia32_expandloadsi512_mask ((const __v16si
*) __P
,
9972 extern __inline __m512i
9973 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9974 _mm512_maskz_expandloadu_epi32 (__mmask16 __U
, void const *__P
)
9976 return (__m512i
) __builtin_ia32_expandloadsi512_maskz ((const __v16si
*) __P
,
9978 _mm512_setzero_si512
9979 (), (__mmask16
) __U
);
9982 /* Mask arithmetic operations */
9983 extern __inline __mmask16
9984 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9985 _mm512_kand (__mmask16 __A
, __mmask16 __B
)
9987 return (__mmask16
) __builtin_ia32_kandhi ((__mmask16
) __A
, (__mmask16
) __B
);
9990 extern __inline __mmask16
9991 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9992 _mm512_kandn (__mmask16 __A
, __mmask16 __B
)
9994 return (__mmask16
) __builtin_ia32_kandnhi ((__mmask16
) __A
, (__mmask16
) __B
);
9997 extern __inline __mmask16
9998 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
9999 _mm512_kor (__mmask16 __A
, __mmask16 __B
)
10001 return (__mmask16
) __builtin_ia32_korhi ((__mmask16
) __A
, (__mmask16
) __B
);
10004 extern __inline
int
10005 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10006 _mm512_kortestz (__mmask16 __A
, __mmask16 __B
)
10008 return (__mmask16
) __builtin_ia32_kortestzhi ((__mmask16
) __A
,
10012 extern __inline
int
10013 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10014 _mm512_kortestc (__mmask16 __A
, __mmask16 __B
)
10016 return (__mmask16
) __builtin_ia32_kortestchi ((__mmask16
) __A
,
10020 extern __inline __mmask16
10021 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10022 _mm512_kxnor (__mmask16 __A
, __mmask16 __B
)
10024 return (__mmask16
) __builtin_ia32_kxnorhi ((__mmask16
) __A
, (__mmask16
) __B
);
10027 extern __inline __mmask16
10028 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10029 _mm512_kxor (__mmask16 __A
, __mmask16 __B
)
10031 return (__mmask16
) __builtin_ia32_kxorhi ((__mmask16
) __A
, (__mmask16
) __B
);
10034 extern __inline __mmask16
10035 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10036 _mm512_knot (__mmask16 __A
)
10038 return (__mmask16
) __builtin_ia32_knothi ((__mmask16
) __A
);
10041 extern __inline __mmask16
10042 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10043 _mm512_kunpackb (__mmask16 __A
, __mmask16 __B
)
10045 return (__mmask16
) __builtin_ia32_kunpckhi ((__mmask16
) __A
, (__mmask16
) __B
);
10048 #ifdef __OPTIMIZE__
10049 extern __inline __m512i
10050 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10051 _mm512_maskz_inserti32x4 (__mmask16 __B
, __m512i __C
, __m128i __D
,
10054 return (__m512i
) __builtin_ia32_inserti32x4_mask ((__v16si
) __C
,
10058 _mm512_setzero_si512 (),
10062 extern __inline __m512
10063 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10064 _mm512_maskz_insertf32x4 (__mmask16 __B
, __m512 __C
, __m128 __D
,
10067 return (__m512
) __builtin_ia32_insertf32x4_mask ((__v16sf
) __C
,
10071 _mm512_setzero_ps (), __B
);
10074 extern __inline __m512i
10075 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10076 _mm512_mask_inserti32x4 (__m512i __A
, __mmask16 __B
, __m512i __C
,
10077 __m128i __D
, const int __imm
)
10079 return (__m512i
) __builtin_ia32_inserti32x4_mask ((__v16si
) __C
,
10086 extern __inline __m512
10087 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10088 _mm512_mask_insertf32x4 (__m512 __A
, __mmask16 __B
, __m512 __C
,
10089 __m128 __D
, const int __imm
)
10091 return (__m512
) __builtin_ia32_insertf32x4_mask ((__v16sf
) __C
,
10094 (__v16sf
) __A
, __B
);
10097 #define _mm512_maskz_insertf32x4(A, X, Y, C) \
10098 ((__m512) __builtin_ia32_insertf32x4_mask ((__v16sf)(__m512) (X), \
10099 (__v4sf)(__m128) (Y), (int) (C), (__v16sf)_mm512_setzero_ps(), \
10102 #define _mm512_maskz_inserti32x4(A, X, Y, C) \
10103 ((__m512i) __builtin_ia32_inserti32x4_mask ((__v16si)(__m512i) (X), \
10104 (__v4si)(__m128i) (Y), (int) (C), (__v16si)_mm512_setzero_si512 (), \
10107 #define _mm512_mask_insertf32x4(A, B, X, Y, C) \
10108 ((__m512) __builtin_ia32_insertf32x4_mask ((__v16sf)(__m512) (X), \
10109 (__v4sf)(__m128) (Y), (int) (C), (__v16sf)(__m512) (A), \
10112 #define _mm512_mask_inserti32x4(A, B, X, Y, C) \
10113 ((__m512i) __builtin_ia32_inserti32x4_mask ((__v16si)(__m512i) (X), \
10114 (__v4si)(__m128i) (Y), (int) (C), (__v16si)(__m512i) (A), \
10118 extern __inline __m512i
10119 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10120 _mm512_max_epi64 (__m512i __A
, __m512i __B
)
10122 return (__m512i
) __builtin_ia32_pmaxsq512_mask ((__v8di
) __A
,
10125 _mm512_undefined_si512 (),
10129 extern __inline __m512i
10130 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10131 _mm512_maskz_max_epi64 (__mmask8 __M
, __m512i __A
, __m512i __B
)
10133 return (__m512i
) __builtin_ia32_pmaxsq512_mask ((__v8di
) __A
,
10136 _mm512_setzero_si512 (),
10140 extern __inline __m512i
10141 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10142 _mm512_mask_max_epi64 (__m512i __W
, __mmask8 __M
, __m512i __A
, __m512i __B
)
10144 return (__m512i
) __builtin_ia32_pmaxsq512_mask ((__v8di
) __A
,
10146 (__v8di
) __W
, __M
);
10149 extern __inline __m512i
10150 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10151 _mm512_min_epi64 (__m512i __A
, __m512i __B
)
10153 return (__m512i
) __builtin_ia32_pminsq512_mask ((__v8di
) __A
,
10156 _mm512_undefined_si512 (),
10160 extern __inline __m512i
10161 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10162 _mm512_mask_min_epi64 (__m512i __W
, __mmask8 __M
, __m512i __A
, __m512i __B
)
10164 return (__m512i
) __builtin_ia32_pminsq512_mask ((__v8di
) __A
,
10166 (__v8di
) __W
, __M
);
10169 extern __inline __m512i
10170 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10171 _mm512_maskz_min_epi64 (__mmask8 __M
, __m512i __A
, __m512i __B
)
10173 return (__m512i
) __builtin_ia32_pminsq512_mask ((__v8di
) __A
,
10176 _mm512_setzero_si512 (),
10180 extern __inline __m512i
10181 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10182 _mm512_max_epu64 (__m512i __A
, __m512i __B
)
10184 return (__m512i
) __builtin_ia32_pmaxuq512_mask ((__v8di
) __A
,
10187 _mm512_undefined_si512 (),
10191 extern __inline __m512i
10192 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10193 _mm512_maskz_max_epu64 (__mmask8 __M
, __m512i __A
, __m512i __B
)
10195 return (__m512i
) __builtin_ia32_pmaxuq512_mask ((__v8di
) __A
,
10198 _mm512_setzero_si512 (),
10202 extern __inline __m512i
10203 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10204 _mm512_mask_max_epu64 (__m512i __W
, __mmask8 __M
, __m512i __A
, __m512i __B
)
10206 return (__m512i
) __builtin_ia32_pmaxuq512_mask ((__v8di
) __A
,
10208 (__v8di
) __W
, __M
);
10211 extern __inline __m512i
10212 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10213 _mm512_min_epu64 (__m512i __A
, __m512i __B
)
10215 return (__m512i
) __builtin_ia32_pminuq512_mask ((__v8di
) __A
,
10218 _mm512_undefined_si512 (),
10222 extern __inline __m512i
10223 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10224 _mm512_mask_min_epu64 (__m512i __W
, __mmask8 __M
, __m512i __A
, __m512i __B
)
10226 return (__m512i
) __builtin_ia32_pminuq512_mask ((__v8di
) __A
,
10228 (__v8di
) __W
, __M
);
10231 extern __inline __m512i
10232 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10233 _mm512_maskz_min_epu64 (__mmask8 __M
, __m512i __A
, __m512i __B
)
10235 return (__m512i
) __builtin_ia32_pminuq512_mask ((__v8di
) __A
,
10238 _mm512_setzero_si512 (),
10242 extern __inline __m512i
10243 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10244 _mm512_max_epi32 (__m512i __A
, __m512i __B
)
10246 return (__m512i
) __builtin_ia32_pmaxsd512_mask ((__v16si
) __A
,
10249 _mm512_undefined_si512 (),
10253 extern __inline __m512i
10254 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10255 _mm512_maskz_max_epi32 (__mmask16 __M
, __m512i __A
, __m512i __B
)
10257 return (__m512i
) __builtin_ia32_pmaxsd512_mask ((__v16si
) __A
,
10260 _mm512_setzero_si512 (),
10264 extern __inline __m512i
10265 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10266 _mm512_mask_max_epi32 (__m512i __W
, __mmask16 __M
, __m512i __A
, __m512i __B
)
10268 return (__m512i
) __builtin_ia32_pmaxsd512_mask ((__v16si
) __A
,
10270 (__v16si
) __W
, __M
);
10273 extern __inline __m512i
10274 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10275 _mm512_min_epi32 (__m512i __A
, __m512i __B
)
10277 return (__m512i
) __builtin_ia32_pminsd512_mask ((__v16si
) __A
,
10280 _mm512_undefined_si512 (),
10284 extern __inline __m512i
10285 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10286 _mm512_maskz_min_epi32 (__mmask16 __M
, __m512i __A
, __m512i __B
)
10288 return (__m512i
) __builtin_ia32_pminsd512_mask ((__v16si
) __A
,
10291 _mm512_setzero_si512 (),
10295 extern __inline __m512i
10296 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10297 _mm512_mask_min_epi32 (__m512i __W
, __mmask16 __M
, __m512i __A
, __m512i __B
)
10299 return (__m512i
) __builtin_ia32_pminsd512_mask ((__v16si
) __A
,
10301 (__v16si
) __W
, __M
);
10304 extern __inline __m512i
10305 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10306 _mm512_max_epu32 (__m512i __A
, __m512i __B
)
10308 return (__m512i
) __builtin_ia32_pmaxud512_mask ((__v16si
) __A
,
10311 _mm512_undefined_si512 (),
10315 extern __inline __m512i
10316 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10317 _mm512_maskz_max_epu32 (__mmask16 __M
, __m512i __A
, __m512i __B
)
10319 return (__m512i
) __builtin_ia32_pmaxud512_mask ((__v16si
) __A
,
10322 _mm512_setzero_si512 (),
10326 extern __inline __m512i
10327 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10328 _mm512_mask_max_epu32 (__m512i __W
, __mmask16 __M
, __m512i __A
, __m512i __B
)
10330 return (__m512i
) __builtin_ia32_pmaxud512_mask ((__v16si
) __A
,
10332 (__v16si
) __W
, __M
);
10335 extern __inline __m512i
10336 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10337 _mm512_min_epu32 (__m512i __A
, __m512i __B
)
10339 return (__m512i
) __builtin_ia32_pminud512_mask ((__v16si
) __A
,
10342 _mm512_undefined_si512 (),
10346 extern __inline __m512i
10347 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10348 _mm512_maskz_min_epu32 (__mmask16 __M
, __m512i __A
, __m512i __B
)
10350 return (__m512i
) __builtin_ia32_pminud512_mask ((__v16si
) __A
,
10353 _mm512_setzero_si512 (),
10357 extern __inline __m512i
10358 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10359 _mm512_mask_min_epu32 (__m512i __W
, __mmask16 __M
, __m512i __A
, __m512i __B
)
10361 return (__m512i
) __builtin_ia32_pminud512_mask ((__v16si
) __A
,
10363 (__v16si
) __W
, __M
);
10366 extern __inline __m512
10367 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10368 _mm512_unpacklo_ps (__m512 __A
, __m512 __B
)
10370 return (__m512
) __builtin_ia32_unpcklps512_mask ((__v16sf
) __A
,
10373 _mm512_undefined_ps (),
10377 extern __inline __m512
10378 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10379 _mm512_mask_unpacklo_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
10381 return (__m512
) __builtin_ia32_unpcklps512_mask ((__v16sf
) __A
,
10387 extern __inline __m512
10388 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10389 _mm512_maskz_unpacklo_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
10391 return (__m512
) __builtin_ia32_unpcklps512_mask ((__v16sf
) __A
,
10394 _mm512_setzero_ps (),
10398 #ifdef __OPTIMIZE__
10399 extern __inline __m128d
10400 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10401 _mm_max_round_sd (__m128d __A
, __m128d __B
, const int __R
)
10403 return (__m128d
) __builtin_ia32_maxsd_round ((__v2df
) __A
,
10408 extern __inline __m128
10409 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10410 _mm_max_round_ss (__m128 __A
, __m128 __B
, const int __R
)
10412 return (__m128
) __builtin_ia32_maxss_round ((__v4sf
) __A
,
10417 extern __inline __m128d
10418 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10419 _mm_min_round_sd (__m128d __A
, __m128d __B
, const int __R
)
10421 return (__m128d
) __builtin_ia32_minsd_round ((__v2df
) __A
,
10426 extern __inline __m128
10427 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10428 _mm_min_round_ss (__m128 __A
, __m128 __B
, const int __R
)
10430 return (__m128
) __builtin_ia32_minss_round ((__v4sf
) __A
,
10436 #define _mm_max_round_sd(A, B, C) \
10437 (__m128d)__builtin_ia32_addsd_round(A, B, C)
10439 #define _mm_max_round_ss(A, B, C) \
10440 (__m128)__builtin_ia32_addss_round(A, B, C)
10442 #define _mm_min_round_sd(A, B, C) \
10443 (__m128d)__builtin_ia32_subsd_round(A, B, C)
10445 #define _mm_min_round_ss(A, B, C) \
10446 (__m128)__builtin_ia32_subss_round(A, B, C)
10449 extern __inline __m512d
10450 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10451 _mm512_mask_blend_pd (__mmask8 __U
, __m512d __A
, __m512d __W
)
10453 return (__m512d
) __builtin_ia32_blendmpd_512_mask ((__v8df
) __A
,
10458 extern __inline __m512
10459 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10460 _mm512_mask_blend_ps (__mmask16 __U
, __m512 __A
, __m512 __W
)
10462 return (__m512
) __builtin_ia32_blendmps_512_mask ((__v16sf
) __A
,
10467 extern __inline __m512i
10468 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10469 _mm512_mask_blend_epi64 (__mmask8 __U
, __m512i __A
, __m512i __W
)
10471 return (__m512i
) __builtin_ia32_blendmq_512_mask ((__v8di
) __A
,
10476 extern __inline __m512i
10477 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10478 _mm512_mask_blend_epi32 (__mmask16 __U
, __m512i __A
, __m512i __W
)
10480 return (__m512i
) __builtin_ia32_blendmd_512_mask ((__v16si
) __A
,
10485 #ifdef __OPTIMIZE__
10486 extern __inline __m128d
10487 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10488 _mm_fmadd_round_sd (__m128d __W
, __m128d __A
, __m128d __B
, const int __R
)
10490 return (__m128d
) __builtin_ia32_vfmaddsd3_round ((__v2df
) __W
,
10496 extern __inline __m128
10497 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10498 _mm_fmadd_round_ss (__m128 __W
, __m128 __A
, __m128 __B
, const int __R
)
10500 return (__m128
) __builtin_ia32_vfmaddss3_round ((__v4sf
) __W
,
10506 extern __inline __m128d
10507 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10508 _mm_fmsub_round_sd (__m128d __W
, __m128d __A
, __m128d __B
, const int __R
)
10510 return (__m128d
) __builtin_ia32_vfmaddsd3_round ((__v2df
) __W
,
10516 extern __inline __m128
10517 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10518 _mm_fmsub_round_ss (__m128 __W
, __m128 __A
, __m128 __B
, const int __R
)
10520 return (__m128
) __builtin_ia32_vfmaddss3_round ((__v4sf
) __W
,
10526 extern __inline __m128d
10527 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10528 _mm_fnmadd_round_sd (__m128d __W
, __m128d __A
, __m128d __B
, const int __R
)
10530 return (__m128d
) __builtin_ia32_vfmaddsd3_round ((__v2df
) __W
,
10536 extern __inline __m128
10537 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10538 _mm_fnmadd_round_ss (__m128 __W
, __m128 __A
, __m128 __B
, const int __R
)
10540 return (__m128
) __builtin_ia32_vfmaddss3_round ((__v4sf
) __W
,
10546 extern __inline __m128d
10547 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10548 _mm_fnmsub_round_sd (__m128d __W
, __m128d __A
, __m128d __B
, const int __R
)
10550 return (__m128d
) __builtin_ia32_vfmaddsd3_round ((__v2df
) __W
,
10556 extern __inline __m128
10557 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10558 _mm_fnmsub_round_ss (__m128 __W
, __m128 __A
, __m128 __B
, const int __R
)
10560 return (__m128
) __builtin_ia32_vfmaddss3_round ((__v4sf
) __W
,
10566 #define _mm_fmadd_round_sd(A, B, C, R) \
10567 (__m128d)__builtin_ia32_vfmaddsd3_round(A, B, C, R)
10569 #define _mm_fmadd_round_ss(A, B, C, R) \
10570 (__m128)__builtin_ia32_vfmaddss3_round(A, B, C, R)
10572 #define _mm_fmsub_round_sd(A, B, C, R) \
10573 (__m128d)__builtin_ia32_vfmaddsd3_round(A, B, -(C), R)
10575 #define _mm_fmsub_round_ss(A, B, C, R) \
10576 (__m128)__builtin_ia32_vfmaddss3_round(A, B, -(C), R)
10578 #define _mm_fnmadd_round_sd(A, B, C, R) \
10579 (__m128d)__builtin_ia32_vfmaddsd3_round(A, -(B), C, R)
10581 #define _mm_fnmadd_round_ss(A, B, C, R) \
10582 (__m128)__builtin_ia32_vfmaddss3_round(A, -(B), C, R)
10584 #define _mm_fnmsub_round_sd(A, B, C, R) \
10585 (__m128d)__builtin_ia32_vfmaddsd3_round(A, -(B), -(C), R)
10587 #define _mm_fnmsub_round_ss(A, B, C, R) \
10588 (__m128)__builtin_ia32_vfmaddss3_round(A, -(B), -(C), R)
10591 #ifdef __OPTIMIZE__
10592 extern __inline
int
10593 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10594 _mm_comi_round_ss (__m128 __A
, __m128 __B
, const int __P
, const int __R
)
10596 return __builtin_ia32_vcomiss ((__v4sf
) __A
, (__v4sf
) __B
, __P
, __R
);
10599 extern __inline
int
10600 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10601 _mm_comi_round_sd (__m128d __A
, __m128d __B
, const int __P
, const int __R
)
10603 return __builtin_ia32_vcomisd ((__v2df
) __A
, (__v2df
) __B
, __P
, __R
);
10606 #define _mm_comi_round_ss(A, B, C, D)\
10607 __builtin_ia32_vcomiss(A, B, C, D)
10608 #define _mm_comi_round_sd(A, B, C, D)\
10609 __builtin_ia32_vcomisd(A, B, C, D)
10612 extern __inline __m512d
10613 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10614 _mm512_sqrt_pd (__m512d __A
)
10616 return (__m512d
) __builtin_ia32_sqrtpd512_mask ((__v8df
) __A
,
10618 _mm512_undefined_pd (),
10620 _MM_FROUND_CUR_DIRECTION
);
10623 extern __inline __m512d
10624 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10625 _mm512_mask_sqrt_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
10627 return (__m512d
) __builtin_ia32_sqrtpd512_mask ((__v8df
) __A
,
10630 _MM_FROUND_CUR_DIRECTION
);
10633 extern __inline __m512d
10634 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10635 _mm512_maskz_sqrt_pd (__mmask8 __U
, __m512d __A
)
10637 return (__m512d
) __builtin_ia32_sqrtpd512_mask ((__v8df
) __A
,
10639 _mm512_setzero_pd (),
10641 _MM_FROUND_CUR_DIRECTION
);
10644 extern __inline __m512
10645 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10646 _mm512_sqrt_ps (__m512 __A
)
10648 return (__m512
) __builtin_ia32_sqrtps512_mask ((__v16sf
) __A
,
10650 _mm512_undefined_ps (),
10652 _MM_FROUND_CUR_DIRECTION
);
10655 extern __inline __m512
10656 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10657 _mm512_mask_sqrt_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
10659 return (__m512
) __builtin_ia32_sqrtps512_mask ((__v16sf
) __A
,
10662 _MM_FROUND_CUR_DIRECTION
);
10665 extern __inline __m512
10666 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10667 _mm512_maskz_sqrt_ps (__mmask16 __U
, __m512 __A
)
10669 return (__m512
) __builtin_ia32_sqrtps512_mask ((__v16sf
) __A
,
10671 _mm512_setzero_ps (),
10673 _MM_FROUND_CUR_DIRECTION
);
10676 extern __inline __m512d
10677 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10678 _mm512_add_pd (__m512d __A
, __m512d __B
)
10680 return (__m512d
) ((__v8df
)__A
+ (__v8df
)__B
);
10683 extern __inline __m512d
10684 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10685 _mm512_mask_add_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
10687 return (__m512d
) __builtin_ia32_addpd512_mask ((__v8df
) __A
,
10691 _MM_FROUND_CUR_DIRECTION
);
10694 extern __inline __m512d
10695 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10696 _mm512_maskz_add_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
10698 return (__m512d
) __builtin_ia32_addpd512_mask ((__v8df
) __A
,
10701 _mm512_setzero_pd (),
10703 _MM_FROUND_CUR_DIRECTION
);
10706 extern __inline __m512
10707 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10708 _mm512_add_ps (__m512 __A
, __m512 __B
)
10710 return (__m512
) ((__v16sf
)__A
+ (__v16sf
)__B
);
10713 extern __inline __m512
10714 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10715 _mm512_mask_add_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
10717 return (__m512
) __builtin_ia32_addps512_mask ((__v16sf
) __A
,
10721 _MM_FROUND_CUR_DIRECTION
);
10724 extern __inline __m512
10725 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10726 _mm512_maskz_add_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
10728 return (__m512
) __builtin_ia32_addps512_mask ((__v16sf
) __A
,
10731 _mm512_setzero_ps (),
10733 _MM_FROUND_CUR_DIRECTION
);
10736 extern __inline __m512d
10737 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10738 _mm512_sub_pd (__m512d __A
, __m512d __B
)
10740 return (__m512d
) ((__v8df
)__A
- (__v8df
)__B
);
10743 extern __inline __m512d
10744 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10745 _mm512_mask_sub_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
10747 return (__m512d
) __builtin_ia32_subpd512_mask ((__v8df
) __A
,
10751 _MM_FROUND_CUR_DIRECTION
);
10754 extern __inline __m512d
10755 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10756 _mm512_maskz_sub_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
10758 return (__m512d
) __builtin_ia32_subpd512_mask ((__v8df
) __A
,
10761 _mm512_setzero_pd (),
10763 _MM_FROUND_CUR_DIRECTION
);
10766 extern __inline __m512
10767 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10768 _mm512_sub_ps (__m512 __A
, __m512 __B
)
10770 return (__m512
) ((__v16sf
)__A
- (__v16sf
)__B
);
10773 extern __inline __m512
10774 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10775 _mm512_mask_sub_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
10777 return (__m512
) __builtin_ia32_subps512_mask ((__v16sf
) __A
,
10781 _MM_FROUND_CUR_DIRECTION
);
10784 extern __inline __m512
10785 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10786 _mm512_maskz_sub_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
10788 return (__m512
) __builtin_ia32_subps512_mask ((__v16sf
) __A
,
10791 _mm512_setzero_ps (),
10793 _MM_FROUND_CUR_DIRECTION
);
10796 extern __inline __m512d
10797 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10798 _mm512_mul_pd (__m512d __A
, __m512d __B
)
10800 return (__m512d
) ((__v8df
)__A
* (__v8df
)__B
);
10803 extern __inline __m512d
10804 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10805 _mm512_mask_mul_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
10807 return (__m512d
) __builtin_ia32_mulpd512_mask ((__v8df
) __A
,
10811 _MM_FROUND_CUR_DIRECTION
);
10814 extern __inline __m512d
10815 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10816 _mm512_maskz_mul_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
10818 return (__m512d
) __builtin_ia32_mulpd512_mask ((__v8df
) __A
,
10821 _mm512_setzero_pd (),
10823 _MM_FROUND_CUR_DIRECTION
);
10826 extern __inline __m512
10827 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10828 _mm512_mul_ps (__m512 __A
, __m512 __B
)
10830 return (__m512
) ((__v16sf
)__A
* (__v16sf
)__B
);
10833 extern __inline __m512
10834 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10835 _mm512_mask_mul_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
10837 return (__m512
) __builtin_ia32_mulps512_mask ((__v16sf
) __A
,
10841 _MM_FROUND_CUR_DIRECTION
);
10844 extern __inline __m512
10845 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10846 _mm512_maskz_mul_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
10848 return (__m512
) __builtin_ia32_mulps512_mask ((__v16sf
) __A
,
10851 _mm512_setzero_ps (),
10853 _MM_FROUND_CUR_DIRECTION
);
10856 extern __inline __m512d
10857 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10858 _mm512_div_pd (__m512d __M
, __m512d __V
)
10860 return (__m512d
) ((__v8df
)__M
/ (__v8df
)__V
);
10863 extern __inline __m512d
10864 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10865 _mm512_mask_div_pd (__m512d __W
, __mmask8 __U
, __m512d __M
, __m512d __V
)
10867 return (__m512d
) __builtin_ia32_divpd512_mask ((__v8df
) __M
,
10871 _MM_FROUND_CUR_DIRECTION
);
10874 extern __inline __m512d
10875 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10876 _mm512_maskz_div_pd (__mmask8 __U
, __m512d __M
, __m512d __V
)
10878 return (__m512d
) __builtin_ia32_divpd512_mask ((__v8df
) __M
,
10881 _mm512_setzero_pd (),
10883 _MM_FROUND_CUR_DIRECTION
);
10886 extern __inline __m512
10887 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10888 _mm512_div_ps (__m512 __A
, __m512 __B
)
10890 return (__m512
) ((__v16sf
)__A
/ (__v16sf
)__B
);
10893 extern __inline __m512
10894 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10895 _mm512_mask_div_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
10897 return (__m512
) __builtin_ia32_divps512_mask ((__v16sf
) __A
,
10901 _MM_FROUND_CUR_DIRECTION
);
10904 extern __inline __m512
10905 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10906 _mm512_maskz_div_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
10908 return (__m512
) __builtin_ia32_divps512_mask ((__v16sf
) __A
,
10911 _mm512_setzero_ps (),
10913 _MM_FROUND_CUR_DIRECTION
);
10916 extern __inline __m512d
10917 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10918 _mm512_max_pd (__m512d __A
, __m512d __B
)
10920 return (__m512d
) __builtin_ia32_maxpd512_mask ((__v8df
) __A
,
10923 _mm512_undefined_pd (),
10925 _MM_FROUND_CUR_DIRECTION
);
10928 extern __inline __m512d
10929 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10930 _mm512_mask_max_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
10932 return (__m512d
) __builtin_ia32_maxpd512_mask ((__v8df
) __A
,
10936 _MM_FROUND_CUR_DIRECTION
);
10939 extern __inline __m512d
10940 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10941 _mm512_maskz_max_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
10943 return (__m512d
) __builtin_ia32_maxpd512_mask ((__v8df
) __A
,
10946 _mm512_setzero_pd (),
10948 _MM_FROUND_CUR_DIRECTION
);
10951 extern __inline __m512
10952 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10953 _mm512_max_ps (__m512 __A
, __m512 __B
)
10955 return (__m512
) __builtin_ia32_maxps512_mask ((__v16sf
) __A
,
10958 _mm512_undefined_ps (),
10960 _MM_FROUND_CUR_DIRECTION
);
10963 extern __inline __m512
10964 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10965 _mm512_mask_max_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
10967 return (__m512
) __builtin_ia32_maxps512_mask ((__v16sf
) __A
,
10971 _MM_FROUND_CUR_DIRECTION
);
10974 extern __inline __m512
10975 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10976 _mm512_maskz_max_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
10978 return (__m512
) __builtin_ia32_maxps512_mask ((__v16sf
) __A
,
10981 _mm512_setzero_ps (),
10983 _MM_FROUND_CUR_DIRECTION
);
10986 extern __inline __m512d
10987 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
10988 _mm512_min_pd (__m512d __A
, __m512d __B
)
10990 return (__m512d
) __builtin_ia32_minpd512_mask ((__v8df
) __A
,
10993 _mm512_undefined_pd (),
10995 _MM_FROUND_CUR_DIRECTION
);
10998 extern __inline __m512d
10999 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11000 _mm512_mask_min_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
11002 return (__m512d
) __builtin_ia32_minpd512_mask ((__v8df
) __A
,
11006 _MM_FROUND_CUR_DIRECTION
);
11009 extern __inline __m512d
11010 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11011 _mm512_maskz_min_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
11013 return (__m512d
) __builtin_ia32_minpd512_mask ((__v8df
) __A
,
11016 _mm512_setzero_pd (),
11018 _MM_FROUND_CUR_DIRECTION
);
11021 extern __inline __m512
11022 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11023 _mm512_min_ps (__m512 __A
, __m512 __B
)
11025 return (__m512
) __builtin_ia32_minps512_mask ((__v16sf
) __A
,
11028 _mm512_undefined_ps (),
11030 _MM_FROUND_CUR_DIRECTION
);
11033 extern __inline __m512
11034 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11035 _mm512_mask_min_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
11037 return (__m512
) __builtin_ia32_minps512_mask ((__v16sf
) __A
,
11041 _MM_FROUND_CUR_DIRECTION
);
11044 extern __inline __m512
11045 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11046 _mm512_maskz_min_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
11048 return (__m512
) __builtin_ia32_minps512_mask ((__v16sf
) __A
,
11051 _mm512_setzero_ps (),
11053 _MM_FROUND_CUR_DIRECTION
);
11056 extern __inline __m512d
11057 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11058 _mm512_scalef_pd (__m512d __A
, __m512d __B
)
11060 return (__m512d
) __builtin_ia32_scalefpd512_mask ((__v8df
) __A
,
11063 _mm512_undefined_pd (),
11065 _MM_FROUND_CUR_DIRECTION
);
11068 extern __inline __m512d
11069 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11070 _mm512_mask_scalef_pd (__m512d __W
, __mmask8 __U
, __m512d __A
, __m512d __B
)
11072 return (__m512d
) __builtin_ia32_scalefpd512_mask ((__v8df
) __A
,
11076 _MM_FROUND_CUR_DIRECTION
);
11079 extern __inline __m512d
11080 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11081 _mm512_maskz_scalef_pd (__mmask8 __U
, __m512d __A
, __m512d __B
)
11083 return (__m512d
) __builtin_ia32_scalefpd512_mask ((__v8df
) __A
,
11086 _mm512_setzero_pd (),
11088 _MM_FROUND_CUR_DIRECTION
);
11091 extern __inline __m512
11092 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11093 _mm512_scalef_ps (__m512 __A
, __m512 __B
)
11095 return (__m512
) __builtin_ia32_scalefps512_mask ((__v16sf
) __A
,
11098 _mm512_undefined_ps (),
11100 _MM_FROUND_CUR_DIRECTION
);
11103 extern __inline __m512
11104 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11105 _mm512_mask_scalef_ps (__m512 __W
, __mmask16 __U
, __m512 __A
, __m512 __B
)
11107 return (__m512
) __builtin_ia32_scalefps512_mask ((__v16sf
) __A
,
11111 _MM_FROUND_CUR_DIRECTION
);
11114 extern __inline __m512
11115 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11116 _mm512_maskz_scalef_ps (__mmask16 __U
, __m512 __A
, __m512 __B
)
11118 return (__m512
) __builtin_ia32_scalefps512_mask ((__v16sf
) __A
,
11121 _mm512_setzero_ps (),
11123 _MM_FROUND_CUR_DIRECTION
);
11126 extern __inline __m128d
11127 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11128 _mm_scalef_sd (__m128d __A
, __m128d __B
)
11130 return (__m128d
) __builtin_ia32_scalefsd_round ((__v2df
) __A
,
11132 _MM_FROUND_CUR_DIRECTION
);
11135 extern __inline __m128
11136 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11137 _mm_scalef_ss (__m128 __A
, __m128 __B
)
11139 return (__m128
) __builtin_ia32_scalefss_round ((__v4sf
) __A
,
11141 _MM_FROUND_CUR_DIRECTION
);
11144 extern __inline __m512d
11145 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11146 _mm512_fmadd_pd (__m512d __A
, __m512d __B
, __m512d __C
)
11148 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
11152 _MM_FROUND_CUR_DIRECTION
);
11155 extern __inline __m512d
11156 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11157 _mm512_mask_fmadd_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
11159 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
11163 _MM_FROUND_CUR_DIRECTION
);
11166 extern __inline __m512d
11167 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11168 _mm512_mask3_fmadd_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
11170 return (__m512d
) __builtin_ia32_vfmaddpd512_mask3 ((__v8df
) __A
,
11174 _MM_FROUND_CUR_DIRECTION
);
11177 extern __inline __m512d
11178 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11179 _mm512_maskz_fmadd_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
11181 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz ((__v8df
) __A
,
11185 _MM_FROUND_CUR_DIRECTION
);
11188 extern __inline __m512
11189 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11190 _mm512_fmadd_ps (__m512 __A
, __m512 __B
, __m512 __C
)
11192 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
11196 _MM_FROUND_CUR_DIRECTION
);
11199 extern __inline __m512
11200 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11201 _mm512_mask_fmadd_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
11203 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
11207 _MM_FROUND_CUR_DIRECTION
);
11210 extern __inline __m512
11211 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11212 _mm512_mask3_fmadd_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
11214 return (__m512
) __builtin_ia32_vfmaddps512_mask3 ((__v16sf
) __A
,
11218 _MM_FROUND_CUR_DIRECTION
);
11221 extern __inline __m512
11222 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11223 _mm512_maskz_fmadd_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
11225 return (__m512
) __builtin_ia32_vfmaddps512_maskz ((__v16sf
) __A
,
11229 _MM_FROUND_CUR_DIRECTION
);
11232 extern __inline __m512d
11233 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11234 _mm512_fmsub_pd (__m512d __A
, __m512d __B
, __m512d __C
)
11236 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
11240 _MM_FROUND_CUR_DIRECTION
);
11243 extern __inline __m512d
11244 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11245 _mm512_mask_fmsub_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
11247 return (__m512d
) __builtin_ia32_vfmaddpd512_mask ((__v8df
) __A
,
11251 _MM_FROUND_CUR_DIRECTION
);
11254 extern __inline __m512d
11255 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11256 _mm512_mask3_fmsub_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
11258 return (__m512d
) __builtin_ia32_vfmsubpd512_mask3 ((__v8df
) __A
,
11262 _MM_FROUND_CUR_DIRECTION
);
11265 extern __inline __m512d
11266 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11267 _mm512_maskz_fmsub_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
11269 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz ((__v8df
) __A
,
11273 _MM_FROUND_CUR_DIRECTION
);
11276 extern __inline __m512
11277 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11278 _mm512_fmsub_ps (__m512 __A
, __m512 __B
, __m512 __C
)
11280 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
11284 _MM_FROUND_CUR_DIRECTION
);
11287 extern __inline __m512
11288 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11289 _mm512_mask_fmsub_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
11291 return (__m512
) __builtin_ia32_vfmaddps512_mask ((__v16sf
) __A
,
11295 _MM_FROUND_CUR_DIRECTION
);
11298 extern __inline __m512
11299 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11300 _mm512_mask3_fmsub_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
11302 return (__m512
) __builtin_ia32_vfmsubps512_mask3 ((__v16sf
) __A
,
11306 _MM_FROUND_CUR_DIRECTION
);
11309 extern __inline __m512
11310 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11311 _mm512_maskz_fmsub_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
11313 return (__m512
) __builtin_ia32_vfmaddps512_maskz ((__v16sf
) __A
,
11317 _MM_FROUND_CUR_DIRECTION
);
11320 extern __inline __m512d
11321 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11322 _mm512_fmaddsub_pd (__m512d __A
, __m512d __B
, __m512d __C
)
11324 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
11328 _MM_FROUND_CUR_DIRECTION
);
11331 extern __inline __m512d
11332 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11333 _mm512_mask_fmaddsub_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
11335 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
11339 _MM_FROUND_CUR_DIRECTION
);
11342 extern __inline __m512d
11343 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11344 _mm512_mask3_fmaddsub_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
11346 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask3 ((__v8df
) __A
,
11350 _MM_FROUND_CUR_DIRECTION
);
11353 extern __inline __m512d
11354 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11355 _mm512_maskz_fmaddsub_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
11357 return (__m512d
) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df
) __A
,
11361 _MM_FROUND_CUR_DIRECTION
);
11364 extern __inline __m512
11365 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11366 _mm512_fmaddsub_ps (__m512 __A
, __m512 __B
, __m512 __C
)
11368 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
11372 _MM_FROUND_CUR_DIRECTION
);
11375 extern __inline __m512
11376 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11377 _mm512_mask_fmaddsub_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
11379 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
11383 _MM_FROUND_CUR_DIRECTION
);
11386 extern __inline __m512
11387 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11388 _mm512_mask3_fmaddsub_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
11390 return (__m512
) __builtin_ia32_vfmaddsubps512_mask3 ((__v16sf
) __A
,
11394 _MM_FROUND_CUR_DIRECTION
);
11397 extern __inline __m512
11398 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11399 _mm512_maskz_fmaddsub_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
11401 return (__m512
) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf
) __A
,
11405 _MM_FROUND_CUR_DIRECTION
);
11408 extern __inline __m512d
11409 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11410 _mm512_fmsubadd_pd (__m512d __A
, __m512d __B
, __m512d __C
)
11412 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
11416 _MM_FROUND_CUR_DIRECTION
);
11419 extern __inline __m512d
11420 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11421 _mm512_mask_fmsubadd_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
11423 return (__m512d
) __builtin_ia32_vfmaddsubpd512_mask ((__v8df
) __A
,
11427 _MM_FROUND_CUR_DIRECTION
);
11430 extern __inline __m512d
11431 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11432 _mm512_mask3_fmsubadd_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
11434 return (__m512d
) __builtin_ia32_vfmsubaddpd512_mask3 ((__v8df
) __A
,
11438 _MM_FROUND_CUR_DIRECTION
);
11441 extern __inline __m512d
11442 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11443 _mm512_maskz_fmsubadd_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
11445 return (__m512d
) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df
) __A
,
11449 _MM_FROUND_CUR_DIRECTION
);
11452 extern __inline __m512
11453 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11454 _mm512_fmsubadd_ps (__m512 __A
, __m512 __B
, __m512 __C
)
11456 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
11460 _MM_FROUND_CUR_DIRECTION
);
11463 extern __inline __m512
11464 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11465 _mm512_mask_fmsubadd_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
11467 return (__m512
) __builtin_ia32_vfmaddsubps512_mask ((__v16sf
) __A
,
11471 _MM_FROUND_CUR_DIRECTION
);
11474 extern __inline __m512
11475 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11476 _mm512_mask3_fmsubadd_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
11478 return (__m512
) __builtin_ia32_vfmsubaddps512_mask3 ((__v16sf
) __A
,
11482 _MM_FROUND_CUR_DIRECTION
);
11485 extern __inline __m512
11486 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11487 _mm512_maskz_fmsubadd_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
11489 return (__m512
) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf
) __A
,
11493 _MM_FROUND_CUR_DIRECTION
);
11496 extern __inline __m512d
11497 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11498 _mm512_fnmadd_pd (__m512d __A
, __m512d __B
, __m512d __C
)
11500 return (__m512d
) __builtin_ia32_vfmaddpd512_mask (-(__v8df
) __A
,
11504 _MM_FROUND_CUR_DIRECTION
);
11507 extern __inline __m512d
11508 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11509 _mm512_mask_fnmadd_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
11511 return (__m512d
) __builtin_ia32_vfnmaddpd512_mask ((__v8df
) __A
,
11515 _MM_FROUND_CUR_DIRECTION
);
11518 extern __inline __m512d
11519 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11520 _mm512_mask3_fnmadd_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
11522 return (__m512d
) __builtin_ia32_vfmaddpd512_mask3 (-(__v8df
) __A
,
11526 _MM_FROUND_CUR_DIRECTION
);
11529 extern __inline __m512d
11530 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11531 _mm512_maskz_fnmadd_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
11533 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz (-(__v8df
) __A
,
11537 _MM_FROUND_CUR_DIRECTION
);
11540 extern __inline __m512
11541 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11542 _mm512_fnmadd_ps (__m512 __A
, __m512 __B
, __m512 __C
)
11544 return (__m512
) __builtin_ia32_vfmaddps512_mask (-(__v16sf
) __A
,
11548 _MM_FROUND_CUR_DIRECTION
);
11551 extern __inline __m512
11552 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11553 _mm512_mask_fnmadd_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
11555 return (__m512
) __builtin_ia32_vfnmaddps512_mask ((__v16sf
) __A
,
11559 _MM_FROUND_CUR_DIRECTION
);
11562 extern __inline __m512
11563 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11564 _mm512_mask3_fnmadd_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
11566 return (__m512
) __builtin_ia32_vfmaddps512_mask3 (-(__v16sf
) __A
,
11570 _MM_FROUND_CUR_DIRECTION
);
11573 extern __inline __m512
11574 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11575 _mm512_maskz_fnmadd_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
11577 return (__m512
) __builtin_ia32_vfmaddps512_maskz (-(__v16sf
) __A
,
11581 _MM_FROUND_CUR_DIRECTION
);
11584 extern __inline __m512d
11585 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11586 _mm512_fnmsub_pd (__m512d __A
, __m512d __B
, __m512d __C
)
11588 return (__m512d
) __builtin_ia32_vfmaddpd512_mask (-(__v8df
) __A
,
11592 _MM_FROUND_CUR_DIRECTION
);
11595 extern __inline __m512d
11596 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11597 _mm512_mask_fnmsub_pd (__m512d __A
, __mmask8 __U
, __m512d __B
, __m512d __C
)
11599 return (__m512d
) __builtin_ia32_vfnmsubpd512_mask ((__v8df
) __A
,
11603 _MM_FROUND_CUR_DIRECTION
);
11606 extern __inline __m512d
11607 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11608 _mm512_mask3_fnmsub_pd (__m512d __A
, __m512d __B
, __m512d __C
, __mmask8 __U
)
11610 return (__m512d
) __builtin_ia32_vfnmsubpd512_mask3 ((__v8df
) __A
,
11614 _MM_FROUND_CUR_DIRECTION
);
11617 extern __inline __m512d
11618 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11619 _mm512_maskz_fnmsub_pd (__mmask8 __U
, __m512d __A
, __m512d __B
, __m512d __C
)
11621 return (__m512d
) __builtin_ia32_vfmaddpd512_maskz (-(__v8df
) __A
,
11625 _MM_FROUND_CUR_DIRECTION
);
11628 extern __inline __m512
11629 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11630 _mm512_fnmsub_ps (__m512 __A
, __m512 __B
, __m512 __C
)
11632 return (__m512
) __builtin_ia32_vfmaddps512_mask (-(__v16sf
) __A
,
11636 _MM_FROUND_CUR_DIRECTION
);
11639 extern __inline __m512
11640 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11641 _mm512_mask_fnmsub_ps (__m512 __A
, __mmask16 __U
, __m512 __B
, __m512 __C
)
11643 return (__m512
) __builtin_ia32_vfnmsubps512_mask ((__v16sf
) __A
,
11647 _MM_FROUND_CUR_DIRECTION
);
11650 extern __inline __m512
11651 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11652 _mm512_mask3_fnmsub_ps (__m512 __A
, __m512 __B
, __m512 __C
, __mmask16 __U
)
11654 return (__m512
) __builtin_ia32_vfnmsubps512_mask3 ((__v16sf
) __A
,
11658 _MM_FROUND_CUR_DIRECTION
);
11661 extern __inline __m512
11662 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11663 _mm512_maskz_fnmsub_ps (__mmask16 __U
, __m512 __A
, __m512 __B
, __m512 __C
)
11665 return (__m512
) __builtin_ia32_vfmaddps512_maskz (-(__v16sf
) __A
,
11669 _MM_FROUND_CUR_DIRECTION
);
11672 extern __inline __m256i
11673 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11674 _mm512_cvttpd_epi32 (__m512d __A
)
11676 return (__m256i
) __builtin_ia32_cvttpd2dq512_mask ((__v8df
) __A
,
11678 _mm256_undefined_si256 (),
11680 _MM_FROUND_CUR_DIRECTION
);
11683 extern __inline __m256i
11684 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11685 _mm512_mask_cvttpd_epi32 (__m256i __W
, __mmask8 __U
, __m512d __A
)
11687 return (__m256i
) __builtin_ia32_cvttpd2dq512_mask ((__v8df
) __A
,
11690 _MM_FROUND_CUR_DIRECTION
);
11693 extern __inline __m256i
11694 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11695 _mm512_maskz_cvttpd_epi32 (__mmask8 __U
, __m512d __A
)
11697 return (__m256i
) __builtin_ia32_cvttpd2dq512_mask ((__v8df
) __A
,
11699 _mm256_setzero_si256 (),
11701 _MM_FROUND_CUR_DIRECTION
);
11704 extern __inline __m256i
11705 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11706 _mm512_cvttpd_epu32 (__m512d __A
)
11708 return (__m256i
) __builtin_ia32_cvttpd2udq512_mask ((__v8df
) __A
,
11710 _mm256_undefined_si256 (),
11712 _MM_FROUND_CUR_DIRECTION
);
11715 extern __inline __m256i
11716 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11717 _mm512_mask_cvttpd_epu32 (__m256i __W
, __mmask8 __U
, __m512d __A
)
11719 return (__m256i
) __builtin_ia32_cvttpd2udq512_mask ((__v8df
) __A
,
11722 _MM_FROUND_CUR_DIRECTION
);
11725 extern __inline __m256i
11726 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11727 _mm512_maskz_cvttpd_epu32 (__mmask8 __U
, __m512d __A
)
11729 return (__m256i
) __builtin_ia32_cvttpd2udq512_mask ((__v8df
) __A
,
11731 _mm256_setzero_si256 (),
11733 _MM_FROUND_CUR_DIRECTION
);
11736 extern __inline __m256i
11737 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11738 _mm512_cvtpd_epi32 (__m512d __A
)
11740 return (__m256i
) __builtin_ia32_cvtpd2dq512_mask ((__v8df
) __A
,
11742 _mm256_undefined_si256 (),
11744 _MM_FROUND_CUR_DIRECTION
);
11747 extern __inline __m256i
11748 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11749 _mm512_mask_cvtpd_epi32 (__m256i __W
, __mmask8 __U
, __m512d __A
)
11751 return (__m256i
) __builtin_ia32_cvtpd2dq512_mask ((__v8df
) __A
,
11754 _MM_FROUND_CUR_DIRECTION
);
11757 extern __inline __m256i
11758 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11759 _mm512_maskz_cvtpd_epi32 (__mmask8 __U
, __m512d __A
)
11761 return (__m256i
) __builtin_ia32_cvtpd2dq512_mask ((__v8df
) __A
,
11763 _mm256_setzero_si256 (),
11765 _MM_FROUND_CUR_DIRECTION
);
11768 extern __inline __m256i
11769 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11770 _mm512_cvtpd_epu32 (__m512d __A
)
11772 return (__m256i
) __builtin_ia32_cvtpd2udq512_mask ((__v8df
) __A
,
11774 _mm256_undefined_si256 (),
11776 _MM_FROUND_CUR_DIRECTION
);
11779 extern __inline __m256i
11780 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11781 _mm512_mask_cvtpd_epu32 (__m256i __W
, __mmask8 __U
, __m512d __A
)
11783 return (__m256i
) __builtin_ia32_cvtpd2udq512_mask ((__v8df
) __A
,
11786 _MM_FROUND_CUR_DIRECTION
);
11789 extern __inline __m256i
11790 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11791 _mm512_maskz_cvtpd_epu32 (__mmask8 __U
, __m512d __A
)
11793 return (__m256i
) __builtin_ia32_cvtpd2udq512_mask ((__v8df
) __A
,
11795 _mm256_setzero_si256 (),
11797 _MM_FROUND_CUR_DIRECTION
);
11800 extern __inline __m512i
11801 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11802 _mm512_cvttps_epi32 (__m512 __A
)
11804 return (__m512i
) __builtin_ia32_cvttps2dq512_mask ((__v16sf
) __A
,
11806 _mm512_undefined_si512 (),
11808 _MM_FROUND_CUR_DIRECTION
);
11811 extern __inline __m512i
11812 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11813 _mm512_mask_cvttps_epi32 (__m512i __W
, __mmask16 __U
, __m512 __A
)
11815 return (__m512i
) __builtin_ia32_cvttps2dq512_mask ((__v16sf
) __A
,
11818 _MM_FROUND_CUR_DIRECTION
);
11821 extern __inline __m512i
11822 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11823 _mm512_maskz_cvttps_epi32 (__mmask16 __U
, __m512 __A
)
11825 return (__m512i
) __builtin_ia32_cvttps2dq512_mask ((__v16sf
) __A
,
11827 _mm512_setzero_si512 (),
11829 _MM_FROUND_CUR_DIRECTION
);
11832 extern __inline __m512i
11833 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11834 _mm512_cvttps_epu32 (__m512 __A
)
11836 return (__m512i
) __builtin_ia32_cvttps2udq512_mask ((__v16sf
) __A
,
11838 _mm512_undefined_si512 (),
11840 _MM_FROUND_CUR_DIRECTION
);
11843 extern __inline __m512i
11844 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11845 _mm512_mask_cvttps_epu32 (__m512i __W
, __mmask16 __U
, __m512 __A
)
11847 return (__m512i
) __builtin_ia32_cvttps2udq512_mask ((__v16sf
) __A
,
11850 _MM_FROUND_CUR_DIRECTION
);
11853 extern __inline __m512i
11854 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11855 _mm512_maskz_cvttps_epu32 (__mmask16 __U
, __m512 __A
)
11857 return (__m512i
) __builtin_ia32_cvttps2udq512_mask ((__v16sf
) __A
,
11859 _mm512_setzero_si512 (),
11861 _MM_FROUND_CUR_DIRECTION
);
11864 extern __inline __m512i
11865 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11866 _mm512_cvtps_epi32 (__m512 __A
)
11868 return (__m512i
) __builtin_ia32_cvtps2dq512_mask ((__v16sf
) __A
,
11870 _mm512_undefined_si512 (),
11872 _MM_FROUND_CUR_DIRECTION
);
11875 extern __inline __m512i
11876 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11877 _mm512_mask_cvtps_epi32 (__m512i __W
, __mmask16 __U
, __m512 __A
)
11879 return (__m512i
) __builtin_ia32_cvtps2dq512_mask ((__v16sf
) __A
,
11882 _MM_FROUND_CUR_DIRECTION
);
11885 extern __inline __m512i
11886 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11887 _mm512_maskz_cvtps_epi32 (__mmask16 __U
, __m512 __A
)
11889 return (__m512i
) __builtin_ia32_cvtps2dq512_mask ((__v16sf
) __A
,
11891 _mm512_setzero_si512 (),
11893 _MM_FROUND_CUR_DIRECTION
);
11896 extern __inline __m512i
11897 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11898 _mm512_cvtps_epu32 (__m512 __A
)
11900 return (__m512i
) __builtin_ia32_cvtps2udq512_mask ((__v16sf
) __A
,
11902 _mm512_undefined_si512 (),
11904 _MM_FROUND_CUR_DIRECTION
);
11907 extern __inline __m512i
11908 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11909 _mm512_mask_cvtps_epu32 (__m512i __W
, __mmask16 __U
, __m512 __A
)
11911 return (__m512i
) __builtin_ia32_cvtps2udq512_mask ((__v16sf
) __A
,
11914 _MM_FROUND_CUR_DIRECTION
);
11917 extern __inline __m512i
11918 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11919 _mm512_maskz_cvtps_epu32 (__mmask16 __U
, __m512 __A
)
11921 return (__m512i
) __builtin_ia32_cvtps2udq512_mask ((__v16sf
) __A
,
11923 _mm512_setzero_si512 (),
11925 _MM_FROUND_CUR_DIRECTION
);
11929 extern __inline __m128
11930 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11931 _mm_cvtu64_ss (__m128 __A
, unsigned long long __B
)
11933 return (__m128
) __builtin_ia32_cvtusi2ss64 ((__v4sf
) __A
, __B
,
11934 _MM_FROUND_CUR_DIRECTION
);
11937 extern __inline __m128d
11938 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11939 _mm_cvtu64_sd (__m128d __A
, unsigned long long __B
)
11941 return (__m128d
) __builtin_ia32_cvtusi2sd64 ((__v2df
) __A
, __B
,
11942 _MM_FROUND_CUR_DIRECTION
);
11946 extern __inline __m128
11947 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11948 _mm_cvtu32_ss (__m128 __A
, unsigned __B
)
11950 return (__m128
) __builtin_ia32_cvtusi2ss32 ((__v4sf
) __A
, __B
,
11951 _MM_FROUND_CUR_DIRECTION
);
11954 extern __inline __m512
11955 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11956 _mm512_cvtepi32_ps (__m512i __A
)
11958 return (__m512
) __builtin_ia32_cvtdq2ps512_mask ((__v16si
) __A
,
11960 _mm512_undefined_ps (),
11962 _MM_FROUND_CUR_DIRECTION
);
11965 extern __inline __m512
11966 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11967 _mm512_mask_cvtepi32_ps (__m512 __W
, __mmask16 __U
, __m512i __A
)
11969 return (__m512
) __builtin_ia32_cvtdq2ps512_mask ((__v16si
) __A
,
11972 _MM_FROUND_CUR_DIRECTION
);
11975 extern __inline __m512
11976 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11977 _mm512_maskz_cvtepi32_ps (__mmask16 __U
, __m512i __A
)
11979 return (__m512
) __builtin_ia32_cvtdq2ps512_mask ((__v16si
) __A
,
11981 _mm512_setzero_ps (),
11983 _MM_FROUND_CUR_DIRECTION
);
11986 extern __inline __m512
11987 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11988 _mm512_cvtepu32_ps (__m512i __A
)
11990 return (__m512
) __builtin_ia32_cvtudq2ps512_mask ((__v16si
) __A
,
11992 _mm512_undefined_ps (),
11994 _MM_FROUND_CUR_DIRECTION
);
11997 extern __inline __m512
11998 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
11999 _mm512_mask_cvtepu32_ps (__m512 __W
, __mmask16 __U
, __m512i __A
)
12001 return (__m512
) __builtin_ia32_cvtudq2ps512_mask ((__v16si
) __A
,
12004 _MM_FROUND_CUR_DIRECTION
);
12007 extern __inline __m512
12008 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12009 _mm512_maskz_cvtepu32_ps (__mmask16 __U
, __m512i __A
)
12011 return (__m512
) __builtin_ia32_cvtudq2ps512_mask ((__v16si
) __A
,
12013 _mm512_setzero_ps (),
12015 _MM_FROUND_CUR_DIRECTION
);
12018 #ifdef __OPTIMIZE__
12019 extern __inline __m512d
12020 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12021 _mm512_fixupimm_pd (__m512d __A
, __m512d __B
, __m512i __C
, const int __imm
)
12023 return (__m512d
) __builtin_ia32_fixupimmpd512_mask ((__v8df
) __A
,
12028 _MM_FROUND_CUR_DIRECTION
);
12031 extern __inline __m512d
12032 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12033 _mm512_mask_fixupimm_pd (__m512d __A
, __mmask8 __U
, __m512d __B
,
12034 __m512i __C
, const int __imm
)
12036 return (__m512d
) __builtin_ia32_fixupimmpd512_mask ((__v8df
) __A
,
12041 _MM_FROUND_CUR_DIRECTION
);
12044 extern __inline __m512d
12045 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12046 _mm512_maskz_fixupimm_pd (__mmask8 __U
, __m512d __A
, __m512d __B
,
12047 __m512i __C
, const int __imm
)
12049 return (__m512d
) __builtin_ia32_fixupimmpd512_maskz ((__v8df
) __A
,
12054 _MM_FROUND_CUR_DIRECTION
);
12057 extern __inline __m512
12058 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12059 _mm512_fixupimm_ps (__m512 __A
, __m512 __B
, __m512i __C
, const int __imm
)
12061 return (__m512
) __builtin_ia32_fixupimmps512_mask ((__v16sf
) __A
,
12066 _MM_FROUND_CUR_DIRECTION
);
12069 extern __inline __m512
12070 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12071 _mm512_mask_fixupimm_ps (__m512 __A
, __mmask16 __U
, __m512 __B
,
12072 __m512i __C
, const int __imm
)
12074 return (__m512
) __builtin_ia32_fixupimmps512_mask ((__v16sf
) __A
,
12079 _MM_FROUND_CUR_DIRECTION
);
12082 extern __inline __m512
12083 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12084 _mm512_maskz_fixupimm_ps (__mmask16 __U
, __m512 __A
, __m512 __B
,
12085 __m512i __C
, const int __imm
)
12087 return (__m512
) __builtin_ia32_fixupimmps512_maskz ((__v16sf
) __A
,
12092 _MM_FROUND_CUR_DIRECTION
);
12095 extern __inline __m128d
12096 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12097 _mm_fixupimm_sd (__m128d __A
, __m128d __B
, __m128i __C
, const int __imm
)
12099 return (__m128d
) __builtin_ia32_fixupimmsd_mask ((__v2df
) __A
,
12101 (__v2di
) __C
, __imm
,
12103 _MM_FROUND_CUR_DIRECTION
);
12106 extern __inline __m128d
12107 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12108 _mm_mask_fixupimm_sd (__m128d __A
, __mmask8 __U
, __m128d __B
,
12109 __m128i __C
, const int __imm
)
12111 return (__m128d
) __builtin_ia32_fixupimmsd_mask ((__v2df
) __A
,
12113 (__v2di
) __C
, __imm
,
12115 _MM_FROUND_CUR_DIRECTION
);
12118 extern __inline __m128d
12119 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12120 _mm_maskz_fixupimm_sd (__mmask8 __U
, __m128d __A
, __m128d __B
,
12121 __m128i __C
, const int __imm
)
12123 return (__m128d
) __builtin_ia32_fixupimmsd_maskz ((__v2df
) __A
,
12128 _MM_FROUND_CUR_DIRECTION
);
12131 extern __inline __m128
12132 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12133 _mm_fixupimm_ss (__m128 __A
, __m128 __B
, __m128i __C
, const int __imm
)
12135 return (__m128
) __builtin_ia32_fixupimmss_mask ((__v4sf
) __A
,
12137 (__v4si
) __C
, __imm
,
12139 _MM_FROUND_CUR_DIRECTION
);
12142 extern __inline __m128
12143 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12144 _mm_mask_fixupimm_ss (__m128 __A
, __mmask8 __U
, __m128 __B
,
12145 __m128i __C
, const int __imm
)
12147 return (__m128
) __builtin_ia32_fixupimmss_mask ((__v4sf
) __A
,
12149 (__v4si
) __C
, __imm
,
12151 _MM_FROUND_CUR_DIRECTION
);
12154 extern __inline __m128
12155 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12156 _mm_maskz_fixupimm_ss (__mmask8 __U
, __m128 __A
, __m128 __B
,
12157 __m128i __C
, const int __imm
)
12159 return (__m128
) __builtin_ia32_fixupimmss_maskz ((__v4sf
) __A
,
12161 (__v4si
) __C
, __imm
,
12163 _MM_FROUND_CUR_DIRECTION
);
12166 #define _mm512_fixupimm_pd(X, Y, Z, C) \
12167 ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X), \
12168 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
12169 (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
12171 #define _mm512_mask_fixupimm_pd(X, U, Y, Z, C) \
12172 ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X), \
12173 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
12174 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12176 #define _mm512_maskz_fixupimm_pd(U, X, Y, Z, C) \
12177 ((__m512d)__builtin_ia32_fixupimmpd512_maskz ((__v8df)(__m512d)(X), \
12178 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
12179 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12181 #define _mm512_fixupimm_ps(X, Y, Z, C) \
12182 ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X), \
12183 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
12184 (__mmask16)(-1), _MM_FROUND_CUR_DIRECTION))
12186 #define _mm512_mask_fixupimm_ps(X, U, Y, Z, C) \
12187 ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X), \
12188 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
12189 (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
12191 #define _mm512_maskz_fixupimm_ps(U, X, Y, Z, C) \
12192 ((__m512)__builtin_ia32_fixupimmps512_maskz ((__v16sf)(__m512)(X), \
12193 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
12194 (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
12196 #define _mm_fixupimm_sd(X, Y, Z, C) \
12197 ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X), \
12198 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
12199 (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
12201 #define _mm_mask_fixupimm_sd(X, U, Y, Z, C) \
12202 ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X), \
12203 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
12204 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12206 #define _mm_maskz_fixupimm_sd(U, X, Y, Z, C) \
12207 ((__m128d)__builtin_ia32_fixupimmsd_maskz ((__v2df)(__m128d)(X), \
12208 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
12209 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12211 #define _mm_fixupimm_ss(X, Y, Z, C) \
12212 ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X), \
12213 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
12214 (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
12216 #define _mm_mask_fixupimm_ss(X, U, Y, Z, C) \
12217 ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X), \
12218 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
12219 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12221 #define _mm_maskz_fixupimm_ss(U, X, Y, Z, C) \
12222 ((__m128)__builtin_ia32_fixupimmss_maskz ((__v4sf)(__m128)(X), \
12223 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
12224 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12228 extern __inline
unsigned long long
12229 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12230 _mm_cvtss_u64 (__m128 __A
)
12232 return (unsigned long long) __builtin_ia32_vcvtss2usi64 ((__v4sf
)
12234 _MM_FROUND_CUR_DIRECTION
);
12237 extern __inline
unsigned long long
12238 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12239 _mm_cvttss_u64 (__m128 __A
)
12241 return (unsigned long long) __builtin_ia32_vcvttss2usi64 ((__v4sf
)
12243 _MM_FROUND_CUR_DIRECTION
);
12246 extern __inline
long long
12247 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12248 _mm_cvttss_i64 (__m128 __A
)
12250 return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf
) __A
,
12251 _MM_FROUND_CUR_DIRECTION
);
12253 #endif /* __x86_64__ */
12255 extern __inline
unsigned
12256 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12257 _mm_cvtss_u32 (__m128 __A
)
12259 return (unsigned) __builtin_ia32_vcvtss2usi32 ((__v4sf
) __A
,
12260 _MM_FROUND_CUR_DIRECTION
);
12263 extern __inline
unsigned
12264 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12265 _mm_cvttss_u32 (__m128 __A
)
12267 return (unsigned) __builtin_ia32_vcvttss2usi32 ((__v4sf
) __A
,
12268 _MM_FROUND_CUR_DIRECTION
);
12271 extern __inline
int
12272 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12273 _mm_cvttss_i32 (__m128 __A
)
12275 return (int) __builtin_ia32_vcvttss2si32 ((__v4sf
) __A
,
12276 _MM_FROUND_CUR_DIRECTION
);
12280 extern __inline
unsigned long long
12281 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12282 _mm_cvtsd_u64 (__m128d __A
)
12284 return (unsigned long long) __builtin_ia32_vcvtsd2usi64 ((__v2df
)
12286 _MM_FROUND_CUR_DIRECTION
);
12289 extern __inline
unsigned long long
12290 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12291 _mm_cvttsd_u64 (__m128d __A
)
12293 return (unsigned long long) __builtin_ia32_vcvttsd2usi64 ((__v2df
)
12295 _MM_FROUND_CUR_DIRECTION
);
12298 extern __inline
long long
12299 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12300 _mm_cvttsd_i64 (__m128d __A
)
12302 return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df
) __A
,
12303 _MM_FROUND_CUR_DIRECTION
);
12305 #endif /* __x86_64__ */
12307 extern __inline
unsigned
12308 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12309 _mm_cvtsd_u32 (__m128d __A
)
12311 return (unsigned) __builtin_ia32_vcvtsd2usi32 ((__v2df
) __A
,
12312 _MM_FROUND_CUR_DIRECTION
);
12315 extern __inline
unsigned
12316 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12317 _mm_cvttsd_u32 (__m128d __A
)
12319 return (unsigned) __builtin_ia32_vcvttsd2usi32 ((__v2df
) __A
,
12320 _MM_FROUND_CUR_DIRECTION
);
12323 extern __inline
int
12324 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12325 _mm_cvttsd_i32 (__m128d __A
)
12327 return (int) __builtin_ia32_vcvttsd2si32 ((__v2df
) __A
,
12328 _MM_FROUND_CUR_DIRECTION
);
12331 extern __inline __m512d
12332 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12333 _mm512_cvtps_pd (__m256 __A
)
12335 return (__m512d
) __builtin_ia32_cvtps2pd512_mask ((__v8sf
) __A
,
12337 _mm512_undefined_pd (),
12339 _MM_FROUND_CUR_DIRECTION
);
12342 extern __inline __m512d
12343 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12344 _mm512_mask_cvtps_pd (__m512d __W
, __mmask8 __U
, __m256 __A
)
12346 return (__m512d
) __builtin_ia32_cvtps2pd512_mask ((__v8sf
) __A
,
12349 _MM_FROUND_CUR_DIRECTION
);
12352 extern __inline __m512d
12353 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12354 _mm512_maskz_cvtps_pd (__mmask8 __U
, __m256 __A
)
12356 return (__m512d
) __builtin_ia32_cvtps2pd512_mask ((__v8sf
) __A
,
12358 _mm512_setzero_pd (),
12360 _MM_FROUND_CUR_DIRECTION
);
12363 extern __inline __m512
12364 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12365 _mm512_cvtph_ps (__m256i __A
)
12367 return (__m512
) __builtin_ia32_vcvtph2ps512_mask ((__v16hi
) __A
,
12369 _mm512_undefined_ps (),
12371 _MM_FROUND_CUR_DIRECTION
);
12374 extern __inline __m512
12375 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12376 _mm512_mask_cvtph_ps (__m512 __W
, __mmask16 __U
, __m256i __A
)
12378 return (__m512
) __builtin_ia32_vcvtph2ps512_mask ((__v16hi
) __A
,
12381 _MM_FROUND_CUR_DIRECTION
);
12384 extern __inline __m512
12385 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12386 _mm512_maskz_cvtph_ps (__mmask16 __U
, __m256i __A
)
12388 return (__m512
) __builtin_ia32_vcvtph2ps512_mask ((__v16hi
) __A
,
12390 _mm512_setzero_ps (),
12392 _MM_FROUND_CUR_DIRECTION
);
12395 extern __inline __m256
12396 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12397 _mm512_cvtpd_ps (__m512d __A
)
12399 return (__m256
) __builtin_ia32_cvtpd2ps512_mask ((__v8df
) __A
,
12401 _mm256_undefined_ps (),
12403 _MM_FROUND_CUR_DIRECTION
);
12406 extern __inline __m256
12407 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12408 _mm512_mask_cvtpd_ps (__m256 __W
, __mmask8 __U
, __m512d __A
)
12410 return (__m256
) __builtin_ia32_cvtpd2ps512_mask ((__v8df
) __A
,
12413 _MM_FROUND_CUR_DIRECTION
);
12416 extern __inline __m256
12417 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12418 _mm512_maskz_cvtpd_ps (__mmask8 __U
, __m512d __A
)
12420 return (__m256
) __builtin_ia32_cvtpd2ps512_mask ((__v8df
) __A
,
12422 _mm256_setzero_ps (),
12424 _MM_FROUND_CUR_DIRECTION
);
12427 #ifdef __OPTIMIZE__
12428 extern __inline __m512
12429 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12430 _mm512_getexp_ps (__m512 __A
)
12432 return (__m512
) __builtin_ia32_getexpps512_mask ((__v16sf
) __A
,
12434 _mm512_undefined_ps (),
12436 _MM_FROUND_CUR_DIRECTION
);
12439 extern __inline __m512
12440 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12441 _mm512_mask_getexp_ps (__m512 __W
, __mmask16 __U
, __m512 __A
)
12443 return (__m512
) __builtin_ia32_getexpps512_mask ((__v16sf
) __A
,
12446 _MM_FROUND_CUR_DIRECTION
);
12449 extern __inline __m512
12450 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12451 _mm512_maskz_getexp_ps (__mmask16 __U
, __m512 __A
)
12453 return (__m512
) __builtin_ia32_getexpps512_mask ((__v16sf
) __A
,
12455 _mm512_setzero_ps (),
12457 _MM_FROUND_CUR_DIRECTION
);
12460 extern __inline __m512d
12461 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12462 _mm512_getexp_pd (__m512d __A
)
12464 return (__m512d
) __builtin_ia32_getexppd512_mask ((__v8df
) __A
,
12466 _mm512_undefined_pd (),
12468 _MM_FROUND_CUR_DIRECTION
);
12471 extern __inline __m512d
12472 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12473 _mm512_mask_getexp_pd (__m512d __W
, __mmask8 __U
, __m512d __A
)
12475 return (__m512d
) __builtin_ia32_getexppd512_mask ((__v8df
) __A
,
12478 _MM_FROUND_CUR_DIRECTION
);
12481 extern __inline __m512d
12482 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12483 _mm512_maskz_getexp_pd (__mmask8 __U
, __m512d __A
)
12485 return (__m512d
) __builtin_ia32_getexppd512_mask ((__v8df
) __A
,
12487 _mm512_setzero_pd (),
12489 _MM_FROUND_CUR_DIRECTION
);
12492 extern __inline __m128
12493 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12494 _mm_getexp_ss (__m128 __A
, __m128 __B
)
12496 return (__m128
) __builtin_ia32_getexpss128_round ((__v4sf
) __A
,
12498 _MM_FROUND_CUR_DIRECTION
);
12501 extern __inline __m128d
12502 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12503 _mm_getexp_sd (__m128d __A
, __m128d __B
)
12505 return (__m128d
) __builtin_ia32_getexpsd128_round ((__v2df
) __A
,
12507 _MM_FROUND_CUR_DIRECTION
);
12510 extern __inline __m512d
12511 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12512 _mm512_getmant_pd (__m512d __A
, _MM_MANTISSA_NORM_ENUM __B
,
12513 _MM_MANTISSA_SIGN_ENUM __C
)
12515 return (__m512d
) __builtin_ia32_getmantpd512_mask ((__v8df
) __A
,
12517 _mm512_undefined_pd (),
12519 _MM_FROUND_CUR_DIRECTION
);
12522 extern __inline __m512d
12523 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12524 _mm512_mask_getmant_pd (__m512d __W
, __mmask8 __U
, __m512d __A
,
12525 _MM_MANTISSA_NORM_ENUM __B
, _MM_MANTISSA_SIGN_ENUM __C
)
12527 return (__m512d
) __builtin_ia32_getmantpd512_mask ((__v8df
) __A
,
12530 _MM_FROUND_CUR_DIRECTION
);
12533 extern __inline __m512d
12534 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12535 _mm512_maskz_getmant_pd (__mmask8 __U
, __m512d __A
,
12536 _MM_MANTISSA_NORM_ENUM __B
, _MM_MANTISSA_SIGN_ENUM __C
)
12538 return (__m512d
) __builtin_ia32_getmantpd512_mask ((__v8df
) __A
,
12541 _mm512_setzero_pd (),
12543 _MM_FROUND_CUR_DIRECTION
);
12546 extern __inline __m512
12547 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12548 _mm512_getmant_ps (__m512 __A
, _MM_MANTISSA_NORM_ENUM __B
,
12549 _MM_MANTISSA_SIGN_ENUM __C
)
12551 return (__m512
) __builtin_ia32_getmantps512_mask ((__v16sf
) __A
,
12553 _mm512_undefined_ps (),
12555 _MM_FROUND_CUR_DIRECTION
);
12558 extern __inline __m512
12559 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12560 _mm512_mask_getmant_ps (__m512 __W
, __mmask16 __U
, __m512 __A
,
12561 _MM_MANTISSA_NORM_ENUM __B
, _MM_MANTISSA_SIGN_ENUM __C
)
12563 return (__m512
) __builtin_ia32_getmantps512_mask ((__v16sf
) __A
,
12565 (__v16sf
) __W
, __U
,
12566 _MM_FROUND_CUR_DIRECTION
);
12569 extern __inline __m512
12570 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12571 _mm512_maskz_getmant_ps (__mmask16 __U
, __m512 __A
,
12572 _MM_MANTISSA_NORM_ENUM __B
, _MM_MANTISSA_SIGN_ENUM __C
)
12574 return (__m512
) __builtin_ia32_getmantps512_mask ((__v16sf
) __A
,
12577 _mm512_setzero_ps (),
12579 _MM_FROUND_CUR_DIRECTION
);
12582 extern __inline __m128d
12583 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12584 _mm_getmant_sd (__m128d __A
, __m128d __B
, _MM_MANTISSA_NORM_ENUM __C
,
12585 _MM_MANTISSA_SIGN_ENUM __D
)
12587 return (__m128d
) __builtin_ia32_getmantsd_round ((__v2df
) __A
,
12590 _MM_FROUND_CUR_DIRECTION
);
12593 extern __inline __m128
12594 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12595 _mm_getmant_ss (__m128 __A
, __m128 __B
, _MM_MANTISSA_NORM_ENUM __C
,
12596 _MM_MANTISSA_SIGN_ENUM __D
)
12598 return (__m128
) __builtin_ia32_getmantss_round ((__v4sf
) __A
,
12601 _MM_FROUND_CUR_DIRECTION
);
12605 #define _mm512_getmant_pd(X, B, C) \
12606 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
12607 (int)(((C)<<2) | (B)), \
12608 (__v8df)_mm512_undefined_pd(), \
12610 _MM_FROUND_CUR_DIRECTION))
12612 #define _mm512_mask_getmant_pd(W, U, X, B, C) \
12613 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
12614 (int)(((C)<<2) | (B)), \
12615 (__v8df)(__m512d)(W), \
12617 _MM_FROUND_CUR_DIRECTION))
12619 #define _mm512_maskz_getmant_pd(U, X, B, C) \
12620 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
12621 (int)(((C)<<2) | (B)), \
12622 (__v8df)_mm512_setzero_pd(), \
12624 _MM_FROUND_CUR_DIRECTION))
12625 #define _mm512_getmant_ps(X, B, C) \
12626 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
12627 (int)(((C)<<2) | (B)), \
12628 (__v16sf)_mm512_undefined_ps(), \
12630 _MM_FROUND_CUR_DIRECTION))
12632 #define _mm512_mask_getmant_ps(W, U, X, B, C) \
12633 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
12634 (int)(((C)<<2) | (B)), \
12635 (__v16sf)(__m512)(W), \
12637 _MM_FROUND_CUR_DIRECTION))
12639 #define _mm512_maskz_getmant_ps(U, X, B, C) \
12640 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
12641 (int)(((C)<<2) | (B)), \
12642 (__v16sf)_mm512_setzero_ps(), \
12644 _MM_FROUND_CUR_DIRECTION))
12645 #define _mm_getmant_sd(X, Y, C, D) \
12646 ((__m128d)__builtin_ia32_getmantsd_round ((__v2df)(__m128d)(X), \
12647 (__v2df)(__m128d)(Y), \
12648 (int)(((D)<<2) | (C)), \
12649 _MM_FROUND_CUR_DIRECTION))
12651 #define _mm_getmant_ss(X, Y, C, D) \
12652 ((__m128)__builtin_ia32_getmantss_round ((__v4sf)(__m128)(X), \
12653 (__v4sf)(__m128)(Y), \
12654 (int)(((D)<<2) | (C)), \
12655 _MM_FROUND_CUR_DIRECTION))
12657 #define _mm_getexp_ss(A, B) \
12658 ((__m128)__builtin_ia32_getexpss128_mask((__v4sf)(__m128)(A), (__v4sf)(__m128)(B), \
12659 _MM_FROUND_CUR_DIRECTION))
12661 #define _mm_getexp_sd(A, B) \
12662 ((__m128d)__builtin_ia32_getexpsd128_mask((__v2df)(__m128d)(A), (__v2df)(__m128d)(B),\
12663 _MM_FROUND_CUR_DIRECTION))
12665 #define _mm512_getexp_ps(A) \
12666 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
12667 (__v16sf)_mm512_undefined_ps(), (__mmask16)-1, _MM_FROUND_CUR_DIRECTION))
12669 #define _mm512_mask_getexp_ps(W, U, A) \
12670 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
12671 (__v16sf)(__m512)(W), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
12673 #define _mm512_maskz_getexp_ps(U, A) \
12674 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
12675 (__v16sf)_mm512_setzero_ps(), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
12677 #define _mm512_getexp_pd(A) \
12678 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
12679 (__v8df)_mm512_undefined_pd(), (__mmask8)-1, _MM_FROUND_CUR_DIRECTION))
12681 #define _mm512_mask_getexp_pd(W, U, A) \
12682 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
12683 (__v8df)(__m512d)(W), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12685 #define _mm512_maskz_getexp_pd(U, A) \
12686 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
12687 (__v8df)_mm512_setzero_pd(), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
12690 #ifdef __OPTIMIZE__
12691 extern __inline __m512
12692 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12693 _mm512_roundscale_ps (__m512 __A
, const int __imm
)
12695 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __A
, __imm
,
12697 _mm512_undefined_ps (),
12699 _MM_FROUND_CUR_DIRECTION
);
12702 extern __inline __m512
12703 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12704 _mm512_mask_roundscale_ps (__m512 __A
, __mmask16 __B
, __m512 __C
,
12707 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __C
, __imm
,
12710 _MM_FROUND_CUR_DIRECTION
);
12713 extern __inline __m512
12714 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12715 _mm512_maskz_roundscale_ps (__mmask16 __A
, __m512 __B
, const int __imm
)
12717 return (__m512
) __builtin_ia32_rndscaleps_mask ((__v16sf
) __B
,
12720 _mm512_setzero_ps (),
12722 _MM_FROUND_CUR_DIRECTION
);
12725 extern __inline __m512d
12726 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12727 _mm512_roundscale_pd (__m512d __A
, const int __imm
)
12729 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __A
, __imm
,
12731 _mm512_undefined_pd (),
12733 _MM_FROUND_CUR_DIRECTION
);
12736 extern __inline __m512d
12737 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12738 _mm512_mask_roundscale_pd (__m512d __A
, __mmask8 __B
, __m512d __C
,
12741 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __C
, __imm
,
12744 _MM_FROUND_CUR_DIRECTION
);
12747 extern __inline __m512d
12748 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12749 _mm512_maskz_roundscale_pd (__mmask8 __A
, __m512d __B
, const int __imm
)
12751 return (__m512d
) __builtin_ia32_rndscalepd_mask ((__v8df
) __B
,
12754 _mm512_setzero_pd (),
12756 _MM_FROUND_CUR_DIRECTION
);
12759 extern __inline __m128
12760 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12761 _mm_roundscale_ss (__m128 __A
, __m128 __B
, const int __imm
)
12763 return (__m128
) __builtin_ia32_rndscaless_round ((__v4sf
) __A
,
12764 (__v4sf
) __B
, __imm
,
12765 _MM_FROUND_CUR_DIRECTION
);
12768 extern __inline __m128d
12769 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12770 _mm_roundscale_sd (__m128d __A
, __m128d __B
, const int __imm
)
12772 return (__m128d
) __builtin_ia32_rndscalesd_round ((__v2df
) __A
,
12773 (__v2df
) __B
, __imm
,
12774 _MM_FROUND_CUR_DIRECTION
);
12778 #define _mm512_roundscale_ps(A, B) \
12779 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(A), (int)(B),\
12780 (__v16sf)_mm512_undefined_ps(), (__mmask16)(-1), _MM_FROUND_CUR_DIRECTION))
12781 #define _mm512_mask_roundscale_ps(A, B, C, D) \
12782 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(C), \
12784 (__v16sf)(__m512)(A), \
12785 (__mmask16)(B), _MM_FROUND_CUR_DIRECTION))
12786 #define _mm512_maskz_roundscale_ps(A, B, C) \
12787 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(B), \
12789 (__v16sf)_mm512_setzero_ps(),\
12790 (__mmask16)(A), _MM_FROUND_CUR_DIRECTION))
12791 #define _mm512_roundscale_pd(A, B) \
12792 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(A), (int)(B),\
12793 (__v8df)_mm512_undefined_pd(), (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
12794 #define _mm512_mask_roundscale_pd(A, B, C, D) \
12795 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(C), \
12797 (__v8df)(__m512d)(A), \
12798 (__mmask8)(B), _MM_FROUND_CUR_DIRECTION))
12799 #define _mm512_maskz_roundscale_pd(A, B, C) \
12800 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(B), \
12802 (__v8df)_mm512_setzero_pd(),\
12803 (__mmask8)(A), _MM_FROUND_CUR_DIRECTION))
12804 #define _mm_roundscale_ss(A, B, C) \
12805 ((__m128) __builtin_ia32_rndscaless_round ((__v4sf)(__m128)(A), \
12806 (__v4sf)(__m128)(B), (int)(C), _MM_FROUND_CUR_DIRECTION))
12807 #define _mm_roundscale_sd(A, B, C) \
12808 ((__m128d) __builtin_ia32_rndscalesd_round ((__v2df)(__m128d)(A), \
12809 (__v2df)(__m128d)(B), (int)(C), _MM_FROUND_CUR_DIRECTION))
12812 #ifdef __OPTIMIZE__
12813 extern __inline __mmask8
12814 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12815 _mm512_cmp_pd_mask (__m512d __X
, __m512d __Y
, const int __P
)
12817 return (__mmask8
) __builtin_ia32_cmppd512_mask ((__v8df
) __X
,
12820 _MM_FROUND_CUR_DIRECTION
);
12823 extern __inline __mmask16
12824 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12825 _mm512_cmp_ps_mask (__m512 __X
, __m512 __Y
, const int __P
)
12827 return (__mmask16
) __builtin_ia32_cmpps512_mask ((__v16sf
) __X
,
12828 (__v16sf
) __Y
, __P
,
12830 _MM_FROUND_CUR_DIRECTION
);
12833 extern __inline __mmask16
12834 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12835 _mm512_mask_cmp_ps_mask (__mmask16 __U
, __m512 __X
, __m512 __Y
, const int __P
)
12837 return (__mmask16
) __builtin_ia32_cmpps512_mask ((__v16sf
) __X
,
12838 (__v16sf
) __Y
, __P
,
12840 _MM_FROUND_CUR_DIRECTION
);
12843 extern __inline __mmask8
12844 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12845 _mm512_mask_cmp_pd_mask (__mmask8 __U
, __m512d __X
, __m512d __Y
, const int __P
)
12847 return (__mmask8
) __builtin_ia32_cmppd512_mask ((__v8df
) __X
,
12850 _MM_FROUND_CUR_DIRECTION
);
12853 extern __inline __mmask8
12854 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12855 _mm_cmp_sd_mask (__m128d __X
, __m128d __Y
, const int __P
)
12857 return (__mmask8
) __builtin_ia32_cmpsd_mask ((__v2df
) __X
,
12860 _MM_FROUND_CUR_DIRECTION
);
12863 extern __inline __mmask8
12864 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12865 _mm_mask_cmp_sd_mask (__mmask8 __M
, __m128d __X
, __m128d __Y
, const int __P
)
12867 return (__mmask8
) __builtin_ia32_cmpsd_mask ((__v2df
) __X
,
12870 _MM_FROUND_CUR_DIRECTION
);
12873 extern __inline __mmask8
12874 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12875 _mm_cmp_ss_mask (__m128 __X
, __m128 __Y
, const int __P
)
12877 return (__mmask8
) __builtin_ia32_cmpss_mask ((__v4sf
) __X
,
12880 _MM_FROUND_CUR_DIRECTION
);
12883 extern __inline __mmask8
12884 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12885 _mm_mask_cmp_ss_mask (__mmask8 __M
, __m128 __X
, __m128 __Y
, const int __P
)
12887 return (__mmask8
) __builtin_ia32_cmpss_mask ((__v4sf
) __X
,
12890 _MM_FROUND_CUR_DIRECTION
);
12894 #define _mm512_cmp_pd_mask(X, Y, P) \
12895 ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X), \
12896 (__v8df)(__m512d)(Y), (int)(P),\
12897 (__mmask8)-1,_MM_FROUND_CUR_DIRECTION))
12899 #define _mm512_cmp_ps_mask(X, Y, P) \
12900 ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X), \
12901 (__v16sf)(__m512)(Y), (int)(P),\
12902 (__mmask16)-1,_MM_FROUND_CUR_DIRECTION))
12904 #define _mm512_mask_cmp_pd_mask(M, X, Y, P) \
12905 ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X), \
12906 (__v8df)(__m512d)(Y), (int)(P),\
12907 (__mmask8)M, _MM_FROUND_CUR_DIRECTION))
12909 #define _mm512_mask_cmp_ps_mask(M, X, Y, P) \
12910 ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X), \
12911 (__v16sf)(__m512)(Y), (int)(P),\
12912 (__mmask16)M,_MM_FROUND_CUR_DIRECTION))
12914 #define _mm_cmp_sd_mask(X, Y, P) \
12915 ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X), \
12916 (__v2df)(__m128d)(Y), (int)(P),\
12917 (__mmask8)-1,_MM_FROUND_CUR_DIRECTION))
12919 #define _mm_mask_cmp_sd_mask(M, X, Y, P) \
12920 ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X), \
12921 (__v2df)(__m128d)(Y), (int)(P),\
12922 M,_MM_FROUND_CUR_DIRECTION))
12924 #define _mm_cmp_ss_mask(X, Y, P) \
12925 ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X), \
12926 (__v4sf)(__m128)(Y), (int)(P), \
12927 (__mmask8)-1,_MM_FROUND_CUR_DIRECTION))
12929 #define _mm_mask_cmp_ss_mask(M, X, Y, P) \
12930 ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X), \
12931 (__v4sf)(__m128)(Y), (int)(P), \
12932 M,_MM_FROUND_CUR_DIRECTION))
12935 extern __inline __mmask16
12936 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12937 _mm512_kmov (__mmask16 __A
)
12939 return __builtin_ia32_kmov16 (__A
);
12942 extern __inline __m512
12943 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12944 _mm512_castpd_ps (__m512d __A
)
12946 return (__m512
) (__A
);
12949 extern __inline __m512i
12950 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12951 _mm512_castpd_si512 (__m512d __A
)
12953 return (__m512i
) (__A
);
12956 extern __inline __m512d
12957 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12958 _mm512_castps_pd (__m512 __A
)
12960 return (__m512d
) (__A
);
12963 extern __inline __m512i
12964 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12965 _mm512_castps_si512 (__m512 __A
)
12967 return (__m512i
) (__A
);
12970 extern __inline __m512
12971 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12972 _mm512_castsi512_ps (__m512i __A
)
12974 return (__m512
) (__A
);
12977 extern __inline __m512d
12978 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12979 _mm512_castsi512_pd (__m512i __A
)
12981 return (__m512d
) (__A
);
12984 extern __inline __m128d
12985 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12986 _mm512_castpd512_pd128 (__m512d __A
)
12988 return (__m128d
)_mm512_extractf32x4_ps((__m512
)__A
, 0);
12991 extern __inline __m128
12992 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
12993 _mm512_castps512_ps128 (__m512 __A
)
12995 return _mm512_extractf32x4_ps(__A
, 0);
12998 extern __inline __m128i
12999 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13000 _mm512_castsi512_si128 (__m512i __A
)
13002 return (__m128i
)_mm512_extracti32x4_epi32((__m512i
)__A
, 0);
13005 extern __inline __m256d
13006 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13007 _mm512_castpd512_pd256 (__m512d __A
)
13009 return _mm512_extractf64x4_pd(__A
, 0);
13012 extern __inline __m256
13013 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13014 _mm512_castps512_ps256 (__m512 __A
)
13016 return (__m256
)_mm512_extractf64x4_pd((__m512d
)__A
, 0);
13019 extern __inline __m256i
13020 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13021 _mm512_castsi512_si256 (__m512i __A
)
13023 return (__m256i
)_mm512_extractf64x4_pd((__m512d
)__A
, 0);
13026 extern __inline __m512d
13027 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13028 _mm512_castpd128_pd512 (__m128d __A
)
13030 return (__m512d
) __builtin_ia32_pd512_pd((__m128d
)__A
);
13033 extern __inline __m512
13034 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13035 _mm512_castps128_ps512 (__m128 __A
)
13037 return (__m512
) __builtin_ia32_ps512_ps((__m128
)__A
);
13040 extern __inline __m512i
13041 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13042 _mm512_castsi128_si512 (__m128i __A
)
13044 return (__m512i
) __builtin_ia32_si512_si((__v4si
)__A
);
13047 extern __inline __m512d
13048 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13049 _mm512_castpd256_pd512 (__m256d __A
)
13051 return __builtin_ia32_pd512_256pd (__A
);
13054 extern __inline __m512
13055 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13056 _mm512_castps256_ps512 (__m256 __A
)
13058 return __builtin_ia32_ps512_256ps (__A
);
13061 extern __inline __m512i
13062 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13063 _mm512_castsi256_si512 (__m256i __A
)
13065 return (__m512i
)__builtin_ia32_si512_256si ((__v8si
)__A
);
13068 extern __inline __mmask16
13069 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13070 _mm512_cmpeq_epu32_mask (__m512i __A
, __m512i __B
)
13072 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __A
,
13077 extern __inline __mmask16
13078 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13079 _mm512_mask_cmpeq_epu32_mask (__mmask16 __U
, __m512i __A
, __m512i __B
)
13081 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __A
,
13082 (__v16si
) __B
, 0, __U
);
13085 extern __inline __mmask8
13086 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13087 _mm512_mask_cmpeq_epu64_mask (__mmask8 __U
, __m512i __A
, __m512i __B
)
13089 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __A
,
13090 (__v8di
) __B
, 0, __U
);
13093 extern __inline __mmask8
13094 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13095 _mm512_cmpeq_epu64_mask (__m512i __A
, __m512i __B
)
13097 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __A
,
13102 extern __inline __mmask16
13103 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13104 _mm512_cmpgt_epu32_mask (__m512i __A
, __m512i __B
)
13106 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __A
,
13111 extern __inline __mmask16
13112 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13113 _mm512_mask_cmpgt_epu32_mask (__mmask16 __U
, __m512i __A
, __m512i __B
)
13115 return (__mmask16
) __builtin_ia32_ucmpd512_mask ((__v16si
) __A
,
13116 (__v16si
) __B
, 6, __U
);
13119 extern __inline __mmask8
13120 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13121 _mm512_mask_cmpgt_epu64_mask (__mmask8 __U
, __m512i __A
, __m512i __B
)
13123 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __A
,
13124 (__v8di
) __B
, 6, __U
);
13127 extern __inline __mmask8
13128 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
13129 _mm512_cmpgt_epu64_mask (__m512i __A
, __m512i __B
)
13131 return (__mmask8
) __builtin_ia32_ucmpq512_mask ((__v8di
) __A
,
13136 #ifdef __DISABLE_AVX512F__
13137 #undef __DISABLE_AVX512F__
13138 #pragma GCC pop_options
13139 #endif /* __DISABLE_AVX512F__ */
13141 #endif /* _AVX512FINTRIN_H_INCLUDED */