1    	/* Copyright (C) 2013-2019 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__))
65   	_mm512_int2mask (int __M)
66   	{
67   	  return (__mmask16) __M;
68   	}
69   	
70   	extern __inline int
71   	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
72   	_mm512_mask2int (__mmask16 __M)
73   	{
74   	  return (int) __M;
75   	}
76   	
77   	extern __inline __m512i
78   	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
318  	_mm512_setzero (void)
319  	{
320  	  return _mm512_setzero_ps ();
321  	}
322  	
323  	extern __inline __m512d
324  	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
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__))
6355 	_mm512_mask_loadu_epi64 (__m512i __W, __mmask8 __U, void const *__P)
6356 	{
6357 	  return (__m512i) __builtin_ia32_loaddqudi512_mask ((const long long *) __P,
6358 							     (__v8di) __W,
6359 							     (__mmask8) __U);
6360 	}
6361 	
6362 	extern __inline __m512i
6363 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6364 	_mm512_maskz_loadu_epi64 (__mmask8 __U, void const *__P)
6365 	{
6366 	  return (__m512i) __builtin_ia32_loaddqudi512_mask ((const long long *) __P,
6367 							     (__v8di)
6368 							     _mm512_setzero_si512 (),
6369 							     (__mmask8) __U);
6370 	}
6371 	
6372 	extern __inline void
6373 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6374 	_mm512_mask_storeu_epi64 (void *__P, __mmask8 __U, __m512i __A)
6375 	{
6376 	  __builtin_ia32_storedqudi512_mask ((long long *) __P, (__v8di) __A,
6377 					     (__mmask8) __U);
6378 	}
6379 	
6380 	extern __inline __m512i
6381 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6382 	_mm512_loadu_si512 (void const *__P)
6383 	{
6384 	  return *(__m512i_u *)__P;
6385 	}
6386 	
6387 	extern __inline __m512i
6388 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6389 	_mm512_mask_loadu_epi32 (__m512i __W, __mmask16 __U, void const *__P)
6390 	{
6391 	  return (__m512i) __builtin_ia32_loaddqusi512_mask ((const int *) __P,
6392 							     (__v16si) __W,
6393 							     (__mmask16) __U);
6394 	}
6395 	
6396 	extern __inline __m512i
6397 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6398 	_mm512_maskz_loadu_epi32 (__mmask16 __U, void const *__P)
6399 	{
6400 	  return (__m512i) __builtin_ia32_loaddqusi512_mask ((const int *) __P,
6401 							     (__v16si)
6402 							     _mm512_setzero_si512 (),
6403 							     (__mmask16) __U);
6404 	}
6405 	
6406 	extern __inline void
6407 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6408 	_mm512_storeu_si512 (void *__P, __m512i __A)
6409 	{
6410 	  *(__m512i_u *)__P = __A;
6411 	}
6412 	
6413 	extern __inline void
6414 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6415 	_mm512_mask_storeu_epi32 (void *__P, __mmask16 __U, __m512i __A)
6416 	{
6417 	  __builtin_ia32_storedqusi512_mask ((int *) __P, (__v16si) __A,
6418 					     (__mmask16) __U);
6419 	}
6420 	
6421 	extern __inline __m512d
6422 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6423 	_mm512_permutevar_pd (__m512d __A, __m512i __C)
6424 	{
6425 	  return (__m512d) __builtin_ia32_vpermilvarpd512_mask ((__v8df) __A,
6426 								(__v8di) __C,
6427 								(__v8df)
6428 								_mm512_undefined_pd (),
6429 								(__mmask8) -1);
6430 	}
6431 	
6432 	extern __inline __m512d
6433 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6434 	_mm512_mask_permutevar_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512i __C)
6435 	{
6436 	  return (__m512d) __builtin_ia32_vpermilvarpd512_mask ((__v8df) __A,
6437 								(__v8di) __C,
6438 								(__v8df) __W,
6439 								(__mmask8) __U);
6440 	}
6441 	
6442 	extern __inline __m512d
6443 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6444 	_mm512_maskz_permutevar_pd (__mmask8 __U, __m512d __A, __m512i __C)
6445 	{
6446 	  return (__m512d) __builtin_ia32_vpermilvarpd512_mask ((__v8df) __A,
6447 								(__v8di) __C,
6448 								(__v8df)
6449 								_mm512_setzero_pd (),
6450 								(__mmask8) __U);
6451 	}
6452 	
6453 	extern __inline __m512
6454 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6455 	_mm512_permutevar_ps (__m512 __A, __m512i __C)
6456 	{
6457 	  return (__m512) __builtin_ia32_vpermilvarps512_mask ((__v16sf) __A,
6458 							       (__v16si) __C,
6459 							       (__v16sf)
6460 							       _mm512_undefined_ps (),
6461 							       (__mmask16) -1);
6462 	}
6463 	
6464 	extern __inline __m512
6465 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6466 	_mm512_mask_permutevar_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512i __C)
6467 	{
6468 	  return (__m512) __builtin_ia32_vpermilvarps512_mask ((__v16sf) __A,
6469 							       (__v16si) __C,
6470 							       (__v16sf) __W,
6471 							       (__mmask16) __U);
6472 	}
6473 	
6474 	extern __inline __m512
6475 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6476 	_mm512_maskz_permutevar_ps (__mmask16 __U, __m512 __A, __m512i __C)
6477 	{
6478 	  return (__m512) __builtin_ia32_vpermilvarps512_mask ((__v16sf) __A,
6479 							       (__v16si) __C,
6480 							       (__v16sf)
6481 							       _mm512_setzero_ps (),
6482 							       (__mmask16) __U);
6483 	}
6484 	
6485 	extern __inline __m512i
6486 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6487 	_mm512_permutex2var_epi64 (__m512i __A, __m512i __I, __m512i __B)
6488 	{
6489 	  return (__m512i) __builtin_ia32_vpermt2varq512_mask ((__v8di) __I
6490 							       /* idx */ ,
6491 							       (__v8di) __A,
6492 							       (__v8di) __B,
6493 							       (__mmask8) -1);
6494 	}
6495 	
6496 	extern __inline __m512i
6497 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6498 	_mm512_mask_permutex2var_epi64 (__m512i __A, __mmask8 __U, __m512i __I,
6499 					__m512i __B)
6500 	{
6501 	  return (__m512i) __builtin_ia32_vpermt2varq512_mask ((__v8di) __I
6502 							       /* idx */ ,
6503 							       (__v8di) __A,
6504 							       (__v8di) __B,
6505 							       (__mmask8) __U);
6506 	}
6507 	
6508 	extern __inline __m512i
6509 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6510 	_mm512_mask2_permutex2var_epi64 (__m512i __A, __m512i __I,
6511 					 __mmask8 __U, __m512i __B)
6512 	{
6513 	  return (__m512i) __builtin_ia32_vpermi2varq512_mask ((__v8di) __A,
6514 							       (__v8di) __I
6515 							       /* idx */ ,
6516 							       (__v8di) __B,
6517 							       (__mmask8) __U);
6518 	}
6519 	
6520 	extern __inline __m512i
6521 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6522 	_mm512_maskz_permutex2var_epi64 (__mmask8 __U, __m512i __A,
6523 					 __m512i __I, __m512i __B)
6524 	{
6525 	  return (__m512i) __builtin_ia32_vpermt2varq512_maskz ((__v8di) __I
6526 								/* idx */ ,
6527 								(__v8di) __A,
6528 								(__v8di) __B,
6529 								(__mmask8) __U);
6530 	}
6531 	
6532 	extern __inline __m512i
6533 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6534 	_mm512_permutex2var_epi32 (__m512i __A, __m512i __I, __m512i __B)
6535 	{
6536 	  return (__m512i) __builtin_ia32_vpermt2vard512_mask ((__v16si) __I
6537 							       /* idx */ ,
6538 							       (__v16si) __A,
6539 							       (__v16si) __B,
6540 							       (__mmask16) -1);
6541 	}
6542 	
6543 	extern __inline __m512i
6544 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6545 	_mm512_mask_permutex2var_epi32 (__m512i __A, __mmask16 __U,
6546 					__m512i __I, __m512i __B)
6547 	{
6548 	  return (__m512i) __builtin_ia32_vpermt2vard512_mask ((__v16si) __I
6549 							       /* idx */ ,
6550 							       (__v16si) __A,
6551 							       (__v16si) __B,
6552 							       (__mmask16) __U);
6553 	}
6554 	
6555 	extern __inline __m512i
6556 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6557 	_mm512_mask2_permutex2var_epi32 (__m512i __A, __m512i __I,
6558 					 __mmask16 __U, __m512i __B)
6559 	{
6560 	  return (__m512i) __builtin_ia32_vpermi2vard512_mask ((__v16si) __A,
6561 							       (__v16si) __I
6562 							       /* idx */ ,
6563 							       (__v16si) __B,
6564 							       (__mmask16) __U);
6565 	}
6566 	
6567 	extern __inline __m512i
6568 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6569 	_mm512_maskz_permutex2var_epi32 (__mmask16 __U, __m512i __A,
6570 					 __m512i __I, __m512i __B)
6571 	{
6572 	  return (__m512i) __builtin_ia32_vpermt2vard512_maskz ((__v16si) __I
6573 								/* idx */ ,
6574 								(__v16si) __A,
6575 								(__v16si) __B,
6576 								(__mmask16) __U);
6577 	}
6578 	
6579 	extern __inline __m512d
6580 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6581 	_mm512_permutex2var_pd (__m512d __A, __m512i __I, __m512d __B)
6582 	{
6583 	  return (__m512d) __builtin_ia32_vpermt2varpd512_mask ((__v8di) __I
6584 								/* idx */ ,
6585 								(__v8df) __A,
6586 								(__v8df) __B,
6587 								(__mmask8) -1);
6588 	}
6589 	
6590 	extern __inline __m512d
6591 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6592 	_mm512_mask_permutex2var_pd (__m512d __A, __mmask8 __U, __m512i __I,
6593 				     __m512d __B)
6594 	{
6595 	  return (__m512d) __builtin_ia32_vpermt2varpd512_mask ((__v8di) __I
6596 								/* idx */ ,
6597 								(__v8df) __A,
6598 								(__v8df) __B,
6599 								(__mmask8) __U);
6600 	}
6601 	
6602 	extern __inline __m512d
6603 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6604 	_mm512_mask2_permutex2var_pd (__m512d __A, __m512i __I, __mmask8 __U,
6605 				      __m512d __B)
6606 	{
6607 	  return (__m512d) __builtin_ia32_vpermi2varpd512_mask ((__v8df) __A,
6608 								(__v8di) __I
6609 								/* idx */ ,
6610 								(__v8df) __B,
6611 								(__mmask8) __U);
6612 	}
6613 	
6614 	extern __inline __m512d
6615 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6616 	_mm512_maskz_permutex2var_pd (__mmask8 __U, __m512d __A, __m512i __I,
6617 				      __m512d __B)
6618 	{
6619 	  return (__m512d) __builtin_ia32_vpermt2varpd512_maskz ((__v8di) __I
6620 								 /* idx */ ,
6621 								 (__v8df) __A,
6622 								 (__v8df) __B,
6623 								 (__mmask8) __U);
6624 	}
6625 	
6626 	extern __inline __m512
6627 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6628 	_mm512_permutex2var_ps (__m512 __A, __m512i __I, __m512 __B)
6629 	{
6630 	  return (__m512) __builtin_ia32_vpermt2varps512_mask ((__v16si) __I
6631 							       /* idx */ ,
6632 							       (__v16sf) __A,
6633 							       (__v16sf) __B,
6634 							       (__mmask16) -1);
6635 	}
6636 	
6637 	extern __inline __m512
6638 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6639 	_mm512_mask_permutex2var_ps (__m512 __A, __mmask16 __U, __m512i __I, __m512 __B)
6640 	{
6641 	  return (__m512) __builtin_ia32_vpermt2varps512_mask ((__v16si) __I
6642 							       /* idx */ ,
6643 							       (__v16sf) __A,
6644 							       (__v16sf) __B,
6645 							       (__mmask16) __U);
6646 	}
6647 	
6648 	extern __inline __m512
6649 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6650 	_mm512_mask2_permutex2var_ps (__m512 __A, __m512i __I, __mmask16 __U,
6651 				      __m512 __B)
6652 	{
6653 	  return (__m512) __builtin_ia32_vpermi2varps512_mask ((__v16sf) __A,
6654 							       (__v16si) __I
6655 							       /* idx */ ,
6656 							       (__v16sf) __B,
6657 							       (__mmask16) __U);
6658 	}
6659 	
6660 	extern __inline __m512
6661 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6662 	_mm512_maskz_permutex2var_ps (__mmask16 __U, __m512 __A, __m512i __I,
6663 				      __m512 __B)
6664 	{
6665 	  return (__m512) __builtin_ia32_vpermt2varps512_maskz ((__v16si) __I
6666 								/* idx */ ,
6667 								(__v16sf) __A,
6668 								(__v16sf) __B,
6669 								(__mmask16) __U);
6670 	}
6671 	
6672 	#ifdef __OPTIMIZE__
6673 	extern __inline __m512d
6674 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6675 	_mm512_permute_pd (__m512d __X, const int __C)
6676 	{
6677 	  return (__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df) __X, __C,
6678 							     (__v8df)
6679 							     _mm512_undefined_pd (),
6680 							     (__mmask8) -1);
6681 	}
6682 	
6683 	extern __inline __m512d
6684 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6685 	_mm512_mask_permute_pd (__m512d __W, __mmask8 __U, __m512d __X, const int __C)
6686 	{
6687 	  return (__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df) __X, __C,
6688 							     (__v8df) __W,
6689 							     (__mmask8) __U);
6690 	}
6691 	
6692 	extern __inline __m512d
6693 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6694 	_mm512_maskz_permute_pd (__mmask8 __U, __m512d __X, const int __C)
6695 	{
6696 	  return (__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df) __X, __C,
6697 							     (__v8df)
6698 							     _mm512_setzero_pd (),
6699 							     (__mmask8) __U);
6700 	}
6701 	
6702 	extern __inline __m512
6703 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6704 	_mm512_permute_ps (__m512 __X, const int __C)
6705 	{
6706 	  return (__m512) __builtin_ia32_vpermilps512_mask ((__v16sf) __X, __C,
6707 							    (__v16sf)
6708 							    _mm512_undefined_ps (),
6709 							    (__mmask16) -1);
6710 	}
6711 	
6712 	extern __inline __m512
6713 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6714 	_mm512_mask_permute_ps (__m512 __W, __mmask16 __U, __m512 __X, const int __C)
6715 	{
6716 	  return (__m512) __builtin_ia32_vpermilps512_mask ((__v16sf) __X, __C,
6717 							    (__v16sf) __W,
6718 							    (__mmask16) __U);
6719 	}
6720 	
6721 	extern __inline __m512
6722 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6723 	_mm512_maskz_permute_ps (__mmask16 __U, __m512 __X, const int __C)
6724 	{
6725 	  return (__m512) __builtin_ia32_vpermilps512_mask ((__v16sf) __X, __C,
6726 							    (__v16sf)
6727 							    _mm512_setzero_ps (),
6728 							    (__mmask16) __U);
6729 	}
6730 	#else
6731 	#define _mm512_permute_pd(X, C)							    \
6732 	  ((__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df)(__m512d)(X), (int)(C),	    \
6733 						      (__v8df)(__m512d)_mm512_undefined_pd(),\
6734 						      (__mmask8)(-1)))
6735 	
6736 	#define _mm512_mask_permute_pd(W, U, X, C)					    \
6737 	  ((__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df)(__m512d)(X), (int)(C),	    \
6738 						      (__v8df)(__m512d)(W),		    \
6739 						      (__mmask8)(U)))
6740 	
6741 	#define _mm512_maskz_permute_pd(U, X, C)					    \
6742 	  ((__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df)(__m512d)(X), (int)(C),	    \
6743 						      (__v8df)(__m512d)_mm512_setzero_pd(), \
6744 						      (__mmask8)(U)))
6745 	
6746 	#define _mm512_permute_ps(X, C)							    \
6747 	  ((__m512) __builtin_ia32_vpermilps512_mask ((__v16sf)(__m512)(X), (int)(C),	    \
6748 						      (__v16sf)(__m512)_mm512_undefined_ps(),\
6749 						      (__mmask16)(-1)))
6750 	
6751 	#define _mm512_mask_permute_ps(W, U, X, C)					    \
6752 	  ((__m512) __builtin_ia32_vpermilps512_mask ((__v16sf)(__m512)(X), (int)(C),	    \
6753 						      (__v16sf)(__m512)(W),		    \
6754 						      (__mmask16)(U)))
6755 	
6756 	#define _mm512_maskz_permute_ps(U, X, C)					    \
6757 	  ((__m512) __builtin_ia32_vpermilps512_mask ((__v16sf)(__m512)(X), (int)(C),	    \
6758 						      (__v16sf)(__m512)_mm512_setzero_ps(), \
6759 						      (__mmask16)(U)))
6760 	#endif
6761 	
6762 	#ifdef __OPTIMIZE__
6763 	extern __inline __m512i
6764 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6765 	_mm512_permutex_epi64 (__m512i __X, const int __I)
6766 	{
6767 	  return (__m512i) __builtin_ia32_permdi512_mask ((__v8di) __X, __I,
6768 							  (__v8di)
6769 							  _mm512_undefined_epi32 (),
6770 							  (__mmask8) (-1));
6771 	}
6772 	
6773 	extern __inline __m512i
6774 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6775 	_mm512_mask_permutex_epi64 (__m512i __W, __mmask8 __M,
6776 				    __m512i __X, const int __I)
6777 	{
6778 	  return (__m512i) __builtin_ia32_permdi512_mask ((__v8di) __X, __I,
6779 							  (__v8di) __W,
6780 							  (__mmask8) __M);
6781 	}
6782 	
6783 	extern __inline __m512i
6784 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6785 	_mm512_maskz_permutex_epi64 (__mmask8 __M, __m512i __X, const int __I)
6786 	{
6787 	  return (__m512i) __builtin_ia32_permdi512_mask ((__v8di) __X, __I,
6788 							  (__v8di)
6789 							  _mm512_setzero_si512 (),
6790 							  (__mmask8) __M);
6791 	}
6792 	
6793 	extern __inline __m512d
6794 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6795 	_mm512_permutex_pd (__m512d __X, const int __M)
6796 	{
6797 	  return (__m512d) __builtin_ia32_permdf512_mask ((__v8df) __X, __M,
6798 							  (__v8df)
6799 							  _mm512_undefined_pd (),
6800 							  (__mmask8) -1);
6801 	}
6802 	
6803 	extern __inline __m512d
6804 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6805 	_mm512_mask_permutex_pd (__m512d __W, __mmask8 __U, __m512d __X, const int __M)
6806 	{
6807 	  return (__m512d) __builtin_ia32_permdf512_mask ((__v8df) __X, __M,
6808 							  (__v8df) __W,
6809 							  (__mmask8) __U);
6810 	}
6811 	
6812 	extern __inline __m512d
6813 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6814 	_mm512_maskz_permutex_pd (__mmask8 __U, __m512d __X, const int __M)
6815 	{
6816 	  return (__m512d) __builtin_ia32_permdf512_mask ((__v8df) __X, __M,
6817 							  (__v8df)
6818 							  _mm512_setzero_pd (),
6819 							  (__mmask8) __U);
6820 	}
6821 	#else
6822 	#define _mm512_permutex_pd(X, M)						\
6823 	  ((__m512d) __builtin_ia32_permdf512_mask ((__v8df)(__m512d)(X), (int)(M),	\
6824 						    (__v8df)(__m512d)_mm512_undefined_pd(),\
6825 						    (__mmask8)-1))
6826 	
6827 	#define _mm512_mask_permutex_pd(W, U, X, M)					\
6828 	  ((__m512d) __builtin_ia32_permdf512_mask ((__v8df)(__m512d)(X), (int)(M),	\
6829 						    (__v8df)(__m512d)(W), (__mmask8)(U)))
6830 	
6831 	#define _mm512_maskz_permutex_pd(U, X, M)					\
6832 	  ((__m512d) __builtin_ia32_permdf512_mask ((__v8df)(__m512d)(X), (int)(M),	\
6833 						    (__v8df)(__m512d)_mm512_setzero_pd(),\
6834 						    (__mmask8)(U)))
6835 	
6836 	#define _mm512_permutex_epi64(X, I)			          \
6837 	  ((__m512i) __builtin_ia32_permdi512_mask ((__v8di)(__m512i)(X), \
6838 						    (int)(I),             \
6839 						    (__v8di)(__m512i)	  \
6840 						    (_mm512_undefined_epi32 ()),\
6841 						    (__mmask8)(-1)))
6842 	
6843 	#define _mm512_maskz_permutex_epi64(M, X, I)                 \
6844 	  ((__m512i) __builtin_ia32_permdi512_mask ((__v8di)(__m512i)(X), \
6845 						    (int)(I),             \
6846 						    (__v8di)(__m512i)     \
6847 						    (_mm512_setzero_si512 ()),\
6848 						    (__mmask8)(M)))
6849 	
6850 	#define _mm512_mask_permutex_epi64(W, M, X, I)               \
6851 	  ((__m512i) __builtin_ia32_permdi512_mask ((__v8di)(__m512i)(X), \
6852 						    (int)(I),             \
6853 						    (__v8di)(__m512i)(W), \
6854 						    (__mmask8)(M)))
6855 	#endif
6856 	
6857 	extern __inline __m512i
6858 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6859 	_mm512_maskz_permutexvar_epi64 (__mmask8 __M, __m512i __X, __m512i __Y)
6860 	{
6861 	  return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __Y,
6862 							     (__v8di) __X,
6863 							     (__v8di)
6864 							     _mm512_setzero_si512 (),
6865 							     __M);
6866 	}
6867 	
6868 	extern __inline __m512i
6869 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6870 	_mm512_permutexvar_epi64 (__m512i __X, __m512i __Y)
6871 	{
6872 	  return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __Y,
6873 							     (__v8di) __X,
6874 							     (__v8di)
6875 							     _mm512_undefined_epi32 (),
6876 							     (__mmask8) -1);
6877 	}
6878 	
6879 	extern __inline __m512i
6880 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6881 	_mm512_mask_permutexvar_epi64 (__m512i __W, __mmask8 __M, __m512i __X,
6882 				       __m512i __Y)
6883 	{
6884 	  return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __Y,
6885 							     (__v8di) __X,
6886 							     (__v8di) __W,
6887 							     __M);
6888 	}
6889 	
6890 	extern __inline __m512i
6891 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6892 	_mm512_maskz_permutexvar_epi32 (__mmask16 __M, __m512i __X, __m512i __Y)
6893 	{
6894 	  return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __Y,
6895 							     (__v16si) __X,
6896 							     (__v16si)
6897 							     _mm512_setzero_si512 (),
6898 							     __M);
6899 	}
6900 	
6901 	extern __inline __m512i
6902 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6903 	_mm512_permutexvar_epi32 (__m512i __X, __m512i __Y)
6904 	{
6905 	  return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __Y,
6906 							     (__v16si) __X,
6907 							     (__v16si)
6908 							     _mm512_undefined_epi32 (),
6909 							     (__mmask16) -1);
6910 	}
6911 	
6912 	extern __inline __m512i
6913 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6914 	_mm512_mask_permutexvar_epi32 (__m512i __W, __mmask16 __M, __m512i __X,
6915 				       __m512i __Y)
6916 	{
6917 	  return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __Y,
6918 							     (__v16si) __X,
6919 							     (__v16si) __W,
6920 							     __M);
6921 	}
6922 	
6923 	extern __inline __m512d
6924 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6925 	_mm512_permutexvar_pd (__m512i __X, __m512d __Y)
6926 	{
6927 	  return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __Y,
6928 							     (__v8di) __X,
6929 							     (__v8df)
6930 							     _mm512_undefined_pd (),
6931 							     (__mmask8) -1);
6932 	}
6933 	
6934 	extern __inline __m512d
6935 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6936 	_mm512_mask_permutexvar_pd (__m512d __W, __mmask8 __U, __m512i __X, __m512d __Y)
6937 	{
6938 	  return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __Y,
6939 							     (__v8di) __X,
6940 							     (__v8df) __W,
6941 							     (__mmask8) __U);
6942 	}
6943 	
6944 	extern __inline __m512d
6945 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6946 	_mm512_maskz_permutexvar_pd (__mmask8 __U, __m512i __X, __m512d __Y)
6947 	{
6948 	  return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __Y,
6949 							     (__v8di) __X,
6950 							     (__v8df)
6951 							     _mm512_setzero_pd (),
6952 							     (__mmask8) __U);
6953 	}
6954 	
6955 	extern __inline __m512
6956 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6957 	_mm512_permutexvar_ps (__m512i __X, __m512 __Y)
6958 	{
6959 	  return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __Y,
6960 							    (__v16si) __X,
6961 							    (__v16sf)
6962 							    _mm512_undefined_ps (),
6963 							    (__mmask16) -1);
6964 	}
6965 	
6966 	extern __inline __m512
6967 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6968 	_mm512_mask_permutexvar_ps (__m512 __W, __mmask16 __U, __m512i __X, __m512 __Y)
6969 	{
6970 	  return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __Y,
6971 							    (__v16si) __X,
6972 							    (__v16sf) __W,
6973 							    (__mmask16) __U);
6974 	}
6975 	
6976 	extern __inline __m512
6977 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6978 	_mm512_maskz_permutexvar_ps (__mmask16 __U, __m512i __X, __m512 __Y)
6979 	{
6980 	  return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __Y,
6981 							    (__v16si) __X,
6982 							    (__v16sf)
6983 							    _mm512_setzero_ps (),
6984 							    (__mmask16) __U);
6985 	}
6986 	
6987 	#ifdef __OPTIMIZE__
6988 	extern __inline __m512
6989 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6990 	_mm512_shuffle_ps (__m512 __M, __m512 __V, const int __imm)
6991 	{
6992 	  return (__m512) __builtin_ia32_shufps512_mask ((__v16sf) __M,
6993 							 (__v16sf) __V, __imm,
6994 							 (__v16sf)
6995 							 _mm512_undefined_ps (),
6996 							 (__mmask16) -1);
6997 	}
6998 	
6999 	extern __inline __m512
7000 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7001 	_mm512_mask_shuffle_ps (__m512 __W, __mmask16 __U, __m512 __M,
7002 				__m512 __V, const int __imm)
7003 	{
7004 	  return (__m512) __builtin_ia32_shufps512_mask ((__v16sf) __M,
7005 							 (__v16sf) __V, __imm,
7006 							 (__v16sf) __W,
7007 							 (__mmask16) __U);
7008 	}
7009 	
7010 	extern __inline __m512
7011 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7012 	_mm512_maskz_shuffle_ps (__mmask16 __U, __m512 __M, __m512 __V, const int __imm)
7013 	{
7014 	  return (__m512) __builtin_ia32_shufps512_mask ((__v16sf) __M,
7015 							 (__v16sf) __V, __imm,
7016 							 (__v16sf)
7017 							 _mm512_setzero_ps (),
7018 							 (__mmask16) __U);
7019 	}
7020 	
7021 	extern __inline __m512d
7022 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7023 	_mm512_shuffle_pd (__m512d __M, __m512d __V, const int __imm)
7024 	{
7025 	  return (__m512d) __builtin_ia32_shufpd512_mask ((__v8df) __M,
7026 							  (__v8df) __V, __imm,
7027 							  (__v8df)
7028 							  _mm512_undefined_pd (),
7029 							  (__mmask8) -1);
7030 	}
7031 	
7032 	extern __inline __m512d
7033 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7034 	_mm512_mask_shuffle_pd (__m512d __W, __mmask8 __U, __m512d __M,
7035 				__m512d __V, const int __imm)
7036 	{
7037 	  return (__m512d) __builtin_ia32_shufpd512_mask ((__v8df) __M,
7038 							  (__v8df) __V, __imm,
7039 							  (__v8df) __W,
7040 							  (__mmask8) __U);
7041 	}
7042 	
7043 	extern __inline __m512d
7044 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7045 	_mm512_maskz_shuffle_pd (__mmask8 __U, __m512d __M, __m512d __V,
7046 				 const int __imm)
7047 	{
7048 	  return (__m512d) __builtin_ia32_shufpd512_mask ((__v8df) __M,
7049 							  (__v8df) __V, __imm,
7050 							  (__v8df)
7051 							  _mm512_setzero_pd (),
7052 							  (__mmask8) __U);
7053 	}
7054 	
7055 	extern __inline __m512d
7056 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7057 	_mm512_fixupimm_round_pd (__m512d __A, __m512d __B, __m512i __C,
7058 				  const int __imm, const int __R)
7059 	{
7060 	  return (__m512d) __builtin_ia32_fixupimmpd512_mask ((__v8df) __A,
7061 							      (__v8df) __B,
7062 							      (__v8di) __C,
7063 							      __imm,
7064 							      (__mmask8) -1, __R);
7065 	}
7066 	
7067 	extern __inline __m512d
7068 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7069 	_mm512_mask_fixupimm_round_pd (__m512d __A, __mmask8 __U, __m512d __B,
7070 				       __m512i __C, const int __imm, const int __R)
7071 	{
7072 	  return (__m512d) __builtin_ia32_fixupimmpd512_mask ((__v8df) __A,
7073 							      (__v8df) __B,
7074 							      (__v8di) __C,
7075 							      __imm,
7076 							      (__mmask8) __U, __R);
7077 	}
7078 	
7079 	extern __inline __m512d
7080 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7081 	_mm512_maskz_fixupimm_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
7082 					__m512i __C, const int __imm, const int __R)
7083 	{
7084 	  return (__m512d) __builtin_ia32_fixupimmpd512_maskz ((__v8df) __A,
7085 							       (__v8df) __B,
7086 							       (__v8di) __C,
7087 							       __imm,
7088 							       (__mmask8) __U, __R);
7089 	}
7090 	
7091 	extern __inline __m512
7092 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7093 	_mm512_fixupimm_round_ps (__m512 __A, __m512 __B, __m512i __C,
7094 				  const int __imm, const int __R)
7095 	{
7096 	  return (__m512) __builtin_ia32_fixupimmps512_mask ((__v16sf) __A,
7097 							     (__v16sf) __B,
7098 							     (__v16si) __C,
7099 							     __imm,
7100 							     (__mmask16) -1, __R);
7101 	}
7102 	
7103 	extern __inline __m512
7104 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7105 	_mm512_mask_fixupimm_round_ps (__m512 __A, __mmask16 __U, __m512 __B,
7106 				       __m512i __C, const int __imm, const int __R)
7107 	{
7108 	  return (__m512) __builtin_ia32_fixupimmps512_mask ((__v16sf) __A,
7109 							     (__v16sf) __B,
7110 							     (__v16si) __C,
7111 							     __imm,
7112 							     (__mmask16) __U, __R);
7113 	}
7114 	
7115 	extern __inline __m512
7116 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7117 	_mm512_maskz_fixupimm_round_ps (__mmask16 __U, __m512 __A, __m512 __B,
7118 					__m512i __C, const int __imm, const int __R)
7119 	{
7120 	  return (__m512) __builtin_ia32_fixupimmps512_maskz ((__v16sf) __A,
7121 							      (__v16sf) __B,
7122 							      (__v16si) __C,
7123 							      __imm,
7124 							      (__mmask16) __U, __R);
7125 	}
7126 	
7127 	extern __inline __m128d
7128 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7129 	_mm_fixupimm_round_sd (__m128d __A, __m128d __B, __m128i __C,
7130 			       const int __imm, const int __R)
7131 	{
7132 	  return (__m128d) __builtin_ia32_fixupimmsd_mask ((__v2df) __A,
7133 							   (__v2df) __B,
7134 							   (__v2di) __C, __imm,
7135 							   (__mmask8) -1, __R);
7136 	}
7137 	
7138 	extern __inline __m128d
7139 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7140 	_mm_mask_fixupimm_round_sd (__m128d __A, __mmask8 __U, __m128d __B,
7141 				    __m128i __C, const int __imm, const int __R)
7142 	{
7143 	  return (__m128d) __builtin_ia32_fixupimmsd_mask ((__v2df) __A,
7144 							   (__v2df) __B,
7145 							   (__v2di) __C, __imm,
7146 							   (__mmask8) __U, __R);
7147 	}
7148 	
7149 	extern __inline __m128d
7150 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7151 	_mm_maskz_fixupimm_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
7152 				     __m128i __C, const int __imm, const int __R)
7153 	{
7154 	  return (__m128d) __builtin_ia32_fixupimmsd_maskz ((__v2df) __A,
7155 							    (__v2df) __B,
7156 							    (__v2di) __C,
7157 							    __imm,
7158 							    (__mmask8) __U, __R);
7159 	}
7160 	
7161 	extern __inline __m128
7162 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7163 	_mm_fixupimm_round_ss (__m128 __A, __m128 __B, __m128i __C,
7164 			       const int __imm, const int __R)
7165 	{
7166 	  return (__m128) __builtin_ia32_fixupimmss_mask ((__v4sf) __A,
7167 							  (__v4sf) __B,
7168 							  (__v4si) __C, __imm,
7169 							  (__mmask8) -1, __R);
7170 	}
7171 	
7172 	extern __inline __m128
7173 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7174 	_mm_mask_fixupimm_round_ss (__m128 __A, __mmask8 __U, __m128 __B,
7175 				    __m128i __C, const int __imm, const int __R)
7176 	{
7177 	  return (__m128) __builtin_ia32_fixupimmss_mask ((__v4sf) __A,
7178 							  (__v4sf) __B,
7179 							  (__v4si) __C, __imm,
7180 							  (__mmask8) __U, __R);
7181 	}
7182 	
7183 	extern __inline __m128
7184 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7185 	_mm_maskz_fixupimm_round_ss (__mmask8 __U, __m128 __A, __m128 __B,
7186 				     __m128i __C, const int __imm, const int __R)
7187 	{
7188 	  return (__m128) __builtin_ia32_fixupimmss_maskz ((__v4sf) __A,
7189 							   (__v4sf) __B,
7190 							   (__v4si) __C, __imm,
7191 							   (__mmask8) __U, __R);
7192 	}
7193 	
7194 	#else
7195 	#define _mm512_shuffle_pd(X, Y, C)                                      \
7196 	    ((__m512d)__builtin_ia32_shufpd512_mask ((__v8df)(__m512d)(X),           \
7197 	        (__v8df)(__m512d)(Y), (int)(C),\
7198 	    (__v8df)(__m512d)_mm512_undefined_pd(),\
7199 	    (__mmask8)-1))
7200 	
7201 	#define _mm512_mask_shuffle_pd(W, U, X, Y, C)                           \
7202 	    ((__m512d)__builtin_ia32_shufpd512_mask ((__v8df)(__m512d)(X),           \
7203 	        (__v8df)(__m512d)(Y), (int)(C),\
7204 	    (__v8df)(__m512d)(W),\
7205 	    (__mmask8)(U)))
7206 	
7207 	#define _mm512_maskz_shuffle_pd(U, X, Y, C)                             \
7208 	    ((__m512d)__builtin_ia32_shufpd512_mask ((__v8df)(__m512d)(X),           \
7209 	        (__v8df)(__m512d)(Y), (int)(C),\
7210 	    (__v8df)(__m512d)_mm512_setzero_pd(),\
7211 	    (__mmask8)(U)))
7212 	
7213 	#define _mm512_shuffle_ps(X, Y, C)                                      \
7214 	    ((__m512)__builtin_ia32_shufps512_mask ((__v16sf)(__m512)(X),            \
7215 	        (__v16sf)(__m512)(Y), (int)(C),\
7216 	    (__v16sf)(__m512)_mm512_undefined_ps(),\
7217 	    (__mmask16)-1))
7218 	
7219 	#define _mm512_mask_shuffle_ps(W, U, X, Y, C)                           \
7220 	    ((__m512)__builtin_ia32_shufps512_mask ((__v16sf)(__m512)(X),            \
7221 	        (__v16sf)(__m512)(Y), (int)(C),\
7222 	    (__v16sf)(__m512)(W),\
7223 	    (__mmask16)(U)))
7224 	
7225 	#define _mm512_maskz_shuffle_ps(U, X, Y, C)                             \
7226 	    ((__m512)__builtin_ia32_shufps512_mask ((__v16sf)(__m512)(X),            \
7227 	        (__v16sf)(__m512)(Y), (int)(C),\
7228 	    (__v16sf)(__m512)_mm512_setzero_ps(),\
7229 	    (__mmask16)(U)))
7230 	
7231 	#define _mm512_fixupimm_round_pd(X, Y, Z, C, R)					\
7232 	  ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X),	\
7233 	      (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C),		\
7234 	      (__mmask8)(-1), (R)))
7235 	
7236 	#define _mm512_mask_fixupimm_round_pd(X, U, Y, Z, C, R)                          \
7237 	  ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X),    \
7238 	      (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C),             \
7239 	      (__mmask8)(U), (R)))
7240 	
7241 	#define _mm512_maskz_fixupimm_round_pd(U, X, Y, Z, C, R)                         \
7242 	  ((__m512d)__builtin_ia32_fixupimmpd512_maskz ((__v8df)(__m512d)(X),   \
7243 	      (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C),             \
7244 	      (__mmask8)(U), (R)))
7245 	
7246 	#define _mm512_fixupimm_round_ps(X, Y, Z, C, R)					\
7247 	  ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X),	\
7248 	    (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C),		\
7249 	    (__mmask16)(-1), (R)))
7250 	
7251 	#define _mm512_mask_fixupimm_round_ps(X, U, Y, Z, C, R)                          \
7252 	  ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X),     \
7253 	    (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C),              \
7254 	    (__mmask16)(U), (R)))
7255 	
7256 	#define _mm512_maskz_fixupimm_round_ps(U, X, Y, Z, C, R)                         \
7257 	  ((__m512)__builtin_ia32_fixupimmps512_maskz ((__v16sf)(__m512)(X),    \
7258 	    (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C),              \
7259 	    (__mmask16)(U), (R)))
7260 	
7261 	#define _mm_fixupimm_round_sd(X, Y, Z, C, R)					\
7262 	    ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X),	\
7263 	      (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C),		\
7264 	      (__mmask8)(-1), (R)))
7265 	
7266 	#define _mm_mask_fixupimm_round_sd(X, U, Y, Z, C, R)				\
7267 	    ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X),	\
7268 	      (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C),		\
7269 	      (__mmask8)(U), (R)))
7270 	
7271 	#define _mm_maskz_fixupimm_round_sd(U, X, Y, Z, C, R)				\
7272 	    ((__m128d)__builtin_ia32_fixupimmsd_maskz ((__v2df)(__m128d)(X),	\
7273 	      (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C),		\
7274 	      (__mmask8)(U), (R)))
7275 	
7276 	#define _mm_fixupimm_round_ss(X, Y, Z, C, R)					\
7277 	    ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X),	\
7278 	      (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C),		\
7279 	      (__mmask8)(-1), (R)))
7280 	
7281 	#define _mm_mask_fixupimm_round_ss(X, U, Y, Z, C, R)				\
7282 	    ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X),	\
7283 	      (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C),		\
7284 	      (__mmask8)(U), (R)))
7285 	
7286 	#define _mm_maskz_fixupimm_round_ss(U, X, Y, Z, C, R)				\
7287 	    ((__m128)__builtin_ia32_fixupimmss_maskz ((__v4sf)(__m128)(X),	\
7288 	      (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C),		\
7289 	      (__mmask8)(U), (R)))
7290 	#endif
7291 	
7292 	extern __inline __m512
7293 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7294 	_mm512_movehdup_ps (__m512 __A)
7295 	{
7296 	  return (__m512) __builtin_ia32_movshdup512_mask ((__v16sf) __A,
7297 							   (__v16sf)
7298 							   _mm512_undefined_ps (),
7299 							   (__mmask16) -1);
7300 	}
7301 	
7302 	extern __inline __m512
7303 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7304 	_mm512_mask_movehdup_ps (__m512 __W, __mmask16 __U, __m512 __A)
7305 	{
7306 	  return (__m512) __builtin_ia32_movshdup512_mask ((__v16sf) __A,
7307 							   (__v16sf) __W,
7308 							   (__mmask16) __U);
7309 	}
7310 	
7311 	extern __inline __m512
7312 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7313 	_mm512_maskz_movehdup_ps (__mmask16 __U, __m512 __A)
7314 	{
7315 	  return (__m512) __builtin_ia32_movshdup512_mask ((__v16sf) __A,
7316 							   (__v16sf)
7317 							   _mm512_setzero_ps (),
7318 							   (__mmask16) __U);
7319 	}
7320 	
7321 	extern __inline __m512
7322 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7323 	_mm512_moveldup_ps (__m512 __A)
7324 	{
7325 	  return (__m512) __builtin_ia32_movsldup512_mask ((__v16sf) __A,
7326 							   (__v16sf)
7327 							   _mm512_undefined_ps (),
7328 							   (__mmask16) -1);
7329 	}
7330 	
7331 	extern __inline __m512
7332 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7333 	_mm512_mask_moveldup_ps (__m512 __W, __mmask16 __U, __m512 __A)
7334 	{
7335 	  return (__m512) __builtin_ia32_movsldup512_mask ((__v16sf) __A,
7336 							   (__v16sf) __W,
7337 							   (__mmask16) __U);
7338 	}
7339 	
7340 	extern __inline __m512
7341 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7342 	_mm512_maskz_moveldup_ps (__mmask16 __U, __m512 __A)
7343 	{
7344 	  return (__m512) __builtin_ia32_movsldup512_mask ((__v16sf) __A,
7345 							   (__v16sf)
7346 							   _mm512_setzero_ps (),
7347 							   (__mmask16) __U);
7348 	}
7349 	
7350 	extern __inline __m512i
7351 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7352 	_mm512_or_si512 (__m512i __A, __m512i __B)
7353 	{
7354 	  return (__m512i) ((__v16su) __A | (__v16su) __B);
7355 	}
7356 	
7357 	extern __inline __m512i
7358 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7359 	_mm512_or_epi32 (__m512i __A, __m512i __B)
7360 	{
7361 	  return (__m512i) ((__v16su) __A | (__v16su) __B);
7362 	}
7363 	
7364 	extern __inline __m512i
7365 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7366 	_mm512_mask_or_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
7367 	{
7368 	  return (__m512i) __builtin_ia32_pord512_mask ((__v16si) __A,
7369 							(__v16si) __B,
7370 							(__v16si) __W,
7371 							(__mmask16) __U);
7372 	}
7373 	
7374 	extern __inline __m512i
7375 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7376 	_mm512_maskz_or_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
7377 	{
7378 	  return (__m512i) __builtin_ia32_pord512_mask ((__v16si) __A,
7379 							(__v16si) __B,
7380 							(__v16si)
7381 							_mm512_setzero_si512 (),
7382 							(__mmask16) __U);
7383 	}
7384 	
7385 	extern __inline __m512i
7386 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7387 	_mm512_or_epi64 (__m512i __A, __m512i __B)
7388 	{
7389 	  return (__m512i) ((__v8du) __A | (__v8du) __B);
7390 	}
7391 	
7392 	extern __inline __m512i
7393 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7394 	_mm512_mask_or_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
7395 	{
7396 	  return (__m512i) __builtin_ia32_porq512_mask ((__v8di) __A,
7397 							(__v8di) __B,
7398 							(__v8di) __W,
7399 							(__mmask8) __U);
7400 	}
7401 	
7402 	extern __inline __m512i
7403 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7404 	_mm512_maskz_or_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
7405 	{
7406 	  return (__m512i) __builtin_ia32_porq512_mask ((__v8di) __A,
7407 							(__v8di) __B,
7408 							(__v8di)
7409 							_mm512_setzero_si512 (),
7410 							(__mmask8) __U);
7411 	}
7412 	
7413 	extern __inline __m512i
7414 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7415 	_mm512_xor_si512 (__m512i __A, __m512i __B)
7416 	{
7417 	  return (__m512i) ((__v16su) __A ^ (__v16su) __B);
7418 	}
7419 	
7420 	extern __inline __m512i
7421 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7422 	_mm512_xor_epi32 (__m512i __A, __m512i __B)
7423 	{
7424 	  return (__m512i) ((__v16su) __A ^ (__v16su) __B);
7425 	}
7426 	
7427 	extern __inline __m512i
7428 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7429 	_mm512_mask_xor_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
7430 	{
7431 	  return (__m512i) __builtin_ia32_pxord512_mask ((__v16si) __A,
7432 							 (__v16si) __B,
7433 							 (__v16si) __W,
7434 							 (__mmask16) __U);
7435 	}
7436 	
7437 	extern __inline __m512i
7438 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7439 	_mm512_maskz_xor_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
7440 	{
7441 	  return (__m512i) __builtin_ia32_pxord512_mask ((__v16si) __A,
7442 							 (__v16si) __B,
7443 							 (__v16si)
7444 							 _mm512_setzero_si512 (),
7445 							 (__mmask16) __U);
7446 	}
7447 	
7448 	extern __inline __m512i
7449 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7450 	_mm512_xor_epi64 (__m512i __A, __m512i __B)
7451 	{
7452 	  return (__m512i) ((__v8du) __A ^ (__v8du) __B);
7453 	}
7454 	
7455 	extern __inline __m512i
7456 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7457 	_mm512_mask_xor_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
7458 	{
7459 	  return (__m512i) __builtin_ia32_pxorq512_mask ((__v8di) __A,
7460 							 (__v8di) __B,
7461 							 (__v8di) __W,
7462 							 (__mmask8) __U);
7463 	}
7464 	
7465 	extern __inline __m512i
7466 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7467 	_mm512_maskz_xor_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
7468 	{
7469 	  return (__m512i) __builtin_ia32_pxorq512_mask ((__v8di) __A,
7470 							 (__v8di) __B,
7471 							 (__v8di)
7472 							 _mm512_setzero_si512 (),
7473 							 (__mmask8) __U);
7474 	}
7475 	
7476 	#ifdef __OPTIMIZE__
7477 	extern __inline __m512i
7478 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7479 	_mm512_rol_epi32 (__m512i __A, const int __B)
7480 	{
7481 	  return (__m512i) __builtin_ia32_prold512_mask ((__v16si) __A, __B,
7482 							 (__v16si)
7483 							 _mm512_undefined_epi32 (),
7484 							 (__mmask16) -1);
7485 	}
7486 	
7487 	extern __inline __m512i
7488 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7489 	_mm512_mask_rol_epi32 (__m512i __W, __mmask16 __U, __m512i __A, const int __B)
7490 	{
7491 	  return (__m512i) __builtin_ia32_prold512_mask ((__v16si) __A, __B,
7492 							 (__v16si) __W,
7493 							 (__mmask16) __U);
7494 	}
7495 	
7496 	extern __inline __m512i
7497 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7498 	_mm512_maskz_rol_epi32 (__mmask16 __U, __m512i __A, const int __B)
7499 	{
7500 	  return (__m512i) __builtin_ia32_prold512_mask ((__v16si) __A, __B,
7501 							 (__v16si)
7502 							 _mm512_setzero_si512 (),
7503 							 (__mmask16) __U);
7504 	}
7505 	
7506 	extern __inline __m512i
7507 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7508 	_mm512_ror_epi32 (__m512i __A, int __B)
7509 	{
7510 	  return (__m512i) __builtin_ia32_prord512_mask ((__v16si) __A, __B,
7511 							 (__v16si)
7512 							 _mm512_undefined_epi32 (),
7513 							 (__mmask16) -1);
7514 	}
7515 	
7516 	extern __inline __m512i
7517 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7518 	_mm512_mask_ror_epi32 (__m512i __W, __mmask16 __U, __m512i __A, int __B)
7519 	{
7520 	  return (__m512i) __builtin_ia32_prord512_mask ((__v16si) __A, __B,
7521 							 (__v16si) __W,
7522 							 (__mmask16) __U);
7523 	}
7524 	
7525 	extern __inline __m512i
7526 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7527 	_mm512_maskz_ror_epi32 (__mmask16 __U, __m512i __A, int __B)
7528 	{
7529 	  return (__m512i) __builtin_ia32_prord512_mask ((__v16si) __A, __B,
7530 							 (__v16si)
7531 							 _mm512_setzero_si512 (),
7532 							 (__mmask16) __U);
7533 	}
7534 	
7535 	extern __inline __m512i
7536 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7537 	_mm512_rol_epi64 (__m512i __A, const int __B)
7538 	{
7539 	  return (__m512i) __builtin_ia32_prolq512_mask ((__v8di) __A, __B,
7540 							 (__v8di)
7541 							 _mm512_undefined_epi32 (),
7542 							 (__mmask8) -1);
7543 	}
7544 	
7545 	extern __inline __m512i
7546 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7547 	_mm512_mask_rol_epi64 (__m512i __W, __mmask8 __U, __m512i __A, const int __B)
7548 	{
7549 	  return (__m512i) __builtin_ia32_prolq512_mask ((__v8di) __A, __B,
7550 							 (__v8di) __W,
7551 							 (__mmask8) __U);
7552 	}
7553 	
7554 	extern __inline __m512i
7555 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7556 	_mm512_maskz_rol_epi64 (__mmask8 __U, __m512i __A, const int __B)
7557 	{
7558 	  return (__m512i) __builtin_ia32_prolq512_mask ((__v8di) __A, __B,
7559 							 (__v8di)
7560 							 _mm512_setzero_si512 (),
7561 							 (__mmask8) __U);
7562 	}
7563 	
7564 	extern __inline __m512i
7565 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7566 	_mm512_ror_epi64 (__m512i __A, int __B)
7567 	{
7568 	  return (__m512i) __builtin_ia32_prorq512_mask ((__v8di) __A, __B,
7569 							 (__v8di)
7570 							 _mm512_undefined_epi32 (),
7571 							 (__mmask8) -1);
7572 	}
7573 	
7574 	extern __inline __m512i
7575 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7576 	_mm512_mask_ror_epi64 (__m512i __W, __mmask8 __U, __m512i __A, int __B)
7577 	{
7578 	  return (__m512i) __builtin_ia32_prorq512_mask ((__v8di) __A, __B,
7579 							 (__v8di) __W,
7580 							 (__mmask8) __U);
7581 	}
7582 	
7583 	extern __inline __m512i
7584 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7585 	_mm512_maskz_ror_epi64 (__mmask8 __U, __m512i __A, int __B)
7586 	{
7587 	  return (__m512i) __builtin_ia32_prorq512_mask ((__v8di) __A, __B,
7588 							 (__v8di)
7589 							 _mm512_setzero_si512 (),
7590 							 (__mmask8) __U);
7591 	}
7592 	
7593 	#else
7594 	#define _mm512_rol_epi32(A, B)						  \
7595 	    ((__m512i)__builtin_ia32_prold512_mask ((__v16si)(__m512i)(A),	  \
7596 						    (int)(B),			  \
7597 						    (__v16si)_mm512_undefined_epi32 (), \
7598 						    (__mmask16)(-1)))
7599 	#define _mm512_mask_rol_epi32(W, U, A, B)				  \
7600 	    ((__m512i)__builtin_ia32_prold512_mask ((__v16si)(__m512i)(A),	  \
7601 						    (int)(B),			  \
7602 						    (__v16si)(__m512i)(W),	  \
7603 						    (__mmask16)(U)))
7604 	#define _mm512_maskz_rol_epi32(U, A, B)					  \
7605 	    ((__m512i)__builtin_ia32_prold512_mask ((__v16si)(__m512i)(A),	  \
7606 						    (int)(B),			  \
7607 						    (__v16si)_mm512_setzero_si512 (), \
7608 						    (__mmask16)(U)))
7609 	#define _mm512_ror_epi32(A, B)						  \
7610 	    ((__m512i)__builtin_ia32_prord512_mask ((__v16si)(__m512i)(A),	  \
7611 						    (int)(B),			  \
7612 						    (__v16si)_mm512_undefined_epi32 (), \
7613 						    (__mmask16)(-1)))
7614 	#define _mm512_mask_ror_epi32(W, U, A, B)				  \
7615 	    ((__m512i)__builtin_ia32_prord512_mask ((__v16si)(__m512i)(A),	  \
7616 						    (int)(B),			  \
7617 						    (__v16si)(__m512i)(W),	  \
7618 						    (__mmask16)(U)))
7619 	#define _mm512_maskz_ror_epi32(U, A, B)					  \
7620 	    ((__m512i)__builtin_ia32_prord512_mask ((__v16si)(__m512i)(A),	  \
7621 						    (int)(B),			  \
7622 						    (__v16si)_mm512_setzero_si512 (), \
7623 						    (__mmask16)(U)))
7624 	#define _mm512_rol_epi64(A, B)						  \
7625 	    ((__m512i)__builtin_ia32_prolq512_mask ((__v8di)(__m512i)(A),	  \
7626 						    (int)(B),			  \
7627 						    (__v8di)_mm512_undefined_epi32 (),  \
7628 						    (__mmask8)(-1)))
7629 	#define _mm512_mask_rol_epi64(W, U, A, B)				  \
7630 	    ((__m512i)__builtin_ia32_prolq512_mask ((__v8di)(__m512i)(A),	  \
7631 						    (int)(B),			  \
7632 						    (__v8di)(__m512i)(W),	  \
7633 						    (__mmask8)(U)))
7634 	#define _mm512_maskz_rol_epi64(U, A, B)					  \
7635 	    ((__m512i)__builtin_ia32_prolq512_mask ((__v8di)(__m512i)(A),	  \
7636 						    (int)(B),			  \
7637 						    (__v8di)_mm512_setzero_si512 (),  \
7638 						    (__mmask8)(U)))
7639 	
7640 	#define _mm512_ror_epi64(A, B)						  \
7641 	    ((__m512i)__builtin_ia32_prorq512_mask ((__v8di)(__m512i)(A),	  \
7642 						    (int)(B),			  \
7643 						    (__v8di)_mm512_undefined_epi32 (),  \
7644 						    (__mmask8)(-1)))
7645 	#define _mm512_mask_ror_epi64(W, U, A, B)				  \
7646 	    ((__m512i)__builtin_ia32_prorq512_mask ((__v8di)(__m512i)(A),	  \
7647 						    (int)(B),			  \
7648 						    (__v8di)(__m512i)(W),	  \
7649 						    (__mmask8)(U)))
7650 	#define _mm512_maskz_ror_epi64(U, A, B)					  \
7651 	    ((__m512i)__builtin_ia32_prorq512_mask ((__v8di)(__m512i)(A),	  \
7652 						    (int)(B),			  \
7653 						    (__v8di)_mm512_setzero_si512 (),  \
7654 						    (__mmask8)(U)))
7655 	#endif
7656 	
7657 	extern __inline __m512i
7658 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7659 	_mm512_and_si512 (__m512i __A, __m512i __B)
7660 	{
7661 	  return (__m512i) ((__v16su) __A & (__v16su) __B);
7662 	}
7663 	
7664 	extern __inline __m512i
7665 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7666 	_mm512_and_epi32 (__m512i __A, __m512i __B)
7667 	{
7668 	  return (__m512i) ((__v16su) __A & (__v16su) __B);
7669 	}
7670 	
7671 	extern __inline __m512i
7672 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7673 	_mm512_mask_and_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
7674 	{
7675 	  return (__m512i) __builtin_ia32_pandd512_mask ((__v16si) __A,
7676 							 (__v16si) __B,
7677 							 (__v16si) __W,
7678 							 (__mmask16) __U);
7679 	}
7680 	
7681 	extern __inline __m512i
7682 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7683 	_mm512_maskz_and_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
7684 	{
7685 	  return (__m512i) __builtin_ia32_pandd512_mask ((__v16si) __A,
7686 							 (__v16si) __B,
7687 							 (__v16si)
7688 							 _mm512_setzero_si512 (),
7689 							 (__mmask16) __U);
7690 	}
7691 	
7692 	extern __inline __m512i
7693 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7694 	_mm512_and_epi64 (__m512i __A, __m512i __B)
7695 	{
7696 	  return (__m512i) ((__v8du) __A & (__v8du) __B);
7697 	}
7698 	
7699 	extern __inline __m512i
7700 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7701 	_mm512_mask_and_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
7702 	{
7703 	  return (__m512i) __builtin_ia32_pandq512_mask ((__v8di) __A,
7704 							 (__v8di) __B,
7705 							 (__v8di) __W, __U);
7706 	}
7707 	
7708 	extern __inline __m512i
7709 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7710 	_mm512_maskz_and_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
7711 	{
7712 	  return (__m512i) __builtin_ia32_pandq512_mask ((__v8di) __A,
7713 							 (__v8di) __B,
7714 							 (__v8di)
7715 							 _mm512_setzero_pd (),
7716 							 __U);
7717 	}
7718 	
7719 	extern __inline __m512i
7720 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7721 	_mm512_andnot_si512 (__m512i __A, __m512i __B)
7722 	{
7723 	  return (__m512i) __builtin_ia32_pandnd512_mask ((__v16si) __A,
7724 							  (__v16si) __B,
7725 							  (__v16si)
7726 							  _mm512_undefined_epi32 (),
7727 							  (__mmask16) -1);
7728 	}
7729 	
7730 	extern __inline __m512i
7731 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7732 	_mm512_andnot_epi32 (__m512i __A, __m512i __B)
7733 	{
7734 	  return (__m512i) __builtin_ia32_pandnd512_mask ((__v16si) __A,
7735 							  (__v16si) __B,
7736 							  (__v16si)
7737 							  _mm512_undefined_epi32 (),
7738 							  (__mmask16) -1);
7739 	}
7740 	
7741 	extern __inline __m512i
7742 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7743 	_mm512_mask_andnot_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
7744 	{
7745 	  return (__m512i) __builtin_ia32_pandnd512_mask ((__v16si) __A,
7746 							  (__v16si) __B,
7747 							  (__v16si) __W,
7748 							  (__mmask16) __U);
7749 	}
7750 	
7751 	extern __inline __m512i
7752 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7753 	_mm512_maskz_andnot_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
7754 	{
7755 	  return (__m512i) __builtin_ia32_pandnd512_mask ((__v16si) __A,
7756 							  (__v16si) __B,
7757 							  (__v16si)
7758 							  _mm512_setzero_si512 (),
7759 							  (__mmask16) __U);
7760 	}
7761 	
7762 	extern __inline __m512i
7763 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7764 	_mm512_andnot_epi64 (__m512i __A, __m512i __B)
7765 	{
7766 	  return (__m512i) __builtin_ia32_pandnq512_mask ((__v8di) __A,
7767 							  (__v8di) __B,
7768 							  (__v8di)
7769 							  _mm512_undefined_epi32 (),
7770 							  (__mmask8) -1);
7771 	}
7772 	
7773 	extern __inline __m512i
7774 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7775 	_mm512_mask_andnot_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
7776 	{
7777 	  return (__m512i) __builtin_ia32_pandnq512_mask ((__v8di) __A,
7778 							  (__v8di) __B,
7779 							  (__v8di) __W, __U);
7780 	}
7781 	
7782 	extern __inline __m512i
7783 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7784 	_mm512_maskz_andnot_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
7785 	{
7786 	  return (__m512i) __builtin_ia32_pandnq512_mask ((__v8di) __A,
7787 							  (__v8di) __B,
7788 							  (__v8di)
7789 							  _mm512_setzero_pd (),
7790 							  __U);
7791 	}
7792 	
7793 	extern __inline __mmask16
7794 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7795 	_mm512_test_epi32_mask (__m512i __A, __m512i __B)
7796 	{
7797 	  return (__mmask16) __builtin_ia32_ptestmd512 ((__v16si) __A,
7798 							(__v16si) __B,
7799 							(__mmask16) -1);
7800 	}
7801 	
7802 	extern __inline __mmask16
7803 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7804 	_mm512_mask_test_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B)
7805 	{
7806 	  return (__mmask16) __builtin_ia32_ptestmd512 ((__v16si) __A,
7807 							(__v16si) __B, __U);
7808 	}
7809 	
7810 	extern __inline __mmask8
7811 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7812 	_mm512_test_epi64_mask (__m512i __A, __m512i __B)
7813 	{
7814 	  return (__mmask8) __builtin_ia32_ptestmq512 ((__v8di) __A,
7815 						       (__v8di) __B,
7816 						       (__mmask8) -1);
7817 	}
7818 	
7819 	extern __inline __mmask8
7820 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7821 	_mm512_mask_test_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B)
7822 	{
7823 	  return (__mmask8) __builtin_ia32_ptestmq512 ((__v8di) __A, (__v8di) __B, __U);
7824 	}
7825 	
7826 	extern __inline __mmask16
7827 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7828 	_mm512_testn_epi32_mask (__m512i __A, __m512i __B)
7829 	{
7830 	  return (__mmask16) __builtin_ia32_ptestnmd512 ((__v16si) __A,
7831 							 (__v16si) __B,
7832 							 (__mmask16) -1);
7833 	}
7834 	
7835 	extern __inline __mmask16
7836 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7837 	_mm512_mask_testn_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B)
7838 	{
7839 	  return (__mmask16) __builtin_ia32_ptestnmd512 ((__v16si) __A,
7840 							 (__v16si) __B, __U);
7841 	}
7842 	
7843 	extern __inline __mmask8
7844 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7845 	_mm512_testn_epi64_mask (__m512i __A, __m512i __B)
7846 	{
7847 	  return (__mmask8) __builtin_ia32_ptestnmq512 ((__v8di) __A,
7848 							(__v8di) __B,
7849 							(__mmask8) -1);
7850 	}
7851 	
7852 	extern __inline __mmask8
7853 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7854 	_mm512_mask_testn_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B)
7855 	{
7856 	  return (__mmask8) __builtin_ia32_ptestnmq512 ((__v8di) __A,
7857 							(__v8di) __B, __U);
7858 	}
7859 	
7860 	extern __inline __m512
7861 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7862 	_mm512_abs_ps (__m512 __A)
7863 	{
7864 	  return (__m512) _mm512_and_epi32 ((__m512i) __A,
7865 					    _mm512_set1_epi32 (0x7fffffff));
7866 	}
7867 	
7868 	extern __inline __m512
7869 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7870 	_mm512_mask_abs_ps (__m512 __W, __mmask16 __U, __m512 __A)
7871 	{
7872 	  return (__m512) _mm512_mask_and_epi32 ((__m512i) __W, __U, (__m512i) __A,
7873 						 _mm512_set1_epi32 (0x7fffffff));
7874 	}
7875 	
7876 	extern __inline __m512d
7877 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7878 	_mm512_abs_pd (__m512d __A)
7879 	{
7880 	  return (__m512d) _mm512_and_epi64 ((__m512i) __A,
7881 					     _mm512_set1_epi64 (0x7fffffffffffffffLL));
7882 	}
7883 	
7884 	extern __inline __m512d
7885 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7886 	_mm512_mask_abs_pd (__m512d __W, __mmask8 __U, __m512d __A)
7887 	{
7888 	  return (__m512d)
7889 		 _mm512_mask_and_epi64 ((__m512i) __W, __U, (__m512i) __A,
7890 					_mm512_set1_epi64 (0x7fffffffffffffffLL));
7891 	}
7892 	
7893 	extern __inline __m512i
7894 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7895 	_mm512_unpackhi_epi32 (__m512i __A, __m512i __B)
7896 	{
7897 	  return (__m512i) __builtin_ia32_punpckhdq512_mask ((__v16si) __A,
7898 							     (__v16si) __B,
7899 							     (__v16si)
7900 							     _mm512_undefined_epi32 (),
7901 							     (__mmask16) -1);
7902 	}
7903 	
7904 	extern __inline __m512i
7905 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7906 	_mm512_mask_unpackhi_epi32 (__m512i __W, __mmask16 __U, __m512i __A,
7907 				    __m512i __B)
7908 	{
7909 	  return (__m512i) __builtin_ia32_punpckhdq512_mask ((__v16si) __A,
7910 							     (__v16si) __B,
7911 							     (__v16si) __W,
7912 							     (__mmask16) __U);
7913 	}
7914 	
7915 	extern __inline __m512i
7916 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7917 	_mm512_maskz_unpackhi_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
7918 	{
7919 	  return (__m512i) __builtin_ia32_punpckhdq512_mask ((__v16si) __A,
7920 							     (__v16si) __B,
7921 							     (__v16si)
7922 							     _mm512_setzero_si512 (),
7923 							     (__mmask16) __U);
7924 	}
7925 	
7926 	extern __inline __m512i
7927 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7928 	_mm512_unpackhi_epi64 (__m512i __A, __m512i __B)
7929 	{
7930 	  return (__m512i) __builtin_ia32_punpckhqdq512_mask ((__v8di) __A,
7931 							      (__v8di) __B,
7932 							      (__v8di)
7933 							      _mm512_undefined_epi32 (),
7934 							      (__mmask8) -1);
7935 	}
7936 	
7937 	extern __inline __m512i
7938 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7939 	_mm512_mask_unpackhi_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
7940 	{
7941 	  return (__m512i) __builtin_ia32_punpckhqdq512_mask ((__v8di) __A,
7942 							      (__v8di) __B,
7943 							      (__v8di) __W,
7944 							      (__mmask8) __U);
7945 	}
7946 	
7947 	extern __inline __m512i
7948 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7949 	_mm512_maskz_unpackhi_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
7950 	{
7951 	  return (__m512i) __builtin_ia32_punpckhqdq512_mask ((__v8di) __A,
7952 							      (__v8di) __B,
7953 							      (__v8di)
7954 							      _mm512_setzero_si512 (),
7955 							      (__mmask8) __U);
7956 	}
7957 	
7958 	extern __inline __m512i
7959 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7960 	_mm512_unpacklo_epi32 (__m512i __A, __m512i __B)
7961 	{
7962 	  return (__m512i) __builtin_ia32_punpckldq512_mask ((__v16si) __A,
7963 							     (__v16si) __B,
7964 							     (__v16si)
7965 							     _mm512_undefined_epi32 (),
7966 							     (__mmask16) -1);
7967 	}
7968 	
7969 	extern __inline __m512i
7970 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7971 	_mm512_mask_unpacklo_epi32 (__m512i __W, __mmask16 __U, __m512i __A,
7972 				    __m512i __B)
7973 	{
7974 	  return (__m512i) __builtin_ia32_punpckldq512_mask ((__v16si) __A,
7975 							     (__v16si) __B,
7976 							     (__v16si) __W,
7977 							     (__mmask16) __U);
7978 	}
7979 	
7980 	extern __inline __m512i
7981 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7982 	_mm512_maskz_unpacklo_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
7983 	{
7984 	  return (__m512i) __builtin_ia32_punpckldq512_mask ((__v16si) __A,
7985 							     (__v16si) __B,
7986 							     (__v16si)
7987 							     _mm512_setzero_si512 (),
7988 							     (__mmask16) __U);
7989 	}
7990 	
7991 	extern __inline __m512i
7992 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7993 	_mm512_unpacklo_epi64 (__m512i __A, __m512i __B)
7994 	{
7995 	  return (__m512i) __builtin_ia32_punpcklqdq512_mask ((__v8di) __A,
7996 							      (__v8di) __B,
7997 							      (__v8di)
7998 							      _mm512_undefined_epi32 (),
7999 							      (__mmask8) -1);
8000 	}
8001 	
8002 	extern __inline __m512i
8003 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8004 	_mm512_mask_unpacklo_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
8005 	{
8006 	  return (__m512i) __builtin_ia32_punpcklqdq512_mask ((__v8di) __A,
8007 							      (__v8di) __B,
8008 							      (__v8di) __W,
8009 							      (__mmask8) __U);
8010 	}
8011 	
8012 	extern __inline __m512i
8013 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8014 	_mm512_maskz_unpacklo_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
8015 	{
8016 	  return (__m512i) __builtin_ia32_punpcklqdq512_mask ((__v8di) __A,
8017 							      (__v8di) __B,
8018 							      (__v8di)
8019 							      _mm512_setzero_si512 (),
8020 							      (__mmask8) __U);
8021 	}
8022 	
8023 	#ifdef __x86_64__
8024 	#ifdef __OPTIMIZE__
8025 	extern __inline unsigned long long
8026 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8027 	_mm_cvt_roundss_u64 (__m128 __A, const int __R)
8028 	{
8029 	  return (unsigned long long) __builtin_ia32_vcvtss2usi64 ((__v4sf) __A, __R);
8030 	}
8031 	
8032 	extern __inline long long
8033 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8034 	_mm_cvt_roundss_si64 (__m128 __A, const int __R)
8035 	{
8036 	  return (long long) __builtin_ia32_vcvtss2si64 ((__v4sf) __A, __R);
8037 	}
8038 	
8039 	extern __inline long long
8040 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8041 	_mm_cvt_roundss_i64 (__m128 __A, const int __R)
8042 	{
8043 	  return (long long) __builtin_ia32_vcvtss2si64 ((__v4sf) __A, __R);
8044 	}
8045 	
8046 	extern __inline unsigned long long
8047 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8048 	_mm_cvtt_roundss_u64 (__m128 __A, const int __R)
8049 	{
8050 	  return (unsigned long long) __builtin_ia32_vcvttss2usi64 ((__v4sf) __A, __R);
8051 	}
8052 	
8053 	extern __inline long long
8054 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8055 	_mm_cvtt_roundss_i64 (__m128 __A, const int __R)
8056 	{
8057 	  return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf) __A, __R);
8058 	}
8059 	
8060 	extern __inline long long
8061 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8062 	_mm_cvtt_roundss_si64 (__m128 __A, const int __R)
8063 	{
8064 	  return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf) __A, __R);
8065 	}
8066 	#else
8067 	#define _mm_cvt_roundss_u64(A, B)   \
8068 	    ((unsigned long long)__builtin_ia32_vcvtss2usi64(A, B))
8069 	
8070 	#define _mm_cvt_roundss_si64(A, B)   \
8071 	    ((long long)__builtin_ia32_vcvtss2si64(A, B))
8072 	
8073 	#define _mm_cvt_roundss_i64(A, B)   \
8074 	    ((long long)__builtin_ia32_vcvtss2si64(A, B))
8075 	
8076 	#define _mm_cvtt_roundss_u64(A, B)  \
8077 	    ((unsigned long long)__builtin_ia32_vcvttss2usi64(A, B))
8078 	
8079 	#define _mm_cvtt_roundss_i64(A, B)  \
8080 	    ((long long)__builtin_ia32_vcvttss2si64(A, B))
8081 	
8082 	#define _mm_cvtt_roundss_si64(A, B)  \
8083 	    ((long long)__builtin_ia32_vcvttss2si64(A, B))
8084 	#endif
8085 	#endif
8086 	
8087 	#ifdef __OPTIMIZE__
8088 	extern __inline unsigned
8089 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8090 	_mm_cvt_roundss_u32 (__m128 __A, const int __R)
8091 	{
8092 	  return (unsigned) __builtin_ia32_vcvtss2usi32 ((__v4sf) __A, __R);
8093 	}
8094 	
8095 	extern __inline int
8096 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8097 	_mm_cvt_roundss_si32 (__m128 __A, const int __R)
8098 	{
8099 	  return (int) __builtin_ia32_vcvtss2si32 ((__v4sf) __A, __R);
8100 	}
8101 	
8102 	extern __inline int
8103 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8104 	_mm_cvt_roundss_i32 (__m128 __A, const int __R)
8105 	{
8106 	  return (int) __builtin_ia32_vcvtss2si32 ((__v4sf) __A, __R);
8107 	}
8108 	
8109 	extern __inline unsigned
8110 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8111 	_mm_cvtt_roundss_u32 (__m128 __A, const int __R)
8112 	{
8113 	  return (unsigned) __builtin_ia32_vcvttss2usi32 ((__v4sf) __A, __R);
8114 	}
8115 	
8116 	extern __inline int
8117 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8118 	_mm_cvtt_roundss_i32 (__m128 __A, const int __R)
8119 	{
8120 	  return (int) __builtin_ia32_vcvttss2si32 ((__v4sf) __A, __R);
8121 	}
8122 	
8123 	extern __inline int
8124 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8125 	_mm_cvtt_roundss_si32 (__m128 __A, const int __R)
8126 	{
8127 	  return (int) __builtin_ia32_vcvttss2si32 ((__v4sf) __A, __R);
8128 	}
8129 	#else
8130 	#define _mm_cvt_roundss_u32(A, B)   \
8131 	    ((unsigned)__builtin_ia32_vcvtss2usi32(A, B))
8132 	
8133 	#define _mm_cvt_roundss_si32(A, B)   \
8134 	    ((int)__builtin_ia32_vcvtss2si32(A, B))
8135 	
8136 	#define _mm_cvt_roundss_i32(A, B)   \
8137 	    ((int)__builtin_ia32_vcvtss2si32(A, B))
8138 	
8139 	#define _mm_cvtt_roundss_u32(A, B)  \
8140 	    ((unsigned)__builtin_ia32_vcvttss2usi32(A, B))
8141 	
8142 	#define _mm_cvtt_roundss_si32(A, B)  \
8143 	    ((int)__builtin_ia32_vcvttss2si32(A, B))
8144 	
8145 	#define _mm_cvtt_roundss_i32(A, B)  \
8146 	    ((int)__builtin_ia32_vcvttss2si32(A, B))
8147 	#endif
8148 	
8149 	#ifdef __x86_64__
8150 	#ifdef __OPTIMIZE__
8151 	extern __inline unsigned long long
8152 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8153 	_mm_cvt_roundsd_u64 (__m128d __A, const int __R)
8154 	{
8155 	  return (unsigned long long) __builtin_ia32_vcvtsd2usi64 ((__v2df) __A, __R);
8156 	}
8157 	
8158 	extern __inline long long
8159 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8160 	_mm_cvt_roundsd_si64 (__m128d __A, const int __R)
8161 	{
8162 	  return (long long) __builtin_ia32_vcvtsd2si64 ((__v2df) __A, __R);
8163 	}
8164 	
8165 	extern __inline long long
8166 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8167 	_mm_cvt_roundsd_i64 (__m128d __A, const int __R)
8168 	{
8169 	  return (long long) __builtin_ia32_vcvtsd2si64 ((__v2df) __A, __R);
8170 	}
8171 	
8172 	extern __inline unsigned long long
8173 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8174 	_mm_cvtt_roundsd_u64 (__m128d __A, const int __R)
8175 	{
8176 	  return (unsigned long long) __builtin_ia32_vcvttsd2usi64 ((__v2df) __A, __R);
8177 	}
8178 	
8179 	extern __inline long long
8180 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8181 	_mm_cvtt_roundsd_si64 (__m128d __A, const int __R)
8182 	{
8183 	  return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df) __A, __R);
8184 	}
8185 	
8186 	extern __inline long long
8187 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8188 	_mm_cvtt_roundsd_i64 (__m128d __A, const int __R)
8189 	{
8190 	  return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df) __A, __R);
8191 	}
8192 	#else
8193 	#define _mm_cvt_roundsd_u64(A, B)   \
8194 	    ((unsigned long long)__builtin_ia32_vcvtsd2usi64(A, B))
8195 	
8196 	#define _mm_cvt_roundsd_si64(A, B)   \
8197 	    ((long long)__builtin_ia32_vcvtsd2si64(A, B))
8198 	
8199 	#define _mm_cvt_roundsd_i64(A, B)   \
8200 	    ((long long)__builtin_ia32_vcvtsd2si64(A, B))
8201 	
8202 	#define _mm_cvtt_roundsd_u64(A, B)   \
8203 	    ((unsigned long long)__builtin_ia32_vcvttsd2usi64(A, B))
8204 	
8205 	#define _mm_cvtt_roundsd_si64(A, B)   \
8206 	    ((long long)__builtin_ia32_vcvttsd2si64(A, B))
8207 	
8208 	#define _mm_cvtt_roundsd_i64(A, B)   \
8209 	    ((long long)__builtin_ia32_vcvttsd2si64(A, B))
8210 	#endif
8211 	#endif
8212 	
8213 	#ifdef __OPTIMIZE__
8214 	extern __inline unsigned
8215 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8216 	_mm_cvt_roundsd_u32 (__m128d __A, const int __R)
8217 	{
8218 	  return (unsigned) __builtin_ia32_vcvtsd2usi32 ((__v2df) __A, __R);
8219 	}
8220 	
8221 	extern __inline int
8222 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8223 	_mm_cvt_roundsd_si32 (__m128d __A, const int __R)
8224 	{
8225 	  return (int) __builtin_ia32_vcvtsd2si32 ((__v2df) __A, __R);
8226 	}
8227 	
8228 	extern __inline int
8229 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8230 	_mm_cvt_roundsd_i32 (__m128d __A, const int __R)
8231 	{
8232 	  return (int) __builtin_ia32_vcvtsd2si32 ((__v2df) __A, __R);
8233 	}
8234 	
8235 	extern __inline unsigned
8236 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8237 	_mm_cvtt_roundsd_u32 (__m128d __A, const int __R)
8238 	{
8239 	  return (unsigned) __builtin_ia32_vcvttsd2usi32 ((__v2df) __A, __R);
8240 	}
8241 	
8242 	extern __inline int
8243 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8244 	_mm_cvtt_roundsd_i32 (__m128d __A, const int __R)
8245 	{
8246 	  return (int) __builtin_ia32_vcvttsd2si32 ((__v2df) __A, __R);
8247 	}
8248 	
8249 	extern __inline int
8250 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8251 	_mm_cvtt_roundsd_si32 (__m128d __A, const int __R)
8252 	{
8253 	  return (int) __builtin_ia32_vcvttsd2si32 ((__v2df) __A, __R);
8254 	}
8255 	#else
8256 	#define _mm_cvt_roundsd_u32(A, B)   \
8257 	    ((unsigned)__builtin_ia32_vcvtsd2usi32(A, B))
8258 	
8259 	#define _mm_cvt_roundsd_si32(A, B)   \
8260 	    ((int)__builtin_ia32_vcvtsd2si32(A, B))
8261 	
8262 	#define _mm_cvt_roundsd_i32(A, B)   \
8263 	    ((int)__builtin_ia32_vcvtsd2si32(A, B))
8264 	
8265 	#define _mm_cvtt_roundsd_u32(A, B)   \
8266 	    ((unsigned)__builtin_ia32_vcvttsd2usi32(A, B))
8267 	
8268 	#define _mm_cvtt_roundsd_si32(A, B)   \
8269 	    ((int)__builtin_ia32_vcvttsd2si32(A, B))
8270 	
8271 	#define _mm_cvtt_roundsd_i32(A, B)   \
8272 	    ((int)__builtin_ia32_vcvttsd2si32(A, B))
8273 	#endif
8274 	
8275 	extern __inline __m512d
8276 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8277 	_mm512_movedup_pd (__m512d __A)
8278 	{
8279 	  return (__m512d) __builtin_ia32_movddup512_mask ((__v8df) __A,
8280 							   (__v8df)
8281 							   _mm512_undefined_pd (),
8282 							   (__mmask8) -1);
8283 	}
8284 	
8285 	extern __inline __m512d
8286 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8287 	_mm512_mask_movedup_pd (__m512d __W, __mmask8 __U, __m512d __A)
8288 	{
8289 	  return (__m512d) __builtin_ia32_movddup512_mask ((__v8df) __A,
8290 							   (__v8df) __W,
8291 							   (__mmask8) __U);
8292 	}
8293 	
8294 	extern __inline __m512d
8295 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8296 	_mm512_maskz_movedup_pd (__mmask8 __U, __m512d __A)
8297 	{
8298 	  return (__m512d) __builtin_ia32_movddup512_mask ((__v8df) __A,
8299 							   (__v8df)
8300 							   _mm512_setzero_pd (),
8301 							   (__mmask8) __U);
8302 	}
8303 	
8304 	extern __inline __m512d
8305 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8306 	_mm512_unpacklo_pd (__m512d __A, __m512d __B)
8307 	{
8308 	  return (__m512d) __builtin_ia32_unpcklpd512_mask ((__v8df) __A,
8309 							    (__v8df) __B,
8310 							    (__v8df)
8311 							    _mm512_undefined_pd (),
8312 							    (__mmask8) -1);
8313 	}
8314 	
8315 	extern __inline __m512d
8316 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8317 	_mm512_mask_unpacklo_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
8318 	{
8319 	  return (__m512d) __builtin_ia32_unpcklpd512_mask ((__v8df) __A,
8320 							    (__v8df) __B,
8321 							    (__v8df) __W,
8322 							    (__mmask8) __U);
8323 	}
8324 	
8325 	extern __inline __m512d
8326 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8327 	_mm512_maskz_unpacklo_pd (__mmask8 __U, __m512d __A, __m512d __B)
8328 	{
8329 	  return (__m512d) __builtin_ia32_unpcklpd512_mask ((__v8df) __A,
8330 							    (__v8df) __B,
8331 							    (__v8df)
8332 							    _mm512_setzero_pd (),
8333 							    (__mmask8) __U);
8334 	}
8335 	
8336 	extern __inline __m512d
8337 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8338 	_mm512_unpackhi_pd (__m512d __A, __m512d __B)
8339 	{
8340 	  return (__m512d) __builtin_ia32_unpckhpd512_mask ((__v8df) __A,
8341 							    (__v8df) __B,
8342 							    (__v8df)
8343 							    _mm512_undefined_pd (),
8344 							    (__mmask8) -1);
8345 	}
8346 	
8347 	extern __inline __m512d
8348 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8349 	_mm512_mask_unpackhi_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
8350 	{
8351 	  return (__m512d) __builtin_ia32_unpckhpd512_mask ((__v8df) __A,
8352 							    (__v8df) __B,
8353 							    (__v8df) __W,
8354 							    (__mmask8) __U);
8355 	}
8356 	
8357 	extern __inline __m512d
8358 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8359 	_mm512_maskz_unpackhi_pd (__mmask8 __U, __m512d __A, __m512d __B)
8360 	{
8361 	  return (__m512d) __builtin_ia32_unpckhpd512_mask ((__v8df) __A,
8362 							    (__v8df) __B,
8363 							    (__v8df)
8364 							    _mm512_setzero_pd (),
8365 							    (__mmask8) __U);
8366 	}
8367 	
8368 	extern __inline __m512
8369 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8370 	_mm512_unpackhi_ps (__m512 __A, __m512 __B)
8371 	{
8372 	  return (__m512) __builtin_ia32_unpckhps512_mask ((__v16sf) __A,
8373 							   (__v16sf) __B,
8374 							   (__v16sf)
8375 							   _mm512_undefined_ps (),
8376 							   (__mmask16) -1);
8377 	}
8378 	
8379 	extern __inline __m512
8380 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8381 	_mm512_mask_unpackhi_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
8382 	{
8383 	  return (__m512) __builtin_ia32_unpckhps512_mask ((__v16sf) __A,
8384 							   (__v16sf) __B,
8385 							   (__v16sf) __W,
8386 							   (__mmask16) __U);
8387 	}
8388 	
8389 	extern __inline __m512
8390 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8391 	_mm512_maskz_unpackhi_ps (__mmask16 __U, __m512 __A, __m512 __B)
8392 	{
8393 	  return (__m512) __builtin_ia32_unpckhps512_mask ((__v16sf) __A,
8394 							   (__v16sf) __B,
8395 							   (__v16sf)
8396 							   _mm512_setzero_ps (),
8397 							   (__mmask16) __U);
8398 	}
8399 	
8400 	#ifdef __OPTIMIZE__
8401 	extern __inline __m512d
8402 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8403 	_mm512_cvt_roundps_pd (__m256 __A, const int __R)
8404 	{
8405 	  return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
8406 							    (__v8df)
8407 							    _mm512_undefined_pd (),
8408 							    (__mmask8) -1, __R);
8409 	}
8410 	
8411 	extern __inline __m512d
8412 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8413 	_mm512_mask_cvt_roundps_pd (__m512d __W, __mmask8 __U, __m256 __A,
8414 				    const int __R)
8415 	{
8416 	  return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
8417 							    (__v8df) __W,
8418 							    (__mmask8) __U, __R);
8419 	}
8420 	
8421 	extern __inline __m512d
8422 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8423 	_mm512_maskz_cvt_roundps_pd (__mmask8 __U, __m256 __A, const int __R)
8424 	{
8425 	  return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
8426 							    (__v8df)
8427 							    _mm512_setzero_pd (),
8428 							    (__mmask8) __U, __R);
8429 	}
8430 	
8431 	extern __inline __m512
8432 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8433 	_mm512_cvt_roundph_ps (__m256i __A, const int __R)
8434 	{
8435 	  return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,
8436 							    (__v16sf)
8437 							    _mm512_undefined_ps (),
8438 							    (__mmask16) -1, __R);
8439 	}
8440 	
8441 	extern __inline __m512
8442 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8443 	_mm512_mask_cvt_roundph_ps (__m512 __W, __mmask16 __U, __m256i __A,
8444 				    const int __R)
8445 	{
8446 	  return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,
8447 							    (__v16sf) __W,
8448 							    (__mmask16) __U, __R);
8449 	}
8450 	
8451 	extern __inline __m512
8452 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8453 	_mm512_maskz_cvt_roundph_ps (__mmask16 __U, __m256i __A, const int __R)
8454 	{
8455 	  return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,
8456 							    (__v16sf)
8457 							    _mm512_setzero_ps (),
8458 							    (__mmask16) __U, __R);
8459 	}
8460 	
8461 	extern __inline __m256i
8462 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8463 	_mm512_cvt_roundps_ph (__m512 __A, const int __I)
8464 	{
8465 	  return (__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf) __A,
8466 							     __I,
8467 							     (__v16hi)
8468 							     _mm256_undefined_si256 (),
8469 							     -1);
8470 	}
8471 	
8472 	extern __inline __m256i
8473 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8474 	_mm512_cvtps_ph (__m512 __A, const int __I)
8475 	{
8476 	  return (__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf) __A,
8477 							     __I,
8478 							     (__v16hi)
8479 							     _mm256_undefined_si256 (),
8480 							     -1);
8481 	}
8482 	
8483 	extern __inline __m256i
8484 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8485 	_mm512_mask_cvt_roundps_ph (__m256i __U, __mmask16 __W, __m512 __A,
8486 				    const int __I)
8487 	{
8488 	  return (__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf) __A,
8489 							     __I,
8490 							     (__v16hi) __U,
8491 							     (__mmask16) __W);
8492 	}
8493 	
8494 	extern __inline __m256i
8495 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8496 	_mm512_mask_cvtps_ph (__m256i __U, __mmask16 __W, __m512 __A, const int __I)
8497 	{
8498 	  return (__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf) __A,
8499 							     __I,
8500 							     (__v16hi) __U,
8501 							     (__mmask16) __W);
8502 	}
8503 	
8504 	extern __inline __m256i
8505 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8506 	_mm512_maskz_cvt_roundps_ph (__mmask16 __W, __m512 __A, const int __I)
8507 	{
8508 	  return (__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf) __A,
8509 							     __I,
8510 							     (__v16hi)
8511 							     _mm256_setzero_si256 (),
8512 							     (__mmask16) __W);
8513 	}
8514 	
8515 	extern __inline __m256i
8516 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8517 	_mm512_maskz_cvtps_ph (__mmask16 __W, __m512 __A, const int __I)
8518 	{
8519 	  return (__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf) __A,
8520 							     __I,
8521 							     (__v16hi)
8522 							     _mm256_setzero_si256 (),
8523 							     (__mmask16) __W);
8524 	}
8525 	#else
8526 	#define _mm512_cvt_roundps_pd(A, B)		 \
8527 	    (__m512d)__builtin_ia32_cvtps2pd512_mask(A, (__v8df)_mm512_undefined_pd(), -1, B)
8528 	
8529 	#define _mm512_mask_cvt_roundps_pd(W, U, A, B)   \
8530 	    (__m512d)__builtin_ia32_cvtps2pd512_mask(A, (__v8df)(W), U, B)
8531 	
8532 	#define _mm512_maskz_cvt_roundps_pd(U, A, B)     \
8533 	    (__m512d)__builtin_ia32_cvtps2pd512_mask(A, (__v8df)_mm512_setzero_pd(), U, B)
8534 	
8535 	#define _mm512_cvt_roundph_ps(A, B)		 \
8536 	    (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(A), (__v16sf)_mm512_undefined_ps(), -1, B)
8537 	
8538 	#define _mm512_mask_cvt_roundph_ps(W, U, A, B)   \
8539 	    (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(A), (__v16sf)(W), U, B)
8540 	
8541 	#define _mm512_maskz_cvt_roundph_ps(U, A, B)     \
8542 	    (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(A), (__v16sf)_mm512_setzero_ps(), U, B)
8543 	
8544 	#define _mm512_cvt_roundps_ph(A, I)						 \
8545 	  ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
8546 	    (__v16hi)_mm256_undefined_si256 (), -1))
8547 	#define _mm512_cvtps_ph(A, I)						 \
8548 	  ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
8549 	    (__v16hi)_mm256_undefined_si256 (), -1))
8550 	#define _mm512_mask_cvt_roundps_ph(U, W, A, I)				 \
8551 	  ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
8552 	    (__v16hi)(__m256i)(U), (__mmask16) (W)))
8553 	#define _mm512_mask_cvtps_ph(U, W, A, I)				 \
8554 	  ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
8555 	    (__v16hi)(__m256i)(U), (__mmask16) (W)))
8556 	#define _mm512_maskz_cvt_roundps_ph(W, A, I)					 \
8557 	  ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
8558 	    (__v16hi)_mm256_setzero_si256 (), (__mmask16) (W)))
8559 	#define _mm512_maskz_cvtps_ph(W, A, I)					 \
8560 	  ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) A, (int) (I),\
8561 	    (__v16hi)_mm256_setzero_si256 (), (__mmask16) (W)))
8562 	#endif
8563 	
8564 	#ifdef __OPTIMIZE__
8565 	extern __inline __m256
8566 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8567 	_mm512_cvt_roundpd_ps (__m512d __A, const int __R)
8568 	{
8569 	  return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,
8570 							   (__v8sf)
8571 							   _mm256_undefined_ps (),
8572 							   (__mmask8) -1, __R);
8573 	}
8574 	
8575 	extern __inline __m256
8576 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8577 	_mm512_mask_cvt_roundpd_ps (__m256 __W, __mmask8 __U, __m512d __A,
8578 				    const int __R)
8579 	{
8580 	  return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,
8581 							   (__v8sf) __W,
8582 							   (__mmask8) __U, __R);
8583 	}
8584 	
8585 	extern __inline __m256
8586 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8587 	_mm512_maskz_cvt_roundpd_ps (__mmask8 __U, __m512d __A, const int __R)
8588 	{
8589 	  return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,
8590 							   (__v8sf)
8591 							   _mm256_setzero_ps (),
8592 							   (__mmask8) __U, __R);
8593 	}
8594 	
8595 	extern __inline __m128
8596 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8597 	_mm_cvt_roundsd_ss (__m128 __A, __m128d __B, const int __R)
8598 	{
8599 	  return (__m128) __builtin_ia32_cvtsd2ss_round ((__v4sf) __A,
8600 							 (__v2df) __B,
8601 							 __R);
8602 	}
8603 	
8604 	extern __inline __m128d
8605 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8606 	_mm_cvt_roundss_sd (__m128d __A, __m128 __B, const int __R)
8607 	{
8608 	  return (__m128d) __builtin_ia32_cvtss2sd_round ((__v2df) __A,
8609 							  (__v4sf) __B,
8610 							  __R);
8611 	}
8612 	#else
8613 	#define _mm512_cvt_roundpd_ps(A, B)		 \
8614 	    (__m256)__builtin_ia32_cvtpd2ps512_mask(A, (__v8sf)_mm256_undefined_ps(), -1, B)
8615 	
8616 	#define _mm512_mask_cvt_roundpd_ps(W, U, A, B)   \
8617 	    (__m256)__builtin_ia32_cvtpd2ps512_mask(A, (__v8sf)(W), U, B)
8618 	
8619 	#define _mm512_maskz_cvt_roundpd_ps(U, A, B)     \
8620 	    (__m256)__builtin_ia32_cvtpd2ps512_mask(A, (__v8sf)_mm256_setzero_ps(), U, B)
8621 	
8622 	#define _mm_cvt_roundsd_ss(A, B, C)		 \
8623 	    (__m128)__builtin_ia32_cvtsd2ss_round(A, B, C)
8624 	
8625 	#define _mm_cvt_roundss_sd(A, B, C)		 \
8626 	    (__m128d)__builtin_ia32_cvtss2sd_round(A, B, C)
8627 	#endif
8628 	
8629 	extern __inline void
8630 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8631 	_mm512_stream_si512 (__m512i * __P, __m512i __A)
8632 	{
8633 	  __builtin_ia32_movntdq512 ((__v8di *) __P, (__v8di) __A);
8634 	}
8635 	
8636 	extern __inline void
8637 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8638 	_mm512_stream_ps (float *__P, __m512 __A)
8639 	{
8640 	  __builtin_ia32_movntps512 (__P, (__v16sf) __A);
8641 	}
8642 	
8643 	extern __inline void
8644 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8645 	_mm512_stream_pd (double *__P, __m512d __A)
8646 	{
8647 	  __builtin_ia32_movntpd512 (__P, (__v8df) __A);
8648 	}
8649 	
8650 	extern __inline __m512i
8651 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8652 	_mm512_stream_load_si512 (void *__P)
8653 	{
8654 	  return __builtin_ia32_movntdqa512 ((__v8di *)__P);
8655 	}
8656 	
8657 	/* Constants for mantissa extraction */
8658 	typedef enum
8659 	{
8660 	  _MM_MANT_NORM_1_2,		/* interval [1, 2)      */
8661 	  _MM_MANT_NORM_p5_2,		/* interval [0.5, 2)    */
8662 	  _MM_MANT_NORM_p5_1,		/* interval [0.5, 1)    */
8663 	  _MM_MANT_NORM_p75_1p5		/* interval [0.75, 1.5) */
8664 	} _MM_MANTISSA_NORM_ENUM;
8665 	
8666 	typedef enum
8667 	{
8668 	  _MM_MANT_SIGN_src,		/* sign = sign(SRC)     */
8669 	  _MM_MANT_SIGN_zero,		/* sign = 0             */
8670 	  _MM_MANT_SIGN_nan		/* DEST = NaN if sign(SRC) = 1 */
8671 	} _MM_MANTISSA_SIGN_ENUM;
8672 	
8673 	#ifdef __OPTIMIZE__
8674 	extern __inline __m128
8675 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8676 	_mm_getexp_round_ss (__m128 __A, __m128 __B, const int __R)
8677 	{
8678 	  return (__m128) __builtin_ia32_getexpss128_round ((__v4sf) __A,
8679 							    (__v4sf) __B,
8680 							    __R);
8681 	}
8682 	
8683 	extern __inline __m128
8684 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8685 	_mm_mask_getexp_round_ss (__m128 __W, __mmask8 __U, __m128 __A,
8686 				  __m128 __B, const int __R)
8687 	{
8688 	  return (__m128) __builtin_ia32_getexpss_mask_round ((__v4sf) __A,
8689 							 (__v4sf) __B,
8690 							 (__v4sf) __W,
8691 							 (__mmask8) __U, __R);
8692 	}
8693 	
8694 	extern __inline __m128
8695 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8696 	_mm_maskz_getexp_round_ss (__mmask8 __U, __m128 __A, __m128 __B,
8697 				   const int __R)
8698 	{
8699 	  return (__m128) __builtin_ia32_getexpss_mask_round ((__v4sf) __A,
8700 							 (__v4sf) __B,
8701 							 (__v4sf)
8702 							 _mm_setzero_ps (),
8703 							 (__mmask8) __U, __R);
8704 	}
8705 	
8706 	extern __inline __m128d
8707 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8708 	_mm_getexp_round_sd (__m128d __A, __m128d __B, const int __R)
8709 	{
8710 	  return (__m128d) __builtin_ia32_getexpsd128_round ((__v2df) __A,
8711 							     (__v2df) __B,
8712 							     __R);
8713 	}
8714 	
8715 	extern __inline __m128d
8716 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8717 	_mm_mask_getexp_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
8718 				  __m128d __B, const int __R)
8719 	{
8720 	  return (__m128d) __builtin_ia32_getexpsd_mask_round ((__v2df) __A,
8721 							 (__v2df) __B,
8722 							 (__v2df) __W,
8723 							 (__mmask8) __U, __R);
8724 	}
8725 	
8726 	extern __inline __m128d
8727 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8728 	_mm_maskz_getexp_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
8729 				   const int __R)
8730 	{
8731 	  return (__m128d) __builtin_ia32_getexpsd_mask_round ((__v2df) __A,
8732 							 (__v2df) __B,
8733 							 (__v2df)
8734 							 _mm_setzero_pd (),
8735 							 (__mmask8) __U, __R);
8736 	}
8737 	
8738 	extern __inline __m512
8739 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8740 	_mm512_getexp_round_ps (__m512 __A, const int __R)
8741 	{
8742 	  return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
8743 							   (__v16sf)
8744 							   _mm512_undefined_ps (),
8745 							   (__mmask16) -1, __R);
8746 	}
8747 	
8748 	extern __inline __m512
8749 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8750 	_mm512_mask_getexp_round_ps (__m512 __W, __mmask16 __U, __m512 __A,
8751 				     const int __R)
8752 	{
8753 	  return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
8754 							   (__v16sf) __W,
8755 							   (__mmask16) __U, __R);
8756 	}
8757 	
8758 	extern __inline __m512
8759 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8760 	_mm512_maskz_getexp_round_ps (__mmask16 __U, __m512 __A, const int __R)
8761 	{
8762 	  return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
8763 							   (__v16sf)
8764 							   _mm512_setzero_ps (),
8765 							   (__mmask16) __U, __R);
8766 	}
8767 	
8768 	extern __inline __m512d
8769 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8770 	_mm512_getexp_round_pd (__m512d __A, const int __R)
8771 	{
8772 	  return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
8773 							    (__v8df)
8774 							    _mm512_undefined_pd (),
8775 							    (__mmask8) -1, __R);
8776 	}
8777 	
8778 	extern __inline __m512d
8779 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8780 	_mm512_mask_getexp_round_pd (__m512d __W, __mmask8 __U, __m512d __A,
8781 				     const int __R)
8782 	{
8783 	  return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
8784 							    (__v8df) __W,
8785 							    (__mmask8) __U, __R);
8786 	}
8787 	
8788 	extern __inline __m512d
8789 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8790 	_mm512_maskz_getexp_round_pd (__mmask8 __U, __m512d __A, const int __R)
8791 	{
8792 	  return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
8793 							    (__v8df)
8794 							    _mm512_setzero_pd (),
8795 							    (__mmask8) __U, __R);
8796 	}
8797 	
8798 	extern __inline __m512d
8799 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8800 	_mm512_getmant_round_pd (__m512d __A, _MM_MANTISSA_NORM_ENUM __B,
8801 				 _MM_MANTISSA_SIGN_ENUM __C, const int __R)
8802 	{
8803 	  return (__m512d) __builtin_ia32_getmantpd512_mask ((__v8df) __A,
8804 							     (__C << 2) | __B,
8805 							     _mm512_undefined_pd (),
8806 							     (__mmask8) -1, __R);
8807 	}
8808 	
8809 	extern __inline __m512d
8810 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8811 	_mm512_mask_getmant_round_pd (__m512d __W, __mmask8 __U, __m512d __A,
8812 				      _MM_MANTISSA_NORM_ENUM __B,
8813 				      _MM_MANTISSA_SIGN_ENUM __C, const int __R)
8814 	{
8815 	  return (__m512d) __builtin_ia32_getmantpd512_mask ((__v8df) __A,
8816 							     (__C << 2) | __B,
8817 							     (__v8df) __W, __U,
8818 							     __R);
8819 	}
8820 	
8821 	extern __inline __m512d
8822 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8823 	_mm512_maskz_getmant_round_pd (__mmask8 __U, __m512d __A,
8824 				       _MM_MANTISSA_NORM_ENUM __B,
8825 				       _MM_MANTISSA_SIGN_ENUM __C, const int __R)
8826 	{
8827 	  return (__m512d) __builtin_ia32_getmantpd512_mask ((__v8df) __A,
8828 							     (__C << 2) | __B,
8829 							     (__v8df)
8830 							     _mm512_setzero_pd (),
8831 							     __U, __R);
8832 	}
8833 	
8834 	extern __inline __m512
8835 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8836 	_mm512_getmant_round_ps (__m512 __A, _MM_MANTISSA_NORM_ENUM __B,
8837 				 _MM_MANTISSA_SIGN_ENUM __C, const int __R)
8838 	{
8839 	  return (__m512) __builtin_ia32_getmantps512_mask ((__v16sf) __A,
8840 							    (__C << 2) | __B,
8841 							    _mm512_undefined_ps (),
8842 							    (__mmask16) -1, __R);
8843 	}
8844 	
8845 	extern __inline __m512
8846 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8847 	_mm512_mask_getmant_round_ps (__m512 __W, __mmask16 __U, __m512 __A,
8848 				      _MM_MANTISSA_NORM_ENUM __B,
8849 				      _MM_MANTISSA_SIGN_ENUM __C, const int __R)
8850 	{
8851 	  return (__m512) __builtin_ia32_getmantps512_mask ((__v16sf) __A,
8852 							    (__C << 2) | __B,
8853 							    (__v16sf) __W, __U,
8854 							    __R);
8855 	}
8856 	
8857 	extern __inline __m512
8858 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8859 	_mm512_maskz_getmant_round_ps (__mmask16 __U, __m512 __A,
8860 				       _MM_MANTISSA_NORM_ENUM __B,
8861 				       _MM_MANTISSA_SIGN_ENUM __C, const int __R)
8862 	{
8863 	  return (__m512) __builtin_ia32_getmantps512_mask ((__v16sf) __A,
8864 							    (__C << 2) | __B,
8865 							    (__v16sf)
8866 							    _mm512_setzero_ps (),
8867 							    __U, __R);
8868 	}
8869 	
8870 	extern __inline __m128d
8871 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8872 	_mm_getmant_round_sd (__m128d __A, __m128d __B,
8873 			      _MM_MANTISSA_NORM_ENUM __C,
8874 			      _MM_MANTISSA_SIGN_ENUM __D, const int __R)
8875 	{
8876 	  return (__m128d) __builtin_ia32_getmantsd_round ((__v2df) __A,
8877 							  (__v2df) __B,
8878 							  (__D << 2) | __C,
8879 							   __R);
8880 	}
8881 	
8882 	extern __inline __m128d
8883 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8884 	_mm_mask_getmant_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
8885 				      __m128d __B, _MM_MANTISSA_NORM_ENUM __C,
8886 				      _MM_MANTISSA_SIGN_ENUM __D, const int __R)
8887 	{
8888 	  return (__m128d) __builtin_ia32_getmantsd_mask_round ((__v2df) __A,
8889 							    (__v2df) __B,
8890 							    (__D << 2) | __C,
8891 	                                                    (__v2df) __W,
8892 							     __U, __R);
8893 	}
8894 	
8895 	extern __inline __m128d
8896 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8897 	_mm_maskz_getmant_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
8898 				       _MM_MANTISSA_NORM_ENUM __C,
8899 				       _MM_MANTISSA_SIGN_ENUM __D, const int __R)
8900 	{
8901 	  return (__m128d) __builtin_ia32_getmantsd_mask_round ((__v2df) __A,
8902 								(__v2df) __B,
8903 							        (__D << 2) | __C,
8904 	                                                        (__v2df)
8905 	                                                        _mm_setzero_pd(),
8906 							        __U, __R);
8907 	}
8908 	
8909 	extern __inline __m128
8910 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8911 	_mm_getmant_round_ss (__m128 __A, __m128 __B,
8912 			      _MM_MANTISSA_NORM_ENUM __C,
8913 			      _MM_MANTISSA_SIGN_ENUM __D, const int __R)
8914 	{
8915 	  return (__m128) __builtin_ia32_getmantss_round ((__v4sf) __A,
8916 							  (__v4sf) __B,
8917 							  (__D << 2) | __C,
8918 							  __R);
8919 	}
8920 	
8921 	extern __inline __m128
8922 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8923 	_mm_mask_getmant_round_ss (__m128 __W, __mmask8 __U, __m128 __A,
8924 				      __m128 __B, _MM_MANTISSA_NORM_ENUM __C,
8925 				      _MM_MANTISSA_SIGN_ENUM __D, const int __R)
8926 	{
8927 	  return (__m128) __builtin_ia32_getmantss_mask_round ((__v4sf) __A,
8928 							    (__v4sf) __B,
8929 							    (__D << 2) | __C,
8930 	                                                    (__v4sf) __W,
8931 							     __U, __R);
8932 	}
8933 	
8934 	extern __inline __m128
8935 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8936 	_mm_maskz_getmant_round_ss (__mmask8 __U, __m128 __A, __m128 __B,
8937 				       _MM_MANTISSA_NORM_ENUM __C,
8938 				       _MM_MANTISSA_SIGN_ENUM __D, const int __R)
8939 	{
8940 	  return (__m128) __builtin_ia32_getmantss_mask_round ((__v4sf) __A,
8941 								(__v4sf) __B,
8942 							        (__D << 2) | __C,
8943 	                                                        (__v4sf)
8944 	                                                        _mm_setzero_ps(),
8945 							        __U, __R);
8946 	}
8947 	
8948 	#else
8949 	#define _mm512_getmant_round_pd(X, B, C, R)                                                  \
8950 	  ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X),                 \
8951 	                                              (int)(((C)<<2) | (B)),                \
8952 	                                              (__v8df)(__m512d)_mm512_undefined_pd(), \
8953 	                                              (__mmask8)-1,\
8954 						      (R)))
8955 	
8956 	#define _mm512_mask_getmant_round_pd(W, U, X, B, C, R)                                       \
8957 	  ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X),                 \
8958 	                                              (int)(((C)<<2) | (B)),                \
8959 	                                              (__v8df)(__m512d)(W),                 \
8960 	                                              (__mmask8)(U),\
8961 						      (R)))
8962 	
8963 	#define _mm512_maskz_getmant_round_pd(U, X, B, C, R)                                         \
8964 	  ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X),                 \
8965 	                                              (int)(((C)<<2) | (B)),                \
8966 	                                              (__v8df)(__m512d)_mm512_setzero_pd(), \
8967 	                                              (__mmask8)(U),\
8968 						      (R)))
8969 	#define _mm512_getmant_round_ps(X, B, C, R)                                                  \
8970 	  ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X),                  \
8971 	                                             (int)(((C)<<2) | (B)),                 \
8972 	                                             (__v16sf)(__m512)_mm512_undefined_ps(), \
8973 	                                             (__mmask16)-1,\
8974 						     (R)))
8975 	
8976 	#define _mm512_mask_getmant_round_ps(W, U, X, B, C, R)                                       \
8977 	  ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X),                  \
8978 	                                             (int)(((C)<<2) | (B)),                 \
8979 	                                             (__v16sf)(__m512)(W),                  \
8980 	                                             (__mmask16)(U),\
8981 						     (R)))
8982 	
8983 	#define _mm512_maskz_getmant_round_ps(U, X, B, C, R)                                         \
8984 	  ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X),                  \
8985 	                                             (int)(((C)<<2) | (B)),                 \
8986 	                                             (__v16sf)(__m512)_mm512_setzero_ps(),  \
8987 	                                             (__mmask16)(U),\
8988 						     (R)))
8989 	#define _mm_getmant_round_sd(X, Y, C, D, R)                                                  \
8990 	  ((__m128d)__builtin_ia32_getmantsd_round ((__v2df)(__m128d)(X),                    \
8991 						    (__v2df)(__m128d)(Y),	\
8992 						    (int)(((D)<<2) | (C)),	\
8993 						    (R)))
8994 	
8995 	#define _mm_mask_getmant_round_sd(W, U, X, Y, C, D, R)                                       \
8996 	  ((__m128d)__builtin_ia32_getmantsd_mask_round ((__v2df)(__m128d)(X),                  \
8997 						     (__v2df)(__m128d)(Y),                  \
8998 	                                             (int)(((D)<<2) | (C)),                 \
8999 	                                             (__v2df)(__m128d)(W),                   \
9000 	                                             (__mmask8)(U),\
9001 						     (R)))
9002 	
9003 	#define _mm_maskz_getmant_round_sd(U, X, Y, C, D, R)                                         \
9004 	  ((__m128d)__builtin_ia32_getmantsd_mask_round ((__v2df)(__m128d)(X),                  \
9005 	                                                 (__v2df)(__m128d)(Y),                  \
9006 	                                             (int)(((D)<<2) | (C)),              \
9007 	                                             (__v2df)(__m128d)_mm_setzero_pd(),  \
9008 	                                             (__mmask8)(U),\
9009 						     (R)))
9010 	
9011 	#define _mm_getmant_round_ss(X, Y, C, D, R)                                                  \
9012 	  ((__m128)__builtin_ia32_getmantss_round ((__v4sf)(__m128)(X),                      \
9013 						   (__v4sf)(__m128)(Y),		\
9014 						   (int)(((D)<<2) | (C)),	\
9015 						   (R)))
9016 	
9017 	#define _mm_mask_getmant_round_ss(W, U, X, Y, C, D, R)                                       \
9018 	  ((__m128)__builtin_ia32_getmantss_mask_round ((__v4sf)(__m128)(X),                  \
9019 						     (__v4sf)(__m128)(Y),                  \
9020 	                                             (int)(((D)<<2) | (C)),                 \
9021 	                                             (__v4sf)(__m128)(W),                   \
9022 	                                             (__mmask8)(U),\
9023 						     (R)))
9024 	
9025 	#define _mm_maskz_getmant_round_ss(U, X, Y, C, D, R)                                         \
9026 	  ((__m128)__builtin_ia32_getmantss_mask_round ((__v4sf)(__m128)(X),                  \
9027 	                                                 (__v4sf)(__m128)(Y),                  \
9028 	                                             (int)(((D)<<2) | (C)),              \
9029 	                                             (__v4sf)(__m128)_mm_setzero_ps(),  \
9030 	                                             (__mmask8)(U),\
9031 						     (R)))
9032 	
9033 	#define _mm_getexp_round_ss(A, B, R)						      \
9034 	  ((__m128)__builtin_ia32_getexpss128_round((__v4sf)(__m128)(A), (__v4sf)(__m128)(B), R))
9035 	
9036 	#define _mm_mask_getexp_round_ss(W, U, A, B, C) \
9037 	    (__m128)__builtin_ia32_getexpss_mask_round(A, B, W, U, C)
9038 	
9039 	#define _mm_maskz_getexp_round_ss(U, A, B, C)   \
9040 	    (__m128)__builtin_ia32_getexpss_mask_round(A, B, (__v4sf)_mm_setzero_ps(), U, C)
9041 	
9042 	#define _mm_getexp_round_sd(A, B, R)						       \
9043 	  ((__m128d)__builtin_ia32_getexpsd128_round((__v2df)(__m128d)(A), (__v2df)(__m128d)(B), R))
9044 	
9045 	#define _mm_mask_getexp_round_sd(W, U, A, B, C) \
9046 	    (__m128d)__builtin_ia32_getexpsd_mask_round(A, B, W, U, C)
9047 	
9048 	#define _mm_maskz_getexp_round_sd(U, A, B, C)   \
9049 	    (__m128d)__builtin_ia32_getexpsd_mask_round(A, B, (__v2df)_mm_setzero_pd(), U, C)
9050 	
9051 	
9052 	#define _mm512_getexp_round_ps(A, R)						\
9053 	  ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A),		\
9054 	  (__v16sf)_mm512_undefined_ps(), (__mmask16)-1, R))
9055 	
9056 	#define _mm512_mask_getexp_round_ps(W, U, A, R)					\
9057 	  ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A),		\
9058 	  (__v16sf)(__m512)(W), (__mmask16)(U), R))
9059 	
9060 	#define _mm512_maskz_getexp_round_ps(U, A, R)					\
9061 	  ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A),		\
9062 	  (__v16sf)_mm512_setzero_ps(), (__mmask16)(U), R))
9063 	
9064 	#define _mm512_getexp_round_pd(A, R)						\
9065 	  ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A),		\
9066 	  (__v8df)_mm512_undefined_pd(), (__mmask8)-1, R))
9067 	
9068 	#define _mm512_mask_getexp_round_pd(W, U, A, R)					\
9069 	  ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A),		\
9070 	  (__v8df)(__m512d)(W), (__mmask8)(U), R))
9071 	
9072 	#define _mm512_maskz_getexp_round_pd(U, A, R)					\
9073 	  ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A),		\
9074 	  (__v8df)_mm512_setzero_pd(), (__mmask8)(U), R))
9075 	#endif
9076 	
9077 	#ifdef __OPTIMIZE__
9078 	extern __inline __m512
9079 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9080 	_mm512_roundscale_round_ps (__m512 __A, const int __imm, const int __R)
9081 	{
9082 	  return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A, __imm,
9083 							  (__v16sf)
9084 							  _mm512_undefined_ps (),
9085 							  -1, __R);
9086 	}
9087 	
9088 	extern __inline __m512
9089 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9090 	_mm512_mask_roundscale_round_ps (__m512 __A, __mmask16 __B, __m512 __C,
9091 					 const int __imm, const int __R)
9092 	{
9093 	  return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __C, __imm,
9094 							  (__v16sf) __A,
9095 							  (__mmask16) __B, __R);
9096 	}
9097 	
9098 	extern __inline __m512
9099 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9100 	_mm512_maskz_roundscale_round_ps (__mmask16 __A, __m512 __B,
9101 					  const int __imm, const int __R)
9102 	{
9103 	  return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __B,
9104 							  __imm,
9105 							  (__v16sf)
9106 							  _mm512_setzero_ps (),
9107 							  (__mmask16) __A, __R);
9108 	}
9109 	
9110 	extern __inline __m512d
9111 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9112 	_mm512_roundscale_round_pd (__m512d __A, const int __imm, const int __R)
9113 	{
9114 	  return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A, __imm,
9115 							   (__v8df)
9116 							   _mm512_undefined_pd (),
9117 							   -1, __R);
9118 	}
9119 	
9120 	extern __inline __m512d
9121 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9122 	_mm512_mask_roundscale_round_pd (__m512d __A, __mmask8 __B,
9123 					 __m512d __C, const int __imm, const int __R)
9124 	{
9125 	  return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __C, __imm,
9126 							   (__v8df) __A,
9127 							   (__mmask8) __B, __R);
9128 	}
9129 	
9130 	extern __inline __m512d
9131 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9132 	_mm512_maskz_roundscale_round_pd (__mmask8 __A, __m512d __B,
9133 					  const int __imm, const int __R)
9134 	{
9135 	  return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __B,
9136 							   __imm,
9137 							   (__v8df)
9138 							   _mm512_setzero_pd (),
9139 							   (__mmask8) __A, __R);
9140 	}
9141 	
9142 	extern __inline __m128
9143 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9144 	_mm_roundscale_round_ss (__m128 __A, __m128 __B, const int __imm, const int __R)
9145 	{
9146 	  return (__m128) __builtin_ia32_rndscaless_round ((__v4sf) __A,
9147 							   (__v4sf) __B, __imm, __R);
9148 	}
9149 	
9150 	extern __inline __m128d
9151 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9152 	_mm_roundscale_round_sd (__m128d __A, __m128d __B, const int __imm,
9153 				 const int __R)
9154 	{
9155 	  return (__m128d) __builtin_ia32_rndscalesd_round ((__v2df) __A,
9156 							    (__v2df) __B, __imm, __R);
9157 	}
9158 	
9159 	#else
9160 	#define _mm512_roundscale_round_ps(A, B, R) \
9161 	  ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(A), (int)(B),\
9162 	    (__v16sf)_mm512_undefined_ps(), (__mmask16)(-1), R))
9163 	#define _mm512_mask_roundscale_round_ps(A, B, C, D, R)				\
9164 	  ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(C),	\
9165 						    (int)(D),			\
9166 						    (__v16sf)(__m512)(A),	\
9167 						    (__mmask16)(B), R))
9168 	#define _mm512_maskz_roundscale_round_ps(A, B, C, R)				\
9169 	  ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(B),	\
9170 						    (int)(C),			\
9171 						    (__v16sf)_mm512_setzero_ps(),\
9172 						    (__mmask16)(A), R))
9173 	#define _mm512_roundscale_round_pd(A, B, R) \
9174 	  ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(A), (int)(B),\
9175 	    (__v8df)_mm512_undefined_pd(), (__mmask8)(-1), R))
9176 	#define _mm512_mask_roundscale_round_pd(A, B, C, D, R)				\
9177 	  ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(C),	\
9178 						     (int)(D),			\
9179 						     (__v8df)(__m512d)(A),	\
9180 						     (__mmask8)(B), R))
9181 	#define _mm512_maskz_roundscale_round_pd(A, B, C, R)				\
9182 	  ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(B),	\
9183 						     (int)(C),			\
9184 						     (__v8df)_mm512_setzero_pd(),\
9185 						     (__mmask8)(A), R))
9186 	#define _mm_roundscale_round_ss(A, B, C, R)					\
9187 	  ((__m128) __builtin_ia32_rndscaless_round ((__v4sf)(__m128)(A),	\
9188 	    (__v4sf)(__m128)(B), (int)(C), R))
9189 	#define _mm_roundscale_round_sd(A, B, C, R)					\
9190 	  ((__m128d) __builtin_ia32_rndscalesd_round ((__v2df)(__m128d)(A),	\
9191 	    (__v2df)(__m128d)(B), (int)(C), R))
9192 	#endif
9193 	
9194 	extern __inline __m512
9195 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9196 	_mm512_floor_ps (__m512 __A)
9197 	{
9198 	  return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A,
9199 							  _MM_FROUND_FLOOR,
9200 							  (__v16sf) __A, -1,
9201 							  _MM_FROUND_CUR_DIRECTION);
9202 	}
9203 	
9204 	extern __inline __m512d
9205 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9206 	_mm512_floor_pd (__m512d __A)
9207 	{
9208 	  return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A,
9209 							   _MM_FROUND_FLOOR,
9210 							   (__v8df) __A, -1,
9211 							   _MM_FROUND_CUR_DIRECTION);
9212 	}
9213 	
9214 	extern __inline __m512
9215 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9216 	_mm512_ceil_ps (__m512 __A)
9217 	{
9218 	  return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A,
9219 							  _MM_FROUND_CEIL,
9220 							  (__v16sf) __A, -1,
9221 							  _MM_FROUND_CUR_DIRECTION);
9222 	}
9223 	
9224 	extern __inline __m512d
9225 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9226 	_mm512_ceil_pd (__m512d __A)
9227 	{
9228 	  return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A,
9229 							   _MM_FROUND_CEIL,
9230 							   (__v8df) __A, -1,
9231 							   _MM_FROUND_CUR_DIRECTION);
9232 	}
9233 	
9234 	extern __inline __m512
9235 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9236 	_mm512_mask_floor_ps (__m512 __W, __mmask16 __U, __m512 __A)
9237 	{
9238 	  return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A,
9239 							  _MM_FROUND_FLOOR,
9240 							  (__v16sf) __W, __U,
9241 							  _MM_FROUND_CUR_DIRECTION);
9242 	}
9243 	
9244 	extern __inline __m512d
9245 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9246 	_mm512_mask_floor_pd (__m512d __W, __mmask8 __U, __m512d __A)
9247 	{
9248 	  return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A,
9249 							   _MM_FROUND_FLOOR,
9250 							   (__v8df) __W, __U,
9251 							   _MM_FROUND_CUR_DIRECTION);
9252 	}
9253 	
9254 	extern __inline __m512
9255 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9256 	_mm512_mask_ceil_ps (__m512 __W, __mmask16 __U, __m512 __A)
9257 	{
9258 	  return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A,
9259 							  _MM_FROUND_CEIL,
9260 							  (__v16sf) __W, __U,
9261 							  _MM_FROUND_CUR_DIRECTION);
9262 	}
9263 	
9264 	extern __inline __m512d
9265 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9266 	_mm512_mask_ceil_pd (__m512d __W, __mmask8 __U, __m512d __A)
9267 	{
9268 	  return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A,
9269 							   _MM_FROUND_CEIL,
9270 							   (__v8df) __W, __U,
9271 							   _MM_FROUND_CUR_DIRECTION);
9272 	}
9273 	
9274 	#ifdef __OPTIMIZE__
9275 	extern __inline __m512i
9276 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9277 	_mm512_alignr_epi32 (__m512i __A, __m512i __B, const int __imm)
9278 	{
9279 	  return (__m512i) __builtin_ia32_alignd512_mask ((__v16si) __A,
9280 							  (__v16si) __B, __imm,
9281 							  (__v16si)
9282 							  _mm512_undefined_epi32 (),
9283 							  (__mmask16) -1);
9284 	}
9285 	
9286 	extern __inline __m512i
9287 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9288 	_mm512_mask_alignr_epi32 (__m512i __W, __mmask16 __U, __m512i __A,
9289 				  __m512i __B, const int __imm)
9290 	{
9291 	  return (__m512i) __builtin_ia32_alignd512_mask ((__v16si) __A,
9292 							  (__v16si) __B, __imm,
9293 							  (__v16si) __W,
9294 							  (__mmask16) __U);
9295 	}
9296 	
9297 	extern __inline __m512i
9298 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9299 	_mm512_maskz_alignr_epi32 (__mmask16 __U, __m512i __A, __m512i __B,
9300 				   const int __imm)
9301 	{
9302 	  return (__m512i) __builtin_ia32_alignd512_mask ((__v16si) __A,
9303 							  (__v16si) __B, __imm,
9304 							  (__v16si)
9305 							  _mm512_setzero_si512 (),
9306 							  (__mmask16) __U);
9307 	}
9308 	
9309 	extern __inline __m512i
9310 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9311 	_mm512_alignr_epi64 (__m512i __A, __m512i __B, const int __imm)
9312 	{
9313 	  return (__m512i) __builtin_ia32_alignq512_mask ((__v8di) __A,
9314 							  (__v8di) __B, __imm,
9315 							  (__v8di)
9316 							  _mm512_undefined_epi32 (),
9317 							  (__mmask8) -1);
9318 	}
9319 	
9320 	extern __inline __m512i
9321 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9322 	_mm512_mask_alignr_epi64 (__m512i __W, __mmask8 __U, __m512i __A,
9323 				  __m512i __B, const int __imm)
9324 	{
9325 	  return (__m512i) __builtin_ia32_alignq512_mask ((__v8di) __A,
9326 							  (__v8di) __B, __imm,
9327 							  (__v8di) __W,
9328 							  (__mmask8) __U);
9329 	}
9330 	
9331 	extern __inline __m512i
9332 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9333 	_mm512_maskz_alignr_epi64 (__mmask8 __U, __m512i __A, __m512i __B,
9334 				   const int __imm)
9335 	{
9336 	  return (__m512i) __builtin_ia32_alignq512_mask ((__v8di) __A,
9337 							  (__v8di) __B, __imm,
9338 							  (__v8di)
9339 							  _mm512_setzero_si512 (),
9340 							  (__mmask8) __U);
9341 	}
9342 	#else
9343 	#define _mm512_alignr_epi32(X, Y, C)                                        \
9344 	    ((__m512i)__builtin_ia32_alignd512_mask ((__v16si)(__m512i)(X),         \
9345 	        (__v16si)(__m512i)(Y), (int)(C), (__v16si)_mm512_undefined_epi32 (),\
9346 	        (__mmask16)-1))
9347 	
9348 	#define _mm512_mask_alignr_epi32(W, U, X, Y, C)                             \
9349 	    ((__m512i)__builtin_ia32_alignd512_mask ((__v16si)(__m512i)(X),         \
9350 	        (__v16si)(__m512i)(Y), (int)(C), (__v16si)(__m512i)(W),             \
9351 	        (__mmask16)(U)))
9352 	
9353 	#define _mm512_maskz_alignr_epi32(U, X, Y, C)                               \
9354 	    ((__m512i)__builtin_ia32_alignd512_mask ((__v16si)(__m512i)(X),         \
9355 	        (__v16si)(__m512i)(Y), (int)(C), (__v16si)_mm512_setzero_si512 (),\
9356 	        (__mmask16)(U)))
9357 	
9358 	#define _mm512_alignr_epi64(X, Y, C)                                        \
9359 	    ((__m512i)__builtin_ia32_alignq512_mask ((__v8di)(__m512i)(X),          \
9360 	        (__v8di)(__m512i)(Y), (int)(C), (__v8di)_mm512_undefined_epi32 (),  \
9361 		(__mmask8)-1))
9362 	
9363 	#define _mm512_mask_alignr_epi64(W, U, X, Y, C)                             \
9364 	    ((__m512i)__builtin_ia32_alignq512_mask ((__v8di)(__m512i)(X),          \
9365 	        (__v8di)(__m512i)(Y), (int)(C), (__v8di)(__m512i)(W), (__mmask8)(U)))
9366 	
9367 	#define _mm512_maskz_alignr_epi64(U, X, Y, C)                               \
9368 	    ((__m512i)__builtin_ia32_alignq512_mask ((__v8di)(__m512i)(X),          \
9369 	        (__v8di)(__m512i)(Y), (int)(C), (__v8di)_mm512_setzero_si512 (),\
9370 	        (__mmask8)(U)))
9371 	#endif
9372 	
9373 	extern __inline __mmask16
9374 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9375 	_mm512_cmpeq_epi32_mask (__m512i __A, __m512i __B)
9376 	{
9377 	  return (__mmask16) __builtin_ia32_pcmpeqd512_mask ((__v16si) __A,
9378 							     (__v16si) __B,
9379 							     (__mmask16) -1);
9380 	}
9381 	
9382 	extern __inline __mmask16
9383 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9384 	_mm512_mask_cmpeq_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B)
9385 	{
9386 	  return (__mmask16) __builtin_ia32_pcmpeqd512_mask ((__v16si) __A,
9387 							     (__v16si) __B, __U);
9388 	}
9389 	
9390 	extern __inline __mmask8
9391 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9392 	_mm512_mask_cmpeq_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B)
9393 	{
9394 	  return (__mmask8) __builtin_ia32_pcmpeqq512_mask ((__v8di) __A,
9395 							    (__v8di) __B, __U);
9396 	}
9397 	
9398 	extern __inline __mmask8
9399 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9400 	_mm512_cmpeq_epi64_mask (__m512i __A, __m512i __B)
9401 	{
9402 	  return (__mmask8) __builtin_ia32_pcmpeqq512_mask ((__v8di) __A,
9403 							    (__v8di) __B,
9404 							    (__mmask8) -1);
9405 	}
9406 	
9407 	extern __inline __mmask16
9408 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9409 	_mm512_cmpgt_epi32_mask (__m512i __A, __m512i __B)
9410 	{
9411 	  return (__mmask16) __builtin_ia32_pcmpgtd512_mask ((__v16si) __A,
9412 							     (__v16si) __B,
9413 							     (__mmask16) -1);
9414 	}
9415 	
9416 	extern __inline __mmask16
9417 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9418 	_mm512_mask_cmpgt_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B)
9419 	{
9420 	  return (__mmask16) __builtin_ia32_pcmpgtd512_mask ((__v16si) __A,
9421 							     (__v16si) __B, __U);
9422 	}
9423 	
9424 	extern __inline __mmask8
9425 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9426 	_mm512_mask_cmpgt_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B)
9427 	{
9428 	  return (__mmask8) __builtin_ia32_pcmpgtq512_mask ((__v8di) __A,
9429 							    (__v8di) __B, __U);
9430 	}
9431 	
9432 	extern __inline __mmask8
9433 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9434 	_mm512_cmpgt_epi64_mask (__m512i __A, __m512i __B)
9435 	{
9436 	  return (__mmask8) __builtin_ia32_pcmpgtq512_mask ((__v8di) __A,
9437 							    (__v8di) __B,
9438 							    (__mmask8) -1);
9439 	}
9440 	
9441 	extern __inline __mmask16
9442 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9443 	_mm512_cmpge_epi32_mask (__m512i __X, __m512i __Y)
9444 	{
9445 	  return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
9446 							    (__v16si) __Y, 5,
9447 							    (__mmask16) -1);
9448 	}
9449 	
9450 	extern __inline __mmask16
9451 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9452 	_mm512_mask_cmpge_epi32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
9453 	{
9454 	  return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
9455 							    (__v16si) __Y, 5,
9456 							    (__mmask16) __M);
9457 	}
9458 	
9459 	extern __inline __mmask16
9460 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9461 	_mm512_mask_cmpge_epu32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
9462 	{
9463 	  return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
9464 							    (__v16si) __Y, 5,
9465 							    (__mmask16) __M);
9466 	}
9467 	
9468 	extern __inline __mmask16
9469 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9470 	_mm512_cmpge_epu32_mask (__m512i __X, __m512i __Y)
9471 	{
9472 	  return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
9473 							    (__v16si) __Y, 5,
9474 							    (__mmask16) -1);
9475 	}
9476 	
9477 	extern __inline __mmask8
9478 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9479 	_mm512_mask_cmpge_epi64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
9480 	{
9481 	  return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
9482 							    (__v8di) __Y, 5,
9483 							    (__mmask8) __M);
9484 	}
9485 	
9486 	extern __inline __mmask8
9487 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9488 	_mm512_cmpge_epi64_mask (__m512i __X, __m512i __Y)
9489 	{
9490 	  return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
9491 							    (__v8di) __Y, 5,
9492 							    (__mmask8) -1);
9493 	}
9494 	
9495 	extern __inline __mmask8
9496 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9497 	_mm512_mask_cmpge_epu64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
9498 	{
9499 	  return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
9500 							    (__v8di) __Y, 5,
9501 							    (__mmask8) __M);
9502 	}
9503 	
9504 	extern __inline __mmask8
9505 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9506 	_mm512_cmpge_epu64_mask (__m512i __X, __m512i __Y)
9507 	{
9508 	  return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
9509 							    (__v8di) __Y, 5,
9510 							    (__mmask8) -1);
9511 	}
9512 	
9513 	extern __inline __mmask16
9514 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9515 	_mm512_mask_cmple_epi32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
9516 	{
9517 	  return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
9518 							    (__v16si) __Y, 2,
9519 							    (__mmask16) __M);
9520 	}
9521 	
9522 	extern __inline __mmask16
9523 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9524 	_mm512_cmple_epi32_mask (__m512i __X, __m512i __Y)
9525 	{
9526 	  return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
9527 							    (__v16si) __Y, 2,
9528 							    (__mmask16) -1);
9529 	}
9530 	
9531 	extern __inline __mmask16
9532 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9533 	_mm512_mask_cmple_epu32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
9534 	{
9535 	  return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
9536 							    (__v16si) __Y, 2,
9537 							    (__mmask16) __M);
9538 	}
9539 	
9540 	extern __inline __mmask16
9541 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9542 	_mm512_cmple_epu32_mask (__m512i __X, __m512i __Y)
9543 	{
9544 	  return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
9545 							    (__v16si) __Y, 2,
9546 							    (__mmask16) -1);
9547 	}
9548 	
9549 	extern __inline __mmask8
9550 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9551 	_mm512_mask_cmple_epi64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
9552 	{
9553 	  return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
9554 							    (__v8di) __Y, 2,
9555 							    (__mmask8) __M);
9556 	}
9557 	
9558 	extern __inline __mmask8
9559 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9560 	_mm512_cmple_epi64_mask (__m512i __X, __m512i __Y)
9561 	{
9562 	  return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
9563 							    (__v8di) __Y, 2,
9564 							    (__mmask8) -1);
9565 	}
9566 	
9567 	extern __inline __mmask8
9568 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9569 	_mm512_mask_cmple_epu64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
9570 	{
9571 	  return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
9572 							    (__v8di) __Y, 2,
9573 							    (__mmask8) __M);
9574 	}
9575 	
9576 	extern __inline __mmask8
9577 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9578 	_mm512_cmple_epu64_mask (__m512i __X, __m512i __Y)
9579 	{
9580 	  return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
9581 							    (__v8di) __Y, 2,
9582 							    (__mmask8) -1);
9583 	}
9584 	
9585 	extern __inline __mmask16
9586 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9587 	_mm512_mask_cmplt_epi32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
9588 	{
9589 	  return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
9590 							    (__v16si) __Y, 1,
9591 							    (__mmask16) __M);
9592 	}
9593 	
9594 	extern __inline __mmask16
9595 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9596 	_mm512_cmplt_epi32_mask (__m512i __X, __m512i __Y)
9597 	{
9598 	  return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
9599 							    (__v16si) __Y, 1,
9600 							    (__mmask16) -1);
9601 	}
9602 	
9603 	extern __inline __mmask16
9604 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9605 	_mm512_mask_cmplt_epu32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
9606 	{
9607 	  return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
9608 							    (__v16si) __Y, 1,
9609 							    (__mmask16) __M);
9610 	}
9611 	
9612 	extern __inline __mmask16
9613 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9614 	_mm512_cmplt_epu32_mask (__m512i __X, __m512i __Y)
9615 	{
9616 	  return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
9617 							    (__v16si) __Y, 1,
9618 							    (__mmask16) -1);
9619 	}
9620 	
9621 	extern __inline __mmask8
9622 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9623 	_mm512_mask_cmplt_epi64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
9624 	{
9625 	  return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
9626 							    (__v8di) __Y, 1,
9627 							    (__mmask8) __M);
9628 	}
9629 	
9630 	extern __inline __mmask8
9631 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9632 	_mm512_cmplt_epi64_mask (__m512i __X, __m512i __Y)
9633 	{
9634 	  return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
9635 							    (__v8di) __Y, 1,
9636 							    (__mmask8) -1);
9637 	}
9638 	
9639 	extern __inline __mmask8
9640 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9641 	_mm512_mask_cmplt_epu64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
9642 	{
9643 	  return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
9644 							    (__v8di) __Y, 1,
9645 							    (__mmask8) __M);
9646 	}
9647 	
9648 	extern __inline __mmask8
9649 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9650 	_mm512_cmplt_epu64_mask (__m512i __X, __m512i __Y)
9651 	{
9652 	  return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
9653 							    (__v8di) __Y, 1,
9654 							    (__mmask8) -1);
9655 	}
9656 	
9657 	extern __inline __mmask16
9658 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9659 	_mm512_cmpneq_epi32_mask (__m512i __X, __m512i __Y)
9660 	{
9661 	  return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
9662 							    (__v16si) __Y, 4,
9663 							    (__mmask16) -1);
9664 	}
9665 	
9666 	extern __inline __mmask16
9667 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9668 	_mm512_mask_cmpneq_epi32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
9669 	{
9670 	  return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
9671 							    (__v16si) __Y, 4,
9672 							    (__mmask16) __M);
9673 	}
9674 	
9675 	extern __inline __mmask16
9676 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9677 	_mm512_mask_cmpneq_epu32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
9678 	{
9679 	  return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
9680 							    (__v16si) __Y, 4,
9681 							    (__mmask16) __M);
9682 	}
9683 	
9684 	extern __inline __mmask16
9685 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9686 	_mm512_cmpneq_epu32_mask (__m512i __X, __m512i __Y)
9687 	{
9688 	  return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
9689 							    (__v16si) __Y, 4,
9690 							    (__mmask16) -1);
9691 	}
9692 	
9693 	extern __inline __mmask8
9694 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9695 	_mm512_mask_cmpneq_epi64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
9696 	{
9697 	  return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
9698 							    (__v8di) __Y, 4,
9699 							    (__mmask8) __M);
9700 	}
9701 	
9702 	extern __inline __mmask8
9703 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9704 	_mm512_cmpneq_epi64_mask (__m512i __X, __m512i __Y)
9705 	{
9706 	  return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
9707 							    (__v8di) __Y, 4,
9708 							    (__mmask8) -1);
9709 	}
9710 	
9711 	extern __inline __mmask8
9712 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9713 	_mm512_mask_cmpneq_epu64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
9714 	{
9715 	  return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
9716 							    (__v8di) __Y, 4,
9717 							    (__mmask8) __M);
9718 	}
9719 	
9720 	extern __inline __mmask8
9721 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9722 	_mm512_cmpneq_epu64_mask (__m512i __X, __m512i __Y)
9723 	{
9724 	  return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
9725 							    (__v8di) __Y, 4,
9726 							    (__mmask8) -1);
9727 	}
9728 	
9729 	#define _MM_CMPINT_EQ	    0x0
9730 	#define _MM_CMPINT_LT	    0x1
9731 	#define _MM_CMPINT_LE	    0x2
9732 	#define _MM_CMPINT_UNUSED   0x3
9733 	#define _MM_CMPINT_NE	    0x4
9734 	#define _MM_CMPINT_NLT	    0x5
9735 	#define _MM_CMPINT_GE	    0x5
9736 	#define _MM_CMPINT_NLE	    0x6
9737 	#define _MM_CMPINT_GT	    0x6
9738 	
9739 	#ifdef __OPTIMIZE__
9740 	extern __inline __mmask16
9741 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9742 	_kshiftli_mask16 (__mmask16 __A, unsigned int __B)
9743 	{
9744 	  return (__mmask16) __builtin_ia32_kshiftlihi ((__mmask16) __A,
9745 							(__mmask8) __B);
9746 	}
9747 	
9748 	extern __inline __mmask16
9749 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9750 	_kshiftri_mask16 (__mmask16 __A, unsigned int __B)
9751 	{
9752 	  return (__mmask16) __builtin_ia32_kshiftrihi ((__mmask16) __A,
9753 							(__mmask8) __B);
9754 	}
9755 	
9756 	extern __inline __mmask8
9757 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9758 	_mm512_cmp_epi64_mask (__m512i __X, __m512i __Y, const int __P)
9759 	{
9760 	  return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
9761 							 (__v8di) __Y, __P,
9762 							 (__mmask8) -1);
9763 	}
9764 	
9765 	extern __inline __mmask16
9766 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9767 	_mm512_cmp_epi32_mask (__m512i __X, __m512i __Y, const int __P)
9768 	{
9769 	  return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
9770 							  (__v16si) __Y, __P,
9771 							  (__mmask16) -1);
9772 	}
9773 	
9774 	extern __inline __mmask8
9775 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9776 	_mm512_cmp_epu64_mask (__m512i __X, __m512i __Y, const int __P)
9777 	{
9778 	  return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
9779 							  (__v8di) __Y, __P,
9780 							  (__mmask8) -1);
9781 	}
9782 	
9783 	extern __inline __mmask16
9784 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9785 	_mm512_cmp_epu32_mask (__m512i __X, __m512i __Y, const int __P)
9786 	{
9787 	  return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
9788 							   (__v16si) __Y, __P,
9789 							   (__mmask16) -1);
9790 	}
9791 	
9792 	extern __inline __mmask8
9793 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9794 	_mm512_cmp_round_pd_mask (__m512d __X, __m512d __Y, const int __P,
9795 				  const int __R)
9796 	{
9797 	  return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
9798 							  (__v8df) __Y, __P,
9799 							  (__mmask8) -1, __R);
9800 	}
9801 	
9802 	extern __inline __mmask16
9803 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9804 	_mm512_cmp_round_ps_mask (__m512 __X, __m512 __Y, const int __P, const int __R)
9805 	{
9806 	  return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
9807 							   (__v16sf) __Y, __P,
9808 							   (__mmask16) -1, __R);
9809 	}
9810 	
9811 	extern __inline __mmask8
9812 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9813 	_mm512_mask_cmp_epi64_mask (__mmask8 __U, __m512i __X, __m512i __Y,
9814 				    const int __P)
9815 	{
9816 	  return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
9817 							 (__v8di) __Y, __P,
9818 							 (__mmask8) __U);
9819 	}
9820 	
9821 	extern __inline __mmask16
9822 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9823 	_mm512_mask_cmp_epi32_mask (__mmask16 __U, __m512i __X, __m512i __Y,
9824 				    const int __P)
9825 	{
9826 	  return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
9827 							  (__v16si) __Y, __P,
9828 							  (__mmask16) __U);
9829 	}
9830 	
9831 	extern __inline __mmask8
9832 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9833 	_mm512_mask_cmp_epu64_mask (__mmask8 __U, __m512i __X, __m512i __Y,
9834 				    const int __P)
9835 	{
9836 	  return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
9837 							  (__v8di) __Y, __P,
9838 							  (__mmask8) __U);
9839 	}
9840 	
9841 	extern __inline __mmask16
9842 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9843 	_mm512_mask_cmp_epu32_mask (__mmask16 __U, __m512i __X, __m512i __Y,
9844 				    const int __P)
9845 	{
9846 	  return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
9847 							   (__v16si) __Y, __P,
9848 							   (__mmask16) __U);
9849 	}
9850 	
9851 	extern __inline __mmask8
9852 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9853 	_mm512_mask_cmp_round_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y,
9854 				       const int __P, const int __R)
9855 	{
9856 	  return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
9857 							  (__v8df) __Y, __P,
9858 							  (__mmask8) __U, __R);
9859 	}
9860 	
9861 	extern __inline __mmask16
9862 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9863 	_mm512_mask_cmp_round_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y,
9864 				       const int __P, const int __R)
9865 	{
9866 	  return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
9867 							   (__v16sf) __Y, __P,
9868 							   (__mmask16) __U, __R);
9869 	}
9870 	
9871 	extern __inline __mmask8
9872 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9873 	_mm_cmp_round_sd_mask (__m128d __X, __m128d __Y, const int __P, const int __R)
9874 	{
9875 	  return (__mmask8) __builtin_ia32_cmpsd_mask ((__v2df) __X,
9876 						       (__v2df) __Y, __P,
9877 						       (__mmask8) -1, __R);
9878 	}
9879 	
9880 	extern __inline __mmask8
9881 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9882 	_mm_mask_cmp_round_sd_mask (__mmask8 __M, __m128d __X, __m128d __Y,
9883 				    const int __P, const int __R)
9884 	{
9885 	  return (__mmask8) __builtin_ia32_cmpsd_mask ((__v2df) __X,
9886 						       (__v2df) __Y, __P,
9887 						       (__mmask8) __M, __R);
9888 	}
9889 	
9890 	extern __inline __mmask8
9891 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9892 	_mm_cmp_round_ss_mask (__m128 __X, __m128 __Y, const int __P, const int __R)
9893 	{
9894 	  return (__mmask8) __builtin_ia32_cmpss_mask ((__v4sf) __X,
9895 						       (__v4sf) __Y, __P,
9896 						       (__mmask8) -1, __R);
9897 	}
9898 	
9899 	extern __inline __mmask8
9900 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9901 	_mm_mask_cmp_round_ss_mask (__mmask8 __M, __m128 __X, __m128 __Y,
9902 				    const int __P, const int __R)
9903 	{
9904 	  return (__mmask8) __builtin_ia32_cmpss_mask ((__v4sf) __X,
9905 						       (__v4sf) __Y, __P,
9906 						       (__mmask8) __M, __R);
9907 	}
9908 	
9909 	#else
9910 	#define _kshiftli_mask16(X, Y)						\
9911 	  ((__mmask16) __builtin_ia32_kshiftlihi ((__mmask16)(X), (__mmask8)(Y)))
9912 	
9913 	#define _kshiftri_mask16(X, Y)						\
9914 	  ((__mmask16) __builtin_ia32_kshiftrihi ((__mmask16)(X), (__mmask8)(Y)))
9915 	
9916 	#define _mm512_cmp_epi64_mask(X, Y, P)					\
9917 	  ((__mmask8) __builtin_ia32_cmpq512_mask ((__v8di)(__m512i)(X),	\
9918 						   (__v8di)(__m512i)(Y), (int)(P),\
9919 						   (__mmask8)-1))
9920 	
9921 	#define _mm512_cmp_epi32_mask(X, Y, P)					\
9922 	  ((__mmask16) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X),	\
9923 						    (__v16si)(__m512i)(Y), (int)(P), \
9924 						    (__mmask16)-1))
9925 	
9926 	#define _mm512_cmp_epu64_mask(X, Y, P)					\
9927 	  ((__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di)(__m512i)(X),	\
9928 						    (__v8di)(__m512i)(Y), (int)(P),\
9929 						    (__mmask8)-1))
9930 	
9931 	#define _mm512_cmp_epu32_mask(X, Y, P)					\
9932 	  ((__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X),	\
9933 						     (__v16si)(__m512i)(Y), (int)(P), \
9934 						     (__mmask16)-1))
9935 	
9936 	#define _mm512_cmp_round_pd_mask(X, Y, P, R)				\
9937 	  ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X),	\
9938 						    (__v8df)(__m512d)(Y), (int)(P),\
9939 						    (__mmask8)-1, R))
9940 	
9941 	#define _mm512_cmp_round_ps_mask(X, Y, P, R)				\
9942 	  ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X),	\
9943 						     (__v16sf)(__m512)(Y), (int)(P),\
9944 						     (__mmask16)-1, R))
9945 	
9946 	#define _mm512_mask_cmp_epi64_mask(M, X, Y, P)				\
9947 	  ((__mmask8) __builtin_ia32_cmpq512_mask ((__v8di)(__m512i)(X),	\
9948 						   (__v8di)(__m512i)(Y), (int)(P),\
9949 						   (__mmask8)M))
9950 	
9951 	#define _mm512_mask_cmp_epi32_mask(M, X, Y, P)				\
9952 	  ((__mmask16) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X),	\
9953 						    (__v16si)(__m512i)(Y), (int)(P), \
9954 						    (__mmask16)M))
9955 	
9956 	#define _mm512_mask_cmp_epu64_mask(M, X, Y, P)				\
9957 	  ((__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di)(__m512i)(X),	\
9958 						    (__v8di)(__m512i)(Y), (int)(P),\
9959 						    (__mmask8)M))
9960 	
9961 	#define _mm512_mask_cmp_epu32_mask(M, X, Y, P)				\
9962 	  ((__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X),	\
9963 						     (__v16si)(__m512i)(Y), (int)(P), \
9964 						     (__mmask16)M))
9965 	
9966 	#define _mm512_mask_cmp_round_pd_mask(M, X, Y, P, R)			\
9967 	  ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X),	\
9968 						    (__v8df)(__m512d)(Y), (int)(P),\
9969 						    (__mmask8)M, R))
9970 	
9971 	#define _mm512_mask_cmp_round_ps_mask(M, X, Y, P, R)			\
9972 	  ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X),	\
9973 						     (__v16sf)(__m512)(Y), (int)(P),\
9974 						     (__mmask16)M, R))
9975 	
9976 	#define _mm_cmp_round_sd_mask(X, Y, P, R)				\
9977 	  ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X),		\
9978 						 (__v2df)(__m128d)(Y), (int)(P),\
9979 						 (__mmask8)-1, R))
9980 	
9981 	#define _mm_mask_cmp_round_sd_mask(M, X, Y, P, R)			\
9982 	  ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X),		\
9983 						 (__v2df)(__m128d)(Y), (int)(P),\
9984 						 (M), R))
9985 	
9986 	#define _mm_cmp_round_ss_mask(X, Y, P, R)				\
9987 	  ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X),		\
9988 						 (__v4sf)(__m128)(Y), (int)(P), \
9989 						 (__mmask8)-1, R))
9990 	
9991 	#define _mm_mask_cmp_round_ss_mask(M, X, Y, P, R)			\
9992 	  ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X),		\
9993 						 (__v4sf)(__m128)(Y), (int)(P), \
9994 						 (M), R))
9995 	#endif
9996 	
9997 	#ifdef __OPTIMIZE__
9998 	extern __inline __m512
9999 	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10000	_mm512_i32gather_ps (__m512i __index, void const *__addr, int __scale)
10001	{
10002	  __m512 __v1_old = _mm512_undefined_ps ();
10003	  __mmask16 __mask = 0xFFFF;
10004	
10005	  return (__m512) __builtin_ia32_gathersiv16sf ((__v16sf) __v1_old,
10006							__addr,
10007							(__v16si) __index,
10008							__mask, __scale);
10009	}
10010	
10011	extern __inline __m512
10012	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10013	_mm512_mask_i32gather_ps (__m512 __v1_old, __mmask16 __mask,
10014				  __m512i __index, void const *__addr, int __scale)
10015	{
10016	  return (__m512) __builtin_ia32_gathersiv16sf ((__v16sf) __v1_old,
10017							__addr,
10018							(__v16si) __index,
10019							__mask, __scale);
10020	}
10021	
10022	extern __inline __m512d
10023	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10024	_mm512_i32gather_pd (__m256i __index, void const *__addr, int __scale)
10025	{
10026	  __m512d __v1_old = _mm512_undefined_pd ();
10027	  __mmask8 __mask = 0xFF;
10028	
10029	  return (__m512d) __builtin_ia32_gathersiv8df ((__v8df) __v1_old,
10030							__addr,
10031							(__v8si) __index, __mask,
10032							__scale);
10033	}
10034	
10035	extern __inline __m512d
10036	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10037	_mm512_mask_i32gather_pd (__m512d __v1_old, __mmask8 __mask,
10038				  __m256i __index, void const *__addr, int __scale)
10039	{
10040	  return (__m512d) __builtin_ia32_gathersiv8df ((__v8df) __v1_old,
10041							__addr,
10042							(__v8si) __index,
10043							__mask, __scale);
10044	}
10045	
10046	extern __inline __m256
10047	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10048	_mm512_i64gather_ps (__m512i __index, void const *__addr, int __scale)
10049	{
10050	  __m256 __v1_old = _mm256_undefined_ps ();
10051	  __mmask8 __mask = 0xFF;
10052	
10053	  return (__m256) __builtin_ia32_gatherdiv16sf ((__v8sf) __v1_old,
10054							__addr,
10055							(__v8di) __index, __mask,
10056							__scale);
10057	}
10058	
10059	extern __inline __m256
10060	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10061	_mm512_mask_i64gather_ps (__m256 __v1_old, __mmask8 __mask,
10062				  __m512i __index, void const *__addr, int __scale)
10063	{
10064	  return (__m256) __builtin_ia32_gatherdiv16sf ((__v8sf) __v1_old,
10065							__addr,
10066							(__v8di) __index,
10067							__mask, __scale);
10068	}
10069	
10070	extern __inline __m512d
10071	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10072	_mm512_i64gather_pd (__m512i __index, void const *__addr, int __scale)
10073	{
10074	  __m512d __v1_old = _mm512_undefined_pd ();
10075	  __mmask8 __mask = 0xFF;
10076	
10077	  return (__m512d) __builtin_ia32_gatherdiv8df ((__v8df) __v1_old,
10078							__addr,
10079							(__v8di) __index, __mask,
10080							__scale);
10081	}
10082	
10083	extern __inline __m512d
10084	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10085	_mm512_mask_i64gather_pd (__m512d __v1_old, __mmask8 __mask,
10086				  __m512i __index, void const *__addr, int __scale)
10087	{
10088	  return (__m512d) __builtin_ia32_gatherdiv8df ((__v8df) __v1_old,
10089							__addr,
10090							(__v8di) __index,
10091							__mask, __scale);
10092	}
10093	
10094	extern __inline __m512i
10095	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10096	_mm512_i32gather_epi32 (__m512i __index, void const *__addr, int __scale)
10097	{
10098	  __m512i __v1_old = _mm512_undefined_epi32 ();
10099	  __mmask16 __mask = 0xFFFF;
10100	
10101	  return (__m512i) __builtin_ia32_gathersiv16si ((__v16si) __v1_old,
10102							 __addr,
10103							 (__v16si) __index,
10104							 __mask, __scale);
10105	}
10106	
10107	extern __inline __m512i
10108	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10109	_mm512_mask_i32gather_epi32 (__m512i __v1_old, __mmask16 __mask,
10110				     __m512i __index, void const *__addr, int __scale)
10111	{
10112	  return (__m512i) __builtin_ia32_gathersiv16si ((__v16si) __v1_old,
10113							 __addr,
10114							 (__v16si) __index,
10115							 __mask, __scale);
10116	}
10117	
10118	extern __inline __m512i
10119	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10120	_mm512_i32gather_epi64 (__m256i __index, void const *__addr, int __scale)
10121	{
10122	  __m512i __v1_old = _mm512_undefined_epi32 ();
10123	  __mmask8 __mask = 0xFF;
10124	
10125	  return (__m512i) __builtin_ia32_gathersiv8di ((__v8di) __v1_old,
10126							__addr,
10127							(__v8si) __index, __mask,
10128							__scale);
10129	}
10130	
10131	extern __inline __m512i
10132	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10133	_mm512_mask_i32gather_epi64 (__m512i __v1_old, __mmask8 __mask,
10134				     __m256i __index, void const *__addr,
10135				     int __scale)
10136	{
10137	  return (__m512i) __builtin_ia32_gathersiv8di ((__v8di) __v1_old,
10138							__addr,
10139							(__v8si) __index,
10140							__mask, __scale);
10141	}
10142	
10143	extern __inline __m256i
10144	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10145	_mm512_i64gather_epi32 (__m512i __index, void const *__addr, int __scale)
10146	{
10147	  __m256i __v1_old = _mm256_undefined_si256 ();
10148	  __mmask8 __mask = 0xFF;
10149	
10150	  return (__m256i) __builtin_ia32_gatherdiv16si ((__v8si) __v1_old,
10151							 __addr,
10152							 (__v8di) __index,
10153							 __mask, __scale);
10154	}
10155	
10156	extern __inline __m256i
10157	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10158	_mm512_mask_i64gather_epi32 (__m256i __v1_old, __mmask8 __mask,
10159				     __m512i __index, void const *__addr, int __scale)
10160	{
10161	  return (__m256i) __builtin_ia32_gatherdiv16si ((__v8si) __v1_old,
10162							 __addr,
10163							 (__v8di) __index,
10164							 __mask, __scale);
10165	}
10166	
10167	extern __inline __m512i
10168	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10169	_mm512_i64gather_epi64 (__m512i __index, void const *__addr, int __scale)
10170	{
10171	  __m512i __v1_old = _mm512_undefined_epi32 ();
10172	  __mmask8 __mask = 0xFF;
10173	
10174	  return (__m512i) __builtin_ia32_gatherdiv8di ((__v8di) __v1_old,
10175							__addr,
10176							(__v8di) __index, __mask,
10177							__scale);
10178	}
10179	
10180	extern __inline __m512i
10181	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10182	_mm512_mask_i64gather_epi64 (__m512i __v1_old, __mmask8 __mask,
10183				     __m512i __index, void const *__addr,
10184				     int __scale)
10185	{
10186	  return (__m512i) __builtin_ia32_gatherdiv8di ((__v8di) __v1_old,
10187							__addr,
10188							(__v8di) __index,
10189							__mask, __scale);
10190	}
10191	
10192	extern __inline void
10193	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10194	_mm512_i32scatter_ps (void *__addr, __m512i __index, __m512 __v1, int __scale)
10195	{
10196	  __builtin_ia32_scattersiv16sf (__addr, (__mmask16) 0xFFFF,
10197					 (__v16si) __index, (__v16sf) __v1, __scale);
10198	}
10199	
10200	extern __inline void
10201	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10202	_mm512_mask_i32scatter_ps (void *__addr, __mmask16 __mask,
10203				   __m512i __index, __m512 __v1, int __scale)
10204	{
10205	  __builtin_ia32_scattersiv16sf (__addr, __mask, (__v16si) __index,
10206					 (__v16sf) __v1, __scale);
10207	}
10208	
10209	extern __inline void
10210	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10211	_mm512_i32scatter_pd (void *__addr, __m256i __index, __m512d __v1,
10212			      int __scale)
10213	{
10214	  __builtin_ia32_scattersiv8df (__addr, (__mmask8) 0xFF,
10215					(__v8si) __index, (__v8df) __v1, __scale);
10216	}
10217	
10218	extern __inline void
10219	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10220	_mm512_mask_i32scatter_pd (void *__addr, __mmask8 __mask,
10221				   __m256i __index, __m512d __v1, int __scale)
10222	{
10223	  __builtin_ia32_scattersiv8df (__addr, __mask, (__v8si) __index,
10224					(__v8df) __v1, __scale);
10225	}
10226	
10227	extern __inline void
10228	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10229	_mm512_i64scatter_ps (void *__addr, __m512i __index, __m256 __v1, int __scale)
10230	{
10231	  __builtin_ia32_scatterdiv16sf (__addr, (__mmask8) 0xFF,
10232					 (__v8di) __index, (__v8sf) __v1, __scale);
10233	}
10234	
10235	extern __inline void
10236	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10237	_mm512_mask_i64scatter_ps (void *__addr, __mmask8 __mask,
10238				   __m512i __index, __m256 __v1, int __scale)
10239	{
10240	  __builtin_ia32_scatterdiv16sf (__addr, __mask, (__v8di) __index,
10241					 (__v8sf) __v1, __scale);
10242	}
10243	
10244	extern __inline void
10245	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10246	_mm512_i64scatter_pd (void *__addr, __m512i __index, __m512d __v1,
10247			      int __scale)
10248	{
10249	  __builtin_ia32_scatterdiv8df (__addr, (__mmask8) 0xFF,
10250					(__v8di) __index, (__v8df) __v1, __scale);
10251	}
10252	
10253	extern __inline void
10254	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10255	_mm512_mask_i64scatter_pd (void *__addr, __mmask8 __mask,
10256				   __m512i __index, __m512d __v1, int __scale)
10257	{
10258	  __builtin_ia32_scatterdiv8df (__addr, __mask, (__v8di) __index,
10259					(__v8df) __v1, __scale);
10260	}
10261	
10262	extern __inline void
10263	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10264	_mm512_i32scatter_epi32 (void *__addr, __m512i __index,
10265				 __m512i __v1, int __scale)
10266	{
10267	  __builtin_ia32_scattersiv16si (__addr, (__mmask16) 0xFFFF,
10268					 (__v16si) __index, (__v16si) __v1, __scale);
10269	}
10270	
10271	extern __inline void
10272	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10273	_mm512_mask_i32scatter_epi32 (void *__addr, __mmask16 __mask,
10274				      __m512i __index, __m512i __v1, int __scale)
10275	{
10276	  __builtin_ia32_scattersiv16si (__addr, __mask, (__v16si) __index,
10277					 (__v16si) __v1, __scale);
10278	}
10279	
10280	extern __inline void
10281	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10282	_mm512_i32scatter_epi64 (void *__addr, __m256i __index,
10283				 __m512i __v1, int __scale)
10284	{
10285	  __builtin_ia32_scattersiv8di (__addr, (__mmask8) 0xFF,
10286					(__v8si) __index, (__v8di) __v1, __scale);
10287	}
10288	
10289	extern __inline void
10290	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10291	_mm512_mask_i32scatter_epi64 (void *__addr, __mmask8 __mask,
10292				      __m256i __index, __m512i __v1, int __scale)
10293	{
10294	  __builtin_ia32_scattersiv8di (__addr, __mask, (__v8si) __index,
10295					(__v8di) __v1, __scale);
10296	}
10297	
10298	extern __inline void
10299	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10300	_mm512_i64scatter_epi32 (void *__addr, __m512i __index,
10301				 __m256i __v1, int __scale)
10302	{
10303	  __builtin_ia32_scatterdiv16si (__addr, (__mmask8) 0xFF,
10304					 (__v8di) __index, (__v8si) __v1, __scale);
10305	}
10306	
10307	extern __inline void
10308	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10309	_mm512_mask_i64scatter_epi32 (void *__addr, __mmask8 __mask,
10310				      __m512i __index, __m256i __v1, int __scale)
10311	{
10312	  __builtin_ia32_scatterdiv16si (__addr, __mask, (__v8di) __index,
10313					 (__v8si) __v1, __scale);
10314	}
10315	
10316	extern __inline void
10317	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10318	_mm512_i64scatter_epi64 (void *__addr, __m512i __index,
10319				 __m512i __v1, int __scale)
10320	{
10321	  __builtin_ia32_scatterdiv8di (__addr, (__mmask8) 0xFF,
10322					(__v8di) __index, (__v8di) __v1, __scale);
10323	}
10324	
10325	extern __inline void
10326	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10327	_mm512_mask_i64scatter_epi64 (void *__addr, __mmask8 __mask,
10328				      __m512i __index, __m512i __v1, int __scale)
10329	{
10330	  __builtin_ia32_scatterdiv8di (__addr, __mask, (__v8di) __index,
10331					(__v8di) __v1, __scale);
10332	}
10333	#else
10334	#define _mm512_i32gather_ps(INDEX, ADDR, SCALE)				\
10335	  (__m512) __builtin_ia32_gathersiv16sf ((__v16sf)_mm512_undefined_ps(),\
10336						 (void const *)ADDR,		\
10337						 (__v16si)(__m512i)INDEX,	\
10338						 (__mmask16)0xFFFF, (int)SCALE)
10339	
10340	#define _mm512_mask_i32gather_ps(V1OLD, MASK, INDEX, ADDR, SCALE)	\
10341	  (__m512) __builtin_ia32_gathersiv16sf ((__v16sf)(__m512)V1OLD,	\
10342						 (void const *)ADDR,		\
10343						 (__v16si)(__m512i)INDEX,	\
10344						 (__mmask16)MASK, (int)SCALE)
10345	
10346	#define _mm512_i32gather_pd(INDEX, ADDR, SCALE)				\
10347	  (__m512d) __builtin_ia32_gathersiv8df ((__v8df)_mm512_undefined_pd(),	\
10348						 (void const *)ADDR,		\
10349						 (__v8si)(__m256i)INDEX,	\
10350						 (__mmask8)0xFF, (int)SCALE)
10351	
10352	#define _mm512_mask_i32gather_pd(V1OLD, MASK, INDEX, ADDR, SCALE)	\
10353	  (__m512d) __builtin_ia32_gathersiv8df ((__v8df)(__m512d)V1OLD,	\
10354						 (void const *)ADDR,		\
10355						 (__v8si)(__m256i)INDEX,	\
10356						 (__mmask8)MASK, (int)SCALE)
10357	
10358	#define _mm512_i64gather_ps(INDEX, ADDR, SCALE)				\
10359	  (__m256) __builtin_ia32_gatherdiv16sf ((__v8sf)_mm256_undefined_ps(),	\
10360						 (void const *)ADDR,		\
10361						 (__v8di)(__m512i)INDEX,	\
10362						 (__mmask8)0xFF, (int)SCALE)
10363	
10364	#define _mm512_mask_i64gather_ps(V1OLD, MASK, INDEX, ADDR, SCALE)	\
10365	  (__m256) __builtin_ia32_gatherdiv16sf ((__v8sf)(__m256)V1OLD,		\
10366						 (void const *)ADDR,		\
10367						 (__v8di)(__m512i)INDEX,	\
10368						 (__mmask8)MASK, (int)SCALE)
10369	
10370	#define _mm512_i64gather_pd(INDEX, ADDR, SCALE)				\
10371	  (__m512d) __builtin_ia32_gatherdiv8df ((__v8df)_mm512_undefined_pd(),	\
10372						 (void const *)ADDR,		\
10373						 (__v8di)(__m512i)INDEX,	\
10374						 (__mmask8)0xFF, (int)SCALE)
10375	
10376	#define _mm512_mask_i64gather_pd(V1OLD, MASK, INDEX, ADDR, SCALE)	\
10377	  (__m512d) __builtin_ia32_gatherdiv8df ((__v8df)(__m512d)V1OLD,	\
10378						 (void const *)ADDR,		\
10379						 (__v8di)(__m512i)INDEX,	\
10380						 (__mmask8)MASK, (int)SCALE)
10381	
10382	#define _mm512_i32gather_epi32(INDEX, ADDR, SCALE)			\
10383	  (__m512i) __builtin_ia32_gathersiv16si ((__v16si)_mm512_undefined_epi32 (),	\
10384						  (void const *)ADDR,		\
10385						  (__v16si)(__m512i)INDEX,	\
10386						  (__mmask16)0xFFFF, (int)SCALE)
10387	
10388	#define _mm512_mask_i32gather_epi32(V1OLD, MASK, INDEX, ADDR, SCALE)	\
10389	  (__m512i) __builtin_ia32_gathersiv16si ((__v16si)(__m512i)V1OLD,	\
10390						  (void const *)ADDR,		\
10391						  (__v16si)(__m512i)INDEX,	\
10392						  (__mmask16)MASK, (int)SCALE)
10393	
10394	#define _mm512_i32gather_epi64(INDEX, ADDR, SCALE)			\
10395	  (__m512i) __builtin_ia32_gathersiv8di ((__v8di)_mm512_undefined_epi32 (),	\
10396						 (void const *)ADDR,		\
10397						 (__v8si)(__m256i)INDEX,	\
10398						 (__mmask8)0xFF, (int)SCALE)
10399	
10400	#define _mm512_mask_i32gather_epi64(V1OLD, MASK, INDEX, ADDR, SCALE)	\
10401	  (__m512i) __builtin_ia32_gathersiv8di ((__v8di)(__m512i)V1OLD,	\
10402						 (void const *)ADDR,		\
10403						 (__v8si)(__m256i)INDEX,	\
10404						 (__mmask8)MASK, (int)SCALE)
10405	
10406	#define _mm512_i64gather_epi32(INDEX, ADDR, SCALE)			  \
10407	  (__m256i) __builtin_ia32_gatherdiv16si ((__v8si)_mm256_undefined_si256(), \
10408						  (void const *)ADDR,		  \
10409						  (__v8di)(__m512i)INDEX,	  \
10410						  (__mmask8)0xFF, (int)SCALE)
10411	
10412	#define _mm512_mask_i64gather_epi32(V1OLD, MASK, INDEX, ADDR, SCALE)	\
10413	  (__m256i) __builtin_ia32_gatherdiv16si ((__v8si)(__m256i)V1OLD,	\
10414						  (void const *)ADDR,		\
10415						  (__v8di)(__m512i)INDEX,	\
10416						  (__mmask8)MASK, (int)SCALE)
10417	
10418	#define _mm512_i64gather_epi64(INDEX, ADDR, SCALE)			\
10419	  (__m512i) __builtin_ia32_gatherdiv8di ((__v8di)_mm512_undefined_epi32 (),	\
10420						 (void const *)ADDR,		\
10421						 (__v8di)(__m512i)INDEX,	\
10422						 (__mmask8)0xFF, (int)SCALE)
10423	
10424	#define _mm512_mask_i64gather_epi64(V1OLD, MASK, INDEX, ADDR, SCALE)	\
10425	  (__m512i) __builtin_ia32_gatherdiv8di ((__v8di)(__m512i)V1OLD,	\
10426						 (void const *)ADDR,		\
10427						 (__v8di)(__m512i)INDEX,	\
10428						 (__mmask8)MASK, (int)SCALE)
10429	
10430	#define _mm512_i32scatter_ps(ADDR, INDEX, V1, SCALE)			\
10431	  __builtin_ia32_scattersiv16sf ((void *)ADDR, (__mmask16)0xFFFF,	\
10432					 (__v16si)(__m512i)INDEX,		\
10433					 (__v16sf)(__m512)V1, (int)SCALE)
10434	
10435	#define _mm512_mask_i32scatter_ps(ADDR, MASK, INDEX, V1, SCALE)		\
10436	  __builtin_ia32_scattersiv16sf ((void *)ADDR, (__mmask16)MASK,		\
10437					 (__v16si)(__m512i)INDEX,		\
10438					 (__v16sf)(__m512)V1, (int)SCALE)
10439	
10440	#define _mm512_i32scatter_pd(ADDR, INDEX, V1, SCALE)			\
10441	  __builtin_ia32_scattersiv8df ((void *)ADDR, (__mmask8)0xFF,		\
10442					(__v8si)(__m256i)INDEX,			\
10443					(__v8df)(__m512d)V1, (int)SCALE)
10444	
10445	#define _mm512_mask_i32scatter_pd(ADDR, MASK, INDEX, V1, SCALE)		\
10446	  __builtin_ia32_scattersiv8df ((void *)ADDR, (__mmask8)MASK,		\
10447					(__v8si)(__m256i)INDEX,			\
10448					(__v8df)(__m512d)V1, (int)SCALE)
10449	
10450	#define _mm512_i64scatter_ps(ADDR, INDEX, V1, SCALE)			\
10451	  __builtin_ia32_scatterdiv16sf ((void *)ADDR, (__mmask8)0xFF,		\
10452					 (__v8di)(__m512i)INDEX,		\
10453					 (__v8sf)(__m256)V1, (int)SCALE)
10454	
10455	#define _mm512_mask_i64scatter_ps(ADDR, MASK, INDEX, V1, SCALE)		\
10456	  __builtin_ia32_scatterdiv16sf ((void *)ADDR, (__mmask16)MASK,		\
10457					 (__v8di)(__m512i)INDEX,		\
10458					 (__v8sf)(__m256)V1, (int)SCALE)
10459	
10460	#define _mm512_i64scatter_pd(ADDR, INDEX, V1, SCALE)			\
10461	  __builtin_ia32_scatterdiv8df ((void *)ADDR, (__mmask8)0xFF,		\
10462					(__v8di)(__m512i)INDEX,			\
10463					(__v8df)(__m512d)V1, (int)SCALE)
10464	
10465	#define _mm512_mask_i64scatter_pd(ADDR, MASK, INDEX, V1, SCALE)		\
10466	  __builtin_ia32_scatterdiv8df ((void *)ADDR, (__mmask8)MASK,		\
10467					(__v8di)(__m512i)INDEX,			\
10468					(__v8df)(__m512d)V1, (int)SCALE)
10469	
10470	#define _mm512_i32scatter_epi32(ADDR, INDEX, V1, SCALE)			\
10471	  __builtin_ia32_scattersiv16si ((void *)ADDR, (__mmask16)0xFFFF,	\
10472					 (__v16si)(__m512i)INDEX,		\
10473					 (__v16si)(__m512i)V1, (int)SCALE)
10474	
10475	#define _mm512_mask_i32scatter_epi32(ADDR, MASK, INDEX, V1, SCALE)	\
10476	  __builtin_ia32_scattersiv16si ((void *)ADDR, (__mmask16)MASK,		\
10477					 (__v16si)(__m512i)INDEX,		\
10478					 (__v16si)(__m512i)V1, (int)SCALE)
10479	
10480	#define _mm512_i32scatter_epi64(ADDR, INDEX, V1, SCALE)			\
10481	  __builtin_ia32_scattersiv8di ((void *)ADDR, (__mmask8)0xFF,		\
10482					(__v8si)(__m256i)INDEX,			\
10483					(__v8di)(__m512i)V1, (int)SCALE)
10484	
10485	#define _mm512_mask_i32scatter_epi64(ADDR, MASK, INDEX, V1, SCALE)	\
10486	  __builtin_ia32_scattersiv8di ((void *)ADDR, (__mmask8)MASK,		\
10487					(__v8si)(__m256i)INDEX,			\
10488					(__v8di)(__m512i)V1, (int)SCALE)
10489	
10490	#define _mm512_i64scatter_epi32(ADDR, INDEX, V1, SCALE)			\
10491	  __builtin_ia32_scatterdiv16si ((void *)ADDR, (__mmask8)0xFF,		\
10492					 (__v8di)(__m512i)INDEX,		\
10493					 (__v8si)(__m256i)V1, (int)SCALE)
10494	
10495	#define _mm512_mask_i64scatter_epi32(ADDR, MASK, INDEX, V1, SCALE)	\
10496	  __builtin_ia32_scatterdiv16si ((void *)ADDR, (__mmask8)MASK,		\
10497					 (__v8di)(__m512i)INDEX,		\
10498					 (__v8si)(__m256i)V1, (int)SCALE)
10499	
10500	#define _mm512_i64scatter_epi64(ADDR, INDEX, V1, SCALE)			\
10501	  __builtin_ia32_scatterdiv8di ((void *)ADDR, (__mmask8)0xFF,		\
10502					(__v8di)(__m512i)INDEX,			\
10503					(__v8di)(__m512i)V1, (int)SCALE)
10504	
10505	#define _mm512_mask_i64scatter_epi64(ADDR, MASK, INDEX, V1, SCALE)	\
10506	  __builtin_ia32_scatterdiv8di ((void *)ADDR, (__mmask8)MASK,		\
10507					(__v8di)(__m512i)INDEX,			\
10508					(__v8di)(__m512i)V1, (int)SCALE)
10509	#endif
10510	
10511	extern __inline __m512d
10512	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10513	_mm512_mask_compress_pd (__m512d __W, __mmask8 __U, __m512d __A)
10514	{
10515	  return (__m512d) __builtin_ia32_compressdf512_mask ((__v8df) __A,
10516							      (__v8df) __W,
10517							      (__mmask8) __U);
10518	}
10519	
10520	extern __inline __m512d
10521	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10522	_mm512_maskz_compress_pd (__mmask8 __U, __m512d __A)
10523	{
10524	  return (__m512d) __builtin_ia32_compressdf512_mask ((__v8df) __A,
10525							      (__v8df)
10526							      _mm512_setzero_pd (),
10527							      (__mmask8) __U);
10528	}
10529	
10530	extern __inline void
10531	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10532	_mm512_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m512d __A)
10533	{
10534	  __builtin_ia32_compressstoredf512_mask ((__v8df *) __P, (__v8df) __A,
10535						  (__mmask8) __U);
10536	}
10537	
10538	extern __inline __m512
10539	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10540	_mm512_mask_compress_ps (__m512 __W, __mmask16 __U, __m512 __A)
10541	{
10542	  return (__m512) __builtin_ia32_compresssf512_mask ((__v16sf) __A,
10543							     (__v16sf) __W,
10544							     (__mmask16) __U);
10545	}
10546	
10547	extern __inline __m512
10548	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10549	_mm512_maskz_compress_ps (__mmask16 __U, __m512 __A)
10550	{
10551	  return (__m512) __builtin_ia32_compresssf512_mask ((__v16sf) __A,
10552							     (__v16sf)
10553							     _mm512_setzero_ps (),
10554							     (__mmask16) __U);
10555	}
10556	
10557	extern __inline void
10558	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10559	_mm512_mask_compressstoreu_ps (void *__P, __mmask16 __U, __m512 __A)
10560	{
10561	  __builtin_ia32_compressstoresf512_mask ((__v16sf *) __P, (__v16sf) __A,
10562						  (__mmask16) __U);
10563	}
10564	
10565	extern __inline __m512i
10566	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10567	_mm512_mask_compress_epi64 (__m512i __W, __mmask8 __U, __m512i __A)
10568	{
10569	  return (__m512i) __builtin_ia32_compressdi512_mask ((__v8di) __A,
10570							      (__v8di) __W,
10571							      (__mmask8) __U);
10572	}
10573	
10574	extern __inline __m512i
10575	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10576	_mm512_maskz_compress_epi64 (__mmask8 __U, __m512i __A)
10577	{
10578	  return (__m512i) __builtin_ia32_compressdi512_mask ((__v8di) __A,
10579							      (__v8di)
10580							      _mm512_setzero_si512 (),
10581							      (__mmask8) __U);
10582	}
10583	
10584	extern __inline void
10585	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10586	_mm512_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m512i __A)
10587	{
10588	  __builtin_ia32_compressstoredi512_mask ((__v8di *) __P, (__v8di) __A,
10589						  (__mmask8) __U);
10590	}
10591	
10592	extern __inline __m512i
10593	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10594	_mm512_mask_compress_epi32 (__m512i __W, __mmask16 __U, __m512i __A)
10595	{
10596	  return (__m512i) __builtin_ia32_compresssi512_mask ((__v16si) __A,
10597							      (__v16si) __W,
10598							      (__mmask16) __U);
10599	}
10600	
10601	extern __inline __m512i
10602	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10603	_mm512_maskz_compress_epi32 (__mmask16 __U, __m512i __A)
10604	{
10605	  return (__m512i) __builtin_ia32_compresssi512_mask ((__v16si) __A,
10606							      (__v16si)
10607							      _mm512_setzero_si512 (),
10608							      (__mmask16) __U);
10609	}
10610	
10611	extern __inline void
10612	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10613	_mm512_mask_compressstoreu_epi32 (void *__P, __mmask16 __U, __m512i __A)
10614	{
10615	  __builtin_ia32_compressstoresi512_mask ((__v16si *) __P, (__v16si) __A,
10616						  (__mmask16) __U);
10617	}
10618	
10619	extern __inline __m512d
10620	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10621	_mm512_mask_expand_pd (__m512d __W, __mmask8 __U, __m512d __A)
10622	{
10623	  return (__m512d) __builtin_ia32_expanddf512_mask ((__v8df) __A,
10624							    (__v8df) __W,
10625							    (__mmask8) __U);
10626	}
10627	
10628	extern __inline __m512d
10629	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10630	_mm512_maskz_expand_pd (__mmask8 __U, __m512d __A)
10631	{
10632	  return (__m512d) __builtin_ia32_expanddf512_maskz ((__v8df) __A,
10633							     (__v8df)
10634							     _mm512_setzero_pd (),
10635							     (__mmask8) __U);
10636	}
10637	
10638	extern __inline __m512d
10639	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10640	_mm512_mask_expandloadu_pd (__m512d __W, __mmask8 __U, void const *__P)
10641	{
10642	  return (__m512d) __builtin_ia32_expandloaddf512_mask ((const __v8df *) __P,
10643								(__v8df) __W,
10644								(__mmask8) __U);
10645	}
10646	
10647	extern __inline __m512d
10648	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10649	_mm512_maskz_expandloadu_pd (__mmask8 __U, void const *__P)
10650	{
10651	  return (__m512d) __builtin_ia32_expandloaddf512_maskz ((const __v8df *) __P,
10652								 (__v8df)
10653								 _mm512_setzero_pd (),
10654								 (__mmask8) __U);
10655	}
10656	
10657	extern __inline __m512
10658	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10659	_mm512_mask_expand_ps (__m512 __W, __mmask16 __U, __m512 __A)
10660	{
10661	  return (__m512) __builtin_ia32_expandsf512_mask ((__v16sf) __A,
10662							   (__v16sf) __W,
10663							   (__mmask16) __U);
10664	}
10665	
10666	extern __inline __m512
10667	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10668	_mm512_maskz_expand_ps (__mmask16 __U, __m512 __A)
10669	{
10670	  return (__m512) __builtin_ia32_expandsf512_maskz ((__v16sf) __A,
10671							    (__v16sf)
10672							    _mm512_setzero_ps (),
10673							    (__mmask16) __U);
10674	}
10675	
10676	extern __inline __m512
10677	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10678	_mm512_mask_expandloadu_ps (__m512 __W, __mmask16 __U, void const *__P)
10679	{
10680	  return (__m512) __builtin_ia32_expandloadsf512_mask ((const __v16sf *) __P,
10681							       (__v16sf) __W,
10682							       (__mmask16) __U);
10683	}
10684	
10685	extern __inline __m512
10686	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10687	_mm512_maskz_expandloadu_ps (__mmask16 __U, void const *__P)
10688	{
10689	  return (__m512) __builtin_ia32_expandloadsf512_maskz ((const __v16sf *) __P,
10690								(__v16sf)
10691								_mm512_setzero_ps (),
10692								(__mmask16) __U);
10693	}
10694	
10695	extern __inline __m512i
10696	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10697	_mm512_mask_expand_epi64 (__m512i __W, __mmask8 __U, __m512i __A)
10698	{
10699	  return (__m512i) __builtin_ia32_expanddi512_mask ((__v8di) __A,
10700							    (__v8di) __W,
10701							    (__mmask8) __U);
10702	}
10703	
10704	extern __inline __m512i
10705	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10706	_mm512_maskz_expand_epi64 (__mmask8 __U, __m512i __A)
10707	{
10708	  return (__m512i) __builtin_ia32_expanddi512_maskz ((__v8di) __A,
10709							     (__v8di)
10710							     _mm512_setzero_si512 (),
10711							     (__mmask8) __U);
10712	}
10713	
10714	extern __inline __m512i
10715	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10716	_mm512_mask_expandloadu_epi64 (__m512i __W, __mmask8 __U, void const *__P)
10717	{
10718	  return (__m512i) __builtin_ia32_expandloaddi512_mask ((const __v8di *) __P,
10719								(__v8di) __W,
10720								(__mmask8) __U);
10721	}
10722	
10723	extern __inline __m512i
10724	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10725	_mm512_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P)
10726	{
10727	  return (__m512i)
10728		 __builtin_ia32_expandloaddi512_maskz ((const __v8di *) __P,
10729						       (__v8di)
10730						       _mm512_setzero_si512 (),
10731						       (__mmask8) __U);
10732	}
10733	
10734	extern __inline __m512i
10735	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10736	_mm512_mask_expand_epi32 (__m512i __W, __mmask16 __U, __m512i __A)
10737	{
10738	  return (__m512i) __builtin_ia32_expandsi512_mask ((__v16si) __A,
10739							    (__v16si) __W,
10740							    (__mmask16) __U);
10741	}
10742	
10743	extern __inline __m512i
10744	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10745	_mm512_maskz_expand_epi32 (__mmask16 __U, __m512i __A)
10746	{
10747	  return (__m512i) __builtin_ia32_expandsi512_maskz ((__v16si) __A,
10748							     (__v16si)
10749							     _mm512_setzero_si512 (),
10750							     (__mmask16) __U);
10751	}
10752	
10753	extern __inline __m512i
10754	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10755	_mm512_mask_expandloadu_epi32 (__m512i __W, __mmask16 __U, void const *__P)
10756	{
10757	  return (__m512i) __builtin_ia32_expandloadsi512_mask ((const __v16si *) __P,
10758								(__v16si) __W,
10759								(__mmask16) __U);
10760	}
10761	
10762	extern __inline __m512i
10763	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10764	_mm512_maskz_expandloadu_epi32 (__mmask16 __U, void const *__P)
10765	{
10766	  return (__m512i) __builtin_ia32_expandloadsi512_maskz ((const __v16si *) __P,
10767								 (__v16si)
10768								 _mm512_setzero_si512
10769								 (), (__mmask16) __U);
10770	}
10771	
10772	/* Mask arithmetic operations */
10773	#define _kand_mask16 _mm512_kand
10774	#define _kandn_mask16 _mm512_kandn
10775	#define _knot_mask16 _mm512_knot
10776	#define _kor_mask16 _mm512_kor
10777	#define _kxnor_mask16 _mm512_kxnor
10778	#define _kxor_mask16 _mm512_kxor
10779	
10780	extern __inline unsigned char
10781	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10782	_kortest_mask16_u8  (__mmask16 __A,  __mmask16 __B, unsigned char *__CF)
10783	{
10784	  *__CF = (unsigned char) __builtin_ia32_kortestchi (__A, __B);
10785	  return (unsigned char) __builtin_ia32_kortestzhi (__A, __B);
10786	}
10787	
10788	extern __inline unsigned char
10789	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10790	_kortestz_mask16_u8 (__mmask16 __A, __mmask16 __B)
10791	{
10792	  return (unsigned char) __builtin_ia32_kortestzhi ((__mmask16) __A,
10793							    (__mmask16) __B);
10794	}
10795	
10796	extern __inline unsigned char
10797	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10798	_kortestc_mask16_u8 (__mmask16 __A, __mmask16 __B)
10799	{
10800	  return (unsigned char) __builtin_ia32_kortestchi ((__mmask16) __A,
10801							    (__mmask16) __B);
10802	}
10803	
10804	extern __inline unsigned int
10805	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10806	_cvtmask16_u32 (__mmask16 __A)
10807	{
10808	  return (unsigned int) __builtin_ia32_kmovw ((__mmask16 ) __A);
10809	}
10810	
10811	extern __inline __mmask16
10812	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10813	_cvtu32_mask16 (unsigned int __A)
10814	{
10815	  return (__mmask16) __builtin_ia32_kmovw ((__mmask16 ) __A);
10816	}
10817	
10818	extern __inline __mmask16
10819	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10820	_load_mask16 (__mmask16 *__A)
10821	{
10822	  return (__mmask16) __builtin_ia32_kmovw (*(__mmask16 *) __A);
10823	}
10824	
10825	extern __inline void
10826	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10827	_store_mask16 (__mmask16 *__A, __mmask16 __B)
10828	{
10829	  *(__mmask16 *) __A = __builtin_ia32_kmovw (__B);
10830	}
10831	
10832	extern __inline __mmask16
10833	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10834	_mm512_kand (__mmask16 __A, __mmask16 __B)
10835	{
10836	  return (__mmask16) __builtin_ia32_kandhi ((__mmask16) __A, (__mmask16) __B);
10837	}
10838	
10839	extern __inline __mmask16
10840	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10841	_mm512_kandn (__mmask16 __A, __mmask16 __B)
10842	{
10843	  return (__mmask16) __builtin_ia32_kandnhi ((__mmask16) __A,
10844						     (__mmask16) __B);
10845	}
10846	
10847	extern __inline __mmask16
10848	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10849	_mm512_kor (__mmask16 __A, __mmask16 __B)
10850	{
10851	  return (__mmask16) __builtin_ia32_korhi ((__mmask16) __A, (__mmask16) __B);
10852	}
10853	
10854	extern __inline int
10855	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10856	_mm512_kortestz (__mmask16 __A, __mmask16 __B)
10857	{
10858	  return (__mmask16) __builtin_ia32_kortestzhi ((__mmask16) __A,
10859							(__mmask16) __B);
10860	}
10861	
10862	extern __inline int
10863	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10864	_mm512_kortestc (__mmask16 __A, __mmask16 __B)
10865	{
10866	  return (__mmask16) __builtin_ia32_kortestchi ((__mmask16) __A,
10867							(__mmask16) __B);
10868	}
10869	
10870	extern __inline __mmask16
10871	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10872	_mm512_kxnor (__mmask16 __A, __mmask16 __B)
10873	{
10874	  return (__mmask16) __builtin_ia32_kxnorhi ((__mmask16) __A, (__mmask16) __B);
10875	}
10876	
10877	extern __inline __mmask16
10878	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10879	_mm512_kxor (__mmask16 __A, __mmask16 __B)
10880	{
10881	  return (__mmask16) __builtin_ia32_kxorhi ((__mmask16) __A, (__mmask16) __B);
10882	}
10883	
10884	extern __inline __mmask16
10885	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10886	_mm512_knot (__mmask16 __A)
10887	{
10888	  return (__mmask16) __builtin_ia32_knothi ((__mmask16) __A);
10889	}
10890	
10891	extern __inline __mmask16
10892	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10893	_mm512_kunpackb (__mmask16 __A, __mmask16 __B)
10894	{
10895	  return (__mmask16) __builtin_ia32_kunpckhi ((__mmask16) __A, (__mmask16) __B);
10896	}
10897	
10898	extern __inline __mmask16
10899	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10900	_kunpackb_mask16 (__mmask8 __A, __mmask8 __B)
10901	{
10902	  return (__mmask16) __builtin_ia32_kunpckhi ((__mmask16) __A, (__mmask16) __B);
10903	}
10904	
10905	#ifdef __OPTIMIZE__
10906	extern __inline __m512i
10907	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10908	_mm512_maskz_inserti32x4 (__mmask16 __B, __m512i __C, __m128i __D,
10909				  const int __imm)
10910	{
10911	  return (__m512i) __builtin_ia32_inserti32x4_mask ((__v16si) __C,
10912							    (__v4si) __D,
10913							    __imm,
10914							    (__v16si)
10915							    _mm512_setzero_si512 (),
10916							    __B);
10917	}
10918	
10919	extern __inline __m512
10920	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10921	_mm512_maskz_insertf32x4 (__mmask16 __B, __m512 __C, __m128 __D,
10922				  const int __imm)
10923	{
10924	  return (__m512) __builtin_ia32_insertf32x4_mask ((__v16sf) __C,
10925							   (__v4sf) __D,
10926							   __imm,
10927							   (__v16sf)
10928							   _mm512_setzero_ps (), __B);
10929	}
10930	
10931	extern __inline __m512i
10932	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10933	_mm512_mask_inserti32x4 (__m512i __A, __mmask16 __B, __m512i __C,
10934				 __m128i __D, const int __imm)
10935	{
10936	  return (__m512i) __builtin_ia32_inserti32x4_mask ((__v16si) __C,
10937							    (__v4si) __D,
10938							    __imm,
10939							    (__v16si) __A,
10940							    __B);
10941	}
10942	
10943	extern __inline __m512
10944	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10945	_mm512_mask_insertf32x4 (__m512 __A, __mmask16 __B, __m512 __C,
10946				 __m128 __D, const int __imm)
10947	{
10948	  return (__m512) __builtin_ia32_insertf32x4_mask ((__v16sf) __C,
10949							   (__v4sf) __D,
10950							   __imm,
10951							   (__v16sf) __A, __B);
10952	}
10953	#else
10954	#define _mm512_maskz_insertf32x4(A, X, Y, C)                            \
10955	  ((__m512) __builtin_ia32_insertf32x4_mask ((__v16sf)(__m512) (X),     \
10956	    (__v4sf)(__m128) (Y), (int) (C), (__v16sf)_mm512_setzero_ps(),      \
10957	    (__mmask16)(A)))
10958	
10959	#define _mm512_maskz_inserti32x4(A, X, Y, C)                            \
10960	  ((__m512i) __builtin_ia32_inserti32x4_mask ((__v16si)(__m512i) (X),   \
10961	    (__v4si)(__m128i) (Y), (int) (C), (__v16si)_mm512_setzero_si512 (),     \
10962	    (__mmask16)(A)))
10963	
10964	#define _mm512_mask_insertf32x4(A, B, X, Y, C)                          \
10965	  ((__m512) __builtin_ia32_insertf32x4_mask ((__v16sf)(__m512) (X),     \
10966	    (__v4sf)(__m128) (Y), (int) (C), (__v16sf)(__m512) (A),             \
10967						     (__mmask16)(B)))
10968	
10969	#define _mm512_mask_inserti32x4(A, B, X, Y, C)                          \
10970	  ((__m512i) __builtin_ia32_inserti32x4_mask ((__v16si)(__m512i) (X),   \
10971	    (__v4si)(__m128i) (Y), (int) (C), (__v16si)(__m512i) (A),           \
10972						      (__mmask16)(B)))
10973	#endif
10974	
10975	extern __inline __m512i
10976	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10977	_mm512_max_epi64 (__m512i __A, __m512i __B)
10978	{
10979	  return (__m512i) __builtin_ia32_pmaxsq512_mask ((__v8di) __A,
10980							  (__v8di) __B,
10981							  (__v8di)
10982							  _mm512_undefined_epi32 (),
10983							  (__mmask8) -1);
10984	}
10985	
10986	extern __inline __m512i
10987	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10988	_mm512_maskz_max_epi64 (__mmask8 __M, __m512i __A, __m512i __B)
10989	{
10990	  return (__m512i) __builtin_ia32_pmaxsq512_mask ((__v8di) __A,
10991							  (__v8di) __B,
10992							  (__v8di)
10993							  _mm512_setzero_si512 (),
10994							  __M);
10995	}
10996	
10997	extern __inline __m512i
10998	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10999	_mm512_mask_max_epi64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
11000	{
11001	  return (__m512i) __builtin_ia32_pmaxsq512_mask ((__v8di) __A,
11002							  (__v8di) __B,
11003							  (__v8di) __W, __M);
11004	}
11005	
11006	extern __inline __m512i
11007	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11008	_mm512_min_epi64 (__m512i __A, __m512i __B)
11009	{
11010	  return (__m512i) __builtin_ia32_pminsq512_mask ((__v8di) __A,
11011							  (__v8di) __B,
11012							  (__v8di)
11013							  _mm512_undefined_epi32 (),
11014							  (__mmask8) -1);
11015	}
11016	
11017	extern __inline __m512i
11018	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11019	_mm512_mask_min_epi64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
11020	{
11021	  return (__m512i) __builtin_ia32_pminsq512_mask ((__v8di) __A,
11022							  (__v8di) __B,
11023							  (__v8di) __W, __M);
11024	}
11025	
11026	extern __inline __m512i
11027	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11028	_mm512_maskz_min_epi64 (__mmask8 __M, __m512i __A, __m512i __B)
11029	{
11030	  return (__m512i) __builtin_ia32_pminsq512_mask ((__v8di) __A,
11031							  (__v8di) __B,
11032							  (__v8di)
11033							  _mm512_setzero_si512 (),
11034							  __M);
11035	}
11036	
11037	extern __inline __m512i
11038	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11039	_mm512_max_epu64 (__m512i __A, __m512i __B)
11040	{
11041	  return (__m512i) __builtin_ia32_pmaxuq512_mask ((__v8di) __A,
11042							  (__v8di) __B,
11043							  (__v8di)
11044							  _mm512_undefined_epi32 (),
11045							  (__mmask8) -1);
11046	}
11047	
11048	extern __inline __m512i
11049	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11050	_mm512_maskz_max_epu64 (__mmask8 __M, __m512i __A, __m512i __B)
11051	{
11052	  return (__m512i) __builtin_ia32_pmaxuq512_mask ((__v8di) __A,
11053							  (__v8di) __B,
11054							  (__v8di)
11055							  _mm512_setzero_si512 (),
11056							  __M);
11057	}
11058	
11059	extern __inline __m512i
11060	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11061	_mm512_mask_max_epu64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
11062	{
11063	  return (__m512i) __builtin_ia32_pmaxuq512_mask ((__v8di) __A,
11064							  (__v8di) __B,
11065							  (__v8di) __W, __M);
11066	}
11067	
11068	extern __inline __m512i
11069	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11070	_mm512_min_epu64 (__m512i __A, __m512i __B)
11071	{
11072	  return (__m512i) __builtin_ia32_pminuq512_mask ((__v8di) __A,
11073							  (__v8di) __B,
11074							  (__v8di)
11075							  _mm512_undefined_epi32 (),
11076							  (__mmask8) -1);
11077	}
11078	
11079	extern __inline __m512i
11080	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11081	_mm512_mask_min_epu64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
11082	{
11083	  return (__m512i) __builtin_ia32_pminuq512_mask ((__v8di) __A,
11084							  (__v8di) __B,
11085							  (__v8di) __W, __M);
11086	}
11087	
11088	extern __inline __m512i
11089	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11090	_mm512_maskz_min_epu64 (__mmask8 __M, __m512i __A, __m512i __B)
11091	{
11092	  return (__m512i) __builtin_ia32_pminuq512_mask ((__v8di) __A,
11093							  (__v8di) __B,
11094							  (__v8di)
11095							  _mm512_setzero_si512 (),
11096							  __M);
11097	}
11098	
11099	extern __inline __m512i
11100	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11101	_mm512_max_epi32 (__m512i __A, __m512i __B)
11102	{
11103	  return (__m512i) __builtin_ia32_pmaxsd512_mask ((__v16si) __A,
11104							  (__v16si) __B,
11105							  (__v16si)
11106							  _mm512_undefined_epi32 (),
11107							  (__mmask16) -1);
11108	}
11109	
11110	extern __inline __m512i
11111	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11112	_mm512_maskz_max_epi32 (__mmask16 __M, __m512i __A, __m512i __B)
11113	{
11114	  return (__m512i) __builtin_ia32_pmaxsd512_mask ((__v16si) __A,
11115							  (__v16si) __B,
11116							  (__v16si)
11117							  _mm512_setzero_si512 (),
11118							  __M);
11119	}
11120	
11121	extern __inline __m512i
11122	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11123	_mm512_mask_max_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
11124	{
11125	  return (__m512i) __builtin_ia32_pmaxsd512_mask ((__v16si) __A,
11126							  (__v16si) __B,
11127							  (__v16si) __W, __M);
11128	}
11129	
11130	extern __inline __m512i
11131	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11132	_mm512_min_epi32 (__m512i __A, __m512i __B)
11133	{
11134	  return (__m512i) __builtin_ia32_pminsd512_mask ((__v16si) __A,
11135							  (__v16si) __B,
11136							  (__v16si)
11137							  _mm512_undefined_epi32 (),
11138							  (__mmask16) -1);
11139	}
11140	
11141	extern __inline __m512i
11142	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11143	_mm512_maskz_min_epi32 (__mmask16 __M, __m512i __A, __m512i __B)
11144	{
11145	  return (__m512i) __builtin_ia32_pminsd512_mask ((__v16si) __A,
11146							  (__v16si) __B,
11147							  (__v16si)
11148							  _mm512_setzero_si512 (),
11149							  __M);
11150	}
11151	
11152	extern __inline __m512i
11153	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11154	_mm512_mask_min_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
11155	{
11156	  return (__m512i) __builtin_ia32_pminsd512_mask ((__v16si) __A,
11157							  (__v16si) __B,
11158							  (__v16si) __W, __M);
11159	}
11160	
11161	extern __inline __m512i
11162	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11163	_mm512_max_epu32 (__m512i __A, __m512i __B)
11164	{
11165	  return (__m512i) __builtin_ia32_pmaxud512_mask ((__v16si) __A,
11166							  (__v16si) __B,
11167							  (__v16si)
11168							  _mm512_undefined_epi32 (),
11169							  (__mmask16) -1);
11170	}
11171	
11172	extern __inline __m512i
11173	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11174	_mm512_maskz_max_epu32 (__mmask16 __M, __m512i __A, __m512i __B)
11175	{
11176	  return (__m512i) __builtin_ia32_pmaxud512_mask ((__v16si) __A,
11177							  (__v16si) __B,
11178							  (__v16si)
11179							  _mm512_setzero_si512 (),
11180							  __M);
11181	}
11182	
11183	extern __inline __m512i
11184	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11185	_mm512_mask_max_epu32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
11186	{
11187	  return (__m512i) __builtin_ia32_pmaxud512_mask ((__v16si) __A,
11188							  (__v16si) __B,
11189							  (__v16si) __W, __M);
11190	}
11191	
11192	extern __inline __m512i
11193	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11194	_mm512_min_epu32 (__m512i __A, __m512i __B)
11195	{
11196	  return (__m512i) __builtin_ia32_pminud512_mask ((__v16si) __A,
11197							  (__v16si) __B,
11198							  (__v16si)
11199							  _mm512_undefined_epi32 (),
11200							  (__mmask16) -1);
11201	}
11202	
11203	extern __inline __m512i
11204	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11205	_mm512_maskz_min_epu32 (__mmask16 __M, __m512i __A, __m512i __B)
11206	{
11207	  return (__m512i) __builtin_ia32_pminud512_mask ((__v16si) __A,
11208							  (__v16si) __B,
11209							  (__v16si)
11210							  _mm512_setzero_si512 (),
11211							  __M);
11212	}
11213	
11214	extern __inline __m512i
11215	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11216	_mm512_mask_min_epu32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
11217	{
11218	  return (__m512i) __builtin_ia32_pminud512_mask ((__v16si) __A,
11219							  (__v16si) __B,
11220							  (__v16si) __W, __M);
11221	}
11222	
11223	extern __inline __m512
11224	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11225	_mm512_unpacklo_ps (__m512 __A, __m512 __B)
11226	{
11227	  return (__m512) __builtin_ia32_unpcklps512_mask ((__v16sf) __A,
11228							   (__v16sf) __B,
11229							   (__v16sf)
11230							   _mm512_undefined_ps (),
11231							   (__mmask16) -1);
11232	}
11233	
11234	extern __inline __m512
11235	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11236	_mm512_mask_unpacklo_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
11237	{
11238	  return (__m512) __builtin_ia32_unpcklps512_mask ((__v16sf) __A,
11239							   (__v16sf) __B,
11240							   (__v16sf) __W,
11241							   (__mmask16) __U);
11242	}
11243	
11244	extern __inline __m512
11245	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11246	_mm512_maskz_unpacklo_ps (__mmask16 __U, __m512 __A, __m512 __B)
11247	{
11248	  return (__m512) __builtin_ia32_unpcklps512_mask ((__v16sf) __A,
11249							   (__v16sf) __B,
11250							   (__v16sf)
11251							   _mm512_setzero_ps (),
11252							   (__mmask16) __U);
11253	}
11254	
11255	#ifdef __OPTIMIZE__
11256	extern __inline __m128d
11257	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11258	_mm_max_round_sd (__m128d __A, __m128d __B, const int __R)
11259	{
11260	  return (__m128d) __builtin_ia32_maxsd_round ((__v2df) __A,
11261						       (__v2df) __B,
11262						       __R);
11263	}
11264	
11265	extern __inline __m128d
11266	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11267	_mm_mask_max_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
11268				  __m128d __B, const int __R)
11269	{
11270	  return (__m128d) __builtin_ia32_maxsd_mask_round ((__v2df) __A,
11271							 (__v2df) __B,
11272							 (__v2df) __W,
11273							 (__mmask8) __U, __R);
11274	}
11275	
11276	extern __inline __m128d
11277	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11278	_mm_maskz_max_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
11279				   const int __R)
11280	{
11281	  return (__m128d) __builtin_ia32_maxsd_mask_round ((__v2df) __A,
11282							 (__v2df) __B,
11283							 (__v2df)
11284							 _mm_setzero_pd (),
11285							 (__mmask8) __U, __R);
11286	}
11287	
11288	extern __inline __m128
11289	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11290	_mm_max_round_ss (__m128 __A, __m128 __B, const int __R)
11291	{
11292	  return (__m128) __builtin_ia32_maxss_round ((__v4sf) __A,
11293						      (__v4sf) __B,
11294						      __R);
11295	}
11296	
11297	extern __inline __m128
11298	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11299	_mm_mask_max_round_ss (__m128 __W, __mmask8 __U, __m128 __A,
11300				  __m128 __B, const int __R)
11301	{
11302	  return (__m128) __builtin_ia32_maxss_mask_round ((__v4sf) __A,
11303							 (__v4sf) __B,
11304							 (__v4sf) __W,
11305							 (__mmask8) __U, __R);
11306	}
11307	
11308	extern __inline __m128
11309	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11310	_mm_maskz_max_round_ss (__mmask8 __U, __m128 __A, __m128 __B,
11311				   const int __R)
11312	{
11313	  return (__m128) __builtin_ia32_maxss_mask_round ((__v4sf) __A,
11314							 (__v4sf) __B,
11315							 (__v4sf)
11316							 _mm_setzero_ps (),
11317							 (__mmask8) __U, __R);
11318	}
11319	
11320	extern __inline __m128d
11321	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11322	_mm_min_round_sd (__m128d __A, __m128d __B, const int __R)
11323	{
11324	  return (__m128d) __builtin_ia32_minsd_round ((__v2df) __A,
11325						       (__v2df) __B,
11326						       __R);
11327	}
11328	
11329	extern __inline __m128d
11330	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11331	_mm_mask_min_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
11332				  __m128d __B, const int __R)
11333	{
11334	  return (__m128d) __builtin_ia32_minsd_mask_round ((__v2df) __A,
11335							 (__v2df) __B,
11336							 (__v2df) __W,
11337							 (__mmask8) __U, __R);
11338	}
11339	
11340	extern __inline __m128d
11341	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11342	_mm_maskz_min_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
11343				   const int __R)
11344	{
11345	  return (__m128d) __builtin_ia32_minsd_mask_round ((__v2df) __A,
11346							 (__v2df) __B,
11347							 (__v2df)
11348							 _mm_setzero_pd (),
11349							 (__mmask8) __U, __R);
11350	}
11351	
11352	extern __inline __m128
11353	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11354	_mm_min_round_ss (__m128 __A, __m128 __B, const int __R)
11355	{
11356	  return (__m128) __builtin_ia32_minss_round ((__v4sf) __A,
11357						      (__v4sf) __B,
11358						      __R);
11359	}
11360	
11361	extern __inline __m128
11362	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11363	_mm_mask_min_round_ss (__m128 __W, __mmask8 __U, __m128 __A,
11364				  __m128 __B, const int __R)
11365	{
11366	  return (__m128) __builtin_ia32_minss_mask_round ((__v4sf) __A,
11367							 (__v4sf) __B,
11368							 (__v4sf) __W,
11369							 (__mmask8) __U, __R);
11370	}
11371	
11372	extern __inline __m128
11373	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11374	_mm_maskz_min_round_ss (__mmask8 __U, __m128 __A, __m128 __B,
11375				   const int __R)
11376	{
11377	  return (__m128) __builtin_ia32_minss_mask_round ((__v4sf) __A,
11378							 (__v4sf) __B,
11379							 (__v4sf)
11380							 _mm_setzero_ps (),
11381							 (__mmask8) __U, __R);
11382	}
11383	
11384	#else
11385	#define _mm_max_round_sd(A, B, C)            \
11386	    (__m128d)__builtin_ia32_maxsd_round(A, B, C)
11387	
11388	#define _mm_mask_max_round_sd(W, U, A, B, C) \
11389	    (__m128d)__builtin_ia32_maxsd_mask_round(A, B, W, U, C)
11390	
11391	#define _mm_maskz_max_round_sd(U, A, B, C)   \
11392	    (__m128d)__builtin_ia32_maxsd_mask_round(A, B, (__v2df)_mm_setzero_pd(), U, C)
11393	
11394	#define _mm_max_round_ss(A, B, C)            \
11395	    (__m128)__builtin_ia32_maxss_round(A, B, C)
11396	
11397	#define _mm_mask_max_round_ss(W, U, A, B, C) \
11398	    (__m128)__builtin_ia32_maxss_mask_round(A, B, W, U, C)
11399	
11400	#define _mm_maskz_max_round_ss(U, A, B, C)   \
11401	    (__m128)__builtin_ia32_maxss_mask_round(A, B, (__v4sf)_mm_setzero_ps(), U, C)
11402	
11403	#define _mm_min_round_sd(A, B, C)            \
11404	    (__m128d)__builtin_ia32_minsd_round(A, B, C)
11405	
11406	#define _mm_mask_min_round_sd(W, U, A, B, C) \
11407	    (__m128d)__builtin_ia32_minsd_mask_round(A, B, W, U, C)
11408	
11409	#define _mm_maskz_min_round_sd(U, A, B, C)   \
11410	    (__m128d)__builtin_ia32_minsd_mask_round(A, B, (__v2df)_mm_setzero_pd(), U, C)
11411	
11412	#define _mm_min_round_ss(A, B, C)            \
11413	    (__m128)__builtin_ia32_minss_round(A, B, C)
11414	
11415	#define _mm_mask_min_round_ss(W, U, A, B, C) \
11416	    (__m128)__builtin_ia32_minss_mask_round(A, B, W, U, C)
11417	
11418	#define _mm_maskz_min_round_ss(U, A, B, C)   \
11419	    (__m128)__builtin_ia32_minss_mask_round(A, B, (__v4sf)_mm_setzero_ps(), U, C)
11420	
11421	#endif
11422	
11423	extern __inline __m512d
11424	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11425	_mm512_mask_blend_pd (__mmask8 __U, __m512d __A, __m512d __W)
11426	{
11427	  return (__m512d) __builtin_ia32_blendmpd_512_mask ((__v8df) __A,
11428							     (__v8df) __W,
11429							     (__mmask8) __U);
11430	}
11431	
11432	extern __inline __m512
11433	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11434	_mm512_mask_blend_ps (__mmask16 __U, __m512 __A, __m512 __W)
11435	{
11436	  return (__m512) __builtin_ia32_blendmps_512_mask ((__v16sf) __A,
11437							    (__v16sf) __W,
11438							    (__mmask16) __U);
11439	}
11440	
11441	extern __inline __m512i
11442	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11443	_mm512_mask_blend_epi64 (__mmask8 __U, __m512i __A, __m512i __W)
11444	{
11445	  return (__m512i) __builtin_ia32_blendmq_512_mask ((__v8di) __A,
11446							    (__v8di) __W,
11447							    (__mmask8) __U);
11448	}
11449	
11450	extern __inline __m512i
11451	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11452	_mm512_mask_blend_epi32 (__mmask16 __U, __m512i __A, __m512i __W)
11453	{
11454	  return (__m512i) __builtin_ia32_blendmd_512_mask ((__v16si) __A,
11455							    (__v16si) __W,
11456							    (__mmask16) __U);
11457	}
11458	
11459	#ifdef __OPTIMIZE__
11460	extern __inline __m128d
11461	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11462	_mm_fmadd_round_sd (__m128d __W, __m128d __A, __m128d __B, const int __R)
11463	{
11464	  return (__m128d) __builtin_ia32_vfmaddsd3_round ((__v2df) __W,
11465							   (__v2df) __A,
11466							   (__v2df) __B,
11467							   __R);
11468	}
11469	
11470	extern __inline __m128
11471	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11472	_mm_fmadd_round_ss (__m128 __W, __m128 __A, __m128 __B, const int __R)
11473	{
11474	  return (__m128) __builtin_ia32_vfmaddss3_round ((__v4sf) __W,
11475							  (__v4sf) __A,
11476							  (__v4sf) __B,
11477							  __R);
11478	}
11479	
11480	extern __inline __m128d
11481	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11482	_mm_fmsub_round_sd (__m128d __W, __m128d __A, __m128d __B, const int __R)
11483	{
11484	  return (__m128d) __builtin_ia32_vfmaddsd3_round ((__v2df) __W,
11485							   (__v2df) __A,
11486							   -(__v2df) __B,
11487							   __R);
11488	}
11489	
11490	extern __inline __m128
11491	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11492	_mm_fmsub_round_ss (__m128 __W, __m128 __A, __m128 __B, const int __R)
11493	{
11494	  return (__m128) __builtin_ia32_vfmaddss3_round ((__v4sf) __W,
11495							  (__v4sf) __A,
11496							  -(__v4sf) __B,
11497							  __R);
11498	}
11499	
11500	extern __inline __m128d
11501	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11502	_mm_fnmadd_round_sd (__m128d __W, __m128d __A, __m128d __B, const int __R)
11503	{
11504	  return (__m128d) __builtin_ia32_vfmaddsd3_round ((__v2df) __W,
11505							   -(__v2df) __A,
11506							   (__v2df) __B,
11507							   __R);
11508	}
11509	
11510	extern __inline __m128
11511	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11512	_mm_fnmadd_round_ss (__m128 __W, __m128 __A, __m128 __B, const int __R)
11513	{
11514	  return (__m128) __builtin_ia32_vfmaddss3_round ((__v4sf) __W,
11515							  -(__v4sf) __A,
11516							  (__v4sf) __B,
11517							  __R);
11518	}
11519	
11520	extern __inline __m128d
11521	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11522	_mm_fnmsub_round_sd (__m128d __W, __m128d __A, __m128d __B, const int __R)
11523	{
11524	  return (__m128d) __builtin_ia32_vfmaddsd3_round ((__v2df) __W,
11525							   -(__v2df) __A,
11526							   -(__v2df) __B,
11527							   __R);
11528	}
11529	
11530	extern __inline __m128
11531	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11532	_mm_fnmsub_round_ss (__m128 __W, __m128 __A, __m128 __B, const int __R)
11533	{
11534	  return (__m128) __builtin_ia32_vfmaddss3_round ((__v4sf) __W,
11535							  -(__v4sf) __A,
11536							  -(__v4sf) __B,
11537							  __R);
11538	}
11539	#else
11540	#define _mm_fmadd_round_sd(A, B, C, R)            \
11541	    (__m128d)__builtin_ia32_vfmaddsd3_round(A, B, C, R)
11542	
11543	#define _mm_fmadd_round_ss(A, B, C, R)            \
11544	    (__m128)__builtin_ia32_vfmaddss3_round(A, B, C, R)
11545	
11546	#define _mm_fmsub_round_sd(A, B, C, R)            \
11547	    (__m128d)__builtin_ia32_vfmaddsd3_round(A, B, -(C), R)
11548	
11549	#define _mm_fmsub_round_ss(A, B, C, R)            \
11550	    (__m128)__builtin_ia32_vfmaddss3_round(A, B, -(C), R)
11551	
11552	#define _mm_fnmadd_round_sd(A, B, C, R)            \
11553	    (__m128d)__builtin_ia32_vfmaddsd3_round(A, -(B), C, R)
11554	
11555	#define _mm_fnmadd_round_ss(A, B, C, R)            \
11556	   (__m128)__builtin_ia32_vfmaddss3_round(A, -(B), C, R)
11557	
11558	#define _mm_fnmsub_round_sd(A, B, C, R)            \
11559	    (__m128d)__builtin_ia32_vfmaddsd3_round(A, -(B), -(C), R)
11560	
11561	#define _mm_fnmsub_round_ss(A, B, C, R)            \
11562	    (__m128)__builtin_ia32_vfmaddss3_round(A, -(B), -(C), R)
11563	#endif
11564	
11565	extern __inline __m128d
11566	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11567	_mm_mask_fmadd_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
11568	{
11569	  return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
11570							  (__v2df) __A,
11571							  (__v2df) __B,
11572							  (__mmask8) __U,
11573							  _MM_FROUND_CUR_DIRECTION);
11574	}
11575	
11576	extern __inline __m128
11577	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11578	_mm_mask_fmadd_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
11579	{
11580	  return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
11581							 (__v4sf) __A,
11582							 (__v4sf) __B,
11583							 (__mmask8) __U,
11584							 _MM_FROUND_CUR_DIRECTION);
11585	}
11586	
11587	extern __inline __m128d
11588	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11589	_mm_mask3_fmadd_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U)
11590	{
11591	  return (__m128d) __builtin_ia32_vfmaddsd3_mask3 ((__v2df) __W,
11592							   (__v2df) __A,
11593							   (__v2df) __B,
11594							   (__mmask8) __U,
11595							   _MM_FROUND_CUR_DIRECTION);
11596	}
11597	
11598	extern __inline __m128
11599	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11600	_mm_mask3_fmadd_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U)
11601	{
11602	  return (__m128) __builtin_ia32_vfmaddss3_mask3 ((__v4sf) __W,
11603							  (__v4sf) __A,
11604							  (__v4sf) __B,
11605							  (__mmask8) __U,
11606							  _MM_FROUND_CUR_DIRECTION);
11607	}
11608	
11609	extern __inline __m128d
11610	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11611	_mm_maskz_fmadd_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B)
11612	{
11613	  return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
11614							   (__v2df) __A,
11615							   (__v2df) __B,
11616							   (__mmask8) __U,
11617							   _MM_FROUND_CUR_DIRECTION);
11618	}
11619	
11620	extern __inline __m128
11621	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11622	_mm_maskz_fmadd_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B)
11623	{
11624	  return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
11625							  (__v4sf) __A,
11626							  (__v4sf) __B,
11627							  (__mmask8) __U,
11628							  _MM_FROUND_CUR_DIRECTION);
11629	}
11630	
11631	extern __inline __m128d
11632	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11633	_mm_mask_fmsub_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
11634	{
11635	  return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
11636							  (__v2df) __A,
11637							  -(__v2df) __B,
11638							  (__mmask8) __U,
11639							  _MM_FROUND_CUR_DIRECTION);
11640	}
11641	
11642	extern __inline __m128
11643	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11644	_mm_mask_fmsub_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
11645	{
11646	  return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
11647							 (__v4sf) __A,
11648							 -(__v4sf) __B,
11649							 (__mmask8) __U,
11650							 _MM_FROUND_CUR_DIRECTION);
11651	}
11652	
11653	extern __inline __m128d
11654	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11655	_mm_mask3_fmsub_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U)
11656	{
11657	  return (__m128d) __builtin_ia32_vfmsubsd3_mask3 ((__v2df) __W,
11658							   (__v2df) __A,
11659							   (__v2df) __B,
11660							   (__mmask8) __U,
11661							   _MM_FROUND_CUR_DIRECTION);
11662	}
11663	
11664	extern __inline __m128
11665	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11666	_mm_mask3_fmsub_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U)
11667	{
11668	  return (__m128) __builtin_ia32_vfmsubss3_mask3 ((__v4sf) __W,
11669							  (__v4sf) __A,
11670							  (__v4sf) __B,
11671							  (__mmask8) __U,
11672							  _MM_FROUND_CUR_DIRECTION);
11673	}
11674	
11675	extern __inline __m128d
11676	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11677	_mm_maskz_fmsub_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B)
11678	{
11679	  return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
11680							   (__v2df) __A,
11681							   -(__v2df) __B,
11682							   (__mmask8) __U,
11683							   _MM_FROUND_CUR_DIRECTION);
11684	}
11685	
11686	extern __inline __m128
11687	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11688	_mm_maskz_fmsub_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B)
11689	{
11690	  return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
11691							  (__v4sf) __A,
11692							  -(__v4sf) __B,
11693							  (__mmask8) __U,
11694							  _MM_FROUND_CUR_DIRECTION);
11695	}
11696	
11697	extern __inline __m128d
11698	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11699	_mm_mask_fnmadd_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
11700	{
11701	  return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
11702							  -(__v2df) __A,
11703							  (__v2df) __B,
11704							  (__mmask8) __U,
11705							  _MM_FROUND_CUR_DIRECTION);
11706	}
11707	
11708	extern __inline __m128
11709	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11710	_mm_mask_fnmadd_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
11711	{
11712	  return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
11713							 -(__v4sf) __A,
11714							 (__v4sf) __B,
11715							 (__mmask8) __U,
11716							 _MM_FROUND_CUR_DIRECTION);
11717	}
11718	
11719	extern __inline __m128d
11720	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11721	_mm_mask3_fnmadd_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U)
11722	{
11723	  return (__m128d) __builtin_ia32_vfmaddsd3_mask3 ((__v2df) __W,
11724							   -(__v2df) __A,
11725							   (__v2df) __B,
11726							   (__mmask8) __U,
11727							   _MM_FROUND_CUR_DIRECTION);
11728	}
11729	
11730	extern __inline __m128
11731	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11732	_mm_mask3_fnmadd_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U)
11733	{
11734	  return (__m128) __builtin_ia32_vfmaddss3_mask3 ((__v4sf) __W,
11735							  -(__v4sf) __A,
11736							  (__v4sf) __B,
11737							  (__mmask8) __U,
11738							  _MM_FROUND_CUR_DIRECTION);
11739	}
11740	
11741	extern __inline __m128d
11742	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11743	_mm_maskz_fnmadd_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B)
11744	{
11745	  return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
11746							   -(__v2df) __A,
11747							   (__v2df) __B,
11748							   (__mmask8) __U,
11749							   _MM_FROUND_CUR_DIRECTION);
11750	}
11751	
11752	extern __inline __m128
11753	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
(1) Event routine_not_emitted: function "_mm_maskz_fnmadd_ss" not emitted, consider modeling it or review parse diagnostics to improve fidelity
(2) Event caretline: ^
11754	_mm_maskz_fnmadd_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B)
11755	{
11756	  return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
11757							  -(__v4sf) __A,
11758							  (__v4sf) __B,
11759							  (__mmask8) __U,
11760							  _MM_FROUND_CUR_DIRECTION);
11761	}
11762	
11763	extern __inline __m128d
11764	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11765	_mm_mask_fnmsub_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
11766	{
11767	  return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
11768							  -(__v2df) __A,
11769							  -(__v2df) __B,
11770							  (__mmask8) __U,
11771							  _MM_FROUND_CUR_DIRECTION);
11772	}
11773	
11774	extern __inline __m128
11775	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11776	_mm_mask_fnmsub_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
11777	{
11778	  return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
11779							 -(__v4sf) __A,
11780							 -(__v4sf) __B,
11781							 (__mmask8) __U,
11782							 _MM_FROUND_CUR_DIRECTION);
11783	}
11784	
11785	extern __inline __m128d
11786	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11787	_mm_mask3_fnmsub_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U)
11788	{
11789	  return (__m128d) __builtin_ia32_vfmsubsd3_mask3 ((__v2df) __W,
11790							   -(__v2df) __A,
11791							   (__v2df) __B,
11792							   (__mmask8) __U,
11793							   _MM_FROUND_CUR_DIRECTION);
11794	}
11795	
11796	extern __inline __m128
11797	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11798	_mm_mask3_fnmsub_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U)
11799	{
11800	  return (__m128) __builtin_ia32_vfmsubss3_mask3 ((__v4sf) __W,
11801							  -(__v4sf) __A,
11802							  (__v4sf) __B,
11803							  (__mmask8) __U,
11804							  _MM_FROUND_CUR_DIRECTION);
11805	}
11806	
11807	extern __inline __m128d
11808	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11809	_mm_maskz_fnmsub_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B)
11810	{
11811	  return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
11812							   -(__v2df) __A,
11813							   -(__v2df) __B,
11814							   (__mmask8) __U,
11815							   _MM_FROUND_CUR_DIRECTION);
11816	}
11817	
11818	extern __inline __m128
11819	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11820	_mm_maskz_fnmsub_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B)
11821	{
11822	  return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
11823							  -(__v4sf) __A,
11824							  -(__v4sf) __B,
11825							  (__mmask8) __U,
11826							  _MM_FROUND_CUR_DIRECTION);
11827	}
11828	
11829	#ifdef __OPTIMIZE__
11830	extern __inline __m128d
11831	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11832	_mm_mask_fmadd_round_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B,
11833				 const int __R)
11834	{
11835	  return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
11836							  (__v2df) __A,
11837							  (__v2df) __B,
11838							  (__mmask8) __U, __R);
11839	}
11840	
11841	extern __inline __m128
11842	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11843	_mm_mask_fmadd_round_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B,
11844				 const int __R)
11845	{
11846	  return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
11847							 (__v4sf) __A,
11848							 (__v4sf) __B,
11849							 (__mmask8) __U, __R);
11850	}
11851	
11852	extern __inline __m128d
11853	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11854	_mm_mask3_fmadd_round_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U,
11855				  const int __R)
11856	{
11857	  return (__m128d) __builtin_ia32_vfmaddsd3_mask3 ((__v2df) __W,
11858							   (__v2df) __A,
11859							   (__v2df) __B,
11860							   (__mmask8) __U, __R);
11861	}
11862	
11863	extern __inline __m128
11864	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11865	_mm_mask3_fmadd_round_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U,
11866				  const int __R)
11867	{
11868	  return (__m128) __builtin_ia32_vfmaddss3_mask3 ((__v4sf) __W,
11869							  (__v4sf) __A,
11870							  (__v4sf) __B,
11871							  (__mmask8) __U, __R);
11872	}
11873	
11874	extern __inline __m128d
11875	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11876	_mm_maskz_fmadd_round_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B,
11877				  const int __R)
11878	{
11879	  return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
11880							   (__v2df) __A,
11881							   (__v2df) __B,
11882							   (__mmask8) __U, __R);
11883	}
11884	
11885	extern __inline __m128
11886	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11887	_mm_maskz_fmadd_round_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B,
11888				  const int __R)
11889	{
11890	  return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
11891							  (__v4sf) __A,
11892							  (__v4sf) __B,
11893							  (__mmask8) __U, __R);
11894	}
11895	
11896	extern __inline __m128d
11897	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11898	_mm_mask_fmsub_round_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B,
11899				 const int __R)
11900	{
11901	  return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
11902							  (__v2df) __A,
11903							  -(__v2df) __B,
11904							  (__mmask8) __U, __R);
11905	}
11906	
11907	extern __inline __m128
11908	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11909	_mm_mask_fmsub_round_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B,
11910				 const int __R)
11911	{
11912	  return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
11913							 (__v4sf) __A,
11914							 -(__v4sf) __B,
11915							 (__mmask8) __U, __R);
11916	}
11917	
11918	extern __inline __m128d
11919	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11920	_mm_mask3_fmsub_round_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U,
11921				  const int __R)
11922	{
11923	  return (__m128d) __builtin_ia32_vfmsubsd3_mask3 ((__v2df) __W,
11924							   (__v2df) __A,
11925							   (__v2df) __B,
11926							   (__mmask8) __U, __R);
11927	}
11928	
11929	extern __inline __m128
11930	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11931	_mm_mask3_fmsub_round_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U,
11932				  const int __R)
11933	{
11934	  return (__m128) __builtin_ia32_vfmsubss3_mask3 ((__v4sf) __W,
11935							  (__v4sf) __A,
11936							  (__v4sf) __B,
11937							  (__mmask8) __U, __R);
11938	}
11939	
11940	extern __inline __m128d
11941	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11942	_mm_maskz_fmsub_round_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B,
11943				  const int __R)
11944	{
11945	  return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
11946							   (__v2df) __A,
11947							   -(__v2df) __B,
11948							   (__mmask8) __U, __R);
11949	}
11950	
11951	extern __inline __m128
11952	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11953	_mm_maskz_fmsub_round_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B,
11954				  const int __R)
11955	{
11956	  return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
11957							  (__v4sf) __A,
11958							  -(__v4sf) __B,
11959							  (__mmask8) __U, __R);
11960	}
11961	
11962	extern __inline __m128d
11963	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11964	_mm_mask_fnmadd_round_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B,
11965				 const int __R)
11966	{
11967	  return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
11968							  -(__v2df) __A,
11969							  (__v2df) __B,
11970							  (__mmask8) __U, __R);
11971	}
11972	
11973	extern __inline __m128
11974	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11975	_mm_mask_fnmadd_round_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B,
11976				 const int __R)
11977	{
11978	  return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
11979							 -(__v4sf) __A,
11980							 (__v4sf) __B,
11981							 (__mmask8) __U, __R);
11982	}
11983	
11984	extern __inline __m128d
11985	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11986	_mm_mask3_fnmadd_round_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U,
11987				  const int __R)
11988	{
11989	  return (__m128d) __builtin_ia32_vfmaddsd3_mask3 ((__v2df) __W,
11990							   -(__v2df) __A,
11991							   (__v2df) __B,
11992							   (__mmask8) __U, __R);
11993	}
11994	
11995	extern __inline __m128
11996	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11997	_mm_mask3_fnmadd_round_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U,
11998				  const int __R)
11999	{
12000	  return (__m128) __builtin_ia32_vfmaddss3_mask3 ((__v4sf) __W,
12001							  -(__v4sf) __A,
12002							  (__v4sf) __B,
12003							  (__mmask8) __U, __R);
12004	}
12005	
12006	extern __inline __m128d
12007	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12008	_mm_maskz_fnmadd_round_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B,
12009				  const int __R)
12010	{
12011	  return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
12012							   -(__v2df) __A,
12013							   (__v2df) __B,
12014							   (__mmask8) __U, __R);
12015	}
12016	
12017	extern __inline __m128
12018	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12019	_mm_maskz_fnmadd_round_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B,
12020				  const int __R)
12021	{
12022	  return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
12023							  -(__v4sf) __A,
12024							  (__v4sf) __B,
12025							  (__mmask8) __U, __R);
12026	}
12027	
12028	extern __inline __m128d
12029	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12030	_mm_mask_fnmsub_round_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B,
12031				 const int __R)
12032	{
12033	  return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
12034							  -(__v2df) __A,
12035							  -(__v2df) __B,
12036							  (__mmask8) __U, __R);
12037	}
12038	
12039	extern __inline __m128
12040	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12041	_mm_mask_fnmsub_round_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B,
12042				 const int __R)
12043	{
12044	  return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
12045							 -(__v4sf) __A,
12046							 -(__v4sf) __B,
12047							 (__mmask8) __U, __R);
12048	}
12049	
12050	extern __inline __m128d
12051	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12052	_mm_mask3_fnmsub_round_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U,
12053				  const int __R)
12054	{
12055	  return (__m128d) __builtin_ia32_vfmsubsd3_mask3 ((__v2df) __W,
12056							   -(__v2df) __A,
12057							   (__v2df) __B,
12058							   (__mmask8) __U, __R);
12059	}
12060	
12061	extern __inline __m128
12062	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12063	_mm_mask3_fnmsub_round_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U,
12064				  const int __R)
12065	{
12066	  return (__m128) __builtin_ia32_vfmsubss3_mask3 ((__v4sf) __W,
12067							  -(__v4sf) __A,
12068							  (__v4sf) __B,
12069							  (__mmask8) __U, __R);
12070	}
12071	
12072	extern __inline __m128d
12073	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12074	_mm_maskz_fnmsub_round_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B,
12075				  const int __R)
12076	{
12077	  return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
12078							   -(__v2df) __A,
12079							   -(__v2df) __B,
12080							   (__mmask8) __U, __R);
12081	}
12082	
12083	extern __inline __m128
12084	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12085	_mm_maskz_fnmsub_round_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B,
12086				  const int __R)
12087	{
12088	  return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
12089							  -(__v4sf) __A,
12090							  -(__v4sf) __B,
12091							  (__mmask8) __U, __R);
12092	}
12093	#else
12094	#define _mm_mask_fmadd_round_sd(A, U, B, C, R)            \
12095	    (__m128d) __builtin_ia32_vfmaddsd3_mask (A, B, C, U, R)
12096	
12097	#define _mm_mask_fmadd_round_ss(A, U, B, C, R)            \
12098	    (__m128) __builtin_ia32_vfmaddss3_mask (A, B, C, U, R)
12099	
12100	#define _mm_mask3_fmadd_round_sd(A, B, C, U, R)            \
12101	    (__m128d) __builtin_ia32_vfmaddsd3_mask3 (A, B, C, U, R)
12102	
12103	#define _mm_mask3_fmadd_round_ss(A, B, C, U, R)            \
12104	    (__m128) __builtin_ia32_vfmaddss3_mask3 (A, B, C, U, R)
12105	
12106	#define _mm_maskz_fmadd_round_sd(U, A, B, C, R)            \
12107	    (__m128d) __builtin_ia32_vfmaddsd3_maskz (A, B, C, U, R)
12108	
12109	#define _mm_maskz_fmadd_round_ss(U, A, B, C, R)            \
12110	    (__m128) __builtin_ia32_vfmaddss3_maskz (A, B, C, U, R)
12111	
12112	#define _mm_mask_fmsub_round_sd(A, U, B, C, R)            \
12113	    (__m128d) __builtin_ia32_vfmaddsd3_mask (A, B, -(C), U, R)
12114	
12115	#define _mm_mask_fmsub_round_ss(A, U, B, C, R)            \
12116	    (__m128) __builtin_ia32_vfmaddss3_mask (A, B, -(C), U, R)
12117	
12118	#define _mm_mask3_fmsub_round_sd(A, B, C, U, R)            \
12119	    (__m128d) __builtin_ia32_vfmsubsd3_mask3 (A, B, C, U, R)
12120	
12121	#define _mm_mask3_fmsub_round_ss(A, B, C, U, R)            \
12122	    (__m128) __builtin_ia32_vfmsubss3_mask3 (A, B, C, U, R)
12123	
12124	#define _mm_maskz_fmsub_round_sd(U, A, B, C, R)            \
12125	    (__m128d) __builtin_ia32_vfmaddsd3_maskz (A, B, -(C), U, R)
12126	
12127	#define _mm_maskz_fmsub_round_ss(U, A, B, C, R)            \
12128	    (__m128) __builtin_ia32_vfmaddss3_maskz (A, B, -(C), U, R)
12129	
12130	#define _mm_mask_fnmadd_round_sd(A, U, B, C, R)            \
12131	    (__m128d) __builtin_ia32_vfmaddsd3_mask (A, -(B), C, U, R)
12132	
12133	#define _mm_mask_fnmadd_round_ss(A, U, B, C, R)            \
12134	    (__m128) __builtin_ia32_vfmaddss3_mask (A, -(B), C, U, R)
12135	
12136	#define _mm_mask3_fnmadd_round_sd(A, B, C, U, R)            \
12137	    (__m128d) __builtin_ia32_vfmaddsd3_mask3 (A, -(B), C, U, R)
12138	
12139	#define _mm_mask3_fnmadd_round_ss(A, B, C, U, R)            \
12140	    (__m128) __builtin_ia32_vfmaddss3_mask3 (A, -(B), C, U, R)
12141	
12142	#define _mm_maskz_fnmadd_round_sd(U, A, B, C, R)            \
12143	    (__m128d) __builtin_ia32_vfmaddsd3_maskz (A, -(B), C, U, R)
12144	
12145	#define _mm_maskz_fnmadd_round_ss(U, A, B, C, R)            \
12146	    (__m128) __builtin_ia32_vfmaddss3_maskz (A, -(B), C, U, R)
12147	
12148	#define _mm_mask_fnmsub_round_sd(A, U, B, C, R)            \
12149	    (__m128d) __builtin_ia32_vfmaddsd3_mask (A, -(B), -(C), U, R)
12150	
12151	#define _mm_mask_fnmsub_round_ss(A, U, B, C, R)            \
12152	    (__m128) __builtin_ia32_vfmaddss3_mask (A, -(B), -(C), U, R)
12153	
12154	#define _mm_mask3_fnmsub_round_sd(A, B, C, U, R)            \
12155	    (__m128d) __builtin_ia32_vfmsubsd3_mask3 (A, -(B), C, U, R)
12156	
12157	#define _mm_mask3_fnmsub_round_ss(A, B, C, U, R)            \
12158	    (__m128) __builtin_ia32_vfmsubss3_mask3 (A, -(B), C, U, R)
12159	
12160	#define _mm_maskz_fnmsub_round_sd(U, A, B, C, R)            \
12161	    (__m128d) __builtin_ia32_vfmaddsd3_maskz (A, -(B), -(C), U, R)
12162	
12163	#define _mm_maskz_fnmsub_round_ss(U, A, B, C, R)            \
12164	    (__m128) __builtin_ia32_vfmaddss3_maskz (A, -(B), -(C), U, R)
12165	#endif
12166	
12167	#ifdef __OPTIMIZE__
12168	extern __inline int
12169	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12170	_mm_comi_round_ss (__m128 __A, __m128 __B, const int __P, const int __R)
12171	{
12172	  return __builtin_ia32_vcomiss ((__v4sf) __A, (__v4sf) __B, __P, __R);
12173	}
12174	
12175	extern __inline int
12176	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12177	_mm_comi_round_sd (__m128d __A, __m128d __B, const int __P, const int __R)
12178	{
12179	  return __builtin_ia32_vcomisd ((__v2df) __A, (__v2df) __B, __P, __R);
12180	}
12181	#else
12182	#define _mm_comi_round_ss(A, B, C, D)\
12183	__builtin_ia32_vcomiss(A, B, C, D)
12184	#define _mm_comi_round_sd(A, B, C, D)\
12185	__builtin_ia32_vcomisd(A, B, C, D)
12186	#endif
12187	
12188	extern __inline __m512d
12189	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12190	_mm512_sqrt_pd (__m512d __A)
12191	{
12192	  return (__m512d) __builtin_ia32_sqrtpd512_mask ((__v8df) __A,
12193							  (__v8df)
12194							  _mm512_undefined_pd (),
12195							  (__mmask8) -1,
12196							  _MM_FROUND_CUR_DIRECTION);
12197	}
12198	
12199	extern __inline __m512d
12200	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12201	_mm512_mask_sqrt_pd (__m512d __W, __mmask8 __U, __m512d __A)
12202	{
12203	  return (__m512d) __builtin_ia32_sqrtpd512_mask ((__v8df) __A,
12204							  (__v8df) __W,
12205							  (__mmask8) __U,
12206							  _MM_FROUND_CUR_DIRECTION);
12207	}
12208	
12209	extern __inline __m512d
12210	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12211	_mm512_maskz_sqrt_pd (__mmask8 __U, __m512d __A)
12212	{
12213	  return (__m512d) __builtin_ia32_sqrtpd512_mask ((__v8df) __A,
12214							  (__v8df)
12215							  _mm512_setzero_pd (),
12216							  (__mmask8) __U,
12217							  _MM_FROUND_CUR_DIRECTION);
12218	}
12219	
12220	extern __inline __m512
12221	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12222	_mm512_sqrt_ps (__m512 __A)
12223	{
12224	  return (__m512) __builtin_ia32_sqrtps512_mask ((__v16sf) __A,
12225							 (__v16sf)
12226							 _mm512_undefined_ps (),
12227							 (__mmask16) -1,
12228							 _MM_FROUND_CUR_DIRECTION);
12229	}
12230	
12231	extern __inline __m512
12232	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12233	_mm512_mask_sqrt_ps (__m512 __W, __mmask16 __U, __m512 __A)
12234	{
12235	  return (__m512) __builtin_ia32_sqrtps512_mask ((__v16sf) __A,
12236							 (__v16sf) __W,
12237							 (__mmask16) __U,
12238							 _MM_FROUND_CUR_DIRECTION);
12239	}
12240	
12241	extern __inline __m512
12242	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12243	_mm512_maskz_sqrt_ps (__mmask16 __U, __m512 __A)
12244	{
12245	  return (__m512) __builtin_ia32_sqrtps512_mask ((__v16sf) __A,
12246							 (__v16sf)
12247							 _mm512_setzero_ps (),
12248							 (__mmask16) __U,
12249							 _MM_FROUND_CUR_DIRECTION);
12250	}
12251	
12252	extern __inline __m512d
12253	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12254	_mm512_add_pd (__m512d __A, __m512d __B)
12255	{
12256	  return (__m512d) ((__v8df)__A + (__v8df)__B);
12257	}
12258	
12259	extern __inline __m512d
12260	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12261	_mm512_mask_add_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
12262	{
12263	  return (__m512d) __builtin_ia32_addpd512_mask ((__v8df) __A,
12264							 (__v8df) __B,
12265							 (__v8df) __W,
12266							 (__mmask8) __U,
12267							 _MM_FROUND_CUR_DIRECTION);
12268	}
12269	
12270	extern __inline __m512d
12271	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12272	_mm512_maskz_add_pd (__mmask8 __U, __m512d __A, __m512d __B)
12273	{
12274	  return (__m512d) __builtin_ia32_addpd512_mask ((__v8df) __A,
12275							 (__v8df) __B,
12276							 (__v8df)
12277							 _mm512_setzero_pd (),
12278							 (__mmask8) __U,
12279							 _MM_FROUND_CUR_DIRECTION);
12280	}
12281	
12282	extern __inline __m512
12283	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12284	_mm512_add_ps (__m512 __A, __m512 __B)
12285	{
12286	  return (__m512) ((__v16sf)__A + (__v16sf)__B);
12287	}
12288	
12289	extern __inline __m512
12290	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12291	_mm512_mask_add_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
12292	{
12293	  return (__m512) __builtin_ia32_addps512_mask ((__v16sf) __A,
12294							(__v16sf) __B,
12295							(__v16sf) __W,
12296							(__mmask16) __U,
12297							_MM_FROUND_CUR_DIRECTION);
12298	}
12299	
12300	extern __inline __m512
12301	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12302	_mm512_maskz_add_ps (__mmask16 __U, __m512 __A, __m512 __B)
12303	{
12304	  return (__m512) __builtin_ia32_addps512_mask ((__v16sf) __A,
12305							(__v16sf) __B,
12306							(__v16sf)
12307							_mm512_setzero_ps (),
12308							(__mmask16) __U,
12309							_MM_FROUND_CUR_DIRECTION);
12310	}
12311	
12312	extern __inline __m128d
12313	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12314	_mm_mask_add_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
12315	{
12316	  return (__m128d) __builtin_ia32_addsd_mask_round ((__v2df) __A,
12317							(__v2df) __B,
12318							(__v2df) __W,
12319							(__mmask8) __U,
12320							_MM_FROUND_CUR_DIRECTION);
12321	}
12322	
12323	extern __inline __m128d
12324	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12325	_mm_maskz_add_sd (__mmask8 __U, __m128d __A, __m128d __B)
12326	{
12327	  return (__m128d) __builtin_ia32_addsd_mask_round ((__v2df) __A,
12328							(__v2df) __B,
12329							(__v2df)
12330							_mm_setzero_pd (),
12331							(__mmask8) __U,
12332							_MM_FROUND_CUR_DIRECTION);
12333	}
12334	
12335	extern __inline __m128
12336	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12337	_mm_mask_add_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
12338	{
12339	  return (__m128) __builtin_ia32_addss_mask_round ((__v4sf) __A,
12340							(__v4sf) __B,
12341							(__v4sf) __W,
12342							(__mmask8) __U,
12343							_MM_FROUND_CUR_DIRECTION);
12344	}
12345	
12346	extern __inline __m128
12347	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12348	_mm_maskz_add_ss (__mmask8 __U, __m128 __A, __m128 __B)
12349	{
12350	  return (__m128) __builtin_ia32_addss_mask_round ((__v4sf) __A,
12351							(__v4sf) __B,
12352							(__v4sf)
12353							_mm_setzero_ps (),
12354							(__mmask8) __U,
12355							_MM_FROUND_CUR_DIRECTION);
12356	}
12357	
12358	extern __inline __m512d
12359	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12360	_mm512_sub_pd (__m512d __A, __m512d __B)
12361	{
12362	  return (__m512d) ((__v8df)__A - (__v8df)__B);
12363	}
12364	
12365	extern __inline __m512d
12366	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12367	_mm512_mask_sub_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
12368	{
12369	  return (__m512d) __builtin_ia32_subpd512_mask ((__v8df) __A,
12370							 (__v8df) __B,
12371							 (__v8df) __W,
12372							 (__mmask8) __U,
12373							 _MM_FROUND_CUR_DIRECTION);
12374	}
12375	
12376	extern __inline __m512d
12377	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12378	_mm512_maskz_sub_pd (__mmask8 __U, __m512d __A, __m512d __B)
12379	{
12380	  return (__m512d) __builtin_ia32_subpd512_mask ((__v8df) __A,
12381							 (__v8df) __B,
12382							 (__v8df)
12383							 _mm512_setzero_pd (),
12384							 (__mmask8) __U,
12385							 _MM_FROUND_CUR_DIRECTION);
12386	}
12387	
12388	extern __inline __m512
12389	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12390	_mm512_sub_ps (__m512 __A, __m512 __B)
12391	{
12392	  return (__m512) ((__v16sf)__A - (__v16sf)__B);
12393	}
12394	
12395	extern __inline __m512
12396	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12397	_mm512_mask_sub_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
12398	{
12399	  return (__m512) __builtin_ia32_subps512_mask ((__v16sf) __A,
12400							(__v16sf) __B,
12401							(__v16sf) __W,
12402							(__mmask16) __U,
12403							_MM_FROUND_CUR_DIRECTION);
12404	}
12405	
12406	extern __inline __m512
12407	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12408	_mm512_maskz_sub_ps (__mmask16 __U, __m512 __A, __m512 __B)
12409	{
12410	  return (__m512) __builtin_ia32_subps512_mask ((__v16sf) __A,
12411							(__v16sf) __B,
12412							(__v16sf)
12413							_mm512_setzero_ps (),
12414							(__mmask16) __U,
12415							_MM_FROUND_CUR_DIRECTION);
12416	}
12417	
12418	extern __inline __m128d
12419	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12420	_mm_mask_sub_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
12421	{
12422	  return (__m128d) __builtin_ia32_subsd_mask_round ((__v2df) __A,
12423							(__v2df) __B,
12424							(__v2df) __W,
12425							(__mmask8) __U,
12426							_MM_FROUND_CUR_DIRECTION);
12427	}
12428	
12429	extern __inline __m128d
12430	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12431	_mm_maskz_sub_sd (__mmask8 __U, __m128d __A, __m128d __B)
12432	{
12433	  return (__m128d) __builtin_ia32_subsd_mask_round ((__v2df) __A,
12434							(__v2df) __B,
12435							(__v2df)
12436							_mm_setzero_pd (),
12437							(__mmask8) __U,
12438							_MM_FROUND_CUR_DIRECTION);
12439	}
12440	
12441	extern __inline __m128
12442	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12443	_mm_mask_sub_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
12444	{
12445	  return (__m128) __builtin_ia32_subss_mask_round ((__v4sf) __A,
12446							(__v4sf) __B,
12447							(__v4sf) __W,
12448							(__mmask8) __U,
12449							_MM_FROUND_CUR_DIRECTION);
12450	}
12451	
12452	extern __inline __m128
12453	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12454	_mm_maskz_sub_ss (__mmask8 __U, __m128 __A, __m128 __B)
12455	{
12456	  return (__m128) __builtin_ia32_subss_mask_round ((__v4sf) __A,
12457							(__v4sf) __B,
12458							(__v4sf)
12459							_mm_setzero_ps (),
12460							(__mmask8) __U,
12461							_MM_FROUND_CUR_DIRECTION);
12462	}
12463	
12464	extern __inline __m512d
12465	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12466	_mm512_mul_pd (__m512d __A, __m512d __B)
12467	{
12468	  return (__m512d) ((__v8df)__A * (__v8df)__B);
12469	}
12470	
12471	extern __inline __m512d
12472	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12473	_mm512_mask_mul_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
12474	{
12475	  return (__m512d) __builtin_ia32_mulpd512_mask ((__v8df) __A,
12476							 (__v8df) __B,
12477							 (__v8df) __W,
12478							 (__mmask8) __U,
12479							 _MM_FROUND_CUR_DIRECTION);
12480	}
12481	
12482	extern __inline __m512d
12483	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12484	_mm512_maskz_mul_pd (__mmask8 __U, __m512d __A, __m512d __B)
12485	{
12486	  return (__m512d) __builtin_ia32_mulpd512_mask ((__v8df) __A,
12487							 (__v8df) __B,
12488							 (__v8df)
12489							 _mm512_setzero_pd (),
12490							 (__mmask8) __U,
12491							 _MM_FROUND_CUR_DIRECTION);
12492	}
12493	
12494	extern __inline __m512
12495	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12496	_mm512_mul_ps (__m512 __A, __m512 __B)
12497	{
12498	  return (__m512) ((__v16sf)__A * (__v16sf)__B);
12499	}
12500	
12501	extern __inline __m512
12502	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12503	_mm512_mask_mul_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
12504	{
12505	  return (__m512) __builtin_ia32_mulps512_mask ((__v16sf) __A,
12506							(__v16sf) __B,
12507							(__v16sf) __W,
12508							(__mmask16) __U,
12509							_MM_FROUND_CUR_DIRECTION);
12510	}
12511	
12512	extern __inline __m512
12513	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12514	_mm512_maskz_mul_ps (__mmask16 __U, __m512 __A, __m512 __B)
12515	{
12516	  return (__m512) __builtin_ia32_mulps512_mask ((__v16sf) __A,
12517							(__v16sf) __B,
12518							(__v16sf)
12519							_mm512_setzero_ps (),
12520							(__mmask16) __U,
12521							_MM_FROUND_CUR_DIRECTION);
12522	}
12523	
12524	extern __inline __m128d
12525	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12526	_mm_mask_mul_sd (__m128d __W, __mmask8 __U, __m128d __A,
12527				  __m128d __B)
12528	{
12529	  return (__m128d) __builtin_ia32_mulsd_mask_round ((__v2df) __A,
12530							 (__v2df) __B,
12531							 (__v2df) __W,
12532							 (__mmask8) __U,
12533							  _MM_FROUND_CUR_DIRECTION);
12534	}
12535	
12536	extern __inline __m128d
12537	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12538	_mm_maskz_mul_sd (__mmask8 __U, __m128d __A, __m128d __B)
12539	{
12540	  return (__m128d) __builtin_ia32_mulsd_mask_round ((__v2df) __A,
12541							 (__v2df) __B,
12542							 (__v2df)
12543							 _mm_setzero_pd (),
12544							 (__mmask8) __U,
12545							  _MM_FROUND_CUR_DIRECTION);
12546	}
12547	
12548	extern __inline __m128
12549	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12550	_mm_mask_mul_ss (__m128 __W, __mmask8 __U, __m128 __A,
12551				  __m128 __B)
12552	{
12553	  return (__m128) __builtin_ia32_mulss_mask_round ((__v4sf) __A,
12554							 (__v4sf) __B,
12555							 (__v4sf) __W,
12556							 (__mmask8) __U,
12557							  _MM_FROUND_CUR_DIRECTION);
12558	}
12559	
12560	extern __inline __m128
12561	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12562	_mm_maskz_mul_ss (__mmask8 __U, __m128 __A, __m128 __B)
12563	{
12564	  return (__m128) __builtin_ia32_mulss_mask_round ((__v4sf) __A,
12565							 (__v4sf) __B,
12566							 (__v4sf)
12567							 _mm_setzero_ps (),
12568							 (__mmask8) __U,
12569							  _MM_FROUND_CUR_DIRECTION);
12570	}
12571	
12572	extern __inline __m512d
12573	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12574	_mm512_div_pd (__m512d __M, __m512d __V)
12575	{
12576	  return (__m512d) ((__v8df)__M / (__v8df)__V);
12577	}
12578	
12579	extern __inline __m512d
12580	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12581	_mm512_mask_div_pd (__m512d __W, __mmask8 __U, __m512d __M, __m512d __V)
12582	{
12583	  return (__m512d) __builtin_ia32_divpd512_mask ((__v8df) __M,
12584							 (__v8df) __V,
12585							 (__v8df) __W,
12586							 (__mmask8) __U,
12587							 _MM_FROUND_CUR_DIRECTION);
12588	}
12589	
12590	extern __inline __m512d
12591	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12592	_mm512_maskz_div_pd (__mmask8 __U, __m512d __M, __m512d __V)
12593	{
12594	  return (__m512d) __builtin_ia32_divpd512_mask ((__v8df) __M,
12595							 (__v8df) __V,
12596							 (__v8df)
12597							 _mm512_setzero_pd (),
12598							 (__mmask8) __U,
12599							 _MM_FROUND_CUR_DIRECTION);
12600	}
12601	
12602	extern __inline __m512
12603	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12604	_mm512_div_ps (__m512 __A, __m512 __B)
12605	{
12606	  return (__m512) ((__v16sf)__A / (__v16sf)__B);
12607	}
12608	
12609	extern __inline __m512
12610	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12611	_mm512_mask_div_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
12612	{
12613	  return (__m512) __builtin_ia32_divps512_mask ((__v16sf) __A,
12614							(__v16sf) __B,
12615							(__v16sf) __W,
12616							(__mmask16) __U,
12617							_MM_FROUND_CUR_DIRECTION);
12618	}
12619	
12620	extern __inline __m512
12621	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12622	_mm512_maskz_div_ps (__mmask16 __U, __m512 __A, __m512 __B)
12623	{
12624	  return (__m512) __builtin_ia32_divps512_mask ((__v16sf) __A,
12625							(__v16sf) __B,
12626							(__v16sf)
12627							_mm512_setzero_ps (),
12628							(__mmask16) __U,
12629							_MM_FROUND_CUR_DIRECTION);
12630	}
12631	
12632	extern __inline __m128d
12633	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12634	_mm_mask_div_sd (__m128d __W, __mmask8 __U, __m128d __A,
12635				  __m128d __B)
12636	{
12637	  return (__m128d) __builtin_ia32_divsd_mask_round ((__v2df) __A,
12638							 (__v2df) __B,
12639							 (__v2df) __W,
12640							 (__mmask8) __U,
12641							  _MM_FROUND_CUR_DIRECTION);
12642	}
12643	
12644	extern __inline __m128d
12645	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12646	_mm_maskz_div_sd (__mmask8 __U, __m128d __A, __m128d __B)
12647	{
12648	  return (__m128d) __builtin_ia32_divsd_mask_round ((__v2df) __A,
12649							 (__v2df) __B,
12650							 (__v2df)
12651							 _mm_setzero_pd (),
12652							 (__mmask8) __U,
12653							  _MM_FROUND_CUR_DIRECTION);
12654	}
12655	
12656	extern __inline __m128
12657	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12658	_mm_mask_div_ss (__m128 __W, __mmask8 __U, __m128 __A,
12659				  __m128 __B)
12660	{
12661	  return (__m128) __builtin_ia32_divss_mask_round ((__v4sf) __A,
12662							 (__v4sf) __B,
12663							 (__v4sf) __W,
12664							 (__mmask8) __U,
12665							  _MM_FROUND_CUR_DIRECTION);
12666	}
12667	
12668	extern __inline __m128
12669	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12670	_mm_maskz_div_ss (__mmask8 __U, __m128 __A, __m128 __B)
12671	{
12672	  return (__m128) __builtin_ia32_divss_mask_round ((__v4sf) __A,
12673							 (__v4sf) __B,
12674							 (__v4sf)
12675							 _mm_setzero_ps (),
12676							 (__mmask8) __U,
12677							  _MM_FROUND_CUR_DIRECTION);
12678	}
12679	
12680	extern __inline __m512d
12681	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12682	_mm512_max_pd (__m512d __A, __m512d __B)
12683	{
12684	  return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A,
12685							 (__v8df) __B,
12686							 (__v8df)
12687							 _mm512_undefined_pd (),
12688							 (__mmask8) -1,
12689							 _MM_FROUND_CUR_DIRECTION);
12690	}
12691	
12692	extern __inline __m512d
12693	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12694	_mm512_mask_max_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
12695	{
12696	  return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A,
12697							 (__v8df) __B,
12698							 (__v8df) __W,
12699							 (__mmask8) __U,
12700							 _MM_FROUND_CUR_DIRECTION);
12701	}
12702	
12703	extern __inline __m512d
12704	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12705	_mm512_maskz_max_pd (__mmask8 __U, __m512d __A, __m512d __B)
12706	{
12707	  return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A,
12708							 (__v8df) __B,
12709							 (__v8df)
12710							 _mm512_setzero_pd (),
12711							 (__mmask8) __U,
12712							 _MM_FROUND_CUR_DIRECTION);
12713	}
12714	
12715	extern __inline __m512
12716	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12717	_mm512_max_ps (__m512 __A, __m512 __B)
12718	{
12719	  return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A,
12720							(__v16sf) __B,
12721							(__v16sf)
12722							_mm512_undefined_ps (),
12723							(__mmask16) -1,
12724							_MM_FROUND_CUR_DIRECTION);
12725	}
12726	
12727	extern __inline __m512
12728	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12729	_mm512_mask_max_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
12730	{
12731	  return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A,
12732							(__v16sf) __B,
12733							(__v16sf) __W,
12734							(__mmask16) __U,
12735							_MM_FROUND_CUR_DIRECTION);
12736	}
12737	
12738	extern __inline __m512
12739	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12740	_mm512_maskz_max_ps (__mmask16 __U, __m512 __A, __m512 __B)
12741	{
12742	  return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A,
12743							(__v16sf) __B,
12744							(__v16sf)
12745							_mm512_setzero_ps (),
12746							(__mmask16) __U,
12747							_MM_FROUND_CUR_DIRECTION);
12748	}
12749	
12750	extern __inline __m128d
12751	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12752	_mm_mask_max_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
12753	{
12754	  return (__m128d) __builtin_ia32_maxsd_mask_round ((__v2df) __A,
12755							 (__v2df) __B,
12756							 (__v2df) __W,
12757							 (__mmask8) __U,
12758							 _MM_FROUND_CUR_DIRECTION);
12759	}
12760	
12761	extern __inline __m128d
12762	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12763	_mm_maskz_max_sd (__mmask8 __U, __m128d __A, __m128d __B)
12764	{
12765	  return (__m128d) __builtin_ia32_maxsd_mask_round ((__v2df) __A,
12766							 (__v2df) __B,
12767							 (__v2df)
12768							 _mm_setzero_pd (),
12769							 (__mmask8) __U,
12770							 _MM_FROUND_CUR_DIRECTION);
12771	}
12772	
12773	extern __inline __m128
12774	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12775	_mm_mask_max_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
12776	{
12777	  return (__m128) __builtin_ia32_maxss_mask_round ((__v4sf) __A,
12778							(__v4sf) __B,
12779							(__v4sf) __W,
12780							(__mmask8) __U,
12781							_MM_FROUND_CUR_DIRECTION);
12782	}
12783	
12784	extern __inline __m128
12785	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12786	_mm_maskz_max_ss (__mmask8 __U, __m128 __A, __m128 __B)
12787	{
12788	  return (__m128) __builtin_ia32_maxss_mask_round ((__v4sf) __A,
12789							(__v4sf) __B,
12790							(__v4sf)
12791							_mm_setzero_ps (),
12792							(__mmask8) __U,
12793							_MM_FROUND_CUR_DIRECTION);
12794	}
12795	
12796	extern __inline __m512d
12797	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12798	_mm512_min_pd (__m512d __A, __m512d __B)
12799	{
12800	  return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A,
12801							 (__v8df) __B,
12802							 (__v8df)
12803							 _mm512_undefined_pd (),
12804							 (__mmask8) -1,
12805							 _MM_FROUND_CUR_DIRECTION);
12806	}
12807	
12808	extern __inline __m512d
12809	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12810	_mm512_mask_min_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
12811	{
12812	  return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A,
12813							 (__v8df) __B,
12814							 (__v8df) __W,
12815							 (__mmask8) __U,
12816							 _MM_FROUND_CUR_DIRECTION);
12817	}
12818	
12819	extern __inline __m512d
12820	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12821	_mm512_maskz_min_pd (__mmask8 __U, __m512d __A, __m512d __B)
12822	{
12823	  return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A,
12824							 (__v8df) __B,
12825							 (__v8df)
12826							 _mm512_setzero_pd (),
12827							 (__mmask8) __U,
12828							 _MM_FROUND_CUR_DIRECTION);
12829	}
12830	
12831	extern __inline __m512
12832	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12833	_mm512_min_ps (__m512 __A, __m512 __B)
12834	{
12835	  return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A,
12836							(__v16sf) __B,
12837							(__v16sf)
12838							_mm512_undefined_ps (),
12839							(__mmask16) -1,
12840							_MM_FROUND_CUR_DIRECTION);
12841	}
12842	
12843	extern __inline __m512
12844	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12845	_mm512_mask_min_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
12846	{
12847	  return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A,
12848							(__v16sf) __B,
12849							(__v16sf) __W,
12850							(__mmask16) __U,
12851							_MM_FROUND_CUR_DIRECTION);
12852	}
12853	
12854	extern __inline __m512
12855	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12856	_mm512_maskz_min_ps (__mmask16 __U, __m512 __A, __m512 __B)
12857	{
12858	  return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A,
12859							(__v16sf) __B,
12860							(__v16sf)
12861							_mm512_setzero_ps (),
12862							(__mmask16) __U,
12863							_MM_FROUND_CUR_DIRECTION);
12864	}
12865	
12866	extern __inline __m128d
12867	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12868	_mm_mask_min_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
12869	{
12870	  return (__m128d) __builtin_ia32_minsd_mask_round ((__v2df) __A,
12871							 (__v2df) __B,
12872							 (__v2df) __W,
12873							 (__mmask8) __U,
12874							 _MM_FROUND_CUR_DIRECTION);
12875	}
12876	
12877	extern __inline __m128d
12878	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12879	_mm_maskz_min_sd (__mmask8 __U, __m128d __A, __m128d __B)
12880	{
12881	  return (__m128d) __builtin_ia32_minsd_mask_round ((__v2df) __A,
12882							 (__v2df) __B,
12883							 (__v2df)
12884							 _mm_setzero_pd (),
12885							 (__mmask8) __U,
12886							 _MM_FROUND_CUR_DIRECTION);
12887	}
12888	
12889	extern __inline __m128
12890	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12891	_mm_mask_min_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
12892	{
12893	  return (__m128) __builtin_ia32_minss_mask_round ((__v4sf) __A,
12894							(__v4sf) __B,
12895							(__v4sf) __W,
12896							(__mmask8) __U,
12897							_MM_FROUND_CUR_DIRECTION);
12898	}
12899	
12900	extern __inline __m128
12901	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12902	_mm_maskz_min_ss (__mmask8 __U, __m128 __A, __m128 __B)
12903	{
12904	  return (__m128) __builtin_ia32_minss_mask_round ((__v4sf) __A,
12905							(__v4sf) __B,
12906							(__v4sf)
12907							_mm_setzero_ps (),
12908							(__mmask8) __U,
12909							_MM_FROUND_CUR_DIRECTION);
12910	}
12911	
12912	extern __inline __m512d
12913	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12914	_mm512_scalef_pd (__m512d __A, __m512d __B)
12915	{
12916	  return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,
12917							    (__v8df) __B,
12918							    (__v8df)
12919							    _mm512_undefined_pd (),
12920							    (__mmask8) -1,
12921							    _MM_FROUND_CUR_DIRECTION);
12922	}
12923	
12924	extern __inline __m512d
12925	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12926	_mm512_mask_scalef_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
12927	{
12928	  return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,
12929							    (__v8df) __B,
12930							    (__v8df) __W,
12931							    (__mmask8) __U,
12932							    _MM_FROUND_CUR_DIRECTION);
12933	}
12934	
12935	extern __inline __m512d
12936	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12937	_mm512_maskz_scalef_pd (__mmask8 __U, __m512d __A, __m512d __B)
12938	{
12939	  return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,
12940							    (__v8df) __B,
12941							    (__v8df)
12942							    _mm512_setzero_pd (),
12943							    (__mmask8) __U,
12944							    _MM_FROUND_CUR_DIRECTION);
12945	}
12946	
12947	extern __inline __m512
12948	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12949	_mm512_scalef_ps (__m512 __A, __m512 __B)
12950	{
12951	  return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,
12952							   (__v16sf) __B,
12953							   (__v16sf)
12954							   _mm512_undefined_ps (),
12955							   (__mmask16) -1,
12956							   _MM_FROUND_CUR_DIRECTION);
12957	}
12958	
12959	extern __inline __m512
12960	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12961	_mm512_mask_scalef_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
12962	{
12963	  return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,
12964							   (__v16sf) __B,
12965							   (__v16sf) __W,
12966							   (__mmask16) __U,
12967							   _MM_FROUND_CUR_DIRECTION);
12968	}
12969	
12970	extern __inline __m512
12971	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12972	_mm512_maskz_scalef_ps (__mmask16 __U, __m512 __A, __m512 __B)
12973	{
12974	  return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,
12975							   (__v16sf) __B,
12976							   (__v16sf)
12977							   _mm512_setzero_ps (),
12978							   (__mmask16) __U,
12979							   _MM_FROUND_CUR_DIRECTION);
12980	}
12981	
12982	extern __inline __m128d
12983	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12984	_mm_scalef_sd (__m128d __A, __m128d __B)
12985	{
12986	  return (__m128d) __builtin_ia32_scalefsd_mask_round ((__v2df) __A,
12987							    (__v2df) __B,
12988							    (__v2df)
12989							    _mm_setzero_pd (),
12990							    (__mmask8) -1,
12991							    _MM_FROUND_CUR_DIRECTION);
12992	}
12993	
12994	extern __inline __m128
12995	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12996	_mm_scalef_ss (__m128 __A, __m128 __B)
12997	{
12998	  return (__m128) __builtin_ia32_scalefss_mask_round ((__v4sf) __A,
12999							   (__v4sf) __B,
13000							   (__v4sf)
13001							   _mm_setzero_ps (),
13002							   (__mmask8) -1,
13003							   _MM_FROUND_CUR_DIRECTION);
13004	}
13005	
13006	extern __inline __m512d
13007	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13008	_mm512_fmadd_pd (__m512d __A, __m512d __B, __m512d __C)
13009	{
13010	  return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A,
13011							    (__v8df) __B,
13012							    (__v8df) __C,
13013							    (__mmask8) -1,
13014							    _MM_FROUND_CUR_DIRECTION);
13015	}
13016	
13017	extern __inline __m512d
13018	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13019	_mm512_mask_fmadd_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
13020	{
13021	  return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A,
13022							    (__v8df) __B,
13023							    (__v8df) __C,
13024							    (__mmask8) __U,
13025							    _MM_FROUND_CUR_DIRECTION);
13026	}
13027	
13028	extern __inline __m512d
13029	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13030	_mm512_mask3_fmadd_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
13031	{
13032	  return (__m512d) __builtin_ia32_vfmaddpd512_mask3 ((__v8df) __A,
13033							     (__v8df) __B,
13034							     (__v8df) __C,
13035							     (__mmask8) __U,
13036							     _MM_FROUND_CUR_DIRECTION);
13037	}
13038	
13039	extern __inline __m512d
13040	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13041	_mm512_maskz_fmadd_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
13042	{
13043	  return (__m512d) __builtin_ia32_vfmaddpd512_maskz ((__v8df) __A,
13044							     (__v8df) __B,
13045							     (__v8df) __C,
13046							     (__mmask8) __U,
13047							     _MM_FROUND_CUR_DIRECTION);
13048	}
13049	
13050	extern __inline __m512
13051	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13052	_mm512_fmadd_ps (__m512 __A, __m512 __B, __m512 __C)
13053	{
13054	  return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A,
13055							   (__v16sf) __B,
13056							   (__v16sf) __C,
13057							   (__mmask16) -1,
13058							   _MM_FROUND_CUR_DIRECTION);
13059	}
13060	
13061	extern __inline __m512
13062	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13063	_mm512_mask_fmadd_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
13064	{
13065	  return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A,
13066							   (__v16sf) __B,
13067							   (__v16sf) __C,
13068							   (__mmask16) __U,
13069							   _MM_FROUND_CUR_DIRECTION);
13070	}
13071	
13072	extern __inline __m512
13073	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13074	_mm512_mask3_fmadd_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
13075	{
13076	  return (__m512) __builtin_ia32_vfmaddps512_mask3 ((__v16sf) __A,
13077							    (__v16sf) __B,
13078							    (__v16sf) __C,
13079							    (__mmask16) __U,
13080							    _MM_FROUND_CUR_DIRECTION);
13081	}
13082	
13083	extern __inline __m512
13084	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13085	_mm512_maskz_fmadd_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
13086	{
13087	  return (__m512) __builtin_ia32_vfmaddps512_maskz ((__v16sf) __A,
13088							    (__v16sf) __B,
13089							    (__v16sf) __C,
13090							    (__mmask16) __U,
13091							    _MM_FROUND_CUR_DIRECTION);
13092	}
13093	
13094	extern __inline __m512d
13095	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13096	_mm512_fmsub_pd (__m512d __A, __m512d __B, __m512d __C)
13097	{
13098	  return (__m512d) __builtin_ia32_vfmsubpd512_mask ((__v8df) __A,
13099							    (__v8df) __B,
13100							    (__v8df) __C,
13101							    (__mmask8) -1,
13102							    _MM_FROUND_CUR_DIRECTION);
13103	}
13104	
13105	extern __inline __m512d
13106	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13107	_mm512_mask_fmsub_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
13108	{
13109	  return (__m512d) __builtin_ia32_vfmsubpd512_mask ((__v8df) __A,
13110							    (__v8df) __B,
13111							    (__v8df) __C,
13112							    (__mmask8) __U,
13113							    _MM_FROUND_CUR_DIRECTION);
13114	}
13115	
13116	extern __inline __m512d
13117	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13118	_mm512_mask3_fmsub_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
13119	{
13120	  return (__m512d) __builtin_ia32_vfmsubpd512_mask3 ((__v8df) __A,
13121							     (__v8df) __B,
13122							     (__v8df) __C,
13123							     (__mmask8) __U,
13124							     _MM_FROUND_CUR_DIRECTION);
13125	}
13126	
13127	extern __inline __m512d
13128	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13129	_mm512_maskz_fmsub_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
13130	{
13131	  return (__m512d) __builtin_ia32_vfmsubpd512_maskz ((__v8df) __A,
13132							     (__v8df) __B,
13133							     (__v8df) __C,
13134							     (__mmask8) __U,
13135							     _MM_FROUND_CUR_DIRECTION);
13136	}
13137	
13138	extern __inline __m512
13139	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13140	_mm512_fmsub_ps (__m512 __A, __m512 __B, __m512 __C)
13141	{
13142	  return (__m512) __builtin_ia32_vfmsubps512_mask ((__v16sf) __A,
13143							   (__v16sf) __B,
13144							   (__v16sf) __C,
13145							   (__mmask16) -1,
13146							   _MM_FROUND_CUR_DIRECTION);
13147	}
13148	
13149	extern __inline __m512
13150	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13151	_mm512_mask_fmsub_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
13152	{
13153	  return (__m512) __builtin_ia32_vfmsubps512_mask ((__v16sf) __A,
13154							   (__v16sf) __B,
13155							   (__v16sf) __C,
13156							   (__mmask16) __U,
13157							   _MM_FROUND_CUR_DIRECTION);
13158	}
13159	
13160	extern __inline __m512
13161	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13162	_mm512_mask3_fmsub_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
13163	{
13164	  return (__m512) __builtin_ia32_vfmsubps512_mask3 ((__v16sf) __A,
13165							    (__v16sf) __B,
13166							    (__v16sf) __C,
13167							    (__mmask16) __U,
13168							    _MM_FROUND_CUR_DIRECTION);
13169	}
13170	
13171	extern __inline __m512
13172	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13173	_mm512_maskz_fmsub_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
13174	{
13175	  return (__m512) __builtin_ia32_vfmsubps512_maskz ((__v16sf) __A,
13176							    (__v16sf) __B,
13177							    (__v16sf) __C,
13178							    (__mmask16) __U,
13179							    _MM_FROUND_CUR_DIRECTION);
13180	}
13181	
13182	extern __inline __m512d
13183	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13184	_mm512_fmaddsub_pd (__m512d __A, __m512d __B, __m512d __C)
13185	{
13186	  return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
13187							       (__v8df) __B,
13188							       (__v8df) __C,
13189							       (__mmask8) -1,
13190							       _MM_FROUND_CUR_DIRECTION);
13191	}
13192	
13193	extern __inline __m512d
13194	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13195	_mm512_mask_fmaddsub_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
13196	{
13197	  return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
13198							       (__v8df) __B,
13199							       (__v8df) __C,
13200							       (__mmask8) __U,
13201							       _MM_FROUND_CUR_DIRECTION);
13202	}
13203	
13204	extern __inline __m512d
13205	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13206	_mm512_mask3_fmaddsub_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
13207	{
13208	  return (__m512d) __builtin_ia32_vfmaddsubpd512_mask3 ((__v8df) __A,
13209								(__v8df) __B,
13210								(__v8df) __C,
13211								(__mmask8) __U,
13212								_MM_FROUND_CUR_DIRECTION);
13213	}
13214	
13215	extern __inline __m512d
13216	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13217	_mm512_maskz_fmaddsub_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
13218	{
13219	  return (__m512d) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df) __A,
13220								(__v8df) __B,
13221								(__v8df) __C,
13222								(__mmask8) __U,
13223								_MM_FROUND_CUR_DIRECTION);
13224	}
13225	
13226	extern __inline __m512
13227	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13228	_mm512_fmaddsub_ps (__m512 __A, __m512 __B, __m512 __C)
13229	{
13230	  return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
13231							      (__v16sf) __B,
13232							      (__v16sf) __C,
13233							      (__mmask16) -1,
13234							      _MM_FROUND_CUR_DIRECTION);
13235	}
13236	
13237	extern __inline __m512
13238	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13239	_mm512_mask_fmaddsub_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
13240	{
13241	  return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
13242							      (__v16sf) __B,
13243							      (__v16sf) __C,
13244							      (__mmask16) __U,
13245							      _MM_FROUND_CUR_DIRECTION);
13246	}
13247	
13248	extern __inline __m512
13249	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13250	_mm512_mask3_fmaddsub_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
13251	{
13252	  return (__m512) __builtin_ia32_vfmaddsubps512_mask3 ((__v16sf) __A,
13253							       (__v16sf) __B,
13254							       (__v16sf) __C,
13255							       (__mmask16) __U,
13256							       _MM_FROUND_CUR_DIRECTION);
13257	}
13258	
13259	extern __inline __m512
13260	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13261	_mm512_maskz_fmaddsub_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
13262	{
13263	  return (__m512) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf) __A,
13264							       (__v16sf) __B,
13265							       (__v16sf) __C,
13266							       (__mmask16) __U,
13267							       _MM_FROUND_CUR_DIRECTION);
13268	}
13269	
13270	extern __inline __m512d
13271	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13272	_mm512_fmsubadd_pd (__m512d __A, __m512d __B, __m512d __C)
13273	{
13274	  return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
13275							       (__v8df) __B,
13276							       -(__v8df) __C,
13277							       (__mmask8) -1,
13278							       _MM_FROUND_CUR_DIRECTION);
13279	}
13280	
13281	extern __inline __m512d
13282	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13283	_mm512_mask_fmsubadd_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
13284	{
13285	  return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
13286							       (__v8df) __B,
13287							       -(__v8df) __C,
13288							       (__mmask8) __U,
13289							       _MM_FROUND_CUR_DIRECTION);
13290	}
13291	
13292	extern __inline __m512d
13293	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13294	_mm512_mask3_fmsubadd_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
13295	{
13296	  return (__m512d) __builtin_ia32_vfmsubaddpd512_mask3 ((__v8df) __A,
13297								(__v8df) __B,
13298								(__v8df) __C,
13299								(__mmask8) __U,
13300								_MM_FROUND_CUR_DIRECTION);
13301	}
13302	
13303	extern __inline __m512d
13304	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13305	_mm512_maskz_fmsubadd_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
13306	{
13307	  return (__m512d) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df) __A,
13308								(__v8df) __B,
13309								-(__v8df) __C,
13310								(__mmask8) __U,
13311								_MM_FROUND_CUR_DIRECTION);
13312	}
13313	
13314	extern __inline __m512
13315	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13316	_mm512_fmsubadd_ps (__m512 __A, __m512 __B, __m512 __C)
13317	{
13318	  return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
13319							      (__v16sf) __B,
13320							      -(__v16sf) __C,
13321							      (__mmask16) -1,
13322							      _MM_FROUND_CUR_DIRECTION);
13323	}
13324	
13325	extern __inline __m512
13326	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13327	_mm512_mask_fmsubadd_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
13328	{
13329	  return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
13330							      (__v16sf) __B,
13331							      -(__v16sf) __C,
13332							      (__mmask16) __U,
13333							      _MM_FROUND_CUR_DIRECTION);
13334	}
13335	
13336	extern __inline __m512
13337	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13338	_mm512_mask3_fmsubadd_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
13339	{
13340	  return (__m512) __builtin_ia32_vfmsubaddps512_mask3 ((__v16sf) __A,
13341							       (__v16sf) __B,
13342							       (__v16sf) __C,
13343							       (__mmask16) __U,
13344							       _MM_FROUND_CUR_DIRECTION);
13345	}
13346	
13347	extern __inline __m512
13348	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13349	_mm512_maskz_fmsubadd_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
13350	{
13351	  return (__m512) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf) __A,
13352							       (__v16sf) __B,
13353							       -(__v16sf) __C,
13354							       (__mmask16) __U,
13355							       _MM_FROUND_CUR_DIRECTION);
13356	}
13357	
13358	extern __inline __m512d
13359	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13360	_mm512_fnmadd_pd (__m512d __A, __m512d __B, __m512d __C)
13361	{
13362	  return (__m512d) __builtin_ia32_vfnmaddpd512_mask ((__v8df) __A,
13363							     (__v8df) __B,
13364							     (__v8df) __C,
13365							     (__mmask8) -1,
13366							     _MM_FROUND_CUR_DIRECTION);
13367	}
13368	
13369	extern __inline __m512d
13370	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13371	_mm512_mask_fnmadd_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
13372	{
13373	  return (__m512d) __builtin_ia32_vfnmaddpd512_mask ((__v8df) __A,
13374							     (__v8df) __B,
13375							     (__v8df) __C,
13376							     (__mmask8) __U,
13377							     _MM_FROUND_CUR_DIRECTION);
13378	}
13379	
13380	extern __inline __m512d
13381	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13382	_mm512_mask3_fnmadd_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
13383	{
13384	  return (__m512d) __builtin_ia32_vfnmaddpd512_mask3 ((__v8df) __A,
13385							      (__v8df) __B,
13386							      (__v8df) __C,
13387							      (__mmask8) __U,
13388							      _MM_FROUND_CUR_DIRECTION);
13389	}
13390	
13391	extern __inline __m512d
13392	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13393	_mm512_maskz_fnmadd_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
13394	{
13395	  return (__m512d) __builtin_ia32_vfnmaddpd512_maskz ((__v8df) __A,
13396							      (__v8df) __B,
13397							      (__v8df) __C,
13398							      (__mmask8) __U,
13399							      _MM_FROUND_CUR_DIRECTION);
13400	}
13401	
13402	extern __inline __m512
13403	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13404	_mm512_fnmadd_ps (__m512 __A, __m512 __B, __m512 __C)
13405	{
13406	  return (__m512) __builtin_ia32_vfnmaddps512_mask ((__v16sf) __A,
13407							    (__v16sf) __B,
13408							    (__v16sf) __C,
13409							    (__mmask16) -1,
13410							    _MM_FROUND_CUR_DIRECTION);
13411	}
13412	
13413	extern __inline __m512
13414	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13415	_mm512_mask_fnmadd_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
13416	{
13417	  return (__m512) __builtin_ia32_vfnmaddps512_mask ((__v16sf) __A,
13418							    (__v16sf) __B,
13419							    (__v16sf) __C,
13420							    (__mmask16) __U,
13421							    _MM_FROUND_CUR_DIRECTION);
13422	}
13423	
13424	extern __inline __m512
13425	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13426	_mm512_mask3_fnmadd_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
13427	{
13428	  return (__m512) __builtin_ia32_vfnmaddps512_mask3 ((__v16sf) __A,
13429							     (__v16sf) __B,
13430							     (__v16sf) __C,
13431							     (__mmask16) __U,
13432							     _MM_FROUND_CUR_DIRECTION);
13433	}
13434	
13435	extern __inline __m512
13436	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13437	_mm512_maskz_fnmadd_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
13438	{
13439	  return (__m512) __builtin_ia32_vfnmaddps512_maskz ((__v16sf) __A,
13440							     (__v16sf) __B,
13441							     (__v16sf) __C,
13442							     (__mmask16) __U,
13443							     _MM_FROUND_CUR_DIRECTION);
13444	}
13445	
13446	extern __inline __m512d
13447	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13448	_mm512_fnmsub_pd (__m512d __A, __m512d __B, __m512d __C)
13449	{
13450	  return (__m512d) __builtin_ia32_vfnmsubpd512_mask ((__v8df) __A,
13451							     (__v8df) __B,
13452							     (__v8df) __C,
13453							     (__mmask8) -1,
13454							     _MM_FROUND_CUR_DIRECTION);
13455	}
13456	
13457	extern __inline __m512d
13458	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13459	_mm512_mask_fnmsub_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
13460	{
13461	  return (__m512d) __builtin_ia32_vfnmsubpd512_mask ((__v8df) __A,
13462							     (__v8df) __B,
13463							     (__v8df) __C,
13464							     (__mmask8) __U,
13465							     _MM_FROUND_CUR_DIRECTION);
13466	}
13467	
13468	extern __inline __m512d
13469	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13470	_mm512_mask3_fnmsub_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
13471	{
13472	  return (__m512d) __builtin_ia32_vfnmsubpd512_mask3 ((__v8df) __A,
13473							      (__v8df) __B,
13474							      (__v8df) __C,
13475							      (__mmask8) __U,
13476							      _MM_FROUND_CUR_DIRECTION);
13477	}
13478	
13479	extern __inline __m512d
13480	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13481	_mm512_maskz_fnmsub_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
13482	{
13483	  return (__m512d) __builtin_ia32_vfnmsubpd512_maskz ((__v8df) __A,
13484							      (__v8df) __B,
13485							      (__v8df) __C,
13486							      (__mmask8) __U,
13487							      _MM_FROUND_CUR_DIRECTION);
13488	}
13489	
13490	extern __inline __m512
13491	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13492	_mm512_fnmsub_ps (__m512 __A, __m512 __B, __m512 __C)
13493	{
13494	  return (__m512) __builtin_ia32_vfnmsubps512_mask ((__v16sf) __A,
13495							    (__v16sf) __B,
13496							    (__v16sf) __C,
13497							    (__mmask16) -1,
13498							    _MM_FROUND_CUR_DIRECTION);
13499	}
13500	
13501	extern __inline __m512
13502	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13503	_mm512_mask_fnmsub_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
13504	{
13505	  return (__m512) __builtin_ia32_vfnmsubps512_mask ((__v16sf) __A,
13506							    (__v16sf) __B,
13507							    (__v16sf) __C,
13508							    (__mmask16) __U,
13509							    _MM_FROUND_CUR_DIRECTION);
13510	}
13511	
13512	extern __inline __m512
13513	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13514	_mm512_mask3_fnmsub_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
13515	{
13516	  return (__m512) __builtin_ia32_vfnmsubps512_mask3 ((__v16sf) __A,
13517							     (__v16sf) __B,
13518							     (__v16sf) __C,
13519							     (__mmask16) __U,
13520							     _MM_FROUND_CUR_DIRECTION);
13521	}
13522	
13523	extern __inline __m512
13524	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13525	_mm512_maskz_fnmsub_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
13526	{
13527	  return (__m512) __builtin_ia32_vfnmsubps512_maskz ((__v16sf) __A,
13528							     (__v16sf) __B,
13529							     (__v16sf) __C,
13530							     (__mmask16) __U,
13531							     _MM_FROUND_CUR_DIRECTION);
13532	}
13533	
13534	extern __inline __m256i
13535	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13536	_mm512_cvttpd_epi32 (__m512d __A)
13537	{
13538	  return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A,
13539							     (__v8si)
13540							     _mm256_undefined_si256 (),
13541							     (__mmask8) -1,
13542							     _MM_FROUND_CUR_DIRECTION);
13543	}
13544	
13545	extern __inline __m256i
13546	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13547	_mm512_mask_cvttpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A)
13548	{
13549	  return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A,
13550							     (__v8si) __W,
13551							     (__mmask8) __U,
13552							     _MM_FROUND_CUR_DIRECTION);
13553	}
13554	
13555	extern __inline __m256i
13556	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13557	_mm512_maskz_cvttpd_epi32 (__mmask8 __U, __m512d __A)
13558	{
13559	  return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A,
13560							     (__v8si)
13561							     _mm256_setzero_si256 (),
13562							     (__mmask8) __U,
13563							     _MM_FROUND_CUR_DIRECTION);
13564	}
13565	
13566	extern __inline __m256i
13567	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13568	_mm512_cvttpd_epu32 (__m512d __A)
13569	{
13570	  return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,
13571							      (__v8si)
13572							      _mm256_undefined_si256 (),
13573							      (__mmask8) -1,
13574							      _MM_FROUND_CUR_DIRECTION);
13575	}
13576	
13577	extern __inline __m256i
13578	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13579	_mm512_mask_cvttpd_epu32 (__m256i __W, __mmask8 __U, __m512d __A)
13580	{
13581	  return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,
13582							      (__v8si) __W,
13583							      (__mmask8) __U,
13584							      _MM_FROUND_CUR_DIRECTION);
13585	}
13586	
13587	extern __inline __m256i
13588	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13589	_mm512_maskz_cvttpd_epu32 (__mmask8 __U, __m512d __A)
13590	{
13591	  return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,
13592							      (__v8si)
13593							      _mm256_setzero_si256 (),
13594							      (__mmask8) __U,
13595							      _MM_FROUND_CUR_DIRECTION);
13596	}
13597	
13598	extern __inline __m256i
13599	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13600	_mm512_cvtpd_epi32 (__m512d __A)
13601	{
13602	  return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A,
13603							    (__v8si)
13604							    _mm256_undefined_si256 (),
13605							    (__mmask8) -1,
13606							    _MM_FROUND_CUR_DIRECTION);
13607	}
13608	
13609	extern __inline __m256i
13610	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13611	_mm512_mask_cvtpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A)
13612	{
13613	  return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A,
13614							    (__v8si) __W,
13615							    (__mmask8) __U,
13616							    _MM_FROUND_CUR_DIRECTION);
13617	}
13618	
13619	extern __inline __m256i
13620	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13621	_mm512_maskz_cvtpd_epi32 (__mmask8 __U, __m512d __A)
13622	{
13623	  return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A,
13624							    (__v8si)
13625							    _mm256_setzero_si256 (),
13626							    (__mmask8) __U,
13627							    _MM_FROUND_CUR_DIRECTION);
13628	}
13629	
13630	extern __inline __m256i
13631	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13632	_mm512_cvtpd_epu32 (__m512d __A)
13633	{
13634	  return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A,
13635							     (__v8si)
13636							     _mm256_undefined_si256 (),
13637							     (__mmask8) -1,
13638							     _MM_FROUND_CUR_DIRECTION);
13639	}
13640	
13641	extern __inline __m256i
13642	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13643	_mm512_mask_cvtpd_epu32 (__m256i __W, __mmask8 __U, __m512d __A)
13644	{
13645	  return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A,
13646							     (__v8si) __W,
13647							     (__mmask8) __U,
13648							     _MM_FROUND_CUR_DIRECTION);
13649	}
13650	
13651	extern __inline __m256i
13652	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13653	_mm512_maskz_cvtpd_epu32 (__mmask8 __U, __m512d __A)
13654	{
13655	  return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A,
13656							     (__v8si)
13657							     _mm256_setzero_si256 (),
13658							     (__mmask8) __U,
13659							     _MM_FROUND_CUR_DIRECTION);
13660	}
13661	
13662	extern __inline __m512i
13663	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13664	_mm512_cvttps_epi32 (__m512 __A)
13665	{
13666	  return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A,
13667							     (__v16si)
13668							     _mm512_undefined_epi32 (),
13669							     (__mmask16) -1,
13670							     _MM_FROUND_CUR_DIRECTION);
13671	}
13672	
13673	extern __inline __m512i
13674	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13675	_mm512_mask_cvttps_epi32 (__m512i __W, __mmask16 __U, __m512 __A)
13676	{
13677	  return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A,
13678							     (__v16si) __W,
13679							     (__mmask16) __U,
13680							     _MM_FROUND_CUR_DIRECTION);
13681	}
13682	
13683	extern __inline __m512i
13684	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13685	_mm512_maskz_cvttps_epi32 (__mmask16 __U, __m512 __A)
13686	{
13687	  return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A,
13688							     (__v16si)
13689							     _mm512_setzero_si512 (),
13690							     (__mmask16) __U,
13691							     _MM_FROUND_CUR_DIRECTION);
13692	}
13693	
13694	extern __inline __m512i
13695	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13696	_mm512_cvttps_epu32 (__m512 __A)
13697	{
13698	  return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A,
13699							      (__v16si)
13700							      _mm512_undefined_epi32 (),
13701							      (__mmask16) -1,
13702							      _MM_FROUND_CUR_DIRECTION);
13703	}
13704	
13705	extern __inline __m512i
13706	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13707	_mm512_mask_cvttps_epu32 (__m512i __W, __mmask16 __U, __m512 __A)
13708	{
13709	  return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A,
13710							      (__v16si) __W,
13711							      (__mmask16) __U,
13712							      _MM_FROUND_CUR_DIRECTION);
13713	}
13714	
13715	extern __inline __m512i
13716	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13717	_mm512_maskz_cvttps_epu32 (__mmask16 __U, __m512 __A)
13718	{
13719	  return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A,
13720							      (__v16si)
13721							      _mm512_setzero_si512 (),
13722							      (__mmask16) __U,
13723							      _MM_FROUND_CUR_DIRECTION);
13724	}
13725	
13726	extern __inline __m512i
13727	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13728	_mm512_cvtps_epi32 (__m512 __A)
13729	{
13730	  return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A,
13731							    (__v16si)
13732							    _mm512_undefined_epi32 (),
13733							    (__mmask16) -1,
13734							    _MM_FROUND_CUR_DIRECTION);
13735	}
13736	
13737	extern __inline __m512i
13738	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13739	_mm512_mask_cvtps_epi32 (__m512i __W, __mmask16 __U, __m512 __A)
13740	{
13741	  return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A,
13742							    (__v16si) __W,
13743							    (__mmask16) __U,
13744							    _MM_FROUND_CUR_DIRECTION);
13745	}
13746	
13747	extern __inline __m512i
13748	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13749	_mm512_maskz_cvtps_epi32 (__mmask16 __U, __m512 __A)
13750	{
13751	  return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A,
13752							    (__v16si)
13753							    _mm512_setzero_si512 (),
13754							    (__mmask16) __U,
13755							    _MM_FROUND_CUR_DIRECTION);
13756	}
13757	
13758	extern __inline __m512i
13759	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13760	_mm512_cvtps_epu32 (__m512 __A)
13761	{
13762	  return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,
13763							     (__v16si)
13764							     _mm512_undefined_epi32 (),
13765							     (__mmask16) -1,
13766							     _MM_FROUND_CUR_DIRECTION);
13767	}
13768	
13769	extern __inline __m512i
13770	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13771	_mm512_mask_cvtps_epu32 (__m512i __W, __mmask16 __U, __m512 __A)
13772	{
13773	  return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,
13774							     (__v16si) __W,
13775							     (__mmask16) __U,
13776							     _MM_FROUND_CUR_DIRECTION);
13777	}
13778	
13779	extern __inline __m512i
13780	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13781	_mm512_maskz_cvtps_epu32 (__mmask16 __U, __m512 __A)
13782	{
13783	  return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,
13784							     (__v16si)
13785							     _mm512_setzero_si512 (),
13786							     (__mmask16) __U,
13787							     _MM_FROUND_CUR_DIRECTION);
13788	}
13789	
13790	extern __inline double
13791	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13792	_mm512_cvtsd_f64 (__m512d __A)
13793	{
13794	  return __A[0];
13795	}
13796	
13797	extern __inline float
13798	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13799	_mm512_cvtss_f32 (__m512 __A)
13800	{
13801	  return __A[0];
13802	}
13803	
13804	#ifdef __x86_64__
13805	extern __inline __m128
13806	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13807	_mm_cvtu64_ss (__m128 __A, unsigned long long __B)
13808	{
13809	  return (__m128) __builtin_ia32_cvtusi2ss64 ((__v4sf) __A, __B,
13810						      _MM_FROUND_CUR_DIRECTION);
13811	}
13812	
13813	extern __inline __m128d
13814	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13815	_mm_cvtu64_sd (__m128d __A, unsigned long long __B)
13816	{
13817	  return (__m128d) __builtin_ia32_cvtusi2sd64 ((__v2df) __A, __B,
13818						       _MM_FROUND_CUR_DIRECTION);
13819	}
13820	#endif
13821	
13822	extern __inline __m128
13823	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13824	_mm_cvtu32_ss (__m128 __A, unsigned __B)
13825	{
13826	  return (__m128) __builtin_ia32_cvtusi2ss32 ((__v4sf) __A, __B,
13827						      _MM_FROUND_CUR_DIRECTION);
13828	}
13829	
13830	extern __inline __m512
13831	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13832	_mm512_cvtepi32_ps (__m512i __A)
13833	{
13834	  return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A,
13835							   (__v16sf)
13836							   _mm512_undefined_ps (),
13837							   (__mmask16) -1,
13838							   _MM_FROUND_CUR_DIRECTION);
13839	}
13840	
13841	extern __inline __m512
13842	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13843	_mm512_mask_cvtepi32_ps (__m512 __W, __mmask16 __U, __m512i __A)
13844	{
13845	  return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A,
13846							   (__v16sf) __W,
13847							   (__mmask16) __U,
13848							   _MM_FROUND_CUR_DIRECTION);
13849	}
13850	
13851	extern __inline __m512
13852	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13853	_mm512_maskz_cvtepi32_ps (__mmask16 __U, __m512i __A)
13854	{
13855	  return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A,
13856							   (__v16sf)
13857							   _mm512_setzero_ps (),
13858							   (__mmask16) __U,
13859							   _MM_FROUND_CUR_DIRECTION);
13860	}
13861	
13862	extern __inline __m512
13863	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13864	_mm512_cvtepu32_ps (__m512i __A)
13865	{
13866	  return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A,
13867							    (__v16sf)
13868							    _mm512_undefined_ps (),
13869							    (__mmask16) -1,
13870							    _MM_FROUND_CUR_DIRECTION);
13871	}
13872	
13873	extern __inline __m512
13874	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13875	_mm512_mask_cvtepu32_ps (__m512 __W, __mmask16 __U, __m512i __A)
13876	{
13877	  return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A,
13878							    (__v16sf) __W,
13879							    (__mmask16) __U,
13880							    _MM_FROUND_CUR_DIRECTION);
13881	}
13882	
13883	extern __inline __m512
13884	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13885	_mm512_maskz_cvtepu32_ps (__mmask16 __U, __m512i __A)
13886	{
13887	  return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A,
13888							    (__v16sf)
13889							    _mm512_setzero_ps (),
13890							    (__mmask16) __U,
13891							    _MM_FROUND_CUR_DIRECTION);
13892	}
13893	
13894	#ifdef __OPTIMIZE__
13895	extern __inline __m512d
13896	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13897	_mm512_fixupimm_pd (__m512d __A, __m512d __B, __m512i __C, const int __imm)
13898	{
13899	  return (__m512d) __builtin_ia32_fixupimmpd512_mask ((__v8df) __A,
13900							      (__v8df) __B,
13901							      (__v8di) __C,
13902							      __imm,
13903							      (__mmask8) -1,
13904							      _MM_FROUND_CUR_DIRECTION);
13905	}
13906	
13907	extern __inline __m512d
13908	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13909	_mm512_mask_fixupimm_pd (__m512d __A, __mmask8 __U, __m512d __B,
13910				 __m512i __C, const int __imm)
13911	{
13912	  return (__m512d) __builtin_ia32_fixupimmpd512_mask ((__v8df) __A,
13913							      (__v8df) __B,
13914							      (__v8di) __C,
13915							      __imm,
13916							      (__mmask8) __U,
13917							      _MM_FROUND_CUR_DIRECTION);
13918	}
13919	
13920	extern __inline __m512d
13921	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13922	_mm512_maskz_fixupimm_pd (__mmask8 __U, __m512d __A, __m512d __B,
13923				  __m512i __C, const int __imm)
13924	{
13925	  return (__m512d) __builtin_ia32_fixupimmpd512_maskz ((__v8df) __A,
13926							       (__v8df) __B,
13927							       (__v8di) __C,
13928							       __imm,
13929							       (__mmask8) __U,
13930							       _MM_FROUND_CUR_DIRECTION);
13931	}
13932	
13933	extern __inline __m512
13934	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13935	_mm512_fixupimm_ps (__m512 __A, __m512 __B, __m512i __C, const int __imm)
13936	{
13937	  return (__m512) __builtin_ia32_fixupimmps512_mask ((__v16sf) __A,
13938							     (__v16sf) __B,
13939							     (__v16si) __C,
13940							     __imm,
13941							     (__mmask16) -1,
13942							     _MM_FROUND_CUR_DIRECTION);
13943	}
13944	
13945	extern __inline __m512
13946	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13947	_mm512_mask_fixupimm_ps (__m512 __A, __mmask16 __U, __m512 __B,
13948				 __m512i __C, const int __imm)
13949	{
13950	  return (__m512) __builtin_ia32_fixupimmps512_mask ((__v16sf) __A,
13951							     (__v16sf) __B,
13952							     (__v16si) __C,
13953							     __imm,
13954							     (__mmask16) __U,
13955							     _MM_FROUND_CUR_DIRECTION);
13956	}
13957	
13958	extern __inline __m512
13959	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13960	_mm512_maskz_fixupimm_ps (__mmask16 __U, __m512 __A, __m512 __B,
13961				  __m512i __C, const int __imm)
13962	{
13963	  return (__m512) __builtin_ia32_fixupimmps512_maskz ((__v16sf) __A,
13964							      (__v16sf) __B,
13965							      (__v16si) __C,
13966							      __imm,
13967							      (__mmask16) __U,
13968							      _MM_FROUND_CUR_DIRECTION);
13969	}
13970	
13971	extern __inline __m128d
13972	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13973	_mm_fixupimm_sd (__m128d __A, __m128d __B, __m128i __C, const int __imm)
13974	{
13975	  return (__m128d) __builtin_ia32_fixupimmsd_mask ((__v2df) __A,
13976							   (__v2df) __B,
13977							   (__v2di) __C, __imm,
13978							   (__mmask8) -1,
13979							   _MM_FROUND_CUR_DIRECTION);
13980	}
13981	
13982	extern __inline __m128d
13983	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13984	_mm_mask_fixupimm_sd (__m128d __A, __mmask8 __U, __m128d __B,
13985			      __m128i __C, const int __imm)
13986	{
13987	  return (__m128d) __builtin_ia32_fixupimmsd_mask ((__v2df) __A,
13988							   (__v2df) __B,
13989							   (__v2di) __C, __imm,
13990							   (__mmask8) __U,
13991							   _MM_FROUND_CUR_DIRECTION);
13992	}
13993	
13994	extern __inline __m128d
13995	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13996	_mm_maskz_fixupimm_sd (__mmask8 __U, __m128d __A, __m128d __B,
13997			       __m128i __C, const int __imm)
13998	{
13999	  return (__m128d) __builtin_ia32_fixupimmsd_maskz ((__v2df) __A,
14000							    (__v2df) __B,
14001							    (__v2di) __C,
14002							    __imm,
14003							    (__mmask8) __U,
14004							    _MM_FROUND_CUR_DIRECTION);
14005	}
14006	
14007	extern __inline __m128
14008	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14009	_mm_fixupimm_ss (__m128 __A, __m128 __B, __m128i __C, const int __imm)
14010	{
14011	  return (__m128) __builtin_ia32_fixupimmss_mask ((__v4sf) __A,
14012							  (__v4sf) __B,
14013							  (__v4si) __C, __imm,
14014							  (__mmask8) -1,
14015							  _MM_FROUND_CUR_DIRECTION);
14016	}
14017	
14018	extern __inline __m128
14019	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14020	_mm_mask_fixupimm_ss (__m128 __A, __mmask8 __U, __m128 __B,
14021			      __m128i __C, const int __imm)
14022	{
14023	  return (__m128) __builtin_ia32_fixupimmss_mask ((__v4sf) __A,
14024							  (__v4sf) __B,
14025							  (__v4si) __C, __imm,
14026							  (__mmask8) __U,
14027							  _MM_FROUND_CUR_DIRECTION);
14028	}
14029	
14030	extern __inline __m128
14031	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14032	_mm_maskz_fixupimm_ss (__mmask8 __U, __m128 __A, __m128 __B,
14033			       __m128i __C, const int __imm)
14034	{
14035	  return (__m128) __builtin_ia32_fixupimmss_maskz ((__v4sf) __A,
14036							   (__v4sf) __B,
14037							   (__v4si) __C, __imm,
14038							   (__mmask8) __U,
14039							   _MM_FROUND_CUR_DIRECTION);
14040	}
14041	#else
14042	#define _mm512_fixupimm_pd(X, Y, Z, C)					\
14043	  ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X),	\
14044	      (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C),		\
14045	      (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
14046	
14047	#define _mm512_mask_fixupimm_pd(X, U, Y, Z, C)                          \
14048	  ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X),    \
14049	      (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C),             \
14050	      (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
14051	
14052	#define _mm512_maskz_fixupimm_pd(U, X, Y, Z, C)                         \
14053	  ((__m512d)__builtin_ia32_fixupimmpd512_maskz ((__v8df)(__m512d)(X),   \
14054	      (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C),             \
14055	      (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
14056	
14057	#define _mm512_fixupimm_ps(X, Y, Z, C)					\
14058	  ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X),	\
14059	    (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C),		\
14060	    (__mmask16)(-1), _MM_FROUND_CUR_DIRECTION))
14061	
14062	#define _mm512_mask_fixupimm_ps(X, U, Y, Z, C)                          \
14063	  ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X),     \
14064	    (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C),              \
14065	    (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
14066	
14067	#define _mm512_maskz_fixupimm_ps(U, X, Y, Z, C)                         \
14068	  ((__m512)__builtin_ia32_fixupimmps512_maskz ((__v16sf)(__m512)(X),    \
14069	    (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C),              \
14070	    (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
14071	
14072	#define _mm_fixupimm_sd(X, Y, Z, C)					\
14073	    ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X),	\
14074	      (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C),		\
14075	      (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
14076	
14077	#define _mm_mask_fixupimm_sd(X, U, Y, Z, C)				\
14078	    ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X),	\
14079	      (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C),		\
14080	      (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
14081	
14082	#define _mm_maskz_fixupimm_sd(U, X, Y, Z, C)				\
14083	    ((__m128d)__builtin_ia32_fixupimmsd_maskz ((__v2df)(__m128d)(X),	\
14084	      (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C),		\
14085	      (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
14086	
14087	#define _mm_fixupimm_ss(X, Y, Z, C)					\
14088	    ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X),	\
14089	      (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C),		\
14090	      (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
14091	
14092	#define _mm_mask_fixupimm_ss(X, U, Y, Z, C)				\
14093	    ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X),	\
14094	      (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C),		\
14095	      (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
14096	
14097	#define _mm_maskz_fixupimm_ss(U, X, Y, Z, C)				\
14098	    ((__m128)__builtin_ia32_fixupimmss_maskz ((__v4sf)(__m128)(X),	\
14099	      (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C),		\
14100	      (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
14101	#endif
14102	
14103	#ifdef __x86_64__
14104	extern __inline unsigned long long
14105	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14106	_mm_cvtss_u64 (__m128 __A)
14107	{
14108	  return (unsigned long long) __builtin_ia32_vcvtss2usi64 ((__v4sf)
14109								   __A,
14110								   _MM_FROUND_CUR_DIRECTION);
14111	}
14112	
14113	extern __inline unsigned long long
14114	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14115	_mm_cvttss_u64 (__m128 __A)
14116	{
14117	  return (unsigned long long) __builtin_ia32_vcvttss2usi64 ((__v4sf)
14118								    __A,
14119								    _MM_FROUND_CUR_DIRECTION);
14120	}
14121	
14122	extern __inline long long
14123	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14124	_mm_cvttss_i64 (__m128 __A)
14125	{
14126	  return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf) __A,
14127							  _MM_FROUND_CUR_DIRECTION);
14128	}
14129	#endif /* __x86_64__ */
14130	
14131	extern __inline unsigned
14132	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14133	_mm_cvtss_u32 (__m128 __A)
14134	{
14135	  return (unsigned) __builtin_ia32_vcvtss2usi32 ((__v4sf) __A,
14136							 _MM_FROUND_CUR_DIRECTION);
14137	}
14138	
14139	extern __inline unsigned
14140	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14141	_mm_cvttss_u32 (__m128 __A)
14142	{
14143	  return (unsigned) __builtin_ia32_vcvttss2usi32 ((__v4sf) __A,
14144							  _MM_FROUND_CUR_DIRECTION);
14145	}
14146	
14147	extern __inline int
14148	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14149	_mm_cvttss_i32 (__m128 __A)
14150	{
14151	  return (int) __builtin_ia32_vcvttss2si32 ((__v4sf) __A,
14152						    _MM_FROUND_CUR_DIRECTION);
14153	}
14154	
14155	#ifdef __x86_64__
14156	extern __inline unsigned long long
14157	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14158	_mm_cvtsd_u64 (__m128d __A)
14159	{
14160	  return (unsigned long long) __builtin_ia32_vcvtsd2usi64 ((__v2df)
14161								   __A,
14162								   _MM_FROUND_CUR_DIRECTION);
14163	}
14164	
14165	extern __inline unsigned long long
14166	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14167	_mm_cvttsd_u64 (__m128d __A)
14168	{
14169	  return (unsigned long long) __builtin_ia32_vcvttsd2usi64 ((__v2df)
14170								    __A,
14171								    _MM_FROUND_CUR_DIRECTION);
14172	}
14173	
14174	extern __inline long long
14175	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14176	_mm_cvttsd_i64 (__m128d __A)
14177	{
14178	  return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df) __A,
14179							  _MM_FROUND_CUR_DIRECTION);
14180	}
14181	#endif /* __x86_64__ */
14182	
14183	extern __inline unsigned
14184	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14185	_mm_cvtsd_u32 (__m128d __A)
14186	{
14187	  return (unsigned) __builtin_ia32_vcvtsd2usi32 ((__v2df) __A,
14188							 _MM_FROUND_CUR_DIRECTION);
14189	}
14190	
14191	extern __inline unsigned
14192	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14193	_mm_cvttsd_u32 (__m128d __A)
14194	{
14195	  return (unsigned) __builtin_ia32_vcvttsd2usi32 ((__v2df) __A,
14196							  _MM_FROUND_CUR_DIRECTION);
14197	}
14198	
14199	extern __inline int
14200	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14201	_mm_cvttsd_i32 (__m128d __A)
14202	{
14203	  return (int) __builtin_ia32_vcvttsd2si32 ((__v2df) __A,
14204						    _MM_FROUND_CUR_DIRECTION);
14205	}
14206	
14207	extern __inline __m512d
14208	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14209	_mm512_cvtps_pd (__m256 __A)
14210	{
14211	  return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
14212							    (__v8df)
14213							    _mm512_undefined_pd (),
14214							    (__mmask8) -1,
14215							    _MM_FROUND_CUR_DIRECTION);
14216	}
14217	
14218	extern __inline __m512d
14219	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14220	_mm512_mask_cvtps_pd (__m512d __W, __mmask8 __U, __m256 __A)
14221	{
14222	  return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
14223							    (__v8df) __W,
14224							    (__mmask8) __U,
14225							    _MM_FROUND_CUR_DIRECTION);
14226	}
14227	
14228	extern __inline __m512d
14229	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14230	_mm512_maskz_cvtps_pd (__mmask8 __U, __m256 __A)
14231	{
14232	  return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
14233							    (__v8df)
14234							    _mm512_setzero_pd (),
14235							    (__mmask8) __U,
14236							    _MM_FROUND_CUR_DIRECTION);
14237	}
14238	
14239	extern __inline __m512
14240	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14241	_mm512_cvtph_ps (__m256i __A)
14242	{
14243	  return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,
14244							    (__v16sf)
14245							    _mm512_undefined_ps (),
14246							    (__mmask16) -1,
14247							    _MM_FROUND_CUR_DIRECTION);
14248	}
14249	
14250	extern __inline __m512
14251	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14252	_mm512_mask_cvtph_ps (__m512 __W, __mmask16 __U, __m256i __A)
14253	{
14254	  return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,
14255							    (__v16sf) __W,
14256							    (__mmask16) __U,
14257							    _MM_FROUND_CUR_DIRECTION);
14258	}
14259	
14260	extern __inline __m512
14261	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14262	_mm512_maskz_cvtph_ps (__mmask16 __U, __m256i __A)
14263	{
14264	  return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,
14265							    (__v16sf)
14266							    _mm512_setzero_ps (),
14267							    (__mmask16) __U,
14268							    _MM_FROUND_CUR_DIRECTION);
14269	}
14270	
14271	extern __inline __m256
14272	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14273	_mm512_cvtpd_ps (__m512d __A)
14274	{
14275	  return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,
14276							   (__v8sf)
14277							   _mm256_undefined_ps (),
14278							   (__mmask8) -1,
14279							   _MM_FROUND_CUR_DIRECTION);
14280	}
14281	
14282	extern __inline __m256
14283	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14284	_mm512_mask_cvtpd_ps (__m256 __W, __mmask8 __U, __m512d __A)
14285	{
14286	  return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,
14287							   (__v8sf) __W,
14288							   (__mmask8) __U,
14289							   _MM_FROUND_CUR_DIRECTION);
14290	}
14291	
14292	extern __inline __m256
14293	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14294	_mm512_maskz_cvtpd_ps (__mmask8 __U, __m512d __A)
14295	{
14296	  return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,
14297							   (__v8sf)
14298							   _mm256_setzero_ps (),
14299							   (__mmask8) __U,
14300							   _MM_FROUND_CUR_DIRECTION);
14301	}
14302	
14303	#ifdef __OPTIMIZE__
14304	extern __inline __m512
14305	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14306	_mm512_getexp_ps (__m512 __A)
14307	{
14308	  return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
14309							   (__v16sf)
14310							   _mm512_undefined_ps (),
14311							   (__mmask16) -1,
14312							   _MM_FROUND_CUR_DIRECTION);
14313	}
14314	
14315	extern __inline __m512
14316	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14317	_mm512_mask_getexp_ps (__m512 __W, __mmask16 __U, __m512 __A)
14318	{
14319	  return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
14320							   (__v16sf) __W,
14321							   (__mmask16) __U,
14322							   _MM_FROUND_CUR_DIRECTION);
14323	}
14324	
14325	extern __inline __m512
14326	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14327	_mm512_maskz_getexp_ps (__mmask16 __U, __m512 __A)
14328	{
14329	  return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
14330							   (__v16sf)
14331							   _mm512_setzero_ps (),
14332							   (__mmask16) __U,
14333							   _MM_FROUND_CUR_DIRECTION);
14334	}
14335	
14336	extern __inline __m512d
14337	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14338	_mm512_getexp_pd (__m512d __A)
14339	{
14340	  return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
14341							    (__v8df)
14342							    _mm512_undefined_pd (),
14343							    (__mmask8) -1,
14344							    _MM_FROUND_CUR_DIRECTION);
14345	}
14346	
14347	extern __inline __m512d
14348	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14349	_mm512_mask_getexp_pd (__m512d __W, __mmask8 __U, __m512d __A)
14350	{
14351	  return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
14352							    (__v8df) __W,
14353							    (__mmask8) __U,
14354							    _MM_FROUND_CUR_DIRECTION);
14355	}
14356	
14357	extern __inline __m512d
14358	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14359	_mm512_maskz_getexp_pd (__mmask8 __U, __m512d __A)
14360	{
14361	  return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
14362							    (__v8df)
14363							    _mm512_setzero_pd (),
14364							    (__mmask8) __U,
14365							    _MM_FROUND_CUR_DIRECTION);
14366	}
14367	
14368	extern __inline __m128
14369	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14370	_mm_getexp_ss (__m128 __A, __m128 __B)
14371	{
14372	  return (__m128) __builtin_ia32_getexpss128_round ((__v4sf) __A,
14373							    (__v4sf) __B,
14374							    _MM_FROUND_CUR_DIRECTION);
14375	}
14376	
14377	extern __inline __m128
14378	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14379	_mm_mask_getexp_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
14380	{
14381	  return (__m128) __builtin_ia32_getexpss_mask_round ((__v4sf) __A,
14382							(__v4sf) __B,
14383							(__v4sf) __W,
14384							(__mmask8) __U,
14385							_MM_FROUND_CUR_DIRECTION);
14386	}
14387	
14388	extern __inline __m128
14389	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14390	_mm_maskz_getexp_ss (__mmask8 __U, __m128 __A, __m128 __B)
14391	{
14392	  return (__m128) __builtin_ia32_getexpss_mask_round ((__v4sf) __A,
14393							(__v4sf) __B,
14394							(__v4sf)
14395							_mm_setzero_ps (),
14396							(__mmask8) __U,
14397							_MM_FROUND_CUR_DIRECTION);
14398	}
14399	
14400	extern __inline __m128d
14401	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14402	_mm_getexp_sd (__m128d __A, __m128d __B)
14403	{
14404	  return (__m128d) __builtin_ia32_getexpsd128_round ((__v2df) __A,
14405							     (__v2df) __B,
14406							     _MM_FROUND_CUR_DIRECTION);
14407	}
14408	
14409	extern __inline __m128d
14410	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14411	_mm_mask_getexp_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
14412	{
14413	  return (__m128d) __builtin_ia32_getexpsd_mask_round ((__v2df) __A,
14414							(__v2df) __B,
14415							(__v2df) __W,
14416							(__mmask8) __U,
14417							_MM_FROUND_CUR_DIRECTION);
14418	}
14419	
14420	extern __inline __m128d
14421	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14422	_mm_maskz_getexp_sd (__mmask8 __U, __m128d __A, __m128d __B)
14423	{
14424	  return (__m128d) __builtin_ia32_getexpsd_mask_round ((__v2df) __A,
14425							(__v2df) __B,
14426							(__v2df)
14427							_mm_setzero_pd (),
14428							(__mmask8) __U,
14429							_MM_FROUND_CUR_DIRECTION);
14430	}
14431	
14432	extern __inline __m512d
14433	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14434	_mm512_getmant_pd (__m512d __A, _MM_MANTISSA_NORM_ENUM __B,
14435			   _MM_MANTISSA_SIGN_ENUM __C)
14436	{
14437	  return (__m512d) __builtin_ia32_getmantpd512_mask ((__v8df) __A,
14438							     (__C << 2) | __B,
14439							     _mm512_undefined_pd (),
14440							     (__mmask8) -1,
14441							     _MM_FROUND_CUR_DIRECTION);
14442	}
14443	
14444	extern __inline __m512d
14445	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14446	_mm512_mask_getmant_pd (__m512d __W, __mmask8 __U, __m512d __A,
14447				_MM_MANTISSA_NORM_ENUM __B, _MM_MANTISSA_SIGN_ENUM __C)
14448	{
14449	  return (__m512d) __builtin_ia32_getmantpd512_mask ((__v8df) __A,
14450							     (__C << 2) | __B,
14451							     (__v8df) __W, __U,
14452							     _MM_FROUND_CUR_DIRECTION);
14453	}
14454	
14455	extern __inline __m512d
14456	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14457	_mm512_maskz_getmant_pd (__mmask8 __U, __m512d __A,
14458				 _MM_MANTISSA_NORM_ENUM __B, _MM_MANTISSA_SIGN_ENUM __C)
14459	{
14460	  return (__m512d) __builtin_ia32_getmantpd512_mask ((__v8df) __A,
14461							     (__C << 2) | __B,
14462							     (__v8df)
14463							     _mm512_setzero_pd (),
14464							     __U,
14465							     _MM_FROUND_CUR_DIRECTION);
14466	}
14467	
14468	extern __inline __m512
14469	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14470	_mm512_getmant_ps (__m512 __A, _MM_MANTISSA_NORM_ENUM __B,
14471			   _MM_MANTISSA_SIGN_ENUM __C)
14472	{
14473	  return (__m512) __builtin_ia32_getmantps512_mask ((__v16sf) __A,
14474							    (__C << 2) | __B,
14475							    _mm512_undefined_ps (),
14476							    (__mmask16) -1,
14477							    _MM_FROUND_CUR_DIRECTION);
14478	}
14479	
14480	extern __inline __m512
14481	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14482	_mm512_mask_getmant_ps (__m512 __W, __mmask16 __U, __m512 __A,
14483				_MM_MANTISSA_NORM_ENUM __B, _MM_MANTISSA_SIGN_ENUM __C)
14484	{
14485	  return (__m512) __builtin_ia32_getmantps512_mask ((__v16sf) __A,
14486							    (__C << 2) | __B,
14487							    (__v16sf) __W, __U,
14488							    _MM_FROUND_CUR_DIRECTION);
14489	}
14490	
14491	extern __inline __m512
14492	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14493	_mm512_maskz_getmant_ps (__mmask16 __U, __m512 __A,
14494				 _MM_MANTISSA_NORM_ENUM __B, _MM_MANTISSA_SIGN_ENUM __C)
14495	{
14496	  return (__m512) __builtin_ia32_getmantps512_mask ((__v16sf) __A,
14497							    (__C << 2) | __B,
14498							    (__v16sf)
14499							    _mm512_setzero_ps (),
14500							    __U,
14501							    _MM_FROUND_CUR_DIRECTION);
14502	}
14503	
14504	extern __inline __m128d
14505	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14506	_mm_getmant_sd (__m128d __A, __m128d __B, _MM_MANTISSA_NORM_ENUM __C,
14507			_MM_MANTISSA_SIGN_ENUM __D)
14508	{
14509	  return (__m128d) __builtin_ia32_getmantsd_round ((__v2df) __A,
14510							   (__v2df) __B,
14511							   (__D << 2) | __C,
14512							   _MM_FROUND_CUR_DIRECTION);
14513	}
14514	
14515	extern __inline __m128d
14516	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14517	_mm_mask_getmant_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B,
14518				_MM_MANTISSA_NORM_ENUM __C, _MM_MANTISSA_SIGN_ENUM __D)
14519	{
14520	  return (__m128d) __builtin_ia32_getmantsd_mask_round ((__v2df) __A,
14521								(__v2df) __B,
14522							        (__D << 2) | __C,
14523	                                                        (__v2df) __W,
14524							       __U,
14525							     _MM_FROUND_CUR_DIRECTION);
14526	}
14527	
14528	extern __inline __m128d
14529	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14530	_mm_maskz_getmant_sd (__mmask8 __U, __m128d __A, __m128d __B,
14531				 _MM_MANTISSA_NORM_ENUM __C, _MM_MANTISSA_SIGN_ENUM __D)
14532	{
14533	  return (__m128d) __builtin_ia32_getmantsd_mask_round ((__v2df) __A,
14534	                                                        (__v2df) __B,
14535							        (__D << 2) | __C,
14536	                                                        (__v2df)
14537								_mm_setzero_pd(),
14538							        __U,
14539							     _MM_FROUND_CUR_DIRECTION);
14540	}
14541	
14542	extern __inline __m128
14543	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14544	_mm_getmant_ss (__m128 __A, __m128 __B, _MM_MANTISSA_NORM_ENUM __C,
14545			_MM_MANTISSA_SIGN_ENUM __D)
14546	{
14547	  return (__m128) __builtin_ia32_getmantss_round ((__v4sf) __A,
14548							  (__v4sf) __B,
14549							  (__D << 2) | __C,
14550							  _MM_FROUND_CUR_DIRECTION);
14551	}
14552	
14553	extern __inline __m128
14554	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14555	_mm_mask_getmant_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B,
14556				_MM_MANTISSA_NORM_ENUM __C, _MM_MANTISSA_SIGN_ENUM __D)
14557	{
14558	  return (__m128) __builtin_ia32_getmantss_mask_round ((__v4sf) __A,
14559								(__v4sf) __B,
14560							        (__D << 2) | __C,
14561	                                                        (__v4sf) __W,
14562							       __U,
14563							     _MM_FROUND_CUR_DIRECTION);
14564	}
14565	
14566	extern __inline __m128
14567	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14568	_mm_maskz_getmant_ss (__mmask8 __U, __m128 __A, __m128 __B,
14569				 _MM_MANTISSA_NORM_ENUM __C, _MM_MANTISSA_SIGN_ENUM __D)
14570	{
14571	  return (__m128) __builtin_ia32_getmantss_mask_round ((__v4sf) __A,
14572	                                                        (__v4sf) __B,
14573							        (__D << 2) | __C,
14574	                                                        (__v4sf)
14575								_mm_setzero_ps(),
14576							        __U,
14577							     _MM_FROUND_CUR_DIRECTION);
14578	}
14579	
14580	#else
14581	#define _mm512_getmant_pd(X, B, C)                                                  \
14582	  ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X),                 \
14583	                                              (int)(((C)<<2) | (B)),                \
14584	                                              (__v8df)_mm512_undefined_pd(),        \
14585	                                              (__mmask8)-1,\
14586						      _MM_FROUND_CUR_DIRECTION))
14587	
14588	#define _mm512_mask_getmant_pd(W, U, X, B, C)                                       \
14589	  ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X),                 \
14590	                                              (int)(((C)<<2) | (B)),                \
14591	                                              (__v8df)(__m512d)(W),                 \
14592	                                              (__mmask8)(U),\
14593						      _MM_FROUND_CUR_DIRECTION))
14594	
14595	#define _mm512_maskz_getmant_pd(U, X, B, C)                                         \
14596	  ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X),                 \
14597	                                              (int)(((C)<<2) | (B)),                \
14598	                                              (__v8df)_mm512_setzero_pd(),          \
14599	                                              (__mmask8)(U),\
14600						      _MM_FROUND_CUR_DIRECTION))
14601	#define _mm512_getmant_ps(X, B, C)                                                  \
14602	  ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X),                  \
14603	                                             (int)(((C)<<2) | (B)),                 \
14604	                                             (__v16sf)_mm512_undefined_ps(),        \
14605	                                             (__mmask16)-1,\
14606						     _MM_FROUND_CUR_DIRECTION))
14607	
14608	#define _mm512_mask_getmant_ps(W, U, X, B, C)                                       \
14609	  ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X),                  \
14610	                                             (int)(((C)<<2) | (B)),                 \
14611	                                             (__v16sf)(__m512)(W),                  \
14612	                                             (__mmask16)(U),\
14613						     _MM_FROUND_CUR_DIRECTION))
14614	
14615	#define _mm512_maskz_getmant_ps(U, X, B, C)                                         \
14616	  ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X),                  \
14617	                                             (int)(((C)<<2) | (B)),                 \
14618	                                             (__v16sf)_mm512_setzero_ps(),          \
14619	                                             (__mmask16)(U),\
14620						     _MM_FROUND_CUR_DIRECTION))
14621	#define _mm_getmant_sd(X, Y, C, D)                                                  \
14622	  ((__m128d)__builtin_ia32_getmantsd_round ((__v2df)(__m128d)(X),                    \
14623	                                           (__v2df)(__m128d)(Y),                    \
14624	                                           (int)(((D)<<2) | (C)),                   \
14625						   _MM_FROUND_CUR_DIRECTION))
14626	
14627	#define _mm_mask_getmant_sd(W, U, X, Y, C, D)                                       \
14628	  ((__m128d)__builtin_ia32_getmantsd_mask_round ((__v2df)(__m128d)(X),                 \
14629	                                                 (__v2df)(__m128d)(Y),                 \
14630	                                                 (int)(((D)<<2) | (C)),                \
14631	                                                (__v2df)(__m128d)(W),                 \
14632	                                              (__mmask8)(U),\
14633						      _MM_FROUND_CUR_DIRECTION))
14634	
14635	#define _mm_maskz_getmant_sd(U, X, Y, C, D)                                         \
14636	  ((__m128d)__builtin_ia32_getmantsd_mask_round ((__v2df)(__m128d)(X),                 \
14637	                                           (__v2df)(__m128d)(Y),                     \
14638	                                              (int)(((D)<<2) | (C)),                \
14639	                                           (__v2df)_mm_setzero_pd(),             \
14640	                                              (__mmask8)(U),\
14641						      _MM_FROUND_CUR_DIRECTION))
14642	
14643	#define _mm_getmant_ss(X, Y, C, D)                                                  \
14644	  ((__m128)__builtin_ia32_getmantss_round ((__v4sf)(__m128)(X),                      \
14645	                                          (__v4sf)(__m128)(Y),                      \
14646	                                          (int)(((D)<<2) | (C)),                    \
14647						  _MM_FROUND_CUR_DIRECTION))
14648	
14649	#define _mm_mask_getmant_ss(W, U, X, Y, C, D)                                       \
14650	  ((__m128)__builtin_ia32_getmantss_mask_round ((__v4sf)(__m128)(X),                 \
14651	                                                 (__v4sf)(__m128)(Y),                 \
14652	                                                 (int)(((D)<<2) | (C)),                \
14653	                                                (__v4sf)(__m128)(W),                 \
14654	                                              (__mmask8)(U),\
14655						      _MM_FROUND_CUR_DIRECTION))
14656	
14657	#define _mm_maskz_getmant_ss(U, X, Y, C, D)                                         \
14658	  ((__m128)__builtin_ia32_getmantss_mask_round ((__v4sf)(__m128)(X),                 \
14659	                                           (__v4sf)(__m128)(Y),                     \
14660	                                              (int)(((D)<<2) | (C)),                \
14661	                                           (__v4sf)_mm_setzero_ps(),             \
14662	                                              (__mmask8)(U),\
14663						      _MM_FROUND_CUR_DIRECTION))
14664	
14665	#define _mm_getexp_ss(A, B)						      \
14666	  ((__m128)__builtin_ia32_getexpss128_round((__v4sf)(__m128)(A), (__v4sf)(__m128)(B),  \
14667						   _MM_FROUND_CUR_DIRECTION))
14668	
14669	#define _mm_mask_getexp_ss(W, U, A, B) \
14670	    (__m128)__builtin_ia32_getexpss_mask_round(A, B, W, U,\
14671	                                             _MM_FROUND_CUR_DIRECTION)
14672	
14673	#define _mm_maskz_getexp_ss(U, A, B)   \
14674	    (__m128)__builtin_ia32_getexpss_mask_round(A, B, (__v4sf)_mm_setzero_ps(), U,\
14675						      _MM_FROUND_CUR_DIRECTION)
14676	
14677	#define _mm_getexp_sd(A, B)						       \
14678	  ((__m128d)__builtin_ia32_getexpsd128_round((__v2df)(__m128d)(A), (__v2df)(__m128d)(B),\
14679						    _MM_FROUND_CUR_DIRECTION))
14680	
14681	#define _mm_mask_getexp_sd(W, U, A, B) \
14682	    (__m128d)__builtin_ia32_getexpsd_mask_round(A, B, W, U,\
14683	                                             _MM_FROUND_CUR_DIRECTION)
14684	
14685	#define _mm_maskz_getexp_sd(U, A, B)   \
14686	    (__m128d)__builtin_ia32_getexpsd_mask_round(A, B, (__v2df)_mm_setzero_pd(), U,\
14687						      _MM_FROUND_CUR_DIRECTION)
14688	
14689	#define _mm512_getexp_ps(A)						\
14690	  ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A),		\
14691	  (__v16sf)_mm512_undefined_ps(), (__mmask16)-1, _MM_FROUND_CUR_DIRECTION))
14692	
14693	#define _mm512_mask_getexp_ps(W, U, A)					\
14694	  ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A),		\
14695	  (__v16sf)(__m512)(W), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
14696	
14697	#define _mm512_maskz_getexp_ps(U, A)					\
14698	  ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A),		\
14699	  (__v16sf)_mm512_setzero_ps(), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
14700	
14701	#define _mm512_getexp_pd(A)						\
14702	  ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A),		\
14703	  (__v8df)_mm512_undefined_pd(), (__mmask8)-1, _MM_FROUND_CUR_DIRECTION))
14704	
14705	#define _mm512_mask_getexp_pd(W, U, A)					\
14706	  ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A),		\
14707	  (__v8df)(__m512d)(W), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
14708	
14709	#define _mm512_maskz_getexp_pd(U, A)					\
14710	  ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A),		\
14711	  (__v8df)_mm512_setzero_pd(), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
14712	#endif
14713	
14714	#ifdef __OPTIMIZE__
14715	extern __inline __m512
14716	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14717	_mm512_roundscale_ps (__m512 __A, const int __imm)
14718	{
14719	  return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A, __imm,
14720							  (__v16sf)
14721							  _mm512_undefined_ps (),
14722							  -1,
14723							  _MM_FROUND_CUR_DIRECTION);
14724	}
14725	
14726	extern __inline __m512
14727	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14728	_mm512_mask_roundscale_ps (__m512 __A, __mmask16 __B, __m512 __C,
14729				   const int __imm)
14730	{
14731	  return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __C, __imm,
14732							  (__v16sf) __A,
14733							  (__mmask16) __B,
14734							  _MM_FROUND_CUR_DIRECTION);
14735	}
14736	
14737	extern __inline __m512
14738	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14739	_mm512_maskz_roundscale_ps (__mmask16 __A, __m512 __B, const int __imm)
14740	{
14741	  return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __B,
14742							  __imm,
14743							  (__v16sf)
14744							  _mm512_setzero_ps (),
14745							  (__mmask16) __A,
14746							  _MM_FROUND_CUR_DIRECTION);
14747	}
14748	
14749	extern __inline __m512d
14750	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14751	_mm512_roundscale_pd (__m512d __A, const int __imm)
14752	{
14753	  return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A, __imm,
14754							   (__v8df)
14755							   _mm512_undefined_pd (),
14756							   -1,
14757							   _MM_FROUND_CUR_DIRECTION);
14758	}
14759	
14760	extern __inline __m512d
14761	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14762	_mm512_mask_roundscale_pd (__m512d __A, __mmask8 __B, __m512d __C,
14763				   const int __imm)
14764	{
14765	  return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __C, __imm,
14766							   (__v8df) __A,
14767							   (__mmask8) __B,
14768							   _MM_FROUND_CUR_DIRECTION);
14769	}
14770	
14771	extern __inline __m512d
14772	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14773	_mm512_maskz_roundscale_pd (__mmask8 __A, __m512d __B, const int __imm)
14774	{
14775	  return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __B,
14776							   __imm,
14777							   (__v8df)
14778							   _mm512_setzero_pd (),
14779							   (__mmask8) __A,
14780							   _MM_FROUND_CUR_DIRECTION);
14781	}
14782	
14783	extern __inline __m128
14784	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14785	_mm_roundscale_ss (__m128 __A, __m128 __B, const int __imm)
14786	{
14787	  return (__m128) __builtin_ia32_rndscaless_round ((__v4sf) __A,
14788							   (__v4sf) __B, __imm,
14789							   _MM_FROUND_CUR_DIRECTION);
14790	}
14791	
14792	extern __inline __m128d
14793	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14794	_mm_roundscale_sd (__m128d __A, __m128d __B, const int __imm)
14795	{
14796	  return (__m128d) __builtin_ia32_rndscalesd_round ((__v2df) __A,
14797							    (__v2df) __B, __imm,
14798							   _MM_FROUND_CUR_DIRECTION);
14799	}
14800	
14801	#else
14802	#define _mm512_roundscale_ps(A, B) \
14803	  ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(A), (int)(B),\
14804	    (__v16sf)_mm512_undefined_ps(), (__mmask16)(-1), _MM_FROUND_CUR_DIRECTION))
14805	#define _mm512_mask_roundscale_ps(A, B, C, D)				\
14806	  ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(C),	\
14807						    (int)(D),			\
14808						    (__v16sf)(__m512)(A),	\
14809						    (__mmask16)(B), _MM_FROUND_CUR_DIRECTION))
14810	#define _mm512_maskz_roundscale_ps(A, B, C)				\
14811	  ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(B),	\
14812						    (int)(C),			\
14813						    (__v16sf)_mm512_setzero_ps(),\
14814						    (__mmask16)(A), _MM_FROUND_CUR_DIRECTION))
14815	#define _mm512_roundscale_pd(A, B) \
14816	  ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(A), (int)(B),\
14817	    (__v8df)_mm512_undefined_pd(), (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
14818	#define _mm512_mask_roundscale_pd(A, B, C, D)				\
14819	  ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(C),	\
14820						     (int)(D),			\
14821						     (__v8df)(__m512d)(A),	\
14822						     (__mmask8)(B), _MM_FROUND_CUR_DIRECTION))
14823	#define _mm512_maskz_roundscale_pd(A, B, C)				\
14824	  ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(B),	\
14825						     (int)(C),			\
14826						     (__v8df)_mm512_setzero_pd(),\
14827						     (__mmask8)(A), _MM_FROUND_CUR_DIRECTION))
14828	#define _mm_roundscale_ss(A, B, C)					\
14829	  ((__m128) __builtin_ia32_rndscaless_round ((__v4sf)(__m128)(A),	\
14830	  (__v4sf)(__m128)(B), (int)(C), _MM_FROUND_CUR_DIRECTION))
14831	#define _mm_roundscale_sd(A, B, C)					\
14832	  ((__m128d) __builtin_ia32_rndscalesd_round ((__v2df)(__m128d)(A),	\
14833	    (__v2df)(__m128d)(B), (int)(C), _MM_FROUND_CUR_DIRECTION))
14834	#endif
14835	
14836	#ifdef __OPTIMIZE__
14837	extern __inline __mmask8
14838	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14839	_mm512_cmp_pd_mask (__m512d __X, __m512d __Y, const int __P)
14840	{
14841	  return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
14842							  (__v8df) __Y, __P,
14843							  (__mmask8) -1,
14844							  _MM_FROUND_CUR_DIRECTION);
14845	}
14846	
14847	extern __inline __mmask16
14848	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14849	_mm512_cmp_ps_mask (__m512 __X, __m512 __Y, const int __P)
14850	{
14851	  return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
14852							   (__v16sf) __Y, __P,
14853							   (__mmask16) -1,
14854							   _MM_FROUND_CUR_DIRECTION);
14855	}
14856	
14857	extern __inline __mmask16
14858	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14859	_mm512_mask_cmp_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y, const int __P)
14860	{
14861	  return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
14862							   (__v16sf) __Y, __P,
14863							   (__mmask16) __U,
14864							   _MM_FROUND_CUR_DIRECTION);
14865	}
14866	
14867	extern __inline __mmask8
14868	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14869	_mm512_mask_cmp_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y, const int __P)
14870	{
14871	  return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
14872							  (__v8df) __Y, __P,
14873							  (__mmask8) __U,
14874							  _MM_FROUND_CUR_DIRECTION);
14875	}
14876	
14877	extern __inline __mmask8
14878	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14879	_mm512_cmpeq_pd_mask (__m512d __X, __m512d __Y)
14880	{
14881	  return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
14882							  (__v8df) __Y, _CMP_EQ_OQ,
14883							  (__mmask8) -1,
14884							  _MM_FROUND_CUR_DIRECTION);
14885	}
14886	
14887	extern __inline __mmask8
14888	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14889	_mm512_mask_cmpeq_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
14890	{
14891	  return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
14892							  (__v8df) __Y, _CMP_EQ_OQ,
14893							  (__mmask8) __U,
14894							  _MM_FROUND_CUR_DIRECTION);
14895	}
14896	
14897	extern __inline __mmask8
14898	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14899	_mm512_cmplt_pd_mask (__m512d __X, __m512d __Y)
14900	{
14901	  return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
14902							  (__v8df) __Y, _CMP_LT_OS,
14903							  (__mmask8) -1,
14904							  _MM_FROUND_CUR_DIRECTION);
14905	}
14906	
14907	extern __inline __mmask8
14908	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14909	_mm512_mask_cmplt_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
14910	{
14911	  return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
14912							  (__v8df) __Y, _CMP_LT_OS,
14913							  (__mmask8) __U,
14914							  _MM_FROUND_CUR_DIRECTION);
14915	}
14916	
14917	extern __inline __mmask8
14918	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14919	_mm512_cmple_pd_mask (__m512d __X, __m512d __Y)
14920	{
14921	  return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
14922							  (__v8df) __Y, _CMP_LE_OS,
14923							  (__mmask8) -1,
14924							  _MM_FROUND_CUR_DIRECTION);
14925	}
14926	
14927	extern __inline __mmask8
14928	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14929	_mm512_mask_cmple_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
14930	{
14931	  return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
14932							  (__v8df) __Y, _CMP_LE_OS,
14933							  (__mmask8) __U,
14934							  _MM_FROUND_CUR_DIRECTION);
14935	}
14936	
14937	extern __inline __mmask8
14938	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14939	_mm512_cmpunord_pd_mask (__m512d __X, __m512d __Y)
14940	{
14941	  return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
14942							  (__v8df) __Y, _CMP_UNORD_Q,
14943							  (__mmask8) -1,
14944							  _MM_FROUND_CUR_DIRECTION);
14945	}
14946	
14947	extern __inline __mmask8
14948	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14949	_mm512_mask_cmpunord_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
14950	{
14951	  return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
14952							  (__v8df) __Y, _CMP_UNORD_Q,
14953							  (__mmask8) __U,
14954							  _MM_FROUND_CUR_DIRECTION);
14955	}
14956	
14957	extern __inline __mmask8
14958	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14959	_mm512_cmpneq_pd_mask (__m512d __X, __m512d __Y)
14960	{
14961	  return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
14962							  (__v8df) __Y, _CMP_NEQ_UQ,
14963							  (__mmask8) -1,
14964							  _MM_FROUND_CUR_DIRECTION);
14965	}
14966	
14967	extern __inline __mmask8
14968	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14969	_mm512_mask_cmpneq_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
14970	{
14971	  return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
14972							  (__v8df) __Y, _CMP_NEQ_UQ,
14973							  (__mmask8) __U,
14974							  _MM_FROUND_CUR_DIRECTION);
14975	}
14976	
14977	extern __inline __mmask8
14978	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14979	_mm512_cmpnlt_pd_mask (__m512d __X, __m512d __Y)
14980	{
14981	  return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
14982							  (__v8df) __Y, _CMP_NLT_US,
14983							  (__mmask8) -1,
14984							  _MM_FROUND_CUR_DIRECTION);
14985	}
14986	
14987	extern __inline __mmask8
14988	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14989	_mm512_mask_cmpnlt_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
14990	{
14991	  return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
14992							  (__v8df) __Y, _CMP_NLT_US,
14993							  (__mmask8) __U,
14994							  _MM_FROUND_CUR_DIRECTION);
14995	}
14996	
14997	extern __inline __mmask8
14998	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14999	_mm512_cmpnle_pd_mask (__m512d __X, __m512d __Y)
15000	{
15001	  return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15002							  (__v8df) __Y, _CMP_NLE_US,
15003							  (__mmask8) -1,
15004							  _MM_FROUND_CUR_DIRECTION);
15005	}
15006	
15007	extern __inline __mmask8
15008	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15009	_mm512_mask_cmpnle_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
15010	{
15011	  return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15012							  (__v8df) __Y, _CMP_NLE_US,
15013							  (__mmask8) __U,
15014							  _MM_FROUND_CUR_DIRECTION);
15015	}
15016	
15017	extern __inline __mmask8
15018	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15019	_mm512_cmpord_pd_mask (__m512d __X, __m512d __Y)
15020	{
15021	  return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15022							  (__v8df) __Y, _CMP_ORD_Q,
15023							  (__mmask8) -1,
15024							  _MM_FROUND_CUR_DIRECTION);
15025	}
15026	
15027	extern __inline __mmask8
15028	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15029	_mm512_mask_cmpord_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
15030	{
15031	  return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15032							  (__v8df) __Y, _CMP_ORD_Q,
15033							  (__mmask8) __U,
15034							  _MM_FROUND_CUR_DIRECTION);
15035	}
15036	
15037	extern __inline __mmask16
15038	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15039	_mm512_cmpeq_ps_mask (__m512 __X, __m512 __Y)
15040	{
15041	  return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15042							   (__v16sf) __Y, _CMP_EQ_OQ,
15043							   (__mmask16) -1,
15044							   _MM_FROUND_CUR_DIRECTION);
15045	}
15046	
15047	extern __inline __mmask16
15048	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15049	_mm512_mask_cmpeq_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
15050	{
15051	   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15052							   (__v16sf) __Y, _CMP_EQ_OQ,
15053							   (__mmask16) __U,
15054							   _MM_FROUND_CUR_DIRECTION);
15055	}
15056	
15057	extern __inline __mmask16
15058	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15059	_mm512_cmplt_ps_mask (__m512 __X, __m512 __Y)
15060	{
15061	  return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15062							   (__v16sf) __Y, _CMP_LT_OS,
15063							   (__mmask16) -1,
15064							   _MM_FROUND_CUR_DIRECTION);
15065	}
15066	
15067	extern __inline __mmask16
15068	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15069	_mm512_mask_cmplt_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
15070	{
15071	   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15072							   (__v16sf) __Y, _CMP_LT_OS,
15073							   (__mmask16) __U,
15074							   _MM_FROUND_CUR_DIRECTION);
15075	}
15076	
15077	extern __inline __mmask16
15078	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15079	_mm512_cmple_ps_mask (__m512 __X, __m512 __Y)
15080	{
15081	  return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15082							   (__v16sf) __Y, _CMP_LE_OS,
15083							   (__mmask16) -1,
15084							   _MM_FROUND_CUR_DIRECTION);
15085	}
15086	
15087	extern __inline __mmask16
15088	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15089	_mm512_mask_cmple_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
15090	{
15091	   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15092							   (__v16sf) __Y, _CMP_LE_OS,
15093							   (__mmask16) __U,
15094							   _MM_FROUND_CUR_DIRECTION);
15095	}
15096	
15097	extern __inline __mmask16
15098	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15099	_mm512_cmpunord_ps_mask (__m512 __X, __m512 __Y)
15100	{
15101	  return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15102							   (__v16sf) __Y, _CMP_UNORD_Q,
15103							   (__mmask16) -1,
15104							   _MM_FROUND_CUR_DIRECTION);
15105	}
15106	
15107	extern __inline __mmask16
15108	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15109	_mm512_mask_cmpunord_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
15110	{
15111	   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15112							   (__v16sf) __Y, _CMP_UNORD_Q,
15113							   (__mmask16) __U,
15114							   _MM_FROUND_CUR_DIRECTION);
15115	}
15116	
15117	extern __inline __mmask16
15118	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15119	_mm512_cmpneq_ps_mask (__m512 __X, __m512 __Y)
15120	{
15121	  return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15122							   (__v16sf) __Y, _CMP_NEQ_UQ,
15123							   (__mmask16) -1,
15124							   _MM_FROUND_CUR_DIRECTION);
15125	}
15126	
15127	extern __inline __mmask16
15128	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15129	_mm512_mask_cmpneq_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
15130	{
15131	   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15132							   (__v16sf) __Y, _CMP_NEQ_UQ,
15133							   (__mmask16) __U,
15134							   _MM_FROUND_CUR_DIRECTION);
15135	}
15136	
15137	extern __inline __mmask16
15138	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15139	_mm512_cmpnlt_ps_mask (__m512 __X, __m512 __Y)
15140	{
15141	  return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15142							   (__v16sf) __Y, _CMP_NLT_US,
15143							   (__mmask16) -1,
15144							   _MM_FROUND_CUR_DIRECTION);
15145	}
15146	
15147	extern __inline __mmask16
15148	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15149	_mm512_mask_cmpnlt_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
15150	{
15151	   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15152							   (__v16sf) __Y, _CMP_NLT_US,
15153							   (__mmask16) __U,
15154							   _MM_FROUND_CUR_DIRECTION);
15155	}
15156	
15157	extern __inline __mmask16
15158	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15159	_mm512_cmpnle_ps_mask (__m512 __X, __m512 __Y)
15160	{
15161	  return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15162							   (__v16sf) __Y, _CMP_NLE_US,
15163							   (__mmask16) -1,
15164							   _MM_FROUND_CUR_DIRECTION);
15165	}
15166	
15167	extern __inline __mmask16
15168	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15169	_mm512_mask_cmpnle_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
15170	{
15171	   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15172							   (__v16sf) __Y, _CMP_NLE_US,
15173							   (__mmask16) __U,
15174							   _MM_FROUND_CUR_DIRECTION);
15175	}
15176	
15177	extern __inline __mmask16
15178	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15179	_mm512_cmpord_ps_mask (__m512 __X, __m512 __Y)
15180	{
15181	  return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15182							   (__v16sf) __Y, _CMP_ORD_Q,
15183							   (__mmask16) -1,
15184							   _MM_FROUND_CUR_DIRECTION);
15185	}
15186	
15187	extern __inline __mmask16
15188	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15189	_mm512_mask_cmpord_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
15190	{
15191	   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15192							   (__v16sf) __Y, _CMP_ORD_Q,
15193							   (__mmask16) __U,
15194							   _MM_FROUND_CUR_DIRECTION);
15195	}
15196	
15197	extern __inline __mmask8
15198	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15199	_mm_cmp_sd_mask (__m128d __X, __m128d __Y, const int __P)
15200	{
15201	  return (__mmask8) __builtin_ia32_cmpsd_mask ((__v2df) __X,
15202						       (__v2df) __Y, __P,
15203						       (__mmask8) -1,
15204						       _MM_FROUND_CUR_DIRECTION);
15205	}
15206	
15207	extern __inline __mmask8
15208	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15209	_mm_mask_cmp_sd_mask (__mmask8 __M, __m128d __X, __m128d __Y, const int __P)
15210	{
15211	  return (__mmask8) __builtin_ia32_cmpsd_mask ((__v2df) __X,
15212						       (__v2df) __Y, __P,
15213						       (__mmask8) __M,
15214						       _MM_FROUND_CUR_DIRECTION);
15215	}
15216	
15217	extern __inline __mmask8
15218	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15219	_mm_cmp_ss_mask (__m128 __X, __m128 __Y, const int __P)
15220	{
15221	  return (__mmask8) __builtin_ia32_cmpss_mask ((__v4sf) __X,
15222						       (__v4sf) __Y, __P,
15223						       (__mmask8) -1,
15224						       _MM_FROUND_CUR_DIRECTION);
15225	}
15226	
15227	extern __inline __mmask8
15228	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15229	_mm_mask_cmp_ss_mask (__mmask8 __M, __m128 __X, __m128 __Y, const int __P)
15230	{
15231	  return (__mmask8) __builtin_ia32_cmpss_mask ((__v4sf) __X,
15232						       (__v4sf) __Y, __P,
15233						       (__mmask8) __M,
15234						       _MM_FROUND_CUR_DIRECTION);
15235	}
15236	
15237	#else
15238	#define _mm512_cmp_pd_mask(X, Y, P)					\
15239	  ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X),	\
15240						    (__v8df)(__m512d)(Y), (int)(P),\
15241						    (__mmask8)-1,_MM_FROUND_CUR_DIRECTION))
15242	
15243	#define _mm512_cmp_ps_mask(X, Y, P)					\
15244	  ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X),	\
15245						     (__v16sf)(__m512)(Y), (int)(P),\
15246						     (__mmask16)-1,_MM_FROUND_CUR_DIRECTION))
15247	
15248	#define _mm512_mask_cmp_pd_mask(M, X, Y, P)					\
15249	  ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X),	\
15250						    (__v8df)(__m512d)(Y), (int)(P),\
15251						    (__mmask8)M, _MM_FROUND_CUR_DIRECTION))
15252	
15253	#define _mm512_mask_cmp_ps_mask(M, X, Y, P)					\
15254	  ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X),	\
15255						     (__v16sf)(__m512)(Y), (int)(P),\
15256						     (__mmask16)M,_MM_FROUND_CUR_DIRECTION))
15257	
15258	#define _mm_cmp_sd_mask(X, Y, P)					\
15259	  ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X),		\
15260						 (__v2df)(__m128d)(Y), (int)(P),\
15261						 (__mmask8)-1,_MM_FROUND_CUR_DIRECTION))
15262	
15263	#define _mm_mask_cmp_sd_mask(M, X, Y, P)					\
15264	  ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X),		\
15265						 (__v2df)(__m128d)(Y), (int)(P),\
15266						 M,_MM_FROUND_CUR_DIRECTION))
15267	
15268	#define _mm_cmp_ss_mask(X, Y, P)					\
15269	  ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X),		\
15270						 (__v4sf)(__m128)(Y), (int)(P), \
15271						 (__mmask8)-1,_MM_FROUND_CUR_DIRECTION))
15272	
15273	#define _mm_mask_cmp_ss_mask(M, X, Y, P)					\
15274	  ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X),		\
15275						 (__v4sf)(__m128)(Y), (int)(P), \
15276						 M,_MM_FROUND_CUR_DIRECTION))
15277	#endif
15278	
15279	extern __inline __mmask16
15280	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15281	_mm512_kmov (__mmask16 __A)
15282	{
15283	  return __builtin_ia32_kmovw (__A);
15284	}
15285	
15286	extern __inline __m512
15287	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15288	_mm512_castpd_ps (__m512d __A)
15289	{
15290	  return (__m512) (__A);
15291	}
15292	
15293	extern __inline __m512i
15294	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15295	_mm512_castpd_si512 (__m512d __A)
15296	{
15297	  return (__m512i) (__A);
15298	}
15299	
15300	extern __inline __m512d
15301	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15302	_mm512_castps_pd (__m512 __A)
15303	{
15304	  return (__m512d) (__A);
15305	}
15306	
15307	extern __inline __m512i
15308	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15309	_mm512_castps_si512 (__m512 __A)
15310	{
15311	  return (__m512i) (__A);
15312	}
15313	
15314	extern __inline __m512
15315	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15316	_mm512_castsi512_ps (__m512i __A)
15317	{
15318	  return (__m512) (__A);
15319	}
15320	
15321	extern __inline __m512d
15322	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15323	_mm512_castsi512_pd (__m512i __A)
15324	{
15325	  return (__m512d) (__A);
15326	}
15327	
15328	extern __inline __m128d
15329	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15330	_mm512_castpd512_pd128 (__m512d __A)
15331	{
15332	  return (__m128d)_mm512_extractf32x4_ps((__m512)__A, 0);
15333	}
15334	
15335	extern __inline __m128
15336	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15337	_mm512_castps512_ps128 (__m512 __A)
15338	{
15339	  return _mm512_extractf32x4_ps(__A, 0);
15340	}
15341	
15342	extern __inline __m128i
15343	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15344	_mm512_castsi512_si128 (__m512i __A)
15345	{
15346	  return (__m128i)_mm512_extracti32x4_epi32((__m512i)__A, 0);
15347	}
15348	
15349	extern __inline __m256d
15350	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15351	_mm512_castpd512_pd256 (__m512d __A)
15352	{
15353	  return _mm512_extractf64x4_pd(__A, 0);
15354	}
15355	
15356	extern __inline __m256
15357	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15358	_mm512_castps512_ps256 (__m512 __A)
15359	{
15360	  return (__m256)_mm512_extractf64x4_pd((__m512d)__A, 0);
15361	}
15362	
15363	extern __inline __m256i
15364	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15365	_mm512_castsi512_si256 (__m512i __A)
15366	{
15367	  return (__m256i)_mm512_extractf64x4_pd((__m512d)__A, 0);
15368	}
15369	
15370	extern __inline __m512d
15371	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15372	_mm512_castpd128_pd512 (__m128d __A)
15373	{
15374	  return (__m512d) __builtin_ia32_pd512_pd((__m128d)__A);
15375	}
15376	
15377	extern __inline __m512
15378	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15379	_mm512_castps128_ps512 (__m128 __A)
15380	{
15381	  return (__m512) __builtin_ia32_ps512_ps((__m128)__A);
15382	}
15383	
15384	extern __inline __m512i
15385	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15386	_mm512_castsi128_si512 (__m128i __A)
15387	{
15388	  return (__m512i) __builtin_ia32_si512_si((__v4si)__A);
15389	}
15390	
15391	extern __inline __m512d
15392	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15393	_mm512_castpd256_pd512 (__m256d __A)
15394	{
15395	  return __builtin_ia32_pd512_256pd (__A);
15396	}
15397	
15398	extern __inline __m512
15399	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15400	_mm512_castps256_ps512 (__m256 __A)
15401	{
15402	  return __builtin_ia32_ps512_256ps (__A);
15403	}
15404	
15405	extern __inline __m512i
15406	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15407	_mm512_castsi256_si512 (__m256i __A)
15408	{
15409	  return (__m512i)__builtin_ia32_si512_256si ((__v8si)__A);
15410	}
15411	
15412	extern __inline __mmask16
15413	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15414	_mm512_cmpeq_epu32_mask (__m512i __A, __m512i __B)
15415	{
15416	  return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __A,
15417							     (__v16si) __B, 0,
15418							     (__mmask16) -1);
15419	}
15420	
15421	extern __inline __mmask16
15422	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15423	_mm512_mask_cmpeq_epu32_mask (__mmask16 __U, __m512i __A, __m512i __B)
15424	{
15425	  return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __A,
15426							     (__v16si) __B, 0, __U);
15427	}
15428	
15429	extern __inline __mmask8
15430	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15431	_mm512_mask_cmpeq_epu64_mask (__mmask8 __U, __m512i __A, __m512i __B)
15432	{
15433	  return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __A,
15434							    (__v8di) __B, 0, __U);
15435	}
15436	
15437	extern __inline __mmask8
15438	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15439	_mm512_cmpeq_epu64_mask (__m512i __A, __m512i __B)
15440	{
15441	  return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __A,
15442							    (__v8di) __B, 0,
15443							    (__mmask8) -1);
15444	}
15445	
15446	extern __inline __mmask16
15447	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15448	_mm512_cmpgt_epu32_mask (__m512i __A, __m512i __B)
15449	{
15450	  return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __A,
15451							     (__v16si) __B, 6,
15452							     (__mmask16) -1);
15453	}
15454	
15455	extern __inline __mmask16
15456	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15457	_mm512_mask_cmpgt_epu32_mask (__mmask16 __U, __m512i __A, __m512i __B)
15458	{
15459	  return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __A,
15460							     (__v16si) __B, 6,  __U);
15461	}
15462	
15463	extern __inline __mmask8
15464	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15465	_mm512_mask_cmpgt_epu64_mask (__mmask8 __U, __m512i __A, __m512i __B)
15466	{
15467	  return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __A,
15468							    (__v8di) __B, 6, __U);
15469	}
15470	
15471	extern __inline __mmask8
15472	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15473	_mm512_cmpgt_epu64_mask (__m512i __A, __m512i __B)
15474	{
15475	  return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __A,
15476							    (__v8di) __B, 6,
15477							    (__mmask8) -1);
15478	}
15479	
15480	#undef __MM512_REDUCE_OP
15481	#define __MM512_REDUCE_OP(op) \
15482	  __v8si __T1 = (__v8si) _mm512_extracti64x4_epi64 (__A, 1);		\
15483	  __v8si __T2 = (__v8si) _mm512_extracti64x4_epi64 (__A, 0);		\
15484	  __m256i __T3 = (__m256i) (__T1 op __T2);				\
15485	  __v4si __T4 = (__v4si) _mm256_extracti128_si256 (__T3, 1);		\
15486	  __v4si __T5 = (__v4si) _mm256_extracti128_si256 (__T3, 0);		\
15487	  __v4si __T6 = __T4 op __T5;						\
15488	  __v4si __T7 = __builtin_shuffle (__T6, (__v4si) { 2, 3, 0, 1 });	\
15489	  __v4si __T8 = __T6 op __T7;						\
15490	  return __T8[0] op __T8[1]
15491	
15492	extern __inline int
15493	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15494	_mm512_reduce_add_epi32 (__m512i __A)
15495	{
15496	  __MM512_REDUCE_OP (+);
15497	}
15498	
15499	extern __inline int
15500	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15501	_mm512_reduce_mul_epi32 (__m512i __A)
15502	{
15503	  __MM512_REDUCE_OP (*);
15504	}
15505	
15506	extern __inline int
15507	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15508	_mm512_reduce_and_epi32 (__m512i __A)
15509	{
15510	  __MM512_REDUCE_OP (&);
15511	}
15512	
15513	extern __inline int
15514	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15515	_mm512_reduce_or_epi32 (__m512i __A)
15516	{
15517	  __MM512_REDUCE_OP (|);
15518	}
15519	
15520	extern __inline int
15521	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15522	_mm512_mask_reduce_add_epi32 (__mmask16 __U, __m512i __A)
15523	{
15524	  __A = _mm512_maskz_mov_epi32 (__U, __A);
15525	  __MM512_REDUCE_OP (+);
15526	}
15527	
15528	extern __inline int
15529	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15530	_mm512_mask_reduce_mul_epi32 (__mmask16 __U, __m512i __A)
15531	{
15532	  __A = _mm512_mask_mov_epi32 (_mm512_set1_epi32 (1), __U, __A);
15533	  __MM512_REDUCE_OP (*);
15534	}
15535	
15536	extern __inline int
15537	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15538	_mm512_mask_reduce_and_epi32 (__mmask16 __U, __m512i __A)
15539	{
15540	  __A = _mm512_mask_mov_epi32 (_mm512_set1_epi32 (~0), __U, __A);
15541	  __MM512_REDUCE_OP (&);
15542	}
15543	
15544	extern __inline int
15545	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15546	_mm512_mask_reduce_or_epi32 (__mmask16 __U, __m512i __A)
15547	{
15548	  __A = _mm512_maskz_mov_epi32 (__U, __A);
15549	  __MM512_REDUCE_OP (|);
15550	}
15551	
15552	#undef __MM512_REDUCE_OP
15553	#define __MM512_REDUCE_OP(op) \
15554	  __m256i __T1 = (__m256i) _mm512_extracti64x4_epi64 (__A, 1);		\
15555	  __m256i __T2 = (__m256i) _mm512_extracti64x4_epi64 (__A, 0);		\
15556	  __m256i __T3 = _mm256_##op (__T1, __T2);				\
15557	  __m128i __T4 = (__m128i) _mm256_extracti128_si256 (__T3, 1);		\
15558	  __m128i __T5 = (__m128i) _mm256_extracti128_si256 (__T3, 0);		\
15559	  __m128i __T6 = _mm_##op (__T4, __T5);					\
15560	  __m128i __T7 = (__m128i) __builtin_shuffle ((__v4si) __T6,		\
15561						      (__v4si) { 2, 3, 0, 1 });	\
15562	  __m128i __T8 = _mm_##op (__T6, __T7);					\
15563	  __m128i __T9 = (__m128i) __builtin_shuffle ((__v4si) __T8,		\
15564						      (__v4si) { 1, 0, 1, 0 });	\
15565	  __v4si __T10 = (__v4si) _mm_##op (__T8, __T9);			\
15566	  return __T10[0]
15567	
15568	extern __inline int
15569	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15570	_mm512_reduce_min_epi32 (__m512i __A)
15571	{
15572	  __MM512_REDUCE_OP (min_epi32);
15573	}
15574	
15575	extern __inline int
15576	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15577	_mm512_reduce_max_epi32 (__m512i __A)
15578	{
15579	  __MM512_REDUCE_OP (max_epi32);
15580	}
15581	
15582	extern __inline unsigned int
15583	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15584	_mm512_reduce_min_epu32 (__m512i __A)
15585	{
15586	  __MM512_REDUCE_OP (min_epu32);
15587	}
15588	
15589	extern __inline unsigned int
15590	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15591	_mm512_reduce_max_epu32 (__m512i __A)
15592	{
15593	  __MM512_REDUCE_OP (max_epu32);
15594	}
15595	
15596	extern __inline int
15597	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15598	_mm512_mask_reduce_min_epi32 (__mmask16 __U, __m512i __A)
15599	{
15600	  __A = _mm512_mask_mov_epi32 (_mm512_set1_epi32 (__INT_MAX__), __U, __A);
15601	  __MM512_REDUCE_OP (min_epi32);
15602	}
15603	
15604	extern __inline int
15605	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15606	_mm512_mask_reduce_max_epi32 (__mmask16 __U, __m512i __A)
15607	{
15608	  __A = _mm512_mask_mov_epi32 (_mm512_set1_epi32 (-__INT_MAX__ - 1), __U, __A);
15609	  __MM512_REDUCE_OP (max_epi32);
15610	}
15611	
15612	extern __inline unsigned int
15613	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15614	_mm512_mask_reduce_min_epu32 (__mmask16 __U, __m512i __A)
15615	{
15616	  __A = _mm512_mask_mov_epi32 (_mm512_set1_epi32 (~0), __U, __A);
15617	  __MM512_REDUCE_OP (min_epu32);
15618	}
15619	
15620	extern __inline unsigned int
15621	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15622	_mm512_mask_reduce_max_epu32 (__mmask16 __U, __m512i __A)
15623	{
15624	  __A = _mm512_maskz_mov_epi32 (__U, __A);
15625	  __MM512_REDUCE_OP (max_epu32);
15626	}
15627	
15628	#undef __MM512_REDUCE_OP
15629	#define __MM512_REDUCE_OP(op) \
15630	  __m256 __T1 = (__m256) _mm512_extractf64x4_pd ((__m512d) __A, 1);	\
15631	  __m256 __T2 = (__m256) _mm512_extractf64x4_pd ((__m512d) __A, 0);	\
15632	  __m256 __T3 = __T1 op __T2;						\
15633	  __m128 __T4 = _mm256_extractf128_ps (__T3, 1);			\
15634	  __m128 __T5 = _mm256_extractf128_ps (__T3, 0);			\
15635	  __m128 __T6 = __T4 op __T5;						\
15636	  __m128 __T7 = __builtin_shuffle (__T6, (__v4si) { 2, 3, 0, 1 });	\
15637	  __m128 __T8 = __T6 op __T7;						\
15638	  return __T8[0] op __T8[1]
15639	
15640	extern __inline float
15641	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15642	_mm512_reduce_add_ps (__m512 __A)
15643	{
15644	  __MM512_REDUCE_OP (+);
15645	}
15646	
15647	extern __inline float
15648	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15649	_mm512_reduce_mul_ps (__m512 __A)
15650	{
15651	  __MM512_REDUCE_OP (*);
15652	}
15653	
15654	extern __inline float
15655	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15656	_mm512_mask_reduce_add_ps (__mmask16 __U, __m512 __A)
15657	{
15658	  __A = _mm512_maskz_mov_ps (__U, __A);
15659	  __MM512_REDUCE_OP (+);
15660	}
15661	
15662	extern __inline float
15663	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15664	_mm512_mask_reduce_mul_ps (__mmask16 __U, __m512 __A)
15665	{
15666	  __A = _mm512_mask_mov_ps (_mm512_set1_ps (1.0f), __U, __A);
15667	  __MM512_REDUCE_OP (*);
15668	}
15669	
15670	#undef __MM512_REDUCE_OP
15671	#define __MM512_REDUCE_OP(op) \
15672	  __m256 __T1 = (__m256) _mm512_extractf64x4_pd ((__m512d) __A, 1);	\
15673	  __m256 __T2 = (__m256) _mm512_extractf64x4_pd ((__m512d) __A, 0);	\
15674	  __m256 __T3 = _mm256_##op (__T1, __T2);				\
15675	  __m128 __T4 = _mm256_extractf128_ps (__T3, 1);			\
15676	  __m128 __T5 = _mm256_extractf128_ps (__T3, 0);			\
15677	  __m128 __T6 = _mm_##op (__T4, __T5);					\
15678	  __m128 __T7 = __builtin_shuffle (__T6, (__v4si) { 2, 3, 0, 1 });	\
15679	  __m128 __T8 = _mm_##op (__T6, __T7);					\
15680	  __m128 __T9 = __builtin_shuffle (__T8, (__v4si) { 1, 0, 1, 0 });	\
15681	  __m128 __T10 = _mm_##op (__T8, __T9);					\
15682	  return __T10[0]
15683	
15684	extern __inline float
15685	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15686	_mm512_reduce_min_ps (__m512 __A)
15687	{
15688	  __MM512_REDUCE_OP (min_ps);
15689	}
15690	
15691	extern __inline float
15692	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15693	_mm512_reduce_max_ps (__m512 __A)
15694	{
15695	  __MM512_REDUCE_OP (max_ps);
15696	}
15697	
15698	extern __inline float
15699	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15700	_mm512_mask_reduce_min_ps (__mmask16 __U, __m512 __A)
15701	{
15702	  __A = _mm512_mask_mov_ps (_mm512_set1_ps (__builtin_inff ()), __U, __A);
15703	  __MM512_REDUCE_OP (min_ps);
15704	}
15705	
15706	extern __inline float
15707	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15708	_mm512_mask_reduce_max_ps (__mmask16 __U, __m512 __A)
15709	{
15710	  __A = _mm512_mask_mov_ps (_mm512_set1_ps (-__builtin_inff ()), __U, __A);
15711	  __MM512_REDUCE_OP (max_ps);
15712	}
15713	
15714	#undef __MM512_REDUCE_OP
15715	#define __MM512_REDUCE_OP(op) \
15716	  __v4di __T1 = (__v4di) _mm512_extracti64x4_epi64 (__A, 1);		\
15717	  __v4di __T2 = (__v4di) _mm512_extracti64x4_epi64 (__A, 0);		\
15718	  __m256i __T3 = (__m256i) (__T1 op __T2);				\
15719	  __v2di __T4 = (__v2di) _mm256_extracti128_si256 (__T3, 1);		\
15720	  __v2di __T5 = (__v2di) _mm256_extracti128_si256 (__T3, 0);		\
15721	  __v2di __T6 = __T4 op __T5;						\
15722	  return __T6[0] op __T6[1]
15723	
15724	extern __inline long long
15725	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15726	_mm512_reduce_add_epi64 (__m512i __A)
15727	{
15728	  __MM512_REDUCE_OP (+);
15729	}
15730	
15731	extern __inline long long
15732	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15733	_mm512_reduce_mul_epi64 (__m512i __A)
15734	{
15735	  __MM512_REDUCE_OP (*);
15736	}
15737	
15738	extern __inline long long
15739	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15740	_mm512_reduce_and_epi64 (__m512i __A)
15741	{
15742	  __MM512_REDUCE_OP (&);
15743	}
15744	
15745	extern __inline long long
15746	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15747	_mm512_reduce_or_epi64 (__m512i __A)
15748	{
15749	  __MM512_REDUCE_OP (|);
15750	}
15751	
15752	extern __inline long long
15753	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15754	_mm512_mask_reduce_add_epi64 (__mmask8 __U, __m512i __A)
15755	{
15756	  __A = _mm512_maskz_mov_epi64 (__U, __A);
15757	  __MM512_REDUCE_OP (+);
15758	}
15759	
15760	extern __inline long long
15761	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15762	_mm512_mask_reduce_mul_epi64 (__mmask8 __U, __m512i __A)
15763	{
15764	  __A = _mm512_mask_mov_epi64 (_mm512_set1_epi64 (1LL), __U, __A);
15765	  __MM512_REDUCE_OP (*);
15766	}
15767	
15768	extern __inline long long
15769	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15770	_mm512_mask_reduce_and_epi64 (__mmask8 __U, __m512i __A)
15771	{
15772	  __A = _mm512_mask_mov_epi64 (_mm512_set1_epi64 (~0LL), __U, __A);
15773	  __MM512_REDUCE_OP (&);
15774	}
15775	
15776	extern __inline long long
15777	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15778	_mm512_mask_reduce_or_epi64 (__mmask8 __U, __m512i __A)
15779	{
15780	  __A = _mm512_maskz_mov_epi64 (__U, __A);
15781	  __MM512_REDUCE_OP (|);
15782	}
15783	
15784	#undef __MM512_REDUCE_OP
15785	#define __MM512_REDUCE_OP(op) \
15786	  __m512i __T1 = _mm512_shuffle_i64x2 (__A, __A, 0x4e);			\
15787	  __m512i __T2 = _mm512_##op (__A, __T1);				\
15788	  __m512i __T3								\
15789	    = (__m512i) __builtin_shuffle ((__v8di) __T2,			\
15790					   (__v8di) { 2, 3, 0, 1, 6, 7, 4, 5 });\
15791	  __m512i __T4 = _mm512_##op (__T2, __T3);				\
15792	  __m512i __T5								\
15793	    = (__m512i) __builtin_shuffle ((__v8di) __T4,			\
15794					   (__v8di) { 1, 0, 3, 2, 5, 4, 7, 6 });\
15795	  __v8di __T6 = (__v8di) _mm512_##op (__T4, __T5);			\
15796	  return __T6[0]
15797	
15798	extern __inline long long
15799	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15800	_mm512_reduce_min_epi64 (__m512i __A)
15801	{
15802	  __MM512_REDUCE_OP (min_epi64);
15803	}
15804	
15805	extern __inline long long
15806	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15807	_mm512_reduce_max_epi64 (__m512i __A)
15808	{
15809	  __MM512_REDUCE_OP (max_epi64);
15810	}
15811	
15812	extern __inline long long
15813	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15814	_mm512_mask_reduce_min_epi64 (__mmask8 __U, __m512i __A)
15815	{
15816	  __A = _mm512_mask_mov_epi64 (_mm512_set1_epi64 (__LONG_LONG_MAX__),
15817				       __U, __A);
15818	  __MM512_REDUCE_OP (min_epi64);
15819	}
15820	
15821	extern __inline long long
15822	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15823	_mm512_mask_reduce_max_epi64 (__mmask8 __U, __m512i __A)
15824	{
15825	  __A = _mm512_mask_mov_epi64 (_mm512_set1_epi64 (-__LONG_LONG_MAX__ - 1),
15826				       __U, __A);
15827	  __MM512_REDUCE_OP (max_epi64);
15828	}
15829	
15830	extern __inline unsigned long long
15831	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15832	_mm512_reduce_min_epu64 (__m512i __A)
15833	{
15834	  __MM512_REDUCE_OP (min_epu64);
15835	}
15836	
15837	extern __inline unsigned long long
15838	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15839	_mm512_reduce_max_epu64 (__m512i __A)
15840	{
15841	  __MM512_REDUCE_OP (max_epu64);
15842	}
15843	
15844	extern __inline unsigned long long
15845	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15846	_mm512_mask_reduce_min_epu64 (__mmask8 __U, __m512i __A)
15847	{
15848	  __A = _mm512_mask_mov_epi64 (_mm512_set1_epi64 (~0LL), __U, __A);
15849	  __MM512_REDUCE_OP (min_epu64);
15850	}
15851	
15852	extern __inline unsigned long long
15853	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15854	_mm512_mask_reduce_max_epu64 (__mmask8 __U, __m512i __A)
15855	{
15856	  __A = _mm512_maskz_mov_epi64 (__U, __A);
15857	  __MM512_REDUCE_OP (max_epu64);
15858	}
15859	
15860	#undef __MM512_REDUCE_OP
15861	#define __MM512_REDUCE_OP(op) \
15862	  __m256d __T1 = (__m256d) _mm512_extractf64x4_pd (__A, 1);		\
15863	  __m256d __T2 = (__m256d) _mm512_extractf64x4_pd (__A, 0);		\
15864	  __m256d __T3 = __T1 op __T2;						\
15865	  __m128d __T4 = _mm256_extractf128_pd (__T3, 1);			\
15866	  __m128d __T5 = _mm256_extractf128_pd (__T3, 0);			\
15867	  __m128d __T6 = __T4 op __T5;						\
15868	  return __T6[0] op __T6[1]
15869	
15870	extern __inline double
15871	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15872	_mm512_reduce_add_pd (__m512d __A)
15873	{
15874	  __MM512_REDUCE_OP (+);
15875	}
15876	
15877	extern __inline double
15878	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15879	_mm512_reduce_mul_pd (__m512d __A)
15880	{
15881	  __MM512_REDUCE_OP (*);
15882	}
15883	
15884	extern __inline double
15885	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15886	_mm512_mask_reduce_add_pd (__mmask8 __U, __m512d __A)
15887	{
15888	  __A = _mm512_maskz_mov_pd (__U, __A);
15889	  __MM512_REDUCE_OP (+);
15890	}
15891	
15892	extern __inline double
15893	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15894	_mm512_mask_reduce_mul_pd (__mmask8 __U, __m512d __A)
15895	{
15896	  __A = _mm512_mask_mov_pd (_mm512_set1_pd (1.0), __U, __A);
15897	  __MM512_REDUCE_OP (*);
15898	}
15899	
15900	#undef __MM512_REDUCE_OP
15901	#define __MM512_REDUCE_OP(op) \
15902	  __m256d __T1 = (__m256d) _mm512_extractf64x4_pd (__A, 1);		\
15903	  __m256d __T2 = (__m256d) _mm512_extractf64x4_pd (__A, 0);		\
15904	  __m256d __T3 = _mm256_##op (__T1, __T2);				\
15905	  __m128d __T4 = _mm256_extractf128_pd (__T3, 1);			\
15906	  __m128d __T5 = _mm256_extractf128_pd (__T3, 0);			\
15907	  __m128d __T6 = _mm_##op (__T4, __T5);					\
15908	  __m128d __T7 = (__m128d) __builtin_shuffle (__T6, (__v2di) { 1, 0 });	\
15909	  __m128d __T8 = _mm_##op (__T6, __T7);					\
15910	  return __T8[0]
15911	
15912	extern __inline double
15913	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15914	_mm512_reduce_min_pd (__m512d __A)
15915	{
15916	  __MM512_REDUCE_OP (min_pd);
15917	}
15918	
15919	extern __inline double
15920	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15921	_mm512_reduce_max_pd (__m512d __A)
15922	{
15923	  __MM512_REDUCE_OP (max_pd);
15924	}
15925	
15926	extern __inline double
15927	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15928	_mm512_mask_reduce_min_pd (__mmask8 __U, __m512d __A)
15929	{
15930	  __A = _mm512_mask_mov_pd (_mm512_set1_pd (__builtin_inf ()), __U, __A);
15931	  __MM512_REDUCE_OP (min_pd);
15932	}
15933	
15934	extern __inline double
15935	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15936	_mm512_mask_reduce_max_pd (__mmask8 __U, __m512d __A)
15937	{
15938	  __A = _mm512_mask_mov_pd (_mm512_set1_pd (-__builtin_inf ()), __U, __A);
15939	  __MM512_REDUCE_OP (max_pd);
15940	}
15941	
15942	#undef __MM512_REDUCE_OP
15943	
15944	#ifdef __DISABLE_AVX512F__
15945	#undef __DISABLE_AVX512F__
15946	#pragma GCC pop_options
15947	#endif /* __DISABLE_AVX512F__ */
15948	
15949	#endif /* _AVX512FINTRIN_H_INCLUDED */
15950