LCOV - code coverage report
Current view: top level - usr/lib/gcc/x86_64-linux-gnu/9/include - avx512fintrin.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 11 0.0 %
Date: 2019-11-25 17:12:20 Functions: 0 0 -

          Line data    Source code
       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           0 :   return __extension__ (__m512i)(__v16si)
      96           0 :          { __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           0 :   __m512i __Y = __Y;
     207           0 :   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           0 :   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           0 :   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           0 :   *(__m512i_u *)__P = __A;
    6411           0 : }
    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           0 :   return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __Y,
    6906             :                                                      (__v16si) __X,
    6907             :                                                      (__v16si)
    6908           0 :                                                      _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__))
   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           0 :   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 */

Generated by: LCOV version 1.14