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