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