1 /* Copyright (C) 2013-2020 Free Software Foundation, Inc.
2 
3    This file is part of GCC.
4 
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)
8    any later version.
9 
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.
14 
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.
18 
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/>.  */
23 
24 #ifndef _IMMINTRIN_H_INCLUDED
25 #error "Never use <avx512fintrin.h> directly; include <immintrin.h> instead."
26 #endif
27 
28 #ifndef _AVX512FINTRIN_H_INCLUDED
29 #define _AVX512FINTRIN_H_INCLUDED
30 
31 #ifndef __AVX512F__
32 #pragma GCC push_options
33 #pragma GCC target("avx512f")
34 #define __DISABLE_AVX512F__
35 #endif /* __AVX512F__ */
36 
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)));
48 
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__));
54 
55 /* Unaligned version of the same type.  */
56 typedef float __m512_u __attribute__ ((__vector_size__ (64), __may_alias__, __aligned__ (1)));
57 typedef long long __m512i_u __attribute__ ((__vector_size__ (64), __may_alias__, __aligned__ (1)));
58 typedef double __m512d_u __attribute__ ((__vector_size__ (64), __may_alias__, __aligned__ (1)));
59 
60 typedef unsigned char  __mmask8;
61 typedef unsigned short __mmask16;
62 
63 extern __inline __mmask16
64 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_int2mask(int __M)65 _mm512_int2mask (int __M)
66 {
67   return (__mmask16) __M;
68 }
69 
70 extern __inline int
71 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask2int(__mmask16 __M)72 _mm512_mask2int (__mmask16 __M)
73 {
74   return (int) __M;
75 }
76 
77 extern __inline __m512i
78 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_set_epi64(long long __A,long long __B,long long __C,long long __D,long long __E,long long __F,long long __G,long long __H)79 _mm512_set_epi64 (long long __A, long long __B, long long __C,
80 		  long long __D, long long __E, long long __F,
81 		  long long __G, long long __H)
82 {
83   return __extension__ (__m512i) (__v8di)
84 	 { __H, __G, __F, __E, __D, __C, __B, __A };
85 }
86 
87 /* Create the vector [A B C D E F G H I J K L M N O P].  */
88 extern __inline __m512i
89 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_set_epi32(int __A,int __B,int __C,int __D,int __E,int __F,int __G,int __H,int __I,int __J,int __K,int __L,int __M,int __N,int __O,int __P)90 _mm512_set_epi32 (int __A, int __B, int __C, int __D,
91 		  int __E, int __F, int __G, int __H,
92 		  int __I, int __J, int __K, int __L,
93 		  int __M, int __N, int __O, int __P)
94 {
95   return __extension__ (__m512i)(__v16si)
96 	 { __P, __O, __N, __M, __L, __K, __J, __I,
97 	   __H, __G, __F, __E, __D, __C, __B, __A };
98 }
99 
100 extern __inline __m512i
101 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm512_set_epi16(short __q31,short __q30,short __q29,short __q28,short __q27,short __q26,short __q25,short __q24,short __q23,short __q22,short __q21,short __q20,short __q19,short __q18,short __q17,short __q16,short __q15,short __q14,short __q13,short __q12,short __q11,short __q10,short __q09,short __q08,short __q07,short __q06,short __q05,short __q04,short __q03,short __q02,short __q01,short __q00)102 _mm512_set_epi16 (short __q31, short __q30, short __q29, short __q28,
103 		  short __q27, short __q26, short __q25, short __q24,
104 		  short __q23, short __q22, short __q21, short __q20,
105 		  short __q19, short __q18, short __q17, short __q16,
106 		  short __q15, short __q14, short __q13, short __q12,
107 		  short __q11, short __q10, short __q09, short __q08,
108 		  short __q07, short __q06, short __q05, short __q04,
109 		  short __q03, short __q02, short __q01, short __q00)
110 {
111   return __extension__ (__m512i)(__v32hi){
112     __q00, __q01, __q02, __q03, __q04, __q05, __q06, __q07,
113     __q08, __q09, __q10, __q11, __q12, __q13, __q14, __q15,
114     __q16, __q17, __q18, __q19, __q20, __q21, __q22, __q23,
115     __q24, __q25, __q26, __q27, __q28, __q29, __q30, __q31
116   };
117 }
118 
119 extern __inline __m512i
120 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm512_set_epi8(char __q63,char __q62,char __q61,char __q60,char __q59,char __q58,char __q57,char __q56,char __q55,char __q54,char __q53,char __q52,char __q51,char __q50,char __q49,char __q48,char __q47,char __q46,char __q45,char __q44,char __q43,char __q42,char __q41,char __q40,char __q39,char __q38,char __q37,char __q36,char __q35,char __q34,char __q33,char __q32,char __q31,char __q30,char __q29,char __q28,char __q27,char __q26,char __q25,char __q24,char __q23,char __q22,char __q21,char __q20,char __q19,char __q18,char __q17,char __q16,char __q15,char __q14,char __q13,char __q12,char __q11,char __q10,char __q09,char __q08,char __q07,char __q06,char __q05,char __q04,char __q03,char __q02,char __q01,char __q00)121 _mm512_set_epi8 (char __q63, char __q62, char __q61, char __q60,
122 		 char __q59, char __q58, char __q57, char __q56,
123 		 char __q55, char __q54, char __q53, char __q52,
124 		 char __q51, char __q50, char __q49, char __q48,
125 		 char __q47, char __q46, char __q45, char __q44,
126 		 char __q43, char __q42, char __q41, char __q40,
127 		 char __q39, char __q38, char __q37, char __q36,
128 		 char __q35, char __q34, char __q33, char __q32,
129 		 char __q31, char __q30, char __q29, char __q28,
130 		 char __q27, char __q26, char __q25, char __q24,
131 		 char __q23, char __q22, char __q21, char __q20,
132 		 char __q19, char __q18, char __q17, char __q16,
133 		 char __q15, char __q14, char __q13, char __q12,
134 		 char __q11, char __q10, char __q09, char __q08,
135 		 char __q07, char __q06, char __q05, char __q04,
136 		 char __q03, char __q02, char __q01, char __q00)
137 {
138   return __extension__ (__m512i)(__v64qi){
139     __q00, __q01, __q02, __q03, __q04, __q05, __q06, __q07,
140     __q08, __q09, __q10, __q11, __q12, __q13, __q14, __q15,
141     __q16, __q17, __q18, __q19, __q20, __q21, __q22, __q23,
142     __q24, __q25, __q26, __q27, __q28, __q29, __q30, __q31,
143     __q32, __q33, __q34, __q35, __q36, __q37, __q38, __q39,
144     __q40, __q41, __q42, __q43, __q44, __q45, __q46, __q47,
145     __q48, __q49, __q50, __q51, __q52, __q53, __q54, __q55,
146     __q56, __q57, __q58, __q59, __q60, __q61, __q62, __q63
147   };
148 }
149 
150 extern __inline __m512d
151 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_set_pd(double __A,double __B,double __C,double __D,double __E,double __F,double __G,double __H)152 _mm512_set_pd (double __A, double __B, double __C, double __D,
153 	       double __E, double __F, double __G, double __H)
154 {
155   return __extension__ (__m512d)
156 	 { __H, __G, __F, __E, __D, __C, __B, __A };
157 }
158 
159 extern __inline __m512
160 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_set_ps(float __A,float __B,float __C,float __D,float __E,float __F,float __G,float __H,float __I,float __J,float __K,float __L,float __M,float __N,float __O,float __P)161 _mm512_set_ps (float __A, float __B, float __C, float __D,
162 	       float __E, float __F, float __G, float __H,
163 	       float __I, float __J, float __K, float __L,
164 	       float __M, float __N, float __O, float __P)
165 {
166   return __extension__ (__m512)
167 	 { __P, __O, __N, __M, __L, __K, __J, __I,
168 	   __H, __G, __F, __E, __D, __C, __B, __A };
169 }
170 
171 #define _mm512_setr_epi64(e0,e1,e2,e3,e4,e5,e6,e7)			      \
172   _mm512_set_epi64(e7,e6,e5,e4,e3,e2,e1,e0)
173 
174 #define _mm512_setr_epi32(e0,e1,e2,e3,e4,e5,e6,e7,			      \
175 			  e8,e9,e10,e11,e12,e13,e14,e15)		      \
176   _mm512_set_epi32(e15,e14,e13,e12,e11,e10,e9,e8,e7,e6,e5,e4,e3,e2,e1,e0)
177 
178 #define _mm512_setr_pd(e0,e1,e2,e3,e4,e5,e6,e7)				      \
179   _mm512_set_pd(e7,e6,e5,e4,e3,e2,e1,e0)
180 
181 #define _mm512_setr_ps(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12,e13,e14,e15) \
182   _mm512_set_ps(e15,e14,e13,e12,e11,e10,e9,e8,e7,e6,e5,e4,e3,e2,e1,e0)
183 
184 extern __inline __m512
185 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_undefined_ps(void)186 _mm512_undefined_ps (void)
187 {
188   __m512 __Y = __Y;
189   return __Y;
190 }
191 
192 #define _mm512_undefined _mm512_undefined_ps
193 
194 extern __inline __m512d
195 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_undefined_pd(void)196 _mm512_undefined_pd (void)
197 {
198   __m512d __Y = __Y;
199   return __Y;
200 }
201 
202 extern __inline __m512i
203 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_undefined_epi32(void)204 _mm512_undefined_epi32 (void)
205 {
206   __m512i __Y = __Y;
207   return __Y;
208 }
209 
210 #define _mm512_undefined_si512 _mm512_undefined_epi32
211 
212 extern __inline __m512i
213 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_set1_epi8(char __A)214 _mm512_set1_epi8 (char __A)
215 {
216   return __extension__ (__m512i)(__v64qi)
217 	 { __A, __A, __A, __A, __A, __A, __A, __A,
218 	   __A, __A, __A, __A, __A, __A, __A, __A,
219 	   __A, __A, __A, __A, __A, __A, __A, __A,
220 	   __A, __A, __A, __A, __A, __A, __A, __A,
221 	   __A, __A, __A, __A, __A, __A, __A, __A,
222 	   __A, __A, __A, __A, __A, __A, __A, __A,
223 	   __A, __A, __A, __A, __A, __A, __A, __A,
224 	   __A, __A, __A, __A, __A, __A, __A, __A };
225 }
226 
227 extern __inline __m512i
228 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_set1_epi16(short __A)229 _mm512_set1_epi16 (short __A)
230 {
231   return __extension__ (__m512i)(__v32hi)
232 	 { __A, __A, __A, __A, __A, __A, __A, __A,
233 	   __A, __A, __A, __A, __A, __A, __A, __A,
234 	   __A, __A, __A, __A, __A, __A, __A, __A,
235 	   __A, __A, __A, __A, __A, __A, __A, __A };
236 }
237 
238 extern __inline __m512d
239 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_set1_pd(double __A)240 _mm512_set1_pd (double __A)
241 {
242   return (__m512d) __builtin_ia32_broadcastsd512 (__extension__
243 						  (__v2df) { __A, },
244 						  (__v8df)
245 						  _mm512_undefined_pd (),
246 						  (__mmask8) -1);
247 }
248 
249 extern __inline __m512
250 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_set1_ps(float __A)251 _mm512_set1_ps (float __A)
252 {
253   return (__m512) __builtin_ia32_broadcastss512 (__extension__
254 						 (__v4sf) { __A, },
255 						 (__v16sf)
256 						 _mm512_undefined_ps (),
257 						 (__mmask16) -1);
258 }
259 
260 /* Create the vector [A B C D A B C D A B C D A B C D].  */
261 extern __inline __m512i
262 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_set4_epi32(int __A,int __B,int __C,int __D)263 _mm512_set4_epi32 (int __A, int __B, int __C, int __D)
264 {
265   return __extension__ (__m512i)(__v16si)
266 	 { __D, __C, __B, __A, __D, __C, __B, __A,
267 	   __D, __C, __B, __A, __D, __C, __B, __A };
268 }
269 
270 extern __inline __m512i
271 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_set4_epi64(long long __A,long long __B,long long __C,long long __D)272 _mm512_set4_epi64 (long long __A, long long __B, long long __C,
273 		   long long __D)
274 {
275   return __extension__ (__m512i) (__v8di)
276 	 { __D, __C, __B, __A, __D, __C, __B, __A };
277 }
278 
279 extern __inline __m512d
280 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_set4_pd(double __A,double __B,double __C,double __D)281 _mm512_set4_pd (double __A, double __B, double __C, double __D)
282 {
283   return __extension__ (__m512d)
284 	 { __D, __C, __B, __A, __D, __C, __B, __A };
285 }
286 
287 extern __inline __m512
288 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_set4_ps(float __A,float __B,float __C,float __D)289 _mm512_set4_ps (float __A, float __B, float __C, float __D)
290 {
291   return __extension__ (__m512)
292 	 { __D, __C, __B, __A, __D, __C, __B, __A,
293 	   __D, __C, __B, __A, __D, __C, __B, __A };
294 }
295 
296 #define _mm512_setr4_epi64(e0,e1,e2,e3)					      \
297   _mm512_set4_epi64(e3,e2,e1,e0)
298 
299 #define _mm512_setr4_epi32(e0,e1,e2,e3)					      \
300   _mm512_set4_epi32(e3,e2,e1,e0)
301 
302 #define _mm512_setr4_pd(e0,e1,e2,e3)					      \
303   _mm512_set4_pd(e3,e2,e1,e0)
304 
305 #define _mm512_setr4_ps(e0,e1,e2,e3)					      \
306   _mm512_set4_ps(e3,e2,e1,e0)
307 
308 extern __inline __m512
309 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_setzero_ps(void)310 _mm512_setzero_ps (void)
311 {
312   return __extension__ (__m512){ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
313 				 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
314 }
315 
316 extern __inline __m512
317 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_setzero(void)318 _mm512_setzero (void)
319 {
320   return _mm512_setzero_ps ();
321 }
322 
323 extern __inline __m512d
324 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_setzero_pd(void)325 _mm512_setzero_pd (void)
326 {
327   return __extension__ (__m512d) { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
328 }
329 
330 extern __inline __m512i
331 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_setzero_epi32(void)332 _mm512_setzero_epi32 (void)
333 {
334   return __extension__ (__m512i)(__v8di){ 0, 0, 0, 0, 0, 0, 0, 0 };
335 }
336 
337 extern __inline __m512i
338 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_setzero_si512(void)339 _mm512_setzero_si512 (void)
340 {
341   return __extension__ (__m512i)(__v8di){ 0, 0, 0, 0, 0, 0, 0, 0 };
342 }
343 
344 extern __inline __m512d
345 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_mov_pd(__m512d __W,__mmask8 __U,__m512d __A)346 _mm512_mask_mov_pd (__m512d __W, __mmask8 __U, __m512d __A)
347 {
348   return (__m512d) __builtin_ia32_movapd512_mask ((__v8df) __A,
349 						  (__v8df) __W,
350 						  (__mmask8) __U);
351 }
352 
353 extern __inline __m512d
354 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_mov_pd(__mmask8 __U,__m512d __A)355 _mm512_maskz_mov_pd (__mmask8 __U, __m512d __A)
356 {
357   return (__m512d) __builtin_ia32_movapd512_mask ((__v8df) __A,
358 						  (__v8df)
359 						  _mm512_setzero_pd (),
360 						  (__mmask8) __U);
361 }
362 
363 extern __inline __m512
364 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_mov_ps(__m512 __W,__mmask16 __U,__m512 __A)365 _mm512_mask_mov_ps (__m512 __W, __mmask16 __U, __m512 __A)
366 {
367   return (__m512) __builtin_ia32_movaps512_mask ((__v16sf) __A,
368 						 (__v16sf) __W,
369 						 (__mmask16) __U);
370 }
371 
372 extern __inline __m512
373 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_mov_ps(__mmask16 __U,__m512 __A)374 _mm512_maskz_mov_ps (__mmask16 __U, __m512 __A)
375 {
376   return (__m512) __builtin_ia32_movaps512_mask ((__v16sf) __A,
377 						 (__v16sf)
378 						 _mm512_setzero_ps (),
379 						 (__mmask16) __U);
380 }
381 
382 extern __inline __m512d
383 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_load_pd(void const * __P)384 _mm512_load_pd (void const *__P)
385 {
386   return *(__m512d *) __P;
387 }
388 
389 extern __inline __m512d
390 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_load_pd(__m512d __W,__mmask8 __U,void const * __P)391 _mm512_mask_load_pd (__m512d __W, __mmask8 __U, void const *__P)
392 {
393   return (__m512d) __builtin_ia32_loadapd512_mask ((const __v8df *) __P,
394 						   (__v8df) __W,
395 						   (__mmask8) __U);
396 }
397 
398 extern __inline __m512d
399 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_load_pd(__mmask8 __U,void const * __P)400 _mm512_maskz_load_pd (__mmask8 __U, void const *__P)
401 {
402   return (__m512d) __builtin_ia32_loadapd512_mask ((const __v8df *) __P,
403 						   (__v8df)
404 						   _mm512_setzero_pd (),
405 						   (__mmask8) __U);
406 }
407 
408 extern __inline void
409 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_store_pd(void * __P,__m512d __A)410 _mm512_store_pd (void *__P, __m512d __A)
411 {
412   *(__m512d *) __P = __A;
413 }
414 
415 extern __inline void
416 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_store_pd(void * __P,__mmask8 __U,__m512d __A)417 _mm512_mask_store_pd (void *__P, __mmask8 __U, __m512d __A)
418 {
419   __builtin_ia32_storeapd512_mask ((__v8df *) __P, (__v8df) __A,
420 				   (__mmask8) __U);
421 }
422 
423 extern __inline __m512
424 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_load_ps(void const * __P)425 _mm512_load_ps (void const *__P)
426 {
427   return *(__m512 *) __P;
428 }
429 
430 extern __inline __m512
431 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_load_ps(__m512 __W,__mmask16 __U,void const * __P)432 _mm512_mask_load_ps (__m512 __W, __mmask16 __U, void const *__P)
433 {
434   return (__m512) __builtin_ia32_loadaps512_mask ((const __v16sf *) __P,
435 						  (__v16sf) __W,
436 						  (__mmask16) __U);
437 }
438 
439 extern __inline __m512
440 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_load_ps(__mmask16 __U,void const * __P)441 _mm512_maskz_load_ps (__mmask16 __U, void const *__P)
442 {
443   return (__m512) __builtin_ia32_loadaps512_mask ((const __v16sf *) __P,
444 						  (__v16sf)
445 						  _mm512_setzero_ps (),
446 						  (__mmask16) __U);
447 }
448 
449 extern __inline void
450 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_store_ps(void * __P,__m512 __A)451 _mm512_store_ps (void *__P, __m512 __A)
452 {
453   *(__m512 *) __P = __A;
454 }
455 
456 extern __inline void
457 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_store_ps(void * __P,__mmask16 __U,__m512 __A)458 _mm512_mask_store_ps (void *__P, __mmask16 __U, __m512 __A)
459 {
460   __builtin_ia32_storeaps512_mask ((__v16sf *) __P, (__v16sf) __A,
461 				   (__mmask16) __U);
462 }
463 
464 extern __inline __m512i
465 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_mov_epi64(__m512i __W,__mmask8 __U,__m512i __A)466 _mm512_mask_mov_epi64 (__m512i __W, __mmask8 __U, __m512i __A)
467 {
468   return (__m512i) __builtin_ia32_movdqa64_512_mask ((__v8di) __A,
469 						     (__v8di) __W,
470 						     (__mmask8) __U);
471 }
472 
473 extern __inline __m512i
474 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_mov_epi64(__mmask8 __U,__m512i __A)475 _mm512_maskz_mov_epi64 (__mmask8 __U, __m512i __A)
476 {
477   return (__m512i) __builtin_ia32_movdqa64_512_mask ((__v8di) __A,
478 						     (__v8di)
479 						     _mm512_setzero_si512 (),
480 						     (__mmask8) __U);
481 }
482 
483 extern __inline __m512i
484 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_load_epi64(void const * __P)485 _mm512_load_epi64 (void const *__P)
486 {
487   return *(__m512i *) __P;
488 }
489 
490 extern __inline __m512i
491 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_load_epi64(__m512i __W,__mmask8 __U,void const * __P)492 _mm512_mask_load_epi64 (__m512i __W, __mmask8 __U, void const *__P)
493 {
494   return (__m512i) __builtin_ia32_movdqa64load512_mask ((const __v8di *) __P,
495 							(__v8di) __W,
496 							(__mmask8) __U);
497 }
498 
499 extern __inline __m512i
500 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_load_epi64(__mmask8 __U,void const * __P)501 _mm512_maskz_load_epi64 (__mmask8 __U, void const *__P)
502 {
503   return (__m512i) __builtin_ia32_movdqa64load512_mask ((const __v8di *) __P,
504 							(__v8di)
505 							_mm512_setzero_si512 (),
506 							(__mmask8) __U);
507 }
508 
509 extern __inline void
510 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_store_epi64(void * __P,__m512i __A)511 _mm512_store_epi64 (void *__P, __m512i __A)
512 {
513   *(__m512i *) __P = __A;
514 }
515 
516 extern __inline void
517 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_store_epi64(void * __P,__mmask8 __U,__m512i __A)518 _mm512_mask_store_epi64 (void *__P, __mmask8 __U, __m512i __A)
519 {
520   __builtin_ia32_movdqa64store512_mask ((__v8di *) __P, (__v8di) __A,
521 					(__mmask8) __U);
522 }
523 
524 extern __inline __m512i
525 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_mov_epi32(__m512i __W,__mmask16 __U,__m512i __A)526 _mm512_mask_mov_epi32 (__m512i __W, __mmask16 __U, __m512i __A)
527 {
528   return (__m512i) __builtin_ia32_movdqa32_512_mask ((__v16si) __A,
529 						     (__v16si) __W,
530 						     (__mmask16) __U);
531 }
532 
533 extern __inline __m512i
534 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_mov_epi32(__mmask16 __U,__m512i __A)535 _mm512_maskz_mov_epi32 (__mmask16 __U, __m512i __A)
536 {
537   return (__m512i) __builtin_ia32_movdqa32_512_mask ((__v16si) __A,
538 						     (__v16si)
539 						     _mm512_setzero_si512 (),
540 						     (__mmask16) __U);
541 }
542 
543 extern __inline __m512i
544 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_load_si512(void const * __P)545 _mm512_load_si512 (void const *__P)
546 {
547   return *(__m512i *) __P;
548 }
549 
550 extern __inline __m512i
551 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_load_epi32(void const * __P)552 _mm512_load_epi32 (void const *__P)
553 {
554   return *(__m512i *) __P;
555 }
556 
557 extern __inline __m512i
558 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_load_epi32(__m512i __W,__mmask16 __U,void const * __P)559 _mm512_mask_load_epi32 (__m512i __W, __mmask16 __U, void const *__P)
560 {
561   return (__m512i) __builtin_ia32_movdqa32load512_mask ((const __v16si *) __P,
562 							(__v16si) __W,
563 							(__mmask16) __U);
564 }
565 
566 extern __inline __m512i
567 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_load_epi32(__mmask16 __U,void const * __P)568 _mm512_maskz_load_epi32 (__mmask16 __U, void const *__P)
569 {
570   return (__m512i) __builtin_ia32_movdqa32load512_mask ((const __v16si *) __P,
571 							(__v16si)
572 							_mm512_setzero_si512 (),
573 							(__mmask16) __U);
574 }
575 
576 extern __inline void
577 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_store_si512(void * __P,__m512i __A)578 _mm512_store_si512 (void *__P, __m512i __A)
579 {
580   *(__m512i *) __P = __A;
581 }
582 
583 extern __inline void
584 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_store_epi32(void * __P,__m512i __A)585 _mm512_store_epi32 (void *__P, __m512i __A)
586 {
587   *(__m512i *) __P = __A;
588 }
589 
590 extern __inline void
591 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_store_epi32(void * __P,__mmask16 __U,__m512i __A)592 _mm512_mask_store_epi32 (void *__P, __mmask16 __U, __m512i __A)
593 {
594   __builtin_ia32_movdqa32store512_mask ((__v16si *) __P, (__v16si) __A,
595 					(__mmask16) __U);
596 }
597 
598 extern __inline __m512i
599 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mullo_epi32(__m512i __A,__m512i __B)600 _mm512_mullo_epi32 (__m512i __A, __m512i __B)
601 {
602   return (__m512i) ((__v16su) __A * (__v16su) __B);
603 }
604 
605 extern __inline __m512i
606 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_mullo_epi32(__mmask16 __M,__m512i __A,__m512i __B)607 _mm512_maskz_mullo_epi32 (__mmask16 __M, __m512i __A, __m512i __B)
608 {
609   return (__m512i) __builtin_ia32_pmulld512_mask ((__v16si) __A,
610 						  (__v16si) __B,
611 						  (__v16si)
612 						  _mm512_setzero_si512 (),
613 						  __M);
614 }
615 
616 extern __inline __m512i
617 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_mullo_epi32(__m512i __W,__mmask16 __M,__m512i __A,__m512i __B)618 _mm512_mask_mullo_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
619 {
620   return (__m512i) __builtin_ia32_pmulld512_mask ((__v16si) __A,
621 						  (__v16si) __B,
622 						  (__v16si) __W, __M);
623 }
624 
625 extern __inline __m512i
626 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mullox_epi64(__m512i __A,__m512i __B)627 _mm512_mullox_epi64 (__m512i __A, __m512i __B)
628 {
629   return (__m512i) ((__v8du) __A * (__v8du) __B);
630 }
631 
632 extern __inline __m512i
633 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_mullox_epi64(__m512i __W,__mmask8 __M,__m512i __A,__m512i __B)634 _mm512_mask_mullox_epi64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
635 {
636   return _mm512_mask_mov_epi64 (__W, __M, _mm512_mullox_epi64 (__A, __B));
637 }
638 
639 extern __inline __m512i
640 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_sllv_epi32(__m512i __X,__m512i __Y)641 _mm512_sllv_epi32 (__m512i __X, __m512i __Y)
642 {
643   return (__m512i) __builtin_ia32_psllv16si_mask ((__v16si) __X,
644 						  (__v16si) __Y,
645 						  (__v16si)
646 						  _mm512_undefined_epi32 (),
647 						  (__mmask16) -1);
648 }
649 
650 extern __inline __m512i
651 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_sllv_epi32(__m512i __W,__mmask16 __U,__m512i __X,__m512i __Y)652 _mm512_mask_sllv_epi32 (__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y)
653 {
654   return (__m512i) __builtin_ia32_psllv16si_mask ((__v16si) __X,
655 						  (__v16si) __Y,
656 						  (__v16si) __W,
657 						  (__mmask16) __U);
658 }
659 
660 extern __inline __m512i
661 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_sllv_epi32(__mmask16 __U,__m512i __X,__m512i __Y)662 _mm512_maskz_sllv_epi32 (__mmask16 __U, __m512i __X, __m512i __Y)
663 {
664   return (__m512i) __builtin_ia32_psllv16si_mask ((__v16si) __X,
665 						  (__v16si) __Y,
666 						  (__v16si)
667 						  _mm512_setzero_si512 (),
668 						  (__mmask16) __U);
669 }
670 
671 extern __inline __m512i
672 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_srav_epi32(__m512i __X,__m512i __Y)673 _mm512_srav_epi32 (__m512i __X, __m512i __Y)
674 {
675   return (__m512i) __builtin_ia32_psrav16si_mask ((__v16si) __X,
676 						  (__v16si) __Y,
677 						  (__v16si)
678 						  _mm512_undefined_epi32 (),
679 						  (__mmask16) -1);
680 }
681 
682 extern __inline __m512i
683 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_srav_epi32(__m512i __W,__mmask16 __U,__m512i __X,__m512i __Y)684 _mm512_mask_srav_epi32 (__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y)
685 {
686   return (__m512i) __builtin_ia32_psrav16si_mask ((__v16si) __X,
687 						  (__v16si) __Y,
688 						  (__v16si) __W,
689 						  (__mmask16) __U);
690 }
691 
692 extern __inline __m512i
693 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_srav_epi32(__mmask16 __U,__m512i __X,__m512i __Y)694 _mm512_maskz_srav_epi32 (__mmask16 __U, __m512i __X, __m512i __Y)
695 {
696   return (__m512i) __builtin_ia32_psrav16si_mask ((__v16si) __X,
697 						  (__v16si) __Y,
698 						  (__v16si)
699 						  _mm512_setzero_si512 (),
700 						  (__mmask16) __U);
701 }
702 
703 extern __inline __m512i
704 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_srlv_epi32(__m512i __X,__m512i __Y)705 _mm512_srlv_epi32 (__m512i __X, __m512i __Y)
706 {
707   return (__m512i) __builtin_ia32_psrlv16si_mask ((__v16si) __X,
708 						  (__v16si) __Y,
709 						  (__v16si)
710 						  _mm512_undefined_epi32 (),
711 						  (__mmask16) -1);
712 }
713 
714 extern __inline __m512i
715 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_srlv_epi32(__m512i __W,__mmask16 __U,__m512i __X,__m512i __Y)716 _mm512_mask_srlv_epi32 (__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y)
717 {
718   return (__m512i) __builtin_ia32_psrlv16si_mask ((__v16si) __X,
719 						  (__v16si) __Y,
720 						  (__v16si) __W,
721 						  (__mmask16) __U);
722 }
723 
724 extern __inline __m512i
725 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_srlv_epi32(__mmask16 __U,__m512i __X,__m512i __Y)726 _mm512_maskz_srlv_epi32 (__mmask16 __U, __m512i __X, __m512i __Y)
727 {
728   return (__m512i) __builtin_ia32_psrlv16si_mask ((__v16si) __X,
729 						  (__v16si) __Y,
730 						  (__v16si)
731 						  _mm512_setzero_si512 (),
732 						  (__mmask16) __U);
733 }
734 
735 extern __inline __m512i
736 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_add_epi64(__m512i __A,__m512i __B)737 _mm512_add_epi64 (__m512i __A, __m512i __B)
738 {
739   return (__m512i) ((__v8du) __A + (__v8du) __B);
740 }
741 
742 extern __inline __m512i
743 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_add_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B)744 _mm512_mask_add_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
745 {
746   return (__m512i) __builtin_ia32_paddq512_mask ((__v8di) __A,
747 						 (__v8di) __B,
748 						 (__v8di) __W,
749 						 (__mmask8) __U);
750 }
751 
752 extern __inline __m512i
753 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_add_epi64(__mmask8 __U,__m512i __A,__m512i __B)754 _mm512_maskz_add_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
755 {
756   return (__m512i) __builtin_ia32_paddq512_mask ((__v8di) __A,
757 						 (__v8di) __B,
758 						 (__v8di)
759 						 _mm512_setzero_si512 (),
760 						 (__mmask8) __U);
761 }
762 
763 extern __inline __m512i
764 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_sub_epi64(__m512i __A,__m512i __B)765 _mm512_sub_epi64 (__m512i __A, __m512i __B)
766 {
767   return (__m512i) ((__v8du) __A - (__v8du) __B);
768 }
769 
770 extern __inline __m512i
771 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_sub_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B)772 _mm512_mask_sub_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
773 {
774   return (__m512i) __builtin_ia32_psubq512_mask ((__v8di) __A,
775 						 (__v8di) __B,
776 						 (__v8di) __W,
777 						 (__mmask8) __U);
778 }
779 
780 extern __inline __m512i
781 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_sub_epi64(__mmask8 __U,__m512i __A,__m512i __B)782 _mm512_maskz_sub_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
783 {
784   return (__m512i) __builtin_ia32_psubq512_mask ((__v8di) __A,
785 						 (__v8di) __B,
786 						 (__v8di)
787 						 _mm512_setzero_si512 (),
788 						 (__mmask8) __U);
789 }
790 
791 extern __inline __m512i
792 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_sllv_epi64(__m512i __X,__m512i __Y)793 _mm512_sllv_epi64 (__m512i __X, __m512i __Y)
794 {
795   return (__m512i) __builtin_ia32_psllv8di_mask ((__v8di) __X,
796 						 (__v8di) __Y,
797 						 (__v8di)
798 						 _mm512_undefined_pd (),
799 						 (__mmask8) -1);
800 }
801 
802 extern __inline __m512i
803 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_sllv_epi64(__m512i __W,__mmask8 __U,__m512i __X,__m512i __Y)804 _mm512_mask_sllv_epi64 (__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y)
805 {
806   return (__m512i) __builtin_ia32_psllv8di_mask ((__v8di) __X,
807 						 (__v8di) __Y,
808 						 (__v8di) __W,
809 						 (__mmask8) __U);
810 }
811 
812 extern __inline __m512i
813 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_sllv_epi64(__mmask8 __U,__m512i __X,__m512i __Y)814 _mm512_maskz_sllv_epi64 (__mmask8 __U, __m512i __X, __m512i __Y)
815 {
816   return (__m512i) __builtin_ia32_psllv8di_mask ((__v8di) __X,
817 						 (__v8di) __Y,
818 						 (__v8di)
819 						 _mm512_setzero_si512 (),
820 						 (__mmask8) __U);
821 }
822 
823 extern __inline __m512i
824 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_srav_epi64(__m512i __X,__m512i __Y)825 _mm512_srav_epi64 (__m512i __X, __m512i __Y)
826 {
827   return (__m512i) __builtin_ia32_psrav8di_mask ((__v8di) __X,
828 						 (__v8di) __Y,
829 						 (__v8di)
830 						 _mm512_undefined_epi32 (),
831 						 (__mmask8) -1);
832 }
833 
834 extern __inline __m512i
835 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_srav_epi64(__m512i __W,__mmask8 __U,__m512i __X,__m512i __Y)836 _mm512_mask_srav_epi64 (__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y)
837 {
838   return (__m512i) __builtin_ia32_psrav8di_mask ((__v8di) __X,
839 						 (__v8di) __Y,
840 						 (__v8di) __W,
841 						 (__mmask8) __U);
842 }
843 
844 extern __inline __m512i
845 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_srav_epi64(__mmask8 __U,__m512i __X,__m512i __Y)846 _mm512_maskz_srav_epi64 (__mmask8 __U, __m512i __X, __m512i __Y)
847 {
848   return (__m512i) __builtin_ia32_psrav8di_mask ((__v8di) __X,
849 						 (__v8di) __Y,
850 						 (__v8di)
851 						 _mm512_setzero_si512 (),
852 						 (__mmask8) __U);
853 }
854 
855 extern __inline __m512i
856 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_srlv_epi64(__m512i __X,__m512i __Y)857 _mm512_srlv_epi64 (__m512i __X, __m512i __Y)
858 {
859   return (__m512i) __builtin_ia32_psrlv8di_mask ((__v8di) __X,
860 						 (__v8di) __Y,
861 						 (__v8di)
862 						 _mm512_undefined_epi32 (),
863 						 (__mmask8) -1);
864 }
865 
866 extern __inline __m512i
867 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_srlv_epi64(__m512i __W,__mmask8 __U,__m512i __X,__m512i __Y)868 _mm512_mask_srlv_epi64 (__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y)
869 {
870   return (__m512i) __builtin_ia32_psrlv8di_mask ((__v8di) __X,
871 						 (__v8di) __Y,
872 						 (__v8di) __W,
873 						 (__mmask8) __U);
874 }
875 
876 extern __inline __m512i
877 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_srlv_epi64(__mmask8 __U,__m512i __X,__m512i __Y)878 _mm512_maskz_srlv_epi64 (__mmask8 __U, __m512i __X, __m512i __Y)
879 {
880   return (__m512i) __builtin_ia32_psrlv8di_mask ((__v8di) __X,
881 						 (__v8di) __Y,
882 						 (__v8di)
883 						 _mm512_setzero_si512 (),
884 						 (__mmask8) __U);
885 }
886 
887 extern __inline __m512i
888 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_add_epi32(__m512i __A,__m512i __B)889 _mm512_add_epi32 (__m512i __A, __m512i __B)
890 {
891   return (__m512i) ((__v16su) __A + (__v16su) __B);
892 }
893 
894 extern __inline __m512i
895 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_add_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)896 _mm512_mask_add_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
897 {
898   return (__m512i) __builtin_ia32_paddd512_mask ((__v16si) __A,
899 						 (__v16si) __B,
900 						 (__v16si) __W,
901 						 (__mmask16) __U);
902 }
903 
904 extern __inline __m512i
905 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_add_epi32(__mmask16 __U,__m512i __A,__m512i __B)906 _mm512_maskz_add_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
907 {
908   return (__m512i) __builtin_ia32_paddd512_mask ((__v16si) __A,
909 						 (__v16si) __B,
910 						 (__v16si)
911 						 _mm512_setzero_si512 (),
912 						 (__mmask16) __U);
913 }
914 
915 extern __inline __m512i
916 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mul_epi32(__m512i __X,__m512i __Y)917 _mm512_mul_epi32 (__m512i __X, __m512i __Y)
918 {
919   return (__m512i) __builtin_ia32_pmuldq512_mask ((__v16si) __X,
920 						  (__v16si) __Y,
921 						  (__v8di)
922 						  _mm512_undefined_epi32 (),
923 						  (__mmask8) -1);
924 }
925 
926 extern __inline __m512i
927 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_mul_epi32(__m512i __W,__mmask8 __M,__m512i __X,__m512i __Y)928 _mm512_mask_mul_epi32 (__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y)
929 {
930   return (__m512i) __builtin_ia32_pmuldq512_mask ((__v16si) __X,
931 						  (__v16si) __Y,
932 						  (__v8di) __W, __M);
933 }
934 
935 extern __inline __m512i
936 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_mul_epi32(__mmask8 __M,__m512i __X,__m512i __Y)937 _mm512_maskz_mul_epi32 (__mmask8 __M, __m512i __X, __m512i __Y)
938 {
939   return (__m512i) __builtin_ia32_pmuldq512_mask ((__v16si) __X,
940 						  (__v16si) __Y,
941 						  (__v8di)
942 						  _mm512_setzero_si512 (),
943 						  __M);
944 }
945 
946 extern __inline __m512i
947 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_sub_epi32(__m512i __A,__m512i __B)948 _mm512_sub_epi32 (__m512i __A, __m512i __B)
949 {
950   return (__m512i) ((__v16su) __A - (__v16su) __B);
951 }
952 
953 extern __inline __m512i
954 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_sub_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)955 _mm512_mask_sub_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
956 {
957   return (__m512i) __builtin_ia32_psubd512_mask ((__v16si) __A,
958 						 (__v16si) __B,
959 						 (__v16si) __W,
960 						 (__mmask16) __U);
961 }
962 
963 extern __inline __m512i
964 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_sub_epi32(__mmask16 __U,__m512i __A,__m512i __B)965 _mm512_maskz_sub_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
966 {
967   return (__m512i) __builtin_ia32_psubd512_mask ((__v16si) __A,
968 						 (__v16si) __B,
969 						 (__v16si)
970 						 _mm512_setzero_si512 (),
971 						 (__mmask16) __U);
972 }
973 
974 extern __inline __m512i
975 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mul_epu32(__m512i __X,__m512i __Y)976 _mm512_mul_epu32 (__m512i __X, __m512i __Y)
977 {
978   return (__m512i) __builtin_ia32_pmuludq512_mask ((__v16si) __X,
979 						   (__v16si) __Y,
980 						   (__v8di)
981 						   _mm512_undefined_epi32 (),
982 						   (__mmask8) -1);
983 }
984 
985 extern __inline __m512i
986 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_mul_epu32(__m512i __W,__mmask8 __M,__m512i __X,__m512i __Y)987 _mm512_mask_mul_epu32 (__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y)
988 {
989   return (__m512i) __builtin_ia32_pmuludq512_mask ((__v16si) __X,
990 						   (__v16si) __Y,
991 						   (__v8di) __W, __M);
992 }
993 
994 extern __inline __m512i
995 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_mul_epu32(__mmask8 __M,__m512i __X,__m512i __Y)996 _mm512_maskz_mul_epu32 (__mmask8 __M, __m512i __X, __m512i __Y)
997 {
998   return (__m512i) __builtin_ia32_pmuludq512_mask ((__v16si) __X,
999 						   (__v16si) __Y,
1000 						   (__v8di)
1001 						   _mm512_setzero_si512 (),
1002 						   __M);
1003 }
1004 
1005 #ifdef __OPTIMIZE__
1006 extern __inline __m512i
1007 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_slli_epi64(__m512i __A,unsigned int __B)1008 _mm512_slli_epi64 (__m512i __A, unsigned int __B)
1009 {
1010   return (__m512i) __builtin_ia32_psllqi512_mask ((__v8di) __A, __B,
1011 						  (__v8di)
1012 						  _mm512_undefined_epi32 (),
1013 						  (__mmask8) -1);
1014 }
1015 
1016 extern __inline __m512i
1017 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_slli_epi64(__m512i __W,__mmask8 __U,__m512i __A,unsigned int __B)1018 _mm512_mask_slli_epi64 (__m512i __W, __mmask8 __U, __m512i __A,
1019 			unsigned int __B)
1020 {
1021   return (__m512i) __builtin_ia32_psllqi512_mask ((__v8di) __A, __B,
1022 						  (__v8di) __W,
1023 						  (__mmask8) __U);
1024 }
1025 
1026 extern __inline __m512i
1027 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_slli_epi64(__mmask8 __U,__m512i __A,unsigned int __B)1028 _mm512_maskz_slli_epi64 (__mmask8 __U, __m512i __A, unsigned int __B)
1029 {
1030   return (__m512i) __builtin_ia32_psllqi512_mask ((__v8di) __A, __B,
1031 						  (__v8di)
1032 						  _mm512_setzero_si512 (),
1033 						  (__mmask8) __U);
1034 }
1035 #else
1036 #define _mm512_slli_epi64(X, C)						   \
1037   ((__m512i) __builtin_ia32_psllqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1038     (__v8di)(__m512i)_mm512_undefined_epi32 (),\
1039     (__mmask8)-1))
1040 
1041 #define _mm512_mask_slli_epi64(W, U, X, C)				   \
1042   ((__m512i) __builtin_ia32_psllqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1043     (__v8di)(__m512i)(W),\
1044     (__mmask8)(U)))
1045 
1046 #define _mm512_maskz_slli_epi64(U, X, C)                                   \
1047   ((__m512i) __builtin_ia32_psllqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1048     (__v8di)(__m512i)_mm512_setzero_si512 (),\
1049     (__mmask8)(U)))
1050 #endif
1051 
1052 extern __inline __m512i
1053 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_sll_epi64(__m512i __A,__m128i __B)1054 _mm512_sll_epi64 (__m512i __A, __m128i __B)
1055 {
1056   return (__m512i) __builtin_ia32_psllq512_mask ((__v8di) __A,
1057 						 (__v2di) __B,
1058 						 (__v8di)
1059 						 _mm512_undefined_epi32 (),
1060 						 (__mmask8) -1);
1061 }
1062 
1063 extern __inline __m512i
1064 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_sll_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m128i __B)1065 _mm512_mask_sll_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m128i __B)
1066 {
1067   return (__m512i) __builtin_ia32_psllq512_mask ((__v8di) __A,
1068 						 (__v2di) __B,
1069 						 (__v8di) __W,
1070 						 (__mmask8) __U);
1071 }
1072 
1073 extern __inline __m512i
1074 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_sll_epi64(__mmask8 __U,__m512i __A,__m128i __B)1075 _mm512_maskz_sll_epi64 (__mmask8 __U, __m512i __A, __m128i __B)
1076 {
1077   return (__m512i) __builtin_ia32_psllq512_mask ((__v8di) __A,
1078 						 (__v2di) __B,
1079 						 (__v8di)
1080 						 _mm512_setzero_si512 (),
1081 						 (__mmask8) __U);
1082 }
1083 
1084 #ifdef __OPTIMIZE__
1085 extern __inline __m512i
1086 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_srli_epi64(__m512i __A,unsigned int __B)1087 _mm512_srli_epi64 (__m512i __A, unsigned int __B)
1088 {
1089   return (__m512i) __builtin_ia32_psrlqi512_mask ((__v8di) __A, __B,
1090 						  (__v8di)
1091 						  _mm512_undefined_epi32 (),
1092 						  (__mmask8) -1);
1093 }
1094 
1095 extern __inline __m512i
1096 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_srli_epi64(__m512i __W,__mmask8 __U,__m512i __A,unsigned int __B)1097 _mm512_mask_srli_epi64 (__m512i __W, __mmask8 __U,
1098 			__m512i __A, unsigned int __B)
1099 {
1100   return (__m512i) __builtin_ia32_psrlqi512_mask ((__v8di) __A, __B,
1101 						  (__v8di) __W,
1102 						  (__mmask8) __U);
1103 }
1104 
1105 extern __inline __m512i
1106 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_srli_epi64(__mmask8 __U,__m512i __A,unsigned int __B)1107 _mm512_maskz_srli_epi64 (__mmask8 __U, __m512i __A, unsigned int __B)
1108 {
1109   return (__m512i) __builtin_ia32_psrlqi512_mask ((__v8di) __A, __B,
1110 						  (__v8di)
1111 						  _mm512_setzero_si512 (),
1112 						  (__mmask8) __U);
1113 }
1114 #else
1115 #define _mm512_srli_epi64(X, C)						   \
1116   ((__m512i) __builtin_ia32_psrlqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1117     (__v8di)(__m512i)_mm512_undefined_epi32 (),\
1118     (__mmask8)-1))
1119 
1120 #define _mm512_mask_srli_epi64(W, U, X, C)				   \
1121   ((__m512i) __builtin_ia32_psrlqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1122     (__v8di)(__m512i)(W),\
1123     (__mmask8)(U)))
1124 
1125 #define _mm512_maskz_srli_epi64(U, X, C)                                   \
1126   ((__m512i) __builtin_ia32_psrlqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1127     (__v8di)(__m512i)_mm512_setzero_si512 (),\
1128     (__mmask8)(U)))
1129 #endif
1130 
1131 extern __inline __m512i
1132 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_srl_epi64(__m512i __A,__m128i __B)1133 _mm512_srl_epi64 (__m512i __A, __m128i __B)
1134 {
1135   return (__m512i) __builtin_ia32_psrlq512_mask ((__v8di) __A,
1136 						 (__v2di) __B,
1137 						 (__v8di)
1138 						 _mm512_undefined_epi32 (),
1139 						 (__mmask8) -1);
1140 }
1141 
1142 extern __inline __m512i
1143 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_srl_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m128i __B)1144 _mm512_mask_srl_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m128i __B)
1145 {
1146   return (__m512i) __builtin_ia32_psrlq512_mask ((__v8di) __A,
1147 						 (__v2di) __B,
1148 						 (__v8di) __W,
1149 						 (__mmask8) __U);
1150 }
1151 
1152 extern __inline __m512i
1153 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_srl_epi64(__mmask8 __U,__m512i __A,__m128i __B)1154 _mm512_maskz_srl_epi64 (__mmask8 __U, __m512i __A, __m128i __B)
1155 {
1156   return (__m512i) __builtin_ia32_psrlq512_mask ((__v8di) __A,
1157 						 (__v2di) __B,
1158 						 (__v8di)
1159 						 _mm512_setzero_si512 (),
1160 						 (__mmask8) __U);
1161 }
1162 
1163 #ifdef __OPTIMIZE__
1164 extern __inline __m512i
1165 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_srai_epi64(__m512i __A,unsigned int __B)1166 _mm512_srai_epi64 (__m512i __A, unsigned int __B)
1167 {
1168   return (__m512i) __builtin_ia32_psraqi512_mask ((__v8di) __A, __B,
1169 						  (__v8di)
1170 						  _mm512_undefined_epi32 (),
1171 						  (__mmask8) -1);
1172 }
1173 
1174 extern __inline __m512i
1175 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_srai_epi64(__m512i __W,__mmask8 __U,__m512i __A,unsigned int __B)1176 _mm512_mask_srai_epi64 (__m512i __W, __mmask8 __U, __m512i __A,
1177 			unsigned int __B)
1178 {
1179   return (__m512i) __builtin_ia32_psraqi512_mask ((__v8di) __A, __B,
1180 						  (__v8di) __W,
1181 						  (__mmask8) __U);
1182 }
1183 
1184 extern __inline __m512i
1185 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_srai_epi64(__mmask8 __U,__m512i __A,unsigned int __B)1186 _mm512_maskz_srai_epi64 (__mmask8 __U, __m512i __A, unsigned int __B)
1187 {
1188   return (__m512i) __builtin_ia32_psraqi512_mask ((__v8di) __A, __B,
1189 						  (__v8di)
1190 						  _mm512_setzero_si512 (),
1191 						  (__mmask8) __U);
1192 }
1193 #else
1194 #define _mm512_srai_epi64(X, C)						   \
1195   ((__m512i) __builtin_ia32_psraqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1196     (__v8di)(__m512i)_mm512_undefined_epi32 (),\
1197     (__mmask8)-1))
1198 
1199 #define _mm512_mask_srai_epi64(W, U, X, C)				   \
1200   ((__m512i) __builtin_ia32_psraqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1201     (__v8di)(__m512i)(W),\
1202     (__mmask8)(U)))
1203 
1204 #define _mm512_maskz_srai_epi64(U, X, C)				   \
1205   ((__m512i) __builtin_ia32_psraqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1206     (__v8di)(__m512i)_mm512_setzero_si512 (),\
1207     (__mmask8)(U)))
1208 #endif
1209 
1210 extern __inline __m512i
1211 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_sra_epi64(__m512i __A,__m128i __B)1212 _mm512_sra_epi64 (__m512i __A, __m128i __B)
1213 {
1214   return (__m512i) __builtin_ia32_psraq512_mask ((__v8di) __A,
1215 						 (__v2di) __B,
1216 						 (__v8di)
1217 						 _mm512_undefined_epi32 (),
1218 						 (__mmask8) -1);
1219 }
1220 
1221 extern __inline __m512i
1222 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_sra_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m128i __B)1223 _mm512_mask_sra_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m128i __B)
1224 {
1225   return (__m512i) __builtin_ia32_psraq512_mask ((__v8di) __A,
1226 						 (__v2di) __B,
1227 						 (__v8di) __W,
1228 						 (__mmask8) __U);
1229 }
1230 
1231 extern __inline __m512i
1232 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_sra_epi64(__mmask8 __U,__m512i __A,__m128i __B)1233 _mm512_maskz_sra_epi64 (__mmask8 __U, __m512i __A, __m128i __B)
1234 {
1235   return (__m512i) __builtin_ia32_psraq512_mask ((__v8di) __A,
1236 						 (__v2di) __B,
1237 						 (__v8di)
1238 						 _mm512_setzero_si512 (),
1239 						 (__mmask8) __U);
1240 }
1241 
1242 #ifdef __OPTIMIZE__
1243 extern __inline __m512i
1244 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_slli_epi32(__m512i __A,unsigned int __B)1245 _mm512_slli_epi32 (__m512i __A, unsigned int __B)
1246 {
1247   return (__m512i) __builtin_ia32_pslldi512_mask ((__v16si) __A, __B,
1248 						  (__v16si)
1249 						  _mm512_undefined_epi32 (),
1250 						  (__mmask16) -1);
1251 }
1252 
1253 extern __inline __m512i
1254 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_slli_epi32(__m512i __W,__mmask16 __U,__m512i __A,unsigned int __B)1255 _mm512_mask_slli_epi32 (__m512i __W, __mmask16 __U, __m512i __A,
1256 			unsigned int __B)
1257 {
1258   return (__m512i) __builtin_ia32_pslldi512_mask ((__v16si) __A, __B,
1259 						  (__v16si) __W,
1260 						  (__mmask16) __U);
1261 }
1262 
1263 extern __inline __m512i
1264 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_slli_epi32(__mmask16 __U,__m512i __A,unsigned int __B)1265 _mm512_maskz_slli_epi32 (__mmask16 __U, __m512i __A, unsigned int __B)
1266 {
1267   return (__m512i) __builtin_ia32_pslldi512_mask ((__v16si) __A, __B,
1268 						  (__v16si)
1269 						  _mm512_setzero_si512 (),
1270 						  (__mmask16) __U);
1271 }
1272 #else
1273 #define _mm512_slli_epi32(X, C)						    \
1274   ((__m512i) __builtin_ia32_pslldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1275     (__v16si)(__m512i)_mm512_undefined_epi32 (),\
1276     (__mmask16)-1))
1277 
1278 #define _mm512_mask_slli_epi32(W, U, X, C)                                  \
1279   ((__m512i) __builtin_ia32_pslldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1280     (__v16si)(__m512i)(W),\
1281     (__mmask16)(U)))
1282 
1283 #define _mm512_maskz_slli_epi32(U, X, C)                                    \
1284   ((__m512i) __builtin_ia32_pslldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1285     (__v16si)(__m512i)_mm512_setzero_si512 (),\
1286     (__mmask16)(U)))
1287 #endif
1288 
1289 extern __inline __m512i
1290 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_sll_epi32(__m512i __A,__m128i __B)1291 _mm512_sll_epi32 (__m512i __A, __m128i __B)
1292 {
1293   return (__m512i) __builtin_ia32_pslld512_mask ((__v16si) __A,
1294 						 (__v4si) __B,
1295 						 (__v16si)
1296 						 _mm512_undefined_epi32 (),
1297 						 (__mmask16) -1);
1298 }
1299 
1300 extern __inline __m512i
1301 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_sll_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m128i __B)1302 _mm512_mask_sll_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m128i __B)
1303 {
1304   return (__m512i) __builtin_ia32_pslld512_mask ((__v16si) __A,
1305 						 (__v4si) __B,
1306 						 (__v16si) __W,
1307 						 (__mmask16) __U);
1308 }
1309 
1310 extern __inline __m512i
1311 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_sll_epi32(__mmask16 __U,__m512i __A,__m128i __B)1312 _mm512_maskz_sll_epi32 (__mmask16 __U, __m512i __A, __m128i __B)
1313 {
1314   return (__m512i) __builtin_ia32_pslld512_mask ((__v16si) __A,
1315 						 (__v4si) __B,
1316 						 (__v16si)
1317 						 _mm512_setzero_si512 (),
1318 						 (__mmask16) __U);
1319 }
1320 
1321 #ifdef __OPTIMIZE__
1322 extern __inline __m512i
1323 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_srli_epi32(__m512i __A,unsigned int __B)1324 _mm512_srli_epi32 (__m512i __A, unsigned int __B)
1325 {
1326   return (__m512i) __builtin_ia32_psrldi512_mask ((__v16si) __A, __B,
1327 						  (__v16si)
1328 						  _mm512_undefined_epi32 (),
1329 						  (__mmask16) -1);
1330 }
1331 
1332 extern __inline __m512i
1333 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_srli_epi32(__m512i __W,__mmask16 __U,__m512i __A,unsigned int __B)1334 _mm512_mask_srli_epi32 (__m512i __W, __mmask16 __U,
1335 			__m512i __A, unsigned int __B)
1336 {
1337   return (__m512i) __builtin_ia32_psrldi512_mask ((__v16si) __A, __B,
1338 						  (__v16si) __W,
1339 						  (__mmask16) __U);
1340 }
1341 
1342 extern __inline __m512i
1343 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_srli_epi32(__mmask16 __U,__m512i __A,unsigned int __B)1344 _mm512_maskz_srli_epi32 (__mmask16 __U, __m512i __A, unsigned int __B)
1345 {
1346   return (__m512i) __builtin_ia32_psrldi512_mask ((__v16si) __A, __B,
1347 						  (__v16si)
1348 						  _mm512_setzero_si512 (),
1349 						  (__mmask16) __U);
1350 }
1351 #else
1352 #define _mm512_srli_epi32(X, C)						    \
1353   ((__m512i) __builtin_ia32_psrldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1354     (__v16si)(__m512i)_mm512_undefined_epi32 (),\
1355     (__mmask16)-1))
1356 
1357 #define _mm512_mask_srli_epi32(W, U, X, C)                                  \
1358   ((__m512i) __builtin_ia32_psrldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1359     (__v16si)(__m512i)(W),\
1360     (__mmask16)(U)))
1361 
1362 #define _mm512_maskz_srli_epi32(U, X, C)				    \
1363   ((__m512i) __builtin_ia32_psrldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1364     (__v16si)(__m512i)_mm512_setzero_si512 (),\
1365     (__mmask16)(U)))
1366 #endif
1367 
1368 extern __inline __m512i
1369 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_srl_epi32(__m512i __A,__m128i __B)1370 _mm512_srl_epi32 (__m512i __A, __m128i __B)
1371 {
1372   return (__m512i) __builtin_ia32_psrld512_mask ((__v16si) __A,
1373 						 (__v4si) __B,
1374 						 (__v16si)
1375 						 _mm512_undefined_epi32 (),
1376 						 (__mmask16) -1);
1377 }
1378 
1379 extern __inline __m512i
1380 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_srl_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m128i __B)1381 _mm512_mask_srl_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m128i __B)
1382 {
1383   return (__m512i) __builtin_ia32_psrld512_mask ((__v16si) __A,
1384 						 (__v4si) __B,
1385 						 (__v16si) __W,
1386 						 (__mmask16) __U);
1387 }
1388 
1389 extern __inline __m512i
1390 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_srl_epi32(__mmask16 __U,__m512i __A,__m128i __B)1391 _mm512_maskz_srl_epi32 (__mmask16 __U, __m512i __A, __m128i __B)
1392 {
1393   return (__m512i) __builtin_ia32_psrld512_mask ((__v16si) __A,
1394 						 (__v4si) __B,
1395 						 (__v16si)
1396 						 _mm512_setzero_si512 (),
1397 						 (__mmask16) __U);
1398 }
1399 
1400 #ifdef __OPTIMIZE__
1401 extern __inline __m512i
1402 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_srai_epi32(__m512i __A,unsigned int __B)1403 _mm512_srai_epi32 (__m512i __A, unsigned int __B)
1404 {
1405   return (__m512i) __builtin_ia32_psradi512_mask ((__v16si) __A, __B,
1406 						  (__v16si)
1407 						  _mm512_undefined_epi32 (),
1408 						  (__mmask16) -1);
1409 }
1410 
1411 extern __inline __m512i
1412 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_srai_epi32(__m512i __W,__mmask16 __U,__m512i __A,unsigned int __B)1413 _mm512_mask_srai_epi32 (__m512i __W, __mmask16 __U, __m512i __A,
1414 			unsigned int __B)
1415 {
1416   return (__m512i) __builtin_ia32_psradi512_mask ((__v16si) __A, __B,
1417 						  (__v16si) __W,
1418 						  (__mmask16) __U);
1419 }
1420 
1421 extern __inline __m512i
1422 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_srai_epi32(__mmask16 __U,__m512i __A,unsigned int __B)1423 _mm512_maskz_srai_epi32 (__mmask16 __U, __m512i __A, unsigned int __B)
1424 {
1425   return (__m512i) __builtin_ia32_psradi512_mask ((__v16si) __A, __B,
1426 						  (__v16si)
1427 						  _mm512_setzero_si512 (),
1428 						  (__mmask16) __U);
1429 }
1430 #else
1431 #define _mm512_srai_epi32(X, C)						    \
1432   ((__m512i) __builtin_ia32_psradi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1433     (__v16si)(__m512i)_mm512_undefined_epi32 (),\
1434     (__mmask16)-1))
1435 
1436 #define _mm512_mask_srai_epi32(W, U, X, C)				    \
1437   ((__m512i) __builtin_ia32_psradi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1438     (__v16si)(__m512i)(W),\
1439     (__mmask16)(U)))
1440 
1441 #define _mm512_maskz_srai_epi32(U, X, C)				    \
1442   ((__m512i) __builtin_ia32_psradi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1443     (__v16si)(__m512i)_mm512_setzero_si512 (),\
1444     (__mmask16)(U)))
1445 #endif
1446 
1447 extern __inline __m512i
1448 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_sra_epi32(__m512i __A,__m128i __B)1449 _mm512_sra_epi32 (__m512i __A, __m128i __B)
1450 {
1451   return (__m512i) __builtin_ia32_psrad512_mask ((__v16si) __A,
1452 						 (__v4si) __B,
1453 						 (__v16si)
1454 						 _mm512_undefined_epi32 (),
1455 						 (__mmask16) -1);
1456 }
1457 
1458 extern __inline __m512i
1459 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_sra_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m128i __B)1460 _mm512_mask_sra_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m128i __B)
1461 {
1462   return (__m512i) __builtin_ia32_psrad512_mask ((__v16si) __A,
1463 						 (__v4si) __B,
1464 						 (__v16si) __W,
1465 						 (__mmask16) __U);
1466 }
1467 
1468 extern __inline __m512i
1469 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_sra_epi32(__mmask16 __U,__m512i __A,__m128i __B)1470 _mm512_maskz_sra_epi32 (__mmask16 __U, __m512i __A, __m128i __B)
1471 {
1472   return (__m512i) __builtin_ia32_psrad512_mask ((__v16si) __A,
1473 						 (__v4si) __B,
1474 						 (__v16si)
1475 						 _mm512_setzero_si512 (),
1476 						 (__mmask16) __U);
1477 }
1478 
1479 #ifdef __OPTIMIZE__
1480 extern __inline __m128d
1481 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_add_round_sd(__m128d __A,__m128d __B,const int __R)1482 _mm_add_round_sd (__m128d __A, __m128d __B, const int __R)
1483 {
1484   return (__m128d) __builtin_ia32_addsd_round ((__v2df) __A,
1485 					       (__v2df) __B,
1486 					       __R);
1487 }
1488 
1489 extern __inline __m128d
1490 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_add_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B,const int __R)1491 _mm_mask_add_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
1492 			  __m128d __B, const int __R)
1493 {
1494   return (__m128d) __builtin_ia32_addsd_mask_round ((__v2df) __A,
1495 						 (__v2df) __B,
1496 						 (__v2df) __W,
1497 						 (__mmask8) __U, __R);
1498 }
1499 
1500 extern __inline __m128d
1501 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_add_round_sd(__mmask8 __U,__m128d __A,__m128d __B,const int __R)1502 _mm_maskz_add_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
1503 			   const int __R)
1504 {
1505   return (__m128d) __builtin_ia32_addsd_mask_round ((__v2df) __A,
1506 						 (__v2df) __B,
1507 						 (__v2df)
1508 						 _mm_setzero_pd (),
1509 						 (__mmask8) __U, __R);
1510 }
1511 
1512 extern __inline __m128
1513 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_add_round_ss(__m128 __A,__m128 __B,const int __R)1514 _mm_add_round_ss (__m128 __A, __m128 __B, const int __R)
1515 {
1516   return (__m128) __builtin_ia32_addss_round ((__v4sf) __A,
1517 					      (__v4sf) __B,
1518 					      __R);
1519 }
1520 
1521 extern __inline __m128
1522 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_add_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B,const int __R)1523 _mm_mask_add_round_ss (__m128 __W, __mmask8 __U, __m128 __A,
1524 			  __m128 __B, const int __R)
1525 {
1526   return (__m128) __builtin_ia32_addss_mask_round ((__v4sf) __A,
1527 						 (__v4sf) __B,
1528 						 (__v4sf) __W,
1529 						 (__mmask8) __U, __R);
1530 }
1531 
1532 extern __inline __m128
1533 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_add_round_ss(__mmask8 __U,__m128 __A,__m128 __B,const int __R)1534 _mm_maskz_add_round_ss (__mmask8 __U, __m128 __A, __m128 __B,
1535 			   const int __R)
1536 {
1537   return (__m128) __builtin_ia32_addss_mask_round ((__v4sf) __A,
1538 						 (__v4sf) __B,
1539 						 (__v4sf)
1540 						 _mm_setzero_ps (),
1541 						 (__mmask8) __U, __R);
1542 }
1543 
1544 extern __inline __m128d
1545 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_sub_round_sd(__m128d __A,__m128d __B,const int __R)1546 _mm_sub_round_sd (__m128d __A, __m128d __B, const int __R)
1547 {
1548   return (__m128d) __builtin_ia32_subsd_round ((__v2df) __A,
1549 					       (__v2df) __B,
1550 					       __R);
1551 }
1552 
1553 extern __inline __m128d
1554 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_sub_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B,const int __R)1555 _mm_mask_sub_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
1556 			  __m128d __B, const int __R)
1557 {
1558   return (__m128d) __builtin_ia32_subsd_mask_round ((__v2df) __A,
1559 						 (__v2df) __B,
1560 						 (__v2df) __W,
1561 						 (__mmask8) __U, __R);
1562 }
1563 
1564 extern __inline __m128d
1565 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_sub_round_sd(__mmask8 __U,__m128d __A,__m128d __B,const int __R)1566 _mm_maskz_sub_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
1567 			   const int __R)
1568 {
1569   return (__m128d) __builtin_ia32_subsd_mask_round ((__v2df) __A,
1570 						 (__v2df) __B,
1571 						 (__v2df)
1572 						 _mm_setzero_pd (),
1573 						 (__mmask8) __U, __R);
1574 }
1575 
1576 extern __inline __m128
1577 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_sub_round_ss(__m128 __A,__m128 __B,const int __R)1578 _mm_sub_round_ss (__m128 __A, __m128 __B, const int __R)
1579 {
1580   return (__m128) __builtin_ia32_subss_round ((__v4sf) __A,
1581 					      (__v4sf) __B,
1582 					      __R);
1583 }
1584 
1585 extern __inline __m128
1586 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_sub_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B,const int __R)1587 _mm_mask_sub_round_ss (__m128 __W, __mmask8 __U, __m128 __A,
1588 			  __m128 __B, const int __R)
1589 {
1590   return (__m128) __builtin_ia32_subss_mask_round ((__v4sf) __A,
1591 						 (__v4sf) __B,
1592 						 (__v4sf) __W,
1593 						 (__mmask8) __U, __R);
1594 }
1595 
1596 extern __inline __m128
1597 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_sub_round_ss(__mmask8 __U,__m128 __A,__m128 __B,const int __R)1598 _mm_maskz_sub_round_ss (__mmask8 __U, __m128 __A, __m128 __B,
1599 			   const int __R)
1600 {
1601   return (__m128) __builtin_ia32_subss_mask_round ((__v4sf) __A,
1602 						 (__v4sf) __B,
1603 						 (__v4sf)
1604 						 _mm_setzero_ps (),
1605 						 (__mmask8) __U, __R);
1606 }
1607 
1608 #else
1609 #define _mm_add_round_sd(A, B, C)            \
1610     (__m128d)__builtin_ia32_addsd_round(A, B, C)
1611 
1612 #define _mm_mask_add_round_sd(W, U, A, B, C) \
1613     (__m128d)__builtin_ia32_addsd_mask_round(A, B, W, U, C)
1614 
1615 #define _mm_maskz_add_round_sd(U, A, B, C)   \
1616     (__m128d)__builtin_ia32_addsd_mask_round(A, B, (__v2df)_mm_setzero_pd(), U, C)
1617 
1618 #define _mm_add_round_ss(A, B, C)            \
1619     (__m128)__builtin_ia32_addss_round(A, B, C)
1620 
1621 #define _mm_mask_add_round_ss(W, U, A, B, C) \
1622     (__m128)__builtin_ia32_addss_mask_round(A, B, W, U, C)
1623 
1624 #define _mm_maskz_add_round_ss(U, A, B, C)   \
1625     (__m128)__builtin_ia32_addss_mask_round(A, B, (__v4sf)_mm_setzero_ps(), U, C)
1626 
1627 #define _mm_sub_round_sd(A, B, C)            \
1628     (__m128d)__builtin_ia32_subsd_round(A, B, C)
1629 
1630 #define _mm_mask_sub_round_sd(W, U, A, B, C) \
1631     (__m128d)__builtin_ia32_subsd_mask_round(A, B, W, U, C)
1632 
1633 #define _mm_maskz_sub_round_sd(U, A, B, C)   \
1634     (__m128d)__builtin_ia32_subsd_mask_round(A, B, (__v2df)_mm_setzero_pd(), U, C)
1635 
1636 #define _mm_sub_round_ss(A, B, C)            \
1637     (__m128)__builtin_ia32_subss_round(A, B, C)
1638 
1639 #define _mm_mask_sub_round_ss(W, U, A, B, C) \
1640     (__m128)__builtin_ia32_subss_mask_round(A, B, W, U, C)
1641 
1642 #define _mm_maskz_sub_round_ss(U, A, B, C)   \
1643     (__m128)__builtin_ia32_subss_mask_round(A, B, (__v4sf)_mm_setzero_ps(), U, C)
1644 
1645 #endif
1646 
1647 #ifdef __OPTIMIZE__
1648 extern __inline __m512i
1649 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_ternarylogic_epi64(__m512i __A,__m512i __B,__m512i __C,const int __imm)1650 _mm512_ternarylogic_epi64 (__m512i __A, __m512i __B, __m512i __C,
1651 			   const int __imm)
1652 {
1653   return (__m512i) __builtin_ia32_pternlogq512_mask ((__v8di) __A,
1654 						     (__v8di) __B,
1655 						     (__v8di) __C, __imm,
1656 						     (__mmask8) -1);
1657 }
1658 
1659 extern __inline __m512i
1660 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_ternarylogic_epi64(__m512i __A,__mmask8 __U,__m512i __B,__m512i __C,const int __imm)1661 _mm512_mask_ternarylogic_epi64 (__m512i __A, __mmask8 __U, __m512i __B,
1662 				__m512i __C, const int __imm)
1663 {
1664   return (__m512i) __builtin_ia32_pternlogq512_mask ((__v8di) __A,
1665 						     (__v8di) __B,
1666 						     (__v8di) __C, __imm,
1667 						     (__mmask8) __U);
1668 }
1669 
1670 extern __inline __m512i
1671 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_ternarylogic_epi64(__mmask8 __U,__m512i __A,__m512i __B,__m512i __C,const int __imm)1672 _mm512_maskz_ternarylogic_epi64 (__mmask8 __U, __m512i __A, __m512i __B,
1673 				 __m512i __C, const int __imm)
1674 {
1675   return (__m512i) __builtin_ia32_pternlogq512_maskz ((__v8di) __A,
1676 						      (__v8di) __B,
1677 						      (__v8di) __C,
1678 						      __imm, (__mmask8) __U);
1679 }
1680 
1681 extern __inline __m512i
1682 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_ternarylogic_epi32(__m512i __A,__m512i __B,__m512i __C,const int __imm)1683 _mm512_ternarylogic_epi32 (__m512i __A, __m512i __B, __m512i __C,
1684 			   const int __imm)
1685 {
1686   return (__m512i) __builtin_ia32_pternlogd512_mask ((__v16si) __A,
1687 						     (__v16si) __B,
1688 						     (__v16si) __C,
1689 						     __imm, (__mmask16) -1);
1690 }
1691 
1692 extern __inline __m512i
1693 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_ternarylogic_epi32(__m512i __A,__mmask16 __U,__m512i __B,__m512i __C,const int __imm)1694 _mm512_mask_ternarylogic_epi32 (__m512i __A, __mmask16 __U, __m512i __B,
1695 				__m512i __C, const int __imm)
1696 {
1697   return (__m512i) __builtin_ia32_pternlogd512_mask ((__v16si) __A,
1698 						     (__v16si) __B,
1699 						     (__v16si) __C,
1700 						     __imm, (__mmask16) __U);
1701 }
1702 
1703 extern __inline __m512i
1704 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_ternarylogic_epi32(__mmask16 __U,__m512i __A,__m512i __B,__m512i __C,const int __imm)1705 _mm512_maskz_ternarylogic_epi32 (__mmask16 __U, __m512i __A, __m512i __B,
1706 				 __m512i __C, const int __imm)
1707 {
1708   return (__m512i) __builtin_ia32_pternlogd512_maskz ((__v16si) __A,
1709 						      (__v16si) __B,
1710 						      (__v16si) __C,
1711 						      __imm, (__mmask16) __U);
1712 }
1713 #else
1714 #define _mm512_ternarylogic_epi64(A, B, C, I)				\
1715   ((__m512i) __builtin_ia32_pternlogq512_mask ((__v8di)(__m512i)(A),	\
1716     (__v8di)(__m512i)(B), (__v8di)(__m512i)(C), (int)(I), (__mmask8)-1))
1717 #define _mm512_mask_ternarylogic_epi64(A, U, B, C, I)			\
1718   ((__m512i) __builtin_ia32_pternlogq512_mask ((__v8di)(__m512i)(A),	\
1719     (__v8di)(__m512i)(B), (__v8di)(__m512i)(C), (int)(I), (__mmask8)(U)))
1720 #define _mm512_maskz_ternarylogic_epi64(U, A, B, C, I)			\
1721   ((__m512i) __builtin_ia32_pternlogq512_maskz ((__v8di)(__m512i)(A),	\
1722     (__v8di)(__m512i)(B), (__v8di)(__m512i)(C), (int)(I), (__mmask8)(U)))
1723 #define _mm512_ternarylogic_epi32(A, B, C, I)				\
1724   ((__m512i) __builtin_ia32_pternlogd512_mask ((__v16si)(__m512i)(A),	\
1725     (__v16si)(__m512i)(B), (__v16si)(__m512i)(C), (int)(I),		\
1726     (__mmask16)-1))
1727 #define _mm512_mask_ternarylogic_epi32(A, U, B, C, I)			\
1728   ((__m512i) __builtin_ia32_pternlogd512_mask ((__v16si)(__m512i)(A),	\
1729     (__v16si)(__m512i)(B), (__v16si)(__m512i)(C), (int)(I),		\
1730     (__mmask16)(U)))
1731 #define _mm512_maskz_ternarylogic_epi32(U, A, B, C, I)			\
1732   ((__m512i) __builtin_ia32_pternlogd512_maskz ((__v16si)(__m512i)(A),	\
1733     (__v16si)(__m512i)(B), (__v16si)(__m512i)(C), (int)(I),		\
1734     (__mmask16)(U)))
1735 #endif
1736 
1737 extern __inline __m512d
1738 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_rcp14_pd(__m512d __A)1739 _mm512_rcp14_pd (__m512d __A)
1740 {
1741   return (__m512d) __builtin_ia32_rcp14pd512_mask ((__v8df) __A,
1742 						   (__v8df)
1743 						   _mm512_undefined_pd (),
1744 						   (__mmask8) -1);
1745 }
1746 
1747 extern __inline __m512d
1748 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_rcp14_pd(__m512d __W,__mmask8 __U,__m512d __A)1749 _mm512_mask_rcp14_pd (__m512d __W, __mmask8 __U, __m512d __A)
1750 {
1751   return (__m512d) __builtin_ia32_rcp14pd512_mask ((__v8df) __A,
1752 						   (__v8df) __W,
1753 						   (__mmask8) __U);
1754 }
1755 
1756 extern __inline __m512d
1757 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_rcp14_pd(__mmask8 __U,__m512d __A)1758 _mm512_maskz_rcp14_pd (__mmask8 __U, __m512d __A)
1759 {
1760   return (__m512d) __builtin_ia32_rcp14pd512_mask ((__v8df) __A,
1761 						   (__v8df)
1762 						   _mm512_setzero_pd (),
1763 						   (__mmask8) __U);
1764 }
1765 
1766 extern __inline __m512
1767 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_rcp14_ps(__m512 __A)1768 _mm512_rcp14_ps (__m512 __A)
1769 {
1770   return (__m512) __builtin_ia32_rcp14ps512_mask ((__v16sf) __A,
1771 						  (__v16sf)
1772 						  _mm512_undefined_ps (),
1773 						  (__mmask16) -1);
1774 }
1775 
1776 extern __inline __m512
1777 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_rcp14_ps(__m512 __W,__mmask16 __U,__m512 __A)1778 _mm512_mask_rcp14_ps (__m512 __W, __mmask16 __U, __m512 __A)
1779 {
1780   return (__m512) __builtin_ia32_rcp14ps512_mask ((__v16sf) __A,
1781 						  (__v16sf) __W,
1782 						  (__mmask16) __U);
1783 }
1784 
1785 extern __inline __m512
1786 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_rcp14_ps(__mmask16 __U,__m512 __A)1787 _mm512_maskz_rcp14_ps (__mmask16 __U, __m512 __A)
1788 {
1789   return (__m512) __builtin_ia32_rcp14ps512_mask ((__v16sf) __A,
1790 						  (__v16sf)
1791 						  _mm512_setzero_ps (),
1792 						  (__mmask16) __U);
1793 }
1794 
1795 extern __inline __m128d
1796 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_rcp14_sd(__m128d __A,__m128d __B)1797 _mm_rcp14_sd (__m128d __A, __m128d __B)
1798 {
1799   return (__m128d) __builtin_ia32_rcp14sd ((__v2df) __B,
1800 					   (__v2df) __A);
1801 }
1802 
1803 extern __inline __m128d
1804 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_rcp14_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)1805 _mm_mask_rcp14_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
1806 {
1807   return (__m128d) __builtin_ia32_rcp14sd_mask ((__v2df) __B,
1808 						(__v2df) __A,
1809 						(__v2df) __W,
1810 						(__mmask8) __U);
1811 }
1812 
1813 extern __inline __m128d
1814 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_rcp14_sd(__mmask8 __U,__m128d __A,__m128d __B)1815 _mm_maskz_rcp14_sd (__mmask8 __U, __m128d __A, __m128d __B)
1816 {
1817   return (__m128d) __builtin_ia32_rcp14sd_mask ((__v2df) __B,
1818 						(__v2df) __A,
1819 						(__v2df) _mm_setzero_ps (),
1820 						(__mmask8) __U);
1821 }
1822 
1823 extern __inline __m128
1824 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_rcp14_ss(__m128 __A,__m128 __B)1825 _mm_rcp14_ss (__m128 __A, __m128 __B)
1826 {
1827   return (__m128) __builtin_ia32_rcp14ss ((__v4sf) __B,
1828 					  (__v4sf) __A);
1829 }
1830 
1831 extern __inline __m128
1832 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_rcp14_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)1833 _mm_mask_rcp14_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
1834 {
1835   return (__m128) __builtin_ia32_rcp14ss_mask ((__v4sf) __B,
1836 						(__v4sf) __A,
1837 						(__v4sf) __W,
1838 						(__mmask8) __U);
1839 }
1840 
1841 extern __inline __m128
1842 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_rcp14_ss(__mmask8 __U,__m128 __A,__m128 __B)1843 _mm_maskz_rcp14_ss (__mmask8 __U, __m128 __A, __m128 __B)
1844 {
1845   return (__m128) __builtin_ia32_rcp14ss_mask ((__v4sf) __B,
1846 						(__v4sf) __A,
1847 						(__v4sf) _mm_setzero_ps (),
1848 						(__mmask8) __U);
1849 }
1850 
1851 extern __inline __m512d
1852 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_rsqrt14_pd(__m512d __A)1853 _mm512_rsqrt14_pd (__m512d __A)
1854 {
1855   return (__m512d) __builtin_ia32_rsqrt14pd512_mask ((__v8df) __A,
1856 						     (__v8df)
1857 						     _mm512_undefined_pd (),
1858 						     (__mmask8) -1);
1859 }
1860 
1861 extern __inline __m512d
1862 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_rsqrt14_pd(__m512d __W,__mmask8 __U,__m512d __A)1863 _mm512_mask_rsqrt14_pd (__m512d __W, __mmask8 __U, __m512d __A)
1864 {
1865   return (__m512d) __builtin_ia32_rsqrt14pd512_mask ((__v8df) __A,
1866 						     (__v8df) __W,
1867 						     (__mmask8) __U);
1868 }
1869 
1870 extern __inline __m512d
1871 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_rsqrt14_pd(__mmask8 __U,__m512d __A)1872 _mm512_maskz_rsqrt14_pd (__mmask8 __U, __m512d __A)
1873 {
1874   return (__m512d) __builtin_ia32_rsqrt14pd512_mask ((__v8df) __A,
1875 						     (__v8df)
1876 						     _mm512_setzero_pd (),
1877 						     (__mmask8) __U);
1878 }
1879 
1880 extern __inline __m512
1881 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_rsqrt14_ps(__m512 __A)1882 _mm512_rsqrt14_ps (__m512 __A)
1883 {
1884   return (__m512) __builtin_ia32_rsqrt14ps512_mask ((__v16sf) __A,
1885 						    (__v16sf)
1886 						    _mm512_undefined_ps (),
1887 						    (__mmask16) -1);
1888 }
1889 
1890 extern __inline __m512
1891 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_rsqrt14_ps(__m512 __W,__mmask16 __U,__m512 __A)1892 _mm512_mask_rsqrt14_ps (__m512 __W, __mmask16 __U, __m512 __A)
1893 {
1894   return (__m512) __builtin_ia32_rsqrt14ps512_mask ((__v16sf) __A,
1895 						    (__v16sf) __W,
1896 						    (__mmask16) __U);
1897 }
1898 
1899 extern __inline __m512
1900 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_rsqrt14_ps(__mmask16 __U,__m512 __A)1901 _mm512_maskz_rsqrt14_ps (__mmask16 __U, __m512 __A)
1902 {
1903   return (__m512) __builtin_ia32_rsqrt14ps512_mask ((__v16sf) __A,
1904 						    (__v16sf)
1905 						    _mm512_setzero_ps (),
1906 						    (__mmask16) __U);
1907 }
1908 
1909 extern __inline __m128d
1910 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_rsqrt14_sd(__m128d __A,__m128d __B)1911 _mm_rsqrt14_sd (__m128d __A, __m128d __B)
1912 {
1913   return (__m128d) __builtin_ia32_rsqrt14sd ((__v2df) __B,
1914 					     (__v2df) __A);
1915 }
1916 
1917 extern __inline __m128d
1918 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_rsqrt14_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)1919 _mm_mask_rsqrt14_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
1920 {
1921   return (__m128d) __builtin_ia32_rsqrt14sd_mask ((__v2df) __B,
1922 						 (__v2df) __A,
1923 						 (__v2df) __W,
1924 						 (__mmask8) __U);
1925 }
1926 
1927 extern __inline __m128d
1928 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_rsqrt14_sd(__mmask8 __U,__m128d __A,__m128d __B)1929 _mm_maskz_rsqrt14_sd (__mmask8 __U, __m128d __A, __m128d __B)
1930 {
1931   return (__m128d) __builtin_ia32_rsqrt14sd_mask ((__v2df) __B,
1932 						 (__v2df) __A,
1933 						 (__v2df) _mm_setzero_pd (),
1934 						 (__mmask8) __U);
1935 }
1936 
1937 extern __inline __m128
1938 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_rsqrt14_ss(__m128 __A,__m128 __B)1939 _mm_rsqrt14_ss (__m128 __A, __m128 __B)
1940 {
1941   return (__m128) __builtin_ia32_rsqrt14ss ((__v4sf) __B,
1942 					    (__v4sf) __A);
1943 }
1944 
1945 extern __inline __m128
1946 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_rsqrt14_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)1947 _mm_mask_rsqrt14_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
1948 {
1949   return (__m128) __builtin_ia32_rsqrt14ss_mask ((__v4sf) __B,
1950 						 (__v4sf) __A,
1951 						 (__v4sf) __W,
1952 						 (__mmask8) __U);
1953 }
1954 
1955 extern __inline __m128
1956 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_rsqrt14_ss(__mmask8 __U,__m128 __A,__m128 __B)1957 _mm_maskz_rsqrt14_ss (__mmask8 __U, __m128 __A, __m128 __B)
1958 {
1959   return (__m128) __builtin_ia32_rsqrt14ss_mask ((__v4sf) __B,
1960 						(__v4sf) __A,
1961 						(__v4sf) _mm_setzero_ps (),
1962 						(__mmask8) __U);
1963 }
1964 
1965 #ifdef __OPTIMIZE__
1966 extern __inline __m512d
1967 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_sqrt_round_pd(__m512d __A,const int __R)1968 _mm512_sqrt_round_pd (__m512d __A, const int __R)
1969 {
1970   return (__m512d) __builtin_ia32_sqrtpd512_mask ((__v8df) __A,
1971 						  (__v8df)
1972 						  _mm512_undefined_pd (),
1973 						  (__mmask8) -1, __R);
1974 }
1975 
1976 extern __inline __m512d
1977 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_sqrt_round_pd(__m512d __W,__mmask8 __U,__m512d __A,const int __R)1978 _mm512_mask_sqrt_round_pd (__m512d __W, __mmask8 __U, __m512d __A,
1979 			   const int __R)
1980 {
1981   return (__m512d) __builtin_ia32_sqrtpd512_mask ((__v8df) __A,
1982 						  (__v8df) __W,
1983 						  (__mmask8) __U, __R);
1984 }
1985 
1986 extern __inline __m512d
1987 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_sqrt_round_pd(__mmask8 __U,__m512d __A,const int __R)1988 _mm512_maskz_sqrt_round_pd (__mmask8 __U, __m512d __A, const int __R)
1989 {
1990   return (__m512d) __builtin_ia32_sqrtpd512_mask ((__v8df) __A,
1991 						  (__v8df)
1992 						  _mm512_setzero_pd (),
1993 						  (__mmask8) __U, __R);
1994 }
1995 
1996 extern __inline __m512
1997 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_sqrt_round_ps(__m512 __A,const int __R)1998 _mm512_sqrt_round_ps (__m512 __A, const int __R)
1999 {
2000   return (__m512) __builtin_ia32_sqrtps512_mask ((__v16sf) __A,
2001 						 (__v16sf)
2002 						 _mm512_undefined_ps (),
2003 						 (__mmask16) -1, __R);
2004 }
2005 
2006 extern __inline __m512
2007 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_sqrt_round_ps(__m512 __W,__mmask16 __U,__m512 __A,const int __R)2008 _mm512_mask_sqrt_round_ps (__m512 __W, __mmask16 __U, __m512 __A, const int __R)
2009 {
2010   return (__m512) __builtin_ia32_sqrtps512_mask ((__v16sf) __A,
2011 						 (__v16sf) __W,
2012 						 (__mmask16) __U, __R);
2013 }
2014 
2015 extern __inline __m512
2016 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_sqrt_round_ps(__mmask16 __U,__m512 __A,const int __R)2017 _mm512_maskz_sqrt_round_ps (__mmask16 __U, __m512 __A, const int __R)
2018 {
2019   return (__m512) __builtin_ia32_sqrtps512_mask ((__v16sf) __A,
2020 						 (__v16sf)
2021 						 _mm512_setzero_ps (),
2022 						 (__mmask16) __U, __R);
2023 }
2024 
2025 extern __inline __m128d
2026 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_sqrt_round_sd(__m128d __A,__m128d __B,const int __R)2027 _mm_sqrt_round_sd (__m128d __A, __m128d __B, const int __R)
2028 {
2029   return (__m128d) __builtin_ia32_sqrtsd_mask_round ((__v2df) __B,
2030 						     (__v2df) __A,
2031 						     (__v2df)
2032 						     _mm_setzero_pd (),
2033 						     (__mmask8) -1, __R);
2034 }
2035 
2036 extern __inline __m128d
2037 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_sqrt_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B,const int __R)2038 _mm_mask_sqrt_round_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B,
2039 			const int __R)
2040 {
2041   return (__m128d) __builtin_ia32_sqrtsd_mask_round ((__v2df) __B,
2042 						     (__v2df) __A,
2043 						     (__v2df) __W,
2044 						     (__mmask8) __U, __R);
2045 }
2046 
2047 extern __inline __m128d
2048 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_sqrt_round_sd(__mmask8 __U,__m128d __A,__m128d __B,const int __R)2049 _mm_maskz_sqrt_round_sd (__mmask8 __U, __m128d __A, __m128d __B, const int __R)
2050 {
2051   return (__m128d) __builtin_ia32_sqrtsd_mask_round ((__v2df) __B,
2052 						     (__v2df) __A,
2053 						     (__v2df)
2054 						     _mm_setzero_pd (),
2055 						     (__mmask8) __U, __R);
2056 }
2057 
2058 extern __inline __m128
2059 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_sqrt_round_ss(__m128 __A,__m128 __B,const int __R)2060 _mm_sqrt_round_ss (__m128 __A, __m128 __B, const int __R)
2061 {
2062   return (__m128) __builtin_ia32_sqrtss_mask_round ((__v4sf) __B,
2063 						    (__v4sf) __A,
2064 						    (__v4sf)
2065 						    _mm_setzero_ps (),
2066 						    (__mmask8) -1, __R);
2067 }
2068 
2069 extern __inline __m128
2070 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_sqrt_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B,const int __R)2071 _mm_mask_sqrt_round_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B,
2072 			const int __R)
2073 {
2074   return (__m128) __builtin_ia32_sqrtss_mask_round ((__v4sf) __B,
2075 						    (__v4sf) __A,
2076 						    (__v4sf) __W,
2077 						    (__mmask8) __U, __R);
2078 }
2079 
2080 extern __inline __m128
2081 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_sqrt_round_ss(__mmask8 __U,__m128 __A,__m128 __B,const int __R)2082 _mm_maskz_sqrt_round_ss (__mmask8 __U, __m128 __A, __m128 __B, const int __R)
2083 {
2084   return (__m128) __builtin_ia32_sqrtss_mask_round ((__v4sf) __B,
2085 						    (__v4sf) __A,
2086 						    (__v4sf)
2087 						    _mm_setzero_ps (),
2088 						    (__mmask8) __U, __R);
2089 }
2090 #else
2091 #define _mm512_sqrt_round_pd(A, C)            \
2092     (__m512d)__builtin_ia32_sqrtpd512_mask(A, (__v8df)_mm512_undefined_pd(), -1, C)
2093 
2094 #define _mm512_mask_sqrt_round_pd(W, U, A, C) \
2095     (__m512d)__builtin_ia32_sqrtpd512_mask(A, W, U, C)
2096 
2097 #define _mm512_maskz_sqrt_round_pd(U, A, C)   \
2098     (__m512d)__builtin_ia32_sqrtpd512_mask(A, (__v8df)_mm512_setzero_pd(), U, C)
2099 
2100 #define _mm512_sqrt_round_ps(A, C)            \
2101     (__m512)__builtin_ia32_sqrtps512_mask(A, (__v16sf)_mm512_undefined_ps(), -1, C)
2102 
2103 #define _mm512_mask_sqrt_round_ps(W, U, A, C) \
2104     (__m512)__builtin_ia32_sqrtps512_mask(A, W, U, C)
2105 
2106 #define _mm512_maskz_sqrt_round_ps(U, A, C)   \
2107     (__m512)__builtin_ia32_sqrtps512_mask(A, (__v16sf)_mm512_setzero_ps(), U, C)
2108 
2109 #define _mm_sqrt_round_sd(A, B, C)	      \
2110     (__m128d)__builtin_ia32_sqrtsd_mask_round (B, A, \
2111 	(__v2df) _mm_setzero_pd (), -1, C)
2112 
2113 #define _mm_mask_sqrt_round_sd(W, U, A, B, C) \
2114     (__m128d)__builtin_ia32_sqrtsd_mask_round (B, A, W, U, C)
2115 
2116 #define _mm_maskz_sqrt_round_sd(U, A, B, C)   \
2117     (__m128d)__builtin_ia32_sqrtsd_mask_round (B, A, \
2118 	(__v2df) _mm_setzero_pd (), U, C)
2119 
2120 #define _mm_sqrt_round_ss(A, B, C)	      \
2121     (__m128)__builtin_ia32_sqrtss_mask_round (B, A, \
2122 	(__v4sf) _mm_setzero_ps (), -1, C)
2123 
2124 #define _mm_mask_sqrt_round_ss(W, U, A, B, C) \
2125     (__m128)__builtin_ia32_sqrtss_mask_round (B, A, W, U, C)
2126 
2127 #define _mm_maskz_sqrt_round_ss(U, A, B, C)   \
2128     (__m128)__builtin_ia32_sqrtss_mask_round (B, A, \
2129 	(__v4sf) _mm_setzero_ps (), U, C)
2130 #endif
2131 
2132 extern __inline __m512i
2133 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtepi8_epi32(__m128i __A)2134 _mm512_cvtepi8_epi32 (__m128i __A)
2135 {
2136   return (__m512i) __builtin_ia32_pmovsxbd512_mask ((__v16qi) __A,
2137 						    (__v16si)
2138 						    _mm512_undefined_epi32 (),
2139 						    (__mmask16) -1);
2140 }
2141 
2142 extern __inline __m512i
2143 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtepi8_epi32(__m512i __W,__mmask16 __U,__m128i __A)2144 _mm512_mask_cvtepi8_epi32 (__m512i __W, __mmask16 __U, __m128i __A)
2145 {
2146   return (__m512i) __builtin_ia32_pmovsxbd512_mask ((__v16qi) __A,
2147 						    (__v16si) __W,
2148 						    (__mmask16) __U);
2149 }
2150 
2151 extern __inline __m512i
2152 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtepi8_epi32(__mmask16 __U,__m128i __A)2153 _mm512_maskz_cvtepi8_epi32 (__mmask16 __U, __m128i __A)
2154 {
2155   return (__m512i) __builtin_ia32_pmovsxbd512_mask ((__v16qi) __A,
2156 						    (__v16si)
2157 						    _mm512_setzero_si512 (),
2158 						    (__mmask16) __U);
2159 }
2160 
2161 extern __inline __m512i
2162 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtepi8_epi64(__m128i __A)2163 _mm512_cvtepi8_epi64 (__m128i __A)
2164 {
2165   return (__m512i) __builtin_ia32_pmovsxbq512_mask ((__v16qi) __A,
2166 						    (__v8di)
2167 						    _mm512_undefined_epi32 (),
2168 						    (__mmask8) -1);
2169 }
2170 
2171 extern __inline __m512i
2172 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtepi8_epi64(__m512i __W,__mmask8 __U,__m128i __A)2173 _mm512_mask_cvtepi8_epi64 (__m512i __W, __mmask8 __U, __m128i __A)
2174 {
2175   return (__m512i) __builtin_ia32_pmovsxbq512_mask ((__v16qi) __A,
2176 						    (__v8di) __W,
2177 						    (__mmask8) __U);
2178 }
2179 
2180 extern __inline __m512i
2181 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtepi8_epi64(__mmask8 __U,__m128i __A)2182 _mm512_maskz_cvtepi8_epi64 (__mmask8 __U, __m128i __A)
2183 {
2184   return (__m512i) __builtin_ia32_pmovsxbq512_mask ((__v16qi) __A,
2185 						    (__v8di)
2186 						    _mm512_setzero_si512 (),
2187 						    (__mmask8) __U);
2188 }
2189 
2190 extern __inline __m512i
2191 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtepi16_epi32(__m256i __A)2192 _mm512_cvtepi16_epi32 (__m256i __A)
2193 {
2194   return (__m512i) __builtin_ia32_pmovsxwd512_mask ((__v16hi) __A,
2195 						    (__v16si)
2196 						    _mm512_undefined_epi32 (),
2197 						    (__mmask16) -1);
2198 }
2199 
2200 extern __inline __m512i
2201 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtepi16_epi32(__m512i __W,__mmask16 __U,__m256i __A)2202 _mm512_mask_cvtepi16_epi32 (__m512i __W, __mmask16 __U, __m256i __A)
2203 {
2204   return (__m512i) __builtin_ia32_pmovsxwd512_mask ((__v16hi) __A,
2205 						    (__v16si) __W,
2206 						    (__mmask16) __U);
2207 }
2208 
2209 extern __inline __m512i
2210 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtepi16_epi32(__mmask16 __U,__m256i __A)2211 _mm512_maskz_cvtepi16_epi32 (__mmask16 __U, __m256i __A)
2212 {
2213   return (__m512i) __builtin_ia32_pmovsxwd512_mask ((__v16hi) __A,
2214 						    (__v16si)
2215 						    _mm512_setzero_si512 (),
2216 						    (__mmask16) __U);
2217 }
2218 
2219 extern __inline __m512i
2220 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtepi16_epi64(__m128i __A)2221 _mm512_cvtepi16_epi64 (__m128i __A)
2222 {
2223   return (__m512i) __builtin_ia32_pmovsxwq512_mask ((__v8hi) __A,
2224 						    (__v8di)
2225 						    _mm512_undefined_epi32 (),
2226 						    (__mmask8) -1);
2227 }
2228 
2229 extern __inline __m512i
2230 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtepi16_epi64(__m512i __W,__mmask8 __U,__m128i __A)2231 _mm512_mask_cvtepi16_epi64 (__m512i __W, __mmask8 __U, __m128i __A)
2232 {
2233   return (__m512i) __builtin_ia32_pmovsxwq512_mask ((__v8hi) __A,
2234 						    (__v8di) __W,
2235 						    (__mmask8) __U);
2236 }
2237 
2238 extern __inline __m512i
2239 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtepi16_epi64(__mmask8 __U,__m128i __A)2240 _mm512_maskz_cvtepi16_epi64 (__mmask8 __U, __m128i __A)
2241 {
2242   return (__m512i) __builtin_ia32_pmovsxwq512_mask ((__v8hi) __A,
2243 						    (__v8di)
2244 						    _mm512_setzero_si512 (),
2245 						    (__mmask8) __U);
2246 }
2247 
2248 extern __inline __m512i
2249 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtepi32_epi64(__m256i __X)2250 _mm512_cvtepi32_epi64 (__m256i __X)
2251 {
2252   return (__m512i) __builtin_ia32_pmovsxdq512_mask ((__v8si) __X,
2253 						    (__v8di)
2254 						    _mm512_undefined_epi32 (),
2255 						    (__mmask8) -1);
2256 }
2257 
2258 extern __inline __m512i
2259 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtepi32_epi64(__m512i __W,__mmask8 __U,__m256i __X)2260 _mm512_mask_cvtepi32_epi64 (__m512i __W, __mmask8 __U, __m256i __X)
2261 {
2262   return (__m512i) __builtin_ia32_pmovsxdq512_mask ((__v8si) __X,
2263 						    (__v8di) __W,
2264 						    (__mmask8) __U);
2265 }
2266 
2267 extern __inline __m512i
2268 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtepi32_epi64(__mmask8 __U,__m256i __X)2269 _mm512_maskz_cvtepi32_epi64 (__mmask8 __U, __m256i __X)
2270 {
2271   return (__m512i) __builtin_ia32_pmovsxdq512_mask ((__v8si) __X,
2272 						    (__v8di)
2273 						    _mm512_setzero_si512 (),
2274 						    (__mmask8) __U);
2275 }
2276 
2277 extern __inline __m512i
2278 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtepu8_epi32(__m128i __A)2279 _mm512_cvtepu8_epi32 (__m128i __A)
2280 {
2281   return (__m512i) __builtin_ia32_pmovzxbd512_mask ((__v16qi) __A,
2282 						    (__v16si)
2283 						    _mm512_undefined_epi32 (),
2284 						    (__mmask16) -1);
2285 }
2286 
2287 extern __inline __m512i
2288 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtepu8_epi32(__m512i __W,__mmask16 __U,__m128i __A)2289 _mm512_mask_cvtepu8_epi32 (__m512i __W, __mmask16 __U, __m128i __A)
2290 {
2291   return (__m512i) __builtin_ia32_pmovzxbd512_mask ((__v16qi) __A,
2292 						    (__v16si) __W,
2293 						    (__mmask16) __U);
2294 }
2295 
2296 extern __inline __m512i
2297 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtepu8_epi32(__mmask16 __U,__m128i __A)2298 _mm512_maskz_cvtepu8_epi32 (__mmask16 __U, __m128i __A)
2299 {
2300   return (__m512i) __builtin_ia32_pmovzxbd512_mask ((__v16qi) __A,
2301 						    (__v16si)
2302 						    _mm512_setzero_si512 (),
2303 						    (__mmask16) __U);
2304 }
2305 
2306 extern __inline __m512i
2307 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtepu8_epi64(__m128i __A)2308 _mm512_cvtepu8_epi64 (__m128i __A)
2309 {
2310   return (__m512i) __builtin_ia32_pmovzxbq512_mask ((__v16qi) __A,
2311 						    (__v8di)
2312 						    _mm512_undefined_epi32 (),
2313 						    (__mmask8) -1);
2314 }
2315 
2316 extern __inline __m512i
2317 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtepu8_epi64(__m512i __W,__mmask8 __U,__m128i __A)2318 _mm512_mask_cvtepu8_epi64 (__m512i __W, __mmask8 __U, __m128i __A)
2319 {
2320   return (__m512i) __builtin_ia32_pmovzxbq512_mask ((__v16qi) __A,
2321 						    (__v8di) __W,
2322 						    (__mmask8) __U);
2323 }
2324 
2325 extern __inline __m512i
2326 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtepu8_epi64(__mmask8 __U,__m128i __A)2327 _mm512_maskz_cvtepu8_epi64 (__mmask8 __U, __m128i __A)
2328 {
2329   return (__m512i) __builtin_ia32_pmovzxbq512_mask ((__v16qi) __A,
2330 						    (__v8di)
2331 						    _mm512_setzero_si512 (),
2332 						    (__mmask8) __U);
2333 }
2334 
2335 extern __inline __m512i
2336 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtepu16_epi32(__m256i __A)2337 _mm512_cvtepu16_epi32 (__m256i __A)
2338 {
2339   return (__m512i) __builtin_ia32_pmovzxwd512_mask ((__v16hi) __A,
2340 						    (__v16si)
2341 						    _mm512_undefined_epi32 (),
2342 						    (__mmask16) -1);
2343 }
2344 
2345 extern __inline __m512i
2346 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtepu16_epi32(__m512i __W,__mmask16 __U,__m256i __A)2347 _mm512_mask_cvtepu16_epi32 (__m512i __W, __mmask16 __U, __m256i __A)
2348 {
2349   return (__m512i) __builtin_ia32_pmovzxwd512_mask ((__v16hi) __A,
2350 						    (__v16si) __W,
2351 						    (__mmask16) __U);
2352 }
2353 
2354 extern __inline __m512i
2355 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtepu16_epi32(__mmask16 __U,__m256i __A)2356 _mm512_maskz_cvtepu16_epi32 (__mmask16 __U, __m256i __A)
2357 {
2358   return (__m512i) __builtin_ia32_pmovzxwd512_mask ((__v16hi) __A,
2359 						    (__v16si)
2360 						    _mm512_setzero_si512 (),
2361 						    (__mmask16) __U);
2362 }
2363 
2364 extern __inline __m512i
2365 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtepu16_epi64(__m128i __A)2366 _mm512_cvtepu16_epi64 (__m128i __A)
2367 {
2368   return (__m512i) __builtin_ia32_pmovzxwq512_mask ((__v8hi) __A,
2369 						    (__v8di)
2370 						    _mm512_undefined_epi32 (),
2371 						    (__mmask8) -1);
2372 }
2373 
2374 extern __inline __m512i
2375 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtepu16_epi64(__m512i __W,__mmask8 __U,__m128i __A)2376 _mm512_mask_cvtepu16_epi64 (__m512i __W, __mmask8 __U, __m128i __A)
2377 {
2378   return (__m512i) __builtin_ia32_pmovzxwq512_mask ((__v8hi) __A,
2379 						    (__v8di) __W,
2380 						    (__mmask8) __U);
2381 }
2382 
2383 extern __inline __m512i
2384 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtepu16_epi64(__mmask8 __U,__m128i __A)2385 _mm512_maskz_cvtepu16_epi64 (__mmask8 __U, __m128i __A)
2386 {
2387   return (__m512i) __builtin_ia32_pmovzxwq512_mask ((__v8hi) __A,
2388 						    (__v8di)
2389 						    _mm512_setzero_si512 (),
2390 						    (__mmask8) __U);
2391 }
2392 
2393 extern __inline __m512i
2394 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtepu32_epi64(__m256i __X)2395 _mm512_cvtepu32_epi64 (__m256i __X)
2396 {
2397   return (__m512i) __builtin_ia32_pmovzxdq512_mask ((__v8si) __X,
2398 						    (__v8di)
2399 						    _mm512_undefined_epi32 (),
2400 						    (__mmask8) -1);
2401 }
2402 
2403 extern __inline __m512i
2404 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtepu32_epi64(__m512i __W,__mmask8 __U,__m256i __X)2405 _mm512_mask_cvtepu32_epi64 (__m512i __W, __mmask8 __U, __m256i __X)
2406 {
2407   return (__m512i) __builtin_ia32_pmovzxdq512_mask ((__v8si) __X,
2408 						    (__v8di) __W,
2409 						    (__mmask8) __U);
2410 }
2411 
2412 extern __inline __m512i
2413 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtepu32_epi64(__mmask8 __U,__m256i __X)2414 _mm512_maskz_cvtepu32_epi64 (__mmask8 __U, __m256i __X)
2415 {
2416   return (__m512i) __builtin_ia32_pmovzxdq512_mask ((__v8si) __X,
2417 						    (__v8di)
2418 						    _mm512_setzero_si512 (),
2419 						    (__mmask8) __U);
2420 }
2421 
2422 #ifdef __OPTIMIZE__
2423 extern __inline __m512d
2424 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_add_round_pd(__m512d __A,__m512d __B,const int __R)2425 _mm512_add_round_pd (__m512d __A, __m512d __B, const int __R)
2426 {
2427   return (__m512d) __builtin_ia32_addpd512_mask ((__v8df) __A,
2428 						 (__v8df) __B,
2429 						 (__v8df)
2430 						 _mm512_undefined_pd (),
2431 						 (__mmask8) -1, __R);
2432 }
2433 
2434 extern __inline __m512d
2435 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_add_round_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B,const int __R)2436 _mm512_mask_add_round_pd (__m512d __W, __mmask8 __U, __m512d __A,
2437 			  __m512d __B, const int __R)
2438 {
2439   return (__m512d) __builtin_ia32_addpd512_mask ((__v8df) __A,
2440 						 (__v8df) __B,
2441 						 (__v8df) __W,
2442 						 (__mmask8) __U, __R);
2443 }
2444 
2445 extern __inline __m512d
2446 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_add_round_pd(__mmask8 __U,__m512d __A,__m512d __B,const int __R)2447 _mm512_maskz_add_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
2448 			   const int __R)
2449 {
2450   return (__m512d) __builtin_ia32_addpd512_mask ((__v8df) __A,
2451 						 (__v8df) __B,
2452 						 (__v8df)
2453 						 _mm512_setzero_pd (),
2454 						 (__mmask8) __U, __R);
2455 }
2456 
2457 extern __inline __m512
2458 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_add_round_ps(__m512 __A,__m512 __B,const int __R)2459 _mm512_add_round_ps (__m512 __A, __m512 __B, const int __R)
2460 {
2461   return (__m512) __builtin_ia32_addps512_mask ((__v16sf) __A,
2462 						(__v16sf) __B,
2463 						(__v16sf)
2464 						_mm512_undefined_ps (),
2465 						(__mmask16) -1, __R);
2466 }
2467 
2468 extern __inline __m512
2469 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_add_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B,const int __R)2470 _mm512_mask_add_round_ps (__m512 __W, __mmask16 __U, __m512 __A,
2471 			  __m512 __B, const int __R)
2472 {
2473   return (__m512) __builtin_ia32_addps512_mask ((__v16sf) __A,
2474 						(__v16sf) __B,
2475 						(__v16sf) __W,
2476 						(__mmask16) __U, __R);
2477 }
2478 
2479 extern __inline __m512
2480 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_add_round_ps(__mmask16 __U,__m512 __A,__m512 __B,const int __R)2481 _mm512_maskz_add_round_ps (__mmask16 __U, __m512 __A, __m512 __B, const int __R)
2482 {
2483   return (__m512) __builtin_ia32_addps512_mask ((__v16sf) __A,
2484 						(__v16sf) __B,
2485 						(__v16sf)
2486 						_mm512_setzero_ps (),
2487 						(__mmask16) __U, __R);
2488 }
2489 
2490 extern __inline __m512d
2491 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_sub_round_pd(__m512d __A,__m512d __B,const int __R)2492 _mm512_sub_round_pd (__m512d __A, __m512d __B, const int __R)
2493 {
2494   return (__m512d) __builtin_ia32_subpd512_mask ((__v8df) __A,
2495 						 (__v8df) __B,
2496 						 (__v8df)
2497 						 _mm512_undefined_pd (),
2498 						 (__mmask8) -1, __R);
2499 }
2500 
2501 extern __inline __m512d
2502 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_sub_round_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B,const int __R)2503 _mm512_mask_sub_round_pd (__m512d __W, __mmask8 __U, __m512d __A,
2504 			  __m512d __B, const int __R)
2505 {
2506   return (__m512d) __builtin_ia32_subpd512_mask ((__v8df) __A,
2507 						 (__v8df) __B,
2508 						 (__v8df) __W,
2509 						 (__mmask8) __U, __R);
2510 }
2511 
2512 extern __inline __m512d
2513 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_sub_round_pd(__mmask8 __U,__m512d __A,__m512d __B,const int __R)2514 _mm512_maskz_sub_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
2515 			   const int __R)
2516 {
2517   return (__m512d) __builtin_ia32_subpd512_mask ((__v8df) __A,
2518 						 (__v8df) __B,
2519 						 (__v8df)
2520 						 _mm512_setzero_pd (),
2521 						 (__mmask8) __U, __R);
2522 }
2523 
2524 extern __inline __m512
2525 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_sub_round_ps(__m512 __A,__m512 __B,const int __R)2526 _mm512_sub_round_ps (__m512 __A, __m512 __B, const int __R)
2527 {
2528   return (__m512) __builtin_ia32_subps512_mask ((__v16sf) __A,
2529 						(__v16sf) __B,
2530 						(__v16sf)
2531 						_mm512_undefined_ps (),
2532 						(__mmask16) -1, __R);
2533 }
2534 
2535 extern __inline __m512
2536 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_sub_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B,const int __R)2537 _mm512_mask_sub_round_ps (__m512 __W, __mmask16 __U, __m512 __A,
2538 			  __m512 __B, const int __R)
2539 {
2540   return (__m512) __builtin_ia32_subps512_mask ((__v16sf) __A,
2541 						(__v16sf) __B,
2542 						(__v16sf) __W,
2543 						(__mmask16) __U, __R);
2544 }
2545 
2546 extern __inline __m512
2547 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_sub_round_ps(__mmask16 __U,__m512 __A,__m512 __B,const int __R)2548 _mm512_maskz_sub_round_ps (__mmask16 __U, __m512 __A, __m512 __B, const int __R)
2549 {
2550   return (__m512) __builtin_ia32_subps512_mask ((__v16sf) __A,
2551 						(__v16sf) __B,
2552 						(__v16sf)
2553 						_mm512_setzero_ps (),
2554 						(__mmask16) __U, __R);
2555 }
2556 #else
2557 #define _mm512_add_round_pd(A, B, C)            \
2558     (__m512d)__builtin_ia32_addpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C)
2559 
2560 #define _mm512_mask_add_round_pd(W, U, A, B, C) \
2561     (__m512d)__builtin_ia32_addpd512_mask(A, B, W, U, C)
2562 
2563 #define _mm512_maskz_add_round_pd(U, A, B, C)   \
2564     (__m512d)__builtin_ia32_addpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
2565 
2566 #define _mm512_add_round_ps(A, B, C)            \
2567     (__m512)__builtin_ia32_addps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C)
2568 
2569 #define _mm512_mask_add_round_ps(W, U, A, B, C) \
2570     (__m512)__builtin_ia32_addps512_mask(A, B, W, U, C)
2571 
2572 #define _mm512_maskz_add_round_ps(U, A, B, C)   \
2573     (__m512)__builtin_ia32_addps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
2574 
2575 #define _mm512_sub_round_pd(A, B, C)            \
2576     (__m512d)__builtin_ia32_subpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C)
2577 
2578 #define _mm512_mask_sub_round_pd(W, U, A, B, C) \
2579     (__m512d)__builtin_ia32_subpd512_mask(A, B, W, U, C)
2580 
2581 #define _mm512_maskz_sub_round_pd(U, A, B, C)   \
2582     (__m512d)__builtin_ia32_subpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
2583 
2584 #define _mm512_sub_round_ps(A, B, C)            \
2585     (__m512)__builtin_ia32_subps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C)
2586 
2587 #define _mm512_mask_sub_round_ps(W, U, A, B, C) \
2588     (__m512)__builtin_ia32_subps512_mask(A, B, W, U, C)
2589 
2590 #define _mm512_maskz_sub_round_ps(U, A, B, C)   \
2591     (__m512)__builtin_ia32_subps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
2592 #endif
2593 
2594 #ifdef __OPTIMIZE__
2595 extern __inline __m512d
2596 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mul_round_pd(__m512d __A,__m512d __B,const int __R)2597 _mm512_mul_round_pd (__m512d __A, __m512d __B, const int __R)
2598 {
2599   return (__m512d) __builtin_ia32_mulpd512_mask ((__v8df) __A,
2600 						 (__v8df) __B,
2601 						 (__v8df)
2602 						 _mm512_undefined_pd (),
2603 						 (__mmask8) -1, __R);
2604 }
2605 
2606 extern __inline __m512d
2607 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_mul_round_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B,const int __R)2608 _mm512_mask_mul_round_pd (__m512d __W, __mmask8 __U, __m512d __A,
2609 			  __m512d __B, const int __R)
2610 {
2611   return (__m512d) __builtin_ia32_mulpd512_mask ((__v8df) __A,
2612 						 (__v8df) __B,
2613 						 (__v8df) __W,
2614 						 (__mmask8) __U, __R);
2615 }
2616 
2617 extern __inline __m512d
2618 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_mul_round_pd(__mmask8 __U,__m512d __A,__m512d __B,const int __R)2619 _mm512_maskz_mul_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
2620 			   const int __R)
2621 {
2622   return (__m512d) __builtin_ia32_mulpd512_mask ((__v8df) __A,
2623 						 (__v8df) __B,
2624 						 (__v8df)
2625 						 _mm512_setzero_pd (),
2626 						 (__mmask8) __U, __R);
2627 }
2628 
2629 extern __inline __m512
2630 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mul_round_ps(__m512 __A,__m512 __B,const int __R)2631 _mm512_mul_round_ps (__m512 __A, __m512 __B, const int __R)
2632 {
2633   return (__m512) __builtin_ia32_mulps512_mask ((__v16sf) __A,
2634 						(__v16sf) __B,
2635 						(__v16sf)
2636 						_mm512_undefined_ps (),
2637 						(__mmask16) -1, __R);
2638 }
2639 
2640 extern __inline __m512
2641 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_mul_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B,const int __R)2642 _mm512_mask_mul_round_ps (__m512 __W, __mmask16 __U, __m512 __A,
2643 			  __m512 __B, const int __R)
2644 {
2645   return (__m512) __builtin_ia32_mulps512_mask ((__v16sf) __A,
2646 						(__v16sf) __B,
2647 						(__v16sf) __W,
2648 						(__mmask16) __U, __R);
2649 }
2650 
2651 extern __inline __m512
2652 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_mul_round_ps(__mmask16 __U,__m512 __A,__m512 __B,const int __R)2653 _mm512_maskz_mul_round_ps (__mmask16 __U, __m512 __A, __m512 __B, const int __R)
2654 {
2655   return (__m512) __builtin_ia32_mulps512_mask ((__v16sf) __A,
2656 						(__v16sf) __B,
2657 						(__v16sf)
2658 						_mm512_setzero_ps (),
2659 						(__mmask16) __U, __R);
2660 }
2661 
2662 extern __inline __m512d
2663 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_div_round_pd(__m512d __M,__m512d __V,const int __R)2664 _mm512_div_round_pd (__m512d __M, __m512d __V, const int __R)
2665 {
2666   return (__m512d) __builtin_ia32_divpd512_mask ((__v8df) __M,
2667 						 (__v8df) __V,
2668 						 (__v8df)
2669 						 _mm512_undefined_pd (),
2670 						 (__mmask8) -1, __R);
2671 }
2672 
2673 extern __inline __m512d
2674 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_div_round_pd(__m512d __W,__mmask8 __U,__m512d __M,__m512d __V,const int __R)2675 _mm512_mask_div_round_pd (__m512d __W, __mmask8 __U, __m512d __M,
2676 			  __m512d __V, const int __R)
2677 {
2678   return (__m512d) __builtin_ia32_divpd512_mask ((__v8df) __M,
2679 						 (__v8df) __V,
2680 						 (__v8df) __W,
2681 						 (__mmask8) __U, __R);
2682 }
2683 
2684 extern __inline __m512d
2685 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_div_round_pd(__mmask8 __U,__m512d __M,__m512d __V,const int __R)2686 _mm512_maskz_div_round_pd (__mmask8 __U, __m512d __M, __m512d __V,
2687 			   const int __R)
2688 {
2689   return (__m512d) __builtin_ia32_divpd512_mask ((__v8df) __M,
2690 						 (__v8df) __V,
2691 						 (__v8df)
2692 						 _mm512_setzero_pd (),
2693 						 (__mmask8) __U, __R);
2694 }
2695 
2696 extern __inline __m512
2697 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_div_round_ps(__m512 __A,__m512 __B,const int __R)2698 _mm512_div_round_ps (__m512 __A, __m512 __B, const int __R)
2699 {
2700   return (__m512) __builtin_ia32_divps512_mask ((__v16sf) __A,
2701 						(__v16sf) __B,
2702 						(__v16sf)
2703 						_mm512_undefined_ps (),
2704 						(__mmask16) -1, __R);
2705 }
2706 
2707 extern __inline __m512
2708 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_div_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B,const int __R)2709 _mm512_mask_div_round_ps (__m512 __W, __mmask16 __U, __m512 __A,
2710 			  __m512 __B, const int __R)
2711 {
2712   return (__m512) __builtin_ia32_divps512_mask ((__v16sf) __A,
2713 						(__v16sf) __B,
2714 						(__v16sf) __W,
2715 						(__mmask16) __U, __R);
2716 }
2717 
2718 extern __inline __m512
2719 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_div_round_ps(__mmask16 __U,__m512 __A,__m512 __B,const int __R)2720 _mm512_maskz_div_round_ps (__mmask16 __U, __m512 __A, __m512 __B, const int __R)
2721 {
2722   return (__m512) __builtin_ia32_divps512_mask ((__v16sf) __A,
2723 						(__v16sf) __B,
2724 						(__v16sf)
2725 						_mm512_setzero_ps (),
2726 						(__mmask16) __U, __R);
2727 }
2728 
2729 extern __inline __m128d
2730 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mul_round_sd(__m128d __A,__m128d __B,const int __R)2731 _mm_mul_round_sd (__m128d __A, __m128d __B, const int __R)
2732 {
2733   return (__m128d) __builtin_ia32_mulsd_round ((__v2df) __A,
2734 					       (__v2df) __B,
2735 					       __R);
2736 }
2737 
2738 extern __inline __m128d
2739 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_mul_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B,const int __R)2740 _mm_mask_mul_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
2741 			  __m128d __B, const int __R)
2742 {
2743   return (__m128d) __builtin_ia32_mulsd_mask_round ((__v2df) __A,
2744 						 (__v2df) __B,
2745 						 (__v2df) __W,
2746 						 (__mmask8) __U, __R);
2747 }
2748 
2749 extern __inline __m128d
2750 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_mul_round_sd(__mmask8 __U,__m128d __A,__m128d __B,const int __R)2751 _mm_maskz_mul_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
2752 			   const int __R)
2753 {
2754   return (__m128d) __builtin_ia32_mulsd_mask_round ((__v2df) __A,
2755 						 (__v2df) __B,
2756 						 (__v2df)
2757 						 _mm_setzero_pd (),
2758 						 (__mmask8) __U, __R);
2759 }
2760 
2761 extern __inline __m128
2762 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mul_round_ss(__m128 __A,__m128 __B,const int __R)2763 _mm_mul_round_ss (__m128 __A, __m128 __B, const int __R)
2764 {
2765   return (__m128) __builtin_ia32_mulss_round ((__v4sf) __A,
2766 					      (__v4sf) __B,
2767 					      __R);
2768 }
2769 
2770 extern __inline __m128
2771 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_mul_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B,const int __R)2772 _mm_mask_mul_round_ss (__m128 __W, __mmask8 __U, __m128 __A,
2773 			  __m128 __B, const int __R)
2774 {
2775   return (__m128) __builtin_ia32_mulss_mask_round ((__v4sf) __A,
2776 						 (__v4sf) __B,
2777 						 (__v4sf) __W,
2778 						 (__mmask8) __U, __R);
2779 }
2780 
2781 extern __inline __m128
2782 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_mul_round_ss(__mmask8 __U,__m128 __A,__m128 __B,const int __R)2783 _mm_maskz_mul_round_ss (__mmask8 __U, __m128 __A, __m128 __B,
2784 			   const int __R)
2785 {
2786   return (__m128) __builtin_ia32_mulss_mask_round ((__v4sf) __A,
2787 						 (__v4sf) __B,
2788 						 (__v4sf)
2789 						 _mm_setzero_ps (),
2790 						 (__mmask8) __U, __R);
2791 }
2792 
2793 extern __inline __m128d
2794 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_div_round_sd(__m128d __A,__m128d __B,const int __R)2795 _mm_div_round_sd (__m128d __A, __m128d __B, const int __R)
2796 {
2797   return (__m128d) __builtin_ia32_divsd_round ((__v2df) __A,
2798 					       (__v2df) __B,
2799 					       __R);
2800 }
2801 
2802 extern __inline __m128d
2803 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_div_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B,const int __R)2804 _mm_mask_div_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
2805 			  __m128d __B, const int __R)
2806 {
2807   return (__m128d) __builtin_ia32_divsd_mask_round ((__v2df) __A,
2808 						 (__v2df) __B,
2809 						 (__v2df) __W,
2810 						 (__mmask8) __U, __R);
2811 }
2812 
2813 extern __inline __m128d
2814 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_div_round_sd(__mmask8 __U,__m128d __A,__m128d __B,const int __R)2815 _mm_maskz_div_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
2816 			   const int __R)
2817 {
2818   return (__m128d) __builtin_ia32_divsd_mask_round ((__v2df) __A,
2819 						 (__v2df) __B,
2820 						 (__v2df)
2821 						 _mm_setzero_pd (),
2822 						 (__mmask8) __U, __R);
2823 }
2824 
2825 extern __inline __m128
2826 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_div_round_ss(__m128 __A,__m128 __B,const int __R)2827 _mm_div_round_ss (__m128 __A, __m128 __B, const int __R)
2828 {
2829   return (__m128) __builtin_ia32_divss_round ((__v4sf) __A,
2830 					      (__v4sf) __B,
2831 					      __R);
2832 }
2833 
2834 extern __inline __m128
2835 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_div_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B,const int __R)2836 _mm_mask_div_round_ss (__m128 __W, __mmask8 __U, __m128 __A,
2837 			  __m128 __B, const int __R)
2838 {
2839   return (__m128) __builtin_ia32_divss_mask_round ((__v4sf) __A,
2840 						 (__v4sf) __B,
2841 						 (__v4sf) __W,
2842 						 (__mmask8) __U, __R);
2843 }
2844 
2845 extern __inline __m128
2846 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_div_round_ss(__mmask8 __U,__m128 __A,__m128 __B,const int __R)2847 _mm_maskz_div_round_ss (__mmask8 __U, __m128 __A, __m128 __B,
2848 			   const int __R)
2849 {
2850   return (__m128) __builtin_ia32_divss_mask_round ((__v4sf) __A,
2851 						 (__v4sf) __B,
2852 						 (__v4sf)
2853 						 _mm_setzero_ps (),
2854 						 (__mmask8) __U, __R);
2855 }
2856 
2857 #else
2858 #define _mm512_mul_round_pd(A, B, C)            \
2859     (__m512d)__builtin_ia32_mulpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C)
2860 
2861 #define _mm512_mask_mul_round_pd(W, U, A, B, C) \
2862     (__m512d)__builtin_ia32_mulpd512_mask(A, B, W, U, C)
2863 
2864 #define _mm512_maskz_mul_round_pd(U, A, B, C)   \
2865     (__m512d)__builtin_ia32_mulpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
2866 
2867 #define _mm512_mul_round_ps(A, B, C)            \
2868     (__m512)__builtin_ia32_mulps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C)
2869 
2870 #define _mm512_mask_mul_round_ps(W, U, A, B, C) \
2871     (__m512)__builtin_ia32_mulps512_mask(A, B, W, U, C)
2872 
2873 #define _mm512_maskz_mul_round_ps(U, A, B, C)   \
2874     (__m512)__builtin_ia32_mulps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
2875 
2876 #define _mm512_div_round_pd(A, B, C)            \
2877     (__m512d)__builtin_ia32_divpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C)
2878 
2879 #define _mm512_mask_div_round_pd(W, U, A, B, C) \
2880     (__m512d)__builtin_ia32_divpd512_mask(A, B, W, U, C)
2881 
2882 #define _mm512_maskz_div_round_pd(U, A, B, C)   \
2883     (__m512d)__builtin_ia32_divpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
2884 
2885 #define _mm512_div_round_ps(A, B, C)            \
2886     (__m512)__builtin_ia32_divps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C)
2887 
2888 #define _mm512_mask_div_round_ps(W, U, A, B, C) \
2889     (__m512)__builtin_ia32_divps512_mask(A, B, W, U, C)
2890 
2891 #define _mm512_maskz_div_round_ps(U, A, B, C)   \
2892     (__m512)__builtin_ia32_divps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
2893 
2894 #define _mm_mul_round_sd(A, B, C)            \
2895     (__m128d)__builtin_ia32_mulsd_round(A, B, C)
2896 
2897 #define _mm_mask_mul_round_sd(W, U, A, B, C) \
2898     (__m128d)__builtin_ia32_mulsd_mask_round(A, B, W, U, C)
2899 
2900 #define _mm_maskz_mul_round_sd(U, A, B, C)   \
2901     (__m128d)__builtin_ia32_mulsd_mask_round(A, B, (__v2df)_mm_setzero_pd(), U, C)
2902 
2903 #define _mm_mul_round_ss(A, B, C)            \
2904     (__m128)__builtin_ia32_mulss_round(A, B, C)
2905 
2906 #define _mm_mask_mul_round_ss(W, U, A, B, C) \
2907     (__m128)__builtin_ia32_mulss_mask_round(A, B, W, U, C)
2908 
2909 #define _mm_maskz_mul_round_ss(U, A, B, C)   \
2910     (__m128)__builtin_ia32_mulss_mask_round(A, B, (__v4sf)_mm_setzero_ps(), U, C)
2911 
2912 #define _mm_div_round_sd(A, B, C)            \
2913     (__m128d)__builtin_ia32_divsd_round(A, B, C)
2914 
2915 #define _mm_mask_div_round_sd(W, U, A, B, C) \
2916     (__m128d)__builtin_ia32_divsd_mask_round(A, B, W, U, C)
2917 
2918 #define _mm_maskz_div_round_sd(U, A, B, C)   \
2919     (__m128d)__builtin_ia32_divsd_mask_round(A, B, (__v2df)_mm_setzero_pd(), U, C)
2920 
2921 #define _mm_div_round_ss(A, B, C)            \
2922     (__m128)__builtin_ia32_divss_round(A, B, C)
2923 
2924 #define _mm_mask_div_round_ss(W, U, A, B, C) \
2925     (__m128)__builtin_ia32_divss_mask_round(A, B, W, U, C)
2926 
2927 #define _mm_maskz_div_round_ss(U, A, B, C)   \
2928     (__m128)__builtin_ia32_divss_mask_round(A, B, (__v4sf)_mm_setzero_ps(), U, C)
2929 
2930 #endif
2931 
2932 #ifdef __OPTIMIZE__
2933 extern __inline __m512d
2934 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_max_round_pd(__m512d __A,__m512d __B,const int __R)2935 _mm512_max_round_pd (__m512d __A, __m512d __B, const int __R)
2936 {
2937   return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A,
2938 						 (__v8df) __B,
2939 						 (__v8df)
2940 						 _mm512_undefined_pd (),
2941 						 (__mmask8) -1, __R);
2942 }
2943 
2944 extern __inline __m512d
2945 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_max_round_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B,const int __R)2946 _mm512_mask_max_round_pd (__m512d __W, __mmask8 __U, __m512d __A,
2947 			  __m512d __B, const int __R)
2948 {
2949   return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A,
2950 						 (__v8df) __B,
2951 						 (__v8df) __W,
2952 						 (__mmask8) __U, __R);
2953 }
2954 
2955 extern __inline __m512d
2956 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_max_round_pd(__mmask8 __U,__m512d __A,__m512d __B,const int __R)2957 _mm512_maskz_max_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
2958 			   const int __R)
2959 {
2960   return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A,
2961 						 (__v8df) __B,
2962 						 (__v8df)
2963 						 _mm512_setzero_pd (),
2964 						 (__mmask8) __U, __R);
2965 }
2966 
2967 extern __inline __m512
2968 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_max_round_ps(__m512 __A,__m512 __B,const int __R)2969 _mm512_max_round_ps (__m512 __A, __m512 __B, const int __R)
2970 {
2971   return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A,
2972 						(__v16sf) __B,
2973 						(__v16sf)
2974 						_mm512_undefined_ps (),
2975 						(__mmask16) -1, __R);
2976 }
2977 
2978 extern __inline __m512
2979 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_max_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B,const int __R)2980 _mm512_mask_max_round_ps (__m512 __W, __mmask16 __U, __m512 __A,
2981 			  __m512 __B, const int __R)
2982 {
2983   return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A,
2984 						(__v16sf) __B,
2985 						(__v16sf) __W,
2986 						(__mmask16) __U, __R);
2987 }
2988 
2989 extern __inline __m512
2990 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_max_round_ps(__mmask16 __U,__m512 __A,__m512 __B,const int __R)2991 _mm512_maskz_max_round_ps (__mmask16 __U, __m512 __A, __m512 __B, const int __R)
2992 {
2993   return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A,
2994 						(__v16sf) __B,
2995 						(__v16sf)
2996 						_mm512_setzero_ps (),
2997 						(__mmask16) __U, __R);
2998 }
2999 
3000 extern __inline __m512d
3001 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_min_round_pd(__m512d __A,__m512d __B,const int __R)3002 _mm512_min_round_pd (__m512d __A, __m512d __B, const int __R)
3003 {
3004   return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A,
3005 						 (__v8df) __B,
3006 						 (__v8df)
3007 						 _mm512_undefined_pd (),
3008 						 (__mmask8) -1, __R);
3009 }
3010 
3011 extern __inline __m512d
3012 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_min_round_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B,const int __R)3013 _mm512_mask_min_round_pd (__m512d __W, __mmask8 __U, __m512d __A,
3014 			  __m512d __B, const int __R)
3015 {
3016   return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A,
3017 						 (__v8df) __B,
3018 						 (__v8df) __W,
3019 						 (__mmask8) __U, __R);
3020 }
3021 
3022 extern __inline __m512d
3023 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_min_round_pd(__mmask8 __U,__m512d __A,__m512d __B,const int __R)3024 _mm512_maskz_min_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
3025 			   const int __R)
3026 {
3027   return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A,
3028 						 (__v8df) __B,
3029 						 (__v8df)
3030 						 _mm512_setzero_pd (),
3031 						 (__mmask8) __U, __R);
3032 }
3033 
3034 extern __inline __m512
3035 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_min_round_ps(__m512 __A,__m512 __B,const int __R)3036 _mm512_min_round_ps (__m512 __A, __m512 __B, const int __R)
3037 {
3038   return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A,
3039 						(__v16sf) __B,
3040 						(__v16sf)
3041 						_mm512_undefined_ps (),
3042 						(__mmask16) -1, __R);
3043 }
3044 
3045 extern __inline __m512
3046 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_min_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B,const int __R)3047 _mm512_mask_min_round_ps (__m512 __W, __mmask16 __U, __m512 __A,
3048 			  __m512 __B, const int __R)
3049 {
3050   return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A,
3051 						(__v16sf) __B,
3052 						(__v16sf) __W,
3053 						(__mmask16) __U, __R);
3054 }
3055 
3056 extern __inline __m512
3057 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_min_round_ps(__mmask16 __U,__m512 __A,__m512 __B,const int __R)3058 _mm512_maskz_min_round_ps (__mmask16 __U, __m512 __A, __m512 __B, const int __R)
3059 {
3060   return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A,
3061 						(__v16sf) __B,
3062 						(__v16sf)
3063 						_mm512_setzero_ps (),
3064 						(__mmask16) __U, __R);
3065 }
3066 #else
3067 #define _mm512_max_round_pd(A, B,  R) \
3068     (__m512d)__builtin_ia32_maxpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, R)
3069 
3070 #define _mm512_mask_max_round_pd(W, U,  A, B, R) \
3071     (__m512d)__builtin_ia32_maxpd512_mask(A, B, W, U, R)
3072 
3073 #define _mm512_maskz_max_round_pd(U, A,  B, R) \
3074     (__m512d)__builtin_ia32_maxpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, R)
3075 
3076 #define _mm512_max_round_ps(A, B,  R) \
3077     (__m512)__builtin_ia32_maxps512_mask(A, B, (__v16sf)_mm512_undefined_pd(), -1, R)
3078 
3079 #define _mm512_mask_max_round_ps(W, U,  A, B, R) \
3080     (__m512)__builtin_ia32_maxps512_mask(A, B, W, U, R)
3081 
3082 #define _mm512_maskz_max_round_ps(U, A,  B, R) \
3083     (__m512)__builtin_ia32_maxps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, R)
3084 
3085 #define _mm512_min_round_pd(A, B,  R) \
3086     (__m512d)__builtin_ia32_minpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, R)
3087 
3088 #define _mm512_mask_min_round_pd(W, U,  A, B, R) \
3089     (__m512d)__builtin_ia32_minpd512_mask(A, B, W, U, R)
3090 
3091 #define _mm512_maskz_min_round_pd(U, A,  B, R) \
3092     (__m512d)__builtin_ia32_minpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, R)
3093 
3094 #define _mm512_min_round_ps(A, B, R) \
3095     (__m512)__builtin_ia32_minps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, R)
3096 
3097 #define _mm512_mask_min_round_ps(W, U,  A, B, R) \
3098     (__m512)__builtin_ia32_minps512_mask(A, B, W, U, R)
3099 
3100 #define _mm512_maskz_min_round_ps(U, A,  B, R) \
3101     (__m512)__builtin_ia32_minps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, R)
3102 #endif
3103 
3104 #ifdef __OPTIMIZE__
3105 extern __inline __m512d
3106 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_scalef_round_pd(__m512d __A,__m512d __B,const int __R)3107 _mm512_scalef_round_pd (__m512d __A, __m512d __B, const int __R)
3108 {
3109   return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,
3110 						    (__v8df) __B,
3111 						    (__v8df)
3112 						    _mm512_undefined_pd (),
3113 						    (__mmask8) -1, __R);
3114 }
3115 
3116 extern __inline __m512d
3117 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_scalef_round_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B,const int __R)3118 _mm512_mask_scalef_round_pd (__m512d __W, __mmask8 __U, __m512d __A,
3119 			     __m512d __B, const int __R)
3120 {
3121   return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,
3122 						    (__v8df) __B,
3123 						    (__v8df) __W,
3124 						    (__mmask8) __U, __R);
3125 }
3126 
3127 extern __inline __m512d
3128 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_scalef_round_pd(__mmask8 __U,__m512d __A,__m512d __B,const int __R)3129 _mm512_maskz_scalef_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
3130 			      const int __R)
3131 {
3132   return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,
3133 						    (__v8df) __B,
3134 						    (__v8df)
3135 						    _mm512_setzero_pd (),
3136 						    (__mmask8) __U, __R);
3137 }
3138 
3139 extern __inline __m512
3140 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_scalef_round_ps(__m512 __A,__m512 __B,const int __R)3141 _mm512_scalef_round_ps (__m512 __A, __m512 __B, const int __R)
3142 {
3143   return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,
3144 						   (__v16sf) __B,
3145 						   (__v16sf)
3146 						   _mm512_undefined_ps (),
3147 						   (__mmask16) -1, __R);
3148 }
3149 
3150 extern __inline __m512
3151 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_scalef_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B,const int __R)3152 _mm512_mask_scalef_round_ps (__m512 __W, __mmask16 __U, __m512 __A,
3153 			     __m512 __B, const int __R)
3154 {
3155   return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,
3156 						   (__v16sf) __B,
3157 						   (__v16sf) __W,
3158 						   (__mmask16) __U, __R);
3159 }
3160 
3161 extern __inline __m512
3162 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_scalef_round_ps(__mmask16 __U,__m512 __A,__m512 __B,const int __R)3163 _mm512_maskz_scalef_round_ps (__mmask16 __U, __m512 __A, __m512 __B,
3164 			      const int __R)
3165 {
3166   return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,
3167 						   (__v16sf) __B,
3168 						   (__v16sf)
3169 						   _mm512_setzero_ps (),
3170 						   (__mmask16) __U, __R);
3171 }
3172 
3173 extern __inline __m128d
3174 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_scalef_round_sd(__m128d __A,__m128d __B,const int __R)3175 _mm_scalef_round_sd (__m128d __A, __m128d __B, const int __R)
3176 {
3177   return (__m128d) __builtin_ia32_scalefsd_mask_round ((__v2df) __A,
3178 						       (__v2df) __B,
3179 						       (__v2df)
3180 						       _mm_setzero_pd (),
3181 						       (__mmask8) -1, __R);
3182 }
3183 
3184 extern __inline __m128d
3185 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_scalef_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B,const int __R)3186 _mm_mask_scalef_round_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B,
3187 			  const int __R)
3188 {
3189   return (__m128d) __builtin_ia32_scalefsd_mask_round ((__v2df) __A,
3190 						       (__v2df) __B,
3191 						       (__v2df) __W,
3192 						       (__mmask8) __U, __R);
3193 }
3194 
3195 extern __inline __m128d
3196 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_scalef_round_sd(__mmask8 __U,__m128d __A,__m128d __B,const int __R)3197 _mm_maskz_scalef_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
3198 			   const int __R)
3199 {
3200   return (__m128d) __builtin_ia32_scalefsd_mask_round ((__v2df) __A,
3201 						       (__v2df) __B,
3202 						       (__v2df)
3203 						       _mm_setzero_pd (),
3204 						       (__mmask8) __U, __R);
3205 }
3206 
3207 extern __inline __m128
3208 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_scalef_round_ss(__m128 __A,__m128 __B,const int __R)3209 _mm_scalef_round_ss (__m128 __A, __m128 __B, const int __R)
3210 {
3211   return (__m128) __builtin_ia32_scalefss_mask_round ((__v4sf) __A,
3212 						      (__v4sf) __B,
3213 						      (__v4sf)
3214 						      _mm_setzero_ps (),
3215 						      (__mmask8) -1, __R);
3216 }
3217 
3218 extern __inline __m128
3219 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_scalef_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B,const int __R)3220 _mm_mask_scalef_round_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B,
3221 			 const int __R)
3222 {
3223   return (__m128) __builtin_ia32_scalefss_mask_round ((__v4sf) __A,
3224 						      (__v4sf) __B,
3225 						      (__v4sf) __W,
3226 						      (__mmask8) __U, __R);
3227 }
3228 
3229 extern __inline __m128
3230 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_scalef_round_ss(__mmask8 __U,__m128 __A,__m128 __B,const int __R)3231 _mm_maskz_scalef_round_ss (__mmask8 __U, __m128 __A, __m128 __B, const int __R)
3232 {
3233   return (__m128) __builtin_ia32_scalefss_mask_round ((__v4sf) __A,
3234 						      (__v4sf) __B,
3235 						      (__v4sf)
3236 						      _mm_setzero_ps (),
3237 						      (__mmask8) __U, __R);
3238 }
3239 #else
3240 #define _mm512_scalef_round_pd(A, B, C)            \
3241     (__m512d)__builtin_ia32_scalefpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C)
3242 
3243 #define _mm512_mask_scalef_round_pd(W, U, A, B, C) \
3244     (__m512d)__builtin_ia32_scalefpd512_mask(A, B, W, U, C)
3245 
3246 #define _mm512_maskz_scalef_round_pd(U, A, B, C)   \
3247     (__m512d)__builtin_ia32_scalefpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
3248 
3249 #define _mm512_scalef_round_ps(A, B, C)            \
3250     (__m512)__builtin_ia32_scalefps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C)
3251 
3252 #define _mm512_mask_scalef_round_ps(W, U, A, B, C) \
3253     (__m512)__builtin_ia32_scalefps512_mask(A, B, W, U, C)
3254 
3255 #define _mm512_maskz_scalef_round_ps(U, A, B, C)   \
3256     (__m512)__builtin_ia32_scalefps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
3257 
3258 #define _mm_scalef_round_sd(A, B, C)            \
3259     (__m128d)__builtin_ia32_scalefsd_mask_round (A, B, \
3260 	(__v2df)_mm_setzero_pd (), -1, C)
3261 
3262 #define _mm_scalef_round_ss(A, B, C)            \
3263     (__m128)__builtin_ia32_scalefss_mask_round (A, B, \
3264 	(__v4sf)_mm_setzero_ps (), -1, C)
3265 #endif
3266 
3267 #ifdef __OPTIMIZE__
3268 extern __inline __m512d
3269 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_fmadd_round_pd(__m512d __A,__m512d __B,__m512d __C,const int __R)3270 _mm512_fmadd_round_pd (__m512d __A, __m512d __B, __m512d __C, const int __R)
3271 {
3272   return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A,
3273 						    (__v8df) __B,
3274 						    (__v8df) __C,
3275 						    (__mmask8) -1, __R);
3276 }
3277 
3278 extern __inline __m512d
3279 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_fmadd_round_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C,const int __R)3280 _mm512_mask_fmadd_round_pd (__m512d __A, __mmask8 __U, __m512d __B,
3281 			    __m512d __C, const int __R)
3282 {
3283   return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A,
3284 						    (__v8df) __B,
3285 						    (__v8df) __C,
3286 						    (__mmask8) __U, __R);
3287 }
3288 
3289 extern __inline __m512d
3290 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask3_fmadd_round_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U,const int __R)3291 _mm512_mask3_fmadd_round_pd (__m512d __A, __m512d __B, __m512d __C,
3292 			     __mmask8 __U, const int __R)
3293 {
3294   return (__m512d) __builtin_ia32_vfmaddpd512_mask3 ((__v8df) __A,
3295 						     (__v8df) __B,
3296 						     (__v8df) __C,
3297 						     (__mmask8) __U, __R);
3298 }
3299 
3300 extern __inline __m512d
3301 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_fmadd_round_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C,const int __R)3302 _mm512_maskz_fmadd_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
3303 			     __m512d __C, const int __R)
3304 {
3305   return (__m512d) __builtin_ia32_vfmaddpd512_maskz ((__v8df) __A,
3306 						     (__v8df) __B,
3307 						     (__v8df) __C,
3308 						     (__mmask8) __U, __R);
3309 }
3310 
3311 extern __inline __m512
3312 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_fmadd_round_ps(__m512 __A,__m512 __B,__m512 __C,const int __R)3313 _mm512_fmadd_round_ps (__m512 __A, __m512 __B, __m512 __C, const int __R)
3314 {
3315   return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A,
3316 						   (__v16sf) __B,
3317 						   (__v16sf) __C,
3318 						   (__mmask16) -1, __R);
3319 }
3320 
3321 extern __inline __m512
3322 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_fmadd_round_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C,const int __R)3323 _mm512_mask_fmadd_round_ps (__m512 __A, __mmask16 __U, __m512 __B,
3324 			    __m512 __C, const int __R)
3325 {
3326   return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A,
3327 						   (__v16sf) __B,
3328 						   (__v16sf) __C,
3329 						   (__mmask16) __U, __R);
3330 }
3331 
3332 extern __inline __m512
3333 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask3_fmadd_round_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U,const int __R)3334 _mm512_mask3_fmadd_round_ps (__m512 __A, __m512 __B, __m512 __C,
3335 			     __mmask16 __U, const int __R)
3336 {
3337   return (__m512) __builtin_ia32_vfmaddps512_mask3 ((__v16sf) __A,
3338 						    (__v16sf) __B,
3339 						    (__v16sf) __C,
3340 						    (__mmask16) __U, __R);
3341 }
3342 
3343 extern __inline __m512
3344 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_fmadd_round_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C,const int __R)3345 _mm512_maskz_fmadd_round_ps (__mmask16 __U, __m512 __A, __m512 __B,
3346 			     __m512 __C, const int __R)
3347 {
3348   return (__m512) __builtin_ia32_vfmaddps512_maskz ((__v16sf) __A,
3349 						    (__v16sf) __B,
3350 						    (__v16sf) __C,
3351 						    (__mmask16) __U, __R);
3352 }
3353 
3354 extern __inline __m512d
3355 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_fmsub_round_pd(__m512d __A,__m512d __B,__m512d __C,const int __R)3356 _mm512_fmsub_round_pd (__m512d __A, __m512d __B, __m512d __C, const int __R)
3357 {
3358   return (__m512d) __builtin_ia32_vfmsubpd512_mask ((__v8df) __A,
3359 						    (__v8df) __B,
3360 						    (__v8df) __C,
3361 						    (__mmask8) -1, __R);
3362 }
3363 
3364 extern __inline __m512d
3365 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_fmsub_round_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C,const int __R)3366 _mm512_mask_fmsub_round_pd (__m512d __A, __mmask8 __U, __m512d __B,
3367 			    __m512d __C, const int __R)
3368 {
3369   return (__m512d) __builtin_ia32_vfmsubpd512_mask ((__v8df) __A,
3370 						    (__v8df) __B,
3371 						    (__v8df) __C,
3372 						    (__mmask8) __U, __R);
3373 }
3374 
3375 extern __inline __m512d
3376 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask3_fmsub_round_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U,const int __R)3377 _mm512_mask3_fmsub_round_pd (__m512d __A, __m512d __B, __m512d __C,
3378 			     __mmask8 __U, const int __R)
3379 {
3380   return (__m512d) __builtin_ia32_vfmsubpd512_mask3 ((__v8df) __A,
3381 						     (__v8df) __B,
3382 						     (__v8df) __C,
3383 						     (__mmask8) __U, __R);
3384 }
3385 
3386 extern __inline __m512d
3387 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_fmsub_round_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C,const int __R)3388 _mm512_maskz_fmsub_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
3389 			     __m512d __C, const int __R)
3390 {
3391   return (__m512d) __builtin_ia32_vfmsubpd512_maskz ((__v8df) __A,
3392 						     (__v8df) __B,
3393 						     (__v8df) __C,
3394 						     (__mmask8) __U, __R);
3395 }
3396 
3397 extern __inline __m512
3398 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_fmsub_round_ps(__m512 __A,__m512 __B,__m512 __C,const int __R)3399 _mm512_fmsub_round_ps (__m512 __A, __m512 __B, __m512 __C, const int __R)
3400 {
3401   return (__m512) __builtin_ia32_vfmsubps512_mask ((__v16sf) __A,
3402 						   (__v16sf) __B,
3403 						   (__v16sf) __C,
3404 						   (__mmask16) -1, __R);
3405 }
3406 
3407 extern __inline __m512
3408 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_fmsub_round_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C,const int __R)3409 _mm512_mask_fmsub_round_ps (__m512 __A, __mmask16 __U, __m512 __B,
3410 			    __m512 __C, const int __R)
3411 {
3412   return (__m512) __builtin_ia32_vfmsubps512_mask ((__v16sf) __A,
3413 						   (__v16sf) __B,
3414 						   (__v16sf) __C,
3415 						   (__mmask16) __U, __R);
3416 }
3417 
3418 extern __inline __m512
3419 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask3_fmsub_round_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U,const int __R)3420 _mm512_mask3_fmsub_round_ps (__m512 __A, __m512 __B, __m512 __C,
3421 			     __mmask16 __U, const int __R)
3422 {
3423   return (__m512) __builtin_ia32_vfmsubps512_mask3 ((__v16sf) __A,
3424 						    (__v16sf) __B,
3425 						    (__v16sf) __C,
3426 						    (__mmask16) __U, __R);
3427 }
3428 
3429 extern __inline __m512
3430 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_fmsub_round_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C,const int __R)3431 _mm512_maskz_fmsub_round_ps (__mmask16 __U, __m512 __A, __m512 __B,
3432 			     __m512 __C, const int __R)
3433 {
3434   return (__m512) __builtin_ia32_vfmsubps512_maskz ((__v16sf) __A,
3435 						    (__v16sf) __B,
3436 						    (__v16sf) __C,
3437 						    (__mmask16) __U, __R);
3438 }
3439 
3440 extern __inline __m512d
3441 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_fmaddsub_round_pd(__m512d __A,__m512d __B,__m512d __C,const int __R)3442 _mm512_fmaddsub_round_pd (__m512d __A, __m512d __B, __m512d __C, const int __R)
3443 {
3444   return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
3445 						       (__v8df) __B,
3446 						       (__v8df) __C,
3447 						       (__mmask8) -1, __R);
3448 }
3449 
3450 extern __inline __m512d
3451 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_fmaddsub_round_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C,const int __R)3452 _mm512_mask_fmaddsub_round_pd (__m512d __A, __mmask8 __U, __m512d __B,
3453 			       __m512d __C, const int __R)
3454 {
3455   return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
3456 						       (__v8df) __B,
3457 						       (__v8df) __C,
3458 						       (__mmask8) __U, __R);
3459 }
3460 
3461 extern __inline __m512d
3462 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask3_fmaddsub_round_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U,const int __R)3463 _mm512_mask3_fmaddsub_round_pd (__m512d __A, __m512d __B, __m512d __C,
3464 				__mmask8 __U, const int __R)
3465 {
3466   return (__m512d) __builtin_ia32_vfmaddsubpd512_mask3 ((__v8df) __A,
3467 							(__v8df) __B,
3468 							(__v8df) __C,
3469 							(__mmask8) __U, __R);
3470 }
3471 
3472 extern __inline __m512d
3473 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_fmaddsub_round_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C,const int __R)3474 _mm512_maskz_fmaddsub_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
3475 				__m512d __C, const int __R)
3476 {
3477   return (__m512d) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df) __A,
3478 							(__v8df) __B,
3479 							(__v8df) __C,
3480 							(__mmask8) __U, __R);
3481 }
3482 
3483 extern __inline __m512
3484 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_fmaddsub_round_ps(__m512 __A,__m512 __B,__m512 __C,const int __R)3485 _mm512_fmaddsub_round_ps (__m512 __A, __m512 __B, __m512 __C, const int __R)
3486 {
3487   return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
3488 						      (__v16sf) __B,
3489 						      (__v16sf) __C,
3490 						      (__mmask16) -1, __R);
3491 }
3492 
3493 extern __inline __m512
3494 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_fmaddsub_round_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C,const int __R)3495 _mm512_mask_fmaddsub_round_ps (__m512 __A, __mmask16 __U, __m512 __B,
3496 			       __m512 __C, const int __R)
3497 {
3498   return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
3499 						      (__v16sf) __B,
3500 						      (__v16sf) __C,
3501 						      (__mmask16) __U, __R);
3502 }
3503 
3504 extern __inline __m512
3505 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask3_fmaddsub_round_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U,const int __R)3506 _mm512_mask3_fmaddsub_round_ps (__m512 __A, __m512 __B, __m512 __C,
3507 				__mmask16 __U, const int __R)
3508 {
3509   return (__m512) __builtin_ia32_vfmaddsubps512_mask3 ((__v16sf) __A,
3510 						       (__v16sf) __B,
3511 						       (__v16sf) __C,
3512 						       (__mmask16) __U, __R);
3513 }
3514 
3515 extern __inline __m512
3516 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_fmaddsub_round_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C,const int __R)3517 _mm512_maskz_fmaddsub_round_ps (__mmask16 __U, __m512 __A, __m512 __B,
3518 				__m512 __C, const int __R)
3519 {
3520   return (__m512) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf) __A,
3521 						       (__v16sf) __B,
3522 						       (__v16sf) __C,
3523 						       (__mmask16) __U, __R);
3524 }
3525 
3526 extern __inline __m512d
3527 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_fmsubadd_round_pd(__m512d __A,__m512d __B,__m512d __C,const int __R)3528 _mm512_fmsubadd_round_pd (__m512d __A, __m512d __B, __m512d __C, const int __R)
3529 {
3530   return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
3531 						       (__v8df) __B,
3532 						       -(__v8df) __C,
3533 						       (__mmask8) -1, __R);
3534 }
3535 
3536 extern __inline __m512d
3537 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_fmsubadd_round_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C,const int __R)3538 _mm512_mask_fmsubadd_round_pd (__m512d __A, __mmask8 __U, __m512d __B,
3539 			       __m512d __C, const int __R)
3540 {
3541   return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
3542 						       (__v8df) __B,
3543 						       -(__v8df) __C,
3544 						       (__mmask8) __U, __R);
3545 }
3546 
3547 extern __inline __m512d
3548 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask3_fmsubadd_round_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U,const int __R)3549 _mm512_mask3_fmsubadd_round_pd (__m512d __A, __m512d __B, __m512d __C,
3550 				__mmask8 __U, const int __R)
3551 {
3552   return (__m512d) __builtin_ia32_vfmsubaddpd512_mask3 ((__v8df) __A,
3553 							(__v8df) __B,
3554 							(__v8df) __C,
3555 							(__mmask8) __U, __R);
3556 }
3557 
3558 extern __inline __m512d
3559 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_fmsubadd_round_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C,const int __R)3560 _mm512_maskz_fmsubadd_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
3561 				__m512d __C, const int __R)
3562 {
3563   return (__m512d) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df) __A,
3564 							(__v8df) __B,
3565 							-(__v8df) __C,
3566 							(__mmask8) __U, __R);
3567 }
3568 
3569 extern __inline __m512
3570 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_fmsubadd_round_ps(__m512 __A,__m512 __B,__m512 __C,const int __R)3571 _mm512_fmsubadd_round_ps (__m512 __A, __m512 __B, __m512 __C, const int __R)
3572 {
3573   return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
3574 						      (__v16sf) __B,
3575 						      -(__v16sf) __C,
3576 						      (__mmask16) -1, __R);
3577 }
3578 
3579 extern __inline __m512
3580 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_fmsubadd_round_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C,const int __R)3581 _mm512_mask_fmsubadd_round_ps (__m512 __A, __mmask16 __U, __m512 __B,
3582 			       __m512 __C, const int __R)
3583 {
3584   return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
3585 						      (__v16sf) __B,
3586 						      -(__v16sf) __C,
3587 						      (__mmask16) __U, __R);
3588 }
3589 
3590 extern __inline __m512
3591 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask3_fmsubadd_round_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U,const int __R)3592 _mm512_mask3_fmsubadd_round_ps (__m512 __A, __m512 __B, __m512 __C,
3593 				__mmask16 __U, const int __R)
3594 {
3595   return (__m512) __builtin_ia32_vfmsubaddps512_mask3 ((__v16sf) __A,
3596 						       (__v16sf) __B,
3597 						       (__v16sf) __C,
3598 						       (__mmask16) __U, __R);
3599 }
3600 
3601 extern __inline __m512
3602 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_fmsubadd_round_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C,const int __R)3603 _mm512_maskz_fmsubadd_round_ps (__mmask16 __U, __m512 __A, __m512 __B,
3604 				__m512 __C, const int __R)
3605 {
3606   return (__m512) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf) __A,
3607 						       (__v16sf) __B,
3608 						       -(__v16sf) __C,
3609 						       (__mmask16) __U, __R);
3610 }
3611 
3612 extern __inline __m512d
3613 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_fnmadd_round_pd(__m512d __A,__m512d __B,__m512d __C,const int __R)3614 _mm512_fnmadd_round_pd (__m512d __A, __m512d __B, __m512d __C, const int __R)
3615 {
3616   return (__m512d) __builtin_ia32_vfnmaddpd512_mask ((__v8df) __A,
3617 						     (__v8df) __B,
3618 						     (__v8df) __C,
3619 						     (__mmask8) -1, __R);
3620 }
3621 
3622 extern __inline __m512d
3623 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_fnmadd_round_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C,const int __R)3624 _mm512_mask_fnmadd_round_pd (__m512d __A, __mmask8 __U, __m512d __B,
3625 			     __m512d __C, const int __R)
3626 {
3627   return (__m512d) __builtin_ia32_vfnmaddpd512_mask ((__v8df) __A,
3628 						     (__v8df) __B,
3629 						     (__v8df) __C,
3630 						     (__mmask8) __U, __R);
3631 }
3632 
3633 extern __inline __m512d
3634 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask3_fnmadd_round_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U,const int __R)3635 _mm512_mask3_fnmadd_round_pd (__m512d __A, __m512d __B, __m512d __C,
3636 			      __mmask8 __U, const int __R)
3637 {
3638   return (__m512d) __builtin_ia32_vfnmaddpd512_mask3 ((__v8df) __A,
3639 						      (__v8df) __B,
3640 						      (__v8df) __C,
3641 						      (__mmask8) __U, __R);
3642 }
3643 
3644 extern __inline __m512d
3645 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_fnmadd_round_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C,const int __R)3646 _mm512_maskz_fnmadd_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
3647 			      __m512d __C, const int __R)
3648 {
3649   return (__m512d) __builtin_ia32_vfnmaddpd512_maskz ((__v8df) __A,
3650 						      (__v8df) __B,
3651 						      (__v8df) __C,
3652 						      (__mmask8) __U, __R);
3653 }
3654 
3655 extern __inline __m512
3656 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_fnmadd_round_ps(__m512 __A,__m512 __B,__m512 __C,const int __R)3657 _mm512_fnmadd_round_ps (__m512 __A, __m512 __B, __m512 __C, const int __R)
3658 {
3659   return (__m512) __builtin_ia32_vfnmaddps512_mask ((__v16sf) __A,
3660 						    (__v16sf) __B,
3661 						    (__v16sf) __C,
3662 						    (__mmask16) -1, __R);
3663 }
3664 
3665 extern __inline __m512
3666 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_fnmadd_round_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C,const int __R)3667 _mm512_mask_fnmadd_round_ps (__m512 __A, __mmask16 __U, __m512 __B,
3668 			     __m512 __C, const int __R)
3669 {
3670   return (__m512) __builtin_ia32_vfnmaddps512_mask ((__v16sf) __A,
3671 						    (__v16sf) __B,
3672 						    (__v16sf) __C,
3673 						    (__mmask16) __U, __R);
3674 }
3675 
3676 extern __inline __m512
3677 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask3_fnmadd_round_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U,const int __R)3678 _mm512_mask3_fnmadd_round_ps (__m512 __A, __m512 __B, __m512 __C,
3679 			      __mmask16 __U, const int __R)
3680 {
3681   return (__m512) __builtin_ia32_vfnmaddps512_mask3 ((__v16sf) __A,
3682 						     (__v16sf) __B,
3683 						     (__v16sf) __C,
3684 						     (__mmask16) __U, __R);
3685 }
3686 
3687 extern __inline __m512
3688 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_fnmadd_round_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C,const int __R)3689 _mm512_maskz_fnmadd_round_ps (__mmask16 __U, __m512 __A, __m512 __B,
3690 			      __m512 __C, const int __R)
3691 {
3692   return (__m512) __builtin_ia32_vfnmaddps512_maskz ((__v16sf) __A,
3693 						     (__v16sf) __B,
3694 						     (__v16sf) __C,
3695 						     (__mmask16) __U, __R);
3696 }
3697 
3698 extern __inline __m512d
3699 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_fnmsub_round_pd(__m512d __A,__m512d __B,__m512d __C,const int __R)3700 _mm512_fnmsub_round_pd (__m512d __A, __m512d __B, __m512d __C, const int __R)
3701 {
3702   return (__m512d) __builtin_ia32_vfnmsubpd512_mask ((__v8df) __A,
3703 						     (__v8df) __B,
3704 						     (__v8df) __C,
3705 						     (__mmask8) -1, __R);
3706 }
3707 
3708 extern __inline __m512d
3709 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_fnmsub_round_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C,const int __R)3710 _mm512_mask_fnmsub_round_pd (__m512d __A, __mmask8 __U, __m512d __B,
3711 			     __m512d __C, const int __R)
3712 {
3713   return (__m512d) __builtin_ia32_vfnmsubpd512_mask ((__v8df) __A,
3714 						     (__v8df) __B,
3715 						     (__v8df) __C,
3716 						     (__mmask8) __U, __R);
3717 }
3718 
3719 extern __inline __m512d
3720 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask3_fnmsub_round_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U,const int __R)3721 _mm512_mask3_fnmsub_round_pd (__m512d __A, __m512d __B, __m512d __C,
3722 			      __mmask8 __U, const int __R)
3723 {
3724   return (__m512d) __builtin_ia32_vfnmsubpd512_mask3 ((__v8df) __A,
3725 						      (__v8df) __B,
3726 						      (__v8df) __C,
3727 						      (__mmask8) __U, __R);
3728 }
3729 
3730 extern __inline __m512d
3731 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_fnmsub_round_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C,const int __R)3732 _mm512_maskz_fnmsub_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
3733 			      __m512d __C, const int __R)
3734 {
3735   return (__m512d) __builtin_ia32_vfnmsubpd512_maskz ((__v8df) __A,
3736 						      (__v8df) __B,
3737 						      (__v8df) __C,
3738 						      (__mmask8) __U, __R);
3739 }
3740 
3741 extern __inline __m512
3742 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_fnmsub_round_ps(__m512 __A,__m512 __B,__m512 __C,const int __R)3743 _mm512_fnmsub_round_ps (__m512 __A, __m512 __B, __m512 __C, const int __R)
3744 {
3745   return (__m512) __builtin_ia32_vfnmsubps512_mask ((__v16sf) __A,
3746 						    (__v16sf) __B,
3747 						    (__v16sf) __C,
3748 						    (__mmask16) -1, __R);
3749 }
3750 
3751 extern __inline __m512
3752 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_fnmsub_round_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C,const int __R)3753 _mm512_mask_fnmsub_round_ps (__m512 __A, __mmask16 __U, __m512 __B,
3754 			     __m512 __C, const int __R)
3755 {
3756   return (__m512) __builtin_ia32_vfnmsubps512_mask ((__v16sf) __A,
3757 						    (__v16sf) __B,
3758 						    (__v16sf) __C,
3759 						    (__mmask16) __U, __R);
3760 }
3761 
3762 extern __inline __m512
3763 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask3_fnmsub_round_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U,const int __R)3764 _mm512_mask3_fnmsub_round_ps (__m512 __A, __m512 __B, __m512 __C,
3765 			      __mmask16 __U, const int __R)
3766 {
3767   return (__m512) __builtin_ia32_vfnmsubps512_mask3 ((__v16sf) __A,
3768 						     (__v16sf) __B,
3769 						     (__v16sf) __C,
3770 						     (__mmask16) __U, __R);
3771 }
3772 
3773 extern __inline __m512
3774 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_fnmsub_round_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C,const int __R)3775 _mm512_maskz_fnmsub_round_ps (__mmask16 __U, __m512 __A, __m512 __B,
3776 			      __m512 __C, const int __R)
3777 {
3778   return (__m512) __builtin_ia32_vfnmsubps512_maskz ((__v16sf) __A,
3779 						     (__v16sf) __B,
3780 						     (__v16sf) __C,
3781 						     (__mmask16) __U, __R);
3782 }
3783 #else
3784 #define _mm512_fmadd_round_pd(A, B, C, R)            \
3785     (__m512d)__builtin_ia32_vfmaddpd512_mask(A, B, C, -1, R)
3786 
3787 #define _mm512_mask_fmadd_round_pd(A, U, B, C, R)    \
3788     (__m512d)__builtin_ia32_vfmaddpd512_mask(A, B, C, U, R)
3789 
3790 #define _mm512_mask3_fmadd_round_pd(A, B, C, U, R)   \
3791     (__m512d)__builtin_ia32_vfmaddpd512_mask3(A, B, C, U, R)
3792 
3793 #define _mm512_maskz_fmadd_round_pd(U, A, B, C, R)   \
3794     (__m512d)__builtin_ia32_vfmaddpd512_maskz(A, B, C, U, R)
3795 
3796 #define _mm512_fmadd_round_ps(A, B, C, R)            \
3797     (__m512)__builtin_ia32_vfmaddps512_mask(A, B, C, -1, R)
3798 
3799 #define _mm512_mask_fmadd_round_ps(A, U, B, C, R)    \
3800     (__m512)__builtin_ia32_vfmaddps512_mask(A, B, C, U, R)
3801 
3802 #define _mm512_mask3_fmadd_round_ps(A, B, C, U, R)   \
3803     (__m512)__builtin_ia32_vfmaddps512_mask3(A, B, C, U, R)
3804 
3805 #define _mm512_maskz_fmadd_round_ps(U, A, B, C, R)   \
3806     (__m512)__builtin_ia32_vfmaddps512_maskz(A, B, C, U, R)
3807 
3808 #define _mm512_fmsub_round_pd(A, B, C, R)            \
3809     (__m512d)__builtin_ia32_vfmsubpd512_mask(A, B, C, -1, R)
3810 
3811 #define _mm512_mask_fmsub_round_pd(A, U, B, C, R)    \
3812     (__m512d)__builtin_ia32_vfmsubpd512_mask(A, B, C, U, R)
3813 
3814 #define _mm512_mask3_fmsub_round_pd(A, B, C, U, R)   \
3815     (__m512d)__builtin_ia32_vfmsubpd512_mask3(A, B, C, U, R)
3816 
3817 #define _mm512_maskz_fmsub_round_pd(U, A, B, C, R)   \
3818     (__m512d)__builtin_ia32_vfmsubpd512_maskz(A, B, C, U, R)
3819 
3820 #define _mm512_fmsub_round_ps(A, B, C, R)            \
3821     (__m512)__builtin_ia32_vfmsubps512_mask(A, B, C, -1, R)
3822 
3823 #define _mm512_mask_fmsub_round_ps(A, U, B, C, R)    \
3824     (__m512)__builtin_ia32_vfmsubps512_mask(A, B, C, U, R)
3825 
3826 #define _mm512_mask3_fmsub_round_ps(A, B, C, U, R)   \
3827     (__m512)__builtin_ia32_vfmsubps512_mask3(A, B, C, U, R)
3828 
3829 #define _mm512_maskz_fmsub_round_ps(U, A, B, C, R)   \
3830     (__m512)__builtin_ia32_vfmsubps512_maskz(A, B, C, U, R)
3831 
3832 #define _mm512_fmaddsub_round_pd(A, B, C, R)            \
3833     (__m512d)__builtin_ia32_vfmaddsubpd512_mask(A, B, C, -1, R)
3834 
3835 #define _mm512_mask_fmaddsub_round_pd(A, U, B, C, R)    \
3836     (__m512d)__builtin_ia32_vfmaddsubpd512_mask(A, B, C, U, R)
3837 
3838 #define _mm512_mask3_fmaddsub_round_pd(A, B, C, U, R)   \
3839     (__m512d)__builtin_ia32_vfmaddsubpd512_mask3(A, B, C, U, R)
3840 
3841 #define _mm512_maskz_fmaddsub_round_pd(U, A, B, C, R)   \
3842     (__m512d)__builtin_ia32_vfmaddsubpd512_maskz(A, B, C, U, R)
3843 
3844 #define _mm512_fmaddsub_round_ps(A, B, C, R)            \
3845     (__m512)__builtin_ia32_vfmaddsubps512_mask(A, B, C, -1, R)
3846 
3847 #define _mm512_mask_fmaddsub_round_ps(A, U, B, C, R)    \
3848     (__m512)__builtin_ia32_vfmaddsubps512_mask(A, B, C, U, R)
3849 
3850 #define _mm512_mask3_fmaddsub_round_ps(A, B, C, U, R)   \
3851     (__m512)__builtin_ia32_vfmaddsubps512_mask3(A, B, C, U, R)
3852 
3853 #define _mm512_maskz_fmaddsub_round_ps(U, A, B, C, R)   \
3854     (__m512)__builtin_ia32_vfmaddsubps512_maskz(A, B, C, U, R)
3855 
3856 #define _mm512_fmsubadd_round_pd(A, B, C, R)            \
3857     (__m512d)__builtin_ia32_vfmaddsubpd512_mask(A, B, -(C), -1, R)
3858 
3859 #define _mm512_mask_fmsubadd_round_pd(A, U, B, C, R)    \
3860     (__m512d)__builtin_ia32_vfmaddsubpd512_mask(A, B, -(C), U, R)
3861 
3862 #define _mm512_mask3_fmsubadd_round_pd(A, B, C, U, R)   \
3863     (__m512d)__builtin_ia32_vfmsubaddpd512_mask3(A, B, C, U, R)
3864 
3865 #define _mm512_maskz_fmsubadd_round_pd(U, A, B, C, R)   \
3866     (__m512d)__builtin_ia32_vfmaddsubpd512_maskz(A, B, -(C), U, R)
3867 
3868 #define _mm512_fmsubadd_round_ps(A, B, C, R)            \
3869     (__m512)__builtin_ia32_vfmaddsubps512_mask(A, B, -(C), -1, R)
3870 
3871 #define _mm512_mask_fmsubadd_round_ps(A, U, B, C, R)    \
3872     (__m512)__builtin_ia32_vfmaddsubps512_mask(A, B, -(C), U, R)
3873 
3874 #define _mm512_mask3_fmsubadd_round_ps(A, B, C, U, R)   \
3875     (__m512)__builtin_ia32_vfmsubaddps512_mask3(A, B, C, U, R)
3876 
3877 #define _mm512_maskz_fmsubadd_round_ps(U, A, B, C, R)   \
3878     (__m512)__builtin_ia32_vfmaddsubps512_maskz(A, B, -(C), U, R)
3879 
3880 #define _mm512_fnmadd_round_pd(A, B, C, R)            \
3881     (__m512d)__builtin_ia32_vfnmaddpd512_mask(A, B, C, -1, R)
3882 
3883 #define _mm512_mask_fnmadd_round_pd(A, U, B, C, R)    \
3884     (__m512d)__builtin_ia32_vfnmaddpd512_mask(A, B, C, U, R)
3885 
3886 #define _mm512_mask3_fnmadd_round_pd(A, B, C, U, R)   \
3887     (__m512d)__builtin_ia32_vfnmaddpd512_mask3(A, B, C, U, R)
3888 
3889 #define _mm512_maskz_fnmadd_round_pd(U, A, B, C, R)   \
3890     (__m512d)__builtin_ia32_vfnmaddpd512_maskz(A, B, C, U, R)
3891 
3892 #define _mm512_fnmadd_round_ps(A, B, C, R)            \
3893     (__m512)__builtin_ia32_vfnmaddps512_mask(A, B, C, -1, R)
3894 
3895 #define _mm512_mask_fnmadd_round_ps(A, U, B, C, R)    \
3896     (__m512)__builtin_ia32_vfnmaddps512_mask(A, B, C, U, R)
3897 
3898 #define _mm512_mask3_fnmadd_round_ps(A, B, C, U, R)   \
3899     (__m512)__builtin_ia32_vfnmaddps512_mask3(A, B, C, U, R)
3900 
3901 #define _mm512_maskz_fnmadd_round_ps(U, A, B, C, R)   \
3902     (__m512)__builtin_ia32_vfnmaddps512_maskz(A, B, C, U, R)
3903 
3904 #define _mm512_fnmsub_round_pd(A, B, C, R)            \
3905     (__m512d)__builtin_ia32_vfnmsubpd512_mask(A, B, C, -1, R)
3906 
3907 #define _mm512_mask_fnmsub_round_pd(A, U, B, C, R)    \
3908     (__m512d)__builtin_ia32_vfnmsubpd512_mask(A, B, C, U, R)
3909 
3910 #define _mm512_mask3_fnmsub_round_pd(A, B, C, U, R)   \
3911     (__m512d)__builtin_ia32_vfnmsubpd512_mask3(A, B, C, U, R)
3912 
3913 #define _mm512_maskz_fnmsub_round_pd(U, A, B, C, R)   \
3914     (__m512d)__builtin_ia32_vfnmsubpd512_maskz(A, B, C, U, R)
3915 
3916 #define _mm512_fnmsub_round_ps(A, B, C, R)            \
3917     (__m512)__builtin_ia32_vfnmsubps512_mask(A, B, C, -1, R)
3918 
3919 #define _mm512_mask_fnmsub_round_ps(A, U, B, C, R)    \
3920     (__m512)__builtin_ia32_vfnmsubps512_mask(A, B, C, U, R)
3921 
3922 #define _mm512_mask3_fnmsub_round_ps(A, B, C, U, R)   \
3923     (__m512)__builtin_ia32_vfnmsubps512_mask3(A, B, C, U, R)
3924 
3925 #define _mm512_maskz_fnmsub_round_ps(U, A, B, C, R)   \
3926     (__m512)__builtin_ia32_vfnmsubps512_maskz(A, B, C, U, R)
3927 #endif
3928 
3929 extern __inline __m512i
3930 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_abs_epi64(__m512i __A)3931 _mm512_abs_epi64 (__m512i __A)
3932 {
3933   return (__m512i) __builtin_ia32_pabsq512_mask ((__v8di) __A,
3934 						 (__v8di)
3935 						 _mm512_undefined_epi32 (),
3936 						 (__mmask8) -1);
3937 }
3938 
3939 extern __inline __m512i
3940 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_abs_epi64(__m512i __W,__mmask8 __U,__m512i __A)3941 _mm512_mask_abs_epi64 (__m512i __W, __mmask8 __U, __m512i __A)
3942 {
3943   return (__m512i) __builtin_ia32_pabsq512_mask ((__v8di) __A,
3944 						 (__v8di) __W,
3945 						 (__mmask8) __U);
3946 }
3947 
3948 extern __inline __m512i
3949 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_abs_epi64(__mmask8 __U,__m512i __A)3950 _mm512_maskz_abs_epi64 (__mmask8 __U, __m512i __A)
3951 {
3952   return (__m512i) __builtin_ia32_pabsq512_mask ((__v8di) __A,
3953 						 (__v8di)
3954 						 _mm512_setzero_si512 (),
3955 						 (__mmask8) __U);
3956 }
3957 
3958 extern __inline __m512i
3959 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_abs_epi32(__m512i __A)3960 _mm512_abs_epi32 (__m512i __A)
3961 {
3962   return (__m512i) __builtin_ia32_pabsd512_mask ((__v16si) __A,
3963 						 (__v16si)
3964 						 _mm512_undefined_epi32 (),
3965 						 (__mmask16) -1);
3966 }
3967 
3968 extern __inline __m512i
3969 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_abs_epi32(__m512i __W,__mmask16 __U,__m512i __A)3970 _mm512_mask_abs_epi32 (__m512i __W, __mmask16 __U, __m512i __A)
3971 {
3972   return (__m512i) __builtin_ia32_pabsd512_mask ((__v16si) __A,
3973 						 (__v16si) __W,
3974 						 (__mmask16) __U);
3975 }
3976 
3977 extern __inline __m512i
3978 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_abs_epi32(__mmask16 __U,__m512i __A)3979 _mm512_maskz_abs_epi32 (__mmask16 __U, __m512i __A)
3980 {
3981   return (__m512i) __builtin_ia32_pabsd512_mask ((__v16si) __A,
3982 						 (__v16si)
3983 						 _mm512_setzero_si512 (),
3984 						 (__mmask16) __U);
3985 }
3986 
3987 extern __inline __m512
3988 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_broadcastss_ps(__m128 __A)3989 _mm512_broadcastss_ps (__m128 __A)
3990 {
3991   return (__m512) __builtin_ia32_broadcastss512 ((__v4sf) __A,
3992 						 (__v16sf)
3993 						 _mm512_undefined_ps (),
3994 						 (__mmask16) -1);
3995 }
3996 
3997 extern __inline __m512
3998 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_broadcastss_ps(__m512 __O,__mmask16 __M,__m128 __A)3999 _mm512_mask_broadcastss_ps (__m512 __O, __mmask16 __M, __m128 __A)
4000 {
4001   return (__m512) __builtin_ia32_broadcastss512 ((__v4sf) __A,
4002 						 (__v16sf) __O, __M);
4003 }
4004 
4005 extern __inline __m512
4006 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_broadcastss_ps(__mmask16 __M,__m128 __A)4007 _mm512_maskz_broadcastss_ps (__mmask16 __M, __m128 __A)
4008 {
4009   return (__m512) __builtin_ia32_broadcastss512 ((__v4sf) __A,
4010 						 (__v16sf)
4011 						 _mm512_setzero_ps (),
4012 						 __M);
4013 }
4014 
4015 extern __inline __m512d
4016 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_broadcastsd_pd(__m128d __A)4017 _mm512_broadcastsd_pd (__m128d __A)
4018 {
4019   return (__m512d) __builtin_ia32_broadcastsd512 ((__v2df) __A,
4020 						  (__v8df)
4021 						  _mm512_undefined_pd (),
4022 						  (__mmask8) -1);
4023 }
4024 
4025 extern __inline __m512d
4026 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_broadcastsd_pd(__m512d __O,__mmask8 __M,__m128d __A)4027 _mm512_mask_broadcastsd_pd (__m512d __O, __mmask8 __M, __m128d __A)
4028 {
4029   return (__m512d) __builtin_ia32_broadcastsd512 ((__v2df) __A,
4030 						  (__v8df) __O, __M);
4031 }
4032 
4033 extern __inline __m512d
4034 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_broadcastsd_pd(__mmask8 __M,__m128d __A)4035 _mm512_maskz_broadcastsd_pd (__mmask8 __M, __m128d __A)
4036 {
4037   return (__m512d) __builtin_ia32_broadcastsd512 ((__v2df) __A,
4038 						  (__v8df)
4039 						  _mm512_setzero_pd (),
4040 						  __M);
4041 }
4042 
4043 extern __inline __m512i
4044 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_broadcastd_epi32(__m128i __A)4045 _mm512_broadcastd_epi32 (__m128i __A)
4046 {
4047   return (__m512i) __builtin_ia32_pbroadcastd512 ((__v4si) __A,
4048 						  (__v16si)
4049 						  _mm512_undefined_epi32 (),
4050 						  (__mmask16) -1);
4051 }
4052 
4053 extern __inline __m512i
4054 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_broadcastd_epi32(__m512i __O,__mmask16 __M,__m128i __A)4055 _mm512_mask_broadcastd_epi32 (__m512i __O, __mmask16 __M, __m128i __A)
4056 {
4057   return (__m512i) __builtin_ia32_pbroadcastd512 ((__v4si) __A,
4058 						  (__v16si) __O, __M);
4059 }
4060 
4061 extern __inline __m512i
4062 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_broadcastd_epi32(__mmask16 __M,__m128i __A)4063 _mm512_maskz_broadcastd_epi32 (__mmask16 __M, __m128i __A)
4064 {
4065   return (__m512i) __builtin_ia32_pbroadcastd512 ((__v4si) __A,
4066 						  (__v16si)
4067 						  _mm512_setzero_si512 (),
4068 						  __M);
4069 }
4070 
4071 extern __inline __m512i
4072 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_set1_epi32(int __A)4073 _mm512_set1_epi32 (int __A)
4074 {
4075   return (__m512i) __builtin_ia32_pbroadcastd512_gpr_mask (__A,
4076 							   (__v16si)
4077 							   _mm512_undefined_epi32 (),
4078 							   (__mmask16)(-1));
4079 }
4080 
4081 extern __inline __m512i
4082 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_set1_epi32(__m512i __O,__mmask16 __M,int __A)4083 _mm512_mask_set1_epi32 (__m512i __O, __mmask16 __M, int __A)
4084 {
4085   return (__m512i) __builtin_ia32_pbroadcastd512_gpr_mask (__A, (__v16si) __O,
4086 							   __M);
4087 }
4088 
4089 extern __inline __m512i
4090 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_set1_epi32(__mmask16 __M,int __A)4091 _mm512_maskz_set1_epi32 (__mmask16 __M, int __A)
4092 {
4093   return (__m512i)
4094 	 __builtin_ia32_pbroadcastd512_gpr_mask (__A,
4095 						 (__v16si) _mm512_setzero_si512 (),
4096 						 __M);
4097 }
4098 
4099 extern __inline __m512i
4100 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_broadcastq_epi64(__m128i __A)4101 _mm512_broadcastq_epi64 (__m128i __A)
4102 {
4103   return (__m512i) __builtin_ia32_pbroadcastq512 ((__v2di) __A,
4104 						  (__v8di)
4105 						  _mm512_undefined_epi32 (),
4106 						  (__mmask8) -1);
4107 }
4108 
4109 extern __inline __m512i
4110 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_broadcastq_epi64(__m512i __O,__mmask8 __M,__m128i __A)4111 _mm512_mask_broadcastq_epi64 (__m512i __O, __mmask8 __M, __m128i __A)
4112 {
4113   return (__m512i) __builtin_ia32_pbroadcastq512 ((__v2di) __A,
4114 						  (__v8di) __O, __M);
4115 }
4116 
4117 extern __inline __m512i
4118 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_broadcastq_epi64(__mmask8 __M,__m128i __A)4119 _mm512_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A)
4120 {
4121   return (__m512i) __builtin_ia32_pbroadcastq512 ((__v2di) __A,
4122 						  (__v8di)
4123 						  _mm512_setzero_si512 (),
4124 						  __M);
4125 }
4126 
4127 extern __inline __m512i
4128 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_set1_epi64(long long __A)4129 _mm512_set1_epi64 (long long __A)
4130 {
4131   return (__m512i) __builtin_ia32_pbroadcastq512_gpr_mask (__A,
4132 							   (__v8di)
4133 							   _mm512_undefined_epi32 (),
4134 							   (__mmask8)(-1));
4135 }
4136 
4137 extern __inline __m512i
4138 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_set1_epi64(__m512i __O,__mmask8 __M,long long __A)4139 _mm512_mask_set1_epi64 (__m512i __O, __mmask8 __M, long long __A)
4140 {
4141   return (__m512i) __builtin_ia32_pbroadcastq512_gpr_mask (__A, (__v8di) __O,
4142 							   __M);
4143 }
4144 
4145 extern __inline __m512i
4146 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_set1_epi64(__mmask8 __M,long long __A)4147 _mm512_maskz_set1_epi64 (__mmask8 __M, long long __A)
4148 {
4149   return (__m512i)
4150 	 __builtin_ia32_pbroadcastq512_gpr_mask (__A,
4151 						 (__v8di) _mm512_setzero_si512 (),
4152 						 __M);
4153 }
4154 
4155 extern __inline __m512
4156 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_broadcast_f32x4(__m128 __A)4157 _mm512_broadcast_f32x4 (__m128 __A)
4158 {
4159   return (__m512) __builtin_ia32_broadcastf32x4_512 ((__v4sf) __A,
4160 						     (__v16sf)
4161 						     _mm512_undefined_ps (),
4162 						     (__mmask16) -1);
4163 }
4164 
4165 extern __inline __m512
4166 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_broadcast_f32x4(__m512 __O,__mmask16 __M,__m128 __A)4167 _mm512_mask_broadcast_f32x4 (__m512 __O, __mmask16 __M, __m128 __A)
4168 {
4169   return (__m512) __builtin_ia32_broadcastf32x4_512 ((__v4sf) __A,
4170 						     (__v16sf) __O,
4171 						     __M);
4172 }
4173 
4174 extern __inline __m512
4175 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_broadcast_f32x4(__mmask16 __M,__m128 __A)4176 _mm512_maskz_broadcast_f32x4 (__mmask16 __M, __m128 __A)
4177 {
4178   return (__m512) __builtin_ia32_broadcastf32x4_512 ((__v4sf) __A,
4179 						     (__v16sf)
4180 						     _mm512_setzero_ps (),
4181 						     __M);
4182 }
4183 
4184 extern __inline __m512i
4185 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_broadcast_i32x4(__m128i __A)4186 _mm512_broadcast_i32x4 (__m128i __A)
4187 {
4188   return (__m512i) __builtin_ia32_broadcasti32x4_512 ((__v4si) __A,
4189 						      (__v16si)
4190 						      _mm512_undefined_epi32 (),
4191 						      (__mmask16) -1);
4192 }
4193 
4194 extern __inline __m512i
4195 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_broadcast_i32x4(__m512i __O,__mmask16 __M,__m128i __A)4196 _mm512_mask_broadcast_i32x4 (__m512i __O, __mmask16 __M, __m128i __A)
4197 {
4198   return (__m512i) __builtin_ia32_broadcasti32x4_512 ((__v4si) __A,
4199 						      (__v16si) __O,
4200 						      __M);
4201 }
4202 
4203 extern __inline __m512i
4204 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_broadcast_i32x4(__mmask16 __M,__m128i __A)4205 _mm512_maskz_broadcast_i32x4 (__mmask16 __M, __m128i __A)
4206 {
4207   return (__m512i) __builtin_ia32_broadcasti32x4_512 ((__v4si) __A,
4208 						      (__v16si)
4209 						      _mm512_setzero_si512 (),
4210 						      __M);
4211 }
4212 
4213 extern __inline __m512d
4214 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_broadcast_f64x4(__m256d __A)4215 _mm512_broadcast_f64x4 (__m256d __A)
4216 {
4217   return (__m512d) __builtin_ia32_broadcastf64x4_512 ((__v4df) __A,
4218 						      (__v8df)
4219 						      _mm512_undefined_pd (),
4220 						      (__mmask8) -1);
4221 }
4222 
4223 extern __inline __m512d
4224 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_broadcast_f64x4(__m512d __O,__mmask8 __M,__m256d __A)4225 _mm512_mask_broadcast_f64x4 (__m512d __O, __mmask8 __M, __m256d __A)
4226 {
4227   return (__m512d) __builtin_ia32_broadcastf64x4_512 ((__v4df) __A,
4228 						      (__v8df) __O,
4229 						      __M);
4230 }
4231 
4232 extern __inline __m512d
4233 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_broadcast_f64x4(__mmask8 __M,__m256d __A)4234 _mm512_maskz_broadcast_f64x4 (__mmask8 __M, __m256d __A)
4235 {
4236   return (__m512d) __builtin_ia32_broadcastf64x4_512 ((__v4df) __A,
4237 						      (__v8df)
4238 						      _mm512_setzero_pd (),
4239 						      __M);
4240 }
4241 
4242 extern __inline __m512i
4243 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_broadcast_i64x4(__m256i __A)4244 _mm512_broadcast_i64x4 (__m256i __A)
4245 {
4246   return (__m512i) __builtin_ia32_broadcasti64x4_512 ((__v4di) __A,
4247 						      (__v8di)
4248 						      _mm512_undefined_epi32 (),
4249 						      (__mmask8) -1);
4250 }
4251 
4252 extern __inline __m512i
4253 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_broadcast_i64x4(__m512i __O,__mmask8 __M,__m256i __A)4254 _mm512_mask_broadcast_i64x4 (__m512i __O, __mmask8 __M, __m256i __A)
4255 {
4256   return (__m512i) __builtin_ia32_broadcasti64x4_512 ((__v4di) __A,
4257 						      (__v8di) __O,
4258 						      __M);
4259 }
4260 
4261 extern __inline __m512i
4262 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_broadcast_i64x4(__mmask8 __M,__m256i __A)4263 _mm512_maskz_broadcast_i64x4 (__mmask8 __M, __m256i __A)
4264 {
4265   return (__m512i) __builtin_ia32_broadcasti64x4_512 ((__v4di) __A,
4266 						      (__v8di)
4267 						      _mm512_setzero_si512 (),
4268 						      __M);
4269 }
4270 
4271 typedef enum
4272 {
4273   _MM_PERM_AAAA = 0x00, _MM_PERM_AAAB = 0x01, _MM_PERM_AAAC = 0x02,
4274   _MM_PERM_AAAD = 0x03, _MM_PERM_AABA = 0x04, _MM_PERM_AABB = 0x05,
4275   _MM_PERM_AABC = 0x06, _MM_PERM_AABD = 0x07, _MM_PERM_AACA = 0x08,
4276   _MM_PERM_AACB = 0x09, _MM_PERM_AACC = 0x0A, _MM_PERM_AACD = 0x0B,
4277   _MM_PERM_AADA = 0x0C, _MM_PERM_AADB = 0x0D, _MM_PERM_AADC = 0x0E,
4278   _MM_PERM_AADD = 0x0F, _MM_PERM_ABAA = 0x10, _MM_PERM_ABAB = 0x11,
4279   _MM_PERM_ABAC = 0x12, _MM_PERM_ABAD = 0x13, _MM_PERM_ABBA = 0x14,
4280   _MM_PERM_ABBB = 0x15, _MM_PERM_ABBC = 0x16, _MM_PERM_ABBD = 0x17,
4281   _MM_PERM_ABCA = 0x18, _MM_PERM_ABCB = 0x19, _MM_PERM_ABCC = 0x1A,
4282   _MM_PERM_ABCD = 0x1B, _MM_PERM_ABDA = 0x1C, _MM_PERM_ABDB = 0x1D,
4283   _MM_PERM_ABDC = 0x1E, _MM_PERM_ABDD = 0x1F, _MM_PERM_ACAA = 0x20,
4284   _MM_PERM_ACAB = 0x21, _MM_PERM_ACAC = 0x22, _MM_PERM_ACAD = 0x23,
4285   _MM_PERM_ACBA = 0x24, _MM_PERM_ACBB = 0x25, _MM_PERM_ACBC = 0x26,
4286   _MM_PERM_ACBD = 0x27, _MM_PERM_ACCA = 0x28, _MM_PERM_ACCB = 0x29,
4287   _MM_PERM_ACCC = 0x2A, _MM_PERM_ACCD = 0x2B, _MM_PERM_ACDA = 0x2C,
4288   _MM_PERM_ACDB = 0x2D, _MM_PERM_ACDC = 0x2E, _MM_PERM_ACDD = 0x2F,
4289   _MM_PERM_ADAA = 0x30, _MM_PERM_ADAB = 0x31, _MM_PERM_ADAC = 0x32,
4290   _MM_PERM_ADAD = 0x33, _MM_PERM_ADBA = 0x34, _MM_PERM_ADBB = 0x35,
4291   _MM_PERM_ADBC = 0x36, _MM_PERM_ADBD = 0x37, _MM_PERM_ADCA = 0x38,
4292   _MM_PERM_ADCB = 0x39, _MM_PERM_ADCC = 0x3A, _MM_PERM_ADCD = 0x3B,
4293   _MM_PERM_ADDA = 0x3C, _MM_PERM_ADDB = 0x3D, _MM_PERM_ADDC = 0x3E,
4294   _MM_PERM_ADDD = 0x3F, _MM_PERM_BAAA = 0x40, _MM_PERM_BAAB = 0x41,
4295   _MM_PERM_BAAC = 0x42, _MM_PERM_BAAD = 0x43, _MM_PERM_BABA = 0x44,
4296   _MM_PERM_BABB = 0x45, _MM_PERM_BABC = 0x46, _MM_PERM_BABD = 0x47,
4297   _MM_PERM_BACA = 0x48, _MM_PERM_BACB = 0x49, _MM_PERM_BACC = 0x4A,
4298   _MM_PERM_BACD = 0x4B, _MM_PERM_BADA = 0x4C, _MM_PERM_BADB = 0x4D,
4299   _MM_PERM_BADC = 0x4E, _MM_PERM_BADD = 0x4F, _MM_PERM_BBAA = 0x50,
4300   _MM_PERM_BBAB = 0x51, _MM_PERM_BBAC = 0x52, _MM_PERM_BBAD = 0x53,
4301   _MM_PERM_BBBA = 0x54, _MM_PERM_BBBB = 0x55, _MM_PERM_BBBC = 0x56,
4302   _MM_PERM_BBBD = 0x57, _MM_PERM_BBCA = 0x58, _MM_PERM_BBCB = 0x59,
4303   _MM_PERM_BBCC = 0x5A, _MM_PERM_BBCD = 0x5B, _MM_PERM_BBDA = 0x5C,
4304   _MM_PERM_BBDB = 0x5D, _MM_PERM_BBDC = 0x5E, _MM_PERM_BBDD = 0x5F,
4305   _MM_PERM_BCAA = 0x60, _MM_PERM_BCAB = 0x61, _MM_PERM_BCAC = 0x62,
4306   _MM_PERM_BCAD = 0x63, _MM_PERM_BCBA = 0x64, _MM_PERM_BCBB = 0x65,
4307   _MM_PERM_BCBC = 0x66, _MM_PERM_BCBD = 0x67, _MM_PERM_BCCA = 0x68,
4308   _MM_PERM_BCCB = 0x69, _MM_PERM_BCCC = 0x6A, _MM_PERM_BCCD = 0x6B,
4309   _MM_PERM_BCDA = 0x6C, _MM_PERM_BCDB = 0x6D, _MM_PERM_BCDC = 0x6E,
4310   _MM_PERM_BCDD = 0x6F, _MM_PERM_BDAA = 0x70, _MM_PERM_BDAB = 0x71,
4311   _MM_PERM_BDAC = 0x72, _MM_PERM_BDAD = 0x73, _MM_PERM_BDBA = 0x74,
4312   _MM_PERM_BDBB = 0x75, _MM_PERM_BDBC = 0x76, _MM_PERM_BDBD = 0x77,
4313   _MM_PERM_BDCA = 0x78, _MM_PERM_BDCB = 0x79, _MM_PERM_BDCC = 0x7A,
4314   _MM_PERM_BDCD = 0x7B, _MM_PERM_BDDA = 0x7C, _MM_PERM_BDDB = 0x7D,
4315   _MM_PERM_BDDC = 0x7E, _MM_PERM_BDDD = 0x7F, _MM_PERM_CAAA = 0x80,
4316   _MM_PERM_CAAB = 0x81, _MM_PERM_CAAC = 0x82, _MM_PERM_CAAD = 0x83,
4317   _MM_PERM_CABA = 0x84, _MM_PERM_CABB = 0x85, _MM_PERM_CABC = 0x86,
4318   _MM_PERM_CABD = 0x87, _MM_PERM_CACA = 0x88, _MM_PERM_CACB = 0x89,
4319   _MM_PERM_CACC = 0x8A, _MM_PERM_CACD = 0x8B, _MM_PERM_CADA = 0x8C,
4320   _MM_PERM_CADB = 0x8D, _MM_PERM_CADC = 0x8E, _MM_PERM_CADD = 0x8F,
4321   _MM_PERM_CBAA = 0x90, _MM_PERM_CBAB = 0x91, _MM_PERM_CBAC = 0x92,
4322   _MM_PERM_CBAD = 0x93, _MM_PERM_CBBA = 0x94, _MM_PERM_CBBB = 0x95,
4323   _MM_PERM_CBBC = 0x96, _MM_PERM_CBBD = 0x97, _MM_PERM_CBCA = 0x98,
4324   _MM_PERM_CBCB = 0x99, _MM_PERM_CBCC = 0x9A, _MM_PERM_CBCD = 0x9B,
4325   _MM_PERM_CBDA = 0x9C, _MM_PERM_CBDB = 0x9D, _MM_PERM_CBDC = 0x9E,
4326   _MM_PERM_CBDD = 0x9F, _MM_PERM_CCAA = 0xA0, _MM_PERM_CCAB = 0xA1,
4327   _MM_PERM_CCAC = 0xA2, _MM_PERM_CCAD = 0xA3, _MM_PERM_CCBA = 0xA4,
4328   _MM_PERM_CCBB = 0xA5, _MM_PERM_CCBC = 0xA6, _MM_PERM_CCBD = 0xA7,
4329   _MM_PERM_CCCA = 0xA8, _MM_PERM_CCCB = 0xA9, _MM_PERM_CCCC = 0xAA,
4330   _MM_PERM_CCCD = 0xAB, _MM_PERM_CCDA = 0xAC, _MM_PERM_CCDB = 0xAD,
4331   _MM_PERM_CCDC = 0xAE, _MM_PERM_CCDD = 0xAF, _MM_PERM_CDAA = 0xB0,
4332   _MM_PERM_CDAB = 0xB1, _MM_PERM_CDAC = 0xB2, _MM_PERM_CDAD = 0xB3,
4333   _MM_PERM_CDBA = 0xB4, _MM_PERM_CDBB = 0xB5, _MM_PERM_CDBC = 0xB6,
4334   _MM_PERM_CDBD = 0xB7, _MM_PERM_CDCA = 0xB8, _MM_PERM_CDCB = 0xB9,
4335   _MM_PERM_CDCC = 0xBA, _MM_PERM_CDCD = 0xBB, _MM_PERM_CDDA = 0xBC,
4336   _MM_PERM_CDDB = 0xBD, _MM_PERM_CDDC = 0xBE, _MM_PERM_CDDD = 0xBF,
4337   _MM_PERM_DAAA = 0xC0, _MM_PERM_DAAB = 0xC1, _MM_PERM_DAAC = 0xC2,
4338   _MM_PERM_DAAD = 0xC3, _MM_PERM_DABA = 0xC4, _MM_PERM_DABB = 0xC5,
4339   _MM_PERM_DABC = 0xC6, _MM_PERM_DABD = 0xC7, _MM_PERM_DACA = 0xC8,
4340   _MM_PERM_DACB = 0xC9, _MM_PERM_DACC = 0xCA, _MM_PERM_DACD = 0xCB,
4341   _MM_PERM_DADA = 0xCC, _MM_PERM_DADB = 0xCD, _MM_PERM_DADC = 0xCE,
4342   _MM_PERM_DADD = 0xCF, _MM_PERM_DBAA = 0xD0, _MM_PERM_DBAB = 0xD1,
4343   _MM_PERM_DBAC = 0xD2, _MM_PERM_DBAD = 0xD3, _MM_PERM_DBBA = 0xD4,
4344   _MM_PERM_DBBB = 0xD5, _MM_PERM_DBBC = 0xD6, _MM_PERM_DBBD = 0xD7,
4345   _MM_PERM_DBCA = 0xD8, _MM_PERM_DBCB = 0xD9, _MM_PERM_DBCC = 0xDA,
4346   _MM_PERM_DBCD = 0xDB, _MM_PERM_DBDA = 0xDC, _MM_PERM_DBDB = 0xDD,
4347   _MM_PERM_DBDC = 0xDE, _MM_PERM_DBDD = 0xDF, _MM_PERM_DCAA = 0xE0,
4348   _MM_PERM_DCAB = 0xE1, _MM_PERM_DCAC = 0xE2, _MM_PERM_DCAD = 0xE3,
4349   _MM_PERM_DCBA = 0xE4, _MM_PERM_DCBB = 0xE5, _MM_PERM_DCBC = 0xE6,
4350   _MM_PERM_DCBD = 0xE7, _MM_PERM_DCCA = 0xE8, _MM_PERM_DCCB = 0xE9,
4351   _MM_PERM_DCCC = 0xEA, _MM_PERM_DCCD = 0xEB, _MM_PERM_DCDA = 0xEC,
4352   _MM_PERM_DCDB = 0xED, _MM_PERM_DCDC = 0xEE, _MM_PERM_DCDD = 0xEF,
4353   _MM_PERM_DDAA = 0xF0, _MM_PERM_DDAB = 0xF1, _MM_PERM_DDAC = 0xF2,
4354   _MM_PERM_DDAD = 0xF3, _MM_PERM_DDBA = 0xF4, _MM_PERM_DDBB = 0xF5,
4355   _MM_PERM_DDBC = 0xF6, _MM_PERM_DDBD = 0xF7, _MM_PERM_DDCA = 0xF8,
4356   _MM_PERM_DDCB = 0xF9, _MM_PERM_DDCC = 0xFA, _MM_PERM_DDCD = 0xFB,
4357   _MM_PERM_DDDA = 0xFC, _MM_PERM_DDDB = 0xFD, _MM_PERM_DDDC = 0xFE,
4358   _MM_PERM_DDDD = 0xFF
4359 } _MM_PERM_ENUM;
4360 
4361 #ifdef __OPTIMIZE__
4362 extern __inline __m512i
4363 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_shuffle_epi32(__m512i __A,_MM_PERM_ENUM __mask)4364 _mm512_shuffle_epi32 (__m512i __A, _MM_PERM_ENUM __mask)
4365 {
4366   return (__m512i) __builtin_ia32_pshufd512_mask ((__v16si) __A,
4367 						  __mask,
4368 						  (__v16si)
4369 						  _mm512_undefined_epi32 (),
4370 						  (__mmask16) -1);
4371 }
4372 
4373 extern __inline __m512i
4374 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_shuffle_epi32(__m512i __W,__mmask16 __U,__m512i __A,_MM_PERM_ENUM __mask)4375 _mm512_mask_shuffle_epi32 (__m512i __W, __mmask16 __U, __m512i __A,
4376 			   _MM_PERM_ENUM __mask)
4377 {
4378   return (__m512i) __builtin_ia32_pshufd512_mask ((__v16si) __A,
4379 						  __mask,
4380 						  (__v16si) __W,
4381 						  (__mmask16) __U);
4382 }
4383 
4384 extern __inline __m512i
4385 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_shuffle_epi32(__mmask16 __U,__m512i __A,_MM_PERM_ENUM __mask)4386 _mm512_maskz_shuffle_epi32 (__mmask16 __U, __m512i __A, _MM_PERM_ENUM __mask)
4387 {
4388   return (__m512i) __builtin_ia32_pshufd512_mask ((__v16si) __A,
4389 						  __mask,
4390 						  (__v16si)
4391 						  _mm512_setzero_si512 (),
4392 						  (__mmask16) __U);
4393 }
4394 
4395 extern __inline __m512i
4396 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_shuffle_i64x2(__m512i __A,__m512i __B,const int __imm)4397 _mm512_shuffle_i64x2 (__m512i __A, __m512i __B, const int __imm)
4398 {
4399   return (__m512i) __builtin_ia32_shuf_i64x2_mask ((__v8di) __A,
4400 						   (__v8di) __B, __imm,
4401 						   (__v8di)
4402 						   _mm512_undefined_epi32 (),
4403 						   (__mmask8) -1);
4404 }
4405 
4406 extern __inline __m512i
4407 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_shuffle_i64x2(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B,const int __imm)4408 _mm512_mask_shuffle_i64x2 (__m512i __W, __mmask8 __U, __m512i __A,
4409 			   __m512i __B, const int __imm)
4410 {
4411   return (__m512i) __builtin_ia32_shuf_i64x2_mask ((__v8di) __A,
4412 						   (__v8di) __B, __imm,
4413 						   (__v8di) __W,
4414 						   (__mmask8) __U);
4415 }
4416 
4417 extern __inline __m512i
4418 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_shuffle_i64x2(__mmask8 __U,__m512i __A,__m512i __B,const int __imm)4419 _mm512_maskz_shuffle_i64x2 (__mmask8 __U, __m512i __A, __m512i __B,
4420 			    const int __imm)
4421 {
4422   return (__m512i) __builtin_ia32_shuf_i64x2_mask ((__v8di) __A,
4423 						   (__v8di) __B, __imm,
4424 						   (__v8di)
4425 						   _mm512_setzero_si512 (),
4426 						   (__mmask8) __U);
4427 }
4428 
4429 extern __inline __m512i
4430 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_shuffle_i32x4(__m512i __A,__m512i __B,const int __imm)4431 _mm512_shuffle_i32x4 (__m512i __A, __m512i __B, const int __imm)
4432 {
4433   return (__m512i) __builtin_ia32_shuf_i32x4_mask ((__v16si) __A,
4434 						   (__v16si) __B,
4435 						   __imm,
4436 						   (__v16si)
4437 						   _mm512_undefined_epi32 (),
4438 						   (__mmask16) -1);
4439 }
4440 
4441 extern __inline __m512i
4442 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_shuffle_i32x4(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B,const int __imm)4443 _mm512_mask_shuffle_i32x4 (__m512i __W, __mmask16 __U, __m512i __A,
4444 			   __m512i __B, const int __imm)
4445 {
4446   return (__m512i) __builtin_ia32_shuf_i32x4_mask ((__v16si) __A,
4447 						   (__v16si) __B,
4448 						   __imm,
4449 						   (__v16si) __W,
4450 						   (__mmask16) __U);
4451 }
4452 
4453 extern __inline __m512i
4454 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_shuffle_i32x4(__mmask16 __U,__m512i __A,__m512i __B,const int __imm)4455 _mm512_maskz_shuffle_i32x4 (__mmask16 __U, __m512i __A, __m512i __B,
4456 			    const int __imm)
4457 {
4458   return (__m512i) __builtin_ia32_shuf_i32x4_mask ((__v16si) __A,
4459 						   (__v16si) __B,
4460 						   __imm,
4461 						   (__v16si)
4462 						   _mm512_setzero_si512 (),
4463 						   (__mmask16) __U);
4464 }
4465 
4466 extern __inline __m512d
4467 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_shuffle_f64x2(__m512d __A,__m512d __B,const int __imm)4468 _mm512_shuffle_f64x2 (__m512d __A, __m512d __B, const int __imm)
4469 {
4470   return (__m512d) __builtin_ia32_shuf_f64x2_mask ((__v8df) __A,
4471 						   (__v8df) __B, __imm,
4472 						   (__v8df)
4473 						   _mm512_undefined_pd (),
4474 						   (__mmask8) -1);
4475 }
4476 
4477 extern __inline __m512d
4478 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_shuffle_f64x2(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B,const int __imm)4479 _mm512_mask_shuffle_f64x2 (__m512d __W, __mmask8 __U, __m512d __A,
4480 			   __m512d __B, const int __imm)
4481 {
4482   return (__m512d) __builtin_ia32_shuf_f64x2_mask ((__v8df) __A,
4483 						   (__v8df) __B, __imm,
4484 						   (__v8df) __W,
4485 						   (__mmask8) __U);
4486 }
4487 
4488 extern __inline __m512d
4489 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_shuffle_f64x2(__mmask8 __U,__m512d __A,__m512d __B,const int __imm)4490 _mm512_maskz_shuffle_f64x2 (__mmask8 __U, __m512d __A, __m512d __B,
4491 			    const int __imm)
4492 {
4493   return (__m512d) __builtin_ia32_shuf_f64x2_mask ((__v8df) __A,
4494 						   (__v8df) __B, __imm,
4495 						   (__v8df)
4496 						   _mm512_setzero_pd (),
4497 						   (__mmask8) __U);
4498 }
4499 
4500 extern __inline __m512
4501 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_shuffle_f32x4(__m512 __A,__m512 __B,const int __imm)4502 _mm512_shuffle_f32x4 (__m512 __A, __m512 __B, const int __imm)
4503 {
4504   return (__m512) __builtin_ia32_shuf_f32x4_mask ((__v16sf) __A,
4505 						  (__v16sf) __B, __imm,
4506 						  (__v16sf)
4507 						  _mm512_undefined_ps (),
4508 						  (__mmask16) -1);
4509 }
4510 
4511 extern __inline __m512
4512 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_shuffle_f32x4(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B,const int __imm)4513 _mm512_mask_shuffle_f32x4 (__m512 __W, __mmask16 __U, __m512 __A,
4514 			   __m512 __B, const int __imm)
4515 {
4516   return (__m512) __builtin_ia32_shuf_f32x4_mask ((__v16sf) __A,
4517 						  (__v16sf) __B, __imm,
4518 						  (__v16sf) __W,
4519 						  (__mmask16) __U);
4520 }
4521 
4522 extern __inline __m512
4523 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_shuffle_f32x4(__mmask16 __U,__m512 __A,__m512 __B,const int __imm)4524 _mm512_maskz_shuffle_f32x4 (__mmask16 __U, __m512 __A, __m512 __B,
4525 			    const int __imm)
4526 {
4527   return (__m512) __builtin_ia32_shuf_f32x4_mask ((__v16sf) __A,
4528 						  (__v16sf) __B, __imm,
4529 						  (__v16sf)
4530 						  _mm512_setzero_ps (),
4531 						  (__mmask16) __U);
4532 }
4533 
4534 #else
4535 #define _mm512_shuffle_epi32(X, C)                                      \
4536   ((__m512i)  __builtin_ia32_pshufd512_mask ((__v16si)(__m512i)(X), (int)(C),\
4537     (__v16si)(__m512i)_mm512_undefined_epi32 (),\
4538     (__mmask16)-1))
4539 
4540 #define _mm512_mask_shuffle_epi32(W, U, X, C)                           \
4541   ((__m512i)  __builtin_ia32_pshufd512_mask ((__v16si)(__m512i)(X), (int)(C),\
4542     (__v16si)(__m512i)(W),\
4543     (__mmask16)(U)))
4544 
4545 #define _mm512_maskz_shuffle_epi32(U, X, C)                             \
4546   ((__m512i)  __builtin_ia32_pshufd512_mask ((__v16si)(__m512i)(X), (int)(C),\
4547     (__v16si)(__m512i)_mm512_setzero_si512 (),\
4548     (__mmask16)(U)))
4549 
4550 #define _mm512_shuffle_i64x2(X, Y, C)                                   \
4551   ((__m512i)  __builtin_ia32_shuf_i64x2_mask ((__v8di)(__m512i)(X),     \
4552       (__v8di)(__m512i)(Y), (int)(C),\
4553     (__v8di)(__m512i)_mm512_undefined_epi32 (),\
4554     (__mmask8)-1))
4555 
4556 #define _mm512_mask_shuffle_i64x2(W, U, X, Y, C)                        \
4557   ((__m512i)  __builtin_ia32_shuf_i64x2_mask ((__v8di)(__m512i)(X),     \
4558       (__v8di)(__m512i)(Y), (int)(C),\
4559     (__v8di)(__m512i)(W),\
4560     (__mmask8)(U)))
4561 
4562 #define _mm512_maskz_shuffle_i64x2(U, X, Y, C)                          \
4563   ((__m512i)  __builtin_ia32_shuf_i64x2_mask ((__v8di)(__m512i)(X),     \
4564       (__v8di)(__m512i)(Y), (int)(C),\
4565     (__v8di)(__m512i)_mm512_setzero_si512 (),\
4566     (__mmask8)(U)))
4567 
4568 #define _mm512_shuffle_i32x4(X, Y, C)                                   \
4569   ((__m512i)  __builtin_ia32_shuf_i32x4_mask ((__v16si)(__m512i)(X),    \
4570       (__v16si)(__m512i)(Y), (int)(C),\
4571     (__v16si)(__m512i)_mm512_undefined_epi32 (),\
4572     (__mmask16)-1))
4573 
4574 #define _mm512_mask_shuffle_i32x4(W, U, X, Y, C)                        \
4575   ((__m512i)  __builtin_ia32_shuf_i32x4_mask ((__v16si)(__m512i)(X),    \
4576       (__v16si)(__m512i)(Y), (int)(C),\
4577     (__v16si)(__m512i)(W),\
4578     (__mmask16)(U)))
4579 
4580 #define _mm512_maskz_shuffle_i32x4(U, X, Y, C)                          \
4581   ((__m512i)  __builtin_ia32_shuf_i32x4_mask ((__v16si)(__m512i)(X),    \
4582       (__v16si)(__m512i)(Y), (int)(C),\
4583     (__v16si)(__m512i)_mm512_setzero_si512 (),\
4584     (__mmask16)(U)))
4585 
4586 #define _mm512_shuffle_f64x2(X, Y, C)                                   \
4587   ((__m512d)  __builtin_ia32_shuf_f64x2_mask ((__v8df)(__m512d)(X),     \
4588       (__v8df)(__m512d)(Y), (int)(C),\
4589     (__v8df)(__m512d)_mm512_undefined_pd(),\
4590     (__mmask8)-1))
4591 
4592 #define _mm512_mask_shuffle_f64x2(W, U, X, Y, C)                        \
4593   ((__m512d)  __builtin_ia32_shuf_f64x2_mask ((__v8df)(__m512d)(X),     \
4594       (__v8df)(__m512d)(Y), (int)(C),\
4595     (__v8df)(__m512d)(W),\
4596     (__mmask8)(U)))
4597 
4598 #define _mm512_maskz_shuffle_f64x2(U, X, Y, C)                         \
4599   ((__m512d)  __builtin_ia32_shuf_f64x2_mask ((__v8df)(__m512d)(X),    \
4600       (__v8df)(__m512d)(Y), (int)(C),\
4601     (__v8df)(__m512d)_mm512_setzero_pd(),\
4602     (__mmask8)(U)))
4603 
4604 #define _mm512_shuffle_f32x4(X, Y, C)                                  \
4605   ((__m512)  __builtin_ia32_shuf_f32x4_mask ((__v16sf)(__m512)(X),     \
4606       (__v16sf)(__m512)(Y), (int)(C),\
4607     (__v16sf)(__m512)_mm512_undefined_ps(),\
4608     (__mmask16)-1))
4609 
4610 #define _mm512_mask_shuffle_f32x4(W, U, X, Y, C)                       \
4611   ((__m512)  __builtin_ia32_shuf_f32x4_mask ((__v16sf)(__m512)(X),     \
4612       (__v16sf)(__m512)(Y), (int)(C),\
4613     (__v16sf)(__m512)(W),\
4614     (__mmask16)(U)))
4615 
4616 #define _mm512_maskz_shuffle_f32x4(U, X, Y, C)                         \
4617   ((__m512)  __builtin_ia32_shuf_f32x4_mask ((__v16sf)(__m512)(X),     \
4618       (__v16sf)(__m512)(Y), (int)(C),\
4619     (__v16sf)(__m512)_mm512_setzero_ps(),\
4620     (__mmask16)(U)))
4621 #endif
4622 
4623 extern __inline __m512i
4624 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_rolv_epi32(__m512i __A,__m512i __B)4625 _mm512_rolv_epi32 (__m512i __A, __m512i __B)
4626 {
4627   return (__m512i) __builtin_ia32_prolvd512_mask ((__v16si) __A,
4628 						  (__v16si) __B,
4629 						  (__v16si)
4630 						  _mm512_undefined_epi32 (),
4631 						  (__mmask16) -1);
4632 }
4633 
4634 extern __inline __m512i
4635 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_rolv_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)4636 _mm512_mask_rolv_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
4637 {
4638   return (__m512i) __builtin_ia32_prolvd512_mask ((__v16si) __A,
4639 						  (__v16si) __B,
4640 						  (__v16si) __W,
4641 						  (__mmask16) __U);
4642 }
4643 
4644 extern __inline __m512i
4645 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_rolv_epi32(__mmask16 __U,__m512i __A,__m512i __B)4646 _mm512_maskz_rolv_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
4647 {
4648   return (__m512i) __builtin_ia32_prolvd512_mask ((__v16si) __A,
4649 						  (__v16si) __B,
4650 						  (__v16si)
4651 						  _mm512_setzero_si512 (),
4652 						  (__mmask16) __U);
4653 }
4654 
4655 extern __inline __m512i
4656 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_rorv_epi32(__m512i __A,__m512i __B)4657 _mm512_rorv_epi32 (__m512i __A, __m512i __B)
4658 {
4659   return (__m512i) __builtin_ia32_prorvd512_mask ((__v16si) __A,
4660 						  (__v16si) __B,
4661 						  (__v16si)
4662 						  _mm512_undefined_epi32 (),
4663 						  (__mmask16) -1);
4664 }
4665 
4666 extern __inline __m512i
4667 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_rorv_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)4668 _mm512_mask_rorv_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
4669 {
4670   return (__m512i) __builtin_ia32_prorvd512_mask ((__v16si) __A,
4671 						  (__v16si) __B,
4672 						  (__v16si) __W,
4673 						  (__mmask16) __U);
4674 }
4675 
4676 extern __inline __m512i
4677 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_rorv_epi32(__mmask16 __U,__m512i __A,__m512i __B)4678 _mm512_maskz_rorv_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
4679 {
4680   return (__m512i) __builtin_ia32_prorvd512_mask ((__v16si) __A,
4681 						  (__v16si) __B,
4682 						  (__v16si)
4683 						  _mm512_setzero_si512 (),
4684 						  (__mmask16) __U);
4685 }
4686 
4687 extern __inline __m512i
4688 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_rolv_epi64(__m512i __A,__m512i __B)4689 _mm512_rolv_epi64 (__m512i __A, __m512i __B)
4690 {
4691   return (__m512i) __builtin_ia32_prolvq512_mask ((__v8di) __A,
4692 						  (__v8di) __B,
4693 						  (__v8di)
4694 						  _mm512_undefined_epi32 (),
4695 						  (__mmask8) -1);
4696 }
4697 
4698 extern __inline __m512i
4699 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_rolv_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B)4700 _mm512_mask_rolv_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
4701 {
4702   return (__m512i) __builtin_ia32_prolvq512_mask ((__v8di) __A,
4703 						  (__v8di) __B,
4704 						  (__v8di) __W,
4705 						  (__mmask8) __U);
4706 }
4707 
4708 extern __inline __m512i
4709 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_rolv_epi64(__mmask8 __U,__m512i __A,__m512i __B)4710 _mm512_maskz_rolv_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
4711 {
4712   return (__m512i) __builtin_ia32_prolvq512_mask ((__v8di) __A,
4713 						  (__v8di) __B,
4714 						  (__v8di)
4715 						  _mm512_setzero_si512 (),
4716 						  (__mmask8) __U);
4717 }
4718 
4719 extern __inline __m512i
4720 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_rorv_epi64(__m512i __A,__m512i __B)4721 _mm512_rorv_epi64 (__m512i __A, __m512i __B)
4722 {
4723   return (__m512i) __builtin_ia32_prorvq512_mask ((__v8di) __A,
4724 						  (__v8di) __B,
4725 						  (__v8di)
4726 						  _mm512_undefined_epi32 (),
4727 						  (__mmask8) -1);
4728 }
4729 
4730 extern __inline __m512i
4731 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_rorv_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B)4732 _mm512_mask_rorv_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
4733 {
4734   return (__m512i) __builtin_ia32_prorvq512_mask ((__v8di) __A,
4735 						  (__v8di) __B,
4736 						  (__v8di) __W,
4737 						  (__mmask8) __U);
4738 }
4739 
4740 extern __inline __m512i
4741 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_rorv_epi64(__mmask8 __U,__m512i __A,__m512i __B)4742 _mm512_maskz_rorv_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
4743 {
4744   return (__m512i) __builtin_ia32_prorvq512_mask ((__v8di) __A,
4745 						  (__v8di) __B,
4746 						  (__v8di)
4747 						  _mm512_setzero_si512 (),
4748 						  (__mmask8) __U);
4749 }
4750 
4751 #ifdef __OPTIMIZE__
4752 extern __inline __m256i
4753 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtt_roundpd_epi32(__m512d __A,const int __R)4754 _mm512_cvtt_roundpd_epi32 (__m512d __A, const int __R)
4755 {
4756   return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A,
4757 						     (__v8si)
4758 						     _mm256_undefined_si256 (),
4759 						     (__mmask8) -1, __R);
4760 }
4761 
4762 extern __inline __m256i
4763 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtt_roundpd_epi32(__m256i __W,__mmask8 __U,__m512d __A,const int __R)4764 _mm512_mask_cvtt_roundpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A,
4765 				const int __R)
4766 {
4767   return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A,
4768 						     (__v8si) __W,
4769 						     (__mmask8) __U, __R);
4770 }
4771 
4772 extern __inline __m256i
4773 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtt_roundpd_epi32(__mmask8 __U,__m512d __A,const int __R)4774 _mm512_maskz_cvtt_roundpd_epi32 (__mmask8 __U, __m512d __A, const int __R)
4775 {
4776   return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A,
4777 						     (__v8si)
4778 						     _mm256_setzero_si256 (),
4779 						     (__mmask8) __U, __R);
4780 }
4781 
4782 extern __inline __m256i
4783 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtt_roundpd_epu32(__m512d __A,const int __R)4784 _mm512_cvtt_roundpd_epu32 (__m512d __A, const int __R)
4785 {
4786   return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,
4787 						      (__v8si)
4788 						      _mm256_undefined_si256 (),
4789 						      (__mmask8) -1, __R);
4790 }
4791 
4792 extern __inline __m256i
4793 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtt_roundpd_epu32(__m256i __W,__mmask8 __U,__m512d __A,const int __R)4794 _mm512_mask_cvtt_roundpd_epu32 (__m256i __W, __mmask8 __U, __m512d __A,
4795 				const int __R)
4796 {
4797   return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,
4798 						      (__v8si) __W,
4799 						      (__mmask8) __U, __R);
4800 }
4801 
4802 extern __inline __m256i
4803 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtt_roundpd_epu32(__mmask8 __U,__m512d __A,const int __R)4804 _mm512_maskz_cvtt_roundpd_epu32 (__mmask8 __U, __m512d __A, const int __R)
4805 {
4806   return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,
4807 						      (__v8si)
4808 						      _mm256_setzero_si256 (),
4809 						      (__mmask8) __U, __R);
4810 }
4811 #else
4812 #define _mm512_cvtt_roundpd_epi32(A, B)		     \
4813     ((__m256i)__builtin_ia32_cvttpd2dq512_mask(A, (__v8si)_mm256_undefined_si256(), -1, B))
4814 
4815 #define _mm512_mask_cvtt_roundpd_epi32(W, U, A, B)   \
4816     ((__m256i)__builtin_ia32_cvttpd2dq512_mask(A, (__v8si)(W), U, B))
4817 
4818 #define _mm512_maskz_cvtt_roundpd_epi32(U, A, B)     \
4819     ((__m256i)__builtin_ia32_cvttpd2dq512_mask(A, (__v8si)_mm256_setzero_si256(), U, B))
4820 
4821 #define _mm512_cvtt_roundpd_epu32(A, B)		     \
4822     ((__m256i)__builtin_ia32_cvttpd2udq512_mask(A, (__v8si)_mm256_undefined_si256(), -1, B))
4823 
4824 #define _mm512_mask_cvtt_roundpd_epu32(W, U, A, B)   \
4825     ((__m256i)__builtin_ia32_cvttpd2udq512_mask(A, (__v8si)(W), U, B))
4826 
4827 #define _mm512_maskz_cvtt_roundpd_epu32(U, A, B)     \
4828     ((__m256i)__builtin_ia32_cvttpd2udq512_mask(A, (__v8si)_mm256_setzero_si256(), U, B))
4829 #endif
4830 
4831 #ifdef __OPTIMIZE__
4832 extern __inline __m256i
4833 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvt_roundpd_epi32(__m512d __A,const int __R)4834 _mm512_cvt_roundpd_epi32 (__m512d __A, const int __R)
4835 {
4836   return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A,
4837 						    (__v8si)
4838 						    _mm256_undefined_si256 (),
4839 						    (__mmask8) -1, __R);
4840 }
4841 
4842 extern __inline __m256i
4843 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvt_roundpd_epi32(__m256i __W,__mmask8 __U,__m512d __A,const int __R)4844 _mm512_mask_cvt_roundpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A,
4845 			       const int __R)
4846 {
4847   return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A,
4848 						    (__v8si) __W,
4849 						    (__mmask8) __U, __R);
4850 }
4851 
4852 extern __inline __m256i
4853 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvt_roundpd_epi32(__mmask8 __U,__m512d __A,const int __R)4854 _mm512_maskz_cvt_roundpd_epi32 (__mmask8 __U, __m512d __A, const int __R)
4855 {
4856   return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A,
4857 						    (__v8si)
4858 						    _mm256_setzero_si256 (),
4859 						    (__mmask8) __U, __R);
4860 }
4861 
4862 extern __inline __m256i
4863 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvt_roundpd_epu32(__m512d __A,const int __R)4864 _mm512_cvt_roundpd_epu32 (__m512d __A, const int __R)
4865 {
4866   return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A,
4867 						     (__v8si)
4868 						     _mm256_undefined_si256 (),
4869 						     (__mmask8) -1, __R);
4870 }
4871 
4872 extern __inline __m256i
4873 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvt_roundpd_epu32(__m256i __W,__mmask8 __U,__m512d __A,const int __R)4874 _mm512_mask_cvt_roundpd_epu32 (__m256i __W, __mmask8 __U, __m512d __A,
4875 			       const int __R)
4876 {
4877   return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A,
4878 						     (__v8si) __W,
4879 						     (__mmask8) __U, __R);
4880 }
4881 
4882 extern __inline __m256i
4883 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvt_roundpd_epu32(__mmask8 __U,__m512d __A,const int __R)4884 _mm512_maskz_cvt_roundpd_epu32 (__mmask8 __U, __m512d __A, const int __R)
4885 {
4886   return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A,
4887 						     (__v8si)
4888 						     _mm256_setzero_si256 (),
4889 						     (__mmask8) __U, __R);
4890 }
4891 #else
4892 #define _mm512_cvt_roundpd_epi32(A, B)		    \
4893     ((__m256i)__builtin_ia32_cvtpd2dq512_mask(A, (__v8si)_mm256_undefined_si256(), -1, B))
4894 
4895 #define _mm512_mask_cvt_roundpd_epi32(W, U, A, B)   \
4896     ((__m256i)__builtin_ia32_cvtpd2dq512_mask(A, (__v8si)(W), U, B))
4897 
4898 #define _mm512_maskz_cvt_roundpd_epi32(U, A, B)     \
4899     ((__m256i)__builtin_ia32_cvtpd2dq512_mask(A, (__v8si)_mm256_setzero_si256(), U, B))
4900 
4901 #define _mm512_cvt_roundpd_epu32(A, B)		    \
4902     ((__m256i)__builtin_ia32_cvtpd2udq512_mask(A, (__v8si)_mm256_undefined_si256(), -1, B))
4903 
4904 #define _mm512_mask_cvt_roundpd_epu32(W, U, A, B)   \
4905     ((__m256i)__builtin_ia32_cvtpd2udq512_mask(A, (__v8si)(W), U, B))
4906 
4907 #define _mm512_maskz_cvt_roundpd_epu32(U, A, B)     \
4908     ((__m256i)__builtin_ia32_cvtpd2udq512_mask(A, (__v8si)_mm256_setzero_si256(), U, B))
4909 #endif
4910 
4911 #ifdef __OPTIMIZE__
4912 extern __inline __m512i
4913 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtt_roundps_epi32(__m512 __A,const int __R)4914 _mm512_cvtt_roundps_epi32 (__m512 __A, const int __R)
4915 {
4916   return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A,
4917 						     (__v16si)
4918 						     _mm512_undefined_epi32 (),
4919 						     (__mmask16) -1, __R);
4920 }
4921 
4922 extern __inline __m512i
4923 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtt_roundps_epi32(__m512i __W,__mmask16 __U,__m512 __A,const int __R)4924 _mm512_mask_cvtt_roundps_epi32 (__m512i __W, __mmask16 __U, __m512 __A,
4925 				const int __R)
4926 {
4927   return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A,
4928 						     (__v16si) __W,
4929 						     (__mmask16) __U, __R);
4930 }
4931 
4932 extern __inline __m512i
4933 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtt_roundps_epi32(__mmask16 __U,__m512 __A,const int __R)4934 _mm512_maskz_cvtt_roundps_epi32 (__mmask16 __U, __m512 __A, const int __R)
4935 {
4936   return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A,
4937 						     (__v16si)
4938 						     _mm512_setzero_si512 (),
4939 						     (__mmask16) __U, __R);
4940 }
4941 
4942 extern __inline __m512i
4943 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtt_roundps_epu32(__m512 __A,const int __R)4944 _mm512_cvtt_roundps_epu32 (__m512 __A, const int __R)
4945 {
4946   return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A,
4947 						      (__v16si)
4948 						      _mm512_undefined_epi32 (),
4949 						      (__mmask16) -1, __R);
4950 }
4951 
4952 extern __inline __m512i
4953 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtt_roundps_epu32(__m512i __W,__mmask16 __U,__m512 __A,const int __R)4954 _mm512_mask_cvtt_roundps_epu32 (__m512i __W, __mmask16 __U, __m512 __A,
4955 				const int __R)
4956 {
4957   return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A,
4958 						      (__v16si) __W,
4959 						      (__mmask16) __U, __R);
4960 }
4961 
4962 extern __inline __m512i
4963 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtt_roundps_epu32(__mmask16 __U,__m512 __A,const int __R)4964 _mm512_maskz_cvtt_roundps_epu32 (__mmask16 __U, __m512 __A, const int __R)
4965 {
4966   return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A,
4967 						      (__v16si)
4968 						      _mm512_setzero_si512 (),
4969 						      (__mmask16) __U, __R);
4970 }
4971 #else
4972 #define _mm512_cvtt_roundps_epi32(A, B)		     \
4973     ((__m512i)__builtin_ia32_cvttps2dq512_mask(A, (__v16si)_mm512_undefined_epi32 (), -1, B))
4974 
4975 #define _mm512_mask_cvtt_roundps_epi32(W, U, A, B)   \
4976     ((__m512i)__builtin_ia32_cvttps2dq512_mask(A, (__v16si)(W), U, B))
4977 
4978 #define _mm512_maskz_cvtt_roundps_epi32(U, A, B)     \
4979     ((__m512i)__builtin_ia32_cvttps2dq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
4980 
4981 #define _mm512_cvtt_roundps_epu32(A, B)		     \
4982     ((__m512i)__builtin_ia32_cvttps2udq512_mask(A, (__v16si)_mm512_undefined_epi32 (), -1, B))
4983 
4984 #define _mm512_mask_cvtt_roundps_epu32(W, U, A, B)   \
4985     ((__m512i)__builtin_ia32_cvttps2udq512_mask(A, (__v16si)(W), U, B))
4986 
4987 #define _mm512_maskz_cvtt_roundps_epu32(U, A, B)     \
4988     ((__m512i)__builtin_ia32_cvttps2udq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
4989 #endif
4990 
4991 #ifdef __OPTIMIZE__
4992 extern __inline __m512i
4993 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvt_roundps_epi32(__m512 __A,const int __R)4994 _mm512_cvt_roundps_epi32 (__m512 __A, const int __R)
4995 {
4996   return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A,
4997 						    (__v16si)
4998 						    _mm512_undefined_epi32 (),
4999 						    (__mmask16) -1, __R);
5000 }
5001 
5002 extern __inline __m512i
5003 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvt_roundps_epi32(__m512i __W,__mmask16 __U,__m512 __A,const int __R)5004 _mm512_mask_cvt_roundps_epi32 (__m512i __W, __mmask16 __U, __m512 __A,
5005 			       const int __R)
5006 {
5007   return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A,
5008 						    (__v16si) __W,
5009 						    (__mmask16) __U, __R);
5010 }
5011 
5012 extern __inline __m512i
5013 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvt_roundps_epi32(__mmask16 __U,__m512 __A,const int __R)5014 _mm512_maskz_cvt_roundps_epi32 (__mmask16 __U, __m512 __A, const int __R)
5015 {
5016   return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A,
5017 						    (__v16si)
5018 						    _mm512_setzero_si512 (),
5019 						    (__mmask16) __U, __R);
5020 }
5021 
5022 extern __inline __m512i
5023 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvt_roundps_epu32(__m512 __A,const int __R)5024 _mm512_cvt_roundps_epu32 (__m512 __A, const int __R)
5025 {
5026   return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,
5027 						     (__v16si)
5028 						     _mm512_undefined_epi32 (),
5029 						     (__mmask16) -1, __R);
5030 }
5031 
5032 extern __inline __m512i
5033 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvt_roundps_epu32(__m512i __W,__mmask16 __U,__m512 __A,const int __R)5034 _mm512_mask_cvt_roundps_epu32 (__m512i __W, __mmask16 __U, __m512 __A,
5035 			       const int __R)
5036 {
5037   return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,
5038 						     (__v16si) __W,
5039 						     (__mmask16) __U, __R);
5040 }
5041 
5042 extern __inline __m512i
5043 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvt_roundps_epu32(__mmask16 __U,__m512 __A,const int __R)5044 _mm512_maskz_cvt_roundps_epu32 (__mmask16 __U, __m512 __A, const int __R)
5045 {
5046   return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,
5047 						     (__v16si)
5048 						     _mm512_setzero_si512 (),
5049 						     (__mmask16) __U, __R);
5050 }
5051 #else
5052 #define _mm512_cvt_roundps_epi32(A, B)		    \
5053     ((__m512i)__builtin_ia32_cvtps2dq512_mask(A, (__v16si)_mm512_undefined_epi32 (), -1, B))
5054 
5055 #define _mm512_mask_cvt_roundps_epi32(W, U, A, B)   \
5056     ((__m512i)__builtin_ia32_cvtps2dq512_mask(A, (__v16si)(W), U, B))
5057 
5058 #define _mm512_maskz_cvt_roundps_epi32(U, A, B)     \
5059     ((__m512i)__builtin_ia32_cvtps2dq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
5060 
5061 #define _mm512_cvt_roundps_epu32(A, B)		    \
5062     ((__m512i)__builtin_ia32_cvtps2udq512_mask(A, (__v16si)_mm512_undefined_epi32 (), -1, B))
5063 
5064 #define _mm512_mask_cvt_roundps_epu32(W, U, A, B)   \
5065     ((__m512i)__builtin_ia32_cvtps2udq512_mask(A, (__v16si)(W), U, B))
5066 
5067 #define _mm512_maskz_cvt_roundps_epu32(U, A, B)     \
5068     ((__m512i)__builtin_ia32_cvtps2udq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
5069 #endif
5070 
5071 extern __inline __m128d
5072 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvtu32_sd(__m128d __A,unsigned __B)5073 _mm_cvtu32_sd (__m128d __A, unsigned __B)
5074 {
5075   return (__m128d) __builtin_ia32_cvtusi2sd32 ((__v2df) __A, __B);
5076 }
5077 
5078 #ifdef __x86_64__
5079 #ifdef __OPTIMIZE__
5080 extern __inline __m128d
5081 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvt_roundu64_sd(__m128d __A,unsigned long long __B,const int __R)5082 _mm_cvt_roundu64_sd (__m128d __A, unsigned long long __B, const int __R)
5083 {
5084   return (__m128d) __builtin_ia32_cvtusi2sd64 ((__v2df) __A, __B, __R);
5085 }
5086 
5087 extern __inline __m128d
5088 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvt_roundi64_sd(__m128d __A,long long __B,const int __R)5089 _mm_cvt_roundi64_sd (__m128d __A, long long __B, const int __R)
5090 {
5091   return (__m128d) __builtin_ia32_cvtsi2sd64 ((__v2df) __A, __B, __R);
5092 }
5093 
5094 extern __inline __m128d
5095 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvt_roundsi64_sd(__m128d __A,long long __B,const int __R)5096 _mm_cvt_roundsi64_sd (__m128d __A, long long __B, const int __R)
5097 {
5098   return (__m128d) __builtin_ia32_cvtsi2sd64 ((__v2df) __A, __B, __R);
5099 }
5100 #else
5101 #define _mm_cvt_roundu64_sd(A, B, C)   \
5102     (__m128d)__builtin_ia32_cvtusi2sd64(A, B, C)
5103 
5104 #define _mm_cvt_roundi64_sd(A, B, C)   \
5105     (__m128d)__builtin_ia32_cvtsi2sd64(A, B, C)
5106 
5107 #define _mm_cvt_roundsi64_sd(A, B, C)   \
5108     (__m128d)__builtin_ia32_cvtsi2sd64(A, B, C)
5109 #endif
5110 
5111 #endif
5112 
5113 #ifdef __OPTIMIZE__
5114 extern __inline __m128
5115 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvt_roundu32_ss(__m128 __A,unsigned __B,const int __R)5116 _mm_cvt_roundu32_ss (__m128 __A, unsigned __B, const int __R)
5117 {
5118   return (__m128) __builtin_ia32_cvtusi2ss32 ((__v4sf) __A, __B, __R);
5119 }
5120 
5121 extern __inline __m128
5122 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvt_roundsi32_ss(__m128 __A,int __B,const int __R)5123 _mm_cvt_roundsi32_ss (__m128 __A, int __B, const int __R)
5124 {
5125   return (__m128) __builtin_ia32_cvtsi2ss32 ((__v4sf) __A, __B, __R);
5126 }
5127 
5128 extern __inline __m128
5129 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvt_roundi32_ss(__m128 __A,int __B,const int __R)5130 _mm_cvt_roundi32_ss (__m128 __A, int __B, const int __R)
5131 {
5132   return (__m128) __builtin_ia32_cvtsi2ss32 ((__v4sf) __A, __B, __R);
5133 }
5134 #else
5135 #define _mm_cvt_roundu32_ss(A, B, C)   \
5136     (__m128)__builtin_ia32_cvtusi2ss32(A, B, C)
5137 
5138 #define _mm_cvt_roundi32_ss(A, B, C)   \
5139     (__m128)__builtin_ia32_cvtsi2ss32(A, B, C)
5140 
5141 #define _mm_cvt_roundsi32_ss(A, B, C)   \
5142     (__m128)__builtin_ia32_cvtsi2ss32(A, B, C)
5143 #endif
5144 
5145 #ifdef __x86_64__
5146 #ifdef __OPTIMIZE__
5147 extern __inline __m128
5148 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvt_roundu64_ss(__m128 __A,unsigned long long __B,const int __R)5149 _mm_cvt_roundu64_ss (__m128 __A, unsigned long long __B, const int __R)
5150 {
5151   return (__m128) __builtin_ia32_cvtusi2ss64 ((__v4sf) __A, __B, __R);
5152 }
5153 
5154 extern __inline __m128
5155 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvt_roundsi64_ss(__m128 __A,long long __B,const int __R)5156 _mm_cvt_roundsi64_ss (__m128 __A, long long __B, const int __R)
5157 {
5158   return (__m128) __builtin_ia32_cvtsi2ss64 ((__v4sf) __A, __B, __R);
5159 }
5160 
5161 extern __inline __m128
5162 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvt_roundi64_ss(__m128 __A,long long __B,const int __R)5163 _mm_cvt_roundi64_ss (__m128 __A, long long __B, const int __R)
5164 {
5165   return (__m128) __builtin_ia32_cvtsi2ss64 ((__v4sf) __A, __B, __R);
5166 }
5167 #else
5168 #define _mm_cvt_roundu64_ss(A, B, C)   \
5169     (__m128)__builtin_ia32_cvtusi2ss64(A, B, C)
5170 
5171 #define _mm_cvt_roundi64_ss(A, B, C)   \
5172     (__m128)__builtin_ia32_cvtsi2ss64(A, B, C)
5173 
5174 #define _mm_cvt_roundsi64_ss(A, B, C)   \
5175     (__m128)__builtin_ia32_cvtsi2ss64(A, B, C)
5176 #endif
5177 
5178 #endif
5179 
5180 extern __inline __m128i
5181 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtepi32_epi8(__m512i __A)5182 _mm512_cvtepi32_epi8 (__m512i __A)
5183 {
5184   return (__m128i) __builtin_ia32_pmovdb512_mask ((__v16si) __A,
5185 						  (__v16qi)
5186 						  _mm_undefined_si128 (),
5187 						  (__mmask16) -1);
5188 }
5189 
5190 extern __inline void
5191 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtepi32_storeu_epi8(void * __P,__mmask16 __M,__m512i __A)5192 _mm512_mask_cvtepi32_storeu_epi8 (void * __P, __mmask16 __M, __m512i __A)
5193 {
5194   __builtin_ia32_pmovdb512mem_mask ((__v16qi *) __P, (__v16si) __A, __M);
5195 }
5196 
5197 extern __inline __m128i
5198 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtepi32_epi8(__m128i __O,__mmask16 __M,__m512i __A)5199 _mm512_mask_cvtepi32_epi8 (__m128i __O, __mmask16 __M, __m512i __A)
5200 {
5201   return (__m128i) __builtin_ia32_pmovdb512_mask ((__v16si) __A,
5202 						  (__v16qi) __O, __M);
5203 }
5204 
5205 extern __inline __m128i
5206 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtepi32_epi8(__mmask16 __M,__m512i __A)5207 _mm512_maskz_cvtepi32_epi8 (__mmask16 __M, __m512i __A)
5208 {
5209   return (__m128i) __builtin_ia32_pmovdb512_mask ((__v16si) __A,
5210 						  (__v16qi)
5211 						  _mm_setzero_si128 (),
5212 						  __M);
5213 }
5214 
5215 extern __inline __m128i
5216 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtsepi32_epi8(__m512i __A)5217 _mm512_cvtsepi32_epi8 (__m512i __A)
5218 {
5219   return (__m128i) __builtin_ia32_pmovsdb512_mask ((__v16si) __A,
5220 						   (__v16qi)
5221 						   _mm_undefined_si128 (),
5222 						   (__mmask16) -1);
5223 }
5224 
5225 extern __inline void
5226 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtsepi32_storeu_epi8(void * __P,__mmask16 __M,__m512i __A)5227 _mm512_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask16 __M, __m512i __A)
5228 {
5229   __builtin_ia32_pmovsdb512mem_mask ((__v16qi *) __P, (__v16si) __A, __M);
5230 }
5231 
5232 extern __inline __m128i
5233 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtsepi32_epi8(__m128i __O,__mmask16 __M,__m512i __A)5234 _mm512_mask_cvtsepi32_epi8 (__m128i __O, __mmask16 __M, __m512i __A)
5235 {
5236   return (__m128i) __builtin_ia32_pmovsdb512_mask ((__v16si) __A,
5237 						   (__v16qi) __O, __M);
5238 }
5239 
5240 extern __inline __m128i
5241 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtsepi32_epi8(__mmask16 __M,__m512i __A)5242 _mm512_maskz_cvtsepi32_epi8 (__mmask16 __M, __m512i __A)
5243 {
5244   return (__m128i) __builtin_ia32_pmovsdb512_mask ((__v16si) __A,
5245 						   (__v16qi)
5246 						   _mm_setzero_si128 (),
5247 						   __M);
5248 }
5249 
5250 extern __inline __m128i
5251 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtusepi32_epi8(__m512i __A)5252 _mm512_cvtusepi32_epi8 (__m512i __A)
5253 {
5254   return (__m128i) __builtin_ia32_pmovusdb512_mask ((__v16si) __A,
5255 						    (__v16qi)
5256 						    _mm_undefined_si128 (),
5257 						    (__mmask16) -1);
5258 }
5259 
5260 extern __inline void
5261 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtusepi32_storeu_epi8(void * __P,__mmask16 __M,__m512i __A)5262 _mm512_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask16 __M, __m512i __A)
5263 {
5264   __builtin_ia32_pmovusdb512mem_mask ((__v16qi *) __P, (__v16si) __A, __M);
5265 }
5266 
5267 extern __inline __m128i
5268 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtusepi32_epi8(__m128i __O,__mmask16 __M,__m512i __A)5269 _mm512_mask_cvtusepi32_epi8 (__m128i __O, __mmask16 __M, __m512i __A)
5270 {
5271   return (__m128i) __builtin_ia32_pmovusdb512_mask ((__v16si) __A,
5272 						    (__v16qi) __O,
5273 						    __M);
5274 }
5275 
5276 extern __inline __m128i
5277 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtusepi32_epi8(__mmask16 __M,__m512i __A)5278 _mm512_maskz_cvtusepi32_epi8 (__mmask16 __M, __m512i __A)
5279 {
5280   return (__m128i) __builtin_ia32_pmovusdb512_mask ((__v16si) __A,
5281 						    (__v16qi)
5282 						    _mm_setzero_si128 (),
5283 						    __M);
5284 }
5285 
5286 extern __inline __m256i
5287 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtepi32_epi16(__m512i __A)5288 _mm512_cvtepi32_epi16 (__m512i __A)
5289 {
5290   return (__m256i) __builtin_ia32_pmovdw512_mask ((__v16si) __A,
5291 						  (__v16hi)
5292 						  _mm256_undefined_si256 (),
5293 						  (__mmask16) -1);
5294 }
5295 
5296 extern __inline void
5297 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtepi32_storeu_epi16(void * __P,__mmask16 __M,__m512i __A)5298 _mm512_mask_cvtepi32_storeu_epi16 (void * __P, __mmask16 __M, __m512i __A)
5299 {
5300   __builtin_ia32_pmovdw512mem_mask ((__v16hi *) __P, (__v16si) __A, __M);
5301 }
5302 
5303 extern __inline __m256i
5304 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtepi32_epi16(__m256i __O,__mmask16 __M,__m512i __A)5305 _mm512_mask_cvtepi32_epi16 (__m256i __O, __mmask16 __M, __m512i __A)
5306 {
5307   return (__m256i) __builtin_ia32_pmovdw512_mask ((__v16si) __A,
5308 						  (__v16hi) __O, __M);
5309 }
5310 
5311 extern __inline __m256i
5312 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtepi32_epi16(__mmask16 __M,__m512i __A)5313 _mm512_maskz_cvtepi32_epi16 (__mmask16 __M, __m512i __A)
5314 {
5315   return (__m256i) __builtin_ia32_pmovdw512_mask ((__v16si) __A,
5316 						  (__v16hi)
5317 						  _mm256_setzero_si256 (),
5318 						  __M);
5319 }
5320 
5321 extern __inline __m256i
5322 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtsepi32_epi16(__m512i __A)5323 _mm512_cvtsepi32_epi16 (__m512i __A)
5324 {
5325   return (__m256i) __builtin_ia32_pmovsdw512_mask ((__v16si) __A,
5326 						   (__v16hi)
5327 						   _mm256_undefined_si256 (),
5328 						   (__mmask16) -1);
5329 }
5330 
5331 extern __inline void
5332 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtsepi32_storeu_epi16(void * __P,__mmask16 __M,__m512i __A)5333 _mm512_mask_cvtsepi32_storeu_epi16 (void *__P, __mmask16 __M, __m512i __A)
5334 {
5335   __builtin_ia32_pmovsdw512mem_mask ((__v16hi*) __P, (__v16si) __A, __M);
5336 }
5337 
5338 extern __inline __m256i
5339 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtsepi32_epi16(__m256i __O,__mmask16 __M,__m512i __A)5340 _mm512_mask_cvtsepi32_epi16 (__m256i __O, __mmask16 __M, __m512i __A)
5341 {
5342   return (__m256i) __builtin_ia32_pmovsdw512_mask ((__v16si) __A,
5343 						   (__v16hi) __O, __M);
5344 }
5345 
5346 extern __inline __m256i
5347 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtsepi32_epi16(__mmask16 __M,__m512i __A)5348 _mm512_maskz_cvtsepi32_epi16 (__mmask16 __M, __m512i __A)
5349 {
5350   return (__m256i) __builtin_ia32_pmovsdw512_mask ((__v16si) __A,
5351 						   (__v16hi)
5352 						   _mm256_setzero_si256 (),
5353 						   __M);
5354 }
5355 
5356 extern __inline __m256i
5357 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtusepi32_epi16(__m512i __A)5358 _mm512_cvtusepi32_epi16 (__m512i __A)
5359 {
5360   return (__m256i) __builtin_ia32_pmovusdw512_mask ((__v16si) __A,
5361 						    (__v16hi)
5362 						    _mm256_undefined_si256 (),
5363 						    (__mmask16) -1);
5364 }
5365 
5366 extern __inline void
5367 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtusepi32_storeu_epi16(void * __P,__mmask16 __M,__m512i __A)5368 _mm512_mask_cvtusepi32_storeu_epi16 (void *__P, __mmask16 __M, __m512i __A)
5369 {
5370   __builtin_ia32_pmovusdw512mem_mask ((__v16hi*) __P, (__v16si) __A, __M);
5371 }
5372 
5373 extern __inline __m256i
5374 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtusepi32_epi16(__m256i __O,__mmask16 __M,__m512i __A)5375 _mm512_mask_cvtusepi32_epi16 (__m256i __O, __mmask16 __M, __m512i __A)
5376 {
5377   return (__m256i) __builtin_ia32_pmovusdw512_mask ((__v16si) __A,
5378 						    (__v16hi) __O,
5379 						    __M);
5380 }
5381 
5382 extern __inline __m256i
5383 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtusepi32_epi16(__mmask16 __M,__m512i __A)5384 _mm512_maskz_cvtusepi32_epi16 (__mmask16 __M, __m512i __A)
5385 {
5386   return (__m256i) __builtin_ia32_pmovusdw512_mask ((__v16si) __A,
5387 						    (__v16hi)
5388 						    _mm256_setzero_si256 (),
5389 						    __M);
5390 }
5391 
5392 extern __inline __m256i
5393 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtepi64_epi32(__m512i __A)5394 _mm512_cvtepi64_epi32 (__m512i __A)
5395 {
5396   return (__m256i) __builtin_ia32_pmovqd512_mask ((__v8di) __A,
5397 						  (__v8si)
5398 						  _mm256_undefined_si256 (),
5399 						  (__mmask8) -1);
5400 }
5401 
5402 extern __inline void
5403 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtepi64_storeu_epi32(void * __P,__mmask8 __M,__m512i __A)5404 _mm512_mask_cvtepi64_storeu_epi32 (void* __P, __mmask8 __M, __m512i __A)
5405 {
5406   __builtin_ia32_pmovqd512mem_mask ((__v8si *) __P, (__v8di) __A, __M);
5407 }
5408 
5409 extern __inline __m256i
5410 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtepi64_epi32(__m256i __O,__mmask8 __M,__m512i __A)5411 _mm512_mask_cvtepi64_epi32 (__m256i __O, __mmask8 __M, __m512i __A)
5412 {
5413   return (__m256i) __builtin_ia32_pmovqd512_mask ((__v8di) __A,
5414 						  (__v8si) __O, __M);
5415 }
5416 
5417 extern __inline __m256i
5418 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtepi64_epi32(__mmask8 __M,__m512i __A)5419 _mm512_maskz_cvtepi64_epi32 (__mmask8 __M, __m512i __A)
5420 {
5421   return (__m256i) __builtin_ia32_pmovqd512_mask ((__v8di) __A,
5422 						  (__v8si)
5423 						  _mm256_setzero_si256 (),
5424 						  __M);
5425 }
5426 
5427 extern __inline __m256i
5428 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtsepi64_epi32(__m512i __A)5429 _mm512_cvtsepi64_epi32 (__m512i __A)
5430 {
5431   return (__m256i) __builtin_ia32_pmovsqd512_mask ((__v8di) __A,
5432 						   (__v8si)
5433 						   _mm256_undefined_si256 (),
5434 						   (__mmask8) -1);
5435 }
5436 
5437 extern __inline void
5438 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtsepi64_storeu_epi32(void * __P,__mmask8 __M,__m512i __A)5439 _mm512_mask_cvtsepi64_storeu_epi32 (void *__P, __mmask8 __M, __m512i __A)
5440 {
5441   __builtin_ia32_pmovsqd512mem_mask ((__v8si *) __P, (__v8di) __A, __M);
5442 }
5443 
5444 extern __inline __m256i
5445 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtsepi64_epi32(__m256i __O,__mmask8 __M,__m512i __A)5446 _mm512_mask_cvtsepi64_epi32 (__m256i __O, __mmask8 __M, __m512i __A)
5447 {
5448   return (__m256i) __builtin_ia32_pmovsqd512_mask ((__v8di) __A,
5449 						   (__v8si) __O, __M);
5450 }
5451 
5452 extern __inline __m256i
5453 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtsepi64_epi32(__mmask8 __M,__m512i __A)5454 _mm512_maskz_cvtsepi64_epi32 (__mmask8 __M, __m512i __A)
5455 {
5456   return (__m256i) __builtin_ia32_pmovsqd512_mask ((__v8di) __A,
5457 						   (__v8si)
5458 						   _mm256_setzero_si256 (),
5459 						   __M);
5460 }
5461 
5462 extern __inline __m256i
5463 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtusepi64_epi32(__m512i __A)5464 _mm512_cvtusepi64_epi32 (__m512i __A)
5465 {
5466   return (__m256i) __builtin_ia32_pmovusqd512_mask ((__v8di) __A,
5467 						    (__v8si)
5468 						    _mm256_undefined_si256 (),
5469 						    (__mmask8) -1);
5470 }
5471 
5472 extern __inline void
5473 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtusepi64_storeu_epi32(void * __P,__mmask8 __M,__m512i __A)5474 _mm512_mask_cvtusepi64_storeu_epi32 (void* __P, __mmask8 __M, __m512i __A)
5475 {
5476   __builtin_ia32_pmovusqd512mem_mask ((__v8si*) __P, (__v8di) __A, __M);
5477 }
5478 
5479 extern __inline __m256i
5480 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtusepi64_epi32(__m256i __O,__mmask8 __M,__m512i __A)5481 _mm512_mask_cvtusepi64_epi32 (__m256i __O, __mmask8 __M, __m512i __A)
5482 {
5483   return (__m256i) __builtin_ia32_pmovusqd512_mask ((__v8di) __A,
5484 						    (__v8si) __O, __M);
5485 }
5486 
5487 extern __inline __m256i
5488 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtusepi64_epi32(__mmask8 __M,__m512i __A)5489 _mm512_maskz_cvtusepi64_epi32 (__mmask8 __M, __m512i __A)
5490 {
5491   return (__m256i) __builtin_ia32_pmovusqd512_mask ((__v8di) __A,
5492 						    (__v8si)
5493 						    _mm256_setzero_si256 (),
5494 						    __M);
5495 }
5496 
5497 extern __inline __m128i
5498 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtepi64_epi16(__m512i __A)5499 _mm512_cvtepi64_epi16 (__m512i __A)
5500 {
5501   return (__m128i) __builtin_ia32_pmovqw512_mask ((__v8di) __A,
5502 						  (__v8hi)
5503 						  _mm_undefined_si128 (),
5504 						  (__mmask8) -1);
5505 }
5506 
5507 extern __inline void
5508 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtepi64_storeu_epi16(void * __P,__mmask8 __M,__m512i __A)5509 _mm512_mask_cvtepi64_storeu_epi16 (void *__P, __mmask8 __M, __m512i __A)
5510 {
5511   __builtin_ia32_pmovqw512mem_mask ((__v8hi *) __P, (__v8di) __A, __M);
5512 }
5513 
5514 extern __inline __m128i
5515 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtepi64_epi16(__m128i __O,__mmask8 __M,__m512i __A)5516 _mm512_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m512i __A)
5517 {
5518   return (__m128i) __builtin_ia32_pmovqw512_mask ((__v8di) __A,
5519 						  (__v8hi) __O, __M);
5520 }
5521 
5522 extern __inline __m128i
5523 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtepi64_epi16(__mmask8 __M,__m512i __A)5524 _mm512_maskz_cvtepi64_epi16 (__mmask8 __M, __m512i __A)
5525 {
5526   return (__m128i) __builtin_ia32_pmovqw512_mask ((__v8di) __A,
5527 						  (__v8hi)
5528 						  _mm_setzero_si128 (),
5529 						  __M);
5530 }
5531 
5532 extern __inline __m128i
5533 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtsepi64_epi16(__m512i __A)5534 _mm512_cvtsepi64_epi16 (__m512i __A)
5535 {
5536   return (__m128i) __builtin_ia32_pmovsqw512_mask ((__v8di) __A,
5537 						   (__v8hi)
5538 						   _mm_undefined_si128 (),
5539 						   (__mmask8) -1);
5540 }
5541 
5542 extern __inline void
5543 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtsepi64_storeu_epi16(void * __P,__mmask8 __M,__m512i __A)5544 _mm512_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m512i __A)
5545 {
5546   __builtin_ia32_pmovsqw512mem_mask ((__v8hi *) __P, (__v8di) __A, __M);
5547 }
5548 
5549 extern __inline __m128i
5550 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtsepi64_epi16(__m128i __O,__mmask8 __M,__m512i __A)5551 _mm512_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m512i __A)
5552 {
5553   return (__m128i) __builtin_ia32_pmovsqw512_mask ((__v8di) __A,
5554 						   (__v8hi) __O, __M);
5555 }
5556 
5557 extern __inline __m128i
5558 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtsepi64_epi16(__mmask8 __M,__m512i __A)5559 _mm512_maskz_cvtsepi64_epi16 (__mmask8 __M, __m512i __A)
5560 {
5561   return (__m128i) __builtin_ia32_pmovsqw512_mask ((__v8di) __A,
5562 						   (__v8hi)
5563 						   _mm_setzero_si128 (),
5564 						   __M);
5565 }
5566 
5567 extern __inline __m128i
5568 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtusepi64_epi16(__m512i __A)5569 _mm512_cvtusepi64_epi16 (__m512i __A)
5570 {
5571   return (__m128i) __builtin_ia32_pmovusqw512_mask ((__v8di) __A,
5572 						    (__v8hi)
5573 						    _mm_undefined_si128 (),
5574 						    (__mmask8) -1);
5575 }
5576 
5577 extern __inline void
5578 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtusepi64_storeu_epi16(void * __P,__mmask8 __M,__m512i __A)5579 _mm512_mask_cvtusepi64_storeu_epi16 (void *__P, __mmask8 __M, __m512i __A)
5580 {
5581   __builtin_ia32_pmovusqw512mem_mask ((__v8hi*) __P, (__v8di) __A, __M);
5582 }
5583 
5584 extern __inline __m128i
5585 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtusepi64_epi16(__m128i __O,__mmask8 __M,__m512i __A)5586 _mm512_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m512i __A)
5587 {
5588   return (__m128i) __builtin_ia32_pmovusqw512_mask ((__v8di) __A,
5589 						    (__v8hi) __O, __M);
5590 }
5591 
5592 extern __inline __m128i
5593 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtusepi64_epi16(__mmask8 __M,__m512i __A)5594 _mm512_maskz_cvtusepi64_epi16 (__mmask8 __M, __m512i __A)
5595 {
5596   return (__m128i) __builtin_ia32_pmovusqw512_mask ((__v8di) __A,
5597 						    (__v8hi)
5598 						    _mm_setzero_si128 (),
5599 						    __M);
5600 }
5601 
5602 extern __inline __m128i
5603 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtepi64_epi8(__m512i __A)5604 _mm512_cvtepi64_epi8 (__m512i __A)
5605 {
5606   return (__m128i) __builtin_ia32_pmovqb512_mask ((__v8di) __A,
5607 						  (__v16qi)
5608 						  _mm_undefined_si128 (),
5609 						  (__mmask8) -1);
5610 }
5611 
5612 extern __inline void
5613 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtepi64_storeu_epi8(void * __P,__mmask8 __M,__m512i __A)5614 _mm512_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m512i __A)
5615 {
5616   __builtin_ia32_pmovqb512mem_mask ((__v16qi *) __P, (__v8di) __A, __M);
5617 }
5618 
5619 extern __inline __m128i
5620 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtepi64_epi8(__m128i __O,__mmask8 __M,__m512i __A)5621 _mm512_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m512i __A)
5622 {
5623   return (__m128i) __builtin_ia32_pmovqb512_mask ((__v8di) __A,
5624 						  (__v16qi) __O, __M);
5625 }
5626 
5627 extern __inline __m128i
5628 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtepi64_epi8(__mmask8 __M,__m512i __A)5629 _mm512_maskz_cvtepi64_epi8 (__mmask8 __M, __m512i __A)
5630 {
5631   return (__m128i) __builtin_ia32_pmovqb512_mask ((__v8di) __A,
5632 						  (__v16qi)
5633 						  _mm_setzero_si128 (),
5634 						  __M);
5635 }
5636 
5637 extern __inline __m128i
5638 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtsepi64_epi8(__m512i __A)5639 _mm512_cvtsepi64_epi8 (__m512i __A)
5640 {
5641   return (__m128i) __builtin_ia32_pmovsqb512_mask ((__v8di) __A,
5642 						   (__v16qi)
5643 						   _mm_undefined_si128 (),
5644 						   (__mmask8) -1);
5645 }
5646 
5647 extern __inline void
5648 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtsepi64_storeu_epi8(void * __P,__mmask8 __M,__m512i __A)5649 _mm512_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m512i __A)
5650 {
5651   __builtin_ia32_pmovsqb512mem_mask ((__v16qi *) __P, (__v8di) __A, __M);
5652 }
5653 
5654 extern __inline __m128i
5655 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtsepi64_epi8(__m128i __O,__mmask8 __M,__m512i __A)5656 _mm512_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m512i __A)
5657 {
5658   return (__m128i) __builtin_ia32_pmovsqb512_mask ((__v8di) __A,
5659 						   (__v16qi) __O, __M);
5660 }
5661 
5662 extern __inline __m128i
5663 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtsepi64_epi8(__mmask8 __M,__m512i __A)5664 _mm512_maskz_cvtsepi64_epi8 (__mmask8 __M, __m512i __A)
5665 {
5666   return (__m128i) __builtin_ia32_pmovsqb512_mask ((__v8di) __A,
5667 						   (__v16qi)
5668 						   _mm_setzero_si128 (),
5669 						   __M);
5670 }
5671 
5672 extern __inline __m128i
5673 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtusepi64_epi8(__m512i __A)5674 _mm512_cvtusepi64_epi8 (__m512i __A)
5675 {
5676   return (__m128i) __builtin_ia32_pmovusqb512_mask ((__v8di) __A,
5677 						    (__v16qi)
5678 						    _mm_undefined_si128 (),
5679 						    (__mmask8) -1);
5680 }
5681 
5682 extern __inline void
5683 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtusepi64_storeu_epi8(void * __P,__mmask8 __M,__m512i __A)5684 _mm512_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m512i __A)
5685 {
5686   __builtin_ia32_pmovusqb512mem_mask ((__v16qi *) __P, (__v8di) __A, __M);
5687 }
5688 
5689 extern __inline __m128i
5690 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtusepi64_epi8(__m128i __O,__mmask8 __M,__m512i __A)5691 _mm512_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m512i __A)
5692 {
5693   return (__m128i) __builtin_ia32_pmovusqb512_mask ((__v8di) __A,
5694 						    (__v16qi) __O,
5695 						    __M);
5696 }
5697 
5698 extern __inline __m128i
5699 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtusepi64_epi8(__mmask8 __M,__m512i __A)5700 _mm512_maskz_cvtusepi64_epi8 (__mmask8 __M, __m512i __A)
5701 {
5702   return (__m128i) __builtin_ia32_pmovusqb512_mask ((__v8di) __A,
5703 						    (__v16qi)
5704 						    _mm_setzero_si128 (),
5705 						    __M);
5706 }
5707 
5708 extern __inline __m512d
5709 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtepi32_pd(__m256i __A)5710 _mm512_cvtepi32_pd (__m256i __A)
5711 {
5712   return (__m512d) __builtin_ia32_cvtdq2pd512_mask ((__v8si) __A,
5713 						    (__v8df)
5714 						    _mm512_undefined_pd (),
5715 						    (__mmask8) -1);
5716 }
5717 
5718 extern __inline __m512d
5719 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtepi32_pd(__m512d __W,__mmask8 __U,__m256i __A)5720 _mm512_mask_cvtepi32_pd (__m512d __W, __mmask8 __U, __m256i __A)
5721 {
5722   return (__m512d) __builtin_ia32_cvtdq2pd512_mask ((__v8si) __A,
5723 						    (__v8df) __W,
5724 						    (__mmask8) __U);
5725 }
5726 
5727 extern __inline __m512d
5728 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtepi32_pd(__mmask8 __U,__m256i __A)5729 _mm512_maskz_cvtepi32_pd (__mmask8 __U, __m256i __A)
5730 {
5731   return (__m512d) __builtin_ia32_cvtdq2pd512_mask ((__v8si) __A,
5732 						    (__v8df)
5733 						    _mm512_setzero_pd (),
5734 						    (__mmask8) __U);
5735 }
5736 
5737 extern __inline __m512d
5738 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtepu32_pd(__m256i __A)5739 _mm512_cvtepu32_pd (__m256i __A)
5740 {
5741   return (__m512d) __builtin_ia32_cvtudq2pd512_mask ((__v8si) __A,
5742 						     (__v8df)
5743 						     _mm512_undefined_pd (),
5744 						     (__mmask8) -1);
5745 }
5746 
5747 extern __inline __m512d
5748 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtepu32_pd(__m512d __W,__mmask8 __U,__m256i __A)5749 _mm512_mask_cvtepu32_pd (__m512d __W, __mmask8 __U, __m256i __A)
5750 {
5751   return (__m512d) __builtin_ia32_cvtudq2pd512_mask ((__v8si) __A,
5752 						     (__v8df) __W,
5753 						     (__mmask8) __U);
5754 }
5755 
5756 extern __inline __m512d
5757 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtepu32_pd(__mmask8 __U,__m256i __A)5758 _mm512_maskz_cvtepu32_pd (__mmask8 __U, __m256i __A)
5759 {
5760   return (__m512d) __builtin_ia32_cvtudq2pd512_mask ((__v8si) __A,
5761 						     (__v8df)
5762 						     _mm512_setzero_pd (),
5763 						     (__mmask8) __U);
5764 }
5765 
5766 #ifdef __OPTIMIZE__
5767 extern __inline __m512
5768 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvt_roundepi32_ps(__m512i __A,const int __R)5769 _mm512_cvt_roundepi32_ps (__m512i __A, const int __R)
5770 {
5771   return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A,
5772 						   (__v16sf)
5773 						   _mm512_undefined_ps (),
5774 						   (__mmask16) -1, __R);
5775 }
5776 
5777 extern __inline __m512
5778 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvt_roundepi32_ps(__m512 __W,__mmask16 __U,__m512i __A,const int __R)5779 _mm512_mask_cvt_roundepi32_ps (__m512 __W, __mmask16 __U, __m512i __A,
5780 			       const int __R)
5781 {
5782   return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A,
5783 						   (__v16sf) __W,
5784 						   (__mmask16) __U, __R);
5785 }
5786 
5787 extern __inline __m512
5788 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvt_roundepi32_ps(__mmask16 __U,__m512i __A,const int __R)5789 _mm512_maskz_cvt_roundepi32_ps (__mmask16 __U, __m512i __A, const int __R)
5790 {
5791   return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A,
5792 						   (__v16sf)
5793 						   _mm512_setzero_ps (),
5794 						   (__mmask16) __U, __R);
5795 }
5796 
5797 extern __inline __m512
5798 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvt_roundepu32_ps(__m512i __A,const int __R)5799 _mm512_cvt_roundepu32_ps (__m512i __A, const int __R)
5800 {
5801   return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A,
5802 						    (__v16sf)
5803 						    _mm512_undefined_ps (),
5804 						    (__mmask16) -1, __R);
5805 }
5806 
5807 extern __inline __m512
5808 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvt_roundepu32_ps(__m512 __W,__mmask16 __U,__m512i __A,const int __R)5809 _mm512_mask_cvt_roundepu32_ps (__m512 __W, __mmask16 __U, __m512i __A,
5810 			       const int __R)
5811 {
5812   return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A,
5813 						    (__v16sf) __W,
5814 						    (__mmask16) __U, __R);
5815 }
5816 
5817 extern __inline __m512
5818 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvt_roundepu32_ps(__mmask16 __U,__m512i __A,const int __R)5819 _mm512_maskz_cvt_roundepu32_ps (__mmask16 __U, __m512i __A, const int __R)
5820 {
5821   return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A,
5822 						    (__v16sf)
5823 						    _mm512_setzero_ps (),
5824 						    (__mmask16) __U, __R);
5825 }
5826 
5827 #else
5828 #define _mm512_cvt_roundepi32_ps(A, B)        \
5829     (__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(A), (__v16sf)_mm512_undefined_ps(), -1, B)
5830 
5831 #define _mm512_mask_cvt_roundepi32_ps(W, U, A, B)   \
5832     (__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(A), W, U, B)
5833 
5834 #define _mm512_maskz_cvt_roundepi32_ps(U, A, B)      \
5835     (__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(A), (__v16sf)_mm512_setzero_ps(), U, B)
5836 
5837 #define _mm512_cvt_roundepu32_ps(A, B)        \
5838     (__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(A), (__v16sf)_mm512_undefined_ps(), -1, B)
5839 
5840 #define _mm512_mask_cvt_roundepu32_ps(W, U, A, B)   \
5841     (__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(A), W, U, B)
5842 
5843 #define _mm512_maskz_cvt_roundepu32_ps(U, A, B)      \
5844     (__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(A), (__v16sf)_mm512_setzero_ps(), U, B)
5845 #endif
5846 
5847 #ifdef __OPTIMIZE__
5848 extern __inline __m256d
5849 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_extractf64x4_pd(__m512d __A,const int __imm)5850 _mm512_extractf64x4_pd (__m512d __A, const int __imm)
5851 {
5852   return (__m256d) __builtin_ia32_extractf64x4_mask ((__v8df) __A,
5853 						     __imm,
5854 						     (__v4df)
5855 						     _mm256_undefined_pd (),
5856 						     (__mmask8) -1);
5857 }
5858 
5859 extern __inline __m256d
5860 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_extractf64x4_pd(__m256d __W,__mmask8 __U,__m512d __A,const int __imm)5861 _mm512_mask_extractf64x4_pd (__m256d __W, __mmask8 __U, __m512d __A,
5862 			     const int __imm)
5863 {
5864   return (__m256d) __builtin_ia32_extractf64x4_mask ((__v8df) __A,
5865 						     __imm,
5866 						     (__v4df) __W,
5867 						     (__mmask8) __U);
5868 }
5869 
5870 extern __inline __m256d
5871 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_extractf64x4_pd(__mmask8 __U,__m512d __A,const int __imm)5872 _mm512_maskz_extractf64x4_pd (__mmask8 __U, __m512d __A, const int __imm)
5873 {
5874   return (__m256d) __builtin_ia32_extractf64x4_mask ((__v8df) __A,
5875 						     __imm,
5876 						     (__v4df)
5877 						     _mm256_setzero_pd (),
5878 						     (__mmask8) __U);
5879 }
5880 
5881 extern __inline __m128
5882 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_extractf32x4_ps(__m512 __A,const int __imm)5883 _mm512_extractf32x4_ps (__m512 __A, const int __imm)
5884 {
5885   return (__m128) __builtin_ia32_extractf32x4_mask ((__v16sf) __A,
5886 						    __imm,
5887 						    (__v4sf)
5888 						    _mm_undefined_ps (),
5889 						    (__mmask8) -1);
5890 }
5891 
5892 extern __inline __m128
5893 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_extractf32x4_ps(__m128 __W,__mmask8 __U,__m512 __A,const int __imm)5894 _mm512_mask_extractf32x4_ps (__m128 __W, __mmask8 __U, __m512 __A,
5895 			     const int __imm)
5896 {
5897   return (__m128) __builtin_ia32_extractf32x4_mask ((__v16sf) __A,
5898 						    __imm,
5899 						    (__v4sf) __W,
5900 						    (__mmask8) __U);
5901 }
5902 
5903 extern __inline __m128
5904 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_extractf32x4_ps(__mmask8 __U,__m512 __A,const int __imm)5905 _mm512_maskz_extractf32x4_ps (__mmask8 __U, __m512 __A, const int __imm)
5906 {
5907   return (__m128) __builtin_ia32_extractf32x4_mask ((__v16sf) __A,
5908 						    __imm,
5909 						    (__v4sf)
5910 						    _mm_setzero_ps (),
5911 						    (__mmask8) __U);
5912 }
5913 
5914 extern __inline __m256i
5915 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_extracti64x4_epi64(__m512i __A,const int __imm)5916 _mm512_extracti64x4_epi64 (__m512i __A, const int __imm)
5917 {
5918   return (__m256i) __builtin_ia32_extracti64x4_mask ((__v8di) __A,
5919 						     __imm,
5920 						     (__v4di)
5921 						     _mm256_undefined_si256 (),
5922 						     (__mmask8) -1);
5923 }
5924 
5925 extern __inline __m256i
5926 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_extracti64x4_epi64(__m256i __W,__mmask8 __U,__m512i __A,const int __imm)5927 _mm512_mask_extracti64x4_epi64 (__m256i __W, __mmask8 __U, __m512i __A,
5928 				const int __imm)
5929 {
5930   return (__m256i) __builtin_ia32_extracti64x4_mask ((__v8di) __A,
5931 						     __imm,
5932 						     (__v4di) __W,
5933 						     (__mmask8) __U);
5934 }
5935 
5936 extern __inline __m256i
5937 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_extracti64x4_epi64(__mmask8 __U,__m512i __A,const int __imm)5938 _mm512_maskz_extracti64x4_epi64 (__mmask8 __U, __m512i __A, const int __imm)
5939 {
5940   return (__m256i) __builtin_ia32_extracti64x4_mask ((__v8di) __A,
5941 						     __imm,
5942 						     (__v4di)
5943 						     _mm256_setzero_si256 (),
5944 						     (__mmask8) __U);
5945 }
5946 
5947 extern __inline __m128i
5948 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_extracti32x4_epi32(__m512i __A,const int __imm)5949 _mm512_extracti32x4_epi32 (__m512i __A, const int __imm)
5950 {
5951   return (__m128i) __builtin_ia32_extracti32x4_mask ((__v16si) __A,
5952 						     __imm,
5953 						     (__v4si)
5954 						     _mm_undefined_si128 (),
5955 						     (__mmask8) -1);
5956 }
5957 
5958 extern __inline __m128i
5959 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_extracti32x4_epi32(__m128i __W,__mmask8 __U,__m512i __A,const int __imm)5960 _mm512_mask_extracti32x4_epi32 (__m128i __W, __mmask8 __U, __m512i __A,
5961 				const int __imm)
5962 {
5963   return (__m128i) __builtin_ia32_extracti32x4_mask ((__v16si) __A,
5964 						     __imm,
5965 						     (__v4si) __W,
5966 						     (__mmask8) __U);
5967 }
5968 
5969 extern __inline __m128i
5970 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_extracti32x4_epi32(__mmask8 __U,__m512i __A,const int __imm)5971 _mm512_maskz_extracti32x4_epi32 (__mmask8 __U, __m512i __A, const int __imm)
5972 {
5973   return (__m128i) __builtin_ia32_extracti32x4_mask ((__v16si) __A,
5974 						     __imm,
5975 						     (__v4si)
5976 						     _mm_setzero_si128 (),
5977 						     (__mmask8) __U);
5978 }
5979 #else
5980 
5981 #define _mm512_extractf64x4_pd(X, C)                                    \
5982   ((__m256d) __builtin_ia32_extractf64x4_mask ((__v8df)(__m512d) (X),   \
5983     (int) (C),\
5984     (__v4df)(__m256d)_mm256_undefined_pd(),\
5985     (__mmask8)-1))
5986 
5987 #define _mm512_mask_extractf64x4_pd(W, U, X, C)                         \
5988   ((__m256d) __builtin_ia32_extractf64x4_mask ((__v8df)(__m512d) (X),   \
5989     (int) (C),\
5990     (__v4df)(__m256d)(W),\
5991     (__mmask8)(U)))
5992 
5993 #define _mm512_maskz_extractf64x4_pd(U, X, C)                           \
5994   ((__m256d) __builtin_ia32_extractf64x4_mask ((__v8df)(__m512d) (X),   \
5995     (int) (C),\
5996     (__v4df)(__m256d)_mm256_setzero_pd(),\
5997     (__mmask8)(U)))
5998 
5999 #define _mm512_extractf32x4_ps(X, C)                                    \
6000   ((__m128) __builtin_ia32_extractf32x4_mask ((__v16sf)(__m512) (X),    \
6001     (int) (C),\
6002     (__v4sf)(__m128)_mm_undefined_ps(),\
6003     (__mmask8)-1))
6004 
6005 #define _mm512_mask_extractf32x4_ps(W, U, X, C)                         \
6006   ((__m128) __builtin_ia32_extractf32x4_mask ((__v16sf)(__m512) (X),    \
6007     (int) (C),\
6008     (__v4sf)(__m128)(W),\
6009     (__mmask8)(U)))
6010 
6011 #define _mm512_maskz_extractf32x4_ps(U, X, C)                           \
6012   ((__m128) __builtin_ia32_extractf32x4_mask ((__v16sf)(__m512) (X),    \
6013     (int) (C),\
6014     (__v4sf)(__m128)_mm_setzero_ps(),\
6015     (__mmask8)(U)))
6016 
6017 #define _mm512_extracti64x4_epi64(X, C)                                 \
6018   ((__m256i) __builtin_ia32_extracti64x4_mask ((__v8di)(__m512i) (X),   \
6019     (int) (C),\
6020     (__v4di)(__m256i)_mm256_undefined_si256 (),\
6021     (__mmask8)-1))
6022 
6023 #define _mm512_mask_extracti64x4_epi64(W, U, X, C)                      \
6024   ((__m256i) __builtin_ia32_extracti64x4_mask ((__v8di)(__m512i) (X),   \
6025     (int) (C),\
6026     (__v4di)(__m256i)(W),\
6027     (__mmask8)(U)))
6028 
6029 #define _mm512_maskz_extracti64x4_epi64(U, X, C)                        \
6030   ((__m256i) __builtin_ia32_extracti64x4_mask ((__v8di)(__m512i) (X),   \
6031     (int) (C),\
6032     (__v4di)(__m256i)_mm256_setzero_si256 (),\
6033     (__mmask8)(U)))
6034 
6035 #define _mm512_extracti32x4_epi32(X, C)                                 \
6036   ((__m128i) __builtin_ia32_extracti32x4_mask ((__v16si)(__m512i) (X),  \
6037     (int) (C),\
6038     (__v4si)(__m128i)_mm_undefined_si128 (),\
6039     (__mmask8)-1))
6040 
6041 #define _mm512_mask_extracti32x4_epi32(W, U, X, C)                      \
6042   ((__m128i) __builtin_ia32_extracti32x4_mask ((__v16si)(__m512i) (X),  \
6043     (int) (C),\
6044     (__v4si)(__m128i)(W),\
6045     (__mmask8)(U)))
6046 
6047 #define _mm512_maskz_extracti32x4_epi32(U, X, C)                        \
6048   ((__m128i) __builtin_ia32_extracti32x4_mask ((__v16si)(__m512i) (X),  \
6049     (int) (C),\
6050     (__v4si)(__m128i)_mm_setzero_si128 (),\
6051     (__mmask8)(U)))
6052 #endif
6053 
6054 #ifdef __OPTIMIZE__
6055 extern __inline __m512i
6056 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_inserti32x4(__m512i __A,__m128i __B,const int __imm)6057 _mm512_inserti32x4 (__m512i __A, __m128i __B, const int __imm)
6058 {
6059   return (__m512i) __builtin_ia32_inserti32x4_mask ((__v16si) __A,
6060 						    (__v4si) __B,
6061 						    __imm,
6062 						    (__v16si) __A, -1);
6063 }
6064 
6065 extern __inline __m512
6066 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_insertf32x4(__m512 __A,__m128 __B,const int __imm)6067 _mm512_insertf32x4 (__m512 __A, __m128 __B, const int __imm)
6068 {
6069   return (__m512) __builtin_ia32_insertf32x4_mask ((__v16sf) __A,
6070 						   (__v4sf) __B,
6071 						   __imm,
6072 						   (__v16sf) __A, -1);
6073 }
6074 
6075 extern __inline __m512i
6076 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_inserti64x4(__m512i __A,__m256i __B,const int __imm)6077 _mm512_inserti64x4 (__m512i __A, __m256i __B, const int __imm)
6078 {
6079   return (__m512i) __builtin_ia32_inserti64x4_mask ((__v8di) __A,
6080 						    (__v4di) __B,
6081 						    __imm,
6082 						    (__v8di)
6083 						    _mm512_undefined_epi32 (),
6084 						    (__mmask8) -1);
6085 }
6086 
6087 extern __inline __m512i
6088 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_inserti64x4(__m512i __W,__mmask8 __U,__m512i __A,__m256i __B,const int __imm)6089 _mm512_mask_inserti64x4 (__m512i __W, __mmask8 __U, __m512i __A,
6090 			 __m256i __B, const int __imm)
6091 {
6092   return (__m512i) __builtin_ia32_inserti64x4_mask ((__v8di) __A,
6093 						    (__v4di) __B,
6094 						    __imm,
6095 						    (__v8di) __W,
6096 						    (__mmask8) __U);
6097 }
6098 
6099 extern __inline __m512i
6100 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_inserti64x4(__mmask8 __U,__m512i __A,__m256i __B,const int __imm)6101 _mm512_maskz_inserti64x4 (__mmask8 __U, __m512i __A, __m256i __B,
6102 			  const int __imm)
6103 {
6104   return (__m512i) __builtin_ia32_inserti64x4_mask ((__v8di) __A,
6105 						    (__v4di) __B,
6106 						    __imm,
6107 						    (__v8di)
6108 						    _mm512_setzero_si512 (),
6109 						    (__mmask8) __U);
6110 }
6111 
6112 extern __inline __m512d
6113 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_insertf64x4(__m512d __A,__m256d __B,const int __imm)6114 _mm512_insertf64x4 (__m512d __A, __m256d __B, const int __imm)
6115 {
6116   return (__m512d) __builtin_ia32_insertf64x4_mask ((__v8df) __A,
6117 						    (__v4df) __B,
6118 						    __imm,
6119 						    (__v8df)
6120 						    _mm512_undefined_pd (),
6121 						    (__mmask8) -1);
6122 }
6123 
6124 extern __inline __m512d
6125 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_insertf64x4(__m512d __W,__mmask8 __U,__m512d __A,__m256d __B,const int __imm)6126 _mm512_mask_insertf64x4 (__m512d __W, __mmask8 __U, __m512d __A,
6127 			 __m256d __B, const int __imm)
6128 {
6129   return (__m512d) __builtin_ia32_insertf64x4_mask ((__v8df) __A,
6130 						    (__v4df) __B,
6131 						    __imm,
6132 						    (__v8df) __W,
6133 						    (__mmask8) __U);
6134 }
6135 
6136 extern __inline __m512d
6137 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_insertf64x4(__mmask8 __U,__m512d __A,__m256d __B,const int __imm)6138 _mm512_maskz_insertf64x4 (__mmask8 __U, __m512d __A, __m256d __B,
6139 			  const int __imm)
6140 {
6141   return (__m512d) __builtin_ia32_insertf64x4_mask ((__v8df) __A,
6142 						    (__v4df) __B,
6143 						    __imm,
6144 						    (__v8df)
6145 						    _mm512_setzero_pd (),
6146 						    (__mmask8) __U);
6147 }
6148 #else
6149 #define _mm512_insertf32x4(X, Y, C)                                     \
6150   ((__m512) __builtin_ia32_insertf32x4_mask ((__v16sf)(__m512) (X),     \
6151     (__v4sf)(__m128) (Y), (int) (C), (__v16sf)(__m512) (X), (__mmask16)(-1)))
6152 
6153 #define _mm512_inserti32x4(X, Y, C)                                     \
6154   ((__m512i) __builtin_ia32_inserti32x4_mask ((__v16si)(__m512i) (X),   \
6155     (__v4si)(__m128i) (Y), (int) (C), (__v16si)(__m512i) (X), (__mmask16)(-1)))
6156 
6157 #define _mm512_insertf64x4(X, Y, C)                                     \
6158   ((__m512d) __builtin_ia32_insertf64x4_mask ((__v8df)(__m512d) (X),    \
6159     (__v4df)(__m256d) (Y), (int) (C),					\
6160     (__v8df)(__m512d)_mm512_undefined_pd(),				\
6161     (__mmask8)-1))
6162 
6163 #define _mm512_mask_insertf64x4(W, U, X, Y, C)                          \
6164   ((__m512d) __builtin_ia32_insertf64x4_mask ((__v8df)(__m512d) (X),    \
6165     (__v4df)(__m256d) (Y), (int) (C),					\
6166     (__v8df)(__m512d)(W),						\
6167     (__mmask8)(U)))
6168 
6169 #define _mm512_maskz_insertf64x4(U, X, Y, C)                            \
6170   ((__m512d) __builtin_ia32_insertf64x4_mask ((__v8df)(__m512d) (X),    \
6171     (__v4df)(__m256d) (Y), (int) (C),					\
6172     (__v8df)(__m512d)_mm512_setzero_pd(),				\
6173     (__mmask8)(U)))
6174 
6175 #define _mm512_inserti64x4(X, Y, C)                                     \
6176   ((__m512i) __builtin_ia32_inserti64x4_mask ((__v8di)(__m512i) (X),    \
6177     (__v4di)(__m256i) (Y), (int) (C),					\
6178     (__v8di)(__m512i)_mm512_undefined_epi32 (),				\
6179     (__mmask8)-1))
6180 
6181 #define _mm512_mask_inserti64x4(W, U, X, Y, C)                          \
6182   ((__m512i) __builtin_ia32_inserti64x4_mask ((__v8di)(__m512i) (X),    \
6183     (__v4di)(__m256i) (Y), (int) (C),\
6184     (__v8di)(__m512i)(W),\
6185     (__mmask8)(U)))
6186 
6187 #define _mm512_maskz_inserti64x4(U, X, Y, C)                            \
6188   ((__m512i) __builtin_ia32_inserti64x4_mask ((__v8di)(__m512i) (X),    \
6189     (__v4di)(__m256i) (Y), (int) (C),					\
6190     (__v8di)(__m512i)_mm512_setzero_si512 (),				\
6191     (__mmask8)(U)))
6192 #endif
6193 
6194 extern __inline __m512d
6195 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_loadu_pd(void const * __P)6196 _mm512_loadu_pd (void const *__P)
6197 {
6198   return *(__m512d_u *)__P;
6199 }
6200 
6201 extern __inline __m512d
6202 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_loadu_pd(__m512d __W,__mmask8 __U,void const * __P)6203 _mm512_mask_loadu_pd (__m512d __W, __mmask8 __U, void const *__P)
6204 {
6205   return (__m512d) __builtin_ia32_loadupd512_mask ((const double *) __P,
6206 						   (__v8df) __W,
6207 						   (__mmask8) __U);
6208 }
6209 
6210 extern __inline __m512d
6211 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_loadu_pd(__mmask8 __U,void const * __P)6212 _mm512_maskz_loadu_pd (__mmask8 __U, void const *__P)
6213 {
6214   return (__m512d) __builtin_ia32_loadupd512_mask ((const double *) __P,
6215 						   (__v8df)
6216 						   _mm512_setzero_pd (),
6217 						   (__mmask8) __U);
6218 }
6219 
6220 extern __inline void
6221 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_storeu_pd(void * __P,__m512d __A)6222 _mm512_storeu_pd (void *__P, __m512d __A)
6223 {
6224   *(__m512d_u *)__P = __A;
6225 }
6226 
6227 extern __inline void
6228 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_storeu_pd(void * __P,__mmask8 __U,__m512d __A)6229 _mm512_mask_storeu_pd (void *__P, __mmask8 __U, __m512d __A)
6230 {
6231   __builtin_ia32_storeupd512_mask ((double *) __P, (__v8df) __A,
6232 				   (__mmask8) __U);
6233 }
6234 
6235 extern __inline __m512
6236 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_loadu_ps(void const * __P)6237 _mm512_loadu_ps (void const *__P)
6238 {
6239   return *(__m512_u *)__P;
6240 }
6241 
6242 extern __inline __m512
6243 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_loadu_ps(__m512 __W,__mmask16 __U,void const * __P)6244 _mm512_mask_loadu_ps (__m512 __W, __mmask16 __U, void const *__P)
6245 {
6246   return (__m512) __builtin_ia32_loadups512_mask ((const float *) __P,
6247 						  (__v16sf) __W,
6248 						  (__mmask16) __U);
6249 }
6250 
6251 extern __inline __m512
6252 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_loadu_ps(__mmask16 __U,void const * __P)6253 _mm512_maskz_loadu_ps (__mmask16 __U, void const *__P)
6254 {
6255   return (__m512) __builtin_ia32_loadups512_mask ((const float *) __P,
6256 						  (__v16sf)
6257 						  _mm512_setzero_ps (),
6258 						  (__mmask16) __U);
6259 }
6260 
6261 extern __inline void
6262 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_storeu_ps(void * __P,__m512 __A)6263 _mm512_storeu_ps (void *__P, __m512 __A)
6264 {
6265   *(__m512_u *)__P = __A;
6266 }
6267 
6268 extern __inline void
6269 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_storeu_ps(void * __P,__mmask16 __U,__m512 __A)6270 _mm512_mask_storeu_ps (void *__P, __mmask16 __U, __m512 __A)
6271 {
6272   __builtin_ia32_storeups512_mask ((float *) __P, (__v16sf) __A,
6273 				   (__mmask16) __U);
6274 }
6275 
6276 extern __inline __m128
6277 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_load_ss(__m128 __W,__mmask8 __U,const float * __P)6278 _mm_mask_load_ss (__m128 __W, __mmask8 __U, const float *__P)
6279 {
6280   return (__m128) __builtin_ia32_loadss_mask (__P, (__v4sf) __W, __U);
6281 }
6282 
6283 extern __inline __m128
6284 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_load_ss(__mmask8 __U,const float * __P)6285 _mm_maskz_load_ss (__mmask8 __U, const float *__P)
6286 {
6287   return (__m128) __builtin_ia32_loadss_mask (__P, (__v4sf) _mm_setzero_ps (),
6288 					      __U);
6289 }
6290 
6291 extern __inline __m128d
6292 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_load_sd(__m128d __W,__mmask8 __U,const double * __P)6293 _mm_mask_load_sd (__m128d __W, __mmask8 __U, const double *__P)
6294 {
6295   return (__m128d) __builtin_ia32_loadsd_mask (__P, (__v2df) __W, __U);
6296 }
6297 
6298 extern __inline __m128d
6299 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_load_sd(__mmask8 __U,const double * __P)6300 _mm_maskz_load_sd (__mmask8 __U, const double *__P)
6301 {
6302   return (__m128d) __builtin_ia32_loadsd_mask (__P, (__v2df) _mm_setzero_pd (),
6303 					       __U);
6304 }
6305 
6306 extern __inline __m128
6307 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_move_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)6308 _mm_mask_move_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
6309 {
6310   return (__m128) __builtin_ia32_movess_mask ((__v4sf) __A, (__v4sf) __B,
6311 					      (__v4sf) __W, __U);
6312 }
6313 
6314 extern __inline __m128
6315 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_move_ss(__mmask8 __U,__m128 __A,__m128 __B)6316 _mm_maskz_move_ss (__mmask8 __U, __m128 __A, __m128 __B)
6317 {
6318   return (__m128) __builtin_ia32_movess_mask ((__v4sf) __A, (__v4sf) __B,
6319 					      (__v4sf) _mm_setzero_ps (), __U);
6320 }
6321 
6322 extern __inline __m128d
6323 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_move_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)6324 _mm_mask_move_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
6325 {
6326   return (__m128d) __builtin_ia32_movesd_mask ((__v2df) __A, (__v2df) __B,
6327 					       (__v2df) __W, __U);
6328 }
6329 
6330 extern __inline __m128d
6331 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_move_sd(__mmask8 __U,__m128d __A,__m128d __B)6332 _mm_maskz_move_sd (__mmask8 __U, __m128d __A, __m128d __B)
6333 {
6334   return (__m128d) __builtin_ia32_movesd_mask ((__v2df) __A, (__v2df) __B,
6335 					       (__v2df) _mm_setzero_pd (),
6336 					       __U);
6337 }
6338 
6339 extern __inline void
6340 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_store_ss(float * __P,__mmask8 __U,__m128 __A)6341 _mm_mask_store_ss (float *__P, __mmask8 __U, __m128 __A)
6342 {
6343   __builtin_ia32_storess_mask (__P, (__v4sf) __A, (__mmask8) __U);
6344 }
6345 
6346 extern __inline void
6347 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_store_sd(double * __P,__mmask8 __U,__m128d __A)6348 _mm_mask_store_sd (double *__P, __mmask8 __U, __m128d __A)
6349 {
6350   __builtin_ia32_storesd_mask (__P, (__v2df) __A, (__mmask8) __U);
6351 }
6352 
6353 extern __inline __m512i
6354 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_loadu_epi64(void const * __P)6355 _mm512_loadu_epi64 (void const *__P)
6356 {
6357   return *(__m512i_u *) __P;
6358 }
6359 
6360 extern __inline __m512i
6361 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_loadu_epi64(__m512i __W,__mmask8 __U,void const * __P)6362 _mm512_mask_loadu_epi64 (__m512i __W, __mmask8 __U, void const *__P)
6363 {
6364   return (__m512i) __builtin_ia32_loaddqudi512_mask ((const long long *) __P,
6365 						     (__v8di) __W,
6366 						     (__mmask8) __U);
6367 }
6368 
6369 extern __inline __m512i
6370 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_loadu_epi64(__mmask8 __U,void const * __P)6371 _mm512_maskz_loadu_epi64 (__mmask8 __U, void const *__P)
6372 {
6373   return (__m512i) __builtin_ia32_loaddqudi512_mask ((const long long *) __P,
6374 						     (__v8di)
6375 						     _mm512_setzero_si512 (),
6376 						     (__mmask8) __U);
6377 }
6378 
6379 extern __inline void
6380 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_storeu_epi64(void * __P,__m512i __A)6381 _mm512_storeu_epi64 (void *__P, __m512i __A)
6382 {
6383   *(__m512i_u *) __P = (__m512i_u) __A;
6384 }
6385 
6386 extern __inline void
6387 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_storeu_epi64(void * __P,__mmask8 __U,__m512i __A)6388 _mm512_mask_storeu_epi64 (void *__P, __mmask8 __U, __m512i __A)
6389 {
6390   __builtin_ia32_storedqudi512_mask ((long long *) __P, (__v8di) __A,
6391 				     (__mmask8) __U);
6392 }
6393 
6394 extern __inline __m512i
6395 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_loadu_si512(void const * __P)6396 _mm512_loadu_si512 (void const *__P)
6397 {
6398   return *(__m512i_u *)__P;
6399 }
6400 
6401 extern __inline __m512i
6402 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_loadu_epi32(void const * __P)6403 _mm512_loadu_epi32 (void const *__P)
6404 {
6405   return *(__m512i_u *) __P;
6406 }
6407 
6408 extern __inline __m512i
6409 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_loadu_epi32(__m512i __W,__mmask16 __U,void const * __P)6410 _mm512_mask_loadu_epi32 (__m512i __W, __mmask16 __U, void const *__P)
6411 {
6412   return (__m512i) __builtin_ia32_loaddqusi512_mask ((const int *) __P,
6413 						     (__v16si) __W,
6414 						     (__mmask16) __U);
6415 }
6416 
6417 extern __inline __m512i
6418 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_loadu_epi32(__mmask16 __U,void const * __P)6419 _mm512_maskz_loadu_epi32 (__mmask16 __U, void const *__P)
6420 {
6421   return (__m512i) __builtin_ia32_loaddqusi512_mask ((const int *) __P,
6422 						     (__v16si)
6423 						     _mm512_setzero_si512 (),
6424 						     (__mmask16) __U);
6425 }
6426 
6427 extern __inline void
6428 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_storeu_si512(void * __P,__m512i __A)6429 _mm512_storeu_si512 (void *__P, __m512i __A)
6430 {
6431   *(__m512i_u *)__P = __A;
6432 }
6433 
6434 extern __inline void
6435 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_storeu_epi32(void * __P,__m512i __A)6436 _mm512_storeu_epi32 (void *__P, __m512i __A)
6437 {
6438   *(__m512i_u *) __P = (__m512i_u) __A;
6439 }
6440 
6441 extern __inline void
6442 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_storeu_epi32(void * __P,__mmask16 __U,__m512i __A)6443 _mm512_mask_storeu_epi32 (void *__P, __mmask16 __U, __m512i __A)
6444 {
6445   __builtin_ia32_storedqusi512_mask ((int *) __P, (__v16si) __A,
6446 				     (__mmask16) __U);
6447 }
6448 
6449 extern __inline __m512d
6450 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_permutevar_pd(__m512d __A,__m512i __C)6451 _mm512_permutevar_pd (__m512d __A, __m512i __C)
6452 {
6453   return (__m512d) __builtin_ia32_vpermilvarpd512_mask ((__v8df) __A,
6454 							(__v8di) __C,
6455 							(__v8df)
6456 							_mm512_undefined_pd (),
6457 							(__mmask8) -1);
6458 }
6459 
6460 extern __inline __m512d
6461 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_permutevar_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512i __C)6462 _mm512_mask_permutevar_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512i __C)
6463 {
6464   return (__m512d) __builtin_ia32_vpermilvarpd512_mask ((__v8df) __A,
6465 							(__v8di) __C,
6466 							(__v8df) __W,
6467 							(__mmask8) __U);
6468 }
6469 
6470 extern __inline __m512d
6471 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_permutevar_pd(__mmask8 __U,__m512d __A,__m512i __C)6472 _mm512_maskz_permutevar_pd (__mmask8 __U, __m512d __A, __m512i __C)
6473 {
6474   return (__m512d) __builtin_ia32_vpermilvarpd512_mask ((__v8df) __A,
6475 							(__v8di) __C,
6476 							(__v8df)
6477 							_mm512_setzero_pd (),
6478 							(__mmask8) __U);
6479 }
6480 
6481 extern __inline __m512
6482 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_permutevar_ps(__m512 __A,__m512i __C)6483 _mm512_permutevar_ps (__m512 __A, __m512i __C)
6484 {
6485   return (__m512) __builtin_ia32_vpermilvarps512_mask ((__v16sf) __A,
6486 						       (__v16si) __C,
6487 						       (__v16sf)
6488 						       _mm512_undefined_ps (),
6489 						       (__mmask16) -1);
6490 }
6491 
6492 extern __inline __m512
6493 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_permutevar_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512i __C)6494 _mm512_mask_permutevar_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512i __C)
6495 {
6496   return (__m512) __builtin_ia32_vpermilvarps512_mask ((__v16sf) __A,
6497 						       (__v16si) __C,
6498 						       (__v16sf) __W,
6499 						       (__mmask16) __U);
6500 }
6501 
6502 extern __inline __m512
6503 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_permutevar_ps(__mmask16 __U,__m512 __A,__m512i __C)6504 _mm512_maskz_permutevar_ps (__mmask16 __U, __m512 __A, __m512i __C)
6505 {
6506   return (__m512) __builtin_ia32_vpermilvarps512_mask ((__v16sf) __A,
6507 						       (__v16si) __C,
6508 						       (__v16sf)
6509 						       _mm512_setzero_ps (),
6510 						       (__mmask16) __U);
6511 }
6512 
6513 extern __inline __m512i
6514 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_permutex2var_epi64(__m512i __A,__m512i __I,__m512i __B)6515 _mm512_permutex2var_epi64 (__m512i __A, __m512i __I, __m512i __B)
6516 {
6517   return (__m512i) __builtin_ia32_vpermt2varq512_mask ((__v8di) __I
6518 						       /* idx */ ,
6519 						       (__v8di) __A,
6520 						       (__v8di) __B,
6521 						       (__mmask8) -1);
6522 }
6523 
6524 extern __inline __m512i
6525 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_permutex2var_epi64(__m512i __A,__mmask8 __U,__m512i __I,__m512i __B)6526 _mm512_mask_permutex2var_epi64 (__m512i __A, __mmask8 __U, __m512i __I,
6527 				__m512i __B)
6528 {
6529   return (__m512i) __builtin_ia32_vpermt2varq512_mask ((__v8di) __I
6530 						       /* idx */ ,
6531 						       (__v8di) __A,
6532 						       (__v8di) __B,
6533 						       (__mmask8) __U);
6534 }
6535 
6536 extern __inline __m512i
6537 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask2_permutex2var_epi64(__m512i __A,__m512i __I,__mmask8 __U,__m512i __B)6538 _mm512_mask2_permutex2var_epi64 (__m512i __A, __m512i __I,
6539 				 __mmask8 __U, __m512i __B)
6540 {
6541   return (__m512i) __builtin_ia32_vpermi2varq512_mask ((__v8di) __A,
6542 						       (__v8di) __I
6543 						       /* idx */ ,
6544 						       (__v8di) __B,
6545 						       (__mmask8) __U);
6546 }
6547 
6548 extern __inline __m512i
6549 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_permutex2var_epi64(__mmask8 __U,__m512i __A,__m512i __I,__m512i __B)6550 _mm512_maskz_permutex2var_epi64 (__mmask8 __U, __m512i __A,
6551 				 __m512i __I, __m512i __B)
6552 {
6553   return (__m512i) __builtin_ia32_vpermt2varq512_maskz ((__v8di) __I
6554 							/* idx */ ,
6555 							(__v8di) __A,
6556 							(__v8di) __B,
6557 							(__mmask8) __U);
6558 }
6559 
6560 extern __inline __m512i
6561 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_permutex2var_epi32(__m512i __A,__m512i __I,__m512i __B)6562 _mm512_permutex2var_epi32 (__m512i __A, __m512i __I, __m512i __B)
6563 {
6564   return (__m512i) __builtin_ia32_vpermt2vard512_mask ((__v16si) __I
6565 						       /* idx */ ,
6566 						       (__v16si) __A,
6567 						       (__v16si) __B,
6568 						       (__mmask16) -1);
6569 }
6570 
6571 extern __inline __m512i
6572 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_permutex2var_epi32(__m512i __A,__mmask16 __U,__m512i __I,__m512i __B)6573 _mm512_mask_permutex2var_epi32 (__m512i __A, __mmask16 __U,
6574 				__m512i __I, __m512i __B)
6575 {
6576   return (__m512i) __builtin_ia32_vpermt2vard512_mask ((__v16si) __I
6577 						       /* idx */ ,
6578 						       (__v16si) __A,
6579 						       (__v16si) __B,
6580 						       (__mmask16) __U);
6581 }
6582 
6583 extern __inline __m512i
6584 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask2_permutex2var_epi32(__m512i __A,__m512i __I,__mmask16 __U,__m512i __B)6585 _mm512_mask2_permutex2var_epi32 (__m512i __A, __m512i __I,
6586 				 __mmask16 __U, __m512i __B)
6587 {
6588   return (__m512i) __builtin_ia32_vpermi2vard512_mask ((__v16si) __A,
6589 						       (__v16si) __I
6590 						       /* idx */ ,
6591 						       (__v16si) __B,
6592 						       (__mmask16) __U);
6593 }
6594 
6595 extern __inline __m512i
6596 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_permutex2var_epi32(__mmask16 __U,__m512i __A,__m512i __I,__m512i __B)6597 _mm512_maskz_permutex2var_epi32 (__mmask16 __U, __m512i __A,
6598 				 __m512i __I, __m512i __B)
6599 {
6600   return (__m512i) __builtin_ia32_vpermt2vard512_maskz ((__v16si) __I
6601 							/* idx */ ,
6602 							(__v16si) __A,
6603 							(__v16si) __B,
6604 							(__mmask16) __U);
6605 }
6606 
6607 extern __inline __m512d
6608 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_permutex2var_pd(__m512d __A,__m512i __I,__m512d __B)6609 _mm512_permutex2var_pd (__m512d __A, __m512i __I, __m512d __B)
6610 {
6611   return (__m512d) __builtin_ia32_vpermt2varpd512_mask ((__v8di) __I
6612 							/* idx */ ,
6613 							(__v8df) __A,
6614 							(__v8df) __B,
6615 							(__mmask8) -1);
6616 }
6617 
6618 extern __inline __m512d
6619 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_permutex2var_pd(__m512d __A,__mmask8 __U,__m512i __I,__m512d __B)6620 _mm512_mask_permutex2var_pd (__m512d __A, __mmask8 __U, __m512i __I,
6621 			     __m512d __B)
6622 {
6623   return (__m512d) __builtin_ia32_vpermt2varpd512_mask ((__v8di) __I
6624 							/* idx */ ,
6625 							(__v8df) __A,
6626 							(__v8df) __B,
6627 							(__mmask8) __U);
6628 }
6629 
6630 extern __inline __m512d
6631 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask2_permutex2var_pd(__m512d __A,__m512i __I,__mmask8 __U,__m512d __B)6632 _mm512_mask2_permutex2var_pd (__m512d __A, __m512i __I, __mmask8 __U,
6633 			      __m512d __B)
6634 {
6635   return (__m512d) __builtin_ia32_vpermi2varpd512_mask ((__v8df) __A,
6636 							(__v8di) __I
6637 							/* idx */ ,
6638 							(__v8df) __B,
6639 							(__mmask8) __U);
6640 }
6641 
6642 extern __inline __m512d
6643 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_permutex2var_pd(__mmask8 __U,__m512d __A,__m512i __I,__m512d __B)6644 _mm512_maskz_permutex2var_pd (__mmask8 __U, __m512d __A, __m512i __I,
6645 			      __m512d __B)
6646 {
6647   return (__m512d) __builtin_ia32_vpermt2varpd512_maskz ((__v8di) __I
6648 							 /* idx */ ,
6649 							 (__v8df) __A,
6650 							 (__v8df) __B,
6651 							 (__mmask8) __U);
6652 }
6653 
6654 extern __inline __m512
6655 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_permutex2var_ps(__m512 __A,__m512i __I,__m512 __B)6656 _mm512_permutex2var_ps (__m512 __A, __m512i __I, __m512 __B)
6657 {
6658   return (__m512) __builtin_ia32_vpermt2varps512_mask ((__v16si) __I
6659 						       /* idx */ ,
6660 						       (__v16sf) __A,
6661 						       (__v16sf) __B,
6662 						       (__mmask16) -1);
6663 }
6664 
6665 extern __inline __m512
6666 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_permutex2var_ps(__m512 __A,__mmask16 __U,__m512i __I,__m512 __B)6667 _mm512_mask_permutex2var_ps (__m512 __A, __mmask16 __U, __m512i __I, __m512 __B)
6668 {
6669   return (__m512) __builtin_ia32_vpermt2varps512_mask ((__v16si) __I
6670 						       /* idx */ ,
6671 						       (__v16sf) __A,
6672 						       (__v16sf) __B,
6673 						       (__mmask16) __U);
6674 }
6675 
6676 extern __inline __m512
6677 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask2_permutex2var_ps(__m512 __A,__m512i __I,__mmask16 __U,__m512 __B)6678 _mm512_mask2_permutex2var_ps (__m512 __A, __m512i __I, __mmask16 __U,
6679 			      __m512 __B)
6680 {
6681   return (__m512) __builtin_ia32_vpermi2varps512_mask ((__v16sf) __A,
6682 						       (__v16si) __I
6683 						       /* idx */ ,
6684 						       (__v16sf) __B,
6685 						       (__mmask16) __U);
6686 }
6687 
6688 extern __inline __m512
6689 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_permutex2var_ps(__mmask16 __U,__m512 __A,__m512i __I,__m512 __B)6690 _mm512_maskz_permutex2var_ps (__mmask16 __U, __m512 __A, __m512i __I,
6691 			      __m512 __B)
6692 {
6693   return (__m512) __builtin_ia32_vpermt2varps512_maskz ((__v16si) __I
6694 							/* idx */ ,
6695 							(__v16sf) __A,
6696 							(__v16sf) __B,
6697 							(__mmask16) __U);
6698 }
6699 
6700 #ifdef __OPTIMIZE__
6701 extern __inline __m512d
6702 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_permute_pd(__m512d __X,const int __C)6703 _mm512_permute_pd (__m512d __X, const int __C)
6704 {
6705   return (__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df) __X, __C,
6706 						     (__v8df)
6707 						     _mm512_undefined_pd (),
6708 						     (__mmask8) -1);
6709 }
6710 
6711 extern __inline __m512d
6712 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_permute_pd(__m512d __W,__mmask8 __U,__m512d __X,const int __C)6713 _mm512_mask_permute_pd (__m512d __W, __mmask8 __U, __m512d __X, const int __C)
6714 {
6715   return (__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df) __X, __C,
6716 						     (__v8df) __W,
6717 						     (__mmask8) __U);
6718 }
6719 
6720 extern __inline __m512d
6721 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_permute_pd(__mmask8 __U,__m512d __X,const int __C)6722 _mm512_maskz_permute_pd (__mmask8 __U, __m512d __X, const int __C)
6723 {
6724   return (__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df) __X, __C,
6725 						     (__v8df)
6726 						     _mm512_setzero_pd (),
6727 						     (__mmask8) __U);
6728 }
6729 
6730 extern __inline __m512
6731 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_permute_ps(__m512 __X,const int __C)6732 _mm512_permute_ps (__m512 __X, const int __C)
6733 {
6734   return (__m512) __builtin_ia32_vpermilps512_mask ((__v16sf) __X, __C,
6735 						    (__v16sf)
6736 						    _mm512_undefined_ps (),
6737 						    (__mmask16) -1);
6738 }
6739 
6740 extern __inline __m512
6741 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_permute_ps(__m512 __W,__mmask16 __U,__m512 __X,const int __C)6742 _mm512_mask_permute_ps (__m512 __W, __mmask16 __U, __m512 __X, const int __C)
6743 {
6744   return (__m512) __builtin_ia32_vpermilps512_mask ((__v16sf) __X, __C,
6745 						    (__v16sf) __W,
6746 						    (__mmask16) __U);
6747 }
6748 
6749 extern __inline __m512
6750 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_permute_ps(__mmask16 __U,__m512 __X,const int __C)6751 _mm512_maskz_permute_ps (__mmask16 __U, __m512 __X, const int __C)
6752 {
6753   return (__m512) __builtin_ia32_vpermilps512_mask ((__v16sf) __X, __C,
6754 						    (__v16sf)
6755 						    _mm512_setzero_ps (),
6756 						    (__mmask16) __U);
6757 }
6758 #else
6759 #define _mm512_permute_pd(X, C)							    \
6760   ((__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df)(__m512d)(X), (int)(C),	    \
6761 					      (__v8df)(__m512d)_mm512_undefined_pd(),\
6762 					      (__mmask8)(-1)))
6763 
6764 #define _mm512_mask_permute_pd(W, U, X, C)					    \
6765   ((__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df)(__m512d)(X), (int)(C),	    \
6766 					      (__v8df)(__m512d)(W),		    \
6767 					      (__mmask8)(U)))
6768 
6769 #define _mm512_maskz_permute_pd(U, X, C)					    \
6770   ((__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df)(__m512d)(X), (int)(C),	    \
6771 					      (__v8df)(__m512d)_mm512_setzero_pd(), \
6772 					      (__mmask8)(U)))
6773 
6774 #define _mm512_permute_ps(X, C)							    \
6775   ((__m512) __builtin_ia32_vpermilps512_mask ((__v16sf)(__m512)(X), (int)(C),	    \
6776 					      (__v16sf)(__m512)_mm512_undefined_ps(),\
6777 					      (__mmask16)(-1)))
6778 
6779 #define _mm512_mask_permute_ps(W, U, X, C)					    \
6780   ((__m512) __builtin_ia32_vpermilps512_mask ((__v16sf)(__m512)(X), (int)(C),	    \
6781 					      (__v16sf)(__m512)(W),		    \
6782 					      (__mmask16)(U)))
6783 
6784 #define _mm512_maskz_permute_ps(U, X, C)					    \
6785   ((__m512) __builtin_ia32_vpermilps512_mask ((__v16sf)(__m512)(X), (int)(C),	    \
6786 					      (__v16sf)(__m512)_mm512_setzero_ps(), \
6787 					      (__mmask16)(U)))
6788 #endif
6789 
6790 #ifdef __OPTIMIZE__
6791 extern __inline __m512i
6792 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_permutex_epi64(__m512i __X,const int __I)6793 _mm512_permutex_epi64 (__m512i __X, const int __I)
6794 {
6795   return (__m512i) __builtin_ia32_permdi512_mask ((__v8di) __X, __I,
6796 						  (__v8di)
6797 						  _mm512_undefined_epi32 (),
6798 						  (__mmask8) (-1));
6799 }
6800 
6801 extern __inline __m512i
6802 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_permutex_epi64(__m512i __W,__mmask8 __M,__m512i __X,const int __I)6803 _mm512_mask_permutex_epi64 (__m512i __W, __mmask8 __M,
6804 			    __m512i __X, const int __I)
6805 {
6806   return (__m512i) __builtin_ia32_permdi512_mask ((__v8di) __X, __I,
6807 						  (__v8di) __W,
6808 						  (__mmask8) __M);
6809 }
6810 
6811 extern __inline __m512i
6812 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_permutex_epi64(__mmask8 __M,__m512i __X,const int __I)6813 _mm512_maskz_permutex_epi64 (__mmask8 __M, __m512i __X, const int __I)
6814 {
6815   return (__m512i) __builtin_ia32_permdi512_mask ((__v8di) __X, __I,
6816 						  (__v8di)
6817 						  _mm512_setzero_si512 (),
6818 						  (__mmask8) __M);
6819 }
6820 
6821 extern __inline __m512d
6822 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_permutex_pd(__m512d __X,const int __M)6823 _mm512_permutex_pd (__m512d __X, const int __M)
6824 {
6825   return (__m512d) __builtin_ia32_permdf512_mask ((__v8df) __X, __M,
6826 						  (__v8df)
6827 						  _mm512_undefined_pd (),
6828 						  (__mmask8) -1);
6829 }
6830 
6831 extern __inline __m512d
6832 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_permutex_pd(__m512d __W,__mmask8 __U,__m512d __X,const int __M)6833 _mm512_mask_permutex_pd (__m512d __W, __mmask8 __U, __m512d __X, const int __M)
6834 {
6835   return (__m512d) __builtin_ia32_permdf512_mask ((__v8df) __X, __M,
6836 						  (__v8df) __W,
6837 						  (__mmask8) __U);
6838 }
6839 
6840 extern __inline __m512d
6841 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_permutex_pd(__mmask8 __U,__m512d __X,const int __M)6842 _mm512_maskz_permutex_pd (__mmask8 __U, __m512d __X, const int __M)
6843 {
6844   return (__m512d) __builtin_ia32_permdf512_mask ((__v8df) __X, __M,
6845 						  (__v8df)
6846 						  _mm512_setzero_pd (),
6847 						  (__mmask8) __U);
6848 }
6849 #else
6850 #define _mm512_permutex_pd(X, M)						\
6851   ((__m512d) __builtin_ia32_permdf512_mask ((__v8df)(__m512d)(X), (int)(M),	\
6852 					    (__v8df)(__m512d)_mm512_undefined_pd(),\
6853 					    (__mmask8)-1))
6854 
6855 #define _mm512_mask_permutex_pd(W, U, X, M)					\
6856   ((__m512d) __builtin_ia32_permdf512_mask ((__v8df)(__m512d)(X), (int)(M),	\
6857 					    (__v8df)(__m512d)(W), (__mmask8)(U)))
6858 
6859 #define _mm512_maskz_permutex_pd(U, X, M)					\
6860   ((__m512d) __builtin_ia32_permdf512_mask ((__v8df)(__m512d)(X), (int)(M),	\
6861 					    (__v8df)(__m512d)_mm512_setzero_pd(),\
6862 					    (__mmask8)(U)))
6863 
6864 #define _mm512_permutex_epi64(X, I)			          \
6865   ((__m512i) __builtin_ia32_permdi512_mask ((__v8di)(__m512i)(X), \
6866 					    (int)(I),             \
6867 					    (__v8di)(__m512i)	  \
6868 					    (_mm512_undefined_epi32 ()),\
6869 					    (__mmask8)(-1)))
6870 
6871 #define _mm512_maskz_permutex_epi64(M, X, I)                 \
6872   ((__m512i) __builtin_ia32_permdi512_mask ((__v8di)(__m512i)(X), \
6873 					    (int)(I),             \
6874 					    (__v8di)(__m512i)     \
6875 					    (_mm512_setzero_si512 ()),\
6876 					    (__mmask8)(M)))
6877 
6878 #define _mm512_mask_permutex_epi64(W, M, X, I)               \
6879   ((__m512i) __builtin_ia32_permdi512_mask ((__v8di)(__m512i)(X), \
6880 					    (int)(I),             \
6881 					    (__v8di)(__m512i)(W), \
6882 					    (__mmask8)(M)))
6883 #endif
6884 
6885 extern __inline __m512i
6886 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_permutexvar_epi64(__mmask8 __M,__m512i __X,__m512i __Y)6887 _mm512_maskz_permutexvar_epi64 (__mmask8 __M, __m512i __X, __m512i __Y)
6888 {
6889   return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __Y,
6890 						     (__v8di) __X,
6891 						     (__v8di)
6892 						     _mm512_setzero_si512 (),
6893 						     __M);
6894 }
6895 
6896 extern __inline __m512i
6897 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_permutexvar_epi64(__m512i __X,__m512i __Y)6898 _mm512_permutexvar_epi64 (__m512i __X, __m512i __Y)
6899 {
6900   return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __Y,
6901 						     (__v8di) __X,
6902 						     (__v8di)
6903 						     _mm512_undefined_epi32 (),
6904 						     (__mmask8) -1);
6905 }
6906 
6907 extern __inline __m512i
6908 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_permutexvar_epi64(__m512i __W,__mmask8 __M,__m512i __X,__m512i __Y)6909 _mm512_mask_permutexvar_epi64 (__m512i __W, __mmask8 __M, __m512i __X,
6910 			       __m512i __Y)
6911 {
6912   return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __Y,
6913 						     (__v8di) __X,
6914 						     (__v8di) __W,
6915 						     __M);
6916 }
6917 
6918 extern __inline __m512i
6919 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_permutexvar_epi32(__mmask16 __M,__m512i __X,__m512i __Y)6920 _mm512_maskz_permutexvar_epi32 (__mmask16 __M, __m512i __X, __m512i __Y)
6921 {
6922   return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __Y,
6923 						     (__v16si) __X,
6924 						     (__v16si)
6925 						     _mm512_setzero_si512 (),
6926 						     __M);
6927 }
6928 
6929 extern __inline __m512i
6930 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_permutexvar_epi32(__m512i __X,__m512i __Y)6931 _mm512_permutexvar_epi32 (__m512i __X, __m512i __Y)
6932 {
6933   return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __Y,
6934 						     (__v16si) __X,
6935 						     (__v16si)
6936 						     _mm512_undefined_epi32 (),
6937 						     (__mmask16) -1);
6938 }
6939 
6940 extern __inline __m512i
6941 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_permutexvar_epi32(__m512i __W,__mmask16 __M,__m512i __X,__m512i __Y)6942 _mm512_mask_permutexvar_epi32 (__m512i __W, __mmask16 __M, __m512i __X,
6943 			       __m512i __Y)
6944 {
6945   return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __Y,
6946 						     (__v16si) __X,
6947 						     (__v16si) __W,
6948 						     __M);
6949 }
6950 
6951 extern __inline __m512d
6952 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_permutexvar_pd(__m512i __X,__m512d __Y)6953 _mm512_permutexvar_pd (__m512i __X, __m512d __Y)
6954 {
6955   return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __Y,
6956 						     (__v8di) __X,
6957 						     (__v8df)
6958 						     _mm512_undefined_pd (),
6959 						     (__mmask8) -1);
6960 }
6961 
6962 extern __inline __m512d
6963 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_permutexvar_pd(__m512d __W,__mmask8 __U,__m512i __X,__m512d __Y)6964 _mm512_mask_permutexvar_pd (__m512d __W, __mmask8 __U, __m512i __X, __m512d __Y)
6965 {
6966   return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __Y,
6967 						     (__v8di) __X,
6968 						     (__v8df) __W,
6969 						     (__mmask8) __U);
6970 }
6971 
6972 extern __inline __m512d
6973 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_permutexvar_pd(__mmask8 __U,__m512i __X,__m512d __Y)6974 _mm512_maskz_permutexvar_pd (__mmask8 __U, __m512i __X, __m512d __Y)
6975 {
6976   return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __Y,
6977 						     (__v8di) __X,
6978 						     (__v8df)
6979 						     _mm512_setzero_pd (),
6980 						     (__mmask8) __U);
6981 }
6982 
6983 extern __inline __m512
6984 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_permutexvar_ps(__m512i __X,__m512 __Y)6985 _mm512_permutexvar_ps (__m512i __X, __m512 __Y)
6986 {
6987   return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __Y,
6988 						    (__v16si) __X,
6989 						    (__v16sf)
6990 						    _mm512_undefined_ps (),
6991 						    (__mmask16) -1);
6992 }
6993 
6994 extern __inline __m512
6995 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_permutexvar_ps(__m512 __W,__mmask16 __U,__m512i __X,__m512 __Y)6996 _mm512_mask_permutexvar_ps (__m512 __W, __mmask16 __U, __m512i __X, __m512 __Y)
6997 {
6998   return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __Y,
6999 						    (__v16si) __X,
7000 						    (__v16sf) __W,
7001 						    (__mmask16) __U);
7002 }
7003 
7004 extern __inline __m512
7005 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_permutexvar_ps(__mmask16 __U,__m512i __X,__m512 __Y)7006 _mm512_maskz_permutexvar_ps (__mmask16 __U, __m512i __X, __m512 __Y)
7007 {
7008   return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __Y,
7009 						    (__v16si) __X,
7010 						    (__v16sf)
7011 						    _mm512_setzero_ps (),
7012 						    (__mmask16) __U);
7013 }
7014 
7015 #ifdef __OPTIMIZE__
7016 extern __inline __m512
7017 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_shuffle_ps(__m512 __M,__m512 __V,const int __imm)7018 _mm512_shuffle_ps (__m512 __M, __m512 __V, const int __imm)
7019 {
7020   return (__m512) __builtin_ia32_shufps512_mask ((__v16sf) __M,
7021 						 (__v16sf) __V, __imm,
7022 						 (__v16sf)
7023 						 _mm512_undefined_ps (),
7024 						 (__mmask16) -1);
7025 }
7026 
7027 extern __inline __m512
7028 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_shuffle_ps(__m512 __W,__mmask16 __U,__m512 __M,__m512 __V,const int __imm)7029 _mm512_mask_shuffle_ps (__m512 __W, __mmask16 __U, __m512 __M,
7030 			__m512 __V, const int __imm)
7031 {
7032   return (__m512) __builtin_ia32_shufps512_mask ((__v16sf) __M,
7033 						 (__v16sf) __V, __imm,
7034 						 (__v16sf) __W,
7035 						 (__mmask16) __U);
7036 }
7037 
7038 extern __inline __m512
7039 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_shuffle_ps(__mmask16 __U,__m512 __M,__m512 __V,const int __imm)7040 _mm512_maskz_shuffle_ps (__mmask16 __U, __m512 __M, __m512 __V, const int __imm)
7041 {
7042   return (__m512) __builtin_ia32_shufps512_mask ((__v16sf) __M,
7043 						 (__v16sf) __V, __imm,
7044 						 (__v16sf)
7045 						 _mm512_setzero_ps (),
7046 						 (__mmask16) __U);
7047 }
7048 
7049 extern __inline __m512d
7050 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_shuffle_pd(__m512d __M,__m512d __V,const int __imm)7051 _mm512_shuffle_pd (__m512d __M, __m512d __V, const int __imm)
7052 {
7053   return (__m512d) __builtin_ia32_shufpd512_mask ((__v8df) __M,
7054 						  (__v8df) __V, __imm,
7055 						  (__v8df)
7056 						  _mm512_undefined_pd (),
7057 						  (__mmask8) -1);
7058 }
7059 
7060 extern __inline __m512d
7061 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_shuffle_pd(__m512d __W,__mmask8 __U,__m512d __M,__m512d __V,const int __imm)7062 _mm512_mask_shuffle_pd (__m512d __W, __mmask8 __U, __m512d __M,
7063 			__m512d __V, const int __imm)
7064 {
7065   return (__m512d) __builtin_ia32_shufpd512_mask ((__v8df) __M,
7066 						  (__v8df) __V, __imm,
7067 						  (__v8df) __W,
7068 						  (__mmask8) __U);
7069 }
7070 
7071 extern __inline __m512d
7072 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_shuffle_pd(__mmask8 __U,__m512d __M,__m512d __V,const int __imm)7073 _mm512_maskz_shuffle_pd (__mmask8 __U, __m512d __M, __m512d __V,
7074 			 const int __imm)
7075 {
7076   return (__m512d) __builtin_ia32_shufpd512_mask ((__v8df) __M,
7077 						  (__v8df) __V, __imm,
7078 						  (__v8df)
7079 						  _mm512_setzero_pd (),
7080 						  (__mmask8) __U);
7081 }
7082 
7083 extern __inline __m512d
7084 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_fixupimm_round_pd(__m512d __A,__m512d __B,__m512i __C,const int __imm,const int __R)7085 _mm512_fixupimm_round_pd (__m512d __A, __m512d __B, __m512i __C,
7086 			  const int __imm, const int __R)
7087 {
7088   return (__m512d) __builtin_ia32_fixupimmpd512_mask ((__v8df) __A,
7089 						      (__v8df) __B,
7090 						      (__v8di) __C,
7091 						      __imm,
7092 						      (__mmask8) -1, __R);
7093 }
7094 
7095 extern __inline __m512d
7096 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_fixupimm_round_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512i __C,const int __imm,const int __R)7097 _mm512_mask_fixupimm_round_pd (__m512d __A, __mmask8 __U, __m512d __B,
7098 			       __m512i __C, const int __imm, const int __R)
7099 {
7100   return (__m512d) __builtin_ia32_fixupimmpd512_mask ((__v8df) __A,
7101 						      (__v8df) __B,
7102 						      (__v8di) __C,
7103 						      __imm,
7104 						      (__mmask8) __U, __R);
7105 }
7106 
7107 extern __inline __m512d
7108 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_fixupimm_round_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512i __C,const int __imm,const int __R)7109 _mm512_maskz_fixupimm_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
7110 				__m512i __C, const int __imm, const int __R)
7111 {
7112   return (__m512d) __builtin_ia32_fixupimmpd512_maskz ((__v8df) __A,
7113 						       (__v8df) __B,
7114 						       (__v8di) __C,
7115 						       __imm,
7116 						       (__mmask8) __U, __R);
7117 }
7118 
7119 extern __inline __m512
7120 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_fixupimm_round_ps(__m512 __A,__m512 __B,__m512i __C,const int __imm,const int __R)7121 _mm512_fixupimm_round_ps (__m512 __A, __m512 __B, __m512i __C,
7122 			  const int __imm, const int __R)
7123 {
7124   return (__m512) __builtin_ia32_fixupimmps512_mask ((__v16sf) __A,
7125 						     (__v16sf) __B,
7126 						     (__v16si) __C,
7127 						     __imm,
7128 						     (__mmask16) -1, __R);
7129 }
7130 
7131 extern __inline __m512
7132 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_fixupimm_round_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512i __C,const int __imm,const int __R)7133 _mm512_mask_fixupimm_round_ps (__m512 __A, __mmask16 __U, __m512 __B,
7134 			       __m512i __C, const int __imm, const int __R)
7135 {
7136   return (__m512) __builtin_ia32_fixupimmps512_mask ((__v16sf) __A,
7137 						     (__v16sf) __B,
7138 						     (__v16si) __C,
7139 						     __imm,
7140 						     (__mmask16) __U, __R);
7141 }
7142 
7143 extern __inline __m512
7144 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_fixupimm_round_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512i __C,const int __imm,const int __R)7145 _mm512_maskz_fixupimm_round_ps (__mmask16 __U, __m512 __A, __m512 __B,
7146 				__m512i __C, const int __imm, const int __R)
7147 {
7148   return (__m512) __builtin_ia32_fixupimmps512_maskz ((__v16sf) __A,
7149 						      (__v16sf) __B,
7150 						      (__v16si) __C,
7151 						      __imm,
7152 						      (__mmask16) __U, __R);
7153 }
7154 
7155 extern __inline __m128d
7156 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_fixupimm_round_sd(__m128d __A,__m128d __B,__m128i __C,const int __imm,const int __R)7157 _mm_fixupimm_round_sd (__m128d __A, __m128d __B, __m128i __C,
7158 		       const int __imm, const int __R)
7159 {
7160   return (__m128d) __builtin_ia32_fixupimmsd_mask ((__v2df) __A,
7161 						   (__v2df) __B,
7162 						   (__v2di) __C, __imm,
7163 						   (__mmask8) -1, __R);
7164 }
7165 
7166 extern __inline __m128d
7167 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_fixupimm_round_sd(__m128d __A,__mmask8 __U,__m128d __B,__m128i __C,const int __imm,const int __R)7168 _mm_mask_fixupimm_round_sd (__m128d __A, __mmask8 __U, __m128d __B,
7169 			    __m128i __C, const int __imm, const int __R)
7170 {
7171   return (__m128d) __builtin_ia32_fixupimmsd_mask ((__v2df) __A,
7172 						   (__v2df) __B,
7173 						   (__v2di) __C, __imm,
7174 						   (__mmask8) __U, __R);
7175 }
7176 
7177 extern __inline __m128d
7178 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_fixupimm_round_sd(__mmask8 __U,__m128d __A,__m128d __B,__m128i __C,const int __imm,const int __R)7179 _mm_maskz_fixupimm_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
7180 			     __m128i __C, const int __imm, const int __R)
7181 {
7182   return (__m128d) __builtin_ia32_fixupimmsd_maskz ((__v2df) __A,
7183 						    (__v2df) __B,
7184 						    (__v2di) __C,
7185 						    __imm,
7186 						    (__mmask8) __U, __R);
7187 }
7188 
7189 extern __inline __m128
7190 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_fixupimm_round_ss(__m128 __A,__m128 __B,__m128i __C,const int __imm,const int __R)7191 _mm_fixupimm_round_ss (__m128 __A, __m128 __B, __m128i __C,
7192 		       const int __imm, const int __R)
7193 {
7194   return (__m128) __builtin_ia32_fixupimmss_mask ((__v4sf) __A,
7195 						  (__v4sf) __B,
7196 						  (__v4si) __C, __imm,
7197 						  (__mmask8) -1, __R);
7198 }
7199 
7200 extern __inline __m128
7201 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_fixupimm_round_ss(__m128 __A,__mmask8 __U,__m128 __B,__m128i __C,const int __imm,const int __R)7202 _mm_mask_fixupimm_round_ss (__m128 __A, __mmask8 __U, __m128 __B,
7203 			    __m128i __C, const int __imm, const int __R)
7204 {
7205   return (__m128) __builtin_ia32_fixupimmss_mask ((__v4sf) __A,
7206 						  (__v4sf) __B,
7207 						  (__v4si) __C, __imm,
7208 						  (__mmask8) __U, __R);
7209 }
7210 
7211 extern __inline __m128
7212 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_fixupimm_round_ss(__mmask8 __U,__m128 __A,__m128 __B,__m128i __C,const int __imm,const int __R)7213 _mm_maskz_fixupimm_round_ss (__mmask8 __U, __m128 __A, __m128 __B,
7214 			     __m128i __C, const int __imm, const int __R)
7215 {
7216   return (__m128) __builtin_ia32_fixupimmss_maskz ((__v4sf) __A,
7217 						   (__v4sf) __B,
7218 						   (__v4si) __C, __imm,
7219 						   (__mmask8) __U, __R);
7220 }
7221 
7222 #else
7223 #define _mm512_shuffle_pd(X, Y, C)                                      \
7224     ((__m512d)__builtin_ia32_shufpd512_mask ((__v8df)(__m512d)(X),           \
7225         (__v8df)(__m512d)(Y), (int)(C),\
7226     (__v8df)(__m512d)_mm512_undefined_pd(),\
7227     (__mmask8)-1))
7228 
7229 #define _mm512_mask_shuffle_pd(W, U, X, Y, C)                           \
7230     ((__m512d)__builtin_ia32_shufpd512_mask ((__v8df)(__m512d)(X),           \
7231         (__v8df)(__m512d)(Y), (int)(C),\
7232     (__v8df)(__m512d)(W),\
7233     (__mmask8)(U)))
7234 
7235 #define _mm512_maskz_shuffle_pd(U, X, Y, C)                             \
7236     ((__m512d)__builtin_ia32_shufpd512_mask ((__v8df)(__m512d)(X),           \
7237         (__v8df)(__m512d)(Y), (int)(C),\
7238     (__v8df)(__m512d)_mm512_setzero_pd(),\
7239     (__mmask8)(U)))
7240 
7241 #define _mm512_shuffle_ps(X, Y, C)                                      \
7242     ((__m512)__builtin_ia32_shufps512_mask ((__v16sf)(__m512)(X),            \
7243         (__v16sf)(__m512)(Y), (int)(C),\
7244     (__v16sf)(__m512)_mm512_undefined_ps(),\
7245     (__mmask16)-1))
7246 
7247 #define _mm512_mask_shuffle_ps(W, U, X, Y, C)                           \
7248     ((__m512)__builtin_ia32_shufps512_mask ((__v16sf)(__m512)(X),            \
7249         (__v16sf)(__m512)(Y), (int)(C),\
7250     (__v16sf)(__m512)(W),\
7251     (__mmask16)(U)))
7252 
7253 #define _mm512_maskz_shuffle_ps(U, X, Y, C)                             \
7254     ((__m512)__builtin_ia32_shufps512_mask ((__v16sf)(__m512)(X),            \
7255         (__v16sf)(__m512)(Y), (int)(C),\
7256     (__v16sf)(__m512)_mm512_setzero_ps(),\
7257     (__mmask16)(U)))
7258 
7259 #define _mm512_fixupimm_round_pd(X, Y, Z, C, R)					\
7260   ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X),	\
7261       (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C),		\
7262       (__mmask8)(-1), (R)))
7263 
7264 #define _mm512_mask_fixupimm_round_pd(X, U, Y, Z, C, R)                          \
7265   ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X),    \
7266       (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C),             \
7267       (__mmask8)(U), (R)))
7268 
7269 #define _mm512_maskz_fixupimm_round_pd(U, X, Y, Z, C, R)                         \
7270   ((__m512d)__builtin_ia32_fixupimmpd512_maskz ((__v8df)(__m512d)(X),   \
7271       (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C),             \
7272       (__mmask8)(U), (R)))
7273 
7274 #define _mm512_fixupimm_round_ps(X, Y, Z, C, R)					\
7275   ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X),	\
7276     (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C),		\
7277     (__mmask16)(-1), (R)))
7278 
7279 #define _mm512_mask_fixupimm_round_ps(X, U, Y, Z, C, R)                          \
7280   ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X),     \
7281     (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C),              \
7282     (__mmask16)(U), (R)))
7283 
7284 #define _mm512_maskz_fixupimm_round_ps(U, X, Y, Z, C, R)                         \
7285   ((__m512)__builtin_ia32_fixupimmps512_maskz ((__v16sf)(__m512)(X),    \
7286     (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C),              \
7287     (__mmask16)(U), (R)))
7288 
7289 #define _mm_fixupimm_round_sd(X, Y, Z, C, R)					\
7290     ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X),	\
7291       (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C),		\
7292       (__mmask8)(-1), (R)))
7293 
7294 #define _mm_mask_fixupimm_round_sd(X, U, Y, Z, C, R)				\
7295     ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X),	\
7296       (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C),		\
7297       (__mmask8)(U), (R)))
7298 
7299 #define _mm_maskz_fixupimm_round_sd(U, X, Y, Z, C, R)				\
7300     ((__m128d)__builtin_ia32_fixupimmsd_maskz ((__v2df)(__m128d)(X),	\
7301       (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C),		\
7302       (__mmask8)(U), (R)))
7303 
7304 #define _mm_fixupimm_round_ss(X, Y, Z, C, R)					\
7305     ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X),	\
7306       (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C),		\
7307       (__mmask8)(-1), (R)))
7308 
7309 #define _mm_mask_fixupimm_round_ss(X, U, Y, Z, C, R)				\
7310     ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X),	\
7311       (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C),		\
7312       (__mmask8)(U), (R)))
7313 
7314 #define _mm_maskz_fixupimm_round_ss(U, X, Y, Z, C, R)				\
7315     ((__m128)__builtin_ia32_fixupimmss_maskz ((__v4sf)(__m128)(X),	\
7316       (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C),		\
7317       (__mmask8)(U), (R)))
7318 #endif
7319 
7320 extern __inline __m512
7321 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_movehdup_ps(__m512 __A)7322 _mm512_movehdup_ps (__m512 __A)
7323 {
7324   return (__m512) __builtin_ia32_movshdup512_mask ((__v16sf) __A,
7325 						   (__v16sf)
7326 						   _mm512_undefined_ps (),
7327 						   (__mmask16) -1);
7328 }
7329 
7330 extern __inline __m512
7331 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_movehdup_ps(__m512 __W,__mmask16 __U,__m512 __A)7332 _mm512_mask_movehdup_ps (__m512 __W, __mmask16 __U, __m512 __A)
7333 {
7334   return (__m512) __builtin_ia32_movshdup512_mask ((__v16sf) __A,
7335 						   (__v16sf) __W,
7336 						   (__mmask16) __U);
7337 }
7338 
7339 extern __inline __m512
7340 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_movehdup_ps(__mmask16 __U,__m512 __A)7341 _mm512_maskz_movehdup_ps (__mmask16 __U, __m512 __A)
7342 {
7343   return (__m512) __builtin_ia32_movshdup512_mask ((__v16sf) __A,
7344 						   (__v16sf)
7345 						   _mm512_setzero_ps (),
7346 						   (__mmask16) __U);
7347 }
7348 
7349 extern __inline __m512
7350 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_moveldup_ps(__m512 __A)7351 _mm512_moveldup_ps (__m512 __A)
7352 {
7353   return (__m512) __builtin_ia32_movsldup512_mask ((__v16sf) __A,
7354 						   (__v16sf)
7355 						   _mm512_undefined_ps (),
7356 						   (__mmask16) -1);
7357 }
7358 
7359 extern __inline __m512
7360 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_moveldup_ps(__m512 __W,__mmask16 __U,__m512 __A)7361 _mm512_mask_moveldup_ps (__m512 __W, __mmask16 __U, __m512 __A)
7362 {
7363   return (__m512) __builtin_ia32_movsldup512_mask ((__v16sf) __A,
7364 						   (__v16sf) __W,
7365 						   (__mmask16) __U);
7366 }
7367 
7368 extern __inline __m512
7369 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_moveldup_ps(__mmask16 __U,__m512 __A)7370 _mm512_maskz_moveldup_ps (__mmask16 __U, __m512 __A)
7371 {
7372   return (__m512) __builtin_ia32_movsldup512_mask ((__v16sf) __A,
7373 						   (__v16sf)
7374 						   _mm512_setzero_ps (),
7375 						   (__mmask16) __U);
7376 }
7377 
7378 extern __inline __m512i
7379 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_or_si512(__m512i __A,__m512i __B)7380 _mm512_or_si512 (__m512i __A, __m512i __B)
7381 {
7382   return (__m512i) ((__v16su) __A | (__v16su) __B);
7383 }
7384 
7385 extern __inline __m512i
7386 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_or_epi32(__m512i __A,__m512i __B)7387 _mm512_or_epi32 (__m512i __A, __m512i __B)
7388 {
7389   return (__m512i) ((__v16su) __A | (__v16su) __B);
7390 }
7391 
7392 extern __inline __m512i
7393 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_or_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)7394 _mm512_mask_or_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
7395 {
7396   return (__m512i) __builtin_ia32_pord512_mask ((__v16si) __A,
7397 						(__v16si) __B,
7398 						(__v16si) __W,
7399 						(__mmask16) __U);
7400 }
7401 
7402 extern __inline __m512i
7403 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_or_epi32(__mmask16 __U,__m512i __A,__m512i __B)7404 _mm512_maskz_or_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
7405 {
7406   return (__m512i) __builtin_ia32_pord512_mask ((__v16si) __A,
7407 						(__v16si) __B,
7408 						(__v16si)
7409 						_mm512_setzero_si512 (),
7410 						(__mmask16) __U);
7411 }
7412 
7413 extern __inline __m512i
7414 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_or_epi64(__m512i __A,__m512i __B)7415 _mm512_or_epi64 (__m512i __A, __m512i __B)
7416 {
7417   return (__m512i) ((__v8du) __A | (__v8du) __B);
7418 }
7419 
7420 extern __inline __m512i
7421 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_or_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B)7422 _mm512_mask_or_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
7423 {
7424   return (__m512i) __builtin_ia32_porq512_mask ((__v8di) __A,
7425 						(__v8di) __B,
7426 						(__v8di) __W,
7427 						(__mmask8) __U);
7428 }
7429 
7430 extern __inline __m512i
7431 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_or_epi64(__mmask8 __U,__m512i __A,__m512i __B)7432 _mm512_maskz_or_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
7433 {
7434   return (__m512i) __builtin_ia32_porq512_mask ((__v8di) __A,
7435 						(__v8di) __B,
7436 						(__v8di)
7437 						_mm512_setzero_si512 (),
7438 						(__mmask8) __U);
7439 }
7440 
7441 extern __inline __m512i
7442 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_xor_si512(__m512i __A,__m512i __B)7443 _mm512_xor_si512 (__m512i __A, __m512i __B)
7444 {
7445   return (__m512i) ((__v16su) __A ^ (__v16su) __B);
7446 }
7447 
7448 extern __inline __m512i
7449 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_xor_epi32(__m512i __A,__m512i __B)7450 _mm512_xor_epi32 (__m512i __A, __m512i __B)
7451 {
7452   return (__m512i) ((__v16su) __A ^ (__v16su) __B);
7453 }
7454 
7455 extern __inline __m512i
7456 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_xor_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)7457 _mm512_mask_xor_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
7458 {
7459   return (__m512i) __builtin_ia32_pxord512_mask ((__v16si) __A,
7460 						 (__v16si) __B,
7461 						 (__v16si) __W,
7462 						 (__mmask16) __U);
7463 }
7464 
7465 extern __inline __m512i
7466 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_xor_epi32(__mmask16 __U,__m512i __A,__m512i __B)7467 _mm512_maskz_xor_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
7468 {
7469   return (__m512i) __builtin_ia32_pxord512_mask ((__v16si) __A,
7470 						 (__v16si) __B,
7471 						 (__v16si)
7472 						 _mm512_setzero_si512 (),
7473 						 (__mmask16) __U);
7474 }
7475 
7476 extern __inline __m512i
7477 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_xor_epi64(__m512i __A,__m512i __B)7478 _mm512_xor_epi64 (__m512i __A, __m512i __B)
7479 {
7480   return (__m512i) ((__v8du) __A ^ (__v8du) __B);
7481 }
7482 
7483 extern __inline __m512i
7484 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_xor_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B)7485 _mm512_mask_xor_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
7486 {
7487   return (__m512i) __builtin_ia32_pxorq512_mask ((__v8di) __A,
7488 						 (__v8di) __B,
7489 						 (__v8di) __W,
7490 						 (__mmask8) __U);
7491 }
7492 
7493 extern __inline __m512i
7494 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_xor_epi64(__mmask8 __U,__m512i __A,__m512i __B)7495 _mm512_maskz_xor_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
7496 {
7497   return (__m512i) __builtin_ia32_pxorq512_mask ((__v8di) __A,
7498 						 (__v8di) __B,
7499 						 (__v8di)
7500 						 _mm512_setzero_si512 (),
7501 						 (__mmask8) __U);
7502 }
7503 
7504 #ifdef __OPTIMIZE__
7505 extern __inline __m512i
7506 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_rol_epi32(__m512i __A,const int __B)7507 _mm512_rol_epi32 (__m512i __A, const int __B)
7508 {
7509   return (__m512i) __builtin_ia32_prold512_mask ((__v16si) __A, __B,
7510 						 (__v16si)
7511 						 _mm512_undefined_epi32 (),
7512 						 (__mmask16) -1);
7513 }
7514 
7515 extern __inline __m512i
7516 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_rol_epi32(__m512i __W,__mmask16 __U,__m512i __A,const int __B)7517 _mm512_mask_rol_epi32 (__m512i __W, __mmask16 __U, __m512i __A, const int __B)
7518 {
7519   return (__m512i) __builtin_ia32_prold512_mask ((__v16si) __A, __B,
7520 						 (__v16si) __W,
7521 						 (__mmask16) __U);
7522 }
7523 
7524 extern __inline __m512i
7525 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_rol_epi32(__mmask16 __U,__m512i __A,const int __B)7526 _mm512_maskz_rol_epi32 (__mmask16 __U, __m512i __A, const int __B)
7527 {
7528   return (__m512i) __builtin_ia32_prold512_mask ((__v16si) __A, __B,
7529 						 (__v16si)
7530 						 _mm512_setzero_si512 (),
7531 						 (__mmask16) __U);
7532 }
7533 
7534 extern __inline __m512i
7535 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_ror_epi32(__m512i __A,int __B)7536 _mm512_ror_epi32 (__m512i __A, int __B)
7537 {
7538   return (__m512i) __builtin_ia32_prord512_mask ((__v16si) __A, __B,
7539 						 (__v16si)
7540 						 _mm512_undefined_epi32 (),
7541 						 (__mmask16) -1);
7542 }
7543 
7544 extern __inline __m512i
7545 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_ror_epi32(__m512i __W,__mmask16 __U,__m512i __A,int __B)7546 _mm512_mask_ror_epi32 (__m512i __W, __mmask16 __U, __m512i __A, int __B)
7547 {
7548   return (__m512i) __builtin_ia32_prord512_mask ((__v16si) __A, __B,
7549 						 (__v16si) __W,
7550 						 (__mmask16) __U);
7551 }
7552 
7553 extern __inline __m512i
7554 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_ror_epi32(__mmask16 __U,__m512i __A,int __B)7555 _mm512_maskz_ror_epi32 (__mmask16 __U, __m512i __A, int __B)
7556 {
7557   return (__m512i) __builtin_ia32_prord512_mask ((__v16si) __A, __B,
7558 						 (__v16si)
7559 						 _mm512_setzero_si512 (),
7560 						 (__mmask16) __U);
7561 }
7562 
7563 extern __inline __m512i
7564 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_rol_epi64(__m512i __A,const int __B)7565 _mm512_rol_epi64 (__m512i __A, const int __B)
7566 {
7567   return (__m512i) __builtin_ia32_prolq512_mask ((__v8di) __A, __B,
7568 						 (__v8di)
7569 						 _mm512_undefined_epi32 (),
7570 						 (__mmask8) -1);
7571 }
7572 
7573 extern __inline __m512i
7574 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_rol_epi64(__m512i __W,__mmask8 __U,__m512i __A,const int __B)7575 _mm512_mask_rol_epi64 (__m512i __W, __mmask8 __U, __m512i __A, const int __B)
7576 {
7577   return (__m512i) __builtin_ia32_prolq512_mask ((__v8di) __A, __B,
7578 						 (__v8di) __W,
7579 						 (__mmask8) __U);
7580 }
7581 
7582 extern __inline __m512i
7583 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_rol_epi64(__mmask8 __U,__m512i __A,const int __B)7584 _mm512_maskz_rol_epi64 (__mmask8 __U, __m512i __A, const int __B)
7585 {
7586   return (__m512i) __builtin_ia32_prolq512_mask ((__v8di) __A, __B,
7587 						 (__v8di)
7588 						 _mm512_setzero_si512 (),
7589 						 (__mmask8) __U);
7590 }
7591 
7592 extern __inline __m512i
7593 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_ror_epi64(__m512i __A,int __B)7594 _mm512_ror_epi64 (__m512i __A, int __B)
7595 {
7596   return (__m512i) __builtin_ia32_prorq512_mask ((__v8di) __A, __B,
7597 						 (__v8di)
7598 						 _mm512_undefined_epi32 (),
7599 						 (__mmask8) -1);
7600 }
7601 
7602 extern __inline __m512i
7603 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_ror_epi64(__m512i __W,__mmask8 __U,__m512i __A,int __B)7604 _mm512_mask_ror_epi64 (__m512i __W, __mmask8 __U, __m512i __A, int __B)
7605 {
7606   return (__m512i) __builtin_ia32_prorq512_mask ((__v8di) __A, __B,
7607 						 (__v8di) __W,
7608 						 (__mmask8) __U);
7609 }
7610 
7611 extern __inline __m512i
7612 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_ror_epi64(__mmask8 __U,__m512i __A,int __B)7613 _mm512_maskz_ror_epi64 (__mmask8 __U, __m512i __A, int __B)
7614 {
7615   return (__m512i) __builtin_ia32_prorq512_mask ((__v8di) __A, __B,
7616 						 (__v8di)
7617 						 _mm512_setzero_si512 (),
7618 						 (__mmask8) __U);
7619 }
7620 
7621 #else
7622 #define _mm512_rol_epi32(A, B)						  \
7623     ((__m512i)__builtin_ia32_prold512_mask ((__v16si)(__m512i)(A),	  \
7624 					    (int)(B),			  \
7625 					    (__v16si)_mm512_undefined_epi32 (), \
7626 					    (__mmask16)(-1)))
7627 #define _mm512_mask_rol_epi32(W, U, A, B)				  \
7628     ((__m512i)__builtin_ia32_prold512_mask ((__v16si)(__m512i)(A),	  \
7629 					    (int)(B),			  \
7630 					    (__v16si)(__m512i)(W),	  \
7631 					    (__mmask16)(U)))
7632 #define _mm512_maskz_rol_epi32(U, A, B)					  \
7633     ((__m512i)__builtin_ia32_prold512_mask ((__v16si)(__m512i)(A),	  \
7634 					    (int)(B),			  \
7635 					    (__v16si)_mm512_setzero_si512 (), \
7636 					    (__mmask16)(U)))
7637 #define _mm512_ror_epi32(A, B)						  \
7638     ((__m512i)__builtin_ia32_prord512_mask ((__v16si)(__m512i)(A),	  \
7639 					    (int)(B),			  \
7640 					    (__v16si)_mm512_undefined_epi32 (), \
7641 					    (__mmask16)(-1)))
7642 #define _mm512_mask_ror_epi32(W, U, A, B)				  \
7643     ((__m512i)__builtin_ia32_prord512_mask ((__v16si)(__m512i)(A),	  \
7644 					    (int)(B),			  \
7645 					    (__v16si)(__m512i)(W),	  \
7646 					    (__mmask16)(U)))
7647 #define _mm512_maskz_ror_epi32(U, A, B)					  \
7648     ((__m512i)__builtin_ia32_prord512_mask ((__v16si)(__m512i)(A),	  \
7649 					    (int)(B),			  \
7650 					    (__v16si)_mm512_setzero_si512 (), \
7651 					    (__mmask16)(U)))
7652 #define _mm512_rol_epi64(A, B)						  \
7653     ((__m512i)__builtin_ia32_prolq512_mask ((__v8di)(__m512i)(A),	  \
7654 					    (int)(B),			  \
7655 					    (__v8di)_mm512_undefined_epi32 (),  \
7656 					    (__mmask8)(-1)))
7657 #define _mm512_mask_rol_epi64(W, U, A, B)				  \
7658     ((__m512i)__builtin_ia32_prolq512_mask ((__v8di)(__m512i)(A),	  \
7659 					    (int)(B),			  \
7660 					    (__v8di)(__m512i)(W),	  \
7661 					    (__mmask8)(U)))
7662 #define _mm512_maskz_rol_epi64(U, A, B)					  \
7663     ((__m512i)__builtin_ia32_prolq512_mask ((__v8di)(__m512i)(A),	  \
7664 					    (int)(B),			  \
7665 					    (__v8di)_mm512_setzero_si512 (),  \
7666 					    (__mmask8)(U)))
7667 
7668 #define _mm512_ror_epi64(A, B)						  \
7669     ((__m512i)__builtin_ia32_prorq512_mask ((__v8di)(__m512i)(A),	  \
7670 					    (int)(B),			  \
7671 					    (__v8di)_mm512_undefined_epi32 (),  \
7672 					    (__mmask8)(-1)))
7673 #define _mm512_mask_ror_epi64(W, U, A, B)				  \
7674     ((__m512i)__builtin_ia32_prorq512_mask ((__v8di)(__m512i)(A),	  \
7675 					    (int)(B),			  \
7676 					    (__v8di)(__m512i)(W),	  \
7677 					    (__mmask8)(U)))
7678 #define _mm512_maskz_ror_epi64(U, A, B)					  \
7679     ((__m512i)__builtin_ia32_prorq512_mask ((__v8di)(__m512i)(A),	  \
7680 					    (int)(B),			  \
7681 					    (__v8di)_mm512_setzero_si512 (),  \
7682 					    (__mmask8)(U)))
7683 #endif
7684 
7685 extern __inline __m512i
7686 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_and_si512(__m512i __A,__m512i __B)7687 _mm512_and_si512 (__m512i __A, __m512i __B)
7688 {
7689   return (__m512i) ((__v16su) __A & (__v16su) __B);
7690 }
7691 
7692 extern __inline __m512i
7693 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_and_epi32(__m512i __A,__m512i __B)7694 _mm512_and_epi32 (__m512i __A, __m512i __B)
7695 {
7696   return (__m512i) ((__v16su) __A & (__v16su) __B);
7697 }
7698 
7699 extern __inline __m512i
7700 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_and_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)7701 _mm512_mask_and_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
7702 {
7703   return (__m512i) __builtin_ia32_pandd512_mask ((__v16si) __A,
7704 						 (__v16si) __B,
7705 						 (__v16si) __W,
7706 						 (__mmask16) __U);
7707 }
7708 
7709 extern __inline __m512i
7710 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_and_epi32(__mmask16 __U,__m512i __A,__m512i __B)7711 _mm512_maskz_and_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
7712 {
7713   return (__m512i) __builtin_ia32_pandd512_mask ((__v16si) __A,
7714 						 (__v16si) __B,
7715 						 (__v16si)
7716 						 _mm512_setzero_si512 (),
7717 						 (__mmask16) __U);
7718 }
7719 
7720 extern __inline __m512i
7721 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_and_epi64(__m512i __A,__m512i __B)7722 _mm512_and_epi64 (__m512i __A, __m512i __B)
7723 {
7724   return (__m512i) ((__v8du) __A & (__v8du) __B);
7725 }
7726 
7727 extern __inline __m512i
7728 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_and_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B)7729 _mm512_mask_and_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
7730 {
7731   return (__m512i) __builtin_ia32_pandq512_mask ((__v8di) __A,
7732 						 (__v8di) __B,
7733 						 (__v8di) __W, __U);
7734 }
7735 
7736 extern __inline __m512i
7737 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_and_epi64(__mmask8 __U,__m512i __A,__m512i __B)7738 _mm512_maskz_and_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
7739 {
7740   return (__m512i) __builtin_ia32_pandq512_mask ((__v8di) __A,
7741 						 (__v8di) __B,
7742 						 (__v8di)
7743 						 _mm512_setzero_pd (),
7744 						 __U);
7745 }
7746 
7747 extern __inline __m512i
7748 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_andnot_si512(__m512i __A,__m512i __B)7749 _mm512_andnot_si512 (__m512i __A, __m512i __B)
7750 {
7751   return (__m512i) __builtin_ia32_pandnd512_mask ((__v16si) __A,
7752 						  (__v16si) __B,
7753 						  (__v16si)
7754 						  _mm512_undefined_epi32 (),
7755 						  (__mmask16) -1);
7756 }
7757 
7758 extern __inline __m512i
7759 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_andnot_epi32(__m512i __A,__m512i __B)7760 _mm512_andnot_epi32 (__m512i __A, __m512i __B)
7761 {
7762   return (__m512i) __builtin_ia32_pandnd512_mask ((__v16si) __A,
7763 						  (__v16si) __B,
7764 						  (__v16si)
7765 						  _mm512_undefined_epi32 (),
7766 						  (__mmask16) -1);
7767 }
7768 
7769 extern __inline __m512i
7770 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_andnot_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)7771 _mm512_mask_andnot_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
7772 {
7773   return (__m512i) __builtin_ia32_pandnd512_mask ((__v16si) __A,
7774 						  (__v16si) __B,
7775 						  (__v16si) __W,
7776 						  (__mmask16) __U);
7777 }
7778 
7779 extern __inline __m512i
7780 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_andnot_epi32(__mmask16 __U,__m512i __A,__m512i __B)7781 _mm512_maskz_andnot_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
7782 {
7783   return (__m512i) __builtin_ia32_pandnd512_mask ((__v16si) __A,
7784 						  (__v16si) __B,
7785 						  (__v16si)
7786 						  _mm512_setzero_si512 (),
7787 						  (__mmask16) __U);
7788 }
7789 
7790 extern __inline __m512i
7791 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_andnot_epi64(__m512i __A,__m512i __B)7792 _mm512_andnot_epi64 (__m512i __A, __m512i __B)
7793 {
7794   return (__m512i) __builtin_ia32_pandnq512_mask ((__v8di) __A,
7795 						  (__v8di) __B,
7796 						  (__v8di)
7797 						  _mm512_undefined_epi32 (),
7798 						  (__mmask8) -1);
7799 }
7800 
7801 extern __inline __m512i
7802 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_andnot_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B)7803 _mm512_mask_andnot_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
7804 {
7805   return (__m512i) __builtin_ia32_pandnq512_mask ((__v8di) __A,
7806 						  (__v8di) __B,
7807 						  (__v8di) __W, __U);
7808 }
7809 
7810 extern __inline __m512i
7811 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_andnot_epi64(__mmask8 __U,__m512i __A,__m512i __B)7812 _mm512_maskz_andnot_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
7813 {
7814   return (__m512i) __builtin_ia32_pandnq512_mask ((__v8di) __A,
7815 						  (__v8di) __B,
7816 						  (__v8di)
7817 						  _mm512_setzero_pd (),
7818 						  __U);
7819 }
7820 
7821 extern __inline __mmask16
7822 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_test_epi32_mask(__m512i __A,__m512i __B)7823 _mm512_test_epi32_mask (__m512i __A, __m512i __B)
7824 {
7825   return (__mmask16) __builtin_ia32_ptestmd512 ((__v16si) __A,
7826 						(__v16si) __B,
7827 						(__mmask16) -1);
7828 }
7829 
7830 extern __inline __mmask16
7831 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_test_epi32_mask(__mmask16 __U,__m512i __A,__m512i __B)7832 _mm512_mask_test_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B)
7833 {
7834   return (__mmask16) __builtin_ia32_ptestmd512 ((__v16si) __A,
7835 						(__v16si) __B, __U);
7836 }
7837 
7838 extern __inline __mmask8
7839 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_test_epi64_mask(__m512i __A,__m512i __B)7840 _mm512_test_epi64_mask (__m512i __A, __m512i __B)
7841 {
7842   return (__mmask8) __builtin_ia32_ptestmq512 ((__v8di) __A,
7843 					       (__v8di) __B,
7844 					       (__mmask8) -1);
7845 }
7846 
7847 extern __inline __mmask8
7848 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_test_epi64_mask(__mmask8 __U,__m512i __A,__m512i __B)7849 _mm512_mask_test_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B)
7850 {
7851   return (__mmask8) __builtin_ia32_ptestmq512 ((__v8di) __A, (__v8di) __B, __U);
7852 }
7853 
7854 extern __inline __mmask16
7855 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_testn_epi32_mask(__m512i __A,__m512i __B)7856 _mm512_testn_epi32_mask (__m512i __A, __m512i __B)
7857 {
7858   return (__mmask16) __builtin_ia32_ptestnmd512 ((__v16si) __A,
7859 						 (__v16si) __B,
7860 						 (__mmask16) -1);
7861 }
7862 
7863 extern __inline __mmask16
7864 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_testn_epi32_mask(__mmask16 __U,__m512i __A,__m512i __B)7865 _mm512_mask_testn_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B)
7866 {
7867   return (__mmask16) __builtin_ia32_ptestnmd512 ((__v16si) __A,
7868 						 (__v16si) __B, __U);
7869 }
7870 
7871 extern __inline __mmask8
7872 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_testn_epi64_mask(__m512i __A,__m512i __B)7873 _mm512_testn_epi64_mask (__m512i __A, __m512i __B)
7874 {
7875   return (__mmask8) __builtin_ia32_ptestnmq512 ((__v8di) __A,
7876 						(__v8di) __B,
7877 						(__mmask8) -1);
7878 }
7879 
7880 extern __inline __mmask8
7881 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_testn_epi64_mask(__mmask8 __U,__m512i __A,__m512i __B)7882 _mm512_mask_testn_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B)
7883 {
7884   return (__mmask8) __builtin_ia32_ptestnmq512 ((__v8di) __A,
7885 						(__v8di) __B, __U);
7886 }
7887 
7888 extern __inline __m512
7889 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_abs_ps(__m512 __A)7890 _mm512_abs_ps (__m512 __A)
7891 {
7892   return (__m512) _mm512_and_epi32 ((__m512i) __A,
7893 				    _mm512_set1_epi32 (0x7fffffff));
7894 }
7895 
7896 extern __inline __m512
7897 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_abs_ps(__m512 __W,__mmask16 __U,__m512 __A)7898 _mm512_mask_abs_ps (__m512 __W, __mmask16 __U, __m512 __A)
7899 {
7900   return (__m512) _mm512_mask_and_epi32 ((__m512i) __W, __U, (__m512i) __A,
7901 					 _mm512_set1_epi32 (0x7fffffff));
7902 }
7903 
7904 extern __inline __m512d
7905 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_abs_pd(__m512d __A)7906 _mm512_abs_pd (__m512d __A)
7907 {
7908   return (__m512d) _mm512_and_epi64 ((__m512i) __A,
7909 				     _mm512_set1_epi64 (0x7fffffffffffffffLL));
7910 }
7911 
7912 extern __inline __m512d
7913 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_abs_pd(__m512d __W,__mmask8 __U,__m512d __A)7914 _mm512_mask_abs_pd (__m512d __W, __mmask8 __U, __m512d __A)
7915 {
7916   return (__m512d)
7917 	 _mm512_mask_and_epi64 ((__m512i) __W, __U, (__m512i) __A,
7918 				_mm512_set1_epi64 (0x7fffffffffffffffLL));
7919 }
7920 
7921 extern __inline __m512i
7922 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_unpackhi_epi32(__m512i __A,__m512i __B)7923 _mm512_unpackhi_epi32 (__m512i __A, __m512i __B)
7924 {
7925   return (__m512i) __builtin_ia32_punpckhdq512_mask ((__v16si) __A,
7926 						     (__v16si) __B,
7927 						     (__v16si)
7928 						     _mm512_undefined_epi32 (),
7929 						     (__mmask16) -1);
7930 }
7931 
7932 extern __inline __m512i
7933 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_unpackhi_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)7934 _mm512_mask_unpackhi_epi32 (__m512i __W, __mmask16 __U, __m512i __A,
7935 			    __m512i __B)
7936 {
7937   return (__m512i) __builtin_ia32_punpckhdq512_mask ((__v16si) __A,
7938 						     (__v16si) __B,
7939 						     (__v16si) __W,
7940 						     (__mmask16) __U);
7941 }
7942 
7943 extern __inline __m512i
7944 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_unpackhi_epi32(__mmask16 __U,__m512i __A,__m512i __B)7945 _mm512_maskz_unpackhi_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
7946 {
7947   return (__m512i) __builtin_ia32_punpckhdq512_mask ((__v16si) __A,
7948 						     (__v16si) __B,
7949 						     (__v16si)
7950 						     _mm512_setzero_si512 (),
7951 						     (__mmask16) __U);
7952 }
7953 
7954 extern __inline __m512i
7955 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_unpackhi_epi64(__m512i __A,__m512i __B)7956 _mm512_unpackhi_epi64 (__m512i __A, __m512i __B)
7957 {
7958   return (__m512i) __builtin_ia32_punpckhqdq512_mask ((__v8di) __A,
7959 						      (__v8di) __B,
7960 						      (__v8di)
7961 						      _mm512_undefined_epi32 (),
7962 						      (__mmask8) -1);
7963 }
7964 
7965 extern __inline __m512i
7966 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_unpackhi_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B)7967 _mm512_mask_unpackhi_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
7968 {
7969   return (__m512i) __builtin_ia32_punpckhqdq512_mask ((__v8di) __A,
7970 						      (__v8di) __B,
7971 						      (__v8di) __W,
7972 						      (__mmask8) __U);
7973 }
7974 
7975 extern __inline __m512i
7976 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_unpackhi_epi64(__mmask8 __U,__m512i __A,__m512i __B)7977 _mm512_maskz_unpackhi_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
7978 {
7979   return (__m512i) __builtin_ia32_punpckhqdq512_mask ((__v8di) __A,
7980 						      (__v8di) __B,
7981 						      (__v8di)
7982 						      _mm512_setzero_si512 (),
7983 						      (__mmask8) __U);
7984 }
7985 
7986 extern __inline __m512i
7987 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_unpacklo_epi32(__m512i __A,__m512i __B)7988 _mm512_unpacklo_epi32 (__m512i __A, __m512i __B)
7989 {
7990   return (__m512i) __builtin_ia32_punpckldq512_mask ((__v16si) __A,
7991 						     (__v16si) __B,
7992 						     (__v16si)
7993 						     _mm512_undefined_epi32 (),
7994 						     (__mmask16) -1);
7995 }
7996 
7997 extern __inline __m512i
7998 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_unpacklo_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)7999 _mm512_mask_unpacklo_epi32 (__m512i __W, __mmask16 __U, __m512i __A,
8000 			    __m512i __B)
8001 {
8002   return (__m512i) __builtin_ia32_punpckldq512_mask ((__v16si) __A,
8003 						     (__v16si) __B,
8004 						     (__v16si) __W,
8005 						     (__mmask16) __U);
8006 }
8007 
8008 extern __inline __m512i
8009 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_unpacklo_epi32(__mmask16 __U,__m512i __A,__m512i __B)8010 _mm512_maskz_unpacklo_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
8011 {
8012   return (__m512i) __builtin_ia32_punpckldq512_mask ((__v16si) __A,
8013 						     (__v16si) __B,
8014 						     (__v16si)
8015 						     _mm512_setzero_si512 (),
8016 						     (__mmask16) __U);
8017 }
8018 
8019 extern __inline __m512i
8020 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_unpacklo_epi64(__m512i __A,__m512i __B)8021 _mm512_unpacklo_epi64 (__m512i __A, __m512i __B)
8022 {
8023   return (__m512i) __builtin_ia32_punpcklqdq512_mask ((__v8di) __A,
8024 						      (__v8di) __B,
8025 						      (__v8di)
8026 						      _mm512_undefined_epi32 (),
8027 						      (__mmask8) -1);
8028 }
8029 
8030 extern __inline __m512i
8031 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_unpacklo_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B)8032 _mm512_mask_unpacklo_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
8033 {
8034   return (__m512i) __builtin_ia32_punpcklqdq512_mask ((__v8di) __A,
8035 						      (__v8di) __B,
8036 						      (__v8di) __W,
8037 						      (__mmask8) __U);
8038 }
8039 
8040 extern __inline __m512i
8041 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_unpacklo_epi64(__mmask8 __U,__m512i __A,__m512i __B)8042 _mm512_maskz_unpacklo_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
8043 {
8044   return (__m512i) __builtin_ia32_punpcklqdq512_mask ((__v8di) __A,
8045 						      (__v8di) __B,
8046 						      (__v8di)
8047 						      _mm512_setzero_si512 (),
8048 						      (__mmask8) __U);
8049 }
8050 
8051 #ifdef __x86_64__
8052 #ifdef __OPTIMIZE__
8053 extern __inline unsigned long long
8054 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvt_roundss_u64(__m128 __A,const int __R)8055 _mm_cvt_roundss_u64 (__m128 __A, const int __R)
8056 {
8057   return (unsigned long long) __builtin_ia32_vcvtss2usi64 ((__v4sf) __A, __R);
8058 }
8059 
8060 extern __inline long long
8061 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvt_roundss_si64(__m128 __A,const int __R)8062 _mm_cvt_roundss_si64 (__m128 __A, const int __R)
8063 {
8064   return (long long) __builtin_ia32_vcvtss2si64 ((__v4sf) __A, __R);
8065 }
8066 
8067 extern __inline long long
8068 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvt_roundss_i64(__m128 __A,const int __R)8069 _mm_cvt_roundss_i64 (__m128 __A, const int __R)
8070 {
8071   return (long long) __builtin_ia32_vcvtss2si64 ((__v4sf) __A, __R);
8072 }
8073 
8074 extern __inline unsigned long long
8075 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvtt_roundss_u64(__m128 __A,const int __R)8076 _mm_cvtt_roundss_u64 (__m128 __A, const int __R)
8077 {
8078   return (unsigned long long) __builtin_ia32_vcvttss2usi64 ((__v4sf) __A, __R);
8079 }
8080 
8081 extern __inline long long
8082 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvtt_roundss_i64(__m128 __A,const int __R)8083 _mm_cvtt_roundss_i64 (__m128 __A, const int __R)
8084 {
8085   return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf) __A, __R);
8086 }
8087 
8088 extern __inline long long
8089 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvtt_roundss_si64(__m128 __A,const int __R)8090 _mm_cvtt_roundss_si64 (__m128 __A, const int __R)
8091 {
8092   return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf) __A, __R);
8093 }
8094 #else
8095 #define _mm_cvt_roundss_u64(A, B)   \
8096     ((unsigned long long)__builtin_ia32_vcvtss2usi64(A, B))
8097 
8098 #define _mm_cvt_roundss_si64(A, B)   \
8099     ((long long)__builtin_ia32_vcvtss2si64(A, B))
8100 
8101 #define _mm_cvt_roundss_i64(A, B)   \
8102     ((long long)__builtin_ia32_vcvtss2si64(A, B))
8103 
8104 #define _mm_cvtt_roundss_u64(A, B)  \
8105     ((unsigned long long)__builtin_ia32_vcvttss2usi64(A, B))
8106 
8107 #define _mm_cvtt_roundss_i64(A, B)  \
8108     ((long long)__builtin_ia32_vcvttss2si64(A, B))
8109 
8110 #define _mm_cvtt_roundss_si64(A, B)  \
8111     ((long long)__builtin_ia32_vcvttss2si64(A, B))
8112 #endif
8113 #endif
8114 
8115 #ifdef __OPTIMIZE__
8116 extern __inline unsigned
8117 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvt_roundss_u32(__m128 __A,const int __R)8118 _mm_cvt_roundss_u32 (__m128 __A, const int __R)
8119 {
8120   return (unsigned) __builtin_ia32_vcvtss2usi32 ((__v4sf) __A, __R);
8121 }
8122 
8123 extern __inline int
8124 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvt_roundss_si32(__m128 __A,const int __R)8125 _mm_cvt_roundss_si32 (__m128 __A, const int __R)
8126 {
8127   return (int) __builtin_ia32_vcvtss2si32 ((__v4sf) __A, __R);
8128 }
8129 
8130 extern __inline int
8131 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvt_roundss_i32(__m128 __A,const int __R)8132 _mm_cvt_roundss_i32 (__m128 __A, const int __R)
8133 {
8134   return (int) __builtin_ia32_vcvtss2si32 ((__v4sf) __A, __R);
8135 }
8136 
8137 extern __inline unsigned
8138 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvtt_roundss_u32(__m128 __A,const int __R)8139 _mm_cvtt_roundss_u32 (__m128 __A, const int __R)
8140 {
8141   return (unsigned) __builtin_ia32_vcvttss2usi32 ((__v4sf) __A, __R);
8142 }
8143 
8144 extern __inline int
8145 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvtt_roundss_i32(__m128 __A,const int __R)8146 _mm_cvtt_roundss_i32 (__m128 __A, const int __R)
8147 {
8148   return (int) __builtin_ia32_vcvttss2si32 ((__v4sf) __A, __R);
8149 }
8150 
8151 extern __inline int
8152 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvtt_roundss_si32(__m128 __A,const int __R)8153 _mm_cvtt_roundss_si32 (__m128 __A, const int __R)
8154 {
8155   return (int) __builtin_ia32_vcvttss2si32 ((__v4sf) __A, __R);
8156 }
8157 #else
8158 #define _mm_cvt_roundss_u32(A, B)   \
8159     ((unsigned)__builtin_ia32_vcvtss2usi32(A, B))
8160 
8161 #define _mm_cvt_roundss_si32(A, B)   \
8162     ((int)__builtin_ia32_vcvtss2si32(A, B))
8163 
8164 #define _mm_cvt_roundss_i32(A, B)   \
8165     ((int)__builtin_ia32_vcvtss2si32(A, B))
8166 
8167 #define _mm_cvtt_roundss_u32(A, B)  \
8168     ((unsigned)__builtin_ia32_vcvttss2usi32(A, B))
8169 
8170 #define _mm_cvtt_roundss_si32(A, B)  \
8171     ((int)__builtin_ia32_vcvttss2si32(A, B))
8172 
8173 #define _mm_cvtt_roundss_i32(A, B)  \
8174     ((int)__builtin_ia32_vcvttss2si32(A, B))
8175 #endif
8176 
8177 #ifdef __x86_64__
8178 #ifdef __OPTIMIZE__
8179 extern __inline unsigned long long
8180 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvt_roundsd_u64(__m128d __A,const int __R)8181 _mm_cvt_roundsd_u64 (__m128d __A, const int __R)
8182 {
8183   return (unsigned long long) __builtin_ia32_vcvtsd2usi64 ((__v2df) __A, __R);
8184 }
8185 
8186 extern __inline long long
8187 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvt_roundsd_si64(__m128d __A,const int __R)8188 _mm_cvt_roundsd_si64 (__m128d __A, const int __R)
8189 {
8190   return (long long) __builtin_ia32_vcvtsd2si64 ((__v2df) __A, __R);
8191 }
8192 
8193 extern __inline long long
8194 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvt_roundsd_i64(__m128d __A,const int __R)8195 _mm_cvt_roundsd_i64 (__m128d __A, const int __R)
8196 {
8197   return (long long) __builtin_ia32_vcvtsd2si64 ((__v2df) __A, __R);
8198 }
8199 
8200 extern __inline unsigned long long
8201 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvtt_roundsd_u64(__m128d __A,const int __R)8202 _mm_cvtt_roundsd_u64 (__m128d __A, const int __R)
8203 {
8204   return (unsigned long long) __builtin_ia32_vcvttsd2usi64 ((__v2df) __A, __R);
8205 }
8206 
8207 extern __inline long long
8208 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvtt_roundsd_si64(__m128d __A,const int __R)8209 _mm_cvtt_roundsd_si64 (__m128d __A, const int __R)
8210 {
8211   return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df) __A, __R);
8212 }
8213 
8214 extern __inline long long
8215 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvtt_roundsd_i64(__m128d __A,const int __R)8216 _mm_cvtt_roundsd_i64 (__m128d __A, const int __R)
8217 {
8218   return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df) __A, __R);
8219 }
8220 #else
8221 #define _mm_cvt_roundsd_u64(A, B)   \
8222     ((unsigned long long)__builtin_ia32_vcvtsd2usi64(A, B))
8223 
8224 #define _mm_cvt_roundsd_si64(A, B)   \
8225     ((long long)__builtin_ia32_vcvtsd2si64(A, B))
8226 
8227 #define _mm_cvt_roundsd_i64(A, B)   \
8228     ((long long)__builtin_ia32_vcvtsd2si64(A, B))
8229 
8230 #define _mm_cvtt_roundsd_u64(A, B)   \
8231     ((unsigned long long)__builtin_ia32_vcvttsd2usi64(A, B))
8232 
8233 #define _mm_cvtt_roundsd_si64(A, B)   \
8234     ((long long)__builtin_ia32_vcvttsd2si64(A, B))
8235 
8236 #define _mm_cvtt_roundsd_i64(A, B)   \
8237     ((long long)__builtin_ia32_vcvttsd2si64(A, B))
8238 #endif
8239 #endif
8240 
8241 #ifdef __OPTIMIZE__
8242 extern __inline unsigned
8243 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvt_roundsd_u32(__m128d __A,const int __R)8244 _mm_cvt_roundsd_u32 (__m128d __A, const int __R)
8245 {
8246   return (unsigned) __builtin_ia32_vcvtsd2usi32 ((__v2df) __A, __R);
8247 }
8248 
8249 extern __inline int
8250 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvt_roundsd_si32(__m128d __A,const int __R)8251 _mm_cvt_roundsd_si32 (__m128d __A, const int __R)
8252 {
8253   return (int) __builtin_ia32_vcvtsd2si32 ((__v2df) __A, __R);
8254 }
8255 
8256 extern __inline int
8257 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvt_roundsd_i32(__m128d __A,const int __R)8258 _mm_cvt_roundsd_i32 (__m128d __A, const int __R)
8259 {
8260   return (int) __builtin_ia32_vcvtsd2si32 ((__v2df) __A, __R);
8261 }
8262 
8263 extern __inline unsigned
8264 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvtt_roundsd_u32(__m128d __A,const int __R)8265 _mm_cvtt_roundsd_u32 (__m128d __A, const int __R)
8266 {
8267   return (unsigned) __builtin_ia32_vcvttsd2usi32 ((__v2df) __A, __R);
8268 }
8269 
8270 extern __inline int
8271 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvtt_roundsd_i32(__m128d __A,const int __R)8272 _mm_cvtt_roundsd_i32 (__m128d __A, const int __R)
8273 {
8274   return (int) __builtin_ia32_vcvttsd2si32 ((__v2df) __A, __R);
8275 }
8276 
8277 extern __inline int
8278 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvtt_roundsd_si32(__m128d __A,const int __R)8279 _mm_cvtt_roundsd_si32 (__m128d __A, const int __R)
8280 {
8281   return (int) __builtin_ia32_vcvttsd2si32 ((__v2df) __A, __R);
8282 }
8283 #else
8284 #define _mm_cvt_roundsd_u32(A, B)   \
8285     ((unsigned)__builtin_ia32_vcvtsd2usi32(A, B))
8286 
8287 #define _mm_cvt_roundsd_si32(A, B)   \
8288     ((int)__builtin_ia32_vcvtsd2si32(A, B))
8289 
8290 #define _mm_cvt_roundsd_i32(A, B)   \
8291     ((int)__builtin_ia32_vcvtsd2si32(A, B))
8292 
8293 #define _mm_cvtt_roundsd_u32(A, B)   \
8294     ((unsigned)__builtin_ia32_vcvttsd2usi32(A, B))
8295 
8296 #define _mm_cvtt_roundsd_si32(A, B)   \
8297     ((int)__builtin_ia32_vcvttsd2si32(A, B))
8298 
8299 #define _mm_cvtt_roundsd_i32(A, B)   \
8300     ((int)__builtin_ia32_vcvttsd2si32(A, B))
8301 #endif
8302 
8303 extern __inline __m512d
8304 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_movedup_pd(__m512d __A)8305 _mm512_movedup_pd (__m512d __A)
8306 {
8307   return (__m512d) __builtin_ia32_movddup512_mask ((__v8df) __A,
8308 						   (__v8df)
8309 						   _mm512_undefined_pd (),
8310 						   (__mmask8) -1);
8311 }
8312 
8313 extern __inline __m512d
8314 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_movedup_pd(__m512d __W,__mmask8 __U,__m512d __A)8315 _mm512_mask_movedup_pd (__m512d __W, __mmask8 __U, __m512d __A)
8316 {
8317   return (__m512d) __builtin_ia32_movddup512_mask ((__v8df) __A,
8318 						   (__v8df) __W,
8319 						   (__mmask8) __U);
8320 }
8321 
8322 extern __inline __m512d
8323 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_movedup_pd(__mmask8 __U,__m512d __A)8324 _mm512_maskz_movedup_pd (__mmask8 __U, __m512d __A)
8325 {
8326   return (__m512d) __builtin_ia32_movddup512_mask ((__v8df) __A,
8327 						   (__v8df)
8328 						   _mm512_setzero_pd (),
8329 						   (__mmask8) __U);
8330 }
8331 
8332 extern __inline __m512d
8333 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_unpacklo_pd(__m512d __A,__m512d __B)8334 _mm512_unpacklo_pd (__m512d __A, __m512d __B)
8335 {
8336   return (__m512d) __builtin_ia32_unpcklpd512_mask ((__v8df) __A,
8337 						    (__v8df) __B,
8338 						    (__v8df)
8339 						    _mm512_undefined_pd (),
8340 						    (__mmask8) -1);
8341 }
8342 
8343 extern __inline __m512d
8344 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_unpacklo_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)8345 _mm512_mask_unpacklo_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
8346 {
8347   return (__m512d) __builtin_ia32_unpcklpd512_mask ((__v8df) __A,
8348 						    (__v8df) __B,
8349 						    (__v8df) __W,
8350 						    (__mmask8) __U);
8351 }
8352 
8353 extern __inline __m512d
8354 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_unpacklo_pd(__mmask8 __U,__m512d __A,__m512d __B)8355 _mm512_maskz_unpacklo_pd (__mmask8 __U, __m512d __A, __m512d __B)
8356 {
8357   return (__m512d) __builtin_ia32_unpcklpd512_mask ((__v8df) __A,
8358 						    (__v8df) __B,
8359 						    (__v8df)
8360 						    _mm512_setzero_pd (),
8361 						    (__mmask8) __U);
8362 }
8363 
8364 extern __inline __m512d
8365 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_unpackhi_pd(__m512d __A,__m512d __B)8366 _mm512_unpackhi_pd (__m512d __A, __m512d __B)
8367 {
8368   return (__m512d) __builtin_ia32_unpckhpd512_mask ((__v8df) __A,
8369 						    (__v8df) __B,
8370 						    (__v8df)
8371 						    _mm512_undefined_pd (),
8372 						    (__mmask8) -1);
8373 }
8374 
8375 extern __inline __m512d
8376 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_unpackhi_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)8377 _mm512_mask_unpackhi_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
8378 {
8379   return (__m512d) __builtin_ia32_unpckhpd512_mask ((__v8df) __A,
8380 						    (__v8df) __B,
8381 						    (__v8df) __W,
8382 						    (__mmask8) __U);
8383 }
8384 
8385 extern __inline __m512d
8386 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_unpackhi_pd(__mmask8 __U,__m512d __A,__m512d __B)8387 _mm512_maskz_unpackhi_pd (__mmask8 __U, __m512d __A, __m512d __B)
8388 {
8389   return (__m512d) __builtin_ia32_unpckhpd512_mask ((__v8df) __A,
8390 						    (__v8df) __B,
8391 						    (__v8df)
8392 						    _mm512_setzero_pd (),
8393 						    (__mmask8) __U);
8394 }
8395 
8396 extern __inline __m512
8397 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_unpackhi_ps(__m512 __A,__m512 __B)8398 _mm512_unpackhi_ps (__m512 __A, __m512 __B)
8399 {
8400   return (__m512) __builtin_ia32_unpckhps512_mask ((__v16sf) __A,
8401 						   (__v16sf) __B,
8402 						   (__v16sf)
8403 						   _mm512_undefined_ps (),
8404 						   (__mmask16) -1);
8405 }
8406 
8407 extern __inline __m512
8408 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_unpackhi_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)8409 _mm512_mask_unpackhi_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
8410 {
8411   return (__m512) __builtin_ia32_unpckhps512_mask ((__v16sf) __A,
8412 						   (__v16sf) __B,
8413 						   (__v16sf) __W,
8414 						   (__mmask16) __U);
8415 }
8416 
8417 extern __inline __m512
8418 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_unpackhi_ps(__mmask16 __U,__m512 __A,__m512 __B)8419 _mm512_maskz_unpackhi_ps (__mmask16 __U, __m512 __A, __m512 __B)
8420 {
8421   return (__m512) __builtin_ia32_unpckhps512_mask ((__v16sf) __A,
8422 						   (__v16sf) __B,
8423 						   (__v16sf)
8424 						   _mm512_setzero_ps (),
8425 						   (__mmask16) __U);
8426 }
8427 
8428 #ifdef __OPTIMIZE__
8429 extern __inline __m512d
8430 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvt_roundps_pd(__m256 __A,const int __R)8431 _mm512_cvt_roundps_pd (__m256 __A, const int __R)
8432 {
8433   return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
8434 						    (__v8df)
8435 						    _mm512_undefined_pd (),
8436 						    (__mmask8) -1, __R);
8437 }
8438 
8439 extern __inline __m512d
8440 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvt_roundps_pd(__m512d __W,__mmask8 __U,__m256 __A,const int __R)8441 _mm512_mask_cvt_roundps_pd (__m512d __W, __mmask8 __U, __m256 __A,
8442 			    const int __R)
8443 {
8444   return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
8445 						    (__v8df) __W,
8446 						    (__mmask8) __U, __R);
8447 }
8448 
8449 extern __inline __m512d
8450 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvt_roundps_pd(__mmask8 __U,__m256 __A,const int __R)8451 _mm512_maskz_cvt_roundps_pd (__mmask8 __U, __m256 __A, const int __R)
8452 {
8453   return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
8454 						    (__v8df)
8455 						    _mm512_setzero_pd (),
8456 						    (__mmask8) __U, __R);
8457 }
8458 
8459 extern __inline __m512
8460 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvt_roundph_ps(__m256i __A,const int __R)8461 _mm512_cvt_roundph_ps (__m256i __A, const int __R)
8462 {
8463   return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,
8464 						    (__v16sf)
8465 						    _mm512_undefined_ps (),
8466 						    (__mmask16) -1, __R);
8467 }
8468 
8469 extern __inline __m512
8470 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvt_roundph_ps(__m512 __W,__mmask16 __U,__m256i __A,const int __R)8471 _mm512_mask_cvt_roundph_ps (__m512 __W, __mmask16 __U, __m256i __A,
8472 			    const int __R)
8473 {
8474   return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,
8475 						    (__v16sf) __W,
8476 						    (__mmask16) __U, __R);
8477 }
8478 
8479 extern __inline __m512
8480 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvt_roundph_ps(__mmask16 __U,__m256i __A,const int __R)8481 _mm512_maskz_cvt_roundph_ps (__mmask16 __U, __m256i __A, const int __R)
8482 {
8483   return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,
8484 						    (__v16sf)
8485 						    _mm512_setzero_ps (),
8486 						    (__mmask16) __U, __R);
8487 }
8488 
8489 extern __inline __m256i
8490 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvt_roundps_ph(__m512 __A,const int __I)8491 _mm512_cvt_roundps_ph (__m512 __A, const int __I)
8492 {
8493   return (__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf) __A,
8494 						     __I,
8495 						     (__v16hi)
8496 						     _mm256_undefined_si256 (),
8497 						     -1);
8498 }
8499 
8500 extern __inline __m256i
8501 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtps_ph(__m512 __A,const int __I)8502 _mm512_cvtps_ph (__m512 __A, const int __I)
8503 {
8504   return (__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf) __A,
8505 						     __I,
8506 						     (__v16hi)
8507 						     _mm256_undefined_si256 (),
8508 						     -1);
8509 }
8510 
8511 extern __inline __m256i
8512 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvt_roundps_ph(__m256i __U,__mmask16 __W,__m512 __A,const int __I)8513 _mm512_mask_cvt_roundps_ph (__m256i __U, __mmask16 __W, __m512 __A,
8514 			    const int __I)
8515 {
8516   return (__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf) __A,
8517 						     __I,
8518 						     (__v16hi) __U,
8519 						     (__mmask16) __W);
8520 }
8521 
8522 extern __inline __m256i
8523 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtps_ph(__m256i __U,__mmask16 __W,__m512 __A,const int __I)8524 _mm512_mask_cvtps_ph (__m256i __U, __mmask16 __W, __m512 __A, const int __I)
8525 {
8526   return (__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf) __A,
8527 						     __I,
8528 						     (__v16hi) __U,
8529 						     (__mmask16) __W);
8530 }
8531 
8532 extern __inline __m256i
8533 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvt_roundps_ph(__mmask16 __W,__m512 __A,const int __I)8534 _mm512_maskz_cvt_roundps_ph (__mmask16 __W, __m512 __A, const int __I)
8535 {
8536   return (__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf) __A,
8537 						     __I,
8538 						     (__v16hi)
8539 						     _mm256_setzero_si256 (),
8540 						     (__mmask16) __W);
8541 }
8542 
8543 extern __inline __m256i
8544 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtps_ph(__mmask16 __W,__m512 __A,const int __I)8545 _mm512_maskz_cvtps_ph (__mmask16 __W, __m512 __A, const int __I)
8546 {
8547   return (__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf) __A,
8548 						     __I,
8549 						     (__v16hi)
8550 						     _mm256_setzero_si256 (),
8551 						     (__mmask16) __W);
8552 }
8553 #else
8554 #define _mm512_cvt_roundps_pd(A, B)		 \
8555     (__m512d)__builtin_ia32_cvtps2pd512_mask(A, (__v8df)_mm512_undefined_pd(), -1, B)
8556 
8557 #define _mm512_mask_cvt_roundps_pd(W, U, A, B)   \
8558     (__m512d)__builtin_ia32_cvtps2pd512_mask(A, (__v8df)(W), U, B)
8559 
8560 #define _mm512_maskz_cvt_roundps_pd(U, A, B)     \
8561     (__m512d)__builtin_ia32_cvtps2pd512_mask(A, (__v8df)_mm512_setzero_pd(), U, B)
8562 
8563 #define _mm512_cvt_roundph_ps(A, B)		 \
8564     (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(A), (__v16sf)_mm512_undefined_ps(), -1, B)
8565 
8566 #define _mm512_mask_cvt_roundph_ps(W, U, A, B)   \
8567     (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(A), (__v16sf)(W), U, B)
8568 
8569 #define _mm512_maskz_cvt_roundph_ps(U, A, B)     \
8570     (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(A), (__v16sf)_mm512_setzero_ps(), U, B)
8571 
8572 #define _mm512_cvt_roundps_ph(A, I)						 \
8573   ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) (A), (int) (I),\
8574     (__v16hi)_mm256_undefined_si256 (), -1))
8575 #define _mm512_cvtps_ph(A, I)						 \
8576   ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) (A), (int) (I),\
8577     (__v16hi)_mm256_undefined_si256 (), -1))
8578 #define _mm512_mask_cvt_roundps_ph(U, W, A, I)				 \
8579   ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) (A), (int) (I),\
8580     (__v16hi)(__m256i)(U), (__mmask16) (W)))
8581 #define _mm512_mask_cvtps_ph(U, W, A, I)				 \
8582   ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) (A), (int) (I),\
8583     (__v16hi)(__m256i)(U), (__mmask16) (W)))
8584 #define _mm512_maskz_cvt_roundps_ph(W, A, I)					 \
8585   ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) (A), (int) (I),\
8586     (__v16hi)_mm256_setzero_si256 (), (__mmask16) (W)))
8587 #define _mm512_maskz_cvtps_ph(W, A, I)					 \
8588   ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) (A), (int) (I),\
8589     (__v16hi)_mm256_setzero_si256 (), (__mmask16) (W)))
8590 #endif
8591 
8592 #ifdef __OPTIMIZE__
8593 extern __inline __m256
8594 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvt_roundpd_ps(__m512d __A,const int __R)8595 _mm512_cvt_roundpd_ps (__m512d __A, const int __R)
8596 {
8597   return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,
8598 						   (__v8sf)
8599 						   _mm256_undefined_ps (),
8600 						   (__mmask8) -1, __R);
8601 }
8602 
8603 extern __inline __m256
8604 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvt_roundpd_ps(__m256 __W,__mmask8 __U,__m512d __A,const int __R)8605 _mm512_mask_cvt_roundpd_ps (__m256 __W, __mmask8 __U, __m512d __A,
8606 			    const int __R)
8607 {
8608   return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,
8609 						   (__v8sf) __W,
8610 						   (__mmask8) __U, __R);
8611 }
8612 
8613 extern __inline __m256
8614 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvt_roundpd_ps(__mmask8 __U,__m512d __A,const int __R)8615 _mm512_maskz_cvt_roundpd_ps (__mmask8 __U, __m512d __A, const int __R)
8616 {
8617   return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,
8618 						   (__v8sf)
8619 						   _mm256_setzero_ps (),
8620 						   (__mmask8) __U, __R);
8621 }
8622 
8623 extern __inline __m128
8624 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvt_roundsd_ss(__m128 __A,__m128d __B,const int __R)8625 _mm_cvt_roundsd_ss (__m128 __A, __m128d __B, const int __R)
8626 {
8627   return (__m128) __builtin_ia32_cvtsd2ss_round ((__v4sf) __A,
8628 						 (__v2df) __B,
8629 						 __R);
8630 }
8631 
8632 extern __inline __m128d
8633 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvt_roundss_sd(__m128d __A,__m128 __B,const int __R)8634 _mm_cvt_roundss_sd (__m128d __A, __m128 __B, const int __R)
8635 {
8636   return (__m128d) __builtin_ia32_cvtss2sd_round ((__v2df) __A,
8637 						  (__v4sf) __B,
8638 						  __R);
8639 }
8640 #else
8641 #define _mm512_cvt_roundpd_ps(A, B)		 \
8642     (__m256)__builtin_ia32_cvtpd2ps512_mask(A, (__v8sf)_mm256_undefined_ps(), -1, B)
8643 
8644 #define _mm512_mask_cvt_roundpd_ps(W, U, A, B)   \
8645     (__m256)__builtin_ia32_cvtpd2ps512_mask(A, (__v8sf)(W), U, B)
8646 
8647 #define _mm512_maskz_cvt_roundpd_ps(U, A, B)     \
8648     (__m256)__builtin_ia32_cvtpd2ps512_mask(A, (__v8sf)_mm256_setzero_ps(), U, B)
8649 
8650 #define _mm_cvt_roundsd_ss(A, B, C)		 \
8651     (__m128)__builtin_ia32_cvtsd2ss_round(A, B, C)
8652 
8653 #define _mm_cvt_roundss_sd(A, B, C)		 \
8654     (__m128d)__builtin_ia32_cvtss2sd_round(A, B, C)
8655 #endif
8656 
8657 extern __inline void
8658 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_stream_si512(__m512i * __P,__m512i __A)8659 _mm512_stream_si512 (__m512i * __P, __m512i __A)
8660 {
8661   __builtin_ia32_movntdq512 ((__v8di *) __P, (__v8di) __A);
8662 }
8663 
8664 extern __inline void
8665 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_stream_ps(float * __P,__m512 __A)8666 _mm512_stream_ps (float *__P, __m512 __A)
8667 {
8668   __builtin_ia32_movntps512 (__P, (__v16sf) __A);
8669 }
8670 
8671 extern __inline void
8672 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_stream_pd(double * __P,__m512d __A)8673 _mm512_stream_pd (double *__P, __m512d __A)
8674 {
8675   __builtin_ia32_movntpd512 (__P, (__v8df) __A);
8676 }
8677 
8678 extern __inline __m512i
8679 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_stream_load_si512(void * __P)8680 _mm512_stream_load_si512 (void *__P)
8681 {
8682   return __builtin_ia32_movntdqa512 ((__v8di *)__P);
8683 }
8684 
8685 /* Constants for mantissa extraction */
8686 typedef enum
8687 {
8688   _MM_MANT_NORM_1_2,		/* interval [1, 2)      */
8689   _MM_MANT_NORM_p5_2,		/* interval [0.5, 2)    */
8690   _MM_MANT_NORM_p5_1,		/* interval [0.5, 1)    */
8691   _MM_MANT_NORM_p75_1p5		/* interval [0.75, 1.5) */
8692 } _MM_MANTISSA_NORM_ENUM;
8693 
8694 typedef enum
8695 {
8696   _MM_MANT_SIGN_src,		/* sign = sign(SRC)     */
8697   _MM_MANT_SIGN_zero,		/* sign = 0             */
8698   _MM_MANT_SIGN_nan		/* DEST = NaN if sign(SRC) = 1 */
8699 } _MM_MANTISSA_SIGN_ENUM;
8700 
8701 #ifdef __OPTIMIZE__
8702 extern __inline __m128
8703 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_getexp_round_ss(__m128 __A,__m128 __B,const int __R)8704 _mm_getexp_round_ss (__m128 __A, __m128 __B, const int __R)
8705 {
8706   return (__m128) __builtin_ia32_getexpss128_round ((__v4sf) __A,
8707 						    (__v4sf) __B,
8708 						    __R);
8709 }
8710 
8711 extern __inline __m128
8712 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_getexp_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B,const int __R)8713 _mm_mask_getexp_round_ss (__m128 __W, __mmask8 __U, __m128 __A,
8714 			  __m128 __B, const int __R)
8715 {
8716   return (__m128) __builtin_ia32_getexpss_mask_round ((__v4sf) __A,
8717 						 (__v4sf) __B,
8718 						 (__v4sf) __W,
8719 						 (__mmask8) __U, __R);
8720 }
8721 
8722 extern __inline __m128
8723 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_getexp_round_ss(__mmask8 __U,__m128 __A,__m128 __B,const int __R)8724 _mm_maskz_getexp_round_ss (__mmask8 __U, __m128 __A, __m128 __B,
8725 			   const int __R)
8726 {
8727   return (__m128) __builtin_ia32_getexpss_mask_round ((__v4sf) __A,
8728 						 (__v4sf) __B,
8729 						 (__v4sf)
8730 						 _mm_setzero_ps (),
8731 						 (__mmask8) __U, __R);
8732 }
8733 
8734 extern __inline __m128d
8735 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_getexp_round_sd(__m128d __A,__m128d __B,const int __R)8736 _mm_getexp_round_sd (__m128d __A, __m128d __B, const int __R)
8737 {
8738   return (__m128d) __builtin_ia32_getexpsd128_round ((__v2df) __A,
8739 						     (__v2df) __B,
8740 						     __R);
8741 }
8742 
8743 extern __inline __m128d
8744 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_getexp_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B,const int __R)8745 _mm_mask_getexp_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
8746 			  __m128d __B, const int __R)
8747 {
8748   return (__m128d) __builtin_ia32_getexpsd_mask_round ((__v2df) __A,
8749 						 (__v2df) __B,
8750 						 (__v2df) __W,
8751 						 (__mmask8) __U, __R);
8752 }
8753 
8754 extern __inline __m128d
8755 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_getexp_round_sd(__mmask8 __U,__m128d __A,__m128d __B,const int __R)8756 _mm_maskz_getexp_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
8757 			   const int __R)
8758 {
8759   return (__m128d) __builtin_ia32_getexpsd_mask_round ((__v2df) __A,
8760 						 (__v2df) __B,
8761 						 (__v2df)
8762 						 _mm_setzero_pd (),
8763 						 (__mmask8) __U, __R);
8764 }
8765 
8766 extern __inline __m512
8767 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_getexp_round_ps(__m512 __A,const int __R)8768 _mm512_getexp_round_ps (__m512 __A, const int __R)
8769 {
8770   return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
8771 						   (__v16sf)
8772 						   _mm512_undefined_ps (),
8773 						   (__mmask16) -1, __R);
8774 }
8775 
8776 extern __inline __m512
8777 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_getexp_round_ps(__m512 __W,__mmask16 __U,__m512 __A,const int __R)8778 _mm512_mask_getexp_round_ps (__m512 __W, __mmask16 __U, __m512 __A,
8779 			     const int __R)
8780 {
8781   return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
8782 						   (__v16sf) __W,
8783 						   (__mmask16) __U, __R);
8784 }
8785 
8786 extern __inline __m512
8787 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_getexp_round_ps(__mmask16 __U,__m512 __A,const int __R)8788 _mm512_maskz_getexp_round_ps (__mmask16 __U, __m512 __A, const int __R)
8789 {
8790   return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
8791 						   (__v16sf)
8792 						   _mm512_setzero_ps (),
8793 						   (__mmask16) __U, __R);
8794 }
8795 
8796 extern __inline __m512d
8797 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_getexp_round_pd(__m512d __A,const int __R)8798 _mm512_getexp_round_pd (__m512d __A, const int __R)
8799 {
8800   return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
8801 						    (__v8df)
8802 						    _mm512_undefined_pd (),
8803 						    (__mmask8) -1, __R);
8804 }
8805 
8806 extern __inline __m512d
8807 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_getexp_round_pd(__m512d __W,__mmask8 __U,__m512d __A,const int __R)8808 _mm512_mask_getexp_round_pd (__m512d __W, __mmask8 __U, __m512d __A,
8809 			     const int __R)
8810 {
8811   return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
8812 						    (__v8df) __W,
8813 						    (__mmask8) __U, __R);
8814 }
8815 
8816 extern __inline __m512d
8817 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_getexp_round_pd(__mmask8 __U,__m512d __A,const int __R)8818 _mm512_maskz_getexp_round_pd (__mmask8 __U, __m512d __A, const int __R)
8819 {
8820   return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
8821 						    (__v8df)
8822 						    _mm512_setzero_pd (),
8823 						    (__mmask8) __U, __R);
8824 }
8825 
8826 extern __inline __m512d
8827 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_getmant_round_pd(__m512d __A,_MM_MANTISSA_NORM_ENUM __B,_MM_MANTISSA_SIGN_ENUM __C,const int __R)8828 _mm512_getmant_round_pd (__m512d __A, _MM_MANTISSA_NORM_ENUM __B,
8829 			 _MM_MANTISSA_SIGN_ENUM __C, const int __R)
8830 {
8831   return (__m512d) __builtin_ia32_getmantpd512_mask ((__v8df) __A,
8832 						     (__C << 2) | __B,
8833 						     _mm512_undefined_pd (),
8834 						     (__mmask8) -1, __R);
8835 }
8836 
8837 extern __inline __m512d
8838 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_getmant_round_pd(__m512d __W,__mmask8 __U,__m512d __A,_MM_MANTISSA_NORM_ENUM __B,_MM_MANTISSA_SIGN_ENUM __C,const int __R)8839 _mm512_mask_getmant_round_pd (__m512d __W, __mmask8 __U, __m512d __A,
8840 			      _MM_MANTISSA_NORM_ENUM __B,
8841 			      _MM_MANTISSA_SIGN_ENUM __C, const int __R)
8842 {
8843   return (__m512d) __builtin_ia32_getmantpd512_mask ((__v8df) __A,
8844 						     (__C << 2) | __B,
8845 						     (__v8df) __W, __U,
8846 						     __R);
8847 }
8848 
8849 extern __inline __m512d
8850 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_getmant_round_pd(__mmask8 __U,__m512d __A,_MM_MANTISSA_NORM_ENUM __B,_MM_MANTISSA_SIGN_ENUM __C,const int __R)8851 _mm512_maskz_getmant_round_pd (__mmask8 __U, __m512d __A,
8852 			       _MM_MANTISSA_NORM_ENUM __B,
8853 			       _MM_MANTISSA_SIGN_ENUM __C, const int __R)
8854 {
8855   return (__m512d) __builtin_ia32_getmantpd512_mask ((__v8df) __A,
8856 						     (__C << 2) | __B,
8857 						     (__v8df)
8858 						     _mm512_setzero_pd (),
8859 						     __U, __R);
8860 }
8861 
8862 extern __inline __m512
8863 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_getmant_round_ps(__m512 __A,_MM_MANTISSA_NORM_ENUM __B,_MM_MANTISSA_SIGN_ENUM __C,const int __R)8864 _mm512_getmant_round_ps (__m512 __A, _MM_MANTISSA_NORM_ENUM __B,
8865 			 _MM_MANTISSA_SIGN_ENUM __C, const int __R)
8866 {
8867   return (__m512) __builtin_ia32_getmantps512_mask ((__v16sf) __A,
8868 						    (__C << 2) | __B,
8869 						    _mm512_undefined_ps (),
8870 						    (__mmask16) -1, __R);
8871 }
8872 
8873 extern __inline __m512
8874 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_getmant_round_ps(__m512 __W,__mmask16 __U,__m512 __A,_MM_MANTISSA_NORM_ENUM __B,_MM_MANTISSA_SIGN_ENUM __C,const int __R)8875 _mm512_mask_getmant_round_ps (__m512 __W, __mmask16 __U, __m512 __A,
8876 			      _MM_MANTISSA_NORM_ENUM __B,
8877 			      _MM_MANTISSA_SIGN_ENUM __C, const int __R)
8878 {
8879   return (__m512) __builtin_ia32_getmantps512_mask ((__v16sf) __A,
8880 						    (__C << 2) | __B,
8881 						    (__v16sf) __W, __U,
8882 						    __R);
8883 }
8884 
8885 extern __inline __m512
8886 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_getmant_round_ps(__mmask16 __U,__m512 __A,_MM_MANTISSA_NORM_ENUM __B,_MM_MANTISSA_SIGN_ENUM __C,const int __R)8887 _mm512_maskz_getmant_round_ps (__mmask16 __U, __m512 __A,
8888 			       _MM_MANTISSA_NORM_ENUM __B,
8889 			       _MM_MANTISSA_SIGN_ENUM __C, const int __R)
8890 {
8891   return (__m512) __builtin_ia32_getmantps512_mask ((__v16sf) __A,
8892 						    (__C << 2) | __B,
8893 						    (__v16sf)
8894 						    _mm512_setzero_ps (),
8895 						    __U, __R);
8896 }
8897 
8898 extern __inline __m128d
8899 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_getmant_round_sd(__m128d __A,__m128d __B,_MM_MANTISSA_NORM_ENUM __C,_MM_MANTISSA_SIGN_ENUM __D,const int __R)8900 _mm_getmant_round_sd (__m128d __A, __m128d __B,
8901 		      _MM_MANTISSA_NORM_ENUM __C,
8902 		      _MM_MANTISSA_SIGN_ENUM __D, const int __R)
8903 {
8904   return (__m128d) __builtin_ia32_getmantsd_round ((__v2df) __A,
8905 						  (__v2df) __B,
8906 						  (__D << 2) | __C,
8907 						   __R);
8908 }
8909 
8910 extern __inline __m128d
8911 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_getmant_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B,_MM_MANTISSA_NORM_ENUM __C,_MM_MANTISSA_SIGN_ENUM __D,const int __R)8912 _mm_mask_getmant_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
8913 			      __m128d __B, _MM_MANTISSA_NORM_ENUM __C,
8914 			      _MM_MANTISSA_SIGN_ENUM __D, const int __R)
8915 {
8916   return (__m128d) __builtin_ia32_getmantsd_mask_round ((__v2df) __A,
8917 						    (__v2df) __B,
8918 						    (__D << 2) | __C,
8919                                                     (__v2df) __W,
8920 						     __U, __R);
8921 }
8922 
8923 extern __inline __m128d
8924 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_getmant_round_sd(__mmask8 __U,__m128d __A,__m128d __B,_MM_MANTISSA_NORM_ENUM __C,_MM_MANTISSA_SIGN_ENUM __D,const int __R)8925 _mm_maskz_getmant_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
8926 			       _MM_MANTISSA_NORM_ENUM __C,
8927 			       _MM_MANTISSA_SIGN_ENUM __D, const int __R)
8928 {
8929   return (__m128d) __builtin_ia32_getmantsd_mask_round ((__v2df) __A,
8930 							(__v2df) __B,
8931 						        (__D << 2) | __C,
8932                                                         (__v2df)
8933                                                         _mm_setzero_pd(),
8934 						        __U, __R);
8935 }
8936 
8937 extern __inline __m128
8938 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_getmant_round_ss(__m128 __A,__m128 __B,_MM_MANTISSA_NORM_ENUM __C,_MM_MANTISSA_SIGN_ENUM __D,const int __R)8939 _mm_getmant_round_ss (__m128 __A, __m128 __B,
8940 		      _MM_MANTISSA_NORM_ENUM __C,
8941 		      _MM_MANTISSA_SIGN_ENUM __D, const int __R)
8942 {
8943   return (__m128) __builtin_ia32_getmantss_round ((__v4sf) __A,
8944 						  (__v4sf) __B,
8945 						  (__D << 2) | __C,
8946 						  __R);
8947 }
8948 
8949 extern __inline __m128
8950 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_getmant_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B,_MM_MANTISSA_NORM_ENUM __C,_MM_MANTISSA_SIGN_ENUM __D,const int __R)8951 _mm_mask_getmant_round_ss (__m128 __W, __mmask8 __U, __m128 __A,
8952 			      __m128 __B, _MM_MANTISSA_NORM_ENUM __C,
8953 			      _MM_MANTISSA_SIGN_ENUM __D, const int __R)
8954 {
8955   return (__m128) __builtin_ia32_getmantss_mask_round ((__v4sf) __A,
8956 						    (__v4sf) __B,
8957 						    (__D << 2) | __C,
8958                                                     (__v4sf) __W,
8959 						     __U, __R);
8960 }
8961 
8962 extern __inline __m128
8963 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_getmant_round_ss(__mmask8 __U,__m128 __A,__m128 __B,_MM_MANTISSA_NORM_ENUM __C,_MM_MANTISSA_SIGN_ENUM __D,const int __R)8964 _mm_maskz_getmant_round_ss (__mmask8 __U, __m128 __A, __m128 __B,
8965 			       _MM_MANTISSA_NORM_ENUM __C,
8966 			       _MM_MANTISSA_SIGN_ENUM __D, const int __R)
8967 {
8968   return (__m128) __builtin_ia32_getmantss_mask_round ((__v4sf) __A,
8969 							(__v4sf) __B,
8970 						        (__D << 2) | __C,
8971                                                         (__v4sf)
8972                                                         _mm_setzero_ps(),
8973 						        __U, __R);
8974 }
8975 
8976 #else
8977 #define _mm512_getmant_round_pd(X, B, C, R)                                                  \
8978   ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X),                 \
8979                                               (int)(((C)<<2) | (B)),                \
8980                                               (__v8df)(__m512d)_mm512_undefined_pd(), \
8981                                               (__mmask8)-1,\
8982 					      (R)))
8983 
8984 #define _mm512_mask_getmant_round_pd(W, U, X, B, C, R)                                       \
8985   ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X),                 \
8986                                               (int)(((C)<<2) | (B)),                \
8987                                               (__v8df)(__m512d)(W),                 \
8988                                               (__mmask8)(U),\
8989 					      (R)))
8990 
8991 #define _mm512_maskz_getmant_round_pd(U, X, B, C, R)                                         \
8992   ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X),                 \
8993                                               (int)(((C)<<2) | (B)),                \
8994                                               (__v8df)(__m512d)_mm512_setzero_pd(), \
8995                                               (__mmask8)(U),\
8996 					      (R)))
8997 #define _mm512_getmant_round_ps(X, B, C, R)                                                  \
8998   ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X),                  \
8999                                              (int)(((C)<<2) | (B)),                 \
9000                                              (__v16sf)(__m512)_mm512_undefined_ps(), \
9001                                              (__mmask16)-1,\
9002 					     (R)))
9003 
9004 #define _mm512_mask_getmant_round_ps(W, U, X, B, C, R)                                       \
9005   ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X),                  \
9006                                              (int)(((C)<<2) | (B)),                 \
9007                                              (__v16sf)(__m512)(W),                  \
9008                                              (__mmask16)(U),\
9009 					     (R)))
9010 
9011 #define _mm512_maskz_getmant_round_ps(U, X, B, C, R)                                         \
9012   ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X),                  \
9013                                              (int)(((C)<<2) | (B)),                 \
9014                                              (__v16sf)(__m512)_mm512_setzero_ps(),  \
9015                                              (__mmask16)(U),\
9016 					     (R)))
9017 #define _mm_getmant_round_sd(X, Y, C, D, R)                                                  \
9018   ((__m128d)__builtin_ia32_getmantsd_round ((__v2df)(__m128d)(X),                    \
9019 					    (__v2df)(__m128d)(Y),	\
9020 					    (int)(((D)<<2) | (C)),	\
9021 					    (R)))
9022 
9023 #define _mm_mask_getmant_round_sd(W, U, X, Y, C, D, R)                                       \
9024   ((__m128d)__builtin_ia32_getmantsd_mask_round ((__v2df)(__m128d)(X),                  \
9025 					     (__v2df)(__m128d)(Y),                  \
9026                                              (int)(((D)<<2) | (C)),                 \
9027                                              (__v2df)(__m128d)(W),                   \
9028                                              (__mmask8)(U),\
9029 					     (R)))
9030 
9031 #define _mm_maskz_getmant_round_sd(U, X, Y, C, D, R)                                         \
9032   ((__m128d)__builtin_ia32_getmantsd_mask_round ((__v2df)(__m128d)(X),                  \
9033                                                  (__v2df)(__m128d)(Y),                  \
9034                                              (int)(((D)<<2) | (C)),              \
9035                                              (__v2df)(__m128d)_mm_setzero_pd(),  \
9036                                              (__mmask8)(U),\
9037 					     (R)))
9038 
9039 #define _mm_getmant_round_ss(X, Y, C, D, R)                                                  \
9040   ((__m128)__builtin_ia32_getmantss_round ((__v4sf)(__m128)(X),                      \
9041 					   (__v4sf)(__m128)(Y),		\
9042 					   (int)(((D)<<2) | (C)),	\
9043 					   (R)))
9044 
9045 #define _mm_mask_getmant_round_ss(W, U, X, Y, C, D, R)                                       \
9046   ((__m128)__builtin_ia32_getmantss_mask_round ((__v4sf)(__m128)(X),                  \
9047 					     (__v4sf)(__m128)(Y),                  \
9048                                              (int)(((D)<<2) | (C)),                 \
9049                                              (__v4sf)(__m128)(W),                   \
9050                                              (__mmask8)(U),\
9051 					     (R)))
9052 
9053 #define _mm_maskz_getmant_round_ss(U, X, Y, C, D, R)                                         \
9054   ((__m128)__builtin_ia32_getmantss_mask_round ((__v4sf)(__m128)(X),                  \
9055                                                  (__v4sf)(__m128)(Y),                  \
9056                                              (int)(((D)<<2) | (C)),              \
9057                                              (__v4sf)(__m128)_mm_setzero_ps(),  \
9058                                              (__mmask8)(U),\
9059 					     (R)))
9060 
9061 #define _mm_getexp_round_ss(A, B, R)						      \
9062   ((__m128)__builtin_ia32_getexpss128_round((__v4sf)(__m128)(A), (__v4sf)(__m128)(B), R))
9063 
9064 #define _mm_mask_getexp_round_ss(W, U, A, B, C) \
9065     (__m128)__builtin_ia32_getexpss_mask_round(A, B, W, U, C)
9066 
9067 #define _mm_maskz_getexp_round_ss(U, A, B, C)   \
9068     (__m128)__builtin_ia32_getexpss_mask_round(A, B, (__v4sf)_mm_setzero_ps(), U, C)
9069 
9070 #define _mm_getexp_round_sd(A, B, R)						       \
9071   ((__m128d)__builtin_ia32_getexpsd128_round((__v2df)(__m128d)(A), (__v2df)(__m128d)(B), R))
9072 
9073 #define _mm_mask_getexp_round_sd(W, U, A, B, C) \
9074     (__m128d)__builtin_ia32_getexpsd_mask_round(A, B, W, U, C)
9075 
9076 #define _mm_maskz_getexp_round_sd(U, A, B, C)   \
9077     (__m128d)__builtin_ia32_getexpsd_mask_round(A, B, (__v2df)_mm_setzero_pd(), U, C)
9078 
9079 
9080 #define _mm512_getexp_round_ps(A, R)						\
9081   ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A),		\
9082   (__v16sf)_mm512_undefined_ps(), (__mmask16)-1, R))
9083 
9084 #define _mm512_mask_getexp_round_ps(W, U, A, R)					\
9085   ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A),		\
9086   (__v16sf)(__m512)(W), (__mmask16)(U), R))
9087 
9088 #define _mm512_maskz_getexp_round_ps(U, A, R)					\
9089   ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A),		\
9090   (__v16sf)_mm512_setzero_ps(), (__mmask16)(U), R))
9091 
9092 #define _mm512_getexp_round_pd(A, R)						\
9093   ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A),		\
9094   (__v8df)_mm512_undefined_pd(), (__mmask8)-1, R))
9095 
9096 #define _mm512_mask_getexp_round_pd(W, U, A, R)					\
9097   ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A),		\
9098   (__v8df)(__m512d)(W), (__mmask8)(U), R))
9099 
9100 #define _mm512_maskz_getexp_round_pd(U, A, R)					\
9101   ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A),		\
9102   (__v8df)_mm512_setzero_pd(), (__mmask8)(U), R))
9103 #endif
9104 
9105 #ifdef __OPTIMIZE__
9106 extern __inline __m512
9107 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_roundscale_round_ps(__m512 __A,const int __imm,const int __R)9108 _mm512_roundscale_round_ps (__m512 __A, const int __imm, const int __R)
9109 {
9110   return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A, __imm,
9111 						  (__v16sf)
9112 						  _mm512_undefined_ps (),
9113 						  -1, __R);
9114 }
9115 
9116 extern __inline __m512
9117 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_roundscale_round_ps(__m512 __A,__mmask16 __B,__m512 __C,const int __imm,const int __R)9118 _mm512_mask_roundscale_round_ps (__m512 __A, __mmask16 __B, __m512 __C,
9119 				 const int __imm, const int __R)
9120 {
9121   return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __C, __imm,
9122 						  (__v16sf) __A,
9123 						  (__mmask16) __B, __R);
9124 }
9125 
9126 extern __inline __m512
9127 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_roundscale_round_ps(__mmask16 __A,__m512 __B,const int __imm,const int __R)9128 _mm512_maskz_roundscale_round_ps (__mmask16 __A, __m512 __B,
9129 				  const int __imm, const int __R)
9130 {
9131   return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __B,
9132 						  __imm,
9133 						  (__v16sf)
9134 						  _mm512_setzero_ps (),
9135 						  (__mmask16) __A, __R);
9136 }
9137 
9138 extern __inline __m512d
9139 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_roundscale_round_pd(__m512d __A,const int __imm,const int __R)9140 _mm512_roundscale_round_pd (__m512d __A, const int __imm, const int __R)
9141 {
9142   return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A, __imm,
9143 						   (__v8df)
9144 						   _mm512_undefined_pd (),
9145 						   -1, __R);
9146 }
9147 
9148 extern __inline __m512d
9149 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_roundscale_round_pd(__m512d __A,__mmask8 __B,__m512d __C,const int __imm,const int __R)9150 _mm512_mask_roundscale_round_pd (__m512d __A, __mmask8 __B,
9151 				 __m512d __C, const int __imm, const int __R)
9152 {
9153   return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __C, __imm,
9154 						   (__v8df) __A,
9155 						   (__mmask8) __B, __R);
9156 }
9157 
9158 extern __inline __m512d
9159 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_roundscale_round_pd(__mmask8 __A,__m512d __B,const int __imm,const int __R)9160 _mm512_maskz_roundscale_round_pd (__mmask8 __A, __m512d __B,
9161 				  const int __imm, const int __R)
9162 {
9163   return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __B,
9164 						   __imm,
9165 						   (__v8df)
9166 						   _mm512_setzero_pd (),
9167 						   (__mmask8) __A, __R);
9168 }
9169 
9170 extern __inline __m128
9171 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_roundscale_round_ss(__m128 __A,__m128 __B,const int __imm,const int __R)9172 _mm_roundscale_round_ss (__m128 __A, __m128 __B, const int __imm,
9173 			 const int __R)
9174 {
9175   return (__m128)
9176     __builtin_ia32_rndscaless_mask_round ((__v4sf) __A,
9177 					  (__v4sf) __B, __imm,
9178 					  (__v4sf)
9179 					  _mm_setzero_ps (),
9180 					  (__mmask8) -1,
9181 					  __R);
9182 }
9183 
9184 extern __inline __m128
9185 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_roundscale_round_ss(__m128 __A,__mmask8 __B,__m128 __C,__m128 __D,const int __imm,const int __R)9186 _mm_mask_roundscale_round_ss (__m128 __A, __mmask8 __B, __m128 __C,
9187 			      __m128 __D, const int __imm, const int __R)
9188 {
9189   return (__m128)
9190     __builtin_ia32_rndscaless_mask_round ((__v4sf) __C,
9191 					  (__v4sf) __D, __imm,
9192 					  (__v4sf) __A,
9193 					  (__mmask8) __B,
9194 					  __R);
9195 }
9196 
9197 extern __inline __m128
9198 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_roundscale_round_ss(__mmask8 __A,__m128 __B,__m128 __C,const int __imm,const int __R)9199 _mm_maskz_roundscale_round_ss (__mmask8 __A, __m128 __B, __m128 __C,
9200 			       const int __imm, const int __R)
9201 {
9202   return (__m128)
9203     __builtin_ia32_rndscaless_mask_round ((__v4sf) __B,
9204 					  (__v4sf) __C, __imm,
9205 					  (__v4sf)
9206 					  _mm_setzero_ps (),
9207 					  (__mmask8) __A,
9208 					  __R);
9209 }
9210 
9211 extern __inline __m128d
9212 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_roundscale_round_sd(__m128d __A,__m128d __B,const int __imm,const int __R)9213 _mm_roundscale_round_sd (__m128d __A, __m128d __B, const int __imm,
9214 			 const int __R)
9215 {
9216   return (__m128d)
9217     __builtin_ia32_rndscalesd_mask_round ((__v2df) __A,
9218 					  (__v2df) __B, __imm,
9219 					  (__v2df)
9220 					  _mm_setzero_pd (),
9221 					  (__mmask8) -1,
9222 					  __R);
9223 }
9224 
9225 extern __inline __m128d
9226 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_roundscale_round_sd(__m128d __A,__mmask8 __B,__m128d __C,__m128d __D,const int __imm,const int __R)9227 _mm_mask_roundscale_round_sd (__m128d __A, __mmask8 __B, __m128d __C,
9228 			      __m128d __D, const int __imm, const int __R)
9229 {
9230   return (__m128d)
9231     __builtin_ia32_rndscalesd_mask_round ((__v2df) __C,
9232 					  (__v2df) __D, __imm,
9233 					  (__v2df) __A,
9234 					  (__mmask8) __B,
9235 					  __R);
9236 }
9237 
9238 extern __inline __m128d
9239 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_roundscale_round_sd(__mmask8 __A,__m128d __B,__m128d __C,const int __imm,const int __R)9240 _mm_maskz_roundscale_round_sd (__mmask8 __A, __m128d __B, __m128d __C,
9241 			       const int __imm, const int __R)
9242 {
9243   return (__m128d)
9244     __builtin_ia32_rndscalesd_mask_round ((__v2df) __B,
9245 					  (__v2df) __C, __imm,
9246 					  (__v2df)
9247 					  _mm_setzero_pd (),
9248 					  (__mmask8) __A,
9249 					  __R);
9250 }
9251 
9252 #else
9253 #define _mm512_roundscale_round_ps(A, B, R) \
9254   ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(A), (int)(B),\
9255     (__v16sf)_mm512_undefined_ps(), (__mmask16)(-1), R))
9256 #define _mm512_mask_roundscale_round_ps(A, B, C, D, R)				\
9257   ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(C),	\
9258 					    (int)(D),			\
9259 					    (__v16sf)(__m512)(A),	\
9260 					    (__mmask16)(B), R))
9261 #define _mm512_maskz_roundscale_round_ps(A, B, C, R)				\
9262   ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(B),	\
9263 					    (int)(C),			\
9264 					    (__v16sf)_mm512_setzero_ps(),\
9265 					    (__mmask16)(A), R))
9266 #define _mm512_roundscale_round_pd(A, B, R) \
9267   ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(A), (int)(B),\
9268     (__v8df)_mm512_undefined_pd(), (__mmask8)(-1), R))
9269 #define _mm512_mask_roundscale_round_pd(A, B, C, D, R)				\
9270   ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(C),	\
9271 					     (int)(D),			\
9272 					     (__v8df)(__m512d)(A),	\
9273 					     (__mmask8)(B), R))
9274 #define _mm512_maskz_roundscale_round_pd(A, B, C, R)				\
9275   ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(B),	\
9276 					     (int)(C),			\
9277 					     (__v8df)_mm512_setzero_pd(),\
9278 					     (__mmask8)(A), R))
9279 #define _mm_roundscale_round_ss(A, B, I, R)				\
9280   ((__m128)								\
9281    __builtin_ia32_rndscaless_mask_round ((__v4sf) (__m128) (A),		\
9282 					 (__v4sf) (__m128) (B),		\
9283 					 (int) (I),			\
9284 					 (__v4sf) _mm_setzero_ps (),	\
9285 					 (__mmask8) (-1),		\
9286 					 (int) (R)))
9287 #define _mm_mask_roundscale_round_ss(A, U, B, C, I, R)		\
9288   ((__m128)							\
9289    __builtin_ia32_rndscaless_mask_round ((__v4sf) (__m128) (B),	\
9290 					 (__v4sf) (__m128) (C),	\
9291 					 (int) (I),		\
9292 					 (__v4sf) (__m128) (A),	\
9293 					 (__mmask8) (U),	\
9294 					 (int) (R)))
9295 #define _mm_maskz_roundscale_round_ss(U, A, B, I, R)			\
9296   ((__m128)								\
9297    __builtin_ia32_rndscaless_mask_round ((__v4sf) (__m128) (A),		\
9298 					 (__v4sf) (__m128) (B),		\
9299 					 (int) (I),			\
9300 					 (__v4sf) _mm_setzero_ps (),	\
9301 					 (__mmask8) (U),		\
9302 					 (int) (R)))
9303 #define _mm_roundscale_round_sd(A, B, I, R)				\
9304   ((__m128d)								\
9305    __builtin_ia32_rndscalesd_mask_round ((__v2df) (__m128d) (A),	\
9306 					 (__v2df) (__m128d) (B),	\
9307 					 (int) (I),			\
9308 					 (__v2df) _mm_setzero_pd (),	\
9309 					 (__mmask8) (-1),		\
9310 					 (int) (R)))
9311 #define _mm_mask_roundscale_round_sd(A, U, B, C, I, R)			\
9312   ((__m128d)								\
9313    __builtin_ia32_rndscalesd_mask_round ((__v2df) (__m128d) (B),	\
9314 					 (__v2df) (__m128d) (C),	\
9315 					 (int) (I),			\
9316 					 (__v2df) (__m128d) (A),	\
9317 					 (__mmask8) (U),		\
9318 					 (int) (R)))
9319 #define _mm_maskz_roundscale_round_sd(U, A, B, I, R)			\
9320   ((__m128d)								\
9321    __builtin_ia32_rndscalesd_mask_round ((__v2df) (__m128d) (A),	\
9322 					 (__v2df) (__m128d) (B),	\
9323 					 (int) (I),			\
9324 					 (__v2df) _mm_setzero_pd (),	\
9325 					 (__mmask8) (U),		\
9326 					 (int) (R)))
9327 #endif
9328 
9329 extern __inline __m512
9330 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_floor_ps(__m512 __A)9331 _mm512_floor_ps (__m512 __A)
9332 {
9333   return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A,
9334 						  _MM_FROUND_FLOOR,
9335 						  (__v16sf) __A, -1,
9336 						  _MM_FROUND_CUR_DIRECTION);
9337 }
9338 
9339 extern __inline __m512d
9340 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_floor_pd(__m512d __A)9341 _mm512_floor_pd (__m512d __A)
9342 {
9343   return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A,
9344 						   _MM_FROUND_FLOOR,
9345 						   (__v8df) __A, -1,
9346 						   _MM_FROUND_CUR_DIRECTION);
9347 }
9348 
9349 extern __inline __m512
9350 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_ceil_ps(__m512 __A)9351 _mm512_ceil_ps (__m512 __A)
9352 {
9353   return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A,
9354 						  _MM_FROUND_CEIL,
9355 						  (__v16sf) __A, -1,
9356 						  _MM_FROUND_CUR_DIRECTION);
9357 }
9358 
9359 extern __inline __m512d
9360 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_ceil_pd(__m512d __A)9361 _mm512_ceil_pd (__m512d __A)
9362 {
9363   return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A,
9364 						   _MM_FROUND_CEIL,
9365 						   (__v8df) __A, -1,
9366 						   _MM_FROUND_CUR_DIRECTION);
9367 }
9368 
9369 extern __inline __m512
9370 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_floor_ps(__m512 __W,__mmask16 __U,__m512 __A)9371 _mm512_mask_floor_ps (__m512 __W, __mmask16 __U, __m512 __A)
9372 {
9373   return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A,
9374 						  _MM_FROUND_FLOOR,
9375 						  (__v16sf) __W, __U,
9376 						  _MM_FROUND_CUR_DIRECTION);
9377 }
9378 
9379 extern __inline __m512d
9380 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_floor_pd(__m512d __W,__mmask8 __U,__m512d __A)9381 _mm512_mask_floor_pd (__m512d __W, __mmask8 __U, __m512d __A)
9382 {
9383   return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A,
9384 						   _MM_FROUND_FLOOR,
9385 						   (__v8df) __W, __U,
9386 						   _MM_FROUND_CUR_DIRECTION);
9387 }
9388 
9389 extern __inline __m512
9390 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_ceil_ps(__m512 __W,__mmask16 __U,__m512 __A)9391 _mm512_mask_ceil_ps (__m512 __W, __mmask16 __U, __m512 __A)
9392 {
9393   return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A,
9394 						  _MM_FROUND_CEIL,
9395 						  (__v16sf) __W, __U,
9396 						  _MM_FROUND_CUR_DIRECTION);
9397 }
9398 
9399 extern __inline __m512d
9400 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_ceil_pd(__m512d __W,__mmask8 __U,__m512d __A)9401 _mm512_mask_ceil_pd (__m512d __W, __mmask8 __U, __m512d __A)
9402 {
9403   return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A,
9404 						   _MM_FROUND_CEIL,
9405 						   (__v8df) __W, __U,
9406 						   _MM_FROUND_CUR_DIRECTION);
9407 }
9408 
9409 #ifdef __OPTIMIZE__
9410 extern __inline __m512i
9411 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_alignr_epi32(__m512i __A,__m512i __B,const int __imm)9412 _mm512_alignr_epi32 (__m512i __A, __m512i __B, const int __imm)
9413 {
9414   return (__m512i) __builtin_ia32_alignd512_mask ((__v16si) __A,
9415 						  (__v16si) __B, __imm,
9416 						  (__v16si)
9417 						  _mm512_undefined_epi32 (),
9418 						  (__mmask16) -1);
9419 }
9420 
9421 extern __inline __m512i
9422 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_alignr_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B,const int __imm)9423 _mm512_mask_alignr_epi32 (__m512i __W, __mmask16 __U, __m512i __A,
9424 			  __m512i __B, const int __imm)
9425 {
9426   return (__m512i) __builtin_ia32_alignd512_mask ((__v16si) __A,
9427 						  (__v16si) __B, __imm,
9428 						  (__v16si) __W,
9429 						  (__mmask16) __U);
9430 }
9431 
9432 extern __inline __m512i
9433 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_alignr_epi32(__mmask16 __U,__m512i __A,__m512i __B,const int __imm)9434 _mm512_maskz_alignr_epi32 (__mmask16 __U, __m512i __A, __m512i __B,
9435 			   const int __imm)
9436 {
9437   return (__m512i) __builtin_ia32_alignd512_mask ((__v16si) __A,
9438 						  (__v16si) __B, __imm,
9439 						  (__v16si)
9440 						  _mm512_setzero_si512 (),
9441 						  (__mmask16) __U);
9442 }
9443 
9444 extern __inline __m512i
9445 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_alignr_epi64(__m512i __A,__m512i __B,const int __imm)9446 _mm512_alignr_epi64 (__m512i __A, __m512i __B, const int __imm)
9447 {
9448   return (__m512i) __builtin_ia32_alignq512_mask ((__v8di) __A,
9449 						  (__v8di) __B, __imm,
9450 						  (__v8di)
9451 						  _mm512_undefined_epi32 (),
9452 						  (__mmask8) -1);
9453 }
9454 
9455 extern __inline __m512i
9456 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_alignr_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B,const int __imm)9457 _mm512_mask_alignr_epi64 (__m512i __W, __mmask8 __U, __m512i __A,
9458 			  __m512i __B, const int __imm)
9459 {
9460   return (__m512i) __builtin_ia32_alignq512_mask ((__v8di) __A,
9461 						  (__v8di) __B, __imm,
9462 						  (__v8di) __W,
9463 						  (__mmask8) __U);
9464 }
9465 
9466 extern __inline __m512i
9467 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_alignr_epi64(__mmask8 __U,__m512i __A,__m512i __B,const int __imm)9468 _mm512_maskz_alignr_epi64 (__mmask8 __U, __m512i __A, __m512i __B,
9469 			   const int __imm)
9470 {
9471   return (__m512i) __builtin_ia32_alignq512_mask ((__v8di) __A,
9472 						  (__v8di) __B, __imm,
9473 						  (__v8di)
9474 						  _mm512_setzero_si512 (),
9475 						  (__mmask8) __U);
9476 }
9477 #else
9478 #define _mm512_alignr_epi32(X, Y, C)                                        \
9479     ((__m512i)__builtin_ia32_alignd512_mask ((__v16si)(__m512i)(X),         \
9480         (__v16si)(__m512i)(Y), (int)(C), (__v16si)_mm512_undefined_epi32 (),\
9481         (__mmask16)-1))
9482 
9483 #define _mm512_mask_alignr_epi32(W, U, X, Y, C)                             \
9484     ((__m512i)__builtin_ia32_alignd512_mask ((__v16si)(__m512i)(X),         \
9485         (__v16si)(__m512i)(Y), (int)(C), (__v16si)(__m512i)(W),             \
9486         (__mmask16)(U)))
9487 
9488 #define _mm512_maskz_alignr_epi32(U, X, Y, C)                               \
9489     ((__m512i)__builtin_ia32_alignd512_mask ((__v16si)(__m512i)(X),         \
9490         (__v16si)(__m512i)(Y), (int)(C), (__v16si)_mm512_setzero_si512 (),\
9491         (__mmask16)(U)))
9492 
9493 #define _mm512_alignr_epi64(X, Y, C)                                        \
9494     ((__m512i)__builtin_ia32_alignq512_mask ((__v8di)(__m512i)(X),          \
9495         (__v8di)(__m512i)(Y), (int)(C), (__v8di)_mm512_undefined_epi32 (),  \
9496 	(__mmask8)-1))
9497 
9498 #define _mm512_mask_alignr_epi64(W, U, X, Y, C)                             \
9499     ((__m512i)__builtin_ia32_alignq512_mask ((__v8di)(__m512i)(X),          \
9500         (__v8di)(__m512i)(Y), (int)(C), (__v8di)(__m512i)(W), (__mmask8)(U)))
9501 
9502 #define _mm512_maskz_alignr_epi64(U, X, Y, C)                               \
9503     ((__m512i)__builtin_ia32_alignq512_mask ((__v8di)(__m512i)(X),          \
9504         (__v8di)(__m512i)(Y), (int)(C), (__v8di)_mm512_setzero_si512 (),\
9505         (__mmask8)(U)))
9506 #endif
9507 
9508 extern __inline __mmask16
9509 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmpeq_epi32_mask(__m512i __A,__m512i __B)9510 _mm512_cmpeq_epi32_mask (__m512i __A, __m512i __B)
9511 {
9512   return (__mmask16) __builtin_ia32_pcmpeqd512_mask ((__v16si) __A,
9513 						     (__v16si) __B,
9514 						     (__mmask16) -1);
9515 }
9516 
9517 extern __inline __mmask16
9518 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmpeq_epi32_mask(__mmask16 __U,__m512i __A,__m512i __B)9519 _mm512_mask_cmpeq_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B)
9520 {
9521   return (__mmask16) __builtin_ia32_pcmpeqd512_mask ((__v16si) __A,
9522 						     (__v16si) __B, __U);
9523 }
9524 
9525 extern __inline __mmask8
9526 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmpeq_epi64_mask(__mmask8 __U,__m512i __A,__m512i __B)9527 _mm512_mask_cmpeq_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B)
9528 {
9529   return (__mmask8) __builtin_ia32_pcmpeqq512_mask ((__v8di) __A,
9530 						    (__v8di) __B, __U);
9531 }
9532 
9533 extern __inline __mmask8
9534 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmpeq_epi64_mask(__m512i __A,__m512i __B)9535 _mm512_cmpeq_epi64_mask (__m512i __A, __m512i __B)
9536 {
9537   return (__mmask8) __builtin_ia32_pcmpeqq512_mask ((__v8di) __A,
9538 						    (__v8di) __B,
9539 						    (__mmask8) -1);
9540 }
9541 
9542 extern __inline __mmask16
9543 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmpgt_epi32_mask(__m512i __A,__m512i __B)9544 _mm512_cmpgt_epi32_mask (__m512i __A, __m512i __B)
9545 {
9546   return (__mmask16) __builtin_ia32_pcmpgtd512_mask ((__v16si) __A,
9547 						     (__v16si) __B,
9548 						     (__mmask16) -1);
9549 }
9550 
9551 extern __inline __mmask16
9552 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmpgt_epi32_mask(__mmask16 __U,__m512i __A,__m512i __B)9553 _mm512_mask_cmpgt_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B)
9554 {
9555   return (__mmask16) __builtin_ia32_pcmpgtd512_mask ((__v16si) __A,
9556 						     (__v16si) __B, __U);
9557 }
9558 
9559 extern __inline __mmask8
9560 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmpgt_epi64_mask(__mmask8 __U,__m512i __A,__m512i __B)9561 _mm512_mask_cmpgt_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B)
9562 {
9563   return (__mmask8) __builtin_ia32_pcmpgtq512_mask ((__v8di) __A,
9564 						    (__v8di) __B, __U);
9565 }
9566 
9567 extern __inline __mmask8
9568 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmpgt_epi64_mask(__m512i __A,__m512i __B)9569 _mm512_cmpgt_epi64_mask (__m512i __A, __m512i __B)
9570 {
9571   return (__mmask8) __builtin_ia32_pcmpgtq512_mask ((__v8di) __A,
9572 						    (__v8di) __B,
9573 						    (__mmask8) -1);
9574 }
9575 
9576 extern __inline __mmask16
9577 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmpge_epi32_mask(__m512i __X,__m512i __Y)9578 _mm512_cmpge_epi32_mask (__m512i __X, __m512i __Y)
9579 {
9580   return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
9581 						    (__v16si) __Y, 5,
9582 						    (__mmask16) -1);
9583 }
9584 
9585 extern __inline __mmask16
9586 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmpge_epi32_mask(__mmask16 __M,__m512i __X,__m512i __Y)9587 _mm512_mask_cmpge_epi32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
9588 {
9589   return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
9590 						    (__v16si) __Y, 5,
9591 						    (__mmask16) __M);
9592 }
9593 
9594 extern __inline __mmask16
9595 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmpge_epu32_mask(__mmask16 __M,__m512i __X,__m512i __Y)9596 _mm512_mask_cmpge_epu32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
9597 {
9598   return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
9599 						    (__v16si) __Y, 5,
9600 						    (__mmask16) __M);
9601 }
9602 
9603 extern __inline __mmask16
9604 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmpge_epu32_mask(__m512i __X,__m512i __Y)9605 _mm512_cmpge_epu32_mask (__m512i __X, __m512i __Y)
9606 {
9607   return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
9608 						    (__v16si) __Y, 5,
9609 						    (__mmask16) -1);
9610 }
9611 
9612 extern __inline __mmask8
9613 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmpge_epi64_mask(__mmask8 __M,__m512i __X,__m512i __Y)9614 _mm512_mask_cmpge_epi64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
9615 {
9616   return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
9617 						    (__v8di) __Y, 5,
9618 						    (__mmask8) __M);
9619 }
9620 
9621 extern __inline __mmask8
9622 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmpge_epi64_mask(__m512i __X,__m512i __Y)9623 _mm512_cmpge_epi64_mask (__m512i __X, __m512i __Y)
9624 {
9625   return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
9626 						    (__v8di) __Y, 5,
9627 						    (__mmask8) -1);
9628 }
9629 
9630 extern __inline __mmask8
9631 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmpge_epu64_mask(__mmask8 __M,__m512i __X,__m512i __Y)9632 _mm512_mask_cmpge_epu64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
9633 {
9634   return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
9635 						    (__v8di) __Y, 5,
9636 						    (__mmask8) __M);
9637 }
9638 
9639 extern __inline __mmask8
9640 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmpge_epu64_mask(__m512i __X,__m512i __Y)9641 _mm512_cmpge_epu64_mask (__m512i __X, __m512i __Y)
9642 {
9643   return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
9644 						    (__v8di) __Y, 5,
9645 						    (__mmask8) -1);
9646 }
9647 
9648 extern __inline __mmask16
9649 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmple_epi32_mask(__mmask16 __M,__m512i __X,__m512i __Y)9650 _mm512_mask_cmple_epi32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
9651 {
9652   return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
9653 						    (__v16si) __Y, 2,
9654 						    (__mmask16) __M);
9655 }
9656 
9657 extern __inline __mmask16
9658 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmple_epi32_mask(__m512i __X,__m512i __Y)9659 _mm512_cmple_epi32_mask (__m512i __X, __m512i __Y)
9660 {
9661   return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
9662 						    (__v16si) __Y, 2,
9663 						    (__mmask16) -1);
9664 }
9665 
9666 extern __inline __mmask16
9667 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmple_epu32_mask(__mmask16 __M,__m512i __X,__m512i __Y)9668 _mm512_mask_cmple_epu32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
9669 {
9670   return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
9671 						    (__v16si) __Y, 2,
9672 						    (__mmask16) __M);
9673 }
9674 
9675 extern __inline __mmask16
9676 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmple_epu32_mask(__m512i __X,__m512i __Y)9677 _mm512_cmple_epu32_mask (__m512i __X, __m512i __Y)
9678 {
9679   return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
9680 						    (__v16si) __Y, 2,
9681 						    (__mmask16) -1);
9682 }
9683 
9684 extern __inline __mmask8
9685 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmple_epi64_mask(__mmask8 __M,__m512i __X,__m512i __Y)9686 _mm512_mask_cmple_epi64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
9687 {
9688   return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
9689 						    (__v8di) __Y, 2,
9690 						    (__mmask8) __M);
9691 }
9692 
9693 extern __inline __mmask8
9694 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmple_epi64_mask(__m512i __X,__m512i __Y)9695 _mm512_cmple_epi64_mask (__m512i __X, __m512i __Y)
9696 {
9697   return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
9698 						    (__v8di) __Y, 2,
9699 						    (__mmask8) -1);
9700 }
9701 
9702 extern __inline __mmask8
9703 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmple_epu64_mask(__mmask8 __M,__m512i __X,__m512i __Y)9704 _mm512_mask_cmple_epu64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
9705 {
9706   return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
9707 						    (__v8di) __Y, 2,
9708 						    (__mmask8) __M);
9709 }
9710 
9711 extern __inline __mmask8
9712 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmple_epu64_mask(__m512i __X,__m512i __Y)9713 _mm512_cmple_epu64_mask (__m512i __X, __m512i __Y)
9714 {
9715   return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
9716 						    (__v8di) __Y, 2,
9717 						    (__mmask8) -1);
9718 }
9719 
9720 extern __inline __mmask16
9721 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmplt_epi32_mask(__mmask16 __M,__m512i __X,__m512i __Y)9722 _mm512_mask_cmplt_epi32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
9723 {
9724   return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
9725 						    (__v16si) __Y, 1,
9726 						    (__mmask16) __M);
9727 }
9728 
9729 extern __inline __mmask16
9730 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmplt_epi32_mask(__m512i __X,__m512i __Y)9731 _mm512_cmplt_epi32_mask (__m512i __X, __m512i __Y)
9732 {
9733   return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
9734 						    (__v16si) __Y, 1,
9735 						    (__mmask16) -1);
9736 }
9737 
9738 extern __inline __mmask16
9739 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmplt_epu32_mask(__mmask16 __M,__m512i __X,__m512i __Y)9740 _mm512_mask_cmplt_epu32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
9741 {
9742   return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
9743 						    (__v16si) __Y, 1,
9744 						    (__mmask16) __M);
9745 }
9746 
9747 extern __inline __mmask16
9748 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmplt_epu32_mask(__m512i __X,__m512i __Y)9749 _mm512_cmplt_epu32_mask (__m512i __X, __m512i __Y)
9750 {
9751   return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
9752 						    (__v16si) __Y, 1,
9753 						    (__mmask16) -1);
9754 }
9755 
9756 extern __inline __mmask8
9757 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmplt_epi64_mask(__mmask8 __M,__m512i __X,__m512i __Y)9758 _mm512_mask_cmplt_epi64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
9759 {
9760   return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
9761 						    (__v8di) __Y, 1,
9762 						    (__mmask8) __M);
9763 }
9764 
9765 extern __inline __mmask8
9766 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmplt_epi64_mask(__m512i __X,__m512i __Y)9767 _mm512_cmplt_epi64_mask (__m512i __X, __m512i __Y)
9768 {
9769   return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
9770 						    (__v8di) __Y, 1,
9771 						    (__mmask8) -1);
9772 }
9773 
9774 extern __inline __mmask8
9775 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmplt_epu64_mask(__mmask8 __M,__m512i __X,__m512i __Y)9776 _mm512_mask_cmplt_epu64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
9777 {
9778   return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
9779 						    (__v8di) __Y, 1,
9780 						    (__mmask8) __M);
9781 }
9782 
9783 extern __inline __mmask8
9784 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmplt_epu64_mask(__m512i __X,__m512i __Y)9785 _mm512_cmplt_epu64_mask (__m512i __X, __m512i __Y)
9786 {
9787   return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
9788 						    (__v8di) __Y, 1,
9789 						    (__mmask8) -1);
9790 }
9791 
9792 extern __inline __mmask16
9793 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmpneq_epi32_mask(__m512i __X,__m512i __Y)9794 _mm512_cmpneq_epi32_mask (__m512i __X, __m512i __Y)
9795 {
9796   return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
9797 						    (__v16si) __Y, 4,
9798 						    (__mmask16) -1);
9799 }
9800 
9801 extern __inline __mmask16
9802 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmpneq_epi32_mask(__mmask16 __M,__m512i __X,__m512i __Y)9803 _mm512_mask_cmpneq_epi32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
9804 {
9805   return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
9806 						    (__v16si) __Y, 4,
9807 						    (__mmask16) __M);
9808 }
9809 
9810 extern __inline __mmask16
9811 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmpneq_epu32_mask(__mmask16 __M,__m512i __X,__m512i __Y)9812 _mm512_mask_cmpneq_epu32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
9813 {
9814   return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
9815 						    (__v16si) __Y, 4,
9816 						    (__mmask16) __M);
9817 }
9818 
9819 extern __inline __mmask16
9820 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmpneq_epu32_mask(__m512i __X,__m512i __Y)9821 _mm512_cmpneq_epu32_mask (__m512i __X, __m512i __Y)
9822 {
9823   return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
9824 						    (__v16si) __Y, 4,
9825 						    (__mmask16) -1);
9826 }
9827 
9828 extern __inline __mmask8
9829 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmpneq_epi64_mask(__mmask8 __M,__m512i __X,__m512i __Y)9830 _mm512_mask_cmpneq_epi64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
9831 {
9832   return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
9833 						    (__v8di) __Y, 4,
9834 						    (__mmask8) __M);
9835 }
9836 
9837 extern __inline __mmask8
9838 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmpneq_epi64_mask(__m512i __X,__m512i __Y)9839 _mm512_cmpneq_epi64_mask (__m512i __X, __m512i __Y)
9840 {
9841   return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
9842 						    (__v8di) __Y, 4,
9843 						    (__mmask8) -1);
9844 }
9845 
9846 extern __inline __mmask8
9847 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmpneq_epu64_mask(__mmask8 __M,__m512i __X,__m512i __Y)9848 _mm512_mask_cmpneq_epu64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
9849 {
9850   return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
9851 						    (__v8di) __Y, 4,
9852 						    (__mmask8) __M);
9853 }
9854 
9855 extern __inline __mmask8
9856 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmpneq_epu64_mask(__m512i __X,__m512i __Y)9857 _mm512_cmpneq_epu64_mask (__m512i __X, __m512i __Y)
9858 {
9859   return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
9860 						    (__v8di) __Y, 4,
9861 						    (__mmask8) -1);
9862 }
9863 
9864 #define _MM_CMPINT_EQ	    0x0
9865 #define _MM_CMPINT_LT	    0x1
9866 #define _MM_CMPINT_LE	    0x2
9867 #define _MM_CMPINT_UNUSED   0x3
9868 #define _MM_CMPINT_NE	    0x4
9869 #define _MM_CMPINT_NLT	    0x5
9870 #define _MM_CMPINT_GE	    0x5
9871 #define _MM_CMPINT_NLE	    0x6
9872 #define _MM_CMPINT_GT	    0x6
9873 
9874 #ifdef __OPTIMIZE__
9875 extern __inline __mmask16
9876 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_kshiftli_mask16(__mmask16 __A,unsigned int __B)9877 _kshiftli_mask16 (__mmask16 __A, unsigned int __B)
9878 {
9879   return (__mmask16) __builtin_ia32_kshiftlihi ((__mmask16) __A,
9880 						(__mmask8) __B);
9881 }
9882 
9883 extern __inline __mmask16
9884 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_kshiftri_mask16(__mmask16 __A,unsigned int __B)9885 _kshiftri_mask16 (__mmask16 __A, unsigned int __B)
9886 {
9887   return (__mmask16) __builtin_ia32_kshiftrihi ((__mmask16) __A,
9888 						(__mmask8) __B);
9889 }
9890 
9891 extern __inline __mmask8
9892 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmp_epi64_mask(__m512i __X,__m512i __Y,const int __P)9893 _mm512_cmp_epi64_mask (__m512i __X, __m512i __Y, const int __P)
9894 {
9895   return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
9896 						 (__v8di) __Y, __P,
9897 						 (__mmask8) -1);
9898 }
9899 
9900 extern __inline __mmask16
9901 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmp_epi32_mask(__m512i __X,__m512i __Y,const int __P)9902 _mm512_cmp_epi32_mask (__m512i __X, __m512i __Y, const int __P)
9903 {
9904   return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
9905 						  (__v16si) __Y, __P,
9906 						  (__mmask16) -1);
9907 }
9908 
9909 extern __inline __mmask8
9910 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmp_epu64_mask(__m512i __X,__m512i __Y,const int __P)9911 _mm512_cmp_epu64_mask (__m512i __X, __m512i __Y, const int __P)
9912 {
9913   return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
9914 						  (__v8di) __Y, __P,
9915 						  (__mmask8) -1);
9916 }
9917 
9918 extern __inline __mmask16
9919 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmp_epu32_mask(__m512i __X,__m512i __Y,const int __P)9920 _mm512_cmp_epu32_mask (__m512i __X, __m512i __Y, const int __P)
9921 {
9922   return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
9923 						   (__v16si) __Y, __P,
9924 						   (__mmask16) -1);
9925 }
9926 
9927 extern __inline __mmask8
9928 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmp_round_pd_mask(__m512d __X,__m512d __Y,const int __P,const int __R)9929 _mm512_cmp_round_pd_mask (__m512d __X, __m512d __Y, const int __P,
9930 			  const int __R)
9931 {
9932   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
9933 						  (__v8df) __Y, __P,
9934 						  (__mmask8) -1, __R);
9935 }
9936 
9937 extern __inline __mmask16
9938 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmp_round_ps_mask(__m512 __X,__m512 __Y,const int __P,const int __R)9939 _mm512_cmp_round_ps_mask (__m512 __X, __m512 __Y, const int __P, const int __R)
9940 {
9941   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
9942 						   (__v16sf) __Y, __P,
9943 						   (__mmask16) -1, __R);
9944 }
9945 
9946 extern __inline __mmask8
9947 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmp_epi64_mask(__mmask8 __U,__m512i __X,__m512i __Y,const int __P)9948 _mm512_mask_cmp_epi64_mask (__mmask8 __U, __m512i __X, __m512i __Y,
9949 			    const int __P)
9950 {
9951   return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
9952 						 (__v8di) __Y, __P,
9953 						 (__mmask8) __U);
9954 }
9955 
9956 extern __inline __mmask16
9957 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmp_epi32_mask(__mmask16 __U,__m512i __X,__m512i __Y,const int __P)9958 _mm512_mask_cmp_epi32_mask (__mmask16 __U, __m512i __X, __m512i __Y,
9959 			    const int __P)
9960 {
9961   return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
9962 						  (__v16si) __Y, __P,
9963 						  (__mmask16) __U);
9964 }
9965 
9966 extern __inline __mmask8
9967 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmp_epu64_mask(__mmask8 __U,__m512i __X,__m512i __Y,const int __P)9968 _mm512_mask_cmp_epu64_mask (__mmask8 __U, __m512i __X, __m512i __Y,
9969 			    const int __P)
9970 {
9971   return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
9972 						  (__v8di) __Y, __P,
9973 						  (__mmask8) __U);
9974 }
9975 
9976 extern __inline __mmask16
9977 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmp_epu32_mask(__mmask16 __U,__m512i __X,__m512i __Y,const int __P)9978 _mm512_mask_cmp_epu32_mask (__mmask16 __U, __m512i __X, __m512i __Y,
9979 			    const int __P)
9980 {
9981   return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
9982 						   (__v16si) __Y, __P,
9983 						   (__mmask16) __U);
9984 }
9985 
9986 extern __inline __mmask8
9987 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmp_round_pd_mask(__mmask8 __U,__m512d __X,__m512d __Y,const int __P,const int __R)9988 _mm512_mask_cmp_round_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y,
9989 			       const int __P, const int __R)
9990 {
9991   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
9992 						  (__v8df) __Y, __P,
9993 						  (__mmask8) __U, __R);
9994 }
9995 
9996 extern __inline __mmask16
9997 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmp_round_ps_mask(__mmask16 __U,__m512 __X,__m512 __Y,const int __P,const int __R)9998 _mm512_mask_cmp_round_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y,
9999 			       const int __P, const int __R)
10000 {
10001   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
10002 						   (__v16sf) __Y, __P,
10003 						   (__mmask16) __U, __R);
10004 }
10005 
10006 extern __inline __mmask8
10007 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cmp_round_sd_mask(__m128d __X,__m128d __Y,const int __P,const int __R)10008 _mm_cmp_round_sd_mask (__m128d __X, __m128d __Y, const int __P, const int __R)
10009 {
10010   return (__mmask8) __builtin_ia32_cmpsd_mask ((__v2df) __X,
10011 					       (__v2df) __Y, __P,
10012 					       (__mmask8) -1, __R);
10013 }
10014 
10015 extern __inline __mmask8
10016 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_cmp_round_sd_mask(__mmask8 __M,__m128d __X,__m128d __Y,const int __P,const int __R)10017 _mm_mask_cmp_round_sd_mask (__mmask8 __M, __m128d __X, __m128d __Y,
10018 			    const int __P, const int __R)
10019 {
10020   return (__mmask8) __builtin_ia32_cmpsd_mask ((__v2df) __X,
10021 					       (__v2df) __Y, __P,
10022 					       (__mmask8) __M, __R);
10023 }
10024 
10025 extern __inline __mmask8
10026 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cmp_round_ss_mask(__m128 __X,__m128 __Y,const int __P,const int __R)10027 _mm_cmp_round_ss_mask (__m128 __X, __m128 __Y, const int __P, const int __R)
10028 {
10029   return (__mmask8) __builtin_ia32_cmpss_mask ((__v4sf) __X,
10030 					       (__v4sf) __Y, __P,
10031 					       (__mmask8) -1, __R);
10032 }
10033 
10034 extern __inline __mmask8
10035 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_cmp_round_ss_mask(__mmask8 __M,__m128 __X,__m128 __Y,const int __P,const int __R)10036 _mm_mask_cmp_round_ss_mask (__mmask8 __M, __m128 __X, __m128 __Y,
10037 			    const int __P, const int __R)
10038 {
10039   return (__mmask8) __builtin_ia32_cmpss_mask ((__v4sf) __X,
10040 					       (__v4sf) __Y, __P,
10041 					       (__mmask8) __M, __R);
10042 }
10043 
10044 #else
10045 #define _kshiftli_mask16(X, Y)						\
10046   ((__mmask16) __builtin_ia32_kshiftlihi ((__mmask16)(X), (__mmask8)(Y)))
10047 
10048 #define _kshiftri_mask16(X, Y)						\
10049   ((__mmask16) __builtin_ia32_kshiftrihi ((__mmask16)(X), (__mmask8)(Y)))
10050 
10051 #define _mm512_cmp_epi64_mask(X, Y, P)					\
10052   ((__mmask8) __builtin_ia32_cmpq512_mask ((__v8di)(__m512i)(X),	\
10053 					   (__v8di)(__m512i)(Y), (int)(P),\
10054 					   (__mmask8)-1))
10055 
10056 #define _mm512_cmp_epi32_mask(X, Y, P)					\
10057   ((__mmask16) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X),	\
10058 					    (__v16si)(__m512i)(Y), (int)(P), \
10059 					    (__mmask16)-1))
10060 
10061 #define _mm512_cmp_epu64_mask(X, Y, P)					\
10062   ((__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di)(__m512i)(X),	\
10063 					    (__v8di)(__m512i)(Y), (int)(P),\
10064 					    (__mmask8)-1))
10065 
10066 #define _mm512_cmp_epu32_mask(X, Y, P)					\
10067   ((__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X),	\
10068 					     (__v16si)(__m512i)(Y), (int)(P), \
10069 					     (__mmask16)-1))
10070 
10071 #define _mm512_cmp_round_pd_mask(X, Y, P, R)				\
10072   ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X),	\
10073 					    (__v8df)(__m512d)(Y), (int)(P),\
10074 					    (__mmask8)-1, R))
10075 
10076 #define _mm512_cmp_round_ps_mask(X, Y, P, R)				\
10077   ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X),	\
10078 					     (__v16sf)(__m512)(Y), (int)(P),\
10079 					     (__mmask16)-1, R))
10080 
10081 #define _mm512_mask_cmp_epi64_mask(M, X, Y, P)				\
10082   ((__mmask8) __builtin_ia32_cmpq512_mask ((__v8di)(__m512i)(X),	\
10083 					   (__v8di)(__m512i)(Y), (int)(P),\
10084 					   (__mmask8)(M)))
10085 
10086 #define _mm512_mask_cmp_epi32_mask(M, X, Y, P)				\
10087   ((__mmask16) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X),	\
10088 					    (__v16si)(__m512i)(Y), (int)(P), \
10089 					    (__mmask16)(M)))
10090 
10091 #define _mm512_mask_cmp_epu64_mask(M, X, Y, P)				\
10092   ((__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di)(__m512i)(X),	\
10093 					    (__v8di)(__m512i)(Y), (int)(P),\
10094 					    (__mmask8)(M)))
10095 
10096 #define _mm512_mask_cmp_epu32_mask(M, X, Y, P)				\
10097   ((__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X),	\
10098 					     (__v16si)(__m512i)(Y), (int)(P), \
10099 					     (__mmask16)(M)))
10100 
10101 #define _mm512_mask_cmp_round_pd_mask(M, X, Y, P, R)			\
10102   ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X),	\
10103 					    (__v8df)(__m512d)(Y), (int)(P),\
10104 					    (__mmask8)(M), R))
10105 
10106 #define _mm512_mask_cmp_round_ps_mask(M, X, Y, P, R)			\
10107   ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X),	\
10108 					     (__v16sf)(__m512)(Y), (int)(P),\
10109 					     (__mmask16)(M), R))
10110 
10111 #define _mm_cmp_round_sd_mask(X, Y, P, R)				\
10112   ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X),		\
10113 					 (__v2df)(__m128d)(Y), (int)(P),\
10114 					 (__mmask8)-1, R))
10115 
10116 #define _mm_mask_cmp_round_sd_mask(M, X, Y, P, R)			\
10117   ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X),		\
10118 					 (__v2df)(__m128d)(Y), (int)(P),\
10119 					 (M), R))
10120 
10121 #define _mm_cmp_round_ss_mask(X, Y, P, R)				\
10122   ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X),		\
10123 					 (__v4sf)(__m128)(Y), (int)(P), \
10124 					 (__mmask8)-1, R))
10125 
10126 #define _mm_mask_cmp_round_ss_mask(M, X, Y, P, R)			\
10127   ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X),		\
10128 					 (__v4sf)(__m128)(Y), (int)(P), \
10129 					 (M), R))
10130 #endif
10131 
10132 #ifdef __OPTIMIZE__
10133 extern __inline __m512
10134 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_i32gather_ps(__m512i __index,void const * __addr,int __scale)10135 _mm512_i32gather_ps (__m512i __index, void const *__addr, int __scale)
10136 {
10137   __m512 __v1_old = _mm512_undefined_ps ();
10138   __mmask16 __mask = 0xFFFF;
10139 
10140   return (__m512) __builtin_ia32_gathersiv16sf ((__v16sf) __v1_old,
10141 						__addr,
10142 						(__v16si) __index,
10143 						__mask, __scale);
10144 }
10145 
10146 extern __inline __m512
10147 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_i32gather_ps(__m512 __v1_old,__mmask16 __mask,__m512i __index,void const * __addr,int __scale)10148 _mm512_mask_i32gather_ps (__m512 __v1_old, __mmask16 __mask,
10149 			  __m512i __index, void const *__addr, int __scale)
10150 {
10151   return (__m512) __builtin_ia32_gathersiv16sf ((__v16sf) __v1_old,
10152 						__addr,
10153 						(__v16si) __index,
10154 						__mask, __scale);
10155 }
10156 
10157 extern __inline __m512d
10158 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_i32gather_pd(__m256i __index,void const * __addr,int __scale)10159 _mm512_i32gather_pd (__m256i __index, void const *__addr, int __scale)
10160 {
10161   __m512d __v1_old = _mm512_undefined_pd ();
10162   __mmask8 __mask = 0xFF;
10163 
10164   return (__m512d) __builtin_ia32_gathersiv8df ((__v8df) __v1_old,
10165 						__addr,
10166 						(__v8si) __index, __mask,
10167 						__scale);
10168 }
10169 
10170 extern __inline __m512d
10171 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_i32gather_pd(__m512d __v1_old,__mmask8 __mask,__m256i __index,void const * __addr,int __scale)10172 _mm512_mask_i32gather_pd (__m512d __v1_old, __mmask8 __mask,
10173 			  __m256i __index, void const *__addr, int __scale)
10174 {
10175   return (__m512d) __builtin_ia32_gathersiv8df ((__v8df) __v1_old,
10176 						__addr,
10177 						(__v8si) __index,
10178 						__mask, __scale);
10179 }
10180 
10181 extern __inline __m256
10182 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_i64gather_ps(__m512i __index,void const * __addr,int __scale)10183 _mm512_i64gather_ps (__m512i __index, void const *__addr, int __scale)
10184 {
10185   __m256 __v1_old = _mm256_undefined_ps ();
10186   __mmask8 __mask = 0xFF;
10187 
10188   return (__m256) __builtin_ia32_gatherdiv16sf ((__v8sf) __v1_old,
10189 						__addr,
10190 						(__v8di) __index, __mask,
10191 						__scale);
10192 }
10193 
10194 extern __inline __m256
10195 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_i64gather_ps(__m256 __v1_old,__mmask8 __mask,__m512i __index,void const * __addr,int __scale)10196 _mm512_mask_i64gather_ps (__m256 __v1_old, __mmask8 __mask,
10197 			  __m512i __index, void const *__addr, int __scale)
10198 {
10199   return (__m256) __builtin_ia32_gatherdiv16sf ((__v8sf) __v1_old,
10200 						__addr,
10201 						(__v8di) __index,
10202 						__mask, __scale);
10203 }
10204 
10205 extern __inline __m512d
10206 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_i64gather_pd(__m512i __index,void const * __addr,int __scale)10207 _mm512_i64gather_pd (__m512i __index, void const *__addr, int __scale)
10208 {
10209   __m512d __v1_old = _mm512_undefined_pd ();
10210   __mmask8 __mask = 0xFF;
10211 
10212   return (__m512d) __builtin_ia32_gatherdiv8df ((__v8df) __v1_old,
10213 						__addr,
10214 						(__v8di) __index, __mask,
10215 						__scale);
10216 }
10217 
10218 extern __inline __m512d
10219 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_i64gather_pd(__m512d __v1_old,__mmask8 __mask,__m512i __index,void const * __addr,int __scale)10220 _mm512_mask_i64gather_pd (__m512d __v1_old, __mmask8 __mask,
10221 			  __m512i __index, void const *__addr, int __scale)
10222 {
10223   return (__m512d) __builtin_ia32_gatherdiv8df ((__v8df) __v1_old,
10224 						__addr,
10225 						(__v8di) __index,
10226 						__mask, __scale);
10227 }
10228 
10229 extern __inline __m512i
10230 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_i32gather_epi32(__m512i __index,void const * __addr,int __scale)10231 _mm512_i32gather_epi32 (__m512i __index, void const *__addr, int __scale)
10232 {
10233   __m512i __v1_old = _mm512_undefined_epi32 ();
10234   __mmask16 __mask = 0xFFFF;
10235 
10236   return (__m512i) __builtin_ia32_gathersiv16si ((__v16si) __v1_old,
10237 						 __addr,
10238 						 (__v16si) __index,
10239 						 __mask, __scale);
10240 }
10241 
10242 extern __inline __m512i
10243 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_i32gather_epi32(__m512i __v1_old,__mmask16 __mask,__m512i __index,void const * __addr,int __scale)10244 _mm512_mask_i32gather_epi32 (__m512i __v1_old, __mmask16 __mask,
10245 			     __m512i __index, void const *__addr, int __scale)
10246 {
10247   return (__m512i) __builtin_ia32_gathersiv16si ((__v16si) __v1_old,
10248 						 __addr,
10249 						 (__v16si) __index,
10250 						 __mask, __scale);
10251 }
10252 
10253 extern __inline __m512i
10254 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_i32gather_epi64(__m256i __index,void const * __addr,int __scale)10255 _mm512_i32gather_epi64 (__m256i __index, void const *__addr, int __scale)
10256 {
10257   __m512i __v1_old = _mm512_undefined_epi32 ();
10258   __mmask8 __mask = 0xFF;
10259 
10260   return (__m512i) __builtin_ia32_gathersiv8di ((__v8di) __v1_old,
10261 						__addr,
10262 						(__v8si) __index, __mask,
10263 						__scale);
10264 }
10265 
10266 extern __inline __m512i
10267 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_i32gather_epi64(__m512i __v1_old,__mmask8 __mask,__m256i __index,void const * __addr,int __scale)10268 _mm512_mask_i32gather_epi64 (__m512i __v1_old, __mmask8 __mask,
10269 			     __m256i __index, void const *__addr,
10270 			     int __scale)
10271 {
10272   return (__m512i) __builtin_ia32_gathersiv8di ((__v8di) __v1_old,
10273 						__addr,
10274 						(__v8si) __index,
10275 						__mask, __scale);
10276 }
10277 
10278 extern __inline __m256i
10279 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_i64gather_epi32(__m512i __index,void const * __addr,int __scale)10280 _mm512_i64gather_epi32 (__m512i __index, void const *__addr, int __scale)
10281 {
10282   __m256i __v1_old = _mm256_undefined_si256 ();
10283   __mmask8 __mask = 0xFF;
10284 
10285   return (__m256i) __builtin_ia32_gatherdiv16si ((__v8si) __v1_old,
10286 						 __addr,
10287 						 (__v8di) __index,
10288 						 __mask, __scale);
10289 }
10290 
10291 extern __inline __m256i
10292 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_i64gather_epi32(__m256i __v1_old,__mmask8 __mask,__m512i __index,void const * __addr,int __scale)10293 _mm512_mask_i64gather_epi32 (__m256i __v1_old, __mmask8 __mask,
10294 			     __m512i __index, void const *__addr, int __scale)
10295 {
10296   return (__m256i) __builtin_ia32_gatherdiv16si ((__v8si) __v1_old,
10297 						 __addr,
10298 						 (__v8di) __index,
10299 						 __mask, __scale);
10300 }
10301 
10302 extern __inline __m512i
10303 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_i64gather_epi64(__m512i __index,void const * __addr,int __scale)10304 _mm512_i64gather_epi64 (__m512i __index, void const *__addr, int __scale)
10305 {
10306   __m512i __v1_old = _mm512_undefined_epi32 ();
10307   __mmask8 __mask = 0xFF;
10308 
10309   return (__m512i) __builtin_ia32_gatherdiv8di ((__v8di) __v1_old,
10310 						__addr,
10311 						(__v8di) __index, __mask,
10312 						__scale);
10313 }
10314 
10315 extern __inline __m512i
10316 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_i64gather_epi64(__m512i __v1_old,__mmask8 __mask,__m512i __index,void const * __addr,int __scale)10317 _mm512_mask_i64gather_epi64 (__m512i __v1_old, __mmask8 __mask,
10318 			     __m512i __index, void const *__addr,
10319 			     int __scale)
10320 {
10321   return (__m512i) __builtin_ia32_gatherdiv8di ((__v8di) __v1_old,
10322 						__addr,
10323 						(__v8di) __index,
10324 						__mask, __scale);
10325 }
10326 
10327 extern __inline void
10328 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_i32scatter_ps(void * __addr,__m512i __index,__m512 __v1,int __scale)10329 _mm512_i32scatter_ps (void *__addr, __m512i __index, __m512 __v1, int __scale)
10330 {
10331   __builtin_ia32_scattersiv16sf (__addr, (__mmask16) 0xFFFF,
10332 				 (__v16si) __index, (__v16sf) __v1, __scale);
10333 }
10334 
10335 extern __inline void
10336 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_i32scatter_ps(void * __addr,__mmask16 __mask,__m512i __index,__m512 __v1,int __scale)10337 _mm512_mask_i32scatter_ps (void *__addr, __mmask16 __mask,
10338 			   __m512i __index, __m512 __v1, int __scale)
10339 {
10340   __builtin_ia32_scattersiv16sf (__addr, __mask, (__v16si) __index,
10341 				 (__v16sf) __v1, __scale);
10342 }
10343 
10344 extern __inline void
10345 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_i32scatter_pd(void * __addr,__m256i __index,__m512d __v1,int __scale)10346 _mm512_i32scatter_pd (void *__addr, __m256i __index, __m512d __v1,
10347 		      int __scale)
10348 {
10349   __builtin_ia32_scattersiv8df (__addr, (__mmask8) 0xFF,
10350 				(__v8si) __index, (__v8df) __v1, __scale);
10351 }
10352 
10353 extern __inline void
10354 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_i32scatter_pd(void * __addr,__mmask8 __mask,__m256i __index,__m512d __v1,int __scale)10355 _mm512_mask_i32scatter_pd (void *__addr, __mmask8 __mask,
10356 			   __m256i __index, __m512d __v1, int __scale)
10357 {
10358   __builtin_ia32_scattersiv8df (__addr, __mask, (__v8si) __index,
10359 				(__v8df) __v1, __scale);
10360 }
10361 
10362 extern __inline void
10363 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_i64scatter_ps(void * __addr,__m512i __index,__m256 __v1,int __scale)10364 _mm512_i64scatter_ps (void *__addr, __m512i __index, __m256 __v1, int __scale)
10365 {
10366   __builtin_ia32_scatterdiv16sf (__addr, (__mmask8) 0xFF,
10367 				 (__v8di) __index, (__v8sf) __v1, __scale);
10368 }
10369 
10370 extern __inline void
10371 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_i64scatter_ps(void * __addr,__mmask8 __mask,__m512i __index,__m256 __v1,int __scale)10372 _mm512_mask_i64scatter_ps (void *__addr, __mmask8 __mask,
10373 			   __m512i __index, __m256 __v1, int __scale)
10374 {
10375   __builtin_ia32_scatterdiv16sf (__addr, __mask, (__v8di) __index,
10376 				 (__v8sf) __v1, __scale);
10377 }
10378 
10379 extern __inline void
10380 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_i64scatter_pd(void * __addr,__m512i __index,__m512d __v1,int __scale)10381 _mm512_i64scatter_pd (void *__addr, __m512i __index, __m512d __v1,
10382 		      int __scale)
10383 {
10384   __builtin_ia32_scatterdiv8df (__addr, (__mmask8) 0xFF,
10385 				(__v8di) __index, (__v8df) __v1, __scale);
10386 }
10387 
10388 extern __inline void
10389 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_i64scatter_pd(void * __addr,__mmask8 __mask,__m512i __index,__m512d __v1,int __scale)10390 _mm512_mask_i64scatter_pd (void *__addr, __mmask8 __mask,
10391 			   __m512i __index, __m512d __v1, int __scale)
10392 {
10393   __builtin_ia32_scatterdiv8df (__addr, __mask, (__v8di) __index,
10394 				(__v8df) __v1, __scale);
10395 }
10396 
10397 extern __inline void
10398 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_i32scatter_epi32(void * __addr,__m512i __index,__m512i __v1,int __scale)10399 _mm512_i32scatter_epi32 (void *__addr, __m512i __index,
10400 			 __m512i __v1, int __scale)
10401 {
10402   __builtin_ia32_scattersiv16si (__addr, (__mmask16) 0xFFFF,
10403 				 (__v16si) __index, (__v16si) __v1, __scale);
10404 }
10405 
10406 extern __inline void
10407 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_i32scatter_epi32(void * __addr,__mmask16 __mask,__m512i __index,__m512i __v1,int __scale)10408 _mm512_mask_i32scatter_epi32 (void *__addr, __mmask16 __mask,
10409 			      __m512i __index, __m512i __v1, int __scale)
10410 {
10411   __builtin_ia32_scattersiv16si (__addr, __mask, (__v16si) __index,
10412 				 (__v16si) __v1, __scale);
10413 }
10414 
10415 extern __inline void
10416 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_i32scatter_epi64(void * __addr,__m256i __index,__m512i __v1,int __scale)10417 _mm512_i32scatter_epi64 (void *__addr, __m256i __index,
10418 			 __m512i __v1, int __scale)
10419 {
10420   __builtin_ia32_scattersiv8di (__addr, (__mmask8) 0xFF,
10421 				(__v8si) __index, (__v8di) __v1, __scale);
10422 }
10423 
10424 extern __inline void
10425 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_i32scatter_epi64(void * __addr,__mmask8 __mask,__m256i __index,__m512i __v1,int __scale)10426 _mm512_mask_i32scatter_epi64 (void *__addr, __mmask8 __mask,
10427 			      __m256i __index, __m512i __v1, int __scale)
10428 {
10429   __builtin_ia32_scattersiv8di (__addr, __mask, (__v8si) __index,
10430 				(__v8di) __v1, __scale);
10431 }
10432 
10433 extern __inline void
10434 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_i64scatter_epi32(void * __addr,__m512i __index,__m256i __v1,int __scale)10435 _mm512_i64scatter_epi32 (void *__addr, __m512i __index,
10436 			 __m256i __v1, int __scale)
10437 {
10438   __builtin_ia32_scatterdiv16si (__addr, (__mmask8) 0xFF,
10439 				 (__v8di) __index, (__v8si) __v1, __scale);
10440 }
10441 
10442 extern __inline void
10443 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_i64scatter_epi32(void * __addr,__mmask8 __mask,__m512i __index,__m256i __v1,int __scale)10444 _mm512_mask_i64scatter_epi32 (void *__addr, __mmask8 __mask,
10445 			      __m512i __index, __m256i __v1, int __scale)
10446 {
10447   __builtin_ia32_scatterdiv16si (__addr, __mask, (__v8di) __index,
10448 				 (__v8si) __v1, __scale);
10449 }
10450 
10451 extern __inline void
10452 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_i64scatter_epi64(void * __addr,__m512i __index,__m512i __v1,int __scale)10453 _mm512_i64scatter_epi64 (void *__addr, __m512i __index,
10454 			 __m512i __v1, int __scale)
10455 {
10456   __builtin_ia32_scatterdiv8di (__addr, (__mmask8) 0xFF,
10457 				(__v8di) __index, (__v8di) __v1, __scale);
10458 }
10459 
10460 extern __inline void
10461 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_i64scatter_epi64(void * __addr,__mmask8 __mask,__m512i __index,__m512i __v1,int __scale)10462 _mm512_mask_i64scatter_epi64 (void *__addr, __mmask8 __mask,
10463 			      __m512i __index, __m512i __v1, int __scale)
10464 {
10465   __builtin_ia32_scatterdiv8di (__addr, __mask, (__v8di) __index,
10466 				(__v8di) __v1, __scale);
10467 }
10468 #else
10469 #define _mm512_i32gather_ps(INDEX, ADDR, SCALE)				\
10470   (__m512) __builtin_ia32_gathersiv16sf ((__v16sf)_mm512_undefined_ps(),\
10471 					 (void const *) (ADDR),		\
10472 					 (__v16si)(__m512i) (INDEX),	\
10473 					 (__mmask16)0xFFFF,		\
10474 					 (int) (SCALE))
10475 
10476 #define _mm512_mask_i32gather_ps(V1OLD, MASK, INDEX, ADDR, SCALE)	\
10477   (__m512) __builtin_ia32_gathersiv16sf ((__v16sf)(__m512) (V1OLD),	\
10478 					 (void const *) (ADDR),		\
10479 					 (__v16si)(__m512i) (INDEX),	\
10480 					 (__mmask16) (MASK),		\
10481 					 (int) (SCALE))
10482 
10483 #define _mm512_i32gather_pd(INDEX, ADDR, SCALE)				\
10484   (__m512d) __builtin_ia32_gathersiv8df ((__v8df)_mm512_undefined_pd(),	\
10485 					 (void const *) (ADDR),		\
10486 					 (__v8si)(__m256i) (INDEX),	\
10487 					 (__mmask8)0xFF, (int) (SCALE))
10488 
10489 #define _mm512_mask_i32gather_pd(V1OLD, MASK, INDEX, ADDR, SCALE)	\
10490   (__m512d) __builtin_ia32_gathersiv8df ((__v8df)(__m512d) (V1OLD),	\
10491 					 (void const *) (ADDR),		\
10492 					 (__v8si)(__m256i) (INDEX),	\
10493 					 (__mmask8) (MASK),		\
10494 					 (int) (SCALE))
10495 
10496 #define _mm512_i64gather_ps(INDEX, ADDR, SCALE)				\
10497   (__m256) __builtin_ia32_gatherdiv16sf ((__v8sf)_mm256_undefined_ps(),	\
10498 					 (void const *) (ADDR),		\
10499 					 (__v8di)(__m512i) (INDEX),	\
10500 					 (__mmask8)0xFF, (int) (SCALE))
10501 
10502 #define _mm512_mask_i64gather_ps(V1OLD, MASK, INDEX, ADDR, SCALE)	\
10503   (__m256) __builtin_ia32_gatherdiv16sf ((__v8sf)(__m256) (V1OLD),	\
10504 					 (void const *) (ADDR),		\
10505 					 (__v8di)(__m512i) (INDEX),	\
10506 					 (__mmask8) (MASK),		\
10507 					 (int) (SCALE))
10508 
10509 #define _mm512_i64gather_pd(INDEX, ADDR, SCALE)				\
10510   (__m512d) __builtin_ia32_gatherdiv8df ((__v8df)_mm512_undefined_pd(),	\
10511 					 (void const *) (ADDR),		\
10512 					 (__v8di)(__m512i) (INDEX),	\
10513 					 (__mmask8)0xFF, (int) (SCALE))
10514 
10515 #define _mm512_mask_i64gather_pd(V1OLD, MASK, INDEX, ADDR, SCALE)	\
10516   (__m512d) __builtin_ia32_gatherdiv8df ((__v8df)(__m512d) (V1OLD),	\
10517 					 (void const *) (ADDR),		\
10518 					 (__v8di)(__m512i) (INDEX),	\
10519 					 (__mmask8) (MASK),		\
10520 					 (int) (SCALE))
10521 
10522 #define _mm512_i32gather_epi32(INDEX, ADDR, SCALE)			\
10523   (__m512i) __builtin_ia32_gathersiv16si ((__v16si)_mm512_undefined_epi32 (),\
10524 					  (void const *) (ADDR),	\
10525 					  (__v16si)(__m512i) (INDEX),	\
10526 					  (__mmask16)0xFFFF,		\
10527 					  (int) (SCALE))
10528 
10529 #define _mm512_mask_i32gather_epi32(V1OLD, MASK, INDEX, ADDR, SCALE)	\
10530   (__m512i) __builtin_ia32_gathersiv16si ((__v16si)(__m512i) (V1OLD),	\
10531 					  (void const *) (ADDR),	\
10532 					  (__v16si)(__m512i) (INDEX),	\
10533 					  (__mmask16) (MASK),		\
10534 					  (int) (SCALE))
10535 
10536 #define _mm512_i32gather_epi64(INDEX, ADDR, SCALE)			\
10537   (__m512i) __builtin_ia32_gathersiv8di ((__v8di)_mm512_undefined_epi32 (),\
10538 					 (void const *) (ADDR),		\
10539 					 (__v8si)(__m256i) (INDEX),	\
10540 					 (__mmask8)0xFF, (int) (SCALE))
10541 
10542 #define _mm512_mask_i32gather_epi64(V1OLD, MASK, INDEX, ADDR, SCALE)	\
10543   (__m512i) __builtin_ia32_gathersiv8di ((__v8di)(__m512i) (V1OLD),	\
10544 					 (void const *) (ADDR),		\
10545 					 (__v8si)(__m256i) (INDEX),	\
10546 					 (__mmask8) (MASK),		\
10547 					 (int) (SCALE))
10548 
10549 #define _mm512_i64gather_epi32(INDEX, ADDR, SCALE)			   \
10550   (__m256i) __builtin_ia32_gatherdiv16si ((__v8si)_mm256_undefined_si256(),\
10551 					  (void const *) (ADDR),	   \
10552 					  (__v8di)(__m512i) (INDEX),	   \
10553 					  (__mmask8)0xFF, (int) (SCALE))
10554 
10555 #define _mm512_mask_i64gather_epi32(V1OLD, MASK, INDEX, ADDR, SCALE)	\
10556   (__m256i) __builtin_ia32_gatherdiv16si ((__v8si)(__m256i) (V1OLD),	\
10557 					  (void const *) (ADDR),	\
10558 					  (__v8di)(__m512i) (INDEX),	\
10559 					  (__mmask8) (MASK),		\
10560 					  (int) (SCALE))
10561 
10562 #define _mm512_i64gather_epi64(INDEX, ADDR, SCALE)			\
10563   (__m512i) __builtin_ia32_gatherdiv8di ((__v8di)_mm512_undefined_epi32 (),\
10564 					 (void const *) (ADDR),		\
10565 					 (__v8di)(__m512i) (INDEX),	\
10566 					 (__mmask8)0xFF, (int) (SCALE))
10567 
10568 #define _mm512_mask_i64gather_epi64(V1OLD, MASK, INDEX, ADDR, SCALE)	\
10569   (__m512i) __builtin_ia32_gatherdiv8di ((__v8di)(__m512i) (V1OLD),	\
10570 					 (void const *) (ADDR),		\
10571 					 (__v8di)(__m512i) (INDEX),	\
10572 					 (__mmask8) (MASK),		\
10573 					 (int) (SCALE))
10574 
10575 #define _mm512_i32scatter_ps(ADDR, INDEX, V1, SCALE)			\
10576   __builtin_ia32_scattersiv16sf ((void *) (ADDR), (__mmask16)0xFFFF,	\
10577 				 (__v16si)(__m512i) (INDEX),		\
10578 				 (__v16sf)(__m512) (V1), (int) (SCALE))
10579 
10580 #define _mm512_mask_i32scatter_ps(ADDR, MASK, INDEX, V1, SCALE)		\
10581   __builtin_ia32_scattersiv16sf ((void *) (ADDR), (__mmask16) (MASK),	\
10582 				 (__v16si)(__m512i) (INDEX),		\
10583 				 (__v16sf)(__m512) (V1), (int) (SCALE))
10584 
10585 #define _mm512_i32scatter_pd(ADDR, INDEX, V1, SCALE)			\
10586   __builtin_ia32_scattersiv8df ((void *) (ADDR), (__mmask8)0xFF,	\
10587 				(__v8si)(__m256i) (INDEX),		\
10588 				(__v8df)(__m512d) (V1), (int) (SCALE))
10589 
10590 #define _mm512_mask_i32scatter_pd(ADDR, MASK, INDEX, V1, SCALE)		\
10591   __builtin_ia32_scattersiv8df ((void *) (ADDR), (__mmask8) (MASK),	\
10592 				(__v8si)(__m256i) (INDEX),		\
10593 				(__v8df)(__m512d) (V1), (int) (SCALE))
10594 
10595 #define _mm512_i64scatter_ps(ADDR, INDEX, V1, SCALE)			\
10596   __builtin_ia32_scatterdiv16sf ((void *) (ADDR), (__mmask8)0xFF,	\
10597 				 (__v8di)(__m512i) (INDEX),		\
10598 				 (__v8sf)(__m256) (V1), (int) (SCALE))
10599 
10600 #define _mm512_mask_i64scatter_ps(ADDR, MASK, INDEX, V1, SCALE)		\
10601   __builtin_ia32_scatterdiv16sf ((void *) (ADDR), (__mmask16) (MASK),	\
10602 				 (__v8di)(__m512i) (INDEX),		\
10603 				 (__v8sf)(__m256) (V1), (int) (SCALE))
10604 
10605 #define _mm512_i64scatter_pd(ADDR, INDEX, V1, SCALE)			\
10606   __builtin_ia32_scatterdiv8df ((void *) (ADDR), (__mmask8)0xFF,	\
10607 				(__v8di)(__m512i) (INDEX),		\
10608 				(__v8df)(__m512d) (V1), (int) (SCALE))
10609 
10610 #define _mm512_mask_i64scatter_pd(ADDR, MASK, INDEX, V1, SCALE)		\
10611   __builtin_ia32_scatterdiv8df ((void *) (ADDR), (__mmask8) (MASK),	\
10612 				(__v8di)(__m512i) (INDEX),		\
10613 				(__v8df)(__m512d) (V1), (int) (SCALE))
10614 
10615 #define _mm512_i32scatter_epi32(ADDR, INDEX, V1, SCALE)			\
10616   __builtin_ia32_scattersiv16si ((void *) (ADDR), (__mmask16)0xFFFF,	\
10617 				 (__v16si)(__m512i) (INDEX),		\
10618 				 (__v16si)(__m512i) (V1), (int) (SCALE))
10619 
10620 #define _mm512_mask_i32scatter_epi32(ADDR, MASK, INDEX, V1, SCALE)	\
10621   __builtin_ia32_scattersiv16si ((void *) (ADDR), (__mmask16) (MASK),	\
10622 				 (__v16si)(__m512i) (INDEX),		\
10623 				 (__v16si)(__m512i) (V1), (int) (SCALE))
10624 
10625 #define _mm512_i32scatter_epi64(ADDR, INDEX, V1, SCALE)			\
10626   __builtin_ia32_scattersiv8di ((void *) (ADDR), (__mmask8)0xFF,	\
10627 				(__v8si)(__m256i) (INDEX),		\
10628 				(__v8di)(__m512i) (V1), (int) (SCALE))
10629 
10630 #define _mm512_mask_i32scatter_epi64(ADDR, MASK, INDEX, V1, SCALE)	\
10631   __builtin_ia32_scattersiv8di ((void *) (ADDR), (__mmask8) (MASK),	\
10632 				(__v8si)(__m256i) (INDEX),		\
10633 				(__v8di)(__m512i) (V1), (int) (SCALE))
10634 
10635 #define _mm512_i64scatter_epi32(ADDR, INDEX, V1, SCALE)			\
10636   __builtin_ia32_scatterdiv16si ((void *) (ADDR), (__mmask8)0xFF,	\
10637 				 (__v8di)(__m512i) (INDEX),		\
10638 				 (__v8si)(__m256i) (V1), (int) (SCALE))
10639 
10640 #define _mm512_mask_i64scatter_epi32(ADDR, MASK, INDEX, V1, SCALE)	\
10641   __builtin_ia32_scatterdiv16si ((void *) (ADDR), (__mmask8) (MASK),	\
10642 				 (__v8di)(__m512i) (INDEX),		\
10643 				 (__v8si)(__m256i) (V1), (int) (SCALE))
10644 
10645 #define _mm512_i64scatter_epi64(ADDR, INDEX, V1, SCALE)			\
10646   __builtin_ia32_scatterdiv8di ((void *) (ADDR), (__mmask8)0xFF,	\
10647 				(__v8di)(__m512i) (INDEX),		\
10648 				(__v8di)(__m512i) (V1), (int) (SCALE))
10649 
10650 #define _mm512_mask_i64scatter_epi64(ADDR, MASK, INDEX, V1, SCALE)	\
10651   __builtin_ia32_scatterdiv8di ((void *) (ADDR), (__mmask8) (MASK),	\
10652 				(__v8di)(__m512i) (INDEX),		\
10653 				(__v8di)(__m512i) (V1), (int) (SCALE))
10654 #endif
10655 
10656 extern __inline __m512d
10657 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_compress_pd(__m512d __W,__mmask8 __U,__m512d __A)10658 _mm512_mask_compress_pd (__m512d __W, __mmask8 __U, __m512d __A)
10659 {
10660   return (__m512d) __builtin_ia32_compressdf512_mask ((__v8df) __A,
10661 						      (__v8df) __W,
10662 						      (__mmask8) __U);
10663 }
10664 
10665 extern __inline __m512d
10666 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_compress_pd(__mmask8 __U,__m512d __A)10667 _mm512_maskz_compress_pd (__mmask8 __U, __m512d __A)
10668 {
10669   return (__m512d) __builtin_ia32_compressdf512_mask ((__v8df) __A,
10670 						      (__v8df)
10671 						      _mm512_setzero_pd (),
10672 						      (__mmask8) __U);
10673 }
10674 
10675 extern __inline void
10676 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_compressstoreu_pd(void * __P,__mmask8 __U,__m512d __A)10677 _mm512_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m512d __A)
10678 {
10679   __builtin_ia32_compressstoredf512_mask ((__v8df *) __P, (__v8df) __A,
10680 					  (__mmask8) __U);
10681 }
10682 
10683 extern __inline __m512
10684 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_compress_ps(__m512 __W,__mmask16 __U,__m512 __A)10685 _mm512_mask_compress_ps (__m512 __W, __mmask16 __U, __m512 __A)
10686 {
10687   return (__m512) __builtin_ia32_compresssf512_mask ((__v16sf) __A,
10688 						     (__v16sf) __W,
10689 						     (__mmask16) __U);
10690 }
10691 
10692 extern __inline __m512
10693 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_compress_ps(__mmask16 __U,__m512 __A)10694 _mm512_maskz_compress_ps (__mmask16 __U, __m512 __A)
10695 {
10696   return (__m512) __builtin_ia32_compresssf512_mask ((__v16sf) __A,
10697 						     (__v16sf)
10698 						     _mm512_setzero_ps (),
10699 						     (__mmask16) __U);
10700 }
10701 
10702 extern __inline void
10703 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_compressstoreu_ps(void * __P,__mmask16 __U,__m512 __A)10704 _mm512_mask_compressstoreu_ps (void *__P, __mmask16 __U, __m512 __A)
10705 {
10706   __builtin_ia32_compressstoresf512_mask ((__v16sf *) __P, (__v16sf) __A,
10707 					  (__mmask16) __U);
10708 }
10709 
10710 extern __inline __m512i
10711 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_compress_epi64(__m512i __W,__mmask8 __U,__m512i __A)10712 _mm512_mask_compress_epi64 (__m512i __W, __mmask8 __U, __m512i __A)
10713 {
10714   return (__m512i) __builtin_ia32_compressdi512_mask ((__v8di) __A,
10715 						      (__v8di) __W,
10716 						      (__mmask8) __U);
10717 }
10718 
10719 extern __inline __m512i
10720 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_compress_epi64(__mmask8 __U,__m512i __A)10721 _mm512_maskz_compress_epi64 (__mmask8 __U, __m512i __A)
10722 {
10723   return (__m512i) __builtin_ia32_compressdi512_mask ((__v8di) __A,
10724 						      (__v8di)
10725 						      _mm512_setzero_si512 (),
10726 						      (__mmask8) __U);
10727 }
10728 
10729 extern __inline void
10730 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_compressstoreu_epi64(void * __P,__mmask8 __U,__m512i __A)10731 _mm512_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m512i __A)
10732 {
10733   __builtin_ia32_compressstoredi512_mask ((__v8di *) __P, (__v8di) __A,
10734 					  (__mmask8) __U);
10735 }
10736 
10737 extern __inline __m512i
10738 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_compress_epi32(__m512i __W,__mmask16 __U,__m512i __A)10739 _mm512_mask_compress_epi32 (__m512i __W, __mmask16 __U, __m512i __A)
10740 {
10741   return (__m512i) __builtin_ia32_compresssi512_mask ((__v16si) __A,
10742 						      (__v16si) __W,
10743 						      (__mmask16) __U);
10744 }
10745 
10746 extern __inline __m512i
10747 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_compress_epi32(__mmask16 __U,__m512i __A)10748 _mm512_maskz_compress_epi32 (__mmask16 __U, __m512i __A)
10749 {
10750   return (__m512i) __builtin_ia32_compresssi512_mask ((__v16si) __A,
10751 						      (__v16si)
10752 						      _mm512_setzero_si512 (),
10753 						      (__mmask16) __U);
10754 }
10755 
10756 extern __inline void
10757 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_compressstoreu_epi32(void * __P,__mmask16 __U,__m512i __A)10758 _mm512_mask_compressstoreu_epi32 (void *__P, __mmask16 __U, __m512i __A)
10759 {
10760   __builtin_ia32_compressstoresi512_mask ((__v16si *) __P, (__v16si) __A,
10761 					  (__mmask16) __U);
10762 }
10763 
10764 extern __inline __m512d
10765 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_expand_pd(__m512d __W,__mmask8 __U,__m512d __A)10766 _mm512_mask_expand_pd (__m512d __W, __mmask8 __U, __m512d __A)
10767 {
10768   return (__m512d) __builtin_ia32_expanddf512_mask ((__v8df) __A,
10769 						    (__v8df) __W,
10770 						    (__mmask8) __U);
10771 }
10772 
10773 extern __inline __m512d
10774 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_expand_pd(__mmask8 __U,__m512d __A)10775 _mm512_maskz_expand_pd (__mmask8 __U, __m512d __A)
10776 {
10777   return (__m512d) __builtin_ia32_expanddf512_maskz ((__v8df) __A,
10778 						     (__v8df)
10779 						     _mm512_setzero_pd (),
10780 						     (__mmask8) __U);
10781 }
10782 
10783 extern __inline __m512d
10784 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_expandloadu_pd(__m512d __W,__mmask8 __U,void const * __P)10785 _mm512_mask_expandloadu_pd (__m512d __W, __mmask8 __U, void const *__P)
10786 {
10787   return (__m512d) __builtin_ia32_expandloaddf512_mask ((const __v8df *) __P,
10788 							(__v8df) __W,
10789 							(__mmask8) __U);
10790 }
10791 
10792 extern __inline __m512d
10793 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_expandloadu_pd(__mmask8 __U,void const * __P)10794 _mm512_maskz_expandloadu_pd (__mmask8 __U, void const *__P)
10795 {
10796   return (__m512d) __builtin_ia32_expandloaddf512_maskz ((const __v8df *) __P,
10797 							 (__v8df)
10798 							 _mm512_setzero_pd (),
10799 							 (__mmask8) __U);
10800 }
10801 
10802 extern __inline __m512
10803 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_expand_ps(__m512 __W,__mmask16 __U,__m512 __A)10804 _mm512_mask_expand_ps (__m512 __W, __mmask16 __U, __m512 __A)
10805 {
10806   return (__m512) __builtin_ia32_expandsf512_mask ((__v16sf) __A,
10807 						   (__v16sf) __W,
10808 						   (__mmask16) __U);
10809 }
10810 
10811 extern __inline __m512
10812 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_expand_ps(__mmask16 __U,__m512 __A)10813 _mm512_maskz_expand_ps (__mmask16 __U, __m512 __A)
10814 {
10815   return (__m512) __builtin_ia32_expandsf512_maskz ((__v16sf) __A,
10816 						    (__v16sf)
10817 						    _mm512_setzero_ps (),
10818 						    (__mmask16) __U);
10819 }
10820 
10821 extern __inline __m512
10822 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_expandloadu_ps(__m512 __W,__mmask16 __U,void const * __P)10823 _mm512_mask_expandloadu_ps (__m512 __W, __mmask16 __U, void const *__P)
10824 {
10825   return (__m512) __builtin_ia32_expandloadsf512_mask ((const __v16sf *) __P,
10826 						       (__v16sf) __W,
10827 						       (__mmask16) __U);
10828 }
10829 
10830 extern __inline __m512
10831 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_expandloadu_ps(__mmask16 __U,void const * __P)10832 _mm512_maskz_expandloadu_ps (__mmask16 __U, void const *__P)
10833 {
10834   return (__m512) __builtin_ia32_expandloadsf512_maskz ((const __v16sf *) __P,
10835 							(__v16sf)
10836 							_mm512_setzero_ps (),
10837 							(__mmask16) __U);
10838 }
10839 
10840 extern __inline __m512i
10841 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_expand_epi64(__m512i __W,__mmask8 __U,__m512i __A)10842 _mm512_mask_expand_epi64 (__m512i __W, __mmask8 __U, __m512i __A)
10843 {
10844   return (__m512i) __builtin_ia32_expanddi512_mask ((__v8di) __A,
10845 						    (__v8di) __W,
10846 						    (__mmask8) __U);
10847 }
10848 
10849 extern __inline __m512i
10850 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_expand_epi64(__mmask8 __U,__m512i __A)10851 _mm512_maskz_expand_epi64 (__mmask8 __U, __m512i __A)
10852 {
10853   return (__m512i) __builtin_ia32_expanddi512_maskz ((__v8di) __A,
10854 						     (__v8di)
10855 						     _mm512_setzero_si512 (),
10856 						     (__mmask8) __U);
10857 }
10858 
10859 extern __inline __m512i
10860 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_expandloadu_epi64(__m512i __W,__mmask8 __U,void const * __P)10861 _mm512_mask_expandloadu_epi64 (__m512i __W, __mmask8 __U, void const *__P)
10862 {
10863   return (__m512i) __builtin_ia32_expandloaddi512_mask ((const __v8di *) __P,
10864 							(__v8di) __W,
10865 							(__mmask8) __U);
10866 }
10867 
10868 extern __inline __m512i
10869 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_expandloadu_epi64(__mmask8 __U,void const * __P)10870 _mm512_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P)
10871 {
10872   return (__m512i)
10873 	 __builtin_ia32_expandloaddi512_maskz ((const __v8di *) __P,
10874 					       (__v8di)
10875 					       _mm512_setzero_si512 (),
10876 					       (__mmask8) __U);
10877 }
10878 
10879 extern __inline __m512i
10880 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_expand_epi32(__m512i __W,__mmask16 __U,__m512i __A)10881 _mm512_mask_expand_epi32 (__m512i __W, __mmask16 __U, __m512i __A)
10882 {
10883   return (__m512i) __builtin_ia32_expandsi512_mask ((__v16si) __A,
10884 						    (__v16si) __W,
10885 						    (__mmask16) __U);
10886 }
10887 
10888 extern __inline __m512i
10889 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_expand_epi32(__mmask16 __U,__m512i __A)10890 _mm512_maskz_expand_epi32 (__mmask16 __U, __m512i __A)
10891 {
10892   return (__m512i) __builtin_ia32_expandsi512_maskz ((__v16si) __A,
10893 						     (__v16si)
10894 						     _mm512_setzero_si512 (),
10895 						     (__mmask16) __U);
10896 }
10897 
10898 extern __inline __m512i
10899 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_expandloadu_epi32(__m512i __W,__mmask16 __U,void const * __P)10900 _mm512_mask_expandloadu_epi32 (__m512i __W, __mmask16 __U, void const *__P)
10901 {
10902   return (__m512i) __builtin_ia32_expandloadsi512_mask ((const __v16si *) __P,
10903 							(__v16si) __W,
10904 							(__mmask16) __U);
10905 }
10906 
10907 extern __inline __m512i
10908 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_expandloadu_epi32(__mmask16 __U,void const * __P)10909 _mm512_maskz_expandloadu_epi32 (__mmask16 __U, void const *__P)
10910 {
10911   return (__m512i) __builtin_ia32_expandloadsi512_maskz ((const __v16si *) __P,
10912 							 (__v16si)
10913 							 _mm512_setzero_si512
10914 							 (), (__mmask16) __U);
10915 }
10916 
10917 /* Mask arithmetic operations */
10918 #define _kand_mask16 _mm512_kand
10919 #define _kandn_mask16 _mm512_kandn
10920 #define _knot_mask16 _mm512_knot
10921 #define _kor_mask16 _mm512_kor
10922 #define _kxnor_mask16 _mm512_kxnor
10923 #define _kxor_mask16 _mm512_kxor
10924 
10925 extern __inline unsigned char
10926 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_kortest_mask16_u8(__mmask16 __A,__mmask16 __B,unsigned char * __CF)10927 _kortest_mask16_u8  (__mmask16 __A,  __mmask16 __B, unsigned char *__CF)
10928 {
10929   *__CF = (unsigned char) __builtin_ia32_kortestchi (__A, __B);
10930   return (unsigned char) __builtin_ia32_kortestzhi (__A, __B);
10931 }
10932 
10933 extern __inline unsigned char
10934 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_kortestz_mask16_u8(__mmask16 __A,__mmask16 __B)10935 _kortestz_mask16_u8 (__mmask16 __A, __mmask16 __B)
10936 {
10937   return (unsigned char) __builtin_ia32_kortestzhi ((__mmask16) __A,
10938 						    (__mmask16) __B);
10939 }
10940 
10941 extern __inline unsigned char
10942 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_kortestc_mask16_u8(__mmask16 __A,__mmask16 __B)10943 _kortestc_mask16_u8 (__mmask16 __A, __mmask16 __B)
10944 {
10945   return (unsigned char) __builtin_ia32_kortestchi ((__mmask16) __A,
10946 						    (__mmask16) __B);
10947 }
10948 
10949 extern __inline unsigned int
10950 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_cvtmask16_u32(__mmask16 __A)10951 _cvtmask16_u32 (__mmask16 __A)
10952 {
10953   return (unsigned int) __builtin_ia32_kmovw ((__mmask16 ) __A);
10954 }
10955 
10956 extern __inline __mmask16
10957 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_cvtu32_mask16(unsigned int __A)10958 _cvtu32_mask16 (unsigned int __A)
10959 {
10960   return (__mmask16) __builtin_ia32_kmovw ((__mmask16 ) __A);
10961 }
10962 
10963 extern __inline __mmask16
10964 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_load_mask16(__mmask16 * __A)10965 _load_mask16 (__mmask16 *__A)
10966 {
10967   return (__mmask16) __builtin_ia32_kmovw (*(__mmask16 *) __A);
10968 }
10969 
10970 extern __inline void
10971 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_store_mask16(__mmask16 * __A,__mmask16 __B)10972 _store_mask16 (__mmask16 *__A, __mmask16 __B)
10973 {
10974   *(__mmask16 *) __A = __builtin_ia32_kmovw (__B);
10975 }
10976 
10977 extern __inline __mmask16
10978 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_kand(__mmask16 __A,__mmask16 __B)10979 _mm512_kand (__mmask16 __A, __mmask16 __B)
10980 {
10981   return (__mmask16) __builtin_ia32_kandhi ((__mmask16) __A, (__mmask16) __B);
10982 }
10983 
10984 extern __inline __mmask16
10985 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_kandn(__mmask16 __A,__mmask16 __B)10986 _mm512_kandn (__mmask16 __A, __mmask16 __B)
10987 {
10988   return (__mmask16) __builtin_ia32_kandnhi ((__mmask16) __A,
10989 					     (__mmask16) __B);
10990 }
10991 
10992 extern __inline __mmask16
10993 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_kor(__mmask16 __A,__mmask16 __B)10994 _mm512_kor (__mmask16 __A, __mmask16 __B)
10995 {
10996   return (__mmask16) __builtin_ia32_korhi ((__mmask16) __A, (__mmask16) __B);
10997 }
10998 
10999 extern __inline int
11000 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_kortestz(__mmask16 __A,__mmask16 __B)11001 _mm512_kortestz (__mmask16 __A, __mmask16 __B)
11002 {
11003   return (__mmask16) __builtin_ia32_kortestzhi ((__mmask16) __A,
11004 						(__mmask16) __B);
11005 }
11006 
11007 extern __inline int
11008 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_kortestc(__mmask16 __A,__mmask16 __B)11009 _mm512_kortestc (__mmask16 __A, __mmask16 __B)
11010 {
11011   return (__mmask16) __builtin_ia32_kortestchi ((__mmask16) __A,
11012 						(__mmask16) __B);
11013 }
11014 
11015 extern __inline __mmask16
11016 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_kxnor(__mmask16 __A,__mmask16 __B)11017 _mm512_kxnor (__mmask16 __A, __mmask16 __B)
11018 {
11019   return (__mmask16) __builtin_ia32_kxnorhi ((__mmask16) __A, (__mmask16) __B);
11020 }
11021 
11022 extern __inline __mmask16
11023 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_kxor(__mmask16 __A,__mmask16 __B)11024 _mm512_kxor (__mmask16 __A, __mmask16 __B)
11025 {
11026   return (__mmask16) __builtin_ia32_kxorhi ((__mmask16) __A, (__mmask16) __B);
11027 }
11028 
11029 extern __inline __mmask16
11030 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_knot(__mmask16 __A)11031 _mm512_knot (__mmask16 __A)
11032 {
11033   return (__mmask16) __builtin_ia32_knothi ((__mmask16) __A);
11034 }
11035 
11036 extern __inline __mmask16
11037 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_kunpackb(__mmask16 __A,__mmask16 __B)11038 _mm512_kunpackb (__mmask16 __A, __mmask16 __B)
11039 {
11040   return (__mmask16) __builtin_ia32_kunpckhi ((__mmask16) __A, (__mmask16) __B);
11041 }
11042 
11043 extern __inline __mmask16
11044 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_kunpackb_mask16(__mmask8 __A,__mmask8 __B)11045 _kunpackb_mask16 (__mmask8 __A, __mmask8 __B)
11046 {
11047   return (__mmask16) __builtin_ia32_kunpckhi ((__mmask16) __A, (__mmask16) __B);
11048 }
11049 
11050 #ifdef __OPTIMIZE__
11051 extern __inline __m512i
11052 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_inserti32x4(__mmask16 __B,__m512i __C,__m128i __D,const int __imm)11053 _mm512_maskz_inserti32x4 (__mmask16 __B, __m512i __C, __m128i __D,
11054 			  const int __imm)
11055 {
11056   return (__m512i) __builtin_ia32_inserti32x4_mask ((__v16si) __C,
11057 						    (__v4si) __D,
11058 						    __imm,
11059 						    (__v16si)
11060 						    _mm512_setzero_si512 (),
11061 						    __B);
11062 }
11063 
11064 extern __inline __m512
11065 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_insertf32x4(__mmask16 __B,__m512 __C,__m128 __D,const int __imm)11066 _mm512_maskz_insertf32x4 (__mmask16 __B, __m512 __C, __m128 __D,
11067 			  const int __imm)
11068 {
11069   return (__m512) __builtin_ia32_insertf32x4_mask ((__v16sf) __C,
11070 						   (__v4sf) __D,
11071 						   __imm,
11072 						   (__v16sf)
11073 						   _mm512_setzero_ps (), __B);
11074 }
11075 
11076 extern __inline __m512i
11077 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_inserti32x4(__m512i __A,__mmask16 __B,__m512i __C,__m128i __D,const int __imm)11078 _mm512_mask_inserti32x4 (__m512i __A, __mmask16 __B, __m512i __C,
11079 			 __m128i __D, const int __imm)
11080 {
11081   return (__m512i) __builtin_ia32_inserti32x4_mask ((__v16si) __C,
11082 						    (__v4si) __D,
11083 						    __imm,
11084 						    (__v16si) __A,
11085 						    __B);
11086 }
11087 
11088 extern __inline __m512
11089 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_insertf32x4(__m512 __A,__mmask16 __B,__m512 __C,__m128 __D,const int __imm)11090 _mm512_mask_insertf32x4 (__m512 __A, __mmask16 __B, __m512 __C,
11091 			 __m128 __D, const int __imm)
11092 {
11093   return (__m512) __builtin_ia32_insertf32x4_mask ((__v16sf) __C,
11094 						   (__v4sf) __D,
11095 						   __imm,
11096 						   (__v16sf) __A, __B);
11097 }
11098 #else
11099 #define _mm512_maskz_insertf32x4(A, X, Y, C)                            \
11100   ((__m512) __builtin_ia32_insertf32x4_mask ((__v16sf)(__m512) (X),     \
11101     (__v4sf)(__m128) (Y), (int) (C), (__v16sf)_mm512_setzero_ps(),      \
11102     (__mmask16)(A)))
11103 
11104 #define _mm512_maskz_inserti32x4(A, X, Y, C)                            \
11105   ((__m512i) __builtin_ia32_inserti32x4_mask ((__v16si)(__m512i) (X),   \
11106     (__v4si)(__m128i) (Y), (int) (C), (__v16si)_mm512_setzero_si512 (),     \
11107     (__mmask16)(A)))
11108 
11109 #define _mm512_mask_insertf32x4(A, B, X, Y, C)                          \
11110   ((__m512) __builtin_ia32_insertf32x4_mask ((__v16sf)(__m512) (X),     \
11111     (__v4sf)(__m128) (Y), (int) (C), (__v16sf)(__m512) (A),             \
11112 					     (__mmask16)(B)))
11113 
11114 #define _mm512_mask_inserti32x4(A, B, X, Y, C)                          \
11115   ((__m512i) __builtin_ia32_inserti32x4_mask ((__v16si)(__m512i) (X),   \
11116     (__v4si)(__m128i) (Y), (int) (C), (__v16si)(__m512i) (A),           \
11117 					      (__mmask16)(B)))
11118 #endif
11119 
11120 extern __inline __m512i
11121 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_max_epi64(__m512i __A,__m512i __B)11122 _mm512_max_epi64 (__m512i __A, __m512i __B)
11123 {
11124   return (__m512i) __builtin_ia32_pmaxsq512_mask ((__v8di) __A,
11125 						  (__v8di) __B,
11126 						  (__v8di)
11127 						  _mm512_undefined_epi32 (),
11128 						  (__mmask8) -1);
11129 }
11130 
11131 extern __inline __m512i
11132 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_max_epi64(__mmask8 __M,__m512i __A,__m512i __B)11133 _mm512_maskz_max_epi64 (__mmask8 __M, __m512i __A, __m512i __B)
11134 {
11135   return (__m512i) __builtin_ia32_pmaxsq512_mask ((__v8di) __A,
11136 						  (__v8di) __B,
11137 						  (__v8di)
11138 						  _mm512_setzero_si512 (),
11139 						  __M);
11140 }
11141 
11142 extern __inline __m512i
11143 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_max_epi64(__m512i __W,__mmask8 __M,__m512i __A,__m512i __B)11144 _mm512_mask_max_epi64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
11145 {
11146   return (__m512i) __builtin_ia32_pmaxsq512_mask ((__v8di) __A,
11147 						  (__v8di) __B,
11148 						  (__v8di) __W, __M);
11149 }
11150 
11151 extern __inline __m512i
11152 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_min_epi64(__m512i __A,__m512i __B)11153 _mm512_min_epi64 (__m512i __A, __m512i __B)
11154 {
11155   return (__m512i) __builtin_ia32_pminsq512_mask ((__v8di) __A,
11156 						  (__v8di) __B,
11157 						  (__v8di)
11158 						  _mm512_undefined_epi32 (),
11159 						  (__mmask8) -1);
11160 }
11161 
11162 extern __inline __m512i
11163 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_min_epi64(__m512i __W,__mmask8 __M,__m512i __A,__m512i __B)11164 _mm512_mask_min_epi64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
11165 {
11166   return (__m512i) __builtin_ia32_pminsq512_mask ((__v8di) __A,
11167 						  (__v8di) __B,
11168 						  (__v8di) __W, __M);
11169 }
11170 
11171 extern __inline __m512i
11172 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_min_epi64(__mmask8 __M,__m512i __A,__m512i __B)11173 _mm512_maskz_min_epi64 (__mmask8 __M, __m512i __A, __m512i __B)
11174 {
11175   return (__m512i) __builtin_ia32_pminsq512_mask ((__v8di) __A,
11176 						  (__v8di) __B,
11177 						  (__v8di)
11178 						  _mm512_setzero_si512 (),
11179 						  __M);
11180 }
11181 
11182 extern __inline __m512i
11183 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_max_epu64(__m512i __A,__m512i __B)11184 _mm512_max_epu64 (__m512i __A, __m512i __B)
11185 {
11186   return (__m512i) __builtin_ia32_pmaxuq512_mask ((__v8di) __A,
11187 						  (__v8di) __B,
11188 						  (__v8di)
11189 						  _mm512_undefined_epi32 (),
11190 						  (__mmask8) -1);
11191 }
11192 
11193 extern __inline __m512i
11194 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_max_epu64(__mmask8 __M,__m512i __A,__m512i __B)11195 _mm512_maskz_max_epu64 (__mmask8 __M, __m512i __A, __m512i __B)
11196 {
11197   return (__m512i) __builtin_ia32_pmaxuq512_mask ((__v8di) __A,
11198 						  (__v8di) __B,
11199 						  (__v8di)
11200 						  _mm512_setzero_si512 (),
11201 						  __M);
11202 }
11203 
11204 extern __inline __m512i
11205 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_max_epu64(__m512i __W,__mmask8 __M,__m512i __A,__m512i __B)11206 _mm512_mask_max_epu64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
11207 {
11208   return (__m512i) __builtin_ia32_pmaxuq512_mask ((__v8di) __A,
11209 						  (__v8di) __B,
11210 						  (__v8di) __W, __M);
11211 }
11212 
11213 extern __inline __m512i
11214 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_min_epu64(__m512i __A,__m512i __B)11215 _mm512_min_epu64 (__m512i __A, __m512i __B)
11216 {
11217   return (__m512i) __builtin_ia32_pminuq512_mask ((__v8di) __A,
11218 						  (__v8di) __B,
11219 						  (__v8di)
11220 						  _mm512_undefined_epi32 (),
11221 						  (__mmask8) -1);
11222 }
11223 
11224 extern __inline __m512i
11225 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_min_epu64(__m512i __W,__mmask8 __M,__m512i __A,__m512i __B)11226 _mm512_mask_min_epu64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
11227 {
11228   return (__m512i) __builtin_ia32_pminuq512_mask ((__v8di) __A,
11229 						  (__v8di) __B,
11230 						  (__v8di) __W, __M);
11231 }
11232 
11233 extern __inline __m512i
11234 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_min_epu64(__mmask8 __M,__m512i __A,__m512i __B)11235 _mm512_maskz_min_epu64 (__mmask8 __M, __m512i __A, __m512i __B)
11236 {
11237   return (__m512i) __builtin_ia32_pminuq512_mask ((__v8di) __A,
11238 						  (__v8di) __B,
11239 						  (__v8di)
11240 						  _mm512_setzero_si512 (),
11241 						  __M);
11242 }
11243 
11244 extern __inline __m512i
11245 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_max_epi32(__m512i __A,__m512i __B)11246 _mm512_max_epi32 (__m512i __A, __m512i __B)
11247 {
11248   return (__m512i) __builtin_ia32_pmaxsd512_mask ((__v16si) __A,
11249 						  (__v16si) __B,
11250 						  (__v16si)
11251 						  _mm512_undefined_epi32 (),
11252 						  (__mmask16) -1);
11253 }
11254 
11255 extern __inline __m512i
11256 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_max_epi32(__mmask16 __M,__m512i __A,__m512i __B)11257 _mm512_maskz_max_epi32 (__mmask16 __M, __m512i __A, __m512i __B)
11258 {
11259   return (__m512i) __builtin_ia32_pmaxsd512_mask ((__v16si) __A,
11260 						  (__v16si) __B,
11261 						  (__v16si)
11262 						  _mm512_setzero_si512 (),
11263 						  __M);
11264 }
11265 
11266 extern __inline __m512i
11267 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_max_epi32(__m512i __W,__mmask16 __M,__m512i __A,__m512i __B)11268 _mm512_mask_max_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
11269 {
11270   return (__m512i) __builtin_ia32_pmaxsd512_mask ((__v16si) __A,
11271 						  (__v16si) __B,
11272 						  (__v16si) __W, __M);
11273 }
11274 
11275 extern __inline __m512i
11276 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_min_epi32(__m512i __A,__m512i __B)11277 _mm512_min_epi32 (__m512i __A, __m512i __B)
11278 {
11279   return (__m512i) __builtin_ia32_pminsd512_mask ((__v16si) __A,
11280 						  (__v16si) __B,
11281 						  (__v16si)
11282 						  _mm512_undefined_epi32 (),
11283 						  (__mmask16) -1);
11284 }
11285 
11286 extern __inline __m512i
11287 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_min_epi32(__mmask16 __M,__m512i __A,__m512i __B)11288 _mm512_maskz_min_epi32 (__mmask16 __M, __m512i __A, __m512i __B)
11289 {
11290   return (__m512i) __builtin_ia32_pminsd512_mask ((__v16si) __A,
11291 						  (__v16si) __B,
11292 						  (__v16si)
11293 						  _mm512_setzero_si512 (),
11294 						  __M);
11295 }
11296 
11297 extern __inline __m512i
11298 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_min_epi32(__m512i __W,__mmask16 __M,__m512i __A,__m512i __B)11299 _mm512_mask_min_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
11300 {
11301   return (__m512i) __builtin_ia32_pminsd512_mask ((__v16si) __A,
11302 						  (__v16si) __B,
11303 						  (__v16si) __W, __M);
11304 }
11305 
11306 extern __inline __m512i
11307 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_max_epu32(__m512i __A,__m512i __B)11308 _mm512_max_epu32 (__m512i __A, __m512i __B)
11309 {
11310   return (__m512i) __builtin_ia32_pmaxud512_mask ((__v16si) __A,
11311 						  (__v16si) __B,
11312 						  (__v16si)
11313 						  _mm512_undefined_epi32 (),
11314 						  (__mmask16) -1);
11315 }
11316 
11317 extern __inline __m512i
11318 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_max_epu32(__mmask16 __M,__m512i __A,__m512i __B)11319 _mm512_maskz_max_epu32 (__mmask16 __M, __m512i __A, __m512i __B)
11320 {
11321   return (__m512i) __builtin_ia32_pmaxud512_mask ((__v16si) __A,
11322 						  (__v16si) __B,
11323 						  (__v16si)
11324 						  _mm512_setzero_si512 (),
11325 						  __M);
11326 }
11327 
11328 extern __inline __m512i
11329 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_max_epu32(__m512i __W,__mmask16 __M,__m512i __A,__m512i __B)11330 _mm512_mask_max_epu32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
11331 {
11332   return (__m512i) __builtin_ia32_pmaxud512_mask ((__v16si) __A,
11333 						  (__v16si) __B,
11334 						  (__v16si) __W, __M);
11335 }
11336 
11337 extern __inline __m512i
11338 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_min_epu32(__m512i __A,__m512i __B)11339 _mm512_min_epu32 (__m512i __A, __m512i __B)
11340 {
11341   return (__m512i) __builtin_ia32_pminud512_mask ((__v16si) __A,
11342 						  (__v16si) __B,
11343 						  (__v16si)
11344 						  _mm512_undefined_epi32 (),
11345 						  (__mmask16) -1);
11346 }
11347 
11348 extern __inline __m512i
11349 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_min_epu32(__mmask16 __M,__m512i __A,__m512i __B)11350 _mm512_maskz_min_epu32 (__mmask16 __M, __m512i __A, __m512i __B)
11351 {
11352   return (__m512i) __builtin_ia32_pminud512_mask ((__v16si) __A,
11353 						  (__v16si) __B,
11354 						  (__v16si)
11355 						  _mm512_setzero_si512 (),
11356 						  __M);
11357 }
11358 
11359 extern __inline __m512i
11360 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_min_epu32(__m512i __W,__mmask16 __M,__m512i __A,__m512i __B)11361 _mm512_mask_min_epu32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
11362 {
11363   return (__m512i) __builtin_ia32_pminud512_mask ((__v16si) __A,
11364 						  (__v16si) __B,
11365 						  (__v16si) __W, __M);
11366 }
11367 
11368 extern __inline __m512
11369 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_unpacklo_ps(__m512 __A,__m512 __B)11370 _mm512_unpacklo_ps (__m512 __A, __m512 __B)
11371 {
11372   return (__m512) __builtin_ia32_unpcklps512_mask ((__v16sf) __A,
11373 						   (__v16sf) __B,
11374 						   (__v16sf)
11375 						   _mm512_undefined_ps (),
11376 						   (__mmask16) -1);
11377 }
11378 
11379 extern __inline __m512
11380 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_unpacklo_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)11381 _mm512_mask_unpacklo_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
11382 {
11383   return (__m512) __builtin_ia32_unpcklps512_mask ((__v16sf) __A,
11384 						   (__v16sf) __B,
11385 						   (__v16sf) __W,
11386 						   (__mmask16) __U);
11387 }
11388 
11389 extern __inline __m512
11390 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_unpacklo_ps(__mmask16 __U,__m512 __A,__m512 __B)11391 _mm512_maskz_unpacklo_ps (__mmask16 __U, __m512 __A, __m512 __B)
11392 {
11393   return (__m512) __builtin_ia32_unpcklps512_mask ((__v16sf) __A,
11394 						   (__v16sf) __B,
11395 						   (__v16sf)
11396 						   _mm512_setzero_ps (),
11397 						   (__mmask16) __U);
11398 }
11399 
11400 #ifdef __OPTIMIZE__
11401 extern __inline __m128d
11402 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_max_round_sd(__m128d __A,__m128d __B,const int __R)11403 _mm_max_round_sd (__m128d __A, __m128d __B, const int __R)
11404 {
11405   return (__m128d) __builtin_ia32_maxsd_round ((__v2df) __A,
11406 					       (__v2df) __B,
11407 					       __R);
11408 }
11409 
11410 extern __inline __m128d
11411 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_max_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B,const int __R)11412 _mm_mask_max_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
11413 			  __m128d __B, const int __R)
11414 {
11415   return (__m128d) __builtin_ia32_maxsd_mask_round ((__v2df) __A,
11416 						 (__v2df) __B,
11417 						 (__v2df) __W,
11418 						 (__mmask8) __U, __R);
11419 }
11420 
11421 extern __inline __m128d
11422 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_max_round_sd(__mmask8 __U,__m128d __A,__m128d __B,const int __R)11423 _mm_maskz_max_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
11424 			   const int __R)
11425 {
11426   return (__m128d) __builtin_ia32_maxsd_mask_round ((__v2df) __A,
11427 						 (__v2df) __B,
11428 						 (__v2df)
11429 						 _mm_setzero_pd (),
11430 						 (__mmask8) __U, __R);
11431 }
11432 
11433 extern __inline __m128
11434 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_max_round_ss(__m128 __A,__m128 __B,const int __R)11435 _mm_max_round_ss (__m128 __A, __m128 __B, const int __R)
11436 {
11437   return (__m128) __builtin_ia32_maxss_round ((__v4sf) __A,
11438 					      (__v4sf) __B,
11439 					      __R);
11440 }
11441 
11442 extern __inline __m128
11443 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_max_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B,const int __R)11444 _mm_mask_max_round_ss (__m128 __W, __mmask8 __U, __m128 __A,
11445 			  __m128 __B, const int __R)
11446 {
11447   return (__m128) __builtin_ia32_maxss_mask_round ((__v4sf) __A,
11448 						 (__v4sf) __B,
11449 						 (__v4sf) __W,
11450 						 (__mmask8) __U, __R);
11451 }
11452 
11453 extern __inline __m128
11454 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_max_round_ss(__mmask8 __U,__m128 __A,__m128 __B,const int __R)11455 _mm_maskz_max_round_ss (__mmask8 __U, __m128 __A, __m128 __B,
11456 			   const int __R)
11457 {
11458   return (__m128) __builtin_ia32_maxss_mask_round ((__v4sf) __A,
11459 						 (__v4sf) __B,
11460 						 (__v4sf)
11461 						 _mm_setzero_ps (),
11462 						 (__mmask8) __U, __R);
11463 }
11464 
11465 extern __inline __m128d
11466 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_min_round_sd(__m128d __A,__m128d __B,const int __R)11467 _mm_min_round_sd (__m128d __A, __m128d __B, const int __R)
11468 {
11469   return (__m128d) __builtin_ia32_minsd_round ((__v2df) __A,
11470 					       (__v2df) __B,
11471 					       __R);
11472 }
11473 
11474 extern __inline __m128d
11475 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_min_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B,const int __R)11476 _mm_mask_min_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
11477 			  __m128d __B, const int __R)
11478 {
11479   return (__m128d) __builtin_ia32_minsd_mask_round ((__v2df) __A,
11480 						 (__v2df) __B,
11481 						 (__v2df) __W,
11482 						 (__mmask8) __U, __R);
11483 }
11484 
11485 extern __inline __m128d
11486 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_min_round_sd(__mmask8 __U,__m128d __A,__m128d __B,const int __R)11487 _mm_maskz_min_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
11488 			   const int __R)
11489 {
11490   return (__m128d) __builtin_ia32_minsd_mask_round ((__v2df) __A,
11491 						 (__v2df) __B,
11492 						 (__v2df)
11493 						 _mm_setzero_pd (),
11494 						 (__mmask8) __U, __R);
11495 }
11496 
11497 extern __inline __m128
11498 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_min_round_ss(__m128 __A,__m128 __B,const int __R)11499 _mm_min_round_ss (__m128 __A, __m128 __B, const int __R)
11500 {
11501   return (__m128) __builtin_ia32_minss_round ((__v4sf) __A,
11502 					      (__v4sf) __B,
11503 					      __R);
11504 }
11505 
11506 extern __inline __m128
11507 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_min_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B,const int __R)11508 _mm_mask_min_round_ss (__m128 __W, __mmask8 __U, __m128 __A,
11509 			  __m128 __B, const int __R)
11510 {
11511   return (__m128) __builtin_ia32_minss_mask_round ((__v4sf) __A,
11512 						 (__v4sf) __B,
11513 						 (__v4sf) __W,
11514 						 (__mmask8) __U, __R);
11515 }
11516 
11517 extern __inline __m128
11518 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_min_round_ss(__mmask8 __U,__m128 __A,__m128 __B,const int __R)11519 _mm_maskz_min_round_ss (__mmask8 __U, __m128 __A, __m128 __B,
11520 			   const int __R)
11521 {
11522   return (__m128) __builtin_ia32_minss_mask_round ((__v4sf) __A,
11523 						 (__v4sf) __B,
11524 						 (__v4sf)
11525 						 _mm_setzero_ps (),
11526 						 (__mmask8) __U, __R);
11527 }
11528 
11529 #else
11530 #define _mm_max_round_sd(A, B, C)            \
11531     (__m128d)__builtin_ia32_maxsd_round(A, B, C)
11532 
11533 #define _mm_mask_max_round_sd(W, U, A, B, C) \
11534     (__m128d)__builtin_ia32_maxsd_mask_round(A, B, W, U, C)
11535 
11536 #define _mm_maskz_max_round_sd(U, A, B, C)   \
11537     (__m128d)__builtin_ia32_maxsd_mask_round(A, B, (__v2df)_mm_setzero_pd(), U, C)
11538 
11539 #define _mm_max_round_ss(A, B, C)            \
11540     (__m128)__builtin_ia32_maxss_round(A, B, C)
11541 
11542 #define _mm_mask_max_round_ss(W, U, A, B, C) \
11543     (__m128)__builtin_ia32_maxss_mask_round(A, B, W, U, C)
11544 
11545 #define _mm_maskz_max_round_ss(U, A, B, C)   \
11546     (__m128)__builtin_ia32_maxss_mask_round(A, B, (__v4sf)_mm_setzero_ps(), U, C)
11547 
11548 #define _mm_min_round_sd(A, B, C)            \
11549     (__m128d)__builtin_ia32_minsd_round(A, B, C)
11550 
11551 #define _mm_mask_min_round_sd(W, U, A, B, C) \
11552     (__m128d)__builtin_ia32_minsd_mask_round(A, B, W, U, C)
11553 
11554 #define _mm_maskz_min_round_sd(U, A, B, C)   \
11555     (__m128d)__builtin_ia32_minsd_mask_round(A, B, (__v2df)_mm_setzero_pd(), U, C)
11556 
11557 #define _mm_min_round_ss(A, B, C)            \
11558     (__m128)__builtin_ia32_minss_round(A, B, C)
11559 
11560 #define _mm_mask_min_round_ss(W, U, A, B, C) \
11561     (__m128)__builtin_ia32_minss_mask_round(A, B, W, U, C)
11562 
11563 #define _mm_maskz_min_round_ss(U, A, B, C)   \
11564     (__m128)__builtin_ia32_minss_mask_round(A, B, (__v4sf)_mm_setzero_ps(), U, C)
11565 
11566 #endif
11567 
11568 extern __inline __m512d
11569 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_blend_pd(__mmask8 __U,__m512d __A,__m512d __W)11570 _mm512_mask_blend_pd (__mmask8 __U, __m512d __A, __m512d __W)
11571 {
11572   return (__m512d) __builtin_ia32_blendmpd_512_mask ((__v8df) __A,
11573 						     (__v8df) __W,
11574 						     (__mmask8) __U);
11575 }
11576 
11577 extern __inline __m512
11578 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_blend_ps(__mmask16 __U,__m512 __A,__m512 __W)11579 _mm512_mask_blend_ps (__mmask16 __U, __m512 __A, __m512 __W)
11580 {
11581   return (__m512) __builtin_ia32_blendmps_512_mask ((__v16sf) __A,
11582 						    (__v16sf) __W,
11583 						    (__mmask16) __U);
11584 }
11585 
11586 extern __inline __m512i
11587 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_blend_epi64(__mmask8 __U,__m512i __A,__m512i __W)11588 _mm512_mask_blend_epi64 (__mmask8 __U, __m512i __A, __m512i __W)
11589 {
11590   return (__m512i) __builtin_ia32_blendmq_512_mask ((__v8di) __A,
11591 						    (__v8di) __W,
11592 						    (__mmask8) __U);
11593 }
11594 
11595 extern __inline __m512i
11596 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_blend_epi32(__mmask16 __U,__m512i __A,__m512i __W)11597 _mm512_mask_blend_epi32 (__mmask16 __U, __m512i __A, __m512i __W)
11598 {
11599   return (__m512i) __builtin_ia32_blendmd_512_mask ((__v16si) __A,
11600 						    (__v16si) __W,
11601 						    (__mmask16) __U);
11602 }
11603 
11604 #ifdef __OPTIMIZE__
11605 extern __inline __m128d
11606 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_fmadd_round_sd(__m128d __W,__m128d __A,__m128d __B,const int __R)11607 _mm_fmadd_round_sd (__m128d __W, __m128d __A, __m128d __B, const int __R)
11608 {
11609   return (__m128d) __builtin_ia32_vfmaddsd3_round ((__v2df) __W,
11610 						   (__v2df) __A,
11611 						   (__v2df) __B,
11612 						   __R);
11613 }
11614 
11615 extern __inline __m128
11616 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_fmadd_round_ss(__m128 __W,__m128 __A,__m128 __B,const int __R)11617 _mm_fmadd_round_ss (__m128 __W, __m128 __A, __m128 __B, const int __R)
11618 {
11619   return (__m128) __builtin_ia32_vfmaddss3_round ((__v4sf) __W,
11620 						  (__v4sf) __A,
11621 						  (__v4sf) __B,
11622 						  __R);
11623 }
11624 
11625 extern __inline __m128d
11626 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_fmsub_round_sd(__m128d __W,__m128d __A,__m128d __B,const int __R)11627 _mm_fmsub_round_sd (__m128d __W, __m128d __A, __m128d __B, const int __R)
11628 {
11629   return (__m128d) __builtin_ia32_vfmaddsd3_round ((__v2df) __W,
11630 						   (__v2df) __A,
11631 						   -(__v2df) __B,
11632 						   __R);
11633 }
11634 
11635 extern __inline __m128
11636 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_fmsub_round_ss(__m128 __W,__m128 __A,__m128 __B,const int __R)11637 _mm_fmsub_round_ss (__m128 __W, __m128 __A, __m128 __B, const int __R)
11638 {
11639   return (__m128) __builtin_ia32_vfmaddss3_round ((__v4sf) __W,
11640 						  (__v4sf) __A,
11641 						  -(__v4sf) __B,
11642 						  __R);
11643 }
11644 
11645 extern __inline __m128d
11646 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_fnmadd_round_sd(__m128d __W,__m128d __A,__m128d __B,const int __R)11647 _mm_fnmadd_round_sd (__m128d __W, __m128d __A, __m128d __B, const int __R)
11648 {
11649   return (__m128d) __builtin_ia32_vfmaddsd3_round ((__v2df) __W,
11650 						   -(__v2df) __A,
11651 						   (__v2df) __B,
11652 						   __R);
11653 }
11654 
11655 extern __inline __m128
11656 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_fnmadd_round_ss(__m128 __W,__m128 __A,__m128 __B,const int __R)11657 _mm_fnmadd_round_ss (__m128 __W, __m128 __A, __m128 __B, const int __R)
11658 {
11659   return (__m128) __builtin_ia32_vfmaddss3_round ((__v4sf) __W,
11660 						  -(__v4sf) __A,
11661 						  (__v4sf) __B,
11662 						  __R);
11663 }
11664 
11665 extern __inline __m128d
11666 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_fnmsub_round_sd(__m128d __W,__m128d __A,__m128d __B,const int __R)11667 _mm_fnmsub_round_sd (__m128d __W, __m128d __A, __m128d __B, const int __R)
11668 {
11669   return (__m128d) __builtin_ia32_vfmaddsd3_round ((__v2df) __W,
11670 						   -(__v2df) __A,
11671 						   -(__v2df) __B,
11672 						   __R);
11673 }
11674 
11675 extern __inline __m128
11676 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_fnmsub_round_ss(__m128 __W,__m128 __A,__m128 __B,const int __R)11677 _mm_fnmsub_round_ss (__m128 __W, __m128 __A, __m128 __B, const int __R)
11678 {
11679   return (__m128) __builtin_ia32_vfmaddss3_round ((__v4sf) __W,
11680 						  -(__v4sf) __A,
11681 						  -(__v4sf) __B,
11682 						  __R);
11683 }
11684 #else
11685 #define _mm_fmadd_round_sd(A, B, C, R)            \
11686     (__m128d)__builtin_ia32_vfmaddsd3_round(A, B, C, R)
11687 
11688 #define _mm_fmadd_round_ss(A, B, C, R)            \
11689     (__m128)__builtin_ia32_vfmaddss3_round(A, B, C, R)
11690 
11691 #define _mm_fmsub_round_sd(A, B, C, R)            \
11692     (__m128d)__builtin_ia32_vfmaddsd3_round(A, B, -(C), R)
11693 
11694 #define _mm_fmsub_round_ss(A, B, C, R)            \
11695     (__m128)__builtin_ia32_vfmaddss3_round(A, B, -(C), R)
11696 
11697 #define _mm_fnmadd_round_sd(A, B, C, R)            \
11698     (__m128d)__builtin_ia32_vfmaddsd3_round(A, -(B), C, R)
11699 
11700 #define _mm_fnmadd_round_ss(A, B, C, R)            \
11701    (__m128)__builtin_ia32_vfmaddss3_round(A, -(B), C, R)
11702 
11703 #define _mm_fnmsub_round_sd(A, B, C, R)            \
11704     (__m128d)__builtin_ia32_vfmaddsd3_round(A, -(B), -(C), R)
11705 
11706 #define _mm_fnmsub_round_ss(A, B, C, R)            \
11707     (__m128)__builtin_ia32_vfmaddss3_round(A, -(B), -(C), R)
11708 #endif
11709 
11710 extern __inline __m128d
11711 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_fmadd_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)11712 _mm_mask_fmadd_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
11713 {
11714   return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
11715 						  (__v2df) __A,
11716 						  (__v2df) __B,
11717 						  (__mmask8) __U,
11718 						  _MM_FROUND_CUR_DIRECTION);
11719 }
11720 
11721 extern __inline __m128
11722 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_fmadd_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)11723 _mm_mask_fmadd_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
11724 {
11725   return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
11726 						 (__v4sf) __A,
11727 						 (__v4sf) __B,
11728 						 (__mmask8) __U,
11729 						 _MM_FROUND_CUR_DIRECTION);
11730 }
11731 
11732 extern __inline __m128d
11733 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask3_fmadd_sd(__m128d __W,__m128d __A,__m128d __B,__mmask8 __U)11734 _mm_mask3_fmadd_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U)
11735 {
11736   return (__m128d) __builtin_ia32_vfmaddsd3_mask3 ((__v2df) __W,
11737 						   (__v2df) __A,
11738 						   (__v2df) __B,
11739 						   (__mmask8) __U,
11740 						   _MM_FROUND_CUR_DIRECTION);
11741 }
11742 
11743 extern __inline __m128
11744 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask3_fmadd_ss(__m128 __W,__m128 __A,__m128 __B,__mmask8 __U)11745 _mm_mask3_fmadd_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U)
11746 {
11747   return (__m128) __builtin_ia32_vfmaddss3_mask3 ((__v4sf) __W,
11748 						  (__v4sf) __A,
11749 						  (__v4sf) __B,
11750 						  (__mmask8) __U,
11751 						  _MM_FROUND_CUR_DIRECTION);
11752 }
11753 
11754 extern __inline __m128d
11755 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_fmadd_sd(__mmask8 __U,__m128d __W,__m128d __A,__m128d __B)11756 _mm_maskz_fmadd_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B)
11757 {
11758   return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
11759 						   (__v2df) __A,
11760 						   (__v2df) __B,
11761 						   (__mmask8) __U,
11762 						   _MM_FROUND_CUR_DIRECTION);
11763 }
11764 
11765 extern __inline __m128
11766 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_fmadd_ss(__mmask8 __U,__m128 __W,__m128 __A,__m128 __B)11767 _mm_maskz_fmadd_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B)
11768 {
11769   return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
11770 						  (__v4sf) __A,
11771 						  (__v4sf) __B,
11772 						  (__mmask8) __U,
11773 						  _MM_FROUND_CUR_DIRECTION);
11774 }
11775 
11776 extern __inline __m128d
11777 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_fmsub_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)11778 _mm_mask_fmsub_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
11779 {
11780   return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
11781 						  (__v2df) __A,
11782 						  -(__v2df) __B,
11783 						  (__mmask8) __U,
11784 						  _MM_FROUND_CUR_DIRECTION);
11785 }
11786 
11787 extern __inline __m128
11788 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_fmsub_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)11789 _mm_mask_fmsub_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
11790 {
11791   return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
11792 						 (__v4sf) __A,
11793 						 -(__v4sf) __B,
11794 						 (__mmask8) __U,
11795 						 _MM_FROUND_CUR_DIRECTION);
11796 }
11797 
11798 extern __inline __m128d
11799 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask3_fmsub_sd(__m128d __W,__m128d __A,__m128d __B,__mmask8 __U)11800 _mm_mask3_fmsub_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U)
11801 {
11802   return (__m128d) __builtin_ia32_vfmsubsd3_mask3 ((__v2df) __W,
11803 						   (__v2df) __A,
11804 						   (__v2df) __B,
11805 						   (__mmask8) __U,
11806 						   _MM_FROUND_CUR_DIRECTION);
11807 }
11808 
11809 extern __inline __m128
11810 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask3_fmsub_ss(__m128 __W,__m128 __A,__m128 __B,__mmask8 __U)11811 _mm_mask3_fmsub_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U)
11812 {
11813   return (__m128) __builtin_ia32_vfmsubss3_mask3 ((__v4sf) __W,
11814 						  (__v4sf) __A,
11815 						  (__v4sf) __B,
11816 						  (__mmask8) __U,
11817 						  _MM_FROUND_CUR_DIRECTION);
11818 }
11819 
11820 extern __inline __m128d
11821 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_fmsub_sd(__mmask8 __U,__m128d __W,__m128d __A,__m128d __B)11822 _mm_maskz_fmsub_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B)
11823 {
11824   return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
11825 						   (__v2df) __A,
11826 						   -(__v2df) __B,
11827 						   (__mmask8) __U,
11828 						   _MM_FROUND_CUR_DIRECTION);
11829 }
11830 
11831 extern __inline __m128
11832 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_fmsub_ss(__mmask8 __U,__m128 __W,__m128 __A,__m128 __B)11833 _mm_maskz_fmsub_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B)
11834 {
11835   return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
11836 						  (__v4sf) __A,
11837 						  -(__v4sf) __B,
11838 						  (__mmask8) __U,
11839 						  _MM_FROUND_CUR_DIRECTION);
11840 }
11841 
11842 extern __inline __m128d
11843 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_fnmadd_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)11844 _mm_mask_fnmadd_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
11845 {
11846   return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
11847 						  -(__v2df) __A,
11848 						  (__v2df) __B,
11849 						  (__mmask8) __U,
11850 						  _MM_FROUND_CUR_DIRECTION);
11851 }
11852 
11853 extern __inline __m128
11854 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_fnmadd_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)11855 _mm_mask_fnmadd_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
11856 {
11857   return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
11858 						 -(__v4sf) __A,
11859 						 (__v4sf) __B,
11860 						 (__mmask8) __U,
11861 						 _MM_FROUND_CUR_DIRECTION);
11862 }
11863 
11864 extern __inline __m128d
11865 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask3_fnmadd_sd(__m128d __W,__m128d __A,__m128d __B,__mmask8 __U)11866 _mm_mask3_fnmadd_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U)
11867 {
11868   return (__m128d) __builtin_ia32_vfmaddsd3_mask3 ((__v2df) __W,
11869 						   -(__v2df) __A,
11870 						   (__v2df) __B,
11871 						   (__mmask8) __U,
11872 						   _MM_FROUND_CUR_DIRECTION);
11873 }
11874 
11875 extern __inline __m128
11876 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask3_fnmadd_ss(__m128 __W,__m128 __A,__m128 __B,__mmask8 __U)11877 _mm_mask3_fnmadd_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U)
11878 {
11879   return (__m128) __builtin_ia32_vfmaddss3_mask3 ((__v4sf) __W,
11880 						  -(__v4sf) __A,
11881 						  (__v4sf) __B,
11882 						  (__mmask8) __U,
11883 						  _MM_FROUND_CUR_DIRECTION);
11884 }
11885 
11886 extern __inline __m128d
11887 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_fnmadd_sd(__mmask8 __U,__m128d __W,__m128d __A,__m128d __B)11888 _mm_maskz_fnmadd_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B)
11889 {
11890   return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
11891 						   -(__v2df) __A,
11892 						   (__v2df) __B,
11893 						   (__mmask8) __U,
11894 						   _MM_FROUND_CUR_DIRECTION);
11895 }
11896 
11897 extern __inline __m128
11898 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_fnmadd_ss(__mmask8 __U,__m128 __W,__m128 __A,__m128 __B)11899 _mm_maskz_fnmadd_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B)
11900 {
11901   return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
11902 						  -(__v4sf) __A,
11903 						  (__v4sf) __B,
11904 						  (__mmask8) __U,
11905 						  _MM_FROUND_CUR_DIRECTION);
11906 }
11907 
11908 extern __inline __m128d
11909 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_fnmsub_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)11910 _mm_mask_fnmsub_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
11911 {
11912   return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
11913 						  -(__v2df) __A,
11914 						  -(__v2df) __B,
11915 						  (__mmask8) __U,
11916 						  _MM_FROUND_CUR_DIRECTION);
11917 }
11918 
11919 extern __inline __m128
11920 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_fnmsub_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)11921 _mm_mask_fnmsub_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
11922 {
11923   return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
11924 						 -(__v4sf) __A,
11925 						 -(__v4sf) __B,
11926 						 (__mmask8) __U,
11927 						 _MM_FROUND_CUR_DIRECTION);
11928 }
11929 
11930 extern __inline __m128d
11931 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask3_fnmsub_sd(__m128d __W,__m128d __A,__m128d __B,__mmask8 __U)11932 _mm_mask3_fnmsub_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U)
11933 {
11934   return (__m128d) __builtin_ia32_vfmsubsd3_mask3 ((__v2df) __W,
11935 						   -(__v2df) __A,
11936 						   (__v2df) __B,
11937 						   (__mmask8) __U,
11938 						   _MM_FROUND_CUR_DIRECTION);
11939 }
11940 
11941 extern __inline __m128
11942 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask3_fnmsub_ss(__m128 __W,__m128 __A,__m128 __B,__mmask8 __U)11943 _mm_mask3_fnmsub_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U)
11944 {
11945   return (__m128) __builtin_ia32_vfmsubss3_mask3 ((__v4sf) __W,
11946 						  -(__v4sf) __A,
11947 						  (__v4sf) __B,
11948 						  (__mmask8) __U,
11949 						  _MM_FROUND_CUR_DIRECTION);
11950 }
11951 
11952 extern __inline __m128d
11953 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_fnmsub_sd(__mmask8 __U,__m128d __W,__m128d __A,__m128d __B)11954 _mm_maskz_fnmsub_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B)
11955 {
11956   return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
11957 						   -(__v2df) __A,
11958 						   -(__v2df) __B,
11959 						   (__mmask8) __U,
11960 						   _MM_FROUND_CUR_DIRECTION);
11961 }
11962 
11963 extern __inline __m128
11964 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_fnmsub_ss(__mmask8 __U,__m128 __W,__m128 __A,__m128 __B)11965 _mm_maskz_fnmsub_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B)
11966 {
11967   return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
11968 						  -(__v4sf) __A,
11969 						  -(__v4sf) __B,
11970 						  (__mmask8) __U,
11971 						  _MM_FROUND_CUR_DIRECTION);
11972 }
11973 
11974 #ifdef __OPTIMIZE__
11975 extern __inline __m128d
11976 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_fmadd_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B,const int __R)11977 _mm_mask_fmadd_round_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B,
11978 			 const int __R)
11979 {
11980   return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
11981 						  (__v2df) __A,
11982 						  (__v2df) __B,
11983 						  (__mmask8) __U, __R);
11984 }
11985 
11986 extern __inline __m128
11987 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_fmadd_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B,const int __R)11988 _mm_mask_fmadd_round_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B,
11989 			 const int __R)
11990 {
11991   return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
11992 						 (__v4sf) __A,
11993 						 (__v4sf) __B,
11994 						 (__mmask8) __U, __R);
11995 }
11996 
11997 extern __inline __m128d
11998 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask3_fmadd_round_sd(__m128d __W,__m128d __A,__m128d __B,__mmask8 __U,const int __R)11999 _mm_mask3_fmadd_round_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U,
12000 			  const int __R)
12001 {
12002   return (__m128d) __builtin_ia32_vfmaddsd3_mask3 ((__v2df) __W,
12003 						   (__v2df) __A,
12004 						   (__v2df) __B,
12005 						   (__mmask8) __U, __R);
12006 }
12007 
12008 extern __inline __m128
12009 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask3_fmadd_round_ss(__m128 __W,__m128 __A,__m128 __B,__mmask8 __U,const int __R)12010 _mm_mask3_fmadd_round_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U,
12011 			  const int __R)
12012 {
12013   return (__m128) __builtin_ia32_vfmaddss3_mask3 ((__v4sf) __W,
12014 						  (__v4sf) __A,
12015 						  (__v4sf) __B,
12016 						  (__mmask8) __U, __R);
12017 }
12018 
12019 extern __inline __m128d
12020 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_fmadd_round_sd(__mmask8 __U,__m128d __W,__m128d __A,__m128d __B,const int __R)12021 _mm_maskz_fmadd_round_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B,
12022 			  const int __R)
12023 {
12024   return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
12025 						   (__v2df) __A,
12026 						   (__v2df) __B,
12027 						   (__mmask8) __U, __R);
12028 }
12029 
12030 extern __inline __m128
12031 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_fmadd_round_ss(__mmask8 __U,__m128 __W,__m128 __A,__m128 __B,const int __R)12032 _mm_maskz_fmadd_round_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B,
12033 			  const int __R)
12034 {
12035   return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
12036 						  (__v4sf) __A,
12037 						  (__v4sf) __B,
12038 						  (__mmask8) __U, __R);
12039 }
12040 
12041 extern __inline __m128d
12042 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_fmsub_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B,const int __R)12043 _mm_mask_fmsub_round_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B,
12044 			 const int __R)
12045 {
12046   return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
12047 						  (__v2df) __A,
12048 						  -(__v2df) __B,
12049 						  (__mmask8) __U, __R);
12050 }
12051 
12052 extern __inline __m128
12053 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_fmsub_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B,const int __R)12054 _mm_mask_fmsub_round_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B,
12055 			 const int __R)
12056 {
12057   return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
12058 						 (__v4sf) __A,
12059 						 -(__v4sf) __B,
12060 						 (__mmask8) __U, __R);
12061 }
12062 
12063 extern __inline __m128d
12064 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask3_fmsub_round_sd(__m128d __W,__m128d __A,__m128d __B,__mmask8 __U,const int __R)12065 _mm_mask3_fmsub_round_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U,
12066 			  const int __R)
12067 {
12068   return (__m128d) __builtin_ia32_vfmsubsd3_mask3 ((__v2df) __W,
12069 						   (__v2df) __A,
12070 						   (__v2df) __B,
12071 						   (__mmask8) __U, __R);
12072 }
12073 
12074 extern __inline __m128
12075 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask3_fmsub_round_ss(__m128 __W,__m128 __A,__m128 __B,__mmask8 __U,const int __R)12076 _mm_mask3_fmsub_round_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U,
12077 			  const int __R)
12078 {
12079   return (__m128) __builtin_ia32_vfmsubss3_mask3 ((__v4sf) __W,
12080 						  (__v4sf) __A,
12081 						  (__v4sf) __B,
12082 						  (__mmask8) __U, __R);
12083 }
12084 
12085 extern __inline __m128d
12086 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_fmsub_round_sd(__mmask8 __U,__m128d __W,__m128d __A,__m128d __B,const int __R)12087 _mm_maskz_fmsub_round_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B,
12088 			  const int __R)
12089 {
12090   return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
12091 						   (__v2df) __A,
12092 						   -(__v2df) __B,
12093 						   (__mmask8) __U, __R);
12094 }
12095 
12096 extern __inline __m128
12097 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_fmsub_round_ss(__mmask8 __U,__m128 __W,__m128 __A,__m128 __B,const int __R)12098 _mm_maskz_fmsub_round_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B,
12099 			  const int __R)
12100 {
12101   return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
12102 						  (__v4sf) __A,
12103 						  -(__v4sf) __B,
12104 						  (__mmask8) __U, __R);
12105 }
12106 
12107 extern __inline __m128d
12108 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_fnmadd_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B,const int __R)12109 _mm_mask_fnmadd_round_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B,
12110 			 const int __R)
12111 {
12112   return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
12113 						  -(__v2df) __A,
12114 						  (__v2df) __B,
12115 						  (__mmask8) __U, __R);
12116 }
12117 
12118 extern __inline __m128
12119 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_fnmadd_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B,const int __R)12120 _mm_mask_fnmadd_round_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B,
12121 			 const int __R)
12122 {
12123   return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
12124 						 -(__v4sf) __A,
12125 						 (__v4sf) __B,
12126 						 (__mmask8) __U, __R);
12127 }
12128 
12129 extern __inline __m128d
12130 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask3_fnmadd_round_sd(__m128d __W,__m128d __A,__m128d __B,__mmask8 __U,const int __R)12131 _mm_mask3_fnmadd_round_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U,
12132 			  const int __R)
12133 {
12134   return (__m128d) __builtin_ia32_vfmaddsd3_mask3 ((__v2df) __W,
12135 						   -(__v2df) __A,
12136 						   (__v2df) __B,
12137 						   (__mmask8) __U, __R);
12138 }
12139 
12140 extern __inline __m128
12141 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask3_fnmadd_round_ss(__m128 __W,__m128 __A,__m128 __B,__mmask8 __U,const int __R)12142 _mm_mask3_fnmadd_round_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U,
12143 			  const int __R)
12144 {
12145   return (__m128) __builtin_ia32_vfmaddss3_mask3 ((__v4sf) __W,
12146 						  -(__v4sf) __A,
12147 						  (__v4sf) __B,
12148 						  (__mmask8) __U, __R);
12149 }
12150 
12151 extern __inline __m128d
12152 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_fnmadd_round_sd(__mmask8 __U,__m128d __W,__m128d __A,__m128d __B,const int __R)12153 _mm_maskz_fnmadd_round_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B,
12154 			  const int __R)
12155 {
12156   return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
12157 						   -(__v2df) __A,
12158 						   (__v2df) __B,
12159 						   (__mmask8) __U, __R);
12160 }
12161 
12162 extern __inline __m128
12163 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_fnmadd_round_ss(__mmask8 __U,__m128 __W,__m128 __A,__m128 __B,const int __R)12164 _mm_maskz_fnmadd_round_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B,
12165 			  const int __R)
12166 {
12167   return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
12168 						  -(__v4sf) __A,
12169 						  (__v4sf) __B,
12170 						  (__mmask8) __U, __R);
12171 }
12172 
12173 extern __inline __m128d
12174 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_fnmsub_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B,const int __R)12175 _mm_mask_fnmsub_round_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B,
12176 			 const int __R)
12177 {
12178   return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
12179 						  -(__v2df) __A,
12180 						  -(__v2df) __B,
12181 						  (__mmask8) __U, __R);
12182 }
12183 
12184 extern __inline __m128
12185 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_fnmsub_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B,const int __R)12186 _mm_mask_fnmsub_round_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B,
12187 			 const int __R)
12188 {
12189   return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
12190 						 -(__v4sf) __A,
12191 						 -(__v4sf) __B,
12192 						 (__mmask8) __U, __R);
12193 }
12194 
12195 extern __inline __m128d
12196 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask3_fnmsub_round_sd(__m128d __W,__m128d __A,__m128d __B,__mmask8 __U,const int __R)12197 _mm_mask3_fnmsub_round_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U,
12198 			  const int __R)
12199 {
12200   return (__m128d) __builtin_ia32_vfmsubsd3_mask3 ((__v2df) __W,
12201 						   -(__v2df) __A,
12202 						   (__v2df) __B,
12203 						   (__mmask8) __U, __R);
12204 }
12205 
12206 extern __inline __m128
12207 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask3_fnmsub_round_ss(__m128 __W,__m128 __A,__m128 __B,__mmask8 __U,const int __R)12208 _mm_mask3_fnmsub_round_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U,
12209 			  const int __R)
12210 {
12211   return (__m128) __builtin_ia32_vfmsubss3_mask3 ((__v4sf) __W,
12212 						  -(__v4sf) __A,
12213 						  (__v4sf) __B,
12214 						  (__mmask8) __U, __R);
12215 }
12216 
12217 extern __inline __m128d
12218 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_fnmsub_round_sd(__mmask8 __U,__m128d __W,__m128d __A,__m128d __B,const int __R)12219 _mm_maskz_fnmsub_round_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B,
12220 			  const int __R)
12221 {
12222   return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
12223 						   -(__v2df) __A,
12224 						   -(__v2df) __B,
12225 						   (__mmask8) __U, __R);
12226 }
12227 
12228 extern __inline __m128
12229 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_fnmsub_round_ss(__mmask8 __U,__m128 __W,__m128 __A,__m128 __B,const int __R)12230 _mm_maskz_fnmsub_round_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B,
12231 			  const int __R)
12232 {
12233   return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
12234 						  -(__v4sf) __A,
12235 						  -(__v4sf) __B,
12236 						  (__mmask8) __U, __R);
12237 }
12238 #else
12239 #define _mm_mask_fmadd_round_sd(A, U, B, C, R)            \
12240     (__m128d) __builtin_ia32_vfmaddsd3_mask (A, B, C, U, R)
12241 
12242 #define _mm_mask_fmadd_round_ss(A, U, B, C, R)            \
12243     (__m128) __builtin_ia32_vfmaddss3_mask (A, B, C, U, R)
12244 
12245 #define _mm_mask3_fmadd_round_sd(A, B, C, U, R)            \
12246     (__m128d) __builtin_ia32_vfmaddsd3_mask3 (A, B, C, U, R)
12247 
12248 #define _mm_mask3_fmadd_round_ss(A, B, C, U, R)            \
12249     (__m128) __builtin_ia32_vfmaddss3_mask3 (A, B, C, U, R)
12250 
12251 #define _mm_maskz_fmadd_round_sd(U, A, B, C, R)            \
12252     (__m128d) __builtin_ia32_vfmaddsd3_maskz (A, B, C, U, R)
12253 
12254 #define _mm_maskz_fmadd_round_ss(U, A, B, C, R)            \
12255     (__m128) __builtin_ia32_vfmaddss3_maskz (A, B, C, U, R)
12256 
12257 #define _mm_mask_fmsub_round_sd(A, U, B, C, R)            \
12258     (__m128d) __builtin_ia32_vfmaddsd3_mask (A, B, -(C), U, R)
12259 
12260 #define _mm_mask_fmsub_round_ss(A, U, B, C, R)            \
12261     (__m128) __builtin_ia32_vfmaddss3_mask (A, B, -(C), U, R)
12262 
12263 #define _mm_mask3_fmsub_round_sd(A, B, C, U, R)            \
12264     (__m128d) __builtin_ia32_vfmsubsd3_mask3 (A, B, C, U, R)
12265 
12266 #define _mm_mask3_fmsub_round_ss(A, B, C, U, R)            \
12267     (__m128) __builtin_ia32_vfmsubss3_mask3 (A, B, C, U, R)
12268 
12269 #define _mm_maskz_fmsub_round_sd(U, A, B, C, R)            \
12270     (__m128d) __builtin_ia32_vfmaddsd3_maskz (A, B, -(C), U, R)
12271 
12272 #define _mm_maskz_fmsub_round_ss(U, A, B, C, R)            \
12273     (__m128) __builtin_ia32_vfmaddss3_maskz (A, B, -(C), U, R)
12274 
12275 #define _mm_mask_fnmadd_round_sd(A, U, B, C, R)            \
12276     (__m128d) __builtin_ia32_vfmaddsd3_mask (A, -(B), C, U, R)
12277 
12278 #define _mm_mask_fnmadd_round_ss(A, U, B, C, R)            \
12279     (__m128) __builtin_ia32_vfmaddss3_mask (A, -(B), C, U, R)
12280 
12281 #define _mm_mask3_fnmadd_round_sd(A, B, C, U, R)            \
12282     (__m128d) __builtin_ia32_vfmaddsd3_mask3 (A, -(B), C, U, R)
12283 
12284 #define _mm_mask3_fnmadd_round_ss(A, B, C, U, R)            \
12285     (__m128) __builtin_ia32_vfmaddss3_mask3 (A, -(B), C, U, R)
12286 
12287 #define _mm_maskz_fnmadd_round_sd(U, A, B, C, R)            \
12288     (__m128d) __builtin_ia32_vfmaddsd3_maskz (A, -(B), C, U, R)
12289 
12290 #define _mm_maskz_fnmadd_round_ss(U, A, B, C, R)            \
12291     (__m128) __builtin_ia32_vfmaddss3_maskz (A, -(B), C, U, R)
12292 
12293 #define _mm_mask_fnmsub_round_sd(A, U, B, C, R)            \
12294     (__m128d) __builtin_ia32_vfmaddsd3_mask (A, -(B), -(C), U, R)
12295 
12296 #define _mm_mask_fnmsub_round_ss(A, U, B, C, R)            \
12297     (__m128) __builtin_ia32_vfmaddss3_mask (A, -(B), -(C), U, R)
12298 
12299 #define _mm_mask3_fnmsub_round_sd(A, B, C, U, R)            \
12300     (__m128d) __builtin_ia32_vfmsubsd3_mask3 (A, -(B), C, U, R)
12301 
12302 #define _mm_mask3_fnmsub_round_ss(A, B, C, U, R)            \
12303     (__m128) __builtin_ia32_vfmsubss3_mask3 (A, -(B), C, U, R)
12304 
12305 #define _mm_maskz_fnmsub_round_sd(U, A, B, C, R)            \
12306     (__m128d) __builtin_ia32_vfmaddsd3_maskz (A, -(B), -(C), U, R)
12307 
12308 #define _mm_maskz_fnmsub_round_ss(U, A, B, C, R)            \
12309     (__m128) __builtin_ia32_vfmaddss3_maskz (A, -(B), -(C), U, R)
12310 #endif
12311 
12312 #ifdef __OPTIMIZE__
12313 extern __inline int
12314 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_comi_round_ss(__m128 __A,__m128 __B,const int __P,const int __R)12315 _mm_comi_round_ss (__m128 __A, __m128 __B, const int __P, const int __R)
12316 {
12317   return __builtin_ia32_vcomiss ((__v4sf) __A, (__v4sf) __B, __P, __R);
12318 }
12319 
12320 extern __inline int
12321 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_comi_round_sd(__m128d __A,__m128d __B,const int __P,const int __R)12322 _mm_comi_round_sd (__m128d __A, __m128d __B, const int __P, const int __R)
12323 {
12324   return __builtin_ia32_vcomisd ((__v2df) __A, (__v2df) __B, __P, __R);
12325 }
12326 #else
12327 #define _mm_comi_round_ss(A, B, C, D)\
12328 __builtin_ia32_vcomiss(A, B, C, D)
12329 #define _mm_comi_round_sd(A, B, C, D)\
12330 __builtin_ia32_vcomisd(A, B, C, D)
12331 #endif
12332 
12333 extern __inline __m512d
12334 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_sqrt_pd(__m512d __A)12335 _mm512_sqrt_pd (__m512d __A)
12336 {
12337   return (__m512d) __builtin_ia32_sqrtpd512_mask ((__v8df) __A,
12338 						  (__v8df)
12339 						  _mm512_undefined_pd (),
12340 						  (__mmask8) -1,
12341 						  _MM_FROUND_CUR_DIRECTION);
12342 }
12343 
12344 extern __inline __m512d
12345 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_sqrt_pd(__m512d __W,__mmask8 __U,__m512d __A)12346 _mm512_mask_sqrt_pd (__m512d __W, __mmask8 __U, __m512d __A)
12347 {
12348   return (__m512d) __builtin_ia32_sqrtpd512_mask ((__v8df) __A,
12349 						  (__v8df) __W,
12350 						  (__mmask8) __U,
12351 						  _MM_FROUND_CUR_DIRECTION);
12352 }
12353 
12354 extern __inline __m512d
12355 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_sqrt_pd(__mmask8 __U,__m512d __A)12356 _mm512_maskz_sqrt_pd (__mmask8 __U, __m512d __A)
12357 {
12358   return (__m512d) __builtin_ia32_sqrtpd512_mask ((__v8df) __A,
12359 						  (__v8df)
12360 						  _mm512_setzero_pd (),
12361 						  (__mmask8) __U,
12362 						  _MM_FROUND_CUR_DIRECTION);
12363 }
12364 
12365 extern __inline __m512
12366 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_sqrt_ps(__m512 __A)12367 _mm512_sqrt_ps (__m512 __A)
12368 {
12369   return (__m512) __builtin_ia32_sqrtps512_mask ((__v16sf) __A,
12370 						 (__v16sf)
12371 						 _mm512_undefined_ps (),
12372 						 (__mmask16) -1,
12373 						 _MM_FROUND_CUR_DIRECTION);
12374 }
12375 
12376 extern __inline __m512
12377 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_sqrt_ps(__m512 __W,__mmask16 __U,__m512 __A)12378 _mm512_mask_sqrt_ps (__m512 __W, __mmask16 __U, __m512 __A)
12379 {
12380   return (__m512) __builtin_ia32_sqrtps512_mask ((__v16sf) __A,
12381 						 (__v16sf) __W,
12382 						 (__mmask16) __U,
12383 						 _MM_FROUND_CUR_DIRECTION);
12384 }
12385 
12386 extern __inline __m512
12387 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_sqrt_ps(__mmask16 __U,__m512 __A)12388 _mm512_maskz_sqrt_ps (__mmask16 __U, __m512 __A)
12389 {
12390   return (__m512) __builtin_ia32_sqrtps512_mask ((__v16sf) __A,
12391 						 (__v16sf)
12392 						 _mm512_setzero_ps (),
12393 						 (__mmask16) __U,
12394 						 _MM_FROUND_CUR_DIRECTION);
12395 }
12396 
12397 extern __inline __m512d
12398 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_add_pd(__m512d __A,__m512d __B)12399 _mm512_add_pd (__m512d __A, __m512d __B)
12400 {
12401   return (__m512d) ((__v8df)__A + (__v8df)__B);
12402 }
12403 
12404 extern __inline __m512d
12405 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_add_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)12406 _mm512_mask_add_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
12407 {
12408   return (__m512d) __builtin_ia32_addpd512_mask ((__v8df) __A,
12409 						 (__v8df) __B,
12410 						 (__v8df) __W,
12411 						 (__mmask8) __U,
12412 						 _MM_FROUND_CUR_DIRECTION);
12413 }
12414 
12415 extern __inline __m512d
12416 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_add_pd(__mmask8 __U,__m512d __A,__m512d __B)12417 _mm512_maskz_add_pd (__mmask8 __U, __m512d __A, __m512d __B)
12418 {
12419   return (__m512d) __builtin_ia32_addpd512_mask ((__v8df) __A,
12420 						 (__v8df) __B,
12421 						 (__v8df)
12422 						 _mm512_setzero_pd (),
12423 						 (__mmask8) __U,
12424 						 _MM_FROUND_CUR_DIRECTION);
12425 }
12426 
12427 extern __inline __m512
12428 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_add_ps(__m512 __A,__m512 __B)12429 _mm512_add_ps (__m512 __A, __m512 __B)
12430 {
12431   return (__m512) ((__v16sf)__A + (__v16sf)__B);
12432 }
12433 
12434 extern __inline __m512
12435 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_add_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)12436 _mm512_mask_add_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
12437 {
12438   return (__m512) __builtin_ia32_addps512_mask ((__v16sf) __A,
12439 						(__v16sf) __B,
12440 						(__v16sf) __W,
12441 						(__mmask16) __U,
12442 						_MM_FROUND_CUR_DIRECTION);
12443 }
12444 
12445 extern __inline __m512
12446 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_add_ps(__mmask16 __U,__m512 __A,__m512 __B)12447 _mm512_maskz_add_ps (__mmask16 __U, __m512 __A, __m512 __B)
12448 {
12449   return (__m512) __builtin_ia32_addps512_mask ((__v16sf) __A,
12450 						(__v16sf) __B,
12451 						(__v16sf)
12452 						_mm512_setzero_ps (),
12453 						(__mmask16) __U,
12454 						_MM_FROUND_CUR_DIRECTION);
12455 }
12456 
12457 extern __inline __m128d
12458 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_add_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)12459 _mm_mask_add_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
12460 {
12461   return (__m128d) __builtin_ia32_addsd_mask_round ((__v2df) __A,
12462 						(__v2df) __B,
12463 						(__v2df) __W,
12464 						(__mmask8) __U,
12465 						_MM_FROUND_CUR_DIRECTION);
12466 }
12467 
12468 extern __inline __m128d
12469 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_add_sd(__mmask8 __U,__m128d __A,__m128d __B)12470 _mm_maskz_add_sd (__mmask8 __U, __m128d __A, __m128d __B)
12471 {
12472   return (__m128d) __builtin_ia32_addsd_mask_round ((__v2df) __A,
12473 						(__v2df) __B,
12474 						(__v2df)
12475 						_mm_setzero_pd (),
12476 						(__mmask8) __U,
12477 						_MM_FROUND_CUR_DIRECTION);
12478 }
12479 
12480 extern __inline __m128
12481 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_add_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)12482 _mm_mask_add_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
12483 {
12484   return (__m128) __builtin_ia32_addss_mask_round ((__v4sf) __A,
12485 						(__v4sf) __B,
12486 						(__v4sf) __W,
12487 						(__mmask8) __U,
12488 						_MM_FROUND_CUR_DIRECTION);
12489 }
12490 
12491 extern __inline __m128
12492 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_add_ss(__mmask8 __U,__m128 __A,__m128 __B)12493 _mm_maskz_add_ss (__mmask8 __U, __m128 __A, __m128 __B)
12494 {
12495   return (__m128) __builtin_ia32_addss_mask_round ((__v4sf) __A,
12496 						(__v4sf) __B,
12497 						(__v4sf)
12498 						_mm_setzero_ps (),
12499 						(__mmask8) __U,
12500 						_MM_FROUND_CUR_DIRECTION);
12501 }
12502 
12503 extern __inline __m512d
12504 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_sub_pd(__m512d __A,__m512d __B)12505 _mm512_sub_pd (__m512d __A, __m512d __B)
12506 {
12507   return (__m512d) ((__v8df)__A - (__v8df)__B);
12508 }
12509 
12510 extern __inline __m512d
12511 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_sub_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)12512 _mm512_mask_sub_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
12513 {
12514   return (__m512d) __builtin_ia32_subpd512_mask ((__v8df) __A,
12515 						 (__v8df) __B,
12516 						 (__v8df) __W,
12517 						 (__mmask8) __U,
12518 						 _MM_FROUND_CUR_DIRECTION);
12519 }
12520 
12521 extern __inline __m512d
12522 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_sub_pd(__mmask8 __U,__m512d __A,__m512d __B)12523 _mm512_maskz_sub_pd (__mmask8 __U, __m512d __A, __m512d __B)
12524 {
12525   return (__m512d) __builtin_ia32_subpd512_mask ((__v8df) __A,
12526 						 (__v8df) __B,
12527 						 (__v8df)
12528 						 _mm512_setzero_pd (),
12529 						 (__mmask8) __U,
12530 						 _MM_FROUND_CUR_DIRECTION);
12531 }
12532 
12533 extern __inline __m512
12534 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_sub_ps(__m512 __A,__m512 __B)12535 _mm512_sub_ps (__m512 __A, __m512 __B)
12536 {
12537   return (__m512) ((__v16sf)__A - (__v16sf)__B);
12538 }
12539 
12540 extern __inline __m512
12541 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_sub_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)12542 _mm512_mask_sub_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
12543 {
12544   return (__m512) __builtin_ia32_subps512_mask ((__v16sf) __A,
12545 						(__v16sf) __B,
12546 						(__v16sf) __W,
12547 						(__mmask16) __U,
12548 						_MM_FROUND_CUR_DIRECTION);
12549 }
12550 
12551 extern __inline __m512
12552 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_sub_ps(__mmask16 __U,__m512 __A,__m512 __B)12553 _mm512_maskz_sub_ps (__mmask16 __U, __m512 __A, __m512 __B)
12554 {
12555   return (__m512) __builtin_ia32_subps512_mask ((__v16sf) __A,
12556 						(__v16sf) __B,
12557 						(__v16sf)
12558 						_mm512_setzero_ps (),
12559 						(__mmask16) __U,
12560 						_MM_FROUND_CUR_DIRECTION);
12561 }
12562 
12563 extern __inline __m128d
12564 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_sub_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)12565 _mm_mask_sub_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
12566 {
12567   return (__m128d) __builtin_ia32_subsd_mask_round ((__v2df) __A,
12568 						(__v2df) __B,
12569 						(__v2df) __W,
12570 						(__mmask8) __U,
12571 						_MM_FROUND_CUR_DIRECTION);
12572 }
12573 
12574 extern __inline __m128d
12575 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_sub_sd(__mmask8 __U,__m128d __A,__m128d __B)12576 _mm_maskz_sub_sd (__mmask8 __U, __m128d __A, __m128d __B)
12577 {
12578   return (__m128d) __builtin_ia32_subsd_mask_round ((__v2df) __A,
12579 						(__v2df) __B,
12580 						(__v2df)
12581 						_mm_setzero_pd (),
12582 						(__mmask8) __U,
12583 						_MM_FROUND_CUR_DIRECTION);
12584 }
12585 
12586 extern __inline __m128
12587 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_sub_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)12588 _mm_mask_sub_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
12589 {
12590   return (__m128) __builtin_ia32_subss_mask_round ((__v4sf) __A,
12591 						(__v4sf) __B,
12592 						(__v4sf) __W,
12593 						(__mmask8) __U,
12594 						_MM_FROUND_CUR_DIRECTION);
12595 }
12596 
12597 extern __inline __m128
12598 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_sub_ss(__mmask8 __U,__m128 __A,__m128 __B)12599 _mm_maskz_sub_ss (__mmask8 __U, __m128 __A, __m128 __B)
12600 {
12601   return (__m128) __builtin_ia32_subss_mask_round ((__v4sf) __A,
12602 						(__v4sf) __B,
12603 						(__v4sf)
12604 						_mm_setzero_ps (),
12605 						(__mmask8) __U,
12606 						_MM_FROUND_CUR_DIRECTION);
12607 }
12608 
12609 extern __inline __m512d
12610 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mul_pd(__m512d __A,__m512d __B)12611 _mm512_mul_pd (__m512d __A, __m512d __B)
12612 {
12613   return (__m512d) ((__v8df)__A * (__v8df)__B);
12614 }
12615 
12616 extern __inline __m512d
12617 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_mul_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)12618 _mm512_mask_mul_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
12619 {
12620   return (__m512d) __builtin_ia32_mulpd512_mask ((__v8df) __A,
12621 						 (__v8df) __B,
12622 						 (__v8df) __W,
12623 						 (__mmask8) __U,
12624 						 _MM_FROUND_CUR_DIRECTION);
12625 }
12626 
12627 extern __inline __m512d
12628 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_mul_pd(__mmask8 __U,__m512d __A,__m512d __B)12629 _mm512_maskz_mul_pd (__mmask8 __U, __m512d __A, __m512d __B)
12630 {
12631   return (__m512d) __builtin_ia32_mulpd512_mask ((__v8df) __A,
12632 						 (__v8df) __B,
12633 						 (__v8df)
12634 						 _mm512_setzero_pd (),
12635 						 (__mmask8) __U,
12636 						 _MM_FROUND_CUR_DIRECTION);
12637 }
12638 
12639 extern __inline __m512
12640 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mul_ps(__m512 __A,__m512 __B)12641 _mm512_mul_ps (__m512 __A, __m512 __B)
12642 {
12643   return (__m512) ((__v16sf)__A * (__v16sf)__B);
12644 }
12645 
12646 extern __inline __m512
12647 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_mul_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)12648 _mm512_mask_mul_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
12649 {
12650   return (__m512) __builtin_ia32_mulps512_mask ((__v16sf) __A,
12651 						(__v16sf) __B,
12652 						(__v16sf) __W,
12653 						(__mmask16) __U,
12654 						_MM_FROUND_CUR_DIRECTION);
12655 }
12656 
12657 extern __inline __m512
12658 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_mul_ps(__mmask16 __U,__m512 __A,__m512 __B)12659 _mm512_maskz_mul_ps (__mmask16 __U, __m512 __A, __m512 __B)
12660 {
12661   return (__m512) __builtin_ia32_mulps512_mask ((__v16sf) __A,
12662 						(__v16sf) __B,
12663 						(__v16sf)
12664 						_mm512_setzero_ps (),
12665 						(__mmask16) __U,
12666 						_MM_FROUND_CUR_DIRECTION);
12667 }
12668 
12669 extern __inline __m128d
12670 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_mul_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)12671 _mm_mask_mul_sd (__m128d __W, __mmask8 __U, __m128d __A,
12672 			  __m128d __B)
12673 {
12674   return (__m128d) __builtin_ia32_mulsd_mask_round ((__v2df) __A,
12675 						 (__v2df) __B,
12676 						 (__v2df) __W,
12677 						 (__mmask8) __U,
12678 						  _MM_FROUND_CUR_DIRECTION);
12679 }
12680 
12681 extern __inline __m128d
12682 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_mul_sd(__mmask8 __U,__m128d __A,__m128d __B)12683 _mm_maskz_mul_sd (__mmask8 __U, __m128d __A, __m128d __B)
12684 {
12685   return (__m128d) __builtin_ia32_mulsd_mask_round ((__v2df) __A,
12686 						 (__v2df) __B,
12687 						 (__v2df)
12688 						 _mm_setzero_pd (),
12689 						 (__mmask8) __U,
12690 						  _MM_FROUND_CUR_DIRECTION);
12691 }
12692 
12693 extern __inline __m128
12694 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_mul_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)12695 _mm_mask_mul_ss (__m128 __W, __mmask8 __U, __m128 __A,
12696 			  __m128 __B)
12697 {
12698   return (__m128) __builtin_ia32_mulss_mask_round ((__v4sf) __A,
12699 						 (__v4sf) __B,
12700 						 (__v4sf) __W,
12701 						 (__mmask8) __U,
12702 						  _MM_FROUND_CUR_DIRECTION);
12703 }
12704 
12705 extern __inline __m128
12706 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_mul_ss(__mmask8 __U,__m128 __A,__m128 __B)12707 _mm_maskz_mul_ss (__mmask8 __U, __m128 __A, __m128 __B)
12708 {
12709   return (__m128) __builtin_ia32_mulss_mask_round ((__v4sf) __A,
12710 						 (__v4sf) __B,
12711 						 (__v4sf)
12712 						 _mm_setzero_ps (),
12713 						 (__mmask8) __U,
12714 						  _MM_FROUND_CUR_DIRECTION);
12715 }
12716 
12717 extern __inline __m512d
12718 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_div_pd(__m512d __M,__m512d __V)12719 _mm512_div_pd (__m512d __M, __m512d __V)
12720 {
12721   return (__m512d) ((__v8df)__M / (__v8df)__V);
12722 }
12723 
12724 extern __inline __m512d
12725 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_div_pd(__m512d __W,__mmask8 __U,__m512d __M,__m512d __V)12726 _mm512_mask_div_pd (__m512d __W, __mmask8 __U, __m512d __M, __m512d __V)
12727 {
12728   return (__m512d) __builtin_ia32_divpd512_mask ((__v8df) __M,
12729 						 (__v8df) __V,
12730 						 (__v8df) __W,
12731 						 (__mmask8) __U,
12732 						 _MM_FROUND_CUR_DIRECTION);
12733 }
12734 
12735 extern __inline __m512d
12736 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_div_pd(__mmask8 __U,__m512d __M,__m512d __V)12737 _mm512_maskz_div_pd (__mmask8 __U, __m512d __M, __m512d __V)
12738 {
12739   return (__m512d) __builtin_ia32_divpd512_mask ((__v8df) __M,
12740 						 (__v8df) __V,
12741 						 (__v8df)
12742 						 _mm512_setzero_pd (),
12743 						 (__mmask8) __U,
12744 						 _MM_FROUND_CUR_DIRECTION);
12745 }
12746 
12747 extern __inline __m512
12748 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_div_ps(__m512 __A,__m512 __B)12749 _mm512_div_ps (__m512 __A, __m512 __B)
12750 {
12751   return (__m512) ((__v16sf)__A / (__v16sf)__B);
12752 }
12753 
12754 extern __inline __m512
12755 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_div_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)12756 _mm512_mask_div_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
12757 {
12758   return (__m512) __builtin_ia32_divps512_mask ((__v16sf) __A,
12759 						(__v16sf) __B,
12760 						(__v16sf) __W,
12761 						(__mmask16) __U,
12762 						_MM_FROUND_CUR_DIRECTION);
12763 }
12764 
12765 extern __inline __m512
12766 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_div_ps(__mmask16 __U,__m512 __A,__m512 __B)12767 _mm512_maskz_div_ps (__mmask16 __U, __m512 __A, __m512 __B)
12768 {
12769   return (__m512) __builtin_ia32_divps512_mask ((__v16sf) __A,
12770 						(__v16sf) __B,
12771 						(__v16sf)
12772 						_mm512_setzero_ps (),
12773 						(__mmask16) __U,
12774 						_MM_FROUND_CUR_DIRECTION);
12775 }
12776 
12777 extern __inline __m128d
12778 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_div_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)12779 _mm_mask_div_sd (__m128d __W, __mmask8 __U, __m128d __A,
12780 			  __m128d __B)
12781 {
12782   return (__m128d) __builtin_ia32_divsd_mask_round ((__v2df) __A,
12783 						 (__v2df) __B,
12784 						 (__v2df) __W,
12785 						 (__mmask8) __U,
12786 						  _MM_FROUND_CUR_DIRECTION);
12787 }
12788 
12789 extern __inline __m128d
12790 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_div_sd(__mmask8 __U,__m128d __A,__m128d __B)12791 _mm_maskz_div_sd (__mmask8 __U, __m128d __A, __m128d __B)
12792 {
12793   return (__m128d) __builtin_ia32_divsd_mask_round ((__v2df) __A,
12794 						 (__v2df) __B,
12795 						 (__v2df)
12796 						 _mm_setzero_pd (),
12797 						 (__mmask8) __U,
12798 						  _MM_FROUND_CUR_DIRECTION);
12799 }
12800 
12801 extern __inline __m128
12802 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_div_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)12803 _mm_mask_div_ss (__m128 __W, __mmask8 __U, __m128 __A,
12804 			  __m128 __B)
12805 {
12806   return (__m128) __builtin_ia32_divss_mask_round ((__v4sf) __A,
12807 						 (__v4sf) __B,
12808 						 (__v4sf) __W,
12809 						 (__mmask8) __U,
12810 						  _MM_FROUND_CUR_DIRECTION);
12811 }
12812 
12813 extern __inline __m128
12814 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_div_ss(__mmask8 __U,__m128 __A,__m128 __B)12815 _mm_maskz_div_ss (__mmask8 __U, __m128 __A, __m128 __B)
12816 {
12817   return (__m128) __builtin_ia32_divss_mask_round ((__v4sf) __A,
12818 						 (__v4sf) __B,
12819 						 (__v4sf)
12820 						 _mm_setzero_ps (),
12821 						 (__mmask8) __U,
12822 						  _MM_FROUND_CUR_DIRECTION);
12823 }
12824 
12825 extern __inline __m512d
12826 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_max_pd(__m512d __A,__m512d __B)12827 _mm512_max_pd (__m512d __A, __m512d __B)
12828 {
12829   return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A,
12830 						 (__v8df) __B,
12831 						 (__v8df)
12832 						 _mm512_undefined_pd (),
12833 						 (__mmask8) -1,
12834 						 _MM_FROUND_CUR_DIRECTION);
12835 }
12836 
12837 extern __inline __m512d
12838 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_max_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)12839 _mm512_mask_max_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
12840 {
12841   return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A,
12842 						 (__v8df) __B,
12843 						 (__v8df) __W,
12844 						 (__mmask8) __U,
12845 						 _MM_FROUND_CUR_DIRECTION);
12846 }
12847 
12848 extern __inline __m512d
12849 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_max_pd(__mmask8 __U,__m512d __A,__m512d __B)12850 _mm512_maskz_max_pd (__mmask8 __U, __m512d __A, __m512d __B)
12851 {
12852   return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A,
12853 						 (__v8df) __B,
12854 						 (__v8df)
12855 						 _mm512_setzero_pd (),
12856 						 (__mmask8) __U,
12857 						 _MM_FROUND_CUR_DIRECTION);
12858 }
12859 
12860 extern __inline __m512
12861 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_max_ps(__m512 __A,__m512 __B)12862 _mm512_max_ps (__m512 __A, __m512 __B)
12863 {
12864   return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A,
12865 						(__v16sf) __B,
12866 						(__v16sf)
12867 						_mm512_undefined_ps (),
12868 						(__mmask16) -1,
12869 						_MM_FROUND_CUR_DIRECTION);
12870 }
12871 
12872 extern __inline __m512
12873 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_max_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)12874 _mm512_mask_max_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
12875 {
12876   return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A,
12877 						(__v16sf) __B,
12878 						(__v16sf) __W,
12879 						(__mmask16) __U,
12880 						_MM_FROUND_CUR_DIRECTION);
12881 }
12882 
12883 extern __inline __m512
12884 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_max_ps(__mmask16 __U,__m512 __A,__m512 __B)12885 _mm512_maskz_max_ps (__mmask16 __U, __m512 __A, __m512 __B)
12886 {
12887   return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A,
12888 						(__v16sf) __B,
12889 						(__v16sf)
12890 						_mm512_setzero_ps (),
12891 						(__mmask16) __U,
12892 						_MM_FROUND_CUR_DIRECTION);
12893 }
12894 
12895 extern __inline __m128d
12896 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_max_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)12897 _mm_mask_max_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
12898 {
12899   return (__m128d) __builtin_ia32_maxsd_mask_round ((__v2df) __A,
12900 						 (__v2df) __B,
12901 						 (__v2df) __W,
12902 						 (__mmask8) __U,
12903 						 _MM_FROUND_CUR_DIRECTION);
12904 }
12905 
12906 extern __inline __m128d
12907 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_max_sd(__mmask8 __U,__m128d __A,__m128d __B)12908 _mm_maskz_max_sd (__mmask8 __U, __m128d __A, __m128d __B)
12909 {
12910   return (__m128d) __builtin_ia32_maxsd_mask_round ((__v2df) __A,
12911 						 (__v2df) __B,
12912 						 (__v2df)
12913 						 _mm_setzero_pd (),
12914 						 (__mmask8) __U,
12915 						 _MM_FROUND_CUR_DIRECTION);
12916 }
12917 
12918 extern __inline __m128
12919 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_max_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)12920 _mm_mask_max_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
12921 {
12922   return (__m128) __builtin_ia32_maxss_mask_round ((__v4sf) __A,
12923 						(__v4sf) __B,
12924 						(__v4sf) __W,
12925 						(__mmask8) __U,
12926 						_MM_FROUND_CUR_DIRECTION);
12927 }
12928 
12929 extern __inline __m128
12930 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_max_ss(__mmask8 __U,__m128 __A,__m128 __B)12931 _mm_maskz_max_ss (__mmask8 __U, __m128 __A, __m128 __B)
12932 {
12933   return (__m128) __builtin_ia32_maxss_mask_round ((__v4sf) __A,
12934 						(__v4sf) __B,
12935 						(__v4sf)
12936 						_mm_setzero_ps (),
12937 						(__mmask8) __U,
12938 						_MM_FROUND_CUR_DIRECTION);
12939 }
12940 
12941 extern __inline __m512d
12942 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_min_pd(__m512d __A,__m512d __B)12943 _mm512_min_pd (__m512d __A, __m512d __B)
12944 {
12945   return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A,
12946 						 (__v8df) __B,
12947 						 (__v8df)
12948 						 _mm512_undefined_pd (),
12949 						 (__mmask8) -1,
12950 						 _MM_FROUND_CUR_DIRECTION);
12951 }
12952 
12953 extern __inline __m512d
12954 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_min_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)12955 _mm512_mask_min_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
12956 {
12957   return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A,
12958 						 (__v8df) __B,
12959 						 (__v8df) __W,
12960 						 (__mmask8) __U,
12961 						 _MM_FROUND_CUR_DIRECTION);
12962 }
12963 
12964 extern __inline __m512d
12965 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_min_pd(__mmask8 __U,__m512d __A,__m512d __B)12966 _mm512_maskz_min_pd (__mmask8 __U, __m512d __A, __m512d __B)
12967 {
12968   return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A,
12969 						 (__v8df) __B,
12970 						 (__v8df)
12971 						 _mm512_setzero_pd (),
12972 						 (__mmask8) __U,
12973 						 _MM_FROUND_CUR_DIRECTION);
12974 }
12975 
12976 extern __inline __m512
12977 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_min_ps(__m512 __A,__m512 __B)12978 _mm512_min_ps (__m512 __A, __m512 __B)
12979 {
12980   return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A,
12981 						(__v16sf) __B,
12982 						(__v16sf)
12983 						_mm512_undefined_ps (),
12984 						(__mmask16) -1,
12985 						_MM_FROUND_CUR_DIRECTION);
12986 }
12987 
12988 extern __inline __m512
12989 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_min_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)12990 _mm512_mask_min_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
12991 {
12992   return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A,
12993 						(__v16sf) __B,
12994 						(__v16sf) __W,
12995 						(__mmask16) __U,
12996 						_MM_FROUND_CUR_DIRECTION);
12997 }
12998 
12999 extern __inline __m512
13000 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_min_ps(__mmask16 __U,__m512 __A,__m512 __B)13001 _mm512_maskz_min_ps (__mmask16 __U, __m512 __A, __m512 __B)
13002 {
13003   return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A,
13004 						(__v16sf) __B,
13005 						(__v16sf)
13006 						_mm512_setzero_ps (),
13007 						(__mmask16) __U,
13008 						_MM_FROUND_CUR_DIRECTION);
13009 }
13010 
13011 extern __inline __m128d
13012 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_min_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)13013 _mm_mask_min_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
13014 {
13015   return (__m128d) __builtin_ia32_minsd_mask_round ((__v2df) __A,
13016 						 (__v2df) __B,
13017 						 (__v2df) __W,
13018 						 (__mmask8) __U,
13019 						 _MM_FROUND_CUR_DIRECTION);
13020 }
13021 
13022 extern __inline __m128d
13023 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_min_sd(__mmask8 __U,__m128d __A,__m128d __B)13024 _mm_maskz_min_sd (__mmask8 __U, __m128d __A, __m128d __B)
13025 {
13026   return (__m128d) __builtin_ia32_minsd_mask_round ((__v2df) __A,
13027 						 (__v2df) __B,
13028 						 (__v2df)
13029 						 _mm_setzero_pd (),
13030 						 (__mmask8) __U,
13031 						 _MM_FROUND_CUR_DIRECTION);
13032 }
13033 
13034 extern __inline __m128
13035 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_min_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)13036 _mm_mask_min_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
13037 {
13038   return (__m128) __builtin_ia32_minss_mask_round ((__v4sf) __A,
13039 						(__v4sf) __B,
13040 						(__v4sf) __W,
13041 						(__mmask8) __U,
13042 						_MM_FROUND_CUR_DIRECTION);
13043 }
13044 
13045 extern __inline __m128
13046 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_min_ss(__mmask8 __U,__m128 __A,__m128 __B)13047 _mm_maskz_min_ss (__mmask8 __U, __m128 __A, __m128 __B)
13048 {
13049   return (__m128) __builtin_ia32_minss_mask_round ((__v4sf) __A,
13050 						(__v4sf) __B,
13051 						(__v4sf)
13052 						_mm_setzero_ps (),
13053 						(__mmask8) __U,
13054 						_MM_FROUND_CUR_DIRECTION);
13055 }
13056 
13057 extern __inline __m512d
13058 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_scalef_pd(__m512d __A,__m512d __B)13059 _mm512_scalef_pd (__m512d __A, __m512d __B)
13060 {
13061   return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,
13062 						    (__v8df) __B,
13063 						    (__v8df)
13064 						    _mm512_undefined_pd (),
13065 						    (__mmask8) -1,
13066 						    _MM_FROUND_CUR_DIRECTION);
13067 }
13068 
13069 extern __inline __m512d
13070 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_scalef_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)13071 _mm512_mask_scalef_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
13072 {
13073   return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,
13074 						    (__v8df) __B,
13075 						    (__v8df) __W,
13076 						    (__mmask8) __U,
13077 						    _MM_FROUND_CUR_DIRECTION);
13078 }
13079 
13080 extern __inline __m512d
13081 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_scalef_pd(__mmask8 __U,__m512d __A,__m512d __B)13082 _mm512_maskz_scalef_pd (__mmask8 __U, __m512d __A, __m512d __B)
13083 {
13084   return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,
13085 						    (__v8df) __B,
13086 						    (__v8df)
13087 						    _mm512_setzero_pd (),
13088 						    (__mmask8) __U,
13089 						    _MM_FROUND_CUR_DIRECTION);
13090 }
13091 
13092 extern __inline __m512
13093 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_scalef_ps(__m512 __A,__m512 __B)13094 _mm512_scalef_ps (__m512 __A, __m512 __B)
13095 {
13096   return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,
13097 						   (__v16sf) __B,
13098 						   (__v16sf)
13099 						   _mm512_undefined_ps (),
13100 						   (__mmask16) -1,
13101 						   _MM_FROUND_CUR_DIRECTION);
13102 }
13103 
13104 extern __inline __m512
13105 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_scalef_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)13106 _mm512_mask_scalef_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
13107 {
13108   return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,
13109 						   (__v16sf) __B,
13110 						   (__v16sf) __W,
13111 						   (__mmask16) __U,
13112 						   _MM_FROUND_CUR_DIRECTION);
13113 }
13114 
13115 extern __inline __m512
13116 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_scalef_ps(__mmask16 __U,__m512 __A,__m512 __B)13117 _mm512_maskz_scalef_ps (__mmask16 __U, __m512 __A, __m512 __B)
13118 {
13119   return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,
13120 						   (__v16sf) __B,
13121 						   (__v16sf)
13122 						   _mm512_setzero_ps (),
13123 						   (__mmask16) __U,
13124 						   _MM_FROUND_CUR_DIRECTION);
13125 }
13126 
13127 extern __inline __m128d
13128 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_scalef_sd(__m128d __A,__m128d __B)13129 _mm_scalef_sd (__m128d __A, __m128d __B)
13130 {
13131   return (__m128d) __builtin_ia32_scalefsd_mask_round ((__v2df) __A,
13132 						    (__v2df) __B,
13133 						    (__v2df)
13134 						    _mm_setzero_pd (),
13135 						    (__mmask8) -1,
13136 						    _MM_FROUND_CUR_DIRECTION);
13137 }
13138 
13139 extern __inline __m128
13140 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_scalef_ss(__m128 __A,__m128 __B)13141 _mm_scalef_ss (__m128 __A, __m128 __B)
13142 {
13143   return (__m128) __builtin_ia32_scalefss_mask_round ((__v4sf) __A,
13144 						   (__v4sf) __B,
13145 						   (__v4sf)
13146 						   _mm_setzero_ps (),
13147 						   (__mmask8) -1,
13148 						   _MM_FROUND_CUR_DIRECTION);
13149 }
13150 
13151 extern __inline __m512d
13152 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_fmadd_pd(__m512d __A,__m512d __B,__m512d __C)13153 _mm512_fmadd_pd (__m512d __A, __m512d __B, __m512d __C)
13154 {
13155   return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A,
13156 						    (__v8df) __B,
13157 						    (__v8df) __C,
13158 						    (__mmask8) -1,
13159 						    _MM_FROUND_CUR_DIRECTION);
13160 }
13161 
13162 extern __inline __m512d
13163 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_fmadd_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)13164 _mm512_mask_fmadd_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
13165 {
13166   return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A,
13167 						    (__v8df) __B,
13168 						    (__v8df) __C,
13169 						    (__mmask8) __U,
13170 						    _MM_FROUND_CUR_DIRECTION);
13171 }
13172 
13173 extern __inline __m512d
13174 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask3_fmadd_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)13175 _mm512_mask3_fmadd_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
13176 {
13177   return (__m512d) __builtin_ia32_vfmaddpd512_mask3 ((__v8df) __A,
13178 						     (__v8df) __B,
13179 						     (__v8df) __C,
13180 						     (__mmask8) __U,
13181 						     _MM_FROUND_CUR_DIRECTION);
13182 }
13183 
13184 extern __inline __m512d
13185 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_fmadd_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)13186 _mm512_maskz_fmadd_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
13187 {
13188   return (__m512d) __builtin_ia32_vfmaddpd512_maskz ((__v8df) __A,
13189 						     (__v8df) __B,
13190 						     (__v8df) __C,
13191 						     (__mmask8) __U,
13192 						     _MM_FROUND_CUR_DIRECTION);
13193 }
13194 
13195 extern __inline __m512
13196 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_fmadd_ps(__m512 __A,__m512 __B,__m512 __C)13197 _mm512_fmadd_ps (__m512 __A, __m512 __B, __m512 __C)
13198 {
13199   return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A,
13200 						   (__v16sf) __B,
13201 						   (__v16sf) __C,
13202 						   (__mmask16) -1,
13203 						   _MM_FROUND_CUR_DIRECTION);
13204 }
13205 
13206 extern __inline __m512
13207 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_fmadd_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)13208 _mm512_mask_fmadd_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
13209 {
13210   return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A,
13211 						   (__v16sf) __B,
13212 						   (__v16sf) __C,
13213 						   (__mmask16) __U,
13214 						   _MM_FROUND_CUR_DIRECTION);
13215 }
13216 
13217 extern __inline __m512
13218 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask3_fmadd_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)13219 _mm512_mask3_fmadd_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
13220 {
13221   return (__m512) __builtin_ia32_vfmaddps512_mask3 ((__v16sf) __A,
13222 						    (__v16sf) __B,
13223 						    (__v16sf) __C,
13224 						    (__mmask16) __U,
13225 						    _MM_FROUND_CUR_DIRECTION);
13226 }
13227 
13228 extern __inline __m512
13229 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_fmadd_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)13230 _mm512_maskz_fmadd_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
13231 {
13232   return (__m512) __builtin_ia32_vfmaddps512_maskz ((__v16sf) __A,
13233 						    (__v16sf) __B,
13234 						    (__v16sf) __C,
13235 						    (__mmask16) __U,
13236 						    _MM_FROUND_CUR_DIRECTION);
13237 }
13238 
13239 extern __inline __m512d
13240 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_fmsub_pd(__m512d __A,__m512d __B,__m512d __C)13241 _mm512_fmsub_pd (__m512d __A, __m512d __B, __m512d __C)
13242 {
13243   return (__m512d) __builtin_ia32_vfmsubpd512_mask ((__v8df) __A,
13244 						    (__v8df) __B,
13245 						    (__v8df) __C,
13246 						    (__mmask8) -1,
13247 						    _MM_FROUND_CUR_DIRECTION);
13248 }
13249 
13250 extern __inline __m512d
13251 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_fmsub_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)13252 _mm512_mask_fmsub_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
13253 {
13254   return (__m512d) __builtin_ia32_vfmsubpd512_mask ((__v8df) __A,
13255 						    (__v8df) __B,
13256 						    (__v8df) __C,
13257 						    (__mmask8) __U,
13258 						    _MM_FROUND_CUR_DIRECTION);
13259 }
13260 
13261 extern __inline __m512d
13262 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask3_fmsub_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)13263 _mm512_mask3_fmsub_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
13264 {
13265   return (__m512d) __builtin_ia32_vfmsubpd512_mask3 ((__v8df) __A,
13266 						     (__v8df) __B,
13267 						     (__v8df) __C,
13268 						     (__mmask8) __U,
13269 						     _MM_FROUND_CUR_DIRECTION);
13270 }
13271 
13272 extern __inline __m512d
13273 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_fmsub_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)13274 _mm512_maskz_fmsub_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
13275 {
13276   return (__m512d) __builtin_ia32_vfmsubpd512_maskz ((__v8df) __A,
13277 						     (__v8df) __B,
13278 						     (__v8df) __C,
13279 						     (__mmask8) __U,
13280 						     _MM_FROUND_CUR_DIRECTION);
13281 }
13282 
13283 extern __inline __m512
13284 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_fmsub_ps(__m512 __A,__m512 __B,__m512 __C)13285 _mm512_fmsub_ps (__m512 __A, __m512 __B, __m512 __C)
13286 {
13287   return (__m512) __builtin_ia32_vfmsubps512_mask ((__v16sf) __A,
13288 						   (__v16sf) __B,
13289 						   (__v16sf) __C,
13290 						   (__mmask16) -1,
13291 						   _MM_FROUND_CUR_DIRECTION);
13292 }
13293 
13294 extern __inline __m512
13295 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_fmsub_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)13296 _mm512_mask_fmsub_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
13297 {
13298   return (__m512) __builtin_ia32_vfmsubps512_mask ((__v16sf) __A,
13299 						   (__v16sf) __B,
13300 						   (__v16sf) __C,
13301 						   (__mmask16) __U,
13302 						   _MM_FROUND_CUR_DIRECTION);
13303 }
13304 
13305 extern __inline __m512
13306 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask3_fmsub_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)13307 _mm512_mask3_fmsub_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
13308 {
13309   return (__m512) __builtin_ia32_vfmsubps512_mask3 ((__v16sf) __A,
13310 						    (__v16sf) __B,
13311 						    (__v16sf) __C,
13312 						    (__mmask16) __U,
13313 						    _MM_FROUND_CUR_DIRECTION);
13314 }
13315 
13316 extern __inline __m512
13317 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_fmsub_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)13318 _mm512_maskz_fmsub_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
13319 {
13320   return (__m512) __builtin_ia32_vfmsubps512_maskz ((__v16sf) __A,
13321 						    (__v16sf) __B,
13322 						    (__v16sf) __C,
13323 						    (__mmask16) __U,
13324 						    _MM_FROUND_CUR_DIRECTION);
13325 }
13326 
13327 extern __inline __m512d
13328 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_fmaddsub_pd(__m512d __A,__m512d __B,__m512d __C)13329 _mm512_fmaddsub_pd (__m512d __A, __m512d __B, __m512d __C)
13330 {
13331   return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
13332 						       (__v8df) __B,
13333 						       (__v8df) __C,
13334 						       (__mmask8) -1,
13335 						       _MM_FROUND_CUR_DIRECTION);
13336 }
13337 
13338 extern __inline __m512d
13339 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_fmaddsub_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)13340 _mm512_mask_fmaddsub_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
13341 {
13342   return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
13343 						       (__v8df) __B,
13344 						       (__v8df) __C,
13345 						       (__mmask8) __U,
13346 						       _MM_FROUND_CUR_DIRECTION);
13347 }
13348 
13349 extern __inline __m512d
13350 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask3_fmaddsub_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)13351 _mm512_mask3_fmaddsub_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
13352 {
13353   return (__m512d) __builtin_ia32_vfmaddsubpd512_mask3 ((__v8df) __A,
13354 							(__v8df) __B,
13355 							(__v8df) __C,
13356 							(__mmask8) __U,
13357 							_MM_FROUND_CUR_DIRECTION);
13358 }
13359 
13360 extern __inline __m512d
13361 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_fmaddsub_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)13362 _mm512_maskz_fmaddsub_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
13363 {
13364   return (__m512d) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df) __A,
13365 							(__v8df) __B,
13366 							(__v8df) __C,
13367 							(__mmask8) __U,
13368 							_MM_FROUND_CUR_DIRECTION);
13369 }
13370 
13371 extern __inline __m512
13372 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_fmaddsub_ps(__m512 __A,__m512 __B,__m512 __C)13373 _mm512_fmaddsub_ps (__m512 __A, __m512 __B, __m512 __C)
13374 {
13375   return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
13376 						      (__v16sf) __B,
13377 						      (__v16sf) __C,
13378 						      (__mmask16) -1,
13379 						      _MM_FROUND_CUR_DIRECTION);
13380 }
13381 
13382 extern __inline __m512
13383 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_fmaddsub_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)13384 _mm512_mask_fmaddsub_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
13385 {
13386   return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
13387 						      (__v16sf) __B,
13388 						      (__v16sf) __C,
13389 						      (__mmask16) __U,
13390 						      _MM_FROUND_CUR_DIRECTION);
13391 }
13392 
13393 extern __inline __m512
13394 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask3_fmaddsub_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)13395 _mm512_mask3_fmaddsub_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
13396 {
13397   return (__m512) __builtin_ia32_vfmaddsubps512_mask3 ((__v16sf) __A,
13398 						       (__v16sf) __B,
13399 						       (__v16sf) __C,
13400 						       (__mmask16) __U,
13401 						       _MM_FROUND_CUR_DIRECTION);
13402 }
13403 
13404 extern __inline __m512
13405 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_fmaddsub_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)13406 _mm512_maskz_fmaddsub_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
13407 {
13408   return (__m512) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf) __A,
13409 						       (__v16sf) __B,
13410 						       (__v16sf) __C,
13411 						       (__mmask16) __U,
13412 						       _MM_FROUND_CUR_DIRECTION);
13413 }
13414 
13415 extern __inline __m512d
13416 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_fmsubadd_pd(__m512d __A,__m512d __B,__m512d __C)13417 _mm512_fmsubadd_pd (__m512d __A, __m512d __B, __m512d __C)
13418 {
13419   return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
13420 						       (__v8df) __B,
13421 						       -(__v8df) __C,
13422 						       (__mmask8) -1,
13423 						       _MM_FROUND_CUR_DIRECTION);
13424 }
13425 
13426 extern __inline __m512d
13427 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_fmsubadd_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)13428 _mm512_mask_fmsubadd_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
13429 {
13430   return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
13431 						       (__v8df) __B,
13432 						       -(__v8df) __C,
13433 						       (__mmask8) __U,
13434 						       _MM_FROUND_CUR_DIRECTION);
13435 }
13436 
13437 extern __inline __m512d
13438 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask3_fmsubadd_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)13439 _mm512_mask3_fmsubadd_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
13440 {
13441   return (__m512d) __builtin_ia32_vfmsubaddpd512_mask3 ((__v8df) __A,
13442 							(__v8df) __B,
13443 							(__v8df) __C,
13444 							(__mmask8) __U,
13445 							_MM_FROUND_CUR_DIRECTION);
13446 }
13447 
13448 extern __inline __m512d
13449 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_fmsubadd_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)13450 _mm512_maskz_fmsubadd_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
13451 {
13452   return (__m512d) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df) __A,
13453 							(__v8df) __B,
13454 							-(__v8df) __C,
13455 							(__mmask8) __U,
13456 							_MM_FROUND_CUR_DIRECTION);
13457 }
13458 
13459 extern __inline __m512
13460 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_fmsubadd_ps(__m512 __A,__m512 __B,__m512 __C)13461 _mm512_fmsubadd_ps (__m512 __A, __m512 __B, __m512 __C)
13462 {
13463   return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
13464 						      (__v16sf) __B,
13465 						      -(__v16sf) __C,
13466 						      (__mmask16) -1,
13467 						      _MM_FROUND_CUR_DIRECTION);
13468 }
13469 
13470 extern __inline __m512
13471 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_fmsubadd_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)13472 _mm512_mask_fmsubadd_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
13473 {
13474   return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
13475 						      (__v16sf) __B,
13476 						      -(__v16sf) __C,
13477 						      (__mmask16) __U,
13478 						      _MM_FROUND_CUR_DIRECTION);
13479 }
13480 
13481 extern __inline __m512
13482 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask3_fmsubadd_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)13483 _mm512_mask3_fmsubadd_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
13484 {
13485   return (__m512) __builtin_ia32_vfmsubaddps512_mask3 ((__v16sf) __A,
13486 						       (__v16sf) __B,
13487 						       (__v16sf) __C,
13488 						       (__mmask16) __U,
13489 						       _MM_FROUND_CUR_DIRECTION);
13490 }
13491 
13492 extern __inline __m512
13493 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_fmsubadd_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)13494 _mm512_maskz_fmsubadd_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
13495 {
13496   return (__m512) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf) __A,
13497 						       (__v16sf) __B,
13498 						       -(__v16sf) __C,
13499 						       (__mmask16) __U,
13500 						       _MM_FROUND_CUR_DIRECTION);
13501 }
13502 
13503 extern __inline __m512d
13504 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_fnmadd_pd(__m512d __A,__m512d __B,__m512d __C)13505 _mm512_fnmadd_pd (__m512d __A, __m512d __B, __m512d __C)
13506 {
13507   return (__m512d) __builtin_ia32_vfnmaddpd512_mask ((__v8df) __A,
13508 						     (__v8df) __B,
13509 						     (__v8df) __C,
13510 						     (__mmask8) -1,
13511 						     _MM_FROUND_CUR_DIRECTION);
13512 }
13513 
13514 extern __inline __m512d
13515 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_fnmadd_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)13516 _mm512_mask_fnmadd_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
13517 {
13518   return (__m512d) __builtin_ia32_vfnmaddpd512_mask ((__v8df) __A,
13519 						     (__v8df) __B,
13520 						     (__v8df) __C,
13521 						     (__mmask8) __U,
13522 						     _MM_FROUND_CUR_DIRECTION);
13523 }
13524 
13525 extern __inline __m512d
13526 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask3_fnmadd_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)13527 _mm512_mask3_fnmadd_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
13528 {
13529   return (__m512d) __builtin_ia32_vfnmaddpd512_mask3 ((__v8df) __A,
13530 						      (__v8df) __B,
13531 						      (__v8df) __C,
13532 						      (__mmask8) __U,
13533 						      _MM_FROUND_CUR_DIRECTION);
13534 }
13535 
13536 extern __inline __m512d
13537 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_fnmadd_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)13538 _mm512_maskz_fnmadd_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
13539 {
13540   return (__m512d) __builtin_ia32_vfnmaddpd512_maskz ((__v8df) __A,
13541 						      (__v8df) __B,
13542 						      (__v8df) __C,
13543 						      (__mmask8) __U,
13544 						      _MM_FROUND_CUR_DIRECTION);
13545 }
13546 
13547 extern __inline __m512
13548 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_fnmadd_ps(__m512 __A,__m512 __B,__m512 __C)13549 _mm512_fnmadd_ps (__m512 __A, __m512 __B, __m512 __C)
13550 {
13551   return (__m512) __builtin_ia32_vfnmaddps512_mask ((__v16sf) __A,
13552 						    (__v16sf) __B,
13553 						    (__v16sf) __C,
13554 						    (__mmask16) -1,
13555 						    _MM_FROUND_CUR_DIRECTION);
13556 }
13557 
13558 extern __inline __m512
13559 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_fnmadd_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)13560 _mm512_mask_fnmadd_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
13561 {
13562   return (__m512) __builtin_ia32_vfnmaddps512_mask ((__v16sf) __A,
13563 						    (__v16sf) __B,
13564 						    (__v16sf) __C,
13565 						    (__mmask16) __U,
13566 						    _MM_FROUND_CUR_DIRECTION);
13567 }
13568 
13569 extern __inline __m512
13570 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask3_fnmadd_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)13571 _mm512_mask3_fnmadd_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
13572 {
13573   return (__m512) __builtin_ia32_vfnmaddps512_mask3 ((__v16sf) __A,
13574 						     (__v16sf) __B,
13575 						     (__v16sf) __C,
13576 						     (__mmask16) __U,
13577 						     _MM_FROUND_CUR_DIRECTION);
13578 }
13579 
13580 extern __inline __m512
13581 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_fnmadd_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)13582 _mm512_maskz_fnmadd_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
13583 {
13584   return (__m512) __builtin_ia32_vfnmaddps512_maskz ((__v16sf) __A,
13585 						     (__v16sf) __B,
13586 						     (__v16sf) __C,
13587 						     (__mmask16) __U,
13588 						     _MM_FROUND_CUR_DIRECTION);
13589 }
13590 
13591 extern __inline __m512d
13592 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_fnmsub_pd(__m512d __A,__m512d __B,__m512d __C)13593 _mm512_fnmsub_pd (__m512d __A, __m512d __B, __m512d __C)
13594 {
13595   return (__m512d) __builtin_ia32_vfnmsubpd512_mask ((__v8df) __A,
13596 						     (__v8df) __B,
13597 						     (__v8df) __C,
13598 						     (__mmask8) -1,
13599 						     _MM_FROUND_CUR_DIRECTION);
13600 }
13601 
13602 extern __inline __m512d
13603 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_fnmsub_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)13604 _mm512_mask_fnmsub_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
13605 {
13606   return (__m512d) __builtin_ia32_vfnmsubpd512_mask ((__v8df) __A,
13607 						     (__v8df) __B,
13608 						     (__v8df) __C,
13609 						     (__mmask8) __U,
13610 						     _MM_FROUND_CUR_DIRECTION);
13611 }
13612 
13613 extern __inline __m512d
13614 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask3_fnmsub_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)13615 _mm512_mask3_fnmsub_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
13616 {
13617   return (__m512d) __builtin_ia32_vfnmsubpd512_mask3 ((__v8df) __A,
13618 						      (__v8df) __B,
13619 						      (__v8df) __C,
13620 						      (__mmask8) __U,
13621 						      _MM_FROUND_CUR_DIRECTION);
13622 }
13623 
13624 extern __inline __m512d
13625 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_fnmsub_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)13626 _mm512_maskz_fnmsub_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
13627 {
13628   return (__m512d) __builtin_ia32_vfnmsubpd512_maskz ((__v8df) __A,
13629 						      (__v8df) __B,
13630 						      (__v8df) __C,
13631 						      (__mmask8) __U,
13632 						      _MM_FROUND_CUR_DIRECTION);
13633 }
13634 
13635 extern __inline __m512
13636 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_fnmsub_ps(__m512 __A,__m512 __B,__m512 __C)13637 _mm512_fnmsub_ps (__m512 __A, __m512 __B, __m512 __C)
13638 {
13639   return (__m512) __builtin_ia32_vfnmsubps512_mask ((__v16sf) __A,
13640 						    (__v16sf) __B,
13641 						    (__v16sf) __C,
13642 						    (__mmask16) -1,
13643 						    _MM_FROUND_CUR_DIRECTION);
13644 }
13645 
13646 extern __inline __m512
13647 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_fnmsub_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)13648 _mm512_mask_fnmsub_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
13649 {
13650   return (__m512) __builtin_ia32_vfnmsubps512_mask ((__v16sf) __A,
13651 						    (__v16sf) __B,
13652 						    (__v16sf) __C,
13653 						    (__mmask16) __U,
13654 						    _MM_FROUND_CUR_DIRECTION);
13655 }
13656 
13657 extern __inline __m512
13658 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask3_fnmsub_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)13659 _mm512_mask3_fnmsub_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
13660 {
13661   return (__m512) __builtin_ia32_vfnmsubps512_mask3 ((__v16sf) __A,
13662 						     (__v16sf) __B,
13663 						     (__v16sf) __C,
13664 						     (__mmask16) __U,
13665 						     _MM_FROUND_CUR_DIRECTION);
13666 }
13667 
13668 extern __inline __m512
13669 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_fnmsub_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)13670 _mm512_maskz_fnmsub_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
13671 {
13672   return (__m512) __builtin_ia32_vfnmsubps512_maskz ((__v16sf) __A,
13673 						     (__v16sf) __B,
13674 						     (__v16sf) __C,
13675 						     (__mmask16) __U,
13676 						     _MM_FROUND_CUR_DIRECTION);
13677 }
13678 
13679 extern __inline __m256i
13680 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvttpd_epi32(__m512d __A)13681 _mm512_cvttpd_epi32 (__m512d __A)
13682 {
13683   return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A,
13684 						     (__v8si)
13685 						     _mm256_undefined_si256 (),
13686 						     (__mmask8) -1,
13687 						     _MM_FROUND_CUR_DIRECTION);
13688 }
13689 
13690 extern __inline __m256i
13691 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvttpd_epi32(__m256i __W,__mmask8 __U,__m512d __A)13692 _mm512_mask_cvttpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A)
13693 {
13694   return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A,
13695 						     (__v8si) __W,
13696 						     (__mmask8) __U,
13697 						     _MM_FROUND_CUR_DIRECTION);
13698 }
13699 
13700 extern __inline __m256i
13701 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvttpd_epi32(__mmask8 __U,__m512d __A)13702 _mm512_maskz_cvttpd_epi32 (__mmask8 __U, __m512d __A)
13703 {
13704   return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A,
13705 						     (__v8si)
13706 						     _mm256_setzero_si256 (),
13707 						     (__mmask8) __U,
13708 						     _MM_FROUND_CUR_DIRECTION);
13709 }
13710 
13711 extern __inline __m256i
13712 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvttpd_epu32(__m512d __A)13713 _mm512_cvttpd_epu32 (__m512d __A)
13714 {
13715   return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,
13716 						      (__v8si)
13717 						      _mm256_undefined_si256 (),
13718 						      (__mmask8) -1,
13719 						      _MM_FROUND_CUR_DIRECTION);
13720 }
13721 
13722 extern __inline __m256i
13723 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvttpd_epu32(__m256i __W,__mmask8 __U,__m512d __A)13724 _mm512_mask_cvttpd_epu32 (__m256i __W, __mmask8 __U, __m512d __A)
13725 {
13726   return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,
13727 						      (__v8si) __W,
13728 						      (__mmask8) __U,
13729 						      _MM_FROUND_CUR_DIRECTION);
13730 }
13731 
13732 extern __inline __m256i
13733 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvttpd_epu32(__mmask8 __U,__m512d __A)13734 _mm512_maskz_cvttpd_epu32 (__mmask8 __U, __m512d __A)
13735 {
13736   return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,
13737 						      (__v8si)
13738 						      _mm256_setzero_si256 (),
13739 						      (__mmask8) __U,
13740 						      _MM_FROUND_CUR_DIRECTION);
13741 }
13742 
13743 extern __inline __m256i
13744 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtpd_epi32(__m512d __A)13745 _mm512_cvtpd_epi32 (__m512d __A)
13746 {
13747   return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A,
13748 						    (__v8si)
13749 						    _mm256_undefined_si256 (),
13750 						    (__mmask8) -1,
13751 						    _MM_FROUND_CUR_DIRECTION);
13752 }
13753 
13754 extern __inline __m256i
13755 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtpd_epi32(__m256i __W,__mmask8 __U,__m512d __A)13756 _mm512_mask_cvtpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A)
13757 {
13758   return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A,
13759 						    (__v8si) __W,
13760 						    (__mmask8) __U,
13761 						    _MM_FROUND_CUR_DIRECTION);
13762 }
13763 
13764 extern __inline __m256i
13765 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtpd_epi32(__mmask8 __U,__m512d __A)13766 _mm512_maskz_cvtpd_epi32 (__mmask8 __U, __m512d __A)
13767 {
13768   return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A,
13769 						    (__v8si)
13770 						    _mm256_setzero_si256 (),
13771 						    (__mmask8) __U,
13772 						    _MM_FROUND_CUR_DIRECTION);
13773 }
13774 
13775 extern __inline __m256i
13776 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtpd_epu32(__m512d __A)13777 _mm512_cvtpd_epu32 (__m512d __A)
13778 {
13779   return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A,
13780 						     (__v8si)
13781 						     _mm256_undefined_si256 (),
13782 						     (__mmask8) -1,
13783 						     _MM_FROUND_CUR_DIRECTION);
13784 }
13785 
13786 extern __inline __m256i
13787 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtpd_epu32(__m256i __W,__mmask8 __U,__m512d __A)13788 _mm512_mask_cvtpd_epu32 (__m256i __W, __mmask8 __U, __m512d __A)
13789 {
13790   return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A,
13791 						     (__v8si) __W,
13792 						     (__mmask8) __U,
13793 						     _MM_FROUND_CUR_DIRECTION);
13794 }
13795 
13796 extern __inline __m256i
13797 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtpd_epu32(__mmask8 __U,__m512d __A)13798 _mm512_maskz_cvtpd_epu32 (__mmask8 __U, __m512d __A)
13799 {
13800   return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A,
13801 						     (__v8si)
13802 						     _mm256_setzero_si256 (),
13803 						     (__mmask8) __U,
13804 						     _MM_FROUND_CUR_DIRECTION);
13805 }
13806 
13807 extern __inline __m512i
13808 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvttps_epi32(__m512 __A)13809 _mm512_cvttps_epi32 (__m512 __A)
13810 {
13811   return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A,
13812 						     (__v16si)
13813 						     _mm512_undefined_epi32 (),
13814 						     (__mmask16) -1,
13815 						     _MM_FROUND_CUR_DIRECTION);
13816 }
13817 
13818 extern __inline __m512i
13819 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvttps_epi32(__m512i __W,__mmask16 __U,__m512 __A)13820 _mm512_mask_cvttps_epi32 (__m512i __W, __mmask16 __U, __m512 __A)
13821 {
13822   return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A,
13823 						     (__v16si) __W,
13824 						     (__mmask16) __U,
13825 						     _MM_FROUND_CUR_DIRECTION);
13826 }
13827 
13828 extern __inline __m512i
13829 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvttps_epi32(__mmask16 __U,__m512 __A)13830 _mm512_maskz_cvttps_epi32 (__mmask16 __U, __m512 __A)
13831 {
13832   return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A,
13833 						     (__v16si)
13834 						     _mm512_setzero_si512 (),
13835 						     (__mmask16) __U,
13836 						     _MM_FROUND_CUR_DIRECTION);
13837 }
13838 
13839 extern __inline __m512i
13840 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvttps_epu32(__m512 __A)13841 _mm512_cvttps_epu32 (__m512 __A)
13842 {
13843   return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A,
13844 						      (__v16si)
13845 						      _mm512_undefined_epi32 (),
13846 						      (__mmask16) -1,
13847 						      _MM_FROUND_CUR_DIRECTION);
13848 }
13849 
13850 extern __inline __m512i
13851 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvttps_epu32(__m512i __W,__mmask16 __U,__m512 __A)13852 _mm512_mask_cvttps_epu32 (__m512i __W, __mmask16 __U, __m512 __A)
13853 {
13854   return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A,
13855 						      (__v16si) __W,
13856 						      (__mmask16) __U,
13857 						      _MM_FROUND_CUR_DIRECTION);
13858 }
13859 
13860 extern __inline __m512i
13861 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvttps_epu32(__mmask16 __U,__m512 __A)13862 _mm512_maskz_cvttps_epu32 (__mmask16 __U, __m512 __A)
13863 {
13864   return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A,
13865 						      (__v16si)
13866 						      _mm512_setzero_si512 (),
13867 						      (__mmask16) __U,
13868 						      _MM_FROUND_CUR_DIRECTION);
13869 }
13870 
13871 extern __inline __m512i
13872 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtps_epi32(__m512 __A)13873 _mm512_cvtps_epi32 (__m512 __A)
13874 {
13875   return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A,
13876 						    (__v16si)
13877 						    _mm512_undefined_epi32 (),
13878 						    (__mmask16) -1,
13879 						    _MM_FROUND_CUR_DIRECTION);
13880 }
13881 
13882 extern __inline __m512i
13883 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtps_epi32(__m512i __W,__mmask16 __U,__m512 __A)13884 _mm512_mask_cvtps_epi32 (__m512i __W, __mmask16 __U, __m512 __A)
13885 {
13886   return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A,
13887 						    (__v16si) __W,
13888 						    (__mmask16) __U,
13889 						    _MM_FROUND_CUR_DIRECTION);
13890 }
13891 
13892 extern __inline __m512i
13893 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtps_epi32(__mmask16 __U,__m512 __A)13894 _mm512_maskz_cvtps_epi32 (__mmask16 __U, __m512 __A)
13895 {
13896   return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A,
13897 						    (__v16si)
13898 						    _mm512_setzero_si512 (),
13899 						    (__mmask16) __U,
13900 						    _MM_FROUND_CUR_DIRECTION);
13901 }
13902 
13903 extern __inline __m512i
13904 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtps_epu32(__m512 __A)13905 _mm512_cvtps_epu32 (__m512 __A)
13906 {
13907   return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,
13908 						     (__v16si)
13909 						     _mm512_undefined_epi32 (),
13910 						     (__mmask16) -1,
13911 						     _MM_FROUND_CUR_DIRECTION);
13912 }
13913 
13914 extern __inline __m512i
13915 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtps_epu32(__m512i __W,__mmask16 __U,__m512 __A)13916 _mm512_mask_cvtps_epu32 (__m512i __W, __mmask16 __U, __m512 __A)
13917 {
13918   return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,
13919 						     (__v16si) __W,
13920 						     (__mmask16) __U,
13921 						     _MM_FROUND_CUR_DIRECTION);
13922 }
13923 
13924 extern __inline __m512i
13925 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtps_epu32(__mmask16 __U,__m512 __A)13926 _mm512_maskz_cvtps_epu32 (__mmask16 __U, __m512 __A)
13927 {
13928   return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,
13929 						     (__v16si)
13930 						     _mm512_setzero_si512 (),
13931 						     (__mmask16) __U,
13932 						     _MM_FROUND_CUR_DIRECTION);
13933 }
13934 
13935 extern __inline double
13936 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtsd_f64(__m512d __A)13937 _mm512_cvtsd_f64 (__m512d __A)
13938 {
13939   return __A[0];
13940 }
13941 
13942 extern __inline float
13943 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtss_f32(__m512 __A)13944 _mm512_cvtss_f32 (__m512 __A)
13945 {
13946   return __A[0];
13947 }
13948 
13949 #ifdef __x86_64__
13950 extern __inline __m128
13951 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvtu64_ss(__m128 __A,unsigned long long __B)13952 _mm_cvtu64_ss (__m128 __A, unsigned long long __B)
13953 {
13954   return (__m128) __builtin_ia32_cvtusi2ss64 ((__v4sf) __A, __B,
13955 					      _MM_FROUND_CUR_DIRECTION);
13956 }
13957 
13958 extern __inline __m128d
13959 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvtu64_sd(__m128d __A,unsigned long long __B)13960 _mm_cvtu64_sd (__m128d __A, unsigned long long __B)
13961 {
13962   return (__m128d) __builtin_ia32_cvtusi2sd64 ((__v2df) __A, __B,
13963 					       _MM_FROUND_CUR_DIRECTION);
13964 }
13965 #endif
13966 
13967 extern __inline __m128
13968 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvtu32_ss(__m128 __A,unsigned __B)13969 _mm_cvtu32_ss (__m128 __A, unsigned __B)
13970 {
13971   return (__m128) __builtin_ia32_cvtusi2ss32 ((__v4sf) __A, __B,
13972 					      _MM_FROUND_CUR_DIRECTION);
13973 }
13974 
13975 extern __inline __m512
13976 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtepi32_ps(__m512i __A)13977 _mm512_cvtepi32_ps (__m512i __A)
13978 {
13979   return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A,
13980 						   (__v16sf)
13981 						   _mm512_undefined_ps (),
13982 						   (__mmask16) -1,
13983 						   _MM_FROUND_CUR_DIRECTION);
13984 }
13985 
13986 extern __inline __m512
13987 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtepi32_ps(__m512 __W,__mmask16 __U,__m512i __A)13988 _mm512_mask_cvtepi32_ps (__m512 __W, __mmask16 __U, __m512i __A)
13989 {
13990   return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A,
13991 						   (__v16sf) __W,
13992 						   (__mmask16) __U,
13993 						   _MM_FROUND_CUR_DIRECTION);
13994 }
13995 
13996 extern __inline __m512
13997 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtepi32_ps(__mmask16 __U,__m512i __A)13998 _mm512_maskz_cvtepi32_ps (__mmask16 __U, __m512i __A)
13999 {
14000   return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A,
14001 						   (__v16sf)
14002 						   _mm512_setzero_ps (),
14003 						   (__mmask16) __U,
14004 						   _MM_FROUND_CUR_DIRECTION);
14005 }
14006 
14007 extern __inline __m512
14008 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtepu32_ps(__m512i __A)14009 _mm512_cvtepu32_ps (__m512i __A)
14010 {
14011   return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A,
14012 						    (__v16sf)
14013 						    _mm512_undefined_ps (),
14014 						    (__mmask16) -1,
14015 						    _MM_FROUND_CUR_DIRECTION);
14016 }
14017 
14018 extern __inline __m512
14019 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtepu32_ps(__m512 __W,__mmask16 __U,__m512i __A)14020 _mm512_mask_cvtepu32_ps (__m512 __W, __mmask16 __U, __m512i __A)
14021 {
14022   return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A,
14023 						    (__v16sf) __W,
14024 						    (__mmask16) __U,
14025 						    _MM_FROUND_CUR_DIRECTION);
14026 }
14027 
14028 extern __inline __m512
14029 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtepu32_ps(__mmask16 __U,__m512i __A)14030 _mm512_maskz_cvtepu32_ps (__mmask16 __U, __m512i __A)
14031 {
14032   return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A,
14033 						    (__v16sf)
14034 						    _mm512_setzero_ps (),
14035 						    (__mmask16) __U,
14036 						    _MM_FROUND_CUR_DIRECTION);
14037 }
14038 
14039 #ifdef __OPTIMIZE__
14040 extern __inline __m512d
14041 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_fixupimm_pd(__m512d __A,__m512d __B,__m512i __C,const int __imm)14042 _mm512_fixupimm_pd (__m512d __A, __m512d __B, __m512i __C, const int __imm)
14043 {
14044   return (__m512d) __builtin_ia32_fixupimmpd512_mask ((__v8df) __A,
14045 						      (__v8df) __B,
14046 						      (__v8di) __C,
14047 						      __imm,
14048 						      (__mmask8) -1,
14049 						      _MM_FROUND_CUR_DIRECTION);
14050 }
14051 
14052 extern __inline __m512d
14053 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_fixupimm_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512i __C,const int __imm)14054 _mm512_mask_fixupimm_pd (__m512d __A, __mmask8 __U, __m512d __B,
14055 			 __m512i __C, const int __imm)
14056 {
14057   return (__m512d) __builtin_ia32_fixupimmpd512_mask ((__v8df) __A,
14058 						      (__v8df) __B,
14059 						      (__v8di) __C,
14060 						      __imm,
14061 						      (__mmask8) __U,
14062 						      _MM_FROUND_CUR_DIRECTION);
14063 }
14064 
14065 extern __inline __m512d
14066 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_fixupimm_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512i __C,const int __imm)14067 _mm512_maskz_fixupimm_pd (__mmask8 __U, __m512d __A, __m512d __B,
14068 			  __m512i __C, const int __imm)
14069 {
14070   return (__m512d) __builtin_ia32_fixupimmpd512_maskz ((__v8df) __A,
14071 						       (__v8df) __B,
14072 						       (__v8di) __C,
14073 						       __imm,
14074 						       (__mmask8) __U,
14075 						       _MM_FROUND_CUR_DIRECTION);
14076 }
14077 
14078 extern __inline __m512
14079 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_fixupimm_ps(__m512 __A,__m512 __B,__m512i __C,const int __imm)14080 _mm512_fixupimm_ps (__m512 __A, __m512 __B, __m512i __C, const int __imm)
14081 {
14082   return (__m512) __builtin_ia32_fixupimmps512_mask ((__v16sf) __A,
14083 						     (__v16sf) __B,
14084 						     (__v16si) __C,
14085 						     __imm,
14086 						     (__mmask16) -1,
14087 						     _MM_FROUND_CUR_DIRECTION);
14088 }
14089 
14090 extern __inline __m512
14091 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_fixupimm_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512i __C,const int __imm)14092 _mm512_mask_fixupimm_ps (__m512 __A, __mmask16 __U, __m512 __B,
14093 			 __m512i __C, const int __imm)
14094 {
14095   return (__m512) __builtin_ia32_fixupimmps512_mask ((__v16sf) __A,
14096 						     (__v16sf) __B,
14097 						     (__v16si) __C,
14098 						     __imm,
14099 						     (__mmask16) __U,
14100 						     _MM_FROUND_CUR_DIRECTION);
14101 }
14102 
14103 extern __inline __m512
14104 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_fixupimm_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512i __C,const int __imm)14105 _mm512_maskz_fixupimm_ps (__mmask16 __U, __m512 __A, __m512 __B,
14106 			  __m512i __C, const int __imm)
14107 {
14108   return (__m512) __builtin_ia32_fixupimmps512_maskz ((__v16sf) __A,
14109 						      (__v16sf) __B,
14110 						      (__v16si) __C,
14111 						      __imm,
14112 						      (__mmask16) __U,
14113 						      _MM_FROUND_CUR_DIRECTION);
14114 }
14115 
14116 extern __inline __m128d
14117 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_fixupimm_sd(__m128d __A,__m128d __B,__m128i __C,const int __imm)14118 _mm_fixupimm_sd (__m128d __A, __m128d __B, __m128i __C, const int __imm)
14119 {
14120   return (__m128d) __builtin_ia32_fixupimmsd_mask ((__v2df) __A,
14121 						   (__v2df) __B,
14122 						   (__v2di) __C, __imm,
14123 						   (__mmask8) -1,
14124 						   _MM_FROUND_CUR_DIRECTION);
14125 }
14126 
14127 extern __inline __m128d
14128 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_fixupimm_sd(__m128d __A,__mmask8 __U,__m128d __B,__m128i __C,const int __imm)14129 _mm_mask_fixupimm_sd (__m128d __A, __mmask8 __U, __m128d __B,
14130 		      __m128i __C, const int __imm)
14131 {
14132   return (__m128d) __builtin_ia32_fixupimmsd_mask ((__v2df) __A,
14133 						   (__v2df) __B,
14134 						   (__v2di) __C, __imm,
14135 						   (__mmask8) __U,
14136 						   _MM_FROUND_CUR_DIRECTION);
14137 }
14138 
14139 extern __inline __m128d
14140 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_fixupimm_sd(__mmask8 __U,__m128d __A,__m128d __B,__m128i __C,const int __imm)14141 _mm_maskz_fixupimm_sd (__mmask8 __U, __m128d __A, __m128d __B,
14142 		       __m128i __C, const int __imm)
14143 {
14144   return (__m128d) __builtin_ia32_fixupimmsd_maskz ((__v2df) __A,
14145 						    (__v2df) __B,
14146 						    (__v2di) __C,
14147 						    __imm,
14148 						    (__mmask8) __U,
14149 						    _MM_FROUND_CUR_DIRECTION);
14150 }
14151 
14152 extern __inline __m128
14153 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_fixupimm_ss(__m128 __A,__m128 __B,__m128i __C,const int __imm)14154 _mm_fixupimm_ss (__m128 __A, __m128 __B, __m128i __C, const int __imm)
14155 {
14156   return (__m128) __builtin_ia32_fixupimmss_mask ((__v4sf) __A,
14157 						  (__v4sf) __B,
14158 						  (__v4si) __C, __imm,
14159 						  (__mmask8) -1,
14160 						  _MM_FROUND_CUR_DIRECTION);
14161 }
14162 
14163 extern __inline __m128
14164 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_fixupimm_ss(__m128 __A,__mmask8 __U,__m128 __B,__m128i __C,const int __imm)14165 _mm_mask_fixupimm_ss (__m128 __A, __mmask8 __U, __m128 __B,
14166 		      __m128i __C, const int __imm)
14167 {
14168   return (__m128) __builtin_ia32_fixupimmss_mask ((__v4sf) __A,
14169 						  (__v4sf) __B,
14170 						  (__v4si) __C, __imm,
14171 						  (__mmask8) __U,
14172 						  _MM_FROUND_CUR_DIRECTION);
14173 }
14174 
14175 extern __inline __m128
14176 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_fixupimm_ss(__mmask8 __U,__m128 __A,__m128 __B,__m128i __C,const int __imm)14177 _mm_maskz_fixupimm_ss (__mmask8 __U, __m128 __A, __m128 __B,
14178 		       __m128i __C, const int __imm)
14179 {
14180   return (__m128) __builtin_ia32_fixupimmss_maskz ((__v4sf) __A,
14181 						   (__v4sf) __B,
14182 						   (__v4si) __C, __imm,
14183 						   (__mmask8) __U,
14184 						   _MM_FROUND_CUR_DIRECTION);
14185 }
14186 #else
14187 #define _mm512_fixupimm_pd(X, Y, Z, C)					\
14188   ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X),	\
14189       (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C),		\
14190       (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
14191 
14192 #define _mm512_mask_fixupimm_pd(X, U, Y, Z, C)                          \
14193   ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X),    \
14194       (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C),             \
14195       (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
14196 
14197 #define _mm512_maskz_fixupimm_pd(U, X, Y, Z, C)                         \
14198   ((__m512d)__builtin_ia32_fixupimmpd512_maskz ((__v8df)(__m512d)(X),   \
14199       (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C),             \
14200       (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
14201 
14202 #define _mm512_fixupimm_ps(X, Y, Z, C)					\
14203   ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X),	\
14204     (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C),		\
14205     (__mmask16)(-1), _MM_FROUND_CUR_DIRECTION))
14206 
14207 #define _mm512_mask_fixupimm_ps(X, U, Y, Z, C)                          \
14208   ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X),     \
14209     (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C),              \
14210     (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
14211 
14212 #define _mm512_maskz_fixupimm_ps(U, X, Y, Z, C)                         \
14213   ((__m512)__builtin_ia32_fixupimmps512_maskz ((__v16sf)(__m512)(X),    \
14214     (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C),              \
14215     (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
14216 
14217 #define _mm_fixupimm_sd(X, Y, Z, C)					\
14218     ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X),	\
14219       (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C),		\
14220       (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
14221 
14222 #define _mm_mask_fixupimm_sd(X, U, Y, Z, C)				\
14223     ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X),	\
14224       (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C),		\
14225       (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
14226 
14227 #define _mm_maskz_fixupimm_sd(U, X, Y, Z, C)				\
14228     ((__m128d)__builtin_ia32_fixupimmsd_maskz ((__v2df)(__m128d)(X),	\
14229       (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C),		\
14230       (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
14231 
14232 #define _mm_fixupimm_ss(X, Y, Z, C)					\
14233     ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X),	\
14234       (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C),		\
14235       (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
14236 
14237 #define _mm_mask_fixupimm_ss(X, U, Y, Z, C)				\
14238     ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X),	\
14239       (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C),		\
14240       (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
14241 
14242 #define _mm_maskz_fixupimm_ss(U, X, Y, Z, C)				\
14243     ((__m128)__builtin_ia32_fixupimmss_maskz ((__v4sf)(__m128)(X),	\
14244       (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C),		\
14245       (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
14246 #endif
14247 
14248 #ifdef __x86_64__
14249 extern __inline unsigned long long
14250 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvtss_u64(__m128 __A)14251 _mm_cvtss_u64 (__m128 __A)
14252 {
14253   return (unsigned long long) __builtin_ia32_vcvtss2usi64 ((__v4sf)
14254 							   __A,
14255 							   _MM_FROUND_CUR_DIRECTION);
14256 }
14257 
14258 extern __inline unsigned long long
14259 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvttss_u64(__m128 __A)14260 _mm_cvttss_u64 (__m128 __A)
14261 {
14262   return (unsigned long long) __builtin_ia32_vcvttss2usi64 ((__v4sf)
14263 							    __A,
14264 							    _MM_FROUND_CUR_DIRECTION);
14265 }
14266 
14267 extern __inline long long
14268 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvttss_i64(__m128 __A)14269 _mm_cvttss_i64 (__m128 __A)
14270 {
14271   return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf) __A,
14272 						  _MM_FROUND_CUR_DIRECTION);
14273 }
14274 #endif /* __x86_64__ */
14275 
14276 extern __inline unsigned
14277 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvtss_u32(__m128 __A)14278 _mm_cvtss_u32 (__m128 __A)
14279 {
14280   return (unsigned) __builtin_ia32_vcvtss2usi32 ((__v4sf) __A,
14281 						 _MM_FROUND_CUR_DIRECTION);
14282 }
14283 
14284 extern __inline unsigned
14285 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvttss_u32(__m128 __A)14286 _mm_cvttss_u32 (__m128 __A)
14287 {
14288   return (unsigned) __builtin_ia32_vcvttss2usi32 ((__v4sf) __A,
14289 						  _MM_FROUND_CUR_DIRECTION);
14290 }
14291 
14292 extern __inline int
14293 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvttss_i32(__m128 __A)14294 _mm_cvttss_i32 (__m128 __A)
14295 {
14296   return (int) __builtin_ia32_vcvttss2si32 ((__v4sf) __A,
14297 					    _MM_FROUND_CUR_DIRECTION);
14298 }
14299 
14300 #ifdef __x86_64__
14301 extern __inline unsigned long long
14302 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvtsd_u64(__m128d __A)14303 _mm_cvtsd_u64 (__m128d __A)
14304 {
14305   return (unsigned long long) __builtin_ia32_vcvtsd2usi64 ((__v2df)
14306 							   __A,
14307 							   _MM_FROUND_CUR_DIRECTION);
14308 }
14309 
14310 extern __inline unsigned long long
14311 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvttsd_u64(__m128d __A)14312 _mm_cvttsd_u64 (__m128d __A)
14313 {
14314   return (unsigned long long) __builtin_ia32_vcvttsd2usi64 ((__v2df)
14315 							    __A,
14316 							    _MM_FROUND_CUR_DIRECTION);
14317 }
14318 
14319 extern __inline long long
14320 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvttsd_i64(__m128d __A)14321 _mm_cvttsd_i64 (__m128d __A)
14322 {
14323   return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df) __A,
14324 						  _MM_FROUND_CUR_DIRECTION);
14325 }
14326 #endif /* __x86_64__ */
14327 
14328 extern __inline unsigned
14329 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvtsd_u32(__m128d __A)14330 _mm_cvtsd_u32 (__m128d __A)
14331 {
14332   return (unsigned) __builtin_ia32_vcvtsd2usi32 ((__v2df) __A,
14333 						 _MM_FROUND_CUR_DIRECTION);
14334 }
14335 
14336 extern __inline unsigned
14337 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvttsd_u32(__m128d __A)14338 _mm_cvttsd_u32 (__m128d __A)
14339 {
14340   return (unsigned) __builtin_ia32_vcvttsd2usi32 ((__v2df) __A,
14341 						  _MM_FROUND_CUR_DIRECTION);
14342 }
14343 
14344 extern __inline int
14345 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cvttsd_i32(__m128d __A)14346 _mm_cvttsd_i32 (__m128d __A)
14347 {
14348   return (int) __builtin_ia32_vcvttsd2si32 ((__v2df) __A,
14349 					    _MM_FROUND_CUR_DIRECTION);
14350 }
14351 
14352 extern __inline __m512d
14353 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtps_pd(__m256 __A)14354 _mm512_cvtps_pd (__m256 __A)
14355 {
14356   return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
14357 						    (__v8df)
14358 						    _mm512_undefined_pd (),
14359 						    (__mmask8) -1,
14360 						    _MM_FROUND_CUR_DIRECTION);
14361 }
14362 
14363 extern __inline __m512d
14364 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtps_pd(__m512d __W,__mmask8 __U,__m256 __A)14365 _mm512_mask_cvtps_pd (__m512d __W, __mmask8 __U, __m256 __A)
14366 {
14367   return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
14368 						    (__v8df) __W,
14369 						    (__mmask8) __U,
14370 						    _MM_FROUND_CUR_DIRECTION);
14371 }
14372 
14373 extern __inline __m512d
14374 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtps_pd(__mmask8 __U,__m256 __A)14375 _mm512_maskz_cvtps_pd (__mmask8 __U, __m256 __A)
14376 {
14377   return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
14378 						    (__v8df)
14379 						    _mm512_setzero_pd (),
14380 						    (__mmask8) __U,
14381 						    _MM_FROUND_CUR_DIRECTION);
14382 }
14383 
14384 extern __inline __m512
14385 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtph_ps(__m256i __A)14386 _mm512_cvtph_ps (__m256i __A)
14387 {
14388   return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,
14389 						    (__v16sf)
14390 						    _mm512_undefined_ps (),
14391 						    (__mmask16) -1,
14392 						    _MM_FROUND_CUR_DIRECTION);
14393 }
14394 
14395 extern __inline __m512
14396 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtph_ps(__m512 __W,__mmask16 __U,__m256i __A)14397 _mm512_mask_cvtph_ps (__m512 __W, __mmask16 __U, __m256i __A)
14398 {
14399   return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,
14400 						    (__v16sf) __W,
14401 						    (__mmask16) __U,
14402 						    _MM_FROUND_CUR_DIRECTION);
14403 }
14404 
14405 extern __inline __m512
14406 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtph_ps(__mmask16 __U,__m256i __A)14407 _mm512_maskz_cvtph_ps (__mmask16 __U, __m256i __A)
14408 {
14409   return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,
14410 						    (__v16sf)
14411 						    _mm512_setzero_ps (),
14412 						    (__mmask16) __U,
14413 						    _MM_FROUND_CUR_DIRECTION);
14414 }
14415 
14416 extern __inline __m256
14417 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtpd_ps(__m512d __A)14418 _mm512_cvtpd_ps (__m512d __A)
14419 {
14420   return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,
14421 						   (__v8sf)
14422 						   _mm256_undefined_ps (),
14423 						   (__mmask8) -1,
14424 						   _MM_FROUND_CUR_DIRECTION);
14425 }
14426 
14427 extern __inline __m256
14428 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cvtpd_ps(__m256 __W,__mmask8 __U,__m512d __A)14429 _mm512_mask_cvtpd_ps (__m256 __W, __mmask8 __U, __m512d __A)
14430 {
14431   return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,
14432 						   (__v8sf) __W,
14433 						   (__mmask8) __U,
14434 						   _MM_FROUND_CUR_DIRECTION);
14435 }
14436 
14437 extern __inline __m256
14438 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_cvtpd_ps(__mmask8 __U,__m512d __A)14439 _mm512_maskz_cvtpd_ps (__mmask8 __U, __m512d __A)
14440 {
14441   return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,
14442 						   (__v8sf)
14443 						   _mm256_setzero_ps (),
14444 						   (__mmask8) __U,
14445 						   _MM_FROUND_CUR_DIRECTION);
14446 }
14447 
14448 #ifdef __OPTIMIZE__
14449 extern __inline __m512
14450 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_getexp_ps(__m512 __A)14451 _mm512_getexp_ps (__m512 __A)
14452 {
14453   return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
14454 						   (__v16sf)
14455 						   _mm512_undefined_ps (),
14456 						   (__mmask16) -1,
14457 						   _MM_FROUND_CUR_DIRECTION);
14458 }
14459 
14460 extern __inline __m512
14461 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_getexp_ps(__m512 __W,__mmask16 __U,__m512 __A)14462 _mm512_mask_getexp_ps (__m512 __W, __mmask16 __U, __m512 __A)
14463 {
14464   return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
14465 						   (__v16sf) __W,
14466 						   (__mmask16) __U,
14467 						   _MM_FROUND_CUR_DIRECTION);
14468 }
14469 
14470 extern __inline __m512
14471 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_getexp_ps(__mmask16 __U,__m512 __A)14472 _mm512_maskz_getexp_ps (__mmask16 __U, __m512 __A)
14473 {
14474   return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
14475 						   (__v16sf)
14476 						   _mm512_setzero_ps (),
14477 						   (__mmask16) __U,
14478 						   _MM_FROUND_CUR_DIRECTION);
14479 }
14480 
14481 extern __inline __m512d
14482 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_getexp_pd(__m512d __A)14483 _mm512_getexp_pd (__m512d __A)
14484 {
14485   return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
14486 						    (__v8df)
14487 						    _mm512_undefined_pd (),
14488 						    (__mmask8) -1,
14489 						    _MM_FROUND_CUR_DIRECTION);
14490 }
14491 
14492 extern __inline __m512d
14493 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_getexp_pd(__m512d __W,__mmask8 __U,__m512d __A)14494 _mm512_mask_getexp_pd (__m512d __W, __mmask8 __U, __m512d __A)
14495 {
14496   return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
14497 						    (__v8df) __W,
14498 						    (__mmask8) __U,
14499 						    _MM_FROUND_CUR_DIRECTION);
14500 }
14501 
14502 extern __inline __m512d
14503 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_getexp_pd(__mmask8 __U,__m512d __A)14504 _mm512_maskz_getexp_pd (__mmask8 __U, __m512d __A)
14505 {
14506   return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
14507 						    (__v8df)
14508 						    _mm512_setzero_pd (),
14509 						    (__mmask8) __U,
14510 						    _MM_FROUND_CUR_DIRECTION);
14511 }
14512 
14513 extern __inline __m128
14514 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_getexp_ss(__m128 __A,__m128 __B)14515 _mm_getexp_ss (__m128 __A, __m128 __B)
14516 {
14517   return (__m128) __builtin_ia32_getexpss128_round ((__v4sf) __A,
14518 						    (__v4sf) __B,
14519 						    _MM_FROUND_CUR_DIRECTION);
14520 }
14521 
14522 extern __inline __m128
14523 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_getexp_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)14524 _mm_mask_getexp_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
14525 {
14526   return (__m128) __builtin_ia32_getexpss_mask_round ((__v4sf) __A,
14527 						(__v4sf) __B,
14528 						(__v4sf) __W,
14529 						(__mmask8) __U,
14530 						_MM_FROUND_CUR_DIRECTION);
14531 }
14532 
14533 extern __inline __m128
14534 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_getexp_ss(__mmask8 __U,__m128 __A,__m128 __B)14535 _mm_maskz_getexp_ss (__mmask8 __U, __m128 __A, __m128 __B)
14536 {
14537   return (__m128) __builtin_ia32_getexpss_mask_round ((__v4sf) __A,
14538 						(__v4sf) __B,
14539 						(__v4sf)
14540 						_mm_setzero_ps (),
14541 						(__mmask8) __U,
14542 						_MM_FROUND_CUR_DIRECTION);
14543 }
14544 
14545 extern __inline __m128d
14546 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_getexp_sd(__m128d __A,__m128d __B)14547 _mm_getexp_sd (__m128d __A, __m128d __B)
14548 {
14549   return (__m128d) __builtin_ia32_getexpsd128_round ((__v2df) __A,
14550 						     (__v2df) __B,
14551 						     _MM_FROUND_CUR_DIRECTION);
14552 }
14553 
14554 extern __inline __m128d
14555 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_getexp_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)14556 _mm_mask_getexp_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
14557 {
14558   return (__m128d) __builtin_ia32_getexpsd_mask_round ((__v2df) __A,
14559 						(__v2df) __B,
14560 						(__v2df) __W,
14561 						(__mmask8) __U,
14562 						_MM_FROUND_CUR_DIRECTION);
14563 }
14564 
14565 extern __inline __m128d
14566 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_getexp_sd(__mmask8 __U,__m128d __A,__m128d __B)14567 _mm_maskz_getexp_sd (__mmask8 __U, __m128d __A, __m128d __B)
14568 {
14569   return (__m128d) __builtin_ia32_getexpsd_mask_round ((__v2df) __A,
14570 						(__v2df) __B,
14571 						(__v2df)
14572 						_mm_setzero_pd (),
14573 						(__mmask8) __U,
14574 						_MM_FROUND_CUR_DIRECTION);
14575 }
14576 
14577 extern __inline __m512d
14578 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_getmant_pd(__m512d __A,_MM_MANTISSA_NORM_ENUM __B,_MM_MANTISSA_SIGN_ENUM __C)14579 _mm512_getmant_pd (__m512d __A, _MM_MANTISSA_NORM_ENUM __B,
14580 		   _MM_MANTISSA_SIGN_ENUM __C)
14581 {
14582   return (__m512d) __builtin_ia32_getmantpd512_mask ((__v8df) __A,
14583 						     (__C << 2) | __B,
14584 						     _mm512_undefined_pd (),
14585 						     (__mmask8) -1,
14586 						     _MM_FROUND_CUR_DIRECTION);
14587 }
14588 
14589 extern __inline __m512d
14590 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_getmant_pd(__m512d __W,__mmask8 __U,__m512d __A,_MM_MANTISSA_NORM_ENUM __B,_MM_MANTISSA_SIGN_ENUM __C)14591 _mm512_mask_getmant_pd (__m512d __W, __mmask8 __U, __m512d __A,
14592 			_MM_MANTISSA_NORM_ENUM __B, _MM_MANTISSA_SIGN_ENUM __C)
14593 {
14594   return (__m512d) __builtin_ia32_getmantpd512_mask ((__v8df) __A,
14595 						     (__C << 2) | __B,
14596 						     (__v8df) __W, __U,
14597 						     _MM_FROUND_CUR_DIRECTION);
14598 }
14599 
14600 extern __inline __m512d
14601 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_getmant_pd(__mmask8 __U,__m512d __A,_MM_MANTISSA_NORM_ENUM __B,_MM_MANTISSA_SIGN_ENUM __C)14602 _mm512_maskz_getmant_pd (__mmask8 __U, __m512d __A,
14603 			 _MM_MANTISSA_NORM_ENUM __B, _MM_MANTISSA_SIGN_ENUM __C)
14604 {
14605   return (__m512d) __builtin_ia32_getmantpd512_mask ((__v8df) __A,
14606 						     (__C << 2) | __B,
14607 						     (__v8df)
14608 						     _mm512_setzero_pd (),
14609 						     __U,
14610 						     _MM_FROUND_CUR_DIRECTION);
14611 }
14612 
14613 extern __inline __m512
14614 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_getmant_ps(__m512 __A,_MM_MANTISSA_NORM_ENUM __B,_MM_MANTISSA_SIGN_ENUM __C)14615 _mm512_getmant_ps (__m512 __A, _MM_MANTISSA_NORM_ENUM __B,
14616 		   _MM_MANTISSA_SIGN_ENUM __C)
14617 {
14618   return (__m512) __builtin_ia32_getmantps512_mask ((__v16sf) __A,
14619 						    (__C << 2) | __B,
14620 						    _mm512_undefined_ps (),
14621 						    (__mmask16) -1,
14622 						    _MM_FROUND_CUR_DIRECTION);
14623 }
14624 
14625 extern __inline __m512
14626 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_getmant_ps(__m512 __W,__mmask16 __U,__m512 __A,_MM_MANTISSA_NORM_ENUM __B,_MM_MANTISSA_SIGN_ENUM __C)14627 _mm512_mask_getmant_ps (__m512 __W, __mmask16 __U, __m512 __A,
14628 			_MM_MANTISSA_NORM_ENUM __B, _MM_MANTISSA_SIGN_ENUM __C)
14629 {
14630   return (__m512) __builtin_ia32_getmantps512_mask ((__v16sf) __A,
14631 						    (__C << 2) | __B,
14632 						    (__v16sf) __W, __U,
14633 						    _MM_FROUND_CUR_DIRECTION);
14634 }
14635 
14636 extern __inline __m512
14637 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_getmant_ps(__mmask16 __U,__m512 __A,_MM_MANTISSA_NORM_ENUM __B,_MM_MANTISSA_SIGN_ENUM __C)14638 _mm512_maskz_getmant_ps (__mmask16 __U, __m512 __A,
14639 			 _MM_MANTISSA_NORM_ENUM __B, _MM_MANTISSA_SIGN_ENUM __C)
14640 {
14641   return (__m512) __builtin_ia32_getmantps512_mask ((__v16sf) __A,
14642 						    (__C << 2) | __B,
14643 						    (__v16sf)
14644 						    _mm512_setzero_ps (),
14645 						    __U,
14646 						    _MM_FROUND_CUR_DIRECTION);
14647 }
14648 
14649 extern __inline __m128d
14650 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_getmant_sd(__m128d __A,__m128d __B,_MM_MANTISSA_NORM_ENUM __C,_MM_MANTISSA_SIGN_ENUM __D)14651 _mm_getmant_sd (__m128d __A, __m128d __B, _MM_MANTISSA_NORM_ENUM __C,
14652 		_MM_MANTISSA_SIGN_ENUM __D)
14653 {
14654   return (__m128d) __builtin_ia32_getmantsd_round ((__v2df) __A,
14655 						   (__v2df) __B,
14656 						   (__D << 2) | __C,
14657 						   _MM_FROUND_CUR_DIRECTION);
14658 }
14659 
14660 extern __inline __m128d
14661 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_getmant_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B,_MM_MANTISSA_NORM_ENUM __C,_MM_MANTISSA_SIGN_ENUM __D)14662 _mm_mask_getmant_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B,
14663 			_MM_MANTISSA_NORM_ENUM __C, _MM_MANTISSA_SIGN_ENUM __D)
14664 {
14665   return (__m128d) __builtin_ia32_getmantsd_mask_round ((__v2df) __A,
14666 							(__v2df) __B,
14667 						        (__D << 2) | __C,
14668                                                         (__v2df) __W,
14669 						       __U,
14670 						     _MM_FROUND_CUR_DIRECTION);
14671 }
14672 
14673 extern __inline __m128d
14674 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_getmant_sd(__mmask8 __U,__m128d __A,__m128d __B,_MM_MANTISSA_NORM_ENUM __C,_MM_MANTISSA_SIGN_ENUM __D)14675 _mm_maskz_getmant_sd (__mmask8 __U, __m128d __A, __m128d __B,
14676 			 _MM_MANTISSA_NORM_ENUM __C, _MM_MANTISSA_SIGN_ENUM __D)
14677 {
14678   return (__m128d) __builtin_ia32_getmantsd_mask_round ((__v2df) __A,
14679                                                         (__v2df) __B,
14680 						        (__D << 2) | __C,
14681                                                         (__v2df)
14682 							_mm_setzero_pd(),
14683 						        __U,
14684 						     _MM_FROUND_CUR_DIRECTION);
14685 }
14686 
14687 extern __inline __m128
14688 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_getmant_ss(__m128 __A,__m128 __B,_MM_MANTISSA_NORM_ENUM __C,_MM_MANTISSA_SIGN_ENUM __D)14689 _mm_getmant_ss (__m128 __A, __m128 __B, _MM_MANTISSA_NORM_ENUM __C,
14690 		_MM_MANTISSA_SIGN_ENUM __D)
14691 {
14692   return (__m128) __builtin_ia32_getmantss_round ((__v4sf) __A,
14693 						  (__v4sf) __B,
14694 						  (__D << 2) | __C,
14695 						  _MM_FROUND_CUR_DIRECTION);
14696 }
14697 
14698 extern __inline __m128
14699 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_getmant_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B,_MM_MANTISSA_NORM_ENUM __C,_MM_MANTISSA_SIGN_ENUM __D)14700 _mm_mask_getmant_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B,
14701 			_MM_MANTISSA_NORM_ENUM __C, _MM_MANTISSA_SIGN_ENUM __D)
14702 {
14703   return (__m128) __builtin_ia32_getmantss_mask_round ((__v4sf) __A,
14704 							(__v4sf) __B,
14705 						        (__D << 2) | __C,
14706                                                         (__v4sf) __W,
14707 						       __U,
14708 						     _MM_FROUND_CUR_DIRECTION);
14709 }
14710 
14711 extern __inline __m128
14712 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_getmant_ss(__mmask8 __U,__m128 __A,__m128 __B,_MM_MANTISSA_NORM_ENUM __C,_MM_MANTISSA_SIGN_ENUM __D)14713 _mm_maskz_getmant_ss (__mmask8 __U, __m128 __A, __m128 __B,
14714 			 _MM_MANTISSA_NORM_ENUM __C, _MM_MANTISSA_SIGN_ENUM __D)
14715 {
14716   return (__m128) __builtin_ia32_getmantss_mask_round ((__v4sf) __A,
14717                                                         (__v4sf) __B,
14718 						        (__D << 2) | __C,
14719                                                         (__v4sf)
14720 							_mm_setzero_ps(),
14721 						        __U,
14722 						     _MM_FROUND_CUR_DIRECTION);
14723 }
14724 
14725 #else
14726 #define _mm512_getmant_pd(X, B, C)                                                  \
14727   ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X),                 \
14728                                               (int)(((C)<<2) | (B)),                \
14729                                               (__v8df)_mm512_undefined_pd(),        \
14730                                               (__mmask8)-1,\
14731 					      _MM_FROUND_CUR_DIRECTION))
14732 
14733 #define _mm512_mask_getmant_pd(W, U, X, B, C)                                       \
14734   ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X),                 \
14735                                               (int)(((C)<<2) | (B)),                \
14736                                               (__v8df)(__m512d)(W),                 \
14737                                               (__mmask8)(U),\
14738 					      _MM_FROUND_CUR_DIRECTION))
14739 
14740 #define _mm512_maskz_getmant_pd(U, X, B, C)                                         \
14741   ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X),                 \
14742                                               (int)(((C)<<2) | (B)),                \
14743                                               (__v8df)_mm512_setzero_pd(),          \
14744                                               (__mmask8)(U),\
14745 					      _MM_FROUND_CUR_DIRECTION))
14746 #define _mm512_getmant_ps(X, B, C)                                                  \
14747   ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X),                  \
14748                                              (int)(((C)<<2) | (B)),                 \
14749                                              (__v16sf)_mm512_undefined_ps(),        \
14750                                              (__mmask16)-1,\
14751 					     _MM_FROUND_CUR_DIRECTION))
14752 
14753 #define _mm512_mask_getmant_ps(W, U, X, B, C)                                       \
14754   ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X),                  \
14755                                              (int)(((C)<<2) | (B)),                 \
14756                                              (__v16sf)(__m512)(W),                  \
14757                                              (__mmask16)(U),\
14758 					     _MM_FROUND_CUR_DIRECTION))
14759 
14760 #define _mm512_maskz_getmant_ps(U, X, B, C)                                         \
14761   ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X),                  \
14762                                              (int)(((C)<<2) | (B)),                 \
14763                                              (__v16sf)_mm512_setzero_ps(),          \
14764                                              (__mmask16)(U),\
14765 					     _MM_FROUND_CUR_DIRECTION))
14766 #define _mm_getmant_sd(X, Y, C, D)                                                  \
14767   ((__m128d)__builtin_ia32_getmantsd_round ((__v2df)(__m128d)(X),                    \
14768                                            (__v2df)(__m128d)(Y),                    \
14769                                            (int)(((D)<<2) | (C)),                   \
14770 					   _MM_FROUND_CUR_DIRECTION))
14771 
14772 #define _mm_mask_getmant_sd(W, U, X, Y, C, D)                                       \
14773   ((__m128d)__builtin_ia32_getmantsd_mask_round ((__v2df)(__m128d)(X),                 \
14774                                                  (__v2df)(__m128d)(Y),                 \
14775                                                  (int)(((D)<<2) | (C)),                \
14776                                                 (__v2df)(__m128d)(W),                 \
14777                                               (__mmask8)(U),\
14778 					      _MM_FROUND_CUR_DIRECTION))
14779 
14780 #define _mm_maskz_getmant_sd(U, X, Y, C, D)                                         \
14781   ((__m128d)__builtin_ia32_getmantsd_mask_round ((__v2df)(__m128d)(X),                 \
14782                                            (__v2df)(__m128d)(Y),                     \
14783                                               (int)(((D)<<2) | (C)),                \
14784                                            (__v2df)_mm_setzero_pd(),             \
14785                                               (__mmask8)(U),\
14786 					      _MM_FROUND_CUR_DIRECTION))
14787 
14788 #define _mm_getmant_ss(X, Y, C, D)                                                  \
14789   ((__m128)__builtin_ia32_getmantss_round ((__v4sf)(__m128)(X),                      \
14790                                           (__v4sf)(__m128)(Y),                      \
14791                                           (int)(((D)<<2) | (C)),                    \
14792 					  _MM_FROUND_CUR_DIRECTION))
14793 
14794 #define _mm_mask_getmant_ss(W, U, X, Y, C, D)                                       \
14795   ((__m128)__builtin_ia32_getmantss_mask_round ((__v4sf)(__m128)(X),                 \
14796                                                  (__v4sf)(__m128)(Y),                 \
14797                                                  (int)(((D)<<2) | (C)),                \
14798                                                 (__v4sf)(__m128)(W),                 \
14799                                               (__mmask8)(U),\
14800 					      _MM_FROUND_CUR_DIRECTION))
14801 
14802 #define _mm_maskz_getmant_ss(U, X, Y, C, D)                                         \
14803   ((__m128)__builtin_ia32_getmantss_mask_round ((__v4sf)(__m128)(X),                 \
14804                                            (__v4sf)(__m128)(Y),                     \
14805                                               (int)(((D)<<2) | (C)),                \
14806                                            (__v4sf)_mm_setzero_ps(),             \
14807                                               (__mmask8)(U),\
14808 					      _MM_FROUND_CUR_DIRECTION))
14809 
14810 #define _mm_getexp_ss(A, B)						      \
14811   ((__m128)__builtin_ia32_getexpss128_round((__v4sf)(__m128)(A), (__v4sf)(__m128)(B),  \
14812 					   _MM_FROUND_CUR_DIRECTION))
14813 
14814 #define _mm_mask_getexp_ss(W, U, A, B) \
14815     (__m128)__builtin_ia32_getexpss_mask_round(A, B, W, U,\
14816                                              _MM_FROUND_CUR_DIRECTION)
14817 
14818 #define _mm_maskz_getexp_ss(U, A, B)   \
14819     (__m128)__builtin_ia32_getexpss_mask_round(A, B, (__v4sf)_mm_setzero_ps(), U,\
14820 					      _MM_FROUND_CUR_DIRECTION)
14821 
14822 #define _mm_getexp_sd(A, B)						       \
14823   ((__m128d)__builtin_ia32_getexpsd128_round((__v2df)(__m128d)(A), (__v2df)(__m128d)(B),\
14824 					    _MM_FROUND_CUR_DIRECTION))
14825 
14826 #define _mm_mask_getexp_sd(W, U, A, B) \
14827     (__m128d)__builtin_ia32_getexpsd_mask_round(A, B, W, U,\
14828                                              _MM_FROUND_CUR_DIRECTION)
14829 
14830 #define _mm_maskz_getexp_sd(U, A, B)   \
14831     (__m128d)__builtin_ia32_getexpsd_mask_round(A, B, (__v2df)_mm_setzero_pd(), U,\
14832 					      _MM_FROUND_CUR_DIRECTION)
14833 
14834 #define _mm512_getexp_ps(A)						\
14835   ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A),		\
14836   (__v16sf)_mm512_undefined_ps(), (__mmask16)-1, _MM_FROUND_CUR_DIRECTION))
14837 
14838 #define _mm512_mask_getexp_ps(W, U, A)					\
14839   ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A),		\
14840   (__v16sf)(__m512)(W), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
14841 
14842 #define _mm512_maskz_getexp_ps(U, A)					\
14843   ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A),		\
14844   (__v16sf)_mm512_setzero_ps(), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
14845 
14846 #define _mm512_getexp_pd(A)						\
14847   ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A),		\
14848   (__v8df)_mm512_undefined_pd(), (__mmask8)-1, _MM_FROUND_CUR_DIRECTION))
14849 
14850 #define _mm512_mask_getexp_pd(W, U, A)					\
14851   ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A),		\
14852   (__v8df)(__m512d)(W), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
14853 
14854 #define _mm512_maskz_getexp_pd(U, A)					\
14855   ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A),		\
14856   (__v8df)_mm512_setzero_pd(), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
14857 #endif
14858 
14859 #ifdef __OPTIMIZE__
14860 extern __inline __m512
14861 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_roundscale_ps(__m512 __A,const int __imm)14862 _mm512_roundscale_ps (__m512 __A, const int __imm)
14863 {
14864   return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A, __imm,
14865 						  (__v16sf)
14866 						  _mm512_undefined_ps (),
14867 						  -1,
14868 						  _MM_FROUND_CUR_DIRECTION);
14869 }
14870 
14871 extern __inline __m512
14872 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_roundscale_ps(__m512 __A,__mmask16 __B,__m512 __C,const int __imm)14873 _mm512_mask_roundscale_ps (__m512 __A, __mmask16 __B, __m512 __C,
14874 			   const int __imm)
14875 {
14876   return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __C, __imm,
14877 						  (__v16sf) __A,
14878 						  (__mmask16) __B,
14879 						  _MM_FROUND_CUR_DIRECTION);
14880 }
14881 
14882 extern __inline __m512
14883 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_roundscale_ps(__mmask16 __A,__m512 __B,const int __imm)14884 _mm512_maskz_roundscale_ps (__mmask16 __A, __m512 __B, const int __imm)
14885 {
14886   return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __B,
14887 						  __imm,
14888 						  (__v16sf)
14889 						  _mm512_setzero_ps (),
14890 						  (__mmask16) __A,
14891 						  _MM_FROUND_CUR_DIRECTION);
14892 }
14893 
14894 extern __inline __m512d
14895 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_roundscale_pd(__m512d __A,const int __imm)14896 _mm512_roundscale_pd (__m512d __A, const int __imm)
14897 {
14898   return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A, __imm,
14899 						   (__v8df)
14900 						   _mm512_undefined_pd (),
14901 						   -1,
14902 						   _MM_FROUND_CUR_DIRECTION);
14903 }
14904 
14905 extern __inline __m512d
14906 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_roundscale_pd(__m512d __A,__mmask8 __B,__m512d __C,const int __imm)14907 _mm512_mask_roundscale_pd (__m512d __A, __mmask8 __B, __m512d __C,
14908 			   const int __imm)
14909 {
14910   return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __C, __imm,
14911 						   (__v8df) __A,
14912 						   (__mmask8) __B,
14913 						   _MM_FROUND_CUR_DIRECTION);
14914 }
14915 
14916 extern __inline __m512d
14917 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_roundscale_pd(__mmask8 __A,__m512d __B,const int __imm)14918 _mm512_maskz_roundscale_pd (__mmask8 __A, __m512d __B, const int __imm)
14919 {
14920   return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __B,
14921 						   __imm,
14922 						   (__v8df)
14923 						   _mm512_setzero_pd (),
14924 						   (__mmask8) __A,
14925 						   _MM_FROUND_CUR_DIRECTION);
14926 }
14927 
14928 extern __inline __m128
14929 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_roundscale_ss(__m128 __A,__m128 __B,const int __imm)14930 _mm_roundscale_ss (__m128 __A, __m128 __B, const int __imm)
14931 {
14932   return (__m128)
14933     __builtin_ia32_rndscaless_mask_round ((__v4sf) __A,
14934 					  (__v4sf) __B, __imm,
14935 					  (__v4sf)
14936 					  _mm_setzero_ps (),
14937 					  (__mmask8) -1,
14938 					  _MM_FROUND_CUR_DIRECTION);
14939 }
14940 
14941 
14942 extern __inline __m128
14943 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_roundscale_ss(__m128 __A,__mmask8 __B,__m128 __C,__m128 __D,const int __imm)14944 _mm_mask_roundscale_ss (__m128 __A, __mmask8 __B, __m128 __C, __m128 __D,
14945 			const int __imm)
14946 {
14947   return (__m128)
14948     __builtin_ia32_rndscaless_mask_round ((__v4sf) __C,
14949 					  (__v4sf) __D, __imm,
14950 					  (__v4sf) __A,
14951 					  (__mmask8) __B,
14952 					  _MM_FROUND_CUR_DIRECTION);
14953 }
14954 
14955 extern __inline __m128
14956 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_roundscale_ss(__mmask8 __A,__m128 __B,__m128 __C,const int __imm)14957 _mm_maskz_roundscale_ss (__mmask8 __A, __m128 __B, __m128 __C,
14958 			 const int __imm)
14959 {
14960   return (__m128)
14961     __builtin_ia32_rndscaless_mask_round ((__v4sf) __B,
14962 					  (__v4sf) __C, __imm,
14963 					  (__v4sf)
14964 					  _mm_setzero_ps (),
14965 					  (__mmask8) __A,
14966 					  _MM_FROUND_CUR_DIRECTION);
14967 }
14968 
14969 extern __inline __m128d
14970 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_roundscale_sd(__m128d __A,__m128d __B,const int __imm)14971 _mm_roundscale_sd (__m128d __A, __m128d __B, const int __imm)
14972 {
14973   return (__m128d)
14974     __builtin_ia32_rndscalesd_mask_round ((__v2df) __A,
14975 					  (__v2df) __B, __imm,
14976 					  (__v2df)
14977 					  _mm_setzero_pd (),
14978 					  (__mmask8) -1,
14979 					  _MM_FROUND_CUR_DIRECTION);
14980 }
14981 
14982 extern __inline __m128d
14983 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_roundscale_sd(__m128d __A,__mmask8 __B,__m128d __C,__m128d __D,const int __imm)14984 _mm_mask_roundscale_sd (__m128d __A, __mmask8 __B, __m128d __C, __m128d __D,
14985 			const int __imm)
14986 {
14987   return (__m128d)
14988     __builtin_ia32_rndscalesd_mask_round ((__v2df) __C,
14989 					  (__v2df) __D, __imm,
14990 					  (__v2df) __A,
14991 					  (__mmask8) __B,
14992 					  _MM_FROUND_CUR_DIRECTION);
14993 }
14994 
14995 extern __inline __m128d
14996 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_maskz_roundscale_sd(__mmask8 __A,__m128d __B,__m128d __C,const int __imm)14997 _mm_maskz_roundscale_sd (__mmask8 __A, __m128d __B, __m128d __C,
14998 			 const int __imm)
14999 {
15000   return (__m128d)
15001     __builtin_ia32_rndscalesd_mask_round ((__v2df) __B,
15002 					  (__v2df) __C, __imm,
15003 					  (__v2df)
15004 					  _mm_setzero_pd (),
15005 					  (__mmask8) __A,
15006 					  _MM_FROUND_CUR_DIRECTION);
15007 }
15008 
15009 #else
15010 #define _mm512_roundscale_ps(A, B) \
15011   ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(A), (int)(B),\
15012     (__v16sf)_mm512_undefined_ps(), (__mmask16)(-1), _MM_FROUND_CUR_DIRECTION))
15013 #define _mm512_mask_roundscale_ps(A, B, C, D)				\
15014   ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(C),	\
15015 					    (int)(D),			\
15016 					    (__v16sf)(__m512)(A),	\
15017 					    (__mmask16)(B), _MM_FROUND_CUR_DIRECTION))
15018 #define _mm512_maskz_roundscale_ps(A, B, C)				\
15019   ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(B),	\
15020 					    (int)(C),			\
15021 					    (__v16sf)_mm512_setzero_ps(),\
15022 					    (__mmask16)(A), _MM_FROUND_CUR_DIRECTION))
15023 #define _mm512_roundscale_pd(A, B) \
15024   ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(A), (int)(B),\
15025     (__v8df)_mm512_undefined_pd(), (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
15026 #define _mm512_mask_roundscale_pd(A, B, C, D)				\
15027   ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(C),	\
15028 					     (int)(D),			\
15029 					     (__v8df)(__m512d)(A),	\
15030 					     (__mmask8)(B), _MM_FROUND_CUR_DIRECTION))
15031 #define _mm512_maskz_roundscale_pd(A, B, C)				\
15032   ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(B),	\
15033 					     (int)(C),			\
15034 					     (__v8df)_mm512_setzero_pd(),\
15035 					     (__mmask8)(A), _MM_FROUND_CUR_DIRECTION))
15036 #define _mm_roundscale_ss(A, B, I)					\
15037   ((__m128)								\
15038    __builtin_ia32_rndscaless_mask_round ((__v4sf) (__m128) (A),		\
15039 					 (__v4sf) (__m128) (B),		\
15040 					 (int) (I),			\
15041 					 (__v4sf) _mm_setzero_ps (),	\
15042 					 (__mmask8) (-1),		\
15043 					 _MM_FROUND_CUR_DIRECTION))
15044 #define _mm_mask_roundscale_ss(A, U, B, C, I)				\
15045   ((__m128)								\
15046    __builtin_ia32_rndscaless_mask_round ((__v4sf) (__m128) (B),		\
15047 					 (__v4sf) (__m128) (C),		\
15048 					 (int) (I),			\
15049 					 (__v4sf) (__m128) (A),		\
15050 					 (__mmask8) (U),		\
15051 					 _MM_FROUND_CUR_DIRECTION))
15052 #define _mm_maskz_roundscale_ss(U, A, B, I)				\
15053   ((__m128)								\
15054    __builtin_ia32_rndscaless_mask_round ((__v4sf) (__m128) (A),		\
15055 					 (__v4sf) (__m128) (B),		\
15056 					 (int) (I),			\
15057 					 (__v4sf) _mm_setzero_ps (),	\
15058 					 (__mmask8) (U),		\
15059 					 _MM_FROUND_CUR_DIRECTION))
15060 #define _mm_roundscale_sd(A, B, I)					\
15061   ((__m128d)								\
15062    __builtin_ia32_rndscalesd_mask_round ((__v2df) (__m128d) (A),	\
15063 					 (__v2df) (__m128d) (B),	\
15064 					 (int) (I),			\
15065 					 (__v2df) _mm_setzero_pd (),	\
15066 					 (__mmask8) (-1),		\
15067 					 _MM_FROUND_CUR_DIRECTION))
15068 #define _mm_mask_roundscale_sd(A, U, B, C, I)				\
15069   ((__m128d)								\
15070    __builtin_ia32_rndscalesd_mask_round ((__v2df) (__m128d) (B),	\
15071 					 (__v2df) (__m128d) (C),	\
15072 					 (int) (I),			\
15073 					 (__v2df) (__m128d) (A),	\
15074 					 (__mmask8) (U),		\
15075 					 _MM_FROUND_CUR_DIRECTION))
15076 #define _mm_maskz_roundscale_sd(U, A, B, I)				\
15077   ((__m128d)								\
15078    __builtin_ia32_rndscalesd_mask_round ((__v2df) (__m128d) (A),	\
15079 					 (__v2df) (__m128d) (B),	\
15080 					 (int) (I),			\
15081 					 (__v2df) _mm_setzero_pd (),	\
15082 					 (__mmask8) (U),		\
15083 					 _MM_FROUND_CUR_DIRECTION))
15084 #endif
15085 
15086 #ifdef __OPTIMIZE__
15087 extern __inline __mmask8
15088 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmp_pd_mask(__m512d __X,__m512d __Y,const int __P)15089 _mm512_cmp_pd_mask (__m512d __X, __m512d __Y, const int __P)
15090 {
15091   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15092 						  (__v8df) __Y, __P,
15093 						  (__mmask8) -1,
15094 						  _MM_FROUND_CUR_DIRECTION);
15095 }
15096 
15097 extern __inline __mmask16
15098 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmp_ps_mask(__m512 __X,__m512 __Y,const int __P)15099 _mm512_cmp_ps_mask (__m512 __X, __m512 __Y, const int __P)
15100 {
15101   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15102 						   (__v16sf) __Y, __P,
15103 						   (__mmask16) -1,
15104 						   _MM_FROUND_CUR_DIRECTION);
15105 }
15106 
15107 extern __inline __mmask16
15108 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmp_ps_mask(__mmask16 __U,__m512 __X,__m512 __Y,const int __P)15109 _mm512_mask_cmp_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y, const int __P)
15110 {
15111   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15112 						   (__v16sf) __Y, __P,
15113 						   (__mmask16) __U,
15114 						   _MM_FROUND_CUR_DIRECTION);
15115 }
15116 
15117 extern __inline __mmask8
15118 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmp_pd_mask(__mmask8 __U,__m512d __X,__m512d __Y,const int __P)15119 _mm512_mask_cmp_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y, const int __P)
15120 {
15121   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15122 						  (__v8df) __Y, __P,
15123 						  (__mmask8) __U,
15124 						  _MM_FROUND_CUR_DIRECTION);
15125 }
15126 
15127 extern __inline __mmask8
15128 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cmp_sd_mask(__m128d __X,__m128d __Y,const int __P)15129 _mm_cmp_sd_mask (__m128d __X, __m128d __Y, const int __P)
15130 {
15131   return (__mmask8) __builtin_ia32_cmpsd_mask ((__v2df) __X,
15132 					       (__v2df) __Y, __P,
15133 					       (__mmask8) -1,
15134 					       _MM_FROUND_CUR_DIRECTION);
15135 }
15136 
15137 extern __inline __mmask8
15138 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_cmp_sd_mask(__mmask8 __M,__m128d __X,__m128d __Y,const int __P)15139 _mm_mask_cmp_sd_mask (__mmask8 __M, __m128d __X, __m128d __Y, const int __P)
15140 {
15141   return (__mmask8) __builtin_ia32_cmpsd_mask ((__v2df) __X,
15142 					       (__v2df) __Y, __P,
15143 					       (__mmask8) __M,
15144 					       _MM_FROUND_CUR_DIRECTION);
15145 }
15146 
15147 extern __inline __mmask8
15148 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_cmp_ss_mask(__m128 __X,__m128 __Y,const int __P)15149 _mm_cmp_ss_mask (__m128 __X, __m128 __Y, const int __P)
15150 {
15151   return (__mmask8) __builtin_ia32_cmpss_mask ((__v4sf) __X,
15152 					       (__v4sf) __Y, __P,
15153 					       (__mmask8) -1,
15154 					       _MM_FROUND_CUR_DIRECTION);
15155 }
15156 
15157 extern __inline __mmask8
15158 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_mask_cmp_ss_mask(__mmask8 __M,__m128 __X,__m128 __Y,const int __P)15159 _mm_mask_cmp_ss_mask (__mmask8 __M, __m128 __X, __m128 __Y, const int __P)
15160 {
15161   return (__mmask8) __builtin_ia32_cmpss_mask ((__v4sf) __X,
15162 					       (__v4sf) __Y, __P,
15163 					       (__mmask8) __M,
15164 					       _MM_FROUND_CUR_DIRECTION);
15165 }
15166 
15167 #else
15168 #define _mm512_cmp_pd_mask(X, Y, P)					\
15169   ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X),	\
15170 					    (__v8df)(__m512d)(Y), (int)(P),\
15171 					    (__mmask8)-1,_MM_FROUND_CUR_DIRECTION))
15172 
15173 #define _mm512_cmp_ps_mask(X, Y, P)					\
15174   ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X),	\
15175 					     (__v16sf)(__m512)(Y), (int)(P),\
15176 					     (__mmask16)-1,_MM_FROUND_CUR_DIRECTION))
15177 
15178 #define _mm512_mask_cmp_pd_mask(M, X, Y, P)					\
15179   ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X),	\
15180 					    (__v8df)(__m512d)(Y), (int)(P),\
15181 					    (__mmask8)(M), _MM_FROUND_CUR_DIRECTION))
15182 
15183 #define _mm512_mask_cmp_ps_mask(M, X, Y, P)					\
15184   ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X),	\
15185 					     (__v16sf)(__m512)(Y), (int)(P),\
15186 					     (__mmask16)(M),_MM_FROUND_CUR_DIRECTION))
15187 
15188 #define _mm_cmp_sd_mask(X, Y, P)					\
15189   ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X),		\
15190 					 (__v2df)(__m128d)(Y), (int)(P),\
15191 					 (__mmask8)-1,_MM_FROUND_CUR_DIRECTION))
15192 
15193 #define _mm_mask_cmp_sd_mask(M, X, Y, P)					\
15194   ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X),		\
15195 					 (__v2df)(__m128d)(Y), (int)(P),\
15196 					 M,_MM_FROUND_CUR_DIRECTION))
15197 
15198 #define _mm_cmp_ss_mask(X, Y, P)					\
15199   ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X),		\
15200 					 (__v4sf)(__m128)(Y), (int)(P), \
15201 					 (__mmask8)-1,_MM_FROUND_CUR_DIRECTION))
15202 
15203 #define _mm_mask_cmp_ss_mask(M, X, Y, P)					\
15204   ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X),		\
15205 					 (__v4sf)(__m128)(Y), (int)(P), \
15206 					 M,_MM_FROUND_CUR_DIRECTION))
15207 #endif
15208 
15209 extern __inline __mmask8
15210 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmpeq_pd_mask(__m512d __X,__m512d __Y)15211 _mm512_cmpeq_pd_mask (__m512d __X, __m512d __Y)
15212 {
15213   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15214 						  (__v8df) __Y, _CMP_EQ_OQ,
15215 						  (__mmask8) -1,
15216 						  _MM_FROUND_CUR_DIRECTION);
15217 }
15218 
15219 extern __inline __mmask8
15220 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmpeq_pd_mask(__mmask8 __U,__m512d __X,__m512d __Y)15221 _mm512_mask_cmpeq_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
15222 {
15223   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15224 						  (__v8df) __Y, _CMP_EQ_OQ,
15225 						  (__mmask8) __U,
15226 						  _MM_FROUND_CUR_DIRECTION);
15227 }
15228 
15229 extern __inline __mmask8
15230 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmplt_pd_mask(__m512d __X,__m512d __Y)15231 _mm512_cmplt_pd_mask (__m512d __X, __m512d __Y)
15232 {
15233   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15234 						  (__v8df) __Y, _CMP_LT_OS,
15235 						  (__mmask8) -1,
15236 						  _MM_FROUND_CUR_DIRECTION);
15237 }
15238 
15239 extern __inline __mmask8
15240 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmplt_pd_mask(__mmask8 __U,__m512d __X,__m512d __Y)15241 _mm512_mask_cmplt_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
15242 {
15243   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15244 						  (__v8df) __Y, _CMP_LT_OS,
15245 						  (__mmask8) __U,
15246 						  _MM_FROUND_CUR_DIRECTION);
15247 }
15248 
15249 extern __inline __mmask8
15250 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmple_pd_mask(__m512d __X,__m512d __Y)15251 _mm512_cmple_pd_mask (__m512d __X, __m512d __Y)
15252 {
15253   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15254 						  (__v8df) __Y, _CMP_LE_OS,
15255 						  (__mmask8) -1,
15256 						  _MM_FROUND_CUR_DIRECTION);
15257 }
15258 
15259 extern __inline __mmask8
15260 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmple_pd_mask(__mmask8 __U,__m512d __X,__m512d __Y)15261 _mm512_mask_cmple_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
15262 {
15263   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15264 						  (__v8df) __Y, _CMP_LE_OS,
15265 						  (__mmask8) __U,
15266 						  _MM_FROUND_CUR_DIRECTION);
15267 }
15268 
15269 extern __inline __mmask8
15270 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmpunord_pd_mask(__m512d __X,__m512d __Y)15271 _mm512_cmpunord_pd_mask (__m512d __X, __m512d __Y)
15272 {
15273   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15274 						  (__v8df) __Y, _CMP_UNORD_Q,
15275 						  (__mmask8) -1,
15276 						  _MM_FROUND_CUR_DIRECTION);
15277 }
15278 
15279 extern __inline __mmask8
15280 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmpunord_pd_mask(__mmask8 __U,__m512d __X,__m512d __Y)15281 _mm512_mask_cmpunord_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
15282 {
15283   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15284 						  (__v8df) __Y, _CMP_UNORD_Q,
15285 						  (__mmask8) __U,
15286 						  _MM_FROUND_CUR_DIRECTION);
15287 }
15288 
15289 extern __inline __mmask8
15290 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmpneq_pd_mask(__m512d __X,__m512d __Y)15291 _mm512_cmpneq_pd_mask (__m512d __X, __m512d __Y)
15292 {
15293   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15294 						  (__v8df) __Y, _CMP_NEQ_UQ,
15295 						  (__mmask8) -1,
15296 						  _MM_FROUND_CUR_DIRECTION);
15297 }
15298 
15299 extern __inline __mmask8
15300 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmpneq_pd_mask(__mmask8 __U,__m512d __X,__m512d __Y)15301 _mm512_mask_cmpneq_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
15302 {
15303   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15304 						  (__v8df) __Y, _CMP_NEQ_UQ,
15305 						  (__mmask8) __U,
15306 						  _MM_FROUND_CUR_DIRECTION);
15307 }
15308 
15309 extern __inline __mmask8
15310 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmpnlt_pd_mask(__m512d __X,__m512d __Y)15311 _mm512_cmpnlt_pd_mask (__m512d __X, __m512d __Y)
15312 {
15313   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15314 						  (__v8df) __Y, _CMP_NLT_US,
15315 						  (__mmask8) -1,
15316 						  _MM_FROUND_CUR_DIRECTION);
15317 }
15318 
15319 extern __inline __mmask8
15320 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmpnlt_pd_mask(__mmask8 __U,__m512d __X,__m512d __Y)15321 _mm512_mask_cmpnlt_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
15322 {
15323   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15324 						  (__v8df) __Y, _CMP_NLT_US,
15325 						  (__mmask8) __U,
15326 						  _MM_FROUND_CUR_DIRECTION);
15327 }
15328 
15329 extern __inline __mmask8
15330 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmpnle_pd_mask(__m512d __X,__m512d __Y)15331 _mm512_cmpnle_pd_mask (__m512d __X, __m512d __Y)
15332 {
15333   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15334 						  (__v8df) __Y, _CMP_NLE_US,
15335 						  (__mmask8) -1,
15336 						  _MM_FROUND_CUR_DIRECTION);
15337 }
15338 
15339 extern __inline __mmask8
15340 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmpnle_pd_mask(__mmask8 __U,__m512d __X,__m512d __Y)15341 _mm512_mask_cmpnle_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
15342 {
15343   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15344 						  (__v8df) __Y, _CMP_NLE_US,
15345 						  (__mmask8) __U,
15346 						  _MM_FROUND_CUR_DIRECTION);
15347 }
15348 
15349 extern __inline __mmask8
15350 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmpord_pd_mask(__m512d __X,__m512d __Y)15351 _mm512_cmpord_pd_mask (__m512d __X, __m512d __Y)
15352 {
15353   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15354 						  (__v8df) __Y, _CMP_ORD_Q,
15355 						  (__mmask8) -1,
15356 						  _MM_FROUND_CUR_DIRECTION);
15357 }
15358 
15359 extern __inline __mmask8
15360 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmpord_pd_mask(__mmask8 __U,__m512d __X,__m512d __Y)15361 _mm512_mask_cmpord_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
15362 {
15363   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15364 						  (__v8df) __Y, _CMP_ORD_Q,
15365 						  (__mmask8) __U,
15366 						  _MM_FROUND_CUR_DIRECTION);
15367 }
15368 
15369 extern __inline __mmask16
15370 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmpeq_ps_mask(__m512 __X,__m512 __Y)15371 _mm512_cmpeq_ps_mask (__m512 __X, __m512 __Y)
15372 {
15373   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15374 						   (__v16sf) __Y, _CMP_EQ_OQ,
15375 						   (__mmask16) -1,
15376 						   _MM_FROUND_CUR_DIRECTION);
15377 }
15378 
15379 extern __inline __mmask16
15380 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmpeq_ps_mask(__mmask16 __U,__m512 __X,__m512 __Y)15381 _mm512_mask_cmpeq_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
15382 {
15383    return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15384 						   (__v16sf) __Y, _CMP_EQ_OQ,
15385 						   (__mmask16) __U,
15386 						   _MM_FROUND_CUR_DIRECTION);
15387 }
15388 
15389 extern __inline __mmask16
15390 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmplt_ps_mask(__m512 __X,__m512 __Y)15391 _mm512_cmplt_ps_mask (__m512 __X, __m512 __Y)
15392 {
15393   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15394 						   (__v16sf) __Y, _CMP_LT_OS,
15395 						   (__mmask16) -1,
15396 						   _MM_FROUND_CUR_DIRECTION);
15397 }
15398 
15399 extern __inline __mmask16
15400 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmplt_ps_mask(__mmask16 __U,__m512 __X,__m512 __Y)15401 _mm512_mask_cmplt_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
15402 {
15403    return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15404 						   (__v16sf) __Y, _CMP_LT_OS,
15405 						   (__mmask16) __U,
15406 						   _MM_FROUND_CUR_DIRECTION);
15407 }
15408 
15409 extern __inline __mmask16
15410 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmple_ps_mask(__m512 __X,__m512 __Y)15411 _mm512_cmple_ps_mask (__m512 __X, __m512 __Y)
15412 {
15413   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15414 						   (__v16sf) __Y, _CMP_LE_OS,
15415 						   (__mmask16) -1,
15416 						   _MM_FROUND_CUR_DIRECTION);
15417 }
15418 
15419 extern __inline __mmask16
15420 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmple_ps_mask(__mmask16 __U,__m512 __X,__m512 __Y)15421 _mm512_mask_cmple_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
15422 {
15423    return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15424 						   (__v16sf) __Y, _CMP_LE_OS,
15425 						   (__mmask16) __U,
15426 						   _MM_FROUND_CUR_DIRECTION);
15427 }
15428 
15429 extern __inline __mmask16
15430 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmpunord_ps_mask(__m512 __X,__m512 __Y)15431 _mm512_cmpunord_ps_mask (__m512 __X, __m512 __Y)
15432 {
15433   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15434 						   (__v16sf) __Y, _CMP_UNORD_Q,
15435 						   (__mmask16) -1,
15436 						   _MM_FROUND_CUR_DIRECTION);
15437 }
15438 
15439 extern __inline __mmask16
15440 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmpunord_ps_mask(__mmask16 __U,__m512 __X,__m512 __Y)15441 _mm512_mask_cmpunord_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
15442 {
15443    return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15444 						   (__v16sf) __Y, _CMP_UNORD_Q,
15445 						   (__mmask16) __U,
15446 						   _MM_FROUND_CUR_DIRECTION);
15447 }
15448 
15449 extern __inline __mmask16
15450 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmpneq_ps_mask(__m512 __X,__m512 __Y)15451 _mm512_cmpneq_ps_mask (__m512 __X, __m512 __Y)
15452 {
15453   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15454 						   (__v16sf) __Y, _CMP_NEQ_UQ,
15455 						   (__mmask16) -1,
15456 						   _MM_FROUND_CUR_DIRECTION);
15457 }
15458 
15459 extern __inline __mmask16
15460 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmpneq_ps_mask(__mmask16 __U,__m512 __X,__m512 __Y)15461 _mm512_mask_cmpneq_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
15462 {
15463    return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15464 						   (__v16sf) __Y, _CMP_NEQ_UQ,
15465 						   (__mmask16) __U,
15466 						   _MM_FROUND_CUR_DIRECTION);
15467 }
15468 
15469 extern __inline __mmask16
15470 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmpnlt_ps_mask(__m512 __X,__m512 __Y)15471 _mm512_cmpnlt_ps_mask (__m512 __X, __m512 __Y)
15472 {
15473   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15474 						   (__v16sf) __Y, _CMP_NLT_US,
15475 						   (__mmask16) -1,
15476 						   _MM_FROUND_CUR_DIRECTION);
15477 }
15478 
15479 extern __inline __mmask16
15480 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmpnlt_ps_mask(__mmask16 __U,__m512 __X,__m512 __Y)15481 _mm512_mask_cmpnlt_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
15482 {
15483    return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15484 						   (__v16sf) __Y, _CMP_NLT_US,
15485 						   (__mmask16) __U,
15486 						   _MM_FROUND_CUR_DIRECTION);
15487 }
15488 
15489 extern __inline __mmask16
15490 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmpnle_ps_mask(__m512 __X,__m512 __Y)15491 _mm512_cmpnle_ps_mask (__m512 __X, __m512 __Y)
15492 {
15493   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15494 						   (__v16sf) __Y, _CMP_NLE_US,
15495 						   (__mmask16) -1,
15496 						   _MM_FROUND_CUR_DIRECTION);
15497 }
15498 
15499 extern __inline __mmask16
15500 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmpnle_ps_mask(__mmask16 __U,__m512 __X,__m512 __Y)15501 _mm512_mask_cmpnle_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
15502 {
15503    return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15504 						   (__v16sf) __Y, _CMP_NLE_US,
15505 						   (__mmask16) __U,
15506 						   _MM_FROUND_CUR_DIRECTION);
15507 }
15508 
15509 extern __inline __mmask16
15510 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmpord_ps_mask(__m512 __X,__m512 __Y)15511 _mm512_cmpord_ps_mask (__m512 __X, __m512 __Y)
15512 {
15513   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15514 						   (__v16sf) __Y, _CMP_ORD_Q,
15515 						   (__mmask16) -1,
15516 						   _MM_FROUND_CUR_DIRECTION);
15517 }
15518 
15519 extern __inline __mmask16
15520 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmpord_ps_mask(__mmask16 __U,__m512 __X,__m512 __Y)15521 _mm512_mask_cmpord_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
15522 {
15523    return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15524 						   (__v16sf) __Y, _CMP_ORD_Q,
15525 						   (__mmask16) __U,
15526 						   _MM_FROUND_CUR_DIRECTION);
15527 }
15528 
15529 extern __inline __mmask16
15530 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_kmov(__mmask16 __A)15531 _mm512_kmov (__mmask16 __A)
15532 {
15533   return __builtin_ia32_kmovw (__A);
15534 }
15535 
15536 extern __inline __m512
15537 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_castpd_ps(__m512d __A)15538 _mm512_castpd_ps (__m512d __A)
15539 {
15540   return (__m512) (__A);
15541 }
15542 
15543 extern __inline __m512i
15544 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_castpd_si512(__m512d __A)15545 _mm512_castpd_si512 (__m512d __A)
15546 {
15547   return (__m512i) (__A);
15548 }
15549 
15550 extern __inline __m512d
15551 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_castps_pd(__m512 __A)15552 _mm512_castps_pd (__m512 __A)
15553 {
15554   return (__m512d) (__A);
15555 }
15556 
15557 extern __inline __m512i
15558 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_castps_si512(__m512 __A)15559 _mm512_castps_si512 (__m512 __A)
15560 {
15561   return (__m512i) (__A);
15562 }
15563 
15564 extern __inline __m512
15565 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_castsi512_ps(__m512i __A)15566 _mm512_castsi512_ps (__m512i __A)
15567 {
15568   return (__m512) (__A);
15569 }
15570 
15571 extern __inline __m512d
15572 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_castsi512_pd(__m512i __A)15573 _mm512_castsi512_pd (__m512i __A)
15574 {
15575   return (__m512d) (__A);
15576 }
15577 
15578 extern __inline __m128d
15579 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_castpd512_pd128(__m512d __A)15580 _mm512_castpd512_pd128 (__m512d __A)
15581 {
15582   return (__m128d)_mm512_extractf32x4_ps((__m512)__A, 0);
15583 }
15584 
15585 extern __inline __m128
15586 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_castps512_ps128(__m512 __A)15587 _mm512_castps512_ps128 (__m512 __A)
15588 {
15589   return _mm512_extractf32x4_ps(__A, 0);
15590 }
15591 
15592 extern __inline __m128i
15593 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_castsi512_si128(__m512i __A)15594 _mm512_castsi512_si128 (__m512i __A)
15595 {
15596   return (__m128i)_mm512_extracti32x4_epi32((__m512i)__A, 0);
15597 }
15598 
15599 extern __inline __m256d
15600 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_castpd512_pd256(__m512d __A)15601 _mm512_castpd512_pd256 (__m512d __A)
15602 {
15603   return _mm512_extractf64x4_pd(__A, 0);
15604 }
15605 
15606 extern __inline __m256
15607 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_castps512_ps256(__m512 __A)15608 _mm512_castps512_ps256 (__m512 __A)
15609 {
15610   return (__m256)_mm512_extractf64x4_pd((__m512d)__A, 0);
15611 }
15612 
15613 extern __inline __m256i
15614 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_castsi512_si256(__m512i __A)15615 _mm512_castsi512_si256 (__m512i __A)
15616 {
15617   return (__m256i)_mm512_extractf64x4_pd((__m512d)__A, 0);
15618 }
15619 
15620 extern __inline __m512d
15621 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_castpd128_pd512(__m128d __A)15622 _mm512_castpd128_pd512 (__m128d __A)
15623 {
15624   return (__m512d) __builtin_ia32_pd512_pd((__m128d)__A);
15625 }
15626 
15627 extern __inline __m512
15628 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_castps128_ps512(__m128 __A)15629 _mm512_castps128_ps512 (__m128 __A)
15630 {
15631   return (__m512) __builtin_ia32_ps512_ps((__m128)__A);
15632 }
15633 
15634 extern __inline __m512i
15635 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_castsi128_si512(__m128i __A)15636 _mm512_castsi128_si512 (__m128i __A)
15637 {
15638   return (__m512i) __builtin_ia32_si512_si((__v4si)__A);
15639 }
15640 
15641 extern __inline __m512d
15642 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_castpd256_pd512(__m256d __A)15643 _mm512_castpd256_pd512 (__m256d __A)
15644 {
15645   return __builtin_ia32_pd512_256pd (__A);
15646 }
15647 
15648 extern __inline __m512
15649 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_castps256_ps512(__m256 __A)15650 _mm512_castps256_ps512 (__m256 __A)
15651 {
15652   return __builtin_ia32_ps512_256ps (__A);
15653 }
15654 
15655 extern __inline __m512i
15656 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_castsi256_si512(__m256i __A)15657 _mm512_castsi256_si512 (__m256i __A)
15658 {
15659   return (__m512i)__builtin_ia32_si512_256si ((__v8si)__A);
15660 }
15661 
15662 extern __inline __m512d
15663 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_zextpd128_pd512(__m128d __A)15664 _mm512_zextpd128_pd512 (__m128d __A)
15665 {
15666   return (__m512d) _mm512_insertf32x4 (_mm512_setzero_ps (), (__m128) __A, 0);
15667 }
15668 
15669 extern __inline __m512
15670 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_zextps128_ps512(__m128 __A)15671 _mm512_zextps128_ps512 (__m128 __A)
15672 {
15673   return _mm512_insertf32x4 (_mm512_setzero_ps (), __A, 0);
15674 }
15675 
15676 extern __inline __m512i
15677 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_zextsi128_si512(__m128i __A)15678 _mm512_zextsi128_si512 (__m128i __A)
15679 {
15680   return _mm512_inserti32x4 (_mm512_setzero_si512 (), __A, 0);
15681 }
15682 
15683 extern __inline __m512d
15684 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_zextpd256_pd512(__m256d __A)15685 _mm512_zextpd256_pd512 (__m256d __A)
15686 {
15687   return _mm512_insertf64x4 (_mm512_setzero_pd (), __A, 0);
15688 }
15689 
15690 extern __inline __m512
15691 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_zextps256_ps512(__m256 __A)15692 _mm512_zextps256_ps512 (__m256 __A)
15693 {
15694   return (__m512) _mm512_insertf64x4 (_mm512_setzero_pd (), (__m256d) __A, 0);
15695 }
15696 
15697 extern __inline __m512i
15698 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_zextsi256_si512(__m256i __A)15699 _mm512_zextsi256_si512 (__m256i __A)
15700 {
15701   return _mm512_inserti64x4 (_mm512_setzero_si512 (), __A, 0);
15702 }
15703 
15704 extern __inline __mmask16
15705 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmpeq_epu32_mask(__m512i __A,__m512i __B)15706 _mm512_cmpeq_epu32_mask (__m512i __A, __m512i __B)
15707 {
15708   return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __A,
15709 						     (__v16si) __B, 0,
15710 						     (__mmask16) -1);
15711 }
15712 
15713 extern __inline __mmask16
15714 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmpeq_epu32_mask(__mmask16 __U,__m512i __A,__m512i __B)15715 _mm512_mask_cmpeq_epu32_mask (__mmask16 __U, __m512i __A, __m512i __B)
15716 {
15717   return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __A,
15718 						     (__v16si) __B, 0, __U);
15719 }
15720 
15721 extern __inline __mmask8
15722 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmpeq_epu64_mask(__mmask8 __U,__m512i __A,__m512i __B)15723 _mm512_mask_cmpeq_epu64_mask (__mmask8 __U, __m512i __A, __m512i __B)
15724 {
15725   return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __A,
15726 						    (__v8di) __B, 0, __U);
15727 }
15728 
15729 extern __inline __mmask8
15730 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmpeq_epu64_mask(__m512i __A,__m512i __B)15731 _mm512_cmpeq_epu64_mask (__m512i __A, __m512i __B)
15732 {
15733   return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __A,
15734 						    (__v8di) __B, 0,
15735 						    (__mmask8) -1);
15736 }
15737 
15738 extern __inline __mmask16
15739 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmpgt_epu32_mask(__m512i __A,__m512i __B)15740 _mm512_cmpgt_epu32_mask (__m512i __A, __m512i __B)
15741 {
15742   return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __A,
15743 						     (__v16si) __B, 6,
15744 						     (__mmask16) -1);
15745 }
15746 
15747 extern __inline __mmask16
15748 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmpgt_epu32_mask(__mmask16 __U,__m512i __A,__m512i __B)15749 _mm512_mask_cmpgt_epu32_mask (__mmask16 __U, __m512i __A, __m512i __B)
15750 {
15751   return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __A,
15752 						     (__v16si) __B, 6,  __U);
15753 }
15754 
15755 extern __inline __mmask8
15756 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_cmpgt_epu64_mask(__mmask8 __U,__m512i __A,__m512i __B)15757 _mm512_mask_cmpgt_epu64_mask (__mmask8 __U, __m512i __A, __m512i __B)
15758 {
15759   return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __A,
15760 						    (__v8di) __B, 6, __U);
15761 }
15762 
15763 extern __inline __mmask8
15764 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cmpgt_epu64_mask(__m512i __A,__m512i __B)15765 _mm512_cmpgt_epu64_mask (__m512i __A, __m512i __B)
15766 {
15767   return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __A,
15768 						    (__v8di) __B, 6,
15769 						    (__mmask8) -1);
15770 }
15771 
15772 #undef __MM512_REDUCE_OP
15773 #define __MM512_REDUCE_OP(op) \
15774   __v8si __T1 = (__v8si) _mm512_extracti64x4_epi64 (__A, 1);		\
15775   __v8si __T2 = (__v8si) _mm512_extracti64x4_epi64 (__A, 0);		\
15776   __m256i __T3 = (__m256i) (__T1 op __T2);				\
15777   __v4si __T4 = (__v4si) _mm256_extracti128_si256 (__T3, 1);		\
15778   __v4si __T5 = (__v4si) _mm256_extracti128_si256 (__T3, 0);		\
15779   __v4si __T6 = __T4 op __T5;						\
15780   __v4si __T7 = __builtin_shuffle (__T6, (__v4si) { 2, 3, 0, 1 });	\
15781   __v4si __T8 = __T6 op __T7;						\
15782   return __T8[0] op __T8[1]
15783 
15784 extern __inline int
15785 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_reduce_add_epi32(__m512i __A)15786 _mm512_reduce_add_epi32 (__m512i __A)
15787 {
15788   __MM512_REDUCE_OP (+);
15789 }
15790 
15791 extern __inline int
15792 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_reduce_mul_epi32(__m512i __A)15793 _mm512_reduce_mul_epi32 (__m512i __A)
15794 {
15795   __MM512_REDUCE_OP (*);
15796 }
15797 
15798 extern __inline int
15799 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_reduce_and_epi32(__m512i __A)15800 _mm512_reduce_and_epi32 (__m512i __A)
15801 {
15802   __MM512_REDUCE_OP (&);
15803 }
15804 
15805 extern __inline int
15806 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_reduce_or_epi32(__m512i __A)15807 _mm512_reduce_or_epi32 (__m512i __A)
15808 {
15809   __MM512_REDUCE_OP (|);
15810 }
15811 
15812 extern __inline int
15813 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_reduce_add_epi32(__mmask16 __U,__m512i __A)15814 _mm512_mask_reduce_add_epi32 (__mmask16 __U, __m512i __A)
15815 {
15816   __A = _mm512_maskz_mov_epi32 (__U, __A);
15817   __MM512_REDUCE_OP (+);
15818 }
15819 
15820 extern __inline int
15821 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_reduce_mul_epi32(__mmask16 __U,__m512i __A)15822 _mm512_mask_reduce_mul_epi32 (__mmask16 __U, __m512i __A)
15823 {
15824   __A = _mm512_mask_mov_epi32 (_mm512_set1_epi32 (1), __U, __A);
15825   __MM512_REDUCE_OP (*);
15826 }
15827 
15828 extern __inline int
15829 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_reduce_and_epi32(__mmask16 __U,__m512i __A)15830 _mm512_mask_reduce_and_epi32 (__mmask16 __U, __m512i __A)
15831 {
15832   __A = _mm512_mask_mov_epi32 (_mm512_set1_epi32 (~0), __U, __A);
15833   __MM512_REDUCE_OP (&);
15834 }
15835 
15836 extern __inline int
15837 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_reduce_or_epi32(__mmask16 __U,__m512i __A)15838 _mm512_mask_reduce_or_epi32 (__mmask16 __U, __m512i __A)
15839 {
15840   __A = _mm512_maskz_mov_epi32 (__U, __A);
15841   __MM512_REDUCE_OP (|);
15842 }
15843 
15844 #undef __MM512_REDUCE_OP
15845 #define __MM512_REDUCE_OP(op) \
15846   __m256i __T1 = (__m256i) _mm512_extracti64x4_epi64 (__A, 1);		\
15847   __m256i __T2 = (__m256i) _mm512_extracti64x4_epi64 (__A, 0);		\
15848   __m256i __T3 = _mm256_##op (__T1, __T2);				\
15849   __m128i __T4 = (__m128i) _mm256_extracti128_si256 (__T3, 1);		\
15850   __m128i __T5 = (__m128i) _mm256_extracti128_si256 (__T3, 0);		\
15851   __m128i __T6 = _mm_##op (__T4, __T5);					\
15852   __m128i __T7 = (__m128i) __builtin_shuffle ((__v4si) __T6,		\
15853 					      (__v4si) { 2, 3, 0, 1 });	\
15854   __m128i __T8 = _mm_##op (__T6, __T7);					\
15855   __m128i __T9 = (__m128i) __builtin_shuffle ((__v4si) __T8,		\
15856 					      (__v4si) { 1, 0, 1, 0 });	\
15857   __v4si __T10 = (__v4si) _mm_##op (__T8, __T9);			\
15858   return __T10[0]
15859 
15860 extern __inline int
15861 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_reduce_min_epi32(__m512i __A)15862 _mm512_reduce_min_epi32 (__m512i __A)
15863 {
15864   __MM512_REDUCE_OP (min_epi32);
15865 }
15866 
15867 extern __inline int
15868 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_reduce_max_epi32(__m512i __A)15869 _mm512_reduce_max_epi32 (__m512i __A)
15870 {
15871   __MM512_REDUCE_OP (max_epi32);
15872 }
15873 
15874 extern __inline unsigned int
15875 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_reduce_min_epu32(__m512i __A)15876 _mm512_reduce_min_epu32 (__m512i __A)
15877 {
15878   __MM512_REDUCE_OP (min_epu32);
15879 }
15880 
15881 extern __inline unsigned int
15882 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_reduce_max_epu32(__m512i __A)15883 _mm512_reduce_max_epu32 (__m512i __A)
15884 {
15885   __MM512_REDUCE_OP (max_epu32);
15886 }
15887 
15888 extern __inline int
15889 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_reduce_min_epi32(__mmask16 __U,__m512i __A)15890 _mm512_mask_reduce_min_epi32 (__mmask16 __U, __m512i __A)
15891 {
15892   __A = _mm512_mask_mov_epi32 (_mm512_set1_epi32 (__INT_MAX__), __U, __A);
15893   __MM512_REDUCE_OP (min_epi32);
15894 }
15895 
15896 extern __inline int
15897 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_reduce_max_epi32(__mmask16 __U,__m512i __A)15898 _mm512_mask_reduce_max_epi32 (__mmask16 __U, __m512i __A)
15899 {
15900   __A = _mm512_mask_mov_epi32 (_mm512_set1_epi32 (-__INT_MAX__ - 1), __U, __A);
15901   __MM512_REDUCE_OP (max_epi32);
15902 }
15903 
15904 extern __inline unsigned int
15905 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_reduce_min_epu32(__mmask16 __U,__m512i __A)15906 _mm512_mask_reduce_min_epu32 (__mmask16 __U, __m512i __A)
15907 {
15908   __A = _mm512_mask_mov_epi32 (_mm512_set1_epi32 (~0), __U, __A);
15909   __MM512_REDUCE_OP (min_epu32);
15910 }
15911 
15912 extern __inline unsigned int
15913 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_reduce_max_epu32(__mmask16 __U,__m512i __A)15914 _mm512_mask_reduce_max_epu32 (__mmask16 __U, __m512i __A)
15915 {
15916   __A = _mm512_maskz_mov_epi32 (__U, __A);
15917   __MM512_REDUCE_OP (max_epu32);
15918 }
15919 
15920 #undef __MM512_REDUCE_OP
15921 #define __MM512_REDUCE_OP(op) \
15922   __m256 __T1 = (__m256) _mm512_extractf64x4_pd ((__m512d) __A, 1);	\
15923   __m256 __T2 = (__m256) _mm512_extractf64x4_pd ((__m512d) __A, 0);	\
15924   __m256 __T3 = __T1 op __T2;						\
15925   __m128 __T4 = _mm256_extractf128_ps (__T3, 1);			\
15926   __m128 __T5 = _mm256_extractf128_ps (__T3, 0);			\
15927   __m128 __T6 = __T4 op __T5;						\
15928   __m128 __T7 = __builtin_shuffle (__T6, (__v4si) { 2, 3, 0, 1 });	\
15929   __m128 __T8 = __T6 op __T7;						\
15930   return __T8[0] op __T8[1]
15931 
15932 extern __inline float
15933 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_reduce_add_ps(__m512 __A)15934 _mm512_reduce_add_ps (__m512 __A)
15935 {
15936   __MM512_REDUCE_OP (+);
15937 }
15938 
15939 extern __inline float
15940 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_reduce_mul_ps(__m512 __A)15941 _mm512_reduce_mul_ps (__m512 __A)
15942 {
15943   __MM512_REDUCE_OP (*);
15944 }
15945 
15946 extern __inline float
15947 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_reduce_add_ps(__mmask16 __U,__m512 __A)15948 _mm512_mask_reduce_add_ps (__mmask16 __U, __m512 __A)
15949 {
15950   __A = _mm512_maskz_mov_ps (__U, __A);
15951   __MM512_REDUCE_OP (+);
15952 }
15953 
15954 extern __inline float
15955 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_reduce_mul_ps(__mmask16 __U,__m512 __A)15956 _mm512_mask_reduce_mul_ps (__mmask16 __U, __m512 __A)
15957 {
15958   __A = _mm512_mask_mov_ps (_mm512_set1_ps (1.0f), __U, __A);
15959   __MM512_REDUCE_OP (*);
15960 }
15961 
15962 #undef __MM512_REDUCE_OP
15963 #define __MM512_REDUCE_OP(op) \
15964   __m256 __T1 = (__m256) _mm512_extractf64x4_pd ((__m512d) __A, 1);	\
15965   __m256 __T2 = (__m256) _mm512_extractf64x4_pd ((__m512d) __A, 0);	\
15966   __m256 __T3 = _mm256_##op (__T1, __T2);				\
15967   __m128 __T4 = _mm256_extractf128_ps (__T3, 1);			\
15968   __m128 __T5 = _mm256_extractf128_ps (__T3, 0);			\
15969   __m128 __T6 = _mm_##op (__T4, __T5);					\
15970   __m128 __T7 = __builtin_shuffle (__T6, (__v4si) { 2, 3, 0, 1 });	\
15971   __m128 __T8 = _mm_##op (__T6, __T7);					\
15972   __m128 __T9 = __builtin_shuffle (__T8, (__v4si) { 1, 0, 1, 0 });	\
15973   __m128 __T10 = _mm_##op (__T8, __T9);					\
15974   return __T10[0]
15975 
15976 extern __inline float
15977 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_reduce_min_ps(__m512 __A)15978 _mm512_reduce_min_ps (__m512 __A)
15979 {
15980   __MM512_REDUCE_OP (min_ps);
15981 }
15982 
15983 extern __inline float
15984 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_reduce_max_ps(__m512 __A)15985 _mm512_reduce_max_ps (__m512 __A)
15986 {
15987   __MM512_REDUCE_OP (max_ps);
15988 }
15989 
15990 extern __inline float
15991 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_reduce_min_ps(__mmask16 __U,__m512 __A)15992 _mm512_mask_reduce_min_ps (__mmask16 __U, __m512 __A)
15993 {
15994   __A = _mm512_mask_mov_ps (_mm512_set1_ps (__builtin_inff ()), __U, __A);
15995   __MM512_REDUCE_OP (min_ps);
15996 }
15997 
15998 extern __inline float
15999 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_reduce_max_ps(__mmask16 __U,__m512 __A)16000 _mm512_mask_reduce_max_ps (__mmask16 __U, __m512 __A)
16001 {
16002   __A = _mm512_mask_mov_ps (_mm512_set1_ps (-__builtin_inff ()), __U, __A);
16003   __MM512_REDUCE_OP (max_ps);
16004 }
16005 
16006 #undef __MM512_REDUCE_OP
16007 #define __MM512_REDUCE_OP(op) \
16008   __v4di __T1 = (__v4di) _mm512_extracti64x4_epi64 (__A, 1);		\
16009   __v4di __T2 = (__v4di) _mm512_extracti64x4_epi64 (__A, 0);		\
16010   __m256i __T3 = (__m256i) (__T1 op __T2);				\
16011   __v2di __T4 = (__v2di) _mm256_extracti128_si256 (__T3, 1);		\
16012   __v2di __T5 = (__v2di) _mm256_extracti128_si256 (__T3, 0);		\
16013   __v2di __T6 = __T4 op __T5;						\
16014   return __T6[0] op __T6[1]
16015 
16016 extern __inline long long
16017 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_reduce_add_epi64(__m512i __A)16018 _mm512_reduce_add_epi64 (__m512i __A)
16019 {
16020   __MM512_REDUCE_OP (+);
16021 }
16022 
16023 extern __inline long long
16024 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_reduce_mul_epi64(__m512i __A)16025 _mm512_reduce_mul_epi64 (__m512i __A)
16026 {
16027   __MM512_REDUCE_OP (*);
16028 }
16029 
16030 extern __inline long long
16031 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_reduce_and_epi64(__m512i __A)16032 _mm512_reduce_and_epi64 (__m512i __A)
16033 {
16034   __MM512_REDUCE_OP (&);
16035 }
16036 
16037 extern __inline long long
16038 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_reduce_or_epi64(__m512i __A)16039 _mm512_reduce_or_epi64 (__m512i __A)
16040 {
16041   __MM512_REDUCE_OP (|);
16042 }
16043 
16044 extern __inline long long
16045 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_reduce_add_epi64(__mmask8 __U,__m512i __A)16046 _mm512_mask_reduce_add_epi64 (__mmask8 __U, __m512i __A)
16047 {
16048   __A = _mm512_maskz_mov_epi64 (__U, __A);
16049   __MM512_REDUCE_OP (+);
16050 }
16051 
16052 extern __inline long long
16053 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_reduce_mul_epi64(__mmask8 __U,__m512i __A)16054 _mm512_mask_reduce_mul_epi64 (__mmask8 __U, __m512i __A)
16055 {
16056   __A = _mm512_mask_mov_epi64 (_mm512_set1_epi64 (1LL), __U, __A);
16057   __MM512_REDUCE_OP (*);
16058 }
16059 
16060 extern __inline long long
16061 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_reduce_and_epi64(__mmask8 __U,__m512i __A)16062 _mm512_mask_reduce_and_epi64 (__mmask8 __U, __m512i __A)
16063 {
16064   __A = _mm512_mask_mov_epi64 (_mm512_set1_epi64 (~0LL), __U, __A);
16065   __MM512_REDUCE_OP (&);
16066 }
16067 
16068 extern __inline long long
16069 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_reduce_or_epi64(__mmask8 __U,__m512i __A)16070 _mm512_mask_reduce_or_epi64 (__mmask8 __U, __m512i __A)
16071 {
16072   __A = _mm512_maskz_mov_epi64 (__U, __A);
16073   __MM512_REDUCE_OP (|);
16074 }
16075 
16076 #undef __MM512_REDUCE_OP
16077 #define __MM512_REDUCE_OP(op) \
16078   __m512i __T1 = _mm512_shuffle_i64x2 (__A, __A, 0x4e);			\
16079   __m512i __T2 = _mm512_##op (__A, __T1);				\
16080   __m512i __T3								\
16081     = (__m512i) __builtin_shuffle ((__v8di) __T2,			\
16082 				   (__v8di) { 2, 3, 0, 1, 6, 7, 4, 5 });\
16083   __m512i __T4 = _mm512_##op (__T2, __T3);				\
16084   __m512i __T5								\
16085     = (__m512i) __builtin_shuffle ((__v8di) __T4,			\
16086 				   (__v8di) { 1, 0, 3, 2, 5, 4, 7, 6 });\
16087   __v8di __T6 = (__v8di) _mm512_##op (__T4, __T5);			\
16088   return __T6[0]
16089 
16090 extern __inline long long
16091 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_reduce_min_epi64(__m512i __A)16092 _mm512_reduce_min_epi64 (__m512i __A)
16093 {
16094   __MM512_REDUCE_OP (min_epi64);
16095 }
16096 
16097 extern __inline long long
16098 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_reduce_max_epi64(__m512i __A)16099 _mm512_reduce_max_epi64 (__m512i __A)
16100 {
16101   __MM512_REDUCE_OP (max_epi64);
16102 }
16103 
16104 extern __inline long long
16105 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_reduce_min_epi64(__mmask8 __U,__m512i __A)16106 _mm512_mask_reduce_min_epi64 (__mmask8 __U, __m512i __A)
16107 {
16108   __A = _mm512_mask_mov_epi64 (_mm512_set1_epi64 (__LONG_LONG_MAX__),
16109 			       __U, __A);
16110   __MM512_REDUCE_OP (min_epi64);
16111 }
16112 
16113 extern __inline long long
16114 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_reduce_max_epi64(__mmask8 __U,__m512i __A)16115 _mm512_mask_reduce_max_epi64 (__mmask8 __U, __m512i __A)
16116 {
16117   __A = _mm512_mask_mov_epi64 (_mm512_set1_epi64 (-__LONG_LONG_MAX__ - 1),
16118 			       __U, __A);
16119   __MM512_REDUCE_OP (max_epi64);
16120 }
16121 
16122 extern __inline unsigned long long
16123 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_reduce_min_epu64(__m512i __A)16124 _mm512_reduce_min_epu64 (__m512i __A)
16125 {
16126   __MM512_REDUCE_OP (min_epu64);
16127 }
16128 
16129 extern __inline unsigned long long
16130 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_reduce_max_epu64(__m512i __A)16131 _mm512_reduce_max_epu64 (__m512i __A)
16132 {
16133   __MM512_REDUCE_OP (max_epu64);
16134 }
16135 
16136 extern __inline unsigned long long
16137 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_reduce_min_epu64(__mmask8 __U,__m512i __A)16138 _mm512_mask_reduce_min_epu64 (__mmask8 __U, __m512i __A)
16139 {
16140   __A = _mm512_mask_mov_epi64 (_mm512_set1_epi64 (~0LL), __U, __A);
16141   __MM512_REDUCE_OP (min_epu64);
16142 }
16143 
16144 extern __inline unsigned long long
16145 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_reduce_max_epu64(__mmask8 __U,__m512i __A)16146 _mm512_mask_reduce_max_epu64 (__mmask8 __U, __m512i __A)
16147 {
16148   __A = _mm512_maskz_mov_epi64 (__U, __A);
16149   __MM512_REDUCE_OP (max_epu64);
16150 }
16151 
16152 #undef __MM512_REDUCE_OP
16153 #define __MM512_REDUCE_OP(op) \
16154   __m256d __T1 = (__m256d) _mm512_extractf64x4_pd (__A, 1);		\
16155   __m256d __T2 = (__m256d) _mm512_extractf64x4_pd (__A, 0);		\
16156   __m256d __T3 = __T1 op __T2;						\
16157   __m128d __T4 = _mm256_extractf128_pd (__T3, 1);			\
16158   __m128d __T5 = _mm256_extractf128_pd (__T3, 0);			\
16159   __m128d __T6 = __T4 op __T5;						\
16160   return __T6[0] op __T6[1]
16161 
16162 extern __inline double
16163 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_reduce_add_pd(__m512d __A)16164 _mm512_reduce_add_pd (__m512d __A)
16165 {
16166   __MM512_REDUCE_OP (+);
16167 }
16168 
16169 extern __inline double
16170 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_reduce_mul_pd(__m512d __A)16171 _mm512_reduce_mul_pd (__m512d __A)
16172 {
16173   __MM512_REDUCE_OP (*);
16174 }
16175 
16176 extern __inline double
16177 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_reduce_add_pd(__mmask8 __U,__m512d __A)16178 _mm512_mask_reduce_add_pd (__mmask8 __U, __m512d __A)
16179 {
16180   __A = _mm512_maskz_mov_pd (__U, __A);
16181   __MM512_REDUCE_OP (+);
16182 }
16183 
16184 extern __inline double
16185 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_reduce_mul_pd(__mmask8 __U,__m512d __A)16186 _mm512_mask_reduce_mul_pd (__mmask8 __U, __m512d __A)
16187 {
16188   __A = _mm512_mask_mov_pd (_mm512_set1_pd (1.0), __U, __A);
16189   __MM512_REDUCE_OP (*);
16190 }
16191 
16192 #undef __MM512_REDUCE_OP
16193 #define __MM512_REDUCE_OP(op) \
16194   __m256d __T1 = (__m256d) _mm512_extractf64x4_pd (__A, 1);		\
16195   __m256d __T2 = (__m256d) _mm512_extractf64x4_pd (__A, 0);		\
16196   __m256d __T3 = _mm256_##op (__T1, __T2);				\
16197   __m128d __T4 = _mm256_extractf128_pd (__T3, 1);			\
16198   __m128d __T5 = _mm256_extractf128_pd (__T3, 0);			\
16199   __m128d __T6 = _mm_##op (__T4, __T5);					\
16200   __m128d __T7 = (__m128d) __builtin_shuffle (__T6, (__v2di) { 1, 0 });	\
16201   __m128d __T8 = _mm_##op (__T6, __T7);					\
16202   return __T8[0]
16203 
16204 extern __inline double
16205 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_reduce_min_pd(__m512d __A)16206 _mm512_reduce_min_pd (__m512d __A)
16207 {
16208   __MM512_REDUCE_OP (min_pd);
16209 }
16210 
16211 extern __inline double
16212 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_reduce_max_pd(__m512d __A)16213 _mm512_reduce_max_pd (__m512d __A)
16214 {
16215   __MM512_REDUCE_OP (max_pd);
16216 }
16217 
16218 extern __inline double
16219 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_reduce_min_pd(__mmask8 __U,__m512d __A)16220 _mm512_mask_reduce_min_pd (__mmask8 __U, __m512d __A)
16221 {
16222   __A = _mm512_mask_mov_pd (_mm512_set1_pd (__builtin_inf ()), __U, __A);
16223   __MM512_REDUCE_OP (min_pd);
16224 }
16225 
16226 extern __inline double
16227 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_reduce_max_pd(__mmask8 __U,__m512d __A)16228 _mm512_mask_reduce_max_pd (__mmask8 __U, __m512d __A)
16229 {
16230   __A = _mm512_mask_mov_pd (_mm512_set1_pd (-__builtin_inf ()), __U, __A);
16231   __MM512_REDUCE_OP (max_pd);
16232 }
16233 
16234 #undef __MM512_REDUCE_OP
16235 
16236 #ifdef __DISABLE_AVX512F__
16237 #undef __DISABLE_AVX512F__
16238 #pragma GCC pop_options
16239 #endif /* __DISABLE_AVX512F__ */
16240 
16241 #endif /* _AVX512FINTRIN_H_INCLUDED */
16242