Home | History | Annotate | Download | only in clang-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 /* Integer compare */
     35 
     36 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
     37 _mm_cmpeq_epi8_mask(__m128i __a, __m128i __b) {
     38   return (__mmask16)__builtin_ia32_pcmpeqb128_mask((__v16qi)__a, (__v16qi)__b,
     39                                                    (__mmask16)-1);
     40 }
     41 
     42 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
     43 _mm_mask_cmpeq_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
     44   return (__mmask16)__builtin_ia32_pcmpeqb128_mask((__v16qi)__a, (__v16qi)__b,
     45                                                    __u);
     46 }
     47 
     48 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
     49 _mm_cmpeq_epu8_mask(__m128i __a, __m128i __b) {
     50   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 0,
     51                                                  (__mmask16)-1);
     52 }
     53 
     54 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
     55 _mm_mask_cmpeq_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
     56   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 0,
     57                                                  __u);
     58 }
     59 
     60 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
     61 _mm256_cmpeq_epi8_mask(__m256i __a, __m256i __b) {
     62   return (__mmask32)__builtin_ia32_pcmpeqb256_mask((__v32qi)__a, (__v32qi)__b,
     63                                                    (__mmask32)-1);
     64 }
     65 
     66 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
     67 _mm256_mask_cmpeq_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
     68   return (__mmask32)__builtin_ia32_pcmpeqb256_mask((__v32qi)__a, (__v32qi)__b,
     69                                                    __u);
     70 }
     71 
     72 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
     73 _mm256_cmpeq_epu8_mask(__m256i __a, __m256i __b) {
     74   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 0,
     75                                                  (__mmask32)-1);
     76 }
     77 
     78 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
     79 _mm256_mask_cmpeq_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
     80   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 0,
     81                                                  __u);
     82 }
     83 
     84 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
     85 _mm_cmpeq_epi16_mask(__m128i __a, __m128i __b) {
     86   return (__mmask8)__builtin_ia32_pcmpeqw128_mask((__v8hi)__a, (__v8hi)__b,
     87                                                   (__mmask8)-1);
     88 }
     89 
     90 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
     91 _mm_mask_cmpeq_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
     92   return (__mmask8)__builtin_ia32_pcmpeqw128_mask((__v8hi)__a, (__v8hi)__b,
     93                                                   __u);
     94 }
     95 
     96 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
     97 _mm_cmpeq_epu16_mask(__m128i __a, __m128i __b) {
     98   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 0,
     99                                                 (__mmask8)-1);
    100 }
    101 
    102 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    103 _mm_mask_cmpeq_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    104   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 0,
    105                                                 __u);
    106 }
    107 
    108 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    109 _mm256_cmpeq_epi16_mask(__m256i __a, __m256i __b) {
    110   return (__mmask16)__builtin_ia32_pcmpeqw256_mask((__v16hi)__a, (__v16hi)__b,
    111                                                    (__mmask16)-1);
    112 }
    113 
    114 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    115 _mm256_mask_cmpeq_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
    116   return (__mmask16)__builtin_ia32_pcmpeqw256_mask((__v16hi)__a, (__v16hi)__b,
    117                                                    __u);
    118 }
    119 
    120 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    121 _mm256_cmpeq_epu16_mask(__m256i __a, __m256i __b) {
    122   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 0,
    123                                                  (__mmask16)-1);
    124 }
    125 
    126 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    127 _mm256_mask_cmpeq_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
    128   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 0,
    129                                                  __u);
    130 }
    131 
    132 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    133 _mm_cmpge_epi8_mask(__m128i __a, __m128i __b) {
    134   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 5,
    135                                                 (__mmask16)-1);
    136 }
    137 
    138 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    139 _mm_mask_cmpge_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
    140   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 5,
    141                                                 __u);
    142 }
    143 
    144 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    145 _mm_cmpge_epu8_mask(__m128i __a, __m128i __b) {
    146   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 5,
    147                                                  (__mmask16)-1);
    148 }
    149 
    150 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    151 _mm_mask_cmpge_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
    152   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 5,
    153                                                  __u);
    154 }
    155 
    156 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    157 _mm256_cmpge_epi8_mask(__m256i __a, __m256i __b) {
    158   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 5,
    159                                                 (__mmask32)-1);
    160 }
    161 
    162 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    163 _mm256_mask_cmpge_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    164   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 5,
    165                                                 __u);
    166 }
    167 
    168 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    169 _mm256_cmpge_epu8_mask(__m256i __a, __m256i __b) {
    170   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 5,
    171                                                  (__mmask32)-1);
    172 }
    173 
    174 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    175 _mm256_mask_cmpge_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    176   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 5,
    177                                                  __u);
    178 }
    179 
    180 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    181 _mm_cmpge_epi16_mask(__m128i __a, __m128i __b) {
    182   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 5,
    183                                                (__mmask8)-1);
    184 }
    185 
    186 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    187 _mm_mask_cmpge_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    188   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 5,
    189                                                __u);
    190 }
    191 
    192 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    193 _mm_cmpge_epu16_mask(__m128i __a, __m128i __b) {
    194   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 5,
    195                                                 (__mmask8)-1);
    196 }
    197 
    198 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    199 _mm_mask_cmpge_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    200   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 5,
    201                                                 __u);
    202 }
    203 
    204 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    205 _mm256_cmpge_epi16_mask(__m256i __a, __m256i __b) {
    206   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 5,
    207                                                 (__mmask16)-1);
    208 }
    209 
    210 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    211 _mm256_mask_cmpge_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
    212   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 5,
    213                                                 __u);
    214 }
    215 
    216 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    217 _mm256_cmpge_epu16_mask(__m256i __a, __m256i __b) {
    218   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 5,
    219                                                  (__mmask16)-1);
    220 }
    221 
    222 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    223 _mm256_mask_cmpge_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
    224   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 5,
    225                                                  __u);
    226 }
    227 
    228 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    229 _mm_cmpgt_epi8_mask(__m128i __a, __m128i __b) {
    230   return (__mmask16)__builtin_ia32_pcmpgtb128_mask((__v16qi)__a, (__v16qi)__b,
    231                                                    (__mmask16)-1);
    232 }
    233 
    234 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    235 _mm_mask_cmpgt_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
    236   return (__mmask16)__builtin_ia32_pcmpgtb128_mask((__v16qi)__a, (__v16qi)__b,
    237                                                    __u);
    238 }
    239 
    240 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    241 _mm_cmpgt_epu8_mask(__m128i __a, __m128i __b) {
    242   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 6,
    243                                                  (__mmask16)-1);
    244 }
    245 
    246 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    247 _mm_mask_cmpgt_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
    248   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 6,
    249                                                  __u);
    250 }
    251 
    252 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    253 _mm256_cmpgt_epi8_mask(__m256i __a, __m256i __b) {
    254   return (__mmask32)__builtin_ia32_pcmpgtb256_mask((__v32qi)__a, (__v32qi)__b,
    255                                                    (__mmask32)-1);
    256 }
    257 
    258 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    259 _mm256_mask_cmpgt_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    260   return (__mmask32)__builtin_ia32_pcmpgtb256_mask((__v32qi)__a, (__v32qi)__b,
    261                                                    __u);
    262 }
    263 
    264 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    265 _mm256_cmpgt_epu8_mask(__m256i __a, __m256i __b) {
    266   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 6,
    267                                                  (__mmask32)-1);
    268 }
    269 
    270 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    271 _mm256_mask_cmpgt_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    272   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 6,
    273                                                  __u);
    274 }
    275 
    276 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    277 _mm_cmpgt_epi16_mask(__m128i __a, __m128i __b) {
    278   return (__mmask8)__builtin_ia32_pcmpgtw128_mask((__v8hi)__a, (__v8hi)__b,
    279                                                   (__mmask8)-1);
    280 }
    281 
    282 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    283 _mm_mask_cmpgt_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    284   return (__mmask8)__builtin_ia32_pcmpgtw128_mask((__v8hi)__a, (__v8hi)__b,
    285                                                   __u);
    286 }
    287 
    288 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    289 _mm_cmpgt_epu16_mask(__m128i __a, __m128i __b) {
    290   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 6,
    291                                                 (__mmask8)-1);
    292 }
    293 
    294 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    295 _mm_mask_cmpgt_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    296   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 6,
    297                                                 __u);
    298 }
    299 
    300 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    301 _mm256_cmpgt_epi16_mask(__m256i __a, __m256i __b) {
    302   return (__mmask16)__builtin_ia32_pcmpgtw256_mask((__v16hi)__a, (__v16hi)__b,
    303                                                    (__mmask16)-1);
    304 }
    305 
    306 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    307 _mm256_mask_cmpgt_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
    308   return (__mmask16)__builtin_ia32_pcmpgtw256_mask((__v16hi)__a, (__v16hi)__b,
    309                                                    __u);
    310 }
    311 
    312 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    313 _mm256_cmpgt_epu16_mask(__m256i __a, __m256i __b) {
    314   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 6,
    315                                                  (__mmask16)-1);
    316 }
    317 
    318 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    319 _mm256_mask_cmpgt_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
    320   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 6,
    321                                                  __u);
    322 }
    323 
    324 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    325 _mm_cmple_epi8_mask(__m128i __a, __m128i __b) {
    326   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 2,
    327                                                 (__mmask16)-1);
    328 }
    329 
    330 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    331 _mm_mask_cmple_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
    332   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 2,
    333                                                 __u);
    334 }
    335 
    336 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    337 _mm_cmple_epu8_mask(__m128i __a, __m128i __b) {
    338   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 2,
    339                                                  (__mmask16)-1);
    340 }
    341 
    342 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    343 _mm_mask_cmple_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
    344   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 2,
    345                                                  __u);
    346 }
    347 
    348 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    349 _mm256_cmple_epi8_mask(__m256i __a, __m256i __b) {
    350   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 2,
    351                                                 (__mmask32)-1);
    352 }
    353 
    354 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    355 _mm256_mask_cmple_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    356   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 2,
    357                                                 __u);
    358 }
    359 
    360 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    361 _mm256_cmple_epu8_mask(__m256i __a, __m256i __b) {
    362   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 2,
    363                                                  (__mmask32)-1);
    364 }
    365 
    366 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    367 _mm256_mask_cmple_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    368   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 2,
    369                                                  __u);
    370 }
    371 
    372 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    373 _mm_cmple_epi16_mask(__m128i __a, __m128i __b) {
    374   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 2,
    375                                                (__mmask8)-1);
    376 }
    377 
    378 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    379 _mm_mask_cmple_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    380   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 2,
    381                                                __u);
    382 }
    383 
    384 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    385 _mm_cmple_epu16_mask(__m128i __a, __m128i __b) {
    386   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 2,
    387                                                 (__mmask8)-1);
    388 }
    389 
    390 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    391 _mm_mask_cmple_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    392   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 2,
    393                                                 __u);
    394 }
    395 
    396 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    397 _mm256_cmple_epi16_mask(__m256i __a, __m256i __b) {
    398   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 2,
    399                                                 (__mmask16)-1);
    400 }
    401 
    402 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    403 _mm256_mask_cmple_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
    404   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 2,
    405                                                 __u);
    406 }
    407 
    408 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    409 _mm256_cmple_epu16_mask(__m256i __a, __m256i __b) {
    410   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 2,
    411                                                  (__mmask16)-1);
    412 }
    413 
    414 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    415 _mm256_mask_cmple_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
    416   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 2,
    417                                                  __u);
    418 }
    419 
    420 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    421 _mm_cmplt_epi8_mask(__m128i __a, __m128i __b) {
    422   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 1,
    423                                                 (__mmask16)-1);
    424 }
    425 
    426 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    427 _mm_mask_cmplt_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
    428   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 1,
    429                                                 __u);
    430 }
    431 
    432 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    433 _mm_cmplt_epu8_mask(__m128i __a, __m128i __b) {
    434   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 1,
    435                                                  (__mmask16)-1);
    436 }
    437 
    438 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    439 _mm_mask_cmplt_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
    440   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 1,
    441                                                  __u);
    442 }
    443 
    444 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    445 _mm256_cmplt_epi8_mask(__m256i __a, __m256i __b) {
    446   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 1,
    447                                                 (__mmask32)-1);
    448 }
    449 
    450 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    451 _mm256_mask_cmplt_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    452   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 1,
    453                                                 __u);
    454 }
    455 
    456 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    457 _mm256_cmplt_epu8_mask(__m256i __a, __m256i __b) {
    458   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 1,
    459                                                  (__mmask32)-1);
    460 }
    461 
    462 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    463 _mm256_mask_cmplt_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    464   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 1,
    465                                                  __u);
    466 }
    467 
    468 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    469 _mm_cmplt_epi16_mask(__m128i __a, __m128i __b) {
    470   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 1,
    471                                                (__mmask8)-1);
    472 }
    473 
    474 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    475 _mm_mask_cmplt_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    476   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 1,
    477                                                __u);
    478 }
    479 
    480 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    481 _mm_cmplt_epu16_mask(__m128i __a, __m128i __b) {
    482   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 1,
    483                                                 (__mmask8)-1);
    484 }
    485 
    486 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    487 _mm_mask_cmplt_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    488   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 1,
    489                                                 __u);
    490 }
    491 
    492 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    493 _mm256_cmplt_epi16_mask(__m256i __a, __m256i __b) {
    494   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 1,
    495                                                 (__mmask16)-1);
    496 }
    497 
    498 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    499 _mm256_mask_cmplt_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
    500   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 1,
    501                                                 __u);
    502 }
    503 
    504 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    505 _mm256_cmplt_epu16_mask(__m256i __a, __m256i __b) {
    506   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 1,
    507                                                  (__mmask16)-1);
    508 }
    509 
    510 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    511 _mm256_mask_cmplt_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
    512   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 1,
    513                                                  __u);
    514 }
    515 
    516 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    517 _mm_cmpneq_epi8_mask(__m128i __a, __m128i __b) {
    518   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 4,
    519                                                 (__mmask16)-1);
    520 }
    521 
    522 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    523 _mm_mask_cmpneq_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
    524   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 4,
    525                                                 __u);
    526 }
    527 
    528 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    529 _mm_cmpneq_epu8_mask(__m128i __a, __m128i __b) {
    530   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 4,
    531                                                  (__mmask16)-1);
    532 }
    533 
    534 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    535 _mm_mask_cmpneq_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
    536   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 4,
    537                                                  __u);
    538 }
    539 
    540 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    541 _mm256_cmpneq_epi8_mask(__m256i __a, __m256i __b) {
    542   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 4,
    543                                                 (__mmask32)-1);
    544 }
    545 
    546 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    547 _mm256_mask_cmpneq_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    548   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 4,
    549                                                 __u);
    550 }
    551 
    552 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    553 _mm256_cmpneq_epu8_mask(__m256i __a, __m256i __b) {
    554   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 4,
    555                                                  (__mmask32)-1);
    556 }
    557 
    558 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
    559 _mm256_mask_cmpneq_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    560   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 4,
    561                                                  __u);
    562 }
    563 
    564 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    565 _mm_cmpneq_epi16_mask(__m128i __a, __m128i __b) {
    566   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 4,
    567                                                (__mmask8)-1);
    568 }
    569 
    570 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    571 _mm_mask_cmpneq_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    572   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 4,
    573                                                __u);
    574 }
    575 
    576 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    577 _mm_cmpneq_epu16_mask(__m128i __a, __m128i __b) {
    578   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 4,
    579                                                 (__mmask8)-1);
    580 }
    581 
    582 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
    583 _mm_mask_cmpneq_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    584   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 4,
    585                                                 __u);
    586 }
    587 
    588 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    589 _mm256_cmpneq_epi16_mask(__m256i __a, __m256i __b) {
    590   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 4,
    591                                                 (__mmask16)-1);
    592 }
    593 
    594 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    595 _mm256_mask_cmpneq_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
    596   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 4,
    597                                                 __u);
    598 }
    599 
    600 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    601 _mm256_cmpneq_epu16_mask(__m256i __a, __m256i __b) {
    602   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 4,
    603                                                  (__mmask16)-1);
    604 }
    605 
    606 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
    607 _mm256_mask_cmpneq_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
    608   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 4,
    609                                                  __u);
    610 }
    611 
    612 static __inline__ __m256i __DEFAULT_FN_ATTRS
    613 _mm256_mask_add_epi8 (__m256i __W, __mmask32 __U, __m256i __A, __m256i __B){
    614   return (__m256i) __builtin_ia32_paddb256_mask ((__v32qi) __A,
    615              (__v32qi) __B,
    616              (__v32qi) __W,
    617              (__mmask32) __U);
    618 }
    619 
    620 static __inline__ __m256i __DEFAULT_FN_ATTRS
    621 _mm256_maskz_add_epi8 (__mmask32 __U, __m256i __A, __m256i __B) {
    622   return (__m256i) __builtin_ia32_paddb256_mask ((__v32qi) __A,
    623              (__v32qi) __B,
    624              (__v32qi)
    625              _mm256_setzero_si256 (),
    626              (__mmask32) __U);
    627 }
    628 
    629 static __inline__ __m256i __DEFAULT_FN_ATTRS
    630 _mm256_mask_add_epi16 (__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
    631   return (__m256i) __builtin_ia32_paddw256_mask ((__v16hi) __A,
    632              (__v16hi) __B,
    633              (__v16hi) __W,
    634              (__mmask16) __U);
    635 }
    636 
    637 static __inline__ __m256i __DEFAULT_FN_ATTRS
    638 _mm256_maskz_add_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
    639   return (__m256i) __builtin_ia32_paddw256_mask ((__v16hi) __A,
    640              (__v16hi) __B,
    641              (__v16hi)
    642              _mm256_setzero_si256 (),
    643              (__mmask16) __U);
    644 }
    645 
    646 static __inline__ __m256i __DEFAULT_FN_ATTRS
    647 _mm256_mask_sub_epi8 (__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
    648   return (__m256i) __builtin_ia32_psubb256_mask ((__v32qi) __A,
    649              (__v32qi) __B,
    650              (__v32qi) __W,
    651              (__mmask32) __U);
    652 }
    653 
    654 static __inline__ __m256i __DEFAULT_FN_ATTRS
    655 _mm256_maskz_sub_epi8 (__mmask32 __U, __m256i __A, __m256i __B) {
    656   return (__m256i) __builtin_ia32_psubb256_mask ((__v32qi) __A,
    657              (__v32qi) __B,
    658              (__v32qi)
    659              _mm256_setzero_si256 (),
    660              (__mmask32) __U);
    661 }
    662 
    663 static __inline__ __m256i __DEFAULT_FN_ATTRS
    664 _mm256_mask_sub_epi16 (__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
    665   return (__m256i) __builtin_ia32_psubw256_mask ((__v16hi) __A,
    666              (__v16hi) __B,
    667              (__v16hi) __W,
    668              (__mmask16) __U);
    669 }
    670 
    671 static __inline__ __m256i __DEFAULT_FN_ATTRS
    672 _mm256_maskz_sub_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
    673   return (__m256i) __builtin_ia32_psubw256_mask ((__v16hi) __A,
    674              (__v16hi) __B,
    675              (__v16hi)
    676              _mm256_setzero_si256 (),
    677              (__mmask16) __U);
    678 }
    679 static __inline__ __m128i __DEFAULT_FN_ATTRS
    680 _mm_mask_add_epi8 (__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
    681   return (__m128i) __builtin_ia32_paddb128_mask ((__v16qi) __A,
    682              (__v16qi) __B,
    683              (__v16qi) __W,
    684              (__mmask16) __U);
    685 }
    686 
    687 static __inline__ __m128i __DEFAULT_FN_ATTRS
    688 _mm_maskz_add_epi8 (__mmask16 __U, __m128i __A, __m128i __B) {
    689   return (__m128i) __builtin_ia32_paddb128_mask ((__v16qi) __A,
    690              (__v16qi) __B,
    691              (__v16qi)
    692              _mm_setzero_si128 (),
    693              (__mmask16) __U);
    694 }
    695 
    696 static __inline__ __m128i __DEFAULT_FN_ATTRS
    697 _mm_mask_add_epi16 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
    698   return (__m128i) __builtin_ia32_paddw128_mask ((__v8hi) __A,
    699              (__v8hi) __B,
    700              (__v8hi) __W,
    701              (__mmask8) __U);
    702 }
    703 
    704 static __inline__ __m128i __DEFAULT_FN_ATTRS
    705 _mm_maskz_add_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
    706   return (__m128i) __builtin_ia32_paddw128_mask ((__v8hi) __A,
    707              (__v8hi) __B,
    708              (__v8hi)
    709              _mm_setzero_si128 (),
    710              (__mmask8) __U);
    711 }
    712 
    713 static __inline__ __m128i __DEFAULT_FN_ATTRS
    714 _mm_mask_sub_epi8 (__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
    715   return (__m128i) __builtin_ia32_psubb128_mask ((__v16qi) __A,
    716              (__v16qi) __B,
    717              (__v16qi) __W,
    718              (__mmask16) __U);
    719 }
    720 
    721 static __inline__ __m128i __DEFAULT_FN_ATTRS
    722 _mm_maskz_sub_epi8 (__mmask16 __U, __m128i __A, __m128i __B) {
    723   return (__m128i) __builtin_ia32_psubb128_mask ((__v16qi) __A,
    724              (__v16qi) __B,
    725              (__v16qi)
    726              _mm_setzero_si128 (),
    727              (__mmask16) __U);
    728 }
    729 
    730 static __inline__ __m128i __DEFAULT_FN_ATTRS
    731 _mm_mask_sub_epi16 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
    732   return (__m128i) __builtin_ia32_psubw128_mask ((__v8hi) __A,
    733              (__v8hi) __B,
    734              (__v8hi) __W,
    735              (__mmask8) __U);
    736 }
    737 
    738 static __inline__ __m128i __DEFAULT_FN_ATTRS
    739 _mm_maskz_sub_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
    740   return (__m128i) __builtin_ia32_psubw128_mask ((__v8hi) __A,
    741              (__v8hi) __B,
    742              (__v8hi)
    743              _mm_setzero_si128 (),
    744              (__mmask8) __U);
    745 }
    746 
    747 static __inline__ __m256i __DEFAULT_FN_ATTRS
    748 _mm256_mask_mullo_epi16 (__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
    749   return (__m256i) __builtin_ia32_pmullw256_mask ((__v16hi) __A,
    750               (__v16hi) __B,
    751               (__v16hi) __W,
    752               (__mmask16) __U);
    753 }
    754 
    755 static __inline__ __m256i __DEFAULT_FN_ATTRS
    756 _mm256_maskz_mullo_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
    757   return (__m256i) __builtin_ia32_pmullw256_mask ((__v16hi) __A,
    758               (__v16hi) __B,
    759               (__v16hi)
    760               _mm256_setzero_si256 (),
    761               (__mmask16) __U);
    762 }
    763 
    764 static __inline__ __m128i __DEFAULT_FN_ATTRS
    765 _mm_mask_mullo_epi16 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
    766   return (__m128i) __builtin_ia32_pmullw128_mask ((__v8hi) __A,
    767               (__v8hi) __B,
    768               (__v8hi) __W,
    769               (__mmask8) __U);
    770 }
    771 
    772 static __inline__ __m128i __DEFAULT_FN_ATTRS
    773 _mm_maskz_mullo_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
    774   return (__m128i) __builtin_ia32_pmullw128_mask ((__v8hi) __A,
    775               (__v8hi) __B,
    776               (__v8hi)
    777               _mm_setzero_si128 (),
    778               (__mmask8) __U);
    779 }
    780 
    781 static __inline__ __m128i __DEFAULT_FN_ATTRS
    782 _mm_mask_blend_epi8 (__mmask16 __U, __m128i __A, __m128i __W)
    783 {
    784   return (__m128i) __builtin_ia32_blendmb_128_mask ((__v16qi) __A,
    785                (__v16qi) __W,
    786                (__mmask16) __U);
    787 }
    788 
    789 static __inline__ __m256i __DEFAULT_FN_ATTRS
    790 _mm256_mask_blend_epi8 (__mmask32 __U, __m256i __A, __m256i __W)
    791 {
    792   return (__m256i) __builtin_ia32_blendmb_256_mask ((__v32qi) __A,
    793                (__v32qi) __W,
    794                (__mmask32) __U);
    795 }
    796 
    797 static __inline__ __m128i __DEFAULT_FN_ATTRS
    798 _mm_mask_blend_epi16 (__mmask8 __U, __m128i __A, __m128i __W)
    799 {
    800   return (__m128i) __builtin_ia32_blendmw_128_mask ((__v8hi) __A,
    801                (__v8hi) __W,
    802                (__mmask8) __U);
    803 }
    804 
    805 static __inline__ __m256i __DEFAULT_FN_ATTRS
    806 _mm256_mask_blend_epi16 (__mmask16 __U, __m256i __A, __m256i __W)
    807 {
    808   return (__m256i) __builtin_ia32_blendmw_256_mask ((__v16hi) __A,
    809                (__v16hi) __W,
    810                (__mmask16) __U);
    811 }
    812 
    813 static __inline__ __m128i __DEFAULT_FN_ATTRS
    814 _mm_mask_abs_epi8 (__m128i __W, __mmask16 __U, __m128i __A)
    815 {
    816   return (__m128i) __builtin_ia32_pabsb128_mask ((__v16qi) __A,
    817                (__v16qi) __W,
    818                (__mmask16) __U);
    819 }
    820 
    821 static __inline__ __m128i __DEFAULT_FN_ATTRS
    822 _mm_maskz_abs_epi8 (__mmask16 __U, __m128i __A)
    823 {
    824   return (__m128i) __builtin_ia32_pabsb128_mask ((__v16qi) __A,
    825                (__v16qi) _mm_setzero_si128 (),
    826                (__mmask16) __U);
    827 }
    828 
    829 static __inline__ __m256i __DEFAULT_FN_ATTRS
    830 _mm256_mask_abs_epi8 (__m256i __W, __mmask32 __U, __m256i __A)
    831 {
    832   return (__m256i) __builtin_ia32_pabsb256_mask ((__v32qi) __A,
    833                (__v32qi) __W,
    834                (__mmask32) __U);
    835 }
    836 
    837 static __inline__ __m256i __DEFAULT_FN_ATTRS
    838 _mm256_maskz_abs_epi8 (__mmask32 __U, __m256i __A)
    839 {
    840   return (__m256i) __builtin_ia32_pabsb256_mask ((__v32qi) __A,
    841                (__v32qi) _mm256_setzero_si256 (),
    842                (__mmask32) __U);
    843 }
    844 
    845 static __inline__ __m128i __DEFAULT_FN_ATTRS
    846 _mm_mask_abs_epi16 (__m128i __W, __mmask8 __U, __m128i __A)
    847 {
    848   return (__m128i) __builtin_ia32_pabsw128_mask ((__v8hi) __A,
    849                (__v8hi) __W,
    850                (__mmask8) __U);
    851 }
    852 
    853 static __inline__ __m128i __DEFAULT_FN_ATTRS
    854 _mm_maskz_abs_epi16 (__mmask8 __U, __m128i __A)
    855 {
    856   return (__m128i) __builtin_ia32_pabsw128_mask ((__v8hi) __A,
    857                (__v8hi) _mm_setzero_si128 (),
    858                (__mmask8) __U);
    859 }
    860 
    861 static __inline__ __m256i __DEFAULT_FN_ATTRS
    862 _mm256_mask_abs_epi16 (__m256i __W, __mmask16 __U, __m256i __A)
    863 {
    864   return (__m256i) __builtin_ia32_pabsw256_mask ((__v16hi) __A,
    865                (__v16hi) __W,
    866                (__mmask16) __U);
    867 }
    868 
    869 static __inline__ __m256i __DEFAULT_FN_ATTRS
    870 _mm256_maskz_abs_epi16 (__mmask16 __U, __m256i __A)
    871 {
    872   return (__m256i) __builtin_ia32_pabsw256_mask ((__v16hi) __A,
    873                (__v16hi) _mm256_setzero_si256 (),
    874                (__mmask16) __U);
    875 }
    876 
    877 static __inline__ __m128i __DEFAULT_FN_ATTRS
    878 _mm_maskz_packs_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
    879 {
    880   return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A,
    881                (__v4si) __B,
    882                (__v8hi) _mm_setzero_si128 (), __M);
    883 }
    884 
    885 static __inline__ __m128i __DEFAULT_FN_ATTRS
    886 _mm_mask_packs_epi32 (__m128i __W, __mmask16 __M, __m128i __A,
    887           __m128i __B)
    888 {
    889   return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A,
    890                (__v4si) __B,
    891                (__v8hi) __W, __M);
    892 }
    893 
    894 static __inline__ __m256i __DEFAULT_FN_ATTRS
    895 _mm256_maskz_packs_epi32 (__mmask16 __M, __m256i __A, __m256i __B)
    896 {
    897   return (__m256i) __builtin_ia32_packssdw256_mask ((__v8si) __A,
    898                (__v8si) __B,
    899                (__v16hi) _mm256_setzero_si256 (),
    900                __M);
    901 }
    902 
    903 static __inline__ __m256i __DEFAULT_FN_ATTRS
    904 _mm256_mask_packs_epi32 (__m256i __W, __mmask16 __M, __m256i __A,
    905        __m256i __B)
    906 {
    907   return (__m256i) __builtin_ia32_packssdw256_mask ((__v8si) __A,
    908                (__v8si) __B,
    909                (__v16hi) __W, __M);
    910 }
    911 
    912 static __inline__ __m128i __DEFAULT_FN_ATTRS
    913 _mm_maskz_packs_epi16 (__mmask16 __M, __m128i __A, __m128i __B)
    914 {
    915   return (__m128i) __builtin_ia32_packsswb128_mask ((__v8hi) __A,
    916                (__v8hi) __B,
    917                (__v16qi) _mm_setzero_si128 (),
    918                __M);
    919 }
    920 
    921 static __inline__ __m128i __DEFAULT_FN_ATTRS
    922 _mm_mask_packs_epi16 (__m128i __W, __mmask16 __M, __m128i __A,
    923           __m128i __B)
    924 {
    925   return (__m128i) __builtin_ia32_packsswb128_mask ((__v8hi) __A,
    926                (__v8hi) __B,
    927                (__v16qi) __W,
    928                __M);
    929 }
    930 
    931 static __inline__ __m256i __DEFAULT_FN_ATTRS
    932 _mm256_maskz_packs_epi16 (__mmask32 __M, __m256i __A, __m256i __B)
    933 {
    934   return (__m256i) __builtin_ia32_packsswb256_mask ((__v16hi) __A,
    935                (__v16hi) __B,
    936                (__v32qi) _mm256_setzero_si256 (),
    937                __M);
    938 }
    939 
    940 static __inline__ __m256i __DEFAULT_FN_ATTRS
    941 _mm256_mask_packs_epi16 (__m256i __W, __mmask32 __M, __m256i __A,
    942        __m256i __B)
    943 {
    944   return (__m256i) __builtin_ia32_packsswb256_mask ((__v16hi) __A,
    945                (__v16hi) __B,
    946                (__v32qi) __W,
    947                __M);
    948 }
    949 
    950 static __inline__ __m128i __DEFAULT_FN_ATTRS
    951 _mm_maskz_packus_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
    952 {
    953   return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A,
    954                (__v4si) __B,
    955                (__v8hi) _mm_setzero_si128 (),
    956                __M);
    957 }
    958 
    959 static __inline__ __m128i __DEFAULT_FN_ATTRS
    960 _mm_mask_packus_epi32 (__m128i __W, __mmask16 __M, __m128i __A,
    961            __m128i __B)
    962 {
    963   return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A,
    964                (__v4si) __B,
    965                (__v8hi) __W, __M);
    966 }
    967 
    968 static __inline__ __m256i __DEFAULT_FN_ATTRS
    969 _mm256_maskz_packus_epi32 (__mmask16 __M, __m256i __A, __m256i __B)
    970 {
    971   return (__m256i) __builtin_ia32_packusdw256_mask ((__v8si) __A,
    972                (__v8si) __B,
    973                (__v16hi) _mm256_setzero_si256 (),
    974                __M);
    975 }
    976 
    977 static __inline__ __m256i __DEFAULT_FN_ATTRS
    978 _mm256_mask_packus_epi32 (__m256i __W, __mmask16 __M, __m256i __A,
    979         __m256i __B)
    980 {
    981   return (__m256i) __builtin_ia32_packusdw256_mask ((__v8si) __A,
    982                (__v8si) __B,
    983                (__v16hi) __W,
    984                __M);
    985 }
    986 
    987 static __inline__ __m128i __DEFAULT_FN_ATTRS
    988 _mm_maskz_packus_epi16 (__mmask16 __M, __m128i __A, __m128i __B)
    989 {
    990   return (__m128i) __builtin_ia32_packuswb128_mask ((__v8hi) __A,
    991                (__v8hi) __B,
    992                (__v16qi) _mm_setzero_si128 (),
    993                __M);
    994 }
    995 
    996 static __inline__ __m128i __DEFAULT_FN_ATTRS
    997 _mm_mask_packus_epi16 (__m128i __W, __mmask16 __M, __m128i __A,
    998            __m128i __B)
    999 {
   1000   return (__m128i) __builtin_ia32_packuswb128_mask ((__v8hi) __A,
   1001                (__v8hi) __B,
   1002                (__v16qi) __W,
   1003                __M);
   1004 }
   1005 
   1006 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1007 _mm256_maskz_packus_epi16 (__mmask32 __M, __m256i __A, __m256i __B)
   1008 {
   1009   return (__m256i) __builtin_ia32_packuswb256_mask ((__v16hi) __A,
   1010                (__v16hi) __B,
   1011                (__v32qi) _mm256_setzero_si256 (),
   1012                __M);
   1013 }
   1014 
   1015 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1016 _mm256_mask_packus_epi16 (__m256i __W, __mmask32 __M, __m256i __A,
   1017         __m256i __B)
   1018 {
   1019   return (__m256i) __builtin_ia32_packuswb256_mask ((__v16hi) __A,
   1020                (__v16hi) __B,
   1021                (__v32qi) __W,
   1022                __M);
   1023 }
   1024 
   1025 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1026 _mm_mask_adds_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
   1027         __m128i __B)
   1028 {
   1029   return (__m128i) __builtin_ia32_paddsb128_mask ((__v16qi) __A,
   1030                (__v16qi) __B,
   1031                (__v16qi) __W,
   1032                (__mmask16) __U);
   1033 }
   1034 
   1035 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1036 _mm_maskz_adds_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
   1037 {
   1038   return (__m128i) __builtin_ia32_paddsb128_mask ((__v16qi) __A,
   1039                (__v16qi) __B,
   1040                (__v16qi) _mm_setzero_si128 (),
   1041                (__mmask16) __U);
   1042 }
   1043 
   1044 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1045 _mm256_mask_adds_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
   1046            __m256i __B)
   1047 {
   1048   return (__m256i) __builtin_ia32_paddsb256_mask ((__v32qi) __A,
   1049                (__v32qi) __B,
   1050                (__v32qi) __W,
   1051                (__mmask32) __U);
   1052 }
   1053 
   1054 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1055 _mm256_maskz_adds_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
   1056 {
   1057   return (__m256i) __builtin_ia32_paddsb256_mask ((__v32qi) __A,
   1058                (__v32qi) __B,
   1059                (__v32qi) _mm256_setzero_si256 (),
   1060                (__mmask32) __U);
   1061 }
   1062 
   1063 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1064 _mm_mask_adds_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
   1065          __m128i __B)
   1066 {
   1067   return (__m128i) __builtin_ia32_paddsw128_mask ((__v8hi) __A,
   1068                (__v8hi) __B,
   1069                (__v8hi) __W,
   1070                (__mmask8) __U);
   1071 }
   1072 
   1073 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1074 _mm_maskz_adds_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
   1075 {
   1076   return (__m128i) __builtin_ia32_paddsw128_mask ((__v8hi) __A,
   1077                (__v8hi) __B,
   1078                (__v8hi) _mm_setzero_si128 (),
   1079                (__mmask8) __U);
   1080 }
   1081 
   1082 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1083 _mm256_mask_adds_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
   1084       __m256i __B)
   1085 {
   1086   return (__m256i) __builtin_ia32_paddsw256_mask ((__v16hi) __A,
   1087                (__v16hi) __B,
   1088                (__v16hi) __W,
   1089                (__mmask16) __U);
   1090 }
   1091 
   1092 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1093 _mm256_maskz_adds_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
   1094 {
   1095   return (__m256i) __builtin_ia32_paddsw256_mask ((__v16hi) __A,
   1096                (__v16hi) __B,
   1097                (__v16hi) _mm256_setzero_si256 (),
   1098                (__mmask16) __U);
   1099 }
   1100 
   1101 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1102 _mm_mask_adds_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
   1103         __m128i __B)
   1104 {
   1105   return (__m128i) __builtin_ia32_paddusb128_mask ((__v16qi) __A,
   1106                (__v16qi) __B,
   1107                (__v16qi) __W,
   1108                (__mmask16) __U);
   1109 }
   1110 
   1111 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1112 _mm_maskz_adds_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
   1113 {
   1114   return (__m128i) __builtin_ia32_paddusb128_mask ((__v16qi) __A,
   1115                (__v16qi) __B,
   1116                (__v16qi) _mm_setzero_si128 (),
   1117                (__mmask16) __U);
   1118 }
   1119 
   1120 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1121 _mm256_mask_adds_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
   1122            __m256i __B)
   1123 {
   1124   return (__m256i) __builtin_ia32_paddusb256_mask ((__v32qi) __A,
   1125                (__v32qi) __B,
   1126                (__v32qi) __W,
   1127                (__mmask32) __U);
   1128 }
   1129 
   1130 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1131 _mm256_maskz_adds_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
   1132 {
   1133   return (__m256i) __builtin_ia32_paddusb256_mask ((__v32qi) __A,
   1134                (__v32qi) __B,
   1135                (__v32qi) _mm256_setzero_si256 (),
   1136                (__mmask32) __U);
   1137 }
   1138 
   1139 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1140 _mm_mask_adds_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
   1141          __m128i __B)
   1142 {
   1143   return (__m128i) __builtin_ia32_paddusw128_mask ((__v8hi) __A,
   1144                (__v8hi) __B,
   1145                (__v8hi) __W,
   1146                (__mmask8) __U);
   1147 }
   1148 
   1149 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1150 _mm_maskz_adds_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
   1151 {
   1152   return (__m128i) __builtin_ia32_paddusw128_mask ((__v8hi) __A,
   1153                (__v8hi) __B,
   1154                (__v8hi) _mm_setzero_si128 (),
   1155                (__mmask8) __U);
   1156 }
   1157 
   1158 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1159 _mm256_mask_adds_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
   1160       __m256i __B)
   1161 {
   1162   return (__m256i) __builtin_ia32_paddusw256_mask ((__v16hi) __A,
   1163                (__v16hi) __B,
   1164                (__v16hi) __W,
   1165                (__mmask16) __U);
   1166 }
   1167 
   1168 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1169 _mm256_maskz_adds_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
   1170 {
   1171   return (__m256i) __builtin_ia32_paddusw256_mask ((__v16hi) __A,
   1172                (__v16hi) __B,
   1173                (__v16hi) _mm256_setzero_si256 (),
   1174                (__mmask16) __U);
   1175 }
   1176 
   1177 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1178 _mm_mask_avg_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
   1179        __m128i __B)
   1180 {
   1181   return (__m128i) __builtin_ia32_pavgb128_mask ((__v16qi) __A,
   1182                (__v16qi) __B,
   1183                (__v16qi) __W,
   1184                (__mmask16) __U);
   1185 }
   1186 
   1187 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1188 _mm_maskz_avg_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
   1189 {
   1190   return (__m128i) __builtin_ia32_pavgb128_mask ((__v16qi) __A,
   1191                (__v16qi) __B,
   1192                (__v16qi) _mm_setzero_si128 (),
   1193                (__mmask16) __U);
   1194 }
   1195 
   1196 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1197 _mm256_mask_avg_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
   1198           __m256i __B)
   1199 {
   1200   return (__m256i) __builtin_ia32_pavgb256_mask ((__v32qi) __A,
   1201                (__v32qi) __B,
   1202                (__v32qi) __W,
   1203                (__mmask32) __U);
   1204 }
   1205 
   1206 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1207 _mm256_maskz_avg_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
   1208 {
   1209   return (__m256i) __builtin_ia32_pavgb256_mask ((__v32qi) __A,
   1210                (__v32qi) __B,
   1211                (__v32qi) _mm256_setzero_si256 (),
   1212                (__mmask32) __U);
   1213 }
   1214 
   1215 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1216 _mm_mask_avg_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
   1217         __m128i __B)
   1218 {
   1219   return (__m128i) __builtin_ia32_pavgw128_mask ((__v8hi) __A,
   1220                (__v8hi) __B,
   1221                (__v8hi) __W,
   1222                (__mmask8) __U);
   1223 }
   1224 
   1225 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1226 _mm_maskz_avg_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
   1227 {
   1228   return (__m128i) __builtin_ia32_pavgw128_mask ((__v8hi) __A,
   1229                (__v8hi) __B,
   1230                (__v8hi) _mm_setzero_si128 (),
   1231                (__mmask8) __U);
   1232 }
   1233 
   1234 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1235 _mm256_mask_avg_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
   1236            __m256i __B)
   1237 {
   1238   return (__m256i) __builtin_ia32_pavgw256_mask ((__v16hi) __A,
   1239                (__v16hi) __B,
   1240                (__v16hi) __W,
   1241                (__mmask16) __U);
   1242 }
   1243 
   1244 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1245 _mm256_maskz_avg_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
   1246 {
   1247   return (__m256i) __builtin_ia32_pavgw256_mask ((__v16hi) __A,
   1248                (__v16hi) __B,
   1249                (__v16hi) _mm256_setzero_si256 (),
   1250                (__mmask16) __U);
   1251 }
   1252 
   1253 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1254 _mm_maskz_max_epi8 (__mmask16 __M, __m128i __A, __m128i __B)
   1255 {
   1256   return (__m128i) __builtin_ia32_pmaxsb128_mask ((__v16qi) __A,
   1257                (__v16qi) __B,
   1258                (__v16qi) _mm_setzero_si128 (),
   1259                (__mmask16) __M);
   1260 }
   1261 
   1262 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1263 _mm_mask_max_epi8 (__m128i __W, __mmask16 __M, __m128i __A,
   1264        __m128i __B)
   1265 {
   1266   return (__m128i) __builtin_ia32_pmaxsb128_mask ((__v16qi) __A,
   1267                (__v16qi) __B,
   1268                (__v16qi) __W,
   1269                (__mmask16) __M);
   1270 }
   1271 
   1272 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1273 _mm256_maskz_max_epi8 (__mmask32 __M, __m256i __A, __m256i __B)
   1274 {
   1275   return (__m256i) __builtin_ia32_pmaxsb256_mask ((__v32qi) __A,
   1276                (__v32qi) __B,
   1277                (__v32qi) _mm256_setzero_si256 (),
   1278                (__mmask32) __M);
   1279 }
   1280 
   1281 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1282 _mm256_mask_max_epi8 (__m256i __W, __mmask32 __M, __m256i __A,
   1283           __m256i __B)
   1284 {
   1285   return (__m256i) __builtin_ia32_pmaxsb256_mask ((__v32qi) __A,
   1286                (__v32qi) __B,
   1287                (__v32qi) __W,
   1288                (__mmask32) __M);
   1289 }
   1290 
   1291 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1292 _mm_maskz_max_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
   1293 {
   1294   return (__m128i) __builtin_ia32_pmaxsw128_mask ((__v8hi) __A,
   1295                (__v8hi) __B,
   1296                (__v8hi) _mm_setzero_si128 (),
   1297                (__mmask8) __M);
   1298 }
   1299 
   1300 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1301 _mm_mask_max_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
   1302         __m128i __B)
   1303 {
   1304   return (__m128i) __builtin_ia32_pmaxsw128_mask ((__v8hi) __A,
   1305                (__v8hi) __B,
   1306                (__v8hi) __W,
   1307                (__mmask8) __M);
   1308 }
   1309 
   1310 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1311 _mm256_maskz_max_epi16 (__mmask16 __M, __m256i __A, __m256i __B)
   1312 {
   1313   return (__m256i) __builtin_ia32_pmaxsw256_mask ((__v16hi) __A,
   1314                (__v16hi) __B,
   1315                (__v16hi) _mm256_setzero_si256 (),
   1316                (__mmask16) __M);
   1317 }
   1318 
   1319 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1320 _mm256_mask_max_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
   1321            __m256i __B)
   1322 {
   1323   return (__m256i) __builtin_ia32_pmaxsw256_mask ((__v16hi) __A,
   1324                (__v16hi) __B,
   1325                (__v16hi) __W,
   1326                (__mmask16) __M);
   1327 }
   1328 
   1329 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1330 _mm_maskz_max_epu8 (__mmask16 __M, __m128i __A, __m128i __B)
   1331 {
   1332   return (__m128i) __builtin_ia32_pmaxub128_mask ((__v16qi) __A,
   1333                (__v16qi) __B,
   1334                (__v16qi) _mm_setzero_si128 (),
   1335                (__mmask16) __M);
   1336 }
   1337 
   1338 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1339 _mm_mask_max_epu8 (__m128i __W, __mmask16 __M, __m128i __A,
   1340        __m128i __B)
   1341 {
   1342   return (__m128i) __builtin_ia32_pmaxub128_mask ((__v16qi) __A,
   1343                (__v16qi) __B,
   1344                (__v16qi) __W,
   1345                (__mmask16) __M);
   1346 }
   1347 
   1348 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1349 _mm256_maskz_max_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
   1350 {
   1351   return (__m256i) __builtin_ia32_pmaxub256_mask ((__v32qi) __A,
   1352                (__v32qi) __B,
   1353                (__v32qi) _mm256_setzero_si256 (),
   1354                (__mmask32) __M);
   1355 }
   1356 
   1357 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1358 _mm256_mask_max_epu8 (__m256i __W, __mmask32 __M, __m256i __A,
   1359           __m256i __B)
   1360 {
   1361   return (__m256i) __builtin_ia32_pmaxub256_mask ((__v32qi) __A,
   1362                (__v32qi) __B,
   1363                (__v32qi) __W,
   1364                (__mmask32) __M);
   1365 }
   1366 
   1367 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1368 _mm_maskz_max_epu16 (__mmask8 __M, __m128i __A, __m128i __B)
   1369 {
   1370   return (__m128i) __builtin_ia32_pmaxuw128_mask ((__v8hi) __A,
   1371                (__v8hi) __B,
   1372                (__v8hi) _mm_setzero_si128 (),
   1373                (__mmask8) __M);
   1374 }
   1375 
   1376 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1377 _mm_mask_max_epu16 (__m128i __W, __mmask8 __M, __m128i __A,
   1378         __m128i __B)
   1379 {
   1380   return (__m128i) __builtin_ia32_pmaxuw128_mask ((__v8hi) __A,
   1381                (__v8hi) __B,
   1382                (__v8hi) __W,
   1383                (__mmask8) __M);
   1384 }
   1385 
   1386 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1387 _mm256_maskz_max_epu16 (__mmask16 __M, __m256i __A, __m256i __B)
   1388 {
   1389   return (__m256i) __builtin_ia32_pmaxuw256_mask ((__v16hi) __A,
   1390                (__v16hi) __B,
   1391                (__v16hi) _mm256_setzero_si256 (),
   1392                (__mmask16) __M);
   1393 }
   1394 
   1395 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1396 _mm256_mask_max_epu16 (__m256i __W, __mmask16 __M, __m256i __A,
   1397            __m256i __B)
   1398 {
   1399   return (__m256i) __builtin_ia32_pmaxuw256_mask ((__v16hi) __A,
   1400                (__v16hi) __B,
   1401                (__v16hi) __W,
   1402                (__mmask16) __M);
   1403 }
   1404 
   1405 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1406 _mm_maskz_min_epi8 (__mmask16 __M, __m128i __A, __m128i __B)
   1407 {
   1408   return (__m128i) __builtin_ia32_pminsb128_mask ((__v16qi) __A,
   1409                (__v16qi) __B,
   1410                (__v16qi) _mm_setzero_si128 (),
   1411                (__mmask16) __M);
   1412 }
   1413 
   1414 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1415 _mm_mask_min_epi8 (__m128i __W, __mmask16 __M, __m128i __A,
   1416        __m128i __B)
   1417 {
   1418   return (__m128i) __builtin_ia32_pminsb128_mask ((__v16qi) __A,
   1419                (__v16qi) __B,
   1420                (__v16qi) __W,
   1421                (__mmask16) __M);
   1422 }
   1423 
   1424 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1425 _mm256_maskz_min_epi8 (__mmask32 __M, __m256i __A, __m256i __B)
   1426 {
   1427   return (__m256i) __builtin_ia32_pminsb256_mask ((__v32qi) __A,
   1428                (__v32qi) __B,
   1429                (__v32qi) _mm256_setzero_si256 (),
   1430                (__mmask32) __M);
   1431 }
   1432 
   1433 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1434 _mm256_mask_min_epi8 (__m256i __W, __mmask32 __M, __m256i __A,
   1435           __m256i __B)
   1436 {
   1437   return (__m256i) __builtin_ia32_pminsb256_mask ((__v32qi) __A,
   1438                (__v32qi) __B,
   1439                (__v32qi) __W,
   1440                (__mmask32) __M);
   1441 }
   1442 
   1443 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1444 _mm_maskz_min_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
   1445 {
   1446   return (__m128i) __builtin_ia32_pminsw128_mask ((__v8hi) __A,
   1447                (__v8hi) __B,
   1448                (__v8hi) _mm_setzero_si128 (),
   1449                (__mmask8) __M);
   1450 }
   1451 
   1452 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1453 _mm_mask_min_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
   1454         __m128i __B)
   1455 {
   1456   return (__m128i) __builtin_ia32_pminsw128_mask ((__v8hi) __A,
   1457                (__v8hi) __B,
   1458                (__v8hi) __W,
   1459                (__mmask8) __M);
   1460 }
   1461 
   1462 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1463 _mm256_maskz_min_epi16 (__mmask16 __M, __m256i __A, __m256i __B)
   1464 {
   1465   return (__m256i) __builtin_ia32_pminsw256_mask ((__v16hi) __A,
   1466                (__v16hi) __B,
   1467                (__v16hi) _mm256_setzero_si256 (),
   1468                (__mmask16) __M);
   1469 }
   1470 
   1471 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1472 _mm256_mask_min_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
   1473            __m256i __B)
   1474 {
   1475   return (__m256i) __builtin_ia32_pminsw256_mask ((__v16hi) __A,
   1476                (__v16hi) __B,
   1477                (__v16hi) __W,
   1478                (__mmask16) __M);
   1479 }
   1480 
   1481 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1482 _mm_maskz_min_epu8 (__mmask16 __M, __m128i __A, __m128i __B)
   1483 {
   1484   return (__m128i) __builtin_ia32_pminub128_mask ((__v16qi) __A,
   1485                (__v16qi) __B,
   1486                (__v16qi) _mm_setzero_si128 (),
   1487                (__mmask16) __M);
   1488 }
   1489 
   1490 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1491 _mm_mask_min_epu8 (__m128i __W, __mmask16 __M, __m128i __A,
   1492        __m128i __B)
   1493 {
   1494   return (__m128i) __builtin_ia32_pminub128_mask ((__v16qi) __A,
   1495                (__v16qi) __B,
   1496                (__v16qi) __W,
   1497                (__mmask16) __M);
   1498 }
   1499 
   1500 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1501 _mm256_maskz_min_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
   1502 {
   1503   return (__m256i) __builtin_ia32_pminub256_mask ((__v32qi) __A,
   1504                (__v32qi) __B,
   1505                (__v32qi) _mm256_setzero_si256 (),
   1506                (__mmask32) __M);
   1507 }
   1508 
   1509 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1510 _mm256_mask_min_epu8 (__m256i __W, __mmask32 __M, __m256i __A,
   1511           __m256i __B)
   1512 {
   1513   return (__m256i) __builtin_ia32_pminub256_mask ((__v32qi) __A,
   1514                (__v32qi) __B,
   1515                (__v32qi) __W,
   1516                (__mmask32) __M);
   1517 }
   1518 
   1519 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1520 _mm_maskz_min_epu16 (__mmask8 __M, __m128i __A, __m128i __B)
   1521 {
   1522   return (__m128i) __builtin_ia32_pminuw128_mask ((__v8hi) __A,
   1523                (__v8hi) __B,
   1524                (__v8hi) _mm_setzero_si128 (),
   1525                (__mmask8) __M);
   1526 }
   1527 
   1528 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1529 _mm_mask_min_epu16 (__m128i __W, __mmask8 __M, __m128i __A,
   1530         __m128i __B)
   1531 {
   1532   return (__m128i) __builtin_ia32_pminuw128_mask ((__v8hi) __A,
   1533                (__v8hi) __B,
   1534                (__v8hi) __W,
   1535                (__mmask8) __M);
   1536 }
   1537 
   1538 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1539 _mm256_maskz_min_epu16 (__mmask16 __M, __m256i __A, __m256i __B)
   1540 {
   1541   return (__m256i) __builtin_ia32_pminuw256_mask ((__v16hi) __A,
   1542                (__v16hi) __B,
   1543                (__v16hi) _mm256_setzero_si256 (),
   1544                (__mmask16) __M);
   1545 }
   1546 
   1547 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1548 _mm256_mask_min_epu16 (__m256i __W, __mmask16 __M, __m256i __A,
   1549            __m256i __B)
   1550 {
   1551   return (__m256i) __builtin_ia32_pminuw256_mask ((__v16hi) __A,
   1552                (__v16hi) __B,
   1553                (__v16hi) __W,
   1554                (__mmask16) __M);
   1555 }
   1556 
   1557 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1558 _mm_mask_shuffle_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
   1559            __m128i __B)
   1560 {
   1561   return (__m128i) __builtin_ia32_pshufb128_mask ((__v16qi) __A,
   1562                (__v16qi) __B,
   1563                (__v16qi) __W,
   1564                (__mmask16) __U);
   1565 }
   1566 
   1567 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1568 _mm_maskz_shuffle_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
   1569 {
   1570   return (__m128i) __builtin_ia32_pshufb128_mask ((__v16qi) __A,
   1571                (__v16qi) __B,
   1572                (__v16qi) _mm_setzero_si128 (),
   1573                (__mmask16) __U);
   1574 }
   1575 
   1576 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1577 _mm256_mask_shuffle_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
   1578         __m256i __B)
   1579 {
   1580   return (__m256i) __builtin_ia32_pshufb256_mask ((__v32qi) __A,
   1581                (__v32qi) __B,
   1582                (__v32qi) __W,
   1583                (__mmask32) __U);
   1584 }
   1585 
   1586 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1587 _mm256_maskz_shuffle_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
   1588 {
   1589   return (__m256i) __builtin_ia32_pshufb256_mask ((__v32qi) __A,
   1590                (__v32qi) __B,
   1591                (__v32qi) _mm256_setzero_si256 (),
   1592                (__mmask32) __U);
   1593 }
   1594 
   1595 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1596 _mm_mask_subs_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
   1597         __m128i __B)
   1598 {
   1599   return (__m128i) __builtin_ia32_psubsb128_mask ((__v16qi) __A,
   1600                (__v16qi) __B,
   1601                (__v16qi) __W,
   1602                (__mmask16) __U);
   1603 }
   1604 
   1605 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1606 _mm_maskz_subs_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
   1607 {
   1608   return (__m128i) __builtin_ia32_psubsb128_mask ((__v16qi) __A,
   1609                (__v16qi) __B,
   1610                (__v16qi) _mm_setzero_si128 (),
   1611                (__mmask16) __U);
   1612 }
   1613 
   1614 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1615 _mm256_mask_subs_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
   1616            __m256i __B)
   1617 {
   1618   return (__m256i) __builtin_ia32_psubsb256_mask ((__v32qi) __A,
   1619                (__v32qi) __B,
   1620                (__v32qi) __W,
   1621                (__mmask32) __U);
   1622 }
   1623 
   1624 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1625 _mm256_maskz_subs_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
   1626 {
   1627   return (__m256i) __builtin_ia32_psubsb256_mask ((__v32qi) __A,
   1628                (__v32qi) __B,
   1629                (__v32qi) _mm256_setzero_si256 (),
   1630                (__mmask32) __U);
   1631 }
   1632 
   1633 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1634 _mm_mask_subs_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
   1635          __m128i __B)
   1636 {
   1637   return (__m128i) __builtin_ia32_psubsw128_mask ((__v8hi) __A,
   1638                (__v8hi) __B,
   1639                (__v8hi) __W,
   1640                (__mmask8) __U);
   1641 }
   1642 
   1643 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1644 _mm_maskz_subs_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
   1645 {
   1646   return (__m128i) __builtin_ia32_psubsw128_mask ((__v8hi) __A,
   1647                (__v8hi) __B,
   1648                (__v8hi) _mm_setzero_si128 (),
   1649                (__mmask8) __U);
   1650 }
   1651 
   1652 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1653 _mm256_mask_subs_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
   1654       __m256i __B)
   1655 {
   1656   return (__m256i) __builtin_ia32_psubsw256_mask ((__v16hi) __A,
   1657                (__v16hi) __B,
   1658                (__v16hi) __W,
   1659                (__mmask16) __U);
   1660 }
   1661 
   1662 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1663 _mm256_maskz_subs_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
   1664 {
   1665   return (__m256i) __builtin_ia32_psubsw256_mask ((__v16hi) __A,
   1666                (__v16hi) __B,
   1667                (__v16hi) _mm256_setzero_si256 (),
   1668                (__mmask16) __U);
   1669 }
   1670 
   1671 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1672 _mm_mask_subs_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
   1673         __m128i __B)
   1674 {
   1675   return (__m128i) __builtin_ia32_psubusb128_mask ((__v16qi) __A,
   1676                (__v16qi) __B,
   1677                (__v16qi) __W,
   1678                (__mmask16) __U);
   1679 }
   1680 
   1681 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1682 _mm_maskz_subs_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
   1683 {
   1684   return (__m128i) __builtin_ia32_psubusb128_mask ((__v16qi) __A,
   1685                (__v16qi) __B,
   1686                (__v16qi) _mm_setzero_si128 (),
   1687                (__mmask16) __U);
   1688 }
   1689 
   1690 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1691 _mm256_mask_subs_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
   1692            __m256i __B)
   1693 {
   1694   return (__m256i) __builtin_ia32_psubusb256_mask ((__v32qi) __A,
   1695                (__v32qi) __B,
   1696                (__v32qi) __W,
   1697                (__mmask32) __U);
   1698 }
   1699 
   1700 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1701 _mm256_maskz_subs_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
   1702 {
   1703   return (__m256i) __builtin_ia32_psubusb256_mask ((__v32qi) __A,
   1704                (__v32qi) __B,
   1705                (__v32qi) _mm256_setzero_si256 (),
   1706                (__mmask32) __U);
   1707 }
   1708 
   1709 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1710 _mm_mask_subs_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
   1711          __m128i __B)
   1712 {
   1713   return (__m128i) __builtin_ia32_psubusw128_mask ((__v8hi) __A,
   1714                (__v8hi) __B,
   1715                (__v8hi) __W,
   1716                (__mmask8) __U);
   1717 }
   1718 
   1719 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1720 _mm_maskz_subs_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
   1721 {
   1722   return (__m128i) __builtin_ia32_psubusw128_mask ((__v8hi) __A,
   1723                (__v8hi) __B,
   1724                (__v8hi) _mm_setzero_si128 (),
   1725                (__mmask8) __U);
   1726 }
   1727 
   1728 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1729 _mm256_mask_subs_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
   1730       __m256i __B)
   1731 {
   1732   return (__m256i) __builtin_ia32_psubusw256_mask ((__v16hi) __A,
   1733                (__v16hi) __B,
   1734                (__v16hi) __W,
   1735                (__mmask16) __U);
   1736 }
   1737 
   1738 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1739 _mm256_maskz_subs_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
   1740 {
   1741   return (__m256i) __builtin_ia32_psubusw256_mask ((__v16hi) __A,
   1742                (__v16hi) __B,
   1743                (__v16hi) _mm256_setzero_si256 (),
   1744                (__mmask16) __U);
   1745 }
   1746 
   1747 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1748 _mm_mask2_permutex2var_epi16 (__m128i __A, __m128i __I, __mmask8 __U,
   1749             __m128i __B)
   1750 {
   1751   return (__m128i) __builtin_ia32_vpermi2varhi128_mask ((__v8hi) __A,
   1752                (__v8hi) __I /* idx */ ,
   1753                (__v8hi) __B,
   1754                (__mmask8) __U);
   1755 }
   1756 
   1757 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1758 _mm256_mask2_permutex2var_epi16 (__m256i __A, __m256i __I,
   1759          __mmask16 __U, __m256i __B)
   1760 {
   1761   return (__m256i) __builtin_ia32_vpermi2varhi256_mask ((__v16hi) __A,
   1762                (__v16hi) __I /* idx */ ,
   1763                (__v16hi) __B,
   1764                (__mmask16) __U);
   1765 }
   1766 
   1767 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1768 _mm_permutex2var_epi16 (__m128i __A, __m128i __I, __m128i __B)
   1769 {
   1770   return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I/* idx */,
   1771                (__v8hi) __A,
   1772                (__v8hi) __B,
   1773                (__mmask8) -1);
   1774 }
   1775 
   1776 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1777 _mm_mask_permutex2var_epi16 (__m128i __A, __mmask8 __U, __m128i __I,
   1778            __m128i __B)
   1779 {
   1780   return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I/* idx */,
   1781                (__v8hi) __A,
   1782                (__v8hi) __B,
   1783                (__mmask8) __U);
   1784 }
   1785 
   1786 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1787 _mm_maskz_permutex2var_epi16 (__mmask8 __U, __m128i __A, __m128i __I,
   1788             __m128i __B)
   1789 {
   1790   return (__m128i) __builtin_ia32_vpermt2varhi128_maskz ((__v8hi) __I/* idx */,
   1791                (__v8hi) __A,
   1792                (__v8hi) __B,
   1793                (__mmask8) __U);
   1794 }
   1795 
   1796 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1797 _mm256_permutex2var_epi16 (__m256i __A, __m256i __I, __m256i __B)
   1798 {
   1799   return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I/* idx */,
   1800                (__v16hi) __A,
   1801                (__v16hi) __B,
   1802                (__mmask16) -1);
   1803 }
   1804 
   1805 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1806 _mm256_mask_permutex2var_epi16 (__m256i __A, __mmask16 __U,
   1807         __m256i __I, __m256i __B)
   1808 {
   1809   return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I/* idx */,
   1810                (__v16hi) __A,
   1811                (__v16hi) __B,
   1812                (__mmask16) __U);
   1813 }
   1814 
   1815 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1816 _mm256_maskz_permutex2var_epi16 (__mmask16 __U, __m256i __A,
   1817          __m256i __I, __m256i __B)
   1818 {
   1819   return (__m256i) __builtin_ia32_vpermt2varhi256_maskz ((__v16hi) __I/* idx */,
   1820                (__v16hi) __A,
   1821                (__v16hi) __B,
   1822                (__mmask16) __U);
   1823 }
   1824 
   1825 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1826 _mm_mask_maddubs_epi16 (__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
   1827   return (__m128i) __builtin_ia32_pmaddubsw128_mask ((__v16qi) __X,
   1828                (__v16qi) __Y,
   1829                (__v8hi) __W,
   1830                (__mmask8) __U);
   1831 }
   1832 
   1833 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1834 _mm_maskz_maddubs_epi16 (__mmask8 __U, __m128i __X, __m128i __Y) {
   1835   return (__m128i) __builtin_ia32_pmaddubsw128_mask ((__v16qi) __X,
   1836                (__v16qi) __Y,
   1837               (__v8hi) _mm_setzero_si128(),
   1838                (__mmask8) __U);
   1839 }
   1840 
   1841 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1842 _mm256_mask_maddubs_epi16 (__m256i __W, __mmask16 __U, __m256i __X,
   1843          __m256i __Y) {
   1844   return (__m256i) __builtin_ia32_pmaddubsw256_mask ((__v32qi) __X,
   1845                (__v32qi) __Y,
   1846                (__v16hi) __W,
   1847                (__mmask16) __U);
   1848 }
   1849 
   1850 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1851 _mm256_maskz_maddubs_epi16 (__mmask16 __U, __m256i __X, __m256i __Y) {
   1852   return (__m256i) __builtin_ia32_pmaddubsw256_mask ((__v32qi) __X,
   1853                (__v32qi) __Y,
   1854                (__v16hi) _mm256_setzero_si256(),
   1855                (__mmask16) __U);
   1856 }
   1857 
   1858 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1859 _mm_mask_madd_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
   1860          __m128i __B) {
   1861   return (__m128i) __builtin_ia32_pmaddwd128_mask ((__v8hi) __A,
   1862                (__v8hi) __B,
   1863                (__v4si) __W,
   1864                (__mmask8) __U);
   1865 }
   1866 
   1867 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1868 _mm_maskz_madd_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
   1869   return (__m128i) __builtin_ia32_pmaddwd128_mask ((__v8hi) __A,
   1870                (__v8hi) __B,
   1871                (__v4si) _mm_setzero_si128(),
   1872                (__mmask8) __U);
   1873 }
   1874 
   1875 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1876 _mm256_mask_madd_epi16 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
   1877   return (__m256i) __builtin_ia32_pmaddwd256_mask ((__v16hi) __A,
   1878                (__v16hi) __B,
   1879                (__v8si) __W,
   1880                (__mmask8) __U);
   1881 }
   1882 
   1883 static __inline__ __m256i __DEFAULT_FN_ATTRS
   1884 _mm256_maskz_madd_epi16 (__mmask8 __U, __m256i __A, __m256i __B) {
   1885   return (__m256i) __builtin_ia32_pmaddwd256_mask ((__v16hi) __A,
   1886                (__v16hi) __B,
   1887                (__v8si) _mm256_setzero_si256(),
   1888                (__mmask8) __U);
   1889 }
   1890 
   1891 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1892 _mm_cvtsepi16_epi8 (__m128i __A) {
   1893   return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
   1894                (__v16qi) _mm_setzero_si128(),
   1895                (__mmask8) -1);
   1896 }
   1897 
   1898 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1899 _mm_mask_cvtsepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) {
   1900   return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
   1901                (__v16qi) __O,
   1902                 __M);
   1903 }
   1904 
   1905 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1906 _mm_maskz_cvtsepi16_epi8 (__mmask8 __M, __m128i __A) {
   1907   return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
   1908                (__v16qi) _mm_setzero_si128(),
   1909                __M);
   1910 }
   1911 
   1912 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1913 _mm256_cvtsepi16_epi8 (__m256i __A) {
   1914   return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
   1915                (__v16qi) _mm_setzero_si128(),
   1916                (__mmask16) -1);
   1917 }
   1918 
   1919 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1920 _mm256_mask_cvtsepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) {
   1921   return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
   1922                (__v16qi) __O,
   1923                 __M);
   1924 }
   1925 
   1926 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1927 _mm256_maskz_cvtsepi16_epi8 (__mmask16 __M, __m256i __A) {
   1928   return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
   1929                (__v16qi) _mm_setzero_si128(),
   1930                __M);
   1931 }
   1932 
   1933 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1934 _mm_cvtusepi16_epi8 (__m128i __A) {
   1935   return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
   1936                 (__v16qi) _mm_setzero_si128(),
   1937                 (__mmask8) -1);
   1938 }
   1939 
   1940 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1941 _mm_mask_cvtusepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) {
   1942   return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
   1943                 (__v16qi) __O,
   1944                 __M);
   1945 }
   1946 
   1947 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1948 _mm_maskz_cvtusepi16_epi8 (__mmask8 __M, __m128i __A) {
   1949   return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
   1950                 (__v16qi) _mm_setzero_si128(),
   1951                 __M);
   1952 }
   1953 
   1954 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1955 _mm256_cvtusepi16_epi8 (__m256i __A) {
   1956   return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
   1957                 (__v16qi) _mm_setzero_si128(),
   1958                 (__mmask16) -1);
   1959 }
   1960 
   1961 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1962 _mm256_mask_cvtusepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) {
   1963   return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
   1964                 (__v16qi) __O,
   1965                 __M);
   1966 }
   1967 
   1968 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1969 _mm256_maskz_cvtusepi16_epi8 (__mmask16 __M, __m256i __A) {
   1970   return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
   1971                 (__v16qi) _mm_setzero_si128(),
   1972                 __M);
   1973 }
   1974 
   1975 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1976 _mm_cvtepi16_epi8 (__m128i __A) {
   1977 
   1978   return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
   1979                (__v16qi) _mm_setzero_si128(),
   1980                (__mmask8) -1);
   1981 }
   1982 
   1983 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1984 _mm_mask_cvtepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) {
   1985   return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
   1986                (__v16qi) __O,
   1987                __M);
   1988 }
   1989 
   1990 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1991 _mm_maskz_cvtepi16_epi8 (__mmask8 __M, __m128i __A) {
   1992   return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
   1993                (__v16qi) _mm_setzero_si128(),
   1994                __M);
   1995 }
   1996 
   1997 static __inline__ __m128i __DEFAULT_FN_ATTRS
   1998 _mm256_cvtepi16_epi8 (__m256i __A) {
   1999   return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
   2000                (__v16qi) _mm_setzero_si128(),
   2001                (__mmask16) -1);
   2002 }
   2003 
   2004 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2005 _mm256_mask_cvtepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) {
   2006   return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
   2007                (__v16qi) __O,
   2008                __M);
   2009 }
   2010 
   2011 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2012 _mm256_maskz_cvtepi16_epi8 (__mmask16 __M, __m256i __A) {
   2013   return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
   2014                (__v16qi) _mm_setzero_si128(),
   2015                __M);
   2016 }
   2017 
   2018 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2019 _mm_mask_mulhrs_epi16 (__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
   2020   return (__m128i) __builtin_ia32_pmulhrsw128_mask ((__v8hi) __X,
   2021                (__v8hi) __Y,
   2022                (__v8hi) __W,
   2023                (__mmask8) __U);
   2024 }
   2025 
   2026 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2027 _mm_maskz_mulhrs_epi16 (__mmask8 __U, __m128i __X, __m128i __Y) {
   2028   return (__m128i) __builtin_ia32_pmulhrsw128_mask ((__v8hi) __X,
   2029                (__v8hi) __Y,
   2030               (__v8hi) _mm_setzero_si128(),
   2031                (__mmask8) __U);
   2032 }
   2033 
   2034 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2035 _mm256_mask_mulhrs_epi16 (__m256i __W, __mmask16 __U, __m256i __X, __m256i __Y) {
   2036   return (__m256i) __builtin_ia32_pmulhrsw256_mask ((__v16hi) __X,
   2037                (__v16hi) __Y,
   2038                (__v16hi) __W,
   2039                (__mmask16) __U);
   2040 }
   2041 
   2042 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2043 _mm256_maskz_mulhrs_epi16 (__mmask16 __U, __m256i __X, __m256i __Y) {
   2044   return (__m256i) __builtin_ia32_pmulhrsw256_mask ((__v16hi) __X,
   2045                (__v16hi) __Y,
   2046                (__v16hi) _mm256_setzero_si256(),
   2047                (__mmask16) __U);
   2048 }
   2049 
   2050 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2051 _mm_mask_mulhi_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
   2052           __m128i __B) {
   2053   return (__m128i) __builtin_ia32_pmulhuw128_mask ((__v8hi) __A,
   2054                (__v8hi) __B,
   2055                (__v8hi) __W,
   2056                (__mmask8) __U);
   2057 }
   2058 
   2059 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2060 _mm_maskz_mulhi_epu16 (__mmask8 __U, __m128i __A, __m128i __B) {
   2061   return (__m128i) __builtin_ia32_pmulhuw128_mask ((__v8hi) __A,
   2062                (__v8hi) __B,
   2063               (__v8hi) _mm_setzero_si128(),
   2064                (__mmask8) __U);
   2065 }
   2066 
   2067 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2068 _mm256_mask_mulhi_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
   2069        __m256i __B) {
   2070   return (__m256i) __builtin_ia32_pmulhuw256_mask ((__v16hi) __A,
   2071                (__v16hi) __B,
   2072                (__v16hi) __W,
   2073                (__mmask16) __U);
   2074 }
   2075 
   2076 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2077 _mm256_maskz_mulhi_epu16 (__mmask16 __U, __m256i __A, __m256i __B) {
   2078   return (__m256i) __builtin_ia32_pmulhuw256_mask ((__v16hi) __A,
   2079                (__v16hi) __B,
   2080                (__v16hi) _mm256_setzero_si256(),
   2081                (__mmask16) __U);
   2082 }
   2083 
   2084 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2085 _mm_mask_mulhi_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
   2086           __m128i __B) {
   2087   return (__m128i) __builtin_ia32_pmulhw128_mask ((__v8hi) __A,
   2088                (__v8hi) __B,
   2089                (__v8hi) __W,
   2090                (__mmask8) __U);
   2091 }
   2092 
   2093 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2094 _mm_maskz_mulhi_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
   2095   return (__m128i) __builtin_ia32_pmulhw128_mask ((__v8hi) __A,
   2096                (__v8hi) __B,
   2097               (__v8hi) _mm_setzero_si128(),
   2098                (__mmask8) __U);
   2099 }
   2100 
   2101 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2102 _mm256_mask_mulhi_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
   2103        __m256i __B) {
   2104   return (__m256i) __builtin_ia32_pmulhw256_mask ((__v16hi) __A,
   2105                (__v16hi) __B,
   2106                (__v16hi) __W,
   2107                (__mmask16) __U);
   2108 }
   2109 
   2110 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2111 _mm256_maskz_mulhi_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
   2112   return (__m256i) __builtin_ia32_pmulhw256_mask ((__v16hi) __A,
   2113                (__v16hi) __B,
   2114                (__v16hi) _mm256_setzero_si256(),
   2115                (__mmask16) __U);
   2116 }
   2117 
   2118 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2119 _mm_mask_unpackhi_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
   2120       __m128i __B) {
   2121   return (__m128i) __builtin_ia32_punpckhbw128_mask ((__v16qi) __A,
   2122                (__v16qi) __B,
   2123                (__v16qi) __W,
   2124                (__mmask16) __U);
   2125 }
   2126 
   2127 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2128 _mm_maskz_unpackhi_epi8 (__mmask16 __U, __m128i __A, __m128i __B) {
   2129   return (__m128i) __builtin_ia32_punpckhbw128_mask ((__v16qi) __A,
   2130                (__v16qi) __B,
   2131                (__v16qi) _mm_setzero_si128(),
   2132                (__mmask16) __U);
   2133 }
   2134 
   2135 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2136 _mm256_mask_unpackhi_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
   2137          __m256i __B) {
   2138   return (__m256i) __builtin_ia32_punpckhbw256_mask ((__v32qi) __A,
   2139                (__v32qi) __B,
   2140                (__v32qi) __W,
   2141                (__mmask32) __U);
   2142 }
   2143 
   2144 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2145 _mm256_maskz_unpackhi_epi8 (__mmask32 __U, __m256i __A, __m256i __B) {
   2146   return (__m256i) __builtin_ia32_punpckhbw256_mask ((__v32qi) __A,
   2147                (__v32qi) __B,
   2148                (__v32qi) _mm256_setzero_si256(),
   2149                (__mmask32) __U);
   2150 }
   2151 
   2152 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2153 _mm_mask_unpackhi_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
   2154        __m128i __B) {
   2155   return (__m128i) __builtin_ia32_punpckhwd128_mask ((__v8hi) __A,
   2156                (__v8hi) __B,
   2157                (__v8hi) __W,
   2158                (__mmask8) __U);
   2159 }
   2160 
   2161 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2162 _mm_maskz_unpackhi_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
   2163   return (__m128i) __builtin_ia32_punpckhwd128_mask ((__v8hi) __A,
   2164                (__v8hi) __B,
   2165                (__v8hi) _mm_setzero_si128(),
   2166                (__mmask8) __U);
   2167 }
   2168 
   2169 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2170 _mm256_mask_unpackhi_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
   2171           __m256i __B) {
   2172   return (__m256i) __builtin_ia32_punpckhwd256_mask ((__v16hi) __A,
   2173                (__v16hi) __B,
   2174                (__v16hi) __W,
   2175                (__mmask16) __U);
   2176 }
   2177 
   2178 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2179 _mm256_maskz_unpackhi_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
   2180   return (__m256i) __builtin_ia32_punpckhwd256_mask ((__v16hi) __A,
   2181                (__v16hi) __B,
   2182                (__v16hi) _mm256_setzero_si256(),
   2183                (__mmask16) __U);
   2184 }
   2185 
   2186 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2187 _mm_mask_unpacklo_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
   2188       __m128i __B) {
   2189   return (__m128i) __builtin_ia32_punpcklbw128_mask ((__v16qi) __A,
   2190                (__v16qi) __B,
   2191                (__v16qi) __W,
   2192                (__mmask16) __U);
   2193 }
   2194 
   2195 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2196 _mm_maskz_unpacklo_epi8 (__mmask16 __U, __m128i __A, __m128i __B) {
   2197   return (__m128i) __builtin_ia32_punpcklbw128_mask ((__v16qi) __A,
   2198                (__v16qi) __B,
   2199                (__v16qi) _mm_setzero_si128(),
   2200                (__mmask16) __U);
   2201 }
   2202 
   2203 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2204 _mm256_mask_unpacklo_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
   2205          __m256i __B) {
   2206   return (__m256i) __builtin_ia32_punpcklbw256_mask ((__v32qi) __A,
   2207                (__v32qi) __B,
   2208                (__v32qi) __W,
   2209                (__mmask32) __U);
   2210 }
   2211 
   2212 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2213 _mm256_maskz_unpacklo_epi8 (__mmask32 __U, __m256i __A, __m256i __B) {
   2214   return (__m256i) __builtin_ia32_punpcklbw256_mask ((__v32qi) __A,
   2215                (__v32qi) __B,
   2216                (__v32qi) _mm256_setzero_si256(),
   2217                (__mmask32) __U);
   2218 }
   2219 
   2220 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2221 _mm_mask_unpacklo_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
   2222        __m128i __B) {
   2223   return (__m128i) __builtin_ia32_punpcklwd128_mask ((__v8hi) __A,
   2224                (__v8hi) __B,
   2225                (__v8hi) __W,
   2226                (__mmask8) __U);
   2227 }
   2228 
   2229 static __inline__ __m128i __DEFAULT_FN_ATTRS
   2230 _mm_maskz_unpacklo_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
   2231   return (__m128i) __builtin_ia32_punpcklwd128_mask ((__v8hi) __A,
   2232                (__v8hi) __B,
   2233                (__v8hi) _mm_setzero_si128(),
   2234                (__mmask8) __U);
   2235 }
   2236 
   2237 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2238 _mm256_mask_unpacklo_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
   2239           __m256i __B) {
   2240   return (__m256i) __builtin_ia32_punpcklwd256_mask ((__v16hi) __A,
   2241                (__v16hi) __B,
   2242                (__v16hi) __W,
   2243                (__mmask16) __U);
   2244 }
   2245 
   2246 static __inline__ __m256i __DEFAULT_FN_ATTRS
   2247 _mm256_maskz_unpacklo_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
   2248   return (__m256i) __builtin_ia32_punpcklwd256_mask ((__v16hi) __A,
   2249                (__v16hi) __B,
   2250                (__v16hi) _mm256_setzero_si256(),
   2251                (__mmask16) __U);
   2252 }
   2253 
   2254 #define _mm_cmp_epi8_mask(a, b, p) __extension__ ({ \
   2255   (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)(a), \
   2256                                          (__v16qi)(__m128i)(b), \
   2257                                          (p), (__mmask16)-1); })
   2258 
   2259 #define _mm_mask_cmp_epi8_mask(m, a, b, p) __extension__ ({ \
   2260   (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)(a), \
   2261                                          (__v16qi)(__m128i)(b), \
   2262                                          (p), (__mmask16)(m)); })
   2263 
   2264 #define _mm_cmp_epu8_mask(a, b, p) __extension__ ({ \
   2265   (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)(__m128i)(a), \
   2266                                           (__v16qi)(__m128i)(b), \
   2267                                           (p), (__mmask16)-1); })
   2268 
   2269 #define _mm_mask_cmp_epu8_mask(m, a, b, p) __extension__ ({ \
   2270   (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)(__m128i)(a), \
   2271                                           (__v16qi)(__m128i)(b), \
   2272                                           (p), (__mmask16)(m)); })
   2273 
   2274 #define _mm256_cmp_epi8_mask(a, b, p) __extension__ ({ \
   2275   (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)(a), \
   2276                                          (__v32qi)(__m256i)(b), \
   2277                                          (p), (__mmask32)-1); })
   2278 
   2279 #define _mm256_mask_cmp_epi8_mask(m, a, b, p) __extension__ ({ \
   2280   (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)(a), \
   2281                                          (__v32qi)(__m256i)(b), \
   2282                                          (p), (__mmask32)(m)); })
   2283 
   2284 #define _mm256_cmp_epu8_mask(a, b, p) __extension__ ({ \
   2285   (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)(__m256i)(a), \
   2286                                           (__v32qi)(__m256i)(b), \
   2287                                           (p), (__mmask32)-1); })
   2288 
   2289 #define _mm256_mask_cmp_epu8_mask(m, a, b, p) __extension__ ({ \
   2290   (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)(__m256i)(a), \
   2291                                           (__v32qi)(__m256i)(b), \
   2292                                           (p), (__mmask32)(m)); })
   2293 
   2294 #define _mm_cmp_epi16_mask(a, b, p) __extension__ ({ \
   2295   (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)(a), \
   2296                                         (__v8hi)(__m128i)(b), \
   2297                                         (p), (__mmask8)-1); })
   2298 
   2299 #define _mm_mask_cmp_epi16_mask(m, a, b, p) __extension__ ({ \
   2300   (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)(a), \
   2301                                         (__v8hi)(__m128i)(b), \
   2302                                         (p), (__mmask8)(m)); })
   2303 
   2304 #define _mm_cmp_epu16_mask(a, b, p) __extension__ ({ \
   2305   (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)(__m128i)(a), \
   2306                                          (__v8hi)(__m128i)(b), \
   2307                                          (p), (__mmask8)-1); })
   2308 
   2309 #define _mm_mask_cmp_epu16_mask(m, a, b, p) __extension__ ({ \
   2310   (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)(__m128i)(a), \
   2311                                          (__v8hi)(__m128i)(b), \
   2312                                          (p), (__mmask8)(m)); })
   2313 
   2314 #define _mm256_cmp_epi16_mask(a, b, p) __extension__ ({ \
   2315   (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)(a), \
   2316                                          (__v16hi)(__m256i)(b), \
   2317                                          (p), (__mmask16)-1); })
   2318 
   2319 #define _mm256_mask_cmp_epi16_mask(m, a, b, p) __extension__ ({ \
   2320   (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)(a), \
   2321                                          (__v16hi)(__m256i)(b), \
   2322                                          (p), (__mmask16)(m)); })
   2323 
   2324 #define _mm256_cmp_epu16_mask(a, b, p) __extension__ ({ \
   2325   (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)(__m256i)(a), \
   2326                                           (__v16hi)(__m256i)(b), \
   2327                                           (p), (__mmask16)-1); })
   2328 
   2329 #define _mm256_mask_cmp_epu16_mask(m, a, b, p) __extension__ ({ \
   2330   (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)(__m256i)(a), \
   2331                                           (__v16hi)(__m256i)(b), \
   2332                                           (p), (__mmask16)(m)); })
   2333 
   2334 #undef __DEFAULT_FN_ATTRS
   2335 
   2336 #endif /* __AVX512VLBWINTRIN_H */
   2337