Home | History | Annotate | Download | only in include
      1 /*===---- avx512vlbwintrin.h - AVX512VL and AVX512BW intrinsics ------------===
      2  *
      3  * Permission is hereby granted, free of charge, to any person obtaining a copy
      4  * of this software and associated documentation files (the "Software"), to deal
      5  * in the Software without restriction, including without limitation the rights
      6  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
      7  * copies of the Software, and to permit persons to whom the Software is
      8  * furnished to do so, subject to the following conditions:
      9  *
     10  * The above copyright notice and this permission notice shall be included in
     11  * all copies or substantial portions of the Software.
     12  *
     13  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     14  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     15  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
     16  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     17  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
     18  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
     19  * THE SOFTWARE.
     20  *
     21  *===-----------------------------------------------------------------------===
     22  */
     23 
     24 #ifndef __IMMINTRIN_H
     25 #error "Never use <avx512vlbwintrin.h> directly; include <immintrin.h> instead."
     26 #endif
     27 
     28 #ifndef __AVX512VLBWINTRIN_H
     29 #define __AVX512VLBWINTRIN_H
     30 
     31 /* Define the default attributes for the functions in this file. */
     32 #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw")))
     33 
     34 static  __inline __m128i __DEFAULT_FN_ATTRS
     35 _mm_setzero_hi(void){
     36     return (__m128i)(__v8hi){ 0, 0, 0, 0, 0, 0, 0, 0 };
     37 }
     38 
     39 /* Integer compare */
     40 
     41 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
     42 _mm_cmpeq_epi8_mask(__m128i __a, __m128i __b) {
     43   return (__mmask16)__builtin_ia32_pcmpeqb128_mask((__v16qi)__a, (__v16qi)__b,
     44                                                    (__mmask16)-1);
     45 }
     46 
     47 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
     48 _mm_mask_cmpeq_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
     49   return (__mmask16)__builtin_ia32_pcmpeqb128_mask((__v16qi)__a, (__v16qi)__b,
     50                                                    __u);
     51 }
     52 
     53 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
     54 _mm_cmpeq_epu8_mask(__m128i __a, __m128i __b) {
     55   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 0,
     56                                                  (__mmask16)-1);
     57 }
     58 
     59 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
     60 _mm_mask_cmpeq_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
     61   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 0,
     62                                                  __u);
     63 }
     64 
     65 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
     66 _mm256_cmpeq_epi8_mask(__m256i __a, __m256i __b) {
     67   return (__mmask32)__builtin_ia32_pcmpeqb256_mask((__v32qi)__a, (__v32qi)__b,
     68                                                    (__mmask32)-1);
     69 }
     70 
     71 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
     72 _mm256_mask_cmpeq_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
     73   return (__mmask32)__builtin_ia32_pcmpeqb256_mask((__v32qi)__a, (__v32qi)__b,
     74                                                    __u);
     75 }
     76 
     77 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
     78 _mm256_cmpeq_epu8_mask(__m256i __a, __m256i __b) {
     79   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 0,
     80                                                  (__mmask32)-1);
     81 }
     82 
     83 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
     84 _mm256_mask_cmpeq_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
     85   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 0,
     86                                                  __u);
     87 }
     88 
     89 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
     90 _mm_cmpeq_epi16_mask(__m128i __a, __m128i __b) {
     91   return (__mmask8)__builtin_ia32_pcmpeqw128_mask((__v8hi)__a, (__v8hi)__b,
     92                                                   (__mmask8)-1);
     93 }
     94 
     95 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
     96 _mm_mask_cmpeq_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
     97   return (__mmask8)__builtin_ia32_pcmpeqw128_mask((__v8hi)__a, (__v8hi)__b,
     98                                                   __u);
     99 }
    100 
    101 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    102 _mm_cmpeq_epu16_mask(__m128i __a, __m128i __b) {
    103   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 0,
    104                                                 (__mmask8)-1);
    105 }
    106 
    107 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    108 _mm_mask_cmpeq_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    109   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 0,
    110                                                 __u);
    111 }
    112 
    113 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    114 _mm256_cmpeq_epi16_mask(__m256i __a, __m256i __b) {
    115   return (__mmask16)__builtin_ia32_pcmpeqw256_mask((__v16hi)__a, (__v16hi)__b,
    116                                                    (__mmask16)-1);
    117 }
    118 
    119 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    120 _mm256_mask_cmpeq_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
    121   return (__mmask16)__builtin_ia32_pcmpeqw256_mask((__v16hi)__a, (__v16hi)__b,
    122                                                    __u);
    123 }
    124 
    125 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    126 _mm256_cmpeq_epu16_mask(__m256i __a, __m256i __b) {
    127   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 0,
    128                                                  (__mmask16)-1);
    129 }
    130 
    131 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    132 _mm256_mask_cmpeq_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
    133   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 0,
    134                                                  __u);
    135 }
    136 
    137 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    138 _mm_cmpge_epi8_mask(__m128i __a, __m128i __b) {
    139   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 5,
    140                                                 (__mmask16)-1);
    141 }
    142 
    143 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    144 _mm_mask_cmpge_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
    145   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 5,
    146                                                 __u);
    147 }
    148 
    149 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    150 _mm_cmpge_epu8_mask(__m128i __a, __m128i __b) {
    151   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 5,
    152                                                  (__mmask16)-1);
    153 }
    154 
    155 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    156 _mm_mask_cmpge_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
    157   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 5,
    158                                                  __u);
    159 }
    160 
    161 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    162 _mm256_cmpge_epi8_mask(__m256i __a, __m256i __b) {
    163   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 5,
    164                                                 (__mmask32)-1);
    165 }
    166 
    167 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    168 _mm256_mask_cmpge_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    169   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 5,
    170                                                 __u);
    171 }
    172 
    173 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    174 _mm256_cmpge_epu8_mask(__m256i __a, __m256i __b) {
    175   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 5,
    176                                                  (__mmask32)-1);
    177 }
    178 
    179 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    180 _mm256_mask_cmpge_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    181   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 5,
    182                                                  __u);
    183 }
    184 
    185 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    186 _mm_cmpge_epi16_mask(__m128i __a, __m128i __b) {
    187   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 5,
    188                                                (__mmask8)-1);
    189 }
    190 
    191 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    192 _mm_mask_cmpge_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    193   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 5,
    194                                                __u);
    195 }
    196 
    197 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    198 _mm_cmpge_epu16_mask(__m128i __a, __m128i __b) {
    199   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 5,
    200                                                 (__mmask8)-1);
    201 }
    202 
    203 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    204 _mm_mask_cmpge_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    205   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 5,
    206                                                 __u);
    207 }
    208 
    209 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    210 _mm256_cmpge_epi16_mask(__m256i __a, __m256i __b) {
    211   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 5,
    212                                                 (__mmask16)-1);
    213 }
    214 
    215 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    216 _mm256_mask_cmpge_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
    217   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 5,
    218                                                 __u);
    219 }
    220 
    221 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    222 _mm256_cmpge_epu16_mask(__m256i __a, __m256i __b) {
    223   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 5,
    224                                                  (__mmask16)-1);
    225 }
    226 
    227 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    228 _mm256_mask_cmpge_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
    229   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 5,
    230                                                  __u);
    231 }
    232 
    233 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    234 _mm_cmpgt_epi8_mask(__m128i __a, __m128i __b) {
    235   return (__mmask16)__builtin_ia32_pcmpgtb128_mask((__v16qi)__a, (__v16qi)__b,
    236                                                    (__mmask16)-1);
    237 }
    238 
    239 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    240 _mm_mask_cmpgt_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
    241   return (__mmask16)__builtin_ia32_pcmpgtb128_mask((__v16qi)__a, (__v16qi)__b,
    242                                                    __u);
    243 }
    244 
    245 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    246 _mm_cmpgt_epu8_mask(__m128i __a, __m128i __b) {
    247   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 6,
    248                                                  (__mmask16)-1);
    249 }
    250 
    251 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    252 _mm_mask_cmpgt_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
    253   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 6,
    254                                                  __u);
    255 }
    256 
    257 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    258 _mm256_cmpgt_epi8_mask(__m256i __a, __m256i __b) {
    259   return (__mmask32)__builtin_ia32_pcmpgtb256_mask((__v32qi)__a, (__v32qi)__b,
    260                                                    (__mmask32)-1);
    261 }
    262 
    263 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    264 _mm256_mask_cmpgt_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    265   return (__mmask32)__builtin_ia32_pcmpgtb256_mask((__v32qi)__a, (__v32qi)__b,
    266                                                    __u);
    267 }
    268 
    269 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    270 _mm256_cmpgt_epu8_mask(__m256i __a, __m256i __b) {
    271   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 6,
    272                                                  (__mmask32)-1);
    273 }
    274 
    275 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    276 _mm256_mask_cmpgt_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    277   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 6,
    278                                                  __u);
    279 }
    280 
    281 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    282 _mm_cmpgt_epi16_mask(__m128i __a, __m128i __b) {
    283   return (__mmask8)__builtin_ia32_pcmpgtw128_mask((__v8hi)__a, (__v8hi)__b,
    284                                                   (__mmask8)-1);
    285 }
    286 
    287 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    288 _mm_mask_cmpgt_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    289   return (__mmask8)__builtin_ia32_pcmpgtw128_mask((__v8hi)__a, (__v8hi)__b,
    290                                                   __u);
    291 }
    292 
    293 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    294 _mm_cmpgt_epu16_mask(__m128i __a, __m128i __b) {
    295   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 6,
    296                                                 (__mmask8)-1);
    297 }
    298 
    299 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    300 _mm_mask_cmpgt_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    301   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 6,
    302                                                 __u);
    303 }
    304 
    305 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    306 _mm256_cmpgt_epi16_mask(__m256i __a, __m256i __b) {
    307   return (__mmask16)__builtin_ia32_pcmpgtw256_mask((__v16hi)__a, (__v16hi)__b,
    308                                                    (__mmask16)-1);
    309 }
    310 
    311 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    312 _mm256_mask_cmpgt_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
    313   return (__mmask16)__builtin_ia32_pcmpgtw256_mask((__v16hi)__a, (__v16hi)__b,
    314                                                    __u);
    315 }
    316 
    317 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    318 _mm256_cmpgt_epu16_mask(__m256i __a, __m256i __b) {
    319   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 6,
    320                                                  (__mmask16)-1);
    321 }
    322 
    323 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    324 _mm256_mask_cmpgt_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
    325   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 6,
    326                                                  __u);
    327 }
    328 
    329 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    330 _mm_cmple_epi8_mask(__m128i __a, __m128i __b) {
    331   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 2,
    332                                                 (__mmask16)-1);
    333 }
    334 
    335 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    336 _mm_mask_cmple_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
    337   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 2,
    338                                                 __u);
    339 }
    340 
    341 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    342 _mm_cmple_epu8_mask(__m128i __a, __m128i __b) {
    343   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 2,
    344                                                  (__mmask16)-1);
    345 }
    346 
    347 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    348 _mm_mask_cmple_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
    349   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 2,
    350                                                  __u);
    351 }
    352 
    353 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    354 _mm256_cmple_epi8_mask(__m256i __a, __m256i __b) {
    355   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 2,
    356                                                 (__mmask32)-1);
    357 }
    358 
    359 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    360 _mm256_mask_cmple_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    361   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 2,
    362                                                 __u);
    363 }
    364 
    365 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    366 _mm256_cmple_epu8_mask(__m256i __a, __m256i __b) {
    367   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 2,
    368                                                  (__mmask32)-1);
    369 }
    370 
    371 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    372 _mm256_mask_cmple_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    373   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 2,
    374                                                  __u);
    375 }
    376 
    377 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    378 _mm_cmple_epi16_mask(__m128i __a, __m128i __b) {
    379   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 2,
    380                                                (__mmask8)-1);
    381 }
    382 
    383 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    384 _mm_mask_cmple_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    385   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 2,
    386                                                __u);
    387 }
    388 
    389 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    390 _mm_cmple_epu16_mask(__m128i __a, __m128i __b) {
    391   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 2,
    392                                                 (__mmask8)-1);
    393 }
    394 
    395 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    396 _mm_mask_cmple_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    397   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 2,
    398                                                 __u);
    399 }
    400 
    401 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    402 _mm256_cmple_epi16_mask(__m256i __a, __m256i __b) {
    403   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 2,
    404                                                 (__mmask16)-1);
    405 }
    406 
    407 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    408 _mm256_mask_cmple_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
    409   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 2,
    410                                                 __u);
    411 }
    412 
    413 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    414 _mm256_cmple_epu16_mask(__m256i __a, __m256i __b) {
    415   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 2,
    416                                                  (__mmask16)-1);
    417 }
    418 
    419 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    420 _mm256_mask_cmple_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
    421   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 2,
    422                                                  __u);
    423 }
    424 
    425 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    426 _mm_cmplt_epi8_mask(__m128i __a, __m128i __b) {
    427   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 1,
    428                                                 (__mmask16)-1);
    429 }
    430 
    431 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    432 _mm_mask_cmplt_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
    433   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 1,
    434                                                 __u);
    435 }
    436 
    437 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    438 _mm_cmplt_epu8_mask(__m128i __a, __m128i __b) {
    439   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 1,
    440                                                  (__mmask16)-1);
    441 }
    442 
    443 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    444 _mm_mask_cmplt_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
    445   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 1,
    446                                                  __u);
    447 }
    448 
    449 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    450 _mm256_cmplt_epi8_mask(__m256i __a, __m256i __b) {
    451   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 1,
    452                                                 (__mmask32)-1);
    453 }
    454 
    455 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    456 _mm256_mask_cmplt_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    457   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 1,
    458                                                 __u);
    459 }
    460 
    461 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    462 _mm256_cmplt_epu8_mask(__m256i __a, __m256i __b) {
    463   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 1,
    464                                                  (__mmask32)-1);
    465 }
    466 
    467 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    468 _mm256_mask_cmplt_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    469   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 1,
    470                                                  __u);
    471 }
    472 
    473 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    474 _mm_cmplt_epi16_mask(__m128i __a, __m128i __b) {
    475   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 1,
    476                                                (__mmask8)-1);
    477 }
    478 
    479 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    480 _mm_mask_cmplt_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    481   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 1,
    482                                                __u);
    483 }
    484 
    485 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    486 _mm_cmplt_epu16_mask(__m128i __a, __m128i __b) {
    487   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 1,
    488                                                 (__mmask8)-1);
    489 }
    490 
    491 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    492 _mm_mask_cmplt_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    493   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 1,
    494                                                 __u);
    495 }
    496 
    497 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    498 _mm256_cmplt_epi16_mask(__m256i __a, __m256i __b) {
    499   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 1,
    500                                                 (__mmask16)-1);
    501 }
    502 
    503 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    504 _mm256_mask_cmplt_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
    505   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 1,
    506                                                 __u);
    507 }
    508 
    509 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    510 _mm256_cmplt_epu16_mask(__m256i __a, __m256i __b) {
    511   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 1,
    512                                                  (__mmask16)-1);
    513 }
    514 
    515 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    516 _mm256_mask_cmplt_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
    517   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 1,
    518                                                  __u);
    519 }
    520 
    521 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    522 _mm_cmpneq_epi8_mask(__m128i __a, __m128i __b) {
    523   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 4,
    524                                                 (__mmask16)-1);
    525 }
    526 
    527 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    528 _mm_mask_cmpneq_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
    529   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 4,
    530                                                 __u);
    531 }
    532 
    533 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    534 _mm_cmpneq_epu8_mask(__m128i __a, __m128i __b) {
    535   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 4,
    536                                                  (__mmask16)-1);
    537 }
    538 
    539 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    540 _mm_mask_cmpneq_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
    541   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 4,
    542                                                  __u);
    543 }
    544 
    545 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    546 _mm256_cmpneq_epi8_mask(__m256i __a, __m256i __b) {
    547   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 4,
    548                                                 (__mmask32)-1);
    549 }
    550 
    551 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    552 _mm256_mask_cmpneq_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    553   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 4,
    554                                                 __u);
    555 }
    556 
    557 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    558 _mm256_cmpneq_epu8_mask(__m256i __a, __m256i __b) {
    559   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 4,
    560                                                  (__mmask32)-1);
    561 }
    562 
    563 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    564 _mm256_mask_cmpneq_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    565   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 4,
    566                                                  __u);
    567 }
    568 
    569 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    570 _mm_cmpneq_epi16_mask(__m128i __a, __m128i __b) {
    571   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 4,
    572                                                (__mmask8)-1);
    573 }
    574 
    575 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    576 _mm_mask_cmpneq_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    577   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 4,
    578                                                __u);
    579 }
    580 
    581 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    582 _mm_cmpneq_epu16_mask(__m128i __a, __m128i __b) {
    583   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 4,
    584                                                 (__mmask8)-1);
    585 }
    586 
    587 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    588 _mm_mask_cmpneq_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    589   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 4,
    590                                                 __u);
    591 }
    592 
    593 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    594 _mm256_cmpneq_epi16_mask(__m256i __a, __m256i __b) {
    595   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 4,
    596                                                 (__mmask16)-1);
    597 }
    598 
    599 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    600 _mm256_mask_cmpneq_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
    601   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 4,
    602                                                 __u);
    603 }
    604 
    605 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    606 _mm256_cmpneq_epu16_mask(__m256i __a, __m256i __b) {
    607   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 4,
    608                                                  (__mmask16)-1);
    609 }
    610 
    611 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    612 _mm256_mask_cmpneq_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
    613   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 4,
    614                                                  __u);
    615 }
    616 
    617 static __inline__ __m256i __DEFAULT_FN_ATTRS
    618 _mm256_mask_add_epi8 (__m256i __W, __mmask32 __U, __m256i __A, __m256i __B){
    619   return (__m256i) __builtin_ia32_paddb256_mask ((__v32qi) __A,
    620              (__v32qi) __B,
    621              (__v32qi) __W,
    622              (__mmask32) __U);
    623 }
    624 
    625 static __inline__ __m256i __DEFAULT_FN_ATTRS
    626 _mm256_maskz_add_epi8 (__mmask32 __U, __m256i __A, __m256i __B) {
    627   return (__m256i) __builtin_ia32_paddb256_mask ((__v32qi) __A,
    628              (__v32qi) __B,
    629              (__v32qi)
    630              _mm256_setzero_si256 (),
    631              (__mmask32) __U);
    632 }
    633 
    634 static __inline__ __m256i __DEFAULT_FN_ATTRS
    635 _mm256_mask_add_epi16 (__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
    636   return (__m256i) __builtin_ia32_paddw256_mask ((__v16hi) __A,
    637              (__v16hi) __B,
    638              (__v16hi) __W,
    639              (__mmask16) __U);
    640 }
    641 
    642 static __inline__ __m256i __DEFAULT_FN_ATTRS
    643 _mm256_maskz_add_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
    644   return (__m256i) __builtin_ia32_paddw256_mask ((__v16hi) __A,
    645              (__v16hi) __B,
    646              (__v16hi)
    647              _mm256_setzero_si256 (),
    648              (__mmask16) __U);
    649 }
    650 
    651 static __inline__ __m256i __DEFAULT_FN_ATTRS
    652 _mm256_mask_sub_epi8 (__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
    653   return (__m256i) __builtin_ia32_psubb256_mask ((__v32qi) __A,
    654              (__v32qi) __B,
    655              (__v32qi) __W,
    656              (__mmask32) __U);
    657 }
    658 
    659 static __inline__ __m256i __DEFAULT_FN_ATTRS
    660 _mm256_maskz_sub_epi8 (__mmask32 __U, __m256i __A, __m256i __B) {
    661   return (__m256i) __builtin_ia32_psubb256_mask ((__v32qi) __A,
    662              (__v32qi) __B,
    663              (__v32qi)
    664              _mm256_setzero_si256 (),
    665              (__mmask32) __U);
    666 }
    667 
    668 static __inline__ __m256i __DEFAULT_FN_ATTRS
    669 _mm256_mask_sub_epi16 (__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
    670   return (__m256i) __builtin_ia32_psubw256_mask ((__v16hi) __A,
    671              (__v16hi) __B,
    672              (__v16hi) __W,
    673              (__mmask16) __U);
    674 }
    675 
    676 static __inline__ __m256i __DEFAULT_FN_ATTRS
    677 _mm256_maskz_sub_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
    678   return (__m256i) __builtin_ia32_psubw256_mask ((__v16hi) __A,
    679              (__v16hi) __B,
    680              (__v16hi)
    681              _mm256_setzero_si256 (),
    682              (__mmask16) __U);
    683 }
    684 static __inline__ __m128i __DEFAULT_FN_ATTRS
    685 _mm_mask_add_epi8 (__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
    686   return (__m128i) __builtin_ia32_paddb128_mask ((__v16qi) __A,
    687              (__v16qi) __B,
    688              (__v16qi) __W,
    689              (__mmask16) __U);
    690 }
    691 
    692 static __inline__ __m128i __DEFAULT_FN_ATTRS
    693 _mm_maskz_add_epi8 (__mmask16 __U, __m128i __A, __m128i __B) {
    694   return (__m128i) __builtin_ia32_paddb128_mask ((__v16qi) __A,
    695              (__v16qi) __B,
    696              (__v16qi)
    697              _mm_setzero_si128 (),
    698              (__mmask16) __U);
    699 }
    700 
    701 static __inline__ __m128i __DEFAULT_FN_ATTRS
    702 _mm_mask_add_epi16 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
    703   return (__m128i) __builtin_ia32_paddw128_mask ((__v8hi) __A,
    704              (__v8hi) __B,
    705              (__v8hi) __W,
    706              (__mmask8) __U);
    707 }
    708 
    709 static __inline__ __m128i __DEFAULT_FN_ATTRS
    710 _mm_maskz_add_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
    711   return (__m128i) __builtin_ia32_paddw128_mask ((__v8hi) __A,
    712              (__v8hi) __B,
    713              (__v8hi)
    714              _mm_setzero_si128 (),
    715              (__mmask8) __U);
    716 }
    717 
    718 static __inline__ __m128i __DEFAULT_FN_ATTRS
    719 _mm_mask_sub_epi8 (__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
    720   return (__m128i) __builtin_ia32_psubb128_mask ((__v16qi) __A,
    721              (__v16qi) __B,
    722              (__v16qi) __W,
    723              (__mmask16) __U);
    724 }
    725 
    726 static __inline__ __m128i __DEFAULT_FN_ATTRS
    727 _mm_maskz_sub_epi8 (__mmask16 __U, __m128i __A, __m128i __B) {
    728   return (__m128i) __builtin_ia32_psubb128_mask ((__v16qi) __A,
    729              (__v16qi) __B,
    730              (__v16qi)
    731              _mm_setzero_si128 (),
    732              (__mmask16) __U);
    733 }
    734 
    735 static __inline__ __m128i __DEFAULT_FN_ATTRS
    736 _mm_mask_sub_epi16 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
    737   return (__m128i) __builtin_ia32_psubw128_mask ((__v8hi) __A,
    738              (__v8hi) __B,
    739              (__v8hi) __W,
    740              (__mmask8) __U);
    741 }
    742 
    743 static __inline__ __m128i __DEFAULT_FN_ATTRS
    744 _mm_maskz_sub_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
    745   return (__m128i) __builtin_ia32_psubw128_mask ((__v8hi) __A,
    746              (__v8hi) __B,
    747              (__v8hi)
    748              _mm_setzero_si128 (),
    749              (__mmask8) __U);
    750 }
    751 
    752 static __inline__ __m256i __DEFAULT_FN_ATTRS
    753 _mm256_mask_mullo_epi16 (__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
    754   return (__m256i) __builtin_ia32_pmullw256_mask ((__v16hi) __A,
    755               (__v16hi) __B,
    756               (__v16hi) __W,
    757               (__mmask16) __U);
    758 }
    759 
    760 static __inline__ __m256i __DEFAULT_FN_ATTRS
    761 _mm256_maskz_mullo_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
    762   return (__m256i) __builtin_ia32_pmullw256_mask ((__v16hi) __A,
    763               (__v16hi) __B,
    764               (__v16hi)
    765               _mm256_setzero_si256 (),
    766               (__mmask16) __U);
    767 }
    768 
    769 static __inline__ __m128i __DEFAULT_FN_ATTRS
    770 _mm_mask_mullo_epi16 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
    771   return (__m128i) __builtin_ia32_pmullw128_mask ((__v8hi) __A,
    772               (__v8hi) __B,
    773               (__v8hi) __W,
    774               (__mmask8) __U);
    775 }
    776 
    777 static __inline__ __m128i __DEFAULT_FN_ATTRS
    778 _mm_maskz_mullo_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
    779   return (__m128i) __builtin_ia32_pmullw128_mask ((__v8hi) __A,
    780               (__v8hi) __B,
    781               (__v8hi)
    782               _mm_setzero_si128 (),
    783               (__mmask8) __U);
    784 }
    785 
    786 static __inline__ __m128i __DEFAULT_FN_ATTRS
    787 _mm_mask_blend_epi8 (__mmask16 __U, __m128i __A, __m128i __W)
    788 {
    789   return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U,
    790               (__v16qi) __W,
    791               (__v16qi) __A);
    792 }
    793 
    794 static __inline__ __m256i __DEFAULT_FN_ATTRS
    795 _mm256_mask_blend_epi8 (__mmask32 __U, __m256i __A, __m256i __W)
    796 {
    797   return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U,
    798                (__v32qi) __W,
    799                (__v32qi) __A);
    800 }
    801 
    802 static __inline__ __m128i __DEFAULT_FN_ATTRS
    803 _mm_mask_blend_epi16 (__mmask8 __U, __m128i __A, __m128i __W)
    804 {
    805   return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U,
    806                (__v8hi) __W,
    807                (__v8hi) __A);
    808 }
    809 
    810 static __inline__ __m256i __DEFAULT_FN_ATTRS
    811 _mm256_mask_blend_epi16 (__mmask16 __U, __m256i __A, __m256i __W)
    812 {
    813   return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U,
    814                (__v16hi) __W,
    815                (__v16hi) __A);
    816 }
    817 
    818 static __inline__ __m128i __DEFAULT_FN_ATTRS
    819 _mm_mask_abs_epi8 (__m128i __W, __mmask16 __U, __m128i __A)
    820 {
    821   return (__m128i) __builtin_ia32_pabsb128_mask ((__v16qi) __A,
    822                (__v16qi) __W,
    823                (__mmask16) __U);
    824 }
    825 
    826 static __inline__ __m128i __DEFAULT_FN_ATTRS
    827 _mm_maskz_abs_epi8 (__mmask16 __U, __m128i __A)
    828 {
    829   return (__m128i) __builtin_ia32_pabsb128_mask ((__v16qi) __A,
    830                (__v16qi) _mm_setzero_si128 (),
    831                (__mmask16) __U);
    832 }
    833 
    834 static __inline__ __m256i __DEFAULT_FN_ATTRS
    835 _mm256_mask_abs_epi8 (__m256i __W, __mmask32 __U, __m256i __A)
    836 {
    837   return (__m256i) __builtin_ia32_pabsb256_mask ((__v32qi) __A,
    838                (__v32qi) __W,
    839                (__mmask32) __U);
    840 }
    841 
    842 static __inline__ __m256i __DEFAULT_FN_ATTRS
    843 _mm256_maskz_abs_epi8 (__mmask32 __U, __m256i __A)
    844 {
    845   return (__m256i) __builtin_ia32_pabsb256_mask ((__v32qi) __A,
    846                (__v32qi) _mm256_setzero_si256 (),
    847                (__mmask32) __U);
    848 }
    849 
    850 static __inline__ __m128i __DEFAULT_FN_ATTRS
    851 _mm_mask_abs_epi16 (__m128i __W, __mmask8 __U, __m128i __A)
    852 {
    853   return (__m128i) __builtin_ia32_pabsw128_mask ((__v8hi) __A,
    854                (__v8hi) __W,
    855                (__mmask8) __U);
    856 }
    857 
    858 static __inline__ __m128i __DEFAULT_FN_ATTRS
    859 _mm_maskz_abs_epi16 (__mmask8 __U, __m128i __A)
    860 {
    861   return (__m128i) __builtin_ia32_pabsw128_mask ((__v8hi) __A,
    862                (__v8hi) _mm_setzero_si128 (),
    863                (__mmask8) __U);
    864 }
    865 
    866 static __inline__ __m256i __DEFAULT_FN_ATTRS
    867 _mm256_mask_abs_epi16 (__m256i __W, __mmask16 __U, __m256i __A)
    868 {
    869   return (__m256i) __builtin_ia32_pabsw256_mask ((__v16hi) __A,
    870                (__v16hi) __W,
    871                (__mmask16) __U);
    872 }
    873 
    874 static __inline__ __m256i __DEFAULT_FN_ATTRS
    875 _mm256_maskz_abs_epi16 (__mmask16 __U, __m256i __A)
    876 {
    877   return (__m256i) __builtin_ia32_pabsw256_mask ((__v16hi) __A,
    878                (__v16hi) _mm256_setzero_si256 (),
    879                (__mmask16) __U);
    880 }
    881 
    882 static __inline__ __m128i __DEFAULT_FN_ATTRS
    883 _mm_maskz_packs_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
    884 {
    885   return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A,
    886                (__v4si) __B,
    887                (__v8hi) _mm_setzero_si128 (), __M);
    888 }
    889 
    890 static __inline__ __m128i __DEFAULT_FN_ATTRS
    891 _mm_mask_packs_epi32 (__m128i __W, __mmask16 __M, __m128i __A,
    892           __m128i __B)
    893 {
    894   return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A,
    895                (__v4si) __B,
    896                (__v8hi) __W, __M);
    897 }
    898 
    899 static __inline__ __m256i __DEFAULT_FN_ATTRS
    900 _mm256_maskz_packs_epi32 (__mmask16 __M, __m256i __A, __m256i __B)
    901 {
    902   return (__m256i) __builtin_ia32_packssdw256_mask ((__v8si) __A,
    903                (__v8si) __B,
    904                (__v16hi) _mm256_setzero_si256 (),
    905                __M);
    906 }
    907 
    908 static __inline__ __m256i __DEFAULT_FN_ATTRS
    909 _mm256_mask_packs_epi32 (__m256i __W, __mmask16 __M, __m256i __A,
    910        __m256i __B)
    911 {
    912   return (__m256i) __builtin_ia32_packssdw256_mask ((__v8si) __A,
    913                (__v8si) __B,
    914                (__v16hi) __W, __M);
    915 }
    916 
    917 static __inline__ __m128i __DEFAULT_FN_ATTRS
    918 _mm_maskz_packs_epi16 (__mmask16 __M, __m128i __A, __m128i __B)
    919 {
    920   return (__m128i) __builtin_ia32_packsswb128_mask ((__v8hi) __A,
    921                (__v8hi) __B,
    922                (__v16qi) _mm_setzero_si128 (),
    923                __M);
    924 }
    925 
    926 static __inline__ __m128i __DEFAULT_FN_ATTRS
    927 _mm_mask_packs_epi16 (__m128i __W, __mmask16 __M, __m128i __A,
    928           __m128i __B)
    929 {
    930   return (__m128i) __builtin_ia32_packsswb128_mask ((__v8hi) __A,
    931                (__v8hi) __B,
    932                (__v16qi) __W,
    933                __M);
    934 }
    935 
    936 static __inline__ __m256i __DEFAULT_FN_ATTRS
    937 _mm256_maskz_packs_epi16 (__mmask32 __M, __m256i __A, __m256i __B)
    938 {
    939   return (__m256i) __builtin_ia32_packsswb256_mask ((__v16hi) __A,
    940                (__v16hi) __B,
    941                (__v32qi) _mm256_setzero_si256 (),
    942                __M);
    943 }
    944 
    945 static __inline__ __m256i __DEFAULT_FN_ATTRS
    946 _mm256_mask_packs_epi16 (__m256i __W, __mmask32 __M, __m256i __A,
    947        __m256i __B)
    948 {
    949   return (__m256i) __builtin_ia32_packsswb256_mask ((__v16hi) __A,
    950                (__v16hi) __B,
    951                (__v32qi) __W,
    952                __M);
    953 }
    954 
    955 static __inline__ __m128i __DEFAULT_FN_ATTRS
    956 _mm_maskz_packus_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
    957 {
    958   return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A,
    959                (__v4si) __B,
    960                (__v8hi) _mm_setzero_si128 (),
    961                __M);
    962 }
    963 
    964 static __inline__ __m128i __DEFAULT_FN_ATTRS
    965 _mm_mask_packus_epi32 (__m128i __W, __mmask16 __M, __m128i __A,
    966            __m128i __B)
    967 {
    968   return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A,
    969                (__v4si) __B,
    970                (__v8hi) __W, __M);
    971 }
    972 
    973 static __inline__ __m256i __DEFAULT_FN_ATTRS
    974 _mm256_maskz_packus_epi32 (__mmask16 __M, __m256i __A, __m256i __B)
    975 {
    976   return (__m256i) __builtin_ia32_packusdw256_mask ((__v8si) __A,
    977                (__v8si) __B,
    978                (__v16hi) _mm256_setzero_si256 (),
    979                __M);
    980 }
    981 
    982 static __inline__ __m256i __DEFAULT_FN_ATTRS
    983 _mm256_mask_packus_epi32 (__m256i __W, __mmask16 __M, __m256i __A,
    984         __m256i __B)
    985 {
    986   return (__m256i) __builtin_ia32_packusdw256_mask ((__v8si) __A,
    987                (__v8si) __B,
    988                (__v16hi) __W,
    989                __M);
    990 }
    991 
    992 static __inline__ __m128i __DEFAULT_FN_ATTRS
    993 _mm_maskz_packus_epi16 (__mmask16 __M, __m128i __A, __m128i __B)
    994 {
    995   return (__m128i) __builtin_ia32_packuswb128_mask ((__v8hi) __A,
    996                (__v8hi) __B,
    997                (__v16qi) _mm_setzero_si128 (),
    998                __M);
    999 }
   1000 
   1001 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1002 _mm_mask_packus_epi16 (__m128i __W, __mmask16 __M, __m128i __A,
   1003            __m128i __B)
   1004 {
   1005   return (__m128i) __builtin_ia32_packuswb128_mask ((__v8hi) __A,
   1006                (__v8hi) __B,
   1007                (__v16qi) __W,
   1008                __M);
   1009 }
   1010 
   1011 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1012 _mm256_maskz_packus_epi16 (__mmask32 __M, __m256i __A, __m256i __B)
   1013 {
   1014   return (__m256i) __builtin_ia32_packuswb256_mask ((__v16hi) __A,
   1015                (__v16hi) __B,
   1016                (__v32qi) _mm256_setzero_si256 (),
   1017                __M);
   1018 }
   1019 
   1020 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1021 _mm256_mask_packus_epi16 (__m256i __W, __mmask32 __M, __m256i __A,
   1022         __m256i __B)
   1023 {
   1024   return (__m256i) __builtin_ia32_packuswb256_mask ((__v16hi) __A,
   1025                (__v16hi) __B,
   1026                (__v32qi) __W,
   1027                __M);
   1028 }
   1029 
   1030 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1031 _mm_mask_adds_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
   1032         __m128i __B)
   1033 {
   1034   return (__m128i) __builtin_ia32_paddsb128_mask ((__v16qi) __A,
   1035                (__v16qi) __B,
   1036                (__v16qi) __W,
   1037                (__mmask16) __U);
   1038 }
   1039 
   1040 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1041 _mm_maskz_adds_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
   1042 {
   1043   return (__m128i) __builtin_ia32_paddsb128_mask ((__v16qi) __A,
   1044                (__v16qi) __B,
   1045                (__v16qi) _mm_setzero_si128 (),
   1046                (__mmask16) __U);
   1047 }
   1048 
   1049 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1050 _mm256_mask_adds_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
   1051            __m256i __B)
   1052 {
   1053   return (__m256i) __builtin_ia32_paddsb256_mask ((__v32qi) __A,
   1054                (__v32qi) __B,
   1055                (__v32qi) __W,
   1056                (__mmask32) __U);
   1057 }
   1058 
   1059 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1060 _mm256_maskz_adds_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
   1061 {
   1062   return (__m256i) __builtin_ia32_paddsb256_mask ((__v32qi) __A,
   1063                (__v32qi) __B,
   1064                (__v32qi) _mm256_setzero_si256 (),
   1065                (__mmask32) __U);
   1066 }
   1067 
   1068 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1069 _mm_mask_adds_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
   1070          __m128i __B)
   1071 {
   1072   return (__m128i) __builtin_ia32_paddsw128_mask ((__v8hi) __A,
   1073                (__v8hi) __B,
   1074                (__v8hi) __W,
   1075                (__mmask8) __U);
   1076 }
   1077 
   1078 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1079 _mm_maskz_adds_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
   1080 {
   1081   return (__m128i) __builtin_ia32_paddsw128_mask ((__v8hi) __A,
   1082                (__v8hi) __B,
   1083                (__v8hi) _mm_setzero_si128 (),
   1084                (__mmask8) __U);
   1085 }
   1086 
   1087 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1088 _mm256_mask_adds_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
   1089       __m256i __B)
   1090 {
   1091   return (__m256i) __builtin_ia32_paddsw256_mask ((__v16hi) __A,
   1092                (__v16hi) __B,
   1093                (__v16hi) __W,
   1094                (__mmask16) __U);
   1095 }
   1096 
   1097 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1098 _mm256_maskz_adds_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
   1099 {
   1100   return (__m256i) __builtin_ia32_paddsw256_mask ((__v16hi) __A,
   1101                (__v16hi) __B,
   1102                (__v16hi) _mm256_setzero_si256 (),
   1103                (__mmask16) __U);
   1104 }
   1105 
   1106 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1107 _mm_mask_adds_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
   1108         __m128i __B)
   1109 {
   1110   return (__m128i) __builtin_ia32_paddusb128_mask ((__v16qi) __A,
   1111                (__v16qi) __B,
   1112                (__v16qi) __W,
   1113                (__mmask16) __U);
   1114 }
   1115 
   1116 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1117 _mm_maskz_adds_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
   1118 {
   1119   return (__m128i) __builtin_ia32_paddusb128_mask ((__v16qi) __A,
   1120                (__v16qi) __B,
   1121                (__v16qi) _mm_setzero_si128 (),
   1122                (__mmask16) __U);
   1123 }
   1124 
   1125 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1126 _mm256_mask_adds_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
   1127            __m256i __B)
   1128 {
   1129   return (__m256i) __builtin_ia32_paddusb256_mask ((__v32qi) __A,
   1130                (__v32qi) __B,
   1131                (__v32qi) __W,
   1132                (__mmask32) __U);
   1133 }
   1134 
   1135 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1136 _mm256_maskz_adds_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
   1137 {
   1138   return (__m256i) __builtin_ia32_paddusb256_mask ((__v32qi) __A,
   1139                (__v32qi) __B,
   1140                (__v32qi) _mm256_setzero_si256 (),
   1141                (__mmask32) __U);
   1142 }
   1143 
   1144 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1145 _mm_mask_adds_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
   1146          __m128i __B)
   1147 {
   1148   return (__m128i) __builtin_ia32_paddusw128_mask ((__v8hi) __A,
   1149                (__v8hi) __B,
   1150                (__v8hi) __W,
   1151                (__mmask8) __U);
   1152 }
   1153 
   1154 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1155 _mm_maskz_adds_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
   1156 {
   1157   return (__m128i) __builtin_ia32_paddusw128_mask ((__v8hi) __A,
   1158                (__v8hi) __B,
   1159                (__v8hi) _mm_setzero_si128 (),
   1160                (__mmask8) __U);
   1161 }
   1162 
   1163 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1164 _mm256_mask_adds_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
   1165       __m256i __B)
   1166 {
   1167   return (__m256i) __builtin_ia32_paddusw256_mask ((__v16hi) __A,
   1168                (__v16hi) __B,
   1169                (__v16hi) __W,
   1170                (__mmask16) __U);
   1171 }
   1172 
   1173 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1174 _mm256_maskz_adds_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
   1175 {
   1176   return (__m256i) __builtin_ia32_paddusw256_mask ((__v16hi) __A,
   1177                (__v16hi) __B,
   1178                (__v16hi) _mm256_setzero_si256 (),
   1179                (__mmask16) __U);
   1180 }
   1181 
   1182 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1183 _mm_mask_avg_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
   1184        __m128i __B)
   1185 {
   1186   return (__m128i) __builtin_ia32_pavgb128_mask ((__v16qi) __A,
   1187                (__v16qi) __B,
   1188                (__v16qi) __W,
   1189                (__mmask16) __U);
   1190 }
   1191 
   1192 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1193 _mm_maskz_avg_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
   1194 {
   1195   return (__m128i) __builtin_ia32_pavgb128_mask ((__v16qi) __A,
   1196                (__v16qi) __B,
   1197                (__v16qi) _mm_setzero_si128 (),
   1198                (__mmask16) __U);
   1199 }
   1200 
   1201 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1202 _mm256_mask_avg_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
   1203           __m256i __B)
   1204 {
   1205   return (__m256i) __builtin_ia32_pavgb256_mask ((__v32qi) __A,
   1206                (__v32qi) __B,
   1207                (__v32qi) __W,
   1208                (__mmask32) __U);
   1209 }
   1210 
   1211 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1212 _mm256_maskz_avg_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
   1213 {
   1214   return (__m256i) __builtin_ia32_pavgb256_mask ((__v32qi) __A,
   1215                (__v32qi) __B,
   1216                (__v32qi) _mm256_setzero_si256 (),
   1217                (__mmask32) __U);
   1218 }
   1219 
   1220 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1221 _mm_mask_avg_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
   1222         __m128i __B)
   1223 {
   1224   return (__m128i) __builtin_ia32_pavgw128_mask ((__v8hi) __A,
   1225                (__v8hi) __B,
   1226                (__v8hi) __W,
   1227                (__mmask8) __U);
   1228 }
   1229 
   1230 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1231 _mm_maskz_avg_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
   1232 {
   1233   return (__m128i) __builtin_ia32_pavgw128_mask ((__v8hi) __A,
   1234                (__v8hi) __B,
   1235                (__v8hi) _mm_setzero_si128 (),
   1236                (__mmask8) __U);
   1237 }
   1238 
   1239 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1240 _mm256_mask_avg_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
   1241            __m256i __B)
   1242 {
   1243   return (__m256i) __builtin_ia32_pavgw256_mask ((__v16hi) __A,
   1244                (__v16hi) __B,
   1245                (__v16hi) __W,
   1246                (__mmask16) __U);
   1247 }
   1248 
   1249 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1250 _mm256_maskz_avg_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
   1251 {
   1252   return (__m256i) __builtin_ia32_pavgw256_mask ((__v16hi) __A,
   1253                (__v16hi) __B,
   1254                (__v16hi) _mm256_setzero_si256 (),
   1255                (__mmask16) __U);
   1256 }
   1257 
   1258 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1259 _mm_maskz_max_epi8 (__mmask16 __M, __m128i __A, __m128i __B)
   1260 {
   1261   return (__m128i) __builtin_ia32_pmaxsb128_mask ((__v16qi) __A,
   1262                (__v16qi) __B,
   1263                (__v16qi) _mm_setzero_si128 (),
   1264                (__mmask16) __M);
   1265 }
   1266 
   1267 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1268 _mm_mask_max_epi8 (__m128i __W, __mmask16 __M, __m128i __A,
   1269        __m128i __B)
   1270 {
   1271   return (__m128i) __builtin_ia32_pmaxsb128_mask ((__v16qi) __A,
   1272                (__v16qi) __B,
   1273                (__v16qi) __W,
   1274                (__mmask16) __M);
   1275 }
   1276 
   1277 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1278 _mm256_maskz_max_epi8 (__mmask32 __M, __m256i __A, __m256i __B)
   1279 {
   1280   return (__m256i) __builtin_ia32_pmaxsb256_mask ((__v32qi) __A,
   1281                (__v32qi) __B,
   1282                (__v32qi) _mm256_setzero_si256 (),
   1283                (__mmask32) __M);
   1284 }
   1285 
   1286 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1287 _mm256_mask_max_epi8 (__m256i __W, __mmask32 __M, __m256i __A,
   1288           __m256i __B)
   1289 {
   1290   return (__m256i) __builtin_ia32_pmaxsb256_mask ((__v32qi) __A,
   1291                (__v32qi) __B,
   1292                (__v32qi) __W,
   1293                (__mmask32) __M);
   1294 }
   1295 
   1296 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1297 _mm_maskz_max_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
   1298 {
   1299   return (__m128i) __builtin_ia32_pmaxsw128_mask ((__v8hi) __A,
   1300                (__v8hi) __B,
   1301                (__v8hi) _mm_setzero_si128 (),
   1302                (__mmask8) __M);
   1303 }
   1304 
   1305 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1306 _mm_mask_max_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
   1307         __m128i __B)
   1308 {
   1309   return (__m128i) __builtin_ia32_pmaxsw128_mask ((__v8hi) __A,
   1310                (__v8hi) __B,
   1311                (__v8hi) __W,
   1312                (__mmask8) __M);
   1313 }
   1314 
   1315 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1316 _mm256_maskz_max_epi16 (__mmask16 __M, __m256i __A, __m256i __B)
   1317 {
   1318   return (__m256i) __builtin_ia32_pmaxsw256_mask ((__v16hi) __A,
   1319                (__v16hi) __B,
   1320                (__v16hi) _mm256_setzero_si256 (),
   1321                (__mmask16) __M);
   1322 }
   1323 
   1324 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1325 _mm256_mask_max_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
   1326            __m256i __B)
   1327 {
   1328   return (__m256i) __builtin_ia32_pmaxsw256_mask ((__v16hi) __A,
   1329                (__v16hi) __B,
   1330                (__v16hi) __W,
   1331                (__mmask16) __M);
   1332 }
   1333 
   1334 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1335 _mm_maskz_max_epu8 (__mmask16 __M, __m128i __A, __m128i __B)
   1336 {
   1337   return (__m128i) __builtin_ia32_pmaxub128_mask ((__v16qi) __A,
   1338                (__v16qi) __B,
   1339                (__v16qi) _mm_setzero_si128 (),
   1340                (__mmask16) __M);
   1341 }
   1342 
   1343 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1344 _mm_mask_max_epu8 (__m128i __W, __mmask16 __M, __m128i __A,
   1345        __m128i __B)
   1346 {
   1347   return (__m128i) __builtin_ia32_pmaxub128_mask ((__v16qi) __A,
   1348                (__v16qi) __B,
   1349                (__v16qi) __W,
   1350                (__mmask16) __M);
   1351 }
   1352 
   1353 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1354 _mm256_maskz_max_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
   1355 {
   1356   return (__m256i) __builtin_ia32_pmaxub256_mask ((__v32qi) __A,
   1357                (__v32qi) __B,
   1358                (__v32qi) _mm256_setzero_si256 (),
   1359                (__mmask32) __M);
   1360 }
   1361 
   1362 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1363 _mm256_mask_max_epu8 (__m256i __W, __mmask32 __M, __m256i __A,
   1364           __m256i __B)
   1365 {
   1366   return (__m256i) __builtin_ia32_pmaxub256_mask ((__v32qi) __A,
   1367                (__v32qi) __B,
   1368                (__v32qi) __W,
   1369                (__mmask32) __M);
   1370 }
   1371 
   1372 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1373 _mm_maskz_max_epu16 (__mmask8 __M, __m128i __A, __m128i __B)
   1374 {
   1375   return (__m128i) __builtin_ia32_pmaxuw128_mask ((__v8hi) __A,
   1376                (__v8hi) __B,
   1377                (__v8hi) _mm_setzero_si128 (),
   1378                (__mmask8) __M);
   1379 }
   1380 
   1381 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1382 _mm_mask_max_epu16 (__m128i __W, __mmask8 __M, __m128i __A,
   1383         __m128i __B)
   1384 {
   1385   return (__m128i) __builtin_ia32_pmaxuw128_mask ((__v8hi) __A,
   1386                (__v8hi) __B,
   1387                (__v8hi) __W,
   1388                (__mmask8) __M);
   1389 }
   1390 
   1391 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1392 _mm256_maskz_max_epu16 (__mmask16 __M, __m256i __A, __m256i __B)
   1393 {
   1394   return (__m256i) __builtin_ia32_pmaxuw256_mask ((__v16hi) __A,
   1395                (__v16hi) __B,
   1396                (__v16hi) _mm256_setzero_si256 (),
   1397                (__mmask16) __M);
   1398 }
   1399 
   1400 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1401 _mm256_mask_max_epu16 (__m256i __W, __mmask16 __M, __m256i __A,
   1402            __m256i __B)
   1403 {
   1404   return (__m256i) __builtin_ia32_pmaxuw256_mask ((__v16hi) __A,
   1405                (__v16hi) __B,
   1406                (__v16hi) __W,
   1407                (__mmask16) __M);
   1408 }
   1409 
   1410 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1411 _mm_maskz_min_epi8 (__mmask16 __M, __m128i __A, __m128i __B)
   1412 {
   1413   return (__m128i) __builtin_ia32_pminsb128_mask ((__v16qi) __A,
   1414                (__v16qi) __B,
   1415                (__v16qi) _mm_setzero_si128 (),
   1416                (__mmask16) __M);
   1417 }
   1418 
   1419 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1420 _mm_mask_min_epi8 (__m128i __W, __mmask16 __M, __m128i __A,
   1421        __m128i __B)
   1422 {
   1423   return (__m128i) __builtin_ia32_pminsb128_mask ((__v16qi) __A,
   1424                (__v16qi) __B,
   1425                (__v16qi) __W,
   1426                (__mmask16) __M);
   1427 }
   1428 
   1429 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1430 _mm256_maskz_min_epi8 (__mmask32 __M, __m256i __A, __m256i __B)
   1431 {
   1432   return (__m256i) __builtin_ia32_pminsb256_mask ((__v32qi) __A,
   1433                (__v32qi) __B,
   1434                (__v32qi) _mm256_setzero_si256 (),
   1435                (__mmask32) __M);
   1436 }
   1437 
   1438 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1439 _mm256_mask_min_epi8 (__m256i __W, __mmask32 __M, __m256i __A,
   1440           __m256i __B)
   1441 {
   1442   return (__m256i) __builtin_ia32_pminsb256_mask ((__v32qi) __A,
   1443                (__v32qi) __B,
   1444                (__v32qi) __W,
   1445                (__mmask32) __M);
   1446 }
   1447 
   1448 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1449 _mm_maskz_min_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
   1450 {
   1451   return (__m128i) __builtin_ia32_pminsw128_mask ((__v8hi) __A,
   1452                (__v8hi) __B,
   1453                (__v8hi) _mm_setzero_si128 (),
   1454                (__mmask8) __M);
   1455 }
   1456 
   1457 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1458 _mm_mask_min_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
   1459         __m128i __B)
   1460 {
   1461   return (__m128i) __builtin_ia32_pminsw128_mask ((__v8hi) __A,
   1462                (__v8hi) __B,
   1463                (__v8hi) __W,
   1464                (__mmask8) __M);
   1465 }
   1466 
   1467 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1468 _mm256_maskz_min_epi16 (__mmask16 __M, __m256i __A, __m256i __B)
   1469 {
   1470   return (__m256i) __builtin_ia32_pminsw256_mask ((__v16hi) __A,
   1471                (__v16hi) __B,
   1472                (__v16hi) _mm256_setzero_si256 (),
   1473                (__mmask16) __M);
   1474 }
   1475 
   1476 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1477 _mm256_mask_min_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
   1478            __m256i __B)
   1479 {
   1480   return (__m256i) __builtin_ia32_pminsw256_mask ((__v16hi) __A,
   1481                (__v16hi) __B,
   1482                (__v16hi) __W,
   1483                (__mmask16) __M);
   1484 }
   1485 
   1486 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1487 _mm_maskz_min_epu8 (__mmask16 __M, __m128i __A, __m128i __B)
   1488 {
   1489   return (__m128i) __builtin_ia32_pminub128_mask ((__v16qi) __A,
   1490                (__v16qi) __B,
   1491                (__v16qi) _mm_setzero_si128 (),
   1492                (__mmask16) __M);
   1493 }
   1494 
   1495 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1496 _mm_mask_min_epu8 (__m128i __W, __mmask16 __M, __m128i __A,
   1497        __m128i __B)
   1498 {
   1499   return (__m128i) __builtin_ia32_pminub128_mask ((__v16qi) __A,
   1500                (__v16qi) __B,
   1501                (__v16qi) __W,
   1502                (__mmask16) __M);
   1503 }
   1504 
   1505 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1506 _mm256_maskz_min_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
   1507 {
   1508   return (__m256i) __builtin_ia32_pminub256_mask ((__v32qi) __A,
   1509                (__v32qi) __B,
   1510                (__v32qi) _mm256_setzero_si256 (),
   1511                (__mmask32) __M);
   1512 }
   1513 
   1514 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1515 _mm256_mask_min_epu8 (__m256i __W, __mmask32 __M, __m256i __A,
   1516           __m256i __B)
   1517 {
   1518   return (__m256i) __builtin_ia32_pminub256_mask ((__v32qi) __A,
   1519                (__v32qi) __B,
   1520                (__v32qi) __W,
   1521                (__mmask32) __M);
   1522 }
   1523 
   1524 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1525 _mm_maskz_min_epu16 (__mmask8 __M, __m128i __A, __m128i __B)
   1526 {
   1527   return (__m128i) __builtin_ia32_pminuw128_mask ((__v8hi) __A,
   1528                (__v8hi) __B,
   1529                (__v8hi) _mm_setzero_si128 (),
   1530                (__mmask8) __M);
   1531 }
   1532 
   1533 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1534 _mm_mask_min_epu16 (__m128i __W, __mmask8 __M, __m128i __A,
   1535         __m128i __B)
   1536 {
   1537   return (__m128i) __builtin_ia32_pminuw128_mask ((__v8hi) __A,
   1538                (__v8hi) __B,
   1539                (__v8hi) __W,
   1540                (__mmask8) __M);
   1541 }
   1542 
   1543 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1544 _mm256_maskz_min_epu16 (__mmask16 __M, __m256i __A, __m256i __B)
   1545 {
   1546   return (__m256i) __builtin_ia32_pminuw256_mask ((__v16hi) __A,
   1547                (__v16hi) __B,
   1548                (__v16hi) _mm256_setzero_si256 (),
   1549                (__mmask16) __M);
   1550 }
   1551 
   1552 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1553 _mm256_mask_min_epu16 (__m256i __W, __mmask16 __M, __m256i __A,
   1554            __m256i __B)
   1555 {
   1556   return (__m256i) __builtin_ia32_pminuw256_mask ((__v16hi) __A,
   1557                (__v16hi) __B,
   1558                (__v16hi) __W,
   1559                (__mmask16) __M);
   1560 }
   1561 
   1562 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1563 _mm_mask_shuffle_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
   1564            __m128i __B)
   1565 {
   1566   return (__m128i) __builtin_ia32_pshufb128_mask ((__v16qi) __A,
   1567                (__v16qi) __B,
   1568                (__v16qi) __W,
   1569                (__mmask16) __U);
   1570 }
   1571 
   1572 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1573 _mm_maskz_shuffle_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
   1574 {
   1575   return (__m128i) __builtin_ia32_pshufb128_mask ((__v16qi) __A,
   1576                (__v16qi) __B,
   1577                (__v16qi) _mm_setzero_si128 (),
   1578                (__mmask16) __U);
   1579 }
   1580 
   1581 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1582 _mm256_mask_shuffle_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
   1583         __m256i __B)
   1584 {
   1585   return (__m256i) __builtin_ia32_pshufb256_mask ((__v32qi) __A,
   1586                (__v32qi) __B,
   1587                (__v32qi) __W,
   1588                (__mmask32) __U);
   1589 }
   1590 
   1591 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1592 _mm256_maskz_shuffle_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
   1593 {
   1594   return (__m256i) __builtin_ia32_pshufb256_mask ((__v32qi) __A,
   1595                (__v32qi) __B,
   1596                (__v32qi) _mm256_setzero_si256 (),
   1597                (__mmask32) __U);
   1598 }
   1599 
   1600 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1601 _mm_mask_subs_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
   1602         __m128i __B)
   1603 {
   1604   return (__m128i) __builtin_ia32_psubsb128_mask ((__v16qi) __A,
   1605                (__v16qi) __B,
   1606                (__v16qi) __W,
   1607                (__mmask16) __U);
   1608 }
   1609 
   1610 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1611 _mm_maskz_subs_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
   1612 {
   1613   return (__m128i) __builtin_ia32_psubsb128_mask ((__v16qi) __A,
   1614                (__v16qi) __B,
   1615                (__v16qi) _mm_setzero_si128 (),
   1616                (__mmask16) __U);
   1617 }
   1618 
   1619 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1620 _mm256_mask_subs_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
   1621            __m256i __B)
   1622 {
   1623   return (__m256i) __builtin_ia32_psubsb256_mask ((__v32qi) __A,
   1624                (__v32qi) __B,
   1625                (__v32qi) __W,
   1626                (__mmask32) __U);
   1627 }
   1628 
   1629 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1630 _mm256_maskz_subs_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
   1631 {
   1632   return (__m256i) __builtin_ia32_psubsb256_mask ((__v32qi) __A,
   1633                (__v32qi) __B,
   1634                (__v32qi) _mm256_setzero_si256 (),
   1635                (__mmask32) __U);
   1636 }
   1637 
   1638 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1639 _mm_mask_subs_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
   1640          __m128i __B)
   1641 {
   1642   return (__m128i) __builtin_ia32_psubsw128_mask ((__v8hi) __A,
   1643                (__v8hi) __B,
   1644                (__v8hi) __W,
   1645                (__mmask8) __U);
   1646 }
   1647 
   1648 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1649 _mm_maskz_subs_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
   1650 {
   1651   return (__m128i) __builtin_ia32_psubsw128_mask ((__v8hi) __A,
   1652                (__v8hi) __B,
   1653                (__v8hi) _mm_setzero_si128 (),
   1654                (__mmask8) __U);
   1655 }
   1656 
   1657 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1658 _mm256_mask_subs_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
   1659       __m256i __B)
   1660 {
   1661   return (__m256i) __builtin_ia32_psubsw256_mask ((__v16hi) __A,
   1662                (__v16hi) __B,
   1663                (__v16hi) __W,
   1664                (__mmask16) __U);
   1665 }
   1666 
   1667 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1668 _mm256_maskz_subs_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
   1669 {
   1670   return (__m256i) __builtin_ia32_psubsw256_mask ((__v16hi) __A,
   1671                (__v16hi) __B,
   1672                (__v16hi) _mm256_setzero_si256 (),
   1673                (__mmask16) __U);
   1674 }
   1675 
   1676 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1677 _mm_mask_subs_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
   1678         __m128i __B)
   1679 {
   1680   return (__m128i) __builtin_ia32_psubusb128_mask ((__v16qi) __A,
   1681                (__v16qi) __B,
   1682                (__v16qi) __W,
   1683                (__mmask16) __U);
   1684 }
   1685 
   1686 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1687 _mm_maskz_subs_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
   1688 {
   1689   return (__m128i) __builtin_ia32_psubusb128_mask ((__v16qi) __A,
   1690                (__v16qi) __B,
   1691                (__v16qi) _mm_setzero_si128 (),
   1692                (__mmask16) __U);
   1693 }
   1694 
   1695 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1696 _mm256_mask_subs_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
   1697            __m256i __B)
   1698 {
   1699   return (__m256i) __builtin_ia32_psubusb256_mask ((__v32qi) __A,
   1700                (__v32qi) __B,
   1701                (__v32qi) __W,
   1702                (__mmask32) __U);
   1703 }
   1704 
   1705 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1706 _mm256_maskz_subs_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
   1707 {
   1708   return (__m256i) __builtin_ia32_psubusb256_mask ((__v32qi) __A,
   1709                (__v32qi) __B,
   1710                (__v32qi) _mm256_setzero_si256 (),
   1711                (__mmask32) __U);
   1712 }
   1713 
   1714 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1715 _mm_mask_subs_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
   1716          __m128i __B)
   1717 {
   1718   return (__m128i) __builtin_ia32_psubusw128_mask ((__v8hi) __A,
   1719                (__v8hi) __B,
   1720                (__v8hi) __W,
   1721                (__mmask8) __U);
   1722 }
   1723 
   1724 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1725 _mm_maskz_subs_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
   1726 {
   1727   return (__m128i) __builtin_ia32_psubusw128_mask ((__v8hi) __A,
   1728                (__v8hi) __B,
   1729                (__v8hi) _mm_setzero_si128 (),
   1730                (__mmask8) __U);
   1731 }
   1732 
   1733 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1734 _mm256_mask_subs_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
   1735       __m256i __B)
   1736 {
   1737   return (__m256i) __builtin_ia32_psubusw256_mask ((__v16hi) __A,
   1738                (__v16hi) __B,
   1739                (__v16hi) __W,
   1740                (__mmask16) __U);
   1741 }
   1742 
   1743 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1744 _mm256_maskz_subs_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
   1745 {
   1746   return (__m256i) __builtin_ia32_psubusw256_mask ((__v16hi) __A,
   1747                (__v16hi) __B,
   1748                (__v16hi) _mm256_setzero_si256 (),
   1749                (__mmask16) __U);
   1750 }
   1751 
   1752 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1753 _mm_mask2_permutex2var_epi16 (__m128i __A, __m128i __I, __mmask8 __U,
   1754             __m128i __B)
   1755 {
   1756   return (__m128i) __builtin_ia32_vpermi2varhi128_mask ((__v8hi) __A,
   1757                (__v8hi) __I /* idx */ ,
   1758                (__v8hi) __B,
   1759                (__mmask8) __U);
   1760 }
   1761 
   1762 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1763 _mm256_mask2_permutex2var_epi16 (__m256i __A, __m256i __I,
   1764          __mmask16 __U, __m256i __B)
   1765 {
   1766   return (__m256i) __builtin_ia32_vpermi2varhi256_mask ((__v16hi) __A,
   1767                (__v16hi) __I /* idx */ ,
   1768                (__v16hi) __B,
   1769                (__mmask16) __U);
   1770 }
   1771 
   1772 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1773 _mm_permutex2var_epi16 (__m128i __A, __m128i __I, __m128i __B)
   1774 {
   1775   return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I/* idx */,
   1776                (__v8hi) __A,
   1777                (__v8hi) __B,
   1778                (__mmask8) -1);
   1779 }
   1780 
   1781 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1782 _mm_mask_permutex2var_epi16 (__m128i __A, __mmask8 __U, __m128i __I,
   1783            __m128i __B)
   1784 {
   1785   return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I/* idx */,
   1786                (__v8hi) __A,
   1787                (__v8hi) __B,
   1788                (__mmask8) __U);
   1789 }
   1790 
   1791 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1792 _mm_maskz_permutex2var_epi16 (__mmask8 __U, __m128i __A, __m128i __I,
   1793             __m128i __B)
   1794 {
   1795   return (__m128i) __builtin_ia32_vpermt2varhi128_maskz ((__v8hi) __I/* idx */,
   1796                (__v8hi) __A,
   1797                (__v8hi) __B,
   1798                (__mmask8) __U);
   1799 }
   1800 
   1801 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1802 _mm256_permutex2var_epi16 (__m256i __A, __m256i __I, __m256i __B)
   1803 {
   1804   return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I/* idx */,
   1805                (__v16hi) __A,
   1806                (__v16hi) __B,
   1807                (__mmask16) -1);
   1808 }
   1809 
   1810 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1811 _mm256_mask_permutex2var_epi16 (__m256i __A, __mmask16 __U,
   1812         __m256i __I, __m256i __B)
   1813 {
   1814   return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I/* idx */,
   1815                (__v16hi) __A,
   1816                (__v16hi) __B,
   1817                (__mmask16) __U);
   1818 }
   1819 
   1820 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1821 _mm256_maskz_permutex2var_epi16 (__mmask16 __U, __m256i __A,
   1822          __m256i __I, __m256i __B)
   1823 {
   1824   return (__m256i) __builtin_ia32_vpermt2varhi256_maskz ((__v16hi) __I/* idx */,
   1825                (__v16hi) __A,
   1826                (__v16hi) __B,
   1827                (__mmask16) __U);
   1828 }
   1829 
   1830 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1831 _mm_mask_maddubs_epi16 (__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
   1832   return (__m128i) __builtin_ia32_pmaddubsw128_mask ((__v16qi) __X,
   1833                (__v16qi) __Y,
   1834                (__v8hi) __W,
   1835                (__mmask8) __U);
   1836 }
   1837 
   1838 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1839 _mm_maskz_maddubs_epi16 (__mmask8 __U, __m128i __X, __m128i __Y) {
   1840   return (__m128i) __builtin_ia32_pmaddubsw128_mask ((__v16qi) __X,
   1841                (__v16qi) __Y,
   1842               (__v8hi) _mm_setzero_si128(),
   1843                (__mmask8) __U);
   1844 }
   1845 
   1846 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1847 _mm256_mask_maddubs_epi16 (__m256i __W, __mmask16 __U, __m256i __X,
   1848          __m256i __Y) {
   1849   return (__m256i) __builtin_ia32_pmaddubsw256_mask ((__v32qi) __X,
   1850                (__v32qi) __Y,
   1851                (__v16hi) __W,
   1852                (__mmask16) __U);
   1853 }
   1854 
   1855 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1856 _mm256_maskz_maddubs_epi16 (__mmask16 __U, __m256i __X, __m256i __Y) {
   1857   return (__m256i) __builtin_ia32_pmaddubsw256_mask ((__v32qi) __X,
   1858                (__v32qi) __Y,
   1859                (__v16hi) _mm256_setzero_si256(),
   1860                (__mmask16) __U);
   1861 }
   1862 
   1863 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1864 _mm_mask_madd_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
   1865          __m128i __B) {
   1866   return (__m128i) __builtin_ia32_pmaddwd128_mask ((__v8hi) __A,
   1867                (__v8hi) __B,
   1868                (__v4si) __W,
   1869                (__mmask8) __U);
   1870 }
   1871 
   1872 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1873 _mm_maskz_madd_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
   1874   return (__m128i) __builtin_ia32_pmaddwd128_mask ((__v8hi) __A,
   1875                (__v8hi) __B,
   1876                (__v4si) _mm_setzero_si128(),
   1877                (__mmask8) __U);
   1878 }
   1879 
   1880 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1881 _mm256_mask_madd_epi16 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
   1882   return (__m256i) __builtin_ia32_pmaddwd256_mask ((__v16hi) __A,
   1883                (__v16hi) __B,
   1884                (__v8si) __W,
   1885                (__mmask8) __U);
   1886 }
   1887 
   1888 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1889 _mm256_maskz_madd_epi16 (__mmask8 __U, __m256i __A, __m256i __B) {
   1890   return (__m256i) __builtin_ia32_pmaddwd256_mask ((__v16hi) __A,
   1891                (__v16hi) __B,
   1892                (__v8si) _mm256_setzero_si256(),
   1893                (__mmask8) __U);
   1894 }
   1895 
   1896 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1897 _mm_cvtsepi16_epi8 (__m128i __A) {
   1898   return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
   1899                (__v16qi) _mm_setzero_si128(),
   1900                (__mmask8) -1);
   1901 }
   1902 
   1903 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1904 _mm_mask_cvtsepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) {
   1905   return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
   1906                (__v16qi) __O,
   1907                 __M);
   1908 }
   1909 
   1910 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1911 _mm_maskz_cvtsepi16_epi8 (__mmask8 __M, __m128i __A) {
   1912   return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
   1913                (__v16qi) _mm_setzero_si128(),
   1914                __M);
   1915 }
   1916 
   1917 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1918 _mm256_cvtsepi16_epi8 (__m256i __A) {
   1919   return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
   1920                (__v16qi) _mm_setzero_si128(),
   1921                (__mmask16) -1);
   1922 }
   1923 
   1924 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1925 _mm256_mask_cvtsepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) {
   1926   return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
   1927                (__v16qi) __O,
   1928                 __M);
   1929 }
   1930 
   1931 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1932 _mm256_maskz_cvtsepi16_epi8 (__mmask16 __M, __m256i __A) {
   1933   return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
   1934                (__v16qi) _mm_setzero_si128(),
   1935                __M);
   1936 }
   1937 
   1938 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1939 _mm_cvtusepi16_epi8 (__m128i __A) {
   1940   return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
   1941                 (__v16qi) _mm_setzero_si128(),
   1942                 (__mmask8) -1);
   1943 }
   1944 
   1945 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1946 _mm_mask_cvtusepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) {
   1947   return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
   1948                 (__v16qi) __O,
   1949                 __M);
   1950 }
   1951 
   1952 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1953 _mm_maskz_cvtusepi16_epi8 (__mmask8 __M, __m128i __A) {
   1954   return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
   1955                 (__v16qi) _mm_setzero_si128(),
   1956                 __M);
   1957 }
   1958 
   1959 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1960 _mm256_cvtusepi16_epi8 (__m256i __A) {
   1961   return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
   1962                 (__v16qi) _mm_setzero_si128(),
   1963                 (__mmask16) -1);
   1964 }
   1965 
   1966 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1967 _mm256_mask_cvtusepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) {
   1968   return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
   1969                 (__v16qi) __O,
   1970                 __M);
   1971 }
   1972 
   1973 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1974 _mm256_maskz_cvtusepi16_epi8 (__mmask16 __M, __m256i __A) {
   1975   return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
   1976                 (__v16qi) _mm_setzero_si128(),
   1977                 __M);
   1978 }
   1979 
   1980 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1981 _mm_cvtepi16_epi8 (__m128i __A) {
   1982 
   1983   return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
   1984                (__v16qi) _mm_setzero_si128(),
   1985                (__mmask8) -1);
   1986 }
   1987 
   1988 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1989 _mm_mask_cvtepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) {
   1990   return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
   1991                (__v16qi) __O,
   1992                __M);
   1993 }
   1994 
   1995 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1996 _mm_maskz_cvtepi16_epi8 (__mmask8 __M, __m128i __A) {
   1997   return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
   1998                (__v16qi) _mm_setzero_si128(),
   1999                __M);
   2000 }
   2001 
   2002 static __inline__ void __DEFAULT_FN_ATTRS
   2003 _mm_mask_cvtepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
   2004 {
   2005   __builtin_ia32_pmovwb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M);
   2006 }
   2007 
   2008 
   2009 static __inline__ void __DEFAULT_FN_ATTRS
   2010 _mm_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
   2011 {
   2012   __builtin_ia32_pmovswb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M);
   2013 }
   2014 
   2015 static __inline__ void __DEFAULT_FN_ATTRS
   2016 _mm_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
   2017 {
   2018   __builtin_ia32_pmovuswb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M);
   2019 }
   2020 
   2021 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2022 _mm256_cvtepi16_epi8 (__m256i __A) {
   2023   return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
   2024                (__v16qi) _mm_setzero_si128(),
   2025                (__mmask16) -1);
   2026 }
   2027 
   2028 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2029 _mm256_mask_cvtepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) {
   2030   return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
   2031                (__v16qi) __O,
   2032                __M);
   2033 }
   2034 
   2035 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2036 _mm256_maskz_cvtepi16_epi8 (__mmask16 __M, __m256i __A) {
   2037   return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
   2038                (__v16qi) _mm_setzero_si128(),
   2039                __M);
   2040 }
   2041 
   2042 static __inline__ void __DEFAULT_FN_ATTRS
   2043 _mm256_mask_cvtepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A)
   2044 {
   2045   __builtin_ia32_pmovwb256mem_mask ((__v16qi *) __P, (__v16hi) __A, __M);
   2046 }
   2047 
   2048 static __inline__ void __DEFAULT_FN_ATTRS
   2049 _mm256_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A)
   2050 {
   2051   __builtin_ia32_pmovswb256mem_mask ((__v16qi *) __P, (__v16hi) __A, __M);
   2052 }
   2053 
   2054 static __inline__ void __DEFAULT_FN_ATTRS
   2055 _mm256_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
   2056 {
   2057   __builtin_ia32_pmovuswb256mem_mask ((__v16qi*) __P, (__v16hi) __A, __M);
   2058 }
   2059 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2060 _mm_mask_mulhrs_epi16 (__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
   2061   return (__m128i) __builtin_ia32_pmulhrsw128_mask ((__v8hi) __X,
   2062                (__v8hi) __Y,
   2063                (__v8hi) __W,
   2064                (__mmask8) __U);
   2065 }
   2066 
   2067 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2068 _mm_maskz_mulhrs_epi16 (__mmask8 __U, __m128i __X, __m128i __Y) {
   2069   return (__m128i) __builtin_ia32_pmulhrsw128_mask ((__v8hi) __X,
   2070                (__v8hi) __Y,
   2071               (__v8hi) _mm_setzero_si128(),
   2072                (__mmask8) __U);
   2073 }
   2074 
   2075 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2076 _mm256_mask_mulhrs_epi16 (__m256i __W, __mmask16 __U, __m256i __X, __m256i __Y) {
   2077   return (__m256i) __builtin_ia32_pmulhrsw256_mask ((__v16hi) __X,
   2078                (__v16hi) __Y,
   2079                (__v16hi) __W,
   2080                (__mmask16) __U);
   2081 }
   2082 
   2083 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2084 _mm256_maskz_mulhrs_epi16 (__mmask16 __U, __m256i __X, __m256i __Y) {
   2085   return (__m256i) __builtin_ia32_pmulhrsw256_mask ((__v16hi) __X,
   2086                (__v16hi) __Y,
   2087                (__v16hi) _mm256_setzero_si256(),
   2088                (__mmask16) __U);
   2089 }
   2090 
   2091 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2092 _mm_mask_mulhi_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
   2093           __m128i __B) {
   2094   return (__m128i) __builtin_ia32_pmulhuw128_mask ((__v8hi) __A,
   2095                (__v8hi) __B,
   2096                (__v8hi) __W,
   2097                (__mmask8) __U);
   2098 }
   2099 
   2100 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2101 _mm_maskz_mulhi_epu16 (__mmask8 __U, __m128i __A, __m128i __B) {
   2102   return (__m128i) __builtin_ia32_pmulhuw128_mask ((__v8hi) __A,
   2103                (__v8hi) __B,
   2104               (__v8hi) _mm_setzero_si128(),
   2105                (__mmask8) __U);
   2106 }
   2107 
   2108 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2109 _mm256_mask_mulhi_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
   2110        __m256i __B) {
   2111   return (__m256i) __builtin_ia32_pmulhuw256_mask ((__v16hi) __A,
   2112                (__v16hi) __B,
   2113                (__v16hi) __W,
   2114                (__mmask16) __U);
   2115 }
   2116 
   2117 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2118 _mm256_maskz_mulhi_epu16 (__mmask16 __U, __m256i __A, __m256i __B) {
   2119   return (__m256i) __builtin_ia32_pmulhuw256_mask ((__v16hi) __A,
   2120                (__v16hi) __B,
   2121                (__v16hi) _mm256_setzero_si256(),
   2122                (__mmask16) __U);
   2123 }
   2124 
   2125 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2126 _mm_mask_mulhi_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
   2127           __m128i __B) {
   2128   return (__m128i) __builtin_ia32_pmulhw128_mask ((__v8hi) __A,
   2129                (__v8hi) __B,
   2130                (__v8hi) __W,
   2131                (__mmask8) __U);
   2132 }
   2133 
   2134 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2135 _mm_maskz_mulhi_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
   2136   return (__m128i) __builtin_ia32_pmulhw128_mask ((__v8hi) __A,
   2137                (__v8hi) __B,
   2138               (__v8hi) _mm_setzero_si128(),
   2139                (__mmask8) __U);
   2140 }
   2141 
   2142 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2143 _mm256_mask_mulhi_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
   2144        __m256i __B) {
   2145   return (__m256i) __builtin_ia32_pmulhw256_mask ((__v16hi) __A,
   2146                (__v16hi) __B,
   2147                (__v16hi) __W,
   2148                (__mmask16) __U);
   2149 }
   2150 
   2151 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2152 _mm256_maskz_mulhi_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
   2153   return (__m256i) __builtin_ia32_pmulhw256_mask ((__v16hi) __A,
   2154                (__v16hi) __B,
   2155                (__v16hi) _mm256_setzero_si256(),
   2156                (__mmask16) __U);
   2157 }
   2158 
   2159 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2160 _mm_mask_unpackhi_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
   2161   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
   2162                                            (__v16qi)_mm_unpackhi_epi8(__A, __B),
   2163                                            (__v16qi)__W);
   2164 }
   2165 
   2166 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2167 _mm_maskz_unpackhi_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
   2168   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
   2169                                            (__v16qi)_mm_unpackhi_epi8(__A, __B),
   2170                                            (__v16qi)_mm_setzero_si128());
   2171 }
   2172 
   2173 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2174 _mm256_mask_unpackhi_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
   2175   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
   2176                                         (__v32qi)_mm256_unpackhi_epi8(__A, __B),
   2177                                         (__v32qi)__W);
   2178 }
   2179 
   2180 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2181 _mm256_maskz_unpackhi_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
   2182   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
   2183                                         (__v32qi)_mm256_unpackhi_epi8(__A, __B),
   2184                                         (__v32qi)_mm256_setzero_si256());
   2185 }
   2186 
   2187 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2188 _mm_mask_unpackhi_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
   2189   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2190                                            (__v8hi)_mm_unpackhi_epi16(__A, __B),
   2191                                            (__v8hi)__W);
   2192 }
   2193 
   2194 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2195 _mm_maskz_unpackhi_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
   2196   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2197                                            (__v8hi)_mm_unpackhi_epi16(__A, __B),
   2198                                            (__v8hi) _mm_setzero_si128());
   2199 }
   2200 
   2201 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2202 _mm256_mask_unpackhi_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
   2203   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2204                                        (__v16hi)_mm256_unpackhi_epi16(__A, __B),
   2205                                        (__v16hi)__W);
   2206 }
   2207 
   2208 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2209 _mm256_maskz_unpackhi_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
   2210   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2211                                        (__v16hi)_mm256_unpackhi_epi16(__A, __B),
   2212                                        (__v16hi)_mm256_setzero_si256());
   2213 }
   2214 
   2215 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2216 _mm_mask_unpacklo_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
   2217   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
   2218                                            (__v16qi)_mm_unpacklo_epi8(__A, __B),
   2219                                            (__v16qi)__W);
   2220 }
   2221 
   2222 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2223 _mm_maskz_unpacklo_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
   2224   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
   2225                                            (__v16qi)_mm_unpacklo_epi8(__A, __B),
   2226                                            (__v16qi)_mm_setzero_si128());
   2227 }
   2228 
   2229 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2230 _mm256_mask_unpacklo_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
   2231   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
   2232                                         (__v32qi)_mm256_unpacklo_epi8(__A, __B),
   2233                                         (__v32qi)__W);
   2234 }
   2235 
   2236 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2237 _mm256_maskz_unpacklo_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
   2238   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
   2239                                         (__v32qi)_mm256_unpacklo_epi8(__A, __B),
   2240                                         (__v32qi)_mm256_setzero_si256());
   2241 }
   2242 
   2243 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2244 _mm_mask_unpacklo_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
   2245   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2246                                            (__v8hi)_mm_unpacklo_epi16(__A, __B),
   2247                                            (__v8hi)__W);
   2248 }
   2249 
   2250 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2251 _mm_maskz_unpacklo_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
   2252   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2253                                            (__v8hi)_mm_unpacklo_epi16(__A, __B),
   2254                                            (__v8hi) _mm_setzero_si128());
   2255 }
   2256 
   2257 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2258 _mm256_mask_unpacklo_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
   2259   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2260                                        (__v16hi)_mm256_unpacklo_epi16(__A, __B),
   2261                                        (__v16hi)__W);
   2262 }
   2263 
   2264 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2265 _mm256_maskz_unpacklo_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
   2266   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2267                                        (__v16hi)_mm256_unpacklo_epi16(__A, __B),
   2268                                        (__v16hi)_mm256_setzero_si256());
   2269 }
   2270 
   2271 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2272 _mm_mask_cvtepi8_epi16 (__m128i __W, __mmask32 __U, __m128i __A)
   2273 {
   2274   return (__m128i) __builtin_ia32_pmovsxbw128_mask ((__v16qi) __A,
   2275                 (__v8hi) __W,
   2276                 (__mmask8) __U);
   2277 }
   2278 
   2279 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2280 _mm_maskz_cvtepi8_epi16 (__mmask8 __U, __m128i __A)
   2281 {
   2282   return (__m128i) __builtin_ia32_pmovsxbw128_mask ((__v16qi) __A,
   2283                 (__v8hi)
   2284                 _mm_setzero_si128 (),
   2285                 (__mmask8) __U);
   2286 }
   2287 
   2288 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2289 _mm256_mask_cvtepi8_epi16 (__m256i __W, __mmask32 __U, __m128i __A)
   2290 {
   2291   return (__m256i) __builtin_ia32_pmovsxbw256_mask ((__v16qi) __A,
   2292                 (__v16hi) __W,
   2293                 (__mmask16) __U);
   2294 }
   2295 
   2296 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2297 _mm256_maskz_cvtepi8_epi16 (__mmask16 __U, __m128i __A)
   2298 {
   2299   return (__m256i) __builtin_ia32_pmovsxbw256_mask ((__v16qi) __A,
   2300                 (__v16hi)
   2301                 _mm256_setzero_si256 (),
   2302                 (__mmask16) __U);
   2303 }
   2304 
   2305 
   2306 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2307 _mm_mask_cvtepu8_epi16 (__m128i __W, __mmask32 __U, __m128i __A)
   2308 {
   2309   return (__m128i) __builtin_ia32_pmovzxbw128_mask ((__v16qi) __A,
   2310                 (__v8hi) __W,
   2311                 (__mmask8) __U);
   2312 }
   2313 
   2314 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2315 _mm_maskz_cvtepu8_epi16 (__mmask8 __U, __m128i __A)
   2316 {
   2317   return (__m128i) __builtin_ia32_pmovzxbw128_mask ((__v16qi) __A,
   2318                 (__v8hi)
   2319                 _mm_setzero_si128 (),
   2320                 (__mmask8) __U);
   2321 }
   2322 
   2323 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2324 _mm256_mask_cvtepu8_epi16 (__m256i __W, __mmask32 __U, __m128i __A)
   2325 {
   2326   return (__m256i) __builtin_ia32_pmovzxbw256_mask ((__v16qi) __A,
   2327                 (__v16hi) __W,
   2328                 (__mmask16) __U);
   2329 }
   2330 
   2331 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2332 _mm256_maskz_cvtepu8_epi16 (__mmask16 __U, __m128i __A)
   2333 {
   2334   return (__m256i) __builtin_ia32_pmovzxbw256_mask ((__v16qi) __A,
   2335                 (__v16hi)
   2336                 _mm256_setzero_si256 (),
   2337                 (__mmask16) __U);
   2338 }
   2339 
   2340 
   2341 #define _mm_cmp_epi8_mask(a, b, p) __extension__ ({ \
   2342   (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)(a), \
   2343                                          (__v16qi)(__m128i)(b), (int)(p), \
   2344                                          (__mmask16)-1); })
   2345 
   2346 #define _mm_mask_cmp_epi8_mask(m, a, b, p) __extension__ ({ \
   2347   (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)(a), \
   2348                                          (__v16qi)(__m128i)(b), (int)(p), \
   2349                                          (__mmask16)(m)); })
   2350 
   2351 #define _mm_cmp_epu8_mask(a, b, p) __extension__ ({ \
   2352   (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)(__m128i)(a), \
   2353                                           (__v16qi)(__m128i)(b), (int)(p), \
   2354                                           (__mmask16)-1); })
   2355 
   2356 #define _mm_mask_cmp_epu8_mask(m, a, b, p) __extension__ ({ \
   2357   (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)(__m128i)(a), \
   2358                                           (__v16qi)(__m128i)(b), (int)(p), \
   2359                                           (__mmask16)(m)); })
   2360 
   2361 #define _mm256_cmp_epi8_mask(a, b, p) __extension__ ({ \
   2362   (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)(a), \
   2363                                          (__v32qi)(__m256i)(b), (int)(p), \
   2364                                          (__mmask32)-1); })
   2365 
   2366 #define _mm256_mask_cmp_epi8_mask(m, a, b, p) __extension__ ({ \
   2367   (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)(a), \
   2368                                          (__v32qi)(__m256i)(b), (int)(p), \
   2369                                          (__mmask32)(m)); })
   2370 
   2371 #define _mm256_cmp_epu8_mask(a, b, p) __extension__ ({ \
   2372   (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)(__m256i)(a), \
   2373                                           (__v32qi)(__m256i)(b), (int)(p), \
   2374                                           (__mmask32)-1); })
   2375 
   2376 #define _mm256_mask_cmp_epu8_mask(m, a, b, p) __extension__ ({ \
   2377   (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)(__m256i)(a), \
   2378                                           (__v32qi)(__m256i)(b), (int)(p), \
   2379                                           (__mmask32)(m)); })
   2380 
   2381 #define _mm_cmp_epi16_mask(a, b, p) __extension__ ({ \
   2382   (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)(a), \
   2383                                         (__v8hi)(__m128i)(b), (int)(p), \
   2384                                         (__mmask8)-1); })
   2385 
   2386 #define _mm_mask_cmp_epi16_mask(m, a, b, p) __extension__ ({ \
   2387   (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)(a), \
   2388                                         (__v8hi)(__m128i)(b), (int)(p), \
   2389                                         (__mmask8)(m)); })
   2390 
   2391 #define _mm_cmp_epu16_mask(a, b, p) __extension__ ({ \
   2392   (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)(__m128i)(a), \
   2393                                          (__v8hi)(__m128i)(b), (int)(p), \
   2394                                          (__mmask8)-1); })
   2395 
   2396 #define _mm_mask_cmp_epu16_mask(m, a, b, p) __extension__ ({ \
   2397   (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)(__m128i)(a), \
   2398                                          (__v8hi)(__m128i)(b), (int)(p), \
   2399                                          (__mmask8)(m)); })
   2400 
   2401 #define _mm256_cmp_epi16_mask(a, b, p) __extension__ ({ \
   2402   (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)(a), \
   2403                                          (__v16hi)(__m256i)(b), (int)(p), \
   2404                                          (__mmask16)-1); })
   2405 
   2406 #define _mm256_mask_cmp_epi16_mask(m, a, b, p) __extension__ ({ \
   2407   (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)(a), \
   2408                                          (__v16hi)(__m256i)(b), (int)(p), \
   2409                                          (__mmask16)(m)); })
   2410 
   2411 #define _mm256_cmp_epu16_mask(a, b, p) __extension__ ({ \
   2412   (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)(__m256i)(a), \
   2413                                           (__v16hi)(__m256i)(b), (int)(p), \
   2414                                           (__mmask16)-1); })
   2415 
   2416 #define _mm256_mask_cmp_epu16_mask(m, a, b, p) __extension__ ({ \
   2417   (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)(__m256i)(a), \
   2418                                           (__v16hi)(__m256i)(b), (int)(p), \
   2419                                           (__mmask16)(m)); })
   2420 
   2421 #define _mm_mask_shufflehi_epi16(W, U, A, imm) __extension__ ({ \
   2422   (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
   2423                                       (__v8hi)_mm_shufflehi_epi16((A), (imm)), \
   2424                                       (__v8hi)(__m128i)(W)); })
   2425 
   2426 #define _mm_maskz_shufflehi_epi16(U, A, imm) __extension__ ({ \
   2427   (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
   2428                                       (__v8hi)_mm_shufflehi_epi16((A), (imm)), \
   2429                                       (__v8hi)_mm_setzero_hi()); })
   2430 
   2431 #define _mm256_mask_shufflehi_epi16(W, U, A, imm) __extension__ ({ \
   2432   (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
   2433                                       (__v16hi)_mm256_shufflehi_epi16((A), (imm)), \
   2434                                       (__v16hi)(__m256i)(W)); })
   2435 
   2436 #define _mm256_maskz_shufflehi_epi16(U, A, imm) __extension__ ({ \
   2437   (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
   2438                                       (__v16hi)_mm256_shufflehi_epi16((A), (imm)), \
   2439                                       (__v16hi)_mm256_setzero_si256()); })
   2440 
   2441 #define _mm_mask_shufflelo_epi16(W, U, A, imm) __extension__ ({ \
   2442   (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
   2443                                       (__v8hi)_mm_shufflelo_epi16((A), (imm)), \
   2444                                       (__v8hi)(__m128i)(W)); })
   2445 
   2446 #define _mm_maskz_shufflelo_epi16(U, A, imm) __extension__ ({ \
   2447   (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
   2448                                       (__v8hi)_mm_shufflelo_epi16((A), (imm)), \
   2449                                       (__v8hi)_mm_setzero_hi()); })
   2450 
   2451 #define _mm256_mask_shufflelo_epi16(W, U, A, imm) __extension__ ({ \
   2452   (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
   2453                                       (__v16hi)_mm256_shufflelo_epi16((A), \
   2454                                                                       (imm)), \
   2455                                       (__v16hi)(__m256i)(W)); })
   2456 
   2457 #define _mm256_maskz_shufflelo_epi16(U, A, imm) __extension__ ({ \
   2458   (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
   2459                                       (__v16hi)_mm256_shufflelo_epi16((A), \
   2460                                                                       (imm)), \
   2461                                       (__v16hi)_mm256_setzero_si256()); })
   2462 
   2463 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2464 _mm256_sllv_epi16 (__m256i __A, __m256i __B)
   2465 {
   2466   return (__m256i) __builtin_ia32_psllv16hi_mask ((__v16hi) __A,
   2467               (__v16hi) __B,
   2468               (__v16hi)
   2469               _mm256_setzero_si256 (),
   2470               (__mmask16) -1);
   2471 }
   2472 
   2473 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2474 _mm256_mask_sllv_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
   2475       __m256i __B)
   2476 {
   2477   return (__m256i) __builtin_ia32_psllv16hi_mask ((__v16hi) __A,
   2478               (__v16hi) __B,
   2479               (__v16hi) __W,
   2480               (__mmask16) __U);
   2481 }
   2482 
   2483 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2484 _mm256_maskz_sllv_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
   2485 {
   2486   return (__m256i) __builtin_ia32_psllv16hi_mask ((__v16hi) __A,
   2487               (__v16hi) __B,
   2488               (__v16hi)
   2489               _mm256_setzero_si256 (),
   2490               (__mmask16) __U);
   2491 }
   2492 
   2493 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2494 _mm_sllv_epi16 (__m128i __A, __m128i __B)
   2495 {
   2496   return (__m128i) __builtin_ia32_psllv8hi_mask ((__v8hi) __A,
   2497              (__v8hi) __B,
   2498              (__v8hi)
   2499              _mm_setzero_hi (),
   2500              (__mmask8) -1);
   2501 }
   2502 
   2503 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2504 _mm_mask_sllv_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
   2505          __m128i __B)
   2506 {
   2507   return (__m128i) __builtin_ia32_psllv8hi_mask ((__v8hi) __A,
   2508              (__v8hi) __B,
   2509              (__v8hi) __W,
   2510              (__mmask8) __U);
   2511 }
   2512 
   2513 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2514 _mm_maskz_sllv_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
   2515 {
   2516   return (__m128i) __builtin_ia32_psllv8hi_mask ((__v8hi) __A,
   2517              (__v8hi) __B,
   2518              (__v8hi)
   2519              _mm_setzero_si128 (),
   2520              (__mmask8) __U);
   2521 }
   2522 
   2523 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2524 _mm_mask_sll_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
   2525         __m128i __B)
   2526 {
   2527   return (__m128i) __builtin_ia32_psllw128_mask ((__v8hi) __A,
   2528              (__v8hi) __B,
   2529              (__v8hi) __W,
   2530              (__mmask8) __U);
   2531 }
   2532 
   2533 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2534 _mm_maskz_sll_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
   2535 {
   2536   return (__m128i) __builtin_ia32_psllw128_mask ((__v8hi) __A,
   2537              (__v8hi) __B,
   2538              (__v8hi)
   2539              _mm_setzero_si128 (),
   2540              (__mmask8) __U);
   2541 }
   2542 
   2543 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2544 _mm256_mask_sll_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
   2545            __m128i __B)
   2546 {
   2547   return (__m256i) __builtin_ia32_psllw256_mask ((__v16hi) __A,
   2548              (__v8hi) __B,
   2549              (__v16hi) __W,
   2550              (__mmask16) __U);
   2551 }
   2552 
   2553 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2554 _mm256_maskz_sll_epi16 (__mmask16 __U, __m256i __A, __m128i __B)
   2555 {
   2556   return (__m256i) __builtin_ia32_psllw256_mask ((__v16hi) __A,
   2557              (__v8hi) __B,
   2558              (__v16hi)
   2559              _mm256_setzero_si256 (),
   2560              (__mmask16) __U);
   2561 }
   2562 
   2563 #define _mm_mask_slli_epi16(W, U, A, B) __extension__ ({ \
   2564   (__m128i)__builtin_ia32_psllwi128_mask((__v8hi)(__m128i)(A), (int)(B), \
   2565                                          (__v8hi)(__m128i)(W), \
   2566                                          (__mmask8)(U)); })
   2567 
   2568 #define _mm_maskz_slli_epi16(U, A, B) __extension__ ({ \
   2569   (__m128i)__builtin_ia32_psllwi128_mask((__v8hi)(__m128i)(A), (int)(B), \
   2570                                          (__v8hi)_mm_setzero_si128(), \
   2571                                          (__mmask8)(U)); })
   2572 
   2573 #define _mm256_mask_slli_epi16(W, U, A, B) __extension__ ({ \
   2574   (__m256i)__builtin_ia32_psllwi256_mask((__v16hi)(__m256i)(A), (int)(B), \
   2575                                          (__v16hi)(__m256i)(W), \
   2576                                          (__mmask16)(U)); })
   2577 
   2578 #define _mm256_maskz_slli_epi16(U, A, B) __extension__ ({ \
   2579   (__m256i)__builtin_ia32_psllwi256_mask((__v16hi)(__m256i)(A), (int)(B), \
   2580                                          (__v16hi)_mm256_setzero_si256(), \
   2581                                          (__mmask16)(U)); })
   2582 
   2583 
   2584 
   2585 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2586 _mm256_srlv_epi16 (__m256i __A, __m256i __B)
   2587 {
   2588   return (__m256i) __builtin_ia32_psrlv16hi_mask ((__v16hi) __A,
   2589               (__v16hi) __B,
   2590               (__v16hi)
   2591               _mm256_setzero_si256 (),
   2592               (__mmask16) -1);
   2593 }
   2594 
   2595 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2596 _mm256_mask_srlv_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
   2597       __m256i __B)
   2598 {
   2599   return (__m256i) __builtin_ia32_psrlv16hi_mask ((__v16hi) __A,
   2600               (__v16hi) __B,
   2601               (__v16hi) __W,
   2602               (__mmask16) __U);
   2603 }
   2604 
   2605 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2606 _mm256_maskz_srlv_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
   2607 {
   2608   return (__m256i) __builtin_ia32_psrlv16hi_mask ((__v16hi) __A,
   2609               (__v16hi) __B,
   2610               (__v16hi)
   2611               _mm256_setzero_si256 (),
   2612               (__mmask16) __U);
   2613 }
   2614 
   2615 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2616 _mm_srlv_epi16 (__m128i __A, __m128i __B)
   2617 {
   2618   return (__m128i) __builtin_ia32_psrlv8hi_mask ((__v8hi) __A,
   2619              (__v8hi) __B,
   2620              (__v8hi)
   2621              _mm_setzero_hi (),
   2622              (__mmask8) -1);
   2623 }
   2624 
   2625 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2626 _mm_mask_srlv_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
   2627          __m128i __B)
   2628 {
   2629   return (__m128i) __builtin_ia32_psrlv8hi_mask ((__v8hi) __A,
   2630              (__v8hi) __B,
   2631              (__v8hi) __W,
   2632              (__mmask8) __U);
   2633 }
   2634 
   2635 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2636 _mm_maskz_srlv_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
   2637 {
   2638   return (__m128i) __builtin_ia32_psrlv8hi_mask ((__v8hi) __A,
   2639              (__v8hi) __B,
   2640              (__v8hi)
   2641              _mm_setzero_si128 (),
   2642              (__mmask8) __U);
   2643 }
   2644 
   2645 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2646 _mm256_srav_epi16 (__m256i __A, __m256i __B)
   2647 {
   2648   return (__m256i) __builtin_ia32_psrav16hi_mask ((__v16hi) __A,
   2649               (__v16hi) __B,
   2650               (__v16hi)
   2651               _mm256_setzero_si256 (),
   2652               (__mmask16) -1);
   2653 }
   2654 
   2655 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2656 _mm256_mask_srav_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
   2657       __m256i __B)
   2658 {
   2659   return (__m256i) __builtin_ia32_psrav16hi_mask ((__v16hi) __A,
   2660               (__v16hi) __B,
   2661               (__v16hi) __W,
   2662               (__mmask16) __U);
   2663 }
   2664 
   2665 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2666 _mm256_maskz_srav_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
   2667 {
   2668   return (__m256i) __builtin_ia32_psrav16hi_mask ((__v16hi) __A,
   2669               (__v16hi) __B,
   2670               (__v16hi)
   2671               _mm256_setzero_si256 (),
   2672               (__mmask16) __U);
   2673 }
   2674 
   2675 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2676 _mm_srav_epi16 (__m128i __A, __m128i __B)
   2677 {
   2678   return (__m128i) __builtin_ia32_psrav8hi_mask ((__v8hi) __A,
   2679              (__v8hi) __B,
   2680              (__v8hi)
   2681              _mm_setzero_hi (),
   2682              (__mmask8) -1);
   2683 }
   2684 
   2685 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2686 _mm_mask_srav_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
   2687          __m128i __B)
   2688 {
   2689   return (__m128i) __builtin_ia32_psrav8hi_mask ((__v8hi) __A,
   2690              (__v8hi) __B,
   2691              (__v8hi) __W,
   2692              (__mmask8) __U);
   2693 }
   2694 
   2695 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2696 _mm_maskz_srav_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
   2697 {
   2698   return (__m128i) __builtin_ia32_psrav8hi_mask ((__v8hi) __A,
   2699              (__v8hi) __B,
   2700              (__v8hi)
   2701              _mm_setzero_si128 (),
   2702              (__mmask8) __U);
   2703 }
   2704 
   2705 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2706 _mm_mask_sra_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
   2707         __m128i __B)
   2708 {
   2709   return (__m128i) __builtin_ia32_psraw128_mask ((__v8hi) __A,
   2710              (__v8hi) __B,
   2711              (__v8hi) __W,
   2712              (__mmask8) __U);
   2713 }
   2714 
   2715 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2716 _mm_maskz_sra_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
   2717 {
   2718   return (__m128i) __builtin_ia32_psraw128_mask ((__v8hi) __A,
   2719              (__v8hi) __B,
   2720              (__v8hi)
   2721              _mm_setzero_si128 (),
   2722              (__mmask8) __U);
   2723 }
   2724 
   2725 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2726 _mm256_mask_sra_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
   2727            __m128i __B)
   2728 {
   2729   return (__m256i) __builtin_ia32_psraw256_mask ((__v16hi) __A,
   2730              (__v8hi) __B,
   2731              (__v16hi) __W,
   2732              (__mmask16) __U);
   2733 }
   2734 
   2735 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2736 _mm256_maskz_sra_epi16 (__mmask16 __U, __m256i __A, __m128i __B)
   2737 {
   2738   return (__m256i) __builtin_ia32_psraw256_mask ((__v16hi) __A,
   2739              (__v8hi) __B,
   2740              (__v16hi)
   2741              _mm256_setzero_si256 (),
   2742              (__mmask16) __U);
   2743 }
   2744 
   2745 #define _mm_mask_srai_epi16(W, U, A, imm) __extension__ ({ \
   2746   (__m128i)__builtin_ia32_psrawi128_mask((__v8hi)(__m128i)(A), (int)(imm), \
   2747                                          (__v8hi)(__m128i)(W), \
   2748                                          (__mmask8)(U)); })
   2749 
   2750 #define _mm_maskz_srai_epi16(U, A, imm) __extension__ ({ \
   2751   (__m128i)__builtin_ia32_psrawi128_mask((__v8hi)(__m128i)(A), (int)(imm), \
   2752                                          (__v8hi)_mm_setzero_si128(), \
   2753                                          (__mmask8)(U)); })
   2754 
   2755 #define _mm256_mask_srai_epi16(W, U, A, imm) __extension__ ({ \
   2756   (__m256i)__builtin_ia32_psrawi256_mask((__v16hi)(__m256i)(A), (int)(imm), \
   2757                                          (__v16hi)(__m256i)(W), \
   2758                                          (__mmask16)(U)); })
   2759 
   2760 #define _mm256_maskz_srai_epi16(U, A, imm) __extension__ ({ \
   2761   (__m256i)__builtin_ia32_psrawi256_mask((__v16hi)(__m256i)(A), (int)(imm), \
   2762                                          (__v16hi)_mm256_setzero_si256(), \
   2763                                          (__mmask16)(U)); })
   2764 
   2765 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2766 _mm_mask_srl_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
   2767         __m128i __B)
   2768 {
   2769   return (__m128i) __builtin_ia32_psrlw128_mask ((__v8hi) __A,
   2770              (__v8hi) __B,
   2771              (__v8hi) __W,
   2772              (__mmask8) __U);
   2773 }
   2774 
   2775 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2776 _mm_maskz_srl_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
   2777 {
   2778   return (__m128i) __builtin_ia32_psrlw128_mask ((__v8hi) __A,
   2779              (__v8hi) __B,
   2780              (__v8hi)
   2781              _mm_setzero_si128 (),
   2782              (__mmask8) __U);
   2783 }
   2784 
   2785 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2786 _mm256_mask_srl_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
   2787            __m128i __B)
   2788 {
   2789   return (__m256i) __builtin_ia32_psrlw256_mask ((__v16hi) __A,
   2790              (__v8hi) __B,
   2791              (__v16hi) __W,
   2792              (__mmask16) __U);
   2793 }
   2794 
   2795 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2796 _mm256_maskz_srl_epi16 (__mmask16 __U, __m256i __A, __m128i __B)
   2797 {
   2798   return (__m256i) __builtin_ia32_psrlw256_mask ((__v16hi) __A,
   2799              (__v8hi) __B,
   2800              (__v16hi)
   2801              _mm256_setzero_si256 (),
   2802              (__mmask16) __U);
   2803 }
   2804 
   2805 #define _mm_mask_srli_epi16(W, U, A, imm) __extension__ ({ \
   2806   (__m128i)__builtin_ia32_psrlwi128_mask((__v8hi)(__m128i)(A), (int)(imm), \
   2807                                          (__v8hi)(__m128i)(W), \
   2808                                          (__mmask8)(U)); })
   2809 
   2810 #define _mm_maskz_srli_epi16(U, A, imm) __extension__ ({ \
   2811   (__m128i)__builtin_ia32_psrlwi128_mask((__v8hi)(__m128i)(A), (int)(imm), \
   2812                                          (__v8hi)_mm_setzero_si128(), \
   2813                                          (__mmask8)(U)); })
   2814 
   2815 #define _mm256_mask_srli_epi16(W, U, A, imm) __extension__ ({ \
   2816   (__m256i)__builtin_ia32_psrlwi256_mask((__v16hi)(__m256i)(A), (int)(imm), \
   2817                                          (__v16hi)(__m256i)(W), \
   2818                                          (__mmask16)(U)); })
   2819 
   2820 #define _mm256_maskz_srli_epi16(U, A, imm) __extension__ ({ \
   2821   (__m256i)__builtin_ia32_psrlwi256_mask((__v16hi)(__m256i)(A), (int)(imm), \
   2822                                          (__v16hi)_mm256_setzero_si256(), \
   2823                                          (__mmask16)(U)); })
   2824 
   2825 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2826 _mm_mask_mov_epi16 (__m128i __W, __mmask8 __U, __m128i __A)
   2827 {
   2828   return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U,
   2829                 (__v8hi) __A,
   2830                 (__v8hi) __W);
   2831 }
   2832 
   2833 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2834 _mm_maskz_mov_epi16 (__mmask8 __U, __m128i __A)
   2835 {
   2836   return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U,
   2837                 (__v8hi) __A,
   2838                 (__v8hi) _mm_setzero_hi ());
   2839 }
   2840 
   2841 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2842 _mm256_mask_mov_epi16 (__m256i __W, __mmask16 __U, __m256i __A)
   2843 {
   2844   return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U,
   2845                 (__v16hi) __A,
   2846                 (__v16hi) __W);
   2847 }
   2848 
   2849 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2850 _mm256_maskz_mov_epi16 (__mmask16 __U, __m256i __A)
   2851 {
   2852   return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U,
   2853                 (__v16hi) __A,
   2854                 (__v16hi) _mm256_setzero_si256 ());
   2855 }
   2856 
   2857 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2858 _mm_mask_mov_epi8 (__m128i __W, __mmask16 __U, __m128i __A)
   2859 {
   2860   return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U,
   2861                 (__v16qi) __A,
   2862                 (__v16qi) __W);
   2863 }
   2864 
   2865 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2866 _mm_maskz_mov_epi8 (__mmask16 __U, __m128i __A)
   2867 {
   2868   return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U,
   2869                 (__v16qi) __A,
   2870                 (__v16qi) _mm_setzero_hi ());
   2871 }
   2872 
   2873 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2874 _mm256_mask_mov_epi8 (__m256i __W, __mmask32 __U, __m256i __A)
   2875 {
   2876   return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U,
   2877                 (__v32qi) __A,
   2878                 (__v32qi) __W);
   2879 }
   2880 
   2881 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2882 _mm256_maskz_mov_epi8 (__mmask32 __U, __m256i __A)
   2883 {
   2884   return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U,
   2885                 (__v32qi) __A,
   2886                 (__v32qi) _mm256_setzero_si256 ());
   2887 }
   2888 
   2889 
   2890 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2891 _mm_mask_set1_epi8 (__m128i __O, __mmask16 __M, char __A)
   2892 {
   2893   return (__m128i) __builtin_ia32_pbroadcastb128_gpr_mask (__A,
   2894                  (__v16qi) __O,
   2895                  __M);
   2896 }
   2897 
   2898 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2899 _mm_maskz_set1_epi8 (__mmask16 __M, char __A)
   2900 {
   2901   return (__m128i) __builtin_ia32_pbroadcastb128_gpr_mask (__A,
   2902                  (__v16qi)
   2903                  _mm_setzero_si128 (),
   2904                  __M);
   2905 }
   2906 
   2907 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2908 _mm256_mask_set1_epi8 (__m256i __O, __mmask32 __M, char __A)
   2909 {
   2910   return (__m256i) __builtin_ia32_pbroadcastb256_gpr_mask (__A,
   2911                  (__v32qi) __O,
   2912                  __M);
   2913 }
   2914 
   2915 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2916 _mm256_maskz_set1_epi8 (__mmask32 __M, char __A)
   2917 {
   2918   return (__m256i) __builtin_ia32_pbroadcastb256_gpr_mask (__A,
   2919                  (__v32qi)
   2920                  _mm256_setzero_si256 (),
   2921                  __M);
   2922 }
   2923 
   2924 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2925 _mm_mask_loadu_epi16 (__m128i __W, __mmask8 __U, void const *__P)
   2926 {
   2927   return (__m128i) __builtin_ia32_loaddquhi128_mask ((__v8hi *) __P,
   2928                  (__v8hi) __W,
   2929                  (__mmask8) __U);
   2930 }
   2931 
   2932 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2933 _mm_maskz_loadu_epi16 (__mmask8 __U, void const *__P)
   2934 {
   2935   return (__m128i) __builtin_ia32_loaddquhi128_mask ((__v8hi *) __P,
   2936                  (__v8hi)
   2937                  _mm_setzero_hi (),
   2938                  (__mmask8) __U);
   2939 }
   2940 
   2941 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2942 _mm256_mask_loadu_epi16 (__m256i __W, __mmask16 __U, void const *__P)
   2943 {
   2944   return (__m256i) __builtin_ia32_loaddquhi256_mask ((__v16hi *) __P,
   2945                  (__v16hi) __W,
   2946                  (__mmask16) __U);
   2947 }
   2948 
   2949 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2950 _mm256_maskz_loadu_epi16 (__mmask16 __U, void const *__P)
   2951 {
   2952   return (__m256i) __builtin_ia32_loaddquhi256_mask ((__v16hi *) __P,
   2953                  (__v16hi)
   2954                  _mm256_setzero_si256 (),
   2955                  (__mmask16) __U);
   2956 }
   2957 
   2958 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2959 _mm_mask_loadu_epi8 (__m128i __W, __mmask16 __U, void const *__P)
   2960 {
   2961   return (__m128i) __builtin_ia32_loaddquqi128_mask ((__v16qi *) __P,
   2962                  (__v16qi) __W,
   2963                  (__mmask16) __U);
   2964 }
   2965 
   2966 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2967 _mm_maskz_loadu_epi8 (__mmask16 __U, void const *__P)
   2968 {
   2969   return (__m128i) __builtin_ia32_loaddquqi128_mask ((__v16qi *) __P,
   2970                  (__v16qi)
   2971                  _mm_setzero_si128 (),
   2972                  (__mmask16) __U);
   2973 }
   2974 
   2975 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2976 _mm256_mask_loadu_epi8 (__m256i __W, __mmask32 __U, void const *__P)
   2977 {
   2978   return (__m256i) __builtin_ia32_loaddquqi256_mask ((__v32qi *) __P,
   2979                  (__v32qi) __W,
   2980                  (__mmask32) __U);
   2981 }
   2982 
   2983 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2984 _mm256_maskz_loadu_epi8 (__mmask32 __U, void const *__P)
   2985 {
   2986   return (__m256i) __builtin_ia32_loaddquqi256_mask ((__v32qi *) __P,
   2987                  (__v32qi)
   2988                  _mm256_setzero_si256 (),
   2989                  (__mmask32) __U);
   2990 }
   2991 static __inline__ void __DEFAULT_FN_ATTRS
   2992 _mm_mask_storeu_epi16 (void *__P, __mmask8 __U, __m128i __A)
   2993 {
   2994   __builtin_ia32_storedquhi128_mask ((__v8hi *) __P,
   2995              (__v8hi) __A,
   2996              (__mmask8) __U);
   2997 }
   2998 
   2999 static __inline__ void __DEFAULT_FN_ATTRS
   3000 _mm256_mask_storeu_epi16 (void *__P, __mmask16 __U, __m256i __A)
   3001 {
   3002   __builtin_ia32_storedquhi256_mask ((__v16hi *) __P,
   3003              (__v16hi) __A,
   3004              (__mmask16) __U);
   3005 }
   3006 
   3007 static __inline__ void __DEFAULT_FN_ATTRS
   3008 _mm_mask_storeu_epi8 (void *__P, __mmask16 __U, __m128i __A)
   3009 {
   3010   __builtin_ia32_storedquqi128_mask ((__v16qi *) __P,
   3011              (__v16qi) __A,
   3012              (__mmask16) __U);
   3013 }
   3014 
   3015 static __inline__ void __DEFAULT_FN_ATTRS
   3016 _mm256_mask_storeu_epi8 (void *__P, __mmask32 __U, __m256i __A)
   3017 {
   3018   __builtin_ia32_storedquqi256_mask ((__v32qi *) __P,
   3019              (__v32qi) __A,
   3020              (__mmask32) __U);
   3021 }
   3022 
   3023 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
   3024 _mm_test_epi8_mask (__m128i __A, __m128i __B)
   3025 {
   3026   return (__mmask16) __builtin_ia32_ptestmb128 ((__v16qi) __A,
   3027             (__v16qi) __B,
   3028             (__mmask16) -1);
   3029 }
   3030 
   3031 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
   3032 _mm_mask_test_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
   3033 {
   3034   return (__mmask16) __builtin_ia32_ptestmb128 ((__v16qi) __A,
   3035             (__v16qi) __B, __U);
   3036 }
   3037 
   3038 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
   3039 _mm256_test_epi8_mask (__m256i __A, __m256i __B)
   3040 {
   3041   return (__mmask32) __builtin_ia32_ptestmb256 ((__v32qi) __A,
   3042             (__v32qi) __B,
   3043             (__mmask32) -1);
   3044 }
   3045 
   3046 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
   3047 _mm256_mask_test_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
   3048 {
   3049   return (__mmask32) __builtin_ia32_ptestmb256 ((__v32qi) __A,
   3050             (__v32qi) __B, __U);
   3051 }
   3052 
   3053 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
   3054 _mm_test_epi16_mask (__m128i __A, __m128i __B)
   3055 {
   3056   return (__mmask8) __builtin_ia32_ptestmw128 ((__v8hi) __A,
   3057                  (__v8hi) __B,
   3058                  (__mmask8) -1);
   3059 }
   3060 
   3061 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
   3062 _mm_mask_test_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
   3063 {
   3064   return (__mmask8) __builtin_ia32_ptestmw128 ((__v8hi) __A,
   3065                  (__v8hi) __B, __U);
   3066 }
   3067 
   3068 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
   3069 _mm256_test_epi16_mask (__m256i __A, __m256i __B)
   3070 {
   3071   return (__mmask16) __builtin_ia32_ptestmw256 ((__v16hi) __A,
   3072             (__v16hi) __B,
   3073             (__mmask16) -1);
   3074 }
   3075 
   3076 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
   3077 _mm256_mask_test_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
   3078 {
   3079   return (__mmask16) __builtin_ia32_ptestmw256 ((__v16hi) __A,
   3080             (__v16hi) __B, __U);
   3081 }
   3082 
   3083 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
   3084 _mm_testn_epi8_mask (__m128i __A, __m128i __B)
   3085 {
   3086   return (__mmask16) __builtin_ia32_ptestnmb128 ((__v16qi) __A,
   3087              (__v16qi) __B,
   3088              (__mmask16) -1);
   3089 }
   3090 
   3091 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
   3092 _mm_mask_testn_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
   3093 {
   3094   return (__mmask16) __builtin_ia32_ptestnmb128 ((__v16qi) __A,
   3095              (__v16qi) __B, __U);
   3096 }
   3097 
   3098 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
   3099 _mm256_testn_epi8_mask (__m256i __A, __m256i __B)
   3100 {
   3101   return (__mmask32) __builtin_ia32_ptestnmb256 ((__v32qi) __A,
   3102              (__v32qi) __B,
   3103              (__mmask32) -1);
   3104 }
   3105 
   3106 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
   3107 _mm256_mask_testn_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
   3108 {
   3109   return (__mmask32) __builtin_ia32_ptestnmb256 ((__v32qi) __A,
   3110              (__v32qi) __B, __U);
   3111 }
   3112 
   3113 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
   3114 _mm_testn_epi16_mask (__m128i __A, __m128i __B)
   3115 {
   3116   return (__mmask8) __builtin_ia32_ptestnmw128 ((__v8hi) __A,
   3117             (__v8hi) __B,
   3118             (__mmask8) -1);
   3119 }
   3120 
   3121 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
   3122 _mm_mask_testn_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
   3123 {
   3124   return (__mmask8) __builtin_ia32_ptestnmw128 ((__v8hi) __A,
   3125             (__v8hi) __B, __U);
   3126 }
   3127 
   3128 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
   3129 _mm256_testn_epi16_mask (__m256i __A, __m256i __B)
   3130 {
   3131   return (__mmask16) __builtin_ia32_ptestnmw256 ((__v16hi) __A,
   3132              (__v16hi) __B,
   3133              (__mmask16) -1);
   3134 }
   3135 
   3136 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
   3137 _mm256_mask_testn_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
   3138 {
   3139   return (__mmask16) __builtin_ia32_ptestnmw256 ((__v16hi) __A,
   3140              (__v16hi) __B, __U);
   3141 }
   3142 
   3143 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
   3144 _mm_movepi8_mask (__m128i __A)
   3145 {
   3146   return (__mmask16) __builtin_ia32_cvtb2mask128 ((__v16qi) __A);
   3147 }
   3148 
   3149 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
   3150 _mm256_movepi8_mask (__m256i __A)
   3151 {
   3152   return (__mmask32) __builtin_ia32_cvtb2mask256 ((__v32qi) __A);
   3153 }
   3154 
   3155 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
   3156 _mm_movepi16_mask (__m128i __A)
   3157 {
   3158   return (__mmask8) __builtin_ia32_cvtw2mask128 ((__v8hi) __A);
   3159 }
   3160 
   3161 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
   3162 _mm256_movepi16_mask (__m256i __A)
   3163 {
   3164   return (__mmask16) __builtin_ia32_cvtw2mask256 ((__v16hi) __A);
   3165 }
   3166 
   3167 static __inline__ __m128i __DEFAULT_FN_ATTRS
   3168 _mm_movm_epi8 (__mmask16 __A)
   3169 {
   3170   return (__m128i) __builtin_ia32_cvtmask2b128 (__A);
   3171 }
   3172 
   3173 static __inline__ __m256i __DEFAULT_FN_ATTRS
   3174 _mm256_movm_epi8 (__mmask32 __A)
   3175 {
   3176   return (__m256i) __builtin_ia32_cvtmask2b256 (__A);
   3177 }
   3178 
   3179 static __inline__ __m128i __DEFAULT_FN_ATTRS
   3180 _mm_movm_epi16 (__mmask8 __A)
   3181 {
   3182   return (__m128i) __builtin_ia32_cvtmask2w128 (__A);
   3183 }
   3184 
   3185 static __inline__ __m256i __DEFAULT_FN_ATTRS
   3186 _mm256_movm_epi16 (__mmask16 __A)
   3187 {
   3188   return (__m256i) __builtin_ia32_cvtmask2w256 (__A);
   3189 }
   3190 
   3191 static __inline__ __m128i __DEFAULT_FN_ATTRS
   3192 _mm_mask_broadcastb_epi8 (__m128i __O, __mmask16 __M, __m128i __A)
   3193 {
   3194   return (__m128i)__builtin_ia32_selectb_128(__M,
   3195                                              (__v16qi) _mm_broadcastb_epi8(__A),
   3196                                              (__v16qi) __O);
   3197 }
   3198 
   3199 static __inline__ __m128i __DEFAULT_FN_ATTRS
   3200 _mm_maskz_broadcastb_epi8 (__mmask16 __M, __m128i __A)
   3201 {
   3202   return (__m128i)__builtin_ia32_selectb_128(__M,
   3203                                              (__v16qi) _mm_broadcastb_epi8(__A),
   3204                                              (__v16qi) _mm_setzero_si128());
   3205 }
   3206 
   3207 static __inline__ __m256i __DEFAULT_FN_ATTRS
   3208 _mm256_mask_broadcastb_epi8 (__m256i __O, __mmask32 __M, __m128i __A)
   3209 {
   3210   return (__m256i)__builtin_ia32_selectb_256(__M,
   3211                                              (__v32qi) _mm256_broadcastb_epi8(__A),
   3212                                              (__v32qi) __O);
   3213 }
   3214 
   3215 static __inline__ __m256i __DEFAULT_FN_ATTRS
   3216 _mm256_maskz_broadcastb_epi8 (__mmask32 __M, __m128i __A)
   3217 {
   3218   return (__m256i)__builtin_ia32_selectb_256(__M,
   3219                                              (__v32qi) _mm256_broadcastb_epi8(__A),
   3220                                              (__v32qi) _mm256_setzero_si256());
   3221 }
   3222 
   3223 static __inline__ __m128i __DEFAULT_FN_ATTRS
   3224 _mm_mask_broadcastw_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
   3225 {
   3226   return (__m128i)__builtin_ia32_selectw_128(__M,
   3227                                              (__v8hi) _mm_broadcastw_epi16(__A),
   3228                                              (__v8hi) __O);
   3229 }
   3230 
   3231 static __inline__ __m128i __DEFAULT_FN_ATTRS
   3232 _mm_maskz_broadcastw_epi16 (__mmask8 __M, __m128i __A)
   3233 {
   3234   return (__m128i)__builtin_ia32_selectw_128(__M,
   3235                                              (__v8hi) _mm_broadcastw_epi16(__A),
   3236                                              (__v8hi) _mm_setzero_si128());
   3237 }
   3238 
   3239 static __inline__ __m256i __DEFAULT_FN_ATTRS
   3240 _mm256_mask_broadcastw_epi16 (__m256i __O, __mmask16 __M, __m128i __A)
   3241 {
   3242   return (__m256i)__builtin_ia32_selectw_256(__M,
   3243                                              (__v16hi) _mm256_broadcastw_epi16(__A),
   3244                                              (__v16hi) __O);
   3245 }
   3246 
   3247 static __inline__ __m256i __DEFAULT_FN_ATTRS
   3248 _mm256_maskz_broadcastw_epi16 (__mmask16 __M, __m128i __A)
   3249 {
   3250   return (__m256i)__builtin_ia32_selectw_256(__M,
   3251                                              (__v16hi) _mm256_broadcastw_epi16(__A),
   3252                                              (__v16hi) _mm256_setzero_si256());
   3253 }
   3254 
   3255 static __inline__ __m256i __DEFAULT_FN_ATTRS
   3256 _mm256_mask_set1_epi16 (__m256i __O, __mmask16 __M, short __A)
   3257 {
   3258   return (__m256i) __builtin_ia32_pbroadcastw256_gpr_mask (__A,
   3259                  (__v16hi) __O,
   3260                  __M);
   3261 }
   3262 
   3263 static __inline__ __m256i __DEFAULT_FN_ATTRS
   3264 _mm256_maskz_set1_epi16 (__mmask16 __M, short __A)
   3265 {
   3266   return (__m256i) __builtin_ia32_pbroadcastw256_gpr_mask (__A,
   3267                  (__v16hi) _mm256_setzero_si256 (),
   3268                  __M);
   3269 }
   3270 
   3271 static __inline__ __m128i __DEFAULT_FN_ATTRS
   3272 _mm_mask_set1_epi16 (__m128i __O, __mmask8 __M, short __A)
   3273 {
   3274   return (__m128i) __builtin_ia32_pbroadcastw128_gpr_mask (__A,
   3275                  (__v8hi) __O,
   3276                  __M);
   3277 }
   3278 
   3279 static __inline__ __m128i __DEFAULT_FN_ATTRS
   3280 _mm_maskz_set1_epi16 (__mmask8 __M, short __A)
   3281 {
   3282   return (__m128i) __builtin_ia32_pbroadcastw128_gpr_mask (__A,
   3283                  (__v8hi) _mm_setzero_si128 (),
   3284                  __M);
   3285 }
   3286 
   3287 static __inline__ __m128i __DEFAULT_FN_ATTRS
   3288 _mm_permutexvar_epi16 (__m128i __A, __m128i __B)
   3289 {
   3290   return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
   3291                  (__v8hi) __A,
   3292                  (__v8hi) _mm_undefined_si128 (),
   3293                  (__mmask8) -1);
   3294 }
   3295 
   3296 static __inline__ __m128i __DEFAULT_FN_ATTRS
   3297 _mm_maskz_permutexvar_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
   3298 {
   3299   return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
   3300                  (__v8hi) __A,
   3301                  (__v8hi) _mm_setzero_si128 (),
   3302                  (__mmask8) __M);
   3303 }
   3304 
   3305 static __inline__ __m128i __DEFAULT_FN_ATTRS
   3306 _mm_mask_permutexvar_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
   3307           __m128i __B)
   3308 {
   3309   return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
   3310                  (__v8hi) __A,
   3311                  (__v8hi) __W,
   3312                  (__mmask8) __M);
   3313 }
   3314 
   3315 static __inline__ __m256i __DEFAULT_FN_ATTRS
   3316 _mm256_permutexvar_epi16 (__m256i __A, __m256i __B)
   3317 {
   3318   return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
   3319                  (__v16hi) __A,
   3320                  (__v16hi) _mm256_undefined_si256 (),
   3321                  (__mmask16) -1);
   3322 }
   3323 
   3324 static __inline__ __m256i __DEFAULT_FN_ATTRS
   3325 _mm256_maskz_permutexvar_epi16 (__mmask16 __M, __m256i __A,
   3326         __m256i __B)
   3327 {
   3328   return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
   3329                  (__v16hi) __A,
   3330                  (__v16hi) _mm256_setzero_si256 (),
   3331                  (__mmask16) __M);
   3332 }
   3333 
   3334 static __inline__ __m256i __DEFAULT_FN_ATTRS
   3335 _mm256_mask_permutexvar_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
   3336              __m256i __B)
   3337 {
   3338   return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
   3339                  (__v16hi) __A,
   3340                  (__v16hi) __W,
   3341                  (__mmask16) __M);
   3342 }
   3343 
   3344 #define _mm_mask_alignr_epi8(W, U, A, B, N) __extension__ ({ \
   3345   (__m128i)__builtin_ia32_palignr128_mask((__v16qi)(__m128i)(A), \
   3346                                           (__v16qi)(__m128i)(B), (int)(N), \
   3347                                           (__v16qi)(__m128i)(W), \
   3348                                           (__mmask16)(U)); })
   3349 
   3350 #define _mm_maskz_alignr_epi8(U, A, B, N) __extension__ ({ \
   3351   (__m128i)__builtin_ia32_palignr128_mask((__v16qi)(__m128i)(A), \
   3352                                           (__v16qi)(__m128i)(B), (int)(N), \
   3353                                           (__v16qi)_mm_setzero_si128(), \
   3354                                           (__mmask16)(U)); })
   3355 
   3356 #define _mm256_mask_alignr_epi8(W, U, A, B, N) __extension__ ({ \
   3357   (__m256i)__builtin_ia32_palignr256_mask((__v32qi)(__m256i)(A), \
   3358                                           (__v32qi)(__m256i)(B), (int)(N), \
   3359                                           (__v32qi)(__m256i)(W), \
   3360                                           (__mmask32)(U)); })
   3361 
   3362 #define _mm256_maskz_alignr_epi8(U, A, B, N) __extension__ ({ \
   3363   (__m256i)__builtin_ia32_palignr256_mask((__v32qi)(__m256i)(A), \
   3364                                           (__v32qi)(__m256i)(B), (int)(N), \
   3365                                           (__v32qi)_mm256_setzero_si256(), \
   3366                                           (__mmask32)(U)); })
   3367 
   3368 #define _mm_dbsad_epu8(A, B, imm) __extension__ ({ \
   3369   (__m128i)__builtin_ia32_dbpsadbw128_mask((__v16qi)(__m128i)(A), \
   3370                                            (__v16qi)(__m128i)(B), (int)(imm), \
   3371                                            (__v8hi)_mm_setzero_hi(), \
   3372                                            (__mmask8)-1); })
   3373 
   3374 #define _mm_mask_dbsad_epu8(W, U, A, B, imm) __extension__ ({ \
   3375   (__m128i)__builtin_ia32_dbpsadbw128_mask((__v16qi)(__m128i)(A), \
   3376                                            (__v16qi)(__m128i)(B), (int)(imm), \
   3377                                            (__v8hi)(__m128i)(W), \
   3378                                            (__mmask8)(U)); })
   3379 
   3380 #define _mm_maskz_dbsad_epu8(U, A, B, imm) __extension__ ({ \
   3381   (__m128i)__builtin_ia32_dbpsadbw128_mask((__v16qi)(__m128i)(A), \
   3382                                            (__v16qi)(__m128i)(B), (int)(imm), \
   3383                                            (__v8hi)_mm_setzero_si128(), \
   3384                                            (__mmask8)(U)); })
   3385 
   3386 #define _mm256_dbsad_epu8(A, B, imm) __extension__ ({ \
   3387   (__m256i)__builtin_ia32_dbpsadbw256_mask((__v32qi)(__m256i)(A), \
   3388                                            (__v32qi)(__m256i)(B), (int)(imm), \
   3389                                            (__v16hi)_mm256_setzero_si256(), \
   3390                                            (__mmask16)-1); })
   3391 
   3392 #define _mm256_mask_dbsad_epu8(W, U, A, B, imm) __extension__ ({ \
   3393   (__m256i)__builtin_ia32_dbpsadbw256_mask((__v32qi)(__m256i)(A), \
   3394                                            (__v32qi)(__m256i)(B), (int)(imm), \
   3395                                            (__v16hi)(__m256i)(W), \
   3396                                            (__mmask16)(U)); })
   3397 
   3398 #define _mm256_maskz_dbsad_epu8(U, A, B, imm) __extension__ ({ \
   3399   (__m256i)__builtin_ia32_dbpsadbw256_mask((__v32qi)(__m256i)(A), \
   3400                                            (__v32qi)(__m256i)(B), (int)(imm), \
   3401                                            (__v16hi)_mm256_setzero_si256(), \
   3402                                            (__mmask16)(U)); })
   3403 
   3404 #undef __DEFAULT_FN_ATTRS
   3405 
   3406 #endif /* __AVX512VLBWINTRIN_H */
   3407