Home | History | Annotate | Line # | Download | only in i386
avx512bwintrin.h revision 1.1.1.2.2.1
      1  1.1.1.2.2.1  pgoyette /* Copyright (C) 2014-2016 Free Software Foundation, Inc.
      2          1.1       mrg 
      3          1.1       mrg    This file is part of GCC.
      4          1.1       mrg 
      5          1.1       mrg    GCC is free software; you can redistribute it and/or modify
      6          1.1       mrg    it under the terms of the GNU General Public License as published by
      7          1.1       mrg    the Free Software Foundation; either version 3, or (at your option)
      8          1.1       mrg    any later version.
      9          1.1       mrg 
     10          1.1       mrg    GCC is distributed in the hope that it will be useful,
     11          1.1       mrg    but WITHOUT ANY WARRANTY; without even the implied warranty of
     12          1.1       mrg    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     13          1.1       mrg    GNU General Public License for more details.
     14          1.1       mrg 
     15          1.1       mrg    Under Section 7 of GPL version 3, you are granted additional
     16          1.1       mrg    permissions described in the GCC Runtime Library Exception, version
     17          1.1       mrg    3.1, as published by the Free Software Foundation.
     18          1.1       mrg 
     19          1.1       mrg    You should have received a copy of the GNU General Public License and
     20          1.1       mrg    a copy of the GCC Runtime Library Exception along with this program;
     21          1.1       mrg    see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
     22          1.1       mrg    <http://www.gnu.org/licenses/>.  */
     23          1.1       mrg 
     24          1.1       mrg #ifndef _IMMINTRIN_H_INCLUDED
     25          1.1       mrg #error "Never use <avx512bwintrin.h> directly; include <immintrin.h> instead."
     26          1.1       mrg #endif
     27          1.1       mrg 
     28          1.1       mrg #ifndef _AVX512BWINTRIN_H_INCLUDED
     29          1.1       mrg #define _AVX512BWINTRIN_H_INCLUDED
     30          1.1       mrg 
     31          1.1       mrg #ifndef __AVX512BW__
     32          1.1       mrg #pragma GCC push_options
     33          1.1       mrg #pragma GCC target("avx512bw")
     34          1.1       mrg #define __DISABLE_AVX512BW__
     35          1.1       mrg #endif /* __AVX512BW__ */
     36          1.1       mrg 
     37          1.1       mrg /* Internal data types for implementing the intrinsics.  */
     38          1.1       mrg typedef short __v32hi __attribute__ ((__vector_size__ (64)));
     39          1.1       mrg typedef char __v64qi __attribute__ ((__vector_size__ (64)));
     40          1.1       mrg 
     41          1.1       mrg typedef unsigned long long __mmask64;
     42          1.1       mrg 
     43          1.1       mrg extern __inline __m512i
     44          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     45          1.1       mrg _mm512_setzero_qi (void)
     46          1.1       mrg {
     47          1.1       mrg   return __extension__ (__m512i)(__v64qi){ 0, 0, 0, 0, 0, 0, 0, 0,
     48          1.1       mrg 					   0, 0, 0, 0, 0, 0, 0, 0,
     49          1.1       mrg 					   0, 0, 0, 0, 0, 0, 0, 0,
     50          1.1       mrg 					   0, 0, 0, 0, 0, 0, 0, 0,
     51          1.1       mrg 					   0, 0, 0, 0, 0, 0, 0, 0,
     52          1.1       mrg 					   0, 0, 0, 0, 0, 0, 0, 0,
     53          1.1       mrg 					   0, 0, 0, 0, 0, 0, 0, 0,
     54          1.1       mrg 					   0, 0, 0, 0, 0, 0, 0, 0 };
     55          1.1       mrg }
     56          1.1       mrg 
     57          1.1       mrg extern __inline __m512i
     58          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     59          1.1       mrg _mm512_setzero_hi (void)
     60          1.1       mrg {
     61          1.1       mrg   return __extension__ (__m512i)(__v32hi){ 0, 0, 0, 0, 0, 0, 0, 0,
     62          1.1       mrg 					   0, 0, 0, 0, 0, 0, 0, 0,
     63          1.1       mrg 					   0, 0, 0, 0, 0, 0, 0, 0,
     64          1.1       mrg 					   0, 0, 0, 0, 0, 0, 0, 0 };
     65          1.1       mrg }
     66          1.1       mrg 
     67          1.1       mrg extern __inline __m512i
     68          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     69          1.1       mrg _mm512_mask_mov_epi16 (__m512i __W, __mmask32 __U, __m512i __A)
     70          1.1       mrg {
     71          1.1       mrg   return (__m512i) __builtin_ia32_movdquhi512_mask ((__v32hi) __A,
     72          1.1       mrg 						    (__v32hi) __W,
     73          1.1       mrg 						    (__mmask32) __U);
     74          1.1       mrg }
     75          1.1       mrg 
     76          1.1       mrg extern __inline __m512i
     77          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     78          1.1       mrg _mm512_maskz_mov_epi16 (__mmask32 __U, __m512i __A)
     79          1.1       mrg {
     80          1.1       mrg   return (__m512i) __builtin_ia32_movdquhi512_mask ((__v32hi) __A,
     81          1.1       mrg 						    (__v32hi)
     82          1.1       mrg 						    _mm512_setzero_hi (),
     83          1.1       mrg 						    (__mmask32) __U);
     84          1.1       mrg }
     85          1.1       mrg 
     86          1.1       mrg extern __inline __m512i
     87          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     88          1.1       mrg _mm512_mask_loadu_epi16 (__m512i __W, __mmask32 __U, void const *__P)
     89          1.1       mrg {
     90          1.1       mrg   return (__m512i) __builtin_ia32_loaddquhi512_mask ((__v32hi *) __P,
     91          1.1       mrg 						     (__v32hi) __W,
     92          1.1       mrg 						     (__mmask32) __U);
     93          1.1       mrg }
     94          1.1       mrg 
     95          1.1       mrg extern __inline __m512i
     96          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     97          1.1       mrg _mm512_maskz_loadu_epi16 (__mmask32 __U, void const *__P)
     98          1.1       mrg {
     99          1.1       mrg   return (__m512i) __builtin_ia32_loaddquhi512_mask ((__v32hi *) __P,
    100          1.1       mrg 						     (__v32hi)
    101          1.1       mrg 						     _mm512_setzero_hi (),
    102          1.1       mrg 						     (__mmask32) __U);
    103          1.1       mrg }
    104          1.1       mrg 
    105          1.1       mrg extern __inline void
    106          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    107          1.1       mrg _mm512_mask_storeu_epi16 (void *__P, __mmask32 __U, __m512i __A)
    108          1.1       mrg {
    109          1.1       mrg   __builtin_ia32_storedquhi512_mask ((__v32hi *) __P,
    110          1.1       mrg 				     (__v32hi) __A,
    111          1.1       mrg 				     (__mmask32) __U);
    112          1.1       mrg }
    113          1.1       mrg 
    114          1.1       mrg extern __inline __m512i
    115          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    116          1.1       mrg _mm512_mask_mov_epi8 (__m512i __W, __mmask64 __U, __m512i __A)
    117          1.1       mrg {
    118          1.1       mrg   return (__m512i) __builtin_ia32_movdquqi512_mask ((__v64qi) __A,
    119          1.1       mrg 						    (__v64qi) __W,
    120          1.1       mrg 						    (__mmask64) __U);
    121          1.1       mrg }
    122          1.1       mrg 
    123          1.1       mrg extern __inline __m512i
    124          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    125          1.1       mrg _mm512_maskz_mov_epi8 (__mmask64 __U, __m512i __A)
    126          1.1       mrg {
    127          1.1       mrg   return (__m512i) __builtin_ia32_movdquqi512_mask ((__v64qi) __A,
    128          1.1       mrg 						    (__v64qi)
    129          1.1       mrg 						    _mm512_setzero_hi (),
    130          1.1       mrg 						    (__mmask64) __U);
    131          1.1       mrg }
    132          1.1       mrg 
    133          1.1       mrg extern __inline __mmask32
    134          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    135          1.1       mrg _mm512_kunpackw (__mmask32 __A, __mmask32 __B)
    136          1.1       mrg {
    137          1.1       mrg   return (__mmask32) __builtin_ia32_kunpcksi ((__mmask32) __A,
    138          1.1       mrg 					      (__mmask32) __B);
    139          1.1       mrg }
    140          1.1       mrg 
    141          1.1       mrg extern __inline __mmask64
    142          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    143          1.1       mrg _mm512_kunpackd (__mmask64 __A, __mmask64 __B)
    144          1.1       mrg {
    145          1.1       mrg   return (__mmask64) __builtin_ia32_kunpckdi ((__mmask64) __A,
    146          1.1       mrg 					      (__mmask64) __B);
    147          1.1       mrg }
    148          1.1       mrg 
    149          1.1       mrg extern __inline __m512i
    150          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    151          1.1       mrg _mm512_mask_loadu_epi8 (__m512i __W, __mmask64 __U, void const *__P)
    152          1.1       mrg {
    153          1.1       mrg   return (__m512i) __builtin_ia32_loaddquqi512_mask ((__v64qi *) __P,
    154          1.1       mrg 						     (__v64qi) __W,
    155          1.1       mrg 						     (__mmask64) __U);
    156          1.1       mrg }
    157          1.1       mrg 
    158          1.1       mrg extern __inline __m512i
    159          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    160          1.1       mrg _mm512_maskz_loadu_epi8 (__mmask64 __U, void const *__P)
    161          1.1       mrg {
    162          1.1       mrg   return (__m512i) __builtin_ia32_loaddquqi512_mask ((__v64qi *) __P,
    163          1.1       mrg 						     (__v64qi)
    164          1.1       mrg 						     _mm512_setzero_hi (),
    165          1.1       mrg 						     (__mmask64) __U);
    166          1.1       mrg }
    167          1.1       mrg 
    168          1.1       mrg extern __inline void
    169          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    170          1.1       mrg _mm512_mask_storeu_epi8 (void *__P, __mmask64 __U, __m512i __A)
    171          1.1       mrg {
    172          1.1       mrg   __builtin_ia32_storedquqi512_mask ((__v64qi *) __P,
    173          1.1       mrg 				     (__v64qi) __A,
    174          1.1       mrg 				     (__mmask64) __U);
    175          1.1       mrg }
    176          1.1       mrg 
    177          1.1       mrg extern __inline __m512i
    178          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    179          1.1       mrg _mm512_sad_epu8 (__m512i __A, __m512i __B)
    180          1.1       mrg {
    181          1.1       mrg   return (__m512i) __builtin_ia32_psadbw512 ((__v64qi) __A,
    182          1.1       mrg 					     (__v64qi) __B);
    183          1.1       mrg }
    184          1.1       mrg 
    185          1.1       mrg extern __inline __m256i
    186          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    187          1.1       mrg _mm512_cvtepi16_epi8 (__m512i __A)
    188          1.1       mrg {
    189          1.1       mrg   return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A,
    190          1.1       mrg 						  (__v32qi) _mm256_undefined_si256(),
    191          1.1       mrg 						  (__mmask32) -1);
    192          1.1       mrg }
    193          1.1       mrg 
    194          1.1       mrg extern __inline __m256i
    195          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    196          1.1       mrg _mm512_mask_cvtepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A)
    197          1.1       mrg {
    198          1.1       mrg   return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A,
    199          1.1       mrg 						  (__v32qi) __O, __M);
    200          1.1       mrg }
    201          1.1       mrg 
    202          1.1       mrg extern __inline __m256i
    203          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    204          1.1       mrg _mm512_maskz_cvtepi16_epi8 (__mmask32 __M, __m512i __A)
    205          1.1       mrg {
    206          1.1       mrg   return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A,
    207          1.1       mrg 						  (__v32qi)
    208          1.1       mrg 						  _mm256_setzero_si256 (),
    209          1.1       mrg 						  __M);
    210          1.1       mrg }
    211          1.1       mrg 
    212          1.1       mrg extern __inline __m256i
    213          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    214          1.1       mrg _mm512_cvtsepi16_epi8 (__m512i __A)
    215          1.1       mrg {
    216          1.1       mrg   return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,
    217          1.1       mrg 						   (__v32qi)_mm256_undefined_si256(),
    218          1.1       mrg 						   (__mmask32) -1);
    219          1.1       mrg }
    220          1.1       mrg 
    221          1.1       mrg extern __inline __m256i
    222          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    223          1.1       mrg _mm512_mask_cvtsepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A)
    224          1.1       mrg {
    225          1.1       mrg   return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,
    226          1.1       mrg 						   (__v32qi)__O,
    227          1.1       mrg 						   __M);
    228          1.1       mrg }
    229          1.1       mrg 
    230          1.1       mrg extern __inline __m256i
    231          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    232          1.1       mrg _mm512_maskz_cvtsepi16_epi8 (__mmask32 __M, __m512i __A)
    233          1.1       mrg {
    234          1.1       mrg   return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,
    235          1.1       mrg 						   (__v32qi)
    236          1.1       mrg 						   _mm256_setzero_si256 (),
    237          1.1       mrg 						   __M);
    238          1.1       mrg }
    239          1.1       mrg 
    240          1.1       mrg extern __inline __m256i
    241          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    242          1.1       mrg _mm512_cvtusepi16_epi8 (__m512i __A)
    243          1.1       mrg {
    244          1.1       mrg   return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,
    245          1.1       mrg 						    (__v32qi)_mm256_undefined_si256(),
    246          1.1       mrg 						    (__mmask32) -1);
    247          1.1       mrg }
    248          1.1       mrg 
    249          1.1       mrg extern __inline __m256i
    250          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    251          1.1       mrg _mm512_mask_cvtusepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A)
    252          1.1       mrg {
    253          1.1       mrg   return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,
    254          1.1       mrg 						    (__v32qi) __O,
    255          1.1       mrg 						    __M);
    256          1.1       mrg }
    257          1.1       mrg 
    258          1.1       mrg extern __inline __m256i
    259          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    260          1.1       mrg _mm512_maskz_cvtusepi16_epi8 (__mmask32 __M, __m512i __A)
    261          1.1       mrg {
    262          1.1       mrg   return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,
    263          1.1       mrg 						    (__v32qi)
    264          1.1       mrg 						    _mm256_setzero_si256 (),
    265          1.1       mrg 						    __M);
    266          1.1       mrg }
    267          1.1       mrg 
    268          1.1       mrg extern __inline __m512i
    269          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    270          1.1       mrg _mm512_broadcastb_epi8 (__m128i __A)
    271          1.1       mrg {
    272          1.1       mrg   return (__m512i) __builtin_ia32_pbroadcastb512_mask ((__v16qi) __A,
    273      1.1.1.2       mrg 						       (__v64qi)_mm512_undefined_epi32(),
    274      1.1.1.2       mrg 						       (__mmask64) -1);
    275          1.1       mrg }
    276          1.1       mrg 
    277          1.1       mrg extern __inline __m512i
    278          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    279          1.1       mrg _mm512_mask_broadcastb_epi8 (__m512i __O, __mmask64 __M, __m128i __A)
    280          1.1       mrg {
    281          1.1       mrg   return (__m512i) __builtin_ia32_pbroadcastb512_mask ((__v16qi) __A,
    282          1.1       mrg 						       (__v64qi) __O,
    283          1.1       mrg 						       __M);
    284          1.1       mrg }
    285          1.1       mrg 
    286          1.1       mrg extern __inline __m512i
    287          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    288          1.1       mrg _mm512_maskz_broadcastb_epi8 (__mmask64 __M, __m128i __A)
    289          1.1       mrg {
    290          1.1       mrg   return (__m512i) __builtin_ia32_pbroadcastb512_mask ((__v16qi) __A,
    291          1.1       mrg 						       (__v64qi)
    292          1.1       mrg 						       _mm512_setzero_qi(),
    293          1.1       mrg 						       __M);
    294          1.1       mrg }
    295          1.1       mrg 
    296          1.1       mrg extern __inline __m512i
    297          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    298          1.1       mrg _mm512_mask_set1_epi8 (__m512i __O, __mmask64 __M, char __A)
    299          1.1       mrg {
    300          1.1       mrg   return (__m512i) __builtin_ia32_pbroadcastb512_gpr_mask (__A,
    301          1.1       mrg 							   (__v64qi) __O,
    302          1.1       mrg 							   __M);
    303          1.1       mrg }
    304          1.1       mrg 
    305          1.1       mrg extern __inline __m512i
    306          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    307          1.1       mrg _mm512_maskz_set1_epi8 (__mmask64 __M, char __A)
    308          1.1       mrg {
    309          1.1       mrg   return (__m512i) __builtin_ia32_pbroadcastb512_gpr_mask (__A,
    310          1.1       mrg 							   (__v64qi)
    311          1.1       mrg 							   _mm512_setzero_qi(),
    312          1.1       mrg 							   __M);
    313          1.1       mrg }
    314          1.1       mrg 
    315          1.1       mrg extern __inline __m512i
    316          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    317          1.1       mrg _mm512_broadcastw_epi16 (__m128i __A)
    318          1.1       mrg {
    319          1.1       mrg   return (__m512i) __builtin_ia32_pbroadcastw512_mask ((__v8hi) __A,
    320      1.1.1.2       mrg 						       (__v32hi)_mm512_undefined_epi32(),
    321      1.1.1.2       mrg 						       (__mmask32) -1);
    322          1.1       mrg }
    323          1.1       mrg 
    324          1.1       mrg extern __inline __m512i
    325          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    326          1.1       mrg _mm512_mask_broadcastw_epi16 (__m512i __O, __mmask32 __M, __m128i __A)
    327          1.1       mrg {
    328          1.1       mrg   return (__m512i) __builtin_ia32_pbroadcastw512_mask ((__v8hi) __A,
    329          1.1       mrg 						       (__v32hi) __O,
    330          1.1       mrg 						       __M);
    331          1.1       mrg }
    332          1.1       mrg 
    333          1.1       mrg extern __inline __m512i
    334          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    335          1.1       mrg _mm512_maskz_broadcastw_epi16 (__mmask32 __M, __m128i __A)
    336          1.1       mrg {
    337          1.1       mrg   return (__m512i) __builtin_ia32_pbroadcastw512_mask ((__v8hi) __A,
    338          1.1       mrg 						       (__v32hi)
    339          1.1       mrg 						       _mm512_setzero_hi(),
    340          1.1       mrg 						       __M);
    341          1.1       mrg }
    342          1.1       mrg 
    343          1.1       mrg extern __inline __m512i
    344          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    345          1.1       mrg _mm512_mask_set1_epi16 (__m512i __O, __mmask32 __M, short __A)
    346          1.1       mrg {
    347          1.1       mrg   return (__m512i) __builtin_ia32_pbroadcastw512_gpr_mask (__A,
    348          1.1       mrg 							   (__v32hi) __O,
    349          1.1       mrg 							   __M);
    350          1.1       mrg }
    351          1.1       mrg 
    352          1.1       mrg extern __inline __m512i
    353          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    354          1.1       mrg _mm512_maskz_set1_epi16 (__mmask32 __M, short __A)
    355          1.1       mrg {
    356          1.1       mrg   return (__m512i) __builtin_ia32_pbroadcastw512_gpr_mask (__A,
    357          1.1       mrg 							   (__v32hi)
    358          1.1       mrg 							   _mm512_setzero_hi(),
    359          1.1       mrg 							   __M);
    360          1.1       mrg }
    361          1.1       mrg 
    362          1.1       mrg extern __inline __m512i
    363          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    364          1.1       mrg _mm512_mulhrs_epi16 (__m512i __A, __m512i __B)
    365          1.1       mrg {
    366          1.1       mrg   return (__m512i) __builtin_ia32_pmulhrsw512_mask ((__v32hi) __A,
    367          1.1       mrg 						    (__v32hi) __B,
    368          1.1       mrg 						    (__v32hi)
    369          1.1       mrg 						    _mm512_setzero_hi (),
    370          1.1       mrg 						    (__mmask32) -1);
    371          1.1       mrg }
    372          1.1       mrg 
    373          1.1       mrg extern __inline __m512i
    374          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    375          1.1       mrg _mm512_mask_mulhrs_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
    376          1.1       mrg 			  __m512i __B)
    377          1.1       mrg {
    378          1.1       mrg   return (__m512i) __builtin_ia32_pmulhrsw512_mask ((__v32hi) __A,
    379          1.1       mrg 						    (__v32hi) __B,
    380          1.1       mrg 						    (__v32hi) __W,
    381          1.1       mrg 						    (__mmask32) __U);
    382          1.1       mrg }
    383          1.1       mrg 
    384          1.1       mrg extern __inline __m512i
    385          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    386          1.1       mrg _mm512_maskz_mulhrs_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
    387          1.1       mrg {
    388          1.1       mrg   return (__m512i) __builtin_ia32_pmulhrsw512_mask ((__v32hi) __A,
    389          1.1       mrg 						    (__v32hi) __B,
    390          1.1       mrg 						    (__v32hi)
    391          1.1       mrg 						    _mm512_setzero_hi (),
    392          1.1       mrg 						    (__mmask32) __U);
    393          1.1       mrg }
    394          1.1       mrg 
    395          1.1       mrg extern __inline __m512i
    396          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    397          1.1       mrg _mm512_mulhi_epi16 (__m512i __A, __m512i __B)
    398          1.1       mrg {
    399          1.1       mrg   return (__m512i) __builtin_ia32_pmulhw512_mask ((__v32hi) __A,
    400          1.1       mrg 						  (__v32hi) __B,
    401          1.1       mrg 						  (__v32hi)
    402          1.1       mrg 						  _mm512_setzero_hi (),
    403          1.1       mrg 						  (__mmask32) -1);
    404          1.1       mrg }
    405          1.1       mrg 
    406          1.1       mrg extern __inline __m512i
    407          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    408          1.1       mrg _mm512_mask_mulhi_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
    409          1.1       mrg 			 __m512i __B)
    410          1.1       mrg {
    411          1.1       mrg   return (__m512i) __builtin_ia32_pmulhw512_mask ((__v32hi) __A,
    412          1.1       mrg 						  (__v32hi) __B,
    413          1.1       mrg 						  (__v32hi) __W,
    414          1.1       mrg 						  (__mmask32) __U);
    415          1.1       mrg }
    416          1.1       mrg 
    417          1.1       mrg extern __inline __m512i
    418          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    419          1.1       mrg _mm512_maskz_mulhi_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
    420          1.1       mrg {
    421          1.1       mrg   return (__m512i) __builtin_ia32_pmulhw512_mask ((__v32hi) __A,
    422          1.1       mrg 						  (__v32hi) __B,
    423          1.1       mrg 						  (__v32hi)
    424          1.1       mrg 						  _mm512_setzero_hi (),
    425          1.1       mrg 						  (__mmask32) __U);
    426          1.1       mrg }
    427          1.1       mrg 
    428          1.1       mrg extern __inline __m512i
    429          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    430          1.1       mrg _mm512_mulhi_epu16 (__m512i __A, __m512i __B)
    431          1.1       mrg {
    432          1.1       mrg   return (__m512i) __builtin_ia32_pmulhuw512_mask ((__v32hi) __A,
    433          1.1       mrg 						   (__v32hi) __B,
    434          1.1       mrg 						   (__v32hi)
    435          1.1       mrg 						   _mm512_setzero_hi (),
    436          1.1       mrg 						   (__mmask32) -1);
    437          1.1       mrg }
    438          1.1       mrg 
    439          1.1       mrg extern __inline __m512i
    440          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    441          1.1       mrg _mm512_mask_mulhi_epu16 (__m512i __W, __mmask32 __U, __m512i __A,
    442          1.1       mrg 			 __m512i __B)
    443          1.1       mrg {
    444          1.1       mrg   return (__m512i) __builtin_ia32_pmulhuw512_mask ((__v32hi) __A,
    445          1.1       mrg 						   (__v32hi) __B,
    446          1.1       mrg 						   (__v32hi) __W,
    447          1.1       mrg 						   (__mmask32) __U);
    448          1.1       mrg }
    449          1.1       mrg 
    450          1.1       mrg extern __inline __m512i
    451          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    452          1.1       mrg _mm512_maskz_mulhi_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
    453          1.1       mrg {
    454          1.1       mrg   return (__m512i) __builtin_ia32_pmulhuw512_mask ((__v32hi) __A,
    455          1.1       mrg 						   (__v32hi) __B,
    456          1.1       mrg 						   (__v32hi)
    457          1.1       mrg 						   _mm512_setzero_hi (),
    458          1.1       mrg 						   (__mmask32) __U);
    459          1.1       mrg }
    460          1.1       mrg 
    461          1.1       mrg extern __inline __m512i
    462          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    463          1.1       mrg _mm512_mullo_epi16 (__m512i __A, __m512i __B)
    464          1.1       mrg {
    465          1.1       mrg   return (__m512i) ((__v32hu) __A * (__v32hu) __B);
    466          1.1       mrg }
    467          1.1       mrg 
    468          1.1       mrg extern __inline __m512i
    469          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    470          1.1       mrg _mm512_mask_mullo_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
    471          1.1       mrg 			 __m512i __B)
    472          1.1       mrg {
    473          1.1       mrg   return (__m512i) __builtin_ia32_pmullw512_mask ((__v32hi) __A,
    474          1.1       mrg 						  (__v32hi) __B,
    475          1.1       mrg 						  (__v32hi) __W,
    476          1.1       mrg 						  (__mmask32) __U);
    477          1.1       mrg }
    478          1.1       mrg 
    479          1.1       mrg extern __inline __m512i
    480          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    481          1.1       mrg _mm512_maskz_mullo_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
    482          1.1       mrg {
    483          1.1       mrg   return (__m512i) __builtin_ia32_pmullw512_mask ((__v32hi) __A,
    484          1.1       mrg 						  (__v32hi) __B,
    485          1.1       mrg 						  (__v32hi)
    486          1.1       mrg 						  _mm512_setzero_hi (),
    487          1.1       mrg 						  (__mmask32) __U);
    488          1.1       mrg }
    489          1.1       mrg 
    490          1.1       mrg extern __inline __m512i
    491          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    492          1.1       mrg _mm512_cvtepi8_epi16 (__m256i __A)
    493          1.1       mrg {
    494          1.1       mrg   return (__m512i) __builtin_ia32_pmovsxbw512_mask ((__v32qi) __A,
    495          1.1       mrg 						    (__v32hi)
    496          1.1       mrg 						    _mm512_setzero_hi (),
    497          1.1       mrg 						    (__mmask32) -1);
    498          1.1       mrg }
    499          1.1       mrg 
    500          1.1       mrg extern __inline __m512i
    501          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    502          1.1       mrg _mm512_mask_cvtepi8_epi16 (__m512i __W, __mmask32 __U, __m256i __A)
    503          1.1       mrg {
    504          1.1       mrg   return (__m512i) __builtin_ia32_pmovsxbw512_mask ((__v32qi) __A,
    505          1.1       mrg 						    (__v32hi) __W,
    506          1.1       mrg 						    (__mmask32) __U);
    507          1.1       mrg }
    508          1.1       mrg 
    509          1.1       mrg extern __inline __m512i
    510          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    511          1.1       mrg _mm512_maskz_cvtepi8_epi16 (__mmask32 __U, __m256i __A)
    512          1.1       mrg {
    513          1.1       mrg   return (__m512i) __builtin_ia32_pmovsxbw512_mask ((__v32qi) __A,
    514          1.1       mrg 						    (__v32hi)
    515          1.1       mrg 						    _mm512_setzero_hi(),
    516          1.1       mrg 						    (__mmask32) __U);
    517          1.1       mrg }
    518          1.1       mrg 
    519          1.1       mrg extern __inline __m512i
    520          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    521          1.1       mrg _mm512_cvtepu8_epi16 (__m256i __A)
    522          1.1       mrg {
    523          1.1       mrg   return (__m512i) __builtin_ia32_pmovzxbw512_mask ((__v32qi) __A,
    524          1.1       mrg 						    (__v32hi)
    525          1.1       mrg 						    _mm512_setzero_hi (),
    526          1.1       mrg 						    (__mmask32) -1);
    527          1.1       mrg }
    528          1.1       mrg 
    529          1.1       mrg extern __inline __m512i
    530          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    531          1.1       mrg _mm512_mask_cvtepu8_epi16 (__m512i __W, __mmask32 __U, __m256i __A)
    532          1.1       mrg {
    533          1.1       mrg   return (__m512i) __builtin_ia32_pmovzxbw512_mask ((__v32qi) __A,
    534          1.1       mrg 						    (__v32hi) __W,
    535          1.1       mrg 						    (__mmask32) __U);
    536          1.1       mrg }
    537          1.1       mrg 
    538          1.1       mrg extern __inline __m512i
    539          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    540          1.1       mrg _mm512_maskz_cvtepu8_epi16 (__mmask32 __U, __m256i __A)
    541          1.1       mrg {
    542          1.1       mrg   return (__m512i) __builtin_ia32_pmovzxbw512_mask ((__v32qi) __A,
    543          1.1       mrg 						    (__v32hi)
    544          1.1       mrg 						    _mm512_setzero_hi(),
    545          1.1       mrg 						    (__mmask32) __U);
    546          1.1       mrg }
    547          1.1       mrg 
    548          1.1       mrg extern __inline __m512i
    549          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    550          1.1       mrg _mm512_permutexvar_epi16 (__m512i __A, __m512i __B)
    551          1.1       mrg {
    552          1.1       mrg   return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B,
    553          1.1       mrg 						     (__v32hi) __A,
    554          1.1       mrg 						     (__v32hi)
    555          1.1       mrg 						     _mm512_setzero_hi (),
    556          1.1       mrg 						     (__mmask32) -1);
    557          1.1       mrg }
    558          1.1       mrg 
    559          1.1       mrg extern __inline __m512i
    560          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    561          1.1       mrg _mm512_maskz_permutexvar_epi16 (__mmask32 __M, __m512i __A,
    562          1.1       mrg 				__m512i __B)
    563          1.1       mrg {
    564          1.1       mrg   return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B,
    565          1.1       mrg 						     (__v32hi) __A,
    566          1.1       mrg 						     (__v32hi)
    567          1.1       mrg 						     _mm512_setzero_hi(),
    568          1.1       mrg 						     (__mmask32) __M);
    569          1.1       mrg }
    570          1.1       mrg 
    571          1.1       mrg extern __inline __m512i
    572          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    573          1.1       mrg _mm512_mask_permutexvar_epi16 (__m512i __W, __mmask32 __M, __m512i __A,
    574          1.1       mrg 			       __m512i __B)
    575          1.1       mrg {
    576          1.1       mrg   return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B,
    577          1.1       mrg 						     (__v32hi) __A,
    578          1.1       mrg 						     (__v32hi) __W,
    579          1.1       mrg 						     (__mmask32) __M);
    580          1.1       mrg }
    581          1.1       mrg 
    582          1.1       mrg extern __inline __m512i
    583          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    584          1.1       mrg _mm512_permutex2var_epi16 (__m512i __A, __m512i __I, __m512i __B)
    585          1.1       mrg {
    586          1.1       mrg   return (__m512i) __builtin_ia32_vpermt2varhi512_mask ((__v32hi) __I
    587          1.1       mrg 							/* idx */ ,
    588          1.1       mrg 							(__v32hi) __A,
    589          1.1       mrg 							(__v32hi) __B,
    590      1.1.1.2       mrg 							(__mmask32) -1);
    591          1.1       mrg }
    592          1.1       mrg 
    593          1.1       mrg extern __inline __m512i
    594          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    595          1.1       mrg _mm512_mask_permutex2var_epi16 (__m512i __A, __mmask32 __U,
    596          1.1       mrg 				__m512i __I, __m512i __B)
    597          1.1       mrg {
    598          1.1       mrg   return (__m512i) __builtin_ia32_vpermt2varhi512_mask ((__v32hi) __I
    599          1.1       mrg 							/* idx */ ,
    600          1.1       mrg 							(__v32hi) __A,
    601          1.1       mrg 							(__v32hi) __B,
    602          1.1       mrg 							(__mmask32)
    603          1.1       mrg 							__U);
    604          1.1       mrg }
    605          1.1       mrg 
    606          1.1       mrg extern __inline __m512i
    607          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    608          1.1       mrg _mm512_mask2_permutex2var_epi16 (__m512i __A, __m512i __I,
    609          1.1       mrg 				 __mmask32 __U, __m512i __B)
    610          1.1       mrg {
    611          1.1       mrg   return (__m512i) __builtin_ia32_vpermi2varhi512_mask ((__v32hi) __A,
    612          1.1       mrg 							(__v32hi) __I
    613          1.1       mrg 							/* idx */ ,
    614          1.1       mrg 							(__v32hi) __B,
    615          1.1       mrg 							(__mmask32)
    616          1.1       mrg 							__U);
    617          1.1       mrg }
    618          1.1       mrg 
    619          1.1       mrg extern __inline __m512i
    620          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    621          1.1       mrg _mm512_maskz_permutex2var_epi16 (__mmask32 __U, __m512i __A,
    622          1.1       mrg 				 __m512i __I, __m512i __B)
    623          1.1       mrg {
    624          1.1       mrg   return (__m512i) __builtin_ia32_vpermt2varhi512_maskz ((__v32hi) __I
    625          1.1       mrg 							 /* idx */ ,
    626          1.1       mrg 							 (__v32hi) __A,
    627          1.1       mrg 							 (__v32hi) __B,
    628          1.1       mrg 							 (__mmask32)
    629          1.1       mrg 							 __U);
    630          1.1       mrg }
    631          1.1       mrg 
    632          1.1       mrg extern __inline __m512i
    633          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    634          1.1       mrg _mm512_avg_epu8 (__m512i __A, __m512i __B)
    635          1.1       mrg {
    636          1.1       mrg   return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A,
    637          1.1       mrg 						 (__v64qi) __B,
    638          1.1       mrg 						 (__v64qi)
    639          1.1       mrg 						 _mm512_setzero_qi (),
    640          1.1       mrg 						 (__mmask64) -1);
    641          1.1       mrg }
    642          1.1       mrg 
    643          1.1       mrg extern __inline __m512i
    644          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    645          1.1       mrg _mm512_mask_avg_epu8 (__m512i __W, __mmask64 __U, __m512i __A,
    646          1.1       mrg 		      __m512i __B)
    647          1.1       mrg {
    648          1.1       mrg   return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A,
    649          1.1       mrg 						 (__v64qi) __B,
    650          1.1       mrg 						 (__v64qi) __W,
    651          1.1       mrg 						 (__mmask64) __U);
    652          1.1       mrg }
    653          1.1       mrg 
    654          1.1       mrg extern __inline __m512i
    655          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    656          1.1       mrg _mm512_maskz_avg_epu8 (__mmask64 __U, __m512i __A, __m512i __B)
    657          1.1       mrg {
    658          1.1       mrg   return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A,
    659          1.1       mrg 						 (__v64qi) __B,
    660          1.1       mrg 						 (__v64qi)
    661          1.1       mrg 						 _mm512_setzero_qi(),
    662          1.1       mrg 						 (__mmask64) __U);
    663          1.1       mrg }
    664          1.1       mrg 
    665          1.1       mrg extern __inline __m512i
    666          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    667          1.1       mrg _mm512_add_epi8 (__m512i __A, __m512i __B)
    668          1.1       mrg {
    669          1.1       mrg   return (__m512i) ((__v64qu) __A + (__v64qu) __B);
    670          1.1       mrg }
    671          1.1       mrg 
    672          1.1       mrg extern __inline __m512i
    673          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    674          1.1       mrg _mm512_mask_add_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
    675          1.1       mrg 		      __m512i __B)
    676          1.1       mrg {
    677          1.1       mrg   return (__m512i) __builtin_ia32_paddb512_mask ((__v64qi) __A,
    678          1.1       mrg 						 (__v64qi) __B,
    679          1.1       mrg 						 (__v64qi) __W,
    680          1.1       mrg 						 (__mmask64) __U);
    681          1.1       mrg }
    682          1.1       mrg 
    683          1.1       mrg extern __inline __m512i
    684          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    685          1.1       mrg _mm512_maskz_add_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
    686          1.1       mrg {
    687          1.1       mrg   return (__m512i) __builtin_ia32_paddb512_mask ((__v64qi) __A,
    688          1.1       mrg 						 (__v64qi) __B,
    689          1.1       mrg 						 (__v64qi)
    690          1.1       mrg 						 _mm512_setzero_qi (),
    691          1.1       mrg 						 (__mmask64) __U);
    692          1.1       mrg }
    693          1.1       mrg 
    694          1.1       mrg extern __inline __m512i
    695          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    696          1.1       mrg _mm512_sub_epi8 (__m512i __A, __m512i __B)
    697          1.1       mrg {
    698          1.1       mrg   return (__m512i) ((__v64qu) __A - (__v64qu) __B);
    699          1.1       mrg }
    700          1.1       mrg 
    701          1.1       mrg extern __inline __m512i
    702          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    703          1.1       mrg _mm512_mask_sub_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
    704          1.1       mrg 		      __m512i __B)
    705          1.1       mrg {
    706          1.1       mrg   return (__m512i) __builtin_ia32_psubb512_mask ((__v64qi) __A,
    707          1.1       mrg 						 (__v64qi) __B,
    708          1.1       mrg 						 (__v64qi) __W,
    709          1.1       mrg 						 (__mmask64) __U);
    710          1.1       mrg }
    711          1.1       mrg 
    712          1.1       mrg extern __inline __m512i
    713          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    714          1.1       mrg _mm512_maskz_sub_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
    715          1.1       mrg {
    716          1.1       mrg   return (__m512i) __builtin_ia32_psubb512_mask ((__v64qi) __A,
    717          1.1       mrg 						 (__v64qi) __B,
    718          1.1       mrg 						 (__v64qi)
    719          1.1       mrg 						 _mm512_setzero_qi (),
    720          1.1       mrg 						 (__mmask64) __U);
    721          1.1       mrg }
    722          1.1       mrg 
    723          1.1       mrg extern __inline __m512i
    724          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    725          1.1       mrg _mm512_avg_epu16 (__m512i __A, __m512i __B)
    726          1.1       mrg {
    727          1.1       mrg   return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A,
    728          1.1       mrg 						 (__v32hi) __B,
    729          1.1       mrg 						 (__v32hi)
    730          1.1       mrg 						 _mm512_setzero_hi (),
    731          1.1       mrg 						 (__mmask32) -1);
    732          1.1       mrg }
    733          1.1       mrg 
    734          1.1       mrg extern __inline __m512i
    735          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    736          1.1       mrg _mm512_mask_avg_epu16 (__m512i __W, __mmask32 __U, __m512i __A,
    737          1.1       mrg 		       __m512i __B)
    738          1.1       mrg {
    739          1.1       mrg   return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A,
    740          1.1       mrg 						 (__v32hi) __B,
    741          1.1       mrg 						 (__v32hi) __W,
    742          1.1       mrg 						 (__mmask32) __U);
    743          1.1       mrg }
    744          1.1       mrg 
    745          1.1       mrg extern __inline __m512i
    746          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    747          1.1       mrg _mm512_maskz_avg_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
    748          1.1       mrg {
    749          1.1       mrg   return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A,
    750          1.1       mrg 						 (__v32hi) __B,
    751          1.1       mrg 						 (__v32hi)
    752          1.1       mrg 						 _mm512_setzero_hi(),
    753          1.1       mrg 						 (__mmask32) __U);
    754          1.1       mrg }
    755          1.1       mrg 
    756          1.1       mrg extern __inline __m512i
    757          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    758          1.1       mrg _mm512_subs_epi8 (__m512i __A, __m512i __B)
    759          1.1       mrg {
    760          1.1       mrg   return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A,
    761          1.1       mrg 						  (__v64qi) __B,
    762          1.1       mrg 						  (__v64qi)
    763          1.1       mrg 						  _mm512_setzero_qi (),
    764          1.1       mrg 						  (__mmask64) -1);
    765          1.1       mrg }
    766          1.1       mrg 
    767          1.1       mrg extern __inline __m512i
    768          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    769          1.1       mrg _mm512_mask_subs_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
    770          1.1       mrg 		       __m512i __B)
    771          1.1       mrg {
    772          1.1       mrg   return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A,
    773          1.1       mrg 						  (__v64qi) __B,
    774          1.1       mrg 						  (__v64qi) __W,
    775          1.1       mrg 						  (__mmask64) __U);
    776          1.1       mrg }
    777          1.1       mrg 
    778          1.1       mrg extern __inline __m512i
    779          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    780          1.1       mrg _mm512_maskz_subs_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
    781          1.1       mrg {
    782          1.1       mrg   return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A,
    783          1.1       mrg 						  (__v64qi) __B,
    784          1.1       mrg 						  (__v64qi)
    785          1.1       mrg 						  _mm512_setzero_qi (),
    786          1.1       mrg 						  (__mmask64) __U);
    787          1.1       mrg }
    788          1.1       mrg 
    789          1.1       mrg extern __inline __m512i
    790          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    791          1.1       mrg _mm512_subs_epu8 (__m512i __A, __m512i __B)
    792          1.1       mrg {
    793          1.1       mrg   return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A,
    794          1.1       mrg 						   (__v64qi) __B,
    795          1.1       mrg 						   (__v64qi)
    796          1.1       mrg 						   _mm512_setzero_qi (),
    797          1.1       mrg 						   (__mmask64) -1);
    798          1.1       mrg }
    799          1.1       mrg 
    800          1.1       mrg extern __inline __m512i
    801          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    802          1.1       mrg _mm512_mask_subs_epu8 (__m512i __W, __mmask64 __U, __m512i __A,
    803          1.1       mrg 		       __m512i __B)
    804          1.1       mrg {
    805          1.1       mrg   return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A,
    806          1.1       mrg 						   (__v64qi) __B,
    807          1.1       mrg 						   (__v64qi) __W,
    808          1.1       mrg 						   (__mmask64) __U);
    809          1.1       mrg }
    810          1.1       mrg 
    811          1.1       mrg extern __inline __m512i
    812          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    813          1.1       mrg _mm512_maskz_subs_epu8 (__mmask64 __U, __m512i __A, __m512i __B)
    814          1.1       mrg {
    815          1.1       mrg   return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A,
    816          1.1       mrg 						   (__v64qi) __B,
    817          1.1       mrg 						   (__v64qi)
    818          1.1       mrg 						   _mm512_setzero_qi (),
    819          1.1       mrg 						   (__mmask64) __U);
    820          1.1       mrg }
    821          1.1       mrg 
    822          1.1       mrg extern __inline __m512i
    823          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    824          1.1       mrg _mm512_adds_epi8 (__m512i __A, __m512i __B)
    825          1.1       mrg {
    826          1.1       mrg   return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A,
    827          1.1       mrg 						  (__v64qi) __B,
    828          1.1       mrg 						  (__v64qi)
    829          1.1       mrg 						  _mm512_setzero_qi (),
    830          1.1       mrg 						  (__mmask64) -1);
    831          1.1       mrg }
    832          1.1       mrg 
    833          1.1       mrg extern __inline __m512i
    834          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    835          1.1       mrg _mm512_mask_adds_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
    836          1.1       mrg 		       __m512i __B)
    837          1.1       mrg {
    838          1.1       mrg   return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A,
    839          1.1       mrg 						  (__v64qi) __B,
    840          1.1       mrg 						  (__v64qi) __W,
    841          1.1       mrg 						  (__mmask64) __U);
    842          1.1       mrg }
    843          1.1       mrg 
    844          1.1       mrg extern __inline __m512i
    845          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    846          1.1       mrg _mm512_maskz_adds_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
    847          1.1       mrg {
    848          1.1       mrg   return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A,
    849          1.1       mrg 						  (__v64qi) __B,
    850          1.1       mrg 						  (__v64qi)
    851          1.1       mrg 						  _mm512_setzero_qi (),
    852          1.1       mrg 						  (__mmask64) __U);
    853          1.1       mrg }
    854          1.1       mrg 
    855          1.1       mrg extern __inline __m512i
    856          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    857          1.1       mrg _mm512_adds_epu8 (__m512i __A, __m512i __B)
    858          1.1       mrg {
    859          1.1       mrg   return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A,
    860          1.1       mrg 						   (__v64qi) __B,
    861          1.1       mrg 						   (__v64qi)
    862          1.1       mrg 						   _mm512_setzero_qi (),
    863          1.1       mrg 						   (__mmask64) -1);
    864          1.1       mrg }
    865          1.1       mrg 
    866          1.1       mrg extern __inline __m512i
    867          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    868          1.1       mrg _mm512_mask_adds_epu8 (__m512i __W, __mmask64 __U, __m512i __A,
    869          1.1       mrg 		       __m512i __B)
    870          1.1       mrg {
    871          1.1       mrg   return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A,
    872          1.1       mrg 						   (__v64qi) __B,
    873          1.1       mrg 						   (__v64qi) __W,
    874          1.1       mrg 						   (__mmask64) __U);
    875          1.1       mrg }
    876          1.1       mrg 
    877          1.1       mrg extern __inline __m512i
    878          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    879          1.1       mrg _mm512_maskz_adds_epu8 (__mmask64 __U, __m512i __A, __m512i __B)
    880          1.1       mrg {
    881          1.1       mrg   return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A,
    882          1.1       mrg 						   (__v64qi) __B,
    883          1.1       mrg 						   (__v64qi)
    884          1.1       mrg 						   _mm512_setzero_qi (),
    885          1.1       mrg 						   (__mmask64) __U);
    886          1.1       mrg }
    887          1.1       mrg 
    888          1.1       mrg extern __inline __m512i
    889          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    890          1.1       mrg _mm512_sub_epi16 (__m512i __A, __m512i __B)
    891          1.1       mrg {
    892          1.1       mrg   return (__m512i) ((__v32hu) __A - (__v32hu) __B);
    893          1.1       mrg }
    894          1.1       mrg 
    895          1.1       mrg extern __inline __m512i
    896          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    897          1.1       mrg _mm512_mask_sub_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
    898          1.1       mrg 		       __m512i __B)
    899          1.1       mrg {
    900          1.1       mrg   return (__m512i) __builtin_ia32_psubw512_mask ((__v32hi) __A,
    901          1.1       mrg 						 (__v32hi) __B,
    902          1.1       mrg 						 (__v32hi) __W,
    903          1.1       mrg 						 (__mmask32) __U);
    904          1.1       mrg }
    905          1.1       mrg 
    906          1.1       mrg extern __inline __m512i
    907          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    908          1.1       mrg _mm512_maskz_sub_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
    909          1.1       mrg {
    910          1.1       mrg   return (__m512i) __builtin_ia32_psubw512_mask ((__v32hi) __A,
    911          1.1       mrg 						 (__v32hi) __B,
    912          1.1       mrg 						 (__v32hi)
    913          1.1       mrg 						 _mm512_setzero_hi (),
    914          1.1       mrg 						 (__mmask32) __U);
    915          1.1       mrg }
    916          1.1       mrg 
    917          1.1       mrg extern __inline __m512i
    918          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    919          1.1       mrg _mm512_subs_epi16 (__m512i __A, __m512i __B)
    920          1.1       mrg {
    921          1.1       mrg   return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A,
    922          1.1       mrg 						  (__v32hi) __B,
    923          1.1       mrg 						  (__v32hi)
    924          1.1       mrg 						  _mm512_setzero_hi (),
    925          1.1       mrg 						  (__mmask32) -1);
    926          1.1       mrg }
    927          1.1       mrg 
    928          1.1       mrg extern __inline __m512i
    929          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    930          1.1       mrg _mm512_mask_subs_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
    931          1.1       mrg 			__m512i __B)
    932          1.1       mrg {
    933          1.1       mrg   return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A,
    934          1.1       mrg 						  (__v32hi) __B,
    935          1.1       mrg 						  (__v32hi) __W,
    936          1.1       mrg 						  (__mmask32) __U);
    937          1.1       mrg }
    938          1.1       mrg 
    939          1.1       mrg extern __inline __m512i
    940          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    941          1.1       mrg _mm512_maskz_subs_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
    942          1.1       mrg {
    943          1.1       mrg   return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A,
    944          1.1       mrg 						  (__v32hi) __B,
    945          1.1       mrg 						  (__v32hi)
    946          1.1       mrg 						  _mm512_setzero_hi (),
    947          1.1       mrg 						  (__mmask32) __U);
    948          1.1       mrg }
    949          1.1       mrg 
    950          1.1       mrg extern __inline __m512i
    951          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    952          1.1       mrg _mm512_subs_epu16 (__m512i __A, __m512i __B)
    953          1.1       mrg {
    954          1.1       mrg   return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A,
    955          1.1       mrg 						   (__v32hi) __B,
    956          1.1       mrg 						   (__v32hi)
    957          1.1       mrg 						   _mm512_setzero_hi (),
    958          1.1       mrg 						   (__mmask32) -1);
    959          1.1       mrg }
    960          1.1       mrg 
    961          1.1       mrg extern __inline __m512i
    962          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    963          1.1       mrg _mm512_mask_subs_epu16 (__m512i __W, __mmask32 __U, __m512i __A,
    964          1.1       mrg 			__m512i __B)
    965          1.1       mrg {
    966          1.1       mrg   return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A,
    967          1.1       mrg 						   (__v32hi) __B,
    968          1.1       mrg 						   (__v32hi) __W,
    969          1.1       mrg 						   (__mmask32) __U);
    970          1.1       mrg }
    971          1.1       mrg 
    972          1.1       mrg extern __inline __m512i
    973          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    974          1.1       mrg _mm512_maskz_subs_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
    975          1.1       mrg {
    976          1.1       mrg   return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A,
    977          1.1       mrg 						   (__v32hi) __B,
    978          1.1       mrg 						   (__v32hi)
    979          1.1       mrg 						   _mm512_setzero_hi (),
    980          1.1       mrg 						   (__mmask32) __U);
    981          1.1       mrg }
    982          1.1       mrg 
    983          1.1       mrg extern __inline __m512i
    984          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    985          1.1       mrg _mm512_add_epi16 (__m512i __A, __m512i __B)
    986          1.1       mrg {
    987          1.1       mrg   return (__m512i) ((__v32hu) __A + (__v32hu) __B);
    988          1.1       mrg }
    989          1.1       mrg 
    990          1.1       mrg extern __inline __m512i
    991          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    992          1.1       mrg _mm512_mask_add_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
    993          1.1       mrg 		       __m512i __B)
    994          1.1       mrg {
    995          1.1       mrg   return (__m512i) __builtin_ia32_paddw512_mask ((__v32hi) __A,
    996          1.1       mrg 						 (__v32hi) __B,
    997          1.1       mrg 						 (__v32hi) __W,
    998          1.1       mrg 						 (__mmask32) __U);
    999          1.1       mrg }
   1000          1.1       mrg 
   1001          1.1       mrg extern __inline __m512i
   1002          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1003          1.1       mrg _mm512_maskz_add_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
   1004          1.1       mrg {
   1005          1.1       mrg   return (__m512i) __builtin_ia32_paddw512_mask ((__v32hi) __A,
   1006          1.1       mrg 						 (__v32hi) __B,
   1007          1.1       mrg 						 (__v32hi)
   1008          1.1       mrg 						 _mm512_setzero_hi (),
   1009          1.1       mrg 						 (__mmask32) __U);
   1010          1.1       mrg }
   1011          1.1       mrg 
   1012          1.1       mrg extern __inline __m512i
   1013          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1014          1.1       mrg _mm512_adds_epi16 (__m512i __A, __m512i __B)
   1015          1.1       mrg {
   1016          1.1       mrg   return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A,
   1017          1.1       mrg 						  (__v32hi) __B,
   1018          1.1       mrg 						  (__v32hi)
   1019          1.1       mrg 						  _mm512_setzero_hi (),
   1020          1.1       mrg 						  (__mmask32) -1);
   1021          1.1       mrg }
   1022          1.1       mrg 
   1023          1.1       mrg extern __inline __m512i
   1024          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1025          1.1       mrg _mm512_mask_adds_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
   1026          1.1       mrg 			__m512i __B)
   1027          1.1       mrg {
   1028          1.1       mrg   return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A,
   1029          1.1       mrg 						  (__v32hi) __B,
   1030          1.1       mrg 						  (__v32hi) __W,
   1031          1.1       mrg 						  (__mmask32) __U);
   1032          1.1       mrg }
   1033          1.1       mrg 
   1034          1.1       mrg extern __inline __m512i
   1035          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1036          1.1       mrg _mm512_maskz_adds_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
   1037          1.1       mrg {
   1038          1.1       mrg   return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A,
   1039          1.1       mrg 						  (__v32hi) __B,
   1040          1.1       mrg 						  (__v32hi)
   1041          1.1       mrg 						  _mm512_setzero_hi (),
   1042          1.1       mrg 						  (__mmask32) __U);
   1043          1.1       mrg }
   1044          1.1       mrg 
   1045          1.1       mrg extern __inline __m512i
   1046          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1047          1.1       mrg _mm512_adds_epu16 (__m512i __A, __m512i __B)
   1048          1.1       mrg {
   1049          1.1       mrg   return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A,
   1050          1.1       mrg 						   (__v32hi) __B,
   1051          1.1       mrg 						   (__v32hi)
   1052          1.1       mrg 						   _mm512_setzero_hi (),
   1053          1.1       mrg 						   (__mmask32) -1);
   1054          1.1       mrg }
   1055          1.1       mrg 
   1056          1.1       mrg extern __inline __m512i
   1057          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1058          1.1       mrg _mm512_mask_adds_epu16 (__m512i __W, __mmask32 __U, __m512i __A,
   1059          1.1       mrg 			__m512i __B)
   1060          1.1       mrg {
   1061          1.1       mrg   return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A,
   1062          1.1       mrg 						   (__v32hi) __B,
   1063          1.1       mrg 						   (__v32hi) __W,
   1064          1.1       mrg 						   (__mmask32) __U);
   1065          1.1       mrg }
   1066          1.1       mrg 
   1067          1.1       mrg extern __inline __m512i
   1068          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1069          1.1       mrg _mm512_maskz_adds_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
   1070          1.1       mrg {
   1071          1.1       mrg   return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A,
   1072          1.1       mrg 						   (__v32hi) __B,
   1073          1.1       mrg 						   (__v32hi)
   1074          1.1       mrg 						   _mm512_setzero_hi (),
   1075          1.1       mrg 						   (__mmask32) __U);
   1076          1.1       mrg }
   1077          1.1       mrg 
   1078          1.1       mrg extern __inline __m512i
   1079          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1080          1.1       mrg _mm512_srl_epi16 (__m512i __A, __m128i __B)
   1081          1.1       mrg {
   1082          1.1       mrg   return (__m512i) __builtin_ia32_psrlw512_mask ((__v32hi) __A,
   1083          1.1       mrg 						 (__v8hi) __B,
   1084          1.1       mrg 						 (__v32hi)
   1085          1.1       mrg 						 _mm512_setzero_hi (),
   1086          1.1       mrg 						 (__mmask32) -1);
   1087          1.1       mrg }
   1088          1.1       mrg 
   1089          1.1       mrg extern __inline __m512i
   1090          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1091          1.1       mrg _mm512_mask_srl_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
   1092          1.1       mrg 		       __m128i __B)
   1093          1.1       mrg {
   1094          1.1       mrg   return (__m512i) __builtin_ia32_psrlw512_mask ((__v32hi) __A,
   1095          1.1       mrg 						 (__v8hi) __B,
   1096          1.1       mrg 						 (__v32hi) __W,
   1097          1.1       mrg 						 (__mmask32) __U);
   1098          1.1       mrg }
   1099          1.1       mrg 
   1100          1.1       mrg extern __inline __m512i
   1101          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1102          1.1       mrg _mm512_maskz_srl_epi16 (__mmask32 __U, __m512i __A, __m128i __B)
   1103          1.1       mrg {
   1104          1.1       mrg   return (__m512i) __builtin_ia32_psrlw512_mask ((__v32hi) __A,
   1105          1.1       mrg 						 (__v8hi) __B,
   1106          1.1       mrg 						 (__v32hi)
   1107          1.1       mrg 						 _mm512_setzero_hi (),
   1108          1.1       mrg 						 (__mmask32) __U);
   1109          1.1       mrg }
   1110          1.1       mrg 
   1111          1.1       mrg extern __inline __m512i
   1112          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1113          1.1       mrg _mm512_packs_epi16 (__m512i __A, __m512i __B)
   1114          1.1       mrg {
   1115          1.1       mrg   return (__m512i) __builtin_ia32_packsswb512_mask ((__v32hi) __A,
   1116          1.1       mrg 						    (__v32hi) __B,
   1117          1.1       mrg 						    (__v64qi)
   1118          1.1       mrg 						    _mm512_setzero_qi (),
   1119          1.1       mrg 						    (__mmask64) -1);
   1120          1.1       mrg }
   1121          1.1       mrg 
   1122          1.1       mrg extern __inline __m512i
   1123          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1124          1.1       mrg _mm512_sll_epi16 (__m512i __A, __m128i __B)
   1125          1.1       mrg {
   1126          1.1       mrg   return (__m512i) __builtin_ia32_psllw512_mask ((__v32hi) __A,
   1127          1.1       mrg 						 (__v8hi) __B,
   1128          1.1       mrg 						 (__v32hi)
   1129          1.1       mrg 						 _mm512_setzero_hi (),
   1130          1.1       mrg 						 (__mmask32) -1);
   1131          1.1       mrg }
   1132          1.1       mrg 
   1133          1.1       mrg extern __inline __m512i
   1134          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1135          1.1       mrg _mm512_mask_sll_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
   1136          1.1       mrg 		       __m128i __B)
   1137          1.1       mrg {
   1138          1.1       mrg   return (__m512i) __builtin_ia32_psllw512_mask ((__v32hi) __A,
   1139          1.1       mrg 						 (__v8hi) __B,
   1140          1.1       mrg 						 (__v32hi) __W,
   1141          1.1       mrg 						 (__mmask32) __U);
   1142          1.1       mrg }
   1143          1.1       mrg 
   1144          1.1       mrg extern __inline __m512i
   1145          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1146          1.1       mrg _mm512_maskz_sll_epi16 (__mmask32 __U, __m512i __A, __m128i __B)
   1147          1.1       mrg {
   1148          1.1       mrg   return (__m512i) __builtin_ia32_psllw512_mask ((__v32hi) __A,
   1149          1.1       mrg 						 (__v8hi) __B,
   1150          1.1       mrg 						 (__v32hi)
   1151          1.1       mrg 						 _mm512_setzero_hi (),
   1152          1.1       mrg 						 (__mmask32) __U);
   1153          1.1       mrg }
   1154          1.1       mrg 
   1155          1.1       mrg extern __inline __m512i
   1156          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1157          1.1       mrg _mm512_maddubs_epi16 (__m512i __X, __m512i __Y)
   1158          1.1       mrg {
   1159          1.1       mrg   return (__m512i) __builtin_ia32_pmaddubsw512_mask ((__v64qi) __X,
   1160          1.1       mrg 						     (__v64qi) __Y,
   1161          1.1       mrg 						     (__v32hi)
   1162          1.1       mrg 						     _mm512_setzero_hi (),
   1163          1.1       mrg 						     (__mmask32) -1);
   1164          1.1       mrg }
   1165          1.1       mrg 
   1166          1.1       mrg extern __inline __m512i
   1167          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1168          1.1       mrg _mm512_mask_maddubs_epi16 (__m512i __W, __mmask32 __U, __m512i __X,
   1169          1.1       mrg 			   __m512i __Y)
   1170          1.1       mrg {
   1171          1.1       mrg   return (__m512i) __builtin_ia32_pmaddubsw512_mask ((__v64qi) __X,
   1172          1.1       mrg 						     (__v64qi) __Y,
   1173          1.1       mrg 						     (__v32hi) __W,
   1174          1.1       mrg 						     (__mmask32) __U);
   1175          1.1       mrg }
   1176          1.1       mrg 
   1177          1.1       mrg extern __inline __m512i
   1178          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1179          1.1       mrg _mm512_maskz_maddubs_epi16 (__mmask32 __U, __m512i __X, __m512i __Y)
   1180          1.1       mrg {
   1181          1.1       mrg   return (__m512i) __builtin_ia32_pmaddubsw512_mask ((__v64qi) __X,
   1182          1.1       mrg 						     (__v64qi) __Y,
   1183          1.1       mrg 						     (__v32hi)
   1184          1.1       mrg 						     _mm512_setzero_hi (),
   1185          1.1       mrg 						     (__mmask32) __U);
   1186          1.1       mrg }
   1187          1.1       mrg 
   1188          1.1       mrg extern __inline __m512i
   1189          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1190          1.1       mrg _mm512_madd_epi16 (__m512i __A, __m512i __B)
   1191          1.1       mrg {
   1192          1.1       mrg   return (__m512i) __builtin_ia32_pmaddwd512_mask ((__v32hi) __A,
   1193          1.1       mrg 						   (__v32hi) __B,
   1194          1.1       mrg 						   (__v16si)
   1195          1.1       mrg 						   _mm512_setzero_si512 (),
   1196          1.1       mrg 						   (__mmask16) -1);
   1197          1.1       mrg }
   1198          1.1       mrg 
   1199          1.1       mrg extern __inline __m512i
   1200          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1201          1.1       mrg _mm512_mask_madd_epi16 (__m512i __W, __mmask16 __U, __m512i __A,
   1202          1.1       mrg 			__m512i __B)
   1203          1.1       mrg {
   1204          1.1       mrg   return (__m512i) __builtin_ia32_pmaddwd512_mask ((__v32hi) __A,
   1205          1.1       mrg 						   (__v32hi) __B,
   1206          1.1       mrg 						   (__v16si) __W,
   1207          1.1       mrg 						   (__mmask16) __U);
   1208          1.1       mrg }
   1209          1.1       mrg 
   1210          1.1       mrg extern __inline __m512i
   1211          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1212          1.1       mrg _mm512_maskz_madd_epi16 (__mmask16 __U, __m512i __A, __m512i __B)
   1213          1.1       mrg {
   1214          1.1       mrg   return (__m512i) __builtin_ia32_pmaddwd512_mask ((__v32hi) __A,
   1215          1.1       mrg 						   (__v32hi) __B,
   1216          1.1       mrg 						   (__v16si)
   1217          1.1       mrg 						   _mm512_setzero_si512 (),
   1218          1.1       mrg 						   (__mmask16) __U);
   1219          1.1       mrg }
   1220          1.1       mrg 
   1221          1.1       mrg extern __inline __m512i
   1222          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1223          1.1       mrg _mm512_unpackhi_epi8 (__m512i __A, __m512i __B)
   1224          1.1       mrg {
   1225          1.1       mrg   return (__m512i) __builtin_ia32_punpckhbw512_mask ((__v64qi) __A,
   1226          1.1       mrg 						     (__v64qi) __B,
   1227          1.1       mrg 						     (__v64qi)
   1228          1.1       mrg 						     _mm512_setzero_qi (),
   1229          1.1       mrg 						     (__mmask64) -1);
   1230          1.1       mrg }
   1231          1.1       mrg 
   1232          1.1       mrg extern __inline __m512i
   1233          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1234          1.1       mrg _mm512_mask_unpackhi_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
   1235          1.1       mrg 			   __m512i __B)
   1236          1.1       mrg {
   1237          1.1       mrg   return (__m512i) __builtin_ia32_punpckhbw512_mask ((__v64qi) __A,
   1238          1.1       mrg 						     (__v64qi) __B,
   1239          1.1       mrg 						     (__v64qi) __W,
   1240          1.1       mrg 						     (__mmask64) __U);
   1241          1.1       mrg }
   1242          1.1       mrg 
   1243          1.1       mrg extern __inline __m512i
   1244          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1245          1.1       mrg _mm512_maskz_unpackhi_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
   1246          1.1       mrg {
   1247          1.1       mrg   return (__m512i) __builtin_ia32_punpckhbw512_mask ((__v64qi) __A,
   1248          1.1       mrg 						     (__v64qi) __B,
   1249          1.1       mrg 						     (__v64qi)
   1250          1.1       mrg 						     _mm512_setzero_qi(),
   1251          1.1       mrg 						     (__mmask64) __U);
   1252          1.1       mrg }
   1253          1.1       mrg 
   1254          1.1       mrg extern __inline __m512i
   1255          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1256          1.1       mrg _mm512_unpackhi_epi16 (__m512i __A, __m512i __B)
   1257          1.1       mrg {
   1258          1.1       mrg   return (__m512i) __builtin_ia32_punpckhwd512_mask ((__v32hi) __A,
   1259          1.1       mrg 						     (__v32hi) __B,
   1260          1.1       mrg 						     (__v32hi)
   1261          1.1       mrg 						     _mm512_setzero_hi (),
   1262          1.1       mrg 						     (__mmask32) -1);
   1263          1.1       mrg }
   1264          1.1       mrg 
   1265          1.1       mrg extern __inline __m512i
   1266          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1267          1.1       mrg _mm512_mask_unpackhi_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
   1268          1.1       mrg 			    __m512i __B)
   1269          1.1       mrg {
   1270          1.1       mrg   return (__m512i) __builtin_ia32_punpckhwd512_mask ((__v32hi) __A,
   1271          1.1       mrg 						     (__v32hi) __B,
   1272          1.1       mrg 						     (__v32hi) __W,
   1273          1.1       mrg 						     (__mmask32) __U);
   1274          1.1       mrg }
   1275          1.1       mrg 
   1276          1.1       mrg extern __inline __m512i
   1277          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1278          1.1       mrg _mm512_maskz_unpackhi_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
   1279          1.1       mrg {
   1280          1.1       mrg   return (__m512i) __builtin_ia32_punpckhwd512_mask ((__v32hi) __A,
   1281          1.1       mrg 						     (__v32hi) __B,
   1282          1.1       mrg 						     (__v32hi)
   1283          1.1       mrg 						     _mm512_setzero_hi(),
   1284          1.1       mrg 						     (__mmask32) __U);
   1285          1.1       mrg }
   1286          1.1       mrg 
   1287          1.1       mrg extern __inline __m512i
   1288          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1289          1.1       mrg _mm512_unpacklo_epi8 (__m512i __A, __m512i __B)
   1290          1.1       mrg {
   1291          1.1       mrg   return (__m512i) __builtin_ia32_punpcklbw512_mask ((__v64qi) __A,
   1292          1.1       mrg 						     (__v64qi) __B,
   1293          1.1       mrg 						     (__v64qi)
   1294          1.1       mrg 						     _mm512_setzero_qi (),
   1295          1.1       mrg 						     (__mmask64) -1);
   1296          1.1       mrg }
   1297          1.1       mrg 
   1298          1.1       mrg extern __inline __m512i
   1299          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1300          1.1       mrg _mm512_mask_unpacklo_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
   1301          1.1       mrg 			   __m512i __B)
   1302          1.1       mrg {
   1303          1.1       mrg   return (__m512i) __builtin_ia32_punpcklbw512_mask ((__v64qi) __A,
   1304          1.1       mrg 						     (__v64qi) __B,
   1305          1.1       mrg 						     (__v64qi) __W,
   1306          1.1       mrg 						     (__mmask64) __U);
   1307          1.1       mrg }
   1308          1.1       mrg 
   1309          1.1       mrg extern __inline __m512i
   1310          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1311          1.1       mrg _mm512_maskz_unpacklo_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
   1312          1.1       mrg {
   1313          1.1       mrg   return (__m512i) __builtin_ia32_punpcklbw512_mask ((__v64qi) __A,
   1314          1.1       mrg 						     (__v64qi) __B,
   1315          1.1       mrg 						     (__v64qi)
   1316          1.1       mrg 						     _mm512_setzero_qi(),
   1317          1.1       mrg 						     (__mmask64) __U);
   1318          1.1       mrg }
   1319          1.1       mrg 
   1320          1.1       mrg extern __inline __m512i
   1321          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1322          1.1       mrg _mm512_unpacklo_epi16 (__m512i __A, __m512i __B)
   1323          1.1       mrg {
   1324          1.1       mrg   return (__m512i) __builtin_ia32_punpcklwd512_mask ((__v32hi) __A,
   1325          1.1       mrg 						     (__v32hi) __B,
   1326          1.1       mrg 						     (__v32hi)
   1327          1.1       mrg 						     _mm512_setzero_hi (),
   1328          1.1       mrg 						     (__mmask32) -1);
   1329          1.1       mrg }
   1330          1.1       mrg 
   1331          1.1       mrg extern __inline __m512i
   1332          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1333          1.1       mrg _mm512_mask_unpacklo_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
   1334          1.1       mrg 			    __m512i __B)
   1335          1.1       mrg {
   1336          1.1       mrg   return (__m512i) __builtin_ia32_punpcklwd512_mask ((__v32hi) __A,
   1337          1.1       mrg 						     (__v32hi) __B,
   1338          1.1       mrg 						     (__v32hi) __W,
   1339          1.1       mrg 						     (__mmask32) __U);
   1340          1.1       mrg }
   1341          1.1       mrg 
   1342          1.1       mrg extern __inline __m512i
   1343          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1344          1.1       mrg _mm512_maskz_unpacklo_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
   1345          1.1       mrg {
   1346          1.1       mrg   return (__m512i) __builtin_ia32_punpcklwd512_mask ((__v32hi) __A,
   1347          1.1       mrg 						     (__v32hi) __B,
   1348          1.1       mrg 						     (__v32hi)
   1349          1.1       mrg 						     _mm512_setzero_hi(),
   1350          1.1       mrg 						     (__mmask32) __U);
   1351          1.1       mrg }
   1352          1.1       mrg 
   1353          1.1       mrg extern __inline __mmask64
   1354          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1355          1.1       mrg _mm512_cmpeq_epu8_mask (__m512i __A, __m512i __B)
   1356          1.1       mrg {
   1357          1.1       mrg   return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __A,
   1358          1.1       mrg 						    (__v64qi) __B, 0,
   1359          1.1       mrg 						    (__mmask64) -1);
   1360          1.1       mrg }
   1361          1.1       mrg 
   1362          1.1       mrg extern __inline __mmask64
   1363          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1364          1.1       mrg _mm512_cmpeq_epi8_mask (__m512i __A, __m512i __B)
   1365          1.1       mrg {
   1366          1.1       mrg   return (__mmask64) __builtin_ia32_pcmpeqb512_mask ((__v64qi) __A,
   1367          1.1       mrg 						     (__v64qi) __B,
   1368          1.1       mrg 						     (__mmask64) -1);
   1369          1.1       mrg }
   1370          1.1       mrg 
   1371          1.1       mrg extern __inline __mmask64
   1372          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1373          1.1       mrg _mm512_mask_cmpeq_epu8_mask (__mmask64 __U, __m512i __A, __m512i __B)
   1374          1.1       mrg {
   1375          1.1       mrg   return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __A,
   1376          1.1       mrg 						    (__v64qi) __B, 0,
   1377          1.1       mrg 						    __U);
   1378          1.1       mrg }
   1379          1.1       mrg 
   1380          1.1       mrg extern __inline __mmask64
   1381          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1382          1.1       mrg _mm512_mask_cmpeq_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B)
   1383          1.1       mrg {
   1384          1.1       mrg   return (__mmask64) __builtin_ia32_pcmpeqb512_mask ((__v64qi) __A,
   1385          1.1       mrg 						     (__v64qi) __B,
   1386          1.1       mrg 						     __U);
   1387          1.1       mrg }
   1388          1.1       mrg 
   1389          1.1       mrg extern __inline __mmask32
   1390          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1391          1.1       mrg _mm512_cmpeq_epu16_mask (__m512i __A, __m512i __B)
   1392          1.1       mrg {
   1393          1.1       mrg   return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __A,
   1394          1.1       mrg 						    (__v32hi) __B, 0,
   1395          1.1       mrg 						    (__mmask32) -1);
   1396          1.1       mrg }
   1397          1.1       mrg 
   1398          1.1       mrg extern __inline __mmask32
   1399          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1400          1.1       mrg _mm512_cmpeq_epi16_mask (__m512i __A, __m512i __B)
   1401          1.1       mrg {
   1402          1.1       mrg   return (__mmask32) __builtin_ia32_pcmpeqw512_mask ((__v32hi) __A,
   1403          1.1       mrg 						     (__v32hi) __B,
   1404          1.1       mrg 						     (__mmask32) -1);
   1405          1.1       mrg }
   1406          1.1       mrg 
   1407          1.1       mrg extern __inline __mmask32
   1408          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1409          1.1       mrg _mm512_mask_cmpeq_epu16_mask (__mmask32 __U, __m512i __A, __m512i __B)
   1410          1.1       mrg {
   1411          1.1       mrg   return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __A,
   1412          1.1       mrg 						    (__v32hi) __B, 0,
   1413          1.1       mrg 						    __U);
   1414          1.1       mrg }
   1415          1.1       mrg 
   1416          1.1       mrg extern __inline __mmask32
   1417          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1418          1.1       mrg _mm512_mask_cmpeq_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B)
   1419          1.1       mrg {
   1420          1.1       mrg   return (__mmask32) __builtin_ia32_pcmpeqw512_mask ((__v32hi) __A,
   1421          1.1       mrg 						     (__v32hi) __B,
   1422          1.1       mrg 						     __U);
   1423          1.1       mrg }
   1424          1.1       mrg 
   1425          1.1       mrg extern __inline __mmask64
   1426          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1427          1.1       mrg _mm512_cmpgt_epu8_mask (__m512i __A, __m512i __B)
   1428          1.1       mrg {
   1429          1.1       mrg   return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __A,
   1430          1.1       mrg 						    (__v64qi) __B, 6,
   1431          1.1       mrg 						    (__mmask64) -1);
   1432          1.1       mrg }
   1433          1.1       mrg 
   1434          1.1       mrg extern __inline __mmask64
   1435          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1436          1.1       mrg _mm512_cmpgt_epi8_mask (__m512i __A, __m512i __B)
   1437          1.1       mrg {
   1438          1.1       mrg   return (__mmask64) __builtin_ia32_pcmpgtb512_mask ((__v64qi) __A,
   1439          1.1       mrg 						     (__v64qi) __B,
   1440          1.1       mrg 						     (__mmask64) -1);
   1441          1.1       mrg }
   1442          1.1       mrg 
   1443          1.1       mrg extern __inline __mmask64
   1444          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1445          1.1       mrg _mm512_mask_cmpgt_epu8_mask (__mmask64 __U, __m512i __A, __m512i __B)
   1446          1.1       mrg {
   1447          1.1       mrg   return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __A,
   1448          1.1       mrg 						    (__v64qi) __B, 6,
   1449          1.1       mrg 						    __U);
   1450          1.1       mrg }
   1451          1.1       mrg 
   1452          1.1       mrg extern __inline __mmask64
   1453          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1454          1.1       mrg _mm512_mask_cmpgt_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B)
   1455          1.1       mrg {
   1456          1.1       mrg   return (__mmask64) __builtin_ia32_pcmpgtb512_mask ((__v64qi) __A,
   1457          1.1       mrg 						     (__v64qi) __B,
   1458          1.1       mrg 						     __U);
   1459          1.1       mrg }
   1460          1.1       mrg 
   1461          1.1       mrg extern __inline __mmask32
   1462          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1463          1.1       mrg _mm512_cmpgt_epu16_mask (__m512i __A, __m512i __B)
   1464          1.1       mrg {
   1465          1.1       mrg   return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __A,
   1466          1.1       mrg 						    (__v32hi) __B, 6,
   1467          1.1       mrg 						    (__mmask32) -1);
   1468          1.1       mrg }
   1469          1.1       mrg 
   1470          1.1       mrg extern __inline __mmask32
   1471          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1472          1.1       mrg _mm512_cmpgt_epi16_mask (__m512i __A, __m512i __B)
   1473          1.1       mrg {
   1474          1.1       mrg   return (__mmask32) __builtin_ia32_pcmpgtw512_mask ((__v32hi) __A,
   1475          1.1       mrg 						     (__v32hi) __B,
   1476          1.1       mrg 						     (__mmask32) -1);
   1477          1.1       mrg }
   1478          1.1       mrg 
   1479          1.1       mrg extern __inline __mmask32
   1480          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1481          1.1       mrg _mm512_mask_cmpgt_epu16_mask (__mmask32 __U, __m512i __A, __m512i __B)
   1482          1.1       mrg {
   1483          1.1       mrg   return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __A,
   1484          1.1       mrg 						    (__v32hi) __B, 6,
   1485          1.1       mrg 						    __U);
   1486          1.1       mrg }
   1487          1.1       mrg 
   1488          1.1       mrg extern __inline __mmask32
   1489          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1490          1.1       mrg _mm512_mask_cmpgt_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B)
   1491          1.1       mrg {
   1492          1.1       mrg   return (__mmask32) __builtin_ia32_pcmpgtw512_mask ((__v32hi) __A,
   1493          1.1       mrg 						     (__v32hi) __B,
   1494          1.1       mrg 						     __U);
   1495          1.1       mrg }
   1496          1.1       mrg 
   1497          1.1       mrg extern __inline __mmask64
   1498          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1499          1.1       mrg _mm512_movepi8_mask (__m512i __A)
   1500          1.1       mrg {
   1501          1.1       mrg   return (__mmask64) __builtin_ia32_cvtb2mask512 ((__v64qi) __A);
   1502          1.1       mrg }
   1503          1.1       mrg 
   1504          1.1       mrg extern __inline __mmask32
   1505          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1506          1.1       mrg _mm512_movepi16_mask (__m512i __A)
   1507          1.1       mrg {
   1508          1.1       mrg   return (__mmask32) __builtin_ia32_cvtw2mask512 ((__v32hi) __A);
   1509          1.1       mrg }
   1510          1.1       mrg 
   1511          1.1       mrg extern __inline __m512i
   1512          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1513          1.1       mrg _mm512_movm_epi8 (__mmask64 __A)
   1514          1.1       mrg {
   1515          1.1       mrg   return (__m512i) __builtin_ia32_cvtmask2b512 (__A);
   1516          1.1       mrg }
   1517          1.1       mrg 
   1518          1.1       mrg extern __inline __m512i
   1519          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1520          1.1       mrg _mm512_movm_epi16 (__mmask32 __A)
   1521          1.1       mrg {
   1522          1.1       mrg   return (__m512i) __builtin_ia32_cvtmask2w512 (__A);
   1523          1.1       mrg }
   1524          1.1       mrg 
   1525          1.1       mrg extern __inline __mmask64
   1526          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1527          1.1       mrg _mm512_test_epi8_mask (__m512i __A, __m512i __B)
   1528          1.1       mrg {
   1529          1.1       mrg   return (__mmask64) __builtin_ia32_ptestmb512 ((__v64qi) __A,
   1530          1.1       mrg 						(__v64qi) __B,
   1531          1.1       mrg 						(__mmask64) -1);
   1532          1.1       mrg }
   1533          1.1       mrg 
   1534          1.1       mrg extern __inline __mmask64
   1535          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1536          1.1       mrg _mm512_mask_test_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B)
   1537          1.1       mrg {
   1538          1.1       mrg   return (__mmask64) __builtin_ia32_ptestmb512 ((__v64qi) __A,
   1539          1.1       mrg 						(__v64qi) __B, __U);
   1540          1.1       mrg }
   1541          1.1       mrg 
   1542          1.1       mrg extern __inline __mmask32
   1543          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1544          1.1       mrg _mm512_test_epi16_mask (__m512i __A, __m512i __B)
   1545          1.1       mrg {
   1546          1.1       mrg   return (__mmask32) __builtin_ia32_ptestmw512 ((__v32hi) __A,
   1547          1.1       mrg 						(__v32hi) __B,
   1548          1.1       mrg 						(__mmask32) -1);
   1549          1.1       mrg }
   1550          1.1       mrg 
   1551          1.1       mrg extern __inline __mmask32
   1552          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1553          1.1       mrg _mm512_mask_test_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B)
   1554          1.1       mrg {
   1555          1.1       mrg   return (__mmask32) __builtin_ia32_ptestmw512 ((__v32hi) __A,
   1556          1.1       mrg 						(__v32hi) __B, __U);
   1557          1.1       mrg }
   1558          1.1       mrg 
   1559          1.1       mrg extern __inline __mmask64
   1560          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1561          1.1       mrg _mm512_testn_epi8_mask (__m512i __A, __m512i __B)
   1562          1.1       mrg {
   1563          1.1       mrg   return (__mmask64) __builtin_ia32_ptestnmb512 ((__v64qi) __A,
   1564          1.1       mrg 						 (__v64qi) __B,
   1565          1.1       mrg 						 (__mmask64) -1);
   1566          1.1       mrg }
   1567          1.1       mrg 
   1568          1.1       mrg extern __inline __mmask64
   1569          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1570          1.1       mrg _mm512_mask_testn_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B)
   1571          1.1       mrg {
   1572          1.1       mrg   return (__mmask64) __builtin_ia32_ptestnmb512 ((__v64qi) __A,
   1573          1.1       mrg 						 (__v64qi) __B, __U);
   1574          1.1       mrg }
   1575          1.1       mrg 
   1576          1.1       mrg extern __inline __mmask32
   1577          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1578          1.1       mrg _mm512_testn_epi16_mask (__m512i __A, __m512i __B)
   1579          1.1       mrg {
   1580          1.1       mrg   return (__mmask32) __builtin_ia32_ptestnmw512 ((__v32hi) __A,
   1581          1.1       mrg 						 (__v32hi) __B,
   1582          1.1       mrg 						 (__mmask32) -1);
   1583          1.1       mrg }
   1584          1.1       mrg 
   1585          1.1       mrg extern __inline __mmask32
   1586          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1587          1.1       mrg _mm512_mask_testn_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B)
   1588          1.1       mrg {
   1589          1.1       mrg   return (__mmask32) __builtin_ia32_ptestnmw512 ((__v32hi) __A,
   1590          1.1       mrg 						 (__v32hi) __B, __U);
   1591          1.1       mrg }
   1592          1.1       mrg 
   1593          1.1       mrg extern __inline __m512i
   1594          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1595          1.1       mrg _mm512_shuffle_epi8 (__m512i __A, __m512i __B)
   1596          1.1       mrg {
   1597          1.1       mrg   return (__m512i) __builtin_ia32_pshufb512_mask ((__v64qi) __A,
   1598          1.1       mrg 						  (__v64qi) __B,
   1599          1.1       mrg 						  (__v64qi)
   1600          1.1       mrg 						  _mm512_setzero_qi (),
   1601          1.1       mrg 						  (__mmask64) -1);
   1602          1.1       mrg }
   1603          1.1       mrg 
   1604          1.1       mrg extern __inline __m512i
   1605          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1606          1.1       mrg _mm512_mask_shuffle_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
   1607          1.1       mrg 			  __m512i __B)
   1608          1.1       mrg {
   1609          1.1       mrg   return (__m512i) __builtin_ia32_pshufb512_mask ((__v64qi) __A,
   1610          1.1       mrg 						  (__v64qi) __B,
   1611          1.1       mrg 						  (__v64qi) __W,
   1612          1.1       mrg 						  (__mmask64) __U);
   1613          1.1       mrg }
   1614          1.1       mrg 
   1615          1.1       mrg extern __inline __m512i
   1616          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1617          1.1       mrg _mm512_maskz_shuffle_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
   1618          1.1       mrg {
   1619          1.1       mrg   return (__m512i) __builtin_ia32_pshufb512_mask ((__v64qi) __A,
   1620          1.1       mrg 						  (__v64qi) __B,
   1621          1.1       mrg 						  (__v64qi)
   1622          1.1       mrg 						  _mm512_setzero_qi (),
   1623          1.1       mrg 						  (__mmask64) __U);
   1624          1.1       mrg }
   1625          1.1       mrg 
   1626          1.1       mrg extern __inline __m512i
   1627          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1628          1.1       mrg _mm512_min_epu16 (__m512i __A, __m512i __B)
   1629          1.1       mrg {
   1630          1.1       mrg   return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A,
   1631          1.1       mrg 						  (__v32hi) __B,
   1632          1.1       mrg 						  (__v32hi)
   1633          1.1       mrg 						  _mm512_setzero_hi (),
   1634          1.1       mrg 						  (__mmask32) -1);
   1635          1.1       mrg }
   1636          1.1       mrg 
   1637          1.1       mrg extern __inline __m512i
   1638          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1639          1.1       mrg _mm512_maskz_min_epu16 (__mmask32 __M, __m512i __A, __m512i __B)
   1640          1.1       mrg {
   1641          1.1       mrg   return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A,
   1642          1.1       mrg 						  (__v32hi) __B,
   1643          1.1       mrg 						  (__v32hi)
   1644          1.1       mrg 						  _mm512_setzero_hi(),
   1645          1.1       mrg 						  (__mmask32) __M);
   1646          1.1       mrg }
   1647          1.1       mrg 
   1648          1.1       mrg extern __inline __m512i
   1649          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1650          1.1       mrg _mm512_mask_min_epu16 (__m512i __W, __mmask32 __M, __m512i __A,
   1651          1.1       mrg 		       __m512i __B)
   1652          1.1       mrg {
   1653          1.1       mrg   return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A,
   1654          1.1       mrg 						  (__v32hi) __B,
   1655          1.1       mrg 						  (__v32hi) __W,
   1656          1.1       mrg 						  (__mmask32) __M);
   1657          1.1       mrg }
   1658          1.1       mrg 
   1659          1.1       mrg extern __inline __m512i
   1660          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1661          1.1       mrg _mm512_min_epi16 (__m512i __A, __m512i __B)
   1662          1.1       mrg {
   1663          1.1       mrg   return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A,
   1664          1.1       mrg 						  (__v32hi) __B,
   1665          1.1       mrg 						  (__v32hi)
   1666          1.1       mrg 						  _mm512_setzero_hi (),
   1667          1.1       mrg 						  (__mmask32) -1);
   1668          1.1       mrg }
   1669          1.1       mrg 
   1670          1.1       mrg extern __inline __m512i
   1671          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1672          1.1       mrg _mm512_maskz_min_epi16 (__mmask32 __M, __m512i __A, __m512i __B)
   1673          1.1       mrg {
   1674          1.1       mrg   return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A,
   1675          1.1       mrg 						  (__v32hi) __B,
   1676          1.1       mrg 						  (__v32hi)
   1677          1.1       mrg 						  _mm512_setzero_hi(),
   1678          1.1       mrg 						  (__mmask32) __M);
   1679          1.1       mrg }
   1680          1.1       mrg 
   1681          1.1       mrg extern __inline __m512i
   1682          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1683          1.1       mrg _mm512_mask_min_epi16 (__m512i __W, __mmask32 __M, __m512i __A,
   1684          1.1       mrg 		       __m512i __B)
   1685          1.1       mrg {
   1686          1.1       mrg   return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A,
   1687          1.1       mrg 						  (__v32hi) __B,
   1688          1.1       mrg 						  (__v32hi) __W,
   1689          1.1       mrg 						  (__mmask32) __M);
   1690          1.1       mrg }
   1691          1.1       mrg 
   1692          1.1       mrg extern __inline __m512i
   1693          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1694          1.1       mrg _mm512_max_epu8 (__m512i __A, __m512i __B)
   1695          1.1       mrg {
   1696          1.1       mrg   return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A,
   1697          1.1       mrg 						  (__v64qi) __B,
   1698          1.1       mrg 						  (__v64qi)
   1699          1.1       mrg 						  _mm512_setzero_qi (),
   1700          1.1       mrg 						  (__mmask64) -1);
   1701          1.1       mrg }
   1702          1.1       mrg 
   1703          1.1       mrg extern __inline __m512i
   1704          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1705          1.1       mrg _mm512_maskz_max_epu8 (__mmask64 __M, __m512i __A, __m512i __B)
   1706          1.1       mrg {
   1707          1.1       mrg   return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A,
   1708          1.1       mrg 						  (__v64qi) __B,
   1709          1.1       mrg 						  (__v64qi)
   1710          1.1       mrg 						  _mm512_setzero_qi(),
   1711          1.1       mrg 						  (__mmask64) __M);
   1712          1.1       mrg }
   1713          1.1       mrg 
   1714          1.1       mrg extern __inline __m512i
   1715          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1716          1.1       mrg _mm512_mask_max_epu8 (__m512i __W, __mmask64 __M, __m512i __A,
   1717          1.1       mrg 		      __m512i __B)
   1718          1.1       mrg {
   1719          1.1       mrg   return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A,
   1720          1.1       mrg 						  (__v64qi) __B,
   1721          1.1       mrg 						  (__v64qi) __W,
   1722          1.1       mrg 						  (__mmask64) __M);
   1723          1.1       mrg }
   1724          1.1       mrg 
   1725          1.1       mrg extern __inline __m512i
   1726          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1727          1.1       mrg _mm512_max_epi8 (__m512i __A, __m512i __B)
   1728          1.1       mrg {
   1729          1.1       mrg   return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A,
   1730          1.1       mrg 						  (__v64qi) __B,
   1731          1.1       mrg 						  (__v64qi)
   1732          1.1       mrg 						  _mm512_setzero_qi (),
   1733          1.1       mrg 						  (__mmask64) -1);
   1734          1.1       mrg }
   1735          1.1       mrg 
   1736          1.1       mrg extern __inline __m512i
   1737          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1738          1.1       mrg _mm512_maskz_max_epi8 (__mmask64 __M, __m512i __A, __m512i __B)
   1739          1.1       mrg {
   1740          1.1       mrg   return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A,
   1741          1.1       mrg 						  (__v64qi) __B,
   1742          1.1       mrg 						  (__v64qi)
   1743          1.1       mrg 						  _mm512_setzero_qi(),
   1744          1.1       mrg 						  (__mmask64) __M);
   1745          1.1       mrg }
   1746          1.1       mrg 
   1747          1.1       mrg extern __inline __m512i
   1748          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1749          1.1       mrg _mm512_mask_max_epi8 (__m512i __W, __mmask64 __M, __m512i __A,
   1750          1.1       mrg 		      __m512i __B)
   1751          1.1       mrg {
   1752          1.1       mrg   return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A,
   1753          1.1       mrg 						  (__v64qi) __B,
   1754          1.1       mrg 						  (__v64qi) __W,
   1755          1.1       mrg 						  (__mmask64) __M);
   1756          1.1       mrg }
   1757          1.1       mrg 
   1758          1.1       mrg extern __inline __m512i
   1759          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1760          1.1       mrg _mm512_min_epu8 (__m512i __A, __m512i __B)
   1761          1.1       mrg {
   1762          1.1       mrg   return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A,
   1763          1.1       mrg 						  (__v64qi) __B,
   1764          1.1       mrg 						  (__v64qi)
   1765          1.1       mrg 						  _mm512_setzero_qi (),
   1766          1.1       mrg 						  (__mmask64) -1);
   1767          1.1       mrg }
   1768          1.1       mrg 
   1769          1.1       mrg extern __inline __m512i
   1770          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1771          1.1       mrg _mm512_maskz_min_epu8 (__mmask64 __M, __m512i __A, __m512i __B)
   1772          1.1       mrg {
   1773          1.1       mrg   return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A,
   1774          1.1       mrg 						  (__v64qi) __B,
   1775          1.1       mrg 						  (__v64qi)
   1776          1.1       mrg 						  _mm512_setzero_qi(),
   1777          1.1       mrg 						  (__mmask64) __M);
   1778          1.1       mrg }
   1779          1.1       mrg 
   1780          1.1       mrg extern __inline __m512i
   1781          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1782          1.1       mrg _mm512_mask_min_epu8 (__m512i __W, __mmask64 __M, __m512i __A,
   1783          1.1       mrg 		      __m512i __B)
   1784          1.1       mrg {
   1785          1.1       mrg   return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A,
   1786          1.1       mrg 						  (__v64qi) __B,
   1787          1.1       mrg 						  (__v64qi) __W,
   1788          1.1       mrg 						  (__mmask64) __M);
   1789          1.1       mrg }
   1790          1.1       mrg 
   1791          1.1       mrg extern __inline __m512i
   1792          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1793          1.1       mrg _mm512_min_epi8 (__m512i __A, __m512i __B)
   1794          1.1       mrg {
   1795          1.1       mrg   return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A,
   1796          1.1       mrg 						  (__v64qi) __B,
   1797          1.1       mrg 						  (__v64qi)
   1798          1.1       mrg 						  _mm512_setzero_qi (),
   1799          1.1       mrg 						  (__mmask64) -1);
   1800          1.1       mrg }
   1801          1.1       mrg 
   1802          1.1       mrg extern __inline __m512i
   1803          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1804          1.1       mrg _mm512_maskz_min_epi8 (__mmask64 __M, __m512i __A, __m512i __B)
   1805          1.1       mrg {
   1806          1.1       mrg   return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A,
   1807          1.1       mrg 						  (__v64qi) __B,
   1808          1.1       mrg 						  (__v64qi)
   1809          1.1       mrg 						  _mm512_setzero_qi(),
   1810          1.1       mrg 						  (__mmask64) __M);
   1811          1.1       mrg }
   1812          1.1       mrg 
   1813          1.1       mrg extern __inline __m512i
   1814          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1815          1.1       mrg _mm512_mask_min_epi8 (__m512i __W, __mmask64 __M, __m512i __A,
   1816          1.1       mrg 		      __m512i __B)
   1817          1.1       mrg {
   1818          1.1       mrg   return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A,
   1819          1.1       mrg 						  (__v64qi) __B,
   1820          1.1       mrg 						  (__v64qi) __W,
   1821          1.1       mrg 						  (__mmask64) __M);
   1822          1.1       mrg }
   1823          1.1       mrg 
   1824          1.1       mrg extern __inline __m512i
   1825          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1826          1.1       mrg _mm512_max_epi16 (__m512i __A, __m512i __B)
   1827          1.1       mrg {
   1828          1.1       mrg   return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A,
   1829          1.1       mrg 						  (__v32hi) __B,
   1830          1.1       mrg 						  (__v32hi)
   1831          1.1       mrg 						  _mm512_setzero_hi (),
   1832          1.1       mrg 						  (__mmask32) -1);
   1833          1.1       mrg }
   1834          1.1       mrg 
   1835          1.1       mrg extern __inline __m512i
   1836          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1837          1.1       mrg _mm512_maskz_max_epi16 (__mmask32 __M, __m512i __A, __m512i __B)
   1838          1.1       mrg {
   1839          1.1       mrg   return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A,
   1840          1.1       mrg 						  (__v32hi) __B,
   1841          1.1       mrg 						  (__v32hi)
   1842          1.1       mrg 						  _mm512_setzero_hi(),
   1843          1.1       mrg 						  (__mmask32) __M);
   1844          1.1       mrg }
   1845          1.1       mrg 
   1846          1.1       mrg extern __inline __m512i
   1847          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1848          1.1       mrg _mm512_mask_max_epi16 (__m512i __W, __mmask32 __M, __m512i __A,
   1849          1.1       mrg 		       __m512i __B)
   1850          1.1       mrg {
   1851          1.1       mrg   return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A,
   1852          1.1       mrg 						  (__v32hi) __B,
   1853          1.1       mrg 						  (__v32hi) __W,
   1854          1.1       mrg 						  (__mmask32) __M);
   1855          1.1       mrg }
   1856          1.1       mrg 
   1857          1.1       mrg extern __inline __m512i
   1858          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1859          1.1       mrg _mm512_max_epu16 (__m512i __A, __m512i __B)
   1860          1.1       mrg {
   1861          1.1       mrg   return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A,
   1862          1.1       mrg 						  (__v32hi) __B,
   1863          1.1       mrg 						  (__v32hi)
   1864          1.1       mrg 						  _mm512_setzero_hi (),
   1865          1.1       mrg 						  (__mmask32) -1);
   1866          1.1       mrg }
   1867          1.1       mrg 
   1868          1.1       mrg extern __inline __m512i
   1869          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1870          1.1       mrg _mm512_maskz_max_epu16 (__mmask32 __M, __m512i __A, __m512i __B)
   1871          1.1       mrg {
   1872          1.1       mrg   return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A,
   1873          1.1       mrg 						  (__v32hi) __B,
   1874          1.1       mrg 						  (__v32hi)
   1875          1.1       mrg 						  _mm512_setzero_hi(),
   1876          1.1       mrg 						  (__mmask32) __M);
   1877          1.1       mrg }
   1878          1.1       mrg 
   1879          1.1       mrg extern __inline __m512i
   1880          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1881          1.1       mrg _mm512_mask_max_epu16 (__m512i __W, __mmask32 __M, __m512i __A,
   1882          1.1       mrg 		       __m512i __B)
   1883          1.1       mrg {
   1884          1.1       mrg   return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A,
   1885          1.1       mrg 						  (__v32hi) __B,
   1886          1.1       mrg 						  (__v32hi) __W,
   1887          1.1       mrg 						  (__mmask32) __M);
   1888          1.1       mrg }
   1889          1.1       mrg 
   1890          1.1       mrg extern __inline __m512i
   1891          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1892          1.1       mrg _mm512_sra_epi16 (__m512i __A, __m128i __B)
   1893          1.1       mrg {
   1894          1.1       mrg   return (__m512i) __builtin_ia32_psraw512_mask ((__v32hi) __A,
   1895          1.1       mrg 						 (__v8hi) __B,
   1896          1.1       mrg 						 (__v32hi)
   1897          1.1       mrg 						 _mm512_setzero_hi (),
   1898          1.1       mrg 						 (__mmask32) -1);
   1899          1.1       mrg }
   1900          1.1       mrg 
   1901          1.1       mrg extern __inline __m512i
   1902          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1903          1.1       mrg _mm512_mask_sra_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
   1904          1.1       mrg 		       __m128i __B)
   1905          1.1       mrg {
   1906          1.1       mrg   return (__m512i) __builtin_ia32_psraw512_mask ((__v32hi) __A,
   1907          1.1       mrg 						 (__v8hi) __B,
   1908          1.1       mrg 						 (__v32hi) __W,
   1909          1.1       mrg 						 (__mmask32) __U);
   1910          1.1       mrg }
   1911          1.1       mrg 
   1912          1.1       mrg extern __inline __m512i
   1913          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1914          1.1       mrg _mm512_maskz_sra_epi16 (__mmask32 __U, __m512i __A, __m128i __B)
   1915          1.1       mrg {
   1916          1.1       mrg   return (__m512i) __builtin_ia32_psraw512_mask ((__v32hi) __A,
   1917          1.1       mrg 						 (__v8hi) __B,
   1918          1.1       mrg 						 (__v32hi)
   1919          1.1       mrg 						 _mm512_setzero_hi (),
   1920          1.1       mrg 						 (__mmask32) __U);
   1921          1.1       mrg }
   1922          1.1       mrg 
   1923          1.1       mrg extern __inline __m512i
   1924          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1925          1.1       mrg _mm512_srav_epi16 (__m512i __A, __m512i __B)
   1926          1.1       mrg {
   1927          1.1       mrg   return (__m512i) __builtin_ia32_psrav32hi_mask ((__v32hi) __A,
   1928          1.1       mrg 						  (__v32hi) __B,
   1929          1.1       mrg 						  (__v32hi)
   1930          1.1       mrg 						  _mm512_setzero_hi (),
   1931          1.1       mrg 						  (__mmask32) -1);
   1932          1.1       mrg }
   1933          1.1       mrg 
   1934          1.1       mrg extern __inline __m512i
   1935          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1936          1.1       mrg _mm512_mask_srav_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
   1937          1.1       mrg 			__m512i __B)
   1938          1.1       mrg {
   1939          1.1       mrg   return (__m512i) __builtin_ia32_psrav32hi_mask ((__v32hi) __A,
   1940          1.1       mrg 						  (__v32hi) __B,
   1941          1.1       mrg 						  (__v32hi) __W,
   1942          1.1       mrg 						  (__mmask32) __U);
   1943          1.1       mrg }
   1944          1.1       mrg 
   1945          1.1       mrg extern __inline __m512i
   1946          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1947          1.1       mrg _mm512_maskz_srav_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
   1948          1.1       mrg {
   1949          1.1       mrg   return (__m512i) __builtin_ia32_psrav32hi_mask ((__v32hi) __A,
   1950          1.1       mrg 						  (__v32hi) __B,
   1951          1.1       mrg 						  (__v32hi)
   1952          1.1       mrg 						  _mm512_setzero_hi (),
   1953          1.1       mrg 						  (__mmask32) __U);
   1954          1.1       mrg }
   1955          1.1       mrg 
   1956          1.1       mrg extern __inline __m512i
   1957          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1958          1.1       mrg _mm512_srlv_epi16 (__m512i __A, __m512i __B)
   1959          1.1       mrg {
   1960          1.1       mrg   return (__m512i) __builtin_ia32_psrlv32hi_mask ((__v32hi) __A,
   1961          1.1       mrg 						  (__v32hi) __B,
   1962          1.1       mrg 						  (__v32hi)
   1963          1.1       mrg 						  _mm512_setzero_hi (),
   1964          1.1       mrg 						  (__mmask32) -1);
   1965          1.1       mrg }
   1966          1.1       mrg 
   1967          1.1       mrg extern __inline __m512i
   1968          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1969          1.1       mrg _mm512_mask_srlv_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
   1970          1.1       mrg 			__m512i __B)
   1971          1.1       mrg {
   1972          1.1       mrg   return (__m512i) __builtin_ia32_psrlv32hi_mask ((__v32hi) __A,
   1973          1.1       mrg 						  (__v32hi) __B,
   1974          1.1       mrg 						  (__v32hi) __W,
   1975          1.1       mrg 						  (__mmask32) __U);
   1976          1.1       mrg }
   1977          1.1       mrg 
   1978          1.1       mrg extern __inline __m512i
   1979          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1980          1.1       mrg _mm512_maskz_srlv_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
   1981          1.1       mrg {
   1982          1.1       mrg   return (__m512i) __builtin_ia32_psrlv32hi_mask ((__v32hi) __A,
   1983          1.1       mrg 						  (__v32hi) __B,
   1984          1.1       mrg 						  (__v32hi)
   1985          1.1       mrg 						  _mm512_setzero_hi (),
   1986          1.1       mrg 						  (__mmask32) __U);
   1987          1.1       mrg }
   1988          1.1       mrg 
   1989          1.1       mrg extern __inline __m512i
   1990          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1991          1.1       mrg _mm512_sllv_epi16 (__m512i __A, __m512i __B)
   1992          1.1       mrg {
   1993          1.1       mrg   return (__m512i) __builtin_ia32_psllv32hi_mask ((__v32hi) __A,
   1994          1.1       mrg 						  (__v32hi) __B,
   1995          1.1       mrg 						  (__v32hi)
   1996          1.1       mrg 						  _mm512_setzero_hi (),
   1997          1.1       mrg 						  (__mmask32) -1);
   1998          1.1       mrg }
   1999          1.1       mrg 
   2000          1.1       mrg extern __inline __m512i
   2001          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2002          1.1       mrg _mm512_mask_sllv_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
   2003          1.1       mrg 			__m512i __B)
   2004          1.1       mrg {
   2005          1.1       mrg   return (__m512i) __builtin_ia32_psllv32hi_mask ((__v32hi) __A,
   2006          1.1       mrg 						  (__v32hi) __B,
   2007          1.1       mrg 						  (__v32hi) __W,
   2008          1.1       mrg 						  (__mmask32) __U);
   2009          1.1       mrg }
   2010          1.1       mrg 
   2011          1.1       mrg extern __inline __m512i
   2012          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2013          1.1       mrg _mm512_maskz_sllv_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
   2014          1.1       mrg {
   2015          1.1       mrg   return (__m512i) __builtin_ia32_psllv32hi_mask ((__v32hi) __A,
   2016          1.1       mrg 						  (__v32hi) __B,
   2017          1.1       mrg 						  (__v32hi)
   2018          1.1       mrg 						  _mm512_setzero_hi (),
   2019          1.1       mrg 						  (__mmask32) __U);
   2020          1.1       mrg }
   2021          1.1       mrg 
   2022          1.1       mrg extern __inline __m512i
   2023          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2024          1.1       mrg _mm512_mask_packs_epi16 (__m512i __W, __mmask64 __M, __m512i __A,
   2025          1.1       mrg 			 __m512i __B)
   2026          1.1       mrg {
   2027          1.1       mrg   return (__m512i) __builtin_ia32_packsswb512_mask ((__v32hi) __A,
   2028          1.1       mrg 						    (__v32hi) __B,
   2029          1.1       mrg 						    (__v64qi) __W,
   2030          1.1       mrg 						    (__mmask64) __M);
   2031          1.1       mrg }
   2032          1.1       mrg 
   2033          1.1       mrg extern __inline __m512i
   2034          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2035          1.1       mrg _mm512_maskz_packs_epi16 (__mmask64 __M, __m512i __A, __m512i __B)
   2036          1.1       mrg {
   2037          1.1       mrg   return (__m512i) __builtin_ia32_packsswb512_mask ((__v32hi) __A,
   2038          1.1       mrg 						    (__v32hi) __B,
   2039          1.1       mrg 						    (__v64qi)
   2040          1.1       mrg 						    _mm512_setzero_qi(),
   2041          1.1       mrg 						    __M);
   2042          1.1       mrg }
   2043          1.1       mrg 
   2044          1.1       mrg extern __inline __m512i
   2045          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2046          1.1       mrg _mm512_packus_epi16 (__m512i __A, __m512i __B)
   2047          1.1       mrg {
   2048          1.1       mrg   return (__m512i) __builtin_ia32_packuswb512_mask ((__v32hi) __A,
   2049          1.1       mrg 						    (__v32hi) __B,
   2050          1.1       mrg 						    (__v64qi)
   2051          1.1       mrg 						    _mm512_setzero_qi (),
   2052          1.1       mrg 						    (__mmask64) -1);
   2053          1.1       mrg }
   2054          1.1       mrg 
   2055          1.1       mrg extern __inline __m512i
   2056          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2057          1.1       mrg _mm512_mask_packus_epi16 (__m512i __W, __mmask64 __M, __m512i __A,
   2058          1.1       mrg 			  __m512i __B)
   2059          1.1       mrg {
   2060          1.1       mrg   return (__m512i) __builtin_ia32_packuswb512_mask ((__v32hi) __A,
   2061          1.1       mrg 						    (__v32hi) __B,
   2062          1.1       mrg 						    (__v64qi) __W,
   2063          1.1       mrg 						    (__mmask64) __M);
   2064          1.1       mrg }
   2065          1.1       mrg 
   2066          1.1       mrg extern __inline __m512i
   2067          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2068          1.1       mrg _mm512_maskz_packus_epi16 (__mmask64 __M, __m512i __A, __m512i __B)
   2069          1.1       mrg {
   2070          1.1       mrg   return (__m512i) __builtin_ia32_packuswb512_mask ((__v32hi) __A,
   2071          1.1       mrg 						    (__v32hi) __B,
   2072          1.1       mrg 						    (__v64qi)
   2073          1.1       mrg 						    _mm512_setzero_qi(),
   2074          1.1       mrg 						    (__mmask64) __M);
   2075          1.1       mrg }
   2076          1.1       mrg 
   2077          1.1       mrg extern __inline __m512i
   2078          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2079          1.1       mrg _mm512_abs_epi8 (__m512i __A)
   2080          1.1       mrg {
   2081          1.1       mrg   return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A,
   2082          1.1       mrg 						 (__v64qi)
   2083          1.1       mrg 						 _mm512_setzero_qi (),
   2084          1.1       mrg 						 (__mmask64) -1);
   2085          1.1       mrg }
   2086          1.1       mrg 
   2087          1.1       mrg extern __inline __m512i
   2088          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2089          1.1       mrg _mm512_mask_abs_epi8 (__m512i __W, __mmask64 __U, __m512i __A)
   2090          1.1       mrg {
   2091          1.1       mrg   return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A,
   2092          1.1       mrg 						 (__v64qi) __W,
   2093          1.1       mrg 						 (__mmask64) __U);
   2094          1.1       mrg }
   2095          1.1       mrg 
   2096          1.1       mrg extern __inline __m512i
   2097          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2098          1.1       mrg _mm512_maskz_abs_epi8 (__mmask64 __U, __m512i __A)
   2099          1.1       mrg {
   2100          1.1       mrg   return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A,
   2101          1.1       mrg 						 (__v64qi)
   2102          1.1       mrg 						 _mm512_setzero_qi (),
   2103          1.1       mrg 						 (__mmask64) __U);
   2104          1.1       mrg }
   2105          1.1       mrg 
   2106          1.1       mrg extern __inline __m512i
   2107          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2108          1.1       mrg _mm512_abs_epi16 (__m512i __A)
   2109          1.1       mrg {
   2110          1.1       mrg   return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A,
   2111          1.1       mrg 						 (__v32hi)
   2112          1.1       mrg 						 _mm512_setzero_hi (),
   2113          1.1       mrg 						 (__mmask32) -1);
   2114          1.1       mrg }
   2115          1.1       mrg 
   2116          1.1       mrg extern __inline __m512i
   2117          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2118          1.1       mrg _mm512_mask_abs_epi16 (__m512i __W, __mmask32 __U, __m512i __A)
   2119          1.1       mrg {
   2120          1.1       mrg   return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A,
   2121          1.1       mrg 						 (__v32hi) __W,
   2122          1.1       mrg 						 (__mmask32) __U);
   2123          1.1       mrg }
   2124          1.1       mrg 
   2125          1.1       mrg extern __inline __m512i
   2126          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2127          1.1       mrg _mm512_maskz_abs_epi16 (__mmask32 __U, __m512i __A)
   2128          1.1       mrg {
   2129          1.1       mrg   return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A,
   2130          1.1       mrg 						 (__v32hi)
   2131          1.1       mrg 						 _mm512_setzero_hi (),
   2132          1.1       mrg 						 (__mmask32) __U);
   2133          1.1       mrg }
   2134          1.1       mrg 
   2135          1.1       mrg extern __inline __mmask64
   2136          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2137          1.1       mrg _mm512_mask_cmpneq_epu8_mask (__mmask64 __M, __m512i __X, __m512i __Y)
   2138          1.1       mrg {
   2139          1.1       mrg   return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
   2140          1.1       mrg 						   (__v64qi) __Y, 4,
   2141          1.1       mrg 						   (__mmask64) __M);
   2142          1.1       mrg }
   2143          1.1       mrg 
   2144          1.1       mrg extern __inline __mmask64
   2145          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2146          1.1       mrg _mm512_mask_cmplt_epu8_mask (__mmask64 __M, __m512i __X, __m512i __Y)
   2147          1.1       mrg {
   2148          1.1       mrg   return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
   2149          1.1       mrg 						   (__v64qi) __Y, 1,
   2150          1.1       mrg 						   (__mmask64) __M);
   2151          1.1       mrg }
   2152          1.1       mrg 
   2153          1.1       mrg extern __inline __mmask64
   2154          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2155          1.1       mrg _mm512_mask_cmpge_epu8_mask (__mmask64 __M, __m512i __X, __m512i __Y)
   2156          1.1       mrg {
   2157          1.1       mrg   return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
   2158          1.1       mrg 						   (__v64qi) __Y, 5,
   2159          1.1       mrg 						   (__mmask64) __M);
   2160          1.1       mrg }
   2161          1.1       mrg 
   2162          1.1       mrg extern __inline __mmask64
   2163          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2164          1.1       mrg _mm512_mask_cmple_epu8_mask (__mmask64 __M, __m512i __X, __m512i __Y)
   2165          1.1       mrg {
   2166          1.1       mrg   return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
   2167          1.1       mrg 						   (__v64qi) __Y, 2,
   2168          1.1       mrg 						   (__mmask64) __M);
   2169          1.1       mrg }
   2170          1.1       mrg 
   2171          1.1       mrg extern __inline __mmask32
   2172          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2173          1.1       mrg _mm512_mask_cmpneq_epu16_mask (__mmask32 __M, __m512i __X, __m512i __Y)
   2174          1.1       mrg {
   2175          1.1       mrg   return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
   2176          1.1       mrg 						   (__v32hi) __Y, 4,
   2177          1.1       mrg 						   (__mmask32) __M);
   2178          1.1       mrg }
   2179          1.1       mrg 
   2180          1.1       mrg extern __inline __mmask32
   2181          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2182          1.1       mrg _mm512_mask_cmplt_epu16_mask (__mmask32 __M, __m512i __X, __m512i __Y)
   2183          1.1       mrg {
   2184          1.1       mrg   return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
   2185          1.1       mrg 						   (__v32hi) __Y, 1,
   2186          1.1       mrg 						   (__mmask32) __M);
   2187          1.1       mrg }
   2188          1.1       mrg 
   2189          1.1       mrg extern __inline __mmask32
   2190          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2191          1.1       mrg _mm512_mask_cmpge_epu16_mask (__mmask32 __M, __m512i __X, __m512i __Y)
   2192          1.1       mrg {
   2193          1.1       mrg   return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
   2194          1.1       mrg 						   (__v32hi) __Y, 5,
   2195          1.1       mrg 						   (__mmask32) __M);
   2196          1.1       mrg }
   2197          1.1       mrg 
   2198          1.1       mrg extern __inline __mmask32
   2199          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2200          1.1       mrg _mm512_mask_cmple_epu16_mask (__mmask32 __M, __m512i __X, __m512i __Y)
   2201          1.1       mrg {
   2202          1.1       mrg   return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
   2203          1.1       mrg 						   (__v32hi) __Y, 2,
   2204          1.1       mrg 						   (__mmask32) __M);
   2205          1.1       mrg }
   2206          1.1       mrg 
   2207          1.1       mrg extern __inline __mmask64
   2208          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2209          1.1       mrg _mm512_mask_cmpneq_epi8_mask (__mmask64 __M, __m512i __X, __m512i __Y)
   2210          1.1       mrg {
   2211          1.1       mrg   return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
   2212          1.1       mrg 						  (__v64qi) __Y, 4,
   2213          1.1       mrg 						  (__mmask64) __M);
   2214          1.1       mrg }
   2215          1.1       mrg 
   2216          1.1       mrg extern __inline __mmask64
   2217          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2218          1.1       mrg _mm512_mask_cmplt_epi8_mask (__mmask64 __M, __m512i __X, __m512i __Y)
   2219          1.1       mrg {
   2220          1.1       mrg   return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
   2221          1.1       mrg 						  (__v64qi) __Y, 1,
   2222          1.1       mrg 						  (__mmask64) __M);
   2223          1.1       mrg }
   2224          1.1       mrg 
   2225          1.1       mrg extern __inline __mmask64
   2226          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2227          1.1       mrg _mm512_mask_cmpge_epi8_mask (__mmask64 __M, __m512i __X, __m512i __Y)
   2228          1.1       mrg {
   2229          1.1       mrg   return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
   2230          1.1       mrg 						  (__v64qi) __Y, 5,
   2231          1.1       mrg 						  (__mmask64) __M);
   2232          1.1       mrg }
   2233          1.1       mrg 
   2234          1.1       mrg extern __inline __mmask64
   2235          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2236          1.1       mrg _mm512_mask_cmple_epi8_mask (__mmask64 __M, __m512i __X, __m512i __Y)
   2237          1.1       mrg {
   2238          1.1       mrg   return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
   2239          1.1       mrg 						  (__v64qi) __Y, 2,
   2240          1.1       mrg 						  (__mmask64) __M);
   2241          1.1       mrg }
   2242          1.1       mrg 
   2243          1.1       mrg extern __inline __mmask32
   2244          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2245          1.1       mrg _mm512_mask_cmpneq_epi16_mask (__mmask32 __M, __m512i __X, __m512i __Y)
   2246          1.1       mrg {
   2247          1.1       mrg   return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
   2248          1.1       mrg 						  (__v32hi) __Y, 4,
   2249          1.1       mrg 						  (__mmask32) __M);
   2250          1.1       mrg }
   2251          1.1       mrg 
   2252          1.1       mrg extern __inline __mmask32
   2253          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2254          1.1       mrg _mm512_mask_cmplt_epi16_mask (__mmask32 __M, __m512i __X, __m512i __Y)
   2255          1.1       mrg {
   2256          1.1       mrg   return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
   2257          1.1       mrg 						  (__v32hi) __Y, 1,
   2258          1.1       mrg 						  (__mmask32) __M);
   2259          1.1       mrg }
   2260          1.1       mrg 
   2261          1.1       mrg extern __inline __mmask32
   2262          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2263          1.1       mrg _mm512_mask_cmpge_epi16_mask (__mmask32 __M, __m512i __X, __m512i __Y)
   2264          1.1       mrg {
   2265          1.1       mrg   return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
   2266          1.1       mrg 						  (__v32hi) __Y, 5,
   2267          1.1       mrg 						  (__mmask32) __M);
   2268          1.1       mrg }
   2269          1.1       mrg 
   2270          1.1       mrg extern __inline __mmask32
   2271          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2272          1.1       mrg _mm512_mask_cmple_epi16_mask (__mmask32 __M, __m512i __X, __m512i __Y)
   2273          1.1       mrg {
   2274          1.1       mrg   return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
   2275          1.1       mrg 						  (__v32hi) __Y, 2,
   2276          1.1       mrg 						  (__mmask32) __M);
   2277          1.1       mrg }
   2278          1.1       mrg 
   2279          1.1       mrg extern __inline __mmask64
   2280          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2281          1.1       mrg _mm512_cmpneq_epu8_mask (__m512i __X, __m512i __Y)
   2282          1.1       mrg {
   2283          1.1       mrg   return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
   2284          1.1       mrg 						   (__v64qi) __Y, 4,
   2285      1.1.1.2       mrg 						   (__mmask64) -1);
   2286          1.1       mrg }
   2287          1.1       mrg 
   2288          1.1       mrg extern __inline __mmask64
   2289          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2290          1.1       mrg _mm512_cmplt_epu8_mask (__m512i __X, __m512i __Y)
   2291          1.1       mrg {
   2292          1.1       mrg   return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
   2293          1.1       mrg 						   (__v64qi) __Y, 1,
   2294      1.1.1.2       mrg 						   (__mmask64) -1);
   2295          1.1       mrg }
   2296          1.1       mrg 
   2297          1.1       mrg extern __inline __mmask64
   2298          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2299          1.1       mrg _mm512_cmpge_epu8_mask (__m512i __X, __m512i __Y)
   2300          1.1       mrg {
   2301          1.1       mrg   return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
   2302          1.1       mrg 						   (__v64qi) __Y, 5,
   2303      1.1.1.2       mrg 						   (__mmask64) -1);
   2304          1.1       mrg }
   2305          1.1       mrg 
   2306          1.1       mrg extern __inline __mmask64
   2307          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2308          1.1       mrg _mm512_cmple_epu8_mask (__m512i __X, __m512i __Y)
   2309          1.1       mrg {
   2310          1.1       mrg   return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
   2311          1.1       mrg 						   (__v64qi) __Y, 2,
   2312      1.1.1.2       mrg 						   (__mmask64) -1);
   2313          1.1       mrg }
   2314          1.1       mrg 
   2315          1.1       mrg extern __inline __mmask32
   2316          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2317          1.1       mrg _mm512_cmpneq_epu16_mask (__m512i __X, __m512i __Y)
   2318          1.1       mrg {
   2319          1.1       mrg   return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
   2320          1.1       mrg 						   (__v32hi) __Y, 4,
   2321      1.1.1.2       mrg 						   (__mmask32) -1);
   2322          1.1       mrg }
   2323          1.1       mrg 
   2324          1.1       mrg extern __inline __mmask32
   2325          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2326          1.1       mrg _mm512_cmplt_epu16_mask (__m512i __X, __m512i __Y)
   2327          1.1       mrg {
   2328          1.1       mrg   return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
   2329          1.1       mrg 						   (__v32hi) __Y, 1,
   2330      1.1.1.2       mrg 						   (__mmask32) -1);
   2331          1.1       mrg }
   2332          1.1       mrg 
   2333          1.1       mrg extern __inline __mmask32
   2334          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2335          1.1       mrg _mm512_cmpge_epu16_mask (__m512i __X, __m512i __Y)
   2336          1.1       mrg {
   2337          1.1       mrg   return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
   2338          1.1       mrg 						   (__v32hi) __Y, 5,
   2339      1.1.1.2       mrg 						   (__mmask32) -1);
   2340          1.1       mrg }
   2341          1.1       mrg 
   2342          1.1       mrg extern __inline __mmask32
   2343          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2344          1.1       mrg _mm512_cmple_epu16_mask (__m512i __X, __m512i __Y)
   2345          1.1       mrg {
   2346          1.1       mrg   return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
   2347          1.1       mrg 						   (__v32hi) __Y, 2,
   2348      1.1.1.2       mrg 						   (__mmask32) -1);
   2349          1.1       mrg }
   2350          1.1       mrg 
   2351          1.1       mrg extern __inline __mmask64
   2352          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2353          1.1       mrg _mm512_cmpneq_epi8_mask (__m512i __X, __m512i __Y)
   2354          1.1       mrg {
   2355          1.1       mrg   return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
   2356          1.1       mrg 						  (__v64qi) __Y, 4,
   2357      1.1.1.2       mrg 						  (__mmask64) -1);
   2358          1.1       mrg }
   2359          1.1       mrg 
   2360          1.1       mrg extern __inline __mmask64
   2361          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2362          1.1       mrg _mm512_cmplt_epi8_mask (__m512i __X, __m512i __Y)
   2363          1.1       mrg {
   2364          1.1       mrg   return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
   2365          1.1       mrg 						  (__v64qi) __Y, 1,
   2366      1.1.1.2       mrg 						  (__mmask64) -1);
   2367          1.1       mrg }
   2368          1.1       mrg 
   2369          1.1       mrg extern __inline __mmask64
   2370          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2371          1.1       mrg _mm512_cmpge_epi8_mask (__m512i __X, __m512i __Y)
   2372          1.1       mrg {
   2373          1.1       mrg   return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
   2374          1.1       mrg 						  (__v64qi) __Y, 5,
   2375      1.1.1.2       mrg 						  (__mmask64) -1);
   2376          1.1       mrg }
   2377          1.1       mrg 
   2378          1.1       mrg extern __inline __mmask64
   2379          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2380          1.1       mrg _mm512_cmple_epi8_mask (__m512i __X, __m512i __Y)
   2381          1.1       mrg {
   2382          1.1       mrg   return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
   2383          1.1       mrg 						  (__v64qi) __Y, 2,
   2384      1.1.1.2       mrg 						  (__mmask64) -1);
   2385          1.1       mrg }
   2386          1.1       mrg 
   2387          1.1       mrg extern __inline __mmask32
   2388          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2389          1.1       mrg _mm512_cmpneq_epi16_mask (__m512i __X, __m512i __Y)
   2390          1.1       mrg {
   2391          1.1       mrg   return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
   2392          1.1       mrg 						  (__v32hi) __Y, 4,
   2393      1.1.1.2       mrg 						  (__mmask32) -1);
   2394          1.1       mrg }
   2395          1.1       mrg 
   2396          1.1       mrg extern __inline __mmask32
   2397          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2398          1.1       mrg _mm512_cmplt_epi16_mask (__m512i __X, __m512i __Y)
   2399          1.1       mrg {
   2400          1.1       mrg   return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
   2401          1.1       mrg 						  (__v32hi) __Y, 1,
   2402      1.1.1.2       mrg 						  (__mmask32) -1);
   2403          1.1       mrg }
   2404          1.1       mrg 
   2405          1.1       mrg extern __inline __mmask32
   2406          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2407          1.1       mrg _mm512_cmpge_epi16_mask (__m512i __X, __m512i __Y)
   2408          1.1       mrg {
   2409          1.1       mrg   return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
   2410          1.1       mrg 						  (__v32hi) __Y, 5,
   2411      1.1.1.2       mrg 						  (__mmask32) -1);
   2412          1.1       mrg }
   2413          1.1       mrg 
   2414          1.1       mrg extern __inline __mmask32
   2415          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2416          1.1       mrg _mm512_cmple_epi16_mask (__m512i __X, __m512i __Y)
   2417          1.1       mrg {
   2418          1.1       mrg   return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
   2419          1.1       mrg 						  (__v32hi) __Y, 2,
   2420      1.1.1.2       mrg 						  (__mmask32) -1);
   2421      1.1.1.2       mrg }
   2422      1.1.1.2       mrg 
   2423      1.1.1.2       mrg extern __inline __m512i
   2424      1.1.1.2       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2425      1.1.1.2       mrg _mm512_packs_epi32 (__m512i __A, __m512i __B)
   2426      1.1.1.2       mrg {
   2427      1.1.1.2       mrg   return (__m512i) __builtin_ia32_packssdw512_mask ((__v16si) __A,
   2428      1.1.1.2       mrg 						    (__v16si) __B,
   2429      1.1.1.2       mrg 						    (__v32hi)
   2430      1.1.1.2       mrg 						    _mm512_setzero_hi (),
   2431      1.1.1.2       mrg 						    (__mmask32) -1);
   2432      1.1.1.2       mrg }
   2433      1.1.1.2       mrg 
   2434      1.1.1.2       mrg extern __inline __m512i
   2435      1.1.1.2       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2436      1.1.1.2       mrg _mm512_maskz_packs_epi32 (__mmask32 __M, __m512i __A, __m512i __B)
   2437      1.1.1.2       mrg {
   2438      1.1.1.2       mrg   return (__m512i) __builtin_ia32_packssdw512_mask ((__v16si) __A,
   2439      1.1.1.2       mrg 						    (__v16si) __B,
   2440      1.1.1.2       mrg 						    (__v32hi)
   2441      1.1.1.2       mrg 						    _mm512_setzero_hi (),
   2442      1.1.1.2       mrg 						    __M);
   2443      1.1.1.2       mrg }
   2444      1.1.1.2       mrg 
   2445      1.1.1.2       mrg extern __inline __m512i
   2446      1.1.1.2       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2447      1.1.1.2       mrg _mm512_mask_packs_epi32 (__m512i __W, __mmask32 __M, __m512i __A,
   2448      1.1.1.2       mrg 			 __m512i __B)
   2449      1.1.1.2       mrg {
   2450      1.1.1.2       mrg   return (__m512i) __builtin_ia32_packssdw512_mask ((__v16si) __A,
   2451      1.1.1.2       mrg 						    (__v16si) __B,
   2452      1.1.1.2       mrg 						    (__v32hi) __W,
   2453      1.1.1.2       mrg 						    __M);
   2454      1.1.1.2       mrg }
   2455      1.1.1.2       mrg 
   2456      1.1.1.2       mrg extern __inline __m512i
   2457      1.1.1.2       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2458      1.1.1.2       mrg _mm512_packus_epi32 (__m512i __A, __m512i __B)
   2459      1.1.1.2       mrg {
   2460      1.1.1.2       mrg   return (__m512i) __builtin_ia32_packusdw512_mask ((__v16si) __A,
   2461      1.1.1.2       mrg 						    (__v16si) __B,
   2462      1.1.1.2       mrg 						    (__v32hi)
   2463      1.1.1.2       mrg 						    _mm512_setzero_hi (),
   2464      1.1.1.2       mrg 						    (__mmask32) -1);
   2465      1.1.1.2       mrg }
   2466      1.1.1.2       mrg 
   2467      1.1.1.2       mrg extern __inline __m512i
   2468      1.1.1.2       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2469      1.1.1.2       mrg _mm512_maskz_packus_epi32 (__mmask32 __M, __m512i __A, __m512i __B)
   2470      1.1.1.2       mrg {
   2471      1.1.1.2       mrg   return (__m512i) __builtin_ia32_packusdw512_mask ((__v16si) __A,
   2472      1.1.1.2       mrg 						    (__v16si) __B,
   2473      1.1.1.2       mrg 						    (__v32hi)
   2474      1.1.1.2       mrg 						    _mm512_setzero_hi (),
   2475      1.1.1.2       mrg 						    __M);
   2476      1.1.1.2       mrg }
   2477      1.1.1.2       mrg 
   2478      1.1.1.2       mrg extern __inline __m512i
   2479      1.1.1.2       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2480      1.1.1.2       mrg _mm512_mask_packus_epi32 (__m512i __W, __mmask32 __M, __m512i __A,
   2481      1.1.1.2       mrg 			  __m512i __B)
   2482      1.1.1.2       mrg {
   2483      1.1.1.2       mrg   return (__m512i) __builtin_ia32_packusdw512_mask ((__v16si) __A,
   2484      1.1.1.2       mrg 						    (__v16si) __B,
   2485      1.1.1.2       mrg 						    (__v32hi) __W,
   2486      1.1.1.2       mrg 						    __M);
   2487          1.1       mrg }
   2488          1.1       mrg 
   2489          1.1       mrg #ifdef __OPTIMIZE__
   2490          1.1       mrg extern __inline __m512i
   2491          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2492          1.1       mrg _mm512_alignr_epi8 (__m512i __A, __m512i __B, const int __N)
   2493          1.1       mrg {
   2494          1.1       mrg   return (__m512i) __builtin_ia32_palignr512 ((__v8di) __A,
   2495          1.1       mrg 					      (__v8di) __B, __N * 8);
   2496          1.1       mrg }
   2497          1.1       mrg 
   2498          1.1       mrg extern __inline __m512i
   2499          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2500          1.1       mrg _mm512_mask_alignr_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
   2501          1.1       mrg 			 __m512i __B, const int __N)
   2502          1.1       mrg {
   2503          1.1       mrg   return (__m512i) __builtin_ia32_palignr512_mask ((__v8di) __A,
   2504          1.1       mrg 						   (__v8di) __B,
   2505          1.1       mrg 						   __N * 8,
   2506          1.1       mrg 						   (__v8di) __W,
   2507          1.1       mrg 						   (__mmask64) __U);
   2508          1.1       mrg }
   2509          1.1       mrg 
   2510          1.1       mrg extern __inline __m512i
   2511          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2512          1.1       mrg _mm512_maskz_alignr_epi8 (__mmask64 __U, __m512i __A, __m512i __B,
   2513          1.1       mrg 			  const int __N)
   2514          1.1       mrg {
   2515          1.1       mrg   return (__m512i) __builtin_ia32_palignr512_mask ((__v8di) __A,
   2516          1.1       mrg 						   (__v8di) __B,
   2517          1.1       mrg 						   __N * 8,
   2518          1.1       mrg 						   (__v8di)
   2519          1.1       mrg 						   _mm512_setzero_si512 (),
   2520          1.1       mrg 						   (__mmask64) __U);
   2521          1.1       mrg }
   2522          1.1       mrg 
   2523          1.1       mrg extern __inline __m512i
   2524          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2525          1.1       mrg _mm512_dbsad_epu8 (__m512i __A, __m512i __B, const int __imm)
   2526          1.1       mrg {
   2527          1.1       mrg   return (__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi) __A,
   2528          1.1       mrg 						    (__v64qi) __B,
   2529          1.1       mrg 						    __imm,
   2530          1.1       mrg 						    (__v32hi)
   2531          1.1       mrg 						    _mm512_setzero_hi (),
   2532          1.1       mrg 						    (__mmask32) -1);
   2533          1.1       mrg }
   2534          1.1       mrg 
   2535          1.1       mrg extern __inline __m512i
   2536          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2537          1.1       mrg _mm512_mask_dbsad_epu8 (__m512i __W, __mmask32 __U, __m512i __A,
   2538          1.1       mrg 			__m512i __B, const int __imm)
   2539          1.1       mrg {
   2540          1.1       mrg   return (__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi) __A,
   2541          1.1       mrg 						    (__v64qi) __B,
   2542          1.1       mrg 						    __imm,
   2543          1.1       mrg 						    (__v32hi) __W,
   2544          1.1       mrg 						    (__mmask32) __U);
   2545          1.1       mrg }
   2546          1.1       mrg 
   2547          1.1       mrg extern __inline __m512i
   2548          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2549          1.1       mrg _mm512_maskz_dbsad_epu8 (__mmask32 __U, __m512i __A, __m512i __B,
   2550          1.1       mrg 			 const int __imm)
   2551          1.1       mrg {
   2552          1.1       mrg   return (__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi) __A,
   2553          1.1       mrg 						    (__v64qi) __B,
   2554          1.1       mrg 						    __imm,
   2555          1.1       mrg 						    (__v32hi)
   2556          1.1       mrg 						    _mm512_setzero_hi(),
   2557          1.1       mrg 						    (__mmask32) __U);
   2558          1.1       mrg }
   2559          1.1       mrg 
   2560          1.1       mrg extern __inline __m512i
   2561          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2562          1.1       mrg _mm512_srli_epi16 (__m512i __A, const int __imm)
   2563          1.1       mrg {
   2564          1.1       mrg   return (__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi) __A, __imm,
   2565          1.1       mrg 						  (__v32hi)
   2566          1.1       mrg 						  _mm512_setzero_hi (),
   2567          1.1       mrg 						  (__mmask32) -1);
   2568          1.1       mrg }
   2569          1.1       mrg 
   2570          1.1       mrg extern __inline __m512i
   2571          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2572          1.1       mrg _mm512_mask_srli_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
   2573          1.1       mrg 			const int __imm)
   2574          1.1       mrg {
   2575          1.1       mrg   return (__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi) __A, __imm,
   2576          1.1       mrg 						  (__v32hi) __W,
   2577          1.1       mrg 						  (__mmask32) __U);
   2578          1.1       mrg }
   2579          1.1       mrg 
   2580          1.1       mrg extern __inline __m512i
   2581          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2582          1.1       mrg _mm512_maskz_srli_epi16 (__mmask32 __U, __m512i __A, const int __imm)
   2583          1.1       mrg {
   2584          1.1       mrg   return (__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi) __A, __imm,
   2585          1.1       mrg 						  (__v32hi)
   2586          1.1       mrg 						  _mm512_setzero_hi (),
   2587          1.1       mrg 						  (__mmask32) __U);
   2588          1.1       mrg }
   2589          1.1       mrg 
   2590          1.1       mrg extern __inline __m512i
   2591          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2592          1.1       mrg _mm512_slli_epi16 (__m512i __A, const int __B)
   2593          1.1       mrg {
   2594          1.1       mrg   return (__m512i) __builtin_ia32_psllwi512_mask ((__v32hi) __A, __B,
   2595          1.1       mrg 						  (__v32hi)
   2596          1.1       mrg 						  _mm512_setzero_hi (),
   2597          1.1       mrg 						  (__mmask32) -1);
   2598          1.1       mrg }
   2599          1.1       mrg 
   2600          1.1       mrg extern __inline __m512i
   2601          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2602          1.1       mrg _mm512_mask_slli_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
   2603          1.1       mrg 			const int __B)
   2604          1.1       mrg {
   2605          1.1       mrg   return (__m512i) __builtin_ia32_psllwi512_mask ((__v32hi) __A, __B,
   2606          1.1       mrg 						  (__v32hi) __W,
   2607          1.1       mrg 						  (__mmask32) __U);
   2608          1.1       mrg }
   2609          1.1       mrg 
   2610          1.1       mrg extern __inline __m512i
   2611          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2612          1.1       mrg _mm512_maskz_slli_epi16 (__mmask32 __U, __m512i __A, const int __B)
   2613          1.1       mrg {
   2614          1.1       mrg   return (__m512i) __builtin_ia32_psllwi512_mask ((__v32hi) __A, __B,
   2615          1.1       mrg 						  (__v32hi)
   2616          1.1       mrg 						  _mm512_setzero_hi (),
   2617          1.1       mrg 						  (__mmask32) __U);
   2618          1.1       mrg }
   2619          1.1       mrg 
   2620          1.1       mrg extern __inline __m512i
   2621          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2622          1.1       mrg _mm512_shufflehi_epi16 (__m512i __A, const int __imm)
   2623          1.1       mrg {
   2624          1.1       mrg   return (__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi) __A,
   2625          1.1       mrg 						   __imm,
   2626          1.1       mrg 						   (__v32hi)
   2627          1.1       mrg 						   _mm512_setzero_hi (),
   2628          1.1       mrg 						   (__mmask32) -1);
   2629          1.1       mrg }
   2630          1.1       mrg 
   2631          1.1       mrg extern __inline __m512i
   2632          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2633          1.1       mrg _mm512_mask_shufflehi_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
   2634          1.1       mrg 			     const int __imm)
   2635          1.1       mrg {
   2636          1.1       mrg   return (__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi) __A,
   2637          1.1       mrg 						   __imm,
   2638          1.1       mrg 						   (__v32hi) __W,
   2639          1.1       mrg 						   (__mmask32) __U);
   2640          1.1       mrg }
   2641          1.1       mrg 
   2642          1.1       mrg extern __inline __m512i
   2643          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2644          1.1       mrg _mm512_maskz_shufflehi_epi16 (__mmask32 __U, __m512i __A,
   2645          1.1       mrg 			      const int __imm)
   2646          1.1       mrg {
   2647          1.1       mrg   return (__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi) __A,
   2648          1.1       mrg 						   __imm,
   2649          1.1       mrg 						   (__v32hi)
   2650          1.1       mrg 						   _mm512_setzero_hi (),
   2651          1.1       mrg 						   (__mmask32) __U);
   2652          1.1       mrg }
   2653          1.1       mrg 
   2654          1.1       mrg extern __inline __m512i
   2655          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2656          1.1       mrg _mm512_shufflelo_epi16 (__m512i __A, const int __imm)
   2657          1.1       mrg {
   2658          1.1       mrg   return (__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi) __A,
   2659          1.1       mrg 						   __imm,
   2660          1.1       mrg 						   (__v32hi)
   2661          1.1       mrg 						   _mm512_setzero_hi (),
   2662          1.1       mrg 						   (__mmask32) -1);
   2663          1.1       mrg }
   2664          1.1       mrg 
   2665          1.1       mrg extern __inline __m512i
   2666          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2667          1.1       mrg _mm512_mask_shufflelo_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
   2668          1.1       mrg 			     const int __imm)
   2669          1.1       mrg {
   2670          1.1       mrg   return (__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi) __A,
   2671          1.1       mrg 						   __imm,
   2672          1.1       mrg 						   (__v32hi) __W,
   2673          1.1       mrg 						   (__mmask32) __U);
   2674          1.1       mrg }
   2675          1.1       mrg 
   2676          1.1       mrg extern __inline __m512i
   2677          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2678          1.1       mrg _mm512_maskz_shufflelo_epi16 (__mmask32 __U, __m512i __A,
   2679          1.1       mrg 			      const int __imm)
   2680          1.1       mrg {
   2681          1.1       mrg   return (__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi) __A,
   2682          1.1       mrg 						   __imm,
   2683          1.1       mrg 						   (__v32hi)
   2684          1.1       mrg 						   _mm512_setzero_hi (),
   2685          1.1       mrg 						   (__mmask32) __U);
   2686          1.1       mrg }
   2687          1.1       mrg 
   2688          1.1       mrg extern __inline __m512i
   2689          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2690          1.1       mrg _mm512_srai_epi16 (__m512i __A, const int __imm)
   2691          1.1       mrg {
   2692          1.1       mrg   return (__m512i) __builtin_ia32_psrawi512_mask ((__v32hi) __A, __imm,
   2693          1.1       mrg 						  (__v32hi)
   2694          1.1       mrg 						  _mm512_setzero_hi (),
   2695          1.1       mrg 						  (__mmask32) -1);
   2696          1.1       mrg }
   2697          1.1       mrg 
   2698          1.1       mrg extern __inline __m512i
   2699          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2700          1.1       mrg _mm512_mask_srai_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
   2701          1.1       mrg 			const int __imm)
   2702          1.1       mrg {
   2703          1.1       mrg   return (__m512i) __builtin_ia32_psrawi512_mask ((__v32hi) __A, __imm,
   2704          1.1       mrg 						  (__v32hi) __W,
   2705          1.1       mrg 						  (__mmask32) __U);
   2706          1.1       mrg }
   2707          1.1       mrg 
   2708          1.1       mrg extern __inline __m512i
   2709          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2710          1.1       mrg _mm512_maskz_srai_epi16 (__mmask32 __U, __m512i __A, const int __imm)
   2711          1.1       mrg {
   2712          1.1       mrg   return (__m512i) __builtin_ia32_psrawi512_mask ((__v32hi) __A, __imm,
   2713          1.1       mrg 						  (__v32hi)
   2714          1.1       mrg 						  _mm512_setzero_hi (),
   2715          1.1       mrg 						  (__mmask32) __U);
   2716          1.1       mrg }
   2717          1.1       mrg 
   2718          1.1       mrg extern __inline __m512i
   2719          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2720          1.1       mrg _mm512_mask_blend_epi16 (__mmask32 __U, __m512i __A, __m512i __W)
   2721          1.1       mrg {
   2722          1.1       mrg   return (__m512i) __builtin_ia32_blendmw_512_mask ((__v32hi) __A,
   2723          1.1       mrg 						    (__v32hi) __W,
   2724          1.1       mrg 						    (__mmask32) __U);
   2725          1.1       mrg }
   2726          1.1       mrg 
   2727          1.1       mrg extern __inline __m512i
   2728          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2729          1.1       mrg _mm512_mask_blend_epi8 (__mmask64 __U, __m512i __A, __m512i __W)
   2730          1.1       mrg {
   2731          1.1       mrg   return (__m512i) __builtin_ia32_blendmb_512_mask ((__v64qi) __A,
   2732          1.1       mrg 						    (__v64qi) __W,
   2733          1.1       mrg 						    (__mmask64) __U);
   2734          1.1       mrg }
   2735          1.1       mrg 
   2736          1.1       mrg extern __inline __mmask32
   2737          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2738          1.1       mrg _mm512_mask_cmp_epi16_mask (__mmask32 __U, __m512i __X, __m512i __Y,
   2739          1.1       mrg 			    const int __P)
   2740          1.1       mrg {
   2741          1.1       mrg   return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
   2742          1.1       mrg 						  (__v32hi) __Y, __P,
   2743          1.1       mrg 						  (__mmask32) __U);
   2744          1.1       mrg }
   2745          1.1       mrg 
   2746          1.1       mrg extern __inline __mmask32
   2747          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2748          1.1       mrg _mm512_cmp_epi16_mask (__m512i __X, __m512i __Y, const int __P)
   2749          1.1       mrg {
   2750          1.1       mrg   return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
   2751          1.1       mrg 						  (__v32hi) __Y, __P,
   2752          1.1       mrg 						  (__mmask32) -1);
   2753          1.1       mrg }
   2754          1.1       mrg 
   2755          1.1       mrg extern __inline __mmask64
   2756          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2757          1.1       mrg _mm512_mask_cmp_epi8_mask (__mmask32 __U, __m512i __X, __m512i __Y,
   2758          1.1       mrg 			   const int __P)
   2759          1.1       mrg {
   2760          1.1       mrg   return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
   2761          1.1       mrg 						  (__v64qi) __Y, __P,
   2762          1.1       mrg 						  (__mmask64) __U);
   2763          1.1       mrg }
   2764          1.1       mrg 
   2765          1.1       mrg extern __inline __mmask64
   2766          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2767          1.1       mrg _mm512_cmp_epi8_mask (__m512i __X, __m512i __Y, const int __P)
   2768          1.1       mrg {
   2769          1.1       mrg   return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
   2770          1.1       mrg 						  (__v64qi) __Y, __P,
   2771          1.1       mrg 						  (__mmask64) -1);
   2772          1.1       mrg }
   2773          1.1       mrg 
   2774          1.1       mrg extern __inline __mmask32
   2775          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2776          1.1       mrg _mm512_mask_cmp_epu16_mask (__mmask32 __U, __m512i __X, __m512i __Y,
   2777          1.1       mrg 			    const int __P)
   2778          1.1       mrg {
   2779          1.1       mrg   return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
   2780          1.1       mrg 						   (__v32hi) __Y, __P,
   2781          1.1       mrg 						   (__mmask32) __U);
   2782          1.1       mrg }
   2783          1.1       mrg 
   2784          1.1       mrg extern __inline __mmask32
   2785          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2786          1.1       mrg _mm512_cmp_epu16_mask (__m512i __X, __m512i __Y, const int __P)
   2787          1.1       mrg {
   2788          1.1       mrg   return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
   2789          1.1       mrg 						   (__v32hi) __Y, __P,
   2790          1.1       mrg 						   (__mmask32) -1);
   2791          1.1       mrg }
   2792          1.1       mrg 
   2793          1.1       mrg extern __inline __mmask64
   2794          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2795          1.1       mrg _mm512_mask_cmp_epu8_mask (__mmask32 __U, __m512i __X, __m512i __Y,
   2796          1.1       mrg 			   const int __P)
   2797          1.1       mrg {
   2798          1.1       mrg   return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
   2799          1.1       mrg 						   (__v64qi) __Y, __P,
   2800          1.1       mrg 						   (__mmask64) __U);
   2801          1.1       mrg }
   2802          1.1       mrg 
   2803          1.1       mrg extern __inline __mmask64
   2804          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2805          1.1       mrg _mm512_cmp_epu8_mask (__m512i __X, __m512i __Y, const int __P)
   2806          1.1       mrg {
   2807          1.1       mrg   return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
   2808          1.1       mrg 						   (__v64qi) __Y, __P,
   2809          1.1       mrg 						   (__mmask64) -1);
   2810          1.1       mrg }
   2811          1.1       mrg 
   2812          1.1       mrg extern __inline __m512i
   2813          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2814          1.1       mrg _mm512_bslli_epi128 (__m512i __A, const int __N)
   2815          1.1       mrg {
   2816          1.1       mrg   return (__m512i) __builtin_ia32_pslldq512 (__A, __N * 8);
   2817          1.1       mrg }
   2818          1.1       mrg 
   2819          1.1       mrg extern __inline __m512i
   2820          1.1       mrg __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2821          1.1       mrg _mm512_bsrli_epi128 (__m512i __A, const int __N)
   2822          1.1       mrg {
   2823          1.1       mrg   return (__m512i) __builtin_ia32_psrldq512 (__A, __N * 8);
   2824          1.1       mrg }
   2825          1.1       mrg 
   2826          1.1       mrg #else
   2827          1.1       mrg #define _mm512_alignr_epi8(X, Y, N)						    \
   2828          1.1       mrg   ((__m512i) __builtin_ia32_palignr512 ((__v8di)(__m512i)(X),			    \
   2829          1.1       mrg 					(__v8di)(__m512i)(Y),			    \
   2830          1.1       mrg 					(int)(N * 8)))
   2831          1.1       mrg 
   2832          1.1       mrg #define _mm512_mask_alignr_epi8(W, U, X, Y, N)					    \
   2833          1.1       mrg   ((__m512i) __builtin_ia32_palignr512_mask ((__v8di)(__m512i)(X),		    \
   2834          1.1       mrg 					    (__v8di)(__m512i)(Y), (int)(N * 8),	    \
   2835          1.1       mrg 					    (__v8di)(__m512i)(W), (__mmask64)(U)))
   2836          1.1       mrg 
   2837          1.1       mrg #define _mm512_maskz_alignr_epi8(U, X, Y, N)					    \
   2838          1.1       mrg   ((__m512i) __builtin_ia32_palignr512_mask ((__v8di)(__m512i)(X),		    \
   2839          1.1       mrg 					    (__v8di)(__m512i)(Y), (int)(N * 8),	    \
   2840          1.1       mrg 					    (__v8di)(__m512i)_mm512_setzero_si512 (),   \
   2841          1.1       mrg 					    (__mmask64)(U)))
   2842          1.1       mrg 
   2843          1.1       mrg #define _mm512_dbsad_epu8(X, Y, C)                                                  \
   2844          1.1       mrg   ((__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi)(__m512i) (X),               \
   2845          1.1       mrg                                               (__v64qi)(__m512i) (Y), (int) (C),    \
   2846          1.1       mrg                                               (__v32hi)(__m512i)_mm512_setzero_si512 (),\
   2847          1.1       mrg                                               (__mmask32)-1))
   2848          1.1       mrg 
   2849          1.1       mrg #define _mm512_mask_dbsad_epu8(W, U, X, Y, C)                                       \
   2850          1.1       mrg   ((__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi)(__m512i) (X),               \
   2851          1.1       mrg                                               (__v64qi)(__m512i) (Y), (int) (C),    \
   2852          1.1       mrg                                               (__v32hi)(__m512i)(W),                \
   2853          1.1       mrg                                               (__mmask32)(U)))
   2854          1.1       mrg 
   2855          1.1       mrg #define _mm512_maskz_dbsad_epu8(U, X, Y, C)                                         \
   2856          1.1       mrg   ((__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi)(__m512i) (X),               \
   2857          1.1       mrg                                               (__v64qi)(__m512i) (Y), (int) (C),    \
   2858          1.1       mrg                                               (__v32hi)(__m512i)_mm512_setzero_si512 (),\
   2859          1.1       mrg                                               (__mmask32)(U)))
   2860          1.1       mrg 
   2861          1.1       mrg #define _mm512_srli_epi16(A, B)                                         \
   2862          1.1       mrg   ((__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi)(__m512i)(A),      \
   2863          1.1       mrg     (int)(B), (__v32hi)_mm512_setzero_hi(), (__mmask32)-1))
   2864          1.1       mrg 
   2865          1.1       mrg #define _mm512_mask_srli_epi16(W, U, A, B)                              \
   2866          1.1       mrg   ((__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi)(__m512i)(A),      \
   2867          1.1       mrg     (int)(B), (__v32hi)(__m512i)(W), (__mmask32)(U)))
   2868          1.1       mrg 
   2869          1.1       mrg #define _mm512_maskz_srli_epi16(U, A, B)                                \
   2870          1.1       mrg   ((__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi)(__m512i)(A),      \
   2871          1.1       mrg     (int)(B), (__v32hi)_mm512_setzero_hi(), (__mmask32)(U)))
   2872          1.1       mrg 
   2873          1.1       mrg #define _mm512_slli_epi16(X, C)						   \
   2874          1.1       mrg   ((__m512i)__builtin_ia32_psllwi512_mask ((__v32hi)(__m512i)(X), (int)(C),\
   2875          1.1       mrg     (__v32hi)(__m512i)_mm512_setzero_hi(),\
   2876          1.1       mrg     (__mmask32)-1))
   2877          1.1       mrg 
   2878          1.1       mrg #define _mm512_mask_slli_epi16(W, U, X, C)                                 \
   2879          1.1       mrg   ((__m512i)__builtin_ia32_psllwi512_mask ((__v32hi)(__m512i)(X), (int)(C),\
   2880          1.1       mrg     (__v32hi)(__m512i)(W),\
   2881          1.1       mrg     (__mmask32)(U)))
   2882          1.1       mrg 
   2883          1.1       mrg #define _mm512_maskz_slli_epi16(U, X, C)                                   \
   2884          1.1       mrg   ((__m512i)__builtin_ia32_psllwi512_mask ((__v32hi)(__m512i)(X), (int)(C),\
   2885          1.1       mrg     (__v32hi)(__m512i)_mm512_setzero_hi(),\
   2886          1.1       mrg     (__mmask32)(U)))
   2887          1.1       mrg 
   2888          1.1       mrg #define _mm512_shufflehi_epi16(A, B)                                                \
   2889          1.1       mrg   ((__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi)(__m512i)(A), (int)(B),       \
   2890          1.1       mrg                                              (__v32hi)(__m512i)_mm512_setzero_hi(), \
   2891          1.1       mrg                                              (__mmask32)-1))
   2892          1.1       mrg 
   2893          1.1       mrg #define _mm512_mask_shufflehi_epi16(W, U, A, B)                                     \
   2894          1.1       mrg   ((__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi)(__m512i)(A), (int)(B),       \
   2895          1.1       mrg                                              (__v32hi)(__m512i)(W),                 \
   2896          1.1       mrg                                              (__mmask32)(U)))
   2897          1.1       mrg 
   2898          1.1       mrg #define _mm512_maskz_shufflehi_epi16(U, A, B)                                       \
   2899          1.1       mrg   ((__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi)(__m512i)(A), (int)(B),       \
   2900          1.1       mrg                                              (__v32hi)(__m512i)_mm512_setzero_hi(), \
   2901          1.1       mrg                                              (__mmask32)(U)))
   2902          1.1       mrg 
   2903          1.1       mrg #define _mm512_shufflelo_epi16(A, B)                                                \
   2904          1.1       mrg   ((__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi)(__m512i)(A), (int)(B),       \
   2905          1.1       mrg                                              (__v32hi)(__m512i)_mm512_setzero_hi(), \
   2906          1.1       mrg                                              (__mmask32)-1))
   2907          1.1       mrg 
   2908          1.1       mrg #define _mm512_mask_shufflelo_epi16(W, U, A, B)                                     \
   2909          1.1       mrg   ((__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi)(__m512i)(A), (int)(B),       \
   2910          1.1       mrg                                              (__v32hi)(__m512i)(W),                 \
   2911          1.1       mrg                                              (__mmask32)(U)))
   2912          1.1       mrg 
   2913          1.1       mrg #define _mm512_maskz_shufflelo_epi16(U, A, B)                                       \
   2914          1.1       mrg   ((__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi)(__m512i)(A), (int)(B),       \
   2915          1.1       mrg                                              (__v32hi)(__m512i)_mm512_setzero_hi(), \
   2916          1.1       mrg                                              (__mmask32)(U)))
   2917          1.1       mrg 
   2918          1.1       mrg #define _mm512_srai_epi16(A, B)                                         \
   2919          1.1       mrg   ((__m512i) __builtin_ia32_psrawi512_mask ((__v32hi)(__m512i)(A),      \
   2920          1.1       mrg     (int)(B), (__v32hi)_mm512_setzero_hi(), (__mmask32)-1))
   2921          1.1       mrg 
   2922          1.1       mrg #define _mm512_mask_srai_epi16(W, U, A, B)                              \
   2923          1.1       mrg   ((__m512i) __builtin_ia32_psrawi512_mask ((__v32hi)(__m512i)(A),      \
   2924          1.1       mrg     (int)(B), (__v32hi)(__m512i)(W), (__mmask32)(U)))
   2925          1.1       mrg 
   2926          1.1       mrg #define _mm512_maskz_srai_epi16(U, A, B)                                \
   2927          1.1       mrg   ((__m512i) __builtin_ia32_psrawi512_mask ((__v32hi)(__m512i)(A),      \
   2928          1.1       mrg     (int)(B), (__v32hi)_mm512_setzero_hi(), (__mmask32)(U)))
   2929          1.1       mrg 
   2930          1.1       mrg #define _mm512_mask_blend_epi16(__U, __A, __W)			      \
   2931          1.1       mrg   ((__m512i) __builtin_ia32_blendmw_512_mask ((__v32hi) (__A),	      \
   2932          1.1       mrg 						    (__v32hi) (__W),  \
   2933          1.1       mrg 						    (__mmask32) (__U)))
   2934          1.1       mrg 
   2935          1.1       mrg #define _mm512_mask_blend_epi8(__U, __A, __W)			      \
   2936          1.1       mrg   ((__m512i) __builtin_ia32_blendmb_512_mask ((__v64qi) (__A),	      \
   2937          1.1       mrg 						    (__v64qi) (__W),  \
   2938          1.1       mrg 						    (__mmask64) (__U)))
   2939          1.1       mrg 
   2940          1.1       mrg #define _mm512_cmp_epi16_mask(X, Y, P)				\
   2941          1.1       mrg   ((__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi)(__m512i)(X),	\
   2942          1.1       mrg 					    (__v32hi)(__m512i)(Y), (int)(P),\
   2943          1.1       mrg 					    (__mmask32)(-1)))
   2944          1.1       mrg 
   2945          1.1       mrg #define _mm512_cmp_epi8_mask(X, Y, P)				\
   2946          1.1       mrg   ((__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi)(__m512i)(X),	\
   2947          1.1       mrg 					    (__v64qi)(__m512i)(Y), (int)(P),\
   2948          1.1       mrg 					    (__mmask64)(-1)))
   2949          1.1       mrg 
   2950          1.1       mrg #define _mm512_cmp_epu16_mask(X, Y, P)				\
   2951          1.1       mrg   ((__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi)(__m512i)(X),	\
   2952          1.1       mrg 					    (__v32hi)(__m512i)(Y), (int)(P),\
   2953          1.1       mrg 					    (__mmask32)(-1)))
   2954          1.1       mrg 
   2955          1.1       mrg #define _mm512_cmp_epu8_mask(X, Y, P)				\
   2956          1.1       mrg   ((__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi)(__m512i)(X),	\
   2957          1.1       mrg 					    (__v64qi)(__m512i)(Y), (int)(P),\
   2958          1.1       mrg 					    (__mmask64)(-1)))
   2959          1.1       mrg 
   2960          1.1       mrg #define _mm512_mask_cmp_epi16_mask(M, X, Y, P)				\
   2961          1.1       mrg   ((__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi)(__m512i)(X),	\
   2962          1.1       mrg 					    (__v32hi)(__m512i)(Y), (int)(P),\
   2963          1.1       mrg 					    (__mmask32)(M)))
   2964          1.1       mrg 
   2965          1.1       mrg #define _mm512_mask_cmp_epi8_mask(M, X, Y, P)				\
   2966          1.1       mrg   ((__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi)(__m512i)(X),	\
   2967          1.1       mrg 					    (__v64qi)(__m512i)(Y), (int)(P),\
   2968          1.1       mrg 					    (__mmask64)(M)))
   2969          1.1       mrg 
   2970          1.1       mrg #define _mm512_mask_cmp_epu16_mask(M, X, Y, P)				\
   2971          1.1       mrg   ((__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi)(__m512i)(X),	\
   2972          1.1       mrg 					    (__v32hi)(__m512i)(Y), (int)(P),\
   2973          1.1       mrg 					    (__mmask32)(M)))
   2974          1.1       mrg 
   2975          1.1       mrg #define _mm512_mask_cmp_epu8_mask(M, X, Y, P)				\
   2976          1.1       mrg   ((__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi)(__m512i)(X),	\
   2977          1.1       mrg 					    (__v64qi)(__m512i)(Y), (int)(P),\
   2978          1.1       mrg 					    (__mmask64)(M)))
   2979          1.1       mrg 
   2980          1.1       mrg #define _mm512_bslli_epi128(A, N)                                         \
   2981          1.1       mrg   ((__m512i)__builtin_ia32_pslldq512 ((__m512i)(A), (int)(N) * 8))
   2982          1.1       mrg 
   2983          1.1       mrg #define _mm512_bsrli_epi128(A, N)                                         \
   2984          1.1       mrg   ((__m512i)__builtin_ia32_psrldq512 ((__m512i)(A), (int)(N) * 8))
   2985          1.1       mrg 
   2986          1.1       mrg #endif
   2987          1.1       mrg 
   2988          1.1       mrg #ifdef __DISABLE_AVX512BW__
   2989          1.1       mrg #undef __DISABLE_AVX512BW__
   2990          1.1       mrg #pragma GCC pop_options
   2991          1.1       mrg #endif /* __DISABLE_AVX512BW__ */
   2992          1.1       mrg 
   2993          1.1       mrg #endif /* _AVX512BWINTRIN_H_INCLUDED */
   2994