Home | History | Annotate | Download | only in CodeGen
      1 // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512bw -target-feature +avx512vl -emit-llvm -o - -Werror | FileCheck %s
      2 // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512bw -target-feature +avx512vl -fno-signed-char -emit-llvm -o - -Werror | FileCheck %s
      3 
      4 // Don't include mm_malloc.h, it's system specific.
      5 #define __MM_MALLOC_H
      6 
      7 #include <immintrin.h>
      8 
      9 __mmask32 test_mm256_cmpeq_epi8_mask(__m256i __a, __m256i __b) {
     10   // CHECK-LABEL: @test_mm256_cmpeq_epi8_mask
     11   // CHECK: @llvm.x86.avx512.mask.pcmpeq.b.256
     12   return (__mmask32)_mm256_cmpeq_epi8_mask(__a, __b);
     13 }
     14 
     15 __mmask32 test_mm256_mask_cmpeq_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
     16   // CHECK-LABEL: @test_mm256_mask_cmpeq_epi8_mask
     17   // CHECK: @llvm.x86.avx512.mask.pcmpeq.b.256
     18   return (__mmask32)_mm256_mask_cmpeq_epi8_mask(__u, __a, __b);
     19 }
     20 
     21 __mmask16 test_mm_cmpeq_epi8_mask(__m128i __a, __m128i __b) {
     22   // CHECK-LABEL: @test_mm_cmpeq_epi8_mask
     23   // CHECK: @llvm.x86.avx512.mask.pcmpeq.b.128
     24   return (__mmask16)_mm_cmpeq_epi8_mask(__a, __b);
     25 }
     26 
     27 __mmask16 test_mm_mask_cmpeq_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
     28   // CHECK-LABEL: @test_mm_mask_cmpeq_epi8_mask
     29   // CHECK: @llvm.x86.avx512.mask.pcmpeq.b.128
     30   return (__mmask16)_mm_mask_cmpeq_epi8_mask(__u, __a, __b);
     31 }
     32 
     33 __mmask16 test_mm256_cmpeq_epi16_mask(__m256i __a, __m256i __b) {
     34   // CHECK-LABEL: @test_mm256_cmpeq_epi16_mask
     35   // CHECK: @llvm.x86.avx512.mask.pcmpeq.w.256
     36   return (__mmask16)_mm256_cmpeq_epi16_mask(__a, __b);
     37 }
     38 
     39 __mmask16 test_mm256_mask_cmpeq_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
     40   // CHECK-LABEL: @test_mm256_mask_cmpeq_epi16_mask
     41   // CHECK: @llvm.x86.avx512.mask.pcmpeq.w.256
     42   return (__mmask16)_mm256_mask_cmpeq_epi16_mask(__u, __a, __b);
     43 }
     44 
     45 __mmask8 test_mm_cmpeq_epi16_mask(__m128i __a, __m128i __b) {
     46   // CHECK-LABEL: @test_mm_cmpeq_epi16_mask
     47   // CHECK: @llvm.x86.avx512.mask.pcmpeq.w.128
     48   return (__mmask8)_mm_cmpeq_epi16_mask(__a, __b);
     49 }
     50 
     51 __mmask8 test_mm_mask_cmpeq_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
     52   // CHECK-LABEL: @test_mm_mask_cmpeq_epi16_mask
     53   // CHECK: @llvm.x86.avx512.mask.pcmpeq.w.128
     54   return (__mmask8)_mm_mask_cmpeq_epi16_mask(__u, __a, __b);
     55 }
     56 
     57 __mmask32 test_mm256_cmpgt_epi8_mask(__m256i __a, __m256i __b) {
     58   // CHECK-LABEL: @test_mm256_cmpgt_epi8_mask
     59   // CHECK: @llvm.x86.avx512.mask.pcmpgt.b.256
     60   return (__mmask32)_mm256_cmpgt_epi8_mask(__a, __b);
     61 }
     62 
     63 __mmask32 test_mm256_mask_cmpgt_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
     64   // CHECK-LABEL: @test_mm256_mask_cmpgt_epi8_mask
     65   // CHECK: @llvm.x86.avx512.mask.pcmpgt.b.256
     66   return (__mmask32)_mm256_mask_cmpgt_epi8_mask(__u, __a, __b);
     67 }
     68 
     69 __mmask16 test_mm_cmpgt_epi8_mask(__m128i __a, __m128i __b) {
     70   // CHECK-LABEL: @test_mm_cmpgt_epi8_mask
     71   // CHECK: @llvm.x86.avx512.mask.pcmpgt.b.128
     72   return (__mmask16)_mm_cmpgt_epi8_mask(__a, __b);
     73 }
     74 
     75 __mmask16 test_mm_mask_cmpgt_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
     76   // CHECK-LABEL: @test_mm_mask_cmpgt_epi8_mask
     77   // CHECK: @llvm.x86.avx512.mask.pcmpgt.b.128
     78   return (__mmask16)_mm_mask_cmpgt_epi8_mask(__u, __a, __b);
     79 }
     80 
     81 __mmask16 test_mm256_cmpgt_epi16_mask(__m256i __a, __m256i __b) {
     82   // CHECK-LABEL: @test_mm256_cmpgt_epi16_mask
     83   // CHECK: @llvm.x86.avx512.mask.pcmpgt.w.256
     84   return (__mmask16)_mm256_cmpgt_epi16_mask(__a, __b);
     85 }
     86 
     87 __mmask16 test_mm256_mask_cmpgt_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
     88   // CHECK-LABEL: @test_mm256_mask_cmpgt_epi16_mask
     89   // CHECK: @llvm.x86.avx512.mask.pcmpgt.w.256
     90   return (__mmask16)_mm256_mask_cmpgt_epi16_mask(__u, __a, __b);
     91 }
     92 
     93 __mmask8 test_mm_cmpgt_epi16_mask(__m128i __a, __m128i __b) {
     94   // CHECK-LABEL: @test_mm_cmpgt_epi16_mask
     95   // CHECK: @llvm.x86.avx512.mask.pcmpgt.w.128
     96   return (__mmask8)_mm_cmpgt_epi16_mask(__a, __b);
     97 }
     98 
     99 __mmask8 test_mm_mask_cmpgt_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    100   // CHECK-LABEL: @test_mm_mask_cmpgt_epi16_mask
    101   // CHECK: @llvm.x86.avx512.mask.pcmpgt.w.128
    102   return (__mmask8)_mm_mask_cmpgt_epi16_mask(__u, __a, __b);
    103 }
    104 
    105 __mmask16 test_mm_cmpeq_epu8_mask(__m128i __a, __m128i __b) {
    106   // CHECK-LABEL: @test_mm_cmpeq_epu8_mask
    107   // CHECK: @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 0, i16 -1)
    108   return (__mmask64)_mm_cmpeq_epu8_mask(__a, __b);
    109 }
    110 
    111 __mmask16 test_mm_mask_cmpeq_epu8_mask(__mmask64 __u, __m128i __a, __m128i __b) {
    112   // CHECK-LABEL: @test_mm_mask_cmpeq_epu8_mask
    113   // CHECK: @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 0, i16 {{.*}})
    114   return (__mmask64)_mm_mask_cmpeq_epu8_mask(__u, __a, __b);
    115 }
    116 
    117 __mmask8 test_mm_cmpeq_epu16_mask(__m128i __a, __m128i __b) {
    118   // CHECK-LABEL: @test_mm_cmpeq_epu16_mask
    119   // CHECK: @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 0, i8 -1)
    120   return (__mmask32)_mm_cmpeq_epu16_mask(__a, __b);
    121 }
    122 
    123 __mmask8 test_mm_mask_cmpeq_epu16_mask(__mmask32 __u, __m128i __a, __m128i __b) {
    124   // CHECK-LABEL: @test_mm_mask_cmpeq_epu16_mask
    125   // CHECK: @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 0, i8 {{.*}})
    126   return (__mmask32)_mm_mask_cmpeq_epu16_mask(__u, __a, __b);
    127 }
    128 
    129 __mmask32 test_mm256_cmpeq_epu8_mask(__m256i __a, __m256i __b) {
    130   // CHECK-LABEL: @test_mm256_cmpeq_epu8_mask
    131   // CHECK: @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 0, i32 -1)
    132   return (__mmask64)_mm256_cmpeq_epu8_mask(__a, __b);
    133 }
    134 
    135 __mmask32 test_mm256_mask_cmpeq_epu8_mask(__mmask64 __u, __m256i __a, __m256i __b) {
    136   // CHECK-LABEL: @test_mm256_mask_cmpeq_epu8_mask
    137   // CHECK: @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 0, i32 {{.*}})
    138   return (__mmask64)_mm256_mask_cmpeq_epu8_mask(__u, __a, __b);
    139 }
    140 
    141 __mmask16 test_mm256_cmpeq_epu16_mask(__m256i __a, __m256i __b) {
    142   // CHECK-LABEL: @test_mm256_cmpeq_epu16_mask
    143   // CHECK: @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 0, i16 -1)
    144   return (__mmask32)_mm256_cmpeq_epu16_mask(__a, __b);
    145 }
    146 
    147 __mmask16 test_mm256_mask_cmpeq_epu16_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    148   // CHECK-LABEL: @test_mm256_mask_cmpeq_epu16_mask
    149   // CHECK: @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 0, i16 {{.*}})
    150   return (__mmask32)_mm256_mask_cmpeq_epu16_mask(__u, __a, __b);
    151 }
    152 
    153 __mmask16 test_mm_cmpgt_epu8_mask(__m128i __a, __m128i __b) {
    154   // CHECK-LABEL: @test_mm_cmpgt_epu8_mask
    155   // CHECK: @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 6, i16 -1)
    156   return (__mmask64)_mm_cmpgt_epu8_mask(__a, __b);
    157 }
    158 
    159 __mmask16 test_mm_mask_cmpgt_epu8_mask(__mmask64 __u, __m128i __a, __m128i __b) {
    160   // CHECK-LABEL: @test_mm_mask_cmpgt_epu8_mask
    161   // CHECK: @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 6, i16 {{.*}})
    162   return (__mmask64)_mm_mask_cmpgt_epu8_mask(__u, __a, __b);
    163 }
    164 
    165 __mmask8 test_mm_cmpgt_epu16_mask(__m128i __a, __m128i __b) {
    166   // CHECK-LABEL: @test_mm_cmpgt_epu16_mask
    167   // CHECK: @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 6, i8 -1)
    168   return (__mmask32)_mm_cmpgt_epu16_mask(__a, __b);
    169 }
    170 
    171 __mmask8 test_mm_mask_cmpgt_epu16_mask(__mmask32 __u, __m128i __a, __m128i __b) {
    172   // CHECK-LABEL: @test_mm_mask_cmpgt_epu16_mask
    173   // CHECK: @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 6, i8 {{.*}})
    174   return (__mmask32)_mm_mask_cmpgt_epu16_mask(__u, __a, __b);
    175 }
    176 
    177 __mmask32 test_mm256_cmpgt_epu8_mask(__m256i __a, __m256i __b) {
    178   // CHECK-LABEL: @test_mm256_cmpgt_epu8_mask
    179   // CHECK: @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 6, i32 -1)
    180   return (__mmask64)_mm256_cmpgt_epu8_mask(__a, __b);
    181 }
    182 
    183 __mmask32 test_mm256_mask_cmpgt_epu8_mask(__mmask64 __u, __m256i __a, __m256i __b) {
    184   // CHECK-LABEL: @test_mm256_mask_cmpgt_epu8_mask
    185   // CHECK: @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 6, i32 {{.*}})
    186   return (__mmask64)_mm256_mask_cmpgt_epu8_mask(__u, __a, __b);
    187 }
    188 
    189 __mmask16 test_mm256_cmpgt_epu16_mask(__m256i __a, __m256i __b) {
    190   // CHECK-LABEL: @test_mm256_cmpgt_epu16_mask
    191   // CHECK: @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 6, i16 -1)
    192   return (__mmask32)_mm256_cmpgt_epu16_mask(__a, __b);
    193 }
    194 
    195 __mmask16 test_mm256_mask_cmpgt_epu16_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    196   // CHECK-LABEL: @test_mm256_mask_cmpgt_epu16_mask
    197   // CHECK: @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 6, i16 {{.*}})
    198   return (__mmask32)_mm256_mask_cmpgt_epu16_mask(__u, __a, __b);
    199 }
    200 
    201 __mmask16 test_mm_cmpge_epi8_mask(__m128i __a, __m128i __b) {
    202   // CHECK-LABEL: @test_mm_cmpge_epi8_mask
    203   // CHECK: @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 5, i16 -1)
    204   return (__mmask64)_mm_cmpge_epi8_mask(__a, __b);
    205 }
    206 
    207 __mmask16 test_mm_mask_cmpge_epi8_mask(__mmask64 __u, __m128i __a, __m128i __b) {
    208   // CHECK-LABEL: @test_mm_mask_cmpge_epi8_mask
    209   // CHECK: @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 5, i16 {{.*}})
    210   return (__mmask64)_mm_mask_cmpge_epi8_mask(__u, __a, __b);
    211 }
    212 
    213 __mmask16 test_mm_cmpge_epu8_mask(__m128i __a, __m128i __b) {
    214   // CHECK-LABEL: @test_mm_cmpge_epu8_mask
    215   // CHECK: @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 5, i16 -1)
    216   return (__mmask64)_mm_cmpge_epu8_mask(__a, __b);
    217 }
    218 
    219 __mmask16 test_mm_mask_cmpge_epu8_mask(__mmask64 __u, __m128i __a, __m128i __b) {
    220   // CHECK-LABEL: @test_mm_mask_cmpge_epu8_mask
    221   // CHECK: @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 5, i16 {{.*}})
    222   return (__mmask64)_mm_mask_cmpge_epu8_mask(__u, __a, __b);
    223 }
    224 
    225 __mmask8 test_mm_cmpge_epi16_mask(__m128i __a, __m128i __b) {
    226   // CHECK-LABEL: @test_mm_cmpge_epi16_mask
    227   // CHECK: @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 5, i8 -1)
    228   return (__mmask32)_mm_cmpge_epi16_mask(__a, __b);
    229 }
    230 
    231 __mmask8 test_mm_mask_cmpge_epi16_mask(__mmask32 __u, __m128i __a, __m128i __b) {
    232   // CHECK-LABEL: @test_mm_mask_cmpge_epi16_mask
    233   // CHECK: @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 5, i8 {{.*}})
    234   return (__mmask32)_mm_mask_cmpge_epi16_mask(__u, __a, __b);
    235 }
    236 
    237 __mmask8 test_mm_cmpge_epu16_mask(__m128i __a, __m128i __b) {
    238   // CHECK-LABEL: @test_mm_cmpge_epu16_mask
    239   // CHECK: @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 5, i8 -1)
    240   return (__mmask32)_mm_cmpge_epu16_mask(__a, __b);
    241 }
    242 
    243 __mmask8 test_mm_mask_cmpge_epu16_mask(__mmask32 __u, __m128i __a, __m128i __b) {
    244   // CHECK-LABEL: @test_mm_mask_cmpge_epu16_mask
    245   // CHECK: @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 5, i8 {{.*}})
    246   return (__mmask32)_mm_mask_cmpge_epu16_mask(__u, __a, __b);
    247 }
    248 
    249 __mmask32 test_mm256_cmpge_epi8_mask(__m256i __a, __m256i __b) {
    250   // CHECK-LABEL: @test_mm256_cmpge_epi8_mask
    251   // CHECK: @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 5, i32 -1)
    252   return (__mmask64)_mm256_cmpge_epi8_mask(__a, __b);
    253 }
    254 
    255 __mmask32 test_mm256_mask_cmpge_epi8_mask(__mmask64 __u, __m256i __a, __m256i __b) {
    256   // CHECK-LABEL: @test_mm256_mask_cmpge_epi8_mask
    257   // CHECK: @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 5, i32 {{.*}})
    258   return (__mmask64)_mm256_mask_cmpge_epi8_mask(__u, __a, __b);
    259 }
    260 
    261 __mmask32 test_mm256_cmpge_epu8_mask(__m256i __a, __m256i __b) {
    262   // CHECK-LABEL: @test_mm256_cmpge_epu8_mask
    263   // CHECK: @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 5, i32 -1)
    264   return (__mmask64)_mm256_cmpge_epu8_mask(__a, __b);
    265 }
    266 
    267 __mmask32 test_mm256_mask_cmpge_epu8_mask(__mmask64 __u, __m256i __a, __m256i __b) {
    268   // CHECK-LABEL: @test_mm256_mask_cmpge_epu8_mask
    269   // CHECK: @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 5, i32 {{.*}})
    270   return (__mmask64)_mm256_mask_cmpge_epu8_mask(__u, __a, __b);
    271 }
    272 
    273 __mmask16 test_mm256_cmpge_epi16_mask(__m256i __a, __m256i __b) {
    274   // CHECK-LABEL: @test_mm256_cmpge_epi16_mask
    275   // CHECK: @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 5, i16 -1)
    276   return (__mmask32)_mm256_cmpge_epi16_mask(__a, __b);
    277 }
    278 
    279 __mmask16 test_mm256_mask_cmpge_epi16_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    280   // CHECK-LABEL: @test_mm256_mask_cmpge_epi16_mask
    281   // CHECK: @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 5, i16 {{.*}})
    282   return (__mmask32)_mm256_mask_cmpge_epi16_mask(__u, __a, __b);
    283 }
    284 
    285 __mmask16 test_mm256_cmpge_epu16_mask(__m256i __a, __m256i __b) {
    286   // CHECK-LABEL: @test_mm256_cmpge_epu16_mask
    287   // CHECK: @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 5, i16 -1)
    288   return (__mmask32)_mm256_cmpge_epu16_mask(__a, __b);
    289 }
    290 
    291 __mmask16 test_mm256_mask_cmpge_epu16_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    292   // CHECK-LABEL: @test_mm256_mask_cmpge_epu16_mask
    293   // CHECK: @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 5, i16 {{.*}})
    294   return (__mmask32)_mm256_mask_cmpge_epu16_mask(__u, __a, __b);
    295 }
    296 
    297 __mmask16 test_mm_cmple_epi8_mask(__m128i __a, __m128i __b) {
    298   // CHECK-LABEL: @test_mm_cmple_epi8_mask
    299   // CHECK: @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 2, i16 -1)
    300   return (__mmask64)_mm_cmple_epi8_mask(__a, __b);
    301 }
    302 
    303 __mmask16 test_mm_mask_cmple_epi8_mask(__mmask64 __u, __m128i __a, __m128i __b) {
    304   // CHECK-LABEL: @test_mm_mask_cmple_epi8_mask
    305   // CHECK: @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 2, i16 {{.*}})
    306   return (__mmask64)_mm_mask_cmple_epi8_mask(__u, __a, __b);
    307 }
    308 
    309 __mmask16 test_mm_cmple_epu8_mask(__m128i __a, __m128i __b) {
    310   // CHECK-LABEL: @test_mm_cmple_epu8_mask
    311   // CHECK: @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 2, i16 -1)
    312   return (__mmask64)_mm_cmple_epu8_mask(__a, __b);
    313 }
    314 
    315 __mmask16 test_mm_mask_cmple_epu8_mask(__mmask64 __u, __m128i __a, __m128i __b) {
    316   // CHECK-LABEL: @test_mm_mask_cmple_epu8_mask
    317   // CHECK: @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 2, i16 {{.*}})
    318   return (__mmask64)_mm_mask_cmple_epu8_mask(__u, __a, __b);
    319 }
    320 
    321 __mmask8 test_mm_cmple_epi16_mask(__m128i __a, __m128i __b) {
    322   // CHECK-LABEL: @test_mm_cmple_epi16_mask
    323   // CHECK: @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 2, i8 -1)
    324   return (__mmask32)_mm_cmple_epi16_mask(__a, __b);
    325 }
    326 
    327 __mmask8 test_mm_mask_cmple_epi16_mask(__mmask32 __u, __m128i __a, __m128i __b) {
    328   // CHECK-LABEL: @test_mm_mask_cmple_epi16_mask
    329   // CHECK: @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 2, i8 {{.*}})
    330   return (__mmask32)_mm_mask_cmple_epi16_mask(__u, __a, __b);
    331 }
    332 
    333 __mmask8 test_mm_cmple_epu16_mask(__m128i __a, __m128i __b) {
    334   // CHECK-LABEL: @test_mm_cmple_epu16_mask
    335   // CHECK: @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 2, i8 -1)
    336   return (__mmask32)_mm_cmple_epu16_mask(__a, __b);
    337 }
    338 
    339 __mmask8 test_mm_mask_cmple_epu16_mask(__mmask32 __u, __m128i __a, __m128i __b) {
    340   // CHECK-LABEL: @test_mm_mask_cmple_epu16_mask
    341   // CHECK: @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 2, i8 {{.*}})
    342   return (__mmask32)_mm_mask_cmple_epu16_mask(__u, __a, __b);
    343 }
    344 
    345 __mmask32 test_mm256_cmple_epi8_mask(__m256i __a, __m256i __b) {
    346   // CHECK-LABEL: @test_mm256_cmple_epi8_mask
    347   // CHECK: @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 2, i32 -1)
    348   return (__mmask64)_mm256_cmple_epi8_mask(__a, __b);
    349 }
    350 
    351 __mmask32 test_mm256_mask_cmple_epi8_mask(__mmask64 __u, __m256i __a, __m256i __b) {
    352   // CHECK-LABEL: @test_mm256_mask_cmple_epi8_mask
    353   // CHECK: @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 2, i32 {{.*}})
    354   return (__mmask64)_mm256_mask_cmple_epi8_mask(__u, __a, __b);
    355 }
    356 
    357 __mmask32 test_mm256_cmple_epu8_mask(__m256i __a, __m256i __b) {
    358   // CHECK-LABEL: @test_mm256_cmple_epu8_mask
    359   // CHECK: @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 2, i32 -1)
    360   return (__mmask64)_mm256_cmple_epu8_mask(__a, __b);
    361 }
    362 
    363 __mmask32 test_mm256_mask_cmple_epu8_mask(__mmask64 __u, __m256i __a, __m256i __b) {
    364   // CHECK-LABEL: @test_mm256_mask_cmple_epu8_mask
    365   // CHECK: @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 2, i32 {{.*}})
    366   return (__mmask64)_mm256_mask_cmple_epu8_mask(__u, __a, __b);
    367 }
    368 
    369 __mmask16 test_mm256_cmple_epi16_mask(__m256i __a, __m256i __b) {
    370   // CHECK-LABEL: @test_mm256_cmple_epi16_mask
    371   // CHECK: @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 2, i16 -1)
    372   return (__mmask32)_mm256_cmple_epi16_mask(__a, __b);
    373 }
    374 
    375 __mmask16 test_mm256_mask_cmple_epi16_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    376   // CHECK-LABEL: @test_mm256_mask_cmple_epi16_mask
    377   // CHECK: @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 2, i16 {{.*}})
    378   return (__mmask32)_mm256_mask_cmple_epi16_mask(__u, __a, __b);
    379 }
    380 
    381 __mmask16 test_mm256_cmple_epu16_mask(__m256i __a, __m256i __b) {
    382   // CHECK-LABEL: @test_mm256_cmple_epu16_mask
    383   // CHECK: @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 2, i16 -1)
    384   return (__mmask32)_mm256_cmple_epu16_mask(__a, __b);
    385 }
    386 
    387 __mmask16 test_mm256_mask_cmple_epu16_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    388   // CHECK-LABEL: @test_mm256_mask_cmple_epu16_mask
    389   // CHECK: @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 2, i16 {{.*}})
    390   return (__mmask32)_mm256_mask_cmple_epu16_mask(__u, __a, __b);
    391 }
    392 
    393 __mmask16 test_mm_cmplt_epi8_mask(__m128i __a, __m128i __b) {
    394   // CHECK-LABEL: @test_mm_cmplt_epi8_mask
    395   // CHECK: @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 1, i16 -1)
    396   return (__mmask64)_mm_cmplt_epi8_mask(__a, __b);
    397 }
    398 
    399 __mmask16 test_mm_mask_cmplt_epi8_mask(__mmask64 __u, __m128i __a, __m128i __b) {
    400   // CHECK-LABEL: @test_mm_mask_cmplt_epi8_mask
    401   // CHECK: @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 1, i16 {{.*}})
    402   return (__mmask64)_mm_mask_cmplt_epi8_mask(__u, __a, __b);
    403 }
    404 
    405 __mmask16 test_mm_cmplt_epu8_mask(__m128i __a, __m128i __b) {
    406   // CHECK-LABEL: @test_mm_cmplt_epu8_mask
    407   // CHECK: @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 1, i16 -1)
    408   return (__mmask64)_mm_cmplt_epu8_mask(__a, __b);
    409 }
    410 
    411 __mmask16 test_mm_mask_cmplt_epu8_mask(__mmask64 __u, __m128i __a, __m128i __b) {
    412   // CHECK-LABEL: @test_mm_mask_cmplt_epu8_mask
    413   // CHECK: @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 1, i16 {{.*}})
    414   return (__mmask64)_mm_mask_cmplt_epu8_mask(__u, __a, __b);
    415 }
    416 
    417 __mmask8 test_mm_cmplt_epi16_mask(__m128i __a, __m128i __b) {
    418   // CHECK-LABEL: @test_mm_cmplt_epi16_mask
    419   // CHECK: @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 1, i8 -1)
    420   return (__mmask32)_mm_cmplt_epi16_mask(__a, __b);
    421 }
    422 
    423 __mmask8 test_mm_mask_cmplt_epi16_mask(__mmask32 __u, __m128i __a, __m128i __b) {
    424   // CHECK-LABEL: @test_mm_mask_cmplt_epi16_mask
    425   // CHECK: @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 1, i8 {{.*}})
    426   return (__mmask32)_mm_mask_cmplt_epi16_mask(__u, __a, __b);
    427 }
    428 
    429 __mmask8 test_mm_cmplt_epu16_mask(__m128i __a, __m128i __b) {
    430   // CHECK-LABEL: @test_mm_cmplt_epu16_mask
    431   // CHECK: @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 1, i8 -1)
    432   return (__mmask32)_mm_cmplt_epu16_mask(__a, __b);
    433 }
    434 
    435 __mmask8 test_mm_mask_cmplt_epu16_mask(__mmask32 __u, __m128i __a, __m128i __b) {
    436   // CHECK-LABEL: @test_mm_mask_cmplt_epu16_mask
    437   // CHECK: @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 1, i8 {{.*}})
    438   return (__mmask32)_mm_mask_cmplt_epu16_mask(__u, __a, __b);
    439 }
    440 
    441 __mmask32 test_mm256_cmplt_epi8_mask(__m256i __a, __m256i __b) {
    442   // CHECK-LABEL: @test_mm256_cmplt_epi8_mask
    443   // CHECK: @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 1, i32 -1)
    444   return (__mmask64)_mm256_cmplt_epi8_mask(__a, __b);
    445 }
    446 
    447 __mmask32 test_mm256_mask_cmplt_epi8_mask(__mmask64 __u, __m256i __a, __m256i __b) {
    448   // CHECK-LABEL: @test_mm256_mask_cmplt_epi8_mask
    449   // CHECK: @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 1, i32 {{.*}})
    450   return (__mmask64)_mm256_mask_cmplt_epi8_mask(__u, __a, __b);
    451 }
    452 
    453 __mmask32 test_mm256_cmplt_epu8_mask(__m256i __a, __m256i __b) {
    454   // CHECK-LABEL: @test_mm256_cmplt_epu8_mask
    455   // CHECK: @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 1, i32 -1)
    456   return (__mmask64)_mm256_cmplt_epu8_mask(__a, __b);
    457 }
    458 
    459 __mmask32 test_mm256_mask_cmplt_epu8_mask(__mmask64 __u, __m256i __a, __m256i __b) {
    460   // CHECK-LABEL: @test_mm256_mask_cmplt_epu8_mask
    461   // CHECK: @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 1, i32 {{.*}})
    462   return (__mmask64)_mm256_mask_cmplt_epu8_mask(__u, __a, __b);
    463 }
    464 
    465 __mmask16 test_mm256_cmplt_epi16_mask(__m256i __a, __m256i __b) {
    466   // CHECK-LABEL: @test_mm256_cmplt_epi16_mask
    467   // CHECK: @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 1, i16 -1)
    468   return (__mmask32)_mm256_cmplt_epi16_mask(__a, __b);
    469 }
    470 
    471 __mmask16 test_mm256_mask_cmplt_epi16_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    472   // CHECK-LABEL: @test_mm256_mask_cmplt_epi16_mask
    473   // CHECK: @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 1, i16 {{.*}})
    474   return (__mmask32)_mm256_mask_cmplt_epi16_mask(__u, __a, __b);
    475 }
    476 
    477 __mmask16 test_mm256_cmplt_epu16_mask(__m256i __a, __m256i __b) {
    478   // CHECK-LABEL: @test_mm256_cmplt_epu16_mask
    479   // CHECK: @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 1, i16 -1)
    480   return (__mmask32)_mm256_cmplt_epu16_mask(__a, __b);
    481 }
    482 
    483 __mmask16 test_mm256_mask_cmplt_epu16_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    484   // CHECK-LABEL: @test_mm256_mask_cmplt_epu16_mask
    485   // CHECK: @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 1, i16 {{.*}})
    486   return (__mmask32)_mm256_mask_cmplt_epu16_mask(__u, __a, __b);
    487 }
    488 
    489 __mmask16 test_mm_cmpneq_epi8_mask(__m128i __a, __m128i __b) {
    490   // CHECK-LABEL: @test_mm_cmpneq_epi8_mask
    491   // CHECK: @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 4, i16 -1)
    492   return (__mmask64)_mm_cmpneq_epi8_mask(__a, __b);
    493 }
    494 
    495 __mmask16 test_mm_mask_cmpneq_epi8_mask(__mmask64 __u, __m128i __a, __m128i __b) {
    496   // CHECK-LABEL: @test_mm_mask_cmpneq_epi8_mask
    497   // CHECK: @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 4, i16 {{.*}})
    498   return (__mmask64)_mm_mask_cmpneq_epi8_mask(__u, __a, __b);
    499 }
    500 
    501 __mmask16 test_mm_cmpneq_epu8_mask(__m128i __a, __m128i __b) {
    502   // CHECK-LABEL: @test_mm_cmpneq_epu8_mask
    503   // CHECK: @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 4, i16 -1)
    504   return (__mmask64)_mm_cmpneq_epu8_mask(__a, __b);
    505 }
    506 
    507 __mmask16 test_mm_mask_cmpneq_epu8_mask(__mmask64 __u, __m128i __a, __m128i __b) {
    508   // CHECK-LABEL: @test_mm_mask_cmpneq_epu8_mask
    509   // CHECK: @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 4, i16 {{.*}})
    510   return (__mmask64)_mm_mask_cmpneq_epu8_mask(__u, __a, __b);
    511 }
    512 
    513 __mmask8 test_mm_cmpneq_epi16_mask(__m128i __a, __m128i __b) {
    514   // CHECK-LABEL: @test_mm_cmpneq_epi16_mask
    515   // CHECK: @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 4, i8 -1)
    516   return (__mmask32)_mm_cmpneq_epi16_mask(__a, __b);
    517 }
    518 
    519 __mmask8 test_mm_mask_cmpneq_epi16_mask(__mmask32 __u, __m128i __a, __m128i __b) {
    520   // CHECK-LABEL: @test_mm_mask_cmpneq_epi16_mask
    521   // CHECK: @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 4, i8 {{.*}})
    522   return (__mmask32)_mm_mask_cmpneq_epi16_mask(__u, __a, __b);
    523 }
    524 
    525 __mmask8 test_mm_cmpneq_epu16_mask(__m128i __a, __m128i __b) {
    526   // CHECK-LABEL: @test_mm_cmpneq_epu16_mask
    527   // CHECK: @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 4, i8 -1)
    528   return (__mmask32)_mm_cmpneq_epu16_mask(__a, __b);
    529 }
    530 
    531 __mmask8 test_mm_mask_cmpneq_epu16_mask(__mmask32 __u, __m128i __a, __m128i __b) {
    532   // CHECK-LABEL: @test_mm_mask_cmpneq_epu16_mask
    533   // CHECK: @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 4, i8 {{.*}})
    534   return (__mmask32)_mm_mask_cmpneq_epu16_mask(__u, __a, __b);
    535 }
    536 
    537 __mmask32 test_mm256_cmpneq_epi8_mask(__m256i __a, __m256i __b) {
    538   // CHECK-LABEL: @test_mm256_cmpneq_epi8_mask
    539   // CHECK: @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 4, i32 -1)
    540   return (__mmask64)_mm256_cmpneq_epi8_mask(__a, __b);
    541 }
    542 
    543 __mmask32 test_mm256_mask_cmpneq_epi8_mask(__mmask64 __u, __m256i __a, __m256i __b) {
    544   // CHECK-LABEL: @test_mm256_mask_cmpneq_epi8_mask
    545   // CHECK: @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 4, i32 {{.*}})
    546   return (__mmask64)_mm256_mask_cmpneq_epi8_mask(__u, __a, __b);
    547 }
    548 
    549 __mmask32 test_mm256_cmpneq_epu8_mask(__m256i __a, __m256i __b) {
    550   // CHECK-LABEL: @test_mm256_cmpneq_epu8_mask
    551   // CHECK: @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 4, i32 -1)
    552   return (__mmask64)_mm256_cmpneq_epu8_mask(__a, __b);
    553 }
    554 
    555 __mmask32 test_mm256_mask_cmpneq_epu8_mask(__mmask64 __u, __m256i __a, __m256i __b) {
    556   // CHECK-LABEL: @test_mm256_mask_cmpneq_epu8_mask
    557   // CHECK: @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 4, i32 {{.*}})
    558   return (__mmask64)_mm256_mask_cmpneq_epu8_mask(__u, __a, __b);
    559 }
    560 
    561 __mmask16 test_mm256_cmpneq_epi16_mask(__m256i __a, __m256i __b) {
    562   // CHECK-LABEL: @test_mm256_cmpneq_epi16_mask
    563   // CHECK: @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 4, i16 -1)
    564   return (__mmask32)_mm256_cmpneq_epi16_mask(__a, __b);
    565 }
    566 
    567 __mmask16 test_mm256_mask_cmpneq_epi16_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    568   // CHECK-LABEL: @test_mm256_mask_cmpneq_epi16_mask
    569   // CHECK: @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 4, i16 {{.*}})
    570   return (__mmask32)_mm256_mask_cmpneq_epi16_mask(__u, __a, __b);
    571 }
    572 
    573 __mmask16 test_mm256_cmpneq_epu16_mask(__m256i __a, __m256i __b) {
    574   // CHECK-LABEL: @test_mm256_cmpneq_epu16_mask
    575   // CHECK: @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 4, i16 -1)
    576   return (__mmask32)_mm256_cmpneq_epu16_mask(__a, __b);
    577 }
    578 
    579 __mmask16 test_mm256_mask_cmpneq_epu16_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    580   // CHECK-LABEL: @test_mm256_mask_cmpneq_epu16_mask
    581   // CHECK: @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 4, i16 {{.*}})
    582   return (__mmask32)_mm256_mask_cmpneq_epu16_mask(__u, __a, __b);
    583 }
    584 
    585 __mmask16 test_mm_cmp_epi8_mask(__m128i __a, __m128i __b) {
    586   // CHECK-LABEL: @test_mm_cmp_epi8_mask
    587   // CHECK: @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 7, i16 -1)
    588   return (__mmask64)_mm_cmp_epi8_mask(__a, __b, 7);
    589 }
    590 
    591 __mmask16 test_mm_mask_cmp_epi8_mask(__mmask64 __u, __m128i __a, __m128i __b) {
    592   // CHECK-LABEL: @test_mm_mask_cmp_epi8_mask
    593   // CHECK: @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 7, i16 {{.*}})
    594   return (__mmask64)_mm_mask_cmp_epi8_mask(__u, __a, __b, 7);
    595 }
    596 
    597 __mmask16 test_mm_cmp_epu8_mask(__m128i __a, __m128i __b) {
    598   // CHECK-LABEL: @test_mm_cmp_epu8_mask
    599   // CHECK: @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 7, i16 -1)
    600   return (__mmask64)_mm_cmp_epu8_mask(__a, __b, 7);
    601 }
    602 
    603 __mmask16 test_mm_mask_cmp_epu8_mask(__mmask64 __u, __m128i __a, __m128i __b) {
    604   // CHECK-LABEL: @test_mm_mask_cmp_epu8_mask
    605   // CHECK: @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 7, i16 {{.*}})
    606   return (__mmask64)_mm_mask_cmp_epu8_mask(__u, __a, __b, 7);
    607 }
    608 
    609 __mmask8 test_mm_cmp_epi16_mask(__m128i __a, __m128i __b) {
    610   // CHECK-LABEL: @test_mm_cmp_epi16_mask
    611   // CHECK: @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 7, i8 -1)
    612   return (__mmask32)_mm_cmp_epi16_mask(__a, __b, 7);
    613 }
    614 
    615 __mmask8 test_mm_mask_cmp_epi16_mask(__mmask32 __u, __m128i __a, __m128i __b) {
    616   // CHECK-LABEL: @test_mm_mask_cmp_epi16_mask
    617   // CHECK: @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 7, i8 {{.*}})
    618   return (__mmask32)_mm_mask_cmp_epi16_mask(__u, __a, __b, 7);
    619 }
    620 
    621 __mmask8 test_mm_cmp_epu16_mask(__m128i __a, __m128i __b) {
    622   // CHECK-LABEL: @test_mm_cmp_epu16_mask
    623   // CHECK: @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 7, i8 -1)
    624   return (__mmask32)_mm_cmp_epu16_mask(__a, __b, 7);
    625 }
    626 
    627 __mmask8 test_mm_mask_cmp_epu16_mask(__mmask32 __u, __m128i __a, __m128i __b) {
    628   // CHECK-LABEL: @test_mm_mask_cmp_epu16_mask
    629   // CHECK: @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 7, i8 {{.*}})
    630   return (__mmask32)_mm_mask_cmp_epu16_mask(__u, __a, __b, 7);
    631 }
    632 
    633 __mmask32 test_mm256_cmp_epi8_mask(__m256i __a, __m256i __b) {
    634   // CHECK-LABEL: @test_mm256_cmp_epi8_mask
    635   // CHECK: @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 7, i32 -1)
    636   return (__mmask64)_mm256_cmp_epi8_mask(__a, __b, 7);
    637 }
    638 
    639 __mmask32 test_mm256_mask_cmp_epi8_mask(__mmask64 __u, __m256i __a, __m256i __b) {
    640   // CHECK-LABEL: @test_mm256_mask_cmp_epi8_mask
    641   // CHECK: @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 7, i32 {{.*}})
    642   return (__mmask64)_mm256_mask_cmp_epi8_mask(__u, __a, __b, 7);
    643 }
    644 
    645 __mmask32 test_mm256_cmp_epu8_mask(__m256i __a, __m256i __b) {
    646   // CHECK-LABEL: @test_mm256_cmp_epu8_mask
    647   // CHECK: @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 7, i32 -1)
    648   return (__mmask64)_mm256_cmp_epu8_mask(__a, __b, 7);
    649 }
    650 
    651 __mmask32 test_mm256_mask_cmp_epu8_mask(__mmask64 __u, __m256i __a, __m256i __b) {
    652   // CHECK-LABEL: @test_mm256_mask_cmp_epu8_mask
    653   // CHECK: @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 7, i32 {{.*}})
    654   return (__mmask64)_mm256_mask_cmp_epu8_mask(__u, __a, __b, 7);
    655 }
    656 
    657 __mmask16 test_mm256_cmp_epi16_mask(__m256i __a, __m256i __b) {
    658   // CHECK-LABEL: @test_mm256_cmp_epi16_mask
    659   // CHECK: @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 7, i16 -1)
    660   return (__mmask32)_mm256_cmp_epi16_mask(__a, __b, 7);
    661 }
    662 
    663 __mmask16 test_mm256_mask_cmp_epi16_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    664   // CHECK-LABEL: @test_mm256_mask_cmp_epi16_mask
    665   // CHECK: @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 7, i16 {{.*}})
    666   return (__mmask32)_mm256_mask_cmp_epi16_mask(__u, __a, __b, 7);
    667 }
    668 
    669 __mmask16 test_mm256_cmp_epu16_mask(__m256i __a, __m256i __b) {
    670   // CHECK-LABEL: @test_mm256_cmp_epu16_mask
    671   // CHECK: @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 7, i16 -1)
    672   return (__mmask32)_mm256_cmp_epu16_mask(__a, __b, 7);
    673 }
    674 
    675 __mmask16 test_mm256_mask_cmp_epu16_mask(__mmask32 __u, __m256i __a, __m256i __b) {
    676   // CHECK-LABEL: @test_mm256_mask_cmp_epu16_mask
    677   // CHECK: @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 7, i16 {{.*}})
    678   return (__mmask32)_mm256_mask_cmp_epu16_mask(__u, __a, __b, 7);
    679 }
    680 
    681 
    682 __m256i test_mm256_mask_add_epi8 (__m256i __W, __mmask32 __U, __m256i __A, __m256i __B){
    683   //CHECK-LABEL: @test_mm256_mask_add_epi8
    684   //CHECK: @llvm.x86.avx512.mask.padd.b.256
    685   return _mm256_mask_add_epi8(__W, __U , __A, __B);
    686 }
    687 
    688 __m256i test_mm256_maskz_add_epi8 (__mmask32 __U, __m256i __A, __m256i __B) {
    689   //CHECK-LABEL: @test_mm256_maskz_add_epi8
    690   //CHECK: @llvm.x86.avx512.mask.padd.b.256
    691   return _mm256_maskz_add_epi8(__U , __A, __B);
    692 }
    693 __m256i test_mm256_mask_add_epi16 (__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
    694   //CHECK-LABEL: @test_mm256_mask_add_epi16
    695   //CHECK: @llvm.x86.avx512.mask.padd.w.256
    696   return _mm256_mask_add_epi16(__W, __U , __A, __B);
    697 }
    698 
    699 __m256i test_mm256_maskz_add_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
    700   //CHECK-LABEL: @test_mm256_maskz_add_epi16
    701   //CHECK: @llvm.x86.avx512.mask.padd.w.256
    702   return _mm256_maskz_add_epi16(__U , __A, __B);
    703 }
    704 
    705 __m256i test_mm256_mask_sub_epi8 (__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
    706   //CHECK-LABEL: @test_mm256_mask_sub_epi8
    707   //CHECK: @llvm.x86.avx512.mask.psub.b.256
    708   return _mm256_mask_sub_epi8(__W, __U , __A, __B);
    709 }
    710 
    711 __m256i test_mm256_maskz_sub_epi8 (__mmask32 __U, __m256i __A, __m256i __B) {
    712   //CHECK-LABEL: @test_mm256_maskz_sub_epi8
    713   //CHECK: @llvm.x86.avx512.mask.psub.b.256
    714   return _mm256_maskz_sub_epi8(__U , __A, __B);
    715 }
    716 
    717 __m256i test_mm256_mask_sub_epi16 (__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
    718   //CHECK-LABEL: @test_mm256_mask_sub_epi16
    719   //CHECK: @llvm.x86.avx512.mask.psub.w.256
    720   return _mm256_mask_sub_epi16(__W, __U , __A, __B);
    721 }
    722 
    723 __m256i test_mm256_maskz_sub_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
    724   //CHECK-LABEL: @test_mm256_maskz_sub_epi16
    725   //CHECK: @llvm.x86.avx512.mask.psub.w.256
    726   return _mm256_maskz_sub_epi16(__U , __A, __B);
    727 }
    728 __m128i test_mm_mask_add_epi8 (__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
    729   //CHECK-LABEL: @test_mm_mask_add_epi8
    730   //CHECK: @llvm.x86.avx512.mask.padd.b.128
    731   return _mm_mask_add_epi8(__W, __U , __A, __B);
    732 }
    733 
    734 __m128i test_mm_maskz_add_epi8 (__mmask16 __U, __m128i __A, __m128i __B) {
    735   //CHECK-LABEL: @test_mm_maskz_add_epi8
    736   //CHECK: @llvm.x86.avx512.mask.padd.b.128
    737   return _mm_maskz_add_epi8(__U , __A, __B);
    738 }
    739 
    740 __m128i test_mm_mask_add_epi16 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
    741   //CHECK-LABEL: @test_mm_mask_add_epi16
    742   //CHECK: @llvm.x86.avx512.mask.padd.w.128
    743   return _mm_mask_add_epi16(__W, __U , __A, __B);
    744 }
    745 
    746 __m128i test_mm_maskz_add_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
    747   //CHECK-LABEL: @test_mm_maskz_add_epi16
    748   //CHECK: @llvm.x86.avx512.mask.padd.w.128
    749   return _mm_maskz_add_epi16(__U , __A, __B);
    750 }
    751 
    752 __m128i test_mm_mask_sub_epi8 (__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
    753   //CHECK-LABEL: @test_mm_mask_sub_epi8
    754   //CHECK: @llvm.x86.avx512.mask.psub.b.128
    755   return _mm_mask_sub_epi8(__W, __U , __A, __B);
    756 }
    757 
    758 __m128i test_mm_maskz_sub_epi8 (__mmask16 __U, __m128i __A, __m128i __B) {
    759   //CHECK-LABEL: @test_mm_maskz_sub_epi8
    760   //CHECK: @llvm.x86.avx512.mask.psub.b.128
    761   return _mm_maskz_sub_epi8(__U , __A, __B);
    762 }
    763 
    764 __m128i test_mm_mask_sub_epi16 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
    765   //CHECK-LABEL: @test_mm_mask_sub_epi16
    766   //CHECK: @llvm.x86.avx512.mask.psub.w.128
    767   return _mm_mask_sub_epi16(__W, __U , __A, __B);
    768 }
    769 
    770 __m128i test_mm_maskz_sub_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
    771   //CHECK-LABEL: @test_mm_maskz_sub_epi16
    772   //CHECK: @llvm.x86.avx512.mask.psub.w.128
    773   return _mm_maskz_sub_epi16(__U , __A, __B);
    774 }
    775 
    776 __m256i test_mm256_mask_mullo_epi16 (__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
    777   //CHECK-LABEL: @test_mm256_mask_mullo_epi16
    778   //CHECK: @llvm.x86.avx512.mask.pmull.w.256
    779   return _mm256_mask_mullo_epi16(__W, __U , __A, __B);
    780 }
    781 
    782 __m256i test_mm256_maskz_mullo_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
    783   //CHECK-LABEL: @test_mm256_maskz_mullo_epi16
    784   //CHECK: @llvm.x86.avx512.mask.pmull.w.256
    785   return _mm256_maskz_mullo_epi16(__U , __A, __B);
    786 }
    787 
    788 __m128i test_mm_mask_mullo_epi16 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
    789   //CHECK-LABEL: @test_mm_mask_mullo_epi16
    790   //CHECK: @llvm.x86.avx512.mask.pmull.w.128
    791   return _mm_mask_mullo_epi16(__W, __U , __A, __B);
    792 }
    793 
    794 __m128i test_mm_maskz_mullo_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
    795   //CHECK-LABEL: @test_mm_maskz_mullo_epi16
    796   //CHECK: @llvm.x86.avx512.mask.pmull.w.128
    797   return _mm_maskz_mullo_epi16(__U , __A, __B);
    798 }
    799 
    800 
    801 __m128i test_mm_mask_blend_epi8(__mmask16 __U, __m128i __A, __m128i __W) {
    802   // CHECK-LABEL: @test_mm_mask_blend_epi8
    803   // CHECK: @llvm.x86.avx512.mask.blend.b.128
    804   return _mm_mask_blend_epi8(__U,__A,__W);
    805 }
    806 __m256i test_mm256_mask_blend_epi8(__mmask32 __U, __m256i __A, __m256i __W) {
    807   // CHECK-LABEL: @test_mm256_mask_blend_epi8
    808   // CHECK: @llvm.x86.avx512.mask.blend.b.256
    809   return _mm256_mask_blend_epi8(__U,__A,__W);
    810 }
    811 
    812 __m128i test_mm_mask_blend_epi16(__mmask8 __U, __m128i __A, __m128i __W) {
    813   // CHECK-LABEL: @test_mm_mask_blend_epi16
    814   // CHECK: @llvm.x86.avx512.mask.blend.w.128
    815   return _mm_mask_blend_epi16(__U,__A,__W);
    816 }
    817 
    818 __m256i test_mm256_mask_blend_epi16(__mmask16 __U, __m256i __A, __m256i __W) {
    819   // CHECK-LABEL: @test_mm256_mask_blend_epi16
    820   // CHECK: @llvm.x86.avx512.mask.blend.w.256
    821   return _mm256_mask_blend_epi16(__U,__A,__W);
    822 }
    823 
    824 __m128i test_mm_mask_abs_epi8(__m128i __W, __mmask16 __U, __m128i __A) {
    825   // CHECK-LABEL: @test_mm_mask_abs_epi8
    826   // CHECK: @llvm.x86.avx512.mask.pabs.b.128
    827   return _mm_mask_abs_epi8(__W,__U,__A);
    828 }
    829 
    830 __m128i test_mm_maskz_abs_epi8(__mmask16 __U, __m128i __A) {
    831   // CHECK-LABEL: @test_mm_maskz_abs_epi8
    832   // CHECK: @llvm.x86.avx512.mask.pabs.b.128
    833   return _mm_maskz_abs_epi8(__U,__A);
    834 }
    835 
    836 __m256i test_mm256_mask_abs_epi8(__m256i __W, __mmask32 __U, __m256i __A) {
    837   // CHECK-LABEL: @test_mm256_mask_abs_epi8
    838   // CHECK: @llvm.x86.avx512.mask.pabs.b.256
    839   return _mm256_mask_abs_epi8(__W,__U,__A);
    840 }
    841 
    842 __m256i test_mm256_maskz_abs_epi8(__mmask32 __U, __m256i __A) {
    843   // CHECK-LABEL: @test_mm256_maskz_abs_epi8
    844   // CHECK: @llvm.x86.avx512.mask.pabs.b.256
    845   return _mm256_maskz_abs_epi8(__U,__A);
    846 }
    847 
    848 __m128i test_mm_mask_abs_epi16(__m128i __W, __mmask8 __U, __m128i __A) {
    849   // CHECK-LABEL: @test_mm_mask_abs_epi16
    850   // CHECK: @llvm.x86.avx512.mask.pabs.w.128
    851   return _mm_mask_abs_epi16(__W,__U,__A);
    852 }
    853 
    854 __m128i test_mm_maskz_abs_epi16(__mmask8 __U, __m128i __A) {
    855   // CHECK-LABEL: @test_mm_maskz_abs_epi16
    856   // CHECK: @llvm.x86.avx512.mask.pabs.w.128
    857   return _mm_maskz_abs_epi16(__U,__A);
    858 }
    859 
    860 __m256i test_mm256_mask_abs_epi16(__m256i __W, __mmask16 __U, __m256i __A) {
    861   // CHECK-LABEL: @test_mm256_mask_abs_epi16
    862   // CHECK: @llvm.x86.avx512.mask.pabs.w.256
    863   return _mm256_mask_abs_epi16(__W,__U,__A);
    864 }
    865 
    866 __m256i test_mm256_maskz_abs_epi16(__mmask16 __U, __m256i __A) {
    867   // CHECK-LABEL: @test_mm256_maskz_abs_epi16
    868   // CHECK: @llvm.x86.avx512.mask.pabs.w.256
    869   return _mm256_maskz_abs_epi16(__U,__A);
    870 }
    871 
    872 __m128i test_mm_maskz_packs_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
    873   // CHECK-LABEL: @test_mm_maskz_packs_epi32
    874   // CHECK: @llvm.x86.avx512.mask.packssdw.128
    875   return _mm_maskz_packs_epi32(__M,__A,__B);
    876 }
    877 __m128i test_mm_mask_packs_epi32(__m128i __W, __mmask16 __M, __m128i __A,          __m128i __B) {
    878   // CHECK-LABEL: @test_mm_mask_packs_epi32
    879   // CHECK: @llvm.x86.avx512.mask.packssdw.128
    880   return _mm_mask_packs_epi32(__W,__M,__A,__B);
    881 }
    882 __m256i test_mm256_maskz_packs_epi32(__mmask16 __M, __m256i __A, __m256i __B) {
    883   // CHECK-LABEL: @test_mm256_maskz_packs_epi32
    884   // CHECK: @llvm.x86.avx512.mask.packssdw.256
    885   return _mm256_maskz_packs_epi32(__M,__A,__B);
    886 }
    887 __m256i test_mm256_mask_packs_epi32(__m256i __W, __mmask16 __M, __m256i __A,       __m256i __B) {
    888   // CHECK-LABEL: @test_mm256_mask_packs_epi32
    889   // CHECK: @llvm.x86.avx512.mask.packssdw.256
    890   return _mm256_mask_packs_epi32(__W,__M,__A,__B);
    891 }
    892 __m128i test_mm_maskz_packs_epi16(__mmask16 __M, __m128i __A, __m128i __B) {
    893   // CHECK-LABEL: @test_mm_maskz_packs_epi16
    894   // CHECK: @llvm.x86.avx512.mask.packsswb.128
    895   return _mm_maskz_packs_epi16(__M,__A,__B);
    896 }
    897 __m128i test_mm_mask_packs_epi16(__m128i __W, __mmask16 __M, __m128i __A,          __m128i __B) {
    898   // CHECK-LABEL: @test_mm_mask_packs_epi16
    899   // CHECK: @llvm.x86.avx512.mask.packsswb.128
    900   return _mm_mask_packs_epi16(__W,__M,__A,__B);
    901 }
    902 __m256i test_mm256_maskz_packs_epi16(__mmask32 __M, __m256i __A, __m256i __B) {
    903   // CHECK-LABEL: @test_mm256_maskz_packs_epi16
    904   // CHECK: @llvm.x86.avx512.mask.packsswb.256
    905   return _mm256_maskz_packs_epi16(__M,__A,__B);
    906 }
    907 __m256i test_mm256_mask_packs_epi16(__m256i __W, __mmask32 __M, __m256i __A,       __m256i __B) {
    908   // CHECK-LABEL: @test_mm256_mask_packs_epi16
    909   // CHECK: @llvm.x86.avx512.mask.packsswb.256
    910   return _mm256_mask_packs_epi16(__W,__M,__A,__B);
    911 }
    912 
    913 __m128i test_mm_mask_packus_epi32(__m128i __W, __mmask16 __M, __m128i __A,           __m128i __B) {
    914   // CHECK-LABEL: @test_mm_mask_packus_epi32
    915   // CHECK: @llvm.x86.avx512.mask.packusdw.128
    916   return _mm_mask_packus_epi32(__W,__M,__A,__B);
    917 }
    918 
    919 __m128i test_mm_maskz_packus_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
    920   // CHECK-LABEL: @test_mm_maskz_packus_epi32
    921   // CHECK: @llvm.x86.avx512.mask.packusdw.128
    922   return _mm_maskz_packus_epi32(__M,__A,__B);
    923 }
    924 
    925 __m256i test_mm256_maskz_packus_epi32(__mmask16 __M, __m256i __A, __m256i __B) {
    926   // CHECK-LABEL: @test_mm256_maskz_packus_epi32
    927   // CHECK: @llvm.x86.avx512.mask.packusdw.256
    928   return _mm256_maskz_packus_epi32(__M,__A,__B);
    929 }
    930 
    931 __m256i test_mm256_mask_packus_epi32(__m256i __W, __mmask16 __M, __m256i __A,        __m256i __B) {
    932   // CHECK-LABEL: @test_mm256_mask_packus_epi32
    933   // CHECK: @llvm.x86.avx512.mask.packusdw.256
    934   return _mm256_mask_packus_epi32(__W,__M,__A,__B);
    935 }
    936 
    937 __m128i test_mm_maskz_packus_epi16(__mmask16 __M, __m128i __A, __m128i __B) {
    938   // CHECK-LABEL: @test_mm_maskz_packus_epi16
    939   // CHECK: @llvm.x86.avx512.mask.packuswb.128
    940   return _mm_maskz_packus_epi16(__M,__A,__B);
    941 }
    942 
    943 __m128i test_mm_mask_packus_epi16(__m128i __W, __mmask16 __M, __m128i __A,           __m128i __B) {
    944   // CHECK-LABEL: @test_mm_mask_packus_epi16
    945   // CHECK: @llvm.x86.avx512.mask.packuswb.128
    946   return _mm_mask_packus_epi16(__W,__M,__A,__B);
    947 }
    948 
    949 __m256i test_mm256_maskz_packus_epi16(__mmask32 __M, __m256i __A, __m256i __B) {
    950   // CHECK-LABEL: @test_mm256_maskz_packus_epi16
    951   // CHECK: @llvm.x86.avx512.mask.packuswb.256
    952   return _mm256_maskz_packus_epi16(__M,__A,__B);
    953 }
    954 
    955 __m256i test_mm256_mask_packus_epi16(__m256i __W, __mmask32 __M, __m256i __A,        __m256i __B) {
    956   // CHECK-LABEL: @test_mm256_mask_packus_epi16
    957   // CHECK: @llvm.x86.avx512.mask.packuswb.256
    958   return _mm256_mask_packus_epi16(__W,__M,__A,__B);
    959 }
    960 
    961 __m128i test_mm_mask_adds_epi8(__m128i __W, __mmask16 __U, __m128i __A,        __m128i __B) {
    962   // CHECK-LABEL: @test_mm_mask_adds_epi8
    963   // CHECK: @llvm.x86.avx512.mask.padds.b.128
    964   return _mm_mask_adds_epi8(__W,__U,__A,__B);
    965 }
    966 __m128i test_mm_maskz_adds_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
    967   // CHECK-LABEL: @test_mm_maskz_adds_epi8
    968   // CHECK: @llvm.x86.avx512.mask.padds.b.128
    969   return _mm_maskz_adds_epi8(__U,__A,__B);
    970 }
    971 __m256i test_mm256_mask_adds_epi8(__m256i __W, __mmask32 __U, __m256i __A,           __m256i __B) {
    972   // CHECK-LABEL: @test_mm256_mask_adds_epi8
    973   // CHECK: @llvm.x86.avx512.mask.padds.b.256
    974   return _mm256_mask_adds_epi8(__W,__U,__A,__B);
    975 }
    976 __m256i test_mm256_maskz_adds_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
    977   // CHECK-LABEL: @test_mm256_maskz_adds_epi8
    978   // CHECK: @llvm.x86.avx512.mask.padds.b.256
    979   return _mm256_maskz_adds_epi8(__U,__A,__B);
    980 }
    981 __m128i test_mm_mask_adds_epi16(__m128i __W, __mmask8 __U, __m128i __A,         __m128i __B) {
    982   // CHECK-LABEL: @test_mm_mask_adds_epi16
    983   // CHECK: @llvm.x86.avx512.mask.padds.w.128
    984   return _mm_mask_adds_epi16(__W,__U,__A,__B);
    985 }
    986 __m128i test_mm_maskz_adds_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
    987   // CHECK-LABEL: @test_mm_maskz_adds_epi16
    988   // CHECK: @llvm.x86.avx512.mask.padds.w.128
    989   return _mm_maskz_adds_epi16(__U,__A,__B);
    990 }
    991 __m256i test_mm256_mask_adds_epi16(__m256i __W, __mmask16 __U, __m256i __A,      __m256i __B) {
    992   // CHECK-LABEL: @test_mm256_mask_adds_epi16
    993   // CHECK: @llvm.x86.avx512.mask.padds.w.256
    994   return _mm256_mask_adds_epi16(__W,__U,__A,__B);
    995 }
    996 __m256i test_mm256_maskz_adds_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
    997   // CHECK-LABEL: @test_mm256_maskz_adds_epi16
    998   // CHECK: @llvm.x86.avx512.mask.padds.w.256
    999   return _mm256_maskz_adds_epi16(__U,__A,__B);
   1000 }
   1001 __m128i test_mm_mask_adds_epu8(__m128i __W, __mmask16 __U, __m128i __A,        __m128i __B) {
   1002   // CHECK-LABEL: @test_mm_mask_adds_epu8
   1003   // CHECK: @llvm.x86.avx512.mask.paddus.b.128
   1004   return _mm_mask_adds_epu8(__W,__U,__A,__B);
   1005 }
   1006 __m128i test_mm_maskz_adds_epu8(__mmask16 __U, __m128i __A, __m128i __B) {
   1007   // CHECK-LABEL: @test_mm_maskz_adds_epu8
   1008   // CHECK: @llvm.x86.avx512.mask.paddus.b.128
   1009   return _mm_maskz_adds_epu8(__U,__A,__B);
   1010 }
   1011 __m256i test_mm256_mask_adds_epu8(__m256i __W, __mmask32 __U, __m256i __A,           __m256i __B) {
   1012   // CHECK-LABEL: @test_mm256_mask_adds_epu8
   1013   // CHECK: @llvm.x86.avx512.mask.paddus.b.256
   1014   return _mm256_mask_adds_epu8(__W,__U,__A,__B);
   1015 }
   1016 __m256i test_mm256_maskz_adds_epu8(__mmask32 __U, __m256i __A, __m256i __B) {
   1017   // CHECK-LABEL: @test_mm256_maskz_adds_epu8
   1018   // CHECK: @llvm.x86.avx512.mask.paddus.b.256
   1019   return _mm256_maskz_adds_epu8(__U,__A,__B);
   1020 }
   1021 __m128i test_mm_mask_adds_epu16(__m128i __W, __mmask8 __U, __m128i __A,         __m128i __B) {
   1022   // CHECK-LABEL: @test_mm_mask_adds_epu16
   1023   // CHECK: @llvm.x86.avx512.mask.paddus.w.128
   1024   return _mm_mask_adds_epu16(__W,__U,__A,__B);
   1025 }
   1026 __m128i test_mm_maskz_adds_epu16(__mmask8 __U, __m128i __A, __m128i __B) {
   1027   // CHECK-LABEL: @test_mm_maskz_adds_epu16
   1028   // CHECK: @llvm.x86.avx512.mask.paddus.w.128
   1029   return _mm_maskz_adds_epu16(__U,__A,__B);
   1030 }
   1031 __m256i test_mm256_mask_adds_epu16(__m256i __W, __mmask16 __U, __m256i __A,      __m256i __B) {
   1032   // CHECK-LABEL: @test_mm256_mask_adds_epu16
   1033   // CHECK: @llvm.x86.avx512.mask.paddus.w.256
   1034   return _mm256_mask_adds_epu16(__W,__U,__A,__B);
   1035 }
   1036 __m256i test_mm256_maskz_adds_epu16(__mmask16 __U, __m256i __A, __m256i __B) {
   1037   // CHECK-LABEL: @test_mm256_maskz_adds_epu16
   1038   // CHECK: @llvm.x86.avx512.mask.paddus.w.256
   1039   return _mm256_maskz_adds_epu16(__U,__A,__B);
   1040 }
   1041 __m128i test_mm_mask_avg_epu8(__m128i __W, __mmask16 __U, __m128i __A,       __m128i __B) {
   1042   // CHECK-LABEL: @test_mm_mask_avg_epu8
   1043   // CHECK: @llvm.x86.avx512.mask.pavg.b.128
   1044   return _mm_mask_avg_epu8(__W,__U,__A,__B);
   1045 }
   1046 __m128i test_mm_maskz_avg_epu8(__mmask16 __U, __m128i __A, __m128i __B) {
   1047   // CHECK-LABEL: @test_mm_maskz_avg_epu8
   1048   // CHECK: @llvm.x86.avx512.mask.pavg.b.128
   1049   return _mm_maskz_avg_epu8(__U,__A,__B);
   1050 }
   1051 __m256i test_mm256_mask_avg_epu8(__m256i __W, __mmask32 __U, __m256i __A,          __m256i __B) {
   1052   // CHECK-LABEL: @test_mm256_mask_avg_epu8
   1053   // CHECK: @llvm.x86.avx512.mask.pavg.b.256
   1054   return _mm256_mask_avg_epu8(__W,__U,__A,__B);
   1055 }
   1056 __m256i test_mm256_maskz_avg_epu8(__mmask32 __U, __m256i __A, __m256i __B) {
   1057   // CHECK-LABEL: @test_mm256_maskz_avg_epu8
   1058   // CHECK: @llvm.x86.avx512.mask.pavg.b.256
   1059   return _mm256_maskz_avg_epu8(__U,__A,__B);
   1060 }
   1061 __m128i test_mm_mask_avg_epu16(__m128i __W, __mmask8 __U, __m128i __A,        __m128i __B) {
   1062   // CHECK-LABEL: @test_mm_mask_avg_epu16
   1063   // CHECK: @llvm.x86.avx512.mask.pavg.w.128
   1064   return _mm_mask_avg_epu16(__W,__U,__A,__B);
   1065 }
   1066 __m128i test_mm_maskz_avg_epu16(__mmask8 __U, __m128i __A, __m128i __B) {
   1067   // CHECK-LABEL: @test_mm_maskz_avg_epu16
   1068   // CHECK: @llvm.x86.avx512.mask.pavg.w.128
   1069   return _mm_maskz_avg_epu16(__U,__A,__B);
   1070 }
   1071 __m256i test_mm256_mask_avg_epu16(__m256i __W, __mmask16 __U, __m256i __A,           __m256i __B) {
   1072   // CHECK-LABEL: @test_mm256_mask_avg_epu16
   1073   // CHECK: @llvm.x86.avx512.mask.pavg.w.256
   1074   return _mm256_mask_avg_epu16(__W,__U,__A,__B);
   1075 }
   1076 __m256i test_mm256_maskz_avg_epu16(__mmask16 __U, __m256i __A, __m256i __B) {
   1077   // CHECK-LABEL: @test_mm256_maskz_avg_epu16
   1078   // CHECK: @llvm.x86.avx512.mask.pavg.w.256
   1079   return _mm256_maskz_avg_epu16(__U,__A,__B);
   1080 }
   1081 __m128i test_mm_maskz_max_epi8(__mmask16 __M, __m128i __A, __m128i __B) {
   1082   // CHECK-LABEL: @test_mm_maskz_max_epi8
   1083   // CHECK: @llvm.x86.avx512.mask.pmaxs.b.128
   1084   return _mm_maskz_max_epi8(__M,__A,__B);
   1085 }
   1086 __m128i test_mm_mask_max_epi8(__m128i __W, __mmask16 __M, __m128i __A,       __m128i __B) {
   1087   // CHECK-LABEL: @test_mm_mask_max_epi8
   1088   // CHECK: @llvm.x86.avx512.mask.pmaxs.b.128
   1089   return _mm_mask_max_epi8(__W,__M,__A,__B);
   1090 }
   1091 __m256i test_mm256_maskz_max_epi8(__mmask32 __M, __m256i __A, __m256i __B) {
   1092   // CHECK-LABEL: @test_mm256_maskz_max_epi8
   1093   // CHECK: @llvm.x86.avx512.mask.pmaxs.b.256
   1094   return _mm256_maskz_max_epi8(__M,__A,__B);
   1095 }
   1096 __m256i test_mm256_mask_max_epi8(__m256i __W, __mmask32 __M, __m256i __A,          __m256i __B) {
   1097   // CHECK-LABEL: @test_mm256_mask_max_epi8
   1098   // CHECK: @llvm.x86.avx512.mask.pmaxs.b.256
   1099   return _mm256_mask_max_epi8(__W,__M,__A,__B);
   1100 }
   1101 __m128i test_mm_maskz_max_epi16(__mmask8 __M, __m128i __A, __m128i __B) {
   1102   // CHECK-LABEL: @test_mm_maskz_max_epi16
   1103   // CHECK: @llvm.x86.avx512.mask.pmaxs.w.128
   1104   return _mm_maskz_max_epi16(__M,__A,__B);
   1105 }
   1106 __m128i test_mm_mask_max_epi16(__m128i __W, __mmask8 __M, __m128i __A,        __m128i __B) {
   1107   // CHECK-LABEL: @test_mm_mask_max_epi16
   1108   // CHECK: @llvm.x86.avx512.mask.pmaxs.w.128
   1109   return _mm_mask_max_epi16(__W,__M,__A,__B);
   1110 }
   1111 __m256i test_mm256_maskz_max_epi16(__mmask16 __M, __m256i __A, __m256i __B) {
   1112   // CHECK-LABEL: @test_mm256_maskz_max_epi16
   1113   // CHECK: @llvm.x86.avx512.mask.pmaxs.w.256
   1114   return _mm256_maskz_max_epi16(__M,__A,__B);
   1115 }
   1116 __m256i test_mm256_mask_max_epi16(__m256i __W, __mmask16 __M, __m256i __A,           __m256i __B) {
   1117   // CHECK-LABEL: @test_mm256_mask_max_epi16
   1118   // CHECK: @llvm.x86.avx512.mask.pmaxs.w.256
   1119   return _mm256_mask_max_epi16(__W,__M,__A,__B);
   1120 }
   1121 __m128i test_mm_maskz_max_epu8(__mmask16 __M, __m128i __A, __m128i __B) {
   1122   // CHECK-LABEL: @test_mm_maskz_max_epu8
   1123   // CHECK: @llvm.x86.avx512.mask.pmaxu.b.128
   1124   return _mm_maskz_max_epu8(__M,__A,__B);
   1125 }
   1126 __m128i test_mm_mask_max_epu8(__m128i __W, __mmask16 __M, __m128i __A,       __m128i __B) {
   1127   // CHECK-LABEL: @test_mm_mask_max_epu8
   1128   // CHECK: @llvm.x86.avx512.mask.pmaxu.b.128
   1129   return _mm_mask_max_epu8(__W,__M,__A,__B);
   1130 }
   1131 __m256i test_mm256_maskz_max_epu8(__mmask32 __M, __m256i __A, __m256i __B) {
   1132   // CHECK-LABEL: @test_mm256_maskz_max_epu8
   1133   // CHECK: @llvm.x86.avx512.mask.pmaxu.b.256
   1134   return _mm256_maskz_max_epu8(__M,__A,__B);
   1135 }
   1136 __m256i test_mm256_mask_max_epu8(__m256i __W, __mmask32 __M, __m256i __A,          __m256i __B) {
   1137   // CHECK-LABEL: @test_mm256_mask_max_epu8
   1138   // CHECK: @llvm.x86.avx512.mask.pmaxu.b.256
   1139   return _mm256_mask_max_epu8(__W,__M,__A,__B);
   1140 }
   1141 __m128i test_mm_maskz_max_epu16(__mmask8 __M, __m128i __A, __m128i __B) {
   1142   // CHECK-LABEL: @test_mm_maskz_max_epu16
   1143   // CHECK: @llvm.x86.avx512.mask.pmaxu.w.128
   1144   return _mm_maskz_max_epu16(__M,__A,__B);
   1145 }
   1146 __m128i test_mm_mask_max_epu16(__m128i __W, __mmask8 __M, __m128i __A,        __m128i __B) {
   1147   // CHECK-LABEL: @test_mm_mask_max_epu16
   1148   // CHECK: @llvm.x86.avx512.mask.pmaxu.w.128
   1149   return _mm_mask_max_epu16(__W,__M,__A,__B);
   1150 }
   1151 __m256i test_mm256_maskz_max_epu16(__mmask16 __M, __m256i __A, __m256i __B) {
   1152   // CHECK-LABEL: @test_mm256_maskz_max_epu16
   1153   // CHECK: @llvm.x86.avx512.mask.pmaxu.w.256
   1154   return _mm256_maskz_max_epu16(__M,__A,__B);
   1155 }
   1156 __m256i test_mm256_mask_max_epu16(__m256i __W, __mmask16 __M, __m256i __A,           __m256i __B) {
   1157   // CHECK-LABEL: @test_mm256_mask_max_epu16
   1158   // CHECK: @llvm.x86.avx512.mask.pmaxu.w.256
   1159   return _mm256_mask_max_epu16(__W,__M,__A,__B);
   1160 }
   1161 __m128i test_mm_maskz_min_epi8(__mmask16 __M, __m128i __A, __m128i __B) {
   1162   // CHECK-LABEL: @test_mm_maskz_min_epi8
   1163   // CHECK: @llvm.x86.avx512.mask.pmins.b.128
   1164   return _mm_maskz_min_epi8(__M,__A,__B);
   1165 }
   1166 __m128i test_mm_mask_min_epi8(__m128i __W, __mmask16 __M, __m128i __A,       __m128i __B) {
   1167   // CHECK-LABEL: @test_mm_mask_min_epi8
   1168   // CHECK: @llvm.x86.avx512.mask.pmins.b.128
   1169   return _mm_mask_min_epi8(__W,__M,__A,__B);
   1170 }
   1171 __m256i test_mm256_maskz_min_epi8(__mmask32 __M, __m256i __A, __m256i __B) {
   1172   // CHECK-LABEL: @test_mm256_maskz_min_epi8
   1173   // CHECK: @llvm.x86.avx512.mask.pmins.b.256
   1174   return _mm256_maskz_min_epi8(__M,__A,__B);
   1175 }
   1176 __m256i test_mm256_mask_min_epi8(__m256i __W, __mmask32 __M, __m256i __A,          __m256i __B) {
   1177   // CHECK-LABEL: @test_mm256_mask_min_epi8
   1178   // CHECK: @llvm.x86.avx512.mask.pmins.b.256
   1179   return _mm256_mask_min_epi8(__W,__M,__A,__B);
   1180 }
   1181 __m128i test_mm_maskz_min_epi16(__mmask8 __M, __m128i __A, __m128i __B) {
   1182   // CHECK-LABEL: @test_mm_maskz_min_epi16
   1183   // CHECK: @llvm.x86.avx512.mask.pmins.w.128
   1184   return _mm_maskz_min_epi16(__M,__A,__B);
   1185 }
   1186 __m128i test_mm_mask_min_epi16(__m128i __W, __mmask8 __M, __m128i __A,        __m128i __B) {
   1187   // CHECK-LABEL: @test_mm_mask_min_epi16
   1188   // CHECK: @llvm.x86.avx512.mask.pmins.w.128
   1189   return _mm_mask_min_epi16(__W,__M,__A,__B);
   1190 }
   1191 __m256i test_mm256_maskz_min_epi16(__mmask16 __M, __m256i __A, __m256i __B) {
   1192   // CHECK-LABEL: @test_mm256_maskz_min_epi16
   1193   // CHECK: @llvm.x86.avx512.mask.pmins.w.256
   1194   return _mm256_maskz_min_epi16(__M,__A,__B);
   1195 }
   1196 __m256i test_mm256_mask_min_epi16(__m256i __W, __mmask16 __M, __m256i __A,           __m256i __B) {
   1197   // CHECK-LABEL: @test_mm256_mask_min_epi16
   1198   // CHECK: @llvm.x86.avx512.mask.pmins.w.256
   1199   return _mm256_mask_min_epi16(__W,__M,__A,__B);
   1200 }
   1201 __m128i test_mm_maskz_min_epu8(__mmask16 __M, __m128i __A, __m128i __B) {
   1202   // CHECK-LABEL: @test_mm_maskz_min_epu8
   1203   // CHECK: @llvm.x86.avx512.mask.pminu.b.128
   1204   return _mm_maskz_min_epu8(__M,__A,__B);
   1205 }
   1206 __m128i test_mm_mask_min_epu8(__m128i __W, __mmask16 __M, __m128i __A,       __m128i __B) {
   1207   // CHECK-LABEL: @test_mm_mask_min_epu8
   1208   // CHECK: @llvm.x86.avx512.mask.pminu.b.128
   1209   return _mm_mask_min_epu8(__W,__M,__A,__B);
   1210 }
   1211 __m256i test_mm256_maskz_min_epu8(__mmask32 __M, __m256i __A, __m256i __B) {
   1212   // CHECK-LABEL: @test_mm256_maskz_min_epu8
   1213   // CHECK: @llvm.x86.avx512.mask.pminu.b.256
   1214   return _mm256_maskz_min_epu8(__M,__A,__B);
   1215 }
   1216 __m256i test_mm256_mask_min_epu8(__m256i __W, __mmask32 __M, __m256i __A,          __m256i __B) {
   1217   // CHECK-LABEL: @test_mm256_mask_min_epu8
   1218   // CHECK: @llvm.x86.avx512.mask.pminu.b.256
   1219   return _mm256_mask_min_epu8(__W,__M,__A,__B);
   1220 }
   1221 __m128i test_mm_maskz_min_epu16(__mmask8 __M, __m128i __A, __m128i __B) {
   1222   // CHECK-LABEL: @test_mm_maskz_min_epu16
   1223   // CHECK: @llvm.x86.avx512.mask.pminu.w.128
   1224   return _mm_maskz_min_epu16(__M,__A,__B);
   1225 }
   1226 __m128i test_mm_mask_min_epu16(__m128i __W, __mmask8 __M, __m128i __A,        __m128i __B) {
   1227   // CHECK-LABEL: @test_mm_mask_min_epu16
   1228   // CHECK: @llvm.x86.avx512.mask.pminu.w.128
   1229   return _mm_mask_min_epu16(__W,__M,__A,__B);
   1230 }
   1231 __m256i test_mm256_maskz_min_epu16(__mmask16 __M, __m256i __A, __m256i __B) {
   1232   // CHECK-LABEL: @test_mm256_maskz_min_epu16
   1233   // CHECK: @llvm.x86.avx512.mask.pminu.w.256
   1234   return _mm256_maskz_min_epu16(__M,__A,__B);
   1235 }
   1236 __m256i test_mm256_mask_min_epu16(__m256i __W, __mmask16 __M, __m256i __A,           __m256i __B) {
   1237   // CHECK-LABEL: @test_mm256_mask_min_epu16
   1238   // CHECK: @llvm.x86.avx512.mask.pminu.w.256
   1239   return _mm256_mask_min_epu16(__W,__M,__A,__B);
   1240 }
   1241 __m128i test_mm_mask_shuffle_epi8(__m128i __W, __mmask16 __U, __m128i __A,           __m128i __B) {
   1242   // CHECK-LABEL: @test_mm_mask_shuffle_epi8
   1243   // CHECK: @llvm.x86.avx512.mask.pshuf.b.128
   1244   return _mm_mask_shuffle_epi8(__W,__U,__A,__B);
   1245 }
   1246 __m128i test_mm_maskz_shuffle_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
   1247   // CHECK-LABEL: @test_mm_maskz_shuffle_epi8
   1248   // CHECK: @llvm.x86.avx512.mask.pshuf.b.128
   1249   return _mm_maskz_shuffle_epi8(__U,__A,__B);
   1250 }
   1251 __m256i test_mm256_mask_shuffle_epi8(__m256i __W, __mmask32 __U, __m256i __A,        __m256i __B) {
   1252   // CHECK-LABEL: @test_mm256_mask_shuffle_epi8
   1253   // CHECK: @llvm.x86.avx512.mask.pshuf.b.256
   1254   return _mm256_mask_shuffle_epi8(__W,__U,__A,__B);
   1255 }
   1256 __m256i test_mm256_maskz_shuffle_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
   1257   // CHECK-LABEL: @test_mm256_maskz_shuffle_epi8
   1258   // CHECK: @llvm.x86.avx512.mask.pshuf.b.256
   1259   return _mm256_maskz_shuffle_epi8(__U,__A,__B);
   1260 }
   1261 __m128i test_mm_mask_subs_epi8(__m128i __W, __mmask16 __U, __m128i __A,        __m128i __B) {
   1262   // CHECK-LABEL: @test_mm_mask_subs_epi8
   1263   // CHECK: @llvm.x86.avx512.mask.psubs.b.128
   1264   return _mm_mask_subs_epi8(__W,__U,__A,__B);
   1265 }
   1266 __m128i test_mm_maskz_subs_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
   1267   // CHECK-LABEL: @test_mm_maskz_subs_epi8
   1268   // CHECK: @llvm.x86.avx512.mask.psubs.b.128
   1269   return _mm_maskz_subs_epi8(__U,__A,__B);
   1270 }
   1271 __m256i test_mm256_mask_subs_epi8(__m256i __W, __mmask32 __U, __m256i __A,           __m256i __B) {
   1272   // CHECK-LABEL: @test_mm256_mask_subs_epi8
   1273   // CHECK: @llvm.x86.avx512.mask.psubs.b.256
   1274   return _mm256_mask_subs_epi8(__W,__U,__A,__B);
   1275 }
   1276 __m256i test_mm256_maskz_subs_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
   1277   // CHECK-LABEL: @test_mm256_maskz_subs_epi8
   1278   // CHECK: @llvm.x86.avx512.mask.psubs.b.256
   1279   return _mm256_maskz_subs_epi8(__U,__A,__B);
   1280 }
   1281 __m128i test_mm_mask_subs_epi16(__m128i __W, __mmask8 __U, __m128i __A,         __m128i __B) {
   1282   // CHECK-LABEL: @test_mm_mask_subs_epi16
   1283   // CHECK: @llvm.x86.avx512.mask.psubs.w.128
   1284   return _mm_mask_subs_epi16(__W,__U,__A,__B);
   1285 }
   1286 __m128i test_mm_maskz_subs_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
   1287   // CHECK-LABEL: @test_mm_maskz_subs_epi16
   1288   // CHECK: @llvm.x86.avx512.mask.psubs.w.128
   1289   return _mm_maskz_subs_epi16(__U,__A,__B);
   1290 }
   1291 __m256i test_mm256_mask_subs_epi16(__m256i __W, __mmask16 __U, __m256i __A,      __m256i __B) {
   1292   // CHECK-LABEL: @test_mm256_mask_subs_epi16
   1293   // CHECK: @llvm.x86.avx512.mask.psubs.w.256
   1294   return _mm256_mask_subs_epi16(__W,__U,__A,__B);
   1295 }
   1296 __m256i test_mm256_maskz_subs_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
   1297   // CHECK-LABEL: @test_mm256_maskz_subs_epi16
   1298   // CHECK: @llvm.x86.avx512.mask.psubs.w.256
   1299   return _mm256_maskz_subs_epi16(__U,__A,__B);
   1300 }
   1301 __m128i test_mm_mask_subs_epu8(__m128i __W, __mmask16 __U, __m128i __A,        __m128i __B) {
   1302   // CHECK-LABEL: @test_mm_mask_subs_epu8
   1303   // CHECK: @llvm.x86.avx512.mask.psubus.b.128
   1304   return _mm_mask_subs_epu8(__W,__U,__A,__B);
   1305 }
   1306 __m128i test_mm_maskz_subs_epu8(__mmask16 __U, __m128i __A, __m128i __B) {
   1307   // CHECK-LABEL: @test_mm_maskz_subs_epu8
   1308   // CHECK: @llvm.x86.avx512.mask.psubus.b.128
   1309   return _mm_maskz_subs_epu8(__U,__A,__B);
   1310 }
   1311 __m256i test_mm256_mask_subs_epu8(__m256i __W, __mmask32 __U, __m256i __A,           __m256i __B) {
   1312   // CHECK-LABEL: @test_mm256_mask_subs_epu8
   1313   // CHECK: @llvm.x86.avx512.mask.psubus.b.256
   1314   return _mm256_mask_subs_epu8(__W,__U,__A,__B);
   1315 }
   1316 __m256i test_mm256_maskz_subs_epu8(__mmask32 __U, __m256i __A, __m256i __B) {
   1317   // CHECK-LABEL: @test_mm256_maskz_subs_epu8
   1318   // CHECK: @llvm.x86.avx512.mask.psubus.b.256
   1319   return _mm256_maskz_subs_epu8(__U,__A,__B);
   1320 }
   1321 __m128i test_mm_mask_subs_epu16(__m128i __W, __mmask8 __U, __m128i __A,         __m128i __B) {
   1322   // CHECK-LABEL: @test_mm_mask_subs_epu16
   1323   // CHECK: @llvm.x86.avx512.mask.psubus.w.128
   1324   return _mm_mask_subs_epu16(__W,__U,__A,__B);
   1325 }
   1326 __m128i test_mm_maskz_subs_epu16(__mmask8 __U, __m128i __A, __m128i __B) {
   1327   // CHECK-LABEL: @test_mm_maskz_subs_epu16
   1328   // CHECK: @llvm.x86.avx512.mask.psubus.w.128
   1329   return _mm_maskz_subs_epu16(__U,__A,__B);
   1330 }
   1331 __m256i test_mm256_mask_subs_epu16(__m256i __W, __mmask16 __U, __m256i __A,      __m256i __B) {
   1332   // CHECK-LABEL: @test_mm256_mask_subs_epu16
   1333   // CHECK: @llvm.x86.avx512.mask.psubus.w.256
   1334   return _mm256_mask_subs_epu16(__W,__U,__A,__B);
   1335 }
   1336 __m256i test_mm256_maskz_subs_epu16(__mmask16 __U, __m256i __A, __m256i __B) {
   1337   // CHECK-LABEL: @test_mm256_maskz_subs_epu16
   1338   // CHECK: @llvm.x86.avx512.mask.psubus.w.256
   1339   return _mm256_maskz_subs_epu16(__U,__A,__B);
   1340 }
   1341 
   1342 
   1343 __m128i test_mm_mask2_permutex2var_epi16(__m128i __A, __m128i __I, __mmask8 __U,            __m128i __B) {
   1344   // CHECK-LABEL: @test_mm_mask2_permutex2var_epi16
   1345   // CHECK: @llvm.x86.avx512.mask.vpermi2var.hi.128
   1346   return _mm_mask2_permutex2var_epi16(__A,__I,__U,__B);
   1347 }
   1348 __m256i test_mm256_mask2_permutex2var_epi16(__m256i __A, __m256i __I,         __mmask16 __U, __m256i __B) {
   1349   // CHECK-LABEL: @test_mm256_mask2_permutex2var_epi16
   1350   // CHECK: @llvm.x86.avx512.mask.vpermi2var.hi.256
   1351   return _mm256_mask2_permutex2var_epi16(__A,__I,__U,__B);
   1352 }
   1353 __m128i test_mm_permutex2var_epi16(__m128i __A, __m128i __I, __m128i __B) {
   1354   // CHECK-LABEL: @test_mm_permutex2var_epi16
   1355   // CHECK: @llvm.x86.avx512.mask.vpermt2var.hi.128
   1356   return _mm_permutex2var_epi16(__A,__I,__B);
   1357 }
   1358 __m128i test_mm_mask_permutex2var_epi16(__m128i __A, __mmask8 __U, __m128i __I,           __m128i __B) {
   1359   // CHECK-LABEL: @test_mm_mask_permutex2var_epi16
   1360   // CHECK: @llvm.x86.avx512.mask.vpermt2var.hi.128
   1361   return _mm_mask_permutex2var_epi16(__A,__U,__I,__B);
   1362 }
   1363 __m128i test_mm_maskz_permutex2var_epi16(__mmask8 __U, __m128i __A, __m128i __I,            __m128i __B) {
   1364   // CHECK-LABEL: @test_mm_maskz_permutex2var_epi16
   1365   // CHECK: @llvm.x86.avx512.maskz.vpermt2var.hi.128
   1366   return _mm_maskz_permutex2var_epi16(__U,__A,__I,__B);
   1367 }
   1368 
   1369 __m256i test_mm256_permutex2var_epi16(__m256i __A, __m256i __I, __m256i __B) {
   1370   // CHECK-LABEL: @test_mm256_permutex2var_epi16
   1371   // CHECK: @llvm.x86.avx512.mask.vpermt2var.hi.256
   1372   return _mm256_permutex2var_epi16(__A,__I,__B);
   1373 }
   1374 __m256i test_mm256_mask_permutex2var_epi16(__m256i __A, __mmask16 __U,        __m256i __I, __m256i __B) {
   1375   // CHECK-LABEL: @test_mm256_mask_permutex2var_epi16
   1376   // CHECK: @llvm.x86.avx512.mask.vpermt2var.hi.256
   1377   return _mm256_mask_permutex2var_epi16(__A,__U,__I,__B);
   1378 }
   1379 __m256i test_mm256_maskz_permutex2var_epi16(__mmask16 __U, __m256i __A,         __m256i __I, __m256i __B) {
   1380   // CHECK-LABEL: @test_mm256_maskz_permutex2var_epi16
   1381   // CHECK: @llvm.x86.avx512.maskz.vpermt2var.hi.256
   1382   return _mm256_maskz_permutex2var_epi16(__U,__A,__I,__B);
   1383 }
   1384 __m128i test_mm_mask_maddubs_epi16(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
   1385   // CHECK-LABEL: @test_mm_mask_maddubs_epi16
   1386   // CHECK: @llvm.x86.avx512.mask.pmaddubs.w.128
   1387   return _mm_mask_maddubs_epi16(__W, __U, __X, __Y);
   1388 }
   1389 
   1390 __m128i test_mm_maskz_maddubs_epi16(__mmask8 __U, __m128i __X, __m128i __Y) {
   1391   // CHECK-LABEL: @test_mm_maskz_maddubs_epi16
   1392   // CHECK: @llvm.x86.avx512.mask.pmaddubs.w.128
   1393   return _mm_maskz_maddubs_epi16(__U, __X, __Y);
   1394 }
   1395 
   1396 __m256i test_mm256_mask_maddubs_epi16(__m256i __W, __mmask16 __U, __m256i __X, __m256i __Y) {
   1397   // CHECK-LABEL: @test_mm256_mask_maddubs_epi16
   1398   // CHECK: @llvm.x86.avx512.mask.pmaddubs.w.256
   1399   return _mm256_mask_maddubs_epi16(__W, __U, __X, __Y);
   1400 }
   1401 
   1402 __m256i test_mm256_maskz_maddubs_epi16(__mmask16 __U, __m256i __X, __m256i __Y) {
   1403   // CHECK-LABEL: @test_mm256_maskz_maddubs_epi16
   1404   // CHECK: @llvm.x86.avx512.mask.pmaddubs.w.256
   1405   return _mm256_maskz_maddubs_epi16(__U, __X, __Y);
   1406 }
   1407 
   1408 __m128i test_mm_mask_madd_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
   1409   // CHECK-LABEL: @test_mm_mask_madd_epi16
   1410   // CHECK: @llvm.x86.avx512.mask.pmaddw.d.128
   1411   return _mm_mask_madd_epi16(__W, __U, __A, __B);
   1412 }
   1413 
   1414 __m128i test_mm_maskz_madd_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
   1415   // CHECK-LABEL: @test_mm_maskz_madd_epi16
   1416   // CHECK: @llvm.x86.avx512.mask.pmaddw.d.128
   1417   return _mm_maskz_madd_epi16(__U, __A, __B);
   1418 }
   1419 
   1420 __m256i test_mm256_mask_madd_epi16(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
   1421   // CHECK-LABEL: @test_mm256_mask_madd_epi16
   1422   // CHECK: @llvm.x86.avx512.mask.pmaddw.d.256
   1423   return _mm256_mask_madd_epi16(__W, __U, __A, __B);
   1424 }
   1425 
   1426 __m256i test_mm256_maskz_madd_epi16(__mmask8 __U, __m256i __A, __m256i __B) {
   1427   // CHECK-LABEL: @test_mm256_maskz_madd_epi16
   1428   // CHECK: @llvm.x86.avx512.mask.pmaddw.d.256
   1429   return _mm256_maskz_madd_epi16(__U, __A, __B);
   1430 }
   1431 
   1432 __m128i test_mm_cvtsepi16_epi8(__m128i __A) {
   1433   // CHECK-LABEL: @test_mm_cvtsepi16_epi8
   1434   // CHECK: @llvm.x86.avx512.mask.pmovs.wb.128
   1435   return _mm_cvtsepi16_epi8(__A);
   1436 }
   1437 
   1438 __m128i test_mm_mask_cvtsepi16_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
   1439   // CHECK-LABEL: @test_mm_mask_cvtsepi16_epi8
   1440   // CHECK: @llvm.x86.avx512.mask.pmovs.wb.128
   1441   return _mm_mask_cvtsepi16_epi8(__O, __M, __A);
   1442 }
   1443 
   1444 __m128i test_mm_maskz_cvtsepi16_epi8(__mmask8 __M, __m128i __A) {
   1445   // CHECK-LABEL: @test_mm_maskz_cvtsepi16_epi8
   1446   // CHECK: @llvm.x86.avx512.mask.pmovs.wb.128
   1447   return _mm_maskz_cvtsepi16_epi8(__M, __A);
   1448 }
   1449 
   1450 __m128i test_mm256_cvtsepi16_epi8(__m256i __A) {
   1451   // CHECK-LABEL: @test_mm256_cvtsepi16_epi8
   1452   // CHECK: @llvm.x86.avx512.mask.pmovs.wb.256
   1453   return _mm256_cvtsepi16_epi8(__A);
   1454 }
   1455 
   1456 __m128i test_mm256_mask_cvtsepi16_epi8(__m128i __O, __mmask16 __M, __m256i __A) {
   1457   // CHECK-LABEL: @test_mm256_mask_cvtsepi16_epi8
   1458   // CHECK: @llvm.x86.avx512.mask.pmovs.wb.256
   1459   return _mm256_mask_cvtsepi16_epi8(__O, __M, __A);
   1460 }
   1461 
   1462 __m128i test_mm256_maskz_cvtsepi16_epi8(__mmask16 __M, __m256i __A) {
   1463   // CHECK-LABEL: @test_mm256_maskz_cvtsepi16_epi8
   1464   // CHECK: @llvm.x86.avx512.mask.pmovs.wb.256
   1465   return _mm256_maskz_cvtsepi16_epi8(__M, __A);
   1466 }
   1467 
   1468 __m128i test_mm_cvtusepi16_epi8(__m128i __A) {
   1469   // CHECK-LABEL: @test_mm_cvtusepi16_epi8
   1470   // CHECK: @llvm.x86.avx512.mask.pmovus.wb.128
   1471   return _mm_cvtusepi16_epi8(__A);
   1472 }
   1473 
   1474 __m128i test_mm_mask_cvtusepi16_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
   1475   // CHECK-LABEL: @test_mm_mask_cvtusepi16_epi8
   1476   // CHECK: @llvm.x86.avx512.mask.pmovus.wb.128
   1477   return _mm_mask_cvtusepi16_epi8(__O, __M, __A);
   1478 }
   1479 
   1480 __m128i test_mm_maskz_cvtusepi16_epi8(__mmask8 __M, __m128i __A) {
   1481   // CHECK-LABEL: @test_mm_maskz_cvtusepi16_epi8
   1482   // CHECK: @llvm.x86.avx512.mask.pmovus.wb.128
   1483   return _mm_maskz_cvtusepi16_epi8(__M, __A);
   1484 }
   1485 
   1486 __m128i test_mm256_cvtusepi16_epi8(__m256i __A) {
   1487   // CHECK-LABEL: @test_mm256_cvtusepi16_epi8
   1488   // CHECK: @llvm.x86.avx512.mask.pmovus.wb.256
   1489   return _mm256_cvtusepi16_epi8(__A);
   1490 }
   1491 
   1492 __m128i test_mm256_mask_cvtusepi16_epi8(__m128i __O, __mmask16 __M, __m256i __A) {
   1493   // CHECK-LABEL: @test_mm256_mask_cvtusepi16_epi8
   1494   // CHECK: @llvm.x86.avx512.mask.pmovus.wb.256
   1495   return _mm256_mask_cvtusepi16_epi8(__O, __M, __A);
   1496 }
   1497 
   1498 __m128i test_mm256_maskz_cvtusepi16_epi8(__mmask16 __M, __m256i __A) {
   1499   // CHECK-LABEL: @test_mm256_maskz_cvtusepi16_epi8
   1500   // CHECK: @llvm.x86.avx512.mask.pmovus.wb.256
   1501   return _mm256_maskz_cvtusepi16_epi8(__M, __A);
   1502 }
   1503 
   1504 __m128i test_mm_cvtepi16_epi8(__m128i __A) {
   1505   // CHECK-LABEL: @test_mm_cvtepi16_epi8
   1506   // CHECK: @llvm.x86.avx512.mask.pmov.wb.128
   1507   return _mm_cvtepi16_epi8(__A);
   1508 }
   1509 
   1510 __m128i test_mm_mask_cvtepi16_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
   1511   // CHECK-LABEL: @test_mm_mask_cvtepi16_epi8
   1512   // CHECK: @llvm.x86.avx512.mask.pmov.wb.128
   1513   return _mm_mask_cvtepi16_epi8(__O, __M, __A);
   1514 }
   1515 
   1516 __m128i test_mm_maskz_cvtepi16_epi8(__mmask8 __M, __m128i __A) {
   1517   // CHECK-LABEL: @test_mm_maskz_cvtepi16_epi8
   1518   // CHECK: @llvm.x86.avx512.mask.pmov.wb.128
   1519   return _mm_maskz_cvtepi16_epi8(__M, __A);
   1520 }
   1521 
   1522 __m128i test_mm256_cvtepi16_epi8(__m256i __A) {
   1523   // CHECK-LABEL: @test_mm256_cvtepi16_epi8
   1524   // CHECK: @llvm.x86.avx512.mask.pmov.wb.256
   1525   return _mm256_cvtepi16_epi8(__A);
   1526 }
   1527 
   1528 __m128i test_mm256_mask_cvtepi16_epi8(__m128i __O, __mmask16 __M, __m256i __A) {
   1529   // CHECK-LABEL: @test_mm256_mask_cvtepi16_epi8
   1530   // CHECK: @llvm.x86.avx512.mask.pmov.wb.256
   1531   return _mm256_mask_cvtepi16_epi8(__O, __M, __A);
   1532 }
   1533 
   1534 __m128i test_mm256_maskz_cvtepi16_epi8(__mmask16 __M, __m256i __A) {
   1535   // CHECK-LABEL: @test_mm256_maskz_cvtepi16_epi8
   1536   // CHECK: @llvm.x86.avx512.mask.pmov.wb.256
   1537   return _mm256_maskz_cvtepi16_epi8(__M, __A);
   1538 }
   1539 
   1540 __m128i test_mm_mask_mulhrs_epi16(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
   1541   // CHECK-LABEL: @test_mm_mask_mulhrs_epi16
   1542   // CHECK: @llvm.x86.avx512.mask.pmul.hr.sw.128
   1543   return _mm_mask_mulhrs_epi16(__W, __U, __X, __Y);
   1544 }
   1545 
   1546 __m128i test_mm_maskz_mulhrs_epi16(__mmask8 __U, __m128i __X, __m128i __Y) {
   1547   // CHECK-LABEL: @test_mm_maskz_mulhrs_epi16
   1548   // CHECK: @llvm.x86.avx512.mask.pmul.hr.sw.128
   1549   return _mm_maskz_mulhrs_epi16(__U, __X, __Y);
   1550 }
   1551 
   1552 __m256i test_mm256_mask_mulhrs_epi16(__m256i __W, __mmask16 __U, __m256i __X, __m256i __Y) {
   1553   // CHECK-LABEL: @test_mm256_mask_mulhrs_epi16
   1554   // CHECK: @llvm.x86.avx512.mask.pmul.hr.sw.256
   1555   return _mm256_mask_mulhrs_epi16(__W, __U, __X, __Y);
   1556 }
   1557 
   1558 __m256i test_mm256_maskz_mulhrs_epi16(__mmask16 __U, __m256i __X, __m256i __Y) {
   1559   // CHECK-LABEL: @test_mm256_maskz_mulhrs_epi16
   1560   // CHECK: @llvm.x86.avx512.mask.pmul.hr.sw.256
   1561   return _mm256_maskz_mulhrs_epi16(__U, __X, __Y);
   1562 }
   1563 
   1564 __m128i test_mm_mask_mulhi_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
   1565   // CHECK-LABEL: @test_mm_mask_mulhi_epu16
   1566   // CHECK: @llvm.x86.avx512.mask.pmulhu.w.128
   1567   return _mm_mask_mulhi_epu16(__W, __U, __A, __B);
   1568 }
   1569 
   1570 __m128i test_mm_maskz_mulhi_epu16(__mmask8 __U, __m128i __A, __m128i __B) {
   1571   // CHECK-LABEL: @test_mm_maskz_mulhi_epu16
   1572   // CHECK: @llvm.x86.avx512.mask.pmulhu.w.128
   1573   return _mm_maskz_mulhi_epu16(__U, __A, __B);
   1574 }
   1575 
   1576 __m256i test_mm256_mask_mulhi_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
   1577   // CHECK-LABEL: @test_mm256_mask_mulhi_epu16
   1578   // CHECK: @llvm.x86.avx512.mask.pmulhu.w.256
   1579   return _mm256_mask_mulhi_epu16(__W, __U, __A, __B);
   1580 }
   1581 
   1582 __m256i test_mm256_maskz_mulhi_epu16(__mmask16 __U, __m256i __A, __m256i __B) {
   1583   // CHECK-LABEL: @test_mm256_maskz_mulhi_epu16
   1584   // CHECK: @llvm.x86.avx512.mask.pmulhu.w.256
   1585   return _mm256_maskz_mulhi_epu16(__U, __A, __B);
   1586 }
   1587 
   1588 __m128i test_mm_mask_mulhi_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
   1589   // CHECK-LABEL: @test_mm_mask_mulhi_epi16
   1590   // CHECK: @llvm.x86.avx512.mask.pmulh.w.128
   1591   return _mm_mask_mulhi_epi16(__W, __U, __A, __B);
   1592 }
   1593 
   1594 __m128i test_mm_maskz_mulhi_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
   1595   // CHECK-LABEL: @test_mm_maskz_mulhi_epi16
   1596   // CHECK: @llvm.x86.avx512.mask.pmulh.w.128
   1597   return _mm_maskz_mulhi_epi16(__U, __A, __B);
   1598 }
   1599 
   1600 __m256i test_mm256_mask_mulhi_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
   1601   // CHECK-LABEL: @test_mm256_mask_mulhi_epi16
   1602   // CHECK: @llvm.x86.avx512.mask.pmulh.w.256
   1603   return _mm256_mask_mulhi_epi16(__W, __U, __A, __B);
   1604 }
   1605 
   1606 __m256i test_mm256_maskz_mulhi_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
   1607   // CHECK-LABEL: @test_mm256_maskz_mulhi_epi16
   1608   // CHECK: @llvm.x86.avx512.mask.pmulh.w.256
   1609   return _mm256_maskz_mulhi_epi16(__U, __A, __B);
   1610 }
   1611 
   1612 __m128i test_mm_mask_unpackhi_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
   1613   // CHECK-LABEL: @test_mm_mask_unpackhi_epi8
   1614   // CHECK: @llvm.x86.avx512.mask.punpckhb.w.128
   1615   return _mm_mask_unpackhi_epi8(__W, __U, __A, __B);
   1616 }
   1617 
   1618 __m128i test_mm_maskz_unpackhi_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
   1619   // CHECK-LABEL: @test_mm_maskz_unpackhi_epi8
   1620   // CHECK: @llvm.x86.avx512.mask.punpckhb.w.128
   1621   return _mm_maskz_unpackhi_epi8(__U, __A, __B);
   1622 }
   1623 
   1624 __m256i test_mm256_mask_unpackhi_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
   1625   // CHECK-LABEL: @test_mm256_mask_unpackhi_epi8
   1626   // CHECK: @llvm.x86.avx512.mask.punpckhb.w.256
   1627   return _mm256_mask_unpackhi_epi8(__W, __U, __A, __B);
   1628 }
   1629 
   1630 __m256i test_mm256_maskz_unpackhi_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
   1631   // CHECK-LABEL: @test_mm256_maskz_unpackhi_epi8
   1632   // CHECK: @llvm.x86.avx512.mask.punpckhb.w.256
   1633   return _mm256_maskz_unpackhi_epi8(__U, __A, __B);
   1634 }
   1635 
   1636 __m128i test_mm_mask_unpackhi_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
   1637   // CHECK-LABEL: @test_mm_mask_unpackhi_epi16
   1638   // CHECK: @llvm.x86.avx512.mask.punpckhw.d.128
   1639   return _mm_mask_unpackhi_epi16(__W, __U, __A, __B);
   1640 }
   1641 
   1642 __m128i test_mm_maskz_unpackhi_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
   1643   // CHECK-LABEL: @test_mm_maskz_unpackhi_epi16
   1644   // CHECK: @llvm.x86.avx512.mask.punpckhw.d.128
   1645   return _mm_maskz_unpackhi_epi16(__U, __A, __B);
   1646 }
   1647 
   1648 __m256i test_mm256_mask_unpackhi_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
   1649   // CHECK-LABEL: @test_mm256_mask_unpackhi_epi16
   1650   // CHECK: @llvm.x86.avx512.mask.punpckhw.d.256
   1651   return _mm256_mask_unpackhi_epi16(__W, __U, __A, __B);
   1652 }
   1653 
   1654 __m256i test_mm256_maskz_unpackhi_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
   1655   // CHECK-LABEL: @test_mm256_maskz_unpackhi_epi16
   1656   // CHECK: @llvm.x86.avx512.mask.punpckhw.d.256
   1657   return _mm256_maskz_unpackhi_epi16(__U, __A, __B);
   1658 }
   1659 
   1660 __m128i test_mm_mask_unpacklo_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
   1661   // CHECK-LABEL: @test_mm_mask_unpacklo_epi8
   1662   // CHECK: @llvm.x86.avx512.mask.punpcklb.w.128
   1663   return _mm_mask_unpacklo_epi8(__W, __U, __A, __B);
   1664 }
   1665 
   1666 __m128i test_mm_maskz_unpacklo_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
   1667   // CHECK-LABEL: @test_mm_maskz_unpacklo_epi8
   1668   // CHECK: @llvm.x86.avx512.mask.punpcklb.w.128
   1669   return _mm_maskz_unpacklo_epi8(__U, __A, __B);
   1670 }
   1671 
   1672 __m256i test_mm256_mask_unpacklo_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
   1673   // CHECK-LABEL: @test_mm256_mask_unpacklo_epi8
   1674   // CHECK: @llvm.x86.avx512.mask.punpcklb.w.256
   1675   return _mm256_mask_unpacklo_epi8(__W, __U, __A, __B);
   1676 }
   1677 
   1678 __m256i test_mm256_maskz_unpacklo_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
   1679   // CHECK-LABEL: @test_mm256_maskz_unpacklo_epi8
   1680   // CHECK: @llvm.x86.avx512.mask.punpcklb.w.256
   1681   return _mm256_maskz_unpacklo_epi8(__U, __A, __B);
   1682 }
   1683 
   1684 __m128i test_mm_mask_unpacklo_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
   1685   // CHECK-LABEL: @test_mm_mask_unpacklo_epi16
   1686   // CHECK: @llvm.x86.avx512.mask.punpcklw.d.128
   1687   return _mm_mask_unpacklo_epi16(__W, __U, __A, __B);
   1688 }
   1689 
   1690 __m128i test_mm_maskz_unpacklo_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
   1691   // CHECK-LABEL: @test_mm_maskz_unpacklo_epi16
   1692   // CHECK: @llvm.x86.avx512.mask.punpcklw.d.128
   1693   return _mm_maskz_unpacklo_epi16(__U, __A, __B);
   1694 }
   1695 
   1696 __m256i test_mm256_mask_unpacklo_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
   1697   // CHECK-LABEL: @test_mm256_mask_unpacklo_epi16
   1698   // CHECK: @llvm.x86.avx512.mask.punpcklw.d.256
   1699   return _mm256_mask_unpacklo_epi16(__W, __U, __A, __B);
   1700 }
   1701 
   1702 __m256i test_mm256_maskz_unpacklo_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
   1703   // CHECK-LABEL: @test_mm256_maskz_unpacklo_epi16
   1704   // CHECK: @llvm.x86.avx512.mask.punpcklw.d.256
   1705   return _mm256_maskz_unpacklo_epi16(__U, __A, __B);
   1706 }
   1707 
   1708