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