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_selectb_256((__mmask32)__U,
    620                                              (__v32qi)_mm256_add_epi8(__A, __B),
    621                                              (__v32qi)__W);
    622 }
    623 
    624 static __inline__ __m256i __DEFAULT_FN_ATTRS
    625 _mm256_maskz_add_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
    626   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
    627                                              (__v32qi)_mm256_add_epi8(__A, __B),
    628                                              (__v32qi)_mm256_setzero_si256());
    629 }
    630 
    631 static __inline__ __m256i __DEFAULT_FN_ATTRS
    632 _mm256_mask_add_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
    633   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
    634                                              (__v16hi)_mm256_add_epi16(__A, __B),
    635                                              (__v16hi)__W);
    636 }
    637 
    638 static __inline__ __m256i __DEFAULT_FN_ATTRS
    639 _mm256_maskz_add_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
    640   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
    641                                              (__v16hi)_mm256_add_epi16(__A, __B),
    642                                              (__v16hi)_mm256_setzero_si256());
    643 }
    644 
    645 static __inline__ __m256i __DEFAULT_FN_ATTRS
    646 _mm256_mask_sub_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
    647   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
    648                                              (__v32qi)_mm256_sub_epi8(__A, __B),
    649                                              (__v32qi)__W);
    650 }
    651 
    652 static __inline__ __m256i __DEFAULT_FN_ATTRS
    653 _mm256_maskz_sub_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
    654   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
    655                                              (__v32qi)_mm256_sub_epi8(__A, __B),
    656                                              (__v32qi)_mm256_setzero_si256());
    657 }
    658 
    659 static __inline__ __m256i __DEFAULT_FN_ATTRS
    660 _mm256_mask_sub_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
    661   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
    662                                              (__v16hi)_mm256_sub_epi16(__A, __B),
    663                                              (__v16hi)__W);
    664 }
    665 
    666 static __inline__ __m256i __DEFAULT_FN_ATTRS
    667 _mm256_maskz_sub_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
    668   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
    669                                              (__v16hi)_mm256_sub_epi16(__A, __B),
    670                                              (__v16hi)_mm256_setzero_si256());
    671 }
    672 
    673 static __inline__ __m128i __DEFAULT_FN_ATTRS
    674 _mm_mask_add_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
    675   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
    676                                              (__v16qi)_mm_add_epi8(__A, __B),
    677                                              (__v16qi)__W);
    678 }
    679 
    680 static __inline__ __m128i __DEFAULT_FN_ATTRS
    681 _mm_maskz_add_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
    682   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
    683                                              (__v16qi)_mm_add_epi8(__A, __B),
    684                                              (__v16qi)_mm_setzero_si128());
    685 }
    686 
    687 static __inline__ __m128i __DEFAULT_FN_ATTRS
    688 _mm_mask_add_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
    689   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
    690                                              (__v8hi)_mm_add_epi16(__A, __B),
    691                                              (__v8hi)__W);
    692 }
    693 
    694 static __inline__ __m128i __DEFAULT_FN_ATTRS
    695 _mm_maskz_add_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
    696   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
    697                                              (__v8hi)_mm_add_epi16(__A, __B),
    698                                              (__v8hi)_mm_setzero_si128());
    699 }
    700 
    701 static __inline__ __m128i __DEFAULT_FN_ATTRS
    702 _mm_mask_sub_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
    703   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
    704                                              (__v16qi)_mm_sub_epi8(__A, __B),
    705                                              (__v16qi)__W);
    706 }
    707 
    708 static __inline__ __m128i __DEFAULT_FN_ATTRS
    709 _mm_maskz_sub_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
    710   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
    711                                              (__v16qi)_mm_sub_epi8(__A, __B),
    712                                              (__v16qi)_mm_setzero_si128());
    713 }
    714 
    715 static __inline__ __m128i __DEFAULT_FN_ATTRS
    716 _mm_mask_sub_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
    717   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
    718                                              (__v8hi)_mm_sub_epi16(__A, __B),
    719                                              (__v8hi)__W);
    720 }
    721 
    722 static __inline__ __m128i __DEFAULT_FN_ATTRS
    723 _mm_maskz_sub_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
    724   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
    725                                              (__v8hi)_mm_sub_epi16(__A, __B),
    726                                              (__v8hi)_mm_setzero_si128());
    727 }
    728 
    729 static __inline__ __m256i __DEFAULT_FN_ATTRS
    730 _mm256_mask_mullo_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
    731   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
    732                                              (__v16hi)_mm256_mullo_epi16(__A, __B),
    733                                              (__v16hi)__W);
    734 }
    735 
    736 static __inline__ __m256i __DEFAULT_FN_ATTRS
    737 _mm256_maskz_mullo_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
    738   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
    739                                              (__v16hi)_mm256_mullo_epi16(__A, __B),
    740                                              (__v16hi)_mm256_setzero_si256());
    741 }
    742 
    743 static __inline__ __m128i __DEFAULT_FN_ATTRS
    744 _mm_mask_mullo_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
    745   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
    746                                              (__v8hi)_mm_mullo_epi16(__A, __B),
    747                                              (__v8hi)__W);
    748 }
    749 
    750 static __inline__ __m128i __DEFAULT_FN_ATTRS
    751 _mm_maskz_mullo_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
    752   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
    753                                              (__v8hi)_mm_mullo_epi16(__A, __B),
    754                                              (__v8hi)_mm_setzero_si128());
    755 }
    756 
    757 static __inline__ __m128i __DEFAULT_FN_ATTRS
    758 _mm_mask_blend_epi8 (__mmask16 __U, __m128i __A, __m128i __W)
    759 {
    760   return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U,
    761               (__v16qi) __W,
    762               (__v16qi) __A);
    763 }
    764 
    765 static __inline__ __m256i __DEFAULT_FN_ATTRS
    766 _mm256_mask_blend_epi8 (__mmask32 __U, __m256i __A, __m256i __W)
    767 {
    768   return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U,
    769                (__v32qi) __W,
    770                (__v32qi) __A);
    771 }
    772 
    773 static __inline__ __m128i __DEFAULT_FN_ATTRS
    774 _mm_mask_blend_epi16 (__mmask8 __U, __m128i __A, __m128i __W)
    775 {
    776   return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U,
    777                (__v8hi) __W,
    778                (__v8hi) __A);
    779 }
    780 
    781 static __inline__ __m256i __DEFAULT_FN_ATTRS
    782 _mm256_mask_blend_epi16 (__mmask16 __U, __m256i __A, __m256i __W)
    783 {
    784   return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U,
    785                (__v16hi) __W,
    786                (__v16hi) __A);
    787 }
    788 
    789 static __inline__ __m128i __DEFAULT_FN_ATTRS
    790 _mm_mask_abs_epi8(__m128i __W, __mmask16 __U, __m128i __A)
    791 {
    792   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
    793                                              (__v16qi)_mm_abs_epi8(__A),
    794                                              (__v16qi)__W);
    795 }
    796 
    797 static __inline__ __m128i __DEFAULT_FN_ATTRS
    798 _mm_maskz_abs_epi8(__mmask16 __U, __m128i __A)
    799 {
    800   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
    801                                              (__v16qi)_mm_abs_epi8(__A),
    802                                              (__v16qi)_mm_setzero_si128());
    803 }
    804 
    805 static __inline__ __m256i __DEFAULT_FN_ATTRS
    806 _mm256_mask_abs_epi8(__m256i __W, __mmask32 __U, __m256i __A)
    807 {
    808   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
    809                                              (__v32qi)_mm256_abs_epi8(__A),
    810                                              (__v32qi)__W);
    811 }
    812 
    813 static __inline__ __m256i __DEFAULT_FN_ATTRS
    814 _mm256_maskz_abs_epi8 (__mmask32 __U, __m256i __A)
    815 {
    816   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
    817                                              (__v32qi)_mm256_abs_epi8(__A),
    818                                              (__v32qi)_mm256_setzero_si256());
    819 }
    820 
    821 static __inline__ __m128i __DEFAULT_FN_ATTRS
    822 _mm_mask_abs_epi16(__m128i __W, __mmask8 __U, __m128i __A)
    823 {
    824   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
    825                                              (__v8hi)_mm_abs_epi16(__A),
    826                                              (__v8hi)__W);
    827 }
    828 
    829 static __inline__ __m128i __DEFAULT_FN_ATTRS
    830 _mm_maskz_abs_epi16(__mmask8 __U, __m128i __A)
    831 {
    832   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
    833                                              (__v8hi)_mm_abs_epi16(__A),
    834                                              (__v8hi)_mm_setzero_si128());
    835 }
    836 
    837 static __inline__ __m256i __DEFAULT_FN_ATTRS
    838 _mm256_mask_abs_epi16(__m256i __W, __mmask16 __U, __m256i __A)
    839 {
    840   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
    841                                              (__v16hi)_mm256_abs_epi16(__A),
    842                                              (__v16hi)__W);
    843 }
    844 
    845 static __inline__ __m256i __DEFAULT_FN_ATTRS
    846 _mm256_maskz_abs_epi16(__mmask16 __U, __m256i __A)
    847 {
    848   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
    849                                              (__v16hi)_mm256_abs_epi16(__A),
    850                                              (__v16hi)_mm256_setzero_si256());
    851 }
    852 
    853 static __inline__ __m128i __DEFAULT_FN_ATTRS
    854 _mm_maskz_packs_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
    855   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
    856                                              (__v8hi)_mm_packs_epi32(__A, __B),
    857                                              (__v8hi)_mm_setzero_si128());
    858 }
    859 
    860 static __inline__ __m128i __DEFAULT_FN_ATTRS
    861 _mm_mask_packs_epi32(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
    862 {
    863   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
    864                                              (__v8hi)_mm_packs_epi32(__A, __B),
    865                                              (__v8hi)__W);
    866 }
    867 
    868 static __inline__ __m256i __DEFAULT_FN_ATTRS
    869 _mm256_maskz_packs_epi32(__mmask16 __M, __m256i __A, __m256i __B)
    870 {
    871   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
    872                                           (__v16hi)_mm256_packs_epi32(__A, __B),
    873                                           (__v16hi)_mm256_setzero_si256());
    874 }
    875 
    876 static __inline__ __m256i __DEFAULT_FN_ATTRS
    877 _mm256_mask_packs_epi32(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
    878 {
    879   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
    880                                           (__v16hi)_mm256_packs_epi32(__A, __B),
    881                                           (__v16hi)__W);
    882 }
    883 
    884 static __inline__ __m128i __DEFAULT_FN_ATTRS
    885 _mm_maskz_packs_epi16(__mmask16 __M, __m128i __A, __m128i __B)
    886 {
    887   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
    888                                              (__v16qi)_mm_packs_epi16(__A, __B),
    889                                              (__v16qi)_mm_setzero_si128());
    890 }
    891 
    892 static __inline__ __m128i __DEFAULT_FN_ATTRS
    893 _mm_mask_packs_epi16(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
    894 {
    895   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
    896                                              (__v16qi)_mm_packs_epi16(__A, __B),
    897                                              (__v16qi)__W);
    898 }
    899 
    900 static __inline__ __m256i __DEFAULT_FN_ATTRS
    901 _mm256_maskz_packs_epi16(__mmask32 __M, __m256i __A, __m256i __B)
    902 {
    903   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
    904                                           (__v32qi)_mm256_packs_epi16(__A, __B),
    905                                           (__v32qi)_mm256_setzero_si256());
    906 }
    907 
    908 static __inline__ __m256i __DEFAULT_FN_ATTRS
    909 _mm256_mask_packs_epi16(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
    910 {
    911   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
    912                                           (__v32qi)_mm256_packs_epi16(__A, __B),
    913                                           (__v32qi)__W);
    914 }
    915 
    916 static __inline__ __m128i __DEFAULT_FN_ATTRS
    917 _mm_maskz_packus_epi32(__mmask8 __M, __m128i __A, __m128i __B)
    918 {
    919   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
    920                                              (__v8hi)_mm_packus_epi32(__A, __B),
    921                                              (__v8hi)_mm_setzero_si128());
    922 }
    923 
    924 static __inline__ __m128i __DEFAULT_FN_ATTRS
    925 _mm_mask_packus_epi32(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
    926 {
    927   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
    928                                              (__v8hi)_mm_packus_epi32(__A, __B),
    929                                              (__v8hi)__W);
    930 }
    931 
    932 static __inline__ __m256i __DEFAULT_FN_ATTRS
    933 _mm256_maskz_packus_epi32(__mmask16 __M, __m256i __A, __m256i __B)
    934 {
    935   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
    936                                          (__v16hi)_mm256_packus_epi32(__A, __B),
    937                                          (__v16hi)_mm256_setzero_si256());
    938 }
    939 
    940 static __inline__ __m256i __DEFAULT_FN_ATTRS
    941 _mm256_mask_packus_epi32(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
    942 {
    943   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
    944                                          (__v16hi)_mm256_packus_epi32(__A, __B),
    945                                          (__v16hi)__W);
    946 }
    947 
    948 static __inline__ __m128i __DEFAULT_FN_ATTRS
    949 _mm_maskz_packus_epi16(__mmask16 __M, __m128i __A, __m128i __B)
    950 {
    951   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
    952                                             (__v16qi)_mm_packus_epi16(__A, __B),
    953                                             (__v16qi)_mm_setzero_si128());
    954 }
    955 
    956 static __inline__ __m128i __DEFAULT_FN_ATTRS
    957 _mm_mask_packus_epi16(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
    958 {
    959   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
    960                                             (__v16qi)_mm_packus_epi16(__A, __B),
    961                                             (__v16qi)__W);
    962 }
    963 
    964 static __inline__ __m256i __DEFAULT_FN_ATTRS
    965 _mm256_maskz_packus_epi16(__mmask32 __M, __m256i __A, __m256i __B)
    966 {
    967   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
    968                                          (__v32qi)_mm256_packus_epi16(__A, __B),
    969                                          (__v32qi)_mm256_setzero_si256());
    970 }
    971 
    972 static __inline__ __m256i __DEFAULT_FN_ATTRS
    973 _mm256_mask_packus_epi16(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
    974 {
    975   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
    976                                          (__v32qi)_mm256_packus_epi16(__A, __B),
    977                                          (__v32qi)__W);
    978 }
    979 
    980 static __inline__ __m128i __DEFAULT_FN_ATTRS
    981 _mm_mask_adds_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
    982 {
    983   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
    984                                              (__v16qi)_mm_adds_epi8(__A, __B),
    985                                              (__v16qi)__W);
    986 }
    987 
    988 static __inline__ __m128i __DEFAULT_FN_ATTRS
    989 _mm_maskz_adds_epi8(__mmask16 __U, __m128i __A, __m128i __B)
    990 {
    991   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
    992                                              (__v16qi)_mm_adds_epi8(__A, __B),
    993                                              (__v16qi)_mm_setzero_si128());
    994 }
    995 
    996 static __inline__ __m256i __DEFAULT_FN_ATTRS
    997 _mm256_mask_adds_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
    998 {
    999   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
   1000                                             (__v32qi)_mm256_adds_epi8(__A, __B),
   1001                                             (__v32qi)__W);
   1002 }
   1003 
   1004 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1005 _mm256_maskz_adds_epi8(__mmask32 __U, __m256i __A, __m256i __B)
   1006 {
   1007   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
   1008                                             (__v32qi)_mm256_adds_epi8(__A, __B),
   1009                                             (__v32qi)_mm256_setzero_si256());
   1010 }
   1011 
   1012 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1013 _mm_mask_adds_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
   1014 {
   1015   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   1016                                              (__v8hi)_mm_adds_epi16(__A, __B),
   1017                                              (__v8hi)__W);
   1018 }
   1019 
   1020 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1021 _mm_maskz_adds_epi16(__mmask8 __U, __m128i __A, __m128i __B)
   1022 {
   1023   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   1024                                              (__v8hi)_mm_adds_epi16(__A, __B),
   1025                                              (__v8hi)_mm_setzero_si128());
   1026 }
   1027 
   1028 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1029 _mm256_mask_adds_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
   1030 {
   1031   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   1032                                            (__v16hi)_mm256_adds_epi16(__A, __B),
   1033                                            (__v16hi)__W);
   1034 }
   1035 
   1036 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1037 _mm256_maskz_adds_epi16(__mmask16 __U, __m256i __A, __m256i __B)
   1038 {
   1039   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   1040                                            (__v16hi)_mm256_adds_epi16(__A, __B),
   1041                                            (__v16hi)_mm256_setzero_si256());
   1042 }
   1043 
   1044 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1045 _mm_mask_adds_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
   1046 {
   1047   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
   1048                                              (__v16qi)_mm_adds_epu8(__A, __B),
   1049                                              (__v16qi)__W);
   1050 }
   1051 
   1052 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1053 _mm_maskz_adds_epu8(__mmask16 __U, __m128i __A, __m128i __B)
   1054 {
   1055   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
   1056                                              (__v16qi)_mm_adds_epu8(__A, __B),
   1057                                              (__v16qi)_mm_setzero_si128());
   1058 }
   1059 
   1060 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1061 _mm256_mask_adds_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
   1062 {
   1063   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
   1064                                             (__v32qi)_mm256_adds_epu8(__A, __B),
   1065                                             (__v32qi)__W);
   1066 }
   1067 
   1068 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1069 _mm256_maskz_adds_epu8(__mmask32 __U, __m256i __A, __m256i __B)
   1070 {
   1071   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
   1072                                             (__v32qi)_mm256_adds_epu8(__A, __B),
   1073                                             (__v32qi)_mm256_setzero_si256());
   1074 }
   1075 
   1076 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1077 _mm_mask_adds_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
   1078 {
   1079   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   1080                                              (__v8hi)_mm_adds_epu16(__A, __B),
   1081                                              (__v8hi)__W);
   1082 }
   1083 
   1084 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1085 _mm_maskz_adds_epu16(__mmask8 __U, __m128i __A, __m128i __B)
   1086 {
   1087   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   1088                                              (__v8hi)_mm_adds_epu16(__A, __B),
   1089                                              (__v8hi)_mm_setzero_si128());
   1090 }
   1091 
   1092 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1093 _mm256_mask_adds_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
   1094 {
   1095   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   1096                                            (__v16hi)_mm256_adds_epu16(__A, __B),
   1097                                            (__v16hi)__W);
   1098 }
   1099 
   1100 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1101 _mm256_maskz_adds_epu16(__mmask16 __U, __m256i __A, __m256i __B)
   1102 {
   1103   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   1104                                            (__v16hi)_mm256_adds_epu16(__A, __B),
   1105                                            (__v16hi)_mm256_setzero_si256());
   1106 }
   1107 
   1108 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1109 _mm_mask_avg_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
   1110 {
   1111   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
   1112                                              (__v16qi)_mm_avg_epu8(__A, __B),
   1113                                              (__v16qi)__W);
   1114 }
   1115 
   1116 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1117 _mm_maskz_avg_epu8(__mmask16 __U, __m128i __A, __m128i __B)
   1118 {
   1119   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
   1120                                              (__v16qi)_mm_avg_epu8(__A, __B),
   1121                                              (__v16qi)_mm_setzero_si128());
   1122 }
   1123 
   1124 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1125 _mm256_mask_avg_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
   1126 {
   1127   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
   1128                                              (__v32qi)_mm256_avg_epu8(__A, __B),
   1129                                              (__v32qi)__W);
   1130 }
   1131 
   1132 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1133 _mm256_maskz_avg_epu8(__mmask32 __U, __m256i __A, __m256i __B)
   1134 {
   1135   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
   1136                                              (__v32qi)_mm256_avg_epu8(__A, __B),
   1137                                              (__v32qi)_mm256_setzero_si256());
   1138 }
   1139 
   1140 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1141 _mm_mask_avg_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
   1142 {
   1143   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   1144                                              (__v8hi)_mm_avg_epu16(__A, __B),
   1145                                              (__v8hi)__W);
   1146 }
   1147 
   1148 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1149 _mm_maskz_avg_epu16(__mmask8 __U, __m128i __A, __m128i __B)
   1150 {
   1151   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   1152                                              (__v8hi)_mm_avg_epu16(__A, __B),
   1153                                              (__v8hi)_mm_setzero_si128());
   1154 }
   1155 
   1156 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1157 _mm256_mask_avg_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
   1158 {
   1159   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   1160                                             (__v16hi)_mm256_avg_epu16(__A, __B),
   1161                                             (__v16hi)__W);
   1162 }
   1163 
   1164 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1165 _mm256_maskz_avg_epu16(__mmask16 __U, __m256i __A, __m256i __B)
   1166 {
   1167   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   1168                                             (__v16hi)_mm256_avg_epu16(__A, __B),
   1169                                             (__v16hi)_mm256_setzero_si256());
   1170 }
   1171 
   1172 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1173 _mm_maskz_max_epi8(__mmask16 __M, __m128i __A, __m128i __B)
   1174 {
   1175   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
   1176                                              (__v16qi)_mm_max_epi8(__A, __B),
   1177                                              (__v16qi)_mm_setzero_si128());
   1178 }
   1179 
   1180 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1181 _mm_mask_max_epi8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
   1182 {
   1183   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
   1184                                              (__v16qi)_mm_max_epi8(__A, __B),
   1185                                              (__v16qi)__W);
   1186 }
   1187 
   1188 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1189 _mm256_maskz_max_epi8(__mmask32 __M, __m256i __A, __m256i __B)
   1190 {
   1191   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
   1192                                              (__v32qi)_mm256_max_epi8(__A, __B),
   1193                                              (__v32qi)_mm256_setzero_si256());
   1194 }
   1195 
   1196 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1197 _mm256_mask_max_epi8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
   1198 {
   1199   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
   1200                                              (__v32qi)_mm256_max_epi8(__A, __B),
   1201                                              (__v32qi)__W);
   1202 }
   1203 
   1204 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1205 _mm_maskz_max_epi16(__mmask8 __M, __m128i __A, __m128i __B)
   1206 {
   1207   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
   1208                                              (__v8hi)_mm_max_epi16(__A, __B),
   1209                                              (__v8hi)_mm_setzero_si128());
   1210 }
   1211 
   1212 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1213 _mm_mask_max_epi16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
   1214 {
   1215   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
   1216                                              (__v8hi)_mm_max_epi16(__A, __B),
   1217                                              (__v8hi)__W);
   1218 }
   1219 
   1220 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1221 _mm256_maskz_max_epi16(__mmask16 __M, __m256i __A, __m256i __B)
   1222 {
   1223   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
   1224                                             (__v16hi)_mm256_max_epi16(__A, __B),
   1225                                             (__v16hi)_mm256_setzero_si256());
   1226 }
   1227 
   1228 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1229 _mm256_mask_max_epi16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
   1230 {
   1231   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
   1232                                             (__v16hi)_mm256_max_epi16(__A, __B),
   1233                                             (__v16hi)__W);
   1234 }
   1235 
   1236 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1237 _mm_maskz_max_epu8(__mmask16 __M, __m128i __A, __m128i __B)
   1238 {
   1239   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
   1240                                              (__v16qi)_mm_max_epu8(__A, __B),
   1241                                              (__v16qi)_mm_setzero_si128());
   1242 }
   1243 
   1244 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1245 _mm_mask_max_epu8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
   1246 {
   1247   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
   1248                                              (__v16qi)_mm_max_epu8(__A, __B),
   1249                                              (__v16qi)__W);
   1250 }
   1251 
   1252 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1253 _mm256_maskz_max_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
   1254 {
   1255   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
   1256                                              (__v32qi)_mm256_max_epu8(__A, __B),
   1257                                              (__v32qi)_mm256_setzero_si256());
   1258 }
   1259 
   1260 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1261 _mm256_mask_max_epu8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
   1262 {
   1263   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
   1264                                              (__v32qi)_mm256_max_epu8(__A, __B),
   1265                                              (__v32qi)__W);
   1266 }
   1267 
   1268 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1269 _mm_maskz_max_epu16(__mmask8 __M, __m128i __A, __m128i __B)
   1270 {
   1271   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
   1272                                              (__v8hi)_mm_max_epu16(__A, __B),
   1273                                              (__v8hi)_mm_setzero_si128());
   1274 }
   1275 
   1276 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1277 _mm_mask_max_epu16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
   1278 {
   1279   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
   1280                                              (__v8hi)_mm_max_epu16(__A, __B),
   1281                                              (__v8hi)__W);
   1282 }
   1283 
   1284 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1285 _mm256_maskz_max_epu16(__mmask16 __M, __m256i __A, __m256i __B)
   1286 {
   1287   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
   1288                                             (__v16hi)_mm256_max_epu16(__A, __B),
   1289                                             (__v16hi)_mm256_setzero_si256());
   1290 }
   1291 
   1292 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1293 _mm256_mask_max_epu16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
   1294 {
   1295   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
   1296                                             (__v16hi)_mm256_max_epu16(__A, __B),
   1297                                             (__v16hi)__W);
   1298 }
   1299 
   1300 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1301 _mm_maskz_min_epi8(__mmask16 __M, __m128i __A, __m128i __B)
   1302 {
   1303   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
   1304                                              (__v16qi)_mm_min_epi8(__A, __B),
   1305                                              (__v16qi)_mm_setzero_si128());
   1306 }
   1307 
   1308 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1309 _mm_mask_min_epi8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
   1310 {
   1311   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
   1312                                              (__v16qi)_mm_min_epi8(__A, __B),
   1313                                              (__v16qi)__W);
   1314 }
   1315 
   1316 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1317 _mm256_maskz_min_epi8(__mmask32 __M, __m256i __A, __m256i __B)
   1318 {
   1319   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
   1320                                              (__v32qi)_mm256_min_epi8(__A, __B),
   1321                                              (__v32qi)_mm256_setzero_si256());
   1322 }
   1323 
   1324 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1325 _mm256_mask_min_epi8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
   1326 {
   1327   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
   1328                                              (__v32qi)_mm256_min_epi8(__A, __B),
   1329                                              (__v32qi)__W);
   1330 }
   1331 
   1332 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1333 _mm_maskz_min_epi16(__mmask8 __M, __m128i __A, __m128i __B)
   1334 {
   1335   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
   1336                                              (__v8hi)_mm_min_epi16(__A, __B),
   1337                                              (__v8hi)_mm_setzero_si128());
   1338 }
   1339 
   1340 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1341 _mm_mask_min_epi16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
   1342 {
   1343   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
   1344                                              (__v8hi)_mm_min_epi16(__A, __B),
   1345                                              (__v8hi)__W);
   1346 }
   1347 
   1348 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1349 _mm256_maskz_min_epi16(__mmask16 __M, __m256i __A, __m256i __B)
   1350 {
   1351   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
   1352                                             (__v16hi)_mm256_min_epi16(__A, __B),
   1353                                             (__v16hi)_mm256_setzero_si256());
   1354 }
   1355 
   1356 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1357 _mm256_mask_min_epi16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
   1358 {
   1359   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
   1360                                             (__v16hi)_mm256_min_epi16(__A, __B),
   1361                                             (__v16hi)__W);
   1362 }
   1363 
   1364 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1365 _mm_maskz_min_epu8(__mmask16 __M, __m128i __A, __m128i __B)
   1366 {
   1367   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
   1368                                              (__v16qi)_mm_min_epu8(__A, __B),
   1369                                              (__v16qi)_mm_setzero_si128());
   1370 }
   1371 
   1372 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1373 _mm_mask_min_epu8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
   1374 {
   1375   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
   1376                                              (__v16qi)_mm_min_epu8(__A, __B),
   1377                                              (__v16qi)__W);
   1378 }
   1379 
   1380 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1381 _mm256_maskz_min_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
   1382 {
   1383   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
   1384                                              (__v32qi)_mm256_min_epu8(__A, __B),
   1385                                              (__v32qi)_mm256_setzero_si256());
   1386 }
   1387 
   1388 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1389 _mm256_mask_min_epu8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
   1390 {
   1391   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
   1392                                              (__v32qi)_mm256_min_epu8(__A, __B),
   1393                                              (__v32qi)__W);
   1394 }
   1395 
   1396 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1397 _mm_maskz_min_epu16(__mmask8 __M, __m128i __A, __m128i __B)
   1398 {
   1399   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
   1400                                              (__v8hi)_mm_min_epu16(__A, __B),
   1401                                              (__v8hi)_mm_setzero_si128());
   1402 }
   1403 
   1404 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1405 _mm_mask_min_epu16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
   1406 {
   1407   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
   1408                                              (__v8hi)_mm_min_epu16(__A, __B),
   1409                                              (__v8hi)__W);
   1410 }
   1411 
   1412 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1413 _mm256_maskz_min_epu16(__mmask16 __M, __m256i __A, __m256i __B)
   1414 {
   1415   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
   1416                                             (__v16hi)_mm256_min_epu16(__A, __B),
   1417                                             (__v16hi)_mm256_setzero_si256());
   1418 }
   1419 
   1420 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1421 _mm256_mask_min_epu16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
   1422 {
   1423   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
   1424                                             (__v16hi)_mm256_min_epu16(__A, __B),
   1425                                             (__v16hi)__W);
   1426 }
   1427 
   1428 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1429 _mm_mask_shuffle_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
   1430 {
   1431   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
   1432                                             (__v16qi)_mm_shuffle_epi8(__A, __B),
   1433                                             (__v16qi)__W);
   1434 }
   1435 
   1436 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1437 _mm_maskz_shuffle_epi8(__mmask16 __U, __m128i __A, __m128i __B)
   1438 {
   1439   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
   1440                                             (__v16qi)_mm_shuffle_epi8(__A, __B),
   1441                                             (__v16qi)_mm_setzero_si128());
   1442 }
   1443 
   1444 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1445 _mm256_mask_shuffle_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
   1446 {
   1447   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
   1448                                          (__v32qi)_mm256_shuffle_epi8(__A, __B),
   1449                                          (__v32qi)__W);
   1450 }
   1451 
   1452 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1453 _mm256_maskz_shuffle_epi8(__mmask32 __U, __m256i __A, __m256i __B)
   1454 {
   1455   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
   1456                                          (__v32qi)_mm256_shuffle_epi8(__A, __B),
   1457                                          (__v32qi)_mm256_setzero_si256());
   1458 }
   1459 
   1460 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1461 _mm_mask_subs_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
   1462 {
   1463   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
   1464                                              (__v16qi)_mm_subs_epi8(__A, __B),
   1465                                              (__v16qi)__W);
   1466 }
   1467 
   1468 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1469 _mm_maskz_subs_epi8(__mmask16 __U, __m128i __A, __m128i __B)
   1470 {
   1471   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
   1472                                              (__v16qi)_mm_subs_epi8(__A, __B),
   1473                                              (__v16qi)_mm_setzero_si128());
   1474 }
   1475 
   1476 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1477 _mm256_mask_subs_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
   1478 {
   1479   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
   1480                                             (__v32qi)_mm256_subs_epi8(__A, __B),
   1481                                             (__v32qi)__W);
   1482 }
   1483 
   1484 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1485 _mm256_maskz_subs_epi8(__mmask32 __U, __m256i __A, __m256i __B)
   1486 {
   1487   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
   1488                                             (__v32qi)_mm256_subs_epi8(__A, __B),
   1489                                             (__v32qi)_mm256_setzero_si256());
   1490 }
   1491 
   1492 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1493 _mm_mask_subs_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
   1494 {
   1495   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   1496                                              (__v8hi)_mm_subs_epi16(__A, __B),
   1497                                              (__v8hi)__W);
   1498 }
   1499 
   1500 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1501 _mm_maskz_subs_epi16(__mmask8 __U, __m128i __A, __m128i __B)
   1502 {
   1503   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   1504                                              (__v8hi)_mm_subs_epi16(__A, __B),
   1505                                              (__v8hi)_mm_setzero_si128());
   1506 }
   1507 
   1508 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1509 _mm256_mask_subs_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
   1510 {
   1511   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   1512                                            (__v16hi)_mm256_subs_epi16(__A, __B),
   1513                                            (__v16hi)__W);
   1514 }
   1515 
   1516 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1517 _mm256_maskz_subs_epi16(__mmask16 __U, __m256i __A, __m256i __B)
   1518 {
   1519   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   1520                                            (__v16hi)_mm256_subs_epi16(__A, __B),
   1521                                            (__v16hi)_mm256_setzero_si256());
   1522 }
   1523 
   1524 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1525 _mm_mask_subs_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
   1526 {
   1527   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
   1528                                              (__v16qi)_mm_subs_epu8(__A, __B),
   1529                                              (__v16qi)__W);
   1530 }
   1531 
   1532 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1533 _mm_maskz_subs_epu8(__mmask16 __U, __m128i __A, __m128i __B)
   1534 {
   1535   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
   1536                                              (__v16qi)_mm_subs_epu8(__A, __B),
   1537                                              (__v16qi)_mm_setzero_si128());
   1538 }
   1539 
   1540 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1541 _mm256_mask_subs_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
   1542 {
   1543   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
   1544                                             (__v32qi)_mm256_subs_epu8(__A, __B),
   1545                                             (__v32qi)__W);
   1546 }
   1547 
   1548 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1549 _mm256_maskz_subs_epu8(__mmask32 __U, __m256i __A, __m256i __B)
   1550 {
   1551   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
   1552                                             (__v32qi)_mm256_subs_epu8(__A, __B),
   1553                                             (__v32qi)_mm256_setzero_si256());
   1554 }
   1555 
   1556 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1557 _mm_mask_subs_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
   1558 {
   1559   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   1560                                              (__v8hi)_mm_subs_epu16(__A, __B),
   1561                                              (__v8hi)__W);
   1562 }
   1563 
   1564 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1565 _mm_maskz_subs_epu16(__mmask8 __U, __m128i __A, __m128i __B)
   1566 {
   1567   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   1568                                              (__v8hi)_mm_subs_epu16(__A, __B),
   1569                                              (__v8hi)_mm_setzero_si128());
   1570 }
   1571 
   1572 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1573 _mm256_mask_subs_epu16(__m256i __W, __mmask16 __U, __m256i __A,
   1574       __m256i __B) {
   1575   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   1576                                            (__v16hi)_mm256_subs_epu16(__A, __B),
   1577                                            (__v16hi)__W);
   1578 }
   1579 
   1580 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1581 _mm256_maskz_subs_epu16(__mmask16 __U, __m256i __A, __m256i __B)
   1582 {
   1583   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   1584                                            (__v16hi)_mm256_subs_epu16(__A, __B),
   1585                                            (__v16hi)_mm256_setzero_si256());
   1586 }
   1587 
   1588 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1589 _mm_mask2_permutex2var_epi16 (__m128i __A, __m128i __I, __mmask8 __U,
   1590             __m128i __B)
   1591 {
   1592   return (__m128i) __builtin_ia32_vpermi2varhi128_mask ((__v8hi) __A,
   1593                (__v8hi) __I /* idx */ ,
   1594                (__v8hi) __B,
   1595                (__mmask8) __U);
   1596 }
   1597 
   1598 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1599 _mm256_mask2_permutex2var_epi16 (__m256i __A, __m256i __I,
   1600          __mmask16 __U, __m256i __B)
   1601 {
   1602   return (__m256i) __builtin_ia32_vpermi2varhi256_mask ((__v16hi) __A,
   1603                (__v16hi) __I /* idx */ ,
   1604                (__v16hi) __B,
   1605                (__mmask16) __U);
   1606 }
   1607 
   1608 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1609 _mm_permutex2var_epi16 (__m128i __A, __m128i __I, __m128i __B)
   1610 {
   1611   return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I/* idx */,
   1612                (__v8hi) __A,
   1613                (__v8hi) __B,
   1614                (__mmask8) -1);
   1615 }
   1616 
   1617 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1618 _mm_mask_permutex2var_epi16 (__m128i __A, __mmask8 __U, __m128i __I,
   1619            __m128i __B)
   1620 {
   1621   return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I/* idx */,
   1622                (__v8hi) __A,
   1623                (__v8hi) __B,
   1624                (__mmask8) __U);
   1625 }
   1626 
   1627 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1628 _mm_maskz_permutex2var_epi16 (__mmask8 __U, __m128i __A, __m128i __I,
   1629             __m128i __B)
   1630 {
   1631   return (__m128i) __builtin_ia32_vpermt2varhi128_maskz ((__v8hi) __I/* idx */,
   1632                (__v8hi) __A,
   1633                (__v8hi) __B,
   1634                (__mmask8) __U);
   1635 }
   1636 
   1637 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1638 _mm256_permutex2var_epi16 (__m256i __A, __m256i __I, __m256i __B)
   1639 {
   1640   return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I/* idx */,
   1641                (__v16hi) __A,
   1642                (__v16hi) __B,
   1643                (__mmask16) -1);
   1644 }
   1645 
   1646 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1647 _mm256_mask_permutex2var_epi16 (__m256i __A, __mmask16 __U,
   1648         __m256i __I, __m256i __B)
   1649 {
   1650   return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I/* idx */,
   1651                (__v16hi) __A,
   1652                (__v16hi) __B,
   1653                (__mmask16) __U);
   1654 }
   1655 
   1656 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1657 _mm256_maskz_permutex2var_epi16 (__mmask16 __U, __m256i __A,
   1658          __m256i __I, __m256i __B)
   1659 {
   1660   return (__m256i) __builtin_ia32_vpermt2varhi256_maskz ((__v16hi) __I/* idx */,
   1661                (__v16hi) __A,
   1662                (__v16hi) __B,
   1663                (__mmask16) __U);
   1664 }
   1665 
   1666 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1667 _mm_mask_maddubs_epi16(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
   1668   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   1669                                             (__v8hi)_mm_maddubs_epi16(__X, __Y),
   1670                                             (__v8hi)__W);
   1671 }
   1672 
   1673 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1674 _mm_maskz_maddubs_epi16(__mmask8 __U, __m128i __X, __m128i __Y) {
   1675   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   1676                                             (__v8hi)_mm_maddubs_epi16(__X, __Y),
   1677                                             (__v8hi)_mm_setzero_si128());
   1678 }
   1679 
   1680 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1681 _mm256_mask_maddubs_epi16(__m256i __W, __mmask16 __U, __m256i __X,
   1682                           __m256i __Y) {
   1683   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   1684                                         (__v16hi)_mm256_maddubs_epi16(__X, __Y),
   1685                                         (__v16hi)__W);
   1686 }
   1687 
   1688 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1689 _mm256_maskz_maddubs_epi16(__mmask16 __U, __m256i __X, __m256i __Y) {
   1690   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   1691                                         (__v16hi)_mm256_maddubs_epi16(__X, __Y),
   1692                                         (__v16hi)_mm256_setzero_si256());
   1693 }
   1694 
   1695 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1696 _mm_mask_madd_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
   1697   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
   1698                                              (__v4si)_mm_madd_epi16(__A, __B),
   1699                                              (__v4si)__W);
   1700 }
   1701 
   1702 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1703 _mm_maskz_madd_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
   1704   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
   1705                                              (__v4si)_mm_madd_epi16(__A, __B),
   1706                                              (__v4si)_mm_setzero_si128());
   1707 }
   1708 
   1709 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1710 _mm256_mask_madd_epi16(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
   1711   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
   1712                                             (__v8si)_mm256_madd_epi16(__A, __B),
   1713                                             (__v8si)__W);
   1714 }
   1715 
   1716 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1717 _mm256_maskz_madd_epi16(__mmask8 __U, __m256i __A, __m256i __B) {
   1718   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
   1719                                             (__v8si)_mm256_madd_epi16(__A, __B),
   1720                                             (__v8si)_mm256_setzero_si256());
   1721 }
   1722 
   1723 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1724 _mm_cvtsepi16_epi8 (__m128i __A) {
   1725   return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
   1726                (__v16qi) _mm_setzero_si128(),
   1727                (__mmask8) -1);
   1728 }
   1729 
   1730 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1731 _mm_mask_cvtsepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) {
   1732   return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
   1733                (__v16qi) __O,
   1734                 __M);
   1735 }
   1736 
   1737 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1738 _mm_maskz_cvtsepi16_epi8 (__mmask8 __M, __m128i __A) {
   1739   return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
   1740                (__v16qi) _mm_setzero_si128(),
   1741                __M);
   1742 }
   1743 
   1744 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1745 _mm256_cvtsepi16_epi8 (__m256i __A) {
   1746   return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
   1747                (__v16qi) _mm_setzero_si128(),
   1748                (__mmask16) -1);
   1749 }
   1750 
   1751 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1752 _mm256_mask_cvtsepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) {
   1753   return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
   1754                (__v16qi) __O,
   1755                 __M);
   1756 }
   1757 
   1758 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1759 _mm256_maskz_cvtsepi16_epi8 (__mmask16 __M, __m256i __A) {
   1760   return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
   1761                (__v16qi) _mm_setzero_si128(),
   1762                __M);
   1763 }
   1764 
   1765 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1766 _mm_cvtusepi16_epi8 (__m128i __A) {
   1767   return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
   1768                 (__v16qi) _mm_setzero_si128(),
   1769                 (__mmask8) -1);
   1770 }
   1771 
   1772 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1773 _mm_mask_cvtusepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) {
   1774   return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
   1775                 (__v16qi) __O,
   1776                 __M);
   1777 }
   1778 
   1779 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1780 _mm_maskz_cvtusepi16_epi8 (__mmask8 __M, __m128i __A) {
   1781   return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
   1782                 (__v16qi) _mm_setzero_si128(),
   1783                 __M);
   1784 }
   1785 
   1786 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1787 _mm256_cvtusepi16_epi8 (__m256i __A) {
   1788   return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
   1789                 (__v16qi) _mm_setzero_si128(),
   1790                 (__mmask16) -1);
   1791 }
   1792 
   1793 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1794 _mm256_mask_cvtusepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) {
   1795   return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
   1796                 (__v16qi) __O,
   1797                 __M);
   1798 }
   1799 
   1800 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1801 _mm256_maskz_cvtusepi16_epi8 (__mmask16 __M, __m256i __A) {
   1802   return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
   1803                 (__v16qi) _mm_setzero_si128(),
   1804                 __M);
   1805 }
   1806 
   1807 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1808 _mm_cvtepi16_epi8 (__m128i __A) {
   1809 
   1810   return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
   1811                (__v16qi) _mm_setzero_si128(),
   1812                (__mmask8) -1);
   1813 }
   1814 
   1815 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1816 _mm_mask_cvtepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) {
   1817   return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
   1818                (__v16qi) __O,
   1819                __M);
   1820 }
   1821 
   1822 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1823 _mm_maskz_cvtepi16_epi8 (__mmask8 __M, __m128i __A) {
   1824   return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
   1825                (__v16qi) _mm_setzero_si128(),
   1826                __M);
   1827 }
   1828 
   1829 static __inline__ void __DEFAULT_FN_ATTRS
   1830 _mm_mask_cvtepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
   1831 {
   1832   __builtin_ia32_pmovwb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M);
   1833 }
   1834 
   1835 
   1836 static __inline__ void __DEFAULT_FN_ATTRS
   1837 _mm_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
   1838 {
   1839   __builtin_ia32_pmovswb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M);
   1840 }
   1841 
   1842 static __inline__ void __DEFAULT_FN_ATTRS
   1843 _mm_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
   1844 {
   1845   __builtin_ia32_pmovuswb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M);
   1846 }
   1847 
   1848 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1849 _mm256_cvtepi16_epi8 (__m256i __A) {
   1850   return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
   1851                (__v16qi) _mm_setzero_si128(),
   1852                (__mmask16) -1);
   1853 }
   1854 
   1855 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1856 _mm256_mask_cvtepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) {
   1857   return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
   1858                (__v16qi) __O,
   1859                __M);
   1860 }
   1861 
   1862 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1863 _mm256_maskz_cvtepi16_epi8 (__mmask16 __M, __m256i __A) {
   1864   return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
   1865                (__v16qi) _mm_setzero_si128(),
   1866                __M);
   1867 }
   1868 
   1869 static __inline__ void __DEFAULT_FN_ATTRS
   1870 _mm256_mask_cvtepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A)
   1871 {
   1872   __builtin_ia32_pmovwb256mem_mask ((__v16qi *) __P, (__v16hi) __A, __M);
   1873 }
   1874 
   1875 static __inline__ void __DEFAULT_FN_ATTRS
   1876 _mm256_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A)
   1877 {
   1878   __builtin_ia32_pmovswb256mem_mask ((__v16qi *) __P, (__v16hi) __A, __M);
   1879 }
   1880 
   1881 static __inline__ void __DEFAULT_FN_ATTRS
   1882 _mm256_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
   1883 {
   1884   __builtin_ia32_pmovuswb256mem_mask ((__v16qi*) __P, (__v16hi) __A, __M);
   1885 }
   1886 
   1887 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1888 _mm_mask_mulhrs_epi16(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
   1889   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   1890                                              (__v8hi)_mm_mulhrs_epi16(__X, __Y),
   1891                                              (__v8hi)__W);
   1892 }
   1893 
   1894 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1895 _mm_maskz_mulhrs_epi16(__mmask8 __U, __m128i __X, __m128i __Y) {
   1896   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   1897                                              (__v8hi)_mm_mulhrs_epi16(__X, __Y),
   1898                                              (__v8hi)_mm_setzero_si128());
   1899 }
   1900 
   1901 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1902 _mm256_mask_mulhrs_epi16(__m256i __W, __mmask16 __U, __m256i __X, __m256i __Y) {
   1903   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   1904                                          (__v16hi)_mm256_mulhrs_epi16(__X, __Y),
   1905                                          (__v16hi)__W);
   1906 }
   1907 
   1908 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1909 _mm256_maskz_mulhrs_epi16(__mmask16 __U, __m256i __X, __m256i __Y) {
   1910   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   1911                                          (__v16hi)_mm256_mulhrs_epi16(__X, __Y),
   1912                                          (__v16hi)_mm256_setzero_si256());
   1913 }
   1914 
   1915 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1916 _mm_mask_mulhi_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
   1917   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   1918                                              (__v8hi)_mm_mulhi_epu16(__A, __B),
   1919                                              (__v8hi)__W);
   1920 }
   1921 
   1922 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1923 _mm_maskz_mulhi_epu16(__mmask8 __U, __m128i __A, __m128i __B) {
   1924   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   1925                                              (__v8hi)_mm_mulhi_epu16(__A, __B),
   1926                                              (__v8hi)_mm_setzero_si128());
   1927 }
   1928 
   1929 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1930 _mm256_mask_mulhi_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
   1931   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   1932                                           (__v16hi)_mm256_mulhi_epu16(__A, __B),
   1933                                           (__v16hi)__W);
   1934 }
   1935 
   1936 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1937 _mm256_maskz_mulhi_epu16(__mmask16 __U, __m256i __A, __m256i __B) {
   1938   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   1939                                           (__v16hi)_mm256_mulhi_epu16(__A, __B),
   1940                                           (__v16hi)_mm256_setzero_si256());
   1941 }
   1942 
   1943 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1944 _mm_mask_mulhi_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
   1945   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   1946                                              (__v8hi)_mm_mulhi_epi16(__A, __B),
   1947                                              (__v8hi)__W);
   1948 }
   1949 
   1950 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1951 _mm_maskz_mulhi_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
   1952   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   1953                                              (__v8hi)_mm_mulhi_epi16(__A, __B),
   1954                                              (__v8hi)_mm_setzero_si128());
   1955 }
   1956 
   1957 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1958 _mm256_mask_mulhi_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
   1959   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   1960                                           (__v16hi)_mm256_mulhi_epi16(__A, __B),
   1961                                           (__v16hi)__W);
   1962 }
   1963 
   1964 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1965 _mm256_maskz_mulhi_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
   1966   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   1967                                           (__v16hi)_mm256_mulhi_epi16(__A, __B),
   1968                                           (__v16hi)_mm256_setzero_si256());
   1969 }
   1970 
   1971 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1972 _mm_mask_unpackhi_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
   1973   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
   1974                                            (__v16qi)_mm_unpackhi_epi8(__A, __B),
   1975                                            (__v16qi)__W);
   1976 }
   1977 
   1978 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1979 _mm_maskz_unpackhi_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
   1980   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
   1981                                            (__v16qi)_mm_unpackhi_epi8(__A, __B),
   1982                                            (__v16qi)_mm_setzero_si128());
   1983 }
   1984 
   1985 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1986 _mm256_mask_unpackhi_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
   1987   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
   1988                                         (__v32qi)_mm256_unpackhi_epi8(__A, __B),
   1989                                         (__v32qi)__W);
   1990 }
   1991 
   1992 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1993 _mm256_maskz_unpackhi_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
   1994   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
   1995                                         (__v32qi)_mm256_unpackhi_epi8(__A, __B),
   1996                                         (__v32qi)_mm256_setzero_si256());
   1997 }
   1998 
   1999 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2000 _mm_mask_unpackhi_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
   2001   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2002                                            (__v8hi)_mm_unpackhi_epi16(__A, __B),
   2003                                            (__v8hi)__W);
   2004 }
   2005 
   2006 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2007 _mm_maskz_unpackhi_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
   2008   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2009                                            (__v8hi)_mm_unpackhi_epi16(__A, __B),
   2010                                            (__v8hi) _mm_setzero_si128());
   2011 }
   2012 
   2013 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2014 _mm256_mask_unpackhi_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
   2015   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2016                                        (__v16hi)_mm256_unpackhi_epi16(__A, __B),
   2017                                        (__v16hi)__W);
   2018 }
   2019 
   2020 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2021 _mm256_maskz_unpackhi_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
   2022   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2023                                        (__v16hi)_mm256_unpackhi_epi16(__A, __B),
   2024                                        (__v16hi)_mm256_setzero_si256());
   2025 }
   2026 
   2027 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2028 _mm_mask_unpacklo_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
   2029   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
   2030                                            (__v16qi)_mm_unpacklo_epi8(__A, __B),
   2031                                            (__v16qi)__W);
   2032 }
   2033 
   2034 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2035 _mm_maskz_unpacklo_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
   2036   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
   2037                                            (__v16qi)_mm_unpacklo_epi8(__A, __B),
   2038                                            (__v16qi)_mm_setzero_si128());
   2039 }
   2040 
   2041 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2042 _mm256_mask_unpacklo_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
   2043   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
   2044                                         (__v32qi)_mm256_unpacklo_epi8(__A, __B),
   2045                                         (__v32qi)__W);
   2046 }
   2047 
   2048 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2049 _mm256_maskz_unpacklo_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
   2050   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
   2051                                         (__v32qi)_mm256_unpacklo_epi8(__A, __B),
   2052                                         (__v32qi)_mm256_setzero_si256());
   2053 }
   2054 
   2055 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2056 _mm_mask_unpacklo_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
   2057   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2058                                            (__v8hi)_mm_unpacklo_epi16(__A, __B),
   2059                                            (__v8hi)__W);
   2060 }
   2061 
   2062 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2063 _mm_maskz_unpacklo_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
   2064   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2065                                            (__v8hi)_mm_unpacklo_epi16(__A, __B),
   2066                                            (__v8hi) _mm_setzero_si128());
   2067 }
   2068 
   2069 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2070 _mm256_mask_unpacklo_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
   2071   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2072                                        (__v16hi)_mm256_unpacklo_epi16(__A, __B),
   2073                                        (__v16hi)__W);
   2074 }
   2075 
   2076 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2077 _mm256_maskz_unpacklo_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
   2078   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2079                                        (__v16hi)_mm256_unpacklo_epi16(__A, __B),
   2080                                        (__v16hi)_mm256_setzero_si256());
   2081 }
   2082 
   2083 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2084 _mm_mask_cvtepi8_epi16(__m128i __W, __mmask8 __U, __m128i __A)
   2085 {
   2086   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2087                                              (__v8hi)_mm_cvtepi8_epi16(__A),
   2088                                              (__v8hi)__W);
   2089 }
   2090 
   2091 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2092 _mm_maskz_cvtepi8_epi16(__mmask8 __U, __m128i __A)
   2093 {
   2094   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2095                                              (__v8hi)_mm_cvtepi8_epi16(__A),
   2096                                              (__v8hi)_mm_setzero_si128());
   2097 }
   2098 
   2099 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2100 _mm256_mask_cvtepi8_epi16(__m256i __W, __mmask16 __U, __m128i __A)
   2101 {
   2102   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2103                                              (__v16hi)_mm256_cvtepi8_epi16(__A),
   2104                                              (__v16hi)__W);
   2105 }
   2106 
   2107 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2108 _mm256_maskz_cvtepi8_epi16(__mmask16 __U, __m128i __A)
   2109 {
   2110   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2111                                              (__v16hi)_mm256_cvtepi8_epi16(__A),
   2112                                              (__v16hi)_mm256_setzero_si256());
   2113 }
   2114 
   2115 
   2116 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2117 _mm_mask_cvtepu8_epi16(__m128i __W, __mmask8 __U, __m128i __A)
   2118 {
   2119   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2120                                              (__v8hi)_mm_cvtepu8_epi16(__A),
   2121                                              (__v8hi)__W);
   2122 }
   2123 
   2124 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2125 _mm_maskz_cvtepu8_epi16(__mmask8 __U, __m128i __A)
   2126 {
   2127   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2128                                              (__v8hi)_mm_cvtepu8_epi16(__A),
   2129                                              (__v8hi)_mm_setzero_si128());
   2130 }
   2131 
   2132 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2133 _mm256_mask_cvtepu8_epi16(__m256i __W, __mmask16 __U, __m128i __A)
   2134 {
   2135   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2136                                              (__v16hi)_mm256_cvtepu8_epi16(__A),
   2137                                              (__v16hi)__W);
   2138 }
   2139 
   2140 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2141 _mm256_maskz_cvtepu8_epi16 (__mmask16 __U, __m128i __A)
   2142 {
   2143   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2144                                              (__v16hi)_mm256_cvtepu8_epi16(__A),
   2145                                              (__v16hi)_mm256_setzero_si256());
   2146 }
   2147 
   2148 
   2149 #define _mm_cmp_epi8_mask(a, b, p) __extension__ ({ \
   2150   (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)(a), \
   2151                                          (__v16qi)(__m128i)(b), (int)(p), \
   2152                                          (__mmask16)-1); })
   2153 
   2154 #define _mm_mask_cmp_epi8_mask(m, a, b, p) __extension__ ({ \
   2155   (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)(a), \
   2156                                          (__v16qi)(__m128i)(b), (int)(p), \
   2157                                          (__mmask16)(m)); })
   2158 
   2159 #define _mm_cmp_epu8_mask(a, b, p) __extension__ ({ \
   2160   (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)(__m128i)(a), \
   2161                                           (__v16qi)(__m128i)(b), (int)(p), \
   2162                                           (__mmask16)-1); })
   2163 
   2164 #define _mm_mask_cmp_epu8_mask(m, a, b, p) __extension__ ({ \
   2165   (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)(__m128i)(a), \
   2166                                           (__v16qi)(__m128i)(b), (int)(p), \
   2167                                           (__mmask16)(m)); })
   2168 
   2169 #define _mm256_cmp_epi8_mask(a, b, p) __extension__ ({ \
   2170   (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)(a), \
   2171                                          (__v32qi)(__m256i)(b), (int)(p), \
   2172                                          (__mmask32)-1); })
   2173 
   2174 #define _mm256_mask_cmp_epi8_mask(m, a, b, p) __extension__ ({ \
   2175   (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)(a), \
   2176                                          (__v32qi)(__m256i)(b), (int)(p), \
   2177                                          (__mmask32)(m)); })
   2178 
   2179 #define _mm256_cmp_epu8_mask(a, b, p) __extension__ ({ \
   2180   (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)(__m256i)(a), \
   2181                                           (__v32qi)(__m256i)(b), (int)(p), \
   2182                                           (__mmask32)-1); })
   2183 
   2184 #define _mm256_mask_cmp_epu8_mask(m, a, b, p) __extension__ ({ \
   2185   (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)(__m256i)(a), \
   2186                                           (__v32qi)(__m256i)(b), (int)(p), \
   2187                                           (__mmask32)(m)); })
   2188 
   2189 #define _mm_cmp_epi16_mask(a, b, p) __extension__ ({ \
   2190   (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)(a), \
   2191                                         (__v8hi)(__m128i)(b), (int)(p), \
   2192                                         (__mmask8)-1); })
   2193 
   2194 #define _mm_mask_cmp_epi16_mask(m, a, b, p) __extension__ ({ \
   2195   (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)(a), \
   2196                                         (__v8hi)(__m128i)(b), (int)(p), \
   2197                                         (__mmask8)(m)); })
   2198 
   2199 #define _mm_cmp_epu16_mask(a, b, p) __extension__ ({ \
   2200   (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)(__m128i)(a), \
   2201                                          (__v8hi)(__m128i)(b), (int)(p), \
   2202                                          (__mmask8)-1); })
   2203 
   2204 #define _mm_mask_cmp_epu16_mask(m, a, b, p) __extension__ ({ \
   2205   (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)(__m128i)(a), \
   2206                                          (__v8hi)(__m128i)(b), (int)(p), \
   2207                                          (__mmask8)(m)); })
   2208 
   2209 #define _mm256_cmp_epi16_mask(a, b, p) __extension__ ({ \
   2210   (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)(a), \
   2211                                          (__v16hi)(__m256i)(b), (int)(p), \
   2212                                          (__mmask16)-1); })
   2213 
   2214 #define _mm256_mask_cmp_epi16_mask(m, a, b, p) __extension__ ({ \
   2215   (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)(a), \
   2216                                          (__v16hi)(__m256i)(b), (int)(p), \
   2217                                          (__mmask16)(m)); })
   2218 
   2219 #define _mm256_cmp_epu16_mask(a, b, p) __extension__ ({ \
   2220   (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)(__m256i)(a), \
   2221                                           (__v16hi)(__m256i)(b), (int)(p), \
   2222                                           (__mmask16)-1); })
   2223 
   2224 #define _mm256_mask_cmp_epu16_mask(m, a, b, p) __extension__ ({ \
   2225   (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)(__m256i)(a), \
   2226                                           (__v16hi)(__m256i)(b), (int)(p), \
   2227                                           (__mmask16)(m)); })
   2228 
   2229 #define _mm_mask_shufflehi_epi16(W, U, A, imm) __extension__ ({ \
   2230   (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
   2231                                       (__v8hi)_mm_shufflehi_epi16((A), (imm)), \
   2232                                       (__v8hi)(__m128i)(W)); })
   2233 
   2234 #define _mm_maskz_shufflehi_epi16(U, A, imm) __extension__ ({ \
   2235   (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
   2236                                       (__v8hi)_mm_shufflehi_epi16((A), (imm)), \
   2237                                       (__v8hi)_mm_setzero_hi()); })
   2238 
   2239 #define _mm256_mask_shufflehi_epi16(W, U, A, imm) __extension__ ({ \
   2240   (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
   2241                                       (__v16hi)_mm256_shufflehi_epi16((A), (imm)), \
   2242                                       (__v16hi)(__m256i)(W)); })
   2243 
   2244 #define _mm256_maskz_shufflehi_epi16(U, A, imm) __extension__ ({ \
   2245   (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
   2246                                       (__v16hi)_mm256_shufflehi_epi16((A), (imm)), \
   2247                                       (__v16hi)_mm256_setzero_si256()); })
   2248 
   2249 #define _mm_mask_shufflelo_epi16(W, U, A, imm) __extension__ ({ \
   2250   (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
   2251                                       (__v8hi)_mm_shufflelo_epi16((A), (imm)), \
   2252                                       (__v8hi)(__m128i)(W)); })
   2253 
   2254 #define _mm_maskz_shufflelo_epi16(U, A, imm) __extension__ ({ \
   2255   (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
   2256                                       (__v8hi)_mm_shufflelo_epi16((A), (imm)), \
   2257                                       (__v8hi)_mm_setzero_hi()); })
   2258 
   2259 #define _mm256_mask_shufflelo_epi16(W, U, A, imm) __extension__ ({ \
   2260   (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
   2261                                       (__v16hi)_mm256_shufflelo_epi16((A), \
   2262                                                                       (imm)), \
   2263                                       (__v16hi)(__m256i)(W)); })
   2264 
   2265 #define _mm256_maskz_shufflelo_epi16(U, A, imm) __extension__ ({ \
   2266   (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
   2267                                       (__v16hi)_mm256_shufflelo_epi16((A), \
   2268                                                                       (imm)), \
   2269                                       (__v16hi)_mm256_setzero_si256()); })
   2270 
   2271 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2272 _mm256_sllv_epi16(__m256i __A, __m256i __B)
   2273 {
   2274   return (__m256i)__builtin_ia32_psllv16hi((__v16hi)__A, (__v16hi)__B);
   2275 }
   2276 
   2277 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2278 _mm256_mask_sllv_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
   2279 {
   2280   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2281                                            (__v16hi)_mm256_sllv_epi16(__A, __B),
   2282                                            (__v16hi)__W);
   2283 }
   2284 
   2285 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2286 _mm256_maskz_sllv_epi16(__mmask16 __U, __m256i __A, __m256i __B)
   2287 {
   2288   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2289                                            (__v16hi)_mm256_sllv_epi16(__A, __B),
   2290                                            (__v16hi)_mm256_setzero_si256());
   2291 }
   2292 
   2293 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2294 _mm_sllv_epi16(__m128i __A, __m128i __B)
   2295 {
   2296   return (__m128i)__builtin_ia32_psllv8hi((__v8hi)__A, (__v8hi)__B);
   2297 }
   2298 
   2299 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2300 _mm_mask_sllv_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
   2301 {
   2302   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2303                                              (__v8hi)_mm_sllv_epi16(__A, __B),
   2304                                              (__v8hi)__W);
   2305 }
   2306 
   2307 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2308 _mm_maskz_sllv_epi16(__mmask8 __U, __m128i __A, __m128i __B)
   2309 {
   2310   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2311                                              (__v8hi)_mm_sllv_epi16(__A, __B),
   2312                                              (__v8hi)_mm_setzero_si128());
   2313 }
   2314 
   2315 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2316 _mm_mask_sll_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
   2317 {
   2318   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2319                                              (__v8hi)_mm_sll_epi16(__A, __B),
   2320                                              (__v8hi)__W);
   2321 }
   2322 
   2323 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2324 _mm_maskz_sll_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
   2325 {
   2326   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2327                                              (__v8hi)_mm_sll_epi16(__A, __B),
   2328                                              (__v8hi)_mm_setzero_si128());
   2329 }
   2330 
   2331 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2332 _mm256_mask_sll_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B)
   2333 {
   2334   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2335                                           (__v16hi)_mm256_sll_epi16(__A, __B),
   2336                                           (__v16hi)__W);
   2337 }
   2338 
   2339 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2340 _mm256_maskz_sll_epi16(__mmask16 __U, __m256i __A, __m128i __B)
   2341 {
   2342   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2343                                           (__v16hi)_mm256_sll_epi16(__A, __B),
   2344                                           (__v16hi)_mm256_setzero_si256());
   2345 }
   2346 
   2347 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2348 _mm_mask_slli_epi16(__m128i __W, __mmask8 __U, __m128i __A, int __B)
   2349 {
   2350   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2351                                              (__v8hi)_mm_slli_epi16(__A, __B),
   2352                                              (__v8hi)__W);
   2353 }
   2354 
   2355 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2356 _mm_maskz_slli_epi16 (__mmask8 __U, __m128i __A, int __B)
   2357 {
   2358   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2359                                              (__v8hi)_mm_slli_epi16(__A, __B),
   2360                                              (__v8hi)_mm_setzero_si128());
   2361 }
   2362 
   2363 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2364 _mm256_mask_slli_epi16(__m256i __W, __mmask16 __U, __m256i __A, int __B)
   2365 {
   2366   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2367                                          (__v16hi)_mm256_slli_epi16(__A, __B),
   2368                                          (__v16hi)__W);
   2369 }
   2370 
   2371 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2372 _mm256_maskz_slli_epi16(__mmask16 __U, __m256i __A, int __B)
   2373 {
   2374   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2375                                          (__v16hi)_mm256_slli_epi16(__A, __B),
   2376                                          (__v16hi)_mm256_setzero_si256());
   2377 }
   2378 
   2379 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2380 _mm256_srlv_epi16(__m256i __A, __m256i __B)
   2381 {
   2382   return (__m256i)__builtin_ia32_psrlv16hi((__v16hi)__A, (__v16hi)__B);
   2383 }
   2384 
   2385 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2386 _mm256_mask_srlv_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
   2387 {
   2388   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2389                                            (__v16hi)_mm256_srlv_epi16(__A, __B),
   2390                                            (__v16hi)__W);
   2391 }
   2392 
   2393 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2394 _mm256_maskz_srlv_epi16(__mmask16 __U, __m256i __A, __m256i __B)
   2395 {
   2396   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2397                                            (__v16hi)_mm256_srlv_epi16(__A, __B),
   2398                                            (__v16hi)_mm256_setzero_si256());
   2399 }
   2400 
   2401 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2402 _mm_srlv_epi16(__m128i __A, __m128i __B)
   2403 {
   2404   return (__m128i)__builtin_ia32_psrlv8hi((__v8hi)__A, (__v8hi)__B);
   2405 }
   2406 
   2407 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2408 _mm_mask_srlv_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
   2409 {
   2410   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2411                                              (__v8hi)_mm_srlv_epi16(__A, __B),
   2412                                              (__v8hi)__W);
   2413 }
   2414 
   2415 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2416 _mm_maskz_srlv_epi16(__mmask8 __U, __m128i __A, __m128i __B)
   2417 {
   2418   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2419                                              (__v8hi)_mm_srlv_epi16(__A, __B),
   2420                                              (__v8hi)_mm_setzero_si128());
   2421 }
   2422 
   2423 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2424 _mm256_srav_epi16(__m256i __A, __m256i __B)
   2425 {
   2426   return (__m256i)__builtin_ia32_psrav16hi((__v16hi)__A, (__v16hi)__B);
   2427 }
   2428 
   2429 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2430 _mm256_mask_srav_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
   2431 {
   2432   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2433                                            (__v16hi)_mm256_srav_epi16(__A, __B),
   2434                                            (__v16hi)__W);
   2435 }
   2436 
   2437 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2438 _mm256_maskz_srav_epi16(__mmask16 __U, __m256i __A, __m256i __B)
   2439 {
   2440   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2441                                            (__v16hi)_mm256_srav_epi16(__A, __B),
   2442                                            (__v16hi)_mm256_setzero_si256());
   2443 }
   2444 
   2445 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2446 _mm_srav_epi16(__m128i __A, __m128i __B)
   2447 {
   2448   return (__m128i)__builtin_ia32_psrav8hi((__v8hi)__A, (__v8hi)__B);
   2449 }
   2450 
   2451 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2452 _mm_mask_srav_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
   2453 {
   2454   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2455                                              (__v8hi)_mm_srav_epi16(__A, __B),
   2456                                              (__v8hi)__W);
   2457 }
   2458 
   2459 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2460 _mm_maskz_srav_epi16(__mmask8 __U, __m128i __A, __m128i __B)
   2461 {
   2462   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2463                                              (__v8hi)_mm_srav_epi16(__A, __B),
   2464                                              (__v8hi)_mm_setzero_si128());
   2465 }
   2466 
   2467 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2468 _mm_mask_sra_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
   2469 {
   2470   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2471                                              (__v8hi)_mm_sra_epi16(__A, __B),
   2472                                              (__v8hi)__W);
   2473 }
   2474 
   2475 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2476 _mm_maskz_sra_epi16(__mmask8 __U, __m128i __A, __m128i __B)
   2477 {
   2478   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2479                                              (__v8hi)_mm_sra_epi16(__A, __B),
   2480                                              (__v8hi)_mm_setzero_si128());
   2481 }
   2482 
   2483 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2484 _mm256_mask_sra_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B)
   2485 {
   2486   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2487                                           (__v16hi)_mm256_sra_epi16(__A, __B),
   2488                                           (__v16hi)__W);
   2489 }
   2490 
   2491 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2492 _mm256_maskz_sra_epi16(__mmask16 __U, __m256i __A, __m128i __B)
   2493 {
   2494   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2495                                           (__v16hi)_mm256_sra_epi16(__A, __B),
   2496                                           (__v16hi)_mm256_setzero_si256());
   2497 }
   2498 
   2499 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2500 _mm_mask_srai_epi16(__m128i __W, __mmask8 __U, __m128i __A, int __B)
   2501 {
   2502   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2503                                              (__v8hi)_mm_srai_epi16(__A, __B),
   2504                                              (__v8hi)__W);
   2505 }
   2506 
   2507 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2508 _mm_maskz_srai_epi16(__mmask8 __U, __m128i __A, int __B)
   2509 {
   2510   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2511                                              (__v8hi)_mm_srai_epi16(__A, __B),
   2512                                              (__v8hi)_mm_setzero_si128());
   2513 }
   2514 
   2515 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2516 _mm256_mask_srai_epi16(__m256i __W, __mmask16 __U, __m256i __A, int __B)
   2517 {
   2518   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2519                                          (__v16hi)_mm256_srai_epi16(__A, __B),
   2520                                          (__v16hi)__W);
   2521 }
   2522 
   2523 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2524 _mm256_maskz_srai_epi16(__mmask16 __U, __m256i __A, int __B)
   2525 {
   2526   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2527                                          (__v16hi)_mm256_srai_epi16(__A, __B),
   2528                                          (__v16hi)_mm256_setzero_si256());
   2529 }
   2530 
   2531 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2532 _mm_mask_srl_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
   2533 {
   2534   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2535                                              (__v8hi)_mm_srl_epi16(__A, __B),
   2536                                              (__v8hi)__W);
   2537 }
   2538 
   2539 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2540 _mm_maskz_srl_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
   2541 {
   2542   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2543                                              (__v8hi)_mm_srl_epi16(__A, __B),
   2544                                              (__v8hi)_mm_setzero_si128());
   2545 }
   2546 
   2547 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2548 _mm256_mask_srl_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B)
   2549 {
   2550   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2551                                           (__v16hi)_mm256_srl_epi16(__A, __B),
   2552                                           (__v16hi)__W);
   2553 }
   2554 
   2555 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2556 _mm256_maskz_srl_epi16(__mmask16 __U, __m256i __A, __m128i __B)
   2557 {
   2558   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2559                                           (__v16hi)_mm256_srl_epi16(__A, __B),
   2560                                           (__v16hi)_mm256_setzero_si256());
   2561 }
   2562 
   2563 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2564 _mm_mask_srli_epi16(__m128i __W, __mmask8 __U, __m128i __A, int __B)
   2565 {
   2566   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2567                                              (__v8hi)_mm_srli_epi16(__A, __B),
   2568                                              (__v8hi)__W);
   2569 }
   2570 
   2571 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2572 _mm_maskz_srli_epi16 (__mmask8 __U, __m128i __A, int __B)
   2573 {
   2574   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
   2575                                              (__v8hi)_mm_srli_epi16(__A, __B),
   2576                                              (__v8hi)_mm_setzero_si128());
   2577 }
   2578 
   2579 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2580 _mm256_mask_srli_epi16(__m256i __W, __mmask16 __U, __m256i __A, int __B)
   2581 {
   2582   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2583                                          (__v16hi)_mm256_srli_epi16(__A, __B),
   2584                                          (__v16hi)__W);
   2585 }
   2586 
   2587 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2588 _mm256_maskz_srli_epi16(__mmask16 __U, __m256i __A, int __B)
   2589 {
   2590   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
   2591                                          (__v16hi)_mm256_srli_epi16(__A, __B),
   2592                                          (__v16hi)_mm256_setzero_si256());
   2593 }
   2594 
   2595 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2596 _mm_mask_mov_epi16 (__m128i __W, __mmask8 __U, __m128i __A)
   2597 {
   2598   return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U,
   2599                 (__v8hi) __A,
   2600                 (__v8hi) __W);
   2601 }
   2602 
   2603 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2604 _mm_maskz_mov_epi16 (__mmask8 __U, __m128i __A)
   2605 {
   2606   return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U,
   2607                 (__v8hi) __A,
   2608                 (__v8hi) _mm_setzero_hi ());
   2609 }
   2610 
   2611 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2612 _mm256_mask_mov_epi16 (__m256i __W, __mmask16 __U, __m256i __A)
   2613 {
   2614   return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U,
   2615                 (__v16hi) __A,
   2616                 (__v16hi) __W);
   2617 }
   2618 
   2619 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2620 _mm256_maskz_mov_epi16 (__mmask16 __U, __m256i __A)
   2621 {
   2622   return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U,
   2623                 (__v16hi) __A,
   2624                 (__v16hi) _mm256_setzero_si256 ());
   2625 }
   2626 
   2627 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2628 _mm_mask_mov_epi8 (__m128i __W, __mmask16 __U, __m128i __A)
   2629 {
   2630   return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U,
   2631                 (__v16qi) __A,
   2632                 (__v16qi) __W);
   2633 }
   2634 
   2635 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2636 _mm_maskz_mov_epi8 (__mmask16 __U, __m128i __A)
   2637 {
   2638   return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U,
   2639                 (__v16qi) __A,
   2640                 (__v16qi) _mm_setzero_hi ());
   2641 }
   2642 
   2643 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2644 _mm256_mask_mov_epi8 (__m256i __W, __mmask32 __U, __m256i __A)
   2645 {
   2646   return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U,
   2647                 (__v32qi) __A,
   2648                 (__v32qi) __W);
   2649 }
   2650 
   2651 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2652 _mm256_maskz_mov_epi8 (__mmask32 __U, __m256i __A)
   2653 {
   2654   return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U,
   2655                 (__v32qi) __A,
   2656                 (__v32qi) _mm256_setzero_si256 ());
   2657 }
   2658 
   2659 
   2660 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2661 _mm_mask_set1_epi8 (__m128i __O, __mmask16 __M, char __A)
   2662 {
   2663   return (__m128i) __builtin_ia32_pbroadcastb128_gpr_mask (__A,
   2664                  (__v16qi) __O,
   2665                  __M);
   2666 }
   2667 
   2668 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2669 _mm_maskz_set1_epi8 (__mmask16 __M, char __A)
   2670 {
   2671   return (__m128i) __builtin_ia32_pbroadcastb128_gpr_mask (__A,
   2672                  (__v16qi)
   2673                  _mm_setzero_si128 (),
   2674                  __M);
   2675 }
   2676 
   2677 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2678 _mm256_mask_set1_epi8 (__m256i __O, __mmask32 __M, char __A)
   2679 {
   2680   return (__m256i) __builtin_ia32_pbroadcastb256_gpr_mask (__A,
   2681                  (__v32qi) __O,
   2682                  __M);
   2683 }
   2684 
   2685 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2686 _mm256_maskz_set1_epi8 (__mmask32 __M, char __A)
   2687 {
   2688   return (__m256i) __builtin_ia32_pbroadcastb256_gpr_mask (__A,
   2689                  (__v32qi)
   2690                  _mm256_setzero_si256 (),
   2691                  __M);
   2692 }
   2693 
   2694 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2695 _mm_mask_loadu_epi16 (__m128i __W, __mmask8 __U, void const *__P)
   2696 {
   2697   return (__m128i) __builtin_ia32_loaddquhi128_mask ((__v8hi *) __P,
   2698                  (__v8hi) __W,
   2699                  (__mmask8) __U);
   2700 }
   2701 
   2702 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2703 _mm_maskz_loadu_epi16 (__mmask8 __U, void const *__P)
   2704 {
   2705   return (__m128i) __builtin_ia32_loaddquhi128_mask ((__v8hi *) __P,
   2706                  (__v8hi)
   2707                  _mm_setzero_hi (),
   2708                  (__mmask8) __U);
   2709 }
   2710 
   2711 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2712 _mm256_mask_loadu_epi16 (__m256i __W, __mmask16 __U, void const *__P)
   2713 {
   2714   return (__m256i) __builtin_ia32_loaddquhi256_mask ((__v16hi *) __P,
   2715                  (__v16hi) __W,
   2716                  (__mmask16) __U);
   2717 }
   2718 
   2719 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2720 _mm256_maskz_loadu_epi16 (__mmask16 __U, void const *__P)
   2721 {
   2722   return (__m256i) __builtin_ia32_loaddquhi256_mask ((__v16hi *) __P,
   2723                  (__v16hi)
   2724                  _mm256_setzero_si256 (),
   2725                  (__mmask16) __U);
   2726 }
   2727 
   2728 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2729 _mm_mask_loadu_epi8 (__m128i __W, __mmask16 __U, void const *__P)
   2730 {
   2731   return (__m128i) __builtin_ia32_loaddquqi128_mask ((__v16qi *) __P,
   2732                  (__v16qi) __W,
   2733                  (__mmask16) __U);
   2734 }
   2735 
   2736 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2737 _mm_maskz_loadu_epi8 (__mmask16 __U, void const *__P)
   2738 {
   2739   return (__m128i) __builtin_ia32_loaddquqi128_mask ((__v16qi *) __P,
   2740                  (__v16qi)
   2741                  _mm_setzero_si128 (),
   2742                  (__mmask16) __U);
   2743 }
   2744 
   2745 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2746 _mm256_mask_loadu_epi8 (__m256i __W, __mmask32 __U, void const *__P)
   2747 {
   2748   return (__m256i) __builtin_ia32_loaddquqi256_mask ((__v32qi *) __P,
   2749                  (__v32qi) __W,
   2750                  (__mmask32) __U);
   2751 }
   2752 
   2753 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2754 _mm256_maskz_loadu_epi8 (__mmask32 __U, void const *__P)
   2755 {
   2756   return (__m256i) __builtin_ia32_loaddquqi256_mask ((__v32qi *) __P,
   2757                  (__v32qi)
   2758                  _mm256_setzero_si256 (),
   2759                  (__mmask32) __U);
   2760 }
   2761 static __inline__ void __DEFAULT_FN_ATTRS
   2762 _mm_mask_storeu_epi16 (void *__P, __mmask8 __U, __m128i __A)
   2763 {
   2764   __builtin_ia32_storedquhi128_mask ((__v8hi *) __P,
   2765              (__v8hi) __A,
   2766              (__mmask8) __U);
   2767 }
   2768 
   2769 static __inline__ void __DEFAULT_FN_ATTRS
   2770 _mm256_mask_storeu_epi16 (void *__P, __mmask16 __U, __m256i __A)
   2771 {
   2772   __builtin_ia32_storedquhi256_mask ((__v16hi *) __P,
   2773              (__v16hi) __A,
   2774              (__mmask16) __U);
   2775 }
   2776 
   2777 static __inline__ void __DEFAULT_FN_ATTRS
   2778 _mm_mask_storeu_epi8 (void *__P, __mmask16 __U, __m128i __A)
   2779 {
   2780   __builtin_ia32_storedquqi128_mask ((__v16qi *) __P,
   2781              (__v16qi) __A,
   2782              (__mmask16) __U);
   2783 }
   2784 
   2785 static __inline__ void __DEFAULT_FN_ATTRS
   2786 _mm256_mask_storeu_epi8 (void *__P, __mmask32 __U, __m256i __A)
   2787 {
   2788   __builtin_ia32_storedquqi256_mask ((__v32qi *) __P,
   2789              (__v32qi) __A,
   2790              (__mmask32) __U);
   2791 }
   2792 
   2793 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
   2794 _mm_test_epi8_mask (__m128i __A, __m128i __B)
   2795 {
   2796   return (__mmask16) __builtin_ia32_ptestmb128 ((__v16qi) __A,
   2797             (__v16qi) __B,
   2798             (__mmask16) -1);
   2799 }
   2800 
   2801 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
   2802 _mm_mask_test_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
   2803 {
   2804   return (__mmask16) __builtin_ia32_ptestmb128 ((__v16qi) __A,
   2805             (__v16qi) __B, __U);
   2806 }
   2807 
   2808 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
   2809 _mm256_test_epi8_mask (__m256i __A, __m256i __B)
   2810 {
   2811   return (__mmask32) __builtin_ia32_ptestmb256 ((__v32qi) __A,
   2812             (__v32qi) __B,
   2813             (__mmask32) -1);
   2814 }
   2815 
   2816 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
   2817 _mm256_mask_test_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
   2818 {
   2819   return (__mmask32) __builtin_ia32_ptestmb256 ((__v32qi) __A,
   2820             (__v32qi) __B, __U);
   2821 }
   2822 
   2823 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
   2824 _mm_test_epi16_mask (__m128i __A, __m128i __B)
   2825 {
   2826   return (__mmask8) __builtin_ia32_ptestmw128 ((__v8hi) __A,
   2827                  (__v8hi) __B,
   2828                  (__mmask8) -1);
   2829 }
   2830 
   2831 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
   2832 _mm_mask_test_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
   2833 {
   2834   return (__mmask8) __builtin_ia32_ptestmw128 ((__v8hi) __A,
   2835                  (__v8hi) __B, __U);
   2836 }
   2837 
   2838 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
   2839 _mm256_test_epi16_mask (__m256i __A, __m256i __B)
   2840 {
   2841   return (__mmask16) __builtin_ia32_ptestmw256 ((__v16hi) __A,
   2842             (__v16hi) __B,
   2843             (__mmask16) -1);
   2844 }
   2845 
   2846 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
   2847 _mm256_mask_test_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
   2848 {
   2849   return (__mmask16) __builtin_ia32_ptestmw256 ((__v16hi) __A,
   2850             (__v16hi) __B, __U);
   2851 }
   2852 
   2853 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
   2854 _mm_testn_epi8_mask (__m128i __A, __m128i __B)
   2855 {
   2856   return (__mmask16) __builtin_ia32_ptestnmb128 ((__v16qi) __A,
   2857              (__v16qi) __B,
   2858              (__mmask16) -1);
   2859 }
   2860 
   2861 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
   2862 _mm_mask_testn_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
   2863 {
   2864   return (__mmask16) __builtin_ia32_ptestnmb128 ((__v16qi) __A,
   2865              (__v16qi) __B, __U);
   2866 }
   2867 
   2868 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
   2869 _mm256_testn_epi8_mask (__m256i __A, __m256i __B)
   2870 {
   2871   return (__mmask32) __builtin_ia32_ptestnmb256 ((__v32qi) __A,
   2872              (__v32qi) __B,
   2873              (__mmask32) -1);
   2874 }
   2875 
   2876 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
   2877 _mm256_mask_testn_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
   2878 {
   2879   return (__mmask32) __builtin_ia32_ptestnmb256 ((__v32qi) __A,
   2880              (__v32qi) __B, __U);
   2881 }
   2882 
   2883 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
   2884 _mm_testn_epi16_mask (__m128i __A, __m128i __B)
   2885 {
   2886   return (__mmask8) __builtin_ia32_ptestnmw128 ((__v8hi) __A,
   2887             (__v8hi) __B,
   2888             (__mmask8) -1);
   2889 }
   2890 
   2891 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
   2892 _mm_mask_testn_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
   2893 {
   2894   return (__mmask8) __builtin_ia32_ptestnmw128 ((__v8hi) __A,
   2895             (__v8hi) __B, __U);
   2896 }
   2897 
   2898 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
   2899 _mm256_testn_epi16_mask (__m256i __A, __m256i __B)
   2900 {
   2901   return (__mmask16) __builtin_ia32_ptestnmw256 ((__v16hi) __A,
   2902              (__v16hi) __B,
   2903              (__mmask16) -1);
   2904 }
   2905 
   2906 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
   2907 _mm256_mask_testn_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
   2908 {
   2909   return (__mmask16) __builtin_ia32_ptestnmw256 ((__v16hi) __A,
   2910              (__v16hi) __B, __U);
   2911 }
   2912 
   2913 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
   2914 _mm_movepi8_mask (__m128i __A)
   2915 {
   2916   return (__mmask16) __builtin_ia32_cvtb2mask128 ((__v16qi) __A);
   2917 }
   2918 
   2919 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
   2920 _mm256_movepi8_mask (__m256i __A)
   2921 {
   2922   return (__mmask32) __builtin_ia32_cvtb2mask256 ((__v32qi) __A);
   2923 }
   2924 
   2925 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
   2926 _mm_movepi16_mask (__m128i __A)
   2927 {
   2928   return (__mmask8) __builtin_ia32_cvtw2mask128 ((__v8hi) __A);
   2929 }
   2930 
   2931 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
   2932 _mm256_movepi16_mask (__m256i __A)
   2933 {
   2934   return (__mmask16) __builtin_ia32_cvtw2mask256 ((__v16hi) __A);
   2935 }
   2936 
   2937 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2938 _mm_movm_epi8 (__mmask16 __A)
   2939 {
   2940   return (__m128i) __builtin_ia32_cvtmask2b128 (__A);
   2941 }
   2942 
   2943 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2944 _mm256_movm_epi8 (__mmask32 __A)
   2945 {
   2946   return (__m256i) __builtin_ia32_cvtmask2b256 (__A);
   2947 }
   2948 
   2949 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2950 _mm_movm_epi16 (__mmask8 __A)
   2951 {
   2952   return (__m128i) __builtin_ia32_cvtmask2w128 (__A);
   2953 }
   2954 
   2955 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2956 _mm256_movm_epi16 (__mmask16 __A)
   2957 {
   2958   return (__m256i) __builtin_ia32_cvtmask2w256 (__A);
   2959 }
   2960 
   2961 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2962 _mm_mask_broadcastb_epi8 (__m128i __O, __mmask16 __M, __m128i __A)
   2963 {
   2964   return (__m128i)__builtin_ia32_selectb_128(__M,
   2965                                              (__v16qi) _mm_broadcastb_epi8(__A),
   2966                                              (__v16qi) __O);
   2967 }
   2968 
   2969 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2970 _mm_maskz_broadcastb_epi8 (__mmask16 __M, __m128i __A)
   2971 {
   2972   return (__m128i)__builtin_ia32_selectb_128(__M,
   2973                                              (__v16qi) _mm_broadcastb_epi8(__A),
   2974                                              (__v16qi) _mm_setzero_si128());
   2975 }
   2976 
   2977 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2978 _mm256_mask_broadcastb_epi8 (__m256i __O, __mmask32 __M, __m128i __A)
   2979 {
   2980   return (__m256i)__builtin_ia32_selectb_256(__M,
   2981                                              (__v32qi) _mm256_broadcastb_epi8(__A),
   2982                                              (__v32qi) __O);
   2983 }
   2984 
   2985 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2986 _mm256_maskz_broadcastb_epi8 (__mmask32 __M, __m128i __A)
   2987 {
   2988   return (__m256i)__builtin_ia32_selectb_256(__M,
   2989                                              (__v32qi) _mm256_broadcastb_epi8(__A),
   2990                                              (__v32qi) _mm256_setzero_si256());
   2991 }
   2992 
   2993 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2994 _mm_mask_broadcastw_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
   2995 {
   2996   return (__m128i)__builtin_ia32_selectw_128(__M,
   2997                                              (__v8hi) _mm_broadcastw_epi16(__A),
   2998                                              (__v8hi) __O);
   2999 }
   3000 
   3001 static __inline__ __m128i __DEFAULT_FN_ATTRS
   3002 _mm_maskz_broadcastw_epi16 (__mmask8 __M, __m128i __A)
   3003 {
   3004   return (__m128i)__builtin_ia32_selectw_128(__M,
   3005                                              (__v8hi) _mm_broadcastw_epi16(__A),
   3006                                              (__v8hi) _mm_setzero_si128());
   3007 }
   3008 
   3009 static __inline__ __m256i __DEFAULT_FN_ATTRS
   3010 _mm256_mask_broadcastw_epi16 (__m256i __O, __mmask16 __M, __m128i __A)
   3011 {
   3012   return (__m256i)__builtin_ia32_selectw_256(__M,
   3013                                              (__v16hi) _mm256_broadcastw_epi16(__A),
   3014                                              (__v16hi) __O);
   3015 }
   3016 
   3017 static __inline__ __m256i __DEFAULT_FN_ATTRS
   3018 _mm256_maskz_broadcastw_epi16 (__mmask16 __M, __m128i __A)
   3019 {
   3020   return (__m256i)__builtin_ia32_selectw_256(__M,
   3021                                              (__v16hi) _mm256_broadcastw_epi16(__A),
   3022                                              (__v16hi) _mm256_setzero_si256());
   3023 }
   3024 
   3025 static __inline__ __m256i __DEFAULT_FN_ATTRS
   3026 _mm256_mask_set1_epi16 (__m256i __O, __mmask16 __M, short __A)
   3027 {
   3028   return (__m256i) __builtin_ia32_pbroadcastw256_gpr_mask (__A,
   3029                  (__v16hi) __O,
   3030                  __M);
   3031 }
   3032 
   3033 static __inline__ __m256i __DEFAULT_FN_ATTRS
   3034 _mm256_maskz_set1_epi16 (__mmask16 __M, short __A)
   3035 {
   3036   return (__m256i) __builtin_ia32_pbroadcastw256_gpr_mask (__A,
   3037                  (__v16hi) _mm256_setzero_si256 (),
   3038                  __M);
   3039 }
   3040 
   3041 static __inline__ __m128i __DEFAULT_FN_ATTRS
   3042 _mm_mask_set1_epi16 (__m128i __O, __mmask8 __M, short __A)
   3043 {
   3044   return (__m128i) __builtin_ia32_pbroadcastw128_gpr_mask (__A,
   3045                  (__v8hi) __O,
   3046                  __M);
   3047 }
   3048 
   3049 static __inline__ __m128i __DEFAULT_FN_ATTRS
   3050 _mm_maskz_set1_epi16 (__mmask8 __M, short __A)
   3051 {
   3052   return (__m128i) __builtin_ia32_pbroadcastw128_gpr_mask (__A,
   3053                  (__v8hi) _mm_setzero_si128 (),
   3054                  __M);
   3055 }
   3056 
   3057 static __inline__ __m128i __DEFAULT_FN_ATTRS
   3058 _mm_permutexvar_epi16 (__m128i __A, __m128i __B)
   3059 {
   3060   return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
   3061                  (__v8hi) __A,
   3062                  (__v8hi) _mm_undefined_si128 (),
   3063                  (__mmask8) -1);
   3064 }
   3065 
   3066 static __inline__ __m128i __DEFAULT_FN_ATTRS
   3067 _mm_maskz_permutexvar_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
   3068 {
   3069   return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
   3070                  (__v8hi) __A,
   3071                  (__v8hi) _mm_setzero_si128 (),
   3072                  (__mmask8) __M);
   3073 }
   3074 
   3075 static __inline__ __m128i __DEFAULT_FN_ATTRS
   3076 _mm_mask_permutexvar_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
   3077           __m128i __B)
   3078 {
   3079   return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
   3080                  (__v8hi) __A,
   3081                  (__v8hi) __W,
   3082                  (__mmask8) __M);
   3083 }
   3084 
   3085 static __inline__ __m256i __DEFAULT_FN_ATTRS
   3086 _mm256_permutexvar_epi16 (__m256i __A, __m256i __B)
   3087 {
   3088   return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
   3089                  (__v16hi) __A,
   3090                  (__v16hi) _mm256_undefined_si256 (),
   3091                  (__mmask16) -1);
   3092 }
   3093 
   3094 static __inline__ __m256i __DEFAULT_FN_ATTRS
   3095 _mm256_maskz_permutexvar_epi16 (__mmask16 __M, __m256i __A,
   3096         __m256i __B)
   3097 {
   3098   return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
   3099                  (__v16hi) __A,
   3100                  (__v16hi) _mm256_setzero_si256 (),
   3101                  (__mmask16) __M);
   3102 }
   3103 
   3104 static __inline__ __m256i __DEFAULT_FN_ATTRS
   3105 _mm256_mask_permutexvar_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
   3106              __m256i __B)
   3107 {
   3108   return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
   3109                  (__v16hi) __A,
   3110                  (__v16hi) __W,
   3111                  (__mmask16) __M);
   3112 }
   3113 
   3114 #define _mm_mask_alignr_epi8(W, U, A, B, N) __extension__ ({ \
   3115   (__m128i)__builtin_ia32_selectb_128((__mmask16)(U), \
   3116                                  (__v16qi)_mm_alignr_epi8((A), (B), (int)(N)), \
   3117                                  (__v16qi)(__m128i)(W)); })
   3118 
   3119 #define _mm_maskz_alignr_epi8(U, A, B, N) __extension__ ({ \
   3120   (__m128i)__builtin_ia32_selectb_128((__mmask16)(U), \
   3121                                  (__v16qi)_mm_alignr_epi8((A), (B), (int)(N)), \
   3122                                  (__v16qi)_mm_setzero_si128()); })
   3123 
   3124 #define _mm256_mask_alignr_epi8(W, U, A, B, N) __extension__ ({ \
   3125   (__m256i)__builtin_ia32_selectb_256((__mmask32)(U), \
   3126                               (__v32qi)_mm256_alignr_epi8((A), (B), (int)(N)), \
   3127                               (__v32qi)(__m256i)(W)); })
   3128 
   3129 #define _mm256_maskz_alignr_epi8(U, A, B, N) __extension__ ({ \
   3130   (__m256i)__builtin_ia32_selectb_256((__mmask32)(U), \
   3131                               (__v32qi)_mm256_alignr_epi8((A), (B), (int)(N)), \
   3132                               (__v32qi)_mm256_setzero_si256()); })
   3133 
   3134 #define _mm_dbsad_epu8(A, B, imm) __extension__ ({ \
   3135   (__m128i)__builtin_ia32_dbpsadbw128_mask((__v16qi)(__m128i)(A), \
   3136                                            (__v16qi)(__m128i)(B), (int)(imm), \
   3137                                            (__v8hi)_mm_setzero_hi(), \
   3138                                            (__mmask8)-1); })
   3139 
   3140 #define _mm_mask_dbsad_epu8(W, U, A, B, imm) __extension__ ({ \
   3141   (__m128i)__builtin_ia32_dbpsadbw128_mask((__v16qi)(__m128i)(A), \
   3142                                            (__v16qi)(__m128i)(B), (int)(imm), \
   3143                                            (__v8hi)(__m128i)(W), \
   3144                                            (__mmask8)(U)); })
   3145 
   3146 #define _mm_maskz_dbsad_epu8(U, A, B, imm) __extension__ ({ \
   3147   (__m128i)__builtin_ia32_dbpsadbw128_mask((__v16qi)(__m128i)(A), \
   3148                                            (__v16qi)(__m128i)(B), (int)(imm), \
   3149                                            (__v8hi)_mm_setzero_si128(), \
   3150                                            (__mmask8)(U)); })
   3151 
   3152 #define _mm256_dbsad_epu8(A, B, imm) __extension__ ({ \
   3153   (__m256i)__builtin_ia32_dbpsadbw256_mask((__v32qi)(__m256i)(A), \
   3154                                            (__v32qi)(__m256i)(B), (int)(imm), \
   3155                                            (__v16hi)_mm256_setzero_si256(), \
   3156                                            (__mmask16)-1); })
   3157 
   3158 #define _mm256_mask_dbsad_epu8(W, U, A, B, imm) __extension__ ({ \
   3159   (__m256i)__builtin_ia32_dbpsadbw256_mask((__v32qi)(__m256i)(A), \
   3160                                            (__v32qi)(__m256i)(B), (int)(imm), \
   3161                                            (__v16hi)(__m256i)(W), \
   3162                                            (__mmask16)(U)); })
   3163 
   3164 #define _mm256_maskz_dbsad_epu8(U, A, B, imm) __extension__ ({ \
   3165   (__m256i)__builtin_ia32_dbpsadbw256_mask((__v32qi)(__m256i)(A), \
   3166                                            (__v32qi)(__m256i)(B), (int)(imm), \
   3167                                            (__v16hi)_mm256_setzero_si256(), \
   3168                                            (__mmask16)(U)); })
   3169 
   3170 #undef __DEFAULT_FN_ATTRS
   3171 
   3172 #endif /* __AVX512VLBWINTRIN_H */
   3173