zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

avx512vlbwintrin.h (124474B) - Raw


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