LCOV - code coverage report
Current view: top level - /usr/lib/gcc/x86_64-linux-gnu/14/include - avx512fintrin.h Coverage Total Hit
Test: PostgreSQL 19devel Lines: 0.0 % 17 0
Test Date: 2026-02-27 04:14:43 Functions: - 0 0
Legend: Lines:     hit not hit

            Line data    Source code
       1              : /* Copyright (C) 2013-2024 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              : #if !defined (__AVX512F__) || defined (__EVEX512__)
      32              : #pragma GCC push_options
      33              : #pragma GCC target("avx512f,no-evex512")
      34              : #define __DISABLE_AVX512F__
      35              : #endif /* __AVX512F__ */
      36              : 
      37              : typedef unsigned char  __mmask8;
      38              : typedef unsigned short __mmask16;
      39              : typedef unsigned int __mmask32;
      40              : 
      41              : /* Constants for mantissa extraction */
      42              : typedef enum
      43              : {
      44              :   _MM_MANT_NORM_1_2,        /* interval [1, 2)      */
      45              :   _MM_MANT_NORM_p5_2,       /* interval [0.5, 2)    */
      46              :   _MM_MANT_NORM_p5_1,       /* interval [0.5, 1)    */
      47              :   _MM_MANT_NORM_p75_1p5     /* interval [0.75, 1.5) */
      48              : } _MM_MANTISSA_NORM_ENUM;
      49              : 
      50              : typedef enum
      51              : {
      52              :   _MM_MANT_SIGN_src,        /* sign = sign(SRC)     */
      53              :   _MM_MANT_SIGN_zero,       /* sign = 0             */
      54              :   _MM_MANT_SIGN_nan     /* DEST = NaN if sign(SRC) = 1 */
      55              : } _MM_MANTISSA_SIGN_ENUM;
      56              : 
      57              : /* These _mm{,256}_avx512* intrins are duplicated from their _mm{,256}_* forms
      58              :    from AVX2 or before.  We need to add them to prevent target option mismatch
      59              :    when calling AVX512 intrins implemented with these intrins under no-evex512
      60              :    function attribute.  All AVX512 intrins calling those AVX2 intrins or
      61              :    before will change their calls to these AVX512 version.  */
      62              : extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
      63              : _mm_avx512_undefined_ps (void)
      64              : {
      65              : #pragma GCC diagnostic push
      66              : #pragma GCC diagnostic ignored "-Winit-self"
      67              :   __m128 __Y = __Y;
      68              : #pragma GCC diagnostic pop
      69              :   return __Y;
      70              : }
      71              : 
      72              : extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
      73              : _mm_avx512_undefined_pd (void)
      74              : {
      75              : #pragma GCC diagnostic push
      76              : #pragma GCC diagnostic ignored "-Winit-self"
      77              :   __m128d __Y = __Y;
      78              : #pragma GCC diagnostic pop
      79              :   return __Y;
      80              : }
      81              : 
      82              : extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
      83              : _mm_avx512_setzero_ps (void)
      84              : {
      85              :   return __extension__ (__m128){ 0.0f, 0.0f, 0.0f, 0.0f };
      86              : }
      87              : 
      88              : extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
      89              : _mm_avx512_setzero_pd (void)
      90              : {
      91              :   return __extension__ (__m128d){ 0.0, 0.0 };
      92              : }
      93              : 
      94              : #ifdef __OPTIMIZE__
      95              : extern __inline __m128d
      96              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
      97              : _mm_add_round_sd (__m128d __A, __m128d __B, const int __R)
      98              : {
      99              :   return (__m128d) __builtin_ia32_addsd_round ((__v2df) __A,
     100              :                            (__v2df) __B,
     101              :                            __R);
     102              : }
     103              : 
     104              : extern __inline __m128d
     105              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     106              : _mm_mask_add_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
     107              :               __m128d __B, const int __R)
     108              : {
     109              :   return (__m128d) __builtin_ia32_addsd_mask_round ((__v2df) __A,
     110              :                          (__v2df) __B,
     111              :                          (__v2df) __W,
     112              :                          (__mmask8) __U, __R);
     113              : }
     114              : 
     115              : extern __inline __m128d
     116              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     117              : _mm_maskz_add_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
     118              :                const int __R)
     119              : {
     120              :   return (__m128d) __builtin_ia32_addsd_mask_round ((__v2df) __A,
     121              :                          (__v2df) __B,
     122              :                          (__v2df)
     123              :                          _mm_avx512_setzero_pd (),
     124              :                          (__mmask8) __U, __R);
     125              : }
     126              : 
     127              : extern __inline __m128
     128              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     129              : _mm_add_round_ss (__m128 __A, __m128 __B, const int __R)
     130              : {
     131              :   return (__m128) __builtin_ia32_addss_round ((__v4sf) __A,
     132              :                           (__v4sf) __B,
     133              :                           __R);
     134              : }
     135              : 
     136              : extern __inline __m128
     137              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     138              : _mm_mask_add_round_ss (__m128 __W, __mmask8 __U, __m128 __A,
     139              :               __m128 __B, const int __R)
     140              : {
     141              :   return (__m128) __builtin_ia32_addss_mask_round ((__v4sf) __A,
     142              :                          (__v4sf) __B,
     143              :                          (__v4sf) __W,
     144              :                          (__mmask8) __U, __R);
     145              : }
     146              : 
     147              : extern __inline __m128
     148              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     149              : _mm_maskz_add_round_ss (__mmask8 __U, __m128 __A, __m128 __B,
     150              :                const int __R)
     151              : {
     152              :   return (__m128) __builtin_ia32_addss_mask_round ((__v4sf) __A,
     153              :                          (__v4sf) __B,
     154              :                          (__v4sf)
     155              :                          _mm_avx512_setzero_ps (),
     156              :                          (__mmask8) __U, __R);
     157              : }
     158              : 
     159              : extern __inline __m128d
     160              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     161              : _mm_sub_round_sd (__m128d __A, __m128d __B, const int __R)
     162              : {
     163              :   return (__m128d) __builtin_ia32_subsd_round ((__v2df) __A,
     164              :                            (__v2df) __B,
     165              :                            __R);
     166              : }
     167              : 
     168              : extern __inline __m128d
     169              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     170              : _mm_mask_sub_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
     171              :               __m128d __B, const int __R)
     172              : {
     173              :   return (__m128d) __builtin_ia32_subsd_mask_round ((__v2df) __A,
     174              :                          (__v2df) __B,
     175              :                          (__v2df) __W,
     176              :                          (__mmask8) __U, __R);
     177              : }
     178              : 
     179              : extern __inline __m128d
     180              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     181              : _mm_maskz_sub_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
     182              :                const int __R)
     183              : {
     184              :   return (__m128d) __builtin_ia32_subsd_mask_round ((__v2df) __A,
     185              :                          (__v2df) __B,
     186              :                          (__v2df)
     187              :                          _mm_avx512_setzero_pd (),
     188              :                          (__mmask8) __U, __R);
     189              : }
     190              : 
     191              : extern __inline __m128
     192              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     193              : _mm_sub_round_ss (__m128 __A, __m128 __B, const int __R)
     194              : {
     195              :   return (__m128) __builtin_ia32_subss_round ((__v4sf) __A,
     196              :                           (__v4sf) __B,
     197              :                           __R);
     198              : }
     199              : 
     200              : extern __inline __m128
     201              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     202              : _mm_mask_sub_round_ss (__m128 __W, __mmask8 __U, __m128 __A,
     203              :               __m128 __B, const int __R)
     204              : {
     205              :   return (__m128) __builtin_ia32_subss_mask_round ((__v4sf) __A,
     206              :                          (__v4sf) __B,
     207              :                          (__v4sf) __W,
     208              :                          (__mmask8) __U, __R);
     209              : }
     210              : 
     211              : extern __inline __m128
     212              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     213              : _mm_maskz_sub_round_ss (__mmask8 __U, __m128 __A, __m128 __B,
     214              :                const int __R)
     215              : {
     216              :   return (__m128) __builtin_ia32_subss_mask_round ((__v4sf) __A,
     217              :                          (__v4sf) __B,
     218              :                          (__v4sf)
     219              :                          _mm_avx512_setzero_ps (),
     220              :                          (__mmask8) __U, __R);
     221              : }
     222              : 
     223              : #else
     224              : #define _mm_add_round_sd(A, B, C)            \
     225              :     (__m128d)__builtin_ia32_addsd_round(A, B, C)
     226              : 
     227              : #define _mm_mask_add_round_sd(W, U, A, B, C) \
     228              :     (__m128d)__builtin_ia32_addsd_mask_round(A, B, W, U, C)
     229              : 
     230              : #define _mm_maskz_add_round_sd(U, A, B, C)   \
     231              :     (__m128d)__builtin_ia32_addsd_mask_round(A, B, (__v2df)_mm_avx512_setzero_pd(), U, C)
     232              : 
     233              : #define _mm_add_round_ss(A, B, C)            \
     234              :     (__m128)__builtin_ia32_addss_round(A, B, C)
     235              : 
     236              : #define _mm_mask_add_round_ss(W, U, A, B, C) \
     237              :     (__m128)__builtin_ia32_addss_mask_round(A, B, W, U, C)
     238              : 
     239              : #define _mm_maskz_add_round_ss(U, A, B, C)   \
     240              :     (__m128)__builtin_ia32_addss_mask_round(A, B, (__v4sf)_mm_avx512_setzero_ps(), U, C)
     241              : 
     242              : #define _mm_sub_round_sd(A, B, C)            \
     243              :     (__m128d)__builtin_ia32_subsd_round(A, B, C)
     244              : 
     245              : #define _mm_mask_sub_round_sd(W, U, A, B, C) \
     246              :     (__m128d)__builtin_ia32_subsd_mask_round(A, B, W, U, C)
     247              : 
     248              : #define _mm_maskz_sub_round_sd(U, A, B, C)   \
     249              :     (__m128d)__builtin_ia32_subsd_mask_round(A, B, (__v2df)_mm_avx512_setzero_pd(), U, C)
     250              : 
     251              : #define _mm_sub_round_ss(A, B, C)            \
     252              :     (__m128)__builtin_ia32_subss_round(A, B, C)
     253              : 
     254              : #define _mm_mask_sub_round_ss(W, U, A, B, C) \
     255              :     (__m128)__builtin_ia32_subss_mask_round(A, B, W, U, C)
     256              : 
     257              : #define _mm_maskz_sub_round_ss(U, A, B, C)   \
     258              :     (__m128)__builtin_ia32_subss_mask_round(A, B, (__v4sf)_mm_avx512_setzero_ps(), U, C)
     259              : 
     260              : #endif
     261              : 
     262              : extern __inline __m128d
     263              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     264              : _mm_rcp14_sd (__m128d __A, __m128d __B)
     265              : {
     266              :   return (__m128d) __builtin_ia32_rcp14sd ((__v2df) __B,
     267              :                        (__v2df) __A);
     268              : }
     269              : 
     270              : extern __inline __m128d
     271              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     272              : _mm_mask_rcp14_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
     273              : {
     274              :   return (__m128d) __builtin_ia32_rcp14sd_mask ((__v2df) __B,
     275              :                         (__v2df) __A,
     276              :                         (__v2df) __W,
     277              :                         (__mmask8) __U);
     278              : }
     279              : 
     280              : extern __inline __m128d
     281              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     282              : _mm_maskz_rcp14_sd (__mmask8 __U, __m128d __A, __m128d __B)
     283              : {
     284              :   return (__m128d) __builtin_ia32_rcp14sd_mask ((__v2df) __B,
     285              :                         (__v2df) __A,
     286              :                         (__v2df) _mm_avx512_setzero_ps (),
     287              :                         (__mmask8) __U);
     288              : }
     289              : 
     290              : extern __inline __m128
     291              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     292              : _mm_rcp14_ss (__m128 __A, __m128 __B)
     293              : {
     294              :   return (__m128) __builtin_ia32_rcp14ss ((__v4sf) __B,
     295              :                       (__v4sf) __A);
     296              : }
     297              : 
     298              : extern __inline __m128
     299              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     300              : _mm_mask_rcp14_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
     301              : {
     302              :   return (__m128) __builtin_ia32_rcp14ss_mask ((__v4sf) __B,
     303              :                         (__v4sf) __A,
     304              :                         (__v4sf) __W,
     305              :                         (__mmask8) __U);
     306              : }
     307              : 
     308              : extern __inline __m128
     309              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     310              : _mm_maskz_rcp14_ss (__mmask8 __U, __m128 __A, __m128 __B)
     311              : {
     312              :   return (__m128) __builtin_ia32_rcp14ss_mask ((__v4sf) __B,
     313              :                         (__v4sf) __A,
     314              :                         (__v4sf) _mm_avx512_setzero_ps (),
     315              :                         (__mmask8) __U);
     316              : }
     317              : 
     318              : extern __inline __m128d
     319              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     320              : _mm_rsqrt14_sd (__m128d __A, __m128d __B)
     321              : {
     322              :   return (__m128d) __builtin_ia32_rsqrt14sd ((__v2df) __B,
     323              :                          (__v2df) __A);
     324              : }
     325              : 
     326              : extern __inline __m128d
     327              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     328              : _mm_mask_rsqrt14_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
     329              : {
     330              :   return (__m128d) __builtin_ia32_rsqrt14sd_mask ((__v2df) __B,
     331              :                          (__v2df) __A,
     332              :                          (__v2df) __W,
     333              :                          (__mmask8) __U);
     334              : }
     335              : 
     336              : extern __inline __m128d
     337              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     338              : _mm_maskz_rsqrt14_sd (__mmask8 __U, __m128d __A, __m128d __B)
     339              : {
     340              :   return (__m128d) __builtin_ia32_rsqrt14sd_mask ((__v2df) __B,
     341              :                          (__v2df) __A,
     342              :                          (__v2df) _mm_avx512_setzero_pd (),
     343              :                          (__mmask8) __U);
     344              : }
     345              : 
     346              : extern __inline __m128
     347              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     348              : _mm_rsqrt14_ss (__m128 __A, __m128 __B)
     349              : {
     350              :   return (__m128) __builtin_ia32_rsqrt14ss ((__v4sf) __B,
     351              :                         (__v4sf) __A);
     352              : }
     353              : 
     354              : extern __inline __m128
     355              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     356              : _mm_mask_rsqrt14_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
     357              : {
     358              :   return (__m128) __builtin_ia32_rsqrt14ss_mask ((__v4sf) __B,
     359              :                          (__v4sf) __A,
     360              :                          (__v4sf) __W,
     361              :                          (__mmask8) __U);
     362              : }
     363              : 
     364              : extern __inline __m128
     365              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     366              : _mm_maskz_rsqrt14_ss (__mmask8 __U, __m128 __A, __m128 __B)
     367              : {
     368              :   return (__m128) __builtin_ia32_rsqrt14ss_mask ((__v4sf) __B,
     369              :                         (__v4sf) __A,
     370              :                         (__v4sf) _mm_avx512_setzero_ps (),
     371              :                         (__mmask8) __U);
     372              : }
     373              : 
     374              : #ifdef __OPTIMIZE__
     375              : extern __inline __m128d
     376              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     377              : _mm_sqrt_round_sd (__m128d __A, __m128d __B, const int __R)
     378              : {
     379              :   return (__m128d) __builtin_ia32_sqrtsd_mask_round ((__v2df) __B,
     380              :                              (__v2df) __A,
     381              :                              (__v2df)
     382              :                              _mm_avx512_setzero_pd (),
     383              :                              (__mmask8) -1, __R);
     384              : }
     385              : 
     386              : extern __inline __m128d
     387              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     388              : _mm_mask_sqrt_round_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B,
     389              :             const int __R)
     390              : {
     391              :   return (__m128d) __builtin_ia32_sqrtsd_mask_round ((__v2df) __B,
     392              :                              (__v2df) __A,
     393              :                              (__v2df) __W,
     394              :                              (__mmask8) __U, __R);
     395              : }
     396              : 
     397              : extern __inline __m128d
     398              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     399              : _mm_maskz_sqrt_round_sd (__mmask8 __U, __m128d __A, __m128d __B, const int __R)
     400              : {
     401              :   return (__m128d) __builtin_ia32_sqrtsd_mask_round ((__v2df) __B,
     402              :                              (__v2df) __A,
     403              :                              (__v2df)
     404              :                              _mm_avx512_setzero_pd (),
     405              :                              (__mmask8) __U, __R);
     406              : }
     407              : 
     408              : extern __inline __m128
     409              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     410              : _mm_sqrt_round_ss (__m128 __A, __m128 __B, const int __R)
     411              : {
     412              :   return (__m128) __builtin_ia32_sqrtss_mask_round ((__v4sf) __B,
     413              :                             (__v4sf) __A,
     414              :                             (__v4sf)
     415              :                             _mm_avx512_setzero_ps (),
     416              :                             (__mmask8) -1, __R);
     417              : }
     418              : 
     419              : extern __inline __m128
     420              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     421              : _mm_mask_sqrt_round_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B,
     422              :             const int __R)
     423              : {
     424              :   return (__m128) __builtin_ia32_sqrtss_mask_round ((__v4sf) __B,
     425              :                             (__v4sf) __A,
     426              :                             (__v4sf) __W,
     427              :                             (__mmask8) __U, __R);
     428              : }
     429              : 
     430              : extern __inline __m128
     431              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     432              : _mm_maskz_sqrt_round_ss (__mmask8 __U, __m128 __A, __m128 __B, const int __R)
     433              : {
     434              :   return (__m128) __builtin_ia32_sqrtss_mask_round ((__v4sf) __B,
     435              :                             (__v4sf) __A,
     436              :                             (__v4sf)
     437              :                             _mm_avx512_setzero_ps (),
     438              :                             (__mmask8) __U, __R);
     439              : }
     440              : 
     441              : extern __inline __m128d
     442              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     443              : _mm_mul_round_sd (__m128d __A, __m128d __B, const int __R)
     444              : {
     445              :   return (__m128d) __builtin_ia32_mulsd_round ((__v2df) __A,
     446              :                            (__v2df) __B,
     447              :                            __R);
     448              : }
     449              : 
     450              : extern __inline __m128d
     451              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     452              : _mm_mask_mul_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
     453              :               __m128d __B, const int __R)
     454              : {
     455              :   return (__m128d) __builtin_ia32_mulsd_mask_round ((__v2df) __A,
     456              :                          (__v2df) __B,
     457              :                          (__v2df) __W,
     458              :                          (__mmask8) __U, __R);
     459              : }
     460              : 
     461              : extern __inline __m128d
     462              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     463              : _mm_maskz_mul_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
     464              :                const int __R)
     465              : {
     466              :   return (__m128d) __builtin_ia32_mulsd_mask_round ((__v2df) __A,
     467              :                          (__v2df) __B,
     468              :                          (__v2df)
     469              :                          _mm_avx512_setzero_pd (),
     470              :                          (__mmask8) __U, __R);
     471              : }
     472              : 
     473              : extern __inline __m128
     474              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     475              : _mm_mul_round_ss (__m128 __A, __m128 __B, const int __R)
     476              : {
     477              :   return (__m128) __builtin_ia32_mulss_round ((__v4sf) __A,
     478              :                           (__v4sf) __B,
     479              :                           __R);
     480              : }
     481              : 
     482              : extern __inline __m128
     483              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     484              : _mm_mask_mul_round_ss (__m128 __W, __mmask8 __U, __m128 __A,
     485              :               __m128 __B, const int __R)
     486              : {
     487              :   return (__m128) __builtin_ia32_mulss_mask_round ((__v4sf) __A,
     488              :                          (__v4sf) __B,
     489              :                          (__v4sf) __W,
     490              :                          (__mmask8) __U, __R);
     491              : }
     492              : 
     493              : extern __inline __m128
     494              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     495              : _mm_maskz_mul_round_ss (__mmask8 __U, __m128 __A, __m128 __B,
     496              :                const int __R)
     497              : {
     498              :   return (__m128) __builtin_ia32_mulss_mask_round ((__v4sf) __A,
     499              :                          (__v4sf) __B,
     500              :                          (__v4sf)
     501              :                          _mm_avx512_setzero_ps (),
     502              :                          (__mmask8) __U, __R);
     503              : }
     504              : 
     505              : extern __inline __m128d
     506              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     507              : _mm_div_round_sd (__m128d __A, __m128d __B, const int __R)
     508              : {
     509              :   return (__m128d) __builtin_ia32_divsd_round ((__v2df) __A,
     510              :                            (__v2df) __B,
     511              :                            __R);
     512              : }
     513              : 
     514              : extern __inline __m128d
     515              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     516              : _mm_mask_div_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
     517              :               __m128d __B, const int __R)
     518              : {
     519              :   return (__m128d) __builtin_ia32_divsd_mask_round ((__v2df) __A,
     520              :                          (__v2df) __B,
     521              :                          (__v2df) __W,
     522              :                          (__mmask8) __U, __R);
     523              : }
     524              : 
     525              : extern __inline __m128d
     526              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     527              : _mm_maskz_div_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
     528              :                const int __R)
     529              : {
     530              :   return (__m128d) __builtin_ia32_divsd_mask_round ((__v2df) __A,
     531              :                          (__v2df) __B,
     532              :                          (__v2df)
     533              :                          _mm_avx512_setzero_pd (),
     534              :                          (__mmask8) __U, __R);
     535              : }
     536              : 
     537              : extern __inline __m128
     538              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     539              : _mm_div_round_ss (__m128 __A, __m128 __B, const int __R)
     540              : {
     541              :   return (__m128) __builtin_ia32_divss_round ((__v4sf) __A,
     542              :                           (__v4sf) __B,
     543              :                           __R);
     544              : }
     545              : 
     546              : extern __inline __m128
     547              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     548              : _mm_mask_div_round_ss (__m128 __W, __mmask8 __U, __m128 __A,
     549              :               __m128 __B, const int __R)
     550              : {
     551              :   return (__m128) __builtin_ia32_divss_mask_round ((__v4sf) __A,
     552              :                          (__v4sf) __B,
     553              :                          (__v4sf) __W,
     554              :                          (__mmask8) __U, __R);
     555              : }
     556              : 
     557              : extern __inline __m128
     558              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     559              : _mm_maskz_div_round_ss (__mmask8 __U, __m128 __A, __m128 __B,
     560              :                const int __R)
     561              : {
     562              :   return (__m128) __builtin_ia32_divss_mask_round ((__v4sf) __A,
     563              :                          (__v4sf) __B,
     564              :                          (__v4sf)
     565              :                          _mm_avx512_setzero_ps (),
     566              :                          (__mmask8) __U, __R);
     567              : }
     568              : 
     569              : extern __inline __m128d
     570              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     571              : _mm_scalef_round_sd (__m128d __A, __m128d __B, const int __R)
     572              : {
     573              :   return (__m128d) __builtin_ia32_scalefsd_mask_round ((__v2df) __A,
     574              :                                (__v2df) __B,
     575              :                                (__v2df)
     576              :                                _mm_avx512_setzero_pd (),
     577              :                                (__mmask8) -1, __R);
     578              : }
     579              : 
     580              : extern __inline __m128d
     581              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     582              : _mm_mask_scalef_round_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B,
     583              :               const int __R)
     584              : {
     585              :   return (__m128d) __builtin_ia32_scalefsd_mask_round ((__v2df) __A,
     586              :                                (__v2df) __B,
     587              :                                (__v2df) __W,
     588              :                                (__mmask8) __U, __R);
     589              : }
     590              : 
     591              : extern __inline __m128d
     592              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     593              : _mm_maskz_scalef_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
     594              :                const int __R)
     595              : {
     596              :   return (__m128d) __builtin_ia32_scalefsd_mask_round ((__v2df) __A,
     597              :                                (__v2df) __B,
     598              :                                (__v2df)
     599              :                                _mm_avx512_setzero_pd (),
     600              :                                (__mmask8) __U, __R);
     601              : }
     602              : 
     603              : extern __inline __m128
     604              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     605              : _mm_scalef_round_ss (__m128 __A, __m128 __B, const int __R)
     606              : {
     607              :   return (__m128) __builtin_ia32_scalefss_mask_round ((__v4sf) __A,
     608              :                               (__v4sf) __B,
     609              :                               (__v4sf)
     610              :                               _mm_avx512_setzero_ps (),
     611              :                               (__mmask8) -1, __R);
     612              : }
     613              : 
     614              : extern __inline __m128
     615              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     616              : _mm_mask_scalef_round_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B,
     617              :              const int __R)
     618              : {
     619              :   return (__m128) __builtin_ia32_scalefss_mask_round ((__v4sf) __A,
     620              :                               (__v4sf) __B,
     621              :                               (__v4sf) __W,
     622              :                               (__mmask8) __U, __R);
     623              : }
     624              : 
     625              : extern __inline __m128
     626              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     627              : _mm_maskz_scalef_round_ss (__mmask8 __U, __m128 __A, __m128 __B, const int __R)
     628              : {
     629              :   return (__m128) __builtin_ia32_scalefss_mask_round ((__v4sf) __A,
     630              :                               (__v4sf) __B,
     631              :                               (__v4sf)
     632              :                               _mm_avx512_setzero_ps (),
     633              :                               (__mmask8) __U, __R);
     634              : }
     635              : #else
     636              : #define _mm_sqrt_round_sd(A, B, C)        \
     637              :     (__m128d)__builtin_ia32_sqrtsd_mask_round (B, A, \
     638              :     (__v2df) _mm_avx512_setzero_pd (), -1, C)
     639              : 
     640              : #define _mm_mask_sqrt_round_sd(W, U, A, B, C) \
     641              :     (__m128d)__builtin_ia32_sqrtsd_mask_round (B, A, W, U, C)
     642              : 
     643              : #define _mm_maskz_sqrt_round_sd(U, A, B, C)   \
     644              :     (__m128d)__builtin_ia32_sqrtsd_mask_round (B, A, \
     645              :     (__v2df) _mm_avx512_setzero_pd (), U, C)
     646              : 
     647              : #define _mm_sqrt_round_ss(A, B, C)        \
     648              :     (__m128)__builtin_ia32_sqrtss_mask_round (B, A, \
     649              :     (__v4sf) _mm_avx512_setzero_ps (), -1, C)
     650              : 
     651              : #define _mm_mask_sqrt_round_ss(W, U, A, B, C) \
     652              :     (__m128)__builtin_ia32_sqrtss_mask_round (B, A, W, U, C)
     653              : 
     654              : #define _mm_maskz_sqrt_round_ss(U, A, B, C)   \
     655              :     (__m128)__builtin_ia32_sqrtss_mask_round (B, A, \
     656              :     (__v4sf) _mm_avx512_setzero_ps (), U, C)
     657              : 
     658              : #define _mm_mul_round_sd(A, B, C)            \
     659              :     (__m128d)__builtin_ia32_mulsd_round(A, B, C)
     660              : 
     661              : #define _mm_mask_mul_round_sd(W, U, A, B, C) \
     662              :     (__m128d)__builtin_ia32_mulsd_mask_round(A, B, W, U, C)
     663              : 
     664              : #define _mm_maskz_mul_round_sd(U, A, B, C)   \
     665              :     (__m128d)__builtin_ia32_mulsd_mask_round(A, B, (__v2df)_mm_avx512_setzero_pd(), U, C)
     666              : 
     667              : #define _mm_mul_round_ss(A, B, C)            \
     668              :     (__m128)__builtin_ia32_mulss_round(A, B, C)
     669              : 
     670              : #define _mm_mask_mul_round_ss(W, U, A, B, C) \
     671              :     (__m128)__builtin_ia32_mulss_mask_round(A, B, W, U, C)
     672              : 
     673              : #define _mm_maskz_mul_round_ss(U, A, B, C)   \
     674              :     (__m128)__builtin_ia32_mulss_mask_round(A, B, (__v4sf)_mm_avx512_setzero_ps(), U, C)
     675              : 
     676              : #define _mm_div_round_sd(A, B, C)            \
     677              :     (__m128d)__builtin_ia32_divsd_round(A, B, C)
     678              : 
     679              : #define _mm_mask_div_round_sd(W, U, A, B, C) \
     680              :     (__m128d)__builtin_ia32_divsd_mask_round(A, B, W, U, C)
     681              : 
     682              : #define _mm_maskz_div_round_sd(U, A, B, C)   \
     683              :     (__m128d)__builtin_ia32_divsd_mask_round(A, B, (__v2df)_mm_avx512_setzero_pd(), U, C)
     684              : 
     685              : #define _mm_div_round_ss(A, B, C)            \
     686              :     (__m128)__builtin_ia32_divss_round(A, B, C)
     687              : 
     688              : #define _mm_mask_div_round_ss(W, U, A, B, C) \
     689              :     (__m128)__builtin_ia32_divss_mask_round(A, B, W, U, C)
     690              : 
     691              : #define _mm_maskz_div_round_ss(U, A, B, C)   \
     692              :     (__m128)__builtin_ia32_divss_mask_round(A, B, (__v4sf)_mm_avx512_setzero_ps(), U, C)
     693              : 
     694              : #define _mm_scalef_round_sd(A, B, C)                    \
     695              :   ((__m128d)                                \
     696              :    __builtin_ia32_scalefsd_mask_round ((A), (B),            \
     697              :                        (__v2df) _mm_avx512_undefined_pd (), \
     698              :                        -1, (C)))
     699              : 
     700              : #define _mm_scalef_round_ss(A, B, C)                    \
     701              :   ((__m128)                             \
     702              :    __builtin_ia32_scalefss_mask_round ((A), (B),            \
     703              :                        (__v4sf) _mm_avx512_undefined_ps (), \
     704              :                        -1, (C)))
     705              : 
     706              : #define _mm_mask_scalef_round_sd(W, U, A, B, C)             \
     707              :   ((__m128d)                                \
     708              :    __builtin_ia32_scalefsd_mask_round ((A), (B), (W), (U), (C)))
     709              : 
     710              : #define _mm_mask_scalef_round_ss(W, U, A, B, C)             \
     711              :   ((__m128)                             \
     712              :    __builtin_ia32_scalefss_mask_round ((A), (B), (W), (U), (C)))
     713              : 
     714              : #define _mm_maskz_scalef_round_sd(U, A, B, C)               \
     715              :   ((__m128d)                                \
     716              :    __builtin_ia32_scalefsd_mask_round ((A), (B),            \
     717              :                        (__v2df) _mm_avx512_setzero_pd (),   \
     718              :                        (U), (C)))
     719              : 
     720              : #define _mm_maskz_scalef_round_ss(U, A, B, C)               \
     721              :   ((__m128)                             \
     722              :    __builtin_ia32_scalefss_mask_round ((A), (B),            \
     723              :                        (__v4sf) _mm_avx512_setzero_ps (),   \
     724              :                        (U), (C)))
     725              : #endif
     726              : 
     727              : #define _mm_mask_sqrt_sd(W, U, A, B) \
     728              :     _mm_mask_sqrt_round_sd ((W), (U), (A), (B), _MM_FROUND_CUR_DIRECTION)
     729              : 
     730              : #define _mm_maskz_sqrt_sd(U, A, B) \
     731              :     _mm_maskz_sqrt_round_sd ((U), (A), (B), _MM_FROUND_CUR_DIRECTION)
     732              : 
     733              : #define _mm_mask_sqrt_ss(W, U, A, B) \
     734              :     _mm_mask_sqrt_round_ss ((W), (U), (A), (B), _MM_FROUND_CUR_DIRECTION)
     735              : 
     736              : #define _mm_maskz_sqrt_ss(U, A, B) \
     737              :     _mm_maskz_sqrt_round_ss ((U), (A), (B), _MM_FROUND_CUR_DIRECTION)
     738              : 
     739              : #define _mm_mask_scalef_sd(W, U, A, B) \
     740              :     _mm_mask_scalef_round_sd ((W), (U), (A), (B), _MM_FROUND_CUR_DIRECTION)
     741              : 
     742              : #define _mm_maskz_scalef_sd(U, A, B) \
     743              :     _mm_maskz_scalef_round_sd ((U), (A), (B), _MM_FROUND_CUR_DIRECTION)
     744              : 
     745              : #define _mm_mask_scalef_ss(W, U, A, B) \
     746              :     _mm_mask_scalef_round_ss ((W), (U), (A), (B), _MM_FROUND_CUR_DIRECTION)
     747              : 
     748              : #define _mm_maskz_scalef_ss(U, A, B) \
     749              :     _mm_maskz_scalef_round_ss ((U), (A), (B), _MM_FROUND_CUR_DIRECTION)
     750              : 
     751              : extern __inline __m128d
     752              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     753              : _mm_cvtu32_sd (__m128d __A, unsigned __B)
     754              : {
     755              :   return (__m128d) __builtin_ia32_cvtusi2sd32 ((__v2df) __A, __B);
     756              : }
     757              : 
     758              : #ifdef __x86_64__
     759              : #ifdef __OPTIMIZE__
     760              : extern __inline __m128d
     761              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     762              : _mm_cvt_roundu64_sd (__m128d __A, unsigned long long __B, const int __R)
     763              : {
     764              :   return (__m128d) __builtin_ia32_cvtusi2sd64 ((__v2df) __A, __B, __R);
     765              : }
     766              : 
     767              : extern __inline __m128d
     768              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     769              : _mm_cvt_roundi64_sd (__m128d __A, long long __B, const int __R)
     770              : {
     771              :   return (__m128d) __builtin_ia32_cvtsi2sd64 ((__v2df) __A, __B, __R);
     772              : }
     773              : 
     774              : extern __inline __m128d
     775              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     776              : _mm_cvt_roundsi64_sd (__m128d __A, long long __B, const int __R)
     777              : {
     778              :   return (__m128d) __builtin_ia32_cvtsi2sd64 ((__v2df) __A, __B, __R);
     779              : }
     780              : #else
     781              : #define _mm_cvt_roundu64_sd(A, B, C)   \
     782              :     (__m128d)__builtin_ia32_cvtusi2sd64(A, B, C)
     783              : 
     784              : #define _mm_cvt_roundi64_sd(A, B, C)   \
     785              :     (__m128d)__builtin_ia32_cvtsi2sd64(A, B, C)
     786              : 
     787              : #define _mm_cvt_roundsi64_sd(A, B, C)   \
     788              :     (__m128d)__builtin_ia32_cvtsi2sd64(A, B, C)
     789              : #endif
     790              : 
     791              : #endif
     792              : 
     793              : #ifdef __OPTIMIZE__
     794              : extern __inline __m128
     795              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     796              : _mm_cvt_roundu32_ss (__m128 __A, unsigned __B, const int __R)
     797              : {
     798              :   return (__m128) __builtin_ia32_cvtusi2ss32 ((__v4sf) __A, __B, __R);
     799              : }
     800              : 
     801              : extern __inline __m128
     802              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     803              : _mm_cvt_roundsi32_ss (__m128 __A, int __B, const int __R)
     804              : {
     805              :   return (__m128) __builtin_ia32_cvtsi2ss32 ((__v4sf) __A, __B, __R);
     806              : }
     807              : 
     808              : extern __inline __m128
     809              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     810              : _mm_cvt_roundi32_ss (__m128 __A, int __B, const int __R)
     811              : {
     812              :   return (__m128) __builtin_ia32_cvtsi2ss32 ((__v4sf) __A, __B, __R);
     813              : }
     814              : #else
     815              : #define _mm_cvt_roundu32_ss(A, B, C)   \
     816              :     (__m128)__builtin_ia32_cvtusi2ss32(A, B, C)
     817              : 
     818              : #define _mm_cvt_roundi32_ss(A, B, C)   \
     819              :     (__m128)__builtin_ia32_cvtsi2ss32(A, B, C)
     820              : 
     821              : #define _mm_cvt_roundsi32_ss(A, B, C)   \
     822              :     (__m128)__builtin_ia32_cvtsi2ss32(A, B, C)
     823              : #endif
     824              : 
     825              : #ifdef __x86_64__
     826              : #ifdef __OPTIMIZE__
     827              : extern __inline __m128
     828              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     829              : _mm_cvt_roundu64_ss (__m128 __A, unsigned long long __B, const int __R)
     830              : {
     831              :   return (__m128) __builtin_ia32_cvtusi2ss64 ((__v4sf) __A, __B, __R);
     832              : }
     833              : 
     834              : extern __inline __m128
     835              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     836              : _mm_cvt_roundsi64_ss (__m128 __A, long long __B, const int __R)
     837              : {
     838              :   return (__m128) __builtin_ia32_cvtsi2ss64 ((__v4sf) __A, __B, __R);
     839              : }
     840              : 
     841              : extern __inline __m128
     842              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     843              : _mm_cvt_roundi64_ss (__m128 __A, long long __B, const int __R)
     844              : {
     845              :   return (__m128) __builtin_ia32_cvtsi2ss64 ((__v4sf) __A, __B, __R);
     846              : }
     847              : #else
     848              : #define _mm_cvt_roundu64_ss(A, B, C)   \
     849              :     (__m128)__builtin_ia32_cvtusi2ss64(A, B, C)
     850              : 
     851              : #define _mm_cvt_roundi64_ss(A, B, C)   \
     852              :     (__m128)__builtin_ia32_cvtsi2ss64(A, B, C)
     853              : 
     854              : #define _mm_cvt_roundsi64_ss(A, B, C)   \
     855              :     (__m128)__builtin_ia32_cvtsi2ss64(A, B, C)
     856              : #endif
     857              : 
     858              : #endif
     859              : 
     860              : extern __inline __m128
     861              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     862              : _mm_mask_load_ss (__m128 __W, __mmask8 __U, const float *__P)
     863              : {
     864              :   return (__m128) __builtin_ia32_loadss_mask (__P, (__v4sf) __W, __U);
     865              : }
     866              : 
     867              : extern __inline __m128
     868              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     869              : _mm_maskz_load_ss (__mmask8 __U, const float *__P)
     870              : {
     871              :   return (__m128) __builtin_ia32_loadss_mask (__P, (__v4sf) _mm_avx512_setzero_ps (),
     872              :                           __U);
     873              : }
     874              : 
     875              : extern __inline __m128d
     876              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     877              : _mm_mask_load_sd (__m128d __W, __mmask8 __U, const double *__P)
     878              : {
     879              :   return (__m128d) __builtin_ia32_loadsd_mask (__P, (__v2df) __W, __U);
     880              : }
     881              : 
     882              : extern __inline __m128d
     883              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     884              : _mm_maskz_load_sd (__mmask8 __U, const double *__P)
     885              : {
     886              :   return (__m128d) __builtin_ia32_loadsd_mask (__P, (__v2df) _mm_avx512_setzero_pd (),
     887              :                            __U);
     888              : }
     889              : 
     890              : extern __inline __m128
     891              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     892              : _mm_mask_move_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
     893              : {
     894              :   return (__m128) __builtin_ia32_movess_mask ((__v4sf) __A, (__v4sf) __B,
     895              :                           (__v4sf) __W, __U);
     896              : }
     897              : 
     898              : extern __inline __m128
     899              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     900              : _mm_maskz_move_ss (__mmask8 __U, __m128 __A, __m128 __B)
     901              : {
     902              :   return (__m128) __builtin_ia32_movess_mask ((__v4sf) __A, (__v4sf) __B,
     903              :                           (__v4sf) _mm_avx512_setzero_ps (), __U);
     904              : }
     905              : 
     906              : extern __inline __m128d
     907              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     908              : _mm_mask_move_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
     909              : {
     910              :   return (__m128d) __builtin_ia32_movesd_mask ((__v2df) __A, (__v2df) __B,
     911              :                            (__v2df) __W, __U);
     912              : }
     913              : 
     914              : extern __inline __m128d
     915              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     916              : _mm_maskz_move_sd (__mmask8 __U, __m128d __A, __m128d __B)
     917              : {
     918              :   return (__m128d) __builtin_ia32_movesd_mask ((__v2df) __A, (__v2df) __B,
     919              :                            (__v2df) _mm_avx512_setzero_pd (),
     920              :                            __U);
     921              : }
     922              : 
     923              : extern __inline void
     924              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     925              : _mm_mask_store_ss (float *__P, __mmask8 __U, __m128 __A)
     926              : {
     927              :   __builtin_ia32_storess_mask (__P, (__v4sf) __A, (__mmask8) __U);
     928              : }
     929              : 
     930              : extern __inline void
     931              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     932              : _mm_mask_store_sd (double *__P, __mmask8 __U, __m128d __A)
     933              : {
     934              :   __builtin_ia32_storesd_mask (__P, (__v2df) __A, (__mmask8) __U);
     935              : }
     936              : 
     937              : #ifdef __OPTIMIZE__
     938              : extern __inline __m128d
     939              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     940              : _mm_fixupimm_round_sd (__m128d __A, __m128d __B, __m128i __C,
     941              :                const int __imm, const int __R)
     942              : {
     943              :   return (__m128d) __builtin_ia32_fixupimmsd_mask ((__v2df) __A,
     944              :                            (__v2df) __B,
     945              :                            (__v2di) __C, __imm,
     946              :                            (__mmask8) -1, __R);
     947              : }
     948              : 
     949              : extern __inline __m128d
     950              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     951              : _mm_mask_fixupimm_round_sd (__m128d __A, __mmask8 __U, __m128d __B,
     952              :                 __m128i __C, const int __imm, const int __R)
     953              : {
     954              :   return (__m128d) __builtin_ia32_fixupimmsd_mask ((__v2df) __A,
     955              :                            (__v2df) __B,
     956              :                            (__v2di) __C, __imm,
     957              :                            (__mmask8) __U, __R);
     958              : }
     959              : 
     960              : extern __inline __m128d
     961              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     962              : _mm_maskz_fixupimm_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
     963              :                  __m128i __C, const int __imm, const int __R)
     964              : {
     965              :   return (__m128d) __builtin_ia32_fixupimmsd_maskz ((__v2df) __A,
     966              :                             (__v2df) __B,
     967              :                             (__v2di) __C,
     968              :                             __imm,
     969              :                             (__mmask8) __U, __R);
     970              : }
     971              : 
     972              : extern __inline __m128
     973              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     974              : _mm_fixupimm_round_ss (__m128 __A, __m128 __B, __m128i __C,
     975              :                const int __imm, const int __R)
     976              : {
     977              :   return (__m128) __builtin_ia32_fixupimmss_mask ((__v4sf) __A,
     978              :                           (__v4sf) __B,
     979              :                           (__v4si) __C, __imm,
     980              :                           (__mmask8) -1, __R);
     981              : }
     982              : 
     983              : extern __inline __m128
     984              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     985              : _mm_mask_fixupimm_round_ss (__m128 __A, __mmask8 __U, __m128 __B,
     986              :                 __m128i __C, const int __imm, const int __R)
     987              : {
     988              :   return (__m128) __builtin_ia32_fixupimmss_mask ((__v4sf) __A,
     989              :                           (__v4sf) __B,
     990              :                           (__v4si) __C, __imm,
     991              :                           (__mmask8) __U, __R);
     992              : }
     993              : 
     994              : extern __inline __m128
     995              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     996              : _mm_maskz_fixupimm_round_ss (__mmask8 __U, __m128 __A, __m128 __B,
     997              :                  __m128i __C, const int __imm, const int __R)
     998              : {
     999              :   return (__m128) __builtin_ia32_fixupimmss_maskz ((__v4sf) __A,
    1000              :                            (__v4sf) __B,
    1001              :                            (__v4si) __C, __imm,
    1002              :                            (__mmask8) __U, __R);
    1003              : }
    1004              : 
    1005              : #else
    1006              : #define _mm_fixupimm_round_sd(X, Y, Z, C, R)                    \
    1007              :     ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X), \
    1008              :       (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C),     \
    1009              :       (__mmask8)(-1), (R)))
    1010              : 
    1011              : #define _mm_mask_fixupimm_round_sd(X, U, Y, Z, C, R)                \
    1012              :     ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X), \
    1013              :       (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C),     \
    1014              :       (__mmask8)(U), (R)))
    1015              : 
    1016              : #define _mm_maskz_fixupimm_round_sd(U, X, Y, Z, C, R)               \
    1017              :     ((__m128d)__builtin_ia32_fixupimmsd_maskz ((__v2df)(__m128d)(X),    \
    1018              :       (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C),     \
    1019              :       (__mmask8)(U), (R)))
    1020              : 
    1021              : #define _mm_fixupimm_round_ss(X, Y, Z, C, R)                    \
    1022              :     ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X),   \
    1023              :       (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C),      \
    1024              :       (__mmask8)(-1), (R)))
    1025              : 
    1026              : #define _mm_mask_fixupimm_round_ss(X, U, Y, Z, C, R)                \
    1027              :     ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X),   \
    1028              :       (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C),      \
    1029              :       (__mmask8)(U), (R)))
    1030              : 
    1031              : #define _mm_maskz_fixupimm_round_ss(U, X, Y, Z, C, R)               \
    1032              :     ((__m128)__builtin_ia32_fixupimmss_maskz ((__v4sf)(__m128)(X),  \
    1033              :       (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C),      \
    1034              :       (__mmask8)(U), (R)))
    1035              : 
    1036              : #endif
    1037              : 
    1038              : #ifdef __x86_64__
    1039              : #ifdef __OPTIMIZE__
    1040              : extern __inline unsigned long long
    1041              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1042              : _mm_cvt_roundss_u64 (__m128 __A, const int __R)
    1043              : {
    1044              :   return (unsigned long long) __builtin_ia32_vcvtss2usi64 ((__v4sf) __A, __R);
    1045              : }
    1046              : 
    1047              : extern __inline long long
    1048              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1049              : _mm_cvt_roundss_si64 (__m128 __A, const int __R)
    1050              : {
    1051              :   return (long long) __builtin_ia32_vcvtss2si64 ((__v4sf) __A, __R);
    1052              : }
    1053              : 
    1054              : extern __inline long long
    1055              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1056              : _mm_cvt_roundss_i64 (__m128 __A, const int __R)
    1057              : {
    1058              :   return (long long) __builtin_ia32_vcvtss2si64 ((__v4sf) __A, __R);
    1059              : }
    1060              : 
    1061              : extern __inline unsigned long long
    1062              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1063              : _mm_cvtt_roundss_u64 (__m128 __A, const int __R)
    1064              : {
    1065              :   return (unsigned long long) __builtin_ia32_vcvttss2usi64 ((__v4sf) __A, __R);
    1066              : }
    1067              : 
    1068              : extern __inline long long
    1069              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1070              : _mm_cvtt_roundss_i64 (__m128 __A, const int __R)
    1071              : {
    1072              :   return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf) __A, __R);
    1073              : }
    1074              : 
    1075              : extern __inline long long
    1076              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1077              : _mm_cvtt_roundss_si64 (__m128 __A, const int __R)
    1078              : {
    1079              :   return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf) __A, __R);
    1080              : }
    1081              : #else
    1082              : #define _mm_cvt_roundss_u64(A, B)   \
    1083              :     ((unsigned long long)__builtin_ia32_vcvtss2usi64(A, B))
    1084              : 
    1085              : #define _mm_cvt_roundss_si64(A, B)   \
    1086              :     ((long long)__builtin_ia32_vcvtss2si64(A, B))
    1087              : 
    1088              : #define _mm_cvt_roundss_i64(A, B)   \
    1089              :     ((long long)__builtin_ia32_vcvtss2si64(A, B))
    1090              : 
    1091              : #define _mm_cvtt_roundss_u64(A, B)  \
    1092              :     ((unsigned long long)__builtin_ia32_vcvttss2usi64(A, B))
    1093              : 
    1094              : #define _mm_cvtt_roundss_i64(A, B)  \
    1095              :     ((long long)__builtin_ia32_vcvttss2si64(A, B))
    1096              : 
    1097              : #define _mm_cvtt_roundss_si64(A, B)  \
    1098              :     ((long long)__builtin_ia32_vcvttss2si64(A, B))
    1099              : #endif
    1100              : #endif
    1101              : 
    1102              : #ifdef __OPTIMIZE__
    1103              : extern __inline unsigned
    1104              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1105              : _mm_cvt_roundss_u32 (__m128 __A, const int __R)
    1106              : {
    1107              :   return (unsigned) __builtin_ia32_vcvtss2usi32 ((__v4sf) __A, __R);
    1108              : }
    1109              : 
    1110              : extern __inline int
    1111              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1112              : _mm_cvt_roundss_si32 (__m128 __A, const int __R)
    1113              : {
    1114              :   return (int) __builtin_ia32_vcvtss2si32 ((__v4sf) __A, __R);
    1115              : }
    1116              : 
    1117              : extern __inline int
    1118              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1119              : _mm_cvt_roundss_i32 (__m128 __A, const int __R)
    1120              : {
    1121              :   return (int) __builtin_ia32_vcvtss2si32 ((__v4sf) __A, __R);
    1122              : }
    1123              : 
    1124              : extern __inline unsigned
    1125              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1126              : _mm_cvtt_roundss_u32 (__m128 __A, const int __R)
    1127              : {
    1128              :   return (unsigned) __builtin_ia32_vcvttss2usi32 ((__v4sf) __A, __R);
    1129              : }
    1130              : 
    1131              : extern __inline int
    1132              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1133              : _mm_cvtt_roundss_i32 (__m128 __A, const int __R)
    1134              : {
    1135              :   return (int) __builtin_ia32_vcvttss2si32 ((__v4sf) __A, __R);
    1136              : }
    1137              : 
    1138              : extern __inline int
    1139              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1140              : _mm_cvtt_roundss_si32 (__m128 __A, const int __R)
    1141              : {
    1142              :   return (int) __builtin_ia32_vcvttss2si32 ((__v4sf) __A, __R);
    1143              : }
    1144              : #else
    1145              : #define _mm_cvt_roundss_u32(A, B)   \
    1146              :     ((unsigned)__builtin_ia32_vcvtss2usi32(A, B))
    1147              : 
    1148              : #define _mm_cvt_roundss_si32(A, B)   \
    1149              :     ((int)__builtin_ia32_vcvtss2si32(A, B))
    1150              : 
    1151              : #define _mm_cvt_roundss_i32(A, B)   \
    1152              :     ((int)__builtin_ia32_vcvtss2si32(A, B))
    1153              : 
    1154              : #define _mm_cvtt_roundss_u32(A, B)  \
    1155              :     ((unsigned)__builtin_ia32_vcvttss2usi32(A, B))
    1156              : 
    1157              : #define _mm_cvtt_roundss_si32(A, B)  \
    1158              :     ((int)__builtin_ia32_vcvttss2si32(A, B))
    1159              : 
    1160              : #define _mm_cvtt_roundss_i32(A, B)  \
    1161              :     ((int)__builtin_ia32_vcvttss2si32(A, B))
    1162              : #endif
    1163              : 
    1164              : #ifdef __x86_64__
    1165              : #ifdef __OPTIMIZE__
    1166              : extern __inline unsigned long long
    1167              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1168              : _mm_cvt_roundsd_u64 (__m128d __A, const int __R)
    1169              : {
    1170              :   return (unsigned long long) __builtin_ia32_vcvtsd2usi64 ((__v2df) __A, __R);
    1171              : }
    1172              : 
    1173              : extern __inline long long
    1174              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1175              : _mm_cvt_roundsd_si64 (__m128d __A, const int __R)
    1176              : {
    1177              :   return (long long) __builtin_ia32_vcvtsd2si64 ((__v2df) __A, __R);
    1178              : }
    1179              : 
    1180              : extern __inline long long
    1181              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1182              : _mm_cvt_roundsd_i64 (__m128d __A, const int __R)
    1183              : {
    1184              :   return (long long) __builtin_ia32_vcvtsd2si64 ((__v2df) __A, __R);
    1185              : }
    1186              : 
    1187              : extern __inline unsigned long long
    1188              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1189              : _mm_cvtt_roundsd_u64 (__m128d __A, const int __R)
    1190              : {
    1191              :   return (unsigned long long) __builtin_ia32_vcvttsd2usi64 ((__v2df) __A, __R);
    1192              : }
    1193              : 
    1194              : extern __inline long long
    1195              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1196              : _mm_cvtt_roundsd_si64 (__m128d __A, const int __R)
    1197              : {
    1198              :   return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df) __A, __R);
    1199              : }
    1200              : 
    1201              : extern __inline long long
    1202              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1203              : _mm_cvtt_roundsd_i64 (__m128d __A, const int __R)
    1204              : {
    1205              :   return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df) __A, __R);
    1206              : }
    1207              : #else
    1208              : #define _mm_cvt_roundsd_u64(A, B)   \
    1209              :     ((unsigned long long)__builtin_ia32_vcvtsd2usi64(A, B))
    1210              : 
    1211              : #define _mm_cvt_roundsd_si64(A, B)   \
    1212              :     ((long long)__builtin_ia32_vcvtsd2si64(A, B))
    1213              : 
    1214              : #define _mm_cvt_roundsd_i64(A, B)   \
    1215              :     ((long long)__builtin_ia32_vcvtsd2si64(A, B))
    1216              : 
    1217              : #define _mm_cvtt_roundsd_u64(A, B)   \
    1218              :     ((unsigned long long)__builtin_ia32_vcvttsd2usi64(A, B))
    1219              : 
    1220              : #define _mm_cvtt_roundsd_si64(A, B)   \
    1221              :     ((long long)__builtin_ia32_vcvttsd2si64(A, B))
    1222              : 
    1223              : #define _mm_cvtt_roundsd_i64(A, B)   \
    1224              :     ((long long)__builtin_ia32_vcvttsd2si64(A, B))
    1225              : #endif
    1226              : #endif
    1227              : 
    1228              : #ifdef __OPTIMIZE__
    1229              : extern __inline unsigned
    1230              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1231              : _mm_cvt_roundsd_u32 (__m128d __A, const int __R)
    1232              : {
    1233              :   return (unsigned) __builtin_ia32_vcvtsd2usi32 ((__v2df) __A, __R);
    1234              : }
    1235              : 
    1236              : extern __inline int
    1237              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1238              : _mm_cvt_roundsd_si32 (__m128d __A, const int __R)
    1239              : {
    1240              :   return (int) __builtin_ia32_vcvtsd2si32 ((__v2df) __A, __R);
    1241              : }
    1242              : 
    1243              : extern __inline int
    1244              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1245              : _mm_cvt_roundsd_i32 (__m128d __A, const int __R)
    1246              : {
    1247              :   return (int) __builtin_ia32_vcvtsd2si32 ((__v2df) __A, __R);
    1248              : }
    1249              : 
    1250              : extern __inline unsigned
    1251              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1252              : _mm_cvtt_roundsd_u32 (__m128d __A, const int __R)
    1253              : {
    1254              :   return (unsigned) __builtin_ia32_vcvttsd2usi32 ((__v2df) __A, __R);
    1255              : }
    1256              : 
    1257              : extern __inline int
    1258              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1259              : _mm_cvtt_roundsd_i32 (__m128d __A, const int __R)
    1260              : {
    1261              :   return (int) __builtin_ia32_vcvttsd2si32 ((__v2df) __A, __R);
    1262              : }
    1263              : 
    1264              : extern __inline int
    1265              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1266              : _mm_cvtt_roundsd_si32 (__m128d __A, const int __R)
    1267              : {
    1268              :   return (int) __builtin_ia32_vcvttsd2si32 ((__v2df) __A, __R);
    1269              : }
    1270              : 
    1271              : extern __inline __m128
    1272              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1273              : _mm_cvt_roundsd_ss (__m128 __A, __m128d __B, const int __R)
    1274              : {
    1275              :   return (__m128) __builtin_ia32_cvtsd2ss_round ((__v4sf) __A,
    1276              :                          (__v2df) __B,
    1277              :                          __R);
    1278              : }
    1279              : 
    1280              : extern __inline __m128
    1281              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1282              : _mm_mask_cvt_roundsd_ss (__m128 __W, __mmask8 __U, __m128 __A,
    1283              :              __m128d __B, const int __R)
    1284              : {
    1285              :   return (__m128) __builtin_ia32_cvtsd2ss_mask_round ((__v4sf) __A,
    1286              :                               (__v2df) __B,
    1287              :                               (__v4sf) __W,
    1288              :                               __U,
    1289              :                               __R);
    1290              : }
    1291              : 
    1292              : extern __inline __m128
    1293              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1294              : _mm_maskz_cvt_roundsd_ss (__mmask8 __U, __m128 __A,
    1295              :              __m128d __B, const int __R)
    1296              : {
    1297              :   return (__m128) __builtin_ia32_cvtsd2ss_mask_round ((__v4sf) __A,
    1298              :                               (__v2df) __B,
    1299              :                               _mm_avx512_setzero_ps (),
    1300              :                               __U,
    1301              :                               __R);
    1302              : }
    1303              : 
    1304              : extern __inline __m128d
    1305              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1306              : _mm_cvt_roundss_sd (__m128d __A, __m128 __B, const int __R)
    1307              : {
    1308              :   return (__m128d) __builtin_ia32_cvtss2sd_round ((__v2df) __A,
    1309              :                           (__v4sf) __B,
    1310              :                           __R);
    1311              : }
    1312              : 
    1313              : extern __inline __m128d
    1314              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1315              : _mm_mask_cvt_roundss_sd (__m128d __W, __mmask8 __U, __m128d __A,
    1316              :              __m128 __B, const int __R)
    1317              : {
    1318              :   return (__m128d) __builtin_ia32_cvtss2sd_mask_round ((__v2df) __A,
    1319              :                                (__v4sf) __B,
    1320              :                                (__v2df) __W,
    1321              :                                __U,
    1322              :                                __R);
    1323              : }
    1324              : 
    1325              : extern __inline __m128d
    1326              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1327              : _mm_maskz_cvt_roundss_sd (__mmask8 __U, __m128d __A,
    1328              :               __m128 __B, const int __R)
    1329              : {
    1330              :   return (__m128d) __builtin_ia32_cvtss2sd_mask_round ((__v2df) __A,
    1331              :                                (__v4sf) __B,
    1332              :                                _mm_avx512_setzero_pd (),
    1333              :                                __U,
    1334              :                                __R);
    1335              : }
    1336              : 
    1337              : extern __inline __m128
    1338              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1339              : _mm_getexp_round_ss (__m128 __A, __m128 __B, const int __R)
    1340              : {
    1341              :   return (__m128) __builtin_ia32_getexpss128_round ((__v4sf) __A,
    1342              :                             (__v4sf) __B,
    1343              :                             __R);
    1344              : }
    1345              : 
    1346              : extern __inline __m128
    1347              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1348              : _mm_mask_getexp_round_ss (__m128 __W, __mmask8 __U, __m128 __A,
    1349              :               __m128 __B, const int __R)
    1350              : {
    1351              :   return (__m128) __builtin_ia32_getexpss_mask_round ((__v4sf) __A,
    1352              :                          (__v4sf) __B,
    1353              :                          (__v4sf) __W,
    1354              :                          (__mmask8) __U, __R);
    1355              : }
    1356              : 
    1357              : extern __inline __m128
    1358              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1359              : _mm_maskz_getexp_round_ss (__mmask8 __U, __m128 __A, __m128 __B,
    1360              :                const int __R)
    1361              : {
    1362              :   return (__m128) __builtin_ia32_getexpss_mask_round ((__v4sf) __A,
    1363              :                          (__v4sf) __B,
    1364              :                          (__v4sf)
    1365              :                          _mm_avx512_setzero_ps (),
    1366              :                          (__mmask8) __U, __R);
    1367              : }
    1368              : 
    1369              : extern __inline __m128d
    1370              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1371              : _mm_getexp_round_sd (__m128d __A, __m128d __B, const int __R)
    1372              : {
    1373              :   return (__m128d) __builtin_ia32_getexpsd128_round ((__v2df) __A,
    1374              :                              (__v2df) __B,
    1375              :                              __R);
    1376              : }
    1377              : 
    1378              : extern __inline __m128d
    1379              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1380              : _mm_mask_getexp_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
    1381              :               __m128d __B, const int __R)
    1382              : {
    1383              :   return (__m128d) __builtin_ia32_getexpsd_mask_round ((__v2df) __A,
    1384              :                          (__v2df) __B,
    1385              :                          (__v2df) __W,
    1386              :                          (__mmask8) __U, __R);
    1387              : }
    1388              : 
    1389              : extern __inline __m128d
    1390              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1391              : _mm_maskz_getexp_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
    1392              :                const int __R)
    1393              : {
    1394              :   return (__m128d) __builtin_ia32_getexpsd_mask_round ((__v2df) __A,
    1395              :                          (__v2df) __B,
    1396              :                          (__v2df)
    1397              :                          _mm_avx512_setzero_pd (),
    1398              :                          (__mmask8) __U, __R);
    1399              : }
    1400              : 
    1401              : extern __inline __m128d
    1402              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1403              : _mm_getmant_round_sd (__m128d __A, __m128d __B,
    1404              :               _MM_MANTISSA_NORM_ENUM __C,
    1405              :               _MM_MANTISSA_SIGN_ENUM __D, const int __R)
    1406              : {
    1407              :   return (__m128d) __builtin_ia32_getmantsd_round ((__v2df) __A,
    1408              :                           (__v2df) __B,
    1409              :                           (__D << 2) | __C,
    1410              :                            __R);
    1411              : }
    1412              : 
    1413              : extern __inline __m128d
    1414              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1415              : _mm_mask_getmant_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
    1416              :                   __m128d __B, _MM_MANTISSA_NORM_ENUM __C,
    1417              :                   _MM_MANTISSA_SIGN_ENUM __D, const int __R)
    1418              : {
    1419              :   return (__m128d) __builtin_ia32_getmantsd_mask_round ((__v2df) __A,
    1420              :                             (__v2df) __B,
    1421              :                             (__D << 2) | __C,
    1422              :                                                     (__v2df) __W,
    1423              :                              __U, __R);
    1424              : }
    1425              : 
    1426              : extern __inline __m128d
    1427              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1428              : _mm_maskz_getmant_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
    1429              :                    _MM_MANTISSA_NORM_ENUM __C,
    1430              :                    _MM_MANTISSA_SIGN_ENUM __D, const int __R)
    1431              : {
    1432              :   return (__m128d) __builtin_ia32_getmantsd_mask_round ((__v2df) __A,
    1433              :                             (__v2df) __B,
    1434              :                                 (__D << 2) | __C,
    1435              :                                                         (__v2df)
    1436              :                                                         _mm_avx512_setzero_pd(),
    1437              :                                 __U, __R);
    1438              : }
    1439              : 
    1440              : extern __inline __m128
    1441              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1442              : _mm_getmant_round_ss (__m128 __A, __m128 __B,
    1443              :               _MM_MANTISSA_NORM_ENUM __C,
    1444              :               _MM_MANTISSA_SIGN_ENUM __D, const int __R)
    1445              : {
    1446              :   return (__m128) __builtin_ia32_getmantss_round ((__v4sf) __A,
    1447              :                           (__v4sf) __B,
    1448              :                           (__D << 2) | __C,
    1449              :                           __R);
    1450              : }
    1451              : 
    1452              : extern __inline __m128
    1453              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1454              : _mm_mask_getmant_round_ss (__m128 __W, __mmask8 __U, __m128 __A,
    1455              :                   __m128 __B, _MM_MANTISSA_NORM_ENUM __C,
    1456              :                   _MM_MANTISSA_SIGN_ENUM __D, const int __R)
    1457              : {
    1458              :   return (__m128) __builtin_ia32_getmantss_mask_round ((__v4sf) __A,
    1459              :                             (__v4sf) __B,
    1460              :                             (__D << 2) | __C,
    1461              :                                                     (__v4sf) __W,
    1462              :                              __U, __R);
    1463              : }
    1464              : 
    1465              : extern __inline __m128
    1466              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1467              : _mm_maskz_getmant_round_ss (__mmask8 __U, __m128 __A, __m128 __B,
    1468              :                    _MM_MANTISSA_NORM_ENUM __C,
    1469              :                    _MM_MANTISSA_SIGN_ENUM __D, const int __R)
    1470              : {
    1471              :   return (__m128) __builtin_ia32_getmantss_mask_round ((__v4sf) __A,
    1472              :                             (__v4sf) __B,
    1473              :                                 (__D << 2) | __C,
    1474              :                                                         (__v4sf)
    1475              :                                                         _mm_avx512_setzero_ps(),
    1476              :                                 __U, __R);
    1477              : }
    1478              : 
    1479              : extern __inline __m128
    1480              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1481              : _mm_roundscale_round_ss (__m128 __A, __m128 __B, const int __imm,
    1482              :              const int __R)
    1483              : {
    1484              :   return (__m128)
    1485              :     __builtin_ia32_rndscaless_mask_round ((__v4sf) __A,
    1486              :                       (__v4sf) __B, __imm,
    1487              :                       (__v4sf)
    1488              :                       _mm_avx512_setzero_ps (),
    1489              :                       (__mmask8) -1,
    1490              :                       __R);
    1491              : }
    1492              : 
    1493              : extern __inline __m128
    1494              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1495              : _mm_mask_roundscale_round_ss (__m128 __A, __mmask8 __B, __m128 __C,
    1496              :                   __m128 __D, const int __imm, const int __R)
    1497              : {
    1498              :   return (__m128)
    1499              :     __builtin_ia32_rndscaless_mask_round ((__v4sf) __C,
    1500              :                       (__v4sf) __D, __imm,
    1501              :                       (__v4sf) __A,
    1502              :                       (__mmask8) __B,
    1503              :                       __R);
    1504              : }
    1505              : 
    1506              : extern __inline __m128
    1507              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1508              : _mm_maskz_roundscale_round_ss (__mmask8 __A, __m128 __B, __m128 __C,
    1509              :                    const int __imm, const int __R)
    1510              : {
    1511              :   return (__m128)
    1512              :     __builtin_ia32_rndscaless_mask_round ((__v4sf) __B,
    1513              :                       (__v4sf) __C, __imm,
    1514              :                       (__v4sf)
    1515              :                       _mm_avx512_setzero_ps (),
    1516              :                       (__mmask8) __A,
    1517              :                       __R);
    1518              : }
    1519              : 
    1520              : extern __inline __m128d
    1521              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1522              : _mm_roundscale_round_sd (__m128d __A, __m128d __B, const int __imm,
    1523              :              const int __R)
    1524              : {
    1525              :   return (__m128d)
    1526              :     __builtin_ia32_rndscalesd_mask_round ((__v2df) __A,
    1527              :                       (__v2df) __B, __imm,
    1528              :                       (__v2df)
    1529              :                       _mm_avx512_setzero_pd (),
    1530              :                       (__mmask8) -1,
    1531              :                       __R);
    1532              : }
    1533              : 
    1534              : extern __inline __m128d
    1535              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1536              : _mm_mask_roundscale_round_sd (__m128d __A, __mmask8 __B, __m128d __C,
    1537              :                   __m128d __D, const int __imm, const int __R)
    1538              : {
    1539              :   return (__m128d)
    1540              :     __builtin_ia32_rndscalesd_mask_round ((__v2df) __C,
    1541              :                       (__v2df) __D, __imm,
    1542              :                       (__v2df) __A,
    1543              :                       (__mmask8) __B,
    1544              :                       __R);
    1545              : }
    1546              : 
    1547              : extern __inline __m128d
    1548              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1549              : _mm_maskz_roundscale_round_sd (__mmask8 __A, __m128d __B, __m128d __C,
    1550              :                    const int __imm, const int __R)
    1551              : {
    1552              :   return (__m128d)
    1553              :     __builtin_ia32_rndscalesd_mask_round ((__v2df) __B,
    1554              :                       (__v2df) __C, __imm,
    1555              :                       (__v2df)
    1556              :                       _mm_avx512_setzero_pd (),
    1557              :                       (__mmask8) __A,
    1558              :                       __R);
    1559              : }
    1560              : 
    1561              : #else
    1562              : #define _mm_cvt_roundsd_u32(A, B)   \
    1563              :     ((unsigned)__builtin_ia32_vcvtsd2usi32(A, B))
    1564              : 
    1565              : #define _mm_cvt_roundsd_si32(A, B)   \
    1566              :     ((int)__builtin_ia32_vcvtsd2si32(A, B))
    1567              : 
    1568              : #define _mm_cvt_roundsd_i32(A, B)   \
    1569              :     ((int)__builtin_ia32_vcvtsd2si32(A, B))
    1570              : 
    1571              : #define _mm_cvtt_roundsd_u32(A, B)   \
    1572              :     ((unsigned)__builtin_ia32_vcvttsd2usi32(A, B))
    1573              : 
    1574              : #define _mm_cvtt_roundsd_si32(A, B)   \
    1575              :     ((int)__builtin_ia32_vcvttsd2si32(A, B))
    1576              : 
    1577              : #define _mm_cvtt_roundsd_i32(A, B)   \
    1578              :     ((int)__builtin_ia32_vcvttsd2si32(A, B))
    1579              : 
    1580              : #define _mm_cvt_roundsd_ss(A, B, C)      \
    1581              :     (__m128)__builtin_ia32_cvtsd2ss_round(A, B, C)
    1582              : 
    1583              : #define _mm_mask_cvt_roundsd_ss(W, U, A, B, C)  \
    1584              :     (__m128)__builtin_ia32_cvtsd2ss_mask_round ((A), (B), (W), (U), (C))
    1585              : 
    1586              : #define _mm_maskz_cvt_roundsd_ss(U, A, B, C)    \
    1587              :     (__m128)__builtin_ia32_cvtsd2ss_mask_round ((A), (B), _mm_avx512_setzero_ps (), \
    1588              :                         (U), (C))
    1589              : 
    1590              : #define _mm_cvt_roundss_sd(A, B, C)      \
    1591              :     (__m128d)__builtin_ia32_cvtss2sd_round(A, B, C)
    1592              : 
    1593              : #define _mm_mask_cvt_roundss_sd(W, U, A, B, C)  \
    1594              :     (__m128d)__builtin_ia32_cvtss2sd_mask_round ((A), (B), (W), (U), (C))
    1595              : 
    1596              : #define _mm_maskz_cvt_roundss_sd(U, A, B, C)    \
    1597              :     (__m128d)__builtin_ia32_cvtss2sd_mask_round ((A), (B), _mm_avx512_setzero_pd (), \
    1598              :                          (U), (C))
    1599              : 
    1600              : #define _mm_getmant_round_sd(X, Y, C, D, R)                                                  \
    1601              :   ((__m128d)__builtin_ia32_getmantsd_round ((__v2df)(__m128d)(X),                    \
    1602              :                         (__v2df)(__m128d)(Y),   \
    1603              :                         (int)(((D)<<2) | (C)),    \
    1604              :                         (R)))
    1605              : 
    1606              : #define _mm_mask_getmant_round_sd(W, U, X, Y, C, D, R)                                       \
    1607              :   ((__m128d)__builtin_ia32_getmantsd_mask_round ((__v2df)(__m128d)(X),                  \
    1608              :                          (__v2df)(__m128d)(Y),                  \
    1609              :                                              (int)(((D)<<2) | (C)),                 \
    1610              :                                              (__v2df)(__m128d)(W),                   \
    1611              :                                              (__mmask8)(U),\
    1612              :                          (R)))
    1613              : 
    1614              : #define _mm_maskz_getmant_round_sd(U, X, Y, C, D, R)                                         \
    1615              :   ((__m128d)__builtin_ia32_getmantsd_mask_round ((__v2df)(__m128d)(X),                  \
    1616              :                                                  (__v2df)(__m128d)(Y),                  \
    1617              :                                              (int)(((D)<<2) | (C)),              \
    1618              :                                              (__v2df)(__m128d)_mm_avx512_setzero_pd(),  \
    1619              :                                              (__mmask8)(U),\
    1620              :                          (R)))
    1621              : 
    1622              : #define _mm_getmant_round_ss(X, Y, C, D, R)                                                  \
    1623              :   ((__m128)__builtin_ia32_getmantss_round ((__v4sf)(__m128)(X),                      \
    1624              :                        (__v4sf)(__m128)(Y),     \
    1625              :                        (int)(((D)<<2) | (C)), \
    1626              :                        (R)))
    1627              : 
    1628              : #define _mm_mask_getmant_round_ss(W, U, X, Y, C, D, R)                                       \
    1629              :   ((__m128)__builtin_ia32_getmantss_mask_round ((__v4sf)(__m128)(X),                  \
    1630              :                          (__v4sf)(__m128)(Y),                  \
    1631              :                                              (int)(((D)<<2) | (C)),                 \
    1632              :                                              (__v4sf)(__m128)(W),                   \
    1633              :                                              (__mmask8)(U),\
    1634              :                          (R)))
    1635              : 
    1636              : #define _mm_maskz_getmant_round_ss(U, X, Y, C, D, R)                                         \
    1637              :   ((__m128)__builtin_ia32_getmantss_mask_round ((__v4sf)(__m128)(X),                  \
    1638              :                                                  (__v4sf)(__m128)(Y),                  \
    1639              :                                              (int)(((D)<<2) | (C)),              \
    1640              :                                              (__v4sf)(__m128)_mm_avx512_setzero_ps(),  \
    1641              :                                              (__mmask8)(U),\
    1642              :                          (R)))
    1643              : 
    1644              : #define _mm_getexp_round_ss(A, B, R)                              \
    1645              :   ((__m128)__builtin_ia32_getexpss128_round((__v4sf)(__m128)(A), (__v4sf)(__m128)(B), R))
    1646              : 
    1647              : #define _mm_mask_getexp_round_ss(W, U, A, B, C) \
    1648              :     (__m128)__builtin_ia32_getexpss_mask_round(A, B, W, U, C)
    1649              : 
    1650              : #define _mm_maskz_getexp_round_ss(U, A, B, C)   \
    1651              :     (__m128)__builtin_ia32_getexpss_mask_round(A, B, (__v4sf)_mm_avx512_setzero_ps(), U, C)
    1652              : 
    1653              : #define _mm_getexp_round_sd(A, B, R)                               \
    1654              :   ((__m128d)__builtin_ia32_getexpsd128_round((__v2df)(__m128d)(A), (__v2df)(__m128d)(B), R))
    1655              : 
    1656              : #define _mm_mask_getexp_round_sd(W, U, A, B, C) \
    1657              :     (__m128d)__builtin_ia32_getexpsd_mask_round(A, B, W, U, C)
    1658              : 
    1659              : #define _mm_maskz_getexp_round_sd(U, A, B, C)   \
    1660              :     (__m128d)__builtin_ia32_getexpsd_mask_round(A, B, (__v2df)_mm_avx512_setzero_pd(), U, C)
    1661              : 
    1662              : #define _mm_roundscale_round_ss(A, B, I, R)             \
    1663              :   ((__m128)                             \
    1664              :    __builtin_ia32_rndscaless_mask_round ((__v4sf) (__m128) (A),     \
    1665              :                      (__v4sf) (__m128) (B),     \
    1666              :                      (int) (I),         \
    1667              :                      (__v4sf) _mm_avx512_setzero_ps (), \
    1668              :                      (__mmask8) (-1),       \
    1669              :                      (int) (R)))
    1670              : #define _mm_mask_roundscale_round_ss(A, U, B, C, I, R)      \
    1671              :   ((__m128)                         \
    1672              :    __builtin_ia32_rndscaless_mask_round ((__v4sf) (__m128) (B), \
    1673              :                      (__v4sf) (__m128) (C), \
    1674              :                      (int) (I),     \
    1675              :                      (__v4sf) (__m128) (A), \
    1676              :                      (__mmask8) (U),    \
    1677              :                      (int) (R)))
    1678              : #define _mm_maskz_roundscale_round_ss(U, A, B, I, R)            \
    1679              :   ((__m128)                             \
    1680              :    __builtin_ia32_rndscaless_mask_round ((__v4sf) (__m128) (A),     \
    1681              :                      (__v4sf) (__m128) (B),     \
    1682              :                      (int) (I),         \
    1683              :                      (__v4sf) _mm_avx512_setzero_ps (), \
    1684              :                      (__mmask8) (U),        \
    1685              :                      (int) (R)))
    1686              : #define _mm_roundscale_round_sd(A, B, I, R)             \
    1687              :   ((__m128d)                                \
    1688              :    __builtin_ia32_rndscalesd_mask_round ((__v2df) (__m128d) (A),    \
    1689              :                      (__v2df) (__m128d) (B),    \
    1690              :                      (int) (I),         \
    1691              :                      (__v2df) _mm_avx512_setzero_pd (), \
    1692              :                      (__mmask8) (-1),       \
    1693              :                      (int) (R)))
    1694              : #define _mm_mask_roundscale_round_sd(A, U, B, C, I, R)          \
    1695              :   ((__m128d)                                \
    1696              :    __builtin_ia32_rndscalesd_mask_round ((__v2df) (__m128d) (B),    \
    1697              :                      (__v2df) (__m128d) (C),    \
    1698              :                      (int) (I),         \
    1699              :                      (__v2df) (__m128d) (A),    \
    1700              :                      (__mmask8) (U),        \
    1701              :                      (int) (R)))
    1702              : #define _mm_maskz_roundscale_round_sd(U, A, B, I, R)            \
    1703              :   ((__m128d)                                \
    1704              :    __builtin_ia32_rndscalesd_mask_round ((__v2df) (__m128d) (A),    \
    1705              :                      (__v2df) (__m128d) (B),    \
    1706              :                      (int) (I),         \
    1707              :                      (__v2df) _mm_avx512_setzero_pd (), \
    1708              :                      (__mmask8) (U),        \
    1709              :                      (int) (R)))
    1710              : 
    1711              : #endif
    1712              : 
    1713              : #define _mm_mask_cvtss_sd(W, U, A, B) \
    1714              :     _mm_mask_cvt_roundss_sd ((W), (U), (A), (B), _MM_FROUND_CUR_DIRECTION)
    1715              : 
    1716              : #define _mm_maskz_cvtss_sd(U, A, B) \
    1717              :     _mm_maskz_cvt_roundss_sd ((U), (A), (B), _MM_FROUND_CUR_DIRECTION)
    1718              : 
    1719              : #define _mm_mask_cvtsd_ss(W, U, A, B) \
    1720              :     _mm_mask_cvt_roundsd_ss ((W), (U), (A), (B), _MM_FROUND_CUR_DIRECTION)
    1721              : 
    1722              : #define _mm_maskz_cvtsd_ss(U, A, B) \
    1723              :     _mm_maskz_cvt_roundsd_ss ((U), (A), (B), _MM_FROUND_CUR_DIRECTION)
    1724              : 
    1725              : #ifdef __OPTIMIZE__
    1726              : extern __inline __mmask16
    1727              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1728              : _kshiftli_mask16 (__mmask16 __A, unsigned int __B)
    1729              : {
    1730              :   return (__mmask16) __builtin_ia32_kshiftlihi ((__mmask16) __A,
    1731              :                         (__mmask8) __B);
    1732              : }
    1733              : 
    1734              : extern __inline __mmask16
    1735              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1736              : _kshiftri_mask16 (__mmask16 __A, unsigned int __B)
    1737              : {
    1738              :   return (__mmask16) __builtin_ia32_kshiftrihi ((__mmask16) __A,
    1739              :                         (__mmask8) __B);
    1740              : }
    1741              : 
    1742              : extern __inline __mmask8
    1743              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1744              : _mm_cmp_round_sd_mask (__m128d __X, __m128d __Y, const int __P, const int __R)
    1745              : {
    1746              :   return (__mmask8) __builtin_ia32_cmpsd_mask ((__v2df) __X,
    1747              :                            (__v2df) __Y, __P,
    1748              :                            (__mmask8) -1, __R);
    1749              : }
    1750              : 
    1751              : extern __inline __mmask8
    1752              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1753              : _mm_mask_cmp_round_sd_mask (__mmask8 __M, __m128d __X, __m128d __Y,
    1754              :                 const int __P, const int __R)
    1755              : {
    1756              :   return (__mmask8) __builtin_ia32_cmpsd_mask ((__v2df) __X,
    1757              :                            (__v2df) __Y, __P,
    1758              :                            (__mmask8) __M, __R);
    1759              : }
    1760              : 
    1761              : extern __inline __mmask8
    1762              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1763              : _mm_cmp_round_ss_mask (__m128 __X, __m128 __Y, const int __P, const int __R)
    1764              : {
    1765              :   return (__mmask8) __builtin_ia32_cmpss_mask ((__v4sf) __X,
    1766              :                            (__v4sf) __Y, __P,
    1767              :                            (__mmask8) -1, __R);
    1768              : }
    1769              : 
    1770              : extern __inline __mmask8
    1771              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1772              : _mm_mask_cmp_round_ss_mask (__mmask8 __M, __m128 __X, __m128 __Y,
    1773              :                 const int __P, const int __R)
    1774              : {
    1775              :   return (__mmask8) __builtin_ia32_cmpss_mask ((__v4sf) __X,
    1776              :                            (__v4sf) __Y, __P,
    1777              :                            (__mmask8) __M, __R);
    1778              : }
    1779              : 
    1780              : #else
    1781              : #define _kshiftli_mask16(X, Y)                      \
    1782              :   ((__mmask16) __builtin_ia32_kshiftlihi ((__mmask16)(X), (__mmask8)(Y)))
    1783              : 
    1784              : #define _kshiftri_mask16(X, Y)                      \
    1785              :   ((__mmask16) __builtin_ia32_kshiftrihi ((__mmask16)(X), (__mmask8)(Y)))
    1786              : 
    1787              : #define _mm_cmp_round_sd_mask(X, Y, P, R)               \
    1788              :   ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X),      \
    1789              :                      (__v2df)(__m128d)(Y), (int)(P),\
    1790              :                      (__mmask8)-1, R))
    1791              : 
    1792              : #define _mm_mask_cmp_round_sd_mask(M, X, Y, P, R)           \
    1793              :   ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X),      \
    1794              :                      (__v2df)(__m128d)(Y), (int)(P),\
    1795              :                      (M), R))
    1796              : 
    1797              : #define _mm_cmp_round_ss_mask(X, Y, P, R)               \
    1798              :   ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X),       \
    1799              :                      (__v4sf)(__m128)(Y), (int)(P), \
    1800              :                      (__mmask8)-1, R))
    1801              : 
    1802              : #define _mm_mask_cmp_round_ss_mask(M, X, Y, P, R)           \
    1803              :   ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X),       \
    1804              :                      (__v4sf)(__m128)(Y), (int)(P), \
    1805              :                      (M), R))
    1806              : 
    1807              : #endif
    1808              : 
    1809              : extern __inline unsigned char
    1810              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1811              : _kortest_mask16_u8  (__mmask16 __A,  __mmask16 __B, unsigned char *__CF)
    1812              : {
    1813              :   *__CF = (unsigned char) __builtin_ia32_kortestchi (__A, __B);
    1814              :   return (unsigned char) __builtin_ia32_kortestzhi (__A, __B);
    1815              : }
    1816              : 
    1817              : extern __inline unsigned char
    1818              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1819              : _kortestz_mask16_u8 (__mmask16 __A, __mmask16 __B)
    1820              : {
    1821              :   return (unsigned char) __builtin_ia32_kortestzhi ((__mmask16) __A,
    1822              :                             (__mmask16) __B);
    1823              : }
    1824              : 
    1825              : extern __inline unsigned char
    1826              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1827              : _kortestc_mask16_u8 (__mmask16 __A, __mmask16 __B)
    1828              : {
    1829              :   return (unsigned char) __builtin_ia32_kortestchi ((__mmask16) __A,
    1830              :                             (__mmask16) __B);
    1831              : }
    1832              : 
    1833              : extern __inline unsigned int
    1834              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1835              : _cvtmask16_u32 (__mmask16 __A)
    1836              : {
    1837              :   return (unsigned int) __builtin_ia32_kmovw ((__mmask16 ) __A);
    1838              : }
    1839              : 
    1840              : extern __inline __mmask16
    1841              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1842              : _cvtu32_mask16 (unsigned int __A)
    1843              : {
    1844              :   return (__mmask16) __builtin_ia32_kmovw ((__mmask16 ) __A);
    1845              : }
    1846              : 
    1847              : extern __inline __mmask16
    1848              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1849              : _load_mask16 (__mmask16 *__A)
    1850              : {
    1851              :   return (__mmask16) __builtin_ia32_kmovw (*(__mmask16 *) __A);
    1852              : }
    1853              : 
    1854              : extern __inline void
    1855              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1856              : _store_mask16 (__mmask16 *__A, __mmask16 __B)
    1857              : {
    1858              :   *(__mmask16 *) __A = __builtin_ia32_kmovw (__B);
    1859              : }
    1860              : 
    1861              : extern __inline __mmask16
    1862              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1863              : _kand_mask16 (__mmask16 __A, __mmask16 __B)
    1864              : {
    1865              :   return (__mmask16) __builtin_ia32_kandhi ((__mmask16) __A, (__mmask16) __B);
    1866              : }
    1867              : 
    1868              : extern __inline __mmask16
    1869              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1870              : _kandn_mask16 (__mmask16 __A, __mmask16 __B)
    1871              : {
    1872              :   return (__mmask16) __builtin_ia32_kandnhi ((__mmask16) __A,
    1873              :                          (__mmask16) __B);
    1874              : }
    1875              : 
    1876              : extern __inline __mmask16
    1877              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1878              : _kor_mask16 (__mmask16 __A, __mmask16 __B)
    1879              : {
    1880              :   return (__mmask16) __builtin_ia32_korhi ((__mmask16) __A, (__mmask16) __B);
    1881              : }
    1882              : 
    1883              : extern __inline __mmask16
    1884              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1885              : _kxnor_mask16 (__mmask16 __A, __mmask16 __B)
    1886              : {
    1887              :   return (__mmask16) __builtin_ia32_kxnorhi ((__mmask16) __A, (__mmask16) __B);
    1888              : }
    1889              : 
    1890              : extern __inline __mmask16
    1891              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1892              : _kxor_mask16 (__mmask16 __A, __mmask16 __B)
    1893              : {
    1894              :   return (__mmask16) __builtin_ia32_kxorhi ((__mmask16) __A, (__mmask16) __B);
    1895              : }
    1896              : 
    1897              : extern __inline __mmask16
    1898              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1899              : _knot_mask16 (__mmask16 __A)
    1900              : {
    1901              :   return (__mmask16) __builtin_ia32_knothi ((__mmask16) __A);
    1902              : }
    1903              : 
    1904              : extern __inline __mmask16
    1905              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1906              : _kunpackb_mask16 (__mmask8 __A, __mmask8 __B)
    1907              : {
    1908              :   return (__mmask16) __builtin_ia32_kunpckhi ((__mmask16) __A, (__mmask16) __B);
    1909              : }
    1910              : 
    1911              : #ifdef __OPTIMIZE__
    1912              : extern __inline __m128d
    1913              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1914              : _mm_max_round_sd (__m128d __A, __m128d __B, const int __R)
    1915              : {
    1916              :   return (__m128d) __builtin_ia32_maxsd_round ((__v2df) __A,
    1917              :                            (__v2df) __B,
    1918              :                            __R);
    1919              : }
    1920              : 
    1921              : extern __inline __m128d
    1922              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1923              : _mm_mask_max_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
    1924              :               __m128d __B, const int __R)
    1925              : {
    1926              :   return (__m128d) __builtin_ia32_maxsd_mask_round ((__v2df) __A,
    1927              :                          (__v2df) __B,
    1928              :                          (__v2df) __W,
    1929              :                          (__mmask8) __U, __R);
    1930              : }
    1931              : 
    1932              : extern __inline __m128d
    1933              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1934              : _mm_maskz_max_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
    1935              :                const int __R)
    1936              : {
    1937              :   return (__m128d) __builtin_ia32_maxsd_mask_round ((__v2df) __A,
    1938              :                          (__v2df) __B,
    1939              :                          (__v2df)
    1940              :                          _mm_avx512_setzero_pd (),
    1941              :                          (__mmask8) __U, __R);
    1942              : }
    1943              : 
    1944              : extern __inline __m128
    1945              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1946              : _mm_max_round_ss (__m128 __A, __m128 __B, const int __R)
    1947              : {
    1948              :   return (__m128) __builtin_ia32_maxss_round ((__v4sf) __A,
    1949              :                           (__v4sf) __B,
    1950              :                           __R);
    1951              : }
    1952              : 
    1953              : extern __inline __m128
    1954              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1955              : _mm_mask_max_round_ss (__m128 __W, __mmask8 __U, __m128 __A,
    1956              :               __m128 __B, const int __R)
    1957              : {
    1958              :   return (__m128) __builtin_ia32_maxss_mask_round ((__v4sf) __A,
    1959              :                          (__v4sf) __B,
    1960              :                          (__v4sf) __W,
    1961              :                          (__mmask8) __U, __R);
    1962              : }
    1963              : 
    1964              : extern __inline __m128
    1965              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1966              : _mm_maskz_max_round_ss (__mmask8 __U, __m128 __A, __m128 __B,
    1967              :                const int __R)
    1968              : {
    1969              :   return (__m128) __builtin_ia32_maxss_mask_round ((__v4sf) __A,
    1970              :                          (__v4sf) __B,
    1971              :                          (__v4sf)
    1972              :                          _mm_avx512_setzero_ps (),
    1973              :                          (__mmask8) __U, __R);
    1974              : }
    1975              : 
    1976              : extern __inline __m128d
    1977              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1978              : _mm_min_round_sd (__m128d __A, __m128d __B, const int __R)
    1979              : {
    1980              :   return (__m128d) __builtin_ia32_minsd_round ((__v2df) __A,
    1981              :                            (__v2df) __B,
    1982              :                            __R);
    1983              : }
    1984              : 
    1985              : extern __inline __m128d
    1986              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1987              : _mm_mask_min_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
    1988              :               __m128d __B, const int __R)
    1989              : {
    1990              :   return (__m128d) __builtin_ia32_minsd_mask_round ((__v2df) __A,
    1991              :                          (__v2df) __B,
    1992              :                          (__v2df) __W,
    1993              :                          (__mmask8) __U, __R);
    1994              : }
    1995              : 
    1996              : extern __inline __m128d
    1997              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    1998              : _mm_maskz_min_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
    1999              :                const int __R)
    2000              : {
    2001              :   return (__m128d) __builtin_ia32_minsd_mask_round ((__v2df) __A,
    2002              :                          (__v2df) __B,
    2003              :                          (__v2df)
    2004              :                          _mm_avx512_setzero_pd (),
    2005              :                          (__mmask8) __U, __R);
    2006              : }
    2007              : 
    2008              : extern __inline __m128
    2009              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2010              : _mm_min_round_ss (__m128 __A, __m128 __B, const int __R)
    2011              : {
    2012              :   return (__m128) __builtin_ia32_minss_round ((__v4sf) __A,
    2013              :                           (__v4sf) __B,
    2014              :                           __R);
    2015              : }
    2016              : 
    2017              : extern __inline __m128
    2018              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2019              : _mm_mask_min_round_ss (__m128 __W, __mmask8 __U, __m128 __A,
    2020              :               __m128 __B, const int __R)
    2021              : {
    2022              :   return (__m128) __builtin_ia32_minss_mask_round ((__v4sf) __A,
    2023              :                          (__v4sf) __B,
    2024              :                          (__v4sf) __W,
    2025              :                          (__mmask8) __U, __R);
    2026              : }
    2027              : 
    2028              : extern __inline __m128
    2029              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2030              : _mm_maskz_min_round_ss (__mmask8 __U, __m128 __A, __m128 __B,
    2031              :                const int __R)
    2032              : {
    2033              :   return (__m128) __builtin_ia32_minss_mask_round ((__v4sf) __A,
    2034              :                          (__v4sf) __B,
    2035              :                          (__v4sf)
    2036              :                          _mm_avx512_setzero_ps (),
    2037              :                          (__mmask8) __U, __R);
    2038              : }
    2039              : 
    2040              : #else
    2041              : #define _mm_max_round_sd(A, B, C)            \
    2042              :     (__m128d)__builtin_ia32_maxsd_round(A, B, C)
    2043              : 
    2044              : #define _mm_mask_max_round_sd(W, U, A, B, C) \
    2045              :     (__m128d)__builtin_ia32_maxsd_mask_round(A, B, W, U, C)
    2046              : 
    2047              : #define _mm_maskz_max_round_sd(U, A, B, C)   \
    2048              :     (__m128d)__builtin_ia32_maxsd_mask_round(A, B, (__v2df)_mm_avx512_setzero_pd(), U, C)
    2049              : 
    2050              : #define _mm_max_round_ss(A, B, C)            \
    2051              :     (__m128)__builtin_ia32_maxss_round(A, B, C)
    2052              : 
    2053              : #define _mm_mask_max_round_ss(W, U, A, B, C) \
    2054              :     (__m128)__builtin_ia32_maxss_mask_round(A, B, W, U, C)
    2055              : 
    2056              : #define _mm_maskz_max_round_ss(U, A, B, C)   \
    2057              :     (__m128)__builtin_ia32_maxss_mask_round(A, B, (__v4sf)_mm_avx512_setzero_ps(), U, C)
    2058              : 
    2059              : #define _mm_min_round_sd(A, B, C)            \
    2060              :     (__m128d)__builtin_ia32_minsd_round(A, B, C)
    2061              : 
    2062              : #define _mm_mask_min_round_sd(W, U, A, B, C) \
    2063              :     (__m128d)__builtin_ia32_minsd_mask_round(A, B, W, U, C)
    2064              : 
    2065              : #define _mm_maskz_min_round_sd(U, A, B, C)   \
    2066              :     (__m128d)__builtin_ia32_minsd_mask_round(A, B, (__v2df)_mm_avx512_setzero_pd(), U, C)
    2067              : 
    2068              : #define _mm_min_round_ss(A, B, C)            \
    2069              :     (__m128)__builtin_ia32_minss_round(A, B, C)
    2070              : 
    2071              : #define _mm_mask_min_round_ss(W, U, A, B, C) \
    2072              :     (__m128)__builtin_ia32_minss_mask_round(A, B, W, U, C)
    2073              : 
    2074              : #define _mm_maskz_min_round_ss(U, A, B, C)   \
    2075              :     (__m128)__builtin_ia32_minss_mask_round(A, B, (__v4sf)_mm_avx512_setzero_ps(), U, C)
    2076              : 
    2077              : #endif
    2078              : 
    2079              : #ifdef __OPTIMIZE__
    2080              : extern __inline __m128d
    2081              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2082              : _mm_fmadd_round_sd (__m128d __W, __m128d __A, __m128d __B, const int __R)
    2083              : {
    2084              :   return (__m128d) __builtin_ia32_vfmaddsd3_round ((__v2df) __W,
    2085              :                            (__v2df) __A,
    2086              :                            (__v2df) __B,
    2087              :                            __R);
    2088              : }
    2089              : 
    2090              : extern __inline __m128
    2091              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2092              : _mm_fmadd_round_ss (__m128 __W, __m128 __A, __m128 __B, const int __R)
    2093              : {
    2094              :   return (__m128) __builtin_ia32_vfmaddss3_round ((__v4sf) __W,
    2095              :                           (__v4sf) __A,
    2096              :                           (__v4sf) __B,
    2097              :                           __R);
    2098              : }
    2099              : 
    2100              : extern __inline __m128d
    2101              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2102              : _mm_fmsub_round_sd (__m128d __W, __m128d __A, __m128d __B, const int __R)
    2103              : {
    2104              :   return (__m128d) __builtin_ia32_vfmaddsd3_round ((__v2df) __W,
    2105              :                            (__v2df) __A,
    2106              :                            -(__v2df) __B,
    2107              :                            __R);
    2108              : }
    2109              : 
    2110              : extern __inline __m128
    2111              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2112              : _mm_fmsub_round_ss (__m128 __W, __m128 __A, __m128 __B, const int __R)
    2113              : {
    2114              :   return (__m128) __builtin_ia32_vfmaddss3_round ((__v4sf) __W,
    2115              :                           (__v4sf) __A,
    2116              :                           -(__v4sf) __B,
    2117              :                           __R);
    2118              : }
    2119              : 
    2120              : extern __inline __m128d
    2121              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2122              : _mm_fnmadd_round_sd (__m128d __W, __m128d __A, __m128d __B, const int __R)
    2123              : {
    2124              :   return (__m128d) __builtin_ia32_vfmaddsd3_round ((__v2df) __W,
    2125              :                            -(__v2df) __A,
    2126              :                            (__v2df) __B,
    2127              :                            __R);
    2128              : }
    2129              : 
    2130              : extern __inline __m128
    2131              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2132              : _mm_fnmadd_round_ss (__m128 __W, __m128 __A, __m128 __B, const int __R)
    2133              : {
    2134              :   return (__m128) __builtin_ia32_vfmaddss3_round ((__v4sf) __W,
    2135              :                           -(__v4sf) __A,
    2136              :                           (__v4sf) __B,
    2137              :                           __R);
    2138              : }
    2139              : 
    2140              : extern __inline __m128d
    2141              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2142              : _mm_fnmsub_round_sd (__m128d __W, __m128d __A, __m128d __B, const int __R)
    2143              : {
    2144              :   return (__m128d) __builtin_ia32_vfmaddsd3_round ((__v2df) __W,
    2145              :                            -(__v2df) __A,
    2146              :                            -(__v2df) __B,
    2147              :                            __R);
    2148              : }
    2149              : 
    2150              : extern __inline __m128
    2151              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2152              : _mm_fnmsub_round_ss (__m128 __W, __m128 __A, __m128 __B, const int __R)
    2153              : {
    2154              :   return (__m128) __builtin_ia32_vfmaddss3_round ((__v4sf) __W,
    2155              :                           -(__v4sf) __A,
    2156              :                           -(__v4sf) __B,
    2157              :                           __R);
    2158              : }
    2159              : #else
    2160              : #define _mm_fmadd_round_sd(A, B, C, R)            \
    2161              :     (__m128d)__builtin_ia32_vfmaddsd3_round(A, B, C, R)
    2162              : 
    2163              : #define _mm_fmadd_round_ss(A, B, C, R)            \
    2164              :     (__m128)__builtin_ia32_vfmaddss3_round(A, B, C, R)
    2165              : 
    2166              : #define _mm_fmsub_round_sd(A, B, C, R)            \
    2167              :     (__m128d)__builtin_ia32_vfmaddsd3_round(A, B, -(C), R)
    2168              : 
    2169              : #define _mm_fmsub_round_ss(A, B, C, R)            \
    2170              :     (__m128)__builtin_ia32_vfmaddss3_round(A, B, -(C), R)
    2171              : 
    2172              : #define _mm_fnmadd_round_sd(A, B, C, R)            \
    2173              :     (__m128d)__builtin_ia32_vfmaddsd3_round(A, -(B), C, R)
    2174              : 
    2175              : #define _mm_fnmadd_round_ss(A, B, C, R)            \
    2176              :    (__m128)__builtin_ia32_vfmaddss3_round(A, -(B), C, R)
    2177              : 
    2178              : #define _mm_fnmsub_round_sd(A, B, C, R)            \
    2179              :     (__m128d)__builtin_ia32_vfmaddsd3_round(A, -(B), -(C), R)
    2180              : 
    2181              : #define _mm_fnmsub_round_ss(A, B, C, R)            \
    2182              :     (__m128)__builtin_ia32_vfmaddss3_round(A, -(B), -(C), R)
    2183              : #endif
    2184              : 
    2185              : extern __inline __m128d
    2186              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2187              : _mm_mask_fmadd_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
    2188              : {
    2189              :   return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
    2190              :                           (__v2df) __A,
    2191              :                           (__v2df) __B,
    2192              :                           (__mmask8) __U,
    2193              :                           _MM_FROUND_CUR_DIRECTION);
    2194              : }
    2195              : 
    2196              : extern __inline __m128
    2197              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2198              : _mm_mask_fmadd_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
    2199              : {
    2200              :   return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
    2201              :                          (__v4sf) __A,
    2202              :                          (__v4sf) __B,
    2203              :                          (__mmask8) __U,
    2204              :                          _MM_FROUND_CUR_DIRECTION);
    2205              : }
    2206              : 
    2207              : extern __inline __m128d
    2208              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2209              : _mm_mask3_fmadd_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U)
    2210              : {
    2211              :   return (__m128d) __builtin_ia32_vfmaddsd3_mask3 ((__v2df) __W,
    2212              :                            (__v2df) __A,
    2213              :                            (__v2df) __B,
    2214              :                            (__mmask8) __U,
    2215              :                            _MM_FROUND_CUR_DIRECTION);
    2216              : }
    2217              : 
    2218              : extern __inline __m128
    2219              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2220              : _mm_mask3_fmadd_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U)
    2221              : {
    2222              :   return (__m128) __builtin_ia32_vfmaddss3_mask3 ((__v4sf) __W,
    2223              :                           (__v4sf) __A,
    2224              :                           (__v4sf) __B,
    2225              :                           (__mmask8) __U,
    2226              :                           _MM_FROUND_CUR_DIRECTION);
    2227              : }
    2228              : 
    2229              : extern __inline __m128d
    2230              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2231              : _mm_maskz_fmadd_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B)
    2232              : {
    2233              :   return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
    2234              :                            (__v2df) __A,
    2235              :                            (__v2df) __B,
    2236              :                            (__mmask8) __U,
    2237              :                            _MM_FROUND_CUR_DIRECTION);
    2238              : }
    2239              : 
    2240              : extern __inline __m128
    2241              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2242              : _mm_maskz_fmadd_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B)
    2243              : {
    2244              :   return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
    2245              :                           (__v4sf) __A,
    2246              :                           (__v4sf) __B,
    2247              :                           (__mmask8) __U,
    2248              :                           _MM_FROUND_CUR_DIRECTION);
    2249              : }
    2250              : 
    2251              : extern __inline __m128d
    2252              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2253              : _mm_mask_fmsub_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
    2254              : {
    2255              :   return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
    2256              :                           (__v2df) __A,
    2257              :                           -(__v2df) __B,
    2258              :                           (__mmask8) __U,
    2259              :                           _MM_FROUND_CUR_DIRECTION);
    2260              : }
    2261              : 
    2262              : extern __inline __m128
    2263              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2264              : _mm_mask_fmsub_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
    2265              : {
    2266              :   return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
    2267              :                          (__v4sf) __A,
    2268              :                          -(__v4sf) __B,
    2269              :                          (__mmask8) __U,
    2270              :                          _MM_FROUND_CUR_DIRECTION);
    2271              : }
    2272              : 
    2273              : extern __inline __m128d
    2274              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2275              : _mm_mask3_fmsub_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U)
    2276              : {
    2277              :   return (__m128d) __builtin_ia32_vfmsubsd3_mask3 ((__v2df) __W,
    2278              :                            (__v2df) __A,
    2279              :                            (__v2df) __B,
    2280              :                            (__mmask8) __U,
    2281              :                            _MM_FROUND_CUR_DIRECTION);
    2282              : }
    2283              : 
    2284              : extern __inline __m128
    2285              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2286              : _mm_mask3_fmsub_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U)
    2287              : {
    2288              :   return (__m128) __builtin_ia32_vfmsubss3_mask3 ((__v4sf) __W,
    2289              :                           (__v4sf) __A,
    2290              :                           (__v4sf) __B,
    2291              :                           (__mmask8) __U,
    2292              :                           _MM_FROUND_CUR_DIRECTION);
    2293              : }
    2294              : 
    2295              : extern __inline __m128d
    2296              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2297              : _mm_maskz_fmsub_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B)
    2298              : {
    2299              :   return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
    2300              :                            (__v2df) __A,
    2301              :                            -(__v2df) __B,
    2302              :                            (__mmask8) __U,
    2303              :                            _MM_FROUND_CUR_DIRECTION);
    2304              : }
    2305              : 
    2306              : extern __inline __m128
    2307              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2308              : _mm_maskz_fmsub_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B)
    2309              : {
    2310              :   return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
    2311              :                           (__v4sf) __A,
    2312              :                           -(__v4sf) __B,
    2313              :                           (__mmask8) __U,
    2314              :                           _MM_FROUND_CUR_DIRECTION);
    2315              : }
    2316              : 
    2317              : extern __inline __m128d
    2318              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2319              : _mm_mask_fnmadd_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
    2320              : {
    2321              :   return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
    2322              :                           -(__v2df) __A,
    2323              :                           (__v2df) __B,
    2324              :                           (__mmask8) __U,
    2325              :                           _MM_FROUND_CUR_DIRECTION);
    2326              : }
    2327              : 
    2328              : extern __inline __m128
    2329              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2330              : _mm_mask_fnmadd_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
    2331              : {
    2332              :   return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
    2333              :                          -(__v4sf) __A,
    2334              :                          (__v4sf) __B,
    2335              :                          (__mmask8) __U,
    2336              :                          _MM_FROUND_CUR_DIRECTION);
    2337              : }
    2338              : 
    2339              : extern __inline __m128d
    2340              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2341              : _mm_mask3_fnmadd_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U)
    2342              : {
    2343              :   return (__m128d) __builtin_ia32_vfmaddsd3_mask3 ((__v2df) __W,
    2344              :                            -(__v2df) __A,
    2345              :                            (__v2df) __B,
    2346              :                            (__mmask8) __U,
    2347              :                            _MM_FROUND_CUR_DIRECTION);
    2348              : }
    2349              : 
    2350              : extern __inline __m128
    2351              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2352              : _mm_mask3_fnmadd_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U)
    2353              : {
    2354              :   return (__m128) __builtin_ia32_vfmaddss3_mask3 ((__v4sf) __W,
    2355              :                           -(__v4sf) __A,
    2356              :                           (__v4sf) __B,
    2357              :                           (__mmask8) __U,
    2358              :                           _MM_FROUND_CUR_DIRECTION);
    2359              : }
    2360              : 
    2361              : extern __inline __m128d
    2362              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2363              : _mm_maskz_fnmadd_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B)
    2364              : {
    2365              :   return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
    2366              :                            -(__v2df) __A,
    2367              :                            (__v2df) __B,
    2368              :                            (__mmask8) __U,
    2369              :                            _MM_FROUND_CUR_DIRECTION);
    2370              : }
    2371              : 
    2372              : extern __inline __m128
    2373              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2374              : _mm_maskz_fnmadd_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B)
    2375              : {
    2376              :   return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
    2377              :                           -(__v4sf) __A,
    2378              :                           (__v4sf) __B,
    2379              :                           (__mmask8) __U,
    2380              :                           _MM_FROUND_CUR_DIRECTION);
    2381              : }
    2382              : 
    2383              : extern __inline __m128d
    2384              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2385              : _mm_mask_fnmsub_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
    2386              : {
    2387              :   return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
    2388              :                           -(__v2df) __A,
    2389              :                           -(__v2df) __B,
    2390              :                           (__mmask8) __U,
    2391              :                           _MM_FROUND_CUR_DIRECTION);
    2392              : }
    2393              : 
    2394              : extern __inline __m128
    2395              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2396              : _mm_mask_fnmsub_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
    2397              : {
    2398              :   return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
    2399              :                          -(__v4sf) __A,
    2400              :                          -(__v4sf) __B,
    2401              :                          (__mmask8) __U,
    2402              :                          _MM_FROUND_CUR_DIRECTION);
    2403              : }
    2404              : 
    2405              : extern __inline __m128d
    2406              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2407              : _mm_mask3_fnmsub_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U)
    2408              : {
    2409              :   return (__m128d) __builtin_ia32_vfmsubsd3_mask3 ((__v2df) __W,
    2410              :                            -(__v2df) __A,
    2411              :                            (__v2df) __B,
    2412              :                            (__mmask8) __U,
    2413              :                            _MM_FROUND_CUR_DIRECTION);
    2414              : }
    2415              : 
    2416              : extern __inline __m128
    2417              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2418              : _mm_mask3_fnmsub_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U)
    2419              : {
    2420              :   return (__m128) __builtin_ia32_vfmsubss3_mask3 ((__v4sf) __W,
    2421              :                           -(__v4sf) __A,
    2422              :                           (__v4sf) __B,
    2423              :                           (__mmask8) __U,
    2424              :                           _MM_FROUND_CUR_DIRECTION);
    2425              : }
    2426              : 
    2427              : extern __inline __m128d
    2428              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2429              : _mm_maskz_fnmsub_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B)
    2430              : {
    2431              :   return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
    2432              :                            -(__v2df) __A,
    2433              :                            -(__v2df) __B,
    2434              :                            (__mmask8) __U,
    2435              :                            _MM_FROUND_CUR_DIRECTION);
    2436              : }
    2437              : 
    2438              : extern __inline __m128
    2439              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2440              : _mm_maskz_fnmsub_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B)
    2441              : {
    2442              :   return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
    2443              :                           -(__v4sf) __A,
    2444              :                           -(__v4sf) __B,
    2445              :                           (__mmask8) __U,
    2446              :                           _MM_FROUND_CUR_DIRECTION);
    2447              : }
    2448              : 
    2449              : #ifdef __OPTIMIZE__
    2450              : extern __inline __m128d
    2451              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2452              : _mm_mask_fmadd_round_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B,
    2453              :              const int __R)
    2454              : {
    2455              :   return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
    2456              :                           (__v2df) __A,
    2457              :                           (__v2df) __B,
    2458              :                           (__mmask8) __U, __R);
    2459              : }
    2460              : 
    2461              : extern __inline __m128
    2462              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2463              : _mm_mask_fmadd_round_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B,
    2464              :              const int __R)
    2465              : {
    2466              :   return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
    2467              :                          (__v4sf) __A,
    2468              :                          (__v4sf) __B,
    2469              :                          (__mmask8) __U, __R);
    2470              : }
    2471              : 
    2472              : extern __inline __m128d
    2473              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2474              : _mm_mask3_fmadd_round_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U,
    2475              :               const int __R)
    2476              : {
    2477              :   return (__m128d) __builtin_ia32_vfmaddsd3_mask3 ((__v2df) __W,
    2478              :                            (__v2df) __A,
    2479              :                            (__v2df) __B,
    2480              :                            (__mmask8) __U, __R);
    2481              : }
    2482              : 
    2483              : extern __inline __m128
    2484              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2485              : _mm_mask3_fmadd_round_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U,
    2486              :               const int __R)
    2487              : {
    2488              :   return (__m128) __builtin_ia32_vfmaddss3_mask3 ((__v4sf) __W,
    2489              :                           (__v4sf) __A,
    2490              :                           (__v4sf) __B,
    2491              :                           (__mmask8) __U, __R);
    2492              : }
    2493              : 
    2494              : extern __inline __m128d
    2495              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2496              : _mm_maskz_fmadd_round_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B,
    2497              :               const int __R)
    2498              : {
    2499              :   return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
    2500              :                            (__v2df) __A,
    2501              :                            (__v2df) __B,
    2502              :                            (__mmask8) __U, __R);
    2503              : }
    2504              : 
    2505              : extern __inline __m128
    2506              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2507              : _mm_maskz_fmadd_round_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B,
    2508              :               const int __R)
    2509              : {
    2510              :   return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
    2511              :                           (__v4sf) __A,
    2512              :                           (__v4sf) __B,
    2513              :                           (__mmask8) __U, __R);
    2514              : }
    2515              : 
    2516              : extern __inline __m128d
    2517              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2518              : _mm_mask_fmsub_round_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B,
    2519              :              const int __R)
    2520              : {
    2521              :   return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
    2522              :                           (__v2df) __A,
    2523              :                           -(__v2df) __B,
    2524              :                           (__mmask8) __U, __R);
    2525              : }
    2526              : 
    2527              : extern __inline __m128
    2528              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2529              : _mm_mask_fmsub_round_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B,
    2530              :              const int __R)
    2531              : {
    2532              :   return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
    2533              :                          (__v4sf) __A,
    2534              :                          -(__v4sf) __B,
    2535              :                          (__mmask8) __U, __R);
    2536              : }
    2537              : 
    2538              : extern __inline __m128d
    2539              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2540              : _mm_mask3_fmsub_round_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U,
    2541              :               const int __R)
    2542              : {
    2543              :   return (__m128d) __builtin_ia32_vfmsubsd3_mask3 ((__v2df) __W,
    2544              :                            (__v2df) __A,
    2545              :                            (__v2df) __B,
    2546              :                            (__mmask8) __U, __R);
    2547              : }
    2548              : 
    2549              : extern __inline __m128
    2550              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2551              : _mm_mask3_fmsub_round_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U,
    2552              :               const int __R)
    2553              : {
    2554              :   return (__m128) __builtin_ia32_vfmsubss3_mask3 ((__v4sf) __W,
    2555              :                           (__v4sf) __A,
    2556              :                           (__v4sf) __B,
    2557              :                           (__mmask8) __U, __R);
    2558              : }
    2559              : 
    2560              : extern __inline __m128d
    2561              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2562              : _mm_maskz_fmsub_round_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B,
    2563              :               const int __R)
    2564              : {
    2565              :   return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
    2566              :                            (__v2df) __A,
    2567              :                            -(__v2df) __B,
    2568              :                            (__mmask8) __U, __R);
    2569              : }
    2570              : 
    2571              : extern __inline __m128
    2572              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2573              : _mm_maskz_fmsub_round_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B,
    2574              :               const int __R)
    2575              : {
    2576              :   return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
    2577              :                           (__v4sf) __A,
    2578              :                           -(__v4sf) __B,
    2579              :                           (__mmask8) __U, __R);
    2580              : }
    2581              : 
    2582              : extern __inline __m128d
    2583              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2584              : _mm_mask_fnmadd_round_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B,
    2585              :              const int __R)
    2586              : {
    2587              :   return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
    2588              :                           -(__v2df) __A,
    2589              :                           (__v2df) __B,
    2590              :                           (__mmask8) __U, __R);
    2591              : }
    2592              : 
    2593              : extern __inline __m128
    2594              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2595              : _mm_mask_fnmadd_round_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B,
    2596              :              const int __R)
    2597              : {
    2598              :   return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
    2599              :                          -(__v4sf) __A,
    2600              :                          (__v4sf) __B,
    2601              :                          (__mmask8) __U, __R);
    2602              : }
    2603              : 
    2604              : extern __inline __m128d
    2605              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2606              : _mm_mask3_fnmadd_round_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U,
    2607              :               const int __R)
    2608              : {
    2609              :   return (__m128d) __builtin_ia32_vfmaddsd3_mask3 ((__v2df) __W,
    2610              :                            -(__v2df) __A,
    2611              :                            (__v2df) __B,
    2612              :                            (__mmask8) __U, __R);
    2613              : }
    2614              : 
    2615              : extern __inline __m128
    2616              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2617              : _mm_mask3_fnmadd_round_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U,
    2618              :               const int __R)
    2619              : {
    2620              :   return (__m128) __builtin_ia32_vfmaddss3_mask3 ((__v4sf) __W,
    2621              :                           -(__v4sf) __A,
    2622              :                           (__v4sf) __B,
    2623              :                           (__mmask8) __U, __R);
    2624              : }
    2625              : 
    2626              : extern __inline __m128d
    2627              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2628              : _mm_maskz_fnmadd_round_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B,
    2629              :               const int __R)
    2630              : {
    2631              :   return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
    2632              :                            -(__v2df) __A,
    2633              :                            (__v2df) __B,
    2634              :                            (__mmask8) __U, __R);
    2635              : }
    2636              : 
    2637              : extern __inline __m128
    2638              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2639              : _mm_maskz_fnmadd_round_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B,
    2640              :               const int __R)
    2641              : {
    2642              :   return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
    2643              :                           -(__v4sf) __A,
    2644              :                           (__v4sf) __B,
    2645              :                           (__mmask8) __U, __R);
    2646              : }
    2647              : 
    2648              : extern __inline __m128d
    2649              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2650              : _mm_mask_fnmsub_round_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B,
    2651              :              const int __R)
    2652              : {
    2653              :   return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
    2654              :                           -(__v2df) __A,
    2655              :                           -(__v2df) __B,
    2656              :                           (__mmask8) __U, __R);
    2657              : }
    2658              : 
    2659              : extern __inline __m128
    2660              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2661              : _mm_mask_fnmsub_round_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B,
    2662              :              const int __R)
    2663              : {
    2664              :   return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
    2665              :                          -(__v4sf) __A,
    2666              :                          -(__v4sf) __B,
    2667              :                          (__mmask8) __U, __R);
    2668              : }
    2669              : 
    2670              : extern __inline __m128d
    2671              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2672              : _mm_mask3_fnmsub_round_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U,
    2673              :               const int __R)
    2674              : {
    2675              :   return (__m128d) __builtin_ia32_vfmsubsd3_mask3 ((__v2df) __W,
    2676              :                            -(__v2df) __A,
    2677              :                            (__v2df) __B,
    2678              :                            (__mmask8) __U, __R);
    2679              : }
    2680              : 
    2681              : extern __inline __m128
    2682              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2683              : _mm_mask3_fnmsub_round_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U,
    2684              :               const int __R)
    2685              : {
    2686              :   return (__m128) __builtin_ia32_vfmsubss3_mask3 ((__v4sf) __W,
    2687              :                           -(__v4sf) __A,
    2688              :                           (__v4sf) __B,
    2689              :                           (__mmask8) __U, __R);
    2690              : }
    2691              : 
    2692              : extern __inline __m128d
    2693              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2694              : _mm_maskz_fnmsub_round_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B,
    2695              :               const int __R)
    2696              : {
    2697              :   return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
    2698              :                            -(__v2df) __A,
    2699              :                            -(__v2df) __B,
    2700              :                            (__mmask8) __U, __R);
    2701              : }
    2702              : 
    2703              : extern __inline __m128
    2704              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2705              : _mm_maskz_fnmsub_round_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B,
    2706              :               const int __R)
    2707              : {
    2708              :   return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
    2709              :                           -(__v4sf) __A,
    2710              :                           -(__v4sf) __B,
    2711              :                           (__mmask8) __U, __R);
    2712              : }
    2713              : #else
    2714              : #define _mm_mask_fmadd_round_sd(A, U, B, C, R)            \
    2715              :     (__m128d) __builtin_ia32_vfmaddsd3_mask (A, B, C, U, R)
    2716              : 
    2717              : #define _mm_mask_fmadd_round_ss(A, U, B, C, R)            \
    2718              :     (__m128) __builtin_ia32_vfmaddss3_mask (A, B, C, U, R)
    2719              : 
    2720              : #define _mm_mask3_fmadd_round_sd(A, B, C, U, R)            \
    2721              :     (__m128d) __builtin_ia32_vfmaddsd3_mask3 (A, B, C, U, R)
    2722              : 
    2723              : #define _mm_mask3_fmadd_round_ss(A, B, C, U, R)            \
    2724              :     (__m128) __builtin_ia32_vfmaddss3_mask3 (A, B, C, U, R)
    2725              : 
    2726              : #define _mm_maskz_fmadd_round_sd(U, A, B, C, R)            \
    2727              :     (__m128d) __builtin_ia32_vfmaddsd3_maskz (A, B, C, U, R)
    2728              : 
    2729              : #define _mm_maskz_fmadd_round_ss(U, A, B, C, R)            \
    2730              :     (__m128) __builtin_ia32_vfmaddss3_maskz (A, B, C, U, R)
    2731              : 
    2732              : #define _mm_mask_fmsub_round_sd(A, U, B, C, R)            \
    2733              :     (__m128d) __builtin_ia32_vfmaddsd3_mask (A, B, -(C), U, R)
    2734              : 
    2735              : #define _mm_mask_fmsub_round_ss(A, U, B, C, R)            \
    2736              :     (__m128) __builtin_ia32_vfmaddss3_mask (A, B, -(C), U, R)
    2737              : 
    2738              : #define _mm_mask3_fmsub_round_sd(A, B, C, U, R)            \
    2739              :     (__m128d) __builtin_ia32_vfmsubsd3_mask3 (A, B, C, U, R)
    2740              : 
    2741              : #define _mm_mask3_fmsub_round_ss(A, B, C, U, R)            \
    2742              :     (__m128) __builtin_ia32_vfmsubss3_mask3 (A, B, C, U, R)
    2743              : 
    2744              : #define _mm_maskz_fmsub_round_sd(U, A, B, C, R)            \
    2745              :     (__m128d) __builtin_ia32_vfmaddsd3_maskz (A, B, -(C), U, R)
    2746              : 
    2747              : #define _mm_maskz_fmsub_round_ss(U, A, B, C, R)            \
    2748              :     (__m128) __builtin_ia32_vfmaddss3_maskz (A, B, -(C), U, R)
    2749              : 
    2750              : #define _mm_mask_fnmadd_round_sd(A, U, B, C, R)            \
    2751              :     (__m128d) __builtin_ia32_vfmaddsd3_mask (A, -(B), C, U, R)
    2752              : 
    2753              : #define _mm_mask_fnmadd_round_ss(A, U, B, C, R)            \
    2754              :     (__m128) __builtin_ia32_vfmaddss3_mask (A, -(B), C, U, R)
    2755              : 
    2756              : #define _mm_mask3_fnmadd_round_sd(A, B, C, U, R)            \
    2757              :     (__m128d) __builtin_ia32_vfmaddsd3_mask3 (A, -(B), C, U, R)
    2758              : 
    2759              : #define _mm_mask3_fnmadd_round_ss(A, B, C, U, R)            \
    2760              :     (__m128) __builtin_ia32_vfmaddss3_mask3 (A, -(B), C, U, R)
    2761              : 
    2762              : #define _mm_maskz_fnmadd_round_sd(U, A, B, C, R)            \
    2763              :     (__m128d) __builtin_ia32_vfmaddsd3_maskz (A, -(B), C, U, R)
    2764              : 
    2765              : #define _mm_maskz_fnmadd_round_ss(U, A, B, C, R)            \
    2766              :     (__m128) __builtin_ia32_vfmaddss3_maskz (A, -(B), C, U, R)
    2767              : 
    2768              : #define _mm_mask_fnmsub_round_sd(A, U, B, C, R)            \
    2769              :     (__m128d) __builtin_ia32_vfmaddsd3_mask (A, -(B), -(C), U, R)
    2770              : 
    2771              : #define _mm_mask_fnmsub_round_ss(A, U, B, C, R)            \
    2772              :     (__m128) __builtin_ia32_vfmaddss3_mask (A, -(B), -(C), U, R)
    2773              : 
    2774              : #define _mm_mask3_fnmsub_round_sd(A, B, C, U, R)            \
    2775              :     (__m128d) __builtin_ia32_vfmsubsd3_mask3 (A, -(B), C, U, R)
    2776              : 
    2777              : #define _mm_mask3_fnmsub_round_ss(A, B, C, U, R)            \
    2778              :     (__m128) __builtin_ia32_vfmsubss3_mask3 (A, -(B), C, U, R)
    2779              : 
    2780              : #define _mm_maskz_fnmsub_round_sd(U, A, B, C, R)            \
    2781              :     (__m128d) __builtin_ia32_vfmaddsd3_maskz (A, -(B), -(C), U, R)
    2782              : 
    2783              : #define _mm_maskz_fnmsub_round_ss(U, A, B, C, R)            \
    2784              :     (__m128) __builtin_ia32_vfmaddss3_maskz (A, -(B), -(C), U, R)
    2785              : #endif
    2786              : 
    2787              : #ifdef __OPTIMIZE__
    2788              : extern __inline int
    2789              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2790              : _mm_comi_round_ss (__m128 __A, __m128 __B, const int __P, const int __R)
    2791              : {
    2792              :   return __builtin_ia32_vcomiss ((__v4sf) __A, (__v4sf) __B, __P, __R);
    2793              : }
    2794              : 
    2795              : extern __inline int
    2796              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2797              : _mm_comi_round_sd (__m128d __A, __m128d __B, const int __P, const int __R)
    2798              : {
    2799              :   return __builtin_ia32_vcomisd ((__v2df) __A, (__v2df) __B, __P, __R);
    2800              : }
    2801              : #else
    2802              : #define _mm_comi_round_ss(A, B, C, D)\
    2803              : __builtin_ia32_vcomiss(A, B, C, D)
    2804              : #define _mm_comi_round_sd(A, B, C, D)\
    2805              : __builtin_ia32_vcomisd(A, B, C, D)
    2806              : #endif
    2807              : 
    2808              : extern __inline __m128d
    2809              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2810              : _mm_mask_add_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
    2811              : {
    2812              :   return (__m128d) __builtin_ia32_addsd_mask_round ((__v2df) __A,
    2813              :                         (__v2df) __B,
    2814              :                         (__v2df) __W,
    2815              :                         (__mmask8) __U,
    2816              :                         _MM_FROUND_CUR_DIRECTION);
    2817              : }
    2818              : 
    2819              : extern __inline __m128d
    2820              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2821              : _mm_maskz_add_sd (__mmask8 __U, __m128d __A, __m128d __B)
    2822              : {
    2823              :   return (__m128d) __builtin_ia32_addsd_mask_round ((__v2df) __A,
    2824              :                         (__v2df) __B,
    2825              :                         (__v2df)
    2826              :                         _mm_avx512_setzero_pd (),
    2827              :                         (__mmask8) __U,
    2828              :                         _MM_FROUND_CUR_DIRECTION);
    2829              : }
    2830              : 
    2831              : extern __inline __m128
    2832              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2833              : _mm_mask_add_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
    2834              : {
    2835              :   return (__m128) __builtin_ia32_addss_mask_round ((__v4sf) __A,
    2836              :                         (__v4sf) __B,
    2837              :                         (__v4sf) __W,
    2838              :                         (__mmask8) __U,
    2839              :                         _MM_FROUND_CUR_DIRECTION);
    2840              : }
    2841              : 
    2842              : extern __inline __m128
    2843              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2844              : _mm_maskz_add_ss (__mmask8 __U, __m128 __A, __m128 __B)
    2845              : {
    2846              :   return (__m128) __builtin_ia32_addss_mask_round ((__v4sf) __A,
    2847              :                         (__v4sf) __B,
    2848              :                         (__v4sf)
    2849              :                         _mm_avx512_setzero_ps (),
    2850              :                         (__mmask8) __U,
    2851              :                         _MM_FROUND_CUR_DIRECTION);
    2852              : }
    2853              : 
    2854              : extern __inline __m128d
    2855              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2856              : _mm_mask_sub_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
    2857              : {
    2858              :   return (__m128d) __builtin_ia32_subsd_mask_round ((__v2df) __A,
    2859              :                         (__v2df) __B,
    2860              :                         (__v2df) __W,
    2861              :                         (__mmask8) __U,
    2862              :                         _MM_FROUND_CUR_DIRECTION);
    2863              : }
    2864              : 
    2865              : extern __inline __m128d
    2866              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2867              : _mm_maskz_sub_sd (__mmask8 __U, __m128d __A, __m128d __B)
    2868              : {
    2869              :   return (__m128d) __builtin_ia32_subsd_mask_round ((__v2df) __A,
    2870              :                         (__v2df) __B,
    2871              :                         (__v2df)
    2872              :                         _mm_avx512_setzero_pd (),
    2873              :                         (__mmask8) __U,
    2874              :                         _MM_FROUND_CUR_DIRECTION);
    2875              : }
    2876              : 
    2877              : extern __inline __m128
    2878              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2879              : _mm_mask_sub_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
    2880              : {
    2881              :   return (__m128) __builtin_ia32_subss_mask_round ((__v4sf) __A,
    2882              :                         (__v4sf) __B,
    2883              :                         (__v4sf) __W,
    2884              :                         (__mmask8) __U,
    2885              :                         _MM_FROUND_CUR_DIRECTION);
    2886              : }
    2887              : 
    2888              : extern __inline __m128
    2889              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2890              : _mm_maskz_sub_ss (__mmask8 __U, __m128 __A, __m128 __B)
    2891              : {
    2892              :   return (__m128) __builtin_ia32_subss_mask_round ((__v4sf) __A,
    2893              :                         (__v4sf) __B,
    2894              :                         (__v4sf)
    2895              :                         _mm_avx512_setzero_ps (),
    2896              :                         (__mmask8) __U,
    2897              :                         _MM_FROUND_CUR_DIRECTION);
    2898              : }
    2899              : 
    2900              : extern __inline __m128d
    2901              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2902              : _mm_mask_mul_sd (__m128d __W, __mmask8 __U, __m128d __A,
    2903              :               __m128d __B)
    2904              : {
    2905              :   return (__m128d) __builtin_ia32_mulsd_mask_round ((__v2df) __A,
    2906              :                          (__v2df) __B,
    2907              :                          (__v2df) __W,
    2908              :                          (__mmask8) __U,
    2909              :                           _MM_FROUND_CUR_DIRECTION);
    2910              : }
    2911              : 
    2912              : extern __inline __m128d
    2913              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2914              : _mm_maskz_mul_sd (__mmask8 __U, __m128d __A, __m128d __B)
    2915              : {
    2916              :   return (__m128d) __builtin_ia32_mulsd_mask_round ((__v2df) __A,
    2917              :                          (__v2df) __B,
    2918              :                          (__v2df)
    2919              :                          _mm_avx512_setzero_pd (),
    2920              :                          (__mmask8) __U,
    2921              :                           _MM_FROUND_CUR_DIRECTION);
    2922              : }
    2923              : 
    2924              : extern __inline __m128
    2925              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2926              : _mm_mask_mul_ss (__m128 __W, __mmask8 __U, __m128 __A,
    2927              :               __m128 __B)
    2928              : {
    2929              :   return (__m128) __builtin_ia32_mulss_mask_round ((__v4sf) __A,
    2930              :                          (__v4sf) __B,
    2931              :                          (__v4sf) __W,
    2932              :                          (__mmask8) __U,
    2933              :                           _MM_FROUND_CUR_DIRECTION);
    2934              : }
    2935              : 
    2936              : extern __inline __m128
    2937              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2938              : _mm_maskz_mul_ss (__mmask8 __U, __m128 __A, __m128 __B)
    2939              : {
    2940              :   return (__m128) __builtin_ia32_mulss_mask_round ((__v4sf) __A,
    2941              :                          (__v4sf) __B,
    2942              :                          (__v4sf)
    2943              :                          _mm_avx512_setzero_ps (),
    2944              :                          (__mmask8) __U,
    2945              :                           _MM_FROUND_CUR_DIRECTION);
    2946              : }
    2947              : 
    2948              : extern __inline __m128d
    2949              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2950              : _mm_mask_div_sd (__m128d __W, __mmask8 __U, __m128d __A,
    2951              :               __m128d __B)
    2952              : {
    2953              :   return (__m128d) __builtin_ia32_divsd_mask_round ((__v2df) __A,
    2954              :                          (__v2df) __B,
    2955              :                          (__v2df) __W,
    2956              :                          (__mmask8) __U,
    2957              :                           _MM_FROUND_CUR_DIRECTION);
    2958              : }
    2959              : 
    2960              : extern __inline __m128d
    2961              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2962              : _mm_maskz_div_sd (__mmask8 __U, __m128d __A, __m128d __B)
    2963              : {
    2964              :   return (__m128d) __builtin_ia32_divsd_mask_round ((__v2df) __A,
    2965              :                          (__v2df) __B,
    2966              :                          (__v2df)
    2967              :                          _mm_avx512_setzero_pd (),
    2968              :                          (__mmask8) __U,
    2969              :                           _MM_FROUND_CUR_DIRECTION);
    2970              : }
    2971              : 
    2972              : extern __inline __m128
    2973              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2974              : _mm_mask_div_ss (__m128 __W, __mmask8 __U, __m128 __A,
    2975              :               __m128 __B)
    2976              : {
    2977              :   return (__m128) __builtin_ia32_divss_mask_round ((__v4sf) __A,
    2978              :                          (__v4sf) __B,
    2979              :                          (__v4sf) __W,
    2980              :                          (__mmask8) __U,
    2981              :                           _MM_FROUND_CUR_DIRECTION);
    2982              : }
    2983              : 
    2984              : extern __inline __m128
    2985              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2986              : _mm_maskz_div_ss (__mmask8 __U, __m128 __A, __m128 __B)
    2987              : {
    2988              :   return (__m128) __builtin_ia32_divss_mask_round ((__v4sf) __A,
    2989              :                          (__v4sf) __B,
    2990              :                          (__v4sf)
    2991              :                          _mm_avx512_setzero_ps (),
    2992              :                          (__mmask8) __U,
    2993              :                           _MM_FROUND_CUR_DIRECTION);
    2994              : }
    2995              : 
    2996              : extern __inline __m128d
    2997              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    2998              : _mm_mask_max_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
    2999              : {
    3000              :   return (__m128d) __builtin_ia32_maxsd_mask_round ((__v2df) __A,
    3001              :                          (__v2df) __B,
    3002              :                          (__v2df) __W,
    3003              :                          (__mmask8) __U,
    3004              :                          _MM_FROUND_CUR_DIRECTION);
    3005              : }
    3006              : 
    3007              : extern __inline __m128d
    3008              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3009              : _mm_maskz_max_sd (__mmask8 __U, __m128d __A, __m128d __B)
    3010              : {
    3011              :   return (__m128d) __builtin_ia32_maxsd_mask_round ((__v2df) __A,
    3012              :                          (__v2df) __B,
    3013              :                          (__v2df)
    3014              :                          _mm_avx512_setzero_pd (),
    3015              :                          (__mmask8) __U,
    3016              :                          _MM_FROUND_CUR_DIRECTION);
    3017              : }
    3018              : 
    3019              : extern __inline __m128
    3020              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3021              : _mm_mask_max_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
    3022              : {
    3023              :   return (__m128) __builtin_ia32_maxss_mask_round ((__v4sf) __A,
    3024              :                         (__v4sf) __B,
    3025              :                         (__v4sf) __W,
    3026              :                         (__mmask8) __U,
    3027              :                         _MM_FROUND_CUR_DIRECTION);
    3028              : }
    3029              : 
    3030              : extern __inline __m128
    3031              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3032              : _mm_maskz_max_ss (__mmask8 __U, __m128 __A, __m128 __B)
    3033              : {
    3034              :   return (__m128) __builtin_ia32_maxss_mask_round ((__v4sf) __A,
    3035              :                         (__v4sf) __B,
    3036              :                         (__v4sf)
    3037              :                         _mm_avx512_setzero_ps (),
    3038              :                         (__mmask8) __U,
    3039              :                         _MM_FROUND_CUR_DIRECTION);
    3040              : }
    3041              : 
    3042              : extern __inline __m128d
    3043              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3044              : _mm_mask_min_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
    3045              : {
    3046              :   return (__m128d) __builtin_ia32_minsd_mask_round ((__v2df) __A,
    3047              :                          (__v2df) __B,
    3048              :                          (__v2df) __W,
    3049              :                          (__mmask8) __U,
    3050              :                          _MM_FROUND_CUR_DIRECTION);
    3051              : }
    3052              : 
    3053              : extern __inline __m128d
    3054              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3055              : _mm_maskz_min_sd (__mmask8 __U, __m128d __A, __m128d __B)
    3056              : {
    3057              :   return (__m128d) __builtin_ia32_minsd_mask_round ((__v2df) __A,
    3058              :                          (__v2df) __B,
    3059              :                          (__v2df)
    3060              :                          _mm_avx512_setzero_pd (),
    3061              :                          (__mmask8) __U,
    3062              :                          _MM_FROUND_CUR_DIRECTION);
    3063              : }
    3064              : 
    3065              : extern __inline __m128
    3066              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3067              : _mm_mask_min_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
    3068              : {
    3069              :   return (__m128) __builtin_ia32_minss_mask_round ((__v4sf) __A,
    3070              :                         (__v4sf) __B,
    3071              :                         (__v4sf) __W,
    3072              :                         (__mmask8) __U,
    3073              :                         _MM_FROUND_CUR_DIRECTION);
    3074              : }
    3075              : 
    3076              : extern __inline __m128
    3077              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3078              : _mm_maskz_min_ss (__mmask8 __U, __m128 __A, __m128 __B)
    3079              : {
    3080              :   return (__m128) __builtin_ia32_minss_mask_round ((__v4sf) __A,
    3081              :                         (__v4sf) __B,
    3082              :                         (__v4sf)
    3083              :                         _mm_avx512_setzero_ps (),
    3084              :                         (__mmask8) __U,
    3085              :                         _MM_FROUND_CUR_DIRECTION);
    3086              : }
    3087              : 
    3088              : extern __inline __m128d
    3089              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3090              : _mm_scalef_sd (__m128d __A, __m128d __B)
    3091              : {
    3092              :   return (__m128d) __builtin_ia32_scalefsd_mask_round ((__v2df) __A,
    3093              :                             (__v2df) __B,
    3094              :                             (__v2df)
    3095              :                             _mm_avx512_setzero_pd (),
    3096              :                             (__mmask8) -1,
    3097              :                             _MM_FROUND_CUR_DIRECTION);
    3098              : }
    3099              : 
    3100              : extern __inline __m128
    3101              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3102              : _mm_scalef_ss (__m128 __A, __m128 __B)
    3103              : {
    3104              :   return (__m128) __builtin_ia32_scalefss_mask_round ((__v4sf) __A,
    3105              :                            (__v4sf) __B,
    3106              :                            (__v4sf)
    3107              :                            _mm_avx512_setzero_ps (),
    3108              :                            (__mmask8) -1,
    3109              :                            _MM_FROUND_CUR_DIRECTION);
    3110              : }
    3111              : 
    3112              : #ifdef __x86_64__
    3113              : extern __inline __m128
    3114              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3115              : _mm_cvtu64_ss (__m128 __A, unsigned long long __B)
    3116              : {
    3117              :   return (__m128) __builtin_ia32_cvtusi2ss64 ((__v4sf) __A, __B,
    3118              :                           _MM_FROUND_CUR_DIRECTION);
    3119              : }
    3120              : 
    3121              : extern __inline __m128d
    3122              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3123              : _mm_cvtu64_sd (__m128d __A, unsigned long long __B)
    3124              : {
    3125              :   return (__m128d) __builtin_ia32_cvtusi2sd64 ((__v2df) __A, __B,
    3126              :                            _MM_FROUND_CUR_DIRECTION);
    3127              : }
    3128              : #endif
    3129              : 
    3130              : extern __inline __m128
    3131              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3132              : _mm_cvtu32_ss (__m128 __A, unsigned __B)
    3133              : {
    3134              :   return (__m128) __builtin_ia32_cvtusi2ss32 ((__v4sf) __A, __B,
    3135              :                           _MM_FROUND_CUR_DIRECTION);
    3136              : }
    3137              : 
    3138              : #ifdef __OPTIMIZE__
    3139              : extern __inline __m128d
    3140              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3141              : _mm_fixupimm_sd (__m128d __A, __m128d __B, __m128i __C, const int __imm)
    3142              : {
    3143              :   return (__m128d) __builtin_ia32_fixupimmsd_mask ((__v2df) __A,
    3144              :                            (__v2df) __B,
    3145              :                            (__v2di) __C, __imm,
    3146              :                            (__mmask8) -1,
    3147              :                            _MM_FROUND_CUR_DIRECTION);
    3148              : }
    3149              : 
    3150              : extern __inline __m128d
    3151              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3152              : _mm_mask_fixupimm_sd (__m128d __A, __mmask8 __U, __m128d __B,
    3153              :               __m128i __C, const int __imm)
    3154              : {
    3155              :   return (__m128d) __builtin_ia32_fixupimmsd_mask ((__v2df) __A,
    3156              :                            (__v2df) __B,
    3157              :                            (__v2di) __C, __imm,
    3158              :                            (__mmask8) __U,
    3159              :                            _MM_FROUND_CUR_DIRECTION);
    3160              : }
    3161              : 
    3162              : extern __inline __m128d
    3163              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3164              : _mm_maskz_fixupimm_sd (__mmask8 __U, __m128d __A, __m128d __B,
    3165              :                __m128i __C, const int __imm)
    3166              : {
    3167              :   return (__m128d) __builtin_ia32_fixupimmsd_maskz ((__v2df) __A,
    3168              :                             (__v2df) __B,
    3169              :                             (__v2di) __C,
    3170              :                             __imm,
    3171              :                             (__mmask8) __U,
    3172              :                             _MM_FROUND_CUR_DIRECTION);
    3173              : }
    3174              : 
    3175              : extern __inline __m128
    3176              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3177              : _mm_fixupimm_ss (__m128 __A, __m128 __B, __m128i __C, const int __imm)
    3178              : {
    3179              :   return (__m128) __builtin_ia32_fixupimmss_mask ((__v4sf) __A,
    3180              :                           (__v4sf) __B,
    3181              :                           (__v4si) __C, __imm,
    3182              :                           (__mmask8) -1,
    3183              :                           _MM_FROUND_CUR_DIRECTION);
    3184              : }
    3185              : 
    3186              : extern __inline __m128
    3187              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3188              : _mm_mask_fixupimm_ss (__m128 __A, __mmask8 __U, __m128 __B,
    3189              :               __m128i __C, const int __imm)
    3190              : {
    3191              :   return (__m128) __builtin_ia32_fixupimmss_mask ((__v4sf) __A,
    3192              :                           (__v4sf) __B,
    3193              :                           (__v4si) __C, __imm,
    3194              :                           (__mmask8) __U,
    3195              :                           _MM_FROUND_CUR_DIRECTION);
    3196              : }
    3197              : 
    3198              : extern __inline __m128
    3199              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3200              : _mm_maskz_fixupimm_ss (__mmask8 __U, __m128 __A, __m128 __B,
    3201              :                __m128i __C, const int __imm)
    3202              : {
    3203              :   return (__m128) __builtin_ia32_fixupimmss_maskz ((__v4sf) __A,
    3204              :                            (__v4sf) __B,
    3205              :                            (__v4si) __C, __imm,
    3206              :                            (__mmask8) __U,
    3207              :                            _MM_FROUND_CUR_DIRECTION);
    3208              : }
    3209              : 
    3210              : #else
    3211              : #define _mm_fixupimm_sd(X, Y, Z, C)                 \
    3212              :     ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X), \
    3213              :       (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C),     \
    3214              :       (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
    3215              : 
    3216              : #define _mm_mask_fixupimm_sd(X, U, Y, Z, C)             \
    3217              :     ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X), \
    3218              :       (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C),     \
    3219              :       (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
    3220              : 
    3221              : #define _mm_maskz_fixupimm_sd(U, X, Y, Z, C)                \
    3222              :     ((__m128d)__builtin_ia32_fixupimmsd_maskz ((__v2df)(__m128d)(X),    \
    3223              :       (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C),     \
    3224              :       (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
    3225              : 
    3226              : #define _mm_fixupimm_ss(X, Y, Z, C)                 \
    3227              :     ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X),   \
    3228              :       (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C),      \
    3229              :       (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
    3230              : 
    3231              : #define _mm_mask_fixupimm_ss(X, U, Y, Z, C)             \
    3232              :     ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X),   \
    3233              :       (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C),      \
    3234              :       (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
    3235              : 
    3236              : #define _mm_maskz_fixupimm_ss(U, X, Y, Z, C)                \
    3237              :     ((__m128)__builtin_ia32_fixupimmss_maskz ((__v4sf)(__m128)(X),  \
    3238              :       (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C),      \
    3239              :       (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
    3240              : 
    3241              : #endif
    3242              : 
    3243              : #ifdef __x86_64__
    3244              : extern __inline unsigned long long
    3245              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3246              : _mm_cvtss_u64 (__m128 __A)
    3247              : {
    3248              :   return (unsigned long long) __builtin_ia32_vcvtss2usi64 ((__v4sf)
    3249              :                                __A,
    3250              :                                _MM_FROUND_CUR_DIRECTION);
    3251              : }
    3252              : 
    3253              : extern __inline unsigned long long
    3254              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3255              : _mm_cvttss_u64 (__m128 __A)
    3256              : {
    3257              :   return (unsigned long long) __builtin_ia32_vcvttss2usi64 ((__v4sf)
    3258              :                                 __A,
    3259              :                                 _MM_FROUND_CUR_DIRECTION);
    3260              : }
    3261              : 
    3262              : extern __inline long long
    3263              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3264              : _mm_cvttss_i64 (__m128 __A)
    3265              : {
    3266              :   return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf) __A,
    3267              :                           _MM_FROUND_CUR_DIRECTION);
    3268              : }
    3269              : #endif /* __x86_64__ */
    3270              : 
    3271              : extern __inline unsigned
    3272              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3273              : _mm_cvtss_u32 (__m128 __A)
    3274              : {
    3275              :   return (unsigned) __builtin_ia32_vcvtss2usi32 ((__v4sf) __A,
    3276              :                          _MM_FROUND_CUR_DIRECTION);
    3277              : }
    3278              : 
    3279              : extern __inline unsigned
    3280              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3281              : _mm_cvttss_u32 (__m128 __A)
    3282              : {
    3283              :   return (unsigned) __builtin_ia32_vcvttss2usi32 ((__v4sf) __A,
    3284              :                           _MM_FROUND_CUR_DIRECTION);
    3285              : }
    3286              : 
    3287              : extern __inline int
    3288              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3289              : _mm_cvttss_i32 (__m128 __A)
    3290              : {
    3291              :   return (int) __builtin_ia32_vcvttss2si32 ((__v4sf) __A,
    3292              :                         _MM_FROUND_CUR_DIRECTION);
    3293              : }
    3294              : 
    3295              : extern __inline int
    3296              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3297              : _mm_cvtsd_i32 (__m128d __A)
    3298              : {
    3299              :   return (int) __builtin_ia32_cvtsd2si ((__v2df) __A);
    3300              : }
    3301              : 
    3302              : extern __inline int
    3303              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3304              : _mm_cvtss_i32 (__m128 __A)
    3305              : {
    3306              :   return (int) __builtin_ia32_cvtss2si ((__v4sf) __A);
    3307              : }
    3308              : 
    3309              : extern __inline __m128d
    3310              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3311              : _mm_cvti32_sd (__m128d __A, int __B)
    3312              : {
    3313              :   return (__m128d) __builtin_ia32_cvtsi2sd ((__v2df) __A, __B);
    3314              : }
    3315              : 
    3316              : extern __inline __m128
    3317              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3318              : _mm_cvti32_ss (__m128 __A, int __B)
    3319              : {
    3320              :   return (__m128) __builtin_ia32_cvtsi2ss ((__v4sf) __A, __B);
    3321              : }
    3322              : 
    3323              : #ifdef __x86_64__
    3324              : extern __inline unsigned long long
    3325              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3326              : _mm_cvtsd_u64 (__m128d __A)
    3327              : {
    3328              :   return (unsigned long long) __builtin_ia32_vcvtsd2usi64 ((__v2df)
    3329              :                                __A,
    3330              :                                _MM_FROUND_CUR_DIRECTION);
    3331              : }
    3332              : 
    3333              : extern __inline unsigned long long
    3334              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3335              : _mm_cvttsd_u64 (__m128d __A)
    3336              : {
    3337              :   return (unsigned long long) __builtin_ia32_vcvttsd2usi64 ((__v2df)
    3338              :                                 __A,
    3339              :                                 _MM_FROUND_CUR_DIRECTION);
    3340              : }
    3341              : 
    3342              : extern __inline long long
    3343              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3344              : _mm_cvttsd_i64 (__m128d __A)
    3345              : {
    3346              :   return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df) __A,
    3347              :                           _MM_FROUND_CUR_DIRECTION);
    3348              : }
    3349              : 
    3350              : extern __inline long long
    3351              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3352              : _mm_cvtsd_i64 (__m128d __A)
    3353              : {
    3354              :   return (long long) __builtin_ia32_cvtsd2si64 ((__v2df) __A);
    3355              : }
    3356              : 
    3357              : extern __inline long long
    3358              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3359              : _mm_cvtss_i64 (__m128 __A)
    3360              : {
    3361              :   return (long long) __builtin_ia32_cvtss2si64 ((__v4sf) __A);
    3362              : }
    3363              : 
    3364              : extern __inline __m128d
    3365              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3366              : _mm_cvti64_sd (__m128d __A, long long __B)
    3367              : {
    3368              :   return (__m128d) __builtin_ia32_cvtsi642sd ((__v2df) __A, __B);
    3369              : }
    3370              : 
    3371              : extern __inline __m128
    3372              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3373              : _mm_cvti64_ss (__m128 __A, long long __B)
    3374              : {
    3375              :   return (__m128) __builtin_ia32_cvtsi642ss ((__v4sf) __A, __B);
    3376              : }
    3377              : #endif /* __x86_64__ */
    3378              : 
    3379              : extern __inline unsigned
    3380              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3381              : _mm_cvtsd_u32 (__m128d __A)
    3382              : {
    3383              :   return (unsigned) __builtin_ia32_vcvtsd2usi32 ((__v2df) __A,
    3384              :                          _MM_FROUND_CUR_DIRECTION);
    3385              : }
    3386              : 
    3387              : extern __inline unsigned
    3388              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3389              : _mm_cvttsd_u32 (__m128d __A)
    3390              : {
    3391              :   return (unsigned) __builtin_ia32_vcvttsd2usi32 ((__v2df) __A,
    3392              :                           _MM_FROUND_CUR_DIRECTION);
    3393              : }
    3394              : 
    3395              : extern __inline int
    3396              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3397              : _mm_cvttsd_i32 (__m128d __A)
    3398              : {
    3399              :   return (int) __builtin_ia32_vcvttsd2si32 ((__v2df) __A,
    3400              :                         _MM_FROUND_CUR_DIRECTION);
    3401              : }
    3402              : 
    3403              : #ifdef __OPTIMIZE__
    3404              : extern __inline __m128
    3405              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3406              : _mm_getexp_ss (__m128 __A, __m128 __B)
    3407              : {
    3408              :   return (__m128) __builtin_ia32_getexpss128_round ((__v4sf) __A,
    3409              :                             (__v4sf) __B,
    3410              :                             _MM_FROUND_CUR_DIRECTION);
    3411              : }
    3412              : 
    3413              : extern __inline __m128
    3414              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3415              : _mm_mask_getexp_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
    3416              : {
    3417              :   return (__m128) __builtin_ia32_getexpss_mask_round ((__v4sf) __A,
    3418              :                         (__v4sf) __B,
    3419              :                         (__v4sf) __W,
    3420              :                         (__mmask8) __U,
    3421              :                         _MM_FROUND_CUR_DIRECTION);
    3422              : }
    3423              : 
    3424              : extern __inline __m128
    3425              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3426              : _mm_maskz_getexp_ss (__mmask8 __U, __m128 __A, __m128 __B)
    3427              : {
    3428              :   return (__m128) __builtin_ia32_getexpss_mask_round ((__v4sf) __A,
    3429              :                         (__v4sf) __B,
    3430              :                         (__v4sf)
    3431              :                         _mm_avx512_setzero_ps (),
    3432              :                         (__mmask8) __U,
    3433              :                         _MM_FROUND_CUR_DIRECTION);
    3434              : }
    3435              : 
    3436              : extern __inline __m128d
    3437              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3438              : _mm_getexp_sd (__m128d __A, __m128d __B)
    3439              : {
    3440              :   return (__m128d) __builtin_ia32_getexpsd128_round ((__v2df) __A,
    3441              :                              (__v2df) __B,
    3442              :                              _MM_FROUND_CUR_DIRECTION);
    3443              : }
    3444              : 
    3445              : extern __inline __m128d
    3446              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3447              : _mm_mask_getexp_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
    3448              : {
    3449              :   return (__m128d) __builtin_ia32_getexpsd_mask_round ((__v2df) __A,
    3450              :                         (__v2df) __B,
    3451              :                         (__v2df) __W,
    3452              :                         (__mmask8) __U,
    3453              :                         _MM_FROUND_CUR_DIRECTION);
    3454              : }
    3455              : 
    3456              : extern __inline __m128d
    3457              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3458              : _mm_maskz_getexp_sd (__mmask8 __U, __m128d __A, __m128d __B)
    3459              : {
    3460              :   return (__m128d) __builtin_ia32_getexpsd_mask_round ((__v2df) __A,
    3461              :                         (__v2df) __B,
    3462              :                         (__v2df)
    3463              :                         _mm_avx512_setzero_pd (),
    3464              :                         (__mmask8) __U,
    3465              :                         _MM_FROUND_CUR_DIRECTION);
    3466              : }
    3467              : 
    3468              : extern __inline __m128d
    3469              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3470              : _mm_getmant_sd (__m128d __A, __m128d __B, _MM_MANTISSA_NORM_ENUM __C,
    3471              :         _MM_MANTISSA_SIGN_ENUM __D)
    3472              : {
    3473              :   return (__m128d) __builtin_ia32_getmantsd_round ((__v2df) __A,
    3474              :                            (__v2df) __B,
    3475              :                            (__D << 2) | __C,
    3476              :                            _MM_FROUND_CUR_DIRECTION);
    3477              : }
    3478              : 
    3479              : extern __inline __m128d
    3480              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3481              : _mm_mask_getmant_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B,
    3482              :             _MM_MANTISSA_NORM_ENUM __C, _MM_MANTISSA_SIGN_ENUM __D)
    3483              : {
    3484              :   return (__m128d) __builtin_ia32_getmantsd_mask_round ((__v2df) __A,
    3485              :                             (__v2df) __B,
    3486              :                                 (__D << 2) | __C,
    3487              :                                                         (__v2df) __W,
    3488              :                                __U,
    3489              :                              _MM_FROUND_CUR_DIRECTION);
    3490              : }
    3491              : 
    3492              : extern __inline __m128d
    3493              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3494              : _mm_maskz_getmant_sd (__mmask8 __U, __m128d __A, __m128d __B,
    3495              :              _MM_MANTISSA_NORM_ENUM __C, _MM_MANTISSA_SIGN_ENUM __D)
    3496              : {
    3497              :   return (__m128d) __builtin_ia32_getmantsd_mask_round ((__v2df) __A,
    3498              :                                                         (__v2df) __B,
    3499              :                                 (__D << 2) | __C,
    3500              :                                                         (__v2df)
    3501              :                             _mm_avx512_setzero_pd(),
    3502              :                                 __U,
    3503              :                              _MM_FROUND_CUR_DIRECTION);
    3504              : }
    3505              : 
    3506              : extern __inline __m128
    3507              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3508              : _mm_getmant_ss (__m128 __A, __m128 __B, _MM_MANTISSA_NORM_ENUM __C,
    3509              :         _MM_MANTISSA_SIGN_ENUM __D)
    3510              : {
    3511              :   return (__m128) __builtin_ia32_getmantss_round ((__v4sf) __A,
    3512              :                           (__v4sf) __B,
    3513              :                           (__D << 2) | __C,
    3514              :                           _MM_FROUND_CUR_DIRECTION);
    3515              : }
    3516              : 
    3517              : extern __inline __m128
    3518              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3519              : _mm_mask_getmant_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B,
    3520              :             _MM_MANTISSA_NORM_ENUM __C, _MM_MANTISSA_SIGN_ENUM __D)
    3521              : {
    3522              :   return (__m128) __builtin_ia32_getmantss_mask_round ((__v4sf) __A,
    3523              :                             (__v4sf) __B,
    3524              :                                 (__D << 2) | __C,
    3525              :                                                         (__v4sf) __W,
    3526              :                                __U,
    3527              :                              _MM_FROUND_CUR_DIRECTION);
    3528              : }
    3529              : 
    3530              : extern __inline __m128
    3531              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3532              : _mm_maskz_getmant_ss (__mmask8 __U, __m128 __A, __m128 __B,
    3533              :              _MM_MANTISSA_NORM_ENUM __C, _MM_MANTISSA_SIGN_ENUM __D)
    3534              : {
    3535              :   return (__m128) __builtin_ia32_getmantss_mask_round ((__v4sf) __A,
    3536              :                                                         (__v4sf) __B,
    3537              :                                 (__D << 2) | __C,
    3538              :                                                         (__v4sf)
    3539              :                             _mm_avx512_setzero_ps(),
    3540              :                                 __U,
    3541              :                              _MM_FROUND_CUR_DIRECTION);
    3542              : }
    3543              : 
    3544              : extern __inline __m128
    3545              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3546              : _mm_roundscale_ss (__m128 __A, __m128 __B, const int __imm)
    3547              : {
    3548              :   return (__m128)
    3549              :     __builtin_ia32_rndscaless_mask_round ((__v4sf) __A,
    3550              :                       (__v4sf) __B, __imm,
    3551              :                       (__v4sf)
    3552              :                       _mm_avx512_setzero_ps (),
    3553              :                       (__mmask8) -1,
    3554              :                       _MM_FROUND_CUR_DIRECTION);
    3555              : }
    3556              : 
    3557              : 
    3558              : extern __inline __m128
    3559              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3560              : _mm_mask_roundscale_ss (__m128 __A, __mmask8 __B, __m128 __C, __m128 __D,
    3561              :             const int __imm)
    3562              : {
    3563              :   return (__m128)
    3564              :     __builtin_ia32_rndscaless_mask_round ((__v4sf) __C,
    3565              :                       (__v4sf) __D, __imm,
    3566              :                       (__v4sf) __A,
    3567              :                       (__mmask8) __B,
    3568              :                       _MM_FROUND_CUR_DIRECTION);
    3569              : }
    3570              : 
    3571              : extern __inline __m128
    3572              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3573              : _mm_maskz_roundscale_ss (__mmask8 __A, __m128 __B, __m128 __C,
    3574              :              const int __imm)
    3575              : {
    3576              :   return (__m128)
    3577              :     __builtin_ia32_rndscaless_mask_round ((__v4sf) __B,
    3578              :                       (__v4sf) __C, __imm,
    3579              :                       (__v4sf)
    3580              :                       _mm_avx512_setzero_ps (),
    3581              :                       (__mmask8) __A,
    3582              :                       _MM_FROUND_CUR_DIRECTION);
    3583              : }
    3584              : 
    3585              : extern __inline __m128d
    3586              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3587              : _mm_roundscale_sd (__m128d __A, __m128d __B, const int __imm)
    3588              : {
    3589              :   return (__m128d)
    3590              :     __builtin_ia32_rndscalesd_mask_round ((__v2df) __A,
    3591              :                       (__v2df) __B, __imm,
    3592              :                       (__v2df)
    3593              :                       _mm_avx512_setzero_pd (),
    3594              :                       (__mmask8) -1,
    3595              :                       _MM_FROUND_CUR_DIRECTION);
    3596              : }
    3597              : 
    3598              : extern __inline __m128d
    3599              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3600              : _mm_mask_roundscale_sd (__m128d __A, __mmask8 __B, __m128d __C, __m128d __D,
    3601              :             const int __imm)
    3602              : {
    3603              :   return (__m128d)
    3604              :     __builtin_ia32_rndscalesd_mask_round ((__v2df) __C,
    3605              :                       (__v2df) __D, __imm,
    3606              :                       (__v2df) __A,
    3607              :                       (__mmask8) __B,
    3608              :                       _MM_FROUND_CUR_DIRECTION);
    3609              : }
    3610              : 
    3611              : extern __inline __m128d
    3612              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3613              : _mm_maskz_roundscale_sd (__mmask8 __A, __m128d __B, __m128d __C,
    3614              :              const int __imm)
    3615              : {
    3616              :   return (__m128d)
    3617              :     __builtin_ia32_rndscalesd_mask_round ((__v2df) __B,
    3618              :                       (__v2df) __C, __imm,
    3619              :                       (__v2df)
    3620              :                       _mm_avx512_setzero_pd (),
    3621              :                       (__mmask8) __A,
    3622              :                       _MM_FROUND_CUR_DIRECTION);
    3623              : }
    3624              : 
    3625              : extern __inline __mmask8
    3626              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3627              : _mm_cmp_sd_mask (__m128d __X, __m128d __Y, const int __P)
    3628              : {
    3629              :   return (__mmask8) __builtin_ia32_cmpsd_mask ((__v2df) __X,
    3630              :                            (__v2df) __Y, __P,
    3631              :                            (__mmask8) -1,
    3632              :                            _MM_FROUND_CUR_DIRECTION);
    3633              : }
    3634              : 
    3635              : extern __inline __mmask8
    3636              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3637              : _mm_mask_cmp_sd_mask (__mmask8 __M, __m128d __X, __m128d __Y, const int __P)
    3638              : {
    3639              :   return (__mmask8) __builtin_ia32_cmpsd_mask ((__v2df) __X,
    3640              :                            (__v2df) __Y, __P,
    3641              :                            (__mmask8) __M,
    3642              :                            _MM_FROUND_CUR_DIRECTION);
    3643              : }
    3644              : 
    3645              : extern __inline __mmask8
    3646              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3647              : _mm_cmp_ss_mask (__m128 __X, __m128 __Y, const int __P)
    3648              : {
    3649              :   return (__mmask8) __builtin_ia32_cmpss_mask ((__v4sf) __X,
    3650              :                            (__v4sf) __Y, __P,
    3651              :                            (__mmask8) -1,
    3652              :                            _MM_FROUND_CUR_DIRECTION);
    3653              : }
    3654              : 
    3655              : extern __inline __mmask8
    3656              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3657              : _mm_mask_cmp_ss_mask (__mmask8 __M, __m128 __X, __m128 __Y, const int __P)
    3658              : {
    3659              :   return (__mmask8) __builtin_ia32_cmpss_mask ((__v4sf) __X,
    3660              :                            (__v4sf) __Y, __P,
    3661              :                            (__mmask8) __M,
    3662              :                            _MM_FROUND_CUR_DIRECTION);
    3663              : }
    3664              : 
    3665              : #else
    3666              : #define _mm_getmant_sd(X, Y, C, D)                                                  \
    3667              :   ((__m128d)__builtin_ia32_getmantsd_round ((__v2df)(__m128d)(X),                    \
    3668              :                                            (__v2df)(__m128d)(Y),                    \
    3669              :                                            (int)(((D)<<2) | (C)),                   \
    3670              :                        _MM_FROUND_CUR_DIRECTION))
    3671              : 
    3672              : #define _mm_mask_getmant_sd(W, U, X, Y, C, D)                                       \
    3673              :   ((__m128d)__builtin_ia32_getmantsd_mask_round ((__v2df)(__m128d)(X),                 \
    3674              :                                                  (__v2df)(__m128d)(Y),                 \
    3675              :                                                  (int)(((D)<<2) | (C)),                \
    3676              :                                                 (__v2df)(__m128d)(W),                 \
    3677              :                                               (__mmask8)(U),\
    3678              :                           _MM_FROUND_CUR_DIRECTION))
    3679              : 
    3680              : #define _mm_maskz_getmant_sd(U, X, Y, C, D)                                         \
    3681              :   ((__m128d)__builtin_ia32_getmantsd_mask_round ((__v2df)(__m128d)(X),                 \
    3682              :                                            (__v2df)(__m128d)(Y),                     \
    3683              :                                               (int)(((D)<<2) | (C)),                \
    3684              :                                            (__v2df)_mm_avx512_setzero_pd(),             \
    3685              :                                               (__mmask8)(U),\
    3686              :                           _MM_FROUND_CUR_DIRECTION))
    3687              : 
    3688              : #define _mm_getmant_ss(X, Y, C, D)                                                  \
    3689              :   ((__m128)__builtin_ia32_getmantss_round ((__v4sf)(__m128)(X),                      \
    3690              :                                           (__v4sf)(__m128)(Y),                      \
    3691              :                                           (int)(((D)<<2) | (C)),                    \
    3692              :                       _MM_FROUND_CUR_DIRECTION))
    3693              : 
    3694              : #define _mm_mask_getmant_ss(W, U, X, Y, C, D)                                       \
    3695              :   ((__m128)__builtin_ia32_getmantss_mask_round ((__v4sf)(__m128)(X),                 \
    3696              :                                                  (__v4sf)(__m128)(Y),                 \
    3697              :                                                  (int)(((D)<<2) | (C)),                \
    3698              :                                                 (__v4sf)(__m128)(W),                 \
    3699              :                                               (__mmask8)(U),\
    3700              :                           _MM_FROUND_CUR_DIRECTION))
    3701              : 
    3702              : #define _mm_maskz_getmant_ss(U, X, Y, C, D)                                         \
    3703              :   ((__m128)__builtin_ia32_getmantss_mask_round ((__v4sf)(__m128)(X),                 \
    3704              :                                            (__v4sf)(__m128)(Y),                     \
    3705              :                                               (int)(((D)<<2) | (C)),                \
    3706              :                                            (__v4sf)_mm_avx512_setzero_ps(),             \
    3707              :                                               (__mmask8)(U),\
    3708              :                           _MM_FROUND_CUR_DIRECTION))
    3709              : 
    3710              : #define _mm_getexp_ss(A, B)                           \
    3711              :   ((__m128)__builtin_ia32_getexpss128_round((__v4sf)(__m128)(A), (__v4sf)(__m128)(B),  \
    3712              :                        _MM_FROUND_CUR_DIRECTION))
    3713              : 
    3714              : #define _mm_mask_getexp_ss(W, U, A, B) \
    3715              :     (__m128)__builtin_ia32_getexpss_mask_round(A, B, W, U,\
    3716              :                                              _MM_FROUND_CUR_DIRECTION)
    3717              : 
    3718              : #define _mm_maskz_getexp_ss(U, A, B)   \
    3719              :     (__m128)__builtin_ia32_getexpss_mask_round(A, B, (__v4sf)_mm_avx512_setzero_ps(), U,\
    3720              :                           _MM_FROUND_CUR_DIRECTION)
    3721              : 
    3722              : #define _mm_getexp_sd(A, B)                            \
    3723              :   ((__m128d)__builtin_ia32_getexpsd128_round((__v2df)(__m128d)(A), (__v2df)(__m128d)(B),\
    3724              :                         _MM_FROUND_CUR_DIRECTION))
    3725              : 
    3726              : #define _mm_mask_getexp_sd(W, U, A, B) \
    3727              :     (__m128d)__builtin_ia32_getexpsd_mask_round(A, B, W, U,\
    3728              :                                              _MM_FROUND_CUR_DIRECTION)
    3729              : 
    3730              : #define _mm_maskz_getexp_sd(U, A, B)   \
    3731              :     (__m128d)__builtin_ia32_getexpsd_mask_round(A, B, (__v2df)_mm_avx512_setzero_pd(), U,\
    3732              :                           _MM_FROUND_CUR_DIRECTION)
    3733              : 
    3734              : #define _mm_roundscale_ss(A, B, I)                  \
    3735              :   ((__m128)                             \
    3736              :    __builtin_ia32_rndscaless_mask_round ((__v4sf) (__m128) (A),     \
    3737              :                      (__v4sf) (__m128) (B),     \
    3738              :                      (int) (I),         \
    3739              :                      (__v4sf) _mm_avx512_setzero_ps (), \
    3740              :                      (__mmask8) (-1),       \
    3741              :                      _MM_FROUND_CUR_DIRECTION))
    3742              : #define _mm_mask_roundscale_ss(A, U, B, C, I)               \
    3743              :   ((__m128)                             \
    3744              :    __builtin_ia32_rndscaless_mask_round ((__v4sf) (__m128) (B),     \
    3745              :                      (__v4sf) (__m128) (C),     \
    3746              :                      (int) (I),         \
    3747              :                      (__v4sf) (__m128) (A),     \
    3748              :                      (__mmask8) (U),        \
    3749              :                      _MM_FROUND_CUR_DIRECTION))
    3750              : #define _mm_maskz_roundscale_ss(U, A, B, I)             \
    3751              :   ((__m128)                             \
    3752              :    __builtin_ia32_rndscaless_mask_round ((__v4sf) (__m128) (A),     \
    3753              :                      (__v4sf) (__m128) (B),     \
    3754              :                      (int) (I),         \
    3755              :                      (__v4sf) _mm_avx512_setzero_ps (), \
    3756              :                      (__mmask8) (U),        \
    3757              :                      _MM_FROUND_CUR_DIRECTION))
    3758              : #define _mm_roundscale_sd(A, B, I)                  \
    3759              :   ((__m128d)                                \
    3760              :    __builtin_ia32_rndscalesd_mask_round ((__v2df) (__m128d) (A),    \
    3761              :                      (__v2df) (__m128d) (B),    \
    3762              :                      (int) (I),         \
    3763              :                      (__v2df) _mm_avx512_setzero_pd (), \
    3764              :                      (__mmask8) (-1),       \
    3765              :                      _MM_FROUND_CUR_DIRECTION))
    3766              : #define _mm_mask_roundscale_sd(A, U, B, C, I)               \
    3767              :   ((__m128d)                                \
    3768              :    __builtin_ia32_rndscalesd_mask_round ((__v2df) (__m128d) (B),    \
    3769              :                      (__v2df) (__m128d) (C),    \
    3770              :                      (int) (I),         \
    3771              :                      (__v2df) (__m128d) (A),    \
    3772              :                      (__mmask8) (U),        \
    3773              :                      _MM_FROUND_CUR_DIRECTION))
    3774              : #define _mm_maskz_roundscale_sd(U, A, B, I)             \
    3775              :   ((__m128d)                                \
    3776              :    __builtin_ia32_rndscalesd_mask_round ((__v2df) (__m128d) (A),    \
    3777              :                      (__v2df) (__m128d) (B),    \
    3778              :                      (int) (I),         \
    3779              :                      (__v2df) _mm_avx512_setzero_pd (), \
    3780              :                      (__mmask8) (U),        \
    3781              :                      _MM_FROUND_CUR_DIRECTION))
    3782              : 
    3783              : #define _mm_cmp_sd_mask(X, Y, P)                    \
    3784              :   ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X),      \
    3785              :                      (__v2df)(__m128d)(Y), (int)(P),\
    3786              :                      (__mmask8)-1,_MM_FROUND_CUR_DIRECTION))
    3787              : 
    3788              : #define _mm_mask_cmp_sd_mask(M, X, Y, P)                    \
    3789              :   ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X),      \
    3790              :                      (__v2df)(__m128d)(Y), (int)(P),\
    3791              :                      M,_MM_FROUND_CUR_DIRECTION))
    3792              : 
    3793              : #define _mm_cmp_ss_mask(X, Y, P)                    \
    3794              :   ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X),       \
    3795              :                      (__v4sf)(__m128)(Y), (int)(P), \
    3796              :                      (__mmask8)-1,_MM_FROUND_CUR_DIRECTION))
    3797              : 
    3798              : #define _mm_mask_cmp_ss_mask(M, X, Y, P)                    \
    3799              :   ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X),       \
    3800              :                      (__v4sf)(__m128)(Y), (int)(P), \
    3801              :                      M,_MM_FROUND_CUR_DIRECTION))
    3802              : 
    3803              : #endif
    3804              : 
    3805              : #ifdef __DISABLE_AVX512F__
    3806              : #undef __DISABLE_AVX512F__
    3807              : #pragma GCC pop_options
    3808              : #endif /* __DISABLE_AVX512F__ */
    3809              : 
    3810              : #if !defined (__AVX512F__) || !defined (__EVEX512__)
    3811              : #pragma GCC push_options
    3812              : #pragma GCC target("avx512f,evex512")
    3813              : #define __DISABLE_AVX512F_512__
    3814              : #endif /* __AVX512F_512__ */
    3815              : 
    3816              : /* Internal data types for implementing the intrinsics.  */
    3817              : typedef double __v8df __attribute__ ((__vector_size__ (64)));
    3818              : typedef float __v16sf __attribute__ ((__vector_size__ (64)));
    3819              : typedef long long __v8di __attribute__ ((__vector_size__ (64)));
    3820              : typedef unsigned long long __v8du __attribute__ ((__vector_size__ (64)));
    3821              : typedef int __v16si __attribute__ ((__vector_size__ (64)));
    3822              : typedef unsigned int __v16su __attribute__ ((__vector_size__ (64)));
    3823              : typedef short __v32hi __attribute__ ((__vector_size__ (64)));
    3824              : typedef unsigned short __v32hu __attribute__ ((__vector_size__ (64)));
    3825              : typedef char __v64qi __attribute__ ((__vector_size__ (64)));
    3826              : typedef unsigned char __v64qu __attribute__ ((__vector_size__ (64)));
    3827              : 
    3828              : /* The Intel API is flexible enough that we must allow aliasing with other
    3829              :    vector types, and their scalar components.  */
    3830              : typedef float __m512 __attribute__ ((__vector_size__ (64), __may_alias__));
    3831              : typedef long long __m512i __attribute__ ((__vector_size__ (64), __may_alias__));
    3832              : typedef double __m512d __attribute__ ((__vector_size__ (64), __may_alias__));
    3833              : 
    3834              : /* Unaligned version of the same type.  */
    3835              : typedef float __m512_u __attribute__ ((__vector_size__ (64), __may_alias__, __aligned__ (1)));
    3836              : typedef long long __m512i_u __attribute__ ((__vector_size__ (64), __may_alias__, __aligned__ (1)));
    3837              : typedef double __m512d_u __attribute__ ((__vector_size__ (64), __may_alias__, __aligned__ (1)));
    3838              : 
    3839              : extern __inline __mmask16
    3840              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3841              : _mm512_int2mask (int __M)
    3842              : {
    3843              :   return (__mmask16) __M;
    3844              : }
    3845              : 
    3846              : extern __inline int
    3847              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3848              : _mm512_mask2int (__mmask16 __M)
    3849              : {
    3850              :   return (int) __M;
    3851              : }
    3852              : 
    3853              : extern __inline __m512i
    3854              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3855              : _mm512_set_epi64 (long long __A, long long __B, long long __C,
    3856              :           long long __D, long long __E, long long __F,
    3857              :           long long __G, long long __H)
    3858              : {
    3859              :   return __extension__ (__m512i) (__v8di)
    3860              :      { __H, __G, __F, __E, __D, __C, __B, __A };
    3861              : }
    3862              : 
    3863              : /* Create the vector [A B C D E F G H I J K L M N O P].  */
    3864              : extern __inline __m512i
    3865              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3866              : _mm512_set_epi32 (int __A, int __B, int __C, int __D,
    3867              :           int __E, int __F, int __G, int __H,
    3868              :           int __I, int __J, int __K, int __L,
    3869              :           int __M, int __N, int __O, int __P)
    3870              : {
    3871            0 :   return __extension__ (__m512i)(__v16si)
    3872            0 :      { __P, __O, __N, __M, __L, __K, __J, __I,
    3873              :        __H, __G, __F, __E, __D, __C, __B, __A };
    3874              : }
    3875              : 
    3876              : extern __inline __m512i
    3877              : __attribute__((__gnu_inline__, __always_inline__, __artificial__))
    3878              : _mm512_set_epi16 (short __q31, short __q30, short __q29, short __q28,
    3879              :           short __q27, short __q26, short __q25, short __q24,
    3880              :           short __q23, short __q22, short __q21, short __q20,
    3881              :           short __q19, short __q18, short __q17, short __q16,
    3882              :           short __q15, short __q14, short __q13, short __q12,
    3883              :           short __q11, short __q10, short __q09, short __q08,
    3884              :           short __q07, short __q06, short __q05, short __q04,
    3885              :           short __q03, short __q02, short __q01, short __q00)
    3886              : {
    3887              :   return __extension__ (__m512i)(__v32hi){
    3888              :     __q00, __q01, __q02, __q03, __q04, __q05, __q06, __q07,
    3889              :     __q08, __q09, __q10, __q11, __q12, __q13, __q14, __q15,
    3890              :     __q16, __q17, __q18, __q19, __q20, __q21, __q22, __q23,
    3891              :     __q24, __q25, __q26, __q27, __q28, __q29, __q30, __q31
    3892              :   };
    3893              : }
    3894              : 
    3895              : extern __inline __m512i
    3896              : __attribute__((__gnu_inline__, __always_inline__, __artificial__))
    3897              : _mm512_set_epi8 (char __q63, char __q62, char __q61, char __q60,
    3898              :          char __q59, char __q58, char __q57, char __q56,
    3899              :          char __q55, char __q54, char __q53, char __q52,
    3900              :          char __q51, char __q50, char __q49, char __q48,
    3901              :          char __q47, char __q46, char __q45, char __q44,
    3902              :          char __q43, char __q42, char __q41, char __q40,
    3903              :          char __q39, char __q38, char __q37, char __q36,
    3904              :          char __q35, char __q34, char __q33, char __q32,
    3905              :          char __q31, char __q30, char __q29, char __q28,
    3906              :          char __q27, char __q26, char __q25, char __q24,
    3907              :          char __q23, char __q22, char __q21, char __q20,
    3908              :          char __q19, char __q18, char __q17, char __q16,
    3909              :          char __q15, char __q14, char __q13, char __q12,
    3910              :          char __q11, char __q10, char __q09, char __q08,
    3911              :          char __q07, char __q06, char __q05, char __q04,
    3912              :          char __q03, char __q02, char __q01, char __q00)
    3913              : {
    3914              :   return __extension__ (__m512i)(__v64qi){
    3915              :     __q00, __q01, __q02, __q03, __q04, __q05, __q06, __q07,
    3916              :     __q08, __q09, __q10, __q11, __q12, __q13, __q14, __q15,
    3917              :     __q16, __q17, __q18, __q19, __q20, __q21, __q22, __q23,
    3918              :     __q24, __q25, __q26, __q27, __q28, __q29, __q30, __q31,
    3919              :     __q32, __q33, __q34, __q35, __q36, __q37, __q38, __q39,
    3920              :     __q40, __q41, __q42, __q43, __q44, __q45, __q46, __q47,
    3921              :     __q48, __q49, __q50, __q51, __q52, __q53, __q54, __q55,
    3922              :     __q56, __q57, __q58, __q59, __q60, __q61, __q62, __q63
    3923              :   };
    3924              : }
    3925              : 
    3926              : extern __inline __m512d
    3927              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3928              : _mm512_set_pd (double __A, double __B, double __C, double __D,
    3929              :            double __E, double __F, double __G, double __H)
    3930              : {
    3931              :   return __extension__ (__m512d)
    3932              :      { __H, __G, __F, __E, __D, __C, __B, __A };
    3933              : }
    3934              : 
    3935              : extern __inline __m512
    3936              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3937              : _mm512_set_ps (float __A, float __B, float __C, float __D,
    3938              :            float __E, float __F, float __G, float __H,
    3939              :            float __I, float __J, float __K, float __L,
    3940              :            float __M, float __N, float __O, float __P)
    3941              : {
    3942              :   return __extension__ (__m512)
    3943              :      { __P, __O, __N, __M, __L, __K, __J, __I,
    3944              :        __H, __G, __F, __E, __D, __C, __B, __A };
    3945              : }
    3946              : 
    3947              : #define _mm512_setr_epi64(e0,e1,e2,e3,e4,e5,e6,e7)                \
    3948              :   _mm512_set_epi64(e7,e6,e5,e4,e3,e2,e1,e0)
    3949              : 
    3950              : #define _mm512_setr_epi32(e0,e1,e2,e3,e4,e5,e6,e7,                \
    3951              :               e8,e9,e10,e11,e12,e13,e14,e15)              \
    3952              :   _mm512_set_epi32(e15,e14,e13,e12,e11,e10,e9,e8,e7,e6,e5,e4,e3,e2,e1,e0)
    3953              : 
    3954              : #define _mm512_setr_pd(e0,e1,e2,e3,e4,e5,e6,e7)                   \
    3955              :   _mm512_set_pd(e7,e6,e5,e4,e3,e2,e1,e0)
    3956              : 
    3957              : #define _mm512_setr_ps(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12,e13,e14,e15) \
    3958              :   _mm512_set_ps(e15,e14,e13,e12,e11,e10,e9,e8,e7,e6,e5,e4,e3,e2,e1,e0)
    3959              : 
    3960              : extern __inline __m512
    3961              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3962              : _mm512_undefined_ps (void)
    3963              : {
    3964              : #pragma GCC diagnostic push
    3965              : #pragma GCC diagnostic ignored "-Winit-self"
    3966              :   __m512 __Y = __Y;
    3967              : #pragma GCC diagnostic pop
    3968              :   return __Y;
    3969              : }
    3970              : 
    3971              : #define _mm512_undefined _mm512_undefined_ps
    3972              : 
    3973              : extern __inline __m512d
    3974              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3975              : _mm512_undefined_pd (void)
    3976              : {
    3977              : #pragma GCC diagnostic push
    3978              : #pragma GCC diagnostic ignored "-Winit-self"
    3979              :   __m512d __Y = __Y;
    3980              : #pragma GCC diagnostic pop
    3981              :   return __Y;
    3982              : }
    3983              : 
    3984              : extern __inline __m512i
    3985              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3986              : _mm512_undefined_epi32 (void)
    3987              : {
    3988              : #pragma GCC diagnostic push
    3989              : #pragma GCC diagnostic ignored "-Winit-self"
    3990            0 :   __m512i __Y = __Y;
    3991              : #pragma GCC diagnostic pop
    3992            0 :   return __Y;
    3993              : }
    3994              : 
    3995              : #define _mm512_undefined_si512 _mm512_undefined_epi32
    3996              : 
    3997              : extern __inline __m512i
    3998              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    3999              : _mm512_set1_epi8 (char __A)
    4000              : {
    4001            0 :   return __extension__ (__m512i)(__v64qi)
    4002            0 :      { __A, __A, __A, __A, __A, __A, __A, __A,
    4003              :        __A, __A, __A, __A, __A, __A, __A, __A,
    4004              :        __A, __A, __A, __A, __A, __A, __A, __A,
    4005              :        __A, __A, __A, __A, __A, __A, __A, __A,
    4006              :        __A, __A, __A, __A, __A, __A, __A, __A,
    4007              :        __A, __A, __A, __A, __A, __A, __A, __A,
    4008              :        __A, __A, __A, __A, __A, __A, __A, __A,
    4009              :        __A, __A, __A, __A, __A, __A, __A, __A };
    4010              : }
    4011              : 
    4012              : extern __inline __m512i
    4013              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4014              : _mm512_set1_epi16 (short __A)
    4015              : {
    4016              :   return __extension__ (__m512i)(__v32hi)
    4017              :      { __A, __A, __A, __A, __A, __A, __A, __A,
    4018              :        __A, __A, __A, __A, __A, __A, __A, __A,
    4019              :        __A, __A, __A, __A, __A, __A, __A, __A,
    4020              :        __A, __A, __A, __A, __A, __A, __A, __A };
    4021              : }
    4022              : 
    4023              : extern __inline __m512d
    4024              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4025              : _mm512_set1_pd (double __A)
    4026              : {
    4027              :   return __extension__ (__m512d)(__v8df)
    4028              :     { __A, __A, __A, __A, __A, __A, __A, __A };
    4029              : }
    4030              : 
    4031              : extern __inline __m512
    4032              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4033              : _mm512_set1_ps (float __A)
    4034              : {
    4035              :   return __extension__ (__m512)(__v16sf)
    4036              :     { __A, __A, __A, __A, __A, __A, __A, __A,
    4037              :       __A, __A, __A, __A, __A, __A, __A, __A };
    4038              : }
    4039              : 
    4040              : /* Create the vector [A B C D A B C D A B C D A B C D].  */
    4041              : extern __inline __m512i
    4042              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4043              : _mm512_set4_epi32 (int __A, int __B, int __C, int __D)
    4044              : {
    4045              :   return __extension__ (__m512i)(__v16si)
    4046              :      { __D, __C, __B, __A, __D, __C, __B, __A,
    4047              :        __D, __C, __B, __A, __D, __C, __B, __A };
    4048              : }
    4049              : 
    4050              : extern __inline __m512i
    4051              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4052              : _mm512_set4_epi64 (long long __A, long long __B, long long __C,
    4053              :            long long __D)
    4054              : {
    4055              :   return __extension__ (__m512i) (__v8di)
    4056              :      { __D, __C, __B, __A, __D, __C, __B, __A };
    4057              : }
    4058              : 
    4059              : extern __inline __m512d
    4060              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4061              : _mm512_set4_pd (double __A, double __B, double __C, double __D)
    4062              : {
    4063              :   return __extension__ (__m512d)
    4064              :      { __D, __C, __B, __A, __D, __C, __B, __A };
    4065              : }
    4066              : 
    4067              : extern __inline __m512
    4068              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4069              : _mm512_set4_ps (float __A, float __B, float __C, float __D)
    4070              : {
    4071              :   return __extension__ (__m512)
    4072              :      { __D, __C, __B, __A, __D, __C, __B, __A,
    4073              :        __D, __C, __B, __A, __D, __C, __B, __A };
    4074              : }
    4075              : 
    4076              : #define _mm512_setr4_epi64(e0,e1,e2,e3)                       \
    4077              :   _mm512_set4_epi64(e3,e2,e1,e0)
    4078              : 
    4079              : #define _mm512_setr4_epi32(e0,e1,e2,e3)                       \
    4080              :   _mm512_set4_epi32(e3,e2,e1,e0)
    4081              : 
    4082              : #define _mm512_setr4_pd(e0,e1,e2,e3)                          \
    4083              :   _mm512_set4_pd(e3,e2,e1,e0)
    4084              : 
    4085              : #define _mm512_setr4_ps(e0,e1,e2,e3)                          \
    4086              :   _mm512_set4_ps(e3,e2,e1,e0)
    4087              : 
    4088              : extern __inline __m512
    4089              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4090              : _mm512_setzero_ps (void)
    4091              : {
    4092              :   return __extension__ (__m512){ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
    4093              :                  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
    4094              : }
    4095              : 
    4096              : extern __inline __m512
    4097              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4098              : _mm512_setzero (void)
    4099              : {
    4100              :   return _mm512_setzero_ps ();
    4101              : }
    4102              : 
    4103              : extern __inline __m512d
    4104              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4105              : _mm512_setzero_pd (void)
    4106              : {
    4107              :   return __extension__ (__m512d) { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
    4108              : }
    4109              : 
    4110              : extern __inline __m512i
    4111              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4112              : _mm512_setzero_epi32 (void)
    4113              : {
    4114              :   return __extension__ (__m512i)(__v8di){ 0, 0, 0, 0, 0, 0, 0, 0 };
    4115              : }
    4116              : 
    4117              : extern __inline __m512i
    4118              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4119              : _mm512_setzero_si512 (void)
    4120              : {
    4121            0 :   return __extension__ (__m512i)(__v8di){ 0, 0, 0, 0, 0, 0, 0, 0 };
    4122              : }
    4123              : 
    4124              : extern __inline __m512d
    4125              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4126              : _mm512_mask_mov_pd (__m512d __W, __mmask8 __U, __m512d __A)
    4127              : {
    4128              :   return (__m512d) __builtin_ia32_movapd512_mask ((__v8df) __A,
    4129              :                           (__v8df) __W,
    4130              :                           (__mmask8) __U);
    4131              : }
    4132              : 
    4133              : extern __inline __m512d
    4134              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4135              : _mm512_maskz_mov_pd (__mmask8 __U, __m512d __A)
    4136              : {
    4137              :   return (__m512d) __builtin_ia32_movapd512_mask ((__v8df) __A,
    4138              :                           (__v8df)
    4139              :                           _mm512_setzero_pd (),
    4140              :                           (__mmask8) __U);
    4141              : }
    4142              : 
    4143              : extern __inline __m512
    4144              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4145              : _mm512_mask_mov_ps (__m512 __W, __mmask16 __U, __m512 __A)
    4146              : {
    4147              :   return (__m512) __builtin_ia32_movaps512_mask ((__v16sf) __A,
    4148              :                          (__v16sf) __W,
    4149              :                          (__mmask16) __U);
    4150              : }
    4151              : 
    4152              : extern __inline __m512
    4153              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4154              : _mm512_maskz_mov_ps (__mmask16 __U, __m512 __A)
    4155              : {
    4156              :   return (__m512) __builtin_ia32_movaps512_mask ((__v16sf) __A,
    4157              :                          (__v16sf)
    4158              :                          _mm512_setzero_ps (),
    4159              :                          (__mmask16) __U);
    4160              : }
    4161              : 
    4162              : extern __inline __m512d
    4163              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4164              : _mm512_load_pd (void const *__P)
    4165              : {
    4166              :   return *(__m512d *) __P;
    4167              : }
    4168              : 
    4169              : extern __inline __m512d
    4170              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4171              : _mm512_mask_load_pd (__m512d __W, __mmask8 __U, void const *__P)
    4172              : {
    4173              :   return (__m512d) __builtin_ia32_loadapd512_mask ((const __v8df *) __P,
    4174              :                            (__v8df) __W,
    4175              :                            (__mmask8) __U);
    4176              : }
    4177              : 
    4178              : extern __inline __m512d
    4179              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4180              : _mm512_maskz_load_pd (__mmask8 __U, void const *__P)
    4181              : {
    4182              :   return (__m512d) __builtin_ia32_loadapd512_mask ((const __v8df *) __P,
    4183              :                            (__v8df)
    4184              :                            _mm512_setzero_pd (),
    4185              :                            (__mmask8) __U);
    4186              : }
    4187              : 
    4188              : extern __inline void
    4189              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4190              : _mm512_store_pd (void *__P, __m512d __A)
    4191              : {
    4192              :   *(__m512d *) __P = __A;
    4193              : }
    4194              : 
    4195              : extern __inline void
    4196              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4197              : _mm512_mask_store_pd (void *__P, __mmask8 __U, __m512d __A)
    4198              : {
    4199              :   __builtin_ia32_storeapd512_mask ((__v8df *) __P, (__v8df) __A,
    4200              :                    (__mmask8) __U);
    4201              : }
    4202              : 
    4203              : extern __inline __m512
    4204              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4205              : _mm512_load_ps (void const *__P)
    4206              : {
    4207              :   return *(__m512 *) __P;
    4208              : }
    4209              : 
    4210              : extern __inline __m512
    4211              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4212              : _mm512_mask_load_ps (__m512 __W, __mmask16 __U, void const *__P)
    4213              : {
    4214              :   return (__m512) __builtin_ia32_loadaps512_mask ((const __v16sf *) __P,
    4215              :                           (__v16sf) __W,
    4216              :                           (__mmask16) __U);
    4217              : }
    4218              : 
    4219              : extern __inline __m512
    4220              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4221              : _mm512_maskz_load_ps (__mmask16 __U, void const *__P)
    4222              : {
    4223              :   return (__m512) __builtin_ia32_loadaps512_mask ((const __v16sf *) __P,
    4224              :                           (__v16sf)
    4225              :                           _mm512_setzero_ps (),
    4226              :                           (__mmask16) __U);
    4227              : }
    4228              : 
    4229              : extern __inline void
    4230              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4231              : _mm512_store_ps (void *__P, __m512 __A)
    4232              : {
    4233              :   *(__m512 *) __P = __A;
    4234              : }
    4235              : 
    4236              : extern __inline void
    4237              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4238              : _mm512_mask_store_ps (void *__P, __mmask16 __U, __m512 __A)
    4239              : {
    4240              :   __builtin_ia32_storeaps512_mask ((__v16sf *) __P, (__v16sf) __A,
    4241              :                    (__mmask16) __U);
    4242              : }
    4243              : 
    4244              : extern __inline __m512i
    4245              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4246              : _mm512_mask_mov_epi64 (__m512i __W, __mmask8 __U, __m512i __A)
    4247              : {
    4248              :   return (__m512i) __builtin_ia32_movdqa64_512_mask ((__v8di) __A,
    4249              :                              (__v8di) __W,
    4250              :                              (__mmask8) __U);
    4251              : }
    4252              : 
    4253              : extern __inline __m512i
    4254              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4255              : _mm512_maskz_mov_epi64 (__mmask8 __U, __m512i __A)
    4256              : {
    4257              :   return (__m512i) __builtin_ia32_movdqa64_512_mask ((__v8di) __A,
    4258              :                              (__v8di)
    4259              :                              _mm512_setzero_si512 (),
    4260              :                              (__mmask8) __U);
    4261              : }
    4262              : 
    4263              : extern __inline __m512i
    4264              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4265              : _mm512_load_epi64 (void const *__P)
    4266              : {
    4267              :   return *(__m512i *) __P;
    4268              : }
    4269              : 
    4270              : extern __inline __m512i
    4271              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4272              : _mm512_mask_load_epi64 (__m512i __W, __mmask8 __U, void const *__P)
    4273              : {
    4274              :   return (__m512i) __builtin_ia32_movdqa64load512_mask ((const __v8di *) __P,
    4275              :                             (__v8di) __W,
    4276              :                             (__mmask8) __U);
    4277              : }
    4278              : 
    4279              : extern __inline __m512i
    4280              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4281              : _mm512_maskz_load_epi64 (__mmask8 __U, void const *__P)
    4282              : {
    4283              :   return (__m512i) __builtin_ia32_movdqa64load512_mask ((const __v8di *) __P,
    4284              :                             (__v8di)
    4285              :                             _mm512_setzero_si512 (),
    4286              :                             (__mmask8) __U);
    4287              : }
    4288              : 
    4289              : extern __inline void
    4290              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4291              : _mm512_store_epi64 (void *__P, __m512i __A)
    4292              : {
    4293              :   *(__m512i *) __P = __A;
    4294              : }
    4295              : 
    4296              : extern __inline void
    4297              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4298              : _mm512_mask_store_epi64 (void *__P, __mmask8 __U, __m512i __A)
    4299              : {
    4300              :   __builtin_ia32_movdqa64store512_mask ((__v8di *) __P, (__v8di) __A,
    4301              :                     (__mmask8) __U);
    4302              : }
    4303              : 
    4304              : extern __inline __m512i
    4305              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4306              : _mm512_mask_mov_epi32 (__m512i __W, __mmask16 __U, __m512i __A)
    4307              : {
    4308              :   return (__m512i) __builtin_ia32_movdqa32_512_mask ((__v16si) __A,
    4309              :                              (__v16si) __W,
    4310              :                              (__mmask16) __U);
    4311              : }
    4312              : 
    4313              : extern __inline __m512i
    4314              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4315              : _mm512_maskz_mov_epi32 (__mmask16 __U, __m512i __A)
    4316              : {
    4317              :   return (__m512i) __builtin_ia32_movdqa32_512_mask ((__v16si) __A,
    4318              :                              (__v16si)
    4319              :                              _mm512_setzero_si512 (),
    4320              :                              (__mmask16) __U);
    4321              : }
    4322              : 
    4323              : extern __inline __m512i
    4324              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4325              : _mm512_load_si512 (void const *__P)
    4326              : {
    4327            0 :   return *(__m512i *) __P;
    4328              : }
    4329              : 
    4330              : extern __inline __m512i
    4331              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4332              : _mm512_load_epi32 (void const *__P)
    4333              : {
    4334              :   return *(__m512i *) __P;
    4335              : }
    4336              : 
    4337              : extern __inline __m512i
    4338              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4339              : _mm512_mask_load_epi32 (__m512i __W, __mmask16 __U, void const *__P)
    4340              : {
    4341              :   return (__m512i) __builtin_ia32_movdqa32load512_mask ((const __v16si *) __P,
    4342              :                             (__v16si) __W,
    4343              :                             (__mmask16) __U);
    4344              : }
    4345              : 
    4346              : extern __inline __m512i
    4347              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4348              : _mm512_maskz_load_epi32 (__mmask16 __U, void const *__P)
    4349              : {
    4350              :   return (__m512i) __builtin_ia32_movdqa32load512_mask ((const __v16si *) __P,
    4351              :                             (__v16si)
    4352              :                             _mm512_setzero_si512 (),
    4353              :                             (__mmask16) __U);
    4354              : }
    4355              : 
    4356              : extern __inline void
    4357              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4358              : _mm512_store_si512 (void *__P, __m512i __A)
    4359              : {
    4360              :   *(__m512i *) __P = __A;
    4361              : }
    4362              : 
    4363              : extern __inline void
    4364              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4365              : _mm512_store_epi32 (void *__P, __m512i __A)
    4366              : {
    4367              :   *(__m512i *) __P = __A;
    4368              : }
    4369              : 
    4370              : extern __inline void
    4371              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4372              : _mm512_mask_store_epi32 (void *__P, __mmask16 __U, __m512i __A)
    4373              : {
    4374              :   __builtin_ia32_movdqa32store512_mask ((__v16si *) __P, (__v16si) __A,
    4375              :                     (__mmask16) __U);
    4376              : }
    4377              : 
    4378              : extern __inline __m512i
    4379              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4380              : _mm512_mullo_epi32 (__m512i __A, __m512i __B)
    4381              : {
    4382              :   return (__m512i) ((__v16su) __A * (__v16su) __B);
    4383              : }
    4384              : 
    4385              : extern __inline __m512i
    4386              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4387              : _mm512_maskz_mullo_epi32 (__mmask16 __M, __m512i __A, __m512i __B)
    4388              : {
    4389              :   return (__m512i) __builtin_ia32_pmulld512_mask ((__v16si) __A,
    4390              :                           (__v16si) __B,
    4391              :                           (__v16si)
    4392              :                           _mm512_setzero_si512 (),
    4393              :                           __M);
    4394              : }
    4395              : 
    4396              : extern __inline __m512i
    4397              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4398              : _mm512_mask_mullo_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
    4399              : {
    4400              :   return (__m512i) __builtin_ia32_pmulld512_mask ((__v16si) __A,
    4401              :                           (__v16si) __B,
    4402              :                           (__v16si) __W, __M);
    4403              : }
    4404              : 
    4405              : extern __inline __m512i
    4406              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4407              : _mm512_mullox_epi64 (__m512i __A, __m512i __B)
    4408              : {
    4409              :   return (__m512i) ((__v8du) __A * (__v8du) __B);
    4410              : }
    4411              : 
    4412              : extern __inline __m512i
    4413              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4414              : _mm512_mask_mullox_epi64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
    4415              : {
    4416              :   return _mm512_mask_mov_epi64 (__W, __M, _mm512_mullox_epi64 (__A, __B));
    4417              : }
    4418              : 
    4419              : extern __inline __m512i
    4420              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4421              : _mm512_sllv_epi32 (__m512i __X, __m512i __Y)
    4422              : {
    4423              :   return (__m512i) __builtin_ia32_psllv16si_mask ((__v16si) __X,
    4424              :                           (__v16si) __Y,
    4425              :                           (__v16si)
    4426              :                           _mm512_undefined_epi32 (),
    4427              :                           (__mmask16) -1);
    4428              : }
    4429              : 
    4430              : extern __inline __m512i
    4431              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4432              : _mm512_mask_sllv_epi32 (__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y)
    4433              : {
    4434              :   return (__m512i) __builtin_ia32_psllv16si_mask ((__v16si) __X,
    4435              :                           (__v16si) __Y,
    4436              :                           (__v16si) __W,
    4437              :                           (__mmask16) __U);
    4438              : }
    4439              : 
    4440              : extern __inline __m512i
    4441              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4442              : _mm512_maskz_sllv_epi32 (__mmask16 __U, __m512i __X, __m512i __Y)
    4443              : {
    4444              :   return (__m512i) __builtin_ia32_psllv16si_mask ((__v16si) __X,
    4445              :                           (__v16si) __Y,
    4446              :                           (__v16si)
    4447              :                           _mm512_setzero_si512 (),
    4448              :                           (__mmask16) __U);
    4449              : }
    4450              : 
    4451              : extern __inline __m512i
    4452              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4453              : _mm512_srav_epi32 (__m512i __X, __m512i __Y)
    4454              : {
    4455              :   return (__m512i) __builtin_ia32_psrav16si_mask ((__v16si) __X,
    4456              :                           (__v16si) __Y,
    4457              :                           (__v16si)
    4458              :                           _mm512_undefined_epi32 (),
    4459              :                           (__mmask16) -1);
    4460              : }
    4461              : 
    4462              : extern __inline __m512i
    4463              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4464              : _mm512_mask_srav_epi32 (__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y)
    4465              : {
    4466              :   return (__m512i) __builtin_ia32_psrav16si_mask ((__v16si) __X,
    4467              :                           (__v16si) __Y,
    4468              :                           (__v16si) __W,
    4469              :                           (__mmask16) __U);
    4470              : }
    4471              : 
    4472              : extern __inline __m512i
    4473              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4474              : _mm512_maskz_srav_epi32 (__mmask16 __U, __m512i __X, __m512i __Y)
    4475              : {
    4476              :   return (__m512i) __builtin_ia32_psrav16si_mask ((__v16si) __X,
    4477              :                           (__v16si) __Y,
    4478              :                           (__v16si)
    4479              :                           _mm512_setzero_si512 (),
    4480              :                           (__mmask16) __U);
    4481              : }
    4482              : 
    4483              : extern __inline __m512i
    4484              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4485              : _mm512_srlv_epi32 (__m512i __X, __m512i __Y)
    4486              : {
    4487              :   return (__m512i) __builtin_ia32_psrlv16si_mask ((__v16si) __X,
    4488              :                           (__v16si) __Y,
    4489              :                           (__v16si)
    4490              :                           _mm512_undefined_epi32 (),
    4491              :                           (__mmask16) -1);
    4492              : }
    4493              : 
    4494              : extern __inline __m512i
    4495              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4496              : _mm512_mask_srlv_epi32 (__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y)
    4497              : {
    4498              :   return (__m512i) __builtin_ia32_psrlv16si_mask ((__v16si) __X,
    4499              :                           (__v16si) __Y,
    4500              :                           (__v16si) __W,
    4501              :                           (__mmask16) __U);
    4502              : }
    4503              : 
    4504              : extern __inline __m512i
    4505              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4506              : _mm512_maskz_srlv_epi32 (__mmask16 __U, __m512i __X, __m512i __Y)
    4507              : {
    4508              :   return (__m512i) __builtin_ia32_psrlv16si_mask ((__v16si) __X,
    4509              :                           (__v16si) __Y,
    4510              :                           (__v16si)
    4511              :                           _mm512_setzero_si512 (),
    4512              :                           (__mmask16) __U);
    4513              : }
    4514              : 
    4515              : extern __inline __m512i
    4516              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4517              : _mm512_add_epi64 (__m512i __A, __m512i __B)
    4518              : {
    4519            0 :   return (__m512i) ((__v8du) __A + (__v8du) __B);
    4520              : }
    4521              : 
    4522              : extern __inline __m512i
    4523              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4524              : _mm512_mask_add_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
    4525              : {
    4526              :   return (__m512i) __builtin_ia32_paddq512_mask ((__v8di) __A,
    4527              :                          (__v8di) __B,
    4528              :                          (__v8di) __W,
    4529              :                          (__mmask8) __U);
    4530              : }
    4531              : 
    4532              : extern __inline __m512i
    4533              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4534              : _mm512_maskz_add_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
    4535              : {
    4536              :   return (__m512i) __builtin_ia32_paddq512_mask ((__v8di) __A,
    4537              :                          (__v8di) __B,
    4538              :                          (__v8di)
    4539              :                          _mm512_setzero_si512 (),
    4540              :                          (__mmask8) __U);
    4541              : }
    4542              : 
    4543              : extern __inline __m512i
    4544              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4545              : _mm512_sub_epi64 (__m512i __A, __m512i __B)
    4546              : {
    4547              :   return (__m512i) ((__v8du) __A - (__v8du) __B);
    4548              : }
    4549              : 
    4550              : extern __inline __m512i
    4551              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4552              : _mm512_mask_sub_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
    4553              : {
    4554              :   return (__m512i) __builtin_ia32_psubq512_mask ((__v8di) __A,
    4555              :                          (__v8di) __B,
    4556              :                          (__v8di) __W,
    4557              :                          (__mmask8) __U);
    4558              : }
    4559              : 
    4560              : extern __inline __m512i
    4561              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4562              : _mm512_maskz_sub_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
    4563              : {
    4564              :   return (__m512i) __builtin_ia32_psubq512_mask ((__v8di) __A,
    4565              :                          (__v8di) __B,
    4566              :                          (__v8di)
    4567              :                          _mm512_setzero_si512 (),
    4568              :                          (__mmask8) __U);
    4569              : }
    4570              : 
    4571              : extern __inline __m512i
    4572              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4573              : _mm512_sllv_epi64 (__m512i __X, __m512i __Y)
    4574              : {
    4575              :   return (__m512i) __builtin_ia32_psllv8di_mask ((__v8di) __X,
    4576              :                          (__v8di) __Y,
    4577              :                          (__v8di)
    4578              :                          _mm512_undefined_pd (),
    4579              :                          (__mmask8) -1);
    4580              : }
    4581              : 
    4582              : extern __inline __m512i
    4583              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4584              : _mm512_mask_sllv_epi64 (__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y)
    4585              : {
    4586              :   return (__m512i) __builtin_ia32_psllv8di_mask ((__v8di) __X,
    4587              :                          (__v8di) __Y,
    4588              :                          (__v8di) __W,
    4589              :                          (__mmask8) __U);
    4590              : }
    4591              : 
    4592              : extern __inline __m512i
    4593              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4594              : _mm512_maskz_sllv_epi64 (__mmask8 __U, __m512i __X, __m512i __Y)
    4595              : {
    4596              :   return (__m512i) __builtin_ia32_psllv8di_mask ((__v8di) __X,
    4597              :                          (__v8di) __Y,
    4598              :                          (__v8di)
    4599              :                          _mm512_setzero_si512 (),
    4600              :                          (__mmask8) __U);
    4601              : }
    4602              : 
    4603              : extern __inline __m512i
    4604              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4605              : _mm512_srav_epi64 (__m512i __X, __m512i __Y)
    4606              : {
    4607              :   return (__m512i) __builtin_ia32_psrav8di_mask ((__v8di) __X,
    4608              :                          (__v8di) __Y,
    4609              :                          (__v8di)
    4610              :                          _mm512_undefined_epi32 (),
    4611              :                          (__mmask8) -1);
    4612              : }
    4613              : 
    4614              : extern __inline __m512i
    4615              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4616              : _mm512_mask_srav_epi64 (__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y)
    4617              : {
    4618              :   return (__m512i) __builtin_ia32_psrav8di_mask ((__v8di) __X,
    4619              :                          (__v8di) __Y,
    4620              :                          (__v8di) __W,
    4621              :                          (__mmask8) __U);
    4622              : }
    4623              : 
    4624              : extern __inline __m512i
    4625              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4626              : _mm512_maskz_srav_epi64 (__mmask8 __U, __m512i __X, __m512i __Y)
    4627              : {
    4628              :   return (__m512i) __builtin_ia32_psrav8di_mask ((__v8di) __X,
    4629              :                          (__v8di) __Y,
    4630              :                          (__v8di)
    4631              :                          _mm512_setzero_si512 (),
    4632              :                          (__mmask8) __U);
    4633              : }
    4634              : 
    4635              : extern __inline __m512i
    4636              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4637              : _mm512_srlv_epi64 (__m512i __X, __m512i __Y)
    4638              : {
    4639              :   return (__m512i) __builtin_ia32_psrlv8di_mask ((__v8di) __X,
    4640              :                          (__v8di) __Y,
    4641              :                          (__v8di)
    4642              :                          _mm512_undefined_epi32 (),
    4643              :                          (__mmask8) -1);
    4644              : }
    4645              : 
    4646              : extern __inline __m512i
    4647              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4648              : _mm512_mask_srlv_epi64 (__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y)
    4649              : {
    4650              :   return (__m512i) __builtin_ia32_psrlv8di_mask ((__v8di) __X,
    4651              :                          (__v8di) __Y,
    4652              :                          (__v8di) __W,
    4653              :                          (__mmask8) __U);
    4654              : }
    4655              : 
    4656              : extern __inline __m512i
    4657              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4658              : _mm512_maskz_srlv_epi64 (__mmask8 __U, __m512i __X, __m512i __Y)
    4659              : {
    4660              :   return (__m512i) __builtin_ia32_psrlv8di_mask ((__v8di) __X,
    4661              :                          (__v8di) __Y,
    4662              :                          (__v8di)
    4663              :                          _mm512_setzero_si512 (),
    4664              :                          (__mmask8) __U);
    4665              : }
    4666              : 
    4667              : extern __inline __m512i
    4668              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4669              : _mm512_add_epi32 (__m512i __A, __m512i __B)
    4670              : {
    4671              :   return (__m512i) ((__v16su) __A + (__v16su) __B);
    4672              : }
    4673              : 
    4674              : extern __inline __m512i
    4675              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4676              : _mm512_mask_add_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
    4677              : {
    4678              :   return (__m512i) __builtin_ia32_paddd512_mask ((__v16si) __A,
    4679              :                          (__v16si) __B,
    4680              :                          (__v16si) __W,
    4681              :                          (__mmask16) __U);
    4682              : }
    4683              : 
    4684              : extern __inline __m512i
    4685              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4686              : _mm512_maskz_add_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
    4687              : {
    4688              :   return (__m512i) __builtin_ia32_paddd512_mask ((__v16si) __A,
    4689              :                          (__v16si) __B,
    4690              :                          (__v16si)
    4691              :                          _mm512_setzero_si512 (),
    4692              :                          (__mmask16) __U);
    4693              : }
    4694              : 
    4695              : extern __inline __m512i
    4696              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4697              : _mm512_mul_epi32 (__m512i __X, __m512i __Y)
    4698              : {
    4699              :   return (__m512i) __builtin_ia32_pmuldq512_mask ((__v16si) __X,
    4700              :                           (__v16si) __Y,
    4701              :                           (__v8di)
    4702              :                           _mm512_undefined_epi32 (),
    4703              :                           (__mmask8) -1);
    4704              : }
    4705              : 
    4706              : extern __inline __m512i
    4707              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4708              : _mm512_mask_mul_epi32 (__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y)
    4709              : {
    4710              :   return (__m512i) __builtin_ia32_pmuldq512_mask ((__v16si) __X,
    4711              :                           (__v16si) __Y,
    4712              :                           (__v8di) __W, __M);
    4713              : }
    4714              : 
    4715              : extern __inline __m512i
    4716              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4717              : _mm512_maskz_mul_epi32 (__mmask8 __M, __m512i __X, __m512i __Y)
    4718              : {
    4719              :   return (__m512i) __builtin_ia32_pmuldq512_mask ((__v16si) __X,
    4720              :                           (__v16si) __Y,
    4721              :                           (__v8di)
    4722              :                           _mm512_setzero_si512 (),
    4723              :                           __M);
    4724              : }
    4725              : 
    4726              : extern __inline __m512i
    4727              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4728              : _mm512_sub_epi32 (__m512i __A, __m512i __B)
    4729              : {
    4730              :   return (__m512i) ((__v16su) __A - (__v16su) __B);
    4731              : }
    4732              : 
    4733              : extern __inline __m512i
    4734              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4735              : _mm512_mask_sub_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
    4736              : {
    4737              :   return (__m512i) __builtin_ia32_psubd512_mask ((__v16si) __A,
    4738              :                          (__v16si) __B,
    4739              :                          (__v16si) __W,
    4740              :                          (__mmask16) __U);
    4741              : }
    4742              : 
    4743              : extern __inline __m512i
    4744              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4745              : _mm512_maskz_sub_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
    4746              : {
    4747              :   return (__m512i) __builtin_ia32_psubd512_mask ((__v16si) __A,
    4748              :                          (__v16si) __B,
    4749              :                          (__v16si)
    4750              :                          _mm512_setzero_si512 (),
    4751              :                          (__mmask16) __U);
    4752              : }
    4753              : 
    4754              : extern __inline __m512i
    4755              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4756              : _mm512_mul_epu32 (__m512i __X, __m512i __Y)
    4757              : {
    4758              :   return (__m512i) __builtin_ia32_pmuludq512_mask ((__v16si) __X,
    4759              :                            (__v16si) __Y,
    4760              :                            (__v8di)
    4761              :                            _mm512_undefined_epi32 (),
    4762              :                            (__mmask8) -1);
    4763              : }
    4764              : 
    4765              : extern __inline __m512i
    4766              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4767              : _mm512_mask_mul_epu32 (__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y)
    4768              : {
    4769              :   return (__m512i) __builtin_ia32_pmuludq512_mask ((__v16si) __X,
    4770              :                            (__v16si) __Y,
    4771              :                            (__v8di) __W, __M);
    4772              : }
    4773              : 
    4774              : extern __inline __m512i
    4775              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4776              : _mm512_maskz_mul_epu32 (__mmask8 __M, __m512i __X, __m512i __Y)
    4777              : {
    4778              :   return (__m512i) __builtin_ia32_pmuludq512_mask ((__v16si) __X,
    4779              :                            (__v16si) __Y,
    4780              :                            (__v8di)
    4781              :                            _mm512_setzero_si512 (),
    4782              :                            __M);
    4783              : }
    4784              : 
    4785              : #ifdef __OPTIMIZE__
    4786              : extern __inline __m512i
    4787              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4788              : _mm512_slli_epi64 (__m512i __A, unsigned int __B)
    4789              : {
    4790              :   return (__m512i) __builtin_ia32_psllqi512_mask ((__v8di) __A, __B,
    4791              :                           (__v8di)
    4792              :                           _mm512_undefined_epi32 (),
    4793              :                           (__mmask8) -1);
    4794              : }
    4795              : 
    4796              : extern __inline __m512i
    4797              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4798              : _mm512_mask_slli_epi64 (__m512i __W, __mmask8 __U, __m512i __A,
    4799              :             unsigned int __B)
    4800              : {
    4801              :   return (__m512i) __builtin_ia32_psllqi512_mask ((__v8di) __A, __B,
    4802              :                           (__v8di) __W,
    4803              :                           (__mmask8) __U);
    4804              : }
    4805              : 
    4806              : extern __inline __m512i
    4807              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4808              : _mm512_maskz_slli_epi64 (__mmask8 __U, __m512i __A, unsigned int __B)
    4809              : {
    4810              :   return (__m512i) __builtin_ia32_psllqi512_mask ((__v8di) __A, __B,
    4811              :                           (__v8di)
    4812              :                           _mm512_setzero_si512 (),
    4813              :                           (__mmask8) __U);
    4814              : }
    4815              : #else
    4816              : #define _mm512_slli_epi64(X, C)                     \
    4817              :   ((__m512i) __builtin_ia32_psllqi512_mask ((__v8di)(__m512i)(X),   \
    4818              :     (unsigned int)(C),                          \
    4819              :     (__v8di)(__m512i)_mm512_undefined_epi32 (),             \
    4820              :     (__mmask8)-1))
    4821              : 
    4822              : #define _mm512_mask_slli_epi64(W, U, X, C)              \
    4823              :   ((__m512i) __builtin_ia32_psllqi512_mask ((__v8di)(__m512i)(X),   \
    4824              :     (unsigned int)(C),                          \
    4825              :     (__v8di)(__m512i)(W),                       \
    4826              :     (__mmask8)(U)))
    4827              : 
    4828              : #define _mm512_maskz_slli_epi64(U, X, C)                \
    4829              :   ((__m512i) __builtin_ia32_psllqi512_mask ((__v8di)(__m512i)(X),   \
    4830              :     (unsigned int)(C),                          \
    4831              :     (__v8di)(__m512i)_mm512_setzero_si512 (),               \
    4832              :     (__mmask8)(U)))
    4833              : #endif
    4834              : 
    4835              : extern __inline __m512i
    4836              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4837              : _mm512_sll_epi64 (__m512i __A, __m128i __B)
    4838              : {
    4839              :   return (__m512i) __builtin_ia32_psllq512_mask ((__v8di) __A,
    4840              :                          (__v2di) __B,
    4841              :                          (__v8di)
    4842              :                          _mm512_undefined_epi32 (),
    4843              :                          (__mmask8) -1);
    4844              : }
    4845              : 
    4846              : extern __inline __m512i
    4847              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4848              : _mm512_mask_sll_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m128i __B)
    4849              : {
    4850              :   return (__m512i) __builtin_ia32_psllq512_mask ((__v8di) __A,
    4851              :                          (__v2di) __B,
    4852              :                          (__v8di) __W,
    4853              :                          (__mmask8) __U);
    4854              : }
    4855              : 
    4856              : extern __inline __m512i
    4857              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4858              : _mm512_maskz_sll_epi64 (__mmask8 __U, __m512i __A, __m128i __B)
    4859              : {
    4860              :   return (__m512i) __builtin_ia32_psllq512_mask ((__v8di) __A,
    4861              :                          (__v2di) __B,
    4862              :                          (__v8di)
    4863              :                          _mm512_setzero_si512 (),
    4864              :                          (__mmask8) __U);
    4865              : }
    4866              : 
    4867              : #ifdef __OPTIMIZE__
    4868              : extern __inline __m512i
    4869              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4870              : _mm512_srli_epi64 (__m512i __A, unsigned int __B)
    4871              : {
    4872              :   return (__m512i) __builtin_ia32_psrlqi512_mask ((__v8di) __A, __B,
    4873              :                           (__v8di)
    4874              :                           _mm512_undefined_epi32 (),
    4875              :                           (__mmask8) -1);
    4876              : }
    4877              : 
    4878              : extern __inline __m512i
    4879              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4880              : _mm512_mask_srli_epi64 (__m512i __W, __mmask8 __U,
    4881              :             __m512i __A, unsigned int __B)
    4882              : {
    4883              :   return (__m512i) __builtin_ia32_psrlqi512_mask ((__v8di) __A, __B,
    4884              :                           (__v8di) __W,
    4885              :                           (__mmask8) __U);
    4886              : }
    4887              : 
    4888              : extern __inline __m512i
    4889              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4890              : _mm512_maskz_srli_epi64 (__mmask8 __U, __m512i __A, unsigned int __B)
    4891              : {
    4892              :   return (__m512i) __builtin_ia32_psrlqi512_mask ((__v8di) __A, __B,
    4893              :                           (__v8di)
    4894              :                           _mm512_setzero_si512 (),
    4895              :                           (__mmask8) __U);
    4896              : }
    4897              : #else
    4898              : #define _mm512_srli_epi64(X, C)                     \
    4899              :   ((__m512i) __builtin_ia32_psrlqi512_mask ((__v8di)(__m512i)(X),   \
    4900              :     (unsigned int)(C),                          \
    4901              :     (__v8di)(__m512i)_mm512_undefined_epi32 (),             \
    4902              :     (__mmask8)-1))
    4903              : 
    4904              : #define _mm512_mask_srli_epi64(W, U, X, C)              \
    4905              :   ((__m512i) __builtin_ia32_psrlqi512_mask ((__v8di)(__m512i)(X),   \
    4906              :     (unsigned int)(C),                          \
    4907              :     (__v8di)(__m512i)(W),                       \
    4908              :     (__mmask8)(U)))
    4909              : 
    4910              : #define _mm512_maskz_srli_epi64(U, X, C)                \
    4911              :   ((__m512i) __builtin_ia32_psrlqi512_mask ((__v8di)(__m512i)(X),   \
    4912              :     (unsigned int)(C),                          \
    4913              :     (__v8di)(__m512i)_mm512_setzero_si512 (),               \
    4914              :     (__mmask8)(U)))
    4915              : #endif
    4916              : 
    4917              : extern __inline __m512i
    4918              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4919              : _mm512_srl_epi64 (__m512i __A, __m128i __B)
    4920              : {
    4921              :   return (__m512i) __builtin_ia32_psrlq512_mask ((__v8di) __A,
    4922              :                          (__v2di) __B,
    4923              :                          (__v8di)
    4924              :                          _mm512_undefined_epi32 (),
    4925              :                          (__mmask8) -1);
    4926              : }
    4927              : 
    4928              : extern __inline __m512i
    4929              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4930              : _mm512_mask_srl_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m128i __B)
    4931              : {
    4932              :   return (__m512i) __builtin_ia32_psrlq512_mask ((__v8di) __A,
    4933              :                          (__v2di) __B,
    4934              :                          (__v8di) __W,
    4935              :                          (__mmask8) __U);
    4936              : }
    4937              : 
    4938              : extern __inline __m512i
    4939              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4940              : _mm512_maskz_srl_epi64 (__mmask8 __U, __m512i __A, __m128i __B)
    4941              : {
    4942              :   return (__m512i) __builtin_ia32_psrlq512_mask ((__v8di) __A,
    4943              :                          (__v2di) __B,
    4944              :                          (__v8di)
    4945              :                          _mm512_setzero_si512 (),
    4946              :                          (__mmask8) __U);
    4947              : }
    4948              : 
    4949              : #ifdef __OPTIMIZE__
    4950              : extern __inline __m512i
    4951              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4952              : _mm512_srai_epi64 (__m512i __A, unsigned int __B)
    4953              : {
    4954              :   return (__m512i) __builtin_ia32_psraqi512_mask ((__v8di) __A, __B,
    4955              :                           (__v8di)
    4956              :                           _mm512_undefined_epi32 (),
    4957              :                           (__mmask8) -1);
    4958              : }
    4959              : 
    4960              : extern __inline __m512i
    4961              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4962              : _mm512_mask_srai_epi64 (__m512i __W, __mmask8 __U, __m512i __A,
    4963              :             unsigned int __B)
    4964              : {
    4965              :   return (__m512i) __builtin_ia32_psraqi512_mask ((__v8di) __A, __B,
    4966              :                           (__v8di) __W,
    4967              :                           (__mmask8) __U);
    4968              : }
    4969              : 
    4970              : extern __inline __m512i
    4971              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    4972              : _mm512_maskz_srai_epi64 (__mmask8 __U, __m512i __A, unsigned int __B)
    4973              : {
    4974              :   return (__m512i) __builtin_ia32_psraqi512_mask ((__v8di) __A, __B,
    4975              :                           (__v8di)
    4976              :                           _mm512_setzero_si512 (),
    4977              :                           (__mmask8) __U);
    4978              : }
    4979              : #else
    4980              : #define _mm512_srai_epi64(X, C)                     \
    4981              :   ((__m512i) __builtin_ia32_psraqi512_mask ((__v8di)(__m512i)(X),   \
    4982              :     (unsigned int)(C),                          \
    4983              :     (__v8di)(__m512i)_mm512_undefined_epi32 (),             \
    4984              :     (__mmask8)-1))
    4985              : 
    4986              : #define _mm512_mask_srai_epi64(W, U, X, C)              \
    4987              :   ((__m512i) __builtin_ia32_psraqi512_mask ((__v8di)(__m512i)(X),   \
    4988              :     (unsigned int)(C),                          \
    4989              :     (__v8di)(__m512i)(W),                       \
    4990              :     (__mmask8)(U)))
    4991              : 
    4992              : #define _mm512_maskz_srai_epi64(U, X, C)                \
    4993              :   ((__m512i) __builtin_ia32_psraqi512_mask ((__v8di)(__m512i)(X),   \
    4994              :     (unsigned int)(C),                          \
    4995              :     (__v8di)(__m512i)_mm512_setzero_si512 (),               \
    4996              :     (__mmask8)(U)))
    4997              : #endif
    4998              : 
    4999              : extern __inline __m512i
    5000              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5001              : _mm512_sra_epi64 (__m512i __A, __m128i __B)
    5002              : {
    5003              :   return (__m512i) __builtin_ia32_psraq512_mask ((__v8di) __A,
    5004              :                          (__v2di) __B,
    5005              :                          (__v8di)
    5006              :                          _mm512_undefined_epi32 (),
    5007              :                          (__mmask8) -1);
    5008              : }
    5009              : 
    5010              : extern __inline __m512i
    5011              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5012              : _mm512_mask_sra_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m128i __B)
    5013              : {
    5014              :   return (__m512i) __builtin_ia32_psraq512_mask ((__v8di) __A,
    5015              :                          (__v2di) __B,
    5016              :                          (__v8di) __W,
    5017              :                          (__mmask8) __U);
    5018              : }
    5019              : 
    5020              : extern __inline __m512i
    5021              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5022              : _mm512_maskz_sra_epi64 (__mmask8 __U, __m512i __A, __m128i __B)
    5023              : {
    5024              :   return (__m512i) __builtin_ia32_psraq512_mask ((__v8di) __A,
    5025              :                          (__v2di) __B,
    5026              :                          (__v8di)
    5027              :                          _mm512_setzero_si512 (),
    5028              :                          (__mmask8) __U);
    5029              : }
    5030              : 
    5031              : #ifdef __OPTIMIZE__
    5032              : extern __inline __m512i
    5033              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5034              : _mm512_slli_epi32 (__m512i __A, unsigned int __B)
    5035              : {
    5036              :   return (__m512i) __builtin_ia32_pslldi512_mask ((__v16si) __A, __B,
    5037              :                           (__v16si)
    5038              :                           _mm512_undefined_epi32 (),
    5039              :                           (__mmask16) -1);
    5040              : }
    5041              : 
    5042              : extern __inline __m512i
    5043              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5044              : _mm512_mask_slli_epi32 (__m512i __W, __mmask16 __U, __m512i __A,
    5045              :             unsigned int __B)
    5046              : {
    5047              :   return (__m512i) __builtin_ia32_pslldi512_mask ((__v16si) __A, __B,
    5048              :                           (__v16si) __W,
    5049              :                           (__mmask16) __U);
    5050              : }
    5051              : 
    5052              : extern __inline __m512i
    5053              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5054              : _mm512_maskz_slli_epi32 (__mmask16 __U, __m512i __A, unsigned int __B)
    5055              : {
    5056              :   return (__m512i) __builtin_ia32_pslldi512_mask ((__v16si) __A, __B,
    5057              :                           (__v16si)
    5058              :                           _mm512_setzero_si512 (),
    5059              :                           (__mmask16) __U);
    5060              : }
    5061              : #else
    5062              : #define _mm512_slli_epi32(X, C)                     \
    5063              :   ((__m512i) __builtin_ia32_pslldi512_mask ((__v16si)(__m512i)(X),  \
    5064              :     (unsigned int)(C),                          \
    5065              :     (__v16si)(__m512i)_mm512_undefined_epi32 (),            \
    5066              :     (__mmask16)-1))
    5067              : 
    5068              : #define _mm512_mask_slli_epi32(W, U, X, C)              \
    5069              :   ((__m512i) __builtin_ia32_pslldi512_mask ((__v16si)(__m512i)(X),  \
    5070              :     (unsigned int)(C),                          \
    5071              :     (__v16si)(__m512i)(W),                      \
    5072              :     (__mmask16)(U)))
    5073              : 
    5074              : #define _mm512_maskz_slli_epi32(U, X, C)                \
    5075              :   ((__m512i) __builtin_ia32_pslldi512_mask ((__v16si)(__m512i)(X),  \
    5076              :     (unsigned int)(C),                          \
    5077              :     (__v16si)(__m512i)_mm512_setzero_si512 (),              \
    5078              :     (__mmask16)(U)))
    5079              : #endif
    5080              : 
    5081              : extern __inline __m512i
    5082              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5083              : _mm512_sll_epi32 (__m512i __A, __m128i __B)
    5084              : {
    5085              :   return (__m512i) __builtin_ia32_pslld512_mask ((__v16si) __A,
    5086              :                          (__v4si) __B,
    5087              :                          (__v16si)
    5088              :                          _mm512_undefined_epi32 (),
    5089              :                          (__mmask16) -1);
    5090              : }
    5091              : 
    5092              : extern __inline __m512i
    5093              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5094              : _mm512_mask_sll_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m128i __B)
    5095              : {
    5096              :   return (__m512i) __builtin_ia32_pslld512_mask ((__v16si) __A,
    5097              :                          (__v4si) __B,
    5098              :                          (__v16si) __W,
    5099              :                          (__mmask16) __U);
    5100              : }
    5101              : 
    5102              : extern __inline __m512i
    5103              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5104              : _mm512_maskz_sll_epi32 (__mmask16 __U, __m512i __A, __m128i __B)
    5105              : {
    5106              :   return (__m512i) __builtin_ia32_pslld512_mask ((__v16si) __A,
    5107              :                          (__v4si) __B,
    5108              :                          (__v16si)
    5109              :                          _mm512_setzero_si512 (),
    5110              :                          (__mmask16) __U);
    5111              : }
    5112              : 
    5113              : #ifdef __OPTIMIZE__
    5114              : extern __inline __m512i
    5115              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5116              : _mm512_srli_epi32 (__m512i __A, unsigned int __B)
    5117              : {
    5118              :   return (__m512i) __builtin_ia32_psrldi512_mask ((__v16si) __A, __B,
    5119              :                           (__v16si)
    5120              :                           _mm512_undefined_epi32 (),
    5121              :                           (__mmask16) -1);
    5122              : }
    5123              : 
    5124              : extern __inline __m512i
    5125              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5126              : _mm512_mask_srli_epi32 (__m512i __W, __mmask16 __U,
    5127              :             __m512i __A, unsigned int __B)
    5128              : {
    5129              :   return (__m512i) __builtin_ia32_psrldi512_mask ((__v16si) __A, __B,
    5130              :                           (__v16si) __W,
    5131              :                           (__mmask16) __U);
    5132              : }
    5133              : 
    5134              : extern __inline __m512i
    5135              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5136              : _mm512_maskz_srli_epi32 (__mmask16 __U, __m512i __A, unsigned int __B)
    5137              : {
    5138              :   return (__m512i) __builtin_ia32_psrldi512_mask ((__v16si) __A, __B,
    5139              :                           (__v16si)
    5140              :                           _mm512_setzero_si512 (),
    5141              :                           (__mmask16) __U);
    5142              : }
    5143              : #else
    5144              : #define _mm512_srli_epi32(X, C)                       \
    5145              :   ((__m512i) __builtin_ia32_psrldi512_mask ((__v16si)(__m512i)(X),    \
    5146              :     (unsigned int)(C),                            \
    5147              :     (__v16si)(__m512i)_mm512_undefined_epi32 (),\
    5148              :     (__mmask16)-1))
    5149              : 
    5150              : #define _mm512_mask_srli_epi32(W, U, X, C)                \
    5151              :   ((__m512i) __builtin_ia32_psrldi512_mask ((__v16si)(__m512i)(X),    \
    5152              :     (unsigned int)(C),                            \
    5153              :     (__v16si)(__m512i)(W),                        \
    5154              :     (__mmask16)(U)))
    5155              : 
    5156              : #define _mm512_maskz_srli_epi32(U, X, C)                  \
    5157              :   ((__m512i) __builtin_ia32_psrldi512_mask ((__v16si)(__m512i)(X),    \
    5158              :     (unsigned int)(C),                            \
    5159              :     (__v16si)(__m512i)_mm512_setzero_si512 (),                \
    5160              :     (__mmask16)(U)))
    5161              : #endif
    5162              : 
    5163              : extern __inline __m512i
    5164              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5165              : _mm512_srl_epi32 (__m512i __A, __m128i __B)
    5166              : {
    5167              :   return (__m512i) __builtin_ia32_psrld512_mask ((__v16si) __A,
    5168              :                          (__v4si) __B,
    5169              :                          (__v16si)
    5170              :                          _mm512_undefined_epi32 (),
    5171              :                          (__mmask16) -1);
    5172              : }
    5173              : 
    5174              : extern __inline __m512i
    5175              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5176              : _mm512_mask_srl_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m128i __B)
    5177              : {
    5178              :   return (__m512i) __builtin_ia32_psrld512_mask ((__v16si) __A,
    5179              :                          (__v4si) __B,
    5180              :                          (__v16si) __W,
    5181              :                          (__mmask16) __U);
    5182              : }
    5183              : 
    5184              : extern __inline __m512i
    5185              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5186              : _mm512_maskz_srl_epi32 (__mmask16 __U, __m512i __A, __m128i __B)
    5187              : {
    5188              :   return (__m512i) __builtin_ia32_psrld512_mask ((__v16si) __A,
    5189              :                          (__v4si) __B,
    5190              :                          (__v16si)
    5191              :                          _mm512_setzero_si512 (),
    5192              :                          (__mmask16) __U);
    5193              : }
    5194              : 
    5195              : #ifdef __OPTIMIZE__
    5196              : extern __inline __m512i
    5197              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5198              : _mm512_srai_epi32 (__m512i __A, unsigned int __B)
    5199              : {
    5200              :   return (__m512i) __builtin_ia32_psradi512_mask ((__v16si) __A, __B,
    5201              :                           (__v16si)
    5202              :                           _mm512_undefined_epi32 (),
    5203              :                           (__mmask16) -1);
    5204              : }
    5205              : 
    5206              : extern __inline __m512i
    5207              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5208              : _mm512_mask_srai_epi32 (__m512i __W, __mmask16 __U, __m512i __A,
    5209              :             unsigned int __B)
    5210              : {
    5211              :   return (__m512i) __builtin_ia32_psradi512_mask ((__v16si) __A, __B,
    5212              :                           (__v16si) __W,
    5213              :                           (__mmask16) __U);
    5214              : }
    5215              : 
    5216              : extern __inline __m512i
    5217              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5218              : _mm512_maskz_srai_epi32 (__mmask16 __U, __m512i __A, unsigned int __B)
    5219              : {
    5220              :   return (__m512i) __builtin_ia32_psradi512_mask ((__v16si) __A, __B,
    5221              :                           (__v16si)
    5222              :                           _mm512_setzero_si512 (),
    5223              :                           (__mmask16) __U);
    5224              : }
    5225              : #else
    5226              : #define _mm512_srai_epi32(X, C)                     \
    5227              :   ((__m512i) __builtin_ia32_psradi512_mask ((__v16si)(__m512i)(X),  \
    5228              :     (unsigned int)(C),                          \
    5229              :     (__v16si)(__m512i)_mm512_undefined_epi32 (),\
    5230              :     (__mmask16)-1))
    5231              : 
    5232              : #define _mm512_mask_srai_epi32(W, U, X, C)              \
    5233              :   ((__m512i) __builtin_ia32_psradi512_mask ((__v16si)(__m512i)(X),  \
    5234              :     (unsigned int)(C),                          \
    5235              :     (__v16si)(__m512i)(W),                      \
    5236              :     (__mmask16)(U)))
    5237              : 
    5238              : #define _mm512_maskz_srai_epi32(U, X, C)                \
    5239              :   ((__m512i) __builtin_ia32_psradi512_mask ((__v16si)(__m512i)(X),  \
    5240              :     (unsigned int)(C),                          \
    5241              :     (__v16si)(__m512i)_mm512_setzero_si512 (),              \
    5242              :     (__mmask16)(U)))
    5243              : #endif
    5244              : 
    5245              : extern __inline __m512i
    5246              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5247              : _mm512_sra_epi32 (__m512i __A, __m128i __B)
    5248              : {
    5249              :   return (__m512i) __builtin_ia32_psrad512_mask ((__v16si) __A,
    5250              :                          (__v4si) __B,
    5251              :                          (__v16si)
    5252              :                          _mm512_undefined_epi32 (),
    5253              :                          (__mmask16) -1);
    5254              : }
    5255              : 
    5256              : extern __inline __m512i
    5257              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5258              : _mm512_mask_sra_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m128i __B)
    5259              : {
    5260              :   return (__m512i) __builtin_ia32_psrad512_mask ((__v16si) __A,
    5261              :                          (__v4si) __B,
    5262              :                          (__v16si) __W,
    5263              :                          (__mmask16) __U);
    5264              : }
    5265              : 
    5266              : extern __inline __m512i
    5267              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5268              : _mm512_maskz_sra_epi32 (__mmask16 __U, __m512i __A, __m128i __B)
    5269              : {
    5270              :   return (__m512i) __builtin_ia32_psrad512_mask ((__v16si) __A,
    5271              :                          (__v4si) __B,
    5272              :                          (__v16si)
    5273              :                          _mm512_setzero_si512 (),
    5274              :                          (__mmask16) __U);
    5275              : }
    5276              : 
    5277              : /* Constant helper to represent the ternary logic operations among
    5278              :    vector A, B and C.  */
    5279              : typedef enum
    5280              : {
    5281              :   _MM_TERNLOG_A = 0xF0,
    5282              :   _MM_TERNLOG_B = 0xCC,
    5283              :   _MM_TERNLOG_C = 0xAA
    5284              : } _MM_TERNLOG_ENUM;
    5285              : 
    5286              : #ifdef __OPTIMIZE__
    5287              : extern __inline __m512i
    5288              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5289              : _mm512_ternarylogic_epi64 (__m512i __A, __m512i __B, __m512i __C,
    5290              :                const int __imm)
    5291              : {
    5292              :   return (__m512i)
    5293              :     __builtin_ia32_pternlogq512_mask ((__v8di) __A,
    5294              :                       (__v8di) __B,
    5295              :                       (__v8di) __C,
    5296              :                       (unsigned char) __imm,
    5297              :                       (__mmask8) -1);
    5298              : }
    5299              : 
    5300              : extern __inline __m512i
    5301              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5302              : _mm512_mask_ternarylogic_epi64 (__m512i __A, __mmask8 __U, __m512i __B,
    5303              :                 __m512i __C, const int __imm)
    5304              : {
    5305              :   return (__m512i)
    5306              :     __builtin_ia32_pternlogq512_mask ((__v8di) __A,
    5307              :                       (__v8di) __B,
    5308              :                       (__v8di) __C,
    5309              :                       (unsigned char) __imm,
    5310              :                       (__mmask8) __U);
    5311              : }
    5312              : 
    5313              : extern __inline __m512i
    5314              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5315              : _mm512_maskz_ternarylogic_epi64 (__mmask8 __U, __m512i __A, __m512i __B,
    5316              :                  __m512i __C, const int __imm)
    5317              : {
    5318              :   return (__m512i)
    5319              :     __builtin_ia32_pternlogq512_maskz ((__v8di) __A,
    5320              :                        (__v8di) __B,
    5321              :                        (__v8di) __C,
    5322              :                        (unsigned char) __imm,
    5323              :                        (__mmask8) __U);
    5324              : }
    5325              : 
    5326              : extern __inline __m512i
    5327              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5328              : _mm512_ternarylogic_epi32 (__m512i __A, __m512i __B, __m512i __C,
    5329              :                const int __imm)
    5330              : {
    5331              :   return (__m512i)
    5332              :     __builtin_ia32_pternlogd512_mask ((__v16si) __A,
    5333              :                       (__v16si) __B,
    5334              :                       (__v16si) __C,
    5335              :                       (unsigned char) __imm,
    5336              :                       (__mmask16) -1);
    5337              : }
    5338              : 
    5339              : extern __inline __m512i
    5340              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5341              : _mm512_mask_ternarylogic_epi32 (__m512i __A, __mmask16 __U, __m512i __B,
    5342              :                 __m512i __C, const int __imm)
    5343              : {
    5344              :   return (__m512i)
    5345              :     __builtin_ia32_pternlogd512_mask ((__v16si) __A,
    5346              :                       (__v16si) __B,
    5347              :                       (__v16si) __C,
    5348              :                       (unsigned char) __imm,
    5349              :                       (__mmask16) __U);
    5350              : }
    5351              : 
    5352              : extern __inline __m512i
    5353              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5354              : _mm512_maskz_ternarylogic_epi32 (__mmask16 __U, __m512i __A, __m512i __B,
    5355              :                  __m512i __C, const int __imm)
    5356              : {
    5357              :   return (__m512i)
    5358              :     __builtin_ia32_pternlogd512_maskz ((__v16si) __A,
    5359              :                        (__v16si) __B,
    5360              :                        (__v16si) __C,
    5361              :                        (unsigned char) __imm,
    5362              :                        (__mmask16) __U);
    5363              : }
    5364              : #else
    5365              : #define _mm512_ternarylogic_epi64(A, B, C, I)           \
    5366              :   ((__m512i)                            \
    5367              :    __builtin_ia32_pternlogq512_mask ((__v8di) (__m512i) (A),    \
    5368              :                      (__v8di) (__m512i) (B),    \
    5369              :                      (__v8di) (__m512i) (C),    \
    5370              :                      (unsigned char) (I),   \
    5371              :                      (__mmask8) -1))
    5372              : #define _mm512_mask_ternarylogic_epi64(A, U, B, C, I)       \
    5373              :   ((__m512i)                            \
    5374              :    __builtin_ia32_pternlogq512_mask ((__v8di) (__m512i) (A),    \
    5375              :                      (__v8di) (__m512i) (B),    \
    5376              :                      (__v8di) (__m512i) (C),    \
    5377              :                      (unsigned char)(I),    \
    5378              :                      (__mmask8) (U)))
    5379              : #define _mm512_maskz_ternarylogic_epi64(U, A, B, C, I)      \
    5380              :   ((__m512i)                            \
    5381              :    __builtin_ia32_pternlogq512_maskz ((__v8di) (__m512i) (A),   \
    5382              :                       (__v8di) (__m512i) (B),   \
    5383              :                       (__v8di) (__m512i) (C),   \
    5384              :                       (unsigned char) (I),  \
    5385              :                       (__mmask8) (U)))
    5386              : #define _mm512_ternarylogic_epi32(A, B, C, I)           \
    5387              :   ((__m512i)                            \
    5388              :    __builtin_ia32_pternlogd512_mask ((__v16si) (__m512i) (A),   \
    5389              :                      (__v16si) (__m512i) (B),   \
    5390              :                      (__v16si) (__m512i) (C),   \
    5391              :                      (unsigned char) (I),   \
    5392              :                      (__mmask16) -1))
    5393              : #define _mm512_mask_ternarylogic_epi32(A, U, B, C, I)       \
    5394              :   ((__m512i)                            \
    5395              :    __builtin_ia32_pternlogd512_mask ((__v16si) (__m512i) (A),   \
    5396              :                      (__v16si) (__m512i) (B),   \
    5397              :                      (__v16si) (__m512i) (C),   \
    5398              :                      (unsigned char) (I),   \
    5399              :                      (__mmask16) (U)))
    5400              : #define _mm512_maskz_ternarylogic_epi32(U, A, B, C, I)      \
    5401              :   ((__m512i)                            \
    5402              :    __builtin_ia32_pternlogd512_maskz ((__v16si) (__m512i) (A),  \
    5403              :                       (__v16si) (__m512i) (B),  \
    5404              :                       (__v16si) (__m512i) (C),  \
    5405              :                       (unsigned char) (I),  \
    5406              :                       (__mmask16) (U)))
    5407              : #endif
    5408              : 
    5409              : extern __inline __m512d
    5410              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5411              : _mm512_rcp14_pd (__m512d __A)
    5412              : {
    5413              :   return (__m512d) __builtin_ia32_rcp14pd512_mask ((__v8df) __A,
    5414              :                            (__v8df)
    5415              :                            _mm512_undefined_pd (),
    5416              :                            (__mmask8) -1);
    5417              : }
    5418              : 
    5419              : extern __inline __m512d
    5420              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5421              : _mm512_mask_rcp14_pd (__m512d __W, __mmask8 __U, __m512d __A)
    5422              : {
    5423              :   return (__m512d) __builtin_ia32_rcp14pd512_mask ((__v8df) __A,
    5424              :                            (__v8df) __W,
    5425              :                            (__mmask8) __U);
    5426              : }
    5427              : 
    5428              : extern __inline __m512d
    5429              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5430              : _mm512_maskz_rcp14_pd (__mmask8 __U, __m512d __A)
    5431              : {
    5432              :   return (__m512d) __builtin_ia32_rcp14pd512_mask ((__v8df) __A,
    5433              :                            (__v8df)
    5434              :                            _mm512_setzero_pd (),
    5435              :                            (__mmask8) __U);
    5436              : }
    5437              : 
    5438              : extern __inline __m512
    5439              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5440              : _mm512_rcp14_ps (__m512 __A)
    5441              : {
    5442              :   return (__m512) __builtin_ia32_rcp14ps512_mask ((__v16sf) __A,
    5443              :                           (__v16sf)
    5444              :                           _mm512_undefined_ps (),
    5445              :                           (__mmask16) -1);
    5446              : }
    5447              : 
    5448              : extern __inline __m512
    5449              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5450              : _mm512_mask_rcp14_ps (__m512 __W, __mmask16 __U, __m512 __A)
    5451              : {
    5452              :   return (__m512) __builtin_ia32_rcp14ps512_mask ((__v16sf) __A,
    5453              :                           (__v16sf) __W,
    5454              :                           (__mmask16) __U);
    5455              : }
    5456              : 
    5457              : extern __inline __m512
    5458              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5459              : _mm512_maskz_rcp14_ps (__mmask16 __U, __m512 __A)
    5460              : {
    5461              :   return (__m512) __builtin_ia32_rcp14ps512_mask ((__v16sf) __A,
    5462              :                           (__v16sf)
    5463              :                           _mm512_setzero_ps (),
    5464              :                           (__mmask16) __U);
    5465              : }
    5466              : 
    5467              : extern __inline __m512d
    5468              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5469              : _mm512_rsqrt14_pd (__m512d __A)
    5470              : {
    5471              :   return (__m512d) __builtin_ia32_rsqrt14pd512_mask ((__v8df) __A,
    5472              :                              (__v8df)
    5473              :                              _mm512_undefined_pd (),
    5474              :                              (__mmask8) -1);
    5475              : }
    5476              : 
    5477              : extern __inline __m512d
    5478              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5479              : _mm512_mask_rsqrt14_pd (__m512d __W, __mmask8 __U, __m512d __A)
    5480              : {
    5481              :   return (__m512d) __builtin_ia32_rsqrt14pd512_mask ((__v8df) __A,
    5482              :                              (__v8df) __W,
    5483              :                              (__mmask8) __U);
    5484              : }
    5485              : 
    5486              : extern __inline __m512d
    5487              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5488              : _mm512_maskz_rsqrt14_pd (__mmask8 __U, __m512d __A)
    5489              : {
    5490              :   return (__m512d) __builtin_ia32_rsqrt14pd512_mask ((__v8df) __A,
    5491              :                              (__v8df)
    5492              :                              _mm512_setzero_pd (),
    5493              :                              (__mmask8) __U);
    5494              : }
    5495              : 
    5496              : extern __inline __m512
    5497              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5498              : _mm512_rsqrt14_ps (__m512 __A)
    5499              : {
    5500              :   return (__m512) __builtin_ia32_rsqrt14ps512_mask ((__v16sf) __A,
    5501              :                             (__v16sf)
    5502              :                             _mm512_undefined_ps (),
    5503              :                             (__mmask16) -1);
    5504              : }
    5505              : 
    5506              : extern __inline __m512
    5507              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5508              : _mm512_mask_rsqrt14_ps (__m512 __W, __mmask16 __U, __m512 __A)
    5509              : {
    5510              :   return (__m512) __builtin_ia32_rsqrt14ps512_mask ((__v16sf) __A,
    5511              :                             (__v16sf) __W,
    5512              :                             (__mmask16) __U);
    5513              : }
    5514              : 
    5515              : extern __inline __m512
    5516              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5517              : _mm512_maskz_rsqrt14_ps (__mmask16 __U, __m512 __A)
    5518              : {
    5519              :   return (__m512) __builtin_ia32_rsqrt14ps512_mask ((__v16sf) __A,
    5520              :                             (__v16sf)
    5521              :                             _mm512_setzero_ps (),
    5522              :                             (__mmask16) __U);
    5523              : }
    5524              : 
    5525              : #ifdef __OPTIMIZE__
    5526              : extern __inline __m512d
    5527              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5528              : _mm512_sqrt_round_pd (__m512d __A, const int __R)
    5529              : {
    5530              :   return (__m512d) __builtin_ia32_sqrtpd512_mask ((__v8df) __A,
    5531              :                           (__v8df)
    5532              :                           _mm512_undefined_pd (),
    5533              :                           (__mmask8) -1, __R);
    5534              : }
    5535              : 
    5536              : extern __inline __m512d
    5537              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5538              : _mm512_mask_sqrt_round_pd (__m512d __W, __mmask8 __U, __m512d __A,
    5539              :                const int __R)
    5540              : {
    5541              :   return (__m512d) __builtin_ia32_sqrtpd512_mask ((__v8df) __A,
    5542              :                           (__v8df) __W,
    5543              :                           (__mmask8) __U, __R);
    5544              : }
    5545              : 
    5546              : extern __inline __m512d
    5547              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5548              : _mm512_maskz_sqrt_round_pd (__mmask8 __U, __m512d __A, const int __R)
    5549              : {
    5550              :   return (__m512d) __builtin_ia32_sqrtpd512_mask ((__v8df) __A,
    5551              :                           (__v8df)
    5552              :                           _mm512_setzero_pd (),
    5553              :                           (__mmask8) __U, __R);
    5554              : }
    5555              : 
    5556              : extern __inline __m512
    5557              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5558              : _mm512_sqrt_round_ps (__m512 __A, const int __R)
    5559              : {
    5560              :   return (__m512) __builtin_ia32_sqrtps512_mask ((__v16sf) __A,
    5561              :                          (__v16sf)
    5562              :                          _mm512_undefined_ps (),
    5563              :                          (__mmask16) -1, __R);
    5564              : }
    5565              : 
    5566              : extern __inline __m512
    5567              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5568              : _mm512_mask_sqrt_round_ps (__m512 __W, __mmask16 __U, __m512 __A, const int __R)
    5569              : {
    5570              :   return (__m512) __builtin_ia32_sqrtps512_mask ((__v16sf) __A,
    5571              :                          (__v16sf) __W,
    5572              :                          (__mmask16) __U, __R);
    5573              : }
    5574              : 
    5575              : extern __inline __m512
    5576              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5577              : _mm512_maskz_sqrt_round_ps (__mmask16 __U, __m512 __A, const int __R)
    5578              : {
    5579              :   return (__m512) __builtin_ia32_sqrtps512_mask ((__v16sf) __A,
    5580              :                          (__v16sf)
    5581              :                          _mm512_setzero_ps (),
    5582              :                          (__mmask16) __U, __R);
    5583              : }
    5584              : 
    5585              : #else
    5586              : #define _mm512_sqrt_round_pd(A, C)            \
    5587              :     (__m512d)__builtin_ia32_sqrtpd512_mask(A, (__v8df)_mm512_undefined_pd(), -1, C)
    5588              : 
    5589              : #define _mm512_mask_sqrt_round_pd(W, U, A, C) \
    5590              :     (__m512d)__builtin_ia32_sqrtpd512_mask(A, W, U, C)
    5591              : 
    5592              : #define _mm512_maskz_sqrt_round_pd(U, A, C)   \
    5593              :     (__m512d)__builtin_ia32_sqrtpd512_mask(A, (__v8df)_mm512_setzero_pd(), U, C)
    5594              : 
    5595              : #define _mm512_sqrt_round_ps(A, C)            \
    5596              :     (__m512)__builtin_ia32_sqrtps512_mask(A, (__v16sf)_mm512_undefined_ps(), -1, C)
    5597              : 
    5598              : #define _mm512_mask_sqrt_round_ps(W, U, A, C) \
    5599              :     (__m512)__builtin_ia32_sqrtps512_mask(A, W, U, C)
    5600              : 
    5601              : #define _mm512_maskz_sqrt_round_ps(U, A, C)   \
    5602              :     (__m512)__builtin_ia32_sqrtps512_mask(A, (__v16sf)_mm512_setzero_ps(), U, C)
    5603              : 
    5604              : #endif
    5605              : 
    5606              : extern __inline __m512i
    5607              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5608              : _mm512_cvtepi8_epi32 (__m128i __A)
    5609              : {
    5610              :   return (__m512i) __builtin_ia32_pmovsxbd512_mask ((__v16qi) __A,
    5611              :                             (__v16si)
    5612              :                             _mm512_undefined_epi32 (),
    5613              :                             (__mmask16) -1);
    5614              : }
    5615              : 
    5616              : extern __inline __m512i
    5617              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5618              : _mm512_mask_cvtepi8_epi32 (__m512i __W, __mmask16 __U, __m128i __A)
    5619              : {
    5620              :   return (__m512i) __builtin_ia32_pmovsxbd512_mask ((__v16qi) __A,
    5621              :                             (__v16si) __W,
    5622              :                             (__mmask16) __U);
    5623              : }
    5624              : 
    5625              : extern __inline __m512i
    5626              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5627              : _mm512_maskz_cvtepi8_epi32 (__mmask16 __U, __m128i __A)
    5628              : {
    5629              :   return (__m512i) __builtin_ia32_pmovsxbd512_mask ((__v16qi) __A,
    5630              :                             (__v16si)
    5631              :                             _mm512_setzero_si512 (),
    5632              :                             (__mmask16) __U);
    5633              : }
    5634              : 
    5635              : extern __inline __m512i
    5636              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5637              : _mm512_cvtepi8_epi64 (__m128i __A)
    5638              : {
    5639              :   return (__m512i) __builtin_ia32_pmovsxbq512_mask ((__v16qi) __A,
    5640              :                             (__v8di)
    5641              :                             _mm512_undefined_epi32 (),
    5642              :                             (__mmask8) -1);
    5643              : }
    5644              : 
    5645              : extern __inline __m512i
    5646              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5647              : _mm512_mask_cvtepi8_epi64 (__m512i __W, __mmask8 __U, __m128i __A)
    5648              : {
    5649              :   return (__m512i) __builtin_ia32_pmovsxbq512_mask ((__v16qi) __A,
    5650              :                             (__v8di) __W,
    5651              :                             (__mmask8) __U);
    5652              : }
    5653              : 
    5654              : extern __inline __m512i
    5655              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5656              : _mm512_maskz_cvtepi8_epi64 (__mmask8 __U, __m128i __A)
    5657              : {
    5658              :   return (__m512i) __builtin_ia32_pmovsxbq512_mask ((__v16qi) __A,
    5659              :                             (__v8di)
    5660              :                             _mm512_setzero_si512 (),
    5661              :                             (__mmask8) __U);
    5662              : }
    5663              : 
    5664              : extern __inline __m512i
    5665              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5666              : _mm512_cvtepi16_epi32 (__m256i __A)
    5667              : {
    5668              :   return (__m512i) __builtin_ia32_pmovsxwd512_mask ((__v16hi) __A,
    5669              :                             (__v16si)
    5670              :                             _mm512_undefined_epi32 (),
    5671              :                             (__mmask16) -1);
    5672              : }
    5673              : 
    5674              : extern __inline __m512i
    5675              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5676              : _mm512_mask_cvtepi16_epi32 (__m512i __W, __mmask16 __U, __m256i __A)
    5677              : {
    5678              :   return (__m512i) __builtin_ia32_pmovsxwd512_mask ((__v16hi) __A,
    5679              :                             (__v16si) __W,
    5680              :                             (__mmask16) __U);
    5681              : }
    5682              : 
    5683              : extern __inline __m512i
    5684              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5685              : _mm512_maskz_cvtepi16_epi32 (__mmask16 __U, __m256i __A)
    5686              : {
    5687              :   return (__m512i) __builtin_ia32_pmovsxwd512_mask ((__v16hi) __A,
    5688              :                             (__v16si)
    5689              :                             _mm512_setzero_si512 (),
    5690              :                             (__mmask16) __U);
    5691              : }
    5692              : 
    5693              : extern __inline __m512i
    5694              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5695              : _mm512_cvtepi16_epi64 (__m128i __A)
    5696              : {
    5697              :   return (__m512i) __builtin_ia32_pmovsxwq512_mask ((__v8hi) __A,
    5698              :                             (__v8di)
    5699              :                             _mm512_undefined_epi32 (),
    5700              :                             (__mmask8) -1);
    5701              : }
    5702              : 
    5703              : extern __inline __m512i
    5704              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5705              : _mm512_mask_cvtepi16_epi64 (__m512i __W, __mmask8 __U, __m128i __A)
    5706              : {
    5707              :   return (__m512i) __builtin_ia32_pmovsxwq512_mask ((__v8hi) __A,
    5708              :                             (__v8di) __W,
    5709              :                             (__mmask8) __U);
    5710              : }
    5711              : 
    5712              : extern __inline __m512i
    5713              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5714              : _mm512_maskz_cvtepi16_epi64 (__mmask8 __U, __m128i __A)
    5715              : {
    5716              :   return (__m512i) __builtin_ia32_pmovsxwq512_mask ((__v8hi) __A,
    5717              :                             (__v8di)
    5718              :                             _mm512_setzero_si512 (),
    5719              :                             (__mmask8) __U);
    5720              : }
    5721              : 
    5722              : extern __inline __m512i
    5723              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5724              : _mm512_cvtepi32_epi64 (__m256i __X)
    5725              : {
    5726              :   return (__m512i) __builtin_ia32_pmovsxdq512_mask ((__v8si) __X,
    5727              :                             (__v8di)
    5728              :                             _mm512_undefined_epi32 (),
    5729              :                             (__mmask8) -1);
    5730              : }
    5731              : 
    5732              : extern __inline __m512i
    5733              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5734              : _mm512_mask_cvtepi32_epi64 (__m512i __W, __mmask8 __U, __m256i __X)
    5735              : {
    5736              :   return (__m512i) __builtin_ia32_pmovsxdq512_mask ((__v8si) __X,
    5737              :                             (__v8di) __W,
    5738              :                             (__mmask8) __U);
    5739              : }
    5740              : 
    5741              : extern __inline __m512i
    5742              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5743              : _mm512_maskz_cvtepi32_epi64 (__mmask8 __U, __m256i __X)
    5744              : {
    5745              :   return (__m512i) __builtin_ia32_pmovsxdq512_mask ((__v8si) __X,
    5746              :                             (__v8di)
    5747              :                             _mm512_setzero_si512 (),
    5748              :                             (__mmask8) __U);
    5749              : }
    5750              : 
    5751              : extern __inline __m512i
    5752              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5753              : _mm512_cvtepu8_epi32 (__m128i __A)
    5754              : {
    5755              :   return (__m512i) __builtin_ia32_pmovzxbd512_mask ((__v16qi) __A,
    5756              :                             (__v16si)
    5757              :                             _mm512_undefined_epi32 (),
    5758              :                             (__mmask16) -1);
    5759              : }
    5760              : 
    5761              : extern __inline __m512i
    5762              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5763              : _mm512_mask_cvtepu8_epi32 (__m512i __W, __mmask16 __U, __m128i __A)
    5764              : {
    5765              :   return (__m512i) __builtin_ia32_pmovzxbd512_mask ((__v16qi) __A,
    5766              :                             (__v16si) __W,
    5767              :                             (__mmask16) __U);
    5768              : }
    5769              : 
    5770              : extern __inline __m512i
    5771              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5772              : _mm512_maskz_cvtepu8_epi32 (__mmask16 __U, __m128i __A)
    5773              : {
    5774              :   return (__m512i) __builtin_ia32_pmovzxbd512_mask ((__v16qi) __A,
    5775              :                             (__v16si)
    5776              :                             _mm512_setzero_si512 (),
    5777              :                             (__mmask16) __U);
    5778              : }
    5779              : 
    5780              : extern __inline __m512i
    5781              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5782              : _mm512_cvtepu8_epi64 (__m128i __A)
    5783              : {
    5784              :   return (__m512i) __builtin_ia32_pmovzxbq512_mask ((__v16qi) __A,
    5785              :                             (__v8di)
    5786              :                             _mm512_undefined_epi32 (),
    5787              :                             (__mmask8) -1);
    5788              : }
    5789              : 
    5790              : extern __inline __m512i
    5791              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5792              : _mm512_mask_cvtepu8_epi64 (__m512i __W, __mmask8 __U, __m128i __A)
    5793              : {
    5794              :   return (__m512i) __builtin_ia32_pmovzxbq512_mask ((__v16qi) __A,
    5795              :                             (__v8di) __W,
    5796              :                             (__mmask8) __U);
    5797              : }
    5798              : 
    5799              : extern __inline __m512i
    5800              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5801              : _mm512_maskz_cvtepu8_epi64 (__mmask8 __U, __m128i __A)
    5802              : {
    5803              :   return (__m512i) __builtin_ia32_pmovzxbq512_mask ((__v16qi) __A,
    5804              :                             (__v8di)
    5805              :                             _mm512_setzero_si512 (),
    5806              :                             (__mmask8) __U);
    5807              : }
    5808              : 
    5809              : extern __inline __m512i
    5810              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5811              : _mm512_cvtepu16_epi32 (__m256i __A)
    5812              : {
    5813              :   return (__m512i) __builtin_ia32_pmovzxwd512_mask ((__v16hi) __A,
    5814              :                             (__v16si)
    5815              :                             _mm512_undefined_epi32 (),
    5816              :                             (__mmask16) -1);
    5817              : }
    5818              : 
    5819              : extern __inline __m512i
    5820              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5821              : _mm512_mask_cvtepu16_epi32 (__m512i __W, __mmask16 __U, __m256i __A)
    5822              : {
    5823              :   return (__m512i) __builtin_ia32_pmovzxwd512_mask ((__v16hi) __A,
    5824              :                             (__v16si) __W,
    5825              :                             (__mmask16) __U);
    5826              : }
    5827              : 
    5828              : extern __inline __m512i
    5829              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5830              : _mm512_maskz_cvtepu16_epi32 (__mmask16 __U, __m256i __A)
    5831              : {
    5832              :   return (__m512i) __builtin_ia32_pmovzxwd512_mask ((__v16hi) __A,
    5833              :                             (__v16si)
    5834              :                             _mm512_setzero_si512 (),
    5835              :                             (__mmask16) __U);
    5836              : }
    5837              : 
    5838              : extern __inline __m512i
    5839              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5840              : _mm512_cvtepu16_epi64 (__m128i __A)
    5841              : {
    5842              :   return (__m512i) __builtin_ia32_pmovzxwq512_mask ((__v8hi) __A,
    5843              :                             (__v8di)
    5844              :                             _mm512_undefined_epi32 (),
    5845              :                             (__mmask8) -1);
    5846              : }
    5847              : 
    5848              : extern __inline __m512i
    5849              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5850              : _mm512_mask_cvtepu16_epi64 (__m512i __W, __mmask8 __U, __m128i __A)
    5851              : {
    5852              :   return (__m512i) __builtin_ia32_pmovzxwq512_mask ((__v8hi) __A,
    5853              :                             (__v8di) __W,
    5854              :                             (__mmask8) __U);
    5855              : }
    5856              : 
    5857              : extern __inline __m512i
    5858              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5859              : _mm512_maskz_cvtepu16_epi64 (__mmask8 __U, __m128i __A)
    5860              : {
    5861              :   return (__m512i) __builtin_ia32_pmovzxwq512_mask ((__v8hi) __A,
    5862              :                             (__v8di)
    5863              :                             _mm512_setzero_si512 (),
    5864              :                             (__mmask8) __U);
    5865              : }
    5866              : 
    5867              : extern __inline __m512i
    5868              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5869              : _mm512_cvtepu32_epi64 (__m256i __X)
    5870              : {
    5871              :   return (__m512i) __builtin_ia32_pmovzxdq512_mask ((__v8si) __X,
    5872              :                             (__v8di)
    5873              :                             _mm512_undefined_epi32 (),
    5874              :                             (__mmask8) -1);
    5875              : }
    5876              : 
    5877              : extern __inline __m512i
    5878              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5879              : _mm512_mask_cvtepu32_epi64 (__m512i __W, __mmask8 __U, __m256i __X)
    5880              : {
    5881              :   return (__m512i) __builtin_ia32_pmovzxdq512_mask ((__v8si) __X,
    5882              :                             (__v8di) __W,
    5883              :                             (__mmask8) __U);
    5884              : }
    5885              : 
    5886              : extern __inline __m512i
    5887              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5888              : _mm512_maskz_cvtepu32_epi64 (__mmask8 __U, __m256i __X)
    5889              : {
    5890              :   return (__m512i) __builtin_ia32_pmovzxdq512_mask ((__v8si) __X,
    5891              :                             (__v8di)
    5892              :                             _mm512_setzero_si512 (),
    5893              :                             (__mmask8) __U);
    5894              : }
    5895              : 
    5896              : #ifdef __OPTIMIZE__
    5897              : extern __inline __m512d
    5898              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5899              : _mm512_add_round_pd (__m512d __A, __m512d __B, const int __R)
    5900              : {
    5901              :   return (__m512d) __builtin_ia32_addpd512_mask ((__v8df) __A,
    5902              :                          (__v8df) __B,
    5903              :                          (__v8df)
    5904              :                          _mm512_undefined_pd (),
    5905              :                          (__mmask8) -1, __R);
    5906              : }
    5907              : 
    5908              : extern __inline __m512d
    5909              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5910              : _mm512_mask_add_round_pd (__m512d __W, __mmask8 __U, __m512d __A,
    5911              :               __m512d __B, const int __R)
    5912              : {
    5913              :   return (__m512d) __builtin_ia32_addpd512_mask ((__v8df) __A,
    5914              :                          (__v8df) __B,
    5915              :                          (__v8df) __W,
    5916              :                          (__mmask8) __U, __R);
    5917              : }
    5918              : 
    5919              : extern __inline __m512d
    5920              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5921              : _mm512_maskz_add_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
    5922              :                const int __R)
    5923              : {
    5924              :   return (__m512d) __builtin_ia32_addpd512_mask ((__v8df) __A,
    5925              :                          (__v8df) __B,
    5926              :                          (__v8df)
    5927              :                          _mm512_setzero_pd (),
    5928              :                          (__mmask8) __U, __R);
    5929              : }
    5930              : 
    5931              : extern __inline __m512
    5932              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5933              : _mm512_add_round_ps (__m512 __A, __m512 __B, const int __R)
    5934              : {
    5935              :   return (__m512) __builtin_ia32_addps512_mask ((__v16sf) __A,
    5936              :                         (__v16sf) __B,
    5937              :                         (__v16sf)
    5938              :                         _mm512_undefined_ps (),
    5939              :                         (__mmask16) -1, __R);
    5940              : }
    5941              : 
    5942              : extern __inline __m512
    5943              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5944              : _mm512_mask_add_round_ps (__m512 __W, __mmask16 __U, __m512 __A,
    5945              :               __m512 __B, const int __R)
    5946              : {
    5947              :   return (__m512) __builtin_ia32_addps512_mask ((__v16sf) __A,
    5948              :                         (__v16sf) __B,
    5949              :                         (__v16sf) __W,
    5950              :                         (__mmask16) __U, __R);
    5951              : }
    5952              : 
    5953              : extern __inline __m512
    5954              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5955              : _mm512_maskz_add_round_ps (__mmask16 __U, __m512 __A, __m512 __B, const int __R)
    5956              : {
    5957              :   return (__m512) __builtin_ia32_addps512_mask ((__v16sf) __A,
    5958              :                         (__v16sf) __B,
    5959              :                         (__v16sf)
    5960              :                         _mm512_setzero_ps (),
    5961              :                         (__mmask16) __U, __R);
    5962              : }
    5963              : 
    5964              : extern __inline __m512d
    5965              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5966              : _mm512_sub_round_pd (__m512d __A, __m512d __B, const int __R)
    5967              : {
    5968              :   return (__m512d) __builtin_ia32_subpd512_mask ((__v8df) __A,
    5969              :                          (__v8df) __B,
    5970              :                          (__v8df)
    5971              :                          _mm512_undefined_pd (),
    5972              :                          (__mmask8) -1, __R);
    5973              : }
    5974              : 
    5975              : extern __inline __m512d
    5976              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5977              : _mm512_mask_sub_round_pd (__m512d __W, __mmask8 __U, __m512d __A,
    5978              :               __m512d __B, const int __R)
    5979              : {
    5980              :   return (__m512d) __builtin_ia32_subpd512_mask ((__v8df) __A,
    5981              :                          (__v8df) __B,
    5982              :                          (__v8df) __W,
    5983              :                          (__mmask8) __U, __R);
    5984              : }
    5985              : 
    5986              : extern __inline __m512d
    5987              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    5988              : _mm512_maskz_sub_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
    5989              :                const int __R)
    5990              : {
    5991              :   return (__m512d) __builtin_ia32_subpd512_mask ((__v8df) __A,
    5992              :                          (__v8df) __B,
    5993              :                          (__v8df)
    5994              :                          _mm512_setzero_pd (),
    5995              :                          (__mmask8) __U, __R);
    5996              : }
    5997              : 
    5998              : extern __inline __m512
    5999              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6000              : _mm512_sub_round_ps (__m512 __A, __m512 __B, const int __R)
    6001              : {
    6002              :   return (__m512) __builtin_ia32_subps512_mask ((__v16sf) __A,
    6003              :                         (__v16sf) __B,
    6004              :                         (__v16sf)
    6005              :                         _mm512_undefined_ps (),
    6006              :                         (__mmask16) -1, __R);
    6007              : }
    6008              : 
    6009              : extern __inline __m512
    6010              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6011              : _mm512_mask_sub_round_ps (__m512 __W, __mmask16 __U, __m512 __A,
    6012              :               __m512 __B, const int __R)
    6013              : {
    6014              :   return (__m512) __builtin_ia32_subps512_mask ((__v16sf) __A,
    6015              :                         (__v16sf) __B,
    6016              :                         (__v16sf) __W,
    6017              :                         (__mmask16) __U, __R);
    6018              : }
    6019              : 
    6020              : extern __inline __m512
    6021              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6022              : _mm512_maskz_sub_round_ps (__mmask16 __U, __m512 __A, __m512 __B, const int __R)
    6023              : {
    6024              :   return (__m512) __builtin_ia32_subps512_mask ((__v16sf) __A,
    6025              :                         (__v16sf) __B,
    6026              :                         (__v16sf)
    6027              :                         _mm512_setzero_ps (),
    6028              :                         (__mmask16) __U, __R);
    6029              : }
    6030              : #else
    6031              : #define _mm512_add_round_pd(A, B, C)            \
    6032              :     (__m512d)__builtin_ia32_addpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C)
    6033              : 
    6034              : #define _mm512_mask_add_round_pd(W, U, A, B, C) \
    6035              :     (__m512d)__builtin_ia32_addpd512_mask(A, B, W, U, C)
    6036              : 
    6037              : #define _mm512_maskz_add_round_pd(U, A, B, C)   \
    6038              :     (__m512d)__builtin_ia32_addpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
    6039              : 
    6040              : #define _mm512_add_round_ps(A, B, C)            \
    6041              :     (__m512)__builtin_ia32_addps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C)
    6042              : 
    6043              : #define _mm512_mask_add_round_ps(W, U, A, B, C) \
    6044              :     (__m512)__builtin_ia32_addps512_mask(A, B, W, U, C)
    6045              : 
    6046              : #define _mm512_maskz_add_round_ps(U, A, B, C)   \
    6047              :     (__m512)__builtin_ia32_addps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
    6048              : 
    6049              : #define _mm512_sub_round_pd(A, B, C)            \
    6050              :     (__m512d)__builtin_ia32_subpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C)
    6051              : 
    6052              : #define _mm512_mask_sub_round_pd(W, U, A, B, C) \
    6053              :     (__m512d)__builtin_ia32_subpd512_mask(A, B, W, U, C)
    6054              : 
    6055              : #define _mm512_maskz_sub_round_pd(U, A, B, C)   \
    6056              :     (__m512d)__builtin_ia32_subpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
    6057              : 
    6058              : #define _mm512_sub_round_ps(A, B, C)            \
    6059              :     (__m512)__builtin_ia32_subps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C)
    6060              : 
    6061              : #define _mm512_mask_sub_round_ps(W, U, A, B, C) \
    6062              :     (__m512)__builtin_ia32_subps512_mask(A, B, W, U, C)
    6063              : 
    6064              : #define _mm512_maskz_sub_round_ps(U, A, B, C)   \
    6065              :     (__m512)__builtin_ia32_subps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
    6066              : #endif
    6067              : 
    6068              : #ifdef __OPTIMIZE__
    6069              : extern __inline __m512d
    6070              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6071              : _mm512_mul_round_pd (__m512d __A, __m512d __B, const int __R)
    6072              : {
    6073              :   return (__m512d) __builtin_ia32_mulpd512_mask ((__v8df) __A,
    6074              :                          (__v8df) __B,
    6075              :                          (__v8df)
    6076              :                          _mm512_undefined_pd (),
    6077              :                          (__mmask8) -1, __R);
    6078              : }
    6079              : 
    6080              : extern __inline __m512d
    6081              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6082              : _mm512_mask_mul_round_pd (__m512d __W, __mmask8 __U, __m512d __A,
    6083              :               __m512d __B, const int __R)
    6084              : {
    6085              :   return (__m512d) __builtin_ia32_mulpd512_mask ((__v8df) __A,
    6086              :                          (__v8df) __B,
    6087              :                          (__v8df) __W,
    6088              :                          (__mmask8) __U, __R);
    6089              : }
    6090              : 
    6091              : extern __inline __m512d
    6092              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6093              : _mm512_maskz_mul_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
    6094              :                const int __R)
    6095              : {
    6096              :   return (__m512d) __builtin_ia32_mulpd512_mask ((__v8df) __A,
    6097              :                          (__v8df) __B,
    6098              :                          (__v8df)
    6099              :                          _mm512_setzero_pd (),
    6100              :                          (__mmask8) __U, __R);
    6101              : }
    6102              : 
    6103              : extern __inline __m512
    6104              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6105              : _mm512_mul_round_ps (__m512 __A, __m512 __B, const int __R)
    6106              : {
    6107              :   return (__m512) __builtin_ia32_mulps512_mask ((__v16sf) __A,
    6108              :                         (__v16sf) __B,
    6109              :                         (__v16sf)
    6110              :                         _mm512_undefined_ps (),
    6111              :                         (__mmask16) -1, __R);
    6112              : }
    6113              : 
    6114              : extern __inline __m512
    6115              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6116              : _mm512_mask_mul_round_ps (__m512 __W, __mmask16 __U, __m512 __A,
    6117              :               __m512 __B, const int __R)
    6118              : {
    6119              :   return (__m512) __builtin_ia32_mulps512_mask ((__v16sf) __A,
    6120              :                         (__v16sf) __B,
    6121              :                         (__v16sf) __W,
    6122              :                         (__mmask16) __U, __R);
    6123              : }
    6124              : 
    6125              : extern __inline __m512
    6126              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6127              : _mm512_maskz_mul_round_ps (__mmask16 __U, __m512 __A, __m512 __B, const int __R)
    6128              : {
    6129              :   return (__m512) __builtin_ia32_mulps512_mask ((__v16sf) __A,
    6130              :                         (__v16sf) __B,
    6131              :                         (__v16sf)
    6132              :                         _mm512_setzero_ps (),
    6133              :                         (__mmask16) __U, __R);
    6134              : }
    6135              : 
    6136              : extern __inline __m512d
    6137              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6138              : _mm512_div_round_pd (__m512d __M, __m512d __V, const int __R)
    6139              : {
    6140              :   return (__m512d) __builtin_ia32_divpd512_mask ((__v8df) __M,
    6141              :                          (__v8df) __V,
    6142              :                          (__v8df)
    6143              :                          _mm512_undefined_pd (),
    6144              :                          (__mmask8) -1, __R);
    6145              : }
    6146              : 
    6147              : extern __inline __m512d
    6148              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6149              : _mm512_mask_div_round_pd (__m512d __W, __mmask8 __U, __m512d __M,
    6150              :               __m512d __V, const int __R)
    6151              : {
    6152              :   return (__m512d) __builtin_ia32_divpd512_mask ((__v8df) __M,
    6153              :                          (__v8df) __V,
    6154              :                          (__v8df) __W,
    6155              :                          (__mmask8) __U, __R);
    6156              : }
    6157              : 
    6158              : extern __inline __m512d
    6159              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6160              : _mm512_maskz_div_round_pd (__mmask8 __U, __m512d __M, __m512d __V,
    6161              :                const int __R)
    6162              : {
    6163              :   return (__m512d) __builtin_ia32_divpd512_mask ((__v8df) __M,
    6164              :                          (__v8df) __V,
    6165              :                          (__v8df)
    6166              :                          _mm512_setzero_pd (),
    6167              :                          (__mmask8) __U, __R);
    6168              : }
    6169              : 
    6170              : extern __inline __m512
    6171              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6172              : _mm512_div_round_ps (__m512 __A, __m512 __B, const int __R)
    6173              : {
    6174              :   return (__m512) __builtin_ia32_divps512_mask ((__v16sf) __A,
    6175              :                         (__v16sf) __B,
    6176              :                         (__v16sf)
    6177              :                         _mm512_undefined_ps (),
    6178              :                         (__mmask16) -1, __R);
    6179              : }
    6180              : 
    6181              : extern __inline __m512
    6182              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6183              : _mm512_mask_div_round_ps (__m512 __W, __mmask16 __U, __m512 __A,
    6184              :               __m512 __B, const int __R)
    6185              : {
    6186              :   return (__m512) __builtin_ia32_divps512_mask ((__v16sf) __A,
    6187              :                         (__v16sf) __B,
    6188              :                         (__v16sf) __W,
    6189              :                         (__mmask16) __U, __R);
    6190              : }
    6191              : 
    6192              : extern __inline __m512
    6193              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6194              : _mm512_maskz_div_round_ps (__mmask16 __U, __m512 __A, __m512 __B, const int __R)
    6195              : {
    6196              :   return (__m512) __builtin_ia32_divps512_mask ((__v16sf) __A,
    6197              :                         (__v16sf) __B,
    6198              :                         (__v16sf)
    6199              :                         _mm512_setzero_ps (),
    6200              :                         (__mmask16) __U, __R);
    6201              : }
    6202              : 
    6203              : #else
    6204              : #define _mm512_mul_round_pd(A, B, C)            \
    6205              :     (__m512d)__builtin_ia32_mulpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C)
    6206              : 
    6207              : #define _mm512_mask_mul_round_pd(W, U, A, B, C) \
    6208              :     (__m512d)__builtin_ia32_mulpd512_mask(A, B, W, U, C)
    6209              : 
    6210              : #define _mm512_maskz_mul_round_pd(U, A, B, C)   \
    6211              :     (__m512d)__builtin_ia32_mulpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
    6212              : 
    6213              : #define _mm512_mul_round_ps(A, B, C)            \
    6214              :     (__m512)__builtin_ia32_mulps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C)
    6215              : 
    6216              : #define _mm512_mask_mul_round_ps(W, U, A, B, C) \
    6217              :     (__m512)__builtin_ia32_mulps512_mask(A, B, W, U, C)
    6218              : 
    6219              : #define _mm512_maskz_mul_round_ps(U, A, B, C)   \
    6220              :     (__m512)__builtin_ia32_mulps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
    6221              : 
    6222              : #define _mm512_div_round_pd(A, B, C)            \
    6223              :     (__m512d)__builtin_ia32_divpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C)
    6224              : 
    6225              : #define _mm512_mask_div_round_pd(W, U, A, B, C) \
    6226              :     (__m512d)__builtin_ia32_divpd512_mask(A, B, W, U, C)
    6227              : 
    6228              : #define _mm512_maskz_div_round_pd(U, A, B, C)   \
    6229              :     (__m512d)__builtin_ia32_divpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
    6230              : 
    6231              : #define _mm512_div_round_ps(A, B, C)            \
    6232              :     (__m512)__builtin_ia32_divps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C)
    6233              : 
    6234              : #define _mm512_mask_div_round_ps(W, U, A, B, C) \
    6235              :     (__m512)__builtin_ia32_divps512_mask(A, B, W, U, C)
    6236              : 
    6237              : #define _mm512_maskz_div_round_ps(U, A, B, C)   \
    6238              :     (__m512)__builtin_ia32_divps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
    6239              : 
    6240              : #endif
    6241              : 
    6242              : #ifdef __OPTIMIZE__
    6243              : extern __inline __m512d
    6244              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6245              : _mm512_max_round_pd (__m512d __A, __m512d __B, const int __R)
    6246              : {
    6247              :   return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A,
    6248              :                          (__v8df) __B,
    6249              :                          (__v8df)
    6250              :                          _mm512_undefined_pd (),
    6251              :                          (__mmask8) -1, __R);
    6252              : }
    6253              : 
    6254              : extern __inline __m512d
    6255              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6256              : _mm512_mask_max_round_pd (__m512d __W, __mmask8 __U, __m512d __A,
    6257              :               __m512d __B, const int __R)
    6258              : {
    6259              :   return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A,
    6260              :                          (__v8df) __B,
    6261              :                          (__v8df) __W,
    6262              :                          (__mmask8) __U, __R);
    6263              : }
    6264              : 
    6265              : extern __inline __m512d
    6266              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6267              : _mm512_maskz_max_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
    6268              :                const int __R)
    6269              : {
    6270              :   return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A,
    6271              :                          (__v8df) __B,
    6272              :                          (__v8df)
    6273              :                          _mm512_setzero_pd (),
    6274              :                          (__mmask8) __U, __R);
    6275              : }
    6276              : 
    6277              : extern __inline __m512
    6278              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6279              : _mm512_max_round_ps (__m512 __A, __m512 __B, const int __R)
    6280              : {
    6281              :   return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A,
    6282              :                         (__v16sf) __B,
    6283              :                         (__v16sf)
    6284              :                         _mm512_undefined_ps (),
    6285              :                         (__mmask16) -1, __R);
    6286              : }
    6287              : 
    6288              : extern __inline __m512
    6289              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6290              : _mm512_mask_max_round_ps (__m512 __W, __mmask16 __U, __m512 __A,
    6291              :               __m512 __B, const int __R)
    6292              : {
    6293              :   return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A,
    6294              :                         (__v16sf) __B,
    6295              :                         (__v16sf) __W,
    6296              :                         (__mmask16) __U, __R);
    6297              : }
    6298              : 
    6299              : extern __inline __m512
    6300              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6301              : _mm512_maskz_max_round_ps (__mmask16 __U, __m512 __A, __m512 __B, const int __R)
    6302              : {
    6303              :   return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A,
    6304              :                         (__v16sf) __B,
    6305              :                         (__v16sf)
    6306              :                         _mm512_setzero_ps (),
    6307              :                         (__mmask16) __U, __R);
    6308              : }
    6309              : 
    6310              : extern __inline __m512d
    6311              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6312              : _mm512_min_round_pd (__m512d __A, __m512d __B, const int __R)
    6313              : {
    6314              :   return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A,
    6315              :                          (__v8df) __B,
    6316              :                          (__v8df)
    6317              :                          _mm512_undefined_pd (),
    6318              :                          (__mmask8) -1, __R);
    6319              : }
    6320              : 
    6321              : extern __inline __m512d
    6322              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6323              : _mm512_mask_min_round_pd (__m512d __W, __mmask8 __U, __m512d __A,
    6324              :               __m512d __B, const int __R)
    6325              : {
    6326              :   return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A,
    6327              :                          (__v8df) __B,
    6328              :                          (__v8df) __W,
    6329              :                          (__mmask8) __U, __R);
    6330              : }
    6331              : 
    6332              : extern __inline __m512d
    6333              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6334              : _mm512_maskz_min_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
    6335              :                const int __R)
    6336              : {
    6337              :   return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A,
    6338              :                          (__v8df) __B,
    6339              :                          (__v8df)
    6340              :                          _mm512_setzero_pd (),
    6341              :                          (__mmask8) __U, __R);
    6342              : }
    6343              : 
    6344              : extern __inline __m512
    6345              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6346              : _mm512_min_round_ps (__m512 __A, __m512 __B, const int __R)
    6347              : {
    6348              :   return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A,
    6349              :                         (__v16sf) __B,
    6350              :                         (__v16sf)
    6351              :                         _mm512_undefined_ps (),
    6352              :                         (__mmask16) -1, __R);
    6353              : }
    6354              : 
    6355              : extern __inline __m512
    6356              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6357              : _mm512_mask_min_round_ps (__m512 __W, __mmask16 __U, __m512 __A,
    6358              :               __m512 __B, const int __R)
    6359              : {
    6360              :   return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A,
    6361              :                         (__v16sf) __B,
    6362              :                         (__v16sf) __W,
    6363              :                         (__mmask16) __U, __R);
    6364              : }
    6365              : 
    6366              : extern __inline __m512
    6367              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6368              : _mm512_maskz_min_round_ps (__mmask16 __U, __m512 __A, __m512 __B, const int __R)
    6369              : {
    6370              :   return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A,
    6371              :                         (__v16sf) __B,
    6372              :                         (__v16sf)
    6373              :                         _mm512_setzero_ps (),
    6374              :                         (__mmask16) __U, __R);
    6375              : }
    6376              : #else
    6377              : #define _mm512_max_round_pd(A, B,  R) \
    6378              :     (__m512d)__builtin_ia32_maxpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, R)
    6379              : 
    6380              : #define _mm512_mask_max_round_pd(W, U,  A, B, R) \
    6381              :     (__m512d)__builtin_ia32_maxpd512_mask(A, B, W, U, R)
    6382              : 
    6383              : #define _mm512_maskz_max_round_pd(U, A,  B, R) \
    6384              :     (__m512d)__builtin_ia32_maxpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, R)
    6385              : 
    6386              : #define _mm512_max_round_ps(A, B,  R) \
    6387              :     (__m512)__builtin_ia32_maxps512_mask(A, B, (__v16sf)_mm512_undefined_pd(), -1, R)
    6388              : 
    6389              : #define _mm512_mask_max_round_ps(W, U,  A, B, R) \
    6390              :     (__m512)__builtin_ia32_maxps512_mask(A, B, W, U, R)
    6391              : 
    6392              : #define _mm512_maskz_max_round_ps(U, A,  B, R) \
    6393              :     (__m512)__builtin_ia32_maxps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, R)
    6394              : 
    6395              : #define _mm512_min_round_pd(A, B,  R) \
    6396              :     (__m512d)__builtin_ia32_minpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, R)
    6397              : 
    6398              : #define _mm512_mask_min_round_pd(W, U,  A, B, R) \
    6399              :     (__m512d)__builtin_ia32_minpd512_mask(A, B, W, U, R)
    6400              : 
    6401              : #define _mm512_maskz_min_round_pd(U, A,  B, R) \
    6402              :     (__m512d)__builtin_ia32_minpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, R)
    6403              : 
    6404              : #define _mm512_min_round_ps(A, B, R) \
    6405              :     (__m512)__builtin_ia32_minps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, R)
    6406              : 
    6407              : #define _mm512_mask_min_round_ps(W, U,  A, B, R) \
    6408              :     (__m512)__builtin_ia32_minps512_mask(A, B, W, U, R)
    6409              : 
    6410              : #define _mm512_maskz_min_round_ps(U, A,  B, R) \
    6411              :     (__m512)__builtin_ia32_minps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, R)
    6412              : #endif
    6413              : 
    6414              : #ifdef __OPTIMIZE__
    6415              : extern __inline __m512d
    6416              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6417              : _mm512_scalef_round_pd (__m512d __A, __m512d __B, const int __R)
    6418              : {
    6419              :   return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,
    6420              :                             (__v8df) __B,
    6421              :                             (__v8df)
    6422              :                             _mm512_undefined_pd (),
    6423              :                             (__mmask8) -1, __R);
    6424              : }
    6425              : 
    6426              : extern __inline __m512d
    6427              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6428              : _mm512_mask_scalef_round_pd (__m512d __W, __mmask8 __U, __m512d __A,
    6429              :                  __m512d __B, const int __R)
    6430              : {
    6431              :   return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,
    6432              :                             (__v8df) __B,
    6433              :                             (__v8df) __W,
    6434              :                             (__mmask8) __U, __R);
    6435              : }
    6436              : 
    6437              : extern __inline __m512d
    6438              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6439              : _mm512_maskz_scalef_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
    6440              :                   const int __R)
    6441              : {
    6442              :   return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,
    6443              :                             (__v8df) __B,
    6444              :                             (__v8df)
    6445              :                             _mm512_setzero_pd (),
    6446              :                             (__mmask8) __U, __R);
    6447              : }
    6448              : 
    6449              : extern __inline __m512
    6450              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6451              : _mm512_scalef_round_ps (__m512 __A, __m512 __B, const int __R)
    6452              : {
    6453              :   return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,
    6454              :                            (__v16sf) __B,
    6455              :                            (__v16sf)
    6456              :                            _mm512_undefined_ps (),
    6457              :                            (__mmask16) -1, __R);
    6458              : }
    6459              : 
    6460              : extern __inline __m512
    6461              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6462              : _mm512_mask_scalef_round_ps (__m512 __W, __mmask16 __U, __m512 __A,
    6463              :                  __m512 __B, const int __R)
    6464              : {
    6465              :   return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,
    6466              :                            (__v16sf) __B,
    6467              :                            (__v16sf) __W,
    6468              :                            (__mmask16) __U, __R);
    6469              : }
    6470              : 
    6471              : extern __inline __m512
    6472              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6473              : _mm512_maskz_scalef_round_ps (__mmask16 __U, __m512 __A, __m512 __B,
    6474              :                   const int __R)
    6475              : {
    6476              :   return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,
    6477              :                            (__v16sf) __B,
    6478              :                            (__v16sf)
    6479              :                            _mm512_setzero_ps (),
    6480              :                            (__mmask16) __U, __R);
    6481              : }
    6482              : 
    6483              : #else
    6484              : #define _mm512_scalef_round_pd(A, B, C)                 \
    6485              :   ((__m512d)                                \
    6486              :    __builtin_ia32_scalefpd512_mask((A), (B),                \
    6487              :                    (__v8df) _mm512_undefined_pd(),  \
    6488              :                    -1, (C)))
    6489              : 
    6490              : #define _mm512_mask_scalef_round_pd(W, U, A, B, C)          \
    6491              :   ((__m512d) __builtin_ia32_scalefpd512_mask((A), (B), (W), (U), (C)))
    6492              : 
    6493              : #define _mm512_maskz_scalef_round_pd(U, A, B, C)            \
    6494              :   ((__m512d)                                \
    6495              :    __builtin_ia32_scalefpd512_mask((A), (B),                \
    6496              :                    (__v8df) _mm512_setzero_pd(),    \
    6497              :                    (U), (C)))
    6498              : 
    6499              : #define _mm512_scalef_round_ps(A, B, C)                 \
    6500              :   ((__m512)                             \
    6501              :    __builtin_ia32_scalefps512_mask((A), (B),                \
    6502              :                    (__v16sf) _mm512_undefined_ps(), \
    6503              :                    -1, (C)))
    6504              : 
    6505              : #define _mm512_mask_scalef_round_ps(W, U, A, B, C)          \
    6506              :   ((__m512) __builtin_ia32_scalefps512_mask((A), (B), (W), (U), (C)))
    6507              : 
    6508              : #define _mm512_maskz_scalef_round_ps(U, A, B, C)            \
    6509              :   ((__m512)                             \
    6510              :    __builtin_ia32_scalefps512_mask((A), (B),                \
    6511              :                    (__v16sf) _mm512_setzero_ps(),   \
    6512              :                    (U), (C)))
    6513              : 
    6514              : #endif
    6515              : 
    6516              : #ifdef __OPTIMIZE__
    6517              : extern __inline __m512d
    6518              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6519              : _mm512_fmadd_round_pd (__m512d __A, __m512d __B, __m512d __C, const int __R)
    6520              : {
    6521              :   return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A,
    6522              :                             (__v8df) __B,
    6523              :                             (__v8df) __C,
    6524              :                             (__mmask8) -1, __R);
    6525              : }
    6526              : 
    6527              : extern __inline __m512d
    6528              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6529              : _mm512_mask_fmadd_round_pd (__m512d __A, __mmask8 __U, __m512d __B,
    6530              :                 __m512d __C, const int __R)
    6531              : {
    6532              :   return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A,
    6533              :                             (__v8df) __B,
    6534              :                             (__v8df) __C,
    6535              :                             (__mmask8) __U, __R);
    6536              : }
    6537              : 
    6538              : extern __inline __m512d
    6539              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6540              : _mm512_mask3_fmadd_round_pd (__m512d __A, __m512d __B, __m512d __C,
    6541              :                  __mmask8 __U, const int __R)
    6542              : {
    6543              :   return (__m512d) __builtin_ia32_vfmaddpd512_mask3 ((__v8df) __A,
    6544              :                              (__v8df) __B,
    6545              :                              (__v8df) __C,
    6546              :                              (__mmask8) __U, __R);
    6547              : }
    6548              : 
    6549              : extern __inline __m512d
    6550              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6551              : _mm512_maskz_fmadd_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
    6552              :                  __m512d __C, const int __R)
    6553              : {
    6554              :   return (__m512d) __builtin_ia32_vfmaddpd512_maskz ((__v8df) __A,
    6555              :                              (__v8df) __B,
    6556              :                              (__v8df) __C,
    6557              :                              (__mmask8) __U, __R);
    6558              : }
    6559              : 
    6560              : extern __inline __m512
    6561              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6562              : _mm512_fmadd_round_ps (__m512 __A, __m512 __B, __m512 __C, const int __R)
    6563              : {
    6564              :   return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A,
    6565              :                            (__v16sf) __B,
    6566              :                            (__v16sf) __C,
    6567              :                            (__mmask16) -1, __R);
    6568              : }
    6569              : 
    6570              : extern __inline __m512
    6571              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6572              : _mm512_mask_fmadd_round_ps (__m512 __A, __mmask16 __U, __m512 __B,
    6573              :                 __m512 __C, const int __R)
    6574              : {
    6575              :   return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A,
    6576              :                            (__v16sf) __B,
    6577              :                            (__v16sf) __C,
    6578              :                            (__mmask16) __U, __R);
    6579              : }
    6580              : 
    6581              : extern __inline __m512
    6582              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6583              : _mm512_mask3_fmadd_round_ps (__m512 __A, __m512 __B, __m512 __C,
    6584              :                  __mmask16 __U, const int __R)
    6585              : {
    6586              :   return (__m512) __builtin_ia32_vfmaddps512_mask3 ((__v16sf) __A,
    6587              :                             (__v16sf) __B,
    6588              :                             (__v16sf) __C,
    6589              :                             (__mmask16) __U, __R);
    6590              : }
    6591              : 
    6592              : extern __inline __m512
    6593              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6594              : _mm512_maskz_fmadd_round_ps (__mmask16 __U, __m512 __A, __m512 __B,
    6595              :                  __m512 __C, const int __R)
    6596              : {
    6597              :   return (__m512) __builtin_ia32_vfmaddps512_maskz ((__v16sf) __A,
    6598              :                             (__v16sf) __B,
    6599              :                             (__v16sf) __C,
    6600              :                             (__mmask16) __U, __R);
    6601              : }
    6602              : 
    6603              : extern __inline __m512d
    6604              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6605              : _mm512_fmsub_round_pd (__m512d __A, __m512d __B, __m512d __C, const int __R)
    6606              : {
    6607              :   return (__m512d) __builtin_ia32_vfmsubpd512_mask ((__v8df) __A,
    6608              :                             (__v8df) __B,
    6609              :                             (__v8df) __C,
    6610              :                             (__mmask8) -1, __R);
    6611              : }
    6612              : 
    6613              : extern __inline __m512d
    6614              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6615              : _mm512_mask_fmsub_round_pd (__m512d __A, __mmask8 __U, __m512d __B,
    6616              :                 __m512d __C, const int __R)
    6617              : {
    6618              :   return (__m512d) __builtin_ia32_vfmsubpd512_mask ((__v8df) __A,
    6619              :                             (__v8df) __B,
    6620              :                             (__v8df) __C,
    6621              :                             (__mmask8) __U, __R);
    6622              : }
    6623              : 
    6624              : extern __inline __m512d
    6625              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6626              : _mm512_mask3_fmsub_round_pd (__m512d __A, __m512d __B, __m512d __C,
    6627              :                  __mmask8 __U, const int __R)
    6628              : {
    6629              :   return (__m512d) __builtin_ia32_vfmsubpd512_mask3 ((__v8df) __A,
    6630              :                              (__v8df) __B,
    6631              :                              (__v8df) __C,
    6632              :                              (__mmask8) __U, __R);
    6633              : }
    6634              : 
    6635              : extern __inline __m512d
    6636              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6637              : _mm512_maskz_fmsub_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
    6638              :                  __m512d __C, const int __R)
    6639              : {
    6640              :   return (__m512d) __builtin_ia32_vfmsubpd512_maskz ((__v8df) __A,
    6641              :                              (__v8df) __B,
    6642              :                              (__v8df) __C,
    6643              :                              (__mmask8) __U, __R);
    6644              : }
    6645              : 
    6646              : extern __inline __m512
    6647              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6648              : _mm512_fmsub_round_ps (__m512 __A, __m512 __B, __m512 __C, const int __R)
    6649              : {
    6650              :   return (__m512) __builtin_ia32_vfmsubps512_mask ((__v16sf) __A,
    6651              :                            (__v16sf) __B,
    6652              :                            (__v16sf) __C,
    6653              :                            (__mmask16) -1, __R);
    6654              : }
    6655              : 
    6656              : extern __inline __m512
    6657              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6658              : _mm512_mask_fmsub_round_ps (__m512 __A, __mmask16 __U, __m512 __B,
    6659              :                 __m512 __C, const int __R)
    6660              : {
    6661              :   return (__m512) __builtin_ia32_vfmsubps512_mask ((__v16sf) __A,
    6662              :                            (__v16sf) __B,
    6663              :                            (__v16sf) __C,
    6664              :                            (__mmask16) __U, __R);
    6665              : }
    6666              : 
    6667              : extern __inline __m512
    6668              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6669              : _mm512_mask3_fmsub_round_ps (__m512 __A, __m512 __B, __m512 __C,
    6670              :                  __mmask16 __U, const int __R)
    6671              : {
    6672              :   return (__m512) __builtin_ia32_vfmsubps512_mask3 ((__v16sf) __A,
    6673              :                             (__v16sf) __B,
    6674              :                             (__v16sf) __C,
    6675              :                             (__mmask16) __U, __R);
    6676              : }
    6677              : 
    6678              : extern __inline __m512
    6679              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6680              : _mm512_maskz_fmsub_round_ps (__mmask16 __U, __m512 __A, __m512 __B,
    6681              :                  __m512 __C, const int __R)
    6682              : {
    6683              :   return (__m512) __builtin_ia32_vfmsubps512_maskz ((__v16sf) __A,
    6684              :                             (__v16sf) __B,
    6685              :                             (__v16sf) __C,
    6686              :                             (__mmask16) __U, __R);
    6687              : }
    6688              : 
    6689              : extern __inline __m512d
    6690              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6691              : _mm512_fmaddsub_round_pd (__m512d __A, __m512d __B, __m512d __C, const int __R)
    6692              : {
    6693              :   return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
    6694              :                                (__v8df) __B,
    6695              :                                (__v8df) __C,
    6696              :                                (__mmask8) -1, __R);
    6697              : }
    6698              : 
    6699              : extern __inline __m512d
    6700              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6701              : _mm512_mask_fmaddsub_round_pd (__m512d __A, __mmask8 __U, __m512d __B,
    6702              :                    __m512d __C, const int __R)
    6703              : {
    6704              :   return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
    6705              :                                (__v8df) __B,
    6706              :                                (__v8df) __C,
    6707              :                                (__mmask8) __U, __R);
    6708              : }
    6709              : 
    6710              : extern __inline __m512d
    6711              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6712              : _mm512_mask3_fmaddsub_round_pd (__m512d __A, __m512d __B, __m512d __C,
    6713              :                 __mmask8 __U, const int __R)
    6714              : {
    6715              :   return (__m512d) __builtin_ia32_vfmaddsubpd512_mask3 ((__v8df) __A,
    6716              :                             (__v8df) __B,
    6717              :                             (__v8df) __C,
    6718              :                             (__mmask8) __U, __R);
    6719              : }
    6720              : 
    6721              : extern __inline __m512d
    6722              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6723              : _mm512_maskz_fmaddsub_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
    6724              :                 __m512d __C, const int __R)
    6725              : {
    6726              :   return (__m512d) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df) __A,
    6727              :                             (__v8df) __B,
    6728              :                             (__v8df) __C,
    6729              :                             (__mmask8) __U, __R);
    6730              : }
    6731              : 
    6732              : extern __inline __m512
    6733              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6734              : _mm512_fmaddsub_round_ps (__m512 __A, __m512 __B, __m512 __C, const int __R)
    6735              : {
    6736              :   return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
    6737              :                               (__v16sf) __B,
    6738              :                               (__v16sf) __C,
    6739              :                               (__mmask16) -1, __R);
    6740              : }
    6741              : 
    6742              : extern __inline __m512
    6743              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6744              : _mm512_mask_fmaddsub_round_ps (__m512 __A, __mmask16 __U, __m512 __B,
    6745              :                    __m512 __C, const int __R)
    6746              : {
    6747              :   return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
    6748              :                               (__v16sf) __B,
    6749              :                               (__v16sf) __C,
    6750              :                               (__mmask16) __U, __R);
    6751              : }
    6752              : 
    6753              : extern __inline __m512
    6754              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6755              : _mm512_mask3_fmaddsub_round_ps (__m512 __A, __m512 __B, __m512 __C,
    6756              :                 __mmask16 __U, const int __R)
    6757              : {
    6758              :   return (__m512) __builtin_ia32_vfmaddsubps512_mask3 ((__v16sf) __A,
    6759              :                                (__v16sf) __B,
    6760              :                                (__v16sf) __C,
    6761              :                                (__mmask16) __U, __R);
    6762              : }
    6763              : 
    6764              : extern __inline __m512
    6765              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6766              : _mm512_maskz_fmaddsub_round_ps (__mmask16 __U, __m512 __A, __m512 __B,
    6767              :                 __m512 __C, const int __R)
    6768              : {
    6769              :   return (__m512) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf) __A,
    6770              :                                (__v16sf) __B,
    6771              :                                (__v16sf) __C,
    6772              :                                (__mmask16) __U, __R);
    6773              : }
    6774              : 
    6775              : extern __inline __m512d
    6776              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6777              : _mm512_fmsubadd_round_pd (__m512d __A, __m512d __B, __m512d __C, const int __R)
    6778              : {
    6779              :   return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
    6780              :                                (__v8df) __B,
    6781              :                                -(__v8df) __C,
    6782              :                                (__mmask8) -1, __R);
    6783              : }
    6784              : 
    6785              : extern __inline __m512d
    6786              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6787              : _mm512_mask_fmsubadd_round_pd (__m512d __A, __mmask8 __U, __m512d __B,
    6788              :                    __m512d __C, const int __R)
    6789              : {
    6790              :   return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
    6791              :                                (__v8df) __B,
    6792              :                                -(__v8df) __C,
    6793              :                                (__mmask8) __U, __R);
    6794              : }
    6795              : 
    6796              : extern __inline __m512d
    6797              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6798              : _mm512_mask3_fmsubadd_round_pd (__m512d __A, __m512d __B, __m512d __C,
    6799              :                 __mmask8 __U, const int __R)
    6800              : {
    6801              :   return (__m512d) __builtin_ia32_vfmsubaddpd512_mask3 ((__v8df) __A,
    6802              :                             (__v8df) __B,
    6803              :                             (__v8df) __C,
    6804              :                             (__mmask8) __U, __R);
    6805              : }
    6806              : 
    6807              : extern __inline __m512d
    6808              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6809              : _mm512_maskz_fmsubadd_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
    6810              :                 __m512d __C, const int __R)
    6811              : {
    6812              :   return (__m512d) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df) __A,
    6813              :                             (__v8df) __B,
    6814              :                             -(__v8df) __C,
    6815              :                             (__mmask8) __U, __R);
    6816              : }
    6817              : 
    6818              : extern __inline __m512
    6819              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6820              : _mm512_fmsubadd_round_ps (__m512 __A, __m512 __B, __m512 __C, const int __R)
    6821              : {
    6822              :   return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
    6823              :                               (__v16sf) __B,
    6824              :                               -(__v16sf) __C,
    6825              :                               (__mmask16) -1, __R);
    6826              : }
    6827              : 
    6828              : extern __inline __m512
    6829              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6830              : _mm512_mask_fmsubadd_round_ps (__m512 __A, __mmask16 __U, __m512 __B,
    6831              :                    __m512 __C, const int __R)
    6832              : {
    6833              :   return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
    6834              :                               (__v16sf) __B,
    6835              :                               -(__v16sf) __C,
    6836              :                               (__mmask16) __U, __R);
    6837              : }
    6838              : 
    6839              : extern __inline __m512
    6840              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6841              : _mm512_mask3_fmsubadd_round_ps (__m512 __A, __m512 __B, __m512 __C,
    6842              :                 __mmask16 __U, const int __R)
    6843              : {
    6844              :   return (__m512) __builtin_ia32_vfmsubaddps512_mask3 ((__v16sf) __A,
    6845              :                                (__v16sf) __B,
    6846              :                                (__v16sf) __C,
    6847              :                                (__mmask16) __U, __R);
    6848              : }
    6849              : 
    6850              : extern __inline __m512
    6851              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6852              : _mm512_maskz_fmsubadd_round_ps (__mmask16 __U, __m512 __A, __m512 __B,
    6853              :                 __m512 __C, const int __R)
    6854              : {
    6855              :   return (__m512) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf) __A,
    6856              :                                (__v16sf) __B,
    6857              :                                -(__v16sf) __C,
    6858              :                                (__mmask16) __U, __R);
    6859              : }
    6860              : 
    6861              : extern __inline __m512d
    6862              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6863              : _mm512_fnmadd_round_pd (__m512d __A, __m512d __B, __m512d __C, const int __R)
    6864              : {
    6865              :   return (__m512d) __builtin_ia32_vfnmaddpd512_mask ((__v8df) __A,
    6866              :                              (__v8df) __B,
    6867              :                              (__v8df) __C,
    6868              :                              (__mmask8) -1, __R);
    6869              : }
    6870              : 
    6871              : extern __inline __m512d
    6872              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6873              : _mm512_mask_fnmadd_round_pd (__m512d __A, __mmask8 __U, __m512d __B,
    6874              :                  __m512d __C, const int __R)
    6875              : {
    6876              :   return (__m512d) __builtin_ia32_vfnmaddpd512_mask ((__v8df) __A,
    6877              :                              (__v8df) __B,
    6878              :                              (__v8df) __C,
    6879              :                              (__mmask8) __U, __R);
    6880              : }
    6881              : 
    6882              : extern __inline __m512d
    6883              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6884              : _mm512_mask3_fnmadd_round_pd (__m512d __A, __m512d __B, __m512d __C,
    6885              :                   __mmask8 __U, const int __R)
    6886              : {
    6887              :   return (__m512d) __builtin_ia32_vfnmaddpd512_mask3 ((__v8df) __A,
    6888              :                               (__v8df) __B,
    6889              :                               (__v8df) __C,
    6890              :                               (__mmask8) __U, __R);
    6891              : }
    6892              : 
    6893              : extern __inline __m512d
    6894              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6895              : _mm512_maskz_fnmadd_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
    6896              :                   __m512d __C, const int __R)
    6897              : {
    6898              :   return (__m512d) __builtin_ia32_vfnmaddpd512_maskz ((__v8df) __A,
    6899              :                               (__v8df) __B,
    6900              :                               (__v8df) __C,
    6901              :                               (__mmask8) __U, __R);
    6902              : }
    6903              : 
    6904              : extern __inline __m512
    6905              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6906              : _mm512_fnmadd_round_ps (__m512 __A, __m512 __B, __m512 __C, const int __R)
    6907              : {
    6908              :   return (__m512) __builtin_ia32_vfnmaddps512_mask ((__v16sf) __A,
    6909              :                             (__v16sf) __B,
    6910              :                             (__v16sf) __C,
    6911              :                             (__mmask16) -1, __R);
    6912              : }
    6913              : 
    6914              : extern __inline __m512
    6915              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6916              : _mm512_mask_fnmadd_round_ps (__m512 __A, __mmask16 __U, __m512 __B,
    6917              :                  __m512 __C, const int __R)
    6918              : {
    6919              :   return (__m512) __builtin_ia32_vfnmaddps512_mask ((__v16sf) __A,
    6920              :                             (__v16sf) __B,
    6921              :                             (__v16sf) __C,
    6922              :                             (__mmask16) __U, __R);
    6923              : }
    6924              : 
    6925              : extern __inline __m512
    6926              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6927              : _mm512_mask3_fnmadd_round_ps (__m512 __A, __m512 __B, __m512 __C,
    6928              :                   __mmask16 __U, const int __R)
    6929              : {
    6930              :   return (__m512) __builtin_ia32_vfnmaddps512_mask3 ((__v16sf) __A,
    6931              :                              (__v16sf) __B,
    6932              :                              (__v16sf) __C,
    6933              :                              (__mmask16) __U, __R);
    6934              : }
    6935              : 
    6936              : extern __inline __m512
    6937              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6938              : _mm512_maskz_fnmadd_round_ps (__mmask16 __U, __m512 __A, __m512 __B,
    6939              :                   __m512 __C, const int __R)
    6940              : {
    6941              :   return (__m512) __builtin_ia32_vfnmaddps512_maskz ((__v16sf) __A,
    6942              :                              (__v16sf) __B,
    6943              :                              (__v16sf) __C,
    6944              :                              (__mmask16) __U, __R);
    6945              : }
    6946              : 
    6947              : extern __inline __m512d
    6948              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6949              : _mm512_fnmsub_round_pd (__m512d __A, __m512d __B, __m512d __C, const int __R)
    6950              : {
    6951              :   return (__m512d) __builtin_ia32_vfnmsubpd512_mask ((__v8df) __A,
    6952              :                              (__v8df) __B,
    6953              :                              (__v8df) __C,
    6954              :                              (__mmask8) -1, __R);
    6955              : }
    6956              : 
    6957              : extern __inline __m512d
    6958              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6959              : _mm512_mask_fnmsub_round_pd (__m512d __A, __mmask8 __U, __m512d __B,
    6960              :                  __m512d __C, const int __R)
    6961              : {
    6962              :   return (__m512d) __builtin_ia32_vfnmsubpd512_mask ((__v8df) __A,
    6963              :                              (__v8df) __B,
    6964              :                              (__v8df) __C,
    6965              :                              (__mmask8) __U, __R);
    6966              : }
    6967              : 
    6968              : extern __inline __m512d
    6969              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6970              : _mm512_mask3_fnmsub_round_pd (__m512d __A, __m512d __B, __m512d __C,
    6971              :                   __mmask8 __U, const int __R)
    6972              : {
    6973              :   return (__m512d) __builtin_ia32_vfnmsubpd512_mask3 ((__v8df) __A,
    6974              :                               (__v8df) __B,
    6975              :                               (__v8df) __C,
    6976              :                               (__mmask8) __U, __R);
    6977              : }
    6978              : 
    6979              : extern __inline __m512d
    6980              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6981              : _mm512_maskz_fnmsub_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
    6982              :                   __m512d __C, const int __R)
    6983              : {
    6984              :   return (__m512d) __builtin_ia32_vfnmsubpd512_maskz ((__v8df) __A,
    6985              :                               (__v8df) __B,
    6986              :                               (__v8df) __C,
    6987              :                               (__mmask8) __U, __R);
    6988              : }
    6989              : 
    6990              : extern __inline __m512
    6991              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    6992              : _mm512_fnmsub_round_ps (__m512 __A, __m512 __B, __m512 __C, const int __R)
    6993              : {
    6994              :   return (__m512) __builtin_ia32_vfnmsubps512_mask ((__v16sf) __A,
    6995              :                             (__v16sf) __B,
    6996              :                             (__v16sf) __C,
    6997              :                             (__mmask16) -1, __R);
    6998              : }
    6999              : 
    7000              : extern __inline __m512
    7001              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7002              : _mm512_mask_fnmsub_round_ps (__m512 __A, __mmask16 __U, __m512 __B,
    7003              :                  __m512 __C, const int __R)
    7004              : {
    7005              :   return (__m512) __builtin_ia32_vfnmsubps512_mask ((__v16sf) __A,
    7006              :                             (__v16sf) __B,
    7007              :                             (__v16sf) __C,
    7008              :                             (__mmask16) __U, __R);
    7009              : }
    7010              : 
    7011              : extern __inline __m512
    7012              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7013              : _mm512_mask3_fnmsub_round_ps (__m512 __A, __m512 __B, __m512 __C,
    7014              :                   __mmask16 __U, const int __R)
    7015              : {
    7016              :   return (__m512) __builtin_ia32_vfnmsubps512_mask3 ((__v16sf) __A,
    7017              :                              (__v16sf) __B,
    7018              :                              (__v16sf) __C,
    7019              :                              (__mmask16) __U, __R);
    7020              : }
    7021              : 
    7022              : extern __inline __m512
    7023              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7024              : _mm512_maskz_fnmsub_round_ps (__mmask16 __U, __m512 __A, __m512 __B,
    7025              :                   __m512 __C, const int __R)
    7026              : {
    7027              :   return (__m512) __builtin_ia32_vfnmsubps512_maskz ((__v16sf) __A,
    7028              :                              (__v16sf) __B,
    7029              :                              (__v16sf) __C,
    7030              :                              (__mmask16) __U, __R);
    7031              : }
    7032              : #else
    7033              : #define _mm512_fmadd_round_pd(A, B, C, R)            \
    7034              :     (__m512d)__builtin_ia32_vfmaddpd512_mask(A, B, C, -1, R)
    7035              : 
    7036              : #define _mm512_mask_fmadd_round_pd(A, U, B, C, R)    \
    7037              :     (__m512d)__builtin_ia32_vfmaddpd512_mask(A, B, C, U, R)
    7038              : 
    7039              : #define _mm512_mask3_fmadd_round_pd(A, B, C, U, R)   \
    7040              :     (__m512d)__builtin_ia32_vfmaddpd512_mask3(A, B, C, U, R)
    7041              : 
    7042              : #define _mm512_maskz_fmadd_round_pd(U, A, B, C, R)   \
    7043              :     (__m512d)__builtin_ia32_vfmaddpd512_maskz(A, B, C, U, R)
    7044              : 
    7045              : #define _mm512_fmadd_round_ps(A, B, C, R)            \
    7046              :     (__m512)__builtin_ia32_vfmaddps512_mask(A, B, C, -1, R)
    7047              : 
    7048              : #define _mm512_mask_fmadd_round_ps(A, U, B, C, R)    \
    7049              :     (__m512)__builtin_ia32_vfmaddps512_mask(A, B, C, U, R)
    7050              : 
    7051              : #define _mm512_mask3_fmadd_round_ps(A, B, C, U, R)   \
    7052              :     (__m512)__builtin_ia32_vfmaddps512_mask3(A, B, C, U, R)
    7053              : 
    7054              : #define _mm512_maskz_fmadd_round_ps(U, A, B, C, R)   \
    7055              :     (__m512)__builtin_ia32_vfmaddps512_maskz(A, B, C, U, R)
    7056              : 
    7057              : #define _mm512_fmsub_round_pd(A, B, C, R)            \
    7058              :     (__m512d)__builtin_ia32_vfmsubpd512_mask(A, B, C, -1, R)
    7059              : 
    7060              : #define _mm512_mask_fmsub_round_pd(A, U, B, C, R)    \
    7061              :     (__m512d)__builtin_ia32_vfmsubpd512_mask(A, B, C, U, R)
    7062              : 
    7063              : #define _mm512_mask3_fmsub_round_pd(A, B, C, U, R)   \
    7064              :     (__m512d)__builtin_ia32_vfmsubpd512_mask3(A, B, C, U, R)
    7065              : 
    7066              : #define _mm512_maskz_fmsub_round_pd(U, A, B, C, R)   \
    7067              :     (__m512d)__builtin_ia32_vfmsubpd512_maskz(A, B, C, U, R)
    7068              : 
    7069              : #define _mm512_fmsub_round_ps(A, B, C, R)            \
    7070              :     (__m512)__builtin_ia32_vfmsubps512_mask(A, B, C, -1, R)
    7071              : 
    7072              : #define _mm512_mask_fmsub_round_ps(A, U, B, C, R)    \
    7073              :     (__m512)__builtin_ia32_vfmsubps512_mask(A, B, C, U, R)
    7074              : 
    7075              : #define _mm512_mask3_fmsub_round_ps(A, B, C, U, R)   \
    7076              :     (__m512)__builtin_ia32_vfmsubps512_mask3(A, B, C, U, R)
    7077              : 
    7078              : #define _mm512_maskz_fmsub_round_ps(U, A, B, C, R)   \
    7079              :     (__m512)__builtin_ia32_vfmsubps512_maskz(A, B, C, U, R)
    7080              : 
    7081              : #define _mm512_fmaddsub_round_pd(A, B, C, R)            \
    7082              :     (__m512d)__builtin_ia32_vfmaddsubpd512_mask(A, B, C, -1, R)
    7083              : 
    7084              : #define _mm512_mask_fmaddsub_round_pd(A, U, B, C, R)    \
    7085              :     (__m512d)__builtin_ia32_vfmaddsubpd512_mask(A, B, C, U, R)
    7086              : 
    7087              : #define _mm512_mask3_fmaddsub_round_pd(A, B, C, U, R)   \
    7088              :     (__m512d)__builtin_ia32_vfmaddsubpd512_mask3(A, B, C, U, R)
    7089              : 
    7090              : #define _mm512_maskz_fmaddsub_round_pd(U, A, B, C, R)   \
    7091              :     (__m512d)__builtin_ia32_vfmaddsubpd512_maskz(A, B, C, U, R)
    7092              : 
    7093              : #define _mm512_fmaddsub_round_ps(A, B, C, R)            \
    7094              :     (__m512)__builtin_ia32_vfmaddsubps512_mask(A, B, C, -1, R)
    7095              : 
    7096              : #define _mm512_mask_fmaddsub_round_ps(A, U, B, C, R)    \
    7097              :     (__m512)__builtin_ia32_vfmaddsubps512_mask(A, B, C, U, R)
    7098              : 
    7099              : #define _mm512_mask3_fmaddsub_round_ps(A, B, C, U, R)   \
    7100              :     (__m512)__builtin_ia32_vfmaddsubps512_mask3(A, B, C, U, R)
    7101              : 
    7102              : #define _mm512_maskz_fmaddsub_round_ps(U, A, B, C, R)   \
    7103              :     (__m512)__builtin_ia32_vfmaddsubps512_maskz(A, B, C, U, R)
    7104              : 
    7105              : #define _mm512_fmsubadd_round_pd(A, B, C, R)            \
    7106              :     (__m512d)__builtin_ia32_vfmaddsubpd512_mask(A, B, -(C), -1, R)
    7107              : 
    7108              : #define _mm512_mask_fmsubadd_round_pd(A, U, B, C, R)    \
    7109              :     (__m512d)__builtin_ia32_vfmaddsubpd512_mask(A, B, -(C), U, R)
    7110              : 
    7111              : #define _mm512_mask3_fmsubadd_round_pd(A, B, C, U, R)   \
    7112              :     (__m512d)__builtin_ia32_vfmsubaddpd512_mask3(A, B, C, U, R)
    7113              : 
    7114              : #define _mm512_maskz_fmsubadd_round_pd(U, A, B, C, R)   \
    7115              :     (__m512d)__builtin_ia32_vfmaddsubpd512_maskz(A, B, -(C), U, R)
    7116              : 
    7117              : #define _mm512_fmsubadd_round_ps(A, B, C, R)            \
    7118              :     (__m512)__builtin_ia32_vfmaddsubps512_mask(A, B, -(C), -1, R)
    7119              : 
    7120              : #define _mm512_mask_fmsubadd_round_ps(A, U, B, C, R)    \
    7121              :     (__m512)__builtin_ia32_vfmaddsubps512_mask(A, B, -(C), U, R)
    7122              : 
    7123              : #define _mm512_mask3_fmsubadd_round_ps(A, B, C, U, R)   \
    7124              :     (__m512)__builtin_ia32_vfmsubaddps512_mask3(A, B, C, U, R)
    7125              : 
    7126              : #define _mm512_maskz_fmsubadd_round_ps(U, A, B, C, R)   \
    7127              :     (__m512)__builtin_ia32_vfmaddsubps512_maskz(A, B, -(C), U, R)
    7128              : 
    7129              : #define _mm512_fnmadd_round_pd(A, B, C, R)            \
    7130              :     (__m512d)__builtin_ia32_vfnmaddpd512_mask(A, B, C, -1, R)
    7131              : 
    7132              : #define _mm512_mask_fnmadd_round_pd(A, U, B, C, R)    \
    7133              :     (__m512d)__builtin_ia32_vfnmaddpd512_mask(A, B, C, U, R)
    7134              : 
    7135              : #define _mm512_mask3_fnmadd_round_pd(A, B, C, U, R)   \
    7136              :     (__m512d)__builtin_ia32_vfnmaddpd512_mask3(A, B, C, U, R)
    7137              : 
    7138              : #define _mm512_maskz_fnmadd_round_pd(U, A, B, C, R)   \
    7139              :     (__m512d)__builtin_ia32_vfnmaddpd512_maskz(A, B, C, U, R)
    7140              : 
    7141              : #define _mm512_fnmadd_round_ps(A, B, C, R)            \
    7142              :     (__m512)__builtin_ia32_vfnmaddps512_mask(A, B, C, -1, R)
    7143              : 
    7144              : #define _mm512_mask_fnmadd_round_ps(A, U, B, C, R)    \
    7145              :     (__m512)__builtin_ia32_vfnmaddps512_mask(A, B, C, U, R)
    7146              : 
    7147              : #define _mm512_mask3_fnmadd_round_ps(A, B, C, U, R)   \
    7148              :     (__m512)__builtin_ia32_vfnmaddps512_mask3(A, B, C, U, R)
    7149              : 
    7150              : #define _mm512_maskz_fnmadd_round_ps(U, A, B, C, R)   \
    7151              :     (__m512)__builtin_ia32_vfnmaddps512_maskz(A, B, C, U, R)
    7152              : 
    7153              : #define _mm512_fnmsub_round_pd(A, B, C, R)            \
    7154              :     (__m512d)__builtin_ia32_vfnmsubpd512_mask(A, B, C, -1, R)
    7155              : 
    7156              : #define _mm512_mask_fnmsub_round_pd(A, U, B, C, R)    \
    7157              :     (__m512d)__builtin_ia32_vfnmsubpd512_mask(A, B, C, U, R)
    7158              : 
    7159              : #define _mm512_mask3_fnmsub_round_pd(A, B, C, U, R)   \
    7160              :     (__m512d)__builtin_ia32_vfnmsubpd512_mask3(A, B, C, U, R)
    7161              : 
    7162              : #define _mm512_maskz_fnmsub_round_pd(U, A, B, C, R)   \
    7163              :     (__m512d)__builtin_ia32_vfnmsubpd512_maskz(A, B, C, U, R)
    7164              : 
    7165              : #define _mm512_fnmsub_round_ps(A, B, C, R)            \
    7166              :     (__m512)__builtin_ia32_vfnmsubps512_mask(A, B, C, -1, R)
    7167              : 
    7168              : #define _mm512_mask_fnmsub_round_ps(A, U, B, C, R)    \
    7169              :     (__m512)__builtin_ia32_vfnmsubps512_mask(A, B, C, U, R)
    7170              : 
    7171              : #define _mm512_mask3_fnmsub_round_ps(A, B, C, U, R)   \
    7172              :     (__m512)__builtin_ia32_vfnmsubps512_mask3(A, B, C, U, R)
    7173              : 
    7174              : #define _mm512_maskz_fnmsub_round_ps(U, A, B, C, R)   \
    7175              :     (__m512)__builtin_ia32_vfnmsubps512_maskz(A, B, C, U, R)
    7176              : #endif
    7177              : 
    7178              : extern __inline __m512i
    7179              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7180              : _mm512_abs_epi64 (__m512i __A)
    7181              : {
    7182              :   return (__m512i) __builtin_ia32_pabsq512_mask ((__v8di) __A,
    7183              :                          (__v8di)
    7184              :                          _mm512_undefined_epi32 (),
    7185              :                          (__mmask8) -1);
    7186              : }
    7187              : 
    7188              : extern __inline __m512i
    7189              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7190              : _mm512_mask_abs_epi64 (__m512i __W, __mmask8 __U, __m512i __A)
    7191              : {
    7192              :   return (__m512i) __builtin_ia32_pabsq512_mask ((__v8di) __A,
    7193              :                          (__v8di) __W,
    7194              :                          (__mmask8) __U);
    7195              : }
    7196              : 
    7197              : extern __inline __m512i
    7198              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7199              : _mm512_maskz_abs_epi64 (__mmask8 __U, __m512i __A)
    7200              : {
    7201              :   return (__m512i) __builtin_ia32_pabsq512_mask ((__v8di) __A,
    7202              :                          (__v8di)
    7203              :                          _mm512_setzero_si512 (),
    7204              :                          (__mmask8) __U);
    7205              : }
    7206              : 
    7207              : extern __inline __m512i
    7208              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7209              : _mm512_abs_epi32 (__m512i __A)
    7210              : {
    7211              :   return (__m512i) __builtin_ia32_pabsd512_mask ((__v16si) __A,
    7212              :                          (__v16si)
    7213              :                          _mm512_undefined_epi32 (),
    7214              :                          (__mmask16) -1);
    7215              : }
    7216              : 
    7217              : extern __inline __m512i
    7218              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7219              : _mm512_mask_abs_epi32 (__m512i __W, __mmask16 __U, __m512i __A)
    7220              : {
    7221              :   return (__m512i) __builtin_ia32_pabsd512_mask ((__v16si) __A,
    7222              :                          (__v16si) __W,
    7223              :                          (__mmask16) __U);
    7224              : }
    7225              : 
    7226              : extern __inline __m512i
    7227              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7228              : _mm512_maskz_abs_epi32 (__mmask16 __U, __m512i __A)
    7229              : {
    7230              :   return (__m512i) __builtin_ia32_pabsd512_mask ((__v16si) __A,
    7231              :                          (__v16si)
    7232              :                          _mm512_setzero_si512 (),
    7233              :                          (__mmask16) __U);
    7234              : }
    7235              : 
    7236              : extern __inline __m512
    7237              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7238              : _mm512_broadcastss_ps (__m128 __A)
    7239              : {
    7240              :   return (__m512) __builtin_ia32_broadcastss512 ((__v4sf) __A,
    7241              :                          (__v16sf)
    7242              :                          _mm512_undefined_ps (),
    7243              :                          (__mmask16) -1);
    7244              : }
    7245              : 
    7246              : extern __inline __m512
    7247              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7248              : _mm512_mask_broadcastss_ps (__m512 __O, __mmask16 __M, __m128 __A)
    7249              : {
    7250              :   return (__m512) __builtin_ia32_broadcastss512 ((__v4sf) __A,
    7251              :                          (__v16sf) __O, __M);
    7252              : }
    7253              : 
    7254              : extern __inline __m512
    7255              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7256              : _mm512_maskz_broadcastss_ps (__mmask16 __M, __m128 __A)
    7257              : {
    7258              :   return (__m512) __builtin_ia32_broadcastss512 ((__v4sf) __A,
    7259              :                          (__v16sf)
    7260              :                          _mm512_setzero_ps (),
    7261              :                          __M);
    7262              : }
    7263              : 
    7264              : extern __inline __m512d
    7265              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7266              : _mm512_broadcastsd_pd (__m128d __A)
    7267              : {
    7268              :   return (__m512d) __builtin_ia32_broadcastsd512 ((__v2df) __A,
    7269              :                           (__v8df)
    7270              :                           _mm512_undefined_pd (),
    7271              :                           (__mmask8) -1);
    7272              : }
    7273              : 
    7274              : extern __inline __m512d
    7275              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7276              : _mm512_mask_broadcastsd_pd (__m512d __O, __mmask8 __M, __m128d __A)
    7277              : {
    7278              :   return (__m512d) __builtin_ia32_broadcastsd512 ((__v2df) __A,
    7279              :                           (__v8df) __O, __M);
    7280              : }
    7281              : 
    7282              : extern __inline __m512d
    7283              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7284              : _mm512_maskz_broadcastsd_pd (__mmask8 __M, __m128d __A)
    7285              : {
    7286              :   return (__m512d) __builtin_ia32_broadcastsd512 ((__v2df) __A,
    7287              :                           (__v8df)
    7288              :                           _mm512_setzero_pd (),
    7289              :                           __M);
    7290              : }
    7291              : 
    7292              : extern __inline __m512i
    7293              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7294              : _mm512_broadcastd_epi32 (__m128i __A)
    7295              : {
    7296              :   return (__m512i) __builtin_ia32_pbroadcastd512 ((__v4si) __A,
    7297              :                           (__v16si)
    7298              :                           _mm512_undefined_epi32 (),
    7299              :                           (__mmask16) -1);
    7300              : }
    7301              : 
    7302              : extern __inline __m512i
    7303              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7304              : _mm512_mask_broadcastd_epi32 (__m512i __O, __mmask16 __M, __m128i __A)
    7305              : {
    7306              :   return (__m512i) __builtin_ia32_pbroadcastd512 ((__v4si) __A,
    7307              :                           (__v16si) __O, __M);
    7308              : }
    7309              : 
    7310              : extern __inline __m512i
    7311              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7312              : _mm512_maskz_broadcastd_epi32 (__mmask16 __M, __m128i __A)
    7313              : {
    7314              :   return (__m512i) __builtin_ia32_pbroadcastd512 ((__v4si) __A,
    7315              :                           (__v16si)
    7316              :                           _mm512_setzero_si512 (),
    7317              :                           __M);
    7318              : }
    7319              : 
    7320              : extern __inline __m512i
    7321              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7322              : _mm512_set1_epi32 (int __A)
    7323              : {
    7324              :   return (__m512i)(__v16si)
    7325              :     { __A, __A, __A, __A, __A, __A, __A, __A,
    7326              :       __A, __A, __A, __A, __A, __A, __A, __A };
    7327              : }
    7328              : 
    7329              : extern __inline __m512i
    7330              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7331              : _mm512_mask_set1_epi32 (__m512i __O, __mmask16 __M, int __A)
    7332              : {
    7333              :   return (__m512i) __builtin_ia32_pbroadcastd512_gpr_mask (__A, (__v16si) __O,
    7334              :                                __M);
    7335              : }
    7336              : 
    7337              : extern __inline __m512i
    7338              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7339              : _mm512_maskz_set1_epi32 (__mmask16 __M, int __A)
    7340              : {
    7341              :   return (__m512i)
    7342              :      __builtin_ia32_pbroadcastd512_gpr_mask (__A,
    7343              :                          (__v16si) _mm512_setzero_si512 (),
    7344              :                          __M);
    7345              : }
    7346              : 
    7347              : extern __inline __m512i
    7348              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7349              : _mm512_broadcastq_epi64 (__m128i __A)
    7350              : {
    7351              :   return (__m512i) __builtin_ia32_pbroadcastq512 ((__v2di) __A,
    7352              :                           (__v8di)
    7353              :                           _mm512_undefined_epi32 (),
    7354              :                           (__mmask8) -1);
    7355              : }
    7356              : 
    7357              : extern __inline __m512i
    7358              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7359              : _mm512_mask_broadcastq_epi64 (__m512i __O, __mmask8 __M, __m128i __A)
    7360              : {
    7361              :   return (__m512i) __builtin_ia32_pbroadcastq512 ((__v2di) __A,
    7362              :                           (__v8di) __O, __M);
    7363              : }
    7364              : 
    7365              : extern __inline __m512i
    7366              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7367              : _mm512_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A)
    7368              : {
    7369              :   return (__m512i) __builtin_ia32_pbroadcastq512 ((__v2di) __A,
    7370              :                           (__v8di)
    7371              :                           _mm512_setzero_si512 (),
    7372              :                           __M);
    7373              : }
    7374              : 
    7375              : extern __inline __m512i
    7376              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7377              : _mm512_set1_epi64 (long long __A)
    7378              : {
    7379              :   return (__m512i)(__v8di) { __A, __A, __A, __A, __A, __A, __A, __A };
    7380              : }
    7381              : 
    7382              : extern __inline __m512i
    7383              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7384              : _mm512_mask_set1_epi64 (__m512i __O, __mmask8 __M, long long __A)
    7385              : {
    7386              :   return (__m512i) __builtin_ia32_pbroadcastq512_gpr_mask (__A, (__v8di) __O,
    7387              :                                __M);
    7388              : }
    7389              : 
    7390              : extern __inline __m512i
    7391              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7392              : _mm512_maskz_set1_epi64 (__mmask8 __M, long long __A)
    7393              : {
    7394              :   return (__m512i)
    7395              :      __builtin_ia32_pbroadcastq512_gpr_mask (__A,
    7396              :                          (__v8di) _mm512_setzero_si512 (),
    7397              :                          __M);
    7398              : }
    7399              : 
    7400              : extern __inline __m512
    7401              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7402              : _mm512_broadcast_f32x4 (__m128 __A)
    7403              : {
    7404              :   return (__m512) __builtin_ia32_broadcastf32x4_512 ((__v4sf) __A,
    7405              :                              (__v16sf)
    7406              :                              _mm512_undefined_ps (),
    7407              :                              (__mmask16) -1);
    7408              : }
    7409              : 
    7410              : extern __inline __m512
    7411              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7412              : _mm512_mask_broadcast_f32x4 (__m512 __O, __mmask16 __M, __m128 __A)
    7413              : {
    7414              :   return (__m512) __builtin_ia32_broadcastf32x4_512 ((__v4sf) __A,
    7415              :                              (__v16sf) __O,
    7416              :                              __M);
    7417              : }
    7418              : 
    7419              : extern __inline __m512
    7420              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7421              : _mm512_maskz_broadcast_f32x4 (__mmask16 __M, __m128 __A)
    7422              : {
    7423              :   return (__m512) __builtin_ia32_broadcastf32x4_512 ((__v4sf) __A,
    7424              :                              (__v16sf)
    7425              :                              _mm512_setzero_ps (),
    7426              :                              __M);
    7427              : }
    7428              : 
    7429              : extern __inline __m512i
    7430              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7431              : _mm512_broadcast_i32x4 (__m128i __A)
    7432              : {
    7433            0 :   return (__m512i) __builtin_ia32_broadcasti32x4_512 ((__v4si) __A,
    7434              :                               (__v16si)
    7435            0 :                               _mm512_undefined_epi32 (),
    7436              :                               (__mmask16) -1);
    7437              : }
    7438              : 
    7439              : extern __inline __m512i
    7440              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7441              : _mm512_mask_broadcast_i32x4 (__m512i __O, __mmask16 __M, __m128i __A)
    7442              : {
    7443              :   return (__m512i) __builtin_ia32_broadcasti32x4_512 ((__v4si) __A,
    7444              :                               (__v16si) __O,
    7445              :                               __M);
    7446              : }
    7447              : 
    7448              : extern __inline __m512i
    7449              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7450              : _mm512_maskz_broadcast_i32x4 (__mmask16 __M, __m128i __A)
    7451              : {
    7452              :   return (__m512i) __builtin_ia32_broadcasti32x4_512 ((__v4si) __A,
    7453              :                               (__v16si)
    7454              :                               _mm512_setzero_si512 (),
    7455              :                               __M);
    7456              : }
    7457              : 
    7458              : extern __inline __m512d
    7459              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7460              : _mm512_broadcast_f64x4 (__m256d __A)
    7461              : {
    7462              :   return (__m512d) __builtin_ia32_broadcastf64x4_512 ((__v4df) __A,
    7463              :                               (__v8df)
    7464              :                               _mm512_undefined_pd (),
    7465              :                               (__mmask8) -1);
    7466              : }
    7467              : 
    7468              : extern __inline __m512d
    7469              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7470              : _mm512_mask_broadcast_f64x4 (__m512d __O, __mmask8 __M, __m256d __A)
    7471              : {
    7472              :   return (__m512d) __builtin_ia32_broadcastf64x4_512 ((__v4df) __A,
    7473              :                               (__v8df) __O,
    7474              :                               __M);
    7475              : }
    7476              : 
    7477              : extern __inline __m512d
    7478              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7479              : _mm512_maskz_broadcast_f64x4 (__mmask8 __M, __m256d __A)
    7480              : {
    7481              :   return (__m512d) __builtin_ia32_broadcastf64x4_512 ((__v4df) __A,
    7482              :                               (__v8df)
    7483              :                               _mm512_setzero_pd (),
    7484              :                               __M);
    7485              : }
    7486              : 
    7487              : extern __inline __m512i
    7488              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7489              : _mm512_broadcast_i64x4 (__m256i __A)
    7490              : {
    7491              :   return (__m512i) __builtin_ia32_broadcasti64x4_512 ((__v4di) __A,
    7492              :                               (__v8di)
    7493              :                               _mm512_undefined_epi32 (),
    7494              :                               (__mmask8) -1);
    7495              : }
    7496              : 
    7497              : extern __inline __m512i
    7498              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7499              : _mm512_mask_broadcast_i64x4 (__m512i __O, __mmask8 __M, __m256i __A)
    7500              : {
    7501              :   return (__m512i) __builtin_ia32_broadcasti64x4_512 ((__v4di) __A,
    7502              :                               (__v8di) __O,
    7503              :                               __M);
    7504              : }
    7505              : 
    7506              : extern __inline __m512i
    7507              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7508              : _mm512_maskz_broadcast_i64x4 (__mmask8 __M, __m256i __A)
    7509              : {
    7510              :   return (__m512i) __builtin_ia32_broadcasti64x4_512 ((__v4di) __A,
    7511              :                               (__v8di)
    7512              :                               _mm512_setzero_si512 (),
    7513              :                               __M);
    7514              : }
    7515              : 
    7516              : typedef enum
    7517              : {
    7518              :   _MM_PERM_AAAA = 0x00, _MM_PERM_AAAB = 0x01, _MM_PERM_AAAC = 0x02,
    7519              :   _MM_PERM_AAAD = 0x03, _MM_PERM_AABA = 0x04, _MM_PERM_AABB = 0x05,
    7520              :   _MM_PERM_AABC = 0x06, _MM_PERM_AABD = 0x07, _MM_PERM_AACA = 0x08,
    7521              :   _MM_PERM_AACB = 0x09, _MM_PERM_AACC = 0x0A, _MM_PERM_AACD = 0x0B,
    7522              :   _MM_PERM_AADA = 0x0C, _MM_PERM_AADB = 0x0D, _MM_PERM_AADC = 0x0E,
    7523              :   _MM_PERM_AADD = 0x0F, _MM_PERM_ABAA = 0x10, _MM_PERM_ABAB = 0x11,
    7524              :   _MM_PERM_ABAC = 0x12, _MM_PERM_ABAD = 0x13, _MM_PERM_ABBA = 0x14,
    7525              :   _MM_PERM_ABBB = 0x15, _MM_PERM_ABBC = 0x16, _MM_PERM_ABBD = 0x17,
    7526              :   _MM_PERM_ABCA = 0x18, _MM_PERM_ABCB = 0x19, _MM_PERM_ABCC = 0x1A,
    7527              :   _MM_PERM_ABCD = 0x1B, _MM_PERM_ABDA = 0x1C, _MM_PERM_ABDB = 0x1D,
    7528              :   _MM_PERM_ABDC = 0x1E, _MM_PERM_ABDD = 0x1F, _MM_PERM_ACAA = 0x20,
    7529              :   _MM_PERM_ACAB = 0x21, _MM_PERM_ACAC = 0x22, _MM_PERM_ACAD = 0x23,
    7530              :   _MM_PERM_ACBA = 0x24, _MM_PERM_ACBB = 0x25, _MM_PERM_ACBC = 0x26,
    7531              :   _MM_PERM_ACBD = 0x27, _MM_PERM_ACCA = 0x28, _MM_PERM_ACCB = 0x29,
    7532              :   _MM_PERM_ACCC = 0x2A, _MM_PERM_ACCD = 0x2B, _MM_PERM_ACDA = 0x2C,
    7533              :   _MM_PERM_ACDB = 0x2D, _MM_PERM_ACDC = 0x2E, _MM_PERM_ACDD = 0x2F,
    7534              :   _MM_PERM_ADAA = 0x30, _MM_PERM_ADAB = 0x31, _MM_PERM_ADAC = 0x32,
    7535              :   _MM_PERM_ADAD = 0x33, _MM_PERM_ADBA = 0x34, _MM_PERM_ADBB = 0x35,
    7536              :   _MM_PERM_ADBC = 0x36, _MM_PERM_ADBD = 0x37, _MM_PERM_ADCA = 0x38,
    7537              :   _MM_PERM_ADCB = 0x39, _MM_PERM_ADCC = 0x3A, _MM_PERM_ADCD = 0x3B,
    7538              :   _MM_PERM_ADDA = 0x3C, _MM_PERM_ADDB = 0x3D, _MM_PERM_ADDC = 0x3E,
    7539              :   _MM_PERM_ADDD = 0x3F, _MM_PERM_BAAA = 0x40, _MM_PERM_BAAB = 0x41,
    7540              :   _MM_PERM_BAAC = 0x42, _MM_PERM_BAAD = 0x43, _MM_PERM_BABA = 0x44,
    7541              :   _MM_PERM_BABB = 0x45, _MM_PERM_BABC = 0x46, _MM_PERM_BABD = 0x47,
    7542              :   _MM_PERM_BACA = 0x48, _MM_PERM_BACB = 0x49, _MM_PERM_BACC = 0x4A,
    7543              :   _MM_PERM_BACD = 0x4B, _MM_PERM_BADA = 0x4C, _MM_PERM_BADB = 0x4D,
    7544              :   _MM_PERM_BADC = 0x4E, _MM_PERM_BADD = 0x4F, _MM_PERM_BBAA = 0x50,
    7545              :   _MM_PERM_BBAB = 0x51, _MM_PERM_BBAC = 0x52, _MM_PERM_BBAD = 0x53,
    7546              :   _MM_PERM_BBBA = 0x54, _MM_PERM_BBBB = 0x55, _MM_PERM_BBBC = 0x56,
    7547              :   _MM_PERM_BBBD = 0x57, _MM_PERM_BBCA = 0x58, _MM_PERM_BBCB = 0x59,
    7548              :   _MM_PERM_BBCC = 0x5A, _MM_PERM_BBCD = 0x5B, _MM_PERM_BBDA = 0x5C,
    7549              :   _MM_PERM_BBDB = 0x5D, _MM_PERM_BBDC = 0x5E, _MM_PERM_BBDD = 0x5F,
    7550              :   _MM_PERM_BCAA = 0x60, _MM_PERM_BCAB = 0x61, _MM_PERM_BCAC = 0x62,
    7551              :   _MM_PERM_BCAD = 0x63, _MM_PERM_BCBA = 0x64, _MM_PERM_BCBB = 0x65,
    7552              :   _MM_PERM_BCBC = 0x66, _MM_PERM_BCBD = 0x67, _MM_PERM_BCCA = 0x68,
    7553              :   _MM_PERM_BCCB = 0x69, _MM_PERM_BCCC = 0x6A, _MM_PERM_BCCD = 0x6B,
    7554              :   _MM_PERM_BCDA = 0x6C, _MM_PERM_BCDB = 0x6D, _MM_PERM_BCDC = 0x6E,
    7555              :   _MM_PERM_BCDD = 0x6F, _MM_PERM_BDAA = 0x70, _MM_PERM_BDAB = 0x71,
    7556              :   _MM_PERM_BDAC = 0x72, _MM_PERM_BDAD = 0x73, _MM_PERM_BDBA = 0x74,
    7557              :   _MM_PERM_BDBB = 0x75, _MM_PERM_BDBC = 0x76, _MM_PERM_BDBD = 0x77,
    7558              :   _MM_PERM_BDCA = 0x78, _MM_PERM_BDCB = 0x79, _MM_PERM_BDCC = 0x7A,
    7559              :   _MM_PERM_BDCD = 0x7B, _MM_PERM_BDDA = 0x7C, _MM_PERM_BDDB = 0x7D,
    7560              :   _MM_PERM_BDDC = 0x7E, _MM_PERM_BDDD = 0x7F, _MM_PERM_CAAA = 0x80,
    7561              :   _MM_PERM_CAAB = 0x81, _MM_PERM_CAAC = 0x82, _MM_PERM_CAAD = 0x83,
    7562              :   _MM_PERM_CABA = 0x84, _MM_PERM_CABB = 0x85, _MM_PERM_CABC = 0x86,
    7563              :   _MM_PERM_CABD = 0x87, _MM_PERM_CACA = 0x88, _MM_PERM_CACB = 0x89,
    7564              :   _MM_PERM_CACC = 0x8A, _MM_PERM_CACD = 0x8B, _MM_PERM_CADA = 0x8C,
    7565              :   _MM_PERM_CADB = 0x8D, _MM_PERM_CADC = 0x8E, _MM_PERM_CADD = 0x8F,
    7566              :   _MM_PERM_CBAA = 0x90, _MM_PERM_CBAB = 0x91, _MM_PERM_CBAC = 0x92,
    7567              :   _MM_PERM_CBAD = 0x93, _MM_PERM_CBBA = 0x94, _MM_PERM_CBBB = 0x95,
    7568              :   _MM_PERM_CBBC = 0x96, _MM_PERM_CBBD = 0x97, _MM_PERM_CBCA = 0x98,
    7569              :   _MM_PERM_CBCB = 0x99, _MM_PERM_CBCC = 0x9A, _MM_PERM_CBCD = 0x9B,
    7570              :   _MM_PERM_CBDA = 0x9C, _MM_PERM_CBDB = 0x9D, _MM_PERM_CBDC = 0x9E,
    7571              :   _MM_PERM_CBDD = 0x9F, _MM_PERM_CCAA = 0xA0, _MM_PERM_CCAB = 0xA1,
    7572              :   _MM_PERM_CCAC = 0xA2, _MM_PERM_CCAD = 0xA3, _MM_PERM_CCBA = 0xA4,
    7573              :   _MM_PERM_CCBB = 0xA5, _MM_PERM_CCBC = 0xA6, _MM_PERM_CCBD = 0xA7,
    7574              :   _MM_PERM_CCCA = 0xA8, _MM_PERM_CCCB = 0xA9, _MM_PERM_CCCC = 0xAA,
    7575              :   _MM_PERM_CCCD = 0xAB, _MM_PERM_CCDA = 0xAC, _MM_PERM_CCDB = 0xAD,
    7576              :   _MM_PERM_CCDC = 0xAE, _MM_PERM_CCDD = 0xAF, _MM_PERM_CDAA = 0xB0,
    7577              :   _MM_PERM_CDAB = 0xB1, _MM_PERM_CDAC = 0xB2, _MM_PERM_CDAD = 0xB3,
    7578              :   _MM_PERM_CDBA = 0xB4, _MM_PERM_CDBB = 0xB5, _MM_PERM_CDBC = 0xB6,
    7579              :   _MM_PERM_CDBD = 0xB7, _MM_PERM_CDCA = 0xB8, _MM_PERM_CDCB = 0xB9,
    7580              :   _MM_PERM_CDCC = 0xBA, _MM_PERM_CDCD = 0xBB, _MM_PERM_CDDA = 0xBC,
    7581              :   _MM_PERM_CDDB = 0xBD, _MM_PERM_CDDC = 0xBE, _MM_PERM_CDDD = 0xBF,
    7582              :   _MM_PERM_DAAA = 0xC0, _MM_PERM_DAAB = 0xC1, _MM_PERM_DAAC = 0xC2,
    7583              :   _MM_PERM_DAAD = 0xC3, _MM_PERM_DABA = 0xC4, _MM_PERM_DABB = 0xC5,
    7584              :   _MM_PERM_DABC = 0xC6, _MM_PERM_DABD = 0xC7, _MM_PERM_DACA = 0xC8,
    7585              :   _MM_PERM_DACB = 0xC9, _MM_PERM_DACC = 0xCA, _MM_PERM_DACD = 0xCB,
    7586              :   _MM_PERM_DADA = 0xCC, _MM_PERM_DADB = 0xCD, _MM_PERM_DADC = 0xCE,
    7587              :   _MM_PERM_DADD = 0xCF, _MM_PERM_DBAA = 0xD0, _MM_PERM_DBAB = 0xD1,
    7588              :   _MM_PERM_DBAC = 0xD2, _MM_PERM_DBAD = 0xD3, _MM_PERM_DBBA = 0xD4,
    7589              :   _MM_PERM_DBBB = 0xD5, _MM_PERM_DBBC = 0xD6, _MM_PERM_DBBD = 0xD7,
    7590              :   _MM_PERM_DBCA = 0xD8, _MM_PERM_DBCB = 0xD9, _MM_PERM_DBCC = 0xDA,
    7591              :   _MM_PERM_DBCD = 0xDB, _MM_PERM_DBDA = 0xDC, _MM_PERM_DBDB = 0xDD,
    7592              :   _MM_PERM_DBDC = 0xDE, _MM_PERM_DBDD = 0xDF, _MM_PERM_DCAA = 0xE0,
    7593              :   _MM_PERM_DCAB = 0xE1, _MM_PERM_DCAC = 0xE2, _MM_PERM_DCAD = 0xE3,
    7594              :   _MM_PERM_DCBA = 0xE4, _MM_PERM_DCBB = 0xE5, _MM_PERM_DCBC = 0xE6,
    7595              :   _MM_PERM_DCBD = 0xE7, _MM_PERM_DCCA = 0xE8, _MM_PERM_DCCB = 0xE9,
    7596              :   _MM_PERM_DCCC = 0xEA, _MM_PERM_DCCD = 0xEB, _MM_PERM_DCDA = 0xEC,
    7597              :   _MM_PERM_DCDB = 0xED, _MM_PERM_DCDC = 0xEE, _MM_PERM_DCDD = 0xEF,
    7598              :   _MM_PERM_DDAA = 0xF0, _MM_PERM_DDAB = 0xF1, _MM_PERM_DDAC = 0xF2,
    7599              :   _MM_PERM_DDAD = 0xF3, _MM_PERM_DDBA = 0xF4, _MM_PERM_DDBB = 0xF5,
    7600              :   _MM_PERM_DDBC = 0xF6, _MM_PERM_DDBD = 0xF7, _MM_PERM_DDCA = 0xF8,
    7601              :   _MM_PERM_DDCB = 0xF9, _MM_PERM_DDCC = 0xFA, _MM_PERM_DDCD = 0xFB,
    7602              :   _MM_PERM_DDDA = 0xFC, _MM_PERM_DDDB = 0xFD, _MM_PERM_DDDC = 0xFE,
    7603              :   _MM_PERM_DDDD = 0xFF
    7604              : } _MM_PERM_ENUM;
    7605              : 
    7606              : #ifdef __OPTIMIZE__
    7607              : extern __inline __m512i
    7608              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7609              : _mm512_shuffle_epi32 (__m512i __A, _MM_PERM_ENUM __mask)
    7610              : {
    7611              :   return (__m512i) __builtin_ia32_pshufd512_mask ((__v16si) __A,
    7612              :                           __mask,
    7613              :                           (__v16si)
    7614              :                           _mm512_undefined_epi32 (),
    7615              :                           (__mmask16) -1);
    7616              : }
    7617              : 
    7618              : extern __inline __m512i
    7619              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7620              : _mm512_mask_shuffle_epi32 (__m512i __W, __mmask16 __U, __m512i __A,
    7621              :                _MM_PERM_ENUM __mask)
    7622              : {
    7623              :   return (__m512i) __builtin_ia32_pshufd512_mask ((__v16si) __A,
    7624              :                           __mask,
    7625              :                           (__v16si) __W,
    7626              :                           (__mmask16) __U);
    7627              : }
    7628              : 
    7629              : extern __inline __m512i
    7630              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7631              : _mm512_maskz_shuffle_epi32 (__mmask16 __U, __m512i __A, _MM_PERM_ENUM __mask)
    7632              : {
    7633              :   return (__m512i) __builtin_ia32_pshufd512_mask ((__v16si) __A,
    7634              :                           __mask,
    7635              :                           (__v16si)
    7636              :                           _mm512_setzero_si512 (),
    7637              :                           (__mmask16) __U);
    7638              : }
    7639              : 
    7640              : extern __inline __m512i
    7641              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7642              : _mm512_shuffle_i64x2 (__m512i __A, __m512i __B, const int __imm)
    7643              : {
    7644              :   return (__m512i) __builtin_ia32_shuf_i64x2_mask ((__v8di) __A,
    7645              :                            (__v8di) __B, __imm,
    7646              :                            (__v8di)
    7647              :                            _mm512_undefined_epi32 (),
    7648              :                            (__mmask8) -1);
    7649              : }
    7650              : 
    7651              : extern __inline __m512i
    7652              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7653              : _mm512_mask_shuffle_i64x2 (__m512i __W, __mmask8 __U, __m512i __A,
    7654              :                __m512i __B, const int __imm)
    7655              : {
    7656              :   return (__m512i) __builtin_ia32_shuf_i64x2_mask ((__v8di) __A,
    7657              :                            (__v8di) __B, __imm,
    7658              :                            (__v8di) __W,
    7659              :                            (__mmask8) __U);
    7660              : }
    7661              : 
    7662              : extern __inline __m512i
    7663              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7664              : _mm512_maskz_shuffle_i64x2 (__mmask8 __U, __m512i __A, __m512i __B,
    7665              :                 const int __imm)
    7666              : {
    7667              :   return (__m512i) __builtin_ia32_shuf_i64x2_mask ((__v8di) __A,
    7668              :                            (__v8di) __B, __imm,
    7669              :                            (__v8di)
    7670              :                            _mm512_setzero_si512 (),
    7671              :                            (__mmask8) __U);
    7672              : }
    7673              : 
    7674              : extern __inline __m512i
    7675              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7676              : _mm512_shuffle_i32x4 (__m512i __A, __m512i __B, const int __imm)
    7677              : {
    7678              :   return (__m512i) __builtin_ia32_shuf_i32x4_mask ((__v16si) __A,
    7679              :                            (__v16si) __B,
    7680              :                            __imm,
    7681              :                            (__v16si)
    7682              :                            _mm512_undefined_epi32 (),
    7683              :                            (__mmask16) -1);
    7684              : }
    7685              : 
    7686              : extern __inline __m512i
    7687              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7688              : _mm512_mask_shuffle_i32x4 (__m512i __W, __mmask16 __U, __m512i __A,
    7689              :                __m512i __B, const int __imm)
    7690              : {
    7691              :   return (__m512i) __builtin_ia32_shuf_i32x4_mask ((__v16si) __A,
    7692              :                            (__v16si) __B,
    7693              :                            __imm,
    7694              :                            (__v16si) __W,
    7695              :                            (__mmask16) __U);
    7696              : }
    7697              : 
    7698              : extern __inline __m512i
    7699              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7700              : _mm512_maskz_shuffle_i32x4 (__mmask16 __U, __m512i __A, __m512i __B,
    7701              :                 const int __imm)
    7702              : {
    7703              :   return (__m512i) __builtin_ia32_shuf_i32x4_mask ((__v16si) __A,
    7704              :                            (__v16si) __B,
    7705              :                            __imm,
    7706              :                            (__v16si)
    7707              :                            _mm512_setzero_si512 (),
    7708              :                            (__mmask16) __U);
    7709              : }
    7710              : 
    7711              : extern __inline __m512d
    7712              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7713              : _mm512_shuffle_f64x2 (__m512d __A, __m512d __B, const int __imm)
    7714              : {
    7715              :   return (__m512d) __builtin_ia32_shuf_f64x2_mask ((__v8df) __A,
    7716              :                            (__v8df) __B, __imm,
    7717              :                            (__v8df)
    7718              :                            _mm512_undefined_pd (),
    7719              :                            (__mmask8) -1);
    7720              : }
    7721              : 
    7722              : extern __inline __m512d
    7723              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7724              : _mm512_mask_shuffle_f64x2 (__m512d __W, __mmask8 __U, __m512d __A,
    7725              :                __m512d __B, const int __imm)
    7726              : {
    7727              :   return (__m512d) __builtin_ia32_shuf_f64x2_mask ((__v8df) __A,
    7728              :                            (__v8df) __B, __imm,
    7729              :                            (__v8df) __W,
    7730              :                            (__mmask8) __U);
    7731              : }
    7732              : 
    7733              : extern __inline __m512d
    7734              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7735              : _mm512_maskz_shuffle_f64x2 (__mmask8 __U, __m512d __A, __m512d __B,
    7736              :                 const int __imm)
    7737              : {
    7738              :   return (__m512d) __builtin_ia32_shuf_f64x2_mask ((__v8df) __A,
    7739              :                            (__v8df) __B, __imm,
    7740              :                            (__v8df)
    7741              :                            _mm512_setzero_pd (),
    7742              :                            (__mmask8) __U);
    7743              : }
    7744              : 
    7745              : extern __inline __m512
    7746              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7747              : _mm512_shuffle_f32x4 (__m512 __A, __m512 __B, const int __imm)
    7748              : {
    7749              :   return (__m512) __builtin_ia32_shuf_f32x4_mask ((__v16sf) __A,
    7750              :                           (__v16sf) __B, __imm,
    7751              :                           (__v16sf)
    7752              :                           _mm512_undefined_ps (),
    7753              :                           (__mmask16) -1);
    7754              : }
    7755              : 
    7756              : extern __inline __m512
    7757              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7758              : _mm512_mask_shuffle_f32x4 (__m512 __W, __mmask16 __U, __m512 __A,
    7759              :                __m512 __B, const int __imm)
    7760              : {
    7761              :   return (__m512) __builtin_ia32_shuf_f32x4_mask ((__v16sf) __A,
    7762              :                           (__v16sf) __B, __imm,
    7763              :                           (__v16sf) __W,
    7764              :                           (__mmask16) __U);
    7765              : }
    7766              : 
    7767              : extern __inline __m512
    7768              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7769              : _mm512_maskz_shuffle_f32x4 (__mmask16 __U, __m512 __A, __m512 __B,
    7770              :                 const int __imm)
    7771              : {
    7772              :   return (__m512) __builtin_ia32_shuf_f32x4_mask ((__v16sf) __A,
    7773              :                           (__v16sf) __B, __imm,
    7774              :                           (__v16sf)
    7775              :                           _mm512_setzero_ps (),
    7776              :                           (__mmask16) __U);
    7777              : }
    7778              : 
    7779              : #else
    7780              : #define _mm512_shuffle_epi32(X, C)                                      \
    7781              :   ((__m512i)  __builtin_ia32_pshufd512_mask ((__v16si)(__m512i)(X), (int)(C),\
    7782              :     (__v16si)(__m512i)_mm512_undefined_epi32 (),\
    7783              :     (__mmask16)-1))
    7784              : 
    7785              : #define _mm512_mask_shuffle_epi32(W, U, X, C)                           \
    7786              :   ((__m512i)  __builtin_ia32_pshufd512_mask ((__v16si)(__m512i)(X), (int)(C),\
    7787              :     (__v16si)(__m512i)(W),\
    7788              :     (__mmask16)(U)))
    7789              : 
    7790              : #define _mm512_maskz_shuffle_epi32(U, X, C)                             \
    7791              :   ((__m512i)  __builtin_ia32_pshufd512_mask ((__v16si)(__m512i)(X), (int)(C),\
    7792              :     (__v16si)(__m512i)_mm512_setzero_si512 (),\
    7793              :     (__mmask16)(U)))
    7794              : 
    7795              : #define _mm512_shuffle_i64x2(X, Y, C)                                   \
    7796              :   ((__m512i)  __builtin_ia32_shuf_i64x2_mask ((__v8di)(__m512i)(X),     \
    7797              :       (__v8di)(__m512i)(Y), (int)(C),\
    7798              :     (__v8di)(__m512i)_mm512_undefined_epi32 (),\
    7799              :     (__mmask8)-1))
    7800              : 
    7801              : #define _mm512_mask_shuffle_i64x2(W, U, X, Y, C)                        \
    7802              :   ((__m512i)  __builtin_ia32_shuf_i64x2_mask ((__v8di)(__m512i)(X),     \
    7803              :       (__v8di)(__m512i)(Y), (int)(C),\
    7804              :     (__v8di)(__m512i)(W),\
    7805              :     (__mmask8)(U)))
    7806              : 
    7807              : #define _mm512_maskz_shuffle_i64x2(U, X, Y, C)                          \
    7808              :   ((__m512i)  __builtin_ia32_shuf_i64x2_mask ((__v8di)(__m512i)(X),     \
    7809              :       (__v8di)(__m512i)(Y), (int)(C),\
    7810              :     (__v8di)(__m512i)_mm512_setzero_si512 (),\
    7811              :     (__mmask8)(U)))
    7812              : 
    7813              : #define _mm512_shuffle_i32x4(X, Y, C)                                   \
    7814              :   ((__m512i)  __builtin_ia32_shuf_i32x4_mask ((__v16si)(__m512i)(X),    \
    7815              :       (__v16si)(__m512i)(Y), (int)(C),\
    7816              :     (__v16si)(__m512i)_mm512_undefined_epi32 (),\
    7817              :     (__mmask16)-1))
    7818              : 
    7819              : #define _mm512_mask_shuffle_i32x4(W, U, X, Y, C)                        \
    7820              :   ((__m512i)  __builtin_ia32_shuf_i32x4_mask ((__v16si)(__m512i)(X),    \
    7821              :       (__v16si)(__m512i)(Y), (int)(C),\
    7822              :     (__v16si)(__m512i)(W),\
    7823              :     (__mmask16)(U)))
    7824              : 
    7825              : #define _mm512_maskz_shuffle_i32x4(U, X, Y, C)                          \
    7826              :   ((__m512i)  __builtin_ia32_shuf_i32x4_mask ((__v16si)(__m512i)(X),    \
    7827              :       (__v16si)(__m512i)(Y), (int)(C),\
    7828              :     (__v16si)(__m512i)_mm512_setzero_si512 (),\
    7829              :     (__mmask16)(U)))
    7830              : 
    7831              : #define _mm512_shuffle_f64x2(X, Y, C)                                   \
    7832              :   ((__m512d)  __builtin_ia32_shuf_f64x2_mask ((__v8df)(__m512d)(X),     \
    7833              :       (__v8df)(__m512d)(Y), (int)(C),\
    7834              :     (__v8df)(__m512d)_mm512_undefined_pd(),\
    7835              :     (__mmask8)-1))
    7836              : 
    7837              : #define _mm512_mask_shuffle_f64x2(W, U, X, Y, C)                        \
    7838              :   ((__m512d)  __builtin_ia32_shuf_f64x2_mask ((__v8df)(__m512d)(X),     \
    7839              :       (__v8df)(__m512d)(Y), (int)(C),\
    7840              :     (__v8df)(__m512d)(W),\
    7841              :     (__mmask8)(U)))
    7842              : 
    7843              : #define _mm512_maskz_shuffle_f64x2(U, X, Y, C)                         \
    7844              :   ((__m512d)  __builtin_ia32_shuf_f64x2_mask ((__v8df)(__m512d)(X),    \
    7845              :       (__v8df)(__m512d)(Y), (int)(C),\
    7846              :     (__v8df)(__m512d)_mm512_setzero_pd(),\
    7847              :     (__mmask8)(U)))
    7848              : 
    7849              : #define _mm512_shuffle_f32x4(X, Y, C)                                  \
    7850              :   ((__m512)  __builtin_ia32_shuf_f32x4_mask ((__v16sf)(__m512)(X),     \
    7851              :       (__v16sf)(__m512)(Y), (int)(C),\
    7852              :     (__v16sf)(__m512)_mm512_undefined_ps(),\
    7853              :     (__mmask16)-1))
    7854              : 
    7855              : #define _mm512_mask_shuffle_f32x4(W, U, X, Y, C)                       \
    7856              :   ((__m512)  __builtin_ia32_shuf_f32x4_mask ((__v16sf)(__m512)(X),     \
    7857              :       (__v16sf)(__m512)(Y), (int)(C),\
    7858              :     (__v16sf)(__m512)(W),\
    7859              :     (__mmask16)(U)))
    7860              : 
    7861              : #define _mm512_maskz_shuffle_f32x4(U, X, Y, C)                         \
    7862              :   ((__m512)  __builtin_ia32_shuf_f32x4_mask ((__v16sf)(__m512)(X),     \
    7863              :       (__v16sf)(__m512)(Y), (int)(C),\
    7864              :     (__v16sf)(__m512)_mm512_setzero_ps(),\
    7865              :     (__mmask16)(U)))
    7866              : #endif
    7867              : 
    7868              : extern __inline __m512i
    7869              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7870              : _mm512_rolv_epi32 (__m512i __A, __m512i __B)
    7871              : {
    7872              :   return (__m512i) __builtin_ia32_prolvd512_mask ((__v16si) __A,
    7873              :                           (__v16si) __B,
    7874              :                           (__v16si)
    7875              :                           _mm512_undefined_epi32 (),
    7876              :                           (__mmask16) -1);
    7877              : }
    7878              : 
    7879              : extern __inline __m512i
    7880              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7881              : _mm512_mask_rolv_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
    7882              : {
    7883              :   return (__m512i) __builtin_ia32_prolvd512_mask ((__v16si) __A,
    7884              :                           (__v16si) __B,
    7885              :                           (__v16si) __W,
    7886              :                           (__mmask16) __U);
    7887              : }
    7888              : 
    7889              : extern __inline __m512i
    7890              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7891              : _mm512_maskz_rolv_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
    7892              : {
    7893              :   return (__m512i) __builtin_ia32_prolvd512_mask ((__v16si) __A,
    7894              :                           (__v16si) __B,
    7895              :                           (__v16si)
    7896              :                           _mm512_setzero_si512 (),
    7897              :                           (__mmask16) __U);
    7898              : }
    7899              : 
    7900              : extern __inline __m512i
    7901              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7902              : _mm512_rorv_epi32 (__m512i __A, __m512i __B)
    7903              : {
    7904              :   return (__m512i) __builtin_ia32_prorvd512_mask ((__v16si) __A,
    7905              :                           (__v16si) __B,
    7906              :                           (__v16si)
    7907              :                           _mm512_undefined_epi32 (),
    7908              :                           (__mmask16) -1);
    7909              : }
    7910              : 
    7911              : extern __inline __m512i
    7912              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7913              : _mm512_mask_rorv_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
    7914              : {
    7915              :   return (__m512i) __builtin_ia32_prorvd512_mask ((__v16si) __A,
    7916              :                           (__v16si) __B,
    7917              :                           (__v16si) __W,
    7918              :                           (__mmask16) __U);
    7919              : }
    7920              : 
    7921              : extern __inline __m512i
    7922              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7923              : _mm512_maskz_rorv_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
    7924              : {
    7925              :   return (__m512i) __builtin_ia32_prorvd512_mask ((__v16si) __A,
    7926              :                           (__v16si) __B,
    7927              :                           (__v16si)
    7928              :                           _mm512_setzero_si512 (),
    7929              :                           (__mmask16) __U);
    7930              : }
    7931              : 
    7932              : extern __inline __m512i
    7933              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7934              : _mm512_rolv_epi64 (__m512i __A, __m512i __B)
    7935              : {
    7936              :   return (__m512i) __builtin_ia32_prolvq512_mask ((__v8di) __A,
    7937              :                           (__v8di) __B,
    7938              :                           (__v8di)
    7939              :                           _mm512_undefined_epi32 (),
    7940              :                           (__mmask8) -1);
    7941              : }
    7942              : 
    7943              : extern __inline __m512i
    7944              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7945              : _mm512_mask_rolv_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
    7946              : {
    7947              :   return (__m512i) __builtin_ia32_prolvq512_mask ((__v8di) __A,
    7948              :                           (__v8di) __B,
    7949              :                           (__v8di) __W,
    7950              :                           (__mmask8) __U);
    7951              : }
    7952              : 
    7953              : extern __inline __m512i
    7954              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7955              : _mm512_maskz_rolv_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
    7956              : {
    7957              :   return (__m512i) __builtin_ia32_prolvq512_mask ((__v8di) __A,
    7958              :                           (__v8di) __B,
    7959              :                           (__v8di)
    7960              :                           _mm512_setzero_si512 (),
    7961              :                           (__mmask8) __U);
    7962              : }
    7963              : 
    7964              : extern __inline __m512i
    7965              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7966              : _mm512_rorv_epi64 (__m512i __A, __m512i __B)
    7967              : {
    7968              :   return (__m512i) __builtin_ia32_prorvq512_mask ((__v8di) __A,
    7969              :                           (__v8di) __B,
    7970              :                           (__v8di)
    7971              :                           _mm512_undefined_epi32 (),
    7972              :                           (__mmask8) -1);
    7973              : }
    7974              : 
    7975              : extern __inline __m512i
    7976              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7977              : _mm512_mask_rorv_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
    7978              : {
    7979              :   return (__m512i) __builtin_ia32_prorvq512_mask ((__v8di) __A,
    7980              :                           (__v8di) __B,
    7981              :                           (__v8di) __W,
    7982              :                           (__mmask8) __U);
    7983              : }
    7984              : 
    7985              : extern __inline __m512i
    7986              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7987              : _mm512_maskz_rorv_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
    7988              : {
    7989              :   return (__m512i) __builtin_ia32_prorvq512_mask ((__v8di) __A,
    7990              :                           (__v8di) __B,
    7991              :                           (__v8di)
    7992              :                           _mm512_setzero_si512 (),
    7993              :                           (__mmask8) __U);
    7994              : }
    7995              : 
    7996              : #ifdef __OPTIMIZE__
    7997              : extern __inline __m256i
    7998              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    7999              : _mm512_cvtt_roundpd_epi32 (__m512d __A, const int __R)
    8000              : {
    8001              :   return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A,
    8002              :                              (__v8si)
    8003              :                              _mm256_undefined_si256 (),
    8004              :                              (__mmask8) -1, __R);
    8005              : }
    8006              : 
    8007              : extern __inline __m256i
    8008              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8009              : _mm512_mask_cvtt_roundpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A,
    8010              :                 const int __R)
    8011              : {
    8012              :   return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A,
    8013              :                              (__v8si) __W,
    8014              :                              (__mmask8) __U, __R);
    8015              : }
    8016              : 
    8017              : extern __inline __m256i
    8018              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8019              : _mm512_maskz_cvtt_roundpd_epi32 (__mmask8 __U, __m512d __A, const int __R)
    8020              : {
    8021              :   return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A,
    8022              :                              (__v8si)
    8023              :                              _mm256_setzero_si256 (),
    8024              :                              (__mmask8) __U, __R);
    8025              : }
    8026              : 
    8027              : extern __inline __m256i
    8028              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8029              : _mm512_cvtt_roundpd_epu32 (__m512d __A, const int __R)
    8030              : {
    8031              :   return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,
    8032              :                               (__v8si)
    8033              :                               _mm256_undefined_si256 (),
    8034              :                               (__mmask8) -1, __R);
    8035              : }
    8036              : 
    8037              : extern __inline __m256i
    8038              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8039              : _mm512_mask_cvtt_roundpd_epu32 (__m256i __W, __mmask8 __U, __m512d __A,
    8040              :                 const int __R)
    8041              : {
    8042              :   return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,
    8043              :                               (__v8si) __W,
    8044              :                               (__mmask8) __U, __R);
    8045              : }
    8046              : 
    8047              : extern __inline __m256i
    8048              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8049              : _mm512_maskz_cvtt_roundpd_epu32 (__mmask8 __U, __m512d __A, const int __R)
    8050              : {
    8051              :   return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,
    8052              :                               (__v8si)
    8053              :                               _mm256_setzero_si256 (),
    8054              :                               (__mmask8) __U, __R);
    8055              : }
    8056              : #else
    8057              : #define _mm512_cvtt_roundpd_epi32(A, B)          \
    8058              :     ((__m256i)__builtin_ia32_cvttpd2dq512_mask(A, (__v8si)_mm256_undefined_si256(), -1, B))
    8059              : 
    8060              : #define _mm512_mask_cvtt_roundpd_epi32(W, U, A, B)   \
    8061              :     ((__m256i)__builtin_ia32_cvttpd2dq512_mask(A, (__v8si)(W), U, B))
    8062              : 
    8063              : #define _mm512_maskz_cvtt_roundpd_epi32(U, A, B)     \
    8064              :     ((__m256i)__builtin_ia32_cvttpd2dq512_mask(A, (__v8si)_mm256_setzero_si256(), U, B))
    8065              : 
    8066              : #define _mm512_cvtt_roundpd_epu32(A, B)          \
    8067              :     ((__m256i)__builtin_ia32_cvttpd2udq512_mask(A, (__v8si)_mm256_undefined_si256(), -1, B))
    8068              : 
    8069              : #define _mm512_mask_cvtt_roundpd_epu32(W, U, A, B)   \
    8070              :     ((__m256i)__builtin_ia32_cvttpd2udq512_mask(A, (__v8si)(W), U, B))
    8071              : 
    8072              : #define _mm512_maskz_cvtt_roundpd_epu32(U, A, B)     \
    8073              :     ((__m256i)__builtin_ia32_cvttpd2udq512_mask(A, (__v8si)_mm256_setzero_si256(), U, B))
    8074              : #endif
    8075              : 
    8076              : #ifdef __OPTIMIZE__
    8077              : extern __inline __m256i
    8078              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8079              : _mm512_cvt_roundpd_epi32 (__m512d __A, const int __R)
    8080              : {
    8081              :   return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A,
    8082              :                             (__v8si)
    8083              :                             _mm256_undefined_si256 (),
    8084              :                             (__mmask8) -1, __R);
    8085              : }
    8086              : 
    8087              : extern __inline __m256i
    8088              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8089              : _mm512_mask_cvt_roundpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A,
    8090              :                    const int __R)
    8091              : {
    8092              :   return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A,
    8093              :                             (__v8si) __W,
    8094              :                             (__mmask8) __U, __R);
    8095              : }
    8096              : 
    8097              : extern __inline __m256i
    8098              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8099              : _mm512_maskz_cvt_roundpd_epi32 (__mmask8 __U, __m512d __A, const int __R)
    8100              : {
    8101              :   return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A,
    8102              :                             (__v8si)
    8103              :                             _mm256_setzero_si256 (),
    8104              :                             (__mmask8) __U, __R);
    8105              : }
    8106              : 
    8107              : extern __inline __m256i
    8108              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8109              : _mm512_cvt_roundpd_epu32 (__m512d __A, const int __R)
    8110              : {
    8111              :   return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A,
    8112              :                              (__v8si)
    8113              :                              _mm256_undefined_si256 (),
    8114              :                              (__mmask8) -1, __R);
    8115              : }
    8116              : 
    8117              : extern __inline __m256i
    8118              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8119              : _mm512_mask_cvt_roundpd_epu32 (__m256i __W, __mmask8 __U, __m512d __A,
    8120              :                    const int __R)
    8121              : {
    8122              :   return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A,
    8123              :                              (__v8si) __W,
    8124              :                              (__mmask8) __U, __R);
    8125              : }
    8126              : 
    8127              : extern __inline __m256i
    8128              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8129              : _mm512_maskz_cvt_roundpd_epu32 (__mmask8 __U, __m512d __A, const int __R)
    8130              : {
    8131              :   return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A,
    8132              :                              (__v8si)
    8133              :                              _mm256_setzero_si256 (),
    8134              :                              (__mmask8) __U, __R);
    8135              : }
    8136              : #else
    8137              : #define _mm512_cvt_roundpd_epi32(A, B)          \
    8138              :     ((__m256i)__builtin_ia32_cvtpd2dq512_mask(A, (__v8si)_mm256_undefined_si256(), -1, B))
    8139              : 
    8140              : #define _mm512_mask_cvt_roundpd_epi32(W, U, A, B)   \
    8141              :     ((__m256i)__builtin_ia32_cvtpd2dq512_mask(A, (__v8si)(W), U, B))
    8142              : 
    8143              : #define _mm512_maskz_cvt_roundpd_epi32(U, A, B)     \
    8144              :     ((__m256i)__builtin_ia32_cvtpd2dq512_mask(A, (__v8si)_mm256_setzero_si256(), U, B))
    8145              : 
    8146              : #define _mm512_cvt_roundpd_epu32(A, B)          \
    8147              :     ((__m256i)__builtin_ia32_cvtpd2udq512_mask(A, (__v8si)_mm256_undefined_si256(), -1, B))
    8148              : 
    8149              : #define _mm512_mask_cvt_roundpd_epu32(W, U, A, B)   \
    8150              :     ((__m256i)__builtin_ia32_cvtpd2udq512_mask(A, (__v8si)(W), U, B))
    8151              : 
    8152              : #define _mm512_maskz_cvt_roundpd_epu32(U, A, B)     \
    8153              :     ((__m256i)__builtin_ia32_cvtpd2udq512_mask(A, (__v8si)_mm256_setzero_si256(), U, B))
    8154              : #endif
    8155              : 
    8156              : #ifdef __OPTIMIZE__
    8157              : extern __inline __m512i
    8158              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8159              : _mm512_cvtt_roundps_epi32 (__m512 __A, const int __R)
    8160              : {
    8161              :   return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A,
    8162              :                              (__v16si)
    8163              :                              _mm512_undefined_epi32 (),
    8164              :                              (__mmask16) -1, __R);
    8165              : }
    8166              : 
    8167              : extern __inline __m512i
    8168              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8169              : _mm512_mask_cvtt_roundps_epi32 (__m512i __W, __mmask16 __U, __m512 __A,
    8170              :                 const int __R)
    8171              : {
    8172              :   return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A,
    8173              :                              (__v16si) __W,
    8174              :                              (__mmask16) __U, __R);
    8175              : }
    8176              : 
    8177              : extern __inline __m512i
    8178              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8179              : _mm512_maskz_cvtt_roundps_epi32 (__mmask16 __U, __m512 __A, const int __R)
    8180              : {
    8181              :   return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A,
    8182              :                              (__v16si)
    8183              :                              _mm512_setzero_si512 (),
    8184              :                              (__mmask16) __U, __R);
    8185              : }
    8186              : 
    8187              : extern __inline __m512i
    8188              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8189              : _mm512_cvtt_roundps_epu32 (__m512 __A, const int __R)
    8190              : {
    8191              :   return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A,
    8192              :                               (__v16si)
    8193              :                               _mm512_undefined_epi32 (),
    8194              :                               (__mmask16) -1, __R);
    8195              : }
    8196              : 
    8197              : extern __inline __m512i
    8198              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8199              : _mm512_mask_cvtt_roundps_epu32 (__m512i __W, __mmask16 __U, __m512 __A,
    8200              :                 const int __R)
    8201              : {
    8202              :   return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A,
    8203              :                               (__v16si) __W,
    8204              :                               (__mmask16) __U, __R);
    8205              : }
    8206              : 
    8207              : extern __inline __m512i
    8208              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8209              : _mm512_maskz_cvtt_roundps_epu32 (__mmask16 __U, __m512 __A, const int __R)
    8210              : {
    8211              :   return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A,
    8212              :                               (__v16si)
    8213              :                               _mm512_setzero_si512 (),
    8214              :                               (__mmask16) __U, __R);
    8215              : }
    8216              : #else
    8217              : #define _mm512_cvtt_roundps_epi32(A, B)          \
    8218              :     ((__m512i)__builtin_ia32_cvttps2dq512_mask(A, (__v16si)_mm512_undefined_epi32 (), -1, B))
    8219              : 
    8220              : #define _mm512_mask_cvtt_roundps_epi32(W, U, A, B)   \
    8221              :     ((__m512i)__builtin_ia32_cvttps2dq512_mask(A, (__v16si)(W), U, B))
    8222              : 
    8223              : #define _mm512_maskz_cvtt_roundps_epi32(U, A, B)     \
    8224              :     ((__m512i)__builtin_ia32_cvttps2dq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
    8225              : 
    8226              : #define _mm512_cvtt_roundps_epu32(A, B)          \
    8227              :     ((__m512i)__builtin_ia32_cvttps2udq512_mask(A, (__v16si)_mm512_undefined_epi32 (), -1, B))
    8228              : 
    8229              : #define _mm512_mask_cvtt_roundps_epu32(W, U, A, B)   \
    8230              :     ((__m512i)__builtin_ia32_cvttps2udq512_mask(A, (__v16si)(W), U, B))
    8231              : 
    8232              : #define _mm512_maskz_cvtt_roundps_epu32(U, A, B)     \
    8233              :     ((__m512i)__builtin_ia32_cvttps2udq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
    8234              : #endif
    8235              : 
    8236              : #ifdef __OPTIMIZE__
    8237              : extern __inline __m512i
    8238              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8239              : _mm512_cvt_roundps_epi32 (__m512 __A, const int __R)
    8240              : {
    8241              :   return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A,
    8242              :                             (__v16si)
    8243              :                             _mm512_undefined_epi32 (),
    8244              :                             (__mmask16) -1, __R);
    8245              : }
    8246              : 
    8247              : extern __inline __m512i
    8248              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8249              : _mm512_mask_cvt_roundps_epi32 (__m512i __W, __mmask16 __U, __m512 __A,
    8250              :                    const int __R)
    8251              : {
    8252              :   return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A,
    8253              :                             (__v16si) __W,
    8254              :                             (__mmask16) __U, __R);
    8255              : }
    8256              : 
    8257              : extern __inline __m512i
    8258              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8259              : _mm512_maskz_cvt_roundps_epi32 (__mmask16 __U, __m512 __A, const int __R)
    8260              : {
    8261              :   return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A,
    8262              :                             (__v16si)
    8263              :                             _mm512_setzero_si512 (),
    8264              :                             (__mmask16) __U, __R);
    8265              : }
    8266              : 
    8267              : extern __inline __m512i
    8268              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8269              : _mm512_cvt_roundps_epu32 (__m512 __A, const int __R)
    8270              : {
    8271              :   return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,
    8272              :                              (__v16si)
    8273              :                              _mm512_undefined_epi32 (),
    8274              :                              (__mmask16) -1, __R);
    8275              : }
    8276              : 
    8277              : extern __inline __m512i
    8278              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8279              : _mm512_mask_cvt_roundps_epu32 (__m512i __W, __mmask16 __U, __m512 __A,
    8280              :                    const int __R)
    8281              : {
    8282              :   return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,
    8283              :                              (__v16si) __W,
    8284              :                              (__mmask16) __U, __R);
    8285              : }
    8286              : 
    8287              : extern __inline __m512i
    8288              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8289              : _mm512_maskz_cvt_roundps_epu32 (__mmask16 __U, __m512 __A, const int __R)
    8290              : {
    8291              :   return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,
    8292              :                              (__v16si)
    8293              :                              _mm512_setzero_si512 (),
    8294              :                              (__mmask16) __U, __R);
    8295              : }
    8296              : #else
    8297              : #define _mm512_cvt_roundps_epi32(A, B)          \
    8298              :     ((__m512i)__builtin_ia32_cvtps2dq512_mask(A, (__v16si)_mm512_undefined_epi32 (), -1, B))
    8299              : 
    8300              : #define _mm512_mask_cvt_roundps_epi32(W, U, A, B)   \
    8301              :     ((__m512i)__builtin_ia32_cvtps2dq512_mask(A, (__v16si)(W), U, B))
    8302              : 
    8303              : #define _mm512_maskz_cvt_roundps_epi32(U, A, B)     \
    8304              :     ((__m512i)__builtin_ia32_cvtps2dq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
    8305              : 
    8306              : #define _mm512_cvt_roundps_epu32(A, B)          \
    8307              :     ((__m512i)__builtin_ia32_cvtps2udq512_mask(A, (__v16si)_mm512_undefined_epi32 (), -1, B))
    8308              : 
    8309              : #define _mm512_mask_cvt_roundps_epu32(W, U, A, B)   \
    8310              :     ((__m512i)__builtin_ia32_cvtps2udq512_mask(A, (__v16si)(W), U, B))
    8311              : 
    8312              : #define _mm512_maskz_cvt_roundps_epu32(U, A, B)     \
    8313              :     ((__m512i)__builtin_ia32_cvtps2udq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
    8314              : #endif
    8315              : 
    8316              : extern __inline __m128i
    8317              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8318              : _mm512_cvtepi32_epi8 (__m512i __A)
    8319              : {
    8320              :   return (__m128i) __builtin_ia32_pmovdb512_mask ((__v16si) __A,
    8321              :                           (__v16qi)
    8322              :                           _mm_undefined_si128 (),
    8323              :                           (__mmask16) -1);
    8324              : }
    8325              : 
    8326              : extern __inline void
    8327              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8328              : _mm512_mask_cvtepi32_storeu_epi8 (void * __P, __mmask16 __M, __m512i __A)
    8329              : {
    8330              :   __builtin_ia32_pmovdb512mem_mask ((__v16qi *) __P, (__v16si) __A, __M);
    8331              : }
    8332              : 
    8333              : extern __inline __m128i
    8334              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8335              : _mm512_mask_cvtepi32_epi8 (__m128i __O, __mmask16 __M, __m512i __A)
    8336              : {
    8337              :   return (__m128i) __builtin_ia32_pmovdb512_mask ((__v16si) __A,
    8338              :                           (__v16qi) __O, __M);
    8339              : }
    8340              : 
    8341              : extern __inline __m128i
    8342              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8343              : _mm512_maskz_cvtepi32_epi8 (__mmask16 __M, __m512i __A)
    8344              : {
    8345              :   return (__m128i) __builtin_ia32_pmovdb512_mask ((__v16si) __A,
    8346              :                           (__v16qi)
    8347              :                           _mm_setzero_si128 (),
    8348              :                           __M);
    8349              : }
    8350              : 
    8351              : extern __inline __m128i
    8352              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8353              : _mm512_cvtsepi32_epi8 (__m512i __A)
    8354              : {
    8355              :   return (__m128i) __builtin_ia32_pmovsdb512_mask ((__v16si) __A,
    8356              :                            (__v16qi)
    8357              :                            _mm_undefined_si128 (),
    8358              :                            (__mmask16) -1);
    8359              : }
    8360              : 
    8361              : extern __inline void
    8362              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8363              : _mm512_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask16 __M, __m512i __A)
    8364              : {
    8365              :   __builtin_ia32_pmovsdb512mem_mask ((__v16qi *) __P, (__v16si) __A, __M);
    8366              : }
    8367              : 
    8368              : extern __inline __m128i
    8369              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8370              : _mm512_mask_cvtsepi32_epi8 (__m128i __O, __mmask16 __M, __m512i __A)
    8371              : {
    8372              :   return (__m128i) __builtin_ia32_pmovsdb512_mask ((__v16si) __A,
    8373              :                            (__v16qi) __O, __M);
    8374              : }
    8375              : 
    8376              : extern __inline __m128i
    8377              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8378              : _mm512_maskz_cvtsepi32_epi8 (__mmask16 __M, __m512i __A)
    8379              : {
    8380              :   return (__m128i) __builtin_ia32_pmovsdb512_mask ((__v16si) __A,
    8381              :                            (__v16qi)
    8382              :                            _mm_setzero_si128 (),
    8383              :                            __M);
    8384              : }
    8385              : 
    8386              : extern __inline __m128i
    8387              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8388              : _mm512_cvtusepi32_epi8 (__m512i __A)
    8389              : {
    8390              :   return (__m128i) __builtin_ia32_pmovusdb512_mask ((__v16si) __A,
    8391              :                             (__v16qi)
    8392              :                             _mm_undefined_si128 (),
    8393              :                             (__mmask16) -1);
    8394              : }
    8395              : 
    8396              : extern __inline void
    8397              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8398              : _mm512_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask16 __M, __m512i __A)
    8399              : {
    8400              :   __builtin_ia32_pmovusdb512mem_mask ((__v16qi *) __P, (__v16si) __A, __M);
    8401              : }
    8402              : 
    8403              : extern __inline __m128i
    8404              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8405              : _mm512_mask_cvtusepi32_epi8 (__m128i __O, __mmask16 __M, __m512i __A)
    8406              : {
    8407              :   return (__m128i) __builtin_ia32_pmovusdb512_mask ((__v16si) __A,
    8408              :                             (__v16qi) __O,
    8409              :                             __M);
    8410              : }
    8411              : 
    8412              : extern __inline __m128i
    8413              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8414              : _mm512_maskz_cvtusepi32_epi8 (__mmask16 __M, __m512i __A)
    8415              : {
    8416              :   return (__m128i) __builtin_ia32_pmovusdb512_mask ((__v16si) __A,
    8417              :                             (__v16qi)
    8418              :                             _mm_setzero_si128 (),
    8419              :                             __M);
    8420              : }
    8421              : 
    8422              : extern __inline __m256i
    8423              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8424              : _mm512_cvtepi32_epi16 (__m512i __A)
    8425              : {
    8426              :   return (__m256i) __builtin_ia32_pmovdw512_mask ((__v16si) __A,
    8427              :                           (__v16hi)
    8428              :                           _mm256_undefined_si256 (),
    8429              :                           (__mmask16) -1);
    8430              : }
    8431              : 
    8432              : extern __inline void
    8433              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8434              : _mm512_mask_cvtepi32_storeu_epi16 (void * __P, __mmask16 __M, __m512i __A)
    8435              : {
    8436              :   __builtin_ia32_pmovdw512mem_mask ((__v16hi *) __P, (__v16si) __A, __M);
    8437              : }
    8438              : 
    8439              : extern __inline __m256i
    8440              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8441              : _mm512_mask_cvtepi32_epi16 (__m256i __O, __mmask16 __M, __m512i __A)
    8442              : {
    8443              :   return (__m256i) __builtin_ia32_pmovdw512_mask ((__v16si) __A,
    8444              :                           (__v16hi) __O, __M);
    8445              : }
    8446              : 
    8447              : extern __inline __m256i
    8448              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8449              : _mm512_maskz_cvtepi32_epi16 (__mmask16 __M, __m512i __A)
    8450              : {
    8451              :   return (__m256i) __builtin_ia32_pmovdw512_mask ((__v16si) __A,
    8452              :                           (__v16hi)
    8453              :                           _mm256_setzero_si256 (),
    8454              :                           __M);
    8455              : }
    8456              : 
    8457              : extern __inline __m256i
    8458              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8459              : _mm512_cvtsepi32_epi16 (__m512i __A)
    8460              : {
    8461              :   return (__m256i) __builtin_ia32_pmovsdw512_mask ((__v16si) __A,
    8462              :                            (__v16hi)
    8463              :                            _mm256_undefined_si256 (),
    8464              :                            (__mmask16) -1);
    8465              : }
    8466              : 
    8467              : extern __inline void
    8468              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8469              : _mm512_mask_cvtsepi32_storeu_epi16 (void *__P, __mmask16 __M, __m512i __A)
    8470              : {
    8471              :   __builtin_ia32_pmovsdw512mem_mask ((__v16hi*) __P, (__v16si) __A, __M);
    8472              : }
    8473              : 
    8474              : extern __inline __m256i
    8475              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8476              : _mm512_mask_cvtsepi32_epi16 (__m256i __O, __mmask16 __M, __m512i __A)
    8477              : {
    8478              :   return (__m256i) __builtin_ia32_pmovsdw512_mask ((__v16si) __A,
    8479              :                            (__v16hi) __O, __M);
    8480              : }
    8481              : 
    8482              : extern __inline __m256i
    8483              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8484              : _mm512_maskz_cvtsepi32_epi16 (__mmask16 __M, __m512i __A)
    8485              : {
    8486              :   return (__m256i) __builtin_ia32_pmovsdw512_mask ((__v16si) __A,
    8487              :                            (__v16hi)
    8488              :                            _mm256_setzero_si256 (),
    8489              :                            __M);
    8490              : }
    8491              : 
    8492              : extern __inline __m256i
    8493              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8494              : _mm512_cvtusepi32_epi16 (__m512i __A)
    8495              : {
    8496              :   return (__m256i) __builtin_ia32_pmovusdw512_mask ((__v16si) __A,
    8497              :                             (__v16hi)
    8498              :                             _mm256_undefined_si256 (),
    8499              :                             (__mmask16) -1);
    8500              : }
    8501              : 
    8502              : extern __inline void
    8503              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8504              : _mm512_mask_cvtusepi32_storeu_epi16 (void *__P, __mmask16 __M, __m512i __A)
    8505              : {
    8506              :   __builtin_ia32_pmovusdw512mem_mask ((__v16hi*) __P, (__v16si) __A, __M);
    8507              : }
    8508              : 
    8509              : extern __inline __m256i
    8510              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8511              : _mm512_mask_cvtusepi32_epi16 (__m256i __O, __mmask16 __M, __m512i __A)
    8512              : {
    8513              :   return (__m256i) __builtin_ia32_pmovusdw512_mask ((__v16si) __A,
    8514              :                             (__v16hi) __O,
    8515              :                             __M);
    8516              : }
    8517              : 
    8518              : extern __inline __m256i
    8519              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8520              : _mm512_maskz_cvtusepi32_epi16 (__mmask16 __M, __m512i __A)
    8521              : {
    8522              :   return (__m256i) __builtin_ia32_pmovusdw512_mask ((__v16si) __A,
    8523              :                             (__v16hi)
    8524              :                             _mm256_setzero_si256 (),
    8525              :                             __M);
    8526              : }
    8527              : 
    8528              : extern __inline __m256i
    8529              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8530              : _mm512_cvtepi64_epi32 (__m512i __A)
    8531              : {
    8532              :   return (__m256i) __builtin_ia32_pmovqd512_mask ((__v8di) __A,
    8533              :                           (__v8si)
    8534              :                           _mm256_undefined_si256 (),
    8535              :                           (__mmask8) -1);
    8536              : }
    8537              : 
    8538              : extern __inline void
    8539              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8540              : _mm512_mask_cvtepi64_storeu_epi32 (void* __P, __mmask8 __M, __m512i __A)
    8541              : {
    8542              :   __builtin_ia32_pmovqd512mem_mask ((__v8si *) __P, (__v8di) __A, __M);
    8543              : }
    8544              : 
    8545              : extern __inline __m256i
    8546              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8547              : _mm512_mask_cvtepi64_epi32 (__m256i __O, __mmask8 __M, __m512i __A)
    8548              : {
    8549              :   return (__m256i) __builtin_ia32_pmovqd512_mask ((__v8di) __A,
    8550              :                           (__v8si) __O, __M);
    8551              : }
    8552              : 
    8553              : extern __inline __m256i
    8554              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8555              : _mm512_maskz_cvtepi64_epi32 (__mmask8 __M, __m512i __A)
    8556              : {
    8557              :   return (__m256i) __builtin_ia32_pmovqd512_mask ((__v8di) __A,
    8558              :                           (__v8si)
    8559              :                           _mm256_setzero_si256 (),
    8560              :                           __M);
    8561              : }
    8562              : 
    8563              : extern __inline __m256i
    8564              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8565              : _mm512_cvtsepi64_epi32 (__m512i __A)
    8566              : {
    8567              :   return (__m256i) __builtin_ia32_pmovsqd512_mask ((__v8di) __A,
    8568              :                            (__v8si)
    8569              :                            _mm256_undefined_si256 (),
    8570              :                            (__mmask8) -1);
    8571              : }
    8572              : 
    8573              : extern __inline void
    8574              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8575              : _mm512_mask_cvtsepi64_storeu_epi32 (void *__P, __mmask8 __M, __m512i __A)
    8576              : {
    8577              :   __builtin_ia32_pmovsqd512mem_mask ((__v8si *) __P, (__v8di) __A, __M);
    8578              : }
    8579              : 
    8580              : extern __inline __m256i
    8581              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8582              : _mm512_mask_cvtsepi64_epi32 (__m256i __O, __mmask8 __M, __m512i __A)
    8583              : {
    8584              :   return (__m256i) __builtin_ia32_pmovsqd512_mask ((__v8di) __A,
    8585              :                            (__v8si) __O, __M);
    8586              : }
    8587              : 
    8588              : extern __inline __m256i
    8589              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8590              : _mm512_maskz_cvtsepi64_epi32 (__mmask8 __M, __m512i __A)
    8591              : {
    8592              :   return (__m256i) __builtin_ia32_pmovsqd512_mask ((__v8di) __A,
    8593              :                            (__v8si)
    8594              :                            _mm256_setzero_si256 (),
    8595              :                            __M);
    8596              : }
    8597              : 
    8598              : extern __inline __m256i
    8599              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8600              : _mm512_cvtusepi64_epi32 (__m512i __A)
    8601              : {
    8602              :   return (__m256i) __builtin_ia32_pmovusqd512_mask ((__v8di) __A,
    8603              :                             (__v8si)
    8604              :                             _mm256_undefined_si256 (),
    8605              :                             (__mmask8) -1);
    8606              : }
    8607              : 
    8608              : extern __inline void
    8609              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8610              : _mm512_mask_cvtusepi64_storeu_epi32 (void* __P, __mmask8 __M, __m512i __A)
    8611              : {
    8612              :   __builtin_ia32_pmovusqd512mem_mask ((__v8si*) __P, (__v8di) __A, __M);
    8613              : }
    8614              : 
    8615              : extern __inline __m256i
    8616              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8617              : _mm512_mask_cvtusepi64_epi32 (__m256i __O, __mmask8 __M, __m512i __A)
    8618              : {
    8619              :   return (__m256i) __builtin_ia32_pmovusqd512_mask ((__v8di) __A,
    8620              :                             (__v8si) __O, __M);
    8621              : }
    8622              : 
    8623              : extern __inline __m256i
    8624              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8625              : _mm512_maskz_cvtusepi64_epi32 (__mmask8 __M, __m512i __A)
    8626              : {
    8627              :   return (__m256i) __builtin_ia32_pmovusqd512_mask ((__v8di) __A,
    8628              :                             (__v8si)
    8629              :                             _mm256_setzero_si256 (),
    8630              :                             __M);
    8631              : }
    8632              : 
    8633              : extern __inline __m128i
    8634              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8635              : _mm512_cvtepi64_epi16 (__m512i __A)
    8636              : {
    8637              :   return (__m128i) __builtin_ia32_pmovqw512_mask ((__v8di) __A,
    8638              :                           (__v8hi)
    8639              :                           _mm_undefined_si128 (),
    8640              :                           (__mmask8) -1);
    8641              : }
    8642              : 
    8643              : extern __inline void
    8644              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8645              : _mm512_mask_cvtepi64_storeu_epi16 (void *__P, __mmask8 __M, __m512i __A)
    8646              : {
    8647              :   __builtin_ia32_pmovqw512mem_mask ((__v8hi *) __P, (__v8di) __A, __M);
    8648              : }
    8649              : 
    8650              : extern __inline __m128i
    8651              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8652              : _mm512_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m512i __A)
    8653              : {
    8654              :   return (__m128i) __builtin_ia32_pmovqw512_mask ((__v8di) __A,
    8655              :                           (__v8hi) __O, __M);
    8656              : }
    8657              : 
    8658              : extern __inline __m128i
    8659              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8660              : _mm512_maskz_cvtepi64_epi16 (__mmask8 __M, __m512i __A)
    8661              : {
    8662              :   return (__m128i) __builtin_ia32_pmovqw512_mask ((__v8di) __A,
    8663              :                           (__v8hi)
    8664              :                           _mm_setzero_si128 (),
    8665              :                           __M);
    8666              : }
    8667              : 
    8668              : extern __inline __m128i
    8669              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8670              : _mm512_cvtsepi64_epi16 (__m512i __A)
    8671              : {
    8672              :   return (__m128i) __builtin_ia32_pmovsqw512_mask ((__v8di) __A,
    8673              :                            (__v8hi)
    8674              :                            _mm_undefined_si128 (),
    8675              :                            (__mmask8) -1);
    8676              : }
    8677              : 
    8678              : extern __inline void
    8679              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8680              : _mm512_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m512i __A)
    8681              : {
    8682              :   __builtin_ia32_pmovsqw512mem_mask ((__v8hi *) __P, (__v8di) __A, __M);
    8683              : }
    8684              : 
    8685              : extern __inline __m128i
    8686              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8687              : _mm512_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m512i __A)
    8688              : {
    8689              :   return (__m128i) __builtin_ia32_pmovsqw512_mask ((__v8di) __A,
    8690              :                            (__v8hi) __O, __M);
    8691              : }
    8692              : 
    8693              : extern __inline __m128i
    8694              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8695              : _mm512_maskz_cvtsepi64_epi16 (__mmask8 __M, __m512i __A)
    8696              : {
    8697              :   return (__m128i) __builtin_ia32_pmovsqw512_mask ((__v8di) __A,
    8698              :                            (__v8hi)
    8699              :                            _mm_setzero_si128 (),
    8700              :                            __M);
    8701              : }
    8702              : 
    8703              : extern __inline __m128i
    8704              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8705              : _mm512_cvtusepi64_epi16 (__m512i __A)
    8706              : {
    8707              :   return (__m128i) __builtin_ia32_pmovusqw512_mask ((__v8di) __A,
    8708              :                             (__v8hi)
    8709              :                             _mm_undefined_si128 (),
    8710              :                             (__mmask8) -1);
    8711              : }
    8712              : 
    8713              : extern __inline void
    8714              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8715              : _mm512_mask_cvtusepi64_storeu_epi16 (void *__P, __mmask8 __M, __m512i __A)
    8716              : {
    8717              :   __builtin_ia32_pmovusqw512mem_mask ((__v8hi*) __P, (__v8di) __A, __M);
    8718              : }
    8719              : 
    8720              : extern __inline __m128i
    8721              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8722              : _mm512_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m512i __A)
    8723              : {
    8724              :   return (__m128i) __builtin_ia32_pmovusqw512_mask ((__v8di) __A,
    8725              :                             (__v8hi) __O, __M);
    8726              : }
    8727              : 
    8728              : extern __inline __m128i
    8729              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8730              : _mm512_maskz_cvtusepi64_epi16 (__mmask8 __M, __m512i __A)
    8731              : {
    8732              :   return (__m128i) __builtin_ia32_pmovusqw512_mask ((__v8di) __A,
    8733              :                             (__v8hi)
    8734              :                             _mm_setzero_si128 (),
    8735              :                             __M);
    8736              : }
    8737              : 
    8738              : extern __inline __m128i
    8739              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8740              : _mm512_cvtepi64_epi8 (__m512i __A)
    8741              : {
    8742              :   return (__m128i) __builtin_ia32_pmovqb512_mask ((__v8di) __A,
    8743              :                           (__v16qi)
    8744              :                           _mm_undefined_si128 (),
    8745              :                           (__mmask8) -1);
    8746              : }
    8747              : 
    8748              : extern __inline void
    8749              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8750              : _mm512_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m512i __A)
    8751              : {
    8752              :   __builtin_ia32_pmovqb512mem_mask ((unsigned long long *) __P,
    8753              :                     (__v8di) __A, __M);
    8754              : }
    8755              : 
    8756              : extern __inline __m128i
    8757              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8758              : _mm512_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m512i __A)
    8759              : {
    8760              :   return (__m128i) __builtin_ia32_pmovqb512_mask ((__v8di) __A,
    8761              :                           (__v16qi) __O, __M);
    8762              : }
    8763              : 
    8764              : extern __inline __m128i
    8765              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8766              : _mm512_maskz_cvtepi64_epi8 (__mmask8 __M, __m512i __A)
    8767              : {
    8768              :   return (__m128i) __builtin_ia32_pmovqb512_mask ((__v8di) __A,
    8769              :                           (__v16qi)
    8770              :                           _mm_setzero_si128 (),
    8771              :                           __M);
    8772              : }
    8773              : 
    8774              : extern __inline __m128i
    8775              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8776              : _mm512_cvtsepi64_epi8 (__m512i __A)
    8777              : {
    8778              :   return (__m128i) __builtin_ia32_pmovsqb512_mask ((__v8di) __A,
    8779              :                            (__v16qi)
    8780              :                            _mm_undefined_si128 (),
    8781              :                            (__mmask8) -1);
    8782              : }
    8783              : 
    8784              : extern __inline void
    8785              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8786              : _mm512_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m512i __A)
    8787              : {
    8788              :   __builtin_ia32_pmovsqb512mem_mask ((unsigned long long *) __P, (__v8di) __A, __M);
    8789              : }
    8790              : 
    8791              : extern __inline __m128i
    8792              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8793              : _mm512_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m512i __A)
    8794              : {
    8795              :   return (__m128i) __builtin_ia32_pmovsqb512_mask ((__v8di) __A,
    8796              :                            (__v16qi) __O, __M);
    8797              : }
    8798              : 
    8799              : extern __inline __m128i
    8800              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8801              : _mm512_maskz_cvtsepi64_epi8 (__mmask8 __M, __m512i __A)
    8802              : {
    8803              :   return (__m128i) __builtin_ia32_pmovsqb512_mask ((__v8di) __A,
    8804              :                            (__v16qi)
    8805              :                            _mm_setzero_si128 (),
    8806              :                            __M);
    8807              : }
    8808              : 
    8809              : extern __inline __m128i
    8810              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8811              : _mm512_cvtusepi64_epi8 (__m512i __A)
    8812              : {
    8813              :   return (__m128i) __builtin_ia32_pmovusqb512_mask ((__v8di) __A,
    8814              :                             (__v16qi)
    8815              :                             _mm_undefined_si128 (),
    8816              :                             (__mmask8) -1);
    8817              : }
    8818              : 
    8819              : extern __inline void
    8820              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8821              : _mm512_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m512i __A)
    8822              : {
    8823              :   __builtin_ia32_pmovusqb512mem_mask ((unsigned long long *) __P, (__v8di) __A, __M);
    8824              : }
    8825              : 
    8826              : extern __inline __m128i
    8827              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8828              : _mm512_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m512i __A)
    8829              : {
    8830              :   return (__m128i) __builtin_ia32_pmovusqb512_mask ((__v8di) __A,
    8831              :                             (__v16qi) __O,
    8832              :                             __M);
    8833              : }
    8834              : 
    8835              : extern __inline __m128i
    8836              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8837              : _mm512_maskz_cvtusepi64_epi8 (__mmask8 __M, __m512i __A)
    8838              : {
    8839              :   return (__m128i) __builtin_ia32_pmovusqb512_mask ((__v8di) __A,
    8840              :                             (__v16qi)
    8841              :                             _mm_setzero_si128 (),
    8842              :                             __M);
    8843              : }
    8844              : 
    8845              : extern __inline __m512d
    8846              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8847              : _mm512_cvtepi32_pd (__m256i __A)
    8848              : {
    8849              :   return (__m512d) __builtin_ia32_cvtdq2pd512_mask ((__v8si) __A,
    8850              :                             (__v8df)
    8851              :                             _mm512_undefined_pd (),
    8852              :                             (__mmask8) -1);
    8853              : }
    8854              : 
    8855              : extern __inline __m512d
    8856              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8857              : _mm512_mask_cvtepi32_pd (__m512d __W, __mmask8 __U, __m256i __A)
    8858              : {
    8859              :   return (__m512d) __builtin_ia32_cvtdq2pd512_mask ((__v8si) __A,
    8860              :                             (__v8df) __W,
    8861              :                             (__mmask8) __U);
    8862              : }
    8863              : 
    8864              : extern __inline __m512d
    8865              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8866              : _mm512_maskz_cvtepi32_pd (__mmask8 __U, __m256i __A)
    8867              : {
    8868              :   return (__m512d) __builtin_ia32_cvtdq2pd512_mask ((__v8si) __A,
    8869              :                             (__v8df)
    8870              :                             _mm512_setzero_pd (),
    8871              :                             (__mmask8) __U);
    8872              : }
    8873              : 
    8874              : extern __inline __m512d
    8875              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8876              : _mm512_cvtepu32_pd (__m256i __A)
    8877              : {
    8878              :   return (__m512d) __builtin_ia32_cvtudq2pd512_mask ((__v8si) __A,
    8879              :                              (__v8df)
    8880              :                              _mm512_undefined_pd (),
    8881              :                              (__mmask8) -1);
    8882              : }
    8883              : 
    8884              : extern __inline __m512d
    8885              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8886              : _mm512_mask_cvtepu32_pd (__m512d __W, __mmask8 __U, __m256i __A)
    8887              : {
    8888              :   return (__m512d) __builtin_ia32_cvtudq2pd512_mask ((__v8si) __A,
    8889              :                              (__v8df) __W,
    8890              :                              (__mmask8) __U);
    8891              : }
    8892              : 
    8893              : extern __inline __m512d
    8894              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8895              : _mm512_maskz_cvtepu32_pd (__mmask8 __U, __m256i __A)
    8896              : {
    8897              :   return (__m512d) __builtin_ia32_cvtudq2pd512_mask ((__v8si) __A,
    8898              :                              (__v8df)
    8899              :                              _mm512_setzero_pd (),
    8900              :                              (__mmask8) __U);
    8901              : }
    8902              : 
    8903              : #ifdef __OPTIMIZE__
    8904              : extern __inline __m512
    8905              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8906              : _mm512_cvt_roundepi32_ps (__m512i __A, const int __R)
    8907              : {
    8908              :   return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A,
    8909              :                            (__v16sf)
    8910              :                            _mm512_undefined_ps (),
    8911              :                            (__mmask16) -1, __R);
    8912              : }
    8913              : 
    8914              : extern __inline __m512
    8915              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8916              : _mm512_mask_cvt_roundepi32_ps (__m512 __W, __mmask16 __U, __m512i __A,
    8917              :                    const int __R)
    8918              : {
    8919              :   return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A,
    8920              :                            (__v16sf) __W,
    8921              :                            (__mmask16) __U, __R);
    8922              : }
    8923              : 
    8924              : extern __inline __m512
    8925              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8926              : _mm512_maskz_cvt_roundepi32_ps (__mmask16 __U, __m512i __A, const int __R)
    8927              : {
    8928              :   return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A,
    8929              :                            (__v16sf)
    8930              :                            _mm512_setzero_ps (),
    8931              :                            (__mmask16) __U, __R);
    8932              : }
    8933              : 
    8934              : extern __inline __m512
    8935              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8936              : _mm512_cvt_roundepu32_ps (__m512i __A, const int __R)
    8937              : {
    8938              :   return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A,
    8939              :                             (__v16sf)
    8940              :                             _mm512_undefined_ps (),
    8941              :                             (__mmask16) -1, __R);
    8942              : }
    8943              : 
    8944              : extern __inline __m512
    8945              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8946              : _mm512_mask_cvt_roundepu32_ps (__m512 __W, __mmask16 __U, __m512i __A,
    8947              :                    const int __R)
    8948              : {
    8949              :   return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A,
    8950              :                             (__v16sf) __W,
    8951              :                             (__mmask16) __U, __R);
    8952              : }
    8953              : 
    8954              : extern __inline __m512
    8955              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8956              : _mm512_maskz_cvt_roundepu32_ps (__mmask16 __U, __m512i __A, const int __R)
    8957              : {
    8958              :   return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A,
    8959              :                             (__v16sf)
    8960              :                             _mm512_setzero_ps (),
    8961              :                             (__mmask16) __U, __R);
    8962              : }
    8963              : 
    8964              : #else
    8965              : #define _mm512_cvt_roundepi32_ps(A, B)        \
    8966              :     (__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(A), (__v16sf)_mm512_undefined_ps(), -1, B)
    8967              : 
    8968              : #define _mm512_mask_cvt_roundepi32_ps(W, U, A, B)   \
    8969              :     (__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(A), W, U, B)
    8970              : 
    8971              : #define _mm512_maskz_cvt_roundepi32_ps(U, A, B)      \
    8972              :     (__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(A), (__v16sf)_mm512_setzero_ps(), U, B)
    8973              : 
    8974              : #define _mm512_cvt_roundepu32_ps(A, B)        \
    8975              :     (__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(A), (__v16sf)_mm512_undefined_ps(), -1, B)
    8976              : 
    8977              : #define _mm512_mask_cvt_roundepu32_ps(W, U, A, B)   \
    8978              :     (__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(A), W, U, B)
    8979              : 
    8980              : #define _mm512_maskz_cvt_roundepu32_ps(U, A, B)      \
    8981              :     (__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(A), (__v16sf)_mm512_setzero_ps(), U, B)
    8982              : #endif
    8983              : 
    8984              : #ifdef __OPTIMIZE__
    8985              : extern __inline __m256d
    8986              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8987              : _mm512_extractf64x4_pd (__m512d __A, const int __imm)
    8988              : {
    8989              :   return (__m256d) __builtin_ia32_extractf64x4_mask ((__v8df) __A,
    8990              :                              __imm,
    8991              :                              (__v4df)
    8992              :                              _mm256_undefined_pd (),
    8993              :                              (__mmask8) -1);
    8994              : }
    8995              : 
    8996              : extern __inline __m256d
    8997              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    8998              : _mm512_mask_extractf64x4_pd (__m256d __W, __mmask8 __U, __m512d __A,
    8999              :                  const int __imm)
    9000              : {
    9001              :   return (__m256d) __builtin_ia32_extractf64x4_mask ((__v8df) __A,
    9002              :                              __imm,
    9003              :                              (__v4df) __W,
    9004              :                              (__mmask8) __U);
    9005              : }
    9006              : 
    9007              : extern __inline __m256d
    9008              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9009              : _mm512_maskz_extractf64x4_pd (__mmask8 __U, __m512d __A, const int __imm)
    9010              : {
    9011              :   return (__m256d) __builtin_ia32_extractf64x4_mask ((__v8df) __A,
    9012              :                              __imm,
    9013              :                              (__v4df)
    9014              :                              _mm256_setzero_pd (),
    9015              :                              (__mmask8) __U);
    9016              : }
    9017              : 
    9018              : extern __inline __m128
    9019              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9020              : _mm512_extractf32x4_ps (__m512 __A, const int __imm)
    9021              : {
    9022              :   return (__m128) __builtin_ia32_extractf32x4_mask ((__v16sf) __A,
    9023              :                             __imm,
    9024              :                             (__v4sf)
    9025              :                             _mm_undefined_ps (),
    9026              :                             (__mmask8) -1);
    9027              : }
    9028              : 
    9029              : extern __inline __m128
    9030              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9031              : _mm512_mask_extractf32x4_ps (__m128 __W, __mmask8 __U, __m512 __A,
    9032              :                  const int __imm)
    9033              : {
    9034              :   return (__m128) __builtin_ia32_extractf32x4_mask ((__v16sf) __A,
    9035              :                             __imm,
    9036              :                             (__v4sf) __W,
    9037              :                             (__mmask8) __U);
    9038              : }
    9039              : 
    9040              : extern __inline __m128
    9041              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9042              : _mm512_maskz_extractf32x4_ps (__mmask8 __U, __m512 __A, const int __imm)
    9043              : {
    9044              :   return (__m128) __builtin_ia32_extractf32x4_mask ((__v16sf) __A,
    9045              :                             __imm,
    9046              :                             (__v4sf)
    9047              :                             _mm_setzero_ps (),
    9048              :                             (__mmask8) __U);
    9049              : }
    9050              : 
    9051              : extern __inline __m256i
    9052              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9053              : _mm512_extracti64x4_epi64 (__m512i __A, const int __imm)
    9054              : {
    9055              :   return (__m256i) __builtin_ia32_extracti64x4_mask ((__v8di) __A,
    9056              :                              __imm,
    9057              :                              (__v4di)
    9058              :                              _mm256_undefined_si256 (),
    9059              :                              (__mmask8) -1);
    9060              : }
    9061              : 
    9062              : extern __inline __m256i
    9063              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9064              : _mm512_mask_extracti64x4_epi64 (__m256i __W, __mmask8 __U, __m512i __A,
    9065              :                 const int __imm)
    9066              : {
    9067              :   return (__m256i) __builtin_ia32_extracti64x4_mask ((__v8di) __A,
    9068              :                              __imm,
    9069              :                              (__v4di) __W,
    9070              :                              (__mmask8) __U);
    9071              : }
    9072              : 
    9073              : extern __inline __m256i
    9074              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9075              : _mm512_maskz_extracti64x4_epi64 (__mmask8 __U, __m512i __A, const int __imm)
    9076              : {
    9077              :   return (__m256i) __builtin_ia32_extracti64x4_mask ((__v8di) __A,
    9078              :                              __imm,
    9079              :                              (__v4di)
    9080              :                              _mm256_setzero_si256 (),
    9081              :                              (__mmask8) __U);
    9082              : }
    9083              : 
    9084              : extern __inline __m128i
    9085              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9086              : _mm512_extracti32x4_epi32 (__m512i __A, const int __imm)
    9087              : {
    9088              :   return (__m128i) __builtin_ia32_extracti32x4_mask ((__v16si) __A,
    9089              :                              __imm,
    9090              :                              (__v4si)
    9091              :                              _mm_undefined_si128 (),
    9092              :                              (__mmask8) -1);
    9093              : }
    9094              : 
    9095              : extern __inline __m128i
    9096              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9097              : _mm512_mask_extracti32x4_epi32 (__m128i __W, __mmask8 __U, __m512i __A,
    9098              :                 const int __imm)
    9099              : {
    9100              :   return (__m128i) __builtin_ia32_extracti32x4_mask ((__v16si) __A,
    9101              :                              __imm,
    9102              :                              (__v4si) __W,
    9103              :                              (__mmask8) __U);
    9104              : }
    9105              : 
    9106              : extern __inline __m128i
    9107              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9108              : _mm512_maskz_extracti32x4_epi32 (__mmask8 __U, __m512i __A, const int __imm)
    9109              : {
    9110              :   return (__m128i) __builtin_ia32_extracti32x4_mask ((__v16si) __A,
    9111              :                              __imm,
    9112              :                              (__v4si)
    9113              :                              _mm_setzero_si128 (),
    9114              :                              (__mmask8) __U);
    9115              : }
    9116              : #else
    9117              : 
    9118              : #define _mm512_extractf64x4_pd(X, C)                                    \
    9119              :   ((__m256d) __builtin_ia32_extractf64x4_mask ((__v8df)(__m512d) (X),   \
    9120              :     (int) (C),\
    9121              :     (__v4df)(__m256d)_mm256_undefined_pd(),\
    9122              :     (__mmask8)-1))
    9123              : 
    9124              : #define _mm512_mask_extractf64x4_pd(W, U, X, C)                         \
    9125              :   ((__m256d) __builtin_ia32_extractf64x4_mask ((__v8df)(__m512d) (X),   \
    9126              :     (int) (C),\
    9127              :     (__v4df)(__m256d)(W),\
    9128              :     (__mmask8)(U)))
    9129              : 
    9130              : #define _mm512_maskz_extractf64x4_pd(U, X, C)                           \
    9131              :   ((__m256d) __builtin_ia32_extractf64x4_mask ((__v8df)(__m512d) (X),   \
    9132              :     (int) (C),\
    9133              :     (__v4df)(__m256d)_mm256_setzero_pd(),\
    9134              :     (__mmask8)(U)))
    9135              : 
    9136              : #define _mm512_extractf32x4_ps(X, C)                                    \
    9137              :   ((__m128) __builtin_ia32_extractf32x4_mask ((__v16sf)(__m512) (X),    \
    9138              :     (int) (C),\
    9139              :     (__v4sf)(__m128)_mm_undefined_ps(),\
    9140              :     (__mmask8)-1))
    9141              : 
    9142              : #define _mm512_mask_extractf32x4_ps(W, U, X, C)                         \
    9143              :   ((__m128) __builtin_ia32_extractf32x4_mask ((__v16sf)(__m512) (X),    \
    9144              :     (int) (C),\
    9145              :     (__v4sf)(__m128)(W),\
    9146              :     (__mmask8)(U)))
    9147              : 
    9148              : #define _mm512_maskz_extractf32x4_ps(U, X, C)                           \
    9149              :   ((__m128) __builtin_ia32_extractf32x4_mask ((__v16sf)(__m512) (X),    \
    9150              :     (int) (C),\
    9151              :     (__v4sf)(__m128)_mm_setzero_ps(),\
    9152              :     (__mmask8)(U)))
    9153              : 
    9154              : #define _mm512_extracti64x4_epi64(X, C)                                 \
    9155              :   ((__m256i) __builtin_ia32_extracti64x4_mask ((__v8di)(__m512i) (X),   \
    9156              :     (int) (C),\
    9157              :     (__v4di)(__m256i)_mm256_undefined_si256 (),\
    9158              :     (__mmask8)-1))
    9159              : 
    9160              : #define _mm512_mask_extracti64x4_epi64(W, U, X, C)                      \
    9161              :   ((__m256i) __builtin_ia32_extracti64x4_mask ((__v8di)(__m512i) (X),   \
    9162              :     (int) (C),\
    9163              :     (__v4di)(__m256i)(W),\
    9164              :     (__mmask8)(U)))
    9165              : 
    9166              : #define _mm512_maskz_extracti64x4_epi64(U, X, C)                        \
    9167              :   ((__m256i) __builtin_ia32_extracti64x4_mask ((__v8di)(__m512i) (X),   \
    9168              :     (int) (C),\
    9169              :     (__v4di)(__m256i)_mm256_setzero_si256 (),\
    9170              :     (__mmask8)(U)))
    9171              : 
    9172              : #define _mm512_extracti32x4_epi32(X, C)                                 \
    9173              :   ((__m128i) __builtin_ia32_extracti32x4_mask ((__v16si)(__m512i) (X),  \
    9174              :     (int) (C),\
    9175              :     (__v4si)(__m128i)_mm_undefined_si128 (),\
    9176              :     (__mmask8)-1))
    9177              : 
    9178              : #define _mm512_mask_extracti32x4_epi32(W, U, X, C)                      \
    9179              :   ((__m128i) __builtin_ia32_extracti32x4_mask ((__v16si)(__m512i) (X),  \
    9180              :     (int) (C),\
    9181              :     (__v4si)(__m128i)(W),\
    9182              :     (__mmask8)(U)))
    9183              : 
    9184              : #define _mm512_maskz_extracti32x4_epi32(U, X, C)                        \
    9185              :   ((__m128i) __builtin_ia32_extracti32x4_mask ((__v16si)(__m512i) (X),  \
    9186              :     (int) (C),\
    9187              :     (__v4si)(__m128i)_mm_setzero_si128 (),\
    9188              :     (__mmask8)(U)))
    9189              : #endif
    9190              : 
    9191              : #ifdef __OPTIMIZE__
    9192              : extern __inline __m512i
    9193              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9194              : _mm512_inserti32x4 (__m512i __A, __m128i __B, const int __imm)
    9195              : {
    9196              :   return (__m512i) __builtin_ia32_inserti32x4_mask ((__v16si) __A,
    9197              :                             (__v4si) __B,
    9198              :                             __imm,
    9199              :                             (__v16si) __A, -1);
    9200              : }
    9201              : 
    9202              : extern __inline __m512
    9203              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9204              : _mm512_insertf32x4 (__m512 __A, __m128 __B, const int __imm)
    9205              : {
    9206              :   return (__m512) __builtin_ia32_insertf32x4_mask ((__v16sf) __A,
    9207              :                            (__v4sf) __B,
    9208              :                            __imm,
    9209              :                            (__v16sf) __A, -1);
    9210              : }
    9211              : 
    9212              : extern __inline __m512i
    9213              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9214              : _mm512_inserti64x4 (__m512i __A, __m256i __B, const int __imm)
    9215              : {
    9216              :   return (__m512i) __builtin_ia32_inserti64x4_mask ((__v8di) __A,
    9217              :                             (__v4di) __B,
    9218              :                             __imm,
    9219              :                             (__v8di)
    9220              :                             _mm512_undefined_epi32 (),
    9221              :                             (__mmask8) -1);
    9222              : }
    9223              : 
    9224              : extern __inline __m512i
    9225              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9226              : _mm512_mask_inserti64x4 (__m512i __W, __mmask8 __U, __m512i __A,
    9227              :              __m256i __B, const int __imm)
    9228              : {
    9229              :   return (__m512i) __builtin_ia32_inserti64x4_mask ((__v8di) __A,
    9230              :                             (__v4di) __B,
    9231              :                             __imm,
    9232              :                             (__v8di) __W,
    9233              :                             (__mmask8) __U);
    9234              : }
    9235              : 
    9236              : extern __inline __m512i
    9237              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9238              : _mm512_maskz_inserti64x4 (__mmask8 __U, __m512i __A, __m256i __B,
    9239              :               const int __imm)
    9240              : {
    9241              :   return (__m512i) __builtin_ia32_inserti64x4_mask ((__v8di) __A,
    9242              :                             (__v4di) __B,
    9243              :                             __imm,
    9244              :                             (__v8di)
    9245              :                             _mm512_setzero_si512 (),
    9246              :                             (__mmask8) __U);
    9247              : }
    9248              : 
    9249              : extern __inline __m512d
    9250              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9251              : _mm512_insertf64x4 (__m512d __A, __m256d __B, const int __imm)
    9252              : {
    9253              :   return (__m512d) __builtin_ia32_insertf64x4_mask ((__v8df) __A,
    9254              :                             (__v4df) __B,
    9255              :                             __imm,
    9256              :                             (__v8df)
    9257              :                             _mm512_undefined_pd (),
    9258              :                             (__mmask8) -1);
    9259              : }
    9260              : 
    9261              : extern __inline __m512d
    9262              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9263              : _mm512_mask_insertf64x4 (__m512d __W, __mmask8 __U, __m512d __A,
    9264              :              __m256d __B, const int __imm)
    9265              : {
    9266              :   return (__m512d) __builtin_ia32_insertf64x4_mask ((__v8df) __A,
    9267              :                             (__v4df) __B,
    9268              :                             __imm,
    9269              :                             (__v8df) __W,
    9270              :                             (__mmask8) __U);
    9271              : }
    9272              : 
    9273              : extern __inline __m512d
    9274              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9275              : _mm512_maskz_insertf64x4 (__mmask8 __U, __m512d __A, __m256d __B,
    9276              :               const int __imm)
    9277              : {
    9278              :   return (__m512d) __builtin_ia32_insertf64x4_mask ((__v8df) __A,
    9279              :                             (__v4df) __B,
    9280              :                             __imm,
    9281              :                             (__v8df)
    9282              :                             _mm512_setzero_pd (),
    9283              :                             (__mmask8) __U);
    9284              : }
    9285              : #else
    9286              : #define _mm512_insertf32x4(X, Y, C)                                     \
    9287              :   ((__m512) __builtin_ia32_insertf32x4_mask ((__v16sf)(__m512) (X),     \
    9288              :     (__v4sf)(__m128) (Y), (int) (C), (__v16sf)(__m512) (X), (__mmask16)(-1)))
    9289              : 
    9290              : #define _mm512_inserti32x4(X, Y, C)                                     \
    9291              :   ((__m512i) __builtin_ia32_inserti32x4_mask ((__v16si)(__m512i) (X),   \
    9292              :     (__v4si)(__m128i) (Y), (int) (C), (__v16si)(__m512i) (X), (__mmask16)(-1)))
    9293              : 
    9294              : #define _mm512_insertf64x4(X, Y, C)                                     \
    9295              :   ((__m512d) __builtin_ia32_insertf64x4_mask ((__v8df)(__m512d) (X),    \
    9296              :     (__v4df)(__m256d) (Y), (int) (C),                   \
    9297              :     (__v8df)(__m512d)_mm512_undefined_pd(),             \
    9298              :     (__mmask8)-1))
    9299              : 
    9300              : #define _mm512_mask_insertf64x4(W, U, X, Y, C)                          \
    9301              :   ((__m512d) __builtin_ia32_insertf64x4_mask ((__v8df)(__m512d) (X),    \
    9302              :     (__v4df)(__m256d) (Y), (int) (C),                   \
    9303              :     (__v8df)(__m512d)(W),                       \
    9304              :     (__mmask8)(U)))
    9305              : 
    9306              : #define _mm512_maskz_insertf64x4(U, X, Y, C)                            \
    9307              :   ((__m512d) __builtin_ia32_insertf64x4_mask ((__v8df)(__m512d) (X),    \
    9308              :     (__v4df)(__m256d) (Y), (int) (C),                   \
    9309              :     (__v8df)(__m512d)_mm512_setzero_pd(),               \
    9310              :     (__mmask8)(U)))
    9311              : 
    9312              : #define _mm512_inserti64x4(X, Y, C)                                     \
    9313              :   ((__m512i) __builtin_ia32_inserti64x4_mask ((__v8di)(__m512i) (X),    \
    9314              :     (__v4di)(__m256i) (Y), (int) (C),                   \
    9315              :     (__v8di)(__m512i)_mm512_undefined_epi32 (),             \
    9316              :     (__mmask8)-1))
    9317              : 
    9318              : #define _mm512_mask_inserti64x4(W, U, X, Y, C)                          \
    9319              :   ((__m512i) __builtin_ia32_inserti64x4_mask ((__v8di)(__m512i) (X),    \
    9320              :     (__v4di)(__m256i) (Y), (int) (C),\
    9321              :     (__v8di)(__m512i)(W),\
    9322              :     (__mmask8)(U)))
    9323              : 
    9324              : #define _mm512_maskz_inserti64x4(U, X, Y, C)                            \
    9325              :   ((__m512i) __builtin_ia32_inserti64x4_mask ((__v8di)(__m512i) (X),    \
    9326              :     (__v4di)(__m256i) (Y), (int) (C),                   \
    9327              :     (__v8di)(__m512i)_mm512_setzero_si512 (),               \
    9328              :     (__mmask8)(U)))
    9329              : #endif
    9330              : 
    9331              : extern __inline __m512d
    9332              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9333              : _mm512_loadu_pd (void const *__P)
    9334              : {
    9335              :   return *(__m512d_u *)__P;
    9336              : }
    9337              : 
    9338              : extern __inline __m512d
    9339              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9340              : _mm512_mask_loadu_pd (__m512d __W, __mmask8 __U, void const *__P)
    9341              : {
    9342              :   return (__m512d) __builtin_ia32_loadupd512_mask ((const double *) __P,
    9343              :                            (__v8df) __W,
    9344              :                            (__mmask8) __U);
    9345              : }
    9346              : 
    9347              : extern __inline __m512d
    9348              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9349              : _mm512_maskz_loadu_pd (__mmask8 __U, void const *__P)
    9350              : {
    9351              :   return (__m512d) __builtin_ia32_loadupd512_mask ((const double *) __P,
    9352              :                            (__v8df)
    9353              :                            _mm512_setzero_pd (),
    9354              :                            (__mmask8) __U);
    9355              : }
    9356              : 
    9357              : extern __inline void
    9358              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9359              : _mm512_storeu_pd (void *__P, __m512d __A)
    9360              : {
    9361              :   *(__m512d_u *)__P = __A;
    9362              : }
    9363              : 
    9364              : extern __inline void
    9365              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9366              : _mm512_mask_storeu_pd (void *__P, __mmask8 __U, __m512d __A)
    9367              : {
    9368              :   __builtin_ia32_storeupd512_mask ((double *) __P, (__v8df) __A,
    9369              :                    (__mmask8) __U);
    9370              : }
    9371              : 
    9372              : extern __inline __m512
    9373              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9374              : _mm512_loadu_ps (void const *__P)
    9375              : {
    9376              :   return *(__m512_u *)__P;
    9377              : }
    9378              : 
    9379              : extern __inline __m512
    9380              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9381              : _mm512_mask_loadu_ps (__m512 __W, __mmask16 __U, void const *__P)
    9382              : {
    9383              :   return (__m512) __builtin_ia32_loadups512_mask ((const float *) __P,
    9384              :                           (__v16sf) __W,
    9385              :                           (__mmask16) __U);
    9386              : }
    9387              : 
    9388              : extern __inline __m512
    9389              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9390              : _mm512_maskz_loadu_ps (__mmask16 __U, void const *__P)
    9391              : {
    9392              :   return (__m512) __builtin_ia32_loadups512_mask ((const float *) __P,
    9393              :                           (__v16sf)
    9394              :                           _mm512_setzero_ps (),
    9395              :                           (__mmask16) __U);
    9396              : }
    9397              : 
    9398              : extern __inline void
    9399              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9400              : _mm512_storeu_ps (void *__P, __m512 __A)
    9401              : {
    9402              :   *(__m512_u *)__P = __A;
    9403              : }
    9404              : 
    9405              : extern __inline void
    9406              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9407              : _mm512_mask_storeu_ps (void *__P, __mmask16 __U, __m512 __A)
    9408              : {
    9409              :   __builtin_ia32_storeups512_mask ((float *) __P, (__v16sf) __A,
    9410              :                    (__mmask16) __U);
    9411              : }
    9412              : 
    9413              : extern __inline __m512i
    9414              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9415              : _mm512_loadu_epi64 (void const *__P)
    9416              : {
    9417              :   return *(__m512i_u *) __P;
    9418              : }
    9419              : 
    9420              : extern __inline __m512i
    9421              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9422              : _mm512_mask_loadu_epi64 (__m512i __W, __mmask8 __U, void const *__P)
    9423              : {
    9424              :   return (__m512i) __builtin_ia32_loaddqudi512_mask ((const long long *) __P,
    9425              :                              (__v8di) __W,
    9426              :                              (__mmask8) __U);
    9427              : }
    9428              : 
    9429              : extern __inline __m512i
    9430              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9431              : _mm512_maskz_loadu_epi64 (__mmask8 __U, void const *__P)
    9432              : {
    9433              :   return (__m512i) __builtin_ia32_loaddqudi512_mask ((const long long *) __P,
    9434              :                              (__v8di)
    9435              :                              _mm512_setzero_si512 (),
    9436              :                              (__mmask8) __U);
    9437              : }
    9438              : 
    9439              : extern __inline void
    9440              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9441              : _mm512_storeu_epi64 (void *__P, __m512i __A)
    9442              : {
    9443              :   *(__m512i_u *) __P = (__m512i_u) __A;
    9444              : }
    9445              : 
    9446              : extern __inline void
    9447              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9448              : _mm512_mask_storeu_epi64 (void *__P, __mmask8 __U, __m512i __A)
    9449              : {
    9450              :   __builtin_ia32_storedqudi512_mask ((long long *) __P, (__v8di) __A,
    9451              :                      (__mmask8) __U);
    9452              : }
    9453              : 
    9454              : extern __inline __m512i
    9455              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9456              : _mm512_loadu_si512 (void const *__P)
    9457              : {
    9458            0 :   return *(__m512i_u *)__P;
    9459              : }
    9460              : 
    9461              : extern __inline __m512i
    9462              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9463              : _mm512_loadu_epi32 (void const *__P)
    9464              : {
    9465              :   return *(__m512i_u *) __P;
    9466              : }
    9467              : 
    9468              : extern __inline __m512i
    9469              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9470              : _mm512_mask_loadu_epi32 (__m512i __W, __mmask16 __U, void const *__P)
    9471              : {
    9472              :   return (__m512i) __builtin_ia32_loaddqusi512_mask ((const int *) __P,
    9473              :                              (__v16si) __W,
    9474              :                              (__mmask16) __U);
    9475              : }
    9476              : 
    9477              : extern __inline __m512i
    9478              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9479              : _mm512_maskz_loadu_epi32 (__mmask16 __U, void const *__P)
    9480              : {
    9481              :   return (__m512i) __builtin_ia32_loaddqusi512_mask ((const int *) __P,
    9482              :                              (__v16si)
    9483              :                              _mm512_setzero_si512 (),
    9484              :                              (__mmask16) __U);
    9485              : }
    9486              : 
    9487              : extern __inline void
    9488              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9489              : _mm512_storeu_si512 (void *__P, __m512i __A)
    9490              : {
    9491              :   *(__m512i_u *)__P = __A;
    9492              : }
    9493              : 
    9494              : extern __inline void
    9495              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9496              : _mm512_storeu_epi32 (void *__P, __m512i __A)
    9497              : {
    9498              :   *(__m512i_u *) __P = (__m512i_u) __A;
    9499              : }
    9500              : 
    9501              : extern __inline void
    9502              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9503              : _mm512_mask_storeu_epi32 (void *__P, __mmask16 __U, __m512i __A)
    9504              : {
    9505              :   __builtin_ia32_storedqusi512_mask ((int *) __P, (__v16si) __A,
    9506              :                      (__mmask16) __U);
    9507              : }
    9508              : 
    9509              : extern __inline __m512d
    9510              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9511              : _mm512_permutevar_pd (__m512d __A, __m512i __C)
    9512              : {
    9513              :   return (__m512d) __builtin_ia32_vpermilvarpd512_mask ((__v8df) __A,
    9514              :                             (__v8di) __C,
    9515              :                             (__v8df)
    9516              :                             _mm512_undefined_pd (),
    9517              :                             (__mmask8) -1);
    9518              : }
    9519              : 
    9520              : extern __inline __m512d
    9521              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9522              : _mm512_mask_permutevar_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512i __C)
    9523              : {
    9524              :   return (__m512d) __builtin_ia32_vpermilvarpd512_mask ((__v8df) __A,
    9525              :                             (__v8di) __C,
    9526              :                             (__v8df) __W,
    9527              :                             (__mmask8) __U);
    9528              : }
    9529              : 
    9530              : extern __inline __m512d
    9531              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9532              : _mm512_maskz_permutevar_pd (__mmask8 __U, __m512d __A, __m512i __C)
    9533              : {
    9534              :   return (__m512d) __builtin_ia32_vpermilvarpd512_mask ((__v8df) __A,
    9535              :                             (__v8di) __C,
    9536              :                             (__v8df)
    9537              :                             _mm512_setzero_pd (),
    9538              :                             (__mmask8) __U);
    9539              : }
    9540              : 
    9541              : extern __inline __m512
    9542              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9543              : _mm512_permutevar_ps (__m512 __A, __m512i __C)
    9544              : {
    9545              :   return (__m512) __builtin_ia32_vpermilvarps512_mask ((__v16sf) __A,
    9546              :                                (__v16si) __C,
    9547              :                                (__v16sf)
    9548              :                                _mm512_undefined_ps (),
    9549              :                                (__mmask16) -1);
    9550              : }
    9551              : 
    9552              : extern __inline __m512
    9553              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9554              : _mm512_mask_permutevar_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512i __C)
    9555              : {
    9556              :   return (__m512) __builtin_ia32_vpermilvarps512_mask ((__v16sf) __A,
    9557              :                                (__v16si) __C,
    9558              :                                (__v16sf) __W,
    9559              :                                (__mmask16) __U);
    9560              : }
    9561              : 
    9562              : extern __inline __m512
    9563              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9564              : _mm512_maskz_permutevar_ps (__mmask16 __U, __m512 __A, __m512i __C)
    9565              : {
    9566              :   return (__m512) __builtin_ia32_vpermilvarps512_mask ((__v16sf) __A,
    9567              :                                (__v16si) __C,
    9568              :                                (__v16sf)
    9569              :                                _mm512_setzero_ps (),
    9570              :                                (__mmask16) __U);
    9571              : }
    9572              : 
    9573              : extern __inline __m512i
    9574              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9575              : _mm512_permutex2var_epi64 (__m512i __A, __m512i __I, __m512i __B)
    9576              : {
    9577              :   return (__m512i) __builtin_ia32_vpermt2varq512_mask ((__v8di) __I
    9578              :                                /* idx */ ,
    9579              :                                (__v8di) __A,
    9580              :                                (__v8di) __B,
    9581              :                                (__mmask8) -1);
    9582              : }
    9583              : 
    9584              : extern __inline __m512i
    9585              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9586              : _mm512_mask_permutex2var_epi64 (__m512i __A, __mmask8 __U, __m512i __I,
    9587              :                 __m512i __B)
    9588              : {
    9589              :   return (__m512i) __builtin_ia32_vpermt2varq512_mask ((__v8di) __I
    9590              :                                /* idx */ ,
    9591              :                                (__v8di) __A,
    9592              :                                (__v8di) __B,
    9593              :                                (__mmask8) __U);
    9594              : }
    9595              : 
    9596              : extern __inline __m512i
    9597              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9598              : _mm512_mask2_permutex2var_epi64 (__m512i __A, __m512i __I,
    9599              :                  __mmask8 __U, __m512i __B)
    9600              : {
    9601              :   return (__m512i) __builtin_ia32_vpermi2varq512_mask ((__v8di) __A,
    9602              :                                (__v8di) __I
    9603              :                                /* idx */ ,
    9604              :                                (__v8di) __B,
    9605              :                                (__mmask8) __U);
    9606              : }
    9607              : 
    9608              : extern __inline __m512i
    9609              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9610              : _mm512_maskz_permutex2var_epi64 (__mmask8 __U, __m512i __A,
    9611              :                  __m512i __I, __m512i __B)
    9612              : {
    9613              :   return (__m512i) __builtin_ia32_vpermt2varq512_maskz ((__v8di) __I
    9614              :                             /* idx */ ,
    9615              :                             (__v8di) __A,
    9616              :                             (__v8di) __B,
    9617              :                             (__mmask8) __U);
    9618              : }
    9619              : 
    9620              : extern __inline __m512i
    9621              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9622              : _mm512_permutex2var_epi32 (__m512i __A, __m512i __I, __m512i __B)
    9623              : {
    9624              :   return (__m512i) __builtin_ia32_vpermt2vard512_mask ((__v16si) __I
    9625              :                                /* idx */ ,
    9626              :                                (__v16si) __A,
    9627              :                                (__v16si) __B,
    9628              :                                (__mmask16) -1);
    9629              : }
    9630              : 
    9631              : extern __inline __m512i
    9632              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9633              : _mm512_mask_permutex2var_epi32 (__m512i __A, __mmask16 __U,
    9634              :                 __m512i __I, __m512i __B)
    9635              : {
    9636              :   return (__m512i) __builtin_ia32_vpermt2vard512_mask ((__v16si) __I
    9637              :                                /* idx */ ,
    9638              :                                (__v16si) __A,
    9639              :                                (__v16si) __B,
    9640              :                                (__mmask16) __U);
    9641              : }
    9642              : 
    9643              : extern __inline __m512i
    9644              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9645              : _mm512_mask2_permutex2var_epi32 (__m512i __A, __m512i __I,
    9646              :                  __mmask16 __U, __m512i __B)
    9647              : {
    9648              :   return (__m512i) __builtin_ia32_vpermi2vard512_mask ((__v16si) __A,
    9649              :                                (__v16si) __I
    9650              :                                /* idx */ ,
    9651              :                                (__v16si) __B,
    9652              :                                (__mmask16) __U);
    9653              : }
    9654              : 
    9655              : extern __inline __m512i
    9656              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9657              : _mm512_maskz_permutex2var_epi32 (__mmask16 __U, __m512i __A,
    9658              :                  __m512i __I, __m512i __B)
    9659              : {
    9660              :   return (__m512i) __builtin_ia32_vpermt2vard512_maskz ((__v16si) __I
    9661              :                             /* idx */ ,
    9662              :                             (__v16si) __A,
    9663              :                             (__v16si) __B,
    9664              :                             (__mmask16) __U);
    9665              : }
    9666              : 
    9667              : extern __inline __m512d
    9668              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9669              : _mm512_permutex2var_pd (__m512d __A, __m512i __I, __m512d __B)
    9670              : {
    9671              :   return (__m512d) __builtin_ia32_vpermt2varpd512_mask ((__v8di) __I
    9672              :                             /* idx */ ,
    9673              :                             (__v8df) __A,
    9674              :                             (__v8df) __B,
    9675              :                             (__mmask8) -1);
    9676              : }
    9677              : 
    9678              : extern __inline __m512d
    9679              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9680              : _mm512_mask_permutex2var_pd (__m512d __A, __mmask8 __U, __m512i __I,
    9681              :                  __m512d __B)
    9682              : {
    9683              :   return (__m512d) __builtin_ia32_vpermt2varpd512_mask ((__v8di) __I
    9684              :                             /* idx */ ,
    9685              :                             (__v8df) __A,
    9686              :                             (__v8df) __B,
    9687              :                             (__mmask8) __U);
    9688              : }
    9689              : 
    9690              : extern __inline __m512d
    9691              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9692              : _mm512_mask2_permutex2var_pd (__m512d __A, __m512i __I, __mmask8 __U,
    9693              :                   __m512d __B)
    9694              : {
    9695              :   return (__m512d) __builtin_ia32_vpermi2varpd512_mask ((__v8df) __A,
    9696              :                             (__v8di) __I
    9697              :                             /* idx */ ,
    9698              :                             (__v8df) __B,
    9699              :                             (__mmask8) __U);
    9700              : }
    9701              : 
    9702              : extern __inline __m512d
    9703              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9704              : _mm512_maskz_permutex2var_pd (__mmask8 __U, __m512d __A, __m512i __I,
    9705              :                   __m512d __B)
    9706              : {
    9707              :   return (__m512d) __builtin_ia32_vpermt2varpd512_maskz ((__v8di) __I
    9708              :                              /* idx */ ,
    9709              :                              (__v8df) __A,
    9710              :                              (__v8df) __B,
    9711              :                              (__mmask8) __U);
    9712              : }
    9713              : 
    9714              : extern __inline __m512
    9715              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9716              : _mm512_permutex2var_ps (__m512 __A, __m512i __I, __m512 __B)
    9717              : {
    9718              :   return (__m512) __builtin_ia32_vpermt2varps512_mask ((__v16si) __I
    9719              :                                /* idx */ ,
    9720              :                                (__v16sf) __A,
    9721              :                                (__v16sf) __B,
    9722              :                                (__mmask16) -1);
    9723              : }
    9724              : 
    9725              : extern __inline __m512
    9726              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9727              : _mm512_mask_permutex2var_ps (__m512 __A, __mmask16 __U, __m512i __I, __m512 __B)
    9728              : {
    9729              :   return (__m512) __builtin_ia32_vpermt2varps512_mask ((__v16si) __I
    9730              :                                /* idx */ ,
    9731              :                                (__v16sf) __A,
    9732              :                                (__v16sf) __B,
    9733              :                                (__mmask16) __U);
    9734              : }
    9735              : 
    9736              : extern __inline __m512
    9737              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9738              : _mm512_mask2_permutex2var_ps (__m512 __A, __m512i __I, __mmask16 __U,
    9739              :                   __m512 __B)
    9740              : {
    9741              :   return (__m512) __builtin_ia32_vpermi2varps512_mask ((__v16sf) __A,
    9742              :                                (__v16si) __I
    9743              :                                /* idx */ ,
    9744              :                                (__v16sf) __B,
    9745              :                                (__mmask16) __U);
    9746              : }
    9747              : 
    9748              : extern __inline __m512
    9749              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9750              : _mm512_maskz_permutex2var_ps (__mmask16 __U, __m512 __A, __m512i __I,
    9751              :                   __m512 __B)
    9752              : {
    9753              :   return (__m512) __builtin_ia32_vpermt2varps512_maskz ((__v16si) __I
    9754              :                             /* idx */ ,
    9755              :                             (__v16sf) __A,
    9756              :                             (__v16sf) __B,
    9757              :                             (__mmask16) __U);
    9758              : }
    9759              : 
    9760              : #ifdef __OPTIMIZE__
    9761              : extern __inline __m512d
    9762              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9763              : _mm512_permute_pd (__m512d __X, const int __C)
    9764              : {
    9765              :   return (__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df) __X, __C,
    9766              :                              (__v8df)
    9767              :                              _mm512_undefined_pd (),
    9768              :                              (__mmask8) -1);
    9769              : }
    9770              : 
    9771              : extern __inline __m512d
    9772              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9773              : _mm512_mask_permute_pd (__m512d __W, __mmask8 __U, __m512d __X, const int __C)
    9774              : {
    9775              :   return (__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df) __X, __C,
    9776              :                              (__v8df) __W,
    9777              :                              (__mmask8) __U);
    9778              : }
    9779              : 
    9780              : extern __inline __m512d
    9781              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9782              : _mm512_maskz_permute_pd (__mmask8 __U, __m512d __X, const int __C)
    9783              : {
    9784              :   return (__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df) __X, __C,
    9785              :                              (__v8df)
    9786              :                              _mm512_setzero_pd (),
    9787              :                              (__mmask8) __U);
    9788              : }
    9789              : 
    9790              : extern __inline __m512
    9791              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9792              : _mm512_permute_ps (__m512 __X, const int __C)
    9793              : {
    9794              :   return (__m512) __builtin_ia32_vpermilps512_mask ((__v16sf) __X, __C,
    9795              :                             (__v16sf)
    9796              :                             _mm512_undefined_ps (),
    9797              :                             (__mmask16) -1);
    9798              : }
    9799              : 
    9800              : extern __inline __m512
    9801              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9802              : _mm512_mask_permute_ps (__m512 __W, __mmask16 __U, __m512 __X, const int __C)
    9803              : {
    9804              :   return (__m512) __builtin_ia32_vpermilps512_mask ((__v16sf) __X, __C,
    9805              :                             (__v16sf) __W,
    9806              :                             (__mmask16) __U);
    9807              : }
    9808              : 
    9809              : extern __inline __m512
    9810              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9811              : _mm512_maskz_permute_ps (__mmask16 __U, __m512 __X, const int __C)
    9812              : {
    9813              :   return (__m512) __builtin_ia32_vpermilps512_mask ((__v16sf) __X, __C,
    9814              :                             (__v16sf)
    9815              :                             _mm512_setzero_ps (),
    9816              :                             (__mmask16) __U);
    9817              : }
    9818              : #else
    9819              : #define _mm512_permute_pd(X, C)                             \
    9820              :   ((__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df)(__m512d)(X), (int)(C),      \
    9821              :                           (__v8df)(__m512d)_mm512_undefined_pd(),\
    9822              :                           (__mmask8)(-1)))
    9823              : 
    9824              : #define _mm512_mask_permute_pd(W, U, X, C)                      \
    9825              :   ((__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df)(__m512d)(X), (int)(C),      \
    9826              :                           (__v8df)(__m512d)(W),         \
    9827              :                           (__mmask8)(U)))
    9828              : 
    9829              : #define _mm512_maskz_permute_pd(U, X, C)                        \
    9830              :   ((__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df)(__m512d)(X), (int)(C),      \
    9831              :                           (__v8df)(__m512d)_mm512_setzero_pd(), \
    9832              :                           (__mmask8)(U)))
    9833              : 
    9834              : #define _mm512_permute_ps(X, C)                             \
    9835              :   ((__m512) __builtin_ia32_vpermilps512_mask ((__v16sf)(__m512)(X), (int)(C),       \
    9836              :                           (__v16sf)(__m512)_mm512_undefined_ps(),\
    9837              :                           (__mmask16)(-1)))
    9838              : 
    9839              : #define _mm512_mask_permute_ps(W, U, X, C)                      \
    9840              :   ((__m512) __builtin_ia32_vpermilps512_mask ((__v16sf)(__m512)(X), (int)(C),       \
    9841              :                           (__v16sf)(__m512)(W),         \
    9842              :                           (__mmask16)(U)))
    9843              : 
    9844              : #define _mm512_maskz_permute_ps(U, X, C)                        \
    9845              :   ((__m512) __builtin_ia32_vpermilps512_mask ((__v16sf)(__m512)(X), (int)(C),       \
    9846              :                           (__v16sf)(__m512)_mm512_setzero_ps(), \
    9847              :                           (__mmask16)(U)))
    9848              : #endif
    9849              : 
    9850              : #ifdef __OPTIMIZE__
    9851              : extern __inline __m512i
    9852              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9853              : _mm512_permutex_epi64 (__m512i __X, const int __I)
    9854              : {
    9855              :   return (__m512i) __builtin_ia32_permdi512_mask ((__v8di) __X, __I,
    9856              :                           (__v8di)
    9857              :                           _mm512_undefined_epi32 (),
    9858              :                           (__mmask8) (-1));
    9859              : }
    9860              : 
    9861              : extern __inline __m512i
    9862              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9863              : _mm512_mask_permutex_epi64 (__m512i __W, __mmask8 __M,
    9864              :                 __m512i __X, const int __I)
    9865              : {
    9866              :   return (__m512i) __builtin_ia32_permdi512_mask ((__v8di) __X, __I,
    9867              :                           (__v8di) __W,
    9868              :                           (__mmask8) __M);
    9869              : }
    9870              : 
    9871              : extern __inline __m512i
    9872              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9873              : _mm512_maskz_permutex_epi64 (__mmask8 __M, __m512i __X, const int __I)
    9874              : {
    9875              :   return (__m512i) __builtin_ia32_permdi512_mask ((__v8di) __X, __I,
    9876              :                           (__v8di)
    9877              :                           _mm512_setzero_si512 (),
    9878              :                           (__mmask8) __M);
    9879              : }
    9880              : 
    9881              : extern __inline __m512d
    9882              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9883              : _mm512_permutex_pd (__m512d __X, const int __M)
    9884              : {
    9885              :   return (__m512d) __builtin_ia32_permdf512_mask ((__v8df) __X, __M,
    9886              :                           (__v8df)
    9887              :                           _mm512_undefined_pd (),
    9888              :                           (__mmask8) -1);
    9889              : }
    9890              : 
    9891              : extern __inline __m512d
    9892              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9893              : _mm512_mask_permutex_pd (__m512d __W, __mmask8 __U, __m512d __X, const int __M)
    9894              : {
    9895              :   return (__m512d) __builtin_ia32_permdf512_mask ((__v8df) __X, __M,
    9896              :                           (__v8df) __W,
    9897              :                           (__mmask8) __U);
    9898              : }
    9899              : 
    9900              : extern __inline __m512d
    9901              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9902              : _mm512_maskz_permutex_pd (__mmask8 __U, __m512d __X, const int __M)
    9903              : {
    9904              :   return (__m512d) __builtin_ia32_permdf512_mask ((__v8df) __X, __M,
    9905              :                           (__v8df)
    9906              :                           _mm512_setzero_pd (),
    9907              :                           (__mmask8) __U);
    9908              : }
    9909              : #else
    9910              : #define _mm512_permutex_pd(X, M)                        \
    9911              :   ((__m512d) __builtin_ia32_permdf512_mask ((__v8df)(__m512d)(X), (int)(M), \
    9912              :                         (__v8df)(__m512d)_mm512_undefined_pd(),\
    9913              :                         (__mmask8)-1))
    9914              : 
    9915              : #define _mm512_mask_permutex_pd(W, U, X, M)                 \
    9916              :   ((__m512d) __builtin_ia32_permdf512_mask ((__v8df)(__m512d)(X), (int)(M), \
    9917              :                         (__v8df)(__m512d)(W), (__mmask8)(U)))
    9918              : 
    9919              : #define _mm512_maskz_permutex_pd(U, X, M)                   \
    9920              :   ((__m512d) __builtin_ia32_permdf512_mask ((__v8df)(__m512d)(X), (int)(M), \
    9921              :                         (__v8df)(__m512d)_mm512_setzero_pd(),\
    9922              :                         (__mmask8)(U)))
    9923              : 
    9924              : #define _mm512_permutex_epi64(X, I)                   \
    9925              :   ((__m512i) __builtin_ia32_permdi512_mask ((__v8di)(__m512i)(X), \
    9926              :                         (int)(I),             \
    9927              :                         (__v8di)(__m512i)     \
    9928              :                         (_mm512_undefined_epi32 ()),\
    9929              :                         (__mmask8)(-1)))
    9930              : 
    9931              : #define _mm512_maskz_permutex_epi64(M, X, I)                 \
    9932              :   ((__m512i) __builtin_ia32_permdi512_mask ((__v8di)(__m512i)(X), \
    9933              :                         (int)(I),             \
    9934              :                         (__v8di)(__m512i)     \
    9935              :                         (_mm512_setzero_si512 ()),\
    9936              :                         (__mmask8)(M)))
    9937              : 
    9938              : #define _mm512_mask_permutex_epi64(W, M, X, I)               \
    9939              :   ((__m512i) __builtin_ia32_permdi512_mask ((__v8di)(__m512i)(X), \
    9940              :                         (int)(I),             \
    9941              :                         (__v8di)(__m512i)(W), \
    9942              :                         (__mmask8)(M)))
    9943              : #endif
    9944              : 
    9945              : extern __inline __m512i
    9946              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9947              : _mm512_maskz_permutexvar_epi64 (__mmask8 __M, __m512i __X, __m512i __Y)
    9948              : {
    9949              :   return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __Y,
    9950              :                              (__v8di) __X,
    9951              :                              (__v8di)
    9952              :                              _mm512_setzero_si512 (),
    9953              :                              __M);
    9954              : }
    9955              : 
    9956              : extern __inline __m512i
    9957              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9958              : _mm512_permutexvar_epi64 (__m512i __X, __m512i __Y)
    9959              : {
    9960              :   return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __Y,
    9961              :                              (__v8di) __X,
    9962              :                              (__v8di)
    9963              :                              _mm512_undefined_epi32 (),
    9964              :                              (__mmask8) -1);
    9965              : }
    9966              : 
    9967              : extern __inline __m512i
    9968              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9969              : _mm512_mask_permutexvar_epi64 (__m512i __W, __mmask8 __M, __m512i __X,
    9970              :                    __m512i __Y)
    9971              : {
    9972              :   return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __Y,
    9973              :                              (__v8di) __X,
    9974              :                              (__v8di) __W,
    9975              :                              __M);
    9976              : }
    9977              : 
    9978              : extern __inline __m512i
    9979              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9980              : _mm512_maskz_permutexvar_epi32 (__mmask16 __M, __m512i __X, __m512i __Y)
    9981              : {
    9982              :   return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __Y,
    9983              :                              (__v16si) __X,
    9984              :                              (__v16si)
    9985              :                              _mm512_setzero_si512 (),
    9986              :                              __M);
    9987              : }
    9988              : 
    9989              : extern __inline __m512i
    9990              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    9991              : _mm512_permutexvar_epi32 (__m512i __X, __m512i __Y)
    9992              : {
    9993              :   return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __Y,
    9994              :                              (__v16si) __X,
    9995              :                              (__v16si)
    9996              :                              _mm512_undefined_epi32 (),
    9997              :                              (__mmask16) -1);
    9998              : }
    9999              : 
   10000              : extern __inline __m512i
   10001              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10002              : _mm512_mask_permutexvar_epi32 (__m512i __W, __mmask16 __M, __m512i __X,
   10003              :                    __m512i __Y)
   10004              : {
   10005              :   return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __Y,
   10006              :                              (__v16si) __X,
   10007              :                              (__v16si) __W,
   10008              :                              __M);
   10009              : }
   10010              : 
   10011              : extern __inline __m512d
   10012              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10013              : _mm512_permutexvar_pd (__m512i __X, __m512d __Y)
   10014              : {
   10015              :   return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __Y,
   10016              :                              (__v8di) __X,
   10017              :                              (__v8df)
   10018              :                              _mm512_undefined_pd (),
   10019              :                              (__mmask8) -1);
   10020              : }
   10021              : 
   10022              : extern __inline __m512d
   10023              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10024              : _mm512_mask_permutexvar_pd (__m512d __W, __mmask8 __U, __m512i __X, __m512d __Y)
   10025              : {
   10026              :   return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __Y,
   10027              :                              (__v8di) __X,
   10028              :                              (__v8df) __W,
   10029              :                              (__mmask8) __U);
   10030              : }
   10031              : 
   10032              : extern __inline __m512d
   10033              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10034              : _mm512_maskz_permutexvar_pd (__mmask8 __U, __m512i __X, __m512d __Y)
   10035              : {
   10036              :   return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __Y,
   10037              :                              (__v8di) __X,
   10038              :                              (__v8df)
   10039              :                              _mm512_setzero_pd (),
   10040              :                              (__mmask8) __U);
   10041              : }
   10042              : 
   10043              : extern __inline __m512
   10044              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10045              : _mm512_permutexvar_ps (__m512i __X, __m512 __Y)
   10046              : {
   10047              :   return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __Y,
   10048              :                             (__v16si) __X,
   10049              :                             (__v16sf)
   10050              :                             _mm512_undefined_ps (),
   10051              :                             (__mmask16) -1);
   10052              : }
   10053              : 
   10054              : extern __inline __m512
   10055              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10056              : _mm512_mask_permutexvar_ps (__m512 __W, __mmask16 __U, __m512i __X, __m512 __Y)
   10057              : {
   10058              :   return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __Y,
   10059              :                             (__v16si) __X,
   10060              :                             (__v16sf) __W,
   10061              :                             (__mmask16) __U);
   10062              : }
   10063              : 
   10064              : extern __inline __m512
   10065              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10066              : _mm512_maskz_permutexvar_ps (__mmask16 __U, __m512i __X, __m512 __Y)
   10067              : {
   10068              :   return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __Y,
   10069              :                             (__v16si) __X,
   10070              :                             (__v16sf)
   10071              :                             _mm512_setzero_ps (),
   10072              :                             (__mmask16) __U);
   10073              : }
   10074              : 
   10075              : #ifdef __OPTIMIZE__
   10076              : extern __inline __m512
   10077              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10078              : _mm512_shuffle_ps (__m512 __M, __m512 __V, const int __imm)
   10079              : {
   10080              :   return (__m512) __builtin_ia32_shufps512_mask ((__v16sf) __M,
   10081              :                          (__v16sf) __V, __imm,
   10082              :                          (__v16sf)
   10083              :                          _mm512_undefined_ps (),
   10084              :                          (__mmask16) -1);
   10085              : }
   10086              : 
   10087              : extern __inline __m512
   10088              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10089              : _mm512_mask_shuffle_ps (__m512 __W, __mmask16 __U, __m512 __M,
   10090              :             __m512 __V, const int __imm)
   10091              : {
   10092              :   return (__m512) __builtin_ia32_shufps512_mask ((__v16sf) __M,
   10093              :                          (__v16sf) __V, __imm,
   10094              :                          (__v16sf) __W,
   10095              :                          (__mmask16) __U);
   10096              : }
   10097              : 
   10098              : extern __inline __m512
   10099              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10100              : _mm512_maskz_shuffle_ps (__mmask16 __U, __m512 __M, __m512 __V, const int __imm)
   10101              : {
   10102              :   return (__m512) __builtin_ia32_shufps512_mask ((__v16sf) __M,
   10103              :                          (__v16sf) __V, __imm,
   10104              :                          (__v16sf)
   10105              :                          _mm512_setzero_ps (),
   10106              :                          (__mmask16) __U);
   10107              : }
   10108              : 
   10109              : extern __inline __m512d
   10110              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10111              : _mm512_shuffle_pd (__m512d __M, __m512d __V, const int __imm)
   10112              : {
   10113              :   return (__m512d) __builtin_ia32_shufpd512_mask ((__v8df) __M,
   10114              :                           (__v8df) __V, __imm,
   10115              :                           (__v8df)
   10116              :                           _mm512_undefined_pd (),
   10117              :                           (__mmask8) -1);
   10118              : }
   10119              : 
   10120              : extern __inline __m512d
   10121              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10122              : _mm512_mask_shuffle_pd (__m512d __W, __mmask8 __U, __m512d __M,
   10123              :             __m512d __V, const int __imm)
   10124              : {
   10125              :   return (__m512d) __builtin_ia32_shufpd512_mask ((__v8df) __M,
   10126              :                           (__v8df) __V, __imm,
   10127              :                           (__v8df) __W,
   10128              :                           (__mmask8) __U);
   10129              : }
   10130              : 
   10131              : extern __inline __m512d
   10132              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10133              : _mm512_maskz_shuffle_pd (__mmask8 __U, __m512d __M, __m512d __V,
   10134              :              const int __imm)
   10135              : {
   10136              :   return (__m512d) __builtin_ia32_shufpd512_mask ((__v8df) __M,
   10137              :                           (__v8df) __V, __imm,
   10138              :                           (__v8df)
   10139              :                           _mm512_setzero_pd (),
   10140              :                           (__mmask8) __U);
   10141              : }
   10142              : 
   10143              : extern __inline __m512d
   10144              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10145              : _mm512_fixupimm_round_pd (__m512d __A, __m512d __B, __m512i __C,
   10146              :               const int __imm, const int __R)
   10147              : {
   10148              :   return (__m512d) __builtin_ia32_fixupimmpd512_mask ((__v8df) __A,
   10149              :                               (__v8df) __B,
   10150              :                               (__v8di) __C,
   10151              :                               __imm,
   10152              :                               (__mmask8) -1, __R);
   10153              : }
   10154              : 
   10155              : extern __inline __m512d
   10156              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10157              : _mm512_mask_fixupimm_round_pd (__m512d __A, __mmask8 __U, __m512d __B,
   10158              :                    __m512i __C, const int __imm, const int __R)
   10159              : {
   10160              :   return (__m512d) __builtin_ia32_fixupimmpd512_mask ((__v8df) __A,
   10161              :                               (__v8df) __B,
   10162              :                               (__v8di) __C,
   10163              :                               __imm,
   10164              :                               (__mmask8) __U, __R);
   10165              : }
   10166              : 
   10167              : extern __inline __m512d
   10168              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10169              : _mm512_maskz_fixupimm_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
   10170              :                 __m512i __C, const int __imm, const int __R)
   10171              : {
   10172              :   return (__m512d) __builtin_ia32_fixupimmpd512_maskz ((__v8df) __A,
   10173              :                                (__v8df) __B,
   10174              :                                (__v8di) __C,
   10175              :                                __imm,
   10176              :                                (__mmask8) __U, __R);
   10177              : }
   10178              : 
   10179              : extern __inline __m512
   10180              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10181              : _mm512_fixupimm_round_ps (__m512 __A, __m512 __B, __m512i __C,
   10182              :               const int __imm, const int __R)
   10183              : {
   10184              :   return (__m512) __builtin_ia32_fixupimmps512_mask ((__v16sf) __A,
   10185              :                              (__v16sf) __B,
   10186              :                              (__v16si) __C,
   10187              :                              __imm,
   10188              :                              (__mmask16) -1, __R);
   10189              : }
   10190              : 
   10191              : extern __inline __m512
   10192              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10193              : _mm512_mask_fixupimm_round_ps (__m512 __A, __mmask16 __U, __m512 __B,
   10194              :                    __m512i __C, const int __imm, const int __R)
   10195              : {
   10196              :   return (__m512) __builtin_ia32_fixupimmps512_mask ((__v16sf) __A,
   10197              :                              (__v16sf) __B,
   10198              :                              (__v16si) __C,
   10199              :                              __imm,
   10200              :                              (__mmask16) __U, __R);
   10201              : }
   10202              : 
   10203              : extern __inline __m512
   10204              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10205              : _mm512_maskz_fixupimm_round_ps (__mmask16 __U, __m512 __A, __m512 __B,
   10206              :                 __m512i __C, const int __imm, const int __R)
   10207              : {
   10208              :   return (__m512) __builtin_ia32_fixupimmps512_maskz ((__v16sf) __A,
   10209              :                               (__v16sf) __B,
   10210              :                               (__v16si) __C,
   10211              :                               __imm,
   10212              :                               (__mmask16) __U, __R);
   10213              : }
   10214              : 
   10215              : #else
   10216              : #define _mm512_shuffle_pd(X, Y, C)                                      \
   10217              :     ((__m512d)__builtin_ia32_shufpd512_mask ((__v8df)(__m512d)(X),           \
   10218              :         (__v8df)(__m512d)(Y), (int)(C),\
   10219              :     (__v8df)(__m512d)_mm512_undefined_pd(),\
   10220              :     (__mmask8)-1))
   10221              : 
   10222              : #define _mm512_mask_shuffle_pd(W, U, X, Y, C)                           \
   10223              :     ((__m512d)__builtin_ia32_shufpd512_mask ((__v8df)(__m512d)(X),           \
   10224              :         (__v8df)(__m512d)(Y), (int)(C),\
   10225              :     (__v8df)(__m512d)(W),\
   10226              :     (__mmask8)(U)))
   10227              : 
   10228              : #define _mm512_maskz_shuffle_pd(U, X, Y, C)                             \
   10229              :     ((__m512d)__builtin_ia32_shufpd512_mask ((__v8df)(__m512d)(X),           \
   10230              :         (__v8df)(__m512d)(Y), (int)(C),\
   10231              :     (__v8df)(__m512d)_mm512_setzero_pd(),\
   10232              :     (__mmask8)(U)))
   10233              : 
   10234              : #define _mm512_shuffle_ps(X, Y, C)                                      \
   10235              :     ((__m512)__builtin_ia32_shufps512_mask ((__v16sf)(__m512)(X),            \
   10236              :         (__v16sf)(__m512)(Y), (int)(C),\
   10237              :     (__v16sf)(__m512)_mm512_undefined_ps(),\
   10238              :     (__mmask16)-1))
   10239              : 
   10240              : #define _mm512_mask_shuffle_ps(W, U, X, Y, C)                           \
   10241              :     ((__m512)__builtin_ia32_shufps512_mask ((__v16sf)(__m512)(X),            \
   10242              :         (__v16sf)(__m512)(Y), (int)(C),\
   10243              :     (__v16sf)(__m512)(W),\
   10244              :     (__mmask16)(U)))
   10245              : 
   10246              : #define _mm512_maskz_shuffle_ps(U, X, Y, C)                             \
   10247              :     ((__m512)__builtin_ia32_shufps512_mask ((__v16sf)(__m512)(X),            \
   10248              :         (__v16sf)(__m512)(Y), (int)(C),\
   10249              :     (__v16sf)(__m512)_mm512_setzero_ps(),\
   10250              :     (__mmask16)(U)))
   10251              : 
   10252              : #define _mm512_fixupimm_round_pd(X, Y, Z, C, R)                 \
   10253              :   ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X),    \
   10254              :       (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C),     \
   10255              :       (__mmask8)(-1), (R)))
   10256              : 
   10257              : #define _mm512_mask_fixupimm_round_pd(X, U, Y, Z, C, R)                          \
   10258              :   ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X),    \
   10259              :       (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C),             \
   10260              :       (__mmask8)(U), (R)))
   10261              : 
   10262              : #define _mm512_maskz_fixupimm_round_pd(U, X, Y, Z, C, R)                         \
   10263              :   ((__m512d)__builtin_ia32_fixupimmpd512_maskz ((__v8df)(__m512d)(X),   \
   10264              :       (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C),             \
   10265              :       (__mmask8)(U), (R)))
   10266              : 
   10267              : #define _mm512_fixupimm_round_ps(X, Y, Z, C, R)                 \
   10268              :   ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X), \
   10269              :     (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C),      \
   10270              :     (__mmask16)(-1), (R)))
   10271              : 
   10272              : #define _mm512_mask_fixupimm_round_ps(X, U, Y, Z, C, R)                          \
   10273              :   ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X),     \
   10274              :     (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C),              \
   10275              :     (__mmask16)(U), (R)))
   10276              : 
   10277              : #define _mm512_maskz_fixupimm_round_ps(U, X, Y, Z, C, R)                         \
   10278              :   ((__m512)__builtin_ia32_fixupimmps512_maskz ((__v16sf)(__m512)(X),    \
   10279              :     (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C),              \
   10280              :     (__mmask16)(U), (R)))
   10281              : 
   10282              : #endif
   10283              : 
   10284              : extern __inline __m512
   10285              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10286              : _mm512_movehdup_ps (__m512 __A)
   10287              : {
   10288              :   return (__m512) __builtin_ia32_movshdup512_mask ((__v16sf) __A,
   10289              :                            (__v16sf)
   10290              :                            _mm512_undefined_ps (),
   10291              :                            (__mmask16) -1);
   10292              : }
   10293              : 
   10294              : extern __inline __m512
   10295              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10296              : _mm512_mask_movehdup_ps (__m512 __W, __mmask16 __U, __m512 __A)
   10297              : {
   10298              :   return (__m512) __builtin_ia32_movshdup512_mask ((__v16sf) __A,
   10299              :                            (__v16sf) __W,
   10300              :                            (__mmask16) __U);
   10301              : }
   10302              : 
   10303              : extern __inline __m512
   10304              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10305              : _mm512_maskz_movehdup_ps (__mmask16 __U, __m512 __A)
   10306              : {
   10307              :   return (__m512) __builtin_ia32_movshdup512_mask ((__v16sf) __A,
   10308              :                            (__v16sf)
   10309              :                            _mm512_setzero_ps (),
   10310              :                            (__mmask16) __U);
   10311              : }
   10312              : 
   10313              : extern __inline __m512
   10314              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10315              : _mm512_moveldup_ps (__m512 __A)
   10316              : {
   10317              :   return (__m512) __builtin_ia32_movsldup512_mask ((__v16sf) __A,
   10318              :                            (__v16sf)
   10319              :                            _mm512_undefined_ps (),
   10320              :                            (__mmask16) -1);
   10321              : }
   10322              : 
   10323              : extern __inline __m512
   10324              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10325              : _mm512_mask_moveldup_ps (__m512 __W, __mmask16 __U, __m512 __A)
   10326              : {
   10327              :   return (__m512) __builtin_ia32_movsldup512_mask ((__v16sf) __A,
   10328              :                            (__v16sf) __W,
   10329              :                            (__mmask16) __U);
   10330              : }
   10331              : 
   10332              : extern __inline __m512
   10333              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10334              : _mm512_maskz_moveldup_ps (__mmask16 __U, __m512 __A)
   10335              : {
   10336              :   return (__m512) __builtin_ia32_movsldup512_mask ((__v16sf) __A,
   10337              :                            (__v16sf)
   10338              :                            _mm512_setzero_ps (),
   10339              :                            (__mmask16) __U);
   10340              : }
   10341              : 
   10342              : extern __inline __m512i
   10343              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10344              : _mm512_or_si512 (__m512i __A, __m512i __B)
   10345              : {
   10346              :   return (__m512i) ((__v16su) __A | (__v16su) __B);
   10347              : }
   10348              : 
   10349              : extern __inline __m512i
   10350              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10351              : _mm512_or_epi32 (__m512i __A, __m512i __B)
   10352              : {
   10353              :   return (__m512i) ((__v16su) __A | (__v16su) __B);
   10354              : }
   10355              : 
   10356              : extern __inline __m512i
   10357              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10358              : _mm512_mask_or_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
   10359              : {
   10360              :   return (__m512i) __builtin_ia32_pord512_mask ((__v16si) __A,
   10361              :                         (__v16si) __B,
   10362              :                         (__v16si) __W,
   10363              :                         (__mmask16) __U);
   10364              : }
   10365              : 
   10366              : extern __inline __m512i
   10367              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10368              : _mm512_maskz_or_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
   10369              : {
   10370              :   return (__m512i) __builtin_ia32_pord512_mask ((__v16si) __A,
   10371              :                         (__v16si) __B,
   10372              :                         (__v16si)
   10373              :                         _mm512_setzero_si512 (),
   10374              :                         (__mmask16) __U);
   10375              : }
   10376              : 
   10377              : extern __inline __m512i
   10378              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10379              : _mm512_or_epi64 (__m512i __A, __m512i __B)
   10380              : {
   10381              :   return (__m512i) ((__v8du) __A | (__v8du) __B);
   10382              : }
   10383              : 
   10384              : extern __inline __m512i
   10385              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10386              : _mm512_mask_or_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
   10387              : {
   10388              :   return (__m512i) __builtin_ia32_porq512_mask ((__v8di) __A,
   10389              :                         (__v8di) __B,
   10390              :                         (__v8di) __W,
   10391              :                         (__mmask8) __U);
   10392              : }
   10393              : 
   10394              : extern __inline __m512i
   10395              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10396              : _mm512_maskz_or_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
   10397              : {
   10398              :   return (__m512i) __builtin_ia32_porq512_mask ((__v8di) __A,
   10399              :                         (__v8di) __B,
   10400              :                         (__v8di)
   10401              :                         _mm512_setzero_si512 (),
   10402              :                         (__mmask8) __U);
   10403              : }
   10404              : 
   10405              : extern __inline __m512i
   10406              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10407              : _mm512_xor_si512 (__m512i __A, __m512i __B)
   10408              : {
   10409            0 :   return (__m512i) ((__v16su) __A ^ (__v16su) __B);
   10410              : }
   10411              : 
   10412              : extern __inline __m512i
   10413              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10414              : _mm512_xor_epi32 (__m512i __A, __m512i __B)
   10415              : {
   10416              :   return (__m512i) ((__v16su) __A ^ (__v16su) __B);
   10417              : }
   10418              : 
   10419              : extern __inline __m512i
   10420              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10421              : _mm512_mask_xor_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
   10422              : {
   10423              :   return (__m512i) __builtin_ia32_pxord512_mask ((__v16si) __A,
   10424              :                          (__v16si) __B,
   10425              :                          (__v16si) __W,
   10426              :                          (__mmask16) __U);
   10427              : }
   10428              : 
   10429              : extern __inline __m512i
   10430              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10431              : _mm512_maskz_xor_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
   10432              : {
   10433              :   return (__m512i) __builtin_ia32_pxord512_mask ((__v16si) __A,
   10434              :                          (__v16si) __B,
   10435              :                          (__v16si)
   10436              :                          _mm512_setzero_si512 (),
   10437              :                          (__mmask16) __U);
   10438              : }
   10439              : 
   10440              : extern __inline __m512i
   10441              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10442              : _mm512_xor_epi64 (__m512i __A, __m512i __B)
   10443              : {
   10444              :   return (__m512i) ((__v8du) __A ^ (__v8du) __B);
   10445              : }
   10446              : 
   10447              : extern __inline __m512i
   10448              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10449              : _mm512_mask_xor_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
   10450              : {
   10451              :   return (__m512i) __builtin_ia32_pxorq512_mask ((__v8di) __A,
   10452              :                          (__v8di) __B,
   10453              :                          (__v8di) __W,
   10454              :                          (__mmask8) __U);
   10455              : }
   10456              : 
   10457              : extern __inline __m512i
   10458              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10459              : _mm512_maskz_xor_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
   10460              : {
   10461              :   return (__m512i) __builtin_ia32_pxorq512_mask ((__v8di) __A,
   10462              :                          (__v8di) __B,
   10463              :                          (__v8di)
   10464              :                          _mm512_setzero_si512 (),
   10465              :                          (__mmask8) __U);
   10466              : }
   10467              : 
   10468              : #ifdef __OPTIMIZE__
   10469              : extern __inline __m512i
   10470              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10471              : _mm512_rol_epi32 (__m512i __A, const int __B)
   10472              : {
   10473              :   return (__m512i) __builtin_ia32_prold512_mask ((__v16si) __A, __B,
   10474              :                          (__v16si)
   10475              :                          _mm512_undefined_epi32 (),
   10476              :                          (__mmask16) -1);
   10477              : }
   10478              : 
   10479              : extern __inline __m512i
   10480              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10481              : _mm512_mask_rol_epi32 (__m512i __W, __mmask16 __U, __m512i __A, const int __B)
   10482              : {
   10483              :   return (__m512i) __builtin_ia32_prold512_mask ((__v16si) __A, __B,
   10484              :                          (__v16si) __W,
   10485              :                          (__mmask16) __U);
   10486              : }
   10487              : 
   10488              : extern __inline __m512i
   10489              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10490              : _mm512_maskz_rol_epi32 (__mmask16 __U, __m512i __A, const int __B)
   10491              : {
   10492              :   return (__m512i) __builtin_ia32_prold512_mask ((__v16si) __A, __B,
   10493              :                          (__v16si)
   10494              :                          _mm512_setzero_si512 (),
   10495              :                          (__mmask16) __U);
   10496              : }
   10497              : 
   10498              : extern __inline __m512i
   10499              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10500              : _mm512_ror_epi32 (__m512i __A, int __B)
   10501              : {
   10502              :   return (__m512i) __builtin_ia32_prord512_mask ((__v16si) __A, __B,
   10503              :                          (__v16si)
   10504              :                          _mm512_undefined_epi32 (),
   10505              :                          (__mmask16) -1);
   10506              : }
   10507              : 
   10508              : extern __inline __m512i
   10509              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10510              : _mm512_mask_ror_epi32 (__m512i __W, __mmask16 __U, __m512i __A, int __B)
   10511              : {
   10512              :   return (__m512i) __builtin_ia32_prord512_mask ((__v16si) __A, __B,
   10513              :                          (__v16si) __W,
   10514              :                          (__mmask16) __U);
   10515              : }
   10516              : 
   10517              : extern __inline __m512i
   10518              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10519              : _mm512_maskz_ror_epi32 (__mmask16 __U, __m512i __A, int __B)
   10520              : {
   10521              :   return (__m512i) __builtin_ia32_prord512_mask ((__v16si) __A, __B,
   10522              :                          (__v16si)
   10523              :                          _mm512_setzero_si512 (),
   10524              :                          (__mmask16) __U);
   10525              : }
   10526              : 
   10527              : extern __inline __m512i
   10528              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10529              : _mm512_rol_epi64 (__m512i __A, const int __B)
   10530              : {
   10531              :   return (__m512i) __builtin_ia32_prolq512_mask ((__v8di) __A, __B,
   10532              :                          (__v8di)
   10533              :                          _mm512_undefined_epi32 (),
   10534              :                          (__mmask8) -1);
   10535              : }
   10536              : 
   10537              : extern __inline __m512i
   10538              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10539              : _mm512_mask_rol_epi64 (__m512i __W, __mmask8 __U, __m512i __A, const int __B)
   10540              : {
   10541              :   return (__m512i) __builtin_ia32_prolq512_mask ((__v8di) __A, __B,
   10542              :                          (__v8di) __W,
   10543              :                          (__mmask8) __U);
   10544              : }
   10545              : 
   10546              : extern __inline __m512i
   10547              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10548              : _mm512_maskz_rol_epi64 (__mmask8 __U, __m512i __A, const int __B)
   10549              : {
   10550              :   return (__m512i) __builtin_ia32_prolq512_mask ((__v8di) __A, __B,
   10551              :                          (__v8di)
   10552              :                          _mm512_setzero_si512 (),
   10553              :                          (__mmask8) __U);
   10554              : }
   10555              : 
   10556              : extern __inline __m512i
   10557              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10558              : _mm512_ror_epi64 (__m512i __A, int __B)
   10559              : {
   10560              :   return (__m512i) __builtin_ia32_prorq512_mask ((__v8di) __A, __B,
   10561              :                          (__v8di)
   10562              :                          _mm512_undefined_epi32 (),
   10563              :                          (__mmask8) -1);
   10564              : }
   10565              : 
   10566              : extern __inline __m512i
   10567              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10568              : _mm512_mask_ror_epi64 (__m512i __W, __mmask8 __U, __m512i __A, int __B)
   10569              : {
   10570              :   return (__m512i) __builtin_ia32_prorq512_mask ((__v8di) __A, __B,
   10571              :                          (__v8di) __W,
   10572              :                          (__mmask8) __U);
   10573              : }
   10574              : 
   10575              : extern __inline __m512i
   10576              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10577              : _mm512_maskz_ror_epi64 (__mmask8 __U, __m512i __A, int __B)
   10578              : {
   10579              :   return (__m512i) __builtin_ia32_prorq512_mask ((__v8di) __A, __B,
   10580              :                          (__v8di)
   10581              :                          _mm512_setzero_si512 (),
   10582              :                          (__mmask8) __U);
   10583              : }
   10584              : 
   10585              : #else
   10586              : #define _mm512_rol_epi32(A, B)                        \
   10587              :     ((__m512i)__builtin_ia32_prold512_mask ((__v16si)(__m512i)(A),    \
   10588              :                         (int)(B),             \
   10589              :                         (__v16si)_mm512_undefined_epi32 (), \
   10590              :                         (__mmask16)(-1)))
   10591              : #define _mm512_mask_rol_epi32(W, U, A, B)                 \
   10592              :     ((__m512i)__builtin_ia32_prold512_mask ((__v16si)(__m512i)(A),    \
   10593              :                         (int)(B),             \
   10594              :                         (__v16si)(__m512i)(W),    \
   10595              :                         (__mmask16)(U)))
   10596              : #define _mm512_maskz_rol_epi32(U, A, B)                   \
   10597              :     ((__m512i)__builtin_ia32_prold512_mask ((__v16si)(__m512i)(A),    \
   10598              :                         (int)(B),             \
   10599              :                         (__v16si)_mm512_setzero_si512 (), \
   10600              :                         (__mmask16)(U)))
   10601              : #define _mm512_ror_epi32(A, B)                        \
   10602              :     ((__m512i)__builtin_ia32_prord512_mask ((__v16si)(__m512i)(A),    \
   10603              :                         (int)(B),             \
   10604              :                         (__v16si)_mm512_undefined_epi32 (), \
   10605              :                         (__mmask16)(-1)))
   10606              : #define _mm512_mask_ror_epi32(W, U, A, B)                 \
   10607              :     ((__m512i)__builtin_ia32_prord512_mask ((__v16si)(__m512i)(A),    \
   10608              :                         (int)(B),             \
   10609              :                         (__v16si)(__m512i)(W),    \
   10610              :                         (__mmask16)(U)))
   10611              : #define _mm512_maskz_ror_epi32(U, A, B)                   \
   10612              :     ((__m512i)__builtin_ia32_prord512_mask ((__v16si)(__m512i)(A),    \
   10613              :                         (int)(B),             \
   10614              :                         (__v16si)_mm512_setzero_si512 (), \
   10615              :                         (__mmask16)(U)))
   10616              : #define _mm512_rol_epi64(A, B)                        \
   10617              :     ((__m512i)__builtin_ia32_prolq512_mask ((__v8di)(__m512i)(A),     \
   10618              :                         (int)(B),             \
   10619              :                         (__v8di)_mm512_undefined_epi32 (),  \
   10620              :                         (__mmask8)(-1)))
   10621              : #define _mm512_mask_rol_epi64(W, U, A, B)                 \
   10622              :     ((__m512i)__builtin_ia32_prolq512_mask ((__v8di)(__m512i)(A),     \
   10623              :                         (int)(B),             \
   10624              :                         (__v8di)(__m512i)(W),     \
   10625              :                         (__mmask8)(U)))
   10626              : #define _mm512_maskz_rol_epi64(U, A, B)                   \
   10627              :     ((__m512i)__builtin_ia32_prolq512_mask ((__v8di)(__m512i)(A),     \
   10628              :                         (int)(B),             \
   10629              :                         (__v8di)_mm512_setzero_si512 (),  \
   10630              :                         (__mmask8)(U)))
   10631              : 
   10632              : #define _mm512_ror_epi64(A, B)                        \
   10633              :     ((__m512i)__builtin_ia32_prorq512_mask ((__v8di)(__m512i)(A),     \
   10634              :                         (int)(B),             \
   10635              :                         (__v8di)_mm512_undefined_epi32 (),  \
   10636              :                         (__mmask8)(-1)))
   10637              : #define _mm512_mask_ror_epi64(W, U, A, B)                 \
   10638              :     ((__m512i)__builtin_ia32_prorq512_mask ((__v8di)(__m512i)(A),     \
   10639              :                         (int)(B),             \
   10640              :                         (__v8di)(__m512i)(W),     \
   10641              :                         (__mmask8)(U)))
   10642              : #define _mm512_maskz_ror_epi64(U, A, B)                   \
   10643              :     ((__m512i)__builtin_ia32_prorq512_mask ((__v8di)(__m512i)(A),     \
   10644              :                         (int)(B),             \
   10645              :                         (__v8di)_mm512_setzero_si512 (),  \
   10646              :                         (__mmask8)(U)))
   10647              : #endif
   10648              : 
   10649              : extern __inline __m512i
   10650              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10651              : _mm512_and_si512 (__m512i __A, __m512i __B)
   10652              : {
   10653            0 :   return (__m512i) ((__v16su) __A & (__v16su) __B);
   10654              : }
   10655              : 
   10656              : extern __inline __m512i
   10657              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10658              : _mm512_and_epi32 (__m512i __A, __m512i __B)
   10659              : {
   10660              :   return (__m512i) ((__v16su) __A & (__v16su) __B);
   10661              : }
   10662              : 
   10663              : extern __inline __m512i
   10664              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10665              : _mm512_mask_and_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
   10666              : {
   10667              :   return (__m512i) __builtin_ia32_pandd512_mask ((__v16si) __A,
   10668              :                          (__v16si) __B,
   10669              :                          (__v16si) __W,
   10670              :                          (__mmask16) __U);
   10671              : }
   10672              : 
   10673              : extern __inline __m512i
   10674              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10675              : _mm512_maskz_and_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
   10676              : {
   10677              :   return (__m512i) __builtin_ia32_pandd512_mask ((__v16si) __A,
   10678              :                          (__v16si) __B,
   10679              :                          (__v16si)
   10680              :                          _mm512_setzero_si512 (),
   10681              :                          (__mmask16) __U);
   10682              : }
   10683              : 
   10684              : extern __inline __m512i
   10685              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10686              : _mm512_and_epi64 (__m512i __A, __m512i __B)
   10687              : {
   10688              :   return (__m512i) ((__v8du) __A & (__v8du) __B);
   10689              : }
   10690              : 
   10691              : extern __inline __m512i
   10692              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10693              : _mm512_mask_and_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
   10694              : {
   10695              :   return (__m512i) __builtin_ia32_pandq512_mask ((__v8di) __A,
   10696              :                          (__v8di) __B,
   10697              :                          (__v8di) __W, __U);
   10698              : }
   10699              : 
   10700              : extern __inline __m512i
   10701              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10702              : _mm512_maskz_and_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
   10703              : {
   10704              :   return (__m512i) __builtin_ia32_pandq512_mask ((__v8di) __A,
   10705              :                          (__v8di) __B,
   10706              :                          (__v8di)
   10707              :                          _mm512_setzero_pd (),
   10708              :                          __U);
   10709              : }
   10710              : 
   10711              : extern __inline __m512i
   10712              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10713              : _mm512_andnot_si512 (__m512i __A, __m512i __B)
   10714              : {
   10715              :   return (__m512i) __builtin_ia32_pandnd512_mask ((__v16si) __A,
   10716              :                           (__v16si) __B,
   10717              :                           (__v16si)
   10718              :                           _mm512_undefined_epi32 (),
   10719              :                           (__mmask16) -1);
   10720              : }
   10721              : 
   10722              : extern __inline __m512i
   10723              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10724              : _mm512_andnot_epi32 (__m512i __A, __m512i __B)
   10725              : {
   10726              :   return (__m512i) __builtin_ia32_pandnd512_mask ((__v16si) __A,
   10727              :                           (__v16si) __B,
   10728              :                           (__v16si)
   10729              :                           _mm512_undefined_epi32 (),
   10730              :                           (__mmask16) -1);
   10731              : }
   10732              : 
   10733              : extern __inline __m512i
   10734              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10735              : _mm512_mask_andnot_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
   10736              : {
   10737              :   return (__m512i) __builtin_ia32_pandnd512_mask ((__v16si) __A,
   10738              :                           (__v16si) __B,
   10739              :                           (__v16si) __W,
   10740              :                           (__mmask16) __U);
   10741              : }
   10742              : 
   10743              : extern __inline __m512i
   10744              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10745              : _mm512_maskz_andnot_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
   10746              : {
   10747              :   return (__m512i) __builtin_ia32_pandnd512_mask ((__v16si) __A,
   10748              :                           (__v16si) __B,
   10749              :                           (__v16si)
   10750              :                           _mm512_setzero_si512 (),
   10751              :                           (__mmask16) __U);
   10752              : }
   10753              : 
   10754              : extern __inline __m512i
   10755              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10756              : _mm512_andnot_epi64 (__m512i __A, __m512i __B)
   10757              : {
   10758              :   return (__m512i) __builtin_ia32_pandnq512_mask ((__v8di) __A,
   10759              :                           (__v8di) __B,
   10760              :                           (__v8di)
   10761              :                           _mm512_undefined_epi32 (),
   10762              :                           (__mmask8) -1);
   10763              : }
   10764              : 
   10765              : extern __inline __m512i
   10766              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10767              : _mm512_mask_andnot_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
   10768              : {
   10769              :   return (__m512i) __builtin_ia32_pandnq512_mask ((__v8di) __A,
   10770              :                           (__v8di) __B,
   10771              :                           (__v8di) __W, __U);
   10772              : }
   10773              : 
   10774              : extern __inline __m512i
   10775              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10776              : _mm512_maskz_andnot_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
   10777              : {
   10778              :   return (__m512i) __builtin_ia32_pandnq512_mask ((__v8di) __A,
   10779              :                           (__v8di) __B,
   10780              :                           (__v8di)
   10781              :                           _mm512_setzero_pd (),
   10782              :                           __U);
   10783              : }
   10784              : 
   10785              : extern __inline __mmask16
   10786              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10787              : _mm512_test_epi32_mask (__m512i __A, __m512i __B)
   10788              : {
   10789              :   return (__mmask16) __builtin_ia32_ptestmd512 ((__v16si) __A,
   10790              :                         (__v16si) __B,
   10791              :                         (__mmask16) -1);
   10792              : }
   10793              : 
   10794              : extern __inline __mmask16
   10795              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10796              : _mm512_mask_test_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B)
   10797              : {
   10798              :   return (__mmask16) __builtin_ia32_ptestmd512 ((__v16si) __A,
   10799              :                         (__v16si) __B, __U);
   10800              : }
   10801              : 
   10802              : extern __inline __mmask8
   10803              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10804              : _mm512_test_epi64_mask (__m512i __A, __m512i __B)
   10805              : {
   10806              :   return (__mmask8) __builtin_ia32_ptestmq512 ((__v8di) __A,
   10807              :                            (__v8di) __B,
   10808              :                            (__mmask8) -1);
   10809              : }
   10810              : 
   10811              : extern __inline __mmask8
   10812              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10813              : _mm512_mask_test_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B)
   10814              : {
   10815              :   return (__mmask8) __builtin_ia32_ptestmq512 ((__v8di) __A, (__v8di) __B, __U);
   10816              : }
   10817              : 
   10818              : extern __inline __mmask16
   10819              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10820              : _mm512_testn_epi32_mask (__m512i __A, __m512i __B)
   10821              : {
   10822              :   return (__mmask16) __builtin_ia32_ptestnmd512 ((__v16si) __A,
   10823              :                          (__v16si) __B,
   10824              :                          (__mmask16) -1);
   10825              : }
   10826              : 
   10827              : extern __inline __mmask16
   10828              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10829              : _mm512_mask_testn_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B)
   10830              : {
   10831              :   return (__mmask16) __builtin_ia32_ptestnmd512 ((__v16si) __A,
   10832              :                          (__v16si) __B, __U);
   10833              : }
   10834              : 
   10835              : extern __inline __mmask8
   10836              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10837              : _mm512_testn_epi64_mask (__m512i __A, __m512i __B)
   10838              : {
   10839              :   return (__mmask8) __builtin_ia32_ptestnmq512 ((__v8di) __A,
   10840              :                         (__v8di) __B,
   10841              :                         (__mmask8) -1);
   10842              : }
   10843              : 
   10844              : extern __inline __mmask8
   10845              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10846              : _mm512_mask_testn_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B)
   10847              : {
   10848              :   return (__mmask8) __builtin_ia32_ptestnmq512 ((__v8di) __A,
   10849              :                         (__v8di) __B, __U);
   10850              : }
   10851              : 
   10852              : extern __inline __m512
   10853              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10854              : _mm512_abs_ps (__m512 __A)
   10855              : {
   10856              :   return (__m512) _mm512_and_epi32 ((__m512i) __A,
   10857              :                     _mm512_set1_epi32 (0x7fffffff));
   10858              : }
   10859              : 
   10860              : extern __inline __m512
   10861              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10862              : _mm512_mask_abs_ps (__m512 __W, __mmask16 __U, __m512 __A)
   10863              : {
   10864              :   return (__m512) _mm512_mask_and_epi32 ((__m512i) __W, __U, (__m512i) __A,
   10865              :                      _mm512_set1_epi32 (0x7fffffff));
   10866              : }
   10867              : 
   10868              : extern __inline __m512d
   10869              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10870              : _mm512_abs_pd (__m512d __A)
   10871              : {
   10872              :   return (__m512d) _mm512_and_epi64 ((__m512i) __A,
   10873              :                      _mm512_set1_epi64 (0x7fffffffffffffffLL));
   10874              : }
   10875              : 
   10876              : extern __inline __m512d
   10877              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10878              : _mm512_mask_abs_pd (__m512d __W, __mmask8 __U, __m512d __A)
   10879              : {
   10880              :   return (__m512d)
   10881              :      _mm512_mask_and_epi64 ((__m512i) __W, __U, (__m512i) __A,
   10882              :                 _mm512_set1_epi64 (0x7fffffffffffffffLL));
   10883              : }
   10884              : 
   10885              : extern __inline __m512i
   10886              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10887              : _mm512_unpackhi_epi32 (__m512i __A, __m512i __B)
   10888              : {
   10889              :   return (__m512i) __builtin_ia32_punpckhdq512_mask ((__v16si) __A,
   10890              :                              (__v16si) __B,
   10891              :                              (__v16si)
   10892              :                              _mm512_undefined_epi32 (),
   10893              :                              (__mmask16) -1);
   10894              : }
   10895              : 
   10896              : extern __inline __m512i
   10897              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10898              : _mm512_mask_unpackhi_epi32 (__m512i __W, __mmask16 __U, __m512i __A,
   10899              :                 __m512i __B)
   10900              : {
   10901              :   return (__m512i) __builtin_ia32_punpckhdq512_mask ((__v16si) __A,
   10902              :                              (__v16si) __B,
   10903              :                              (__v16si) __W,
   10904              :                              (__mmask16) __U);
   10905              : }
   10906              : 
   10907              : extern __inline __m512i
   10908              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10909              : _mm512_maskz_unpackhi_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
   10910              : {
   10911              :   return (__m512i) __builtin_ia32_punpckhdq512_mask ((__v16si) __A,
   10912              :                              (__v16si) __B,
   10913              :                              (__v16si)
   10914              :                              _mm512_setzero_si512 (),
   10915              :                              (__mmask16) __U);
   10916              : }
   10917              : 
   10918              : extern __inline __m512i
   10919              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10920              : _mm512_unpackhi_epi64 (__m512i __A, __m512i __B)
   10921              : {
   10922              :   return (__m512i) __builtin_ia32_punpckhqdq512_mask ((__v8di) __A,
   10923              :                               (__v8di) __B,
   10924              :                               (__v8di)
   10925              :                               _mm512_undefined_epi32 (),
   10926              :                               (__mmask8) -1);
   10927              : }
   10928              : 
   10929              : extern __inline __m512i
   10930              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10931              : _mm512_mask_unpackhi_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
   10932              : {
   10933              :   return (__m512i) __builtin_ia32_punpckhqdq512_mask ((__v8di) __A,
   10934              :                               (__v8di) __B,
   10935              :                               (__v8di) __W,
   10936              :                               (__mmask8) __U);
   10937              : }
   10938              : 
   10939              : extern __inline __m512i
   10940              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10941              : _mm512_maskz_unpackhi_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
   10942              : {
   10943              :   return (__m512i) __builtin_ia32_punpckhqdq512_mask ((__v8di) __A,
   10944              :                               (__v8di) __B,
   10945              :                               (__v8di)
   10946              :                               _mm512_setzero_si512 (),
   10947              :                               (__mmask8) __U);
   10948              : }
   10949              : 
   10950              : extern __inline __m512i
   10951              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10952              : _mm512_unpacklo_epi32 (__m512i __A, __m512i __B)
   10953              : {
   10954              :   return (__m512i) __builtin_ia32_punpckldq512_mask ((__v16si) __A,
   10955              :                              (__v16si) __B,
   10956              :                              (__v16si)
   10957              :                              _mm512_undefined_epi32 (),
   10958              :                              (__mmask16) -1);
   10959              : }
   10960              : 
   10961              : extern __inline __m512i
   10962              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10963              : _mm512_mask_unpacklo_epi32 (__m512i __W, __mmask16 __U, __m512i __A,
   10964              :                 __m512i __B)
   10965              : {
   10966              :   return (__m512i) __builtin_ia32_punpckldq512_mask ((__v16si) __A,
   10967              :                              (__v16si) __B,
   10968              :                              (__v16si) __W,
   10969              :                              (__mmask16) __U);
   10970              : }
   10971              : 
   10972              : extern __inline __m512i
   10973              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10974              : _mm512_maskz_unpacklo_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
   10975              : {
   10976              :   return (__m512i) __builtin_ia32_punpckldq512_mask ((__v16si) __A,
   10977              :                              (__v16si) __B,
   10978              :                              (__v16si)
   10979              :                              _mm512_setzero_si512 (),
   10980              :                              (__mmask16) __U);
   10981              : }
   10982              : 
   10983              : extern __inline __m512i
   10984              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10985              : _mm512_unpacklo_epi64 (__m512i __A, __m512i __B)
   10986              : {
   10987              :   return (__m512i) __builtin_ia32_punpcklqdq512_mask ((__v8di) __A,
   10988              :                               (__v8di) __B,
   10989              :                               (__v8di)
   10990              :                               _mm512_undefined_epi32 (),
   10991              :                               (__mmask8) -1);
   10992              : }
   10993              : 
   10994              : extern __inline __m512i
   10995              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10996              : _mm512_mask_unpacklo_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
   10997              : {
   10998              :   return (__m512i) __builtin_ia32_punpcklqdq512_mask ((__v8di) __A,
   10999              :                               (__v8di) __B,
   11000              :                               (__v8di) __W,
   11001              :                               (__mmask8) __U);
   11002              : }
   11003              : 
   11004              : extern __inline __m512i
   11005              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11006              : _mm512_maskz_unpacklo_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
   11007              : {
   11008              :   return (__m512i) __builtin_ia32_punpcklqdq512_mask ((__v8di) __A,
   11009              :                               (__v8di) __B,
   11010              :                               (__v8di)
   11011              :                               _mm512_setzero_si512 (),
   11012              :                               (__mmask8) __U);
   11013              : }
   11014              : 
   11015              : extern __inline __m512d
   11016              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11017              : _mm512_movedup_pd (__m512d __A)
   11018              : {
   11019              :   return (__m512d) __builtin_ia32_movddup512_mask ((__v8df) __A,
   11020              :                            (__v8df)
   11021              :                            _mm512_undefined_pd (),
   11022              :                            (__mmask8) -1);
   11023              : }
   11024              : 
   11025              : extern __inline __m512d
   11026              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11027              : _mm512_mask_movedup_pd (__m512d __W, __mmask8 __U, __m512d __A)
   11028              : {
   11029              :   return (__m512d) __builtin_ia32_movddup512_mask ((__v8df) __A,
   11030              :                            (__v8df) __W,
   11031              :                            (__mmask8) __U);
   11032              : }
   11033              : 
   11034              : extern __inline __m512d
   11035              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11036              : _mm512_maskz_movedup_pd (__mmask8 __U, __m512d __A)
   11037              : {
   11038              :   return (__m512d) __builtin_ia32_movddup512_mask ((__v8df) __A,
   11039              :                            (__v8df)
   11040              :                            _mm512_setzero_pd (),
   11041              :                            (__mmask8) __U);
   11042              : }
   11043              : 
   11044              : extern __inline __m512d
   11045              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11046              : _mm512_unpacklo_pd (__m512d __A, __m512d __B)
   11047              : {
   11048              :   return (__m512d) __builtin_ia32_unpcklpd512_mask ((__v8df) __A,
   11049              :                             (__v8df) __B,
   11050              :                             (__v8df)
   11051              :                             _mm512_undefined_pd (),
   11052              :                             (__mmask8) -1);
   11053              : }
   11054              : 
   11055              : extern __inline __m512d
   11056              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11057              : _mm512_mask_unpacklo_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
   11058              : {
   11059              :   return (__m512d) __builtin_ia32_unpcklpd512_mask ((__v8df) __A,
   11060              :                             (__v8df) __B,
   11061              :                             (__v8df) __W,
   11062              :                             (__mmask8) __U);
   11063              : }
   11064              : 
   11065              : extern __inline __m512d
   11066              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11067              : _mm512_maskz_unpacklo_pd (__mmask8 __U, __m512d __A, __m512d __B)
   11068              : {
   11069              :   return (__m512d) __builtin_ia32_unpcklpd512_mask ((__v8df) __A,
   11070              :                             (__v8df) __B,
   11071              :                             (__v8df)
   11072              :                             _mm512_setzero_pd (),
   11073              :                             (__mmask8) __U);
   11074              : }
   11075              : 
   11076              : extern __inline __m512d
   11077              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11078              : _mm512_unpackhi_pd (__m512d __A, __m512d __B)
   11079              : {
   11080              :   return (__m512d) __builtin_ia32_unpckhpd512_mask ((__v8df) __A,
   11081              :                             (__v8df) __B,
   11082              :                             (__v8df)
   11083              :                             _mm512_undefined_pd (),
   11084              :                             (__mmask8) -1);
   11085              : }
   11086              : 
   11087              : extern __inline __m512d
   11088              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11089              : _mm512_mask_unpackhi_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
   11090              : {
   11091              :   return (__m512d) __builtin_ia32_unpckhpd512_mask ((__v8df) __A,
   11092              :                             (__v8df) __B,
   11093              :                             (__v8df) __W,
   11094              :                             (__mmask8) __U);
   11095              : }
   11096              : 
   11097              : extern __inline __m512d
   11098              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11099              : _mm512_maskz_unpackhi_pd (__mmask8 __U, __m512d __A, __m512d __B)
   11100              : {
   11101              :   return (__m512d) __builtin_ia32_unpckhpd512_mask ((__v8df) __A,
   11102              :                             (__v8df) __B,
   11103              :                             (__v8df)
   11104              :                             _mm512_setzero_pd (),
   11105              :                             (__mmask8) __U);
   11106              : }
   11107              : 
   11108              : extern __inline __m512
   11109              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11110              : _mm512_unpackhi_ps (__m512 __A, __m512 __B)
   11111              : {
   11112              :   return (__m512) __builtin_ia32_unpckhps512_mask ((__v16sf) __A,
   11113              :                            (__v16sf) __B,
   11114              :                            (__v16sf)
   11115              :                            _mm512_undefined_ps (),
   11116              :                            (__mmask16) -1);
   11117              : }
   11118              : 
   11119              : extern __inline __m512
   11120              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11121              : _mm512_mask_unpackhi_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
   11122              : {
   11123              :   return (__m512) __builtin_ia32_unpckhps512_mask ((__v16sf) __A,
   11124              :                            (__v16sf) __B,
   11125              :                            (__v16sf) __W,
   11126              :                            (__mmask16) __U);
   11127              : }
   11128              : 
   11129              : extern __inline __m512
   11130              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11131              : _mm512_maskz_unpackhi_ps (__mmask16 __U, __m512 __A, __m512 __B)
   11132              : {
   11133              :   return (__m512) __builtin_ia32_unpckhps512_mask ((__v16sf) __A,
   11134              :                            (__v16sf) __B,
   11135              :                            (__v16sf)
   11136              :                            _mm512_setzero_ps (),
   11137              :                            (__mmask16) __U);
   11138              : }
   11139              : 
   11140              : #ifdef __OPTIMIZE__
   11141              : extern __inline __m512d
   11142              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11143              : _mm512_cvt_roundps_pd (__m256 __A, const int __R)
   11144              : {
   11145              :   return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
   11146              :                             (__v8df)
   11147              :                             _mm512_undefined_pd (),
   11148              :                             (__mmask8) -1, __R);
   11149              : }
   11150              : 
   11151              : extern __inline __m512d
   11152              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11153              : _mm512_mask_cvt_roundps_pd (__m512d __W, __mmask8 __U, __m256 __A,
   11154              :                 const int __R)
   11155              : {
   11156              :   return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
   11157              :                             (__v8df) __W,
   11158              :                             (__mmask8) __U, __R);
   11159              : }
   11160              : 
   11161              : extern __inline __m512d
   11162              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11163              : _mm512_maskz_cvt_roundps_pd (__mmask8 __U, __m256 __A, const int __R)
   11164              : {
   11165              :   return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
   11166              :                             (__v8df)
   11167              :                             _mm512_setzero_pd (),
   11168              :                             (__mmask8) __U, __R);
   11169              : }
   11170              : 
   11171              : extern __inline __m512
   11172              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11173              : _mm512_cvt_roundph_ps (__m256i __A, const int __R)
   11174              : {
   11175              :   return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,
   11176              :                             (__v16sf)
   11177              :                             _mm512_undefined_ps (),
   11178              :                             (__mmask16) -1, __R);
   11179              : }
   11180              : 
   11181              : extern __inline __m512
   11182              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11183              : _mm512_mask_cvt_roundph_ps (__m512 __W, __mmask16 __U, __m256i __A,
   11184              :                 const int __R)
   11185              : {
   11186              :   return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,
   11187              :                             (__v16sf) __W,
   11188              :                             (__mmask16) __U, __R);
   11189              : }
   11190              : 
   11191              : extern __inline __m512
   11192              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11193              : _mm512_maskz_cvt_roundph_ps (__mmask16 __U, __m256i __A, const int __R)
   11194              : {
   11195              :   return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,
   11196              :                             (__v16sf)
   11197              :                             _mm512_setzero_ps (),
   11198              :                             (__mmask16) __U, __R);
   11199              : }
   11200              : 
   11201              : extern __inline __m256i
   11202              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11203              : _mm512_cvt_roundps_ph (__m512 __A, const int __I)
   11204              : {
   11205              :   return (__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf) __A,
   11206              :                              __I,
   11207              :                              (__v16hi)
   11208              :                              _mm256_undefined_si256 (),
   11209              :                              -1);
   11210              : }
   11211              : 
   11212              : extern __inline __m256i
   11213              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11214              : _mm512_cvtps_ph (__m512 __A, const int __I)
   11215              : {
   11216              :   return (__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf) __A,
   11217              :                              __I,
   11218              :                              (__v16hi)
   11219              :                              _mm256_undefined_si256 (),
   11220              :                              -1);
   11221              : }
   11222              : 
   11223              : extern __inline __m256i
   11224              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11225              : _mm512_mask_cvt_roundps_ph (__m256i __U, __mmask16 __W, __m512 __A,
   11226              :                 const int __I)
   11227              : {
   11228              :   return (__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf) __A,
   11229              :                              __I,
   11230              :                              (__v16hi) __U,
   11231              :                              (__mmask16) __W);
   11232              : }
   11233              : 
   11234              : extern __inline __m256i
   11235              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11236              : _mm512_mask_cvtps_ph (__m256i __U, __mmask16 __W, __m512 __A, const int __I)
   11237              : {
   11238              :   return (__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf) __A,
   11239              :                              __I,
   11240              :                              (__v16hi) __U,
   11241              :                              (__mmask16) __W);
   11242              : }
   11243              : 
   11244              : extern __inline __m256i
   11245              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11246              : _mm512_maskz_cvt_roundps_ph (__mmask16 __W, __m512 __A, const int __I)
   11247              : {
   11248              :   return (__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf) __A,
   11249              :                              __I,
   11250              :                              (__v16hi)
   11251              :                              _mm256_setzero_si256 (),
   11252              :                              (__mmask16) __W);
   11253              : }
   11254              : 
   11255              : extern __inline __m256i
   11256              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11257              : _mm512_maskz_cvtps_ph (__mmask16 __W, __m512 __A, const int __I)
   11258              : {
   11259              :   return (__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf) __A,
   11260              :                              __I,
   11261              :                              (__v16hi)
   11262              :                              _mm256_setzero_si256 (),
   11263              :                              (__mmask16) __W);
   11264              : }
   11265              : #else
   11266              : #define _mm512_cvt_roundps_pd(A, B)      \
   11267              :     (__m512d)__builtin_ia32_cvtps2pd512_mask(A, (__v8df)_mm512_undefined_pd(), -1, B)
   11268              : 
   11269              : #define _mm512_mask_cvt_roundps_pd(W, U, A, B)   \
   11270              :     (__m512d)__builtin_ia32_cvtps2pd512_mask(A, (__v8df)(W), U, B)
   11271              : 
   11272              : #define _mm512_maskz_cvt_roundps_pd(U, A, B)     \
   11273              :     (__m512d)__builtin_ia32_cvtps2pd512_mask(A, (__v8df)_mm512_setzero_pd(), U, B)
   11274              : 
   11275              : #define _mm512_cvt_roundph_ps(A, B)      \
   11276              :     (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(A), (__v16sf)_mm512_undefined_ps(), -1, B)
   11277              : 
   11278              : #define _mm512_mask_cvt_roundph_ps(W, U, A, B)   \
   11279              :     (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(A), (__v16sf)(W), U, B)
   11280              : 
   11281              : #define _mm512_maskz_cvt_roundph_ps(U, A, B)     \
   11282              :     (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(A), (__v16sf)_mm512_setzero_ps(), U, B)
   11283              : 
   11284              : #define _mm512_cvt_roundps_ph(A, I)                      \
   11285              :   ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) (A), (int) (I),\
   11286              :     (__v16hi)_mm256_undefined_si256 (), -1))
   11287              : #define _mm512_cvtps_ph(A, I)                        \
   11288              :   ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) (A), (int) (I),\
   11289              :     (__v16hi)_mm256_undefined_si256 (), -1))
   11290              : #define _mm512_mask_cvt_roundps_ph(U, W, A, I)               \
   11291              :   ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) (A), (int) (I),\
   11292              :     (__v16hi)(__m256i)(U), (__mmask16) (W)))
   11293              : #define _mm512_mask_cvtps_ph(U, W, A, I)                 \
   11294              :   ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) (A), (int) (I),\
   11295              :     (__v16hi)(__m256i)(U), (__mmask16) (W)))
   11296              : #define _mm512_maskz_cvt_roundps_ph(W, A, I)                     \
   11297              :   ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) (A), (int) (I),\
   11298              :     (__v16hi)_mm256_setzero_si256 (), (__mmask16) (W)))
   11299              : #define _mm512_maskz_cvtps_ph(W, A, I)                   \
   11300              :   ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) (A), (int) (I),\
   11301              :     (__v16hi)_mm256_setzero_si256 (), (__mmask16) (W)))
   11302              : #endif
   11303              : 
   11304              : #ifdef __OPTIMIZE__
   11305              : extern __inline __m256
   11306              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11307              : _mm512_cvt_roundpd_ps (__m512d __A, const int __R)
   11308              : {
   11309              :   return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,
   11310              :                            (__v8sf)
   11311              :                            _mm256_undefined_ps (),
   11312              :                            (__mmask8) -1, __R);
   11313              : }
   11314              : 
   11315              : extern __inline __m256
   11316              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11317              : _mm512_mask_cvt_roundpd_ps (__m256 __W, __mmask8 __U, __m512d __A,
   11318              :                 const int __R)
   11319              : {
   11320              :   return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,
   11321              :                            (__v8sf) __W,
   11322              :                            (__mmask8) __U, __R);
   11323              : }
   11324              : 
   11325              : extern __inline __m256
   11326              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11327              : _mm512_maskz_cvt_roundpd_ps (__mmask8 __U, __m512d __A, const int __R)
   11328              : {
   11329              :   return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,
   11330              :                            (__v8sf)
   11331              :                            _mm256_setzero_ps (),
   11332              :                            (__mmask8) __U, __R);
   11333              : }
   11334              : 
   11335              : #else
   11336              : #define _mm512_cvt_roundpd_ps(A, B)      \
   11337              :     (__m256)__builtin_ia32_cvtpd2ps512_mask(A, (__v8sf)_mm256_undefined_ps(), -1, B)
   11338              : 
   11339              : #define _mm512_mask_cvt_roundpd_ps(W, U, A, B)   \
   11340              :     (__m256)__builtin_ia32_cvtpd2ps512_mask(A, (__v8sf)(W), U, B)
   11341              : 
   11342              : #define _mm512_maskz_cvt_roundpd_ps(U, A, B)     \
   11343              :     (__m256)__builtin_ia32_cvtpd2ps512_mask(A, (__v8sf)_mm256_setzero_ps(), U, B)
   11344              : 
   11345              : #endif
   11346              : 
   11347              : extern __inline void
   11348              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11349              : _mm512_stream_si512 (__m512i * __P, __m512i __A)
   11350              : {
   11351              :   __builtin_ia32_movntdq512 ((__v8di *) __P, (__v8di) __A);
   11352              : }
   11353              : 
   11354              : extern __inline void
   11355              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11356              : _mm512_stream_ps (float *__P, __m512 __A)
   11357              : {
   11358              :   __builtin_ia32_movntps512 (__P, (__v16sf) __A);
   11359              : }
   11360              : 
   11361              : extern __inline void
   11362              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11363              : _mm512_stream_pd (double *__P, __m512d __A)
   11364              : {
   11365              :   __builtin_ia32_movntpd512 (__P, (__v8df) __A);
   11366              : }
   11367              : 
   11368              : extern __inline __m512i
   11369              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11370              : _mm512_stream_load_si512 (void *__P)
   11371              : {
   11372              :   return __builtin_ia32_movntdqa512 ((__v8di *)__P);
   11373              : }
   11374              : 
   11375              : #ifdef __OPTIMIZE__
   11376              : extern __inline __m512
   11377              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11378              : _mm512_getexp_round_ps (__m512 __A, const int __R)
   11379              : {
   11380              :   return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
   11381              :                            (__v16sf)
   11382              :                            _mm512_undefined_ps (),
   11383              :                            (__mmask16) -1, __R);
   11384              : }
   11385              : 
   11386              : extern __inline __m512
   11387              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11388              : _mm512_mask_getexp_round_ps (__m512 __W, __mmask16 __U, __m512 __A,
   11389              :                  const int __R)
   11390              : {
   11391              :   return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
   11392              :                            (__v16sf) __W,
   11393              :                            (__mmask16) __U, __R);
   11394              : }
   11395              : 
   11396              : extern __inline __m512
   11397              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11398              : _mm512_maskz_getexp_round_ps (__mmask16 __U, __m512 __A, const int __R)
   11399              : {
   11400              :   return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
   11401              :                            (__v16sf)
   11402              :                            _mm512_setzero_ps (),
   11403              :                            (__mmask16) __U, __R);
   11404              : }
   11405              : 
   11406              : extern __inline __m512d
   11407              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11408              : _mm512_getexp_round_pd (__m512d __A, const int __R)
   11409              : {
   11410              :   return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
   11411              :                             (__v8df)
   11412              :                             _mm512_undefined_pd (),
   11413              :                             (__mmask8) -1, __R);
   11414              : }
   11415              : 
   11416              : extern __inline __m512d
   11417              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11418              : _mm512_mask_getexp_round_pd (__m512d __W, __mmask8 __U, __m512d __A,
   11419              :                  const int __R)
   11420              : {
   11421              :   return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
   11422              :                             (__v8df) __W,
   11423              :                             (__mmask8) __U, __R);
   11424              : }
   11425              : 
   11426              : extern __inline __m512d
   11427              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11428              : _mm512_maskz_getexp_round_pd (__mmask8 __U, __m512d __A, const int __R)
   11429              : {
   11430              :   return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
   11431              :                             (__v8df)
   11432              :                             _mm512_setzero_pd (),
   11433              :                             (__mmask8) __U, __R);
   11434              : }
   11435              : 
   11436              : extern __inline __m512d
   11437              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11438              : _mm512_getmant_round_pd (__m512d __A, _MM_MANTISSA_NORM_ENUM __B,
   11439              :              _MM_MANTISSA_SIGN_ENUM __C, const int __R)
   11440              : {
   11441              :   return (__m512d) __builtin_ia32_getmantpd512_mask ((__v8df) __A,
   11442              :                              (__C << 2) | __B,
   11443              :                              _mm512_undefined_pd (),
   11444              :                              (__mmask8) -1, __R);
   11445              : }
   11446              : 
   11447              : extern __inline __m512d
   11448              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11449              : _mm512_mask_getmant_round_pd (__m512d __W, __mmask8 __U, __m512d __A,
   11450              :                   _MM_MANTISSA_NORM_ENUM __B,
   11451              :                   _MM_MANTISSA_SIGN_ENUM __C, const int __R)
   11452              : {
   11453              :   return (__m512d) __builtin_ia32_getmantpd512_mask ((__v8df) __A,
   11454              :                              (__C << 2) | __B,
   11455              :                              (__v8df) __W, __U,
   11456              :                              __R);
   11457              : }
   11458              : 
   11459              : extern __inline __m512d
   11460              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11461              : _mm512_maskz_getmant_round_pd (__mmask8 __U, __m512d __A,
   11462              :                    _MM_MANTISSA_NORM_ENUM __B,
   11463              :                    _MM_MANTISSA_SIGN_ENUM __C, const int __R)
   11464              : {
   11465              :   return (__m512d) __builtin_ia32_getmantpd512_mask ((__v8df) __A,
   11466              :                              (__C << 2) | __B,
   11467              :                              (__v8df)
   11468              :                              _mm512_setzero_pd (),
   11469              :                              __U, __R);
   11470              : }
   11471              : 
   11472              : extern __inline __m512
   11473              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11474              : _mm512_getmant_round_ps (__m512 __A, _MM_MANTISSA_NORM_ENUM __B,
   11475              :              _MM_MANTISSA_SIGN_ENUM __C, const int __R)
   11476              : {
   11477              :   return (__m512) __builtin_ia32_getmantps512_mask ((__v16sf) __A,
   11478              :                             (__C << 2) | __B,
   11479              :                             _mm512_undefined_ps (),
   11480              :                             (__mmask16) -1, __R);
   11481              : }
   11482              : 
   11483              : extern __inline __m512
   11484              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11485              : _mm512_mask_getmant_round_ps (__m512 __W, __mmask16 __U, __m512 __A,
   11486              :                   _MM_MANTISSA_NORM_ENUM __B,
   11487              :                   _MM_MANTISSA_SIGN_ENUM __C, const int __R)
   11488              : {
   11489              :   return (__m512) __builtin_ia32_getmantps512_mask ((__v16sf) __A,
   11490              :                             (__C << 2) | __B,
   11491              :                             (__v16sf) __W, __U,
   11492              :                             __R);
   11493              : }
   11494              : 
   11495              : extern __inline __m512
   11496              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11497              : _mm512_maskz_getmant_round_ps (__mmask16 __U, __m512 __A,
   11498              :                    _MM_MANTISSA_NORM_ENUM __B,
   11499              :                    _MM_MANTISSA_SIGN_ENUM __C, const int __R)
   11500              : {
   11501              :   return (__m512) __builtin_ia32_getmantps512_mask ((__v16sf) __A,
   11502              :                             (__C << 2) | __B,
   11503              :                             (__v16sf)
   11504              :                             _mm512_setzero_ps (),
   11505              :                             __U, __R);
   11506              : }
   11507              : 
   11508              : #else
   11509              : #define _mm512_getmant_round_pd(X, B, C, R)                                                  \
   11510              :   ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X),                 \
   11511              :                                               (int)(((C)<<2) | (B)),                \
   11512              :                                               (__v8df)(__m512d)_mm512_undefined_pd(), \
   11513              :                                               (__mmask8)-1,\
   11514              :                           (R)))
   11515              : 
   11516              : #define _mm512_mask_getmant_round_pd(W, U, X, B, C, R)                                       \
   11517              :   ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X),                 \
   11518              :                                               (int)(((C)<<2) | (B)),                \
   11519              :                                               (__v8df)(__m512d)(W),                 \
   11520              :                                               (__mmask8)(U),\
   11521              :                           (R)))
   11522              : 
   11523              : #define _mm512_maskz_getmant_round_pd(U, X, B, C, R)                                         \
   11524              :   ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X),                 \
   11525              :                                               (int)(((C)<<2) | (B)),                \
   11526              :                                               (__v8df)(__m512d)_mm512_setzero_pd(), \
   11527              :                                               (__mmask8)(U),\
   11528              :                           (R)))
   11529              : #define _mm512_getmant_round_ps(X, B, C, R)                                                  \
   11530              :   ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X),                  \
   11531              :                                              (int)(((C)<<2) | (B)),                 \
   11532              :                                              (__v16sf)(__m512)_mm512_undefined_ps(), \
   11533              :                                              (__mmask16)-1,\
   11534              :                          (R)))
   11535              : 
   11536              : #define _mm512_mask_getmant_round_ps(W, U, X, B, C, R)                                       \
   11537              :   ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X),                  \
   11538              :                                              (int)(((C)<<2) | (B)),                 \
   11539              :                                              (__v16sf)(__m512)(W),                  \
   11540              :                                              (__mmask16)(U),\
   11541              :                          (R)))
   11542              : 
   11543              : #define _mm512_maskz_getmant_round_ps(U, X, B, C, R)                                         \
   11544              :   ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X),                  \
   11545              :                                              (int)(((C)<<2) | (B)),                 \
   11546              :                                              (__v16sf)(__m512)_mm512_setzero_ps(),  \
   11547              :                                              (__mmask16)(U),\
   11548              :                          (R)))
   11549              : 
   11550              : #define _mm512_getexp_round_ps(A, R)                        \
   11551              :   ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A),        \
   11552              :   (__v16sf)_mm512_undefined_ps(), (__mmask16)-1, R))
   11553              : 
   11554              : #define _mm512_mask_getexp_round_ps(W, U, A, R)                 \
   11555              :   ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A),        \
   11556              :   (__v16sf)(__m512)(W), (__mmask16)(U), R))
   11557              : 
   11558              : #define _mm512_maskz_getexp_round_ps(U, A, R)                   \
   11559              :   ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A),        \
   11560              :   (__v16sf)_mm512_setzero_ps(), (__mmask16)(U), R))
   11561              : 
   11562              : #define _mm512_getexp_round_pd(A, R)                        \
   11563              :   ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A),       \
   11564              :   (__v8df)_mm512_undefined_pd(), (__mmask8)-1, R))
   11565              : 
   11566              : #define _mm512_mask_getexp_round_pd(W, U, A, R)                 \
   11567              :   ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A),       \
   11568              :   (__v8df)(__m512d)(W), (__mmask8)(U), R))
   11569              : 
   11570              : #define _mm512_maskz_getexp_round_pd(U, A, R)                   \
   11571              :   ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A),       \
   11572              :   (__v8df)_mm512_setzero_pd(), (__mmask8)(U), R))
   11573              : #endif
   11574              : 
   11575              : #ifdef __OPTIMIZE__
   11576              : extern __inline __m512
   11577              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11578              : _mm512_roundscale_round_ps (__m512 __A, const int __imm, const int __R)
   11579              : {
   11580              :   return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A, __imm,
   11581              :                           (__v16sf)
   11582              :                           _mm512_undefined_ps (),
   11583              :                           -1, __R);
   11584              : }
   11585              : 
   11586              : extern __inline __m512
   11587              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11588              : _mm512_mask_roundscale_round_ps (__m512 __A, __mmask16 __B, __m512 __C,
   11589              :                  const int __imm, const int __R)
   11590              : {
   11591              :   return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __C, __imm,
   11592              :                           (__v16sf) __A,
   11593              :                           (__mmask16) __B, __R);
   11594              : }
   11595              : 
   11596              : extern __inline __m512
   11597              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11598              : _mm512_maskz_roundscale_round_ps (__mmask16 __A, __m512 __B,
   11599              :                   const int __imm, const int __R)
   11600              : {
   11601              :   return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __B,
   11602              :                           __imm,
   11603              :                           (__v16sf)
   11604              :                           _mm512_setzero_ps (),
   11605              :                           (__mmask16) __A, __R);
   11606              : }
   11607              : 
   11608              : extern __inline __m512d
   11609              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11610              : _mm512_roundscale_round_pd (__m512d __A, const int __imm, const int __R)
   11611              : {
   11612              :   return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A, __imm,
   11613              :                            (__v8df)
   11614              :                            _mm512_undefined_pd (),
   11615              :                            -1, __R);
   11616              : }
   11617              : 
   11618              : extern __inline __m512d
   11619              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11620              : _mm512_mask_roundscale_round_pd (__m512d __A, __mmask8 __B,
   11621              :                  __m512d __C, const int __imm, const int __R)
   11622              : {
   11623              :   return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __C, __imm,
   11624              :                            (__v8df) __A,
   11625              :                            (__mmask8) __B, __R);
   11626              : }
   11627              : 
   11628              : extern __inline __m512d
   11629              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11630              : _mm512_maskz_roundscale_round_pd (__mmask8 __A, __m512d __B,
   11631              :                   const int __imm, const int __R)
   11632              : {
   11633              :   return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __B,
   11634              :                            __imm,
   11635              :                            (__v8df)
   11636              :                            _mm512_setzero_pd (),
   11637              :                            (__mmask8) __A, __R);
   11638              : }
   11639              : 
   11640              : #else
   11641              : #define _mm512_roundscale_round_ps(A, B, R) \
   11642              :   ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(A), (int)(B),\
   11643              :     (__v16sf)_mm512_undefined_ps(), (__mmask16)(-1), R))
   11644              : #define _mm512_mask_roundscale_round_ps(A, B, C, D, R)              \
   11645              :   ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(C),   \
   11646              :                         (int)(D),           \
   11647              :                         (__v16sf)(__m512)(A),   \
   11648              :                         (__mmask16)(B), R))
   11649              : #define _mm512_maskz_roundscale_round_ps(A, B, C, R)                \
   11650              :   ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(B),   \
   11651              :                         (int)(C),           \
   11652              :                         (__v16sf)_mm512_setzero_ps(),\
   11653              :                         (__mmask16)(A), R))
   11654              : #define _mm512_roundscale_round_pd(A, B, R) \
   11655              :   ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(A), (int)(B),\
   11656              :     (__v8df)_mm512_undefined_pd(), (__mmask8)(-1), R))
   11657              : #define _mm512_mask_roundscale_round_pd(A, B, C, D, R)              \
   11658              :   ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(C),  \
   11659              :                          (int)(D),          \
   11660              :                          (__v8df)(__m512d)(A),  \
   11661              :                          (__mmask8)(B), R))
   11662              : #define _mm512_maskz_roundscale_round_pd(A, B, C, R)                \
   11663              :   ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(B),  \
   11664              :                          (int)(C),          \
   11665              :                          (__v8df)_mm512_setzero_pd(),\
   11666              :                          (__mmask8)(A), R))
   11667              : #endif
   11668              : 
   11669              : extern __inline __m512
   11670              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11671              : _mm512_floor_ps (__m512 __A)
   11672              : {
   11673              :   return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A,
   11674              :                           _MM_FROUND_FLOOR,
   11675              :                           (__v16sf) __A, -1,
   11676              :                           _MM_FROUND_CUR_DIRECTION);
   11677              : }
   11678              : 
   11679              : extern __inline __m512d
   11680              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11681              : _mm512_floor_pd (__m512d __A)
   11682              : {
   11683              :   return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A,
   11684              :                            _MM_FROUND_FLOOR,
   11685              :                            (__v8df) __A, -1,
   11686              :                            _MM_FROUND_CUR_DIRECTION);
   11687              : }
   11688              : 
   11689              : extern __inline __m512
   11690              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11691              : _mm512_ceil_ps (__m512 __A)
   11692              : {
   11693              :   return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A,
   11694              :                           _MM_FROUND_CEIL,
   11695              :                           (__v16sf) __A, -1,
   11696              :                           _MM_FROUND_CUR_DIRECTION);
   11697              : }
   11698              : 
   11699              : extern __inline __m512d
   11700              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11701              : _mm512_ceil_pd (__m512d __A)
   11702              : {
   11703              :   return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A,
   11704              :                            _MM_FROUND_CEIL,
   11705              :                            (__v8df) __A, -1,
   11706              :                            _MM_FROUND_CUR_DIRECTION);
   11707              : }
   11708              : 
   11709              : extern __inline __m512
   11710              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11711              : _mm512_mask_floor_ps (__m512 __W, __mmask16 __U, __m512 __A)
   11712              : {
   11713              :   return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A,
   11714              :                           _MM_FROUND_FLOOR,
   11715              :                           (__v16sf) __W, __U,
   11716              :                           _MM_FROUND_CUR_DIRECTION);
   11717              : }
   11718              : 
   11719              : extern __inline __m512d
   11720              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11721              : _mm512_mask_floor_pd (__m512d __W, __mmask8 __U, __m512d __A)
   11722              : {
   11723              :   return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A,
   11724              :                            _MM_FROUND_FLOOR,
   11725              :                            (__v8df) __W, __U,
   11726              :                            _MM_FROUND_CUR_DIRECTION);
   11727              : }
   11728              : 
   11729              : extern __inline __m512
   11730              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11731              : _mm512_mask_ceil_ps (__m512 __W, __mmask16 __U, __m512 __A)
   11732              : {
   11733              :   return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A,
   11734              :                           _MM_FROUND_CEIL,
   11735              :                           (__v16sf) __W, __U,
   11736              :                           _MM_FROUND_CUR_DIRECTION);
   11737              : }
   11738              : 
   11739              : extern __inline __m512d
   11740              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11741              : _mm512_mask_ceil_pd (__m512d __W, __mmask8 __U, __m512d __A)
   11742              : {
   11743              :   return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A,
   11744              :                            _MM_FROUND_CEIL,
   11745              :                            (__v8df) __W, __U,
   11746              :                            _MM_FROUND_CUR_DIRECTION);
   11747              : }
   11748              : 
   11749              : #ifdef __OPTIMIZE__
   11750              : extern __inline __m512i
   11751              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11752              : _mm512_alignr_epi32 (__m512i __A, __m512i __B, const int __imm)
   11753              : {
   11754              :   return (__m512i) __builtin_ia32_alignd512_mask ((__v16si) __A,
   11755              :                           (__v16si) __B, __imm,
   11756              :                           (__v16si)
   11757              :                           _mm512_undefined_epi32 (),
   11758              :                           (__mmask16) -1);
   11759              : }
   11760              : 
   11761              : extern __inline __m512i
   11762              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11763              : _mm512_mask_alignr_epi32 (__m512i __W, __mmask16 __U, __m512i __A,
   11764              :               __m512i __B, const int __imm)
   11765              : {
   11766              :   return (__m512i) __builtin_ia32_alignd512_mask ((__v16si) __A,
   11767              :                           (__v16si) __B, __imm,
   11768              :                           (__v16si) __W,
   11769              :                           (__mmask16) __U);
   11770              : }
   11771              : 
   11772              : extern __inline __m512i
   11773              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11774              : _mm512_maskz_alignr_epi32 (__mmask16 __U, __m512i __A, __m512i __B,
   11775              :                const int __imm)
   11776              : {
   11777              :   return (__m512i) __builtin_ia32_alignd512_mask ((__v16si) __A,
   11778              :                           (__v16si) __B, __imm,
   11779              :                           (__v16si)
   11780              :                           _mm512_setzero_si512 (),
   11781              :                           (__mmask16) __U);
   11782              : }
   11783              : 
   11784              : extern __inline __m512i
   11785              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11786              : _mm512_alignr_epi64 (__m512i __A, __m512i __B, const int __imm)
   11787              : {
   11788              :   return (__m512i) __builtin_ia32_alignq512_mask ((__v8di) __A,
   11789              :                           (__v8di) __B, __imm,
   11790              :                           (__v8di)
   11791              :                           _mm512_undefined_epi32 (),
   11792              :                           (__mmask8) -1);
   11793              : }
   11794              : 
   11795              : extern __inline __m512i
   11796              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11797              : _mm512_mask_alignr_epi64 (__m512i __W, __mmask8 __U, __m512i __A,
   11798              :               __m512i __B, const int __imm)
   11799              : {
   11800              :   return (__m512i) __builtin_ia32_alignq512_mask ((__v8di) __A,
   11801              :                           (__v8di) __B, __imm,
   11802              :                           (__v8di) __W,
   11803              :                           (__mmask8) __U);
   11804              : }
   11805              : 
   11806              : extern __inline __m512i
   11807              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11808              : _mm512_maskz_alignr_epi64 (__mmask8 __U, __m512i __A, __m512i __B,
   11809              :                const int __imm)
   11810              : {
   11811              :   return (__m512i) __builtin_ia32_alignq512_mask ((__v8di) __A,
   11812              :                           (__v8di) __B, __imm,
   11813              :                           (__v8di)
   11814              :                           _mm512_setzero_si512 (),
   11815              :                           (__mmask8) __U);
   11816              : }
   11817              : #else
   11818              : #define _mm512_alignr_epi32(X, Y, C)                                        \
   11819              :     ((__m512i)__builtin_ia32_alignd512_mask ((__v16si)(__m512i)(X),         \
   11820              :         (__v16si)(__m512i)(Y), (int)(C), (__v16si)_mm512_undefined_epi32 (),\
   11821              :         (__mmask16)-1))
   11822              : 
   11823              : #define _mm512_mask_alignr_epi32(W, U, X, Y, C)                             \
   11824              :     ((__m512i)__builtin_ia32_alignd512_mask ((__v16si)(__m512i)(X),         \
   11825              :         (__v16si)(__m512i)(Y), (int)(C), (__v16si)(__m512i)(W),             \
   11826              :         (__mmask16)(U)))
   11827              : 
   11828              : #define _mm512_maskz_alignr_epi32(U, X, Y, C)                               \
   11829              :     ((__m512i)__builtin_ia32_alignd512_mask ((__v16si)(__m512i)(X),         \
   11830              :         (__v16si)(__m512i)(Y), (int)(C), (__v16si)_mm512_setzero_si512 (),\
   11831              :         (__mmask16)(U)))
   11832              : 
   11833              : #define _mm512_alignr_epi64(X, Y, C)                                        \
   11834              :     ((__m512i)__builtin_ia32_alignq512_mask ((__v8di)(__m512i)(X),          \
   11835              :         (__v8di)(__m512i)(Y), (int)(C), (__v8di)_mm512_undefined_epi32 (),  \
   11836              :     (__mmask8)-1))
   11837              : 
   11838              : #define _mm512_mask_alignr_epi64(W, U, X, Y, C)                             \
   11839              :     ((__m512i)__builtin_ia32_alignq512_mask ((__v8di)(__m512i)(X),          \
   11840              :         (__v8di)(__m512i)(Y), (int)(C), (__v8di)(__m512i)(W), (__mmask8)(U)))
   11841              : 
   11842              : #define _mm512_maskz_alignr_epi64(U, X, Y, C)                               \
   11843              :     ((__m512i)__builtin_ia32_alignq512_mask ((__v8di)(__m512i)(X),          \
   11844              :         (__v8di)(__m512i)(Y), (int)(C), (__v8di)_mm512_setzero_si512 (),\
   11845              :         (__mmask8)(U)))
   11846              : #endif
   11847              : 
   11848              : extern __inline __mmask16
   11849              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11850              : _mm512_cmpeq_epi32_mask (__m512i __A, __m512i __B)
   11851              : {
   11852              :   return (__mmask16) __builtin_ia32_pcmpeqd512_mask ((__v16si) __A,
   11853              :                              (__v16si) __B,
   11854              :                              (__mmask16) -1);
   11855              : }
   11856              : 
   11857              : extern __inline __mmask16
   11858              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11859              : _mm512_mask_cmpeq_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B)
   11860              : {
   11861              :   return (__mmask16) __builtin_ia32_pcmpeqd512_mask ((__v16si) __A,
   11862              :                              (__v16si) __B, __U);
   11863              : }
   11864              : 
   11865              : extern __inline __mmask8
   11866              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11867              : _mm512_mask_cmpeq_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B)
   11868              : {
   11869              :   return (__mmask8) __builtin_ia32_pcmpeqq512_mask ((__v8di) __A,
   11870              :                             (__v8di) __B, __U);
   11871              : }
   11872              : 
   11873              : extern __inline __mmask8
   11874              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11875              : _mm512_cmpeq_epi64_mask (__m512i __A, __m512i __B)
   11876              : {
   11877              :   return (__mmask8) __builtin_ia32_pcmpeqq512_mask ((__v8di) __A,
   11878              :                             (__v8di) __B,
   11879              :                             (__mmask8) -1);
   11880              : }
   11881              : 
   11882              : extern __inline __mmask16
   11883              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11884              : _mm512_cmpgt_epi32_mask (__m512i __A, __m512i __B)
   11885              : {
   11886              :   return (__mmask16) __builtin_ia32_pcmpgtd512_mask ((__v16si) __A,
   11887              :                              (__v16si) __B,
   11888              :                              (__mmask16) -1);
   11889              : }
   11890              : 
   11891              : extern __inline __mmask16
   11892              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11893              : _mm512_mask_cmpgt_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B)
   11894              : {
   11895              :   return (__mmask16) __builtin_ia32_pcmpgtd512_mask ((__v16si) __A,
   11896              :                              (__v16si) __B, __U);
   11897              : }
   11898              : 
   11899              : extern __inline __mmask8
   11900              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11901              : _mm512_mask_cmpgt_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B)
   11902              : {
   11903              :   return (__mmask8) __builtin_ia32_pcmpgtq512_mask ((__v8di) __A,
   11904              :                             (__v8di) __B, __U);
   11905              : }
   11906              : 
   11907              : extern __inline __mmask8
   11908              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11909              : _mm512_cmpgt_epi64_mask (__m512i __A, __m512i __B)
   11910              : {
   11911              :   return (__mmask8) __builtin_ia32_pcmpgtq512_mask ((__v8di) __A,
   11912              :                             (__v8di) __B,
   11913              :                             (__mmask8) -1);
   11914              : }
   11915              : 
   11916              : extern __inline __mmask16
   11917              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11918              : _mm512_cmpge_epi32_mask (__m512i __X, __m512i __Y)
   11919              : {
   11920              :   return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
   11921              :                             (__v16si) __Y, 5,
   11922              :                             (__mmask16) -1);
   11923              : }
   11924              : 
   11925              : extern __inline __mmask16
   11926              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11927              : _mm512_mask_cmpge_epi32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
   11928              : {
   11929              :   return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
   11930              :                             (__v16si) __Y, 5,
   11931              :                             (__mmask16) __M);
   11932              : }
   11933              : 
   11934              : extern __inline __mmask16
   11935              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11936              : _mm512_mask_cmpge_epu32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
   11937              : {
   11938              :   return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
   11939              :                             (__v16si) __Y, 5,
   11940              :                             (__mmask16) __M);
   11941              : }
   11942              : 
   11943              : extern __inline __mmask16
   11944              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11945              : _mm512_cmpge_epu32_mask (__m512i __X, __m512i __Y)
   11946              : {
   11947              :   return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
   11948              :                             (__v16si) __Y, 5,
   11949              :                             (__mmask16) -1);
   11950              : }
   11951              : 
   11952              : extern __inline __mmask8
   11953              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11954              : _mm512_mask_cmpge_epi64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
   11955              : {
   11956              :   return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
   11957              :                             (__v8di) __Y, 5,
   11958              :                             (__mmask8) __M);
   11959              : }
   11960              : 
   11961              : extern __inline __mmask8
   11962              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11963              : _mm512_cmpge_epi64_mask (__m512i __X, __m512i __Y)
   11964              : {
   11965              :   return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
   11966              :                             (__v8di) __Y, 5,
   11967              :                             (__mmask8) -1);
   11968              : }
   11969              : 
   11970              : extern __inline __mmask8
   11971              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11972              : _mm512_mask_cmpge_epu64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
   11973              : {
   11974              :   return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
   11975              :                             (__v8di) __Y, 5,
   11976              :                             (__mmask8) __M);
   11977              : }
   11978              : 
   11979              : extern __inline __mmask8
   11980              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11981              : _mm512_cmpge_epu64_mask (__m512i __X, __m512i __Y)
   11982              : {
   11983              :   return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
   11984              :                             (__v8di) __Y, 5,
   11985              :                             (__mmask8) -1);
   11986              : }
   11987              : 
   11988              : extern __inline __mmask16
   11989              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11990              : _mm512_mask_cmple_epi32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
   11991              : {
   11992              :   return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
   11993              :                             (__v16si) __Y, 2,
   11994              :                             (__mmask16) __M);
   11995              : }
   11996              : 
   11997              : extern __inline __mmask16
   11998              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11999              : _mm512_cmple_epi32_mask (__m512i __X, __m512i __Y)
   12000              : {
   12001              :   return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
   12002              :                             (__v16si) __Y, 2,
   12003              :                             (__mmask16) -1);
   12004              : }
   12005              : 
   12006              : extern __inline __mmask16
   12007              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12008              : _mm512_mask_cmple_epu32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
   12009              : {
   12010              :   return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
   12011              :                             (__v16si) __Y, 2,
   12012              :                             (__mmask16) __M);
   12013              : }
   12014              : 
   12015              : extern __inline __mmask16
   12016              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12017              : _mm512_cmple_epu32_mask (__m512i __X, __m512i __Y)
   12018              : {
   12019              :   return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
   12020              :                             (__v16si) __Y, 2,
   12021              :                             (__mmask16) -1);
   12022              : }
   12023              : 
   12024              : extern __inline __mmask8
   12025              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12026              : _mm512_mask_cmple_epi64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
   12027              : {
   12028              :   return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
   12029              :                             (__v8di) __Y, 2,
   12030              :                             (__mmask8) __M);
   12031              : }
   12032              : 
   12033              : extern __inline __mmask8
   12034              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12035              : _mm512_cmple_epi64_mask (__m512i __X, __m512i __Y)
   12036              : {
   12037              :   return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
   12038              :                             (__v8di) __Y, 2,
   12039              :                             (__mmask8) -1);
   12040              : }
   12041              : 
   12042              : extern __inline __mmask8
   12043              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12044              : _mm512_mask_cmple_epu64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
   12045              : {
   12046              :   return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
   12047              :                             (__v8di) __Y, 2,
   12048              :                             (__mmask8) __M);
   12049              : }
   12050              : 
   12051              : extern __inline __mmask8
   12052              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12053              : _mm512_cmple_epu64_mask (__m512i __X, __m512i __Y)
   12054              : {
   12055              :   return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
   12056              :                             (__v8di) __Y, 2,
   12057              :                             (__mmask8) -1);
   12058              : }
   12059              : 
   12060              : extern __inline __mmask16
   12061              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12062              : _mm512_mask_cmplt_epi32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
   12063              : {
   12064              :   return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
   12065              :                             (__v16si) __Y, 1,
   12066              :                             (__mmask16) __M);
   12067              : }
   12068              : 
   12069              : extern __inline __mmask16
   12070              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12071              : _mm512_cmplt_epi32_mask (__m512i __X, __m512i __Y)
   12072              : {
   12073              :   return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
   12074              :                             (__v16si) __Y, 1,
   12075              :                             (__mmask16) -1);
   12076              : }
   12077              : 
   12078              : extern __inline __mmask16
   12079              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12080              : _mm512_mask_cmplt_epu32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
   12081              : {
   12082              :   return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
   12083              :                             (__v16si) __Y, 1,
   12084              :                             (__mmask16) __M);
   12085              : }
   12086              : 
   12087              : extern __inline __mmask16
   12088              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12089              : _mm512_cmplt_epu32_mask (__m512i __X, __m512i __Y)
   12090              : {
   12091              :   return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
   12092              :                             (__v16si) __Y, 1,
   12093              :                             (__mmask16) -1);
   12094              : }
   12095              : 
   12096              : extern __inline __mmask8
   12097              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12098              : _mm512_mask_cmplt_epi64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
   12099              : {
   12100              :   return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
   12101              :                             (__v8di) __Y, 1,
   12102              :                             (__mmask8) __M);
   12103              : }
   12104              : 
   12105              : extern __inline __mmask8
   12106              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12107              : _mm512_cmplt_epi64_mask (__m512i __X, __m512i __Y)
   12108              : {
   12109              :   return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
   12110              :                             (__v8di) __Y, 1,
   12111              :                             (__mmask8) -1);
   12112              : }
   12113              : 
   12114              : extern __inline __mmask8
   12115              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12116              : _mm512_mask_cmplt_epu64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
   12117              : {
   12118              :   return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
   12119              :                             (__v8di) __Y, 1,
   12120              :                             (__mmask8) __M);
   12121              : }
   12122              : 
   12123              : extern __inline __mmask8
   12124              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12125              : _mm512_cmplt_epu64_mask (__m512i __X, __m512i __Y)
   12126              : {
   12127              :   return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
   12128              :                             (__v8di) __Y, 1,
   12129              :                             (__mmask8) -1);
   12130              : }
   12131              : 
   12132              : extern __inline __mmask16
   12133              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12134              : _mm512_cmpneq_epi32_mask (__m512i __X, __m512i __Y)
   12135              : {
   12136              :   return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
   12137              :                             (__v16si) __Y, 4,
   12138              :                             (__mmask16) -1);
   12139              : }
   12140              : 
   12141              : extern __inline __mmask16
   12142              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12143              : _mm512_mask_cmpneq_epi32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
   12144              : {
   12145              :   return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
   12146              :                             (__v16si) __Y, 4,
   12147              :                             (__mmask16) __M);
   12148              : }
   12149              : 
   12150              : extern __inline __mmask16
   12151              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12152              : _mm512_mask_cmpneq_epu32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
   12153              : {
   12154              :   return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
   12155              :                             (__v16si) __Y, 4,
   12156              :                             (__mmask16) __M);
   12157              : }
   12158              : 
   12159              : extern __inline __mmask16
   12160              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12161              : _mm512_cmpneq_epu32_mask (__m512i __X, __m512i __Y)
   12162              : {
   12163              :   return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
   12164              :                             (__v16si) __Y, 4,
   12165              :                             (__mmask16) -1);
   12166              : }
   12167              : 
   12168              : extern __inline __mmask8
   12169              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12170              : _mm512_mask_cmpneq_epi64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
   12171              : {
   12172              :   return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
   12173              :                             (__v8di) __Y, 4,
   12174              :                             (__mmask8) __M);
   12175              : }
   12176              : 
   12177              : extern __inline __mmask8
   12178              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12179              : _mm512_cmpneq_epi64_mask (__m512i __X, __m512i __Y)
   12180              : {
   12181              :   return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
   12182              :                             (__v8di) __Y, 4,
   12183              :                             (__mmask8) -1);
   12184              : }
   12185              : 
   12186              : extern __inline __mmask8
   12187              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12188              : _mm512_mask_cmpneq_epu64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
   12189              : {
   12190              :   return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
   12191              :                             (__v8di) __Y, 4,
   12192              :                             (__mmask8) __M);
   12193              : }
   12194              : 
   12195              : extern __inline __mmask8
   12196              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12197              : _mm512_cmpneq_epu64_mask (__m512i __X, __m512i __Y)
   12198              : {
   12199              :   return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
   12200              :                             (__v8di) __Y, 4,
   12201              :                             (__mmask8) -1);
   12202              : }
   12203              : 
   12204              : #define _MM_CMPINT_EQ       0x0
   12205              : #define _MM_CMPINT_LT       0x1
   12206              : #define _MM_CMPINT_LE       0x2
   12207              : #define _MM_CMPINT_UNUSED   0x3
   12208              : #define _MM_CMPINT_NE       0x4
   12209              : #define _MM_CMPINT_NLT      0x5
   12210              : #define _MM_CMPINT_GE       0x5
   12211              : #define _MM_CMPINT_NLE      0x6
   12212              : #define _MM_CMPINT_GT       0x6
   12213              : 
   12214              : #ifdef __OPTIMIZE__
   12215              : extern __inline __mmask8
   12216              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12217              : _mm512_cmp_epi64_mask (__m512i __X, __m512i __Y, const int __P)
   12218              : {
   12219              :   return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
   12220              :                          (__v8di) __Y, __P,
   12221              :                          (__mmask8) -1);
   12222              : }
   12223              : 
   12224              : extern __inline __mmask16
   12225              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12226              : _mm512_cmp_epi32_mask (__m512i __X, __m512i __Y, const int __P)
   12227              : {
   12228              :   return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
   12229              :                           (__v16si) __Y, __P,
   12230              :                           (__mmask16) -1);
   12231              : }
   12232              : 
   12233              : extern __inline __mmask8
   12234              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12235              : _mm512_cmp_epu64_mask (__m512i __X, __m512i __Y, const int __P)
   12236              : {
   12237              :   return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
   12238              :                           (__v8di) __Y, __P,
   12239              :                           (__mmask8) -1);
   12240              : }
   12241              : 
   12242              : extern __inline __mmask16
   12243              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12244              : _mm512_cmp_epu32_mask (__m512i __X, __m512i __Y, const int __P)
   12245              : {
   12246              :   return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
   12247              :                            (__v16si) __Y, __P,
   12248              :                            (__mmask16) -1);
   12249              : }
   12250              : 
   12251              : extern __inline __mmask8
   12252              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12253              : _mm512_cmp_round_pd_mask (__m512d __X, __m512d __Y, const int __P,
   12254              :               const int __R)
   12255              : {
   12256              :   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
   12257              :                           (__v8df) __Y, __P,
   12258              :                           (__mmask8) -1, __R);
   12259              : }
   12260              : 
   12261              : extern __inline __mmask16
   12262              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12263              : _mm512_cmp_round_ps_mask (__m512 __X, __m512 __Y, const int __P, const int __R)
   12264              : {
   12265              :   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
   12266              :                            (__v16sf) __Y, __P,
   12267              :                            (__mmask16) -1, __R);
   12268              : }
   12269              : 
   12270              : extern __inline __mmask8
   12271              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12272              : _mm512_mask_cmp_epi64_mask (__mmask8 __U, __m512i __X, __m512i __Y,
   12273              :                 const int __P)
   12274              : {
   12275              :   return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
   12276              :                          (__v8di) __Y, __P,
   12277              :                          (__mmask8) __U);
   12278              : }
   12279              : 
   12280              : extern __inline __mmask16
   12281              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12282              : _mm512_mask_cmp_epi32_mask (__mmask16 __U, __m512i __X, __m512i __Y,
   12283              :                 const int __P)
   12284              : {
   12285              :   return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
   12286              :                           (__v16si) __Y, __P,
   12287              :                           (__mmask16) __U);
   12288              : }
   12289              : 
   12290              : extern __inline __mmask8
   12291              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12292              : _mm512_mask_cmp_epu64_mask (__mmask8 __U, __m512i __X, __m512i __Y,
   12293              :                 const int __P)
   12294              : {
   12295              :   return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
   12296              :                           (__v8di) __Y, __P,
   12297              :                           (__mmask8) __U);
   12298              : }
   12299              : 
   12300              : extern __inline __mmask16
   12301              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12302              : _mm512_mask_cmp_epu32_mask (__mmask16 __U, __m512i __X, __m512i __Y,
   12303              :                 const int __P)
   12304              : {
   12305              :   return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
   12306              :                            (__v16si) __Y, __P,
   12307              :                            (__mmask16) __U);
   12308              : }
   12309              : 
   12310              : extern __inline __mmask8
   12311              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12312              : _mm512_mask_cmp_round_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y,
   12313              :                    const int __P, const int __R)
   12314              : {
   12315              :   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
   12316              :                           (__v8df) __Y, __P,
   12317              :                           (__mmask8) __U, __R);
   12318              : }
   12319              : 
   12320              : extern __inline __mmask16
   12321              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12322              : _mm512_mask_cmp_round_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y,
   12323              :                    const int __P, const int __R)
   12324              : {
   12325              :   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
   12326              :                            (__v16sf) __Y, __P,
   12327              :                            (__mmask16) __U, __R);
   12328              : }
   12329              : 
   12330              : #else
   12331              : #define _mm512_cmp_epi64_mask(X, Y, P)                  \
   12332              :   ((__mmask8) __builtin_ia32_cmpq512_mask ((__v8di)(__m512i)(X),    \
   12333              :                        (__v8di)(__m512i)(Y), (int)(P),\
   12334              :                        (__mmask8)-1))
   12335              : 
   12336              : #define _mm512_cmp_epi32_mask(X, Y, P)                  \
   12337              :   ((__mmask16) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X),  \
   12338              :                         (__v16si)(__m512i)(Y), (int)(P), \
   12339              :                         (__mmask16)-1))
   12340              : 
   12341              : #define _mm512_cmp_epu64_mask(X, Y, P)                  \
   12342              :   ((__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di)(__m512i)(X),   \
   12343              :                         (__v8di)(__m512i)(Y), (int)(P),\
   12344              :                         (__mmask8)-1))
   12345              : 
   12346              : #define _mm512_cmp_epu32_mask(X, Y, P)                  \
   12347              :   ((__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X), \
   12348              :                          (__v16si)(__m512i)(Y), (int)(P), \
   12349              :                          (__mmask16)-1))
   12350              : 
   12351              : #define _mm512_cmp_round_pd_mask(X, Y, P, R)                \
   12352              :   ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X),   \
   12353              :                         (__v8df)(__m512d)(Y), (int)(P),\
   12354              :                         (__mmask8)-1, R))
   12355              : 
   12356              : #define _mm512_cmp_round_ps_mask(X, Y, P, R)                \
   12357              :   ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X),  \
   12358              :                          (__v16sf)(__m512)(Y), (int)(P),\
   12359              :                          (__mmask16)-1, R))
   12360              : 
   12361              : #define _mm512_mask_cmp_epi64_mask(M, X, Y, P)              \
   12362              :   ((__mmask8) __builtin_ia32_cmpq512_mask ((__v8di)(__m512i)(X),    \
   12363              :                        (__v8di)(__m512i)(Y), (int)(P),\
   12364              :                        (__mmask8)(M)))
   12365              : 
   12366              : #define _mm512_mask_cmp_epi32_mask(M, X, Y, P)              \
   12367              :   ((__mmask16) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X),  \
   12368              :                         (__v16si)(__m512i)(Y), (int)(P), \
   12369              :                         (__mmask16)(M)))
   12370              : 
   12371              : #define _mm512_mask_cmp_epu64_mask(M, X, Y, P)              \
   12372              :   ((__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di)(__m512i)(X),   \
   12373              :                         (__v8di)(__m512i)(Y), (int)(P),\
   12374              :                         (__mmask8)(M)))
   12375              : 
   12376              : #define _mm512_mask_cmp_epu32_mask(M, X, Y, P)              \
   12377              :   ((__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X), \
   12378              :                          (__v16si)(__m512i)(Y), (int)(P), \
   12379              :                          (__mmask16)(M)))
   12380              : 
   12381              : #define _mm512_mask_cmp_round_pd_mask(M, X, Y, P, R)            \
   12382              :   ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X),   \
   12383              :                         (__v8df)(__m512d)(Y), (int)(P),\
   12384              :                         (__mmask8)(M), R))
   12385              : 
   12386              : #define _mm512_mask_cmp_round_ps_mask(M, X, Y, P, R)            \
   12387              :   ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X),  \
   12388              :                          (__v16sf)(__m512)(Y), (int)(P),\
   12389              :                          (__mmask16)(M), R))
   12390              : 
   12391              : #endif
   12392              : 
   12393              : #ifdef __OPTIMIZE__
   12394              : extern __inline __m512
   12395              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12396              : _mm512_i32gather_ps (__m512i __index, void const *__addr, int __scale)
   12397              : {
   12398              :   __m512 __v1_old = _mm512_undefined_ps ();
   12399              :   __mmask16 __mask = 0xFFFF;
   12400              : 
   12401              :   return (__m512) __builtin_ia32_gathersiv16sf ((__v16sf) __v1_old,
   12402              :                         __addr,
   12403              :                         (__v16si) __index,
   12404              :                         __mask, __scale);
   12405              : }
   12406              : 
   12407              : extern __inline __m512
   12408              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12409              : _mm512_mask_i32gather_ps (__m512 __v1_old, __mmask16 __mask,
   12410              :               __m512i __index, void const *__addr, int __scale)
   12411              : {
   12412              :   return (__m512) __builtin_ia32_gathersiv16sf ((__v16sf) __v1_old,
   12413              :                         __addr,
   12414              :                         (__v16si) __index,
   12415              :                         __mask, __scale);
   12416              : }
   12417              : 
   12418              : extern __inline __m512d
   12419              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12420              : _mm512_i32gather_pd (__m256i __index, void const *__addr, int __scale)
   12421              : {
   12422              :   __m512d __v1_old = _mm512_undefined_pd ();
   12423              :   __mmask8 __mask = 0xFF;
   12424              : 
   12425              :   return (__m512d) __builtin_ia32_gathersiv8df ((__v8df) __v1_old,
   12426              :                         __addr,
   12427              :                         (__v8si) __index, __mask,
   12428              :                         __scale);
   12429              : }
   12430              : 
   12431              : extern __inline __m512d
   12432              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12433              : _mm512_mask_i32gather_pd (__m512d __v1_old, __mmask8 __mask,
   12434              :               __m256i __index, void const *__addr, int __scale)
   12435              : {
   12436              :   return (__m512d) __builtin_ia32_gathersiv8df ((__v8df) __v1_old,
   12437              :                         __addr,
   12438              :                         (__v8si) __index,
   12439              :                         __mask, __scale);
   12440              : }
   12441              : 
   12442              : extern __inline __m256
   12443              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12444              : _mm512_i64gather_ps (__m512i __index, void const *__addr, int __scale)
   12445              : {
   12446              :   __m256 __v1_old = _mm256_undefined_ps ();
   12447              :   __mmask8 __mask = 0xFF;
   12448              : 
   12449              :   return (__m256) __builtin_ia32_gatherdiv16sf ((__v8sf) __v1_old,
   12450              :                         __addr,
   12451              :                         (__v8di) __index, __mask,
   12452              :                         __scale);
   12453              : }
   12454              : 
   12455              : extern __inline __m256
   12456              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12457              : _mm512_mask_i64gather_ps (__m256 __v1_old, __mmask8 __mask,
   12458              :               __m512i __index, void const *__addr, int __scale)
   12459              : {
   12460              :   return (__m256) __builtin_ia32_gatherdiv16sf ((__v8sf) __v1_old,
   12461              :                         __addr,
   12462              :                         (__v8di) __index,
   12463              :                         __mask, __scale);
   12464              : }
   12465              : 
   12466              : extern __inline __m512d
   12467              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12468              : _mm512_i64gather_pd (__m512i __index, void const *__addr, int __scale)
   12469              : {
   12470              :   __m512d __v1_old = _mm512_undefined_pd ();
   12471              :   __mmask8 __mask = 0xFF;
   12472              : 
   12473              :   return (__m512d) __builtin_ia32_gatherdiv8df ((__v8df) __v1_old,
   12474              :                         __addr,
   12475              :                         (__v8di) __index, __mask,
   12476              :                         __scale);
   12477              : }
   12478              : 
   12479              : extern __inline __m512d
   12480              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12481              : _mm512_mask_i64gather_pd (__m512d __v1_old, __mmask8 __mask,
   12482              :               __m512i __index, void const *__addr, int __scale)
   12483              : {
   12484              :   return (__m512d) __builtin_ia32_gatherdiv8df ((__v8df) __v1_old,
   12485              :                         __addr,
   12486              :                         (__v8di) __index,
   12487              :                         __mask, __scale);
   12488              : }
   12489              : 
   12490              : extern __inline __m512i
   12491              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12492              : _mm512_i32gather_epi32 (__m512i __index, void const *__addr, int __scale)
   12493              : {
   12494              :   __m512i __v1_old = _mm512_undefined_epi32 ();
   12495              :   __mmask16 __mask = 0xFFFF;
   12496              : 
   12497              :   return (__m512i) __builtin_ia32_gathersiv16si ((__v16si) __v1_old,
   12498              :                          __addr,
   12499              :                          (__v16si) __index,
   12500              :                          __mask, __scale);
   12501              : }
   12502              : 
   12503              : extern __inline __m512i
   12504              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12505              : _mm512_mask_i32gather_epi32 (__m512i __v1_old, __mmask16 __mask,
   12506              :                  __m512i __index, void const *__addr, int __scale)
   12507              : {
   12508              :   return (__m512i) __builtin_ia32_gathersiv16si ((__v16si) __v1_old,
   12509              :                          __addr,
   12510              :                          (__v16si) __index,
   12511              :                          __mask, __scale);
   12512              : }
   12513              : 
   12514              : extern __inline __m512i
   12515              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12516              : _mm512_i32gather_epi64 (__m256i __index, void const *__addr, int __scale)
   12517              : {
   12518              :   __m512i __v1_old = _mm512_undefined_epi32 ();
   12519              :   __mmask8 __mask = 0xFF;
   12520              : 
   12521              :   return (__m512i) __builtin_ia32_gathersiv8di ((__v8di) __v1_old,
   12522              :                         __addr,
   12523              :                         (__v8si) __index, __mask,
   12524              :                         __scale);
   12525              : }
   12526              : 
   12527              : extern __inline __m512i
   12528              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12529              : _mm512_mask_i32gather_epi64 (__m512i __v1_old, __mmask8 __mask,
   12530              :                  __m256i __index, void const *__addr,
   12531              :                  int __scale)
   12532              : {
   12533              :   return (__m512i) __builtin_ia32_gathersiv8di ((__v8di) __v1_old,
   12534              :                         __addr,
   12535              :                         (__v8si) __index,
   12536              :                         __mask, __scale);
   12537              : }
   12538              : 
   12539              : extern __inline __m256i
   12540              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12541              : _mm512_i64gather_epi32 (__m512i __index, void const *__addr, int __scale)
   12542              : {
   12543              :   __m256i __v1_old = _mm256_undefined_si256 ();
   12544              :   __mmask8 __mask = 0xFF;
   12545              : 
   12546              :   return (__m256i) __builtin_ia32_gatherdiv16si ((__v8si) __v1_old,
   12547              :                          __addr,
   12548              :                          (__v8di) __index,
   12549              :                          __mask, __scale);
   12550              : }
   12551              : 
   12552              : extern __inline __m256i
   12553              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12554              : _mm512_mask_i64gather_epi32 (__m256i __v1_old, __mmask8 __mask,
   12555              :                  __m512i __index, void const *__addr, int __scale)
   12556              : {
   12557              :   return (__m256i) __builtin_ia32_gatherdiv16si ((__v8si) __v1_old,
   12558              :                          __addr,
   12559              :                          (__v8di) __index,
   12560              :                          __mask, __scale);
   12561              : }
   12562              : 
   12563              : extern __inline __m512i
   12564              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12565              : _mm512_i64gather_epi64 (__m512i __index, void const *__addr, int __scale)
   12566              : {
   12567              :   __m512i __v1_old = _mm512_undefined_epi32 ();
   12568              :   __mmask8 __mask = 0xFF;
   12569              : 
   12570              :   return (__m512i) __builtin_ia32_gatherdiv8di ((__v8di) __v1_old,
   12571              :                         __addr,
   12572              :                         (__v8di) __index, __mask,
   12573              :                         __scale);
   12574              : }
   12575              : 
   12576              : extern __inline __m512i
   12577              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12578              : _mm512_mask_i64gather_epi64 (__m512i __v1_old, __mmask8 __mask,
   12579              :                  __m512i __index, void const *__addr,
   12580              :                  int __scale)
   12581              : {
   12582              :   return (__m512i) __builtin_ia32_gatherdiv8di ((__v8di) __v1_old,
   12583              :                         __addr,
   12584              :                         (__v8di) __index,
   12585              :                         __mask, __scale);
   12586              : }
   12587              : 
   12588              : extern __inline void
   12589              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12590              : _mm512_i32scatter_ps (void *__addr, __m512i __index, __m512 __v1, int __scale)
   12591              : {
   12592              :   __builtin_ia32_scattersiv16sf (__addr, (__mmask16) 0xFFFF,
   12593              :                  (__v16si) __index, (__v16sf) __v1, __scale);
   12594              : }
   12595              : 
   12596              : extern __inline void
   12597              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12598              : _mm512_mask_i32scatter_ps (void *__addr, __mmask16 __mask,
   12599              :                __m512i __index, __m512 __v1, int __scale)
   12600              : {
   12601              :   __builtin_ia32_scattersiv16sf (__addr, __mask, (__v16si) __index,
   12602              :                  (__v16sf) __v1, __scale);
   12603              : }
   12604              : 
   12605              : extern __inline void
   12606              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12607              : _mm512_i32scatter_pd (void *__addr, __m256i __index, __m512d __v1,
   12608              :               int __scale)
   12609              : {
   12610              :   __builtin_ia32_scattersiv8df (__addr, (__mmask8) 0xFF,
   12611              :                 (__v8si) __index, (__v8df) __v1, __scale);
   12612              : }
   12613              : 
   12614              : extern __inline void
   12615              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12616              : _mm512_mask_i32scatter_pd (void *__addr, __mmask8 __mask,
   12617              :                __m256i __index, __m512d __v1, int __scale)
   12618              : {
   12619              :   __builtin_ia32_scattersiv8df (__addr, __mask, (__v8si) __index,
   12620              :                 (__v8df) __v1, __scale);
   12621              : }
   12622              : 
   12623              : extern __inline void
   12624              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12625              : _mm512_i64scatter_ps (void *__addr, __m512i __index, __m256 __v1, int __scale)
   12626              : {
   12627              :   __builtin_ia32_scatterdiv16sf (__addr, (__mmask8) 0xFF,
   12628              :                  (__v8di) __index, (__v8sf) __v1, __scale);
   12629              : }
   12630              : 
   12631              : extern __inline void
   12632              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12633              : _mm512_mask_i64scatter_ps (void *__addr, __mmask8 __mask,
   12634              :                __m512i __index, __m256 __v1, int __scale)
   12635              : {
   12636              :   __builtin_ia32_scatterdiv16sf (__addr, __mask, (__v8di) __index,
   12637              :                  (__v8sf) __v1, __scale);
   12638              : }
   12639              : 
   12640              : extern __inline void
   12641              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12642              : _mm512_i64scatter_pd (void *__addr, __m512i __index, __m512d __v1,
   12643              :               int __scale)
   12644              : {
   12645              :   __builtin_ia32_scatterdiv8df (__addr, (__mmask8) 0xFF,
   12646              :                 (__v8di) __index, (__v8df) __v1, __scale);
   12647              : }
   12648              : 
   12649              : extern __inline void
   12650              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12651              : _mm512_mask_i64scatter_pd (void *__addr, __mmask8 __mask,
   12652              :                __m512i __index, __m512d __v1, int __scale)
   12653              : {
   12654              :   __builtin_ia32_scatterdiv8df (__addr, __mask, (__v8di) __index,
   12655              :                 (__v8df) __v1, __scale);
   12656              : }
   12657              : 
   12658              : extern __inline void
   12659              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12660              : _mm512_i32scatter_epi32 (void *__addr, __m512i __index,
   12661              :              __m512i __v1, int __scale)
   12662              : {
   12663              :   __builtin_ia32_scattersiv16si (__addr, (__mmask16) 0xFFFF,
   12664              :                  (__v16si) __index, (__v16si) __v1, __scale);
   12665              : }
   12666              : 
   12667              : extern __inline void
   12668              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12669              : _mm512_mask_i32scatter_epi32 (void *__addr, __mmask16 __mask,
   12670              :                   __m512i __index, __m512i __v1, int __scale)
   12671              : {
   12672              :   __builtin_ia32_scattersiv16si (__addr, __mask, (__v16si) __index,
   12673              :                  (__v16si) __v1, __scale);
   12674              : }
   12675              : 
   12676              : extern __inline void
   12677              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12678              : _mm512_i32scatter_epi64 (void *__addr, __m256i __index,
   12679              :              __m512i __v1, int __scale)
   12680              : {
   12681              :   __builtin_ia32_scattersiv8di (__addr, (__mmask8) 0xFF,
   12682              :                 (__v8si) __index, (__v8di) __v1, __scale);
   12683              : }
   12684              : 
   12685              : extern __inline void
   12686              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12687              : _mm512_mask_i32scatter_epi64 (void *__addr, __mmask8 __mask,
   12688              :                   __m256i __index, __m512i __v1, int __scale)
   12689              : {
   12690              :   __builtin_ia32_scattersiv8di (__addr, __mask, (__v8si) __index,
   12691              :                 (__v8di) __v1, __scale);
   12692              : }
   12693              : 
   12694              : extern __inline void
   12695              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12696              : _mm512_i64scatter_epi32 (void *__addr, __m512i __index,
   12697              :              __m256i __v1, int __scale)
   12698              : {
   12699              :   __builtin_ia32_scatterdiv16si (__addr, (__mmask8) 0xFF,
   12700              :                  (__v8di) __index, (__v8si) __v1, __scale);
   12701              : }
   12702              : 
   12703              : extern __inline void
   12704              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12705              : _mm512_mask_i64scatter_epi32 (void *__addr, __mmask8 __mask,
   12706              :                   __m512i __index, __m256i __v1, int __scale)
   12707              : {
   12708              :   __builtin_ia32_scatterdiv16si (__addr, __mask, (__v8di) __index,
   12709              :                  (__v8si) __v1, __scale);
   12710              : }
   12711              : 
   12712              : extern __inline void
   12713              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12714              : _mm512_i64scatter_epi64 (void *__addr, __m512i __index,
   12715              :              __m512i __v1, int __scale)
   12716              : {
   12717              :   __builtin_ia32_scatterdiv8di (__addr, (__mmask8) 0xFF,
   12718              :                 (__v8di) __index, (__v8di) __v1, __scale);
   12719              : }
   12720              : 
   12721              : extern __inline void
   12722              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12723              : _mm512_mask_i64scatter_epi64 (void *__addr, __mmask8 __mask,
   12724              :                   __m512i __index, __m512i __v1, int __scale)
   12725              : {
   12726              :   __builtin_ia32_scatterdiv8di (__addr, __mask, (__v8di) __index,
   12727              :                 (__v8di) __v1, __scale);
   12728              : }
   12729              : #else
   12730              : #define _mm512_i32gather_ps(INDEX, ADDR, SCALE)             \
   12731              :   (__m512) __builtin_ia32_gathersiv16sf ((__v16sf)_mm512_undefined_ps(),\
   12732              :                      (void const *) (ADDR),     \
   12733              :                      (__v16si)(__m512i) (INDEX),    \
   12734              :                      (__mmask16)0xFFFF,     \
   12735              :                      (int) (SCALE))
   12736              : 
   12737              : #define _mm512_mask_i32gather_ps(V1OLD, MASK, INDEX, ADDR, SCALE)   \
   12738              :   (__m512) __builtin_ia32_gathersiv16sf ((__v16sf)(__m512) (V1OLD), \
   12739              :                      (void const *) (ADDR),     \
   12740              :                      (__v16si)(__m512i) (INDEX),    \
   12741              :                      (__mmask16) (MASK),        \
   12742              :                      (int) (SCALE))
   12743              : 
   12744              : #define _mm512_i32gather_pd(INDEX, ADDR, SCALE)             \
   12745              :   (__m512d) __builtin_ia32_gathersiv8df ((__v8df)_mm512_undefined_pd(), \
   12746              :                      (void const *) (ADDR),     \
   12747              :                      (__v8si)(__m256i) (INDEX), \
   12748              :                      (__mmask8)0xFF, (int) (SCALE))
   12749              : 
   12750              : #define _mm512_mask_i32gather_pd(V1OLD, MASK, INDEX, ADDR, SCALE)   \
   12751              :   (__m512d) __builtin_ia32_gathersiv8df ((__v8df)(__m512d) (V1OLD), \
   12752              :                      (void const *) (ADDR),     \
   12753              :                      (__v8si)(__m256i) (INDEX), \
   12754              :                      (__mmask8) (MASK),     \
   12755              :                      (int) (SCALE))
   12756              : 
   12757              : #define _mm512_i64gather_ps(INDEX, ADDR, SCALE)             \
   12758              :   (__m256) __builtin_ia32_gatherdiv16sf ((__v8sf)_mm256_undefined_ps(), \
   12759              :                      (void const *) (ADDR),     \
   12760              :                      (__v8di)(__m512i) (INDEX), \
   12761              :                      (__mmask8)0xFF, (int) (SCALE))
   12762              : 
   12763              : #define _mm512_mask_i64gather_ps(V1OLD, MASK, INDEX, ADDR, SCALE)   \
   12764              :   (__m256) __builtin_ia32_gatherdiv16sf ((__v8sf)(__m256) (V1OLD),  \
   12765              :                      (void const *) (ADDR),     \
   12766              :                      (__v8di)(__m512i) (INDEX), \
   12767              :                      (__mmask8) (MASK),     \
   12768              :                      (int) (SCALE))
   12769              : 
   12770              : #define _mm512_i64gather_pd(INDEX, ADDR, SCALE)             \
   12771              :   (__m512d) __builtin_ia32_gatherdiv8df ((__v8df)_mm512_undefined_pd(), \
   12772              :                      (void const *) (ADDR),     \
   12773              :                      (__v8di)(__m512i) (INDEX), \
   12774              :                      (__mmask8)0xFF, (int) (SCALE))
   12775              : 
   12776              : #define _mm512_mask_i64gather_pd(V1OLD, MASK, INDEX, ADDR, SCALE)   \
   12777              :   (__m512d) __builtin_ia32_gatherdiv8df ((__v8df)(__m512d) (V1OLD), \
   12778              :                      (void const *) (ADDR),     \
   12779              :                      (__v8di)(__m512i) (INDEX), \
   12780              :                      (__mmask8) (MASK),     \
   12781              :                      (int) (SCALE))
   12782              : 
   12783              : #define _mm512_i32gather_epi32(INDEX, ADDR, SCALE)          \
   12784              :   (__m512i) __builtin_ia32_gathersiv16si ((__v16si)_mm512_undefined_epi32 (),\
   12785              :                       (void const *) (ADDR),    \
   12786              :                       (__v16si)(__m512i) (INDEX),   \
   12787              :                       (__mmask16)0xFFFF,        \
   12788              :                       (int) (SCALE))
   12789              : 
   12790              : #define _mm512_mask_i32gather_epi32(V1OLD, MASK, INDEX, ADDR, SCALE)    \
   12791              :   (__m512i) __builtin_ia32_gathersiv16si ((__v16si)(__m512i) (V1OLD),   \
   12792              :                       (void const *) (ADDR),    \
   12793              :                       (__v16si)(__m512i) (INDEX),   \
   12794              :                       (__mmask16) (MASK),       \
   12795              :                       (int) (SCALE))
   12796              : 
   12797              : #define _mm512_i32gather_epi64(INDEX, ADDR, SCALE)          \
   12798              :   (__m512i) __builtin_ia32_gathersiv8di ((__v8di)_mm512_undefined_epi32 (),\
   12799              :                      (void const *) (ADDR),     \
   12800              :                      (__v8si)(__m256i) (INDEX), \
   12801              :                      (__mmask8)0xFF, (int) (SCALE))
   12802              : 
   12803              : #define _mm512_mask_i32gather_epi64(V1OLD, MASK, INDEX, ADDR, SCALE)    \
   12804              :   (__m512i) __builtin_ia32_gathersiv8di ((__v8di)(__m512i) (V1OLD), \
   12805              :                      (void const *) (ADDR),     \
   12806              :                      (__v8si)(__m256i) (INDEX), \
   12807              :                      (__mmask8) (MASK),     \
   12808              :                      (int) (SCALE))
   12809              : 
   12810              : #define _mm512_i64gather_epi32(INDEX, ADDR, SCALE)             \
   12811              :   (__m256i) __builtin_ia32_gatherdiv16si ((__v8si)_mm256_undefined_si256(),\
   12812              :                       (void const *) (ADDR),       \
   12813              :                       (__v8di)(__m512i) (INDEX),       \
   12814              :                       (__mmask8)0xFF, (int) (SCALE))
   12815              : 
   12816              : #define _mm512_mask_i64gather_epi32(V1OLD, MASK, INDEX, ADDR, SCALE)    \
   12817              :   (__m256i) __builtin_ia32_gatherdiv16si ((__v8si)(__m256i) (V1OLD),    \
   12818              :                       (void const *) (ADDR),    \
   12819              :                       (__v8di)(__m512i) (INDEX),    \
   12820              :                       (__mmask8) (MASK),        \
   12821              :                       (int) (SCALE))
   12822              : 
   12823              : #define _mm512_i64gather_epi64(INDEX, ADDR, SCALE)          \
   12824              :   (__m512i) __builtin_ia32_gatherdiv8di ((__v8di)_mm512_undefined_epi32 (),\
   12825              :                      (void const *) (ADDR),     \
   12826              :                      (__v8di)(__m512i) (INDEX), \
   12827              :                      (__mmask8)0xFF, (int) (SCALE))
   12828              : 
   12829              : #define _mm512_mask_i64gather_epi64(V1OLD, MASK, INDEX, ADDR, SCALE)    \
   12830              :   (__m512i) __builtin_ia32_gatherdiv8di ((__v8di)(__m512i) (V1OLD), \
   12831              :                      (void const *) (ADDR),     \
   12832              :                      (__v8di)(__m512i) (INDEX), \
   12833              :                      (__mmask8) (MASK),     \
   12834              :                      (int) (SCALE))
   12835              : 
   12836              : #define _mm512_i32scatter_ps(ADDR, INDEX, V1, SCALE)            \
   12837              :   __builtin_ia32_scattersiv16sf ((void *) (ADDR), (__mmask16)0xFFFF,    \
   12838              :                  (__v16si)(__m512i) (INDEX),        \
   12839              :                  (__v16sf)(__m512) (V1), (int) (SCALE))
   12840              : 
   12841              : #define _mm512_mask_i32scatter_ps(ADDR, MASK, INDEX, V1, SCALE)     \
   12842              :   __builtin_ia32_scattersiv16sf ((void *) (ADDR), (__mmask16) (MASK),   \
   12843              :                  (__v16si)(__m512i) (INDEX),        \
   12844              :                  (__v16sf)(__m512) (V1), (int) (SCALE))
   12845              : 
   12846              : #define _mm512_i32scatter_pd(ADDR, INDEX, V1, SCALE)            \
   12847              :   __builtin_ia32_scattersiv8df ((void *) (ADDR), (__mmask8)0xFF,    \
   12848              :                 (__v8si)(__m256i) (INDEX),      \
   12849              :                 (__v8df)(__m512d) (V1), (int) (SCALE))
   12850              : 
   12851              : #define _mm512_mask_i32scatter_pd(ADDR, MASK, INDEX, V1, SCALE)     \
   12852              :   __builtin_ia32_scattersiv8df ((void *) (ADDR), (__mmask8) (MASK), \
   12853              :                 (__v8si)(__m256i) (INDEX),      \
   12854              :                 (__v8df)(__m512d) (V1), (int) (SCALE))
   12855              : 
   12856              : #define _mm512_i64scatter_ps(ADDR, INDEX, V1, SCALE)            \
   12857              :   __builtin_ia32_scatterdiv16sf ((void *) (ADDR), (__mmask8)0xFF,   \
   12858              :                  (__v8di)(__m512i) (INDEX),     \
   12859              :                  (__v8sf)(__m256) (V1), (int) (SCALE))
   12860              : 
   12861              : #define _mm512_mask_i64scatter_ps(ADDR, MASK, INDEX, V1, SCALE)     \
   12862              :   __builtin_ia32_scatterdiv16sf ((void *) (ADDR), (__mmask16) (MASK),   \
   12863              :                  (__v8di)(__m512i) (INDEX),     \
   12864              :                  (__v8sf)(__m256) (V1), (int) (SCALE))
   12865              : 
   12866              : #define _mm512_i64scatter_pd(ADDR, INDEX, V1, SCALE)            \
   12867              :   __builtin_ia32_scatterdiv8df ((void *) (ADDR), (__mmask8)0xFF,    \
   12868              :                 (__v8di)(__m512i) (INDEX),      \
   12869              :                 (__v8df)(__m512d) (V1), (int) (SCALE))
   12870              : 
   12871              : #define _mm512_mask_i64scatter_pd(ADDR, MASK, INDEX, V1, SCALE)     \
   12872              :   __builtin_ia32_scatterdiv8df ((void *) (ADDR), (__mmask8) (MASK), \
   12873              :                 (__v8di)(__m512i) (INDEX),      \
   12874              :                 (__v8df)(__m512d) (V1), (int) (SCALE))
   12875              : 
   12876              : #define _mm512_i32scatter_epi32(ADDR, INDEX, V1, SCALE)         \
   12877              :   __builtin_ia32_scattersiv16si ((void *) (ADDR), (__mmask16)0xFFFF,    \
   12878              :                  (__v16si)(__m512i) (INDEX),        \
   12879              :                  (__v16si)(__m512i) (V1), (int) (SCALE))
   12880              : 
   12881              : #define _mm512_mask_i32scatter_epi32(ADDR, MASK, INDEX, V1, SCALE)  \
   12882              :   __builtin_ia32_scattersiv16si ((void *) (ADDR), (__mmask16) (MASK),   \
   12883              :                  (__v16si)(__m512i) (INDEX),        \
   12884              :                  (__v16si)(__m512i) (V1), (int) (SCALE))
   12885              : 
   12886              : #define _mm512_i32scatter_epi64(ADDR, INDEX, V1, SCALE)         \
   12887              :   __builtin_ia32_scattersiv8di ((void *) (ADDR), (__mmask8)0xFF,    \
   12888              :                 (__v8si)(__m256i) (INDEX),      \
   12889              :                 (__v8di)(__m512i) (V1), (int) (SCALE))
   12890              : 
   12891              : #define _mm512_mask_i32scatter_epi64(ADDR, MASK, INDEX, V1, SCALE)  \
   12892              :   __builtin_ia32_scattersiv8di ((void *) (ADDR), (__mmask8) (MASK), \
   12893              :                 (__v8si)(__m256i) (INDEX),      \
   12894              :                 (__v8di)(__m512i) (V1), (int) (SCALE))
   12895              : 
   12896              : #define _mm512_i64scatter_epi32(ADDR, INDEX, V1, SCALE)         \
   12897              :   __builtin_ia32_scatterdiv16si ((void *) (ADDR), (__mmask8)0xFF,   \
   12898              :                  (__v8di)(__m512i) (INDEX),     \
   12899              :                  (__v8si)(__m256i) (V1), (int) (SCALE))
   12900              : 
   12901              : #define _mm512_mask_i64scatter_epi32(ADDR, MASK, INDEX, V1, SCALE)  \
   12902              :   __builtin_ia32_scatterdiv16si ((void *) (ADDR), (__mmask8) (MASK),    \
   12903              :                  (__v8di)(__m512i) (INDEX),     \
   12904              :                  (__v8si)(__m256i) (V1), (int) (SCALE))
   12905              : 
   12906              : #define _mm512_i64scatter_epi64(ADDR, INDEX, V1, SCALE)         \
   12907              :   __builtin_ia32_scatterdiv8di ((void *) (ADDR), (__mmask8)0xFF,    \
   12908              :                 (__v8di)(__m512i) (INDEX),      \
   12909              :                 (__v8di)(__m512i) (V1), (int) (SCALE))
   12910              : 
   12911              : #define _mm512_mask_i64scatter_epi64(ADDR, MASK, INDEX, V1, SCALE)  \
   12912              :   __builtin_ia32_scatterdiv8di ((void *) (ADDR), (__mmask8) (MASK), \
   12913              :                 (__v8di)(__m512i) (INDEX),      \
   12914              :                 (__v8di)(__m512i) (V1), (int) (SCALE))
   12915              : #endif
   12916              : 
   12917              : extern __inline __m512d
   12918              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12919              : _mm512_mask_compress_pd (__m512d __W, __mmask8 __U, __m512d __A)
   12920              : {
   12921              :   return (__m512d) __builtin_ia32_compressdf512_mask ((__v8df) __A,
   12922              :                               (__v8df) __W,
   12923              :                               (__mmask8) __U);
   12924              : }
   12925              : 
   12926              : extern __inline __m512d
   12927              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12928              : _mm512_maskz_compress_pd (__mmask8 __U, __m512d __A)
   12929              : {
   12930              :   return (__m512d) __builtin_ia32_compressdf512_mask ((__v8df) __A,
   12931              :                               (__v8df)
   12932              :                               _mm512_setzero_pd (),
   12933              :                               (__mmask8) __U);
   12934              : }
   12935              : 
   12936              : extern __inline void
   12937              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12938              : _mm512_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m512d __A)
   12939              : {
   12940              :   __builtin_ia32_compressstoredf512_mask ((__v8df *) __P, (__v8df) __A,
   12941              :                       (__mmask8) __U);
   12942              : }
   12943              : 
   12944              : extern __inline __m512
   12945              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12946              : _mm512_mask_compress_ps (__m512 __W, __mmask16 __U, __m512 __A)
   12947              : {
   12948              :   return (__m512) __builtin_ia32_compresssf512_mask ((__v16sf) __A,
   12949              :                              (__v16sf) __W,
   12950              :                              (__mmask16) __U);
   12951              : }
   12952              : 
   12953              : extern __inline __m512
   12954              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12955              : _mm512_maskz_compress_ps (__mmask16 __U, __m512 __A)
   12956              : {
   12957              :   return (__m512) __builtin_ia32_compresssf512_mask ((__v16sf) __A,
   12958              :                              (__v16sf)
   12959              :                              _mm512_setzero_ps (),
   12960              :                              (__mmask16) __U);
   12961              : }
   12962              : 
   12963              : extern __inline void
   12964              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12965              : _mm512_mask_compressstoreu_ps (void *__P, __mmask16 __U, __m512 __A)
   12966              : {
   12967              :   __builtin_ia32_compressstoresf512_mask ((__v16sf *) __P, (__v16sf) __A,
   12968              :                       (__mmask16) __U);
   12969              : }
   12970              : 
   12971              : extern __inline __m512i
   12972              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12973              : _mm512_mask_compress_epi64 (__m512i __W, __mmask8 __U, __m512i __A)
   12974              : {
   12975              :   return (__m512i) __builtin_ia32_compressdi512_mask ((__v8di) __A,
   12976              :                               (__v8di) __W,
   12977              :                               (__mmask8) __U);
   12978              : }
   12979              : 
   12980              : extern __inline __m512i
   12981              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12982              : _mm512_maskz_compress_epi64 (__mmask8 __U, __m512i __A)
   12983              : {
   12984              :   return (__m512i) __builtin_ia32_compressdi512_mask ((__v8di) __A,
   12985              :                               (__v8di)
   12986              :                               _mm512_setzero_si512 (),
   12987              :                               (__mmask8) __U);
   12988              : }
   12989              : 
   12990              : extern __inline void
   12991              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12992              : _mm512_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m512i __A)
   12993              : {
   12994              :   __builtin_ia32_compressstoredi512_mask ((__v8di *) __P, (__v8di) __A,
   12995              :                       (__mmask8) __U);
   12996              : }
   12997              : 
   12998              : extern __inline __m512i
   12999              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13000              : _mm512_mask_compress_epi32 (__m512i __W, __mmask16 __U, __m512i __A)
   13001              : {
   13002              :   return (__m512i) __builtin_ia32_compresssi512_mask ((__v16si) __A,
   13003              :                               (__v16si) __W,
   13004              :                               (__mmask16) __U);
   13005              : }
   13006              : 
   13007              : extern __inline __m512i
   13008              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13009              : _mm512_maskz_compress_epi32 (__mmask16 __U, __m512i __A)
   13010              : {
   13011              :   return (__m512i) __builtin_ia32_compresssi512_mask ((__v16si) __A,
   13012              :                               (__v16si)
   13013              :                               _mm512_setzero_si512 (),
   13014              :                               (__mmask16) __U);
   13015              : }
   13016              : 
   13017              : extern __inline void
   13018              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13019              : _mm512_mask_compressstoreu_epi32 (void *__P, __mmask16 __U, __m512i __A)
   13020              : {
   13021              :   __builtin_ia32_compressstoresi512_mask ((__v16si *) __P, (__v16si) __A,
   13022              :                       (__mmask16) __U);
   13023              : }
   13024              : 
   13025              : extern __inline __m512d
   13026              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13027              : _mm512_mask_expand_pd (__m512d __W, __mmask8 __U, __m512d __A)
   13028              : {
   13029              :   return (__m512d) __builtin_ia32_expanddf512_mask ((__v8df) __A,
   13030              :                             (__v8df) __W,
   13031              :                             (__mmask8) __U);
   13032              : }
   13033              : 
   13034              : extern __inline __m512d
   13035              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13036              : _mm512_maskz_expand_pd (__mmask8 __U, __m512d __A)
   13037              : {
   13038              :   return (__m512d) __builtin_ia32_expanddf512_maskz ((__v8df) __A,
   13039              :                              (__v8df)
   13040              :                              _mm512_setzero_pd (),
   13041              :                              (__mmask8) __U);
   13042              : }
   13043              : 
   13044              : extern __inline __m512d
   13045              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13046              : _mm512_mask_expandloadu_pd (__m512d __W, __mmask8 __U, void const *__P)
   13047              : {
   13048              :   return (__m512d) __builtin_ia32_expandloaddf512_mask ((const __v8df *) __P,
   13049              :                             (__v8df) __W,
   13050              :                             (__mmask8) __U);
   13051              : }
   13052              : 
   13053              : extern __inline __m512d
   13054              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13055              : _mm512_maskz_expandloadu_pd (__mmask8 __U, void const *__P)
   13056              : {
   13057              :   return (__m512d) __builtin_ia32_expandloaddf512_maskz ((const __v8df *) __P,
   13058              :                              (__v8df)
   13059              :                              _mm512_setzero_pd (),
   13060              :                              (__mmask8) __U);
   13061              : }
   13062              : 
   13063              : extern __inline __m512
   13064              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13065              : _mm512_mask_expand_ps (__m512 __W, __mmask16 __U, __m512 __A)
   13066              : {
   13067              :   return (__m512) __builtin_ia32_expandsf512_mask ((__v16sf) __A,
   13068              :                            (__v16sf) __W,
   13069              :                            (__mmask16) __U);
   13070              : }
   13071              : 
   13072              : extern __inline __m512
   13073              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13074              : _mm512_maskz_expand_ps (__mmask16 __U, __m512 __A)
   13075              : {
   13076              :   return (__m512) __builtin_ia32_expandsf512_maskz ((__v16sf) __A,
   13077              :                             (__v16sf)
   13078              :                             _mm512_setzero_ps (),
   13079              :                             (__mmask16) __U);
   13080              : }
   13081              : 
   13082              : extern __inline __m512
   13083              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13084              : _mm512_mask_expandloadu_ps (__m512 __W, __mmask16 __U, void const *__P)
   13085              : {
   13086              :   return (__m512) __builtin_ia32_expandloadsf512_mask ((const __v16sf *) __P,
   13087              :                                (__v16sf) __W,
   13088              :                                (__mmask16) __U);
   13089              : }
   13090              : 
   13091              : extern __inline __m512
   13092              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13093              : _mm512_maskz_expandloadu_ps (__mmask16 __U, void const *__P)
   13094              : {
   13095              :   return (__m512) __builtin_ia32_expandloadsf512_maskz ((const __v16sf *) __P,
   13096              :                             (__v16sf)
   13097              :                             _mm512_setzero_ps (),
   13098              :                             (__mmask16) __U);
   13099              : }
   13100              : 
   13101              : extern __inline __m512i
   13102              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13103              : _mm512_mask_expand_epi64 (__m512i __W, __mmask8 __U, __m512i __A)
   13104              : {
   13105              :   return (__m512i) __builtin_ia32_expanddi512_mask ((__v8di) __A,
   13106              :                             (__v8di) __W,
   13107              :                             (__mmask8) __U);
   13108              : }
   13109              : 
   13110              : extern __inline __m512i
   13111              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13112              : _mm512_maskz_expand_epi64 (__mmask8 __U, __m512i __A)
   13113              : {
   13114              :   return (__m512i) __builtin_ia32_expanddi512_maskz ((__v8di) __A,
   13115              :                              (__v8di)
   13116              :                              _mm512_setzero_si512 (),
   13117              :                              (__mmask8) __U);
   13118              : }
   13119              : 
   13120              : extern __inline __m512i
   13121              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13122              : _mm512_mask_expandloadu_epi64 (__m512i __W, __mmask8 __U, void const *__P)
   13123              : {
   13124              :   return (__m512i) __builtin_ia32_expandloaddi512_mask ((const __v8di *) __P,
   13125              :                             (__v8di) __W,
   13126              :                             (__mmask8) __U);
   13127              : }
   13128              : 
   13129              : extern __inline __m512i
   13130              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13131              : _mm512_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P)
   13132              : {
   13133              :   return (__m512i)
   13134              :      __builtin_ia32_expandloaddi512_maskz ((const __v8di *) __P,
   13135              :                            (__v8di)
   13136              :                            _mm512_setzero_si512 (),
   13137              :                            (__mmask8) __U);
   13138              : }
   13139              : 
   13140              : extern __inline __m512i
   13141              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13142              : _mm512_mask_expand_epi32 (__m512i __W, __mmask16 __U, __m512i __A)
   13143              : {
   13144              :   return (__m512i) __builtin_ia32_expandsi512_mask ((__v16si) __A,
   13145              :                             (__v16si) __W,
   13146              :                             (__mmask16) __U);
   13147              : }
   13148              : 
   13149              : extern __inline __m512i
   13150              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13151              : _mm512_maskz_expand_epi32 (__mmask16 __U, __m512i __A)
   13152              : {
   13153              :   return (__m512i) __builtin_ia32_expandsi512_maskz ((__v16si) __A,
   13154              :                              (__v16si)
   13155              :                              _mm512_setzero_si512 (),
   13156              :                              (__mmask16) __U);
   13157              : }
   13158              : 
   13159              : extern __inline __m512i
   13160              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13161              : _mm512_mask_expandloadu_epi32 (__m512i __W, __mmask16 __U, void const *__P)
   13162              : {
   13163              :   return (__m512i) __builtin_ia32_expandloadsi512_mask ((const __v16si *) __P,
   13164              :                             (__v16si) __W,
   13165              :                             (__mmask16) __U);
   13166              : }
   13167              : 
   13168              : extern __inline __m512i
   13169              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13170              : _mm512_maskz_expandloadu_epi32 (__mmask16 __U, void const *__P)
   13171              : {
   13172              :   return (__m512i) __builtin_ia32_expandloadsi512_maskz ((const __v16si *) __P,
   13173              :                              (__v16si)
   13174              :                              _mm512_setzero_si512
   13175              :                              (), (__mmask16) __U);
   13176              : }
   13177              : 
   13178              : extern __inline __mmask16
   13179              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13180              : _mm512_kand (__mmask16 __A, __mmask16 __B)
   13181              : {
   13182              :   return (__mmask16) __builtin_ia32_kandhi ((__mmask16) __A, (__mmask16) __B);
   13183              : }
   13184              : 
   13185              : extern __inline __mmask16
   13186              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13187              : _mm512_kandn (__mmask16 __A, __mmask16 __B)
   13188              : {
   13189              :   return (__mmask16) __builtin_ia32_kandnhi ((__mmask16) __A,
   13190              :                          (__mmask16) __B);
   13191              : }
   13192              : 
   13193              : extern __inline __mmask16
   13194              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13195              : _mm512_kor (__mmask16 __A, __mmask16 __B)
   13196              : {
   13197              :   return (__mmask16) __builtin_ia32_korhi ((__mmask16) __A, (__mmask16) __B);
   13198              : }
   13199              : 
   13200              : extern __inline int
   13201              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13202              : _mm512_kortestz (__mmask16 __A, __mmask16 __B)
   13203              : {
   13204              :   return (__mmask16) __builtin_ia32_kortestzhi ((__mmask16) __A,
   13205              :                         (__mmask16) __B);
   13206              : }
   13207              : 
   13208              : extern __inline int
   13209              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13210              : _mm512_kortestc (__mmask16 __A, __mmask16 __B)
   13211              : {
   13212              :   return (__mmask16) __builtin_ia32_kortestchi ((__mmask16) __A,
   13213              :                         (__mmask16) __B);
   13214              : }
   13215              : 
   13216              : extern __inline __mmask16
   13217              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13218              : _mm512_kxnor (__mmask16 __A, __mmask16 __B)
   13219              : {
   13220              :   return (__mmask16) __builtin_ia32_kxnorhi ((__mmask16) __A, (__mmask16) __B);
   13221              : }
   13222              : 
   13223              : extern __inline __mmask16
   13224              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13225              : _mm512_kxor (__mmask16 __A, __mmask16 __B)
   13226              : {
   13227              :   return (__mmask16) __builtin_ia32_kxorhi ((__mmask16) __A, (__mmask16) __B);
   13228              : }
   13229              : 
   13230              : extern __inline __mmask16
   13231              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13232              : _mm512_knot (__mmask16 __A)
   13233              : {
   13234              :   return (__mmask16) __builtin_ia32_knothi ((__mmask16) __A);
   13235              : }
   13236              : 
   13237              : extern __inline __mmask16
   13238              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13239              : _mm512_kunpackb (__mmask16 __A, __mmask16 __B)
   13240              : {
   13241              :   return (__mmask16) __builtin_ia32_kunpckhi ((__mmask16) __A, (__mmask16) __B);
   13242              : }
   13243              : 
   13244              : #ifdef __OPTIMIZE__
   13245              : extern __inline __m512i
   13246              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13247              : _mm512_maskz_inserti32x4 (__mmask16 __B, __m512i __C, __m128i __D,
   13248              :               const int __imm)
   13249              : {
   13250              :   return (__m512i) __builtin_ia32_inserti32x4_mask ((__v16si) __C,
   13251              :                             (__v4si) __D,
   13252              :                             __imm,
   13253              :                             (__v16si)
   13254              :                             _mm512_setzero_si512 (),
   13255              :                             __B);
   13256              : }
   13257              : 
   13258              : extern __inline __m512
   13259              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13260              : _mm512_maskz_insertf32x4 (__mmask16 __B, __m512 __C, __m128 __D,
   13261              :               const int __imm)
   13262              : {
   13263              :   return (__m512) __builtin_ia32_insertf32x4_mask ((__v16sf) __C,
   13264              :                            (__v4sf) __D,
   13265              :                            __imm,
   13266              :                            (__v16sf)
   13267              :                            _mm512_setzero_ps (), __B);
   13268              : }
   13269              : 
   13270              : extern __inline __m512i
   13271              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13272              : _mm512_mask_inserti32x4 (__m512i __A, __mmask16 __B, __m512i __C,
   13273              :              __m128i __D, const int __imm)
   13274              : {
   13275              :   return (__m512i) __builtin_ia32_inserti32x4_mask ((__v16si) __C,
   13276              :                             (__v4si) __D,
   13277              :                             __imm,
   13278              :                             (__v16si) __A,
   13279              :                             __B);
   13280              : }
   13281              : 
   13282              : extern __inline __m512
   13283              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13284              : _mm512_mask_insertf32x4 (__m512 __A, __mmask16 __B, __m512 __C,
   13285              :              __m128 __D, const int __imm)
   13286              : {
   13287              :   return (__m512) __builtin_ia32_insertf32x4_mask ((__v16sf) __C,
   13288              :                            (__v4sf) __D,
   13289              :                            __imm,
   13290              :                            (__v16sf) __A, __B);
   13291              : }
   13292              : #else
   13293              : #define _mm512_maskz_insertf32x4(A, X, Y, C)                            \
   13294              :   ((__m512) __builtin_ia32_insertf32x4_mask ((__v16sf)(__m512) (X),     \
   13295              :     (__v4sf)(__m128) (Y), (int) (C), (__v16sf)_mm512_setzero_ps(),      \
   13296              :     (__mmask16)(A)))
   13297              : 
   13298              : #define _mm512_maskz_inserti32x4(A, X, Y, C)                            \
   13299              :   ((__m512i) __builtin_ia32_inserti32x4_mask ((__v16si)(__m512i) (X),   \
   13300              :     (__v4si)(__m128i) (Y), (int) (C), (__v16si)_mm512_setzero_si512 (),     \
   13301              :     (__mmask16)(A)))
   13302              : 
   13303              : #define _mm512_mask_insertf32x4(A, B, X, Y, C)                          \
   13304              :   ((__m512) __builtin_ia32_insertf32x4_mask ((__v16sf)(__m512) (X),     \
   13305              :     (__v4sf)(__m128) (Y), (int) (C), (__v16sf)(__m512) (A),             \
   13306              :                          (__mmask16)(B)))
   13307              : 
   13308              : #define _mm512_mask_inserti32x4(A, B, X, Y, C)                          \
   13309              :   ((__m512i) __builtin_ia32_inserti32x4_mask ((__v16si)(__m512i) (X),   \
   13310              :     (__v4si)(__m128i) (Y), (int) (C), (__v16si)(__m512i) (A),           \
   13311              :                           (__mmask16)(B)))
   13312              : #endif
   13313              : 
   13314              : extern __inline __m512i
   13315              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13316              : _mm512_max_epi64 (__m512i __A, __m512i __B)
   13317              : {
   13318              :   return (__m512i) __builtin_ia32_pmaxsq512_mask ((__v8di) __A,
   13319              :                           (__v8di) __B,
   13320              :                           (__v8di)
   13321              :                           _mm512_undefined_epi32 (),
   13322              :                           (__mmask8) -1);
   13323              : }
   13324              : 
   13325              : extern __inline __m512i
   13326              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13327              : _mm512_maskz_max_epi64 (__mmask8 __M, __m512i __A, __m512i __B)
   13328              : {
   13329              :   return (__m512i) __builtin_ia32_pmaxsq512_mask ((__v8di) __A,
   13330              :                           (__v8di) __B,
   13331              :                           (__v8di)
   13332              :                           _mm512_setzero_si512 (),
   13333              :                           __M);
   13334              : }
   13335              : 
   13336              : extern __inline __m512i
   13337              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13338              : _mm512_mask_max_epi64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
   13339              : {
   13340              :   return (__m512i) __builtin_ia32_pmaxsq512_mask ((__v8di) __A,
   13341              :                           (__v8di) __B,
   13342              :                           (__v8di) __W, __M);
   13343              : }
   13344              : 
   13345              : extern __inline __m512i
   13346              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13347              : _mm512_min_epi64 (__m512i __A, __m512i __B)
   13348              : {
   13349              :   return (__m512i) __builtin_ia32_pminsq512_mask ((__v8di) __A,
   13350              :                           (__v8di) __B,
   13351              :                           (__v8di)
   13352              :                           _mm512_undefined_epi32 (),
   13353              :                           (__mmask8) -1);
   13354              : }
   13355              : 
   13356              : extern __inline __m512i
   13357              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13358              : _mm512_mask_min_epi64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
   13359              : {
   13360              :   return (__m512i) __builtin_ia32_pminsq512_mask ((__v8di) __A,
   13361              :                           (__v8di) __B,
   13362              :                           (__v8di) __W, __M);
   13363              : }
   13364              : 
   13365              : extern __inline __m512i
   13366              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13367              : _mm512_maskz_min_epi64 (__mmask8 __M, __m512i __A, __m512i __B)
   13368              : {
   13369              :   return (__m512i) __builtin_ia32_pminsq512_mask ((__v8di) __A,
   13370              :                           (__v8di) __B,
   13371              :                           (__v8di)
   13372              :                           _mm512_setzero_si512 (),
   13373              :                           __M);
   13374              : }
   13375              : 
   13376              : extern __inline __m512i
   13377              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13378              : _mm512_max_epu64 (__m512i __A, __m512i __B)
   13379              : {
   13380              :   return (__m512i) __builtin_ia32_pmaxuq512_mask ((__v8di) __A,
   13381              :                           (__v8di) __B,
   13382              :                           (__v8di)
   13383              :                           _mm512_undefined_epi32 (),
   13384              :                           (__mmask8) -1);
   13385              : }
   13386              : 
   13387              : extern __inline __m512i
   13388              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13389              : _mm512_maskz_max_epu64 (__mmask8 __M, __m512i __A, __m512i __B)
   13390              : {
   13391              :   return (__m512i) __builtin_ia32_pmaxuq512_mask ((__v8di) __A,
   13392              :                           (__v8di) __B,
   13393              :                           (__v8di)
   13394              :                           _mm512_setzero_si512 (),
   13395              :                           __M);
   13396              : }
   13397              : 
   13398              : extern __inline __m512i
   13399              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13400              : _mm512_mask_max_epu64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
   13401              : {
   13402              :   return (__m512i) __builtin_ia32_pmaxuq512_mask ((__v8di) __A,
   13403              :                           (__v8di) __B,
   13404              :                           (__v8di) __W, __M);
   13405              : }
   13406              : 
   13407              : extern __inline __m512i
   13408              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13409              : _mm512_min_epu64 (__m512i __A, __m512i __B)
   13410              : {
   13411              :   return (__m512i) __builtin_ia32_pminuq512_mask ((__v8di) __A,
   13412              :                           (__v8di) __B,
   13413              :                           (__v8di)
   13414              :                           _mm512_undefined_epi32 (),
   13415              :                           (__mmask8) -1);
   13416              : }
   13417              : 
   13418              : extern __inline __m512i
   13419              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13420              : _mm512_mask_min_epu64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
   13421              : {
   13422              :   return (__m512i) __builtin_ia32_pminuq512_mask ((__v8di) __A,
   13423              :                           (__v8di) __B,
   13424              :                           (__v8di) __W, __M);
   13425              : }
   13426              : 
   13427              : extern __inline __m512i
   13428              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13429              : _mm512_maskz_min_epu64 (__mmask8 __M, __m512i __A, __m512i __B)
   13430              : {
   13431              :   return (__m512i) __builtin_ia32_pminuq512_mask ((__v8di) __A,
   13432              :                           (__v8di) __B,
   13433              :                           (__v8di)
   13434              :                           _mm512_setzero_si512 (),
   13435              :                           __M);
   13436              : }
   13437              : 
   13438              : extern __inline __m512i
   13439              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13440              : _mm512_max_epi32 (__m512i __A, __m512i __B)
   13441              : {
   13442              :   return (__m512i) __builtin_ia32_pmaxsd512_mask ((__v16si) __A,
   13443              :                           (__v16si) __B,
   13444              :                           (__v16si)
   13445              :                           _mm512_undefined_epi32 (),
   13446              :                           (__mmask16) -1);
   13447              : }
   13448              : 
   13449              : extern __inline __m512i
   13450              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13451              : _mm512_maskz_max_epi32 (__mmask16 __M, __m512i __A, __m512i __B)
   13452              : {
   13453              :   return (__m512i) __builtin_ia32_pmaxsd512_mask ((__v16si) __A,
   13454              :                           (__v16si) __B,
   13455              :                           (__v16si)
   13456              :                           _mm512_setzero_si512 (),
   13457              :                           __M);
   13458              : }
   13459              : 
   13460              : extern __inline __m512i
   13461              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13462              : _mm512_mask_max_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
   13463              : {
   13464              :   return (__m512i) __builtin_ia32_pmaxsd512_mask ((__v16si) __A,
   13465              :                           (__v16si) __B,
   13466              :                           (__v16si) __W, __M);
   13467              : }
   13468              : 
   13469              : extern __inline __m512i
   13470              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13471              : _mm512_min_epi32 (__m512i __A, __m512i __B)
   13472              : {
   13473              :   return (__m512i) __builtin_ia32_pminsd512_mask ((__v16si) __A,
   13474              :                           (__v16si) __B,
   13475              :                           (__v16si)
   13476              :                           _mm512_undefined_epi32 (),
   13477              :                           (__mmask16) -1);
   13478              : }
   13479              : 
   13480              : extern __inline __m512i
   13481              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13482              : _mm512_maskz_min_epi32 (__mmask16 __M, __m512i __A, __m512i __B)
   13483              : {
   13484              :   return (__m512i) __builtin_ia32_pminsd512_mask ((__v16si) __A,
   13485              :                           (__v16si) __B,
   13486              :                           (__v16si)
   13487              :                           _mm512_setzero_si512 (),
   13488              :                           __M);
   13489              : }
   13490              : 
   13491              : extern __inline __m512i
   13492              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13493              : _mm512_mask_min_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
   13494              : {
   13495              :   return (__m512i) __builtin_ia32_pminsd512_mask ((__v16si) __A,
   13496              :                           (__v16si) __B,
   13497              :                           (__v16si) __W, __M);
   13498              : }
   13499              : 
   13500              : extern __inline __m512i
   13501              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13502              : _mm512_max_epu32 (__m512i __A, __m512i __B)
   13503              : {
   13504              :   return (__m512i) __builtin_ia32_pmaxud512_mask ((__v16si) __A,
   13505              :                           (__v16si) __B,
   13506              :                           (__v16si)
   13507              :                           _mm512_undefined_epi32 (),
   13508              :                           (__mmask16) -1);
   13509              : }
   13510              : 
   13511              : extern __inline __m512i
   13512              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13513              : _mm512_maskz_max_epu32 (__mmask16 __M, __m512i __A, __m512i __B)
   13514              : {
   13515              :   return (__m512i) __builtin_ia32_pmaxud512_mask ((__v16si) __A,
   13516              :                           (__v16si) __B,
   13517              :                           (__v16si)
   13518              :                           _mm512_setzero_si512 (),
   13519              :                           __M);
   13520              : }
   13521              : 
   13522              : extern __inline __m512i
   13523              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13524              : _mm512_mask_max_epu32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
   13525              : {
   13526              :   return (__m512i) __builtin_ia32_pmaxud512_mask ((__v16si) __A,
   13527              :                           (__v16si) __B,
   13528              :                           (__v16si) __W, __M);
   13529              : }
   13530              : 
   13531              : extern __inline __m512i
   13532              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13533              : _mm512_min_epu32 (__m512i __A, __m512i __B)
   13534              : {
   13535              :   return (__m512i) __builtin_ia32_pminud512_mask ((__v16si) __A,
   13536              :                           (__v16si) __B,
   13537              :                           (__v16si)
   13538              :                           _mm512_undefined_epi32 (),
   13539              :                           (__mmask16) -1);
   13540              : }
   13541              : 
   13542              : extern __inline __m512i
   13543              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13544              : _mm512_maskz_min_epu32 (__mmask16 __M, __m512i __A, __m512i __B)
   13545              : {
   13546              :   return (__m512i) __builtin_ia32_pminud512_mask ((__v16si) __A,
   13547              :                           (__v16si) __B,
   13548              :                           (__v16si)
   13549              :                           _mm512_setzero_si512 (),
   13550              :                           __M);
   13551              : }
   13552              : 
   13553              : extern __inline __m512i
   13554              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13555              : _mm512_mask_min_epu32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
   13556              : {
   13557              :   return (__m512i) __builtin_ia32_pminud512_mask ((__v16si) __A,
   13558              :                           (__v16si) __B,
   13559              :                           (__v16si) __W, __M);
   13560              : }
   13561              : 
   13562              : extern __inline __m512
   13563              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13564              : _mm512_unpacklo_ps (__m512 __A, __m512 __B)
   13565              : {
   13566              :   return (__m512) __builtin_ia32_unpcklps512_mask ((__v16sf) __A,
   13567              :                            (__v16sf) __B,
   13568              :                            (__v16sf)
   13569              :                            _mm512_undefined_ps (),
   13570              :                            (__mmask16) -1);
   13571              : }
   13572              : 
   13573              : extern __inline __m512
   13574              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13575              : _mm512_mask_unpacklo_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
   13576              : {
   13577              :   return (__m512) __builtin_ia32_unpcklps512_mask ((__v16sf) __A,
   13578              :                            (__v16sf) __B,
   13579              :                            (__v16sf) __W,
   13580              :                            (__mmask16) __U);
   13581              : }
   13582              : 
   13583              : extern __inline __m512
   13584              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13585              : _mm512_maskz_unpacklo_ps (__mmask16 __U, __m512 __A, __m512 __B)
   13586              : {
   13587              :   return (__m512) __builtin_ia32_unpcklps512_mask ((__v16sf) __A,
   13588              :                            (__v16sf) __B,
   13589              :                            (__v16sf)
   13590              :                            _mm512_setzero_ps (),
   13591              :                            (__mmask16) __U);
   13592              : }
   13593              : 
   13594              : extern __inline __m512d
   13595              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13596              : _mm512_mask_blend_pd (__mmask8 __U, __m512d __A, __m512d __W)
   13597              : {
   13598              :   return (__m512d) __builtin_ia32_blendmpd_512_mask ((__v8df) __A,
   13599              :                              (__v8df) __W,
   13600              :                              (__mmask8) __U);
   13601              : }
   13602              : 
   13603              : extern __inline __m512
   13604              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13605              : _mm512_mask_blend_ps (__mmask16 __U, __m512 __A, __m512 __W)
   13606              : {
   13607              :   return (__m512) __builtin_ia32_blendmps_512_mask ((__v16sf) __A,
   13608              :                             (__v16sf) __W,
   13609              :                             (__mmask16) __U);
   13610              : }
   13611              : 
   13612              : extern __inline __m512i
   13613              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13614              : _mm512_mask_blend_epi64 (__mmask8 __U, __m512i __A, __m512i __W)
   13615              : {
   13616              :   return (__m512i) __builtin_ia32_blendmq_512_mask ((__v8di) __A,
   13617              :                             (__v8di) __W,
   13618              :                             (__mmask8) __U);
   13619              : }
   13620              : 
   13621              : extern __inline __m512i
   13622              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13623              : _mm512_mask_blend_epi32 (__mmask16 __U, __m512i __A, __m512i __W)
   13624              : {
   13625              :   return (__m512i) __builtin_ia32_blendmd_512_mask ((__v16si) __A,
   13626              :                             (__v16si) __W,
   13627              :                             (__mmask16) __U);
   13628              : }
   13629              : 
   13630              : extern __inline __m512d
   13631              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13632              : _mm512_sqrt_pd (__m512d __A)
   13633              : {
   13634              :   return (__m512d) __builtin_ia32_sqrtpd512_mask ((__v8df) __A,
   13635              :                           (__v8df)
   13636              :                           _mm512_undefined_pd (),
   13637              :                           (__mmask8) -1,
   13638              :                           _MM_FROUND_CUR_DIRECTION);
   13639              : }
   13640              : 
   13641              : extern __inline __m512d
   13642              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13643              : _mm512_mask_sqrt_pd (__m512d __W, __mmask8 __U, __m512d __A)
   13644              : {
   13645              :   return (__m512d) __builtin_ia32_sqrtpd512_mask ((__v8df) __A,
   13646              :                           (__v8df) __W,
   13647              :                           (__mmask8) __U,
   13648              :                           _MM_FROUND_CUR_DIRECTION);
   13649              : }
   13650              : 
   13651              : extern __inline __m512d
   13652              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13653              : _mm512_maskz_sqrt_pd (__mmask8 __U, __m512d __A)
   13654              : {
   13655              :   return (__m512d) __builtin_ia32_sqrtpd512_mask ((__v8df) __A,
   13656              :                           (__v8df)
   13657              :                           _mm512_setzero_pd (),
   13658              :                           (__mmask8) __U,
   13659              :                           _MM_FROUND_CUR_DIRECTION);
   13660              : }
   13661              : 
   13662              : extern __inline __m512
   13663              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13664              : _mm512_sqrt_ps (__m512 __A)
   13665              : {
   13666              :   return (__m512) __builtin_ia32_sqrtps512_mask ((__v16sf) __A,
   13667              :                          (__v16sf)
   13668              :                          _mm512_undefined_ps (),
   13669              :                          (__mmask16) -1,
   13670              :                          _MM_FROUND_CUR_DIRECTION);
   13671              : }
   13672              : 
   13673              : extern __inline __m512
   13674              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13675              : _mm512_mask_sqrt_ps (__m512 __W, __mmask16 __U, __m512 __A)
   13676              : {
   13677              :   return (__m512) __builtin_ia32_sqrtps512_mask ((__v16sf) __A,
   13678              :                          (__v16sf) __W,
   13679              :                          (__mmask16) __U,
   13680              :                          _MM_FROUND_CUR_DIRECTION);
   13681              : }
   13682              : 
   13683              : extern __inline __m512
   13684              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13685              : _mm512_maskz_sqrt_ps (__mmask16 __U, __m512 __A)
   13686              : {
   13687              :   return (__m512) __builtin_ia32_sqrtps512_mask ((__v16sf) __A,
   13688              :                          (__v16sf)
   13689              :                          _mm512_setzero_ps (),
   13690              :                          (__mmask16) __U,
   13691              :                          _MM_FROUND_CUR_DIRECTION);
   13692              : }
   13693              : 
   13694              : extern __inline __m512d
   13695              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13696              : _mm512_add_pd (__m512d __A, __m512d __B)
   13697              : {
   13698              :   return (__m512d) ((__v8df)__A + (__v8df)__B);
   13699              : }
   13700              : 
   13701              : extern __inline __m512d
   13702              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13703              : _mm512_mask_add_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
   13704              : {
   13705              :   return (__m512d) __builtin_ia32_addpd512_mask ((__v8df) __A,
   13706              :                          (__v8df) __B,
   13707              :                          (__v8df) __W,
   13708              :                          (__mmask8) __U,
   13709              :                          _MM_FROUND_CUR_DIRECTION);
   13710              : }
   13711              : 
   13712              : extern __inline __m512d
   13713              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13714              : _mm512_maskz_add_pd (__mmask8 __U, __m512d __A, __m512d __B)
   13715              : {
   13716              :   return (__m512d) __builtin_ia32_addpd512_mask ((__v8df) __A,
   13717              :                          (__v8df) __B,
   13718              :                          (__v8df)
   13719              :                          _mm512_setzero_pd (),
   13720              :                          (__mmask8) __U,
   13721              :                          _MM_FROUND_CUR_DIRECTION);
   13722              : }
   13723              : 
   13724              : extern __inline __m512
   13725              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13726              : _mm512_add_ps (__m512 __A, __m512 __B)
   13727              : {
   13728              :   return (__m512) ((__v16sf)__A + (__v16sf)__B);
   13729              : }
   13730              : 
   13731              : extern __inline __m512
   13732              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13733              : _mm512_mask_add_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
   13734              : {
   13735              :   return (__m512) __builtin_ia32_addps512_mask ((__v16sf) __A,
   13736              :                         (__v16sf) __B,
   13737              :                         (__v16sf) __W,
   13738              :                         (__mmask16) __U,
   13739              :                         _MM_FROUND_CUR_DIRECTION);
   13740              : }
   13741              : 
   13742              : extern __inline __m512
   13743              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13744              : _mm512_maskz_add_ps (__mmask16 __U, __m512 __A, __m512 __B)
   13745              : {
   13746              :   return (__m512) __builtin_ia32_addps512_mask ((__v16sf) __A,
   13747              :                         (__v16sf) __B,
   13748              :                         (__v16sf)
   13749              :                         _mm512_setzero_ps (),
   13750              :                         (__mmask16) __U,
   13751              :                         _MM_FROUND_CUR_DIRECTION);
   13752              : }
   13753              : 
   13754              : extern __inline __m512d
   13755              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13756              : _mm512_sub_pd (__m512d __A, __m512d __B)
   13757              : {
   13758              :   return (__m512d) ((__v8df)__A - (__v8df)__B);
   13759              : }
   13760              : 
   13761              : extern __inline __m512d
   13762              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13763              : _mm512_mask_sub_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
   13764              : {
   13765              :   return (__m512d) __builtin_ia32_subpd512_mask ((__v8df) __A,
   13766              :                          (__v8df) __B,
   13767              :                          (__v8df) __W,
   13768              :                          (__mmask8) __U,
   13769              :                          _MM_FROUND_CUR_DIRECTION);
   13770              : }
   13771              : 
   13772              : extern __inline __m512d
   13773              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13774              : _mm512_maskz_sub_pd (__mmask8 __U, __m512d __A, __m512d __B)
   13775              : {
   13776              :   return (__m512d) __builtin_ia32_subpd512_mask ((__v8df) __A,
   13777              :                          (__v8df) __B,
   13778              :                          (__v8df)
   13779              :                          _mm512_setzero_pd (),
   13780              :                          (__mmask8) __U,
   13781              :                          _MM_FROUND_CUR_DIRECTION);
   13782              : }
   13783              : 
   13784              : extern __inline __m512
   13785              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13786              : _mm512_sub_ps (__m512 __A, __m512 __B)
   13787              : {
   13788              :   return (__m512) ((__v16sf)__A - (__v16sf)__B);
   13789              : }
   13790              : 
   13791              : extern __inline __m512
   13792              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13793              : _mm512_mask_sub_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
   13794              : {
   13795              :   return (__m512) __builtin_ia32_subps512_mask ((__v16sf) __A,
   13796              :                         (__v16sf) __B,
   13797              :                         (__v16sf) __W,
   13798              :                         (__mmask16) __U,
   13799              :                         _MM_FROUND_CUR_DIRECTION);
   13800              : }
   13801              : 
   13802              : extern __inline __m512
   13803              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13804              : _mm512_maskz_sub_ps (__mmask16 __U, __m512 __A, __m512 __B)
   13805              : {
   13806              :   return (__m512) __builtin_ia32_subps512_mask ((__v16sf) __A,
   13807              :                         (__v16sf) __B,
   13808              :                         (__v16sf)
   13809              :                         _mm512_setzero_ps (),
   13810              :                         (__mmask16) __U,
   13811              :                         _MM_FROUND_CUR_DIRECTION);
   13812              : }
   13813              : 
   13814              : extern __inline __m512d
   13815              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13816              : _mm512_mul_pd (__m512d __A, __m512d __B)
   13817              : {
   13818              :   return (__m512d) ((__v8df)__A * (__v8df)__B);
   13819              : }
   13820              : 
   13821              : extern __inline __m512d
   13822              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13823              : _mm512_mask_mul_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
   13824              : {
   13825              :   return (__m512d) __builtin_ia32_mulpd512_mask ((__v8df) __A,
   13826              :                          (__v8df) __B,
   13827              :                          (__v8df) __W,
   13828              :                          (__mmask8) __U,
   13829              :                          _MM_FROUND_CUR_DIRECTION);
   13830              : }
   13831              : 
   13832              : extern __inline __m512d
   13833              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13834              : _mm512_maskz_mul_pd (__mmask8 __U, __m512d __A, __m512d __B)
   13835              : {
   13836              :   return (__m512d) __builtin_ia32_mulpd512_mask ((__v8df) __A,
   13837              :                          (__v8df) __B,
   13838              :                          (__v8df)
   13839              :                          _mm512_setzero_pd (),
   13840              :                          (__mmask8) __U,
   13841              :                          _MM_FROUND_CUR_DIRECTION);
   13842              : }
   13843              : 
   13844              : extern __inline __m512
   13845              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13846              : _mm512_mul_ps (__m512 __A, __m512 __B)
   13847              : {
   13848              :   return (__m512) ((__v16sf)__A * (__v16sf)__B);
   13849              : }
   13850              : 
   13851              : extern __inline __m512
   13852              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13853              : _mm512_mask_mul_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
   13854              : {
   13855              :   return (__m512) __builtin_ia32_mulps512_mask ((__v16sf) __A,
   13856              :                         (__v16sf) __B,
   13857              :                         (__v16sf) __W,
   13858              :                         (__mmask16) __U,
   13859              :                         _MM_FROUND_CUR_DIRECTION);
   13860              : }
   13861              : 
   13862              : extern __inline __m512
   13863              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13864              : _mm512_maskz_mul_ps (__mmask16 __U, __m512 __A, __m512 __B)
   13865              : {
   13866              :   return (__m512) __builtin_ia32_mulps512_mask ((__v16sf) __A,
   13867              :                         (__v16sf) __B,
   13868              :                         (__v16sf)
   13869              :                         _mm512_setzero_ps (),
   13870              :                         (__mmask16) __U,
   13871              :                         _MM_FROUND_CUR_DIRECTION);
   13872              : }
   13873              : 
   13874              : extern __inline __m512d
   13875              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13876              : _mm512_div_pd (__m512d __M, __m512d __V)
   13877              : {
   13878              :   return (__m512d) ((__v8df)__M / (__v8df)__V);
   13879              : }
   13880              : 
   13881              : extern __inline __m512d
   13882              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13883              : _mm512_mask_div_pd (__m512d __W, __mmask8 __U, __m512d __M, __m512d __V)
   13884              : {
   13885              :   return (__m512d) __builtin_ia32_divpd512_mask ((__v8df) __M,
   13886              :                          (__v8df) __V,
   13887              :                          (__v8df) __W,
   13888              :                          (__mmask8) __U,
   13889              :                          _MM_FROUND_CUR_DIRECTION);
   13890              : }
   13891              : 
   13892              : extern __inline __m512d
   13893              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13894              : _mm512_maskz_div_pd (__mmask8 __U, __m512d __M, __m512d __V)
   13895              : {
   13896              :   return (__m512d) __builtin_ia32_divpd512_mask ((__v8df) __M,
   13897              :                          (__v8df) __V,
   13898              :                          (__v8df)
   13899              :                          _mm512_setzero_pd (),
   13900              :                          (__mmask8) __U,
   13901              :                          _MM_FROUND_CUR_DIRECTION);
   13902              : }
   13903              : 
   13904              : extern __inline __m512
   13905              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13906              : _mm512_div_ps (__m512 __A, __m512 __B)
   13907              : {
   13908              :   return (__m512) ((__v16sf)__A / (__v16sf)__B);
   13909              : }
   13910              : 
   13911              : extern __inline __m512
   13912              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13913              : _mm512_mask_div_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
   13914              : {
   13915              :   return (__m512) __builtin_ia32_divps512_mask ((__v16sf) __A,
   13916              :                         (__v16sf) __B,
   13917              :                         (__v16sf) __W,
   13918              :                         (__mmask16) __U,
   13919              :                         _MM_FROUND_CUR_DIRECTION);
   13920              : }
   13921              : 
   13922              : extern __inline __m512
   13923              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13924              : _mm512_maskz_div_ps (__mmask16 __U, __m512 __A, __m512 __B)
   13925              : {
   13926              :   return (__m512) __builtin_ia32_divps512_mask ((__v16sf) __A,
   13927              :                         (__v16sf) __B,
   13928              :                         (__v16sf)
   13929              :                         _mm512_setzero_ps (),
   13930              :                         (__mmask16) __U,
   13931              :                         _MM_FROUND_CUR_DIRECTION);
   13932              : }
   13933              : 
   13934              : extern __inline __m512d
   13935              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13936              : _mm512_max_pd (__m512d __A, __m512d __B)
   13937              : {
   13938              :   return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A,
   13939              :                          (__v8df) __B,
   13940              :                          (__v8df)
   13941              :                          _mm512_undefined_pd (),
   13942              :                          (__mmask8) -1,
   13943              :                          _MM_FROUND_CUR_DIRECTION);
   13944              : }
   13945              : 
   13946              : extern __inline __m512d
   13947              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13948              : _mm512_mask_max_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
   13949              : {
   13950              :   return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A,
   13951              :                          (__v8df) __B,
   13952              :                          (__v8df) __W,
   13953              :                          (__mmask8) __U,
   13954              :                          _MM_FROUND_CUR_DIRECTION);
   13955              : }
   13956              : 
   13957              : extern __inline __m512d
   13958              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13959              : _mm512_maskz_max_pd (__mmask8 __U, __m512d __A, __m512d __B)
   13960              : {
   13961              :   return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A,
   13962              :                          (__v8df) __B,
   13963              :                          (__v8df)
   13964              :                          _mm512_setzero_pd (),
   13965              :                          (__mmask8) __U,
   13966              :                          _MM_FROUND_CUR_DIRECTION);
   13967              : }
   13968              : 
   13969              : extern __inline __m512
   13970              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13971              : _mm512_max_ps (__m512 __A, __m512 __B)
   13972              : {
   13973              :   return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A,
   13974              :                         (__v16sf) __B,
   13975              :                         (__v16sf)
   13976              :                         _mm512_undefined_ps (),
   13977              :                         (__mmask16) -1,
   13978              :                         _MM_FROUND_CUR_DIRECTION);
   13979              : }
   13980              : 
   13981              : extern __inline __m512
   13982              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13983              : _mm512_mask_max_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
   13984              : {
   13985              :   return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A,
   13986              :                         (__v16sf) __B,
   13987              :                         (__v16sf) __W,
   13988              :                         (__mmask16) __U,
   13989              :                         _MM_FROUND_CUR_DIRECTION);
   13990              : }
   13991              : 
   13992              : extern __inline __m512
   13993              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   13994              : _mm512_maskz_max_ps (__mmask16 __U, __m512 __A, __m512 __B)
   13995              : {
   13996              :   return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A,
   13997              :                         (__v16sf) __B,
   13998              :                         (__v16sf)
   13999              :                         _mm512_setzero_ps (),
   14000              :                         (__mmask16) __U,
   14001              :                         _MM_FROUND_CUR_DIRECTION);
   14002              : }
   14003              : 
   14004              : extern __inline __m512d
   14005              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14006              : _mm512_min_pd (__m512d __A, __m512d __B)
   14007              : {
   14008              :   return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A,
   14009              :                          (__v8df) __B,
   14010              :                          (__v8df)
   14011              :                          _mm512_undefined_pd (),
   14012              :                          (__mmask8) -1,
   14013              :                          _MM_FROUND_CUR_DIRECTION);
   14014              : }
   14015              : 
   14016              : extern __inline __m512d
   14017              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14018              : _mm512_mask_min_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
   14019              : {
   14020              :   return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A,
   14021              :                          (__v8df) __B,
   14022              :                          (__v8df) __W,
   14023              :                          (__mmask8) __U,
   14024              :                          _MM_FROUND_CUR_DIRECTION);
   14025              : }
   14026              : 
   14027              : extern __inline __m512d
   14028              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14029              : _mm512_maskz_min_pd (__mmask8 __U, __m512d __A, __m512d __B)
   14030              : {
   14031              :   return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A,
   14032              :                          (__v8df) __B,
   14033              :                          (__v8df)
   14034              :                          _mm512_setzero_pd (),
   14035              :                          (__mmask8) __U,
   14036              :                          _MM_FROUND_CUR_DIRECTION);
   14037              : }
   14038              : 
   14039              : extern __inline __m512
   14040              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14041              : _mm512_min_ps (__m512 __A, __m512 __B)
   14042              : {
   14043              :   return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A,
   14044              :                         (__v16sf) __B,
   14045              :                         (__v16sf)
   14046              :                         _mm512_undefined_ps (),
   14047              :                         (__mmask16) -1,
   14048              :                         _MM_FROUND_CUR_DIRECTION);
   14049              : }
   14050              : 
   14051              : extern __inline __m512
   14052              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14053              : _mm512_mask_min_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
   14054              : {
   14055              :   return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A,
   14056              :                         (__v16sf) __B,
   14057              :                         (__v16sf) __W,
   14058              :                         (__mmask16) __U,
   14059              :                         _MM_FROUND_CUR_DIRECTION);
   14060              : }
   14061              : 
   14062              : extern __inline __m512
   14063              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14064              : _mm512_maskz_min_ps (__mmask16 __U, __m512 __A, __m512 __B)
   14065              : {
   14066              :   return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A,
   14067              :                         (__v16sf) __B,
   14068              :                         (__v16sf)
   14069              :                         _mm512_setzero_ps (),
   14070              :                         (__mmask16) __U,
   14071              :                         _MM_FROUND_CUR_DIRECTION);
   14072              : }
   14073              : 
   14074              : extern __inline __m512d
   14075              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14076              : _mm512_scalef_pd (__m512d __A, __m512d __B)
   14077              : {
   14078              :   return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,
   14079              :                             (__v8df) __B,
   14080              :                             (__v8df)
   14081              :                             _mm512_undefined_pd (),
   14082              :                             (__mmask8) -1,
   14083              :                             _MM_FROUND_CUR_DIRECTION);
   14084              : }
   14085              : 
   14086              : extern __inline __m512d
   14087              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14088              : _mm512_mask_scalef_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
   14089              : {
   14090              :   return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,
   14091              :                             (__v8df) __B,
   14092              :                             (__v8df) __W,
   14093              :                             (__mmask8) __U,
   14094              :                             _MM_FROUND_CUR_DIRECTION);
   14095              : }
   14096              : 
   14097              : extern __inline __m512d
   14098              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14099              : _mm512_maskz_scalef_pd (__mmask8 __U, __m512d __A, __m512d __B)
   14100              : {
   14101              :   return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,
   14102              :                             (__v8df) __B,
   14103              :                             (__v8df)
   14104              :                             _mm512_setzero_pd (),
   14105              :                             (__mmask8) __U,
   14106              :                             _MM_FROUND_CUR_DIRECTION);
   14107              : }
   14108              : 
   14109              : extern __inline __m512
   14110              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14111              : _mm512_scalef_ps (__m512 __A, __m512 __B)
   14112              : {
   14113              :   return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,
   14114              :                            (__v16sf) __B,
   14115              :                            (__v16sf)
   14116              :                            _mm512_undefined_ps (),
   14117              :                            (__mmask16) -1,
   14118              :                            _MM_FROUND_CUR_DIRECTION);
   14119              : }
   14120              : 
   14121              : extern __inline __m512
   14122              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14123              : _mm512_mask_scalef_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
   14124              : {
   14125              :   return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,
   14126              :                            (__v16sf) __B,
   14127              :                            (__v16sf) __W,
   14128              :                            (__mmask16) __U,
   14129              :                            _MM_FROUND_CUR_DIRECTION);
   14130              : }
   14131              : 
   14132              : extern __inline __m512
   14133              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14134              : _mm512_maskz_scalef_ps (__mmask16 __U, __m512 __A, __m512 __B)
   14135              : {
   14136              :   return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,
   14137              :                            (__v16sf) __B,
   14138              :                            (__v16sf)
   14139              :                            _mm512_setzero_ps (),
   14140              :                            (__mmask16) __U,
   14141              :                            _MM_FROUND_CUR_DIRECTION);
   14142              : }
   14143              : 
   14144              : extern __inline __m512d
   14145              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14146              : _mm512_fmadd_pd (__m512d __A, __m512d __B, __m512d __C)
   14147              : {
   14148              :   return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A,
   14149              :                             (__v8df) __B,
   14150              :                             (__v8df) __C,
   14151              :                             (__mmask8) -1,
   14152              :                             _MM_FROUND_CUR_DIRECTION);
   14153              : }
   14154              : 
   14155              : extern __inline __m512d
   14156              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14157              : _mm512_mask_fmadd_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
   14158              : {
   14159              :   return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A,
   14160              :                             (__v8df) __B,
   14161              :                             (__v8df) __C,
   14162              :                             (__mmask8) __U,
   14163              :                             _MM_FROUND_CUR_DIRECTION);
   14164              : }
   14165              : 
   14166              : extern __inline __m512d
   14167              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14168              : _mm512_mask3_fmadd_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
   14169              : {
   14170              :   return (__m512d) __builtin_ia32_vfmaddpd512_mask3 ((__v8df) __A,
   14171              :                              (__v8df) __B,
   14172              :                              (__v8df) __C,
   14173              :                              (__mmask8) __U,
   14174              :                              _MM_FROUND_CUR_DIRECTION);
   14175              : }
   14176              : 
   14177              : extern __inline __m512d
   14178              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14179              : _mm512_maskz_fmadd_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
   14180              : {
   14181              :   return (__m512d) __builtin_ia32_vfmaddpd512_maskz ((__v8df) __A,
   14182              :                              (__v8df) __B,
   14183              :                              (__v8df) __C,
   14184              :                              (__mmask8) __U,
   14185              :                              _MM_FROUND_CUR_DIRECTION);
   14186              : }
   14187              : 
   14188              : extern __inline __m512
   14189              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14190              : _mm512_fmadd_ps (__m512 __A, __m512 __B, __m512 __C)
   14191              : {
   14192              :   return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A,
   14193              :                            (__v16sf) __B,
   14194              :                            (__v16sf) __C,
   14195              :                            (__mmask16) -1,
   14196              :                            _MM_FROUND_CUR_DIRECTION);
   14197              : }
   14198              : 
   14199              : extern __inline __m512
   14200              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14201              : _mm512_mask_fmadd_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
   14202              : {
   14203              :   return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A,
   14204              :                            (__v16sf) __B,
   14205              :                            (__v16sf) __C,
   14206              :                            (__mmask16) __U,
   14207              :                            _MM_FROUND_CUR_DIRECTION);
   14208              : }
   14209              : 
   14210              : extern __inline __m512
   14211              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14212              : _mm512_mask3_fmadd_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
   14213              : {
   14214              :   return (__m512) __builtin_ia32_vfmaddps512_mask3 ((__v16sf) __A,
   14215              :                             (__v16sf) __B,
   14216              :                             (__v16sf) __C,
   14217              :                             (__mmask16) __U,
   14218              :                             _MM_FROUND_CUR_DIRECTION);
   14219              : }
   14220              : 
   14221              : extern __inline __m512
   14222              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14223              : _mm512_maskz_fmadd_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
   14224              : {
   14225              :   return (__m512) __builtin_ia32_vfmaddps512_maskz ((__v16sf) __A,
   14226              :                             (__v16sf) __B,
   14227              :                             (__v16sf) __C,
   14228              :                             (__mmask16) __U,
   14229              :                             _MM_FROUND_CUR_DIRECTION);
   14230              : }
   14231              : 
   14232              : extern __inline __m512d
   14233              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14234              : _mm512_fmsub_pd (__m512d __A, __m512d __B, __m512d __C)
   14235              : {
   14236              :   return (__m512d) __builtin_ia32_vfmsubpd512_mask ((__v8df) __A,
   14237              :                             (__v8df) __B,
   14238              :                             (__v8df) __C,
   14239              :                             (__mmask8) -1,
   14240              :                             _MM_FROUND_CUR_DIRECTION);
   14241              : }
   14242              : 
   14243              : extern __inline __m512d
   14244              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14245              : _mm512_mask_fmsub_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
   14246              : {
   14247              :   return (__m512d) __builtin_ia32_vfmsubpd512_mask ((__v8df) __A,
   14248              :                             (__v8df) __B,
   14249              :                             (__v8df) __C,
   14250              :                             (__mmask8) __U,
   14251              :                             _MM_FROUND_CUR_DIRECTION);
   14252              : }
   14253              : 
   14254              : extern __inline __m512d
   14255              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14256              : _mm512_mask3_fmsub_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
   14257              : {
   14258              :   return (__m512d) __builtin_ia32_vfmsubpd512_mask3 ((__v8df) __A,
   14259              :                              (__v8df) __B,
   14260              :                              (__v8df) __C,
   14261              :                              (__mmask8) __U,
   14262              :                              _MM_FROUND_CUR_DIRECTION);
   14263              : }
   14264              : 
   14265              : extern __inline __m512d
   14266              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14267              : _mm512_maskz_fmsub_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
   14268              : {
   14269              :   return (__m512d) __builtin_ia32_vfmsubpd512_maskz ((__v8df) __A,
   14270              :                              (__v8df) __B,
   14271              :                              (__v8df) __C,
   14272              :                              (__mmask8) __U,
   14273              :                              _MM_FROUND_CUR_DIRECTION);
   14274              : }
   14275              : 
   14276              : extern __inline __m512
   14277              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14278              : _mm512_fmsub_ps (__m512 __A, __m512 __B, __m512 __C)
   14279              : {
   14280              :   return (__m512) __builtin_ia32_vfmsubps512_mask ((__v16sf) __A,
   14281              :                            (__v16sf) __B,
   14282              :                            (__v16sf) __C,
   14283              :                            (__mmask16) -1,
   14284              :                            _MM_FROUND_CUR_DIRECTION);
   14285              : }
   14286              : 
   14287              : extern __inline __m512
   14288              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14289              : _mm512_mask_fmsub_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
   14290              : {
   14291              :   return (__m512) __builtin_ia32_vfmsubps512_mask ((__v16sf) __A,
   14292              :                            (__v16sf) __B,
   14293              :                            (__v16sf) __C,
   14294              :                            (__mmask16) __U,
   14295              :                            _MM_FROUND_CUR_DIRECTION);
   14296              : }
   14297              : 
   14298              : extern __inline __m512
   14299              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14300              : _mm512_mask3_fmsub_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
   14301              : {
   14302              :   return (__m512) __builtin_ia32_vfmsubps512_mask3 ((__v16sf) __A,
   14303              :                             (__v16sf) __B,
   14304              :                             (__v16sf) __C,
   14305              :                             (__mmask16) __U,
   14306              :                             _MM_FROUND_CUR_DIRECTION);
   14307              : }
   14308              : 
   14309              : extern __inline __m512
   14310              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14311              : _mm512_maskz_fmsub_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
   14312              : {
   14313              :   return (__m512) __builtin_ia32_vfmsubps512_maskz ((__v16sf) __A,
   14314              :                             (__v16sf) __B,
   14315              :                             (__v16sf) __C,
   14316              :                             (__mmask16) __U,
   14317              :                             _MM_FROUND_CUR_DIRECTION);
   14318              : }
   14319              : 
   14320              : extern __inline __m512d
   14321              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14322              : _mm512_fmaddsub_pd (__m512d __A, __m512d __B, __m512d __C)
   14323              : {
   14324              :   return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
   14325              :                                (__v8df) __B,
   14326              :                                (__v8df) __C,
   14327              :                                (__mmask8) -1,
   14328              :                                _MM_FROUND_CUR_DIRECTION);
   14329              : }
   14330              : 
   14331              : extern __inline __m512d
   14332              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14333              : _mm512_mask_fmaddsub_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
   14334              : {
   14335              :   return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
   14336              :                                (__v8df) __B,
   14337              :                                (__v8df) __C,
   14338              :                                (__mmask8) __U,
   14339              :                                _MM_FROUND_CUR_DIRECTION);
   14340              : }
   14341              : 
   14342              : extern __inline __m512d
   14343              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14344              : _mm512_mask3_fmaddsub_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
   14345              : {
   14346              :   return (__m512d) __builtin_ia32_vfmaddsubpd512_mask3 ((__v8df) __A,
   14347              :                             (__v8df) __B,
   14348              :                             (__v8df) __C,
   14349              :                             (__mmask8) __U,
   14350              :                             _MM_FROUND_CUR_DIRECTION);
   14351              : }
   14352              : 
   14353              : extern __inline __m512d
   14354              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14355              : _mm512_maskz_fmaddsub_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
   14356              : {
   14357              :   return (__m512d) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df) __A,
   14358              :                             (__v8df) __B,
   14359              :                             (__v8df) __C,
   14360              :                             (__mmask8) __U,
   14361              :                             _MM_FROUND_CUR_DIRECTION);
   14362              : }
   14363              : 
   14364              : extern __inline __m512
   14365              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14366              : _mm512_fmaddsub_ps (__m512 __A, __m512 __B, __m512 __C)
   14367              : {
   14368              :   return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
   14369              :                               (__v16sf) __B,
   14370              :                               (__v16sf) __C,
   14371              :                               (__mmask16) -1,
   14372              :                               _MM_FROUND_CUR_DIRECTION);
   14373              : }
   14374              : 
   14375              : extern __inline __m512
   14376              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14377              : _mm512_mask_fmaddsub_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
   14378              : {
   14379              :   return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
   14380              :                               (__v16sf) __B,
   14381              :                               (__v16sf) __C,
   14382              :                               (__mmask16) __U,
   14383              :                               _MM_FROUND_CUR_DIRECTION);
   14384              : }
   14385              : 
   14386              : extern __inline __m512
   14387              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14388              : _mm512_mask3_fmaddsub_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
   14389              : {
   14390              :   return (__m512) __builtin_ia32_vfmaddsubps512_mask3 ((__v16sf) __A,
   14391              :                                (__v16sf) __B,
   14392              :                                (__v16sf) __C,
   14393              :                                (__mmask16) __U,
   14394              :                                _MM_FROUND_CUR_DIRECTION);
   14395              : }
   14396              : 
   14397              : extern __inline __m512
   14398              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14399              : _mm512_maskz_fmaddsub_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
   14400              : {
   14401              :   return (__m512) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf) __A,
   14402              :                                (__v16sf) __B,
   14403              :                                (__v16sf) __C,
   14404              :                                (__mmask16) __U,
   14405              :                                _MM_FROUND_CUR_DIRECTION);
   14406              : }
   14407              : 
   14408              : extern __inline __m512d
   14409              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14410              : _mm512_fmsubadd_pd (__m512d __A, __m512d __B, __m512d __C)
   14411              : {
   14412              :   return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
   14413              :                                (__v8df) __B,
   14414              :                                -(__v8df) __C,
   14415              :                                (__mmask8) -1,
   14416              :                                _MM_FROUND_CUR_DIRECTION);
   14417              : }
   14418              : 
   14419              : extern __inline __m512d
   14420              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14421              : _mm512_mask_fmsubadd_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
   14422              : {
   14423              :   return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
   14424              :                                (__v8df) __B,
   14425              :                                -(__v8df) __C,
   14426              :                                (__mmask8) __U,
   14427              :                                _MM_FROUND_CUR_DIRECTION);
   14428              : }
   14429              : 
   14430              : extern __inline __m512d
   14431              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14432              : _mm512_mask3_fmsubadd_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
   14433              : {
   14434              :   return (__m512d) __builtin_ia32_vfmsubaddpd512_mask3 ((__v8df) __A,
   14435              :                             (__v8df) __B,
   14436              :                             (__v8df) __C,
   14437              :                             (__mmask8) __U,
   14438              :                             _MM_FROUND_CUR_DIRECTION);
   14439              : }
   14440              : 
   14441              : extern __inline __m512d
   14442              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14443              : _mm512_maskz_fmsubadd_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
   14444              : {
   14445              :   return (__m512d) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df) __A,
   14446              :                             (__v8df) __B,
   14447              :                             -(__v8df) __C,
   14448              :                             (__mmask8) __U,
   14449              :                             _MM_FROUND_CUR_DIRECTION);
   14450              : }
   14451              : 
   14452              : extern __inline __m512
   14453              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14454              : _mm512_fmsubadd_ps (__m512 __A, __m512 __B, __m512 __C)
   14455              : {
   14456              :   return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
   14457              :                               (__v16sf) __B,
   14458              :                               -(__v16sf) __C,
   14459              :                               (__mmask16) -1,
   14460              :                               _MM_FROUND_CUR_DIRECTION);
   14461              : }
   14462              : 
   14463              : extern __inline __m512
   14464              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14465              : _mm512_mask_fmsubadd_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
   14466              : {
   14467              :   return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
   14468              :                               (__v16sf) __B,
   14469              :                               -(__v16sf) __C,
   14470              :                               (__mmask16) __U,
   14471              :                               _MM_FROUND_CUR_DIRECTION);
   14472              : }
   14473              : 
   14474              : extern __inline __m512
   14475              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14476              : _mm512_mask3_fmsubadd_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
   14477              : {
   14478              :   return (__m512) __builtin_ia32_vfmsubaddps512_mask3 ((__v16sf) __A,
   14479              :                                (__v16sf) __B,
   14480              :                                (__v16sf) __C,
   14481              :                                (__mmask16) __U,
   14482              :                                _MM_FROUND_CUR_DIRECTION);
   14483              : }
   14484              : 
   14485              : extern __inline __m512
   14486              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14487              : _mm512_maskz_fmsubadd_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
   14488              : {
   14489              :   return (__m512) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf) __A,
   14490              :                                (__v16sf) __B,
   14491              :                                -(__v16sf) __C,
   14492              :                                (__mmask16) __U,
   14493              :                                _MM_FROUND_CUR_DIRECTION);
   14494              : }
   14495              : 
   14496              : extern __inline __m512d
   14497              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14498              : _mm512_fnmadd_pd (__m512d __A, __m512d __B, __m512d __C)
   14499              : {
   14500              :   return (__m512d) __builtin_ia32_vfnmaddpd512_mask ((__v8df) __A,
   14501              :                              (__v8df) __B,
   14502              :                              (__v8df) __C,
   14503              :                              (__mmask8) -1,
   14504              :                              _MM_FROUND_CUR_DIRECTION);
   14505              : }
   14506              : 
   14507              : extern __inline __m512d
   14508              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14509              : _mm512_mask_fnmadd_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
   14510              : {
   14511              :   return (__m512d) __builtin_ia32_vfnmaddpd512_mask ((__v8df) __A,
   14512              :                              (__v8df) __B,
   14513              :                              (__v8df) __C,
   14514              :                              (__mmask8) __U,
   14515              :                              _MM_FROUND_CUR_DIRECTION);
   14516              : }
   14517              : 
   14518              : extern __inline __m512d
   14519              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14520              : _mm512_mask3_fnmadd_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
   14521              : {
   14522              :   return (__m512d) __builtin_ia32_vfnmaddpd512_mask3 ((__v8df) __A,
   14523              :                               (__v8df) __B,
   14524              :                               (__v8df) __C,
   14525              :                               (__mmask8) __U,
   14526              :                               _MM_FROUND_CUR_DIRECTION);
   14527              : }
   14528              : 
   14529              : extern __inline __m512d
   14530              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14531              : _mm512_maskz_fnmadd_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
   14532              : {
   14533              :   return (__m512d) __builtin_ia32_vfnmaddpd512_maskz ((__v8df) __A,
   14534              :                               (__v8df) __B,
   14535              :                               (__v8df) __C,
   14536              :                               (__mmask8) __U,
   14537              :                               _MM_FROUND_CUR_DIRECTION);
   14538              : }
   14539              : 
   14540              : extern __inline __m512
   14541              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14542              : _mm512_fnmadd_ps (__m512 __A, __m512 __B, __m512 __C)
   14543              : {
   14544              :   return (__m512) __builtin_ia32_vfnmaddps512_mask ((__v16sf) __A,
   14545              :                             (__v16sf) __B,
   14546              :                             (__v16sf) __C,
   14547              :                             (__mmask16) -1,
   14548              :                             _MM_FROUND_CUR_DIRECTION);
   14549              : }
   14550              : 
   14551              : extern __inline __m512
   14552              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14553              : _mm512_mask_fnmadd_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
   14554              : {
   14555              :   return (__m512) __builtin_ia32_vfnmaddps512_mask ((__v16sf) __A,
   14556              :                             (__v16sf) __B,
   14557              :                             (__v16sf) __C,
   14558              :                             (__mmask16) __U,
   14559              :                             _MM_FROUND_CUR_DIRECTION);
   14560              : }
   14561              : 
   14562              : extern __inline __m512
   14563              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14564              : _mm512_mask3_fnmadd_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
   14565              : {
   14566              :   return (__m512) __builtin_ia32_vfnmaddps512_mask3 ((__v16sf) __A,
   14567              :                              (__v16sf) __B,
   14568              :                              (__v16sf) __C,
   14569              :                              (__mmask16) __U,
   14570              :                              _MM_FROUND_CUR_DIRECTION);
   14571              : }
   14572              : 
   14573              : extern __inline __m512
   14574              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14575              : _mm512_maskz_fnmadd_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
   14576              : {
   14577              :   return (__m512) __builtin_ia32_vfnmaddps512_maskz ((__v16sf) __A,
   14578              :                              (__v16sf) __B,
   14579              :                              (__v16sf) __C,
   14580              :                              (__mmask16) __U,
   14581              :                              _MM_FROUND_CUR_DIRECTION);
   14582              : }
   14583              : 
   14584              : extern __inline __m512d
   14585              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14586              : _mm512_fnmsub_pd (__m512d __A, __m512d __B, __m512d __C)
   14587              : {
   14588              :   return (__m512d) __builtin_ia32_vfnmsubpd512_mask ((__v8df) __A,
   14589              :                              (__v8df) __B,
   14590              :                              (__v8df) __C,
   14591              :                              (__mmask8) -1,
   14592              :                              _MM_FROUND_CUR_DIRECTION);
   14593              : }
   14594              : 
   14595              : extern __inline __m512d
   14596              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14597              : _mm512_mask_fnmsub_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
   14598              : {
   14599              :   return (__m512d) __builtin_ia32_vfnmsubpd512_mask ((__v8df) __A,
   14600              :                              (__v8df) __B,
   14601              :                              (__v8df) __C,
   14602              :                              (__mmask8) __U,
   14603              :                              _MM_FROUND_CUR_DIRECTION);
   14604              : }
   14605              : 
   14606              : extern __inline __m512d
   14607              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14608              : _mm512_mask3_fnmsub_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
   14609              : {
   14610              :   return (__m512d) __builtin_ia32_vfnmsubpd512_mask3 ((__v8df) __A,
   14611              :                               (__v8df) __B,
   14612              :                               (__v8df) __C,
   14613              :                               (__mmask8) __U,
   14614              :                               _MM_FROUND_CUR_DIRECTION);
   14615              : }
   14616              : 
   14617              : extern __inline __m512d
   14618              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14619              : _mm512_maskz_fnmsub_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
   14620              : {
   14621              :   return (__m512d) __builtin_ia32_vfnmsubpd512_maskz ((__v8df) __A,
   14622              :                               (__v8df) __B,
   14623              :                               (__v8df) __C,
   14624              :                               (__mmask8) __U,
   14625              :                               _MM_FROUND_CUR_DIRECTION);
   14626              : }
   14627              : 
   14628              : extern __inline __m512
   14629              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14630              : _mm512_fnmsub_ps (__m512 __A, __m512 __B, __m512 __C)
   14631              : {
   14632              :   return (__m512) __builtin_ia32_vfnmsubps512_mask ((__v16sf) __A,
   14633              :                             (__v16sf) __B,
   14634              :                             (__v16sf) __C,
   14635              :                             (__mmask16) -1,
   14636              :                             _MM_FROUND_CUR_DIRECTION);
   14637              : }
   14638              : 
   14639              : extern __inline __m512
   14640              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14641              : _mm512_mask_fnmsub_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
   14642              : {
   14643              :   return (__m512) __builtin_ia32_vfnmsubps512_mask ((__v16sf) __A,
   14644              :                             (__v16sf) __B,
   14645              :                             (__v16sf) __C,
   14646              :                             (__mmask16) __U,
   14647              :                             _MM_FROUND_CUR_DIRECTION);
   14648              : }
   14649              : 
   14650              : extern __inline __m512
   14651              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14652              : _mm512_mask3_fnmsub_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
   14653              : {
   14654              :   return (__m512) __builtin_ia32_vfnmsubps512_mask3 ((__v16sf) __A,
   14655              :                              (__v16sf) __B,
   14656              :                              (__v16sf) __C,
   14657              :                              (__mmask16) __U,
   14658              :                              _MM_FROUND_CUR_DIRECTION);
   14659              : }
   14660              : 
   14661              : extern __inline __m512
   14662              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14663              : _mm512_maskz_fnmsub_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
   14664              : {
   14665              :   return (__m512) __builtin_ia32_vfnmsubps512_maskz ((__v16sf) __A,
   14666              :                              (__v16sf) __B,
   14667              :                              (__v16sf) __C,
   14668              :                              (__mmask16) __U,
   14669              :                              _MM_FROUND_CUR_DIRECTION);
   14670              : }
   14671              : 
   14672              : extern __inline __m256i
   14673              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14674              : _mm512_cvttpd_epi32 (__m512d __A)
   14675              : {
   14676              :   return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A,
   14677              :                              (__v8si)
   14678              :                              _mm256_undefined_si256 (),
   14679              :                              (__mmask8) -1,
   14680              :                              _MM_FROUND_CUR_DIRECTION);
   14681              : }
   14682              : 
   14683              : extern __inline __m256i
   14684              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14685              : _mm512_mask_cvttpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A)
   14686              : {
   14687              :   return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A,
   14688              :                              (__v8si) __W,
   14689              :                              (__mmask8) __U,
   14690              :                              _MM_FROUND_CUR_DIRECTION);
   14691              : }
   14692              : 
   14693              : extern __inline __m256i
   14694              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14695              : _mm512_maskz_cvttpd_epi32 (__mmask8 __U, __m512d __A)
   14696              : {
   14697              :   return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A,
   14698              :                              (__v8si)
   14699              :                              _mm256_setzero_si256 (),
   14700              :                              (__mmask8) __U,
   14701              :                              _MM_FROUND_CUR_DIRECTION);
   14702              : }
   14703              : 
   14704              : extern __inline __m256i
   14705              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14706              : _mm512_cvttpd_epu32 (__m512d __A)
   14707              : {
   14708              :   return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,
   14709              :                               (__v8si)
   14710              :                               _mm256_undefined_si256 (),
   14711              :                               (__mmask8) -1,
   14712              :                               _MM_FROUND_CUR_DIRECTION);
   14713              : }
   14714              : 
   14715              : extern __inline __m256i
   14716              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14717              : _mm512_mask_cvttpd_epu32 (__m256i __W, __mmask8 __U, __m512d __A)
   14718              : {
   14719              :   return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,
   14720              :                               (__v8si) __W,
   14721              :                               (__mmask8) __U,
   14722              :                               _MM_FROUND_CUR_DIRECTION);
   14723              : }
   14724              : 
   14725              : extern __inline __m256i
   14726              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14727              : _mm512_maskz_cvttpd_epu32 (__mmask8 __U, __m512d __A)
   14728              : {
   14729              :   return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,
   14730              :                               (__v8si)
   14731              :                               _mm256_setzero_si256 (),
   14732              :                               (__mmask8) __U,
   14733              :                               _MM_FROUND_CUR_DIRECTION);
   14734              : }
   14735              : 
   14736              : extern __inline __m256i
   14737              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14738              : _mm512_cvtpd_epi32 (__m512d __A)
   14739              : {
   14740              :   return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A,
   14741              :                             (__v8si)
   14742              :                             _mm256_undefined_si256 (),
   14743              :                             (__mmask8) -1,
   14744              :                             _MM_FROUND_CUR_DIRECTION);
   14745              : }
   14746              : 
   14747              : extern __inline __m256i
   14748              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14749              : _mm512_mask_cvtpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A)
   14750              : {
   14751              :   return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A,
   14752              :                             (__v8si) __W,
   14753              :                             (__mmask8) __U,
   14754              :                             _MM_FROUND_CUR_DIRECTION);
   14755              : }
   14756              : 
   14757              : extern __inline __m256i
   14758              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14759              : _mm512_maskz_cvtpd_epi32 (__mmask8 __U, __m512d __A)
   14760              : {
   14761              :   return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A,
   14762              :                             (__v8si)
   14763              :                             _mm256_setzero_si256 (),
   14764              :                             (__mmask8) __U,
   14765              :                             _MM_FROUND_CUR_DIRECTION);
   14766              : }
   14767              : 
   14768              : extern __inline __m256i
   14769              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14770              : _mm512_cvtpd_epu32 (__m512d __A)
   14771              : {
   14772              :   return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A,
   14773              :                              (__v8si)
   14774              :                              _mm256_undefined_si256 (),
   14775              :                              (__mmask8) -1,
   14776              :                              _MM_FROUND_CUR_DIRECTION);
   14777              : }
   14778              : 
   14779              : extern __inline __m256i
   14780              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14781              : _mm512_mask_cvtpd_epu32 (__m256i __W, __mmask8 __U, __m512d __A)
   14782              : {
   14783              :   return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A,
   14784              :                              (__v8si) __W,
   14785              :                              (__mmask8) __U,
   14786              :                              _MM_FROUND_CUR_DIRECTION);
   14787              : }
   14788              : 
   14789              : extern __inline __m256i
   14790              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14791              : _mm512_maskz_cvtpd_epu32 (__mmask8 __U, __m512d __A)
   14792              : {
   14793              :   return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A,
   14794              :                              (__v8si)
   14795              :                              _mm256_setzero_si256 (),
   14796              :                              (__mmask8) __U,
   14797              :                              _MM_FROUND_CUR_DIRECTION);
   14798              : }
   14799              : 
   14800              : extern __inline __m512i
   14801              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14802              : _mm512_cvttps_epi32 (__m512 __A)
   14803              : {
   14804              :   return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A,
   14805              :                              (__v16si)
   14806              :                              _mm512_undefined_epi32 (),
   14807              :                              (__mmask16) -1,
   14808              :                              _MM_FROUND_CUR_DIRECTION);
   14809              : }
   14810              : 
   14811              : extern __inline __m512i
   14812              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14813              : _mm512_mask_cvttps_epi32 (__m512i __W, __mmask16 __U, __m512 __A)
   14814              : {
   14815              :   return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A,
   14816              :                              (__v16si) __W,
   14817              :                              (__mmask16) __U,
   14818              :                              _MM_FROUND_CUR_DIRECTION);
   14819              : }
   14820              : 
   14821              : extern __inline __m512i
   14822              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14823              : _mm512_maskz_cvttps_epi32 (__mmask16 __U, __m512 __A)
   14824              : {
   14825              :   return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A,
   14826              :                              (__v16si)
   14827              :                              _mm512_setzero_si512 (),
   14828              :                              (__mmask16) __U,
   14829              :                              _MM_FROUND_CUR_DIRECTION);
   14830              : }
   14831              : 
   14832              : extern __inline __m512i
   14833              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14834              : _mm512_cvttps_epu32 (__m512 __A)
   14835              : {
   14836              :   return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A,
   14837              :                               (__v16si)
   14838              :                               _mm512_undefined_epi32 (),
   14839              :                               (__mmask16) -1,
   14840              :                               _MM_FROUND_CUR_DIRECTION);
   14841              : }
   14842              : 
   14843              : extern __inline __m512i
   14844              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14845              : _mm512_mask_cvttps_epu32 (__m512i __W, __mmask16 __U, __m512 __A)
   14846              : {
   14847              :   return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A,
   14848              :                               (__v16si) __W,
   14849              :                               (__mmask16) __U,
   14850              :                               _MM_FROUND_CUR_DIRECTION);
   14851              : }
   14852              : 
   14853              : extern __inline __m512i
   14854              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14855              : _mm512_maskz_cvttps_epu32 (__mmask16 __U, __m512 __A)
   14856              : {
   14857              :   return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A,
   14858              :                               (__v16si)
   14859              :                               _mm512_setzero_si512 (),
   14860              :                               (__mmask16) __U,
   14861              :                               _MM_FROUND_CUR_DIRECTION);
   14862              : }
   14863              : 
   14864              : extern __inline __m512i
   14865              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14866              : _mm512_cvtps_epi32 (__m512 __A)
   14867              : {
   14868              :   return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A,
   14869              :                             (__v16si)
   14870              :                             _mm512_undefined_epi32 (),
   14871              :                             (__mmask16) -1,
   14872              :                             _MM_FROUND_CUR_DIRECTION);
   14873              : }
   14874              : 
   14875              : extern __inline __m512i
   14876              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14877              : _mm512_mask_cvtps_epi32 (__m512i __W, __mmask16 __U, __m512 __A)
   14878              : {
   14879              :   return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A,
   14880              :                             (__v16si) __W,
   14881              :                             (__mmask16) __U,
   14882              :                             _MM_FROUND_CUR_DIRECTION);
   14883              : }
   14884              : 
   14885              : extern __inline __m512i
   14886              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14887              : _mm512_maskz_cvtps_epi32 (__mmask16 __U, __m512 __A)
   14888              : {
   14889              :   return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A,
   14890              :                             (__v16si)
   14891              :                             _mm512_setzero_si512 (),
   14892              :                             (__mmask16) __U,
   14893              :                             _MM_FROUND_CUR_DIRECTION);
   14894              : }
   14895              : 
   14896              : extern __inline __m512i
   14897              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14898              : _mm512_cvtps_epu32 (__m512 __A)
   14899              : {
   14900              :   return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,
   14901              :                              (__v16si)
   14902              :                              _mm512_undefined_epi32 (),
   14903              :                              (__mmask16) -1,
   14904              :                              _MM_FROUND_CUR_DIRECTION);
   14905              : }
   14906              : 
   14907              : extern __inline __m512i
   14908              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14909              : _mm512_mask_cvtps_epu32 (__m512i __W, __mmask16 __U, __m512 __A)
   14910              : {
   14911              :   return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,
   14912              :                              (__v16si) __W,
   14913              :                              (__mmask16) __U,
   14914              :                              _MM_FROUND_CUR_DIRECTION);
   14915              : }
   14916              : 
   14917              : extern __inline __m512i
   14918              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14919              : _mm512_maskz_cvtps_epu32 (__mmask16 __U, __m512 __A)
   14920              : {
   14921              :   return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,
   14922              :                              (__v16si)
   14923              :                              _mm512_setzero_si512 (),
   14924              :                              (__mmask16) __U,
   14925              :                              _MM_FROUND_CUR_DIRECTION);
   14926              : }
   14927              : 
   14928              : extern __inline double
   14929              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14930              : _mm512_cvtsd_f64 (__m512d __A)
   14931              : {
   14932              :   return __A[0];
   14933              : }
   14934              : 
   14935              : extern __inline float
   14936              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14937              : _mm512_cvtss_f32 (__m512 __A)
   14938              : {
   14939              :   return __A[0];
   14940              : }
   14941              : 
   14942              : extern __inline __m512
   14943              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14944              : _mm512_cvtepi32_ps (__m512i __A)
   14945              : {
   14946              :   return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A,
   14947              :                            (__v16sf)
   14948              :                            _mm512_undefined_ps (),
   14949              :                            (__mmask16) -1,
   14950              :                            _MM_FROUND_CUR_DIRECTION);
   14951              : }
   14952              : 
   14953              : extern __inline __m512
   14954              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14955              : _mm512_mask_cvtepi32_ps (__m512 __W, __mmask16 __U, __m512i __A)
   14956              : {
   14957              :   return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A,
   14958              :                            (__v16sf) __W,
   14959              :                            (__mmask16) __U,
   14960              :                            _MM_FROUND_CUR_DIRECTION);
   14961              : }
   14962              : 
   14963              : extern __inline __m512
   14964              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14965              : _mm512_maskz_cvtepi32_ps (__mmask16 __U, __m512i __A)
   14966              : {
   14967              :   return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A,
   14968              :                            (__v16sf)
   14969              :                            _mm512_setzero_ps (),
   14970              :                            (__mmask16) __U,
   14971              :                            _MM_FROUND_CUR_DIRECTION);
   14972              : }
   14973              : 
   14974              : extern __inline __m512
   14975              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14976              : _mm512_cvtepu32_ps (__m512i __A)
   14977              : {
   14978              :   return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A,
   14979              :                             (__v16sf)
   14980              :                             _mm512_undefined_ps (),
   14981              :                             (__mmask16) -1,
   14982              :                             _MM_FROUND_CUR_DIRECTION);
   14983              : }
   14984              : 
   14985              : extern __inline __m512
   14986              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14987              : _mm512_mask_cvtepu32_ps (__m512 __W, __mmask16 __U, __m512i __A)
   14988              : {
   14989              :   return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A,
   14990              :                             (__v16sf) __W,
   14991              :                             (__mmask16) __U,
   14992              :                             _MM_FROUND_CUR_DIRECTION);
   14993              : }
   14994              : 
   14995              : extern __inline __m512
   14996              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   14997              : _mm512_maskz_cvtepu32_ps (__mmask16 __U, __m512i __A)
   14998              : {
   14999              :   return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A,
   15000              :                             (__v16sf)
   15001              :                             _mm512_setzero_ps (),
   15002              :                             (__mmask16) __U,
   15003              :                             _MM_FROUND_CUR_DIRECTION);
   15004              : }
   15005              : 
   15006              : #ifdef __OPTIMIZE__
   15007              : extern __inline __m512d
   15008              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15009              : _mm512_fixupimm_pd (__m512d __A, __m512d __B, __m512i __C, const int __imm)
   15010              : {
   15011              :   return (__m512d) __builtin_ia32_fixupimmpd512_mask ((__v8df) __A,
   15012              :                               (__v8df) __B,
   15013              :                               (__v8di) __C,
   15014              :                               __imm,
   15015              :                               (__mmask8) -1,
   15016              :                               _MM_FROUND_CUR_DIRECTION);
   15017              : }
   15018              : 
   15019              : extern __inline __m512d
   15020              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15021              : _mm512_mask_fixupimm_pd (__m512d __A, __mmask8 __U, __m512d __B,
   15022              :              __m512i __C, const int __imm)
   15023              : {
   15024              :   return (__m512d) __builtin_ia32_fixupimmpd512_mask ((__v8df) __A,
   15025              :                               (__v8df) __B,
   15026              :                               (__v8di) __C,
   15027              :                               __imm,
   15028              :                               (__mmask8) __U,
   15029              :                               _MM_FROUND_CUR_DIRECTION);
   15030              : }
   15031              : 
   15032              : extern __inline __m512d
   15033              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15034              : _mm512_maskz_fixupimm_pd (__mmask8 __U, __m512d __A, __m512d __B,
   15035              :               __m512i __C, const int __imm)
   15036              : {
   15037              :   return (__m512d) __builtin_ia32_fixupimmpd512_maskz ((__v8df) __A,
   15038              :                                (__v8df) __B,
   15039              :                                (__v8di) __C,
   15040              :                                __imm,
   15041              :                                (__mmask8) __U,
   15042              :                                _MM_FROUND_CUR_DIRECTION);
   15043              : }
   15044              : 
   15045              : extern __inline __m512
   15046              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15047              : _mm512_fixupimm_ps (__m512 __A, __m512 __B, __m512i __C, const int __imm)
   15048              : {
   15049              :   return (__m512) __builtin_ia32_fixupimmps512_mask ((__v16sf) __A,
   15050              :                              (__v16sf) __B,
   15051              :                              (__v16si) __C,
   15052              :                              __imm,
   15053              :                              (__mmask16) -1,
   15054              :                              _MM_FROUND_CUR_DIRECTION);
   15055              : }
   15056              : 
   15057              : extern __inline __m512
   15058              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15059              : _mm512_mask_fixupimm_ps (__m512 __A, __mmask16 __U, __m512 __B,
   15060              :              __m512i __C, const int __imm)
   15061              : {
   15062              :   return (__m512) __builtin_ia32_fixupimmps512_mask ((__v16sf) __A,
   15063              :                              (__v16sf) __B,
   15064              :                              (__v16si) __C,
   15065              :                              __imm,
   15066              :                              (__mmask16) __U,
   15067              :                              _MM_FROUND_CUR_DIRECTION);
   15068              : }
   15069              : 
   15070              : extern __inline __m512
   15071              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15072              : _mm512_maskz_fixupimm_ps (__mmask16 __U, __m512 __A, __m512 __B,
   15073              :               __m512i __C, const int __imm)
   15074              : {
   15075              :   return (__m512) __builtin_ia32_fixupimmps512_maskz ((__v16sf) __A,
   15076              :                               (__v16sf) __B,
   15077              :                               (__v16si) __C,
   15078              :                               __imm,
   15079              :                               (__mmask16) __U,
   15080              :                               _MM_FROUND_CUR_DIRECTION);
   15081              : }
   15082              : 
   15083              : #else
   15084              : #define _mm512_fixupimm_pd(X, Y, Z, C)                  \
   15085              :   ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X),    \
   15086              :       (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C),     \
   15087              :       (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
   15088              : 
   15089              : #define _mm512_mask_fixupimm_pd(X, U, Y, Z, C)                          \
   15090              :   ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X),    \
   15091              :       (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C),             \
   15092              :       (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
   15093              : 
   15094              : #define _mm512_maskz_fixupimm_pd(U, X, Y, Z, C)                         \
   15095              :   ((__m512d)__builtin_ia32_fixupimmpd512_maskz ((__v8df)(__m512d)(X),   \
   15096              :       (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C),             \
   15097              :       (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
   15098              : 
   15099              : #define _mm512_fixupimm_ps(X, Y, Z, C)                  \
   15100              :   ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X), \
   15101              :     (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C),      \
   15102              :     (__mmask16)(-1), _MM_FROUND_CUR_DIRECTION))
   15103              : 
   15104              : #define _mm512_mask_fixupimm_ps(X, U, Y, Z, C)                          \
   15105              :   ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X),     \
   15106              :     (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C),              \
   15107              :     (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
   15108              : 
   15109              : #define _mm512_maskz_fixupimm_ps(U, X, Y, Z, C)                         \
   15110              :   ((__m512)__builtin_ia32_fixupimmps512_maskz ((__v16sf)(__m512)(X),    \
   15111              :     (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C),              \
   15112              :     (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
   15113              : 
   15114              : #endif
   15115              : 
   15116              : extern __inline int
   15117              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15118              : _mm512_cvtsi512_si32 (__m512i __A)
   15119              : {
   15120              :   __v16si __B = (__v16si) __A;
   15121              :   return __B[0];
   15122              : }
   15123              : 
   15124              : extern __inline __m512d
   15125              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15126              : _mm512_cvtps_pd (__m256 __A)
   15127              : {
   15128              :   return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
   15129              :                             (__v8df)
   15130              :                             _mm512_undefined_pd (),
   15131              :                             (__mmask8) -1,
   15132              :                             _MM_FROUND_CUR_DIRECTION);
   15133              : }
   15134              : 
   15135              : extern __inline __m512d
   15136              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15137              : _mm512_mask_cvtps_pd (__m512d __W, __mmask8 __U, __m256 __A)
   15138              : {
   15139              :   return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
   15140              :                             (__v8df) __W,
   15141              :                             (__mmask8) __U,
   15142              :                             _MM_FROUND_CUR_DIRECTION);
   15143              : }
   15144              : 
   15145              : extern __inline __m512d
   15146              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15147              : _mm512_maskz_cvtps_pd (__mmask8 __U, __m256 __A)
   15148              : {
   15149              :   return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
   15150              :                             (__v8df)
   15151              :                             _mm512_setzero_pd (),
   15152              :                             (__mmask8) __U,
   15153              :                             _MM_FROUND_CUR_DIRECTION);
   15154              : }
   15155              : 
   15156              : extern __inline __m512
   15157              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15158              : _mm512_cvtph_ps (__m256i __A)
   15159              : {
   15160              :   return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,
   15161              :                             (__v16sf)
   15162              :                             _mm512_undefined_ps (),
   15163              :                             (__mmask16) -1,
   15164              :                             _MM_FROUND_CUR_DIRECTION);
   15165              : }
   15166              : 
   15167              : extern __inline __m512
   15168              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15169              : _mm512_mask_cvtph_ps (__m512 __W, __mmask16 __U, __m256i __A)
   15170              : {
   15171              :   return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,
   15172              :                             (__v16sf) __W,
   15173              :                             (__mmask16) __U,
   15174              :                             _MM_FROUND_CUR_DIRECTION);
   15175              : }
   15176              : 
   15177              : extern __inline __m512
   15178              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15179              : _mm512_maskz_cvtph_ps (__mmask16 __U, __m256i __A)
   15180              : {
   15181              :   return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,
   15182              :                             (__v16sf)
   15183              :                             _mm512_setzero_ps (),
   15184              :                             (__mmask16) __U,
   15185              :                             _MM_FROUND_CUR_DIRECTION);
   15186              : }
   15187              : 
   15188              : extern __inline __m256
   15189              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15190              : _mm512_cvtpd_ps (__m512d __A)
   15191              : {
   15192              :   return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,
   15193              :                            (__v8sf)
   15194              :                            _mm256_undefined_ps (),
   15195              :                            (__mmask8) -1,
   15196              :                            _MM_FROUND_CUR_DIRECTION);
   15197              : }
   15198              : 
   15199              : extern __inline __m256
   15200              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15201              : _mm512_mask_cvtpd_ps (__m256 __W, __mmask8 __U, __m512d __A)
   15202              : {
   15203              :   return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,
   15204              :                            (__v8sf) __W,
   15205              :                            (__mmask8) __U,
   15206              :                            _MM_FROUND_CUR_DIRECTION);
   15207              : }
   15208              : 
   15209              : extern __inline __m256
   15210              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15211              : _mm512_maskz_cvtpd_ps (__mmask8 __U, __m512d __A)
   15212              : {
   15213              :   return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,
   15214              :                            (__v8sf)
   15215              :                            _mm256_setzero_ps (),
   15216              :                            (__mmask8) __U,
   15217              :                            _MM_FROUND_CUR_DIRECTION);
   15218              : }
   15219              : 
   15220              : #ifdef __OPTIMIZE__
   15221              : extern __inline __m512
   15222              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15223              : _mm512_getexp_ps (__m512 __A)
   15224              : {
   15225              :   return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
   15226              :                            (__v16sf)
   15227              :                            _mm512_undefined_ps (),
   15228              :                            (__mmask16) -1,
   15229              :                            _MM_FROUND_CUR_DIRECTION);
   15230              : }
   15231              : 
   15232              : extern __inline __m512
   15233              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15234              : _mm512_mask_getexp_ps (__m512 __W, __mmask16 __U, __m512 __A)
   15235              : {
   15236              :   return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
   15237              :                            (__v16sf) __W,
   15238              :                            (__mmask16) __U,
   15239              :                            _MM_FROUND_CUR_DIRECTION);
   15240              : }
   15241              : 
   15242              : extern __inline __m512
   15243              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15244              : _mm512_maskz_getexp_ps (__mmask16 __U, __m512 __A)
   15245              : {
   15246              :   return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
   15247              :                            (__v16sf)
   15248              :                            _mm512_setzero_ps (),
   15249              :                            (__mmask16) __U,
   15250              :                            _MM_FROUND_CUR_DIRECTION);
   15251              : }
   15252              : 
   15253              : extern __inline __m512d
   15254              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15255              : _mm512_getexp_pd (__m512d __A)
   15256              : {
   15257              :   return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
   15258              :                             (__v8df)
   15259              :                             _mm512_undefined_pd (),
   15260              :                             (__mmask8) -1,
   15261              :                             _MM_FROUND_CUR_DIRECTION);
   15262              : }
   15263              : 
   15264              : extern __inline __m512d
   15265              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15266              : _mm512_mask_getexp_pd (__m512d __W, __mmask8 __U, __m512d __A)
   15267              : {
   15268              :   return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
   15269              :                             (__v8df) __W,
   15270              :                             (__mmask8) __U,
   15271              :                             _MM_FROUND_CUR_DIRECTION);
   15272              : }
   15273              : 
   15274              : extern __inline __m512d
   15275              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15276              : _mm512_maskz_getexp_pd (__mmask8 __U, __m512d __A)
   15277              : {
   15278              :   return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
   15279              :                             (__v8df)
   15280              :                             _mm512_setzero_pd (),
   15281              :                             (__mmask8) __U,
   15282              :                             _MM_FROUND_CUR_DIRECTION);
   15283              : }
   15284              : 
   15285              : extern __inline __m512d
   15286              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15287              : _mm512_getmant_pd (__m512d __A, _MM_MANTISSA_NORM_ENUM __B,
   15288              :            _MM_MANTISSA_SIGN_ENUM __C)
   15289              : {
   15290              :   return (__m512d) __builtin_ia32_getmantpd512_mask ((__v8df) __A,
   15291              :                              (__C << 2) | __B,
   15292              :                              _mm512_undefined_pd (),
   15293              :                              (__mmask8) -1,
   15294              :                              _MM_FROUND_CUR_DIRECTION);
   15295              : }
   15296              : 
   15297              : extern __inline __m512d
   15298              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15299              : _mm512_mask_getmant_pd (__m512d __W, __mmask8 __U, __m512d __A,
   15300              :             _MM_MANTISSA_NORM_ENUM __B, _MM_MANTISSA_SIGN_ENUM __C)
   15301              : {
   15302              :   return (__m512d) __builtin_ia32_getmantpd512_mask ((__v8df) __A,
   15303              :                              (__C << 2) | __B,
   15304              :                              (__v8df) __W, __U,
   15305              :                              _MM_FROUND_CUR_DIRECTION);
   15306              : }
   15307              : 
   15308              : extern __inline __m512d
   15309              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15310              : _mm512_maskz_getmant_pd (__mmask8 __U, __m512d __A,
   15311              :              _MM_MANTISSA_NORM_ENUM __B, _MM_MANTISSA_SIGN_ENUM __C)
   15312              : {
   15313              :   return (__m512d) __builtin_ia32_getmantpd512_mask ((__v8df) __A,
   15314              :                              (__C << 2) | __B,
   15315              :                              (__v8df)
   15316              :                              _mm512_setzero_pd (),
   15317              :                              __U,
   15318              :                              _MM_FROUND_CUR_DIRECTION);
   15319              : }
   15320              : 
   15321              : extern __inline __m512
   15322              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15323              : _mm512_getmant_ps (__m512 __A, _MM_MANTISSA_NORM_ENUM __B,
   15324              :            _MM_MANTISSA_SIGN_ENUM __C)
   15325              : {
   15326              :   return (__m512) __builtin_ia32_getmantps512_mask ((__v16sf) __A,
   15327              :                             (__C << 2) | __B,
   15328              :                             _mm512_undefined_ps (),
   15329              :                             (__mmask16) -1,
   15330              :                             _MM_FROUND_CUR_DIRECTION);
   15331              : }
   15332              : 
   15333              : extern __inline __m512
   15334              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15335              : _mm512_mask_getmant_ps (__m512 __W, __mmask16 __U, __m512 __A,
   15336              :             _MM_MANTISSA_NORM_ENUM __B, _MM_MANTISSA_SIGN_ENUM __C)
   15337              : {
   15338              :   return (__m512) __builtin_ia32_getmantps512_mask ((__v16sf) __A,
   15339              :                             (__C << 2) | __B,
   15340              :                             (__v16sf) __W, __U,
   15341              :                             _MM_FROUND_CUR_DIRECTION);
   15342              : }
   15343              : 
   15344              : extern __inline __m512
   15345              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15346              : _mm512_maskz_getmant_ps (__mmask16 __U, __m512 __A,
   15347              :              _MM_MANTISSA_NORM_ENUM __B, _MM_MANTISSA_SIGN_ENUM __C)
   15348              : {
   15349              :   return (__m512) __builtin_ia32_getmantps512_mask ((__v16sf) __A,
   15350              :                             (__C << 2) | __B,
   15351              :                             (__v16sf)
   15352              :                             _mm512_setzero_ps (),
   15353              :                             __U,
   15354              :                             _MM_FROUND_CUR_DIRECTION);
   15355              : }
   15356              : 
   15357              : #else
   15358              : #define _mm512_getmant_pd(X, B, C)                                                  \
   15359              :   ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X),                 \
   15360              :                                               (int)(((C)<<2) | (B)),                \
   15361              :                                               (__v8df)_mm512_undefined_pd(),        \
   15362              :                                               (__mmask8)-1,\
   15363              :                           _MM_FROUND_CUR_DIRECTION))
   15364              : 
   15365              : #define _mm512_mask_getmant_pd(W, U, X, B, C)                                       \
   15366              :   ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X),                 \
   15367              :                                               (int)(((C)<<2) | (B)),                \
   15368              :                                               (__v8df)(__m512d)(W),                 \
   15369              :                                               (__mmask8)(U),\
   15370              :                           _MM_FROUND_CUR_DIRECTION))
   15371              : 
   15372              : #define _mm512_maskz_getmant_pd(U, X, B, C)                                         \
   15373              :   ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X),                 \
   15374              :                                               (int)(((C)<<2) | (B)),                \
   15375              :                                               (__v8df)_mm512_setzero_pd(),          \
   15376              :                                               (__mmask8)(U),\
   15377              :                           _MM_FROUND_CUR_DIRECTION))
   15378              : #define _mm512_getmant_ps(X, B, C)                                                  \
   15379              :   ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X),                  \
   15380              :                                              (int)(((C)<<2) | (B)),                 \
   15381              :                                              (__v16sf)_mm512_undefined_ps(),        \
   15382              :                                              (__mmask16)-1,\
   15383              :                          _MM_FROUND_CUR_DIRECTION))
   15384              : 
   15385              : #define _mm512_mask_getmant_ps(W, U, X, B, C)                                       \
   15386              :   ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X),                  \
   15387              :                                              (int)(((C)<<2) | (B)),                 \
   15388              :                                              (__v16sf)(__m512)(W),                  \
   15389              :                                              (__mmask16)(U),\
   15390              :                          _MM_FROUND_CUR_DIRECTION))
   15391              : 
   15392              : #define _mm512_maskz_getmant_ps(U, X, B, C)                                         \
   15393              :   ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X),                  \
   15394              :                                              (int)(((C)<<2) | (B)),                 \
   15395              :                                              (__v16sf)_mm512_setzero_ps(),          \
   15396              :                                              (__mmask16)(U),\
   15397              :                          _MM_FROUND_CUR_DIRECTION))
   15398              : #define _mm512_getexp_ps(A)                     \
   15399              :   ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A),        \
   15400              :   (__v16sf)_mm512_undefined_ps(), (__mmask16)-1, _MM_FROUND_CUR_DIRECTION))
   15401              : 
   15402              : #define _mm512_mask_getexp_ps(W, U, A)                  \
   15403              :   ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A),        \
   15404              :   (__v16sf)(__m512)(W), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
   15405              : 
   15406              : #define _mm512_maskz_getexp_ps(U, A)                    \
   15407              :   ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A),        \
   15408              :   (__v16sf)_mm512_setzero_ps(), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
   15409              : 
   15410              : #define _mm512_getexp_pd(A)                     \
   15411              :   ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A),       \
   15412              :   (__v8df)_mm512_undefined_pd(), (__mmask8)-1, _MM_FROUND_CUR_DIRECTION))
   15413              : 
   15414              : #define _mm512_mask_getexp_pd(W, U, A)                  \
   15415              :   ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A),       \
   15416              :   (__v8df)(__m512d)(W), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
   15417              : 
   15418              : #define _mm512_maskz_getexp_pd(U, A)                    \
   15419              :   ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A),       \
   15420              :   (__v8df)_mm512_setzero_pd(), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
   15421              : #endif
   15422              : 
   15423              : #ifdef __OPTIMIZE__
   15424              : extern __inline __m512
   15425              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15426              : _mm512_roundscale_ps (__m512 __A, const int __imm)
   15427              : {
   15428              :   return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A, __imm,
   15429              :                           (__v16sf)
   15430              :                           _mm512_undefined_ps (),
   15431              :                           -1,
   15432              :                           _MM_FROUND_CUR_DIRECTION);
   15433              : }
   15434              : 
   15435              : extern __inline __m512
   15436              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15437              : _mm512_mask_roundscale_ps (__m512 __A, __mmask16 __B, __m512 __C,
   15438              :                const int __imm)
   15439              : {
   15440              :   return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __C, __imm,
   15441              :                           (__v16sf) __A,
   15442              :                           (__mmask16) __B,
   15443              :                           _MM_FROUND_CUR_DIRECTION);
   15444              : }
   15445              : 
   15446              : extern __inline __m512
   15447              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15448              : _mm512_maskz_roundscale_ps (__mmask16 __A, __m512 __B, const int __imm)
   15449              : {
   15450              :   return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __B,
   15451              :                           __imm,
   15452              :                           (__v16sf)
   15453              :                           _mm512_setzero_ps (),
   15454              :                           (__mmask16) __A,
   15455              :                           _MM_FROUND_CUR_DIRECTION);
   15456              : }
   15457              : 
   15458              : extern __inline __m512d
   15459              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15460              : _mm512_roundscale_pd (__m512d __A, const int __imm)
   15461              : {
   15462              :   return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A, __imm,
   15463              :                            (__v8df)
   15464              :                            _mm512_undefined_pd (),
   15465              :                            -1,
   15466              :                            _MM_FROUND_CUR_DIRECTION);
   15467              : }
   15468              : 
   15469              : extern __inline __m512d
   15470              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15471              : _mm512_mask_roundscale_pd (__m512d __A, __mmask8 __B, __m512d __C,
   15472              :                const int __imm)
   15473              : {
   15474              :   return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __C, __imm,
   15475              :                            (__v8df) __A,
   15476              :                            (__mmask8) __B,
   15477              :                            _MM_FROUND_CUR_DIRECTION);
   15478              : }
   15479              : 
   15480              : extern __inline __m512d
   15481              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15482              : _mm512_maskz_roundscale_pd (__mmask8 __A, __m512d __B, const int __imm)
   15483              : {
   15484              :   return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __B,
   15485              :                            __imm,
   15486              :                            (__v8df)
   15487              :                            _mm512_setzero_pd (),
   15488              :                            (__mmask8) __A,
   15489              :                            _MM_FROUND_CUR_DIRECTION);
   15490              : }
   15491              : 
   15492              : #else
   15493              : #define _mm512_roundscale_ps(A, B) \
   15494              :   ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(A), (int)(B),\
   15495              :     (__v16sf)_mm512_undefined_ps(), (__mmask16)(-1), _MM_FROUND_CUR_DIRECTION))
   15496              : #define _mm512_mask_roundscale_ps(A, B, C, D)               \
   15497              :   ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(C),   \
   15498              :                         (int)(D),           \
   15499              :                         (__v16sf)(__m512)(A),   \
   15500              :                         (__mmask16)(B), _MM_FROUND_CUR_DIRECTION))
   15501              : #define _mm512_maskz_roundscale_ps(A, B, C)             \
   15502              :   ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(B),   \
   15503              :                         (int)(C),           \
   15504              :                         (__v16sf)_mm512_setzero_ps(),\
   15505              :                         (__mmask16)(A), _MM_FROUND_CUR_DIRECTION))
   15506              : #define _mm512_roundscale_pd(A, B) \
   15507              :   ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(A), (int)(B),\
   15508              :     (__v8df)_mm512_undefined_pd(), (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
   15509              : #define _mm512_mask_roundscale_pd(A, B, C, D)               \
   15510              :   ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(C),  \
   15511              :                          (int)(D),          \
   15512              :                          (__v8df)(__m512d)(A),  \
   15513              :                          (__mmask8)(B), _MM_FROUND_CUR_DIRECTION))
   15514              : #define _mm512_maskz_roundscale_pd(A, B, C)             \
   15515              :   ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(B),  \
   15516              :                          (int)(C),          \
   15517              :                          (__v8df)_mm512_setzero_pd(),\
   15518              :                          (__mmask8)(A), _MM_FROUND_CUR_DIRECTION))
   15519              : #endif
   15520              : 
   15521              : #ifdef __OPTIMIZE__
   15522              : extern __inline __mmask8
   15523              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15524              : _mm512_cmp_pd_mask (__m512d __X, __m512d __Y, const int __P)
   15525              : {
   15526              :   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
   15527              :                           (__v8df) __Y, __P,
   15528              :                           (__mmask8) -1,
   15529              :                           _MM_FROUND_CUR_DIRECTION);
   15530              : }
   15531              : 
   15532              : extern __inline __mmask16
   15533              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15534              : _mm512_cmp_ps_mask (__m512 __X, __m512 __Y, const int __P)
   15535              : {
   15536              :   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
   15537              :                            (__v16sf) __Y, __P,
   15538              :                            (__mmask16) -1,
   15539              :                            _MM_FROUND_CUR_DIRECTION);
   15540              : }
   15541              : 
   15542              : extern __inline __mmask16
   15543              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15544              : _mm512_mask_cmp_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y, const int __P)
   15545              : {
   15546              :   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
   15547              :                            (__v16sf) __Y, __P,
   15548              :                            (__mmask16) __U,
   15549              :                            _MM_FROUND_CUR_DIRECTION);
   15550              : }
   15551              : 
   15552              : extern __inline __mmask8
   15553              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15554              : _mm512_mask_cmp_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y, const int __P)
   15555              : {
   15556              :   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
   15557              :                           (__v8df) __Y, __P,
   15558              :                           (__mmask8) __U,
   15559              :                           _MM_FROUND_CUR_DIRECTION);
   15560              : }
   15561              : 
   15562              : #else
   15563              : #define _mm512_cmp_pd_mask(X, Y, P)                 \
   15564              :   ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X),   \
   15565              :                         (__v8df)(__m512d)(Y), (int)(P),\
   15566              :                         (__mmask8)-1,_MM_FROUND_CUR_DIRECTION))
   15567              : 
   15568              : #define _mm512_cmp_ps_mask(X, Y, P)                 \
   15569              :   ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X),  \
   15570              :                          (__v16sf)(__m512)(Y), (int)(P),\
   15571              :                          (__mmask16)-1,_MM_FROUND_CUR_DIRECTION))
   15572              : 
   15573              : #define _mm512_mask_cmp_pd_mask(M, X, Y, P)                 \
   15574              :   ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X),   \
   15575              :                         (__v8df)(__m512d)(Y), (int)(P),\
   15576              :                         (__mmask8)(M), _MM_FROUND_CUR_DIRECTION))
   15577              : 
   15578              : #define _mm512_mask_cmp_ps_mask(M, X, Y, P)                 \
   15579              :   ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X),  \
   15580              :                          (__v16sf)(__m512)(Y), (int)(P),\
   15581              :                          (__mmask16)(M),_MM_FROUND_CUR_DIRECTION))
   15582              : 
   15583              : #endif
   15584              : 
   15585              : extern __inline __mmask8
   15586              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15587              : _mm512_cmpeq_pd_mask (__m512d __X, __m512d __Y)
   15588              : {
   15589              :   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
   15590              :                           (__v8df) __Y, _CMP_EQ_OQ,
   15591              :                           (__mmask8) -1,
   15592              :                           _MM_FROUND_CUR_DIRECTION);
   15593              : }
   15594              : 
   15595              : extern __inline __mmask8
   15596              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15597              : _mm512_mask_cmpeq_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
   15598              : {
   15599              :   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
   15600              :                           (__v8df) __Y, _CMP_EQ_OQ,
   15601              :                           (__mmask8) __U,
   15602              :                           _MM_FROUND_CUR_DIRECTION);
   15603              : }
   15604              : 
   15605              : extern __inline __mmask8
   15606              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15607              : _mm512_cmplt_pd_mask (__m512d __X, __m512d __Y)
   15608              : {
   15609              :   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
   15610              :                           (__v8df) __Y, _CMP_LT_OS,
   15611              :                           (__mmask8) -1,
   15612              :                           _MM_FROUND_CUR_DIRECTION);
   15613              : }
   15614              : 
   15615              : extern __inline __mmask8
   15616              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15617              : _mm512_mask_cmplt_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
   15618              : {
   15619              :   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
   15620              :                           (__v8df) __Y, _CMP_LT_OS,
   15621              :                           (__mmask8) __U,
   15622              :                           _MM_FROUND_CUR_DIRECTION);
   15623              : }
   15624              : 
   15625              : extern __inline __mmask8
   15626              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15627              : _mm512_cmple_pd_mask (__m512d __X, __m512d __Y)
   15628              : {
   15629              :   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
   15630              :                           (__v8df) __Y, _CMP_LE_OS,
   15631              :                           (__mmask8) -1,
   15632              :                           _MM_FROUND_CUR_DIRECTION);
   15633              : }
   15634              : 
   15635              : extern __inline __mmask8
   15636              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15637              : _mm512_mask_cmple_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
   15638              : {
   15639              :   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
   15640              :                           (__v8df) __Y, _CMP_LE_OS,
   15641              :                           (__mmask8) __U,
   15642              :                           _MM_FROUND_CUR_DIRECTION);
   15643              : }
   15644              : 
   15645              : extern __inline __mmask8
   15646              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15647              : _mm512_cmpunord_pd_mask (__m512d __X, __m512d __Y)
   15648              : {
   15649              :   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
   15650              :                           (__v8df) __Y, _CMP_UNORD_Q,
   15651              :                           (__mmask8) -1,
   15652              :                           _MM_FROUND_CUR_DIRECTION);
   15653              : }
   15654              : 
   15655              : extern __inline __mmask8
   15656              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15657              : _mm512_mask_cmpunord_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
   15658              : {
   15659              :   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
   15660              :                           (__v8df) __Y, _CMP_UNORD_Q,
   15661              :                           (__mmask8) __U,
   15662              :                           _MM_FROUND_CUR_DIRECTION);
   15663              : }
   15664              : 
   15665              : extern __inline __mmask8
   15666              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15667              : _mm512_cmpneq_pd_mask (__m512d __X, __m512d __Y)
   15668              : {
   15669              :   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
   15670              :                           (__v8df) __Y, _CMP_NEQ_UQ,
   15671              :                           (__mmask8) -1,
   15672              :                           _MM_FROUND_CUR_DIRECTION);
   15673              : }
   15674              : 
   15675              : extern __inline __mmask8
   15676              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15677              : _mm512_mask_cmpneq_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
   15678              : {
   15679              :   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
   15680              :                           (__v8df) __Y, _CMP_NEQ_UQ,
   15681              :                           (__mmask8) __U,
   15682              :                           _MM_FROUND_CUR_DIRECTION);
   15683              : }
   15684              : 
   15685              : extern __inline __mmask8
   15686              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15687              : _mm512_cmpnlt_pd_mask (__m512d __X, __m512d __Y)
   15688              : {
   15689              :   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
   15690              :                           (__v8df) __Y, _CMP_NLT_US,
   15691              :                           (__mmask8) -1,
   15692              :                           _MM_FROUND_CUR_DIRECTION);
   15693              : }
   15694              : 
   15695              : extern __inline __mmask8
   15696              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15697              : _mm512_mask_cmpnlt_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
   15698              : {
   15699              :   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
   15700              :                           (__v8df) __Y, _CMP_NLT_US,
   15701              :                           (__mmask8) __U,
   15702              :                           _MM_FROUND_CUR_DIRECTION);
   15703              : }
   15704              : 
   15705              : extern __inline __mmask8
   15706              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15707              : _mm512_cmpnle_pd_mask (__m512d __X, __m512d __Y)
   15708              : {
   15709              :   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
   15710              :                           (__v8df) __Y, _CMP_NLE_US,
   15711              :                           (__mmask8) -1,
   15712              :                           _MM_FROUND_CUR_DIRECTION);
   15713              : }
   15714              : 
   15715              : extern __inline __mmask8
   15716              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15717              : _mm512_mask_cmpnle_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
   15718              : {
   15719              :   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
   15720              :                           (__v8df) __Y, _CMP_NLE_US,
   15721              :                           (__mmask8) __U,
   15722              :                           _MM_FROUND_CUR_DIRECTION);
   15723              : }
   15724              : 
   15725              : extern __inline __mmask8
   15726              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15727              : _mm512_cmpord_pd_mask (__m512d __X, __m512d __Y)
   15728              : {
   15729              :   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
   15730              :                           (__v8df) __Y, _CMP_ORD_Q,
   15731              :                           (__mmask8) -1,
   15732              :                           _MM_FROUND_CUR_DIRECTION);
   15733              : }
   15734              : 
   15735              : extern __inline __mmask8
   15736              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15737              : _mm512_mask_cmpord_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
   15738              : {
   15739              :   return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
   15740              :                           (__v8df) __Y, _CMP_ORD_Q,
   15741              :                           (__mmask8) __U,
   15742              :                           _MM_FROUND_CUR_DIRECTION);
   15743              : }
   15744              : 
   15745              : extern __inline __mmask16
   15746              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15747              : _mm512_cmpeq_ps_mask (__m512 __X, __m512 __Y)
   15748              : {
   15749              :   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
   15750              :                            (__v16sf) __Y, _CMP_EQ_OQ,
   15751              :                            (__mmask16) -1,
   15752              :                            _MM_FROUND_CUR_DIRECTION);
   15753              : }
   15754              : 
   15755              : extern __inline __mmask16
   15756              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15757              : _mm512_mask_cmpeq_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
   15758              : {
   15759              :    return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
   15760              :                            (__v16sf) __Y, _CMP_EQ_OQ,
   15761              :                            (__mmask16) __U,
   15762              :                            _MM_FROUND_CUR_DIRECTION);
   15763              : }
   15764              : 
   15765              : extern __inline __mmask16
   15766              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15767              : _mm512_cmplt_ps_mask (__m512 __X, __m512 __Y)
   15768              : {
   15769              :   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
   15770              :                            (__v16sf) __Y, _CMP_LT_OS,
   15771              :                            (__mmask16) -1,
   15772              :                            _MM_FROUND_CUR_DIRECTION);
   15773              : }
   15774              : 
   15775              : extern __inline __mmask16
   15776              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15777              : _mm512_mask_cmplt_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
   15778              : {
   15779              :    return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
   15780              :                            (__v16sf) __Y, _CMP_LT_OS,
   15781              :                            (__mmask16) __U,
   15782              :                            _MM_FROUND_CUR_DIRECTION);
   15783              : }
   15784              : 
   15785              : extern __inline __mmask16
   15786              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15787              : _mm512_cmple_ps_mask (__m512 __X, __m512 __Y)
   15788              : {
   15789              :   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
   15790              :                            (__v16sf) __Y, _CMP_LE_OS,
   15791              :                            (__mmask16) -1,
   15792              :                            _MM_FROUND_CUR_DIRECTION);
   15793              : }
   15794              : 
   15795              : extern __inline __mmask16
   15796              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15797              : _mm512_mask_cmple_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
   15798              : {
   15799              :    return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
   15800              :                            (__v16sf) __Y, _CMP_LE_OS,
   15801              :                            (__mmask16) __U,
   15802              :                            _MM_FROUND_CUR_DIRECTION);
   15803              : }
   15804              : 
   15805              : extern __inline __mmask16
   15806              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15807              : _mm512_cmpunord_ps_mask (__m512 __X, __m512 __Y)
   15808              : {
   15809              :   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
   15810              :                            (__v16sf) __Y, _CMP_UNORD_Q,
   15811              :                            (__mmask16) -1,
   15812              :                            _MM_FROUND_CUR_DIRECTION);
   15813              : }
   15814              : 
   15815              : extern __inline __mmask16
   15816              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15817              : _mm512_mask_cmpunord_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
   15818              : {
   15819              :    return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
   15820              :                            (__v16sf) __Y, _CMP_UNORD_Q,
   15821              :                            (__mmask16) __U,
   15822              :                            _MM_FROUND_CUR_DIRECTION);
   15823              : }
   15824              : 
   15825              : extern __inline __mmask16
   15826              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15827              : _mm512_cmpneq_ps_mask (__m512 __X, __m512 __Y)
   15828              : {
   15829              :   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
   15830              :                            (__v16sf) __Y, _CMP_NEQ_UQ,
   15831              :                            (__mmask16) -1,
   15832              :                            _MM_FROUND_CUR_DIRECTION);
   15833              : }
   15834              : 
   15835              : extern __inline __mmask16
   15836              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15837              : _mm512_mask_cmpneq_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
   15838              : {
   15839              :    return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
   15840              :                            (__v16sf) __Y, _CMP_NEQ_UQ,
   15841              :                            (__mmask16) __U,
   15842              :                            _MM_FROUND_CUR_DIRECTION);
   15843              : }
   15844              : 
   15845              : extern __inline __mmask16
   15846              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15847              : _mm512_cmpnlt_ps_mask (__m512 __X, __m512 __Y)
   15848              : {
   15849              :   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
   15850              :                            (__v16sf) __Y, _CMP_NLT_US,
   15851              :                            (__mmask16) -1,
   15852              :                            _MM_FROUND_CUR_DIRECTION);
   15853              : }
   15854              : 
   15855              : extern __inline __mmask16
   15856              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15857              : _mm512_mask_cmpnlt_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
   15858              : {
   15859              :    return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
   15860              :                            (__v16sf) __Y, _CMP_NLT_US,
   15861              :                            (__mmask16) __U,
   15862              :                            _MM_FROUND_CUR_DIRECTION);
   15863              : }
   15864              : 
   15865              : extern __inline __mmask16
   15866              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15867              : _mm512_cmpnle_ps_mask (__m512 __X, __m512 __Y)
   15868              : {
   15869              :   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
   15870              :                            (__v16sf) __Y, _CMP_NLE_US,
   15871              :                            (__mmask16) -1,
   15872              :                            _MM_FROUND_CUR_DIRECTION);
   15873              : }
   15874              : 
   15875              : extern __inline __mmask16
   15876              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15877              : _mm512_mask_cmpnle_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
   15878              : {
   15879              :    return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
   15880              :                            (__v16sf) __Y, _CMP_NLE_US,
   15881              :                            (__mmask16) __U,
   15882              :                            _MM_FROUND_CUR_DIRECTION);
   15883              : }
   15884              : 
   15885              : extern __inline __mmask16
   15886              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15887              : _mm512_cmpord_ps_mask (__m512 __X, __m512 __Y)
   15888              : {
   15889              :   return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
   15890              :                            (__v16sf) __Y, _CMP_ORD_Q,
   15891              :                            (__mmask16) -1,
   15892              :                            _MM_FROUND_CUR_DIRECTION);
   15893              : }
   15894              : 
   15895              : extern __inline __mmask16
   15896              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15897              : _mm512_mask_cmpord_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
   15898              : {
   15899              :    return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
   15900              :                            (__v16sf) __Y, _CMP_ORD_Q,
   15901              :                            (__mmask16) __U,
   15902              :                            _MM_FROUND_CUR_DIRECTION);
   15903              : }
   15904              : 
   15905              : extern __inline __mmask16
   15906              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15907              : _mm512_kmov (__mmask16 __A)
   15908              : {
   15909              :   return __builtin_ia32_kmovw (__A);
   15910              : }
   15911              : 
   15912              : extern __inline __m512
   15913              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15914              : _mm512_castpd_ps (__m512d __A)
   15915              : {
   15916              :   return (__m512) (__A);
   15917              : }
   15918              : 
   15919              : extern __inline __m512i
   15920              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15921              : _mm512_castpd_si512 (__m512d __A)
   15922              : {
   15923              :   return (__m512i) (__A);
   15924              : }
   15925              : 
   15926              : extern __inline __m512d
   15927              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15928              : _mm512_castps_pd (__m512 __A)
   15929              : {
   15930              :   return (__m512d) (__A);
   15931              : }
   15932              : 
   15933              : extern __inline __m512i
   15934              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15935              : _mm512_castps_si512 (__m512 __A)
   15936              : {
   15937              :   return (__m512i) (__A);
   15938              : }
   15939              : 
   15940              : extern __inline __m512
   15941              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15942              : _mm512_castsi512_ps (__m512i __A)
   15943              : {
   15944              :   return (__m512) (__A);
   15945              : }
   15946              : 
   15947              : extern __inline __m512d
   15948              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15949              : _mm512_castsi512_pd (__m512i __A)
   15950              : {
   15951              :   return (__m512d) (__A);
   15952              : }
   15953              : 
   15954              : extern __inline __m128d
   15955              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15956              : _mm512_castpd512_pd128 (__m512d __A)
   15957              : {
   15958              :   return (__m128d)_mm512_extractf32x4_ps((__m512)__A, 0);
   15959              : }
   15960              : 
   15961              : extern __inline __m128
   15962              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15963              : _mm512_castps512_ps128 (__m512 __A)
   15964              : {
   15965              :   return _mm512_extractf32x4_ps(__A, 0);
   15966              : }
   15967              : 
   15968              : extern __inline __m128i
   15969              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15970              : _mm512_castsi512_si128 (__m512i __A)
   15971              : {
   15972            0 :   return (__m128i)_mm512_extracti32x4_epi32((__m512i)__A, 0);
   15973              : }
   15974              : 
   15975              : extern __inline __m256d
   15976              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15977              : _mm512_castpd512_pd256 (__m512d __A)
   15978              : {
   15979              :   return _mm512_extractf64x4_pd(__A, 0);
   15980              : }
   15981              : 
   15982              : extern __inline __m256
   15983              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15984              : _mm512_castps512_ps256 (__m512 __A)
   15985              : {
   15986              :   return (__m256)_mm512_extractf64x4_pd((__m512d)__A, 0);
   15987              : }
   15988              : 
   15989              : extern __inline __m256i
   15990              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15991              : _mm512_castsi512_si256 (__m512i __A)
   15992              : {
   15993              :   return (__m256i)_mm512_extractf64x4_pd((__m512d)__A, 0);
   15994              : }
   15995              : 
   15996              : extern __inline __m512d
   15997              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   15998              : _mm512_castpd128_pd512 (__m128d __A)
   15999              : {
   16000              :   return (__m512d) __builtin_ia32_pd512_pd((__m128d)__A);
   16001              : }
   16002              : 
   16003              : extern __inline __m512
   16004              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16005              : _mm512_castps128_ps512 (__m128 __A)
   16006              : {
   16007              :   return (__m512) __builtin_ia32_ps512_ps((__m128)__A);
   16008              : }
   16009              : 
   16010              : extern __inline __m512i
   16011              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16012              : _mm512_castsi128_si512 (__m128i __A)
   16013              : {
   16014              :   return (__m512i) __builtin_ia32_si512_si((__v4si)__A);
   16015              : }
   16016              : 
   16017              : extern __inline __m512d
   16018              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16019              : _mm512_castpd256_pd512 (__m256d __A)
   16020              : {
   16021              :   return __builtin_ia32_pd512_256pd (__A);
   16022              : }
   16023              : 
   16024              : extern __inline __m512
   16025              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16026              : _mm512_castps256_ps512 (__m256 __A)
   16027              : {
   16028              :   return __builtin_ia32_ps512_256ps (__A);
   16029              : }
   16030              : 
   16031              : extern __inline __m512i
   16032              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16033              : _mm512_castsi256_si512 (__m256i __A)
   16034              : {
   16035              :   return (__m512i)__builtin_ia32_si512_256si ((__v8si)__A);
   16036              : }
   16037              : 
   16038              : extern __inline __m512d
   16039              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16040              : _mm512_zextpd128_pd512 (__m128d __A)
   16041              : {
   16042              :   return (__m512d) _mm512_insertf32x4 (_mm512_setzero_ps (), (__m128) __A, 0);
   16043              : }
   16044              : 
   16045              : extern __inline __m512
   16046              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16047              : _mm512_zextps128_ps512 (__m128 __A)
   16048              : {
   16049              :   return _mm512_insertf32x4 (_mm512_setzero_ps (), __A, 0);
   16050              : }
   16051              : 
   16052              : extern __inline __m512i
   16053              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16054              : _mm512_zextsi128_si512 (__m128i __A)
   16055              : {
   16056            0 :   return _mm512_inserti32x4 (_mm512_setzero_si512 (), __A, 0);
   16057              : }
   16058              : 
   16059              : extern __inline __m512d
   16060              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16061              : _mm512_zextpd256_pd512 (__m256d __A)
   16062              : {
   16063              :   return _mm512_insertf64x4 (_mm512_setzero_pd (), __A, 0);
   16064              : }
   16065              : 
   16066              : extern __inline __m512
   16067              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16068              : _mm512_zextps256_ps512 (__m256 __A)
   16069              : {
   16070              :   return (__m512) _mm512_insertf64x4 (_mm512_setzero_pd (), (__m256d) __A, 0);
   16071              : }
   16072              : 
   16073              : extern __inline __m512i
   16074              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16075              : _mm512_zextsi256_si512 (__m256i __A)
   16076              : {
   16077              :   return _mm512_inserti64x4 (_mm512_setzero_si512 (), __A, 0);
   16078              : }
   16079              : 
   16080              : extern __inline __mmask16
   16081              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16082              : _mm512_cmpeq_epu32_mask (__m512i __A, __m512i __B)
   16083              : {
   16084              :   return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __A,
   16085              :                              (__v16si) __B, 0,
   16086              :                              (__mmask16) -1);
   16087              : }
   16088              : 
   16089              : extern __inline __mmask16
   16090              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16091              : _mm512_mask_cmpeq_epu32_mask (__mmask16 __U, __m512i __A, __m512i __B)
   16092              : {
   16093              :   return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __A,
   16094              :                              (__v16si) __B, 0, __U);
   16095              : }
   16096              : 
   16097              : extern __inline __mmask8
   16098              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16099              : _mm512_mask_cmpeq_epu64_mask (__mmask8 __U, __m512i __A, __m512i __B)
   16100              : {
   16101              :   return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __A,
   16102              :                             (__v8di) __B, 0, __U);
   16103              : }
   16104              : 
   16105              : extern __inline __mmask8
   16106              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16107              : _mm512_cmpeq_epu64_mask (__m512i __A, __m512i __B)
   16108              : {
   16109              :   return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __A,
   16110              :                             (__v8di) __B, 0,
   16111              :                             (__mmask8) -1);
   16112              : }
   16113              : 
   16114              : extern __inline __mmask16
   16115              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16116              : _mm512_cmpgt_epu32_mask (__m512i __A, __m512i __B)
   16117              : {
   16118              :   return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __A,
   16119              :                              (__v16si) __B, 6,
   16120              :                              (__mmask16) -1);
   16121              : }
   16122              : 
   16123              : extern __inline __mmask16
   16124              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16125              : _mm512_mask_cmpgt_epu32_mask (__mmask16 __U, __m512i __A, __m512i __B)
   16126              : {
   16127              :   return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __A,
   16128              :                              (__v16si) __B, 6,  __U);
   16129              : }
   16130              : 
   16131              : extern __inline __mmask8
   16132              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16133              : _mm512_mask_cmpgt_epu64_mask (__mmask8 __U, __m512i __A, __m512i __B)
   16134              : {
   16135              :   return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __A,
   16136              :                             (__v8di) __B, 6, __U);
   16137              : }
   16138              : 
   16139              : extern __inline __mmask8
   16140              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16141              : _mm512_cmpgt_epu64_mask (__m512i __A, __m512i __B)
   16142              : {
   16143              :   return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __A,
   16144              :                             (__v8di) __B, 6,
   16145              :                             (__mmask8) -1);
   16146              : }
   16147              : 
   16148              : #undef __MM512_REDUCE_OP
   16149              : #define __MM512_REDUCE_OP(op) \
   16150              :   __v8si __T1 = (__v8si) _mm512_extracti64x4_epi64 (__A, 1);        \
   16151              :   __v8si __T2 = (__v8si) _mm512_extracti64x4_epi64 (__A, 0);        \
   16152              :   __m256i __T3 = (__m256i) (__T1 op __T2);              \
   16153              :   __v4si __T4 = (__v4si) _mm256_extracti128_si256 (__T3, 1);        \
   16154              :   __v4si __T5 = (__v4si) _mm256_extracti128_si256 (__T3, 0);        \
   16155              :   __v4si __T6 = __T4 op __T5;                       \
   16156              :   __v4si __T7 = __builtin_shuffle (__T6, (__v4si) { 2, 3, 0, 1 });  \
   16157              :   __v4si __T8 = __T6 op __T7;                       \
   16158              :   return __T8[0] op __T8[1]
   16159              : 
   16160              : extern __inline int
   16161              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16162              : _mm512_reduce_add_epi32 (__m512i __A)
   16163              : {
   16164              :   __MM512_REDUCE_OP (+);
   16165              : }
   16166              : 
   16167              : extern __inline int
   16168              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16169              : _mm512_reduce_mul_epi32 (__m512i __A)
   16170              : {
   16171              :   __MM512_REDUCE_OP (*);
   16172              : }
   16173              : 
   16174              : extern __inline int
   16175              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16176              : _mm512_reduce_and_epi32 (__m512i __A)
   16177              : {
   16178              :   __MM512_REDUCE_OP (&);
   16179              : }
   16180              : 
   16181              : extern __inline int
   16182              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16183              : _mm512_reduce_or_epi32 (__m512i __A)
   16184              : {
   16185              :   __MM512_REDUCE_OP (|);
   16186              : }
   16187              : 
   16188              : extern __inline int
   16189              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16190              : _mm512_mask_reduce_add_epi32 (__mmask16 __U, __m512i __A)
   16191              : {
   16192              :   __A = _mm512_maskz_mov_epi32 (__U, __A);
   16193              :   __MM512_REDUCE_OP (+);
   16194              : }
   16195              : 
   16196              : extern __inline int
   16197              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16198              : _mm512_mask_reduce_mul_epi32 (__mmask16 __U, __m512i __A)
   16199              : {
   16200              :   __A = _mm512_mask_mov_epi32 (_mm512_set1_epi32 (1), __U, __A);
   16201              :   __MM512_REDUCE_OP (*);
   16202              : }
   16203              : 
   16204              : extern __inline int
   16205              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16206              : _mm512_mask_reduce_and_epi32 (__mmask16 __U, __m512i __A)
   16207              : {
   16208              :   __A = _mm512_mask_mov_epi32 (_mm512_set1_epi32 (~0), __U, __A);
   16209              :   __MM512_REDUCE_OP (&);
   16210              : }
   16211              : 
   16212              : extern __inline int
   16213              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16214              : _mm512_mask_reduce_or_epi32 (__mmask16 __U, __m512i __A)
   16215              : {
   16216              :   __A = _mm512_maskz_mov_epi32 (__U, __A);
   16217              :   __MM512_REDUCE_OP (|);
   16218              : }
   16219              : 
   16220              : #undef __MM512_REDUCE_OP
   16221              : #define __MM512_REDUCE_OP(op) \
   16222              :   __m256i __T1 = (__m256i) _mm512_extracti64x4_epi64 (__A, 1);      \
   16223              :   __m256i __T2 = (__m256i) _mm512_extracti64x4_epi64 (__A, 0);      \
   16224              :   __m256i __T3 = _mm256_##op (__T1, __T2);              \
   16225              :   __m128i __T4 = (__m128i) _mm256_extracti128_si256 (__T3, 1);      \
   16226              :   __m128i __T5 = (__m128i) _mm256_extracti128_si256 (__T3, 0);      \
   16227              :   __m128i __T6 = _mm_##op (__T4, __T5);                 \
   16228              :   __m128i __T7 = (__m128i) __builtin_shuffle ((__v4si) __T6,        \
   16229              :                           (__v4si) { 2, 3, 0, 1 }); \
   16230              :   __m128i __T8 = _mm_##op (__T6, __T7);                 \
   16231              :   __m128i __T9 = (__m128i) __builtin_shuffle ((__v4si) __T8,        \
   16232              :                           (__v4si) { 1, 0, 1, 0 }); \
   16233              :   __v4si __T10 = (__v4si) _mm_##op (__T8, __T9);            \
   16234              :   return __T10[0]
   16235              : 
   16236              : extern __inline int
   16237              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16238              : _mm512_reduce_min_epi32 (__m512i __A)
   16239              : {
   16240              :   __MM512_REDUCE_OP (min_epi32);
   16241              : }
   16242              : 
   16243              : extern __inline int
   16244              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16245              : _mm512_reduce_max_epi32 (__m512i __A)
   16246              : {
   16247              :   __MM512_REDUCE_OP (max_epi32);
   16248              : }
   16249              : 
   16250              : extern __inline unsigned int
   16251              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16252              : _mm512_reduce_min_epu32 (__m512i __A)
   16253              : {
   16254              :   __MM512_REDUCE_OP (min_epu32);
   16255              : }
   16256              : 
   16257              : extern __inline unsigned int
   16258              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16259              : _mm512_reduce_max_epu32 (__m512i __A)
   16260              : {
   16261              :   __MM512_REDUCE_OP (max_epu32);
   16262              : }
   16263              : 
   16264              : extern __inline int
   16265              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16266              : _mm512_mask_reduce_min_epi32 (__mmask16 __U, __m512i __A)
   16267              : {
   16268              :   __A = _mm512_mask_mov_epi32 (_mm512_set1_epi32 (__INT_MAX__), __U, __A);
   16269              :   __MM512_REDUCE_OP (min_epi32);
   16270              : }
   16271              : 
   16272              : extern __inline int
   16273              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16274              : _mm512_mask_reduce_max_epi32 (__mmask16 __U, __m512i __A)
   16275              : {
   16276              :   __A = _mm512_mask_mov_epi32 (_mm512_set1_epi32 (-__INT_MAX__ - 1), __U, __A);
   16277              :   __MM512_REDUCE_OP (max_epi32);
   16278              : }
   16279              : 
   16280              : extern __inline unsigned int
   16281              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16282              : _mm512_mask_reduce_min_epu32 (__mmask16 __U, __m512i __A)
   16283              : {
   16284              :   __A = _mm512_mask_mov_epi32 (_mm512_set1_epi32 (~0), __U, __A);
   16285              :   __MM512_REDUCE_OP (min_epu32);
   16286              : }
   16287              : 
   16288              : extern __inline unsigned int
   16289              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16290              : _mm512_mask_reduce_max_epu32 (__mmask16 __U, __m512i __A)
   16291              : {
   16292              :   __A = _mm512_maskz_mov_epi32 (__U, __A);
   16293              :   __MM512_REDUCE_OP (max_epu32);
   16294              : }
   16295              : 
   16296              : #undef __MM512_REDUCE_OP
   16297              : #define __MM512_REDUCE_OP(op) \
   16298              :   __m256 __T1 = (__m256) _mm512_extractf64x4_pd ((__m512d) __A, 1); \
   16299              :   __m256 __T2 = (__m256) _mm512_extractf64x4_pd ((__m512d) __A, 0); \
   16300              :   __m256 __T3 = __T1 op __T2;                       \
   16301              :   __m128 __T4 = _mm256_extractf128_ps (__T3, 1);            \
   16302              :   __m128 __T5 = _mm256_extractf128_ps (__T3, 0);            \
   16303              :   __m128 __T6 = __T4 op __T5;                       \
   16304              :   __m128 __T7 = __builtin_shuffle (__T6, (__v4si) { 2, 3, 0, 1 });  \
   16305              :   __m128 __T8 = __T6 op __T7;                       \
   16306              :   return __T8[0] op __T8[1]
   16307              : 
   16308              : extern __inline float
   16309              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16310              : _mm512_reduce_add_ps (__m512 __A)
   16311              : {
   16312              :   __MM512_REDUCE_OP (+);
   16313              : }
   16314              : 
   16315              : extern __inline float
   16316              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16317              : _mm512_reduce_mul_ps (__m512 __A)
   16318              : {
   16319              :   __MM512_REDUCE_OP (*);
   16320              : }
   16321              : 
   16322              : extern __inline float
   16323              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16324              : _mm512_mask_reduce_add_ps (__mmask16 __U, __m512 __A)
   16325              : {
   16326              :   __A = _mm512_maskz_mov_ps (__U, __A);
   16327              :   __MM512_REDUCE_OP (+);
   16328              : }
   16329              : 
   16330              : extern __inline float
   16331              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16332              : _mm512_mask_reduce_mul_ps (__mmask16 __U, __m512 __A)
   16333              : {
   16334              :   __A = _mm512_mask_mov_ps (_mm512_set1_ps (1.0f), __U, __A);
   16335              :   __MM512_REDUCE_OP (*);
   16336              : }
   16337              : 
   16338              : #undef __MM512_REDUCE_OP
   16339              : #define __MM512_REDUCE_OP(op) \
   16340              :   __m256 __T1 = (__m256) _mm512_extractf64x4_pd ((__m512d) __A, 1); \
   16341              :   __m256 __T2 = (__m256) _mm512_extractf64x4_pd ((__m512d) __A, 0); \
   16342              :   __m256 __T3 = _mm256_##op (__T1, __T2);               \
   16343              :   __m128 __T4 = _mm256_extractf128_ps (__T3, 1);            \
   16344              :   __m128 __T5 = _mm256_extractf128_ps (__T3, 0);            \
   16345              :   __m128 __T6 = _mm_##op (__T4, __T5);                  \
   16346              :   __m128 __T7 = __builtin_shuffle (__T6, (__v4si) { 2, 3, 0, 1 });  \
   16347              :   __m128 __T8 = _mm_##op (__T6, __T7);                  \
   16348              :   __m128 __T9 = __builtin_shuffle (__T8, (__v4si) { 1, 0, 1, 0 });  \
   16349              :   __m128 __T10 = _mm_##op (__T8, __T9);                 \
   16350              :   return __T10[0]
   16351              : 
   16352              : extern __inline float
   16353              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16354              : _mm512_reduce_min_ps (__m512 __A)
   16355              : {
   16356              :   __MM512_REDUCE_OP (min_ps);
   16357              : }
   16358              : 
   16359              : extern __inline float
   16360              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16361              : _mm512_reduce_max_ps (__m512 __A)
   16362              : {
   16363              :   __MM512_REDUCE_OP (max_ps);
   16364              : }
   16365              : 
   16366              : extern __inline float
   16367              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16368              : _mm512_mask_reduce_min_ps (__mmask16 __U, __m512 __A)
   16369              : {
   16370              :   __A = _mm512_mask_mov_ps (_mm512_set1_ps (__builtin_inff ()), __U, __A);
   16371              :   __MM512_REDUCE_OP (min_ps);
   16372              : }
   16373              : 
   16374              : extern __inline float
   16375              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16376              : _mm512_mask_reduce_max_ps (__mmask16 __U, __m512 __A)
   16377              : {
   16378              :   __A = _mm512_mask_mov_ps (_mm512_set1_ps (-__builtin_inff ()), __U, __A);
   16379              :   __MM512_REDUCE_OP (max_ps);
   16380              : }
   16381              : 
   16382              : #undef __MM512_REDUCE_OP
   16383              : #define __MM512_REDUCE_OP(op) \
   16384              :   __v4di __T1 = (__v4di) _mm512_extracti64x4_epi64 (__A, 1);        \
   16385              :   __v4di __T2 = (__v4di) _mm512_extracti64x4_epi64 (__A, 0);        \
   16386              :   __m256i __T3 = (__m256i) (__T1 op __T2);              \
   16387              :   __v2di __T4 = (__v2di) _mm256_extracti128_si256 (__T3, 1);        \
   16388              :   __v2di __T5 = (__v2di) _mm256_extracti128_si256 (__T3, 0);        \
   16389              :   __v2di __T6 = __T4 op __T5;                       \
   16390              :   return __T6[0] op __T6[1]
   16391              : 
   16392              : extern __inline long long
   16393              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16394              : _mm512_reduce_add_epi64 (__m512i __A)
   16395              : {
   16396            0 :   __MM512_REDUCE_OP (+);
   16397              : }
   16398              : 
   16399              : extern __inline long long
   16400              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16401              : _mm512_reduce_mul_epi64 (__m512i __A)
   16402              : {
   16403              :   __MM512_REDUCE_OP (*);
   16404              : }
   16405              : 
   16406              : extern __inline long long
   16407              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16408              : _mm512_reduce_and_epi64 (__m512i __A)
   16409              : {
   16410              :   __MM512_REDUCE_OP (&);
   16411              : }
   16412              : 
   16413              : extern __inline long long
   16414              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16415              : _mm512_reduce_or_epi64 (__m512i __A)
   16416              : {
   16417              :   __MM512_REDUCE_OP (|);
   16418              : }
   16419              : 
   16420              : extern __inline long long
   16421              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16422              : _mm512_mask_reduce_add_epi64 (__mmask8 __U, __m512i __A)
   16423              : {
   16424              :   __A = _mm512_maskz_mov_epi64 (__U, __A);
   16425              :   __MM512_REDUCE_OP (+);
   16426              : }
   16427              : 
   16428              : extern __inline long long
   16429              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16430              : _mm512_mask_reduce_mul_epi64 (__mmask8 __U, __m512i __A)
   16431              : {
   16432              :   __A = _mm512_mask_mov_epi64 (_mm512_set1_epi64 (1LL), __U, __A);
   16433              :   __MM512_REDUCE_OP (*);
   16434              : }
   16435              : 
   16436              : extern __inline long long
   16437              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16438              : _mm512_mask_reduce_and_epi64 (__mmask8 __U, __m512i __A)
   16439              : {
   16440              :   __A = _mm512_mask_mov_epi64 (_mm512_set1_epi64 (~0LL), __U, __A);
   16441              :   __MM512_REDUCE_OP (&);
   16442              : }
   16443              : 
   16444              : extern __inline long long
   16445              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16446              : _mm512_mask_reduce_or_epi64 (__mmask8 __U, __m512i __A)
   16447              : {
   16448              :   __A = _mm512_maskz_mov_epi64 (__U, __A);
   16449              :   __MM512_REDUCE_OP (|);
   16450              : }
   16451              : 
   16452              : #undef __MM512_REDUCE_OP
   16453              : #define __MM512_REDUCE_OP(op) \
   16454              :   __m512i __T1 = _mm512_shuffle_i64x2 (__A, __A, 0x4e);         \
   16455              :   __m512i __T2 = _mm512_##op (__A, __T1);               \
   16456              :   __m512i __T3                              \
   16457              :     = (__m512i) __builtin_shuffle ((__v8di) __T2,           \
   16458              :                    (__v8di) { 2, 3, 0, 1, 6, 7, 4, 5 });\
   16459              :   __m512i __T4 = _mm512_##op (__T2, __T3);              \
   16460              :   __m512i __T5                              \
   16461              :     = (__m512i) __builtin_shuffle ((__v8di) __T4,           \
   16462              :                    (__v8di) { 1, 0, 3, 2, 5, 4, 7, 6 });\
   16463              :   __v8di __T6 = (__v8di) _mm512_##op (__T4, __T5);          \
   16464              :   return __T6[0]
   16465              : 
   16466              : extern __inline long long
   16467              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16468              : _mm512_reduce_min_epi64 (__m512i __A)
   16469              : {
   16470              :   __MM512_REDUCE_OP (min_epi64);
   16471              : }
   16472              : 
   16473              : extern __inline long long
   16474              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16475              : _mm512_reduce_max_epi64 (__m512i __A)
   16476              : {
   16477              :   __MM512_REDUCE_OP (max_epi64);
   16478              : }
   16479              : 
   16480              : extern __inline long long
   16481              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16482              : _mm512_mask_reduce_min_epi64 (__mmask8 __U, __m512i __A)
   16483              : {
   16484              :   __A = _mm512_mask_mov_epi64 (_mm512_set1_epi64 (__LONG_LONG_MAX__),
   16485              :                    __U, __A);
   16486              :   __MM512_REDUCE_OP (min_epi64);
   16487              : }
   16488              : 
   16489              : extern __inline long long
   16490              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16491              : _mm512_mask_reduce_max_epi64 (__mmask8 __U, __m512i __A)
   16492              : {
   16493              :   __A = _mm512_mask_mov_epi64 (_mm512_set1_epi64 (-__LONG_LONG_MAX__ - 1),
   16494              :                    __U, __A);
   16495              :   __MM512_REDUCE_OP (max_epi64);
   16496              : }
   16497              : 
   16498              : extern __inline unsigned long long
   16499              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16500              : _mm512_reduce_min_epu64 (__m512i __A)
   16501              : {
   16502              :   __MM512_REDUCE_OP (min_epu64);
   16503              : }
   16504              : 
   16505              : extern __inline unsigned long long
   16506              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16507              : _mm512_reduce_max_epu64 (__m512i __A)
   16508              : {
   16509              :   __MM512_REDUCE_OP (max_epu64);
   16510              : }
   16511              : 
   16512              : extern __inline unsigned long long
   16513              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16514              : _mm512_mask_reduce_min_epu64 (__mmask8 __U, __m512i __A)
   16515              : {
   16516              :   __A = _mm512_mask_mov_epi64 (_mm512_set1_epi64 (~0LL), __U, __A);
   16517              :   __MM512_REDUCE_OP (min_epu64);
   16518              : }
   16519              : 
   16520              : extern __inline unsigned long long
   16521              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16522              : _mm512_mask_reduce_max_epu64 (__mmask8 __U, __m512i __A)
   16523              : {
   16524              :   __A = _mm512_maskz_mov_epi64 (__U, __A);
   16525              :   __MM512_REDUCE_OP (max_epu64);
   16526              : }
   16527              : 
   16528              : #undef __MM512_REDUCE_OP
   16529              : #define __MM512_REDUCE_OP(op) \
   16530              :   __m256d __T1 = (__m256d) _mm512_extractf64x4_pd (__A, 1);     \
   16531              :   __m256d __T2 = (__m256d) _mm512_extractf64x4_pd (__A, 0);     \
   16532              :   __m256d __T3 = __T1 op __T2;                      \
   16533              :   __m128d __T4 = _mm256_extractf128_pd (__T3, 1);           \
   16534              :   __m128d __T5 = _mm256_extractf128_pd (__T3, 0);           \
   16535              :   __m128d __T6 = __T4 op __T5;                      \
   16536              :   return __T6[0] op __T6[1]
   16537              : 
   16538              : extern __inline double
   16539              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16540              : _mm512_reduce_add_pd (__m512d __A)
   16541              : {
   16542              :   __MM512_REDUCE_OP (+);
   16543              : }
   16544              : 
   16545              : extern __inline double
   16546              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16547              : _mm512_reduce_mul_pd (__m512d __A)
   16548              : {
   16549              :   __MM512_REDUCE_OP (*);
   16550              : }
   16551              : 
   16552              : extern __inline double
   16553              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16554              : _mm512_mask_reduce_add_pd (__mmask8 __U, __m512d __A)
   16555              : {
   16556              :   __A = _mm512_maskz_mov_pd (__U, __A);
   16557              :   __MM512_REDUCE_OP (+);
   16558              : }
   16559              : 
   16560              : extern __inline double
   16561              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16562              : _mm512_mask_reduce_mul_pd (__mmask8 __U, __m512d __A)
   16563              : {
   16564              :   __A = _mm512_mask_mov_pd (_mm512_set1_pd (1.0), __U, __A);
   16565              :   __MM512_REDUCE_OP (*);
   16566              : }
   16567              : 
   16568              : #undef __MM512_REDUCE_OP
   16569              : #define __MM512_REDUCE_OP(op) \
   16570              :   __m256d __T1 = (__m256d) _mm512_extractf64x4_pd (__A, 1);     \
   16571              :   __m256d __T2 = (__m256d) _mm512_extractf64x4_pd (__A, 0);     \
   16572              :   __m256d __T3 = _mm256_##op (__T1, __T2);              \
   16573              :   __m128d __T4 = _mm256_extractf128_pd (__T3, 1);           \
   16574              :   __m128d __T5 = _mm256_extractf128_pd (__T3, 0);           \
   16575              :   __m128d __T6 = _mm_##op (__T4, __T5);                 \
   16576              :   __m128d __T7 = (__m128d) __builtin_shuffle (__T6, (__v2di) { 1, 0 }); \
   16577              :   __m128d __T8 = _mm_##op (__T6, __T7);                 \
   16578              :   return __T8[0]
   16579              : 
   16580              : extern __inline double
   16581              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16582              : _mm512_reduce_min_pd (__m512d __A)
   16583              : {
   16584              :   __MM512_REDUCE_OP (min_pd);
   16585              : }
   16586              : 
   16587              : extern __inline double
   16588              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16589              : _mm512_reduce_max_pd (__m512d __A)
   16590              : {
   16591              :   __MM512_REDUCE_OP (max_pd);
   16592              : }
   16593              : 
   16594              : extern __inline double
   16595              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16596              : _mm512_mask_reduce_min_pd (__mmask8 __U, __m512d __A)
   16597              : {
   16598              :   __A = _mm512_mask_mov_pd (_mm512_set1_pd (__builtin_inf ()), __U, __A);
   16599              :   __MM512_REDUCE_OP (min_pd);
   16600              : }
   16601              : 
   16602              : extern __inline double
   16603              : __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   16604              : _mm512_mask_reduce_max_pd (__mmask8 __U, __m512d __A)
   16605              : {
   16606              :   __A = _mm512_mask_mov_pd (_mm512_set1_pd (-__builtin_inf ()), __U, __A);
   16607              :   __MM512_REDUCE_OP (max_pd);
   16608              : }
   16609              : 
   16610              : #undef __MM512_REDUCE_OP
   16611              : 
   16612              : #ifdef __DISABLE_AVX512F_512__
   16613              : #undef __DISABLE_AVX512F_512__
   16614              : #pragma GCC pop_options
   16615              : #endif /* __DISABLE_AVX512F_512__ */
   16616              : 
   16617              : #endif /* _AVX512FINTRIN_H_INCLUDED */
        

Generated by: LCOV version 2.0-1