Home | History | Annotate | Download | only in CodeGen
      1 // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512f -target-feature +avx512vl -emit-llvm -o - -Werror | FileCheck %s
      2 
      3 // Don't include mm_malloc.h, it's system specific.
      4 #define __MM_MALLOC_H
      5 
      6 #include <immintrin.h>
      7 
      8 __mmask8 test_mm_cmpeq_epu32_mask(__m128i __a, __m128i __b) {
      9   // CHECK-LABEL: @test_mm_cmpeq_epu32_mask
     10   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
     11   // CHECK: shufflevector <4 x i1> %{{.*}}, <4 x i1> zeroinitializer, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
     12   return (__mmask8)_mm_cmpeq_epu32_mask(__a, __b);
     13 }
     14 
     15 __mmask8 test_mm_mask_cmpeq_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
     16   // CHECK-LABEL: @test_mm_mask_cmpeq_epu32_mask
     17   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
     18   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
     19   return (__mmask8)_mm_mask_cmpeq_epu32_mask(__u, __a, __b);
     20 }
     21 
     22 __mmask8 test_mm_cmpeq_epu64_mask(__m128i __a, __m128i __b) {
     23   // CHECK-LABEL: @test_mm_cmpeq_epu64_mask
     24   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
     25   // CHECK: shufflevector <2 x i1> %{{.*}}, <2 x i1> zeroinitializer, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 2, i32 3, i32 2, i32 3>
     26   return (__mmask8)_mm_cmpeq_epu64_mask(__a, __b);
     27 }
     28 
     29 __mmask8 test_mm_mask_cmpeq_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
     30   // CHECK-LABEL: @test_mm_mask_cmpeq_epu64_mask
     31   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
     32   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
     33   return (__mmask8)_mm_mask_cmpeq_epu64_mask(__u, __a, __b);
     34 }
     35 
     36 __mmask8 test_mm_cmpge_epi32_mask(__m128i __a, __m128i __b) {
     37   // CHECK-LABEL: @test_mm_cmpge_epi32_mask
     38   // CHECK: icmp sge <4 x i32> %{{.*}}, %{{.*}}
     39   return (__mmask8)_mm_cmpge_epi32_mask(__a, __b);
     40 }
     41 
     42 __mmask8 test_mm_mask_cmpge_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
     43   // CHECK-LABEL: @test_mm_mask_cmpge_epi32_mask
     44   // CHECK: icmp sge <4 x i32> %{{.*}}, %{{.*}}
     45   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
     46   return (__mmask8)_mm_mask_cmpge_epi32_mask(__u, __a, __b);
     47 }
     48 
     49 __mmask8 test_mm_cmpge_epi64_mask(__m128i __a, __m128i __b) {
     50   // CHECK-LABEL: @test_mm_cmpge_epi64_mask
     51   // CHECK: icmp sge <2 x i64> %{{.*}}, %{{.*}}
     52   return (__mmask8)_mm_cmpge_epi64_mask(__a, __b);
     53 }
     54 
     55 __mmask8 test_mm_mask_cmpge_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
     56   // CHECK-LABEL: @test_mm_mask_cmpge_epi64_mask
     57   // CHECK: icmp sge <2 x i64> %{{.*}}, %{{.*}}
     58   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
     59   return (__mmask8)_mm_mask_cmpge_epi64_mask(__u, __a, __b);
     60 }
     61 
     62 __mmask8 test_mm256_cmpge_epi32_mask(__m256i __a, __m256i __b) {
     63   // CHECK-LABEL: @test_mm256_cmpge_epi32_mask
     64   // CHECK: icmp sge <8 x i32> %{{.*}}, %{{.*}}
     65   return (__mmask8)_mm256_cmpge_epi32_mask(__a, __b);
     66 }
     67 
     68 __mmask8 test_mm256_mask_cmpge_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
     69   // CHECK-LABEL: @test_mm256_mask_cmpge_epi32_mask
     70   // CHECK: icmp sge <8 x i32> %{{.*}}, %{{.*}}
     71   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
     72   return (__mmask8)_mm256_mask_cmpge_epi32_mask(__u, __a, __b);
     73 }
     74 
     75 __mmask8 test_mm256_cmpge_epi64_mask(__m256i __a, __m256i __b) {
     76   // CHECK-LABEL: @test_mm256_cmpge_epi64_mask
     77   // CHECK: icmp sge <4 x i64> %{{.*}}, %{{.*}}
     78   return (__mmask8)_mm256_cmpge_epi64_mask(__a, __b);
     79 }
     80 
     81 __mmask8 test_mm256_mask_cmpge_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
     82   // CHECK-LABEL: @test_mm256_mask_cmpge_epi64_mask
     83   // CHECK: icmp sge <4 x i64> %{{.*}}, %{{.*}}
     84   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
     85   return (__mmask8)_mm256_mask_cmpge_epi64_mask(__u, __a, __b);
     86 }
     87 
     88 __mmask8 test_mm_cmpge_epu32_mask(__m128i __a, __m128i __b) {
     89   // CHECK-LABEL: @test_mm_cmpge_epu32_mask
     90   // CHECK: icmp uge <4 x i32> %{{.*}}, %{{.*}}
     91   return (__mmask8)_mm_cmpge_epu32_mask(__a, __b);
     92 }
     93 
     94 __mmask8 test_mm_mask_cmpge_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
     95   // CHECK-LABEL: @test_mm_mask_cmpge_epu32_mask
     96   // CHECK: icmp uge <4 x i32> %{{.*}}, %{{.*}}
     97   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
     98   return (__mmask8)_mm_mask_cmpge_epu32_mask(__u, __a, __b);
     99 }
    100 
    101 __mmask8 test_mm_cmpge_epu64_mask(__m128i __a, __m128i __b) {
    102   // CHECK-LABEL: @test_mm_cmpge_epu64_mask
    103   // CHECK: icmp uge <2 x i64> %{{.*}}, %{{.*}}
    104   return (__mmask8)_mm_cmpge_epu64_mask(__a, __b);
    105 }
    106 
    107 __mmask8 test_mm_mask_cmpge_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    108   // CHECK-LABEL: @test_mm_mask_cmpge_epu64_mask
    109   // CHECK: icmp uge <2 x i64> %{{.*}}, %{{.*}}
    110   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
    111   return (__mmask8)_mm_mask_cmpge_epu64_mask(__u, __a, __b);
    112 }
    113 
    114 __mmask8 test_mm256_cmpge_epu32_mask(__m256i __a, __m256i __b) {
    115   // CHECK-LABEL: @test_mm256_cmpge_epu32_mask
    116   // CHECK: icmp uge <8 x i32> %{{.*}}, %{{.*}}
    117   return (__mmask8)_mm256_cmpge_epu32_mask(__a, __b);
    118 }
    119 
    120 __mmask8 test_mm256_mask_cmpge_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
    121   // CHECK-LABEL: @test_mm256_mask_cmpge_epu32_mask
    122   // CHECK: icmp uge <8 x i32> %{{.*}}, %{{.*}}
    123   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
    124   return (__mmask8)_mm256_mask_cmpge_epu32_mask(__u, __a, __b);
    125 }
    126 
    127 __mmask8 test_mm256_cmpge_epu64_mask(__m256i __a, __m256i __b) {
    128   // CHECK-LABEL: @test_mm256_cmpge_epu64_mask
    129   // CHECK: icmp uge <4 x i64> %{{.*}}, %{{.*}}
    130   return (__mmask8)_mm256_cmpge_epu64_mask(__a, __b);
    131 }
    132 
    133 __mmask8 test_mm256_mask_cmpge_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
    134   // CHECK-LABEL: @test_mm256_mask_cmpge_epu64_mask
    135   // CHECK: icmp uge <4 x i64> %{{.*}}, %{{.*}}
    136   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
    137   return (__mmask8)_mm256_mask_cmpge_epu64_mask(__u, __a, __b);
    138 }
    139 
    140 __mmask8 test_mm_cmpgt_epu32_mask(__m128i __a, __m128i __b) {
    141   // CHECK-LABEL: @test_mm_cmpgt_epu32_mask
    142   // CHECK: icmp ugt <4 x i32> %{{.*}}, %{{.*}}
    143   return (__mmask8)_mm_cmpgt_epu32_mask(__a, __b);
    144 }
    145 
    146 __mmask8 test_mm_mask_cmpgt_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    147   // CHECK-LABEL: @test_mm_mask_cmpgt_epu32_mask
    148   // CHECK: icmp ugt <4 x i32> %{{.*}}, %{{.*}}
    149   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
    150   return (__mmask8)_mm_mask_cmpgt_epu32_mask(__u, __a, __b);
    151 }
    152 
    153 __mmask8 test_mm_cmpgt_epu64_mask(__m128i __a, __m128i __b) {
    154   // CHECK-LABEL: @test_mm_cmpgt_epu64_mask
    155   // CHECK: icmp ugt <2 x i64> %{{.*}}, %{{.*}}
    156   return (__mmask8)_mm_cmpgt_epu64_mask(__a, __b);
    157 }
    158 
    159 __mmask8 test_mm_mask_cmpgt_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    160   // CHECK-LABEL: @test_mm_mask_cmpgt_epu64_mask
    161   // CHECK: icmp ugt <2 x i64> %{{.*}}, %{{.*}}
    162   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
    163   return (__mmask8)_mm_mask_cmpgt_epu64_mask(__u, __a, __b);
    164 }
    165 
    166 __mmask8 test_mm256_cmpgt_epu32_mask(__m256i __a, __m256i __b) {
    167   // CHECK-LABEL: @test_mm256_cmpgt_epu32_mask
    168   // CHECK: icmp ugt <8 x i32> %{{.*}}, %{{.*}}
    169   return (__mmask8)_mm256_cmpgt_epu32_mask(__a, __b);
    170 }
    171 
    172 __mmask8 test_mm256_mask_cmpgt_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
    173   // CHECK-LABEL: @test_mm256_mask_cmpgt_epu32_mask
    174   // CHECK: icmp ugt <8 x i32> %{{.*}}, %{{.*}}
    175   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
    176   return (__mmask8)_mm256_mask_cmpgt_epu32_mask(__u, __a, __b);
    177 }
    178 
    179 __mmask8 test_mm256_cmpgt_epu64_mask(__m256i __a, __m256i __b) {
    180   // CHECK-LABEL: @test_mm256_cmpgt_epu64_mask
    181   // CHECK: icmp ugt <4 x i64> %{{.*}}, %{{.*}}
    182   return (__mmask8)_mm256_cmpgt_epu64_mask(__a, __b);
    183 }
    184 
    185 __mmask8 test_mm256_mask_cmpgt_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
    186   // CHECK-LABEL: @test_mm256_mask_cmpgt_epu64_mask
    187   // CHECK: icmp ugt <4 x i64> %{{.*}}, %{{.*}}
    188   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
    189   return (__mmask8)_mm256_mask_cmpgt_epu64_mask(__u, __a, __b);
    190 }
    191 
    192 __mmask8 test_mm_cmple_epi32_mask(__m128i __a, __m128i __b) {
    193   // CHECK-LABEL: @test_mm_cmple_epi32_mask
    194   // CHECK: icmp sle <4 x i32> %{{.*}}, %{{.*}}
    195   return (__mmask8)_mm_cmple_epi32_mask(__a, __b);
    196 }
    197 
    198 __mmask8 test_mm_mask_cmple_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    199   // CHECK-LABEL: @test_mm_mask_cmple_epi32_mask
    200   // CHECK: icmp sle <4 x i32> %{{.*}}, %{{.*}}
    201   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
    202   return (__mmask8)_mm_mask_cmple_epi32_mask(__u, __a, __b);
    203 }
    204 
    205 __mmask8 test_mm_cmple_epi64_mask(__m128i __a, __m128i __b) {
    206   // CHECK-LABEL: @test_mm_cmple_epi64_mask
    207   // CHECK: icmp sle <2 x i64> %{{.*}}, %{{.*}}
    208   return (__mmask8)_mm_cmple_epi64_mask(__a, __b);
    209 }
    210 
    211 __mmask8 test_mm_mask_cmple_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    212   // CHECK-LABEL: @test_mm_mask_cmple_epi64_mask
    213   // CHECK: icmp sle <2 x i64> %{{.*}}, %{{.*}}
    214   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
    215   return (__mmask8)_mm_mask_cmple_epi64_mask(__u, __a, __b);
    216 }
    217 
    218 __mmask8 test_mm256_cmple_epi32_mask(__m256i __a, __m256i __b) {
    219   // CHECK-LABEL: @test_mm256_cmple_epi32_mask
    220   // CHECK: icmp sle <8 x i32> %{{.*}}, %{{.*}}
    221   return (__mmask8)_mm256_cmple_epi32_mask(__a, __b);
    222 }
    223 
    224 __mmask8 test_mm256_mask_cmple_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
    225   // CHECK-LABEL: @test_mm256_mask_cmple_epi32_mask
    226   // CHECK: icmp sle <8 x i32> %{{.*}}, %{{.*}}
    227   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
    228   return (__mmask8)_mm256_mask_cmple_epi32_mask(__u, __a, __b);
    229 }
    230 
    231 __mmask8 test_mm256_cmple_epi64_mask(__m256i __a, __m256i __b) {
    232   // CHECK-LABEL: @test_mm256_cmple_epi64_mask
    233   // CHECK: icmp sle <4 x i64> %{{.*}}, %{{.*}}
    234   return (__mmask8)_mm256_cmple_epi64_mask(__a, __b);
    235 }
    236 
    237 __mmask8 test_mm256_mask_cmple_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
    238   // CHECK-LABEL: @test_mm256_mask_cmple_epi64_mask
    239   // CHECK: icmp sle <4 x i64> %{{.*}}, %{{.*}}
    240   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
    241   return (__mmask8)_mm256_mask_cmple_epi64_mask(__u, __a, __b);
    242 }
    243 
    244 __mmask8 test_mm_cmple_epu32_mask(__m128i __a, __m128i __b) {
    245   // CHECK-LABEL: @test_mm_cmple_epu32_mask
    246   // CHECK: icmp ule <4 x i32> %{{.*}}, %{{.*}}
    247   return (__mmask8)_mm_cmple_epu32_mask(__a, __b);
    248 }
    249 
    250 __mmask8 test_mm_mask_cmple_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    251   // CHECK-LABEL: @test_mm_mask_cmple_epu32_mask
    252   // CHECK: icmp ule <4 x i32> %{{.*}}, %{{.*}}
    253   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
    254   return (__mmask8)_mm_mask_cmple_epu32_mask(__u, __a, __b);
    255 }
    256 
    257 __mmask8 test_mm_cmple_epu64_mask(__m128i __a, __m128i __b) {
    258   // CHECK-LABEL: @test_mm_cmple_epu64_mask
    259   // CHECK: icmp ule <2 x i64> %{{.*}}, %{{.*}}
    260   return (__mmask8)_mm_cmple_epu64_mask(__a, __b);
    261 }
    262 
    263 __mmask8 test_mm_mask_cmple_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    264   // CHECK-LABEL: @test_mm_mask_cmple_epu64_mask
    265   // CHECK: icmp ule <2 x i64> %{{.*}}, %{{.*}}
    266   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
    267   return (__mmask8)_mm_mask_cmple_epu64_mask(__u, __a, __b);
    268 }
    269 
    270 __mmask8 test_mm256_cmple_epu32_mask(__m256i __a, __m256i __b) {
    271   // CHECK-LABEL: @test_mm256_cmple_epu32_mask
    272   // CHECK: icmp ule <8 x i32> %{{.*}}, %{{.*}}
    273   return (__mmask8)_mm256_cmple_epu32_mask(__a, __b);
    274 }
    275 
    276 __mmask8 test_mm256_mask_cmple_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
    277   // CHECK-LABEL: @test_mm256_mask_cmple_epu32_mask
    278   // CHECK: icmp ule <8 x i32> %{{.*}}, %{{.*}}
    279   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
    280   return (__mmask8)_mm256_mask_cmple_epu32_mask(__u, __a, __b);
    281 }
    282 
    283 __mmask8 test_mm256_cmple_epu64_mask(__m256i __a, __m256i __b) {
    284   // CHECK-LABEL: @test_mm256_cmple_epu64_mask
    285   // CHECK: icmp ule <4 x i64> %{{.*}}, %{{.*}}
    286   return (__mmask8)_mm256_cmple_epu64_mask(__a, __b);
    287 }
    288 
    289 __mmask8 test_mm256_mask_cmple_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
    290   // CHECK-LABEL: @test_mm256_mask_cmple_epu64_mask
    291   // CHECK: icmp ule <4 x i64> %{{.*}}, %{{.*}}
    292   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
    293   return (__mmask8)_mm256_mask_cmple_epu64_mask(__u, __a, __b);
    294 }
    295 
    296 __mmask8 test_mm_cmplt_epi32_mask(__m128i __a, __m128i __b) {
    297   // CHECK-LABEL: @test_mm_cmplt_epi32_mask
    298   // CHECK: icmp slt <4 x i32> %{{.*}}, %{{.*}}
    299   return (__mmask8)_mm_cmplt_epi32_mask(__a, __b);
    300 }
    301 
    302 __mmask8 test_mm_mask_cmplt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    303   // CHECK-LABEL: @test_mm_mask_cmplt_epi32_mask
    304   // CHECK: icmp slt <4 x i32> %{{.*}}, %{{.*}}
    305   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
    306   return (__mmask8)_mm_mask_cmplt_epi32_mask(__u, __a, __b);
    307 }
    308 
    309 __mmask8 test_mm_cmplt_epi64_mask(__m128i __a, __m128i __b) {
    310   // CHECK-LABEL: @test_mm_cmplt_epi64_mask
    311   // CHECK: icmp slt <2 x i64> %{{.*}}, %{{.*}}
    312   return (__mmask8)_mm_cmplt_epi64_mask(__a, __b);
    313 }
    314 
    315 __mmask8 test_mm_mask_cmplt_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    316   // CHECK-LABEL: @test_mm_mask_cmplt_epi64_mask
    317   // CHECK: icmp slt <2 x i64> %{{.*}}, %{{.*}}
    318   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
    319   return (__mmask8)_mm_mask_cmplt_epi64_mask(__u, __a, __b);
    320 }
    321 
    322 __mmask8 test_mm256_cmplt_epi32_mask(__m256i __a, __m256i __b) {
    323   // CHECK-LABEL: @test_mm256_cmplt_epi32_mask
    324   // CHECK: icmp slt <8 x i32> %{{.*}}, %{{.*}}
    325   return (__mmask8)_mm256_cmplt_epi32_mask(__a, __b);
    326 }
    327 
    328 __mmask8 test_mm256_mask_cmplt_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
    329   // CHECK-LABEL: @test_mm256_mask_cmplt_epi32_mask
    330   // CHECK: icmp slt <8 x i32> %{{.*}}, %{{.*}}
    331   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
    332   return (__mmask8)_mm256_mask_cmplt_epi32_mask(__u, __a, __b);
    333 }
    334 
    335 __mmask8 test_mm256_cmplt_epi64_mask(__m256i __a, __m256i __b) {
    336   // CHECK-LABEL: @test_mm256_cmplt_epi64_mask
    337   // CHECK: icmp slt <4 x i64> %{{.*}}, %{{.*}}
    338   return (__mmask8)_mm256_cmplt_epi64_mask(__a, __b);
    339 }
    340 
    341 __mmask8 test_mm256_mask_cmplt_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
    342   // CHECK-LABEL: @test_mm256_mask_cmplt_epi64_mask
    343   // CHECK: icmp slt <4 x i64> %{{.*}}, %{{.*}}
    344   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
    345   return (__mmask8)_mm256_mask_cmplt_epi64_mask(__u, __a, __b);
    346 }
    347 
    348 __mmask8 test_mm_cmplt_epu32_mask(__m128i __a, __m128i __b) {
    349   // CHECK-LABEL: @test_mm_cmplt_epu32_mask
    350   // CHECK: icmp ult <4 x i32> %{{.*}}, %{{.*}}
    351   return (__mmask8)_mm_cmplt_epu32_mask(__a, __b);
    352 }
    353 
    354 __mmask8 test_mm_mask_cmplt_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    355   // CHECK-LABEL: @test_mm_mask_cmplt_epu32_mask
    356   // CHECK: icmp ult <4 x i32> %{{.*}}, %{{.*}}
    357   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
    358   return (__mmask8)_mm_mask_cmplt_epu32_mask(__u, __a, __b);
    359 }
    360 
    361 __mmask8 test_mm_cmplt_epu64_mask(__m128i __a, __m128i __b) {
    362   // CHECK-LABEL: @test_mm_cmplt_epu64_mask
    363   // CHECK: icmp ult <2 x i64> %{{.*}}, %{{.*}}
    364   return (__mmask8)_mm_cmplt_epu64_mask(__a, __b);
    365 }
    366 
    367 __mmask8 test_mm_mask_cmplt_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    368   // CHECK-LABEL: @test_mm_mask_cmplt_epu64_mask
    369   // CHECK: icmp ult <2 x i64> %{{.*}}, %{{.*}}
    370   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
    371   return (__mmask8)_mm_mask_cmplt_epu64_mask(__u, __a, __b);
    372 }
    373 
    374 __mmask8 test_mm256_cmplt_epu32_mask(__m256i __a, __m256i __b) {
    375   // CHECK-LABEL: @test_mm256_cmplt_epu32_mask
    376   // CHECK: icmp ult <8 x i32> %{{.*}}, %{{.*}}
    377   return (__mmask8)_mm256_cmplt_epu32_mask(__a, __b);
    378 }
    379 
    380 __mmask8 test_mm256_mask_cmplt_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
    381   // CHECK-LABEL: @test_mm256_mask_cmplt_epu32_mask
    382   // CHECK: icmp ult <8 x i32> %{{.*}}, %{{.*}}
    383   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
    384   return (__mmask8)_mm256_mask_cmplt_epu32_mask(__u, __a, __b);
    385 }
    386 
    387 __mmask8 test_mm256_cmplt_epu64_mask(__m256i __a, __m256i __b) {
    388   // CHECK-LABEL: @test_mm256_cmplt_epu64_mask
    389   // CHECK: icmp ult <4 x i64> %{{.*}}, %{{.*}}
    390   return (__mmask8)_mm256_cmplt_epu64_mask(__a, __b);
    391 }
    392 
    393 __mmask8 test_mm256_mask_cmplt_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
    394   // CHECK-LABEL: @test_mm256_mask_cmplt_epu64_mask
    395   // CHECK: icmp ult <4 x i64> %{{.*}}, %{{.*}}
    396   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
    397   return (__mmask8)_mm256_mask_cmplt_epu64_mask(__u, __a, __b);
    398 }
    399 
    400 __mmask8 test_mm_cmpneq_epi32_mask(__m128i __a, __m128i __b) {
    401   // CHECK-LABEL: @test_mm_cmpneq_epi32_mask
    402   // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
    403   return (__mmask8)_mm_cmpneq_epi32_mask(__a, __b);
    404 }
    405 
    406 __mmask8 test_mm_mask_cmpneq_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    407   // CHECK-LABEL: @test_mm_mask_cmpneq_epi32_mask
    408   // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
    409   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
    410   return (__mmask8)_mm_mask_cmpneq_epi32_mask(__u, __a, __b);
    411 }
    412 
    413 __mmask8 test_mm_cmpneq_epi64_mask(__m128i __a, __m128i __b) {
    414   // CHECK-LABEL: @test_mm_cmpneq_epi64_mask
    415   // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
    416   return (__mmask8)_mm_cmpneq_epi64_mask(__a, __b);
    417 }
    418 
    419 __mmask8 test_mm_mask_cmpneq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    420   // CHECK-LABEL: @test_mm_mask_cmpneq_epi64_mask
    421   // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
    422   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
    423   return (__mmask8)_mm_mask_cmpneq_epi64_mask(__u, __a, __b);
    424 }
    425 
    426 __mmask8 test_mm256_cmpneq_epi32_mask(__m256i __a, __m256i __b) {
    427   // CHECK-LABEL: @test_mm256_cmpneq_epi32_mask
    428   // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
    429   return (__mmask8)_mm256_cmpneq_epi32_mask(__a, __b);
    430 }
    431 
    432 __mmask8 test_mm256_mask_cmpneq_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
    433   // CHECK-LABEL: @test_mm256_mask_cmpneq_epi32_mask
    434   // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
    435   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
    436   return (__mmask8)_mm256_mask_cmpneq_epi32_mask(__u, __a, __b);
    437 }
    438 
    439 __mmask8 test_mm256_cmpneq_epi64_mask(__m256i __a, __m256i __b) {
    440   // CHECK-LABEL: @test_mm256_cmpneq_epi64_mask
    441   // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
    442   return (__mmask8)_mm256_cmpneq_epi64_mask(__a, __b);
    443 }
    444 
    445 __mmask8 test_mm256_mask_cmpneq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
    446   // CHECK-LABEL: @test_mm256_mask_cmpneq_epi64_mask
    447   // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
    448   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
    449   return (__mmask8)_mm256_mask_cmpneq_epi64_mask(__u, __a, __b);
    450 }
    451 
    452 __mmask8 test_mm_cmpneq_epu32_mask(__m128i __a, __m128i __b) {
    453   // CHECK-LABEL: @test_mm_cmpneq_epu32_mask
    454   // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
    455   return (__mmask8)_mm_cmpneq_epu32_mask(__a, __b);
    456 }
    457 
    458 __mmask8 test_mm_mask_cmpneq_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    459   // CHECK-LABEL: @test_mm_mask_cmpneq_epu32_mask
    460   // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}}
    461   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
    462   return (__mmask8)_mm_mask_cmpneq_epu32_mask(__u, __a, __b);
    463 }
    464 
    465 __mmask8 test_mm_cmpneq_epu64_mask(__m128i __a, __m128i __b) {
    466   // CHECK-LABEL: @test_mm_cmpneq_epu64_mask
    467   // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
    468   return (__mmask8)_mm_cmpneq_epu64_mask(__a, __b);
    469 }
    470 
    471 __mmask8 test_mm_mask_cmpneq_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    472   // CHECK-LABEL: @test_mm_mask_cmpneq_epu64_mask
    473   // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}}
    474   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
    475   return (__mmask8)_mm_mask_cmpneq_epu64_mask(__u, __a, __b);
    476 }
    477 
    478 __mmask8 test_mm256_cmpneq_epu32_mask(__m256i __a, __m256i __b) {
    479   // CHECK-LABEL: @test_mm256_cmpneq_epu32_mask
    480   // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
    481   return (__mmask8)_mm256_cmpneq_epu32_mask(__a, __b);
    482 }
    483 
    484 __mmask8 test_mm256_mask_cmpneq_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
    485   // CHECK-LABEL: @test_mm256_mask_cmpneq_epu32_mask
    486   // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}}
    487   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
    488   return (__mmask8)_mm256_mask_cmpneq_epu32_mask(__u, __a, __b);
    489 }
    490 
    491 __mmask8 test_mm256_cmpneq_epu64_mask(__m256i __a, __m256i __b) {
    492   // CHECK-LABEL: @test_mm256_cmpneq_epu64_mask
    493   // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
    494   return (__mmask8)_mm256_cmpneq_epu64_mask(__a, __b);
    495 }
    496 
    497 __mmask8 test_mm256_mask_cmpneq_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
    498   // CHECK-LABEL: @test_mm256_mask_cmpneq_epu64_mask
    499   // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}}
    500   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
    501   return (__mmask8)_mm256_mask_cmpneq_epu64_mask(__u, __a, __b);
    502 }
    503 
    504 __mmask8 test_mm_cmp_epi32_mask(__m128i __a, __m128i __b) {
    505   // CHECK-LABEL: @test_mm_cmp_epi32_mask
    506   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
    507   return (__mmask8)_mm_cmp_epi32_mask(__a, __b, 0);
    508 }
    509 
    510 __mmask8 test_mm_mask_cmp_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    511   // CHECK-LABEL: @test_mm_mask_cmp_epi32_mask
    512   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
    513   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
    514   return (__mmask8)_mm_mask_cmp_epi32_mask(__u, __a, __b, 0);
    515 }
    516 
    517 __mmask8 test_mm_cmp_epi64_mask(__m128i __a, __m128i __b) {
    518   // CHECK-LABEL: @test_mm_cmp_epi64_mask
    519   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
    520   return (__mmask8)_mm_cmp_epi64_mask(__a, __b, 0);
    521 }
    522 
    523 __mmask8 test_mm_mask_cmp_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    524   // CHECK-LABEL: @test_mm_mask_cmp_epi64_mask
    525   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
    526   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
    527   return (__mmask8)_mm_mask_cmp_epi64_mask(__u, __a, __b, 0);
    528 }
    529 
    530 __mmask8 test_mm256_cmp_epi32_mask(__m256i __a, __m256i __b) {
    531   // CHECK-LABEL: @test_mm256_cmp_epi32_mask
    532   // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
    533   return (__mmask8)_mm256_cmp_epi32_mask(__a, __b, 0);
    534 }
    535 
    536 __mmask8 test_mm256_mask_cmp_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
    537   // CHECK-LABEL: @test_mm256_mask_cmp_epi32_mask
    538   // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
    539   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
    540   return (__mmask8)_mm256_mask_cmp_epi32_mask(__u, __a, __b, 0);
    541 }
    542 
    543 __mmask8 test_mm256_cmp_epi64_mask(__m256i __a, __m256i __b) {
    544   // CHECK-LABEL: @test_mm256_cmp_epi64_mask
    545   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
    546   return (__mmask8)_mm256_cmp_epi64_mask(__a, __b, 0);
    547 }
    548 
    549 __mmask8 test_mm256_mask_cmp_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
    550   // CHECK-LABEL: @test_mm256_mask_cmp_epi64_mask
    551   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
    552   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
    553   return (__mmask8)_mm256_mask_cmp_epi64_mask(__u, __a, __b, 0);
    554 }
    555 
    556 __mmask8 test_mm_cmp_epu32_mask(__m128i __a, __m128i __b) {
    557   // CHECK-LABEL: @test_mm_cmp_epu32_mask
    558   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
    559   return (__mmask8)_mm_cmp_epu32_mask(__a, __b, 0);
    560 }
    561 
    562 __mmask8 test_mm_mask_cmp_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    563   // CHECK-LABEL: @test_mm_mask_cmp_epu32_mask
    564   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
    565   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
    566   return (__mmask8)_mm_mask_cmp_epu32_mask(__u, __a, __b, 0);
    567 }
    568 
    569 __mmask8 test_mm_cmp_epu64_mask(__m128i __a, __m128i __b) {
    570   // CHECK-LABEL: @test_mm_cmp_epu64_mask
    571   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
    572   return (__mmask8)_mm_cmp_epu64_mask(__a, __b, 0);
    573 }
    574 
    575 __mmask8 test_mm_mask_cmp_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
    576   // CHECK-LABEL: @test_mm_mask_cmp_epu64_mask
    577   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
    578   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
    579   return (__mmask8)_mm_mask_cmp_epu64_mask(__u, __a, __b, 0);
    580 }
    581 
    582 __mmask8 test_mm256_cmp_epu32_mask(__m256i __a, __m256i __b) {
    583   // CHECK-LABEL: @test_mm256_cmp_epu32_mask
    584   // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
    585   return (__mmask8)_mm256_cmp_epu32_mask(__a, __b, 0);
    586 }
    587 
    588 __mmask8 test_mm256_mask_cmp_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
    589   // CHECK-LABEL: @test_mm256_mask_cmp_epu32_mask
    590   // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
    591   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
    592   return (__mmask8)_mm256_mask_cmp_epu32_mask(__u, __a, __b, 0);
    593 }
    594 
    595 __mmask8 test_mm256_cmp_epu64_mask(__m256i __a, __m256i __b) {
    596   // CHECK-LABEL: @test_mm256_cmp_epu64_mask
    597   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
    598   return (__mmask8)_mm256_cmp_epu64_mask(__a, __b, 0);
    599 }
    600 
    601 __mmask8 test_mm256_mask_cmp_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
    602   // CHECK-LABEL: @test_mm256_mask_cmp_epu64_mask
    603   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
    604   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
    605   return (__mmask8)_mm256_mask_cmp_epu64_mask(__u, __a, __b, 0);
    606 }
    607 
    608 __m256i test_mm256_mask_add_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
    609            __m256i __B) {
    610   //CHECK-LABEL: @test_mm256_mask_add_epi32
    611   //CHECK: @llvm.x86.avx512.mask.padd.d.256
    612   return _mm256_mask_add_epi32(__W, __U, __A, __B);
    613 }
    614 
    615 __m256i test_mm256_maskz_add_epi32 (__mmask8 __U, __m256i __A, __m256i __B) {
    616   //CHECK-LABEL: @test_mm256_maskz_add_epi32
    617   //CHECK: @llvm.x86.avx512.mask.padd.d.256
    618   return _mm256_maskz_add_epi32(__U, __A, __B);
    619 }
    620 
    621 __m256i test_mm256_mask_add_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
    622            __m256i __B) {
    623   //CHECK-LABEL: @test_mm256_mask_add_epi64
    624   //CHECK: @llvm.x86.avx512.mask.padd.q.256
    625   return _mm256_mask_add_epi64(__W,__U,__A,__B);
    626 }
    627 
    628 __m256i test_mm256_maskz_add_epi64 (__mmask8 __U, __m256i __A, __m256i __B) {
    629   //CHECK-LABEL: @test_mm256_maskz_add_epi64
    630   //CHECK: @llvm.x86.avx512.mask.padd.q.256
    631   return _mm256_maskz_add_epi64 (__U,__A,__B);
    632 }
    633 
    634 __m256i test_mm256_mask_sub_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
    635            __m256i __B) {
    636   //CHECK-LABEL: @test_mm256_mask_sub_epi32
    637   //CHECK: @llvm.x86.avx512.mask.psub.d.256
    638   return _mm256_mask_sub_epi32 (__W,__U,__A,__B);
    639 }
    640 
    641 __m256i test_mm256_maskz_sub_epi32 (__mmask8 __U, __m256i __A, __m256i __B) {
    642   //CHECK-LABEL: @test_mm256_maskz_sub_epi32
    643   //CHECK: @llvm.x86.avx512.mask.psub.d.256
    644   return _mm256_maskz_sub_epi32 (__U,__A,__B);
    645 }
    646 
    647 __m256i test_mm256_mask_sub_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
    648            __m256i __B) {
    649   //CHECK-LABEL: @test_mm256_mask_sub_epi64
    650   //CHECK: @llvm.x86.avx512.mask.psub.q.256
    651   return _mm256_mask_sub_epi64 (__W,__U,__A,__B);
    652 }
    653 
    654 __m256i test_mm256_maskz_sub_epi64 (__mmask8 __U, __m256i __A, __m256i __B) {
    655   //CHECK-LABEL: @test_mm256_maskz_sub_epi64
    656   //CHECK: @llvm.x86.avx512.mask.psub.q.256
    657   return _mm256_maskz_sub_epi64 (__U,__A,__B);
    658 }
    659 
    660 __m128i test_mm_mask_add_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
    661         __m128i __B) {
    662   //CHECK-LABEL: @test_mm_mask_add_epi32
    663   //CHECK: @llvm.x86.avx512.mask.padd.d.128
    664   return _mm_mask_add_epi32(__W,__U,__A,__B);
    665 }
    666 
    667 
    668 __m128i test_mm_maskz_add_epi32 (__mmask8 __U, __m128i __A, __m128i __B) {
    669   //CHECK-LABEL: @test_mm_maskz_add_epi32
    670   //CHECK: @llvm.x86.avx512.mask.padd.d.128
    671   return _mm_maskz_add_epi32 (__U,__A,__B);
    672 }
    673 
    674 __m128i test_mm_mask_add_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
    675         __m128i __B) {
    676 //CHECK-LABEL: @test_mm_mask_add_epi64
    677   //CHECK: @llvm.x86.avx512.mask.padd.q.128
    678   return _mm_mask_add_epi64 (__W,__U,__A,__B);
    679 }
    680 
    681 __m128i test_mm_maskz_add_epi64 (__mmask8 __U, __m128i __A, __m128i __B) {
    682   //CHECK-LABEL: @test_mm_maskz_add_epi64
    683   //CHECK: @llvm.x86.avx512.mask.padd.q.128
    684   return _mm_maskz_add_epi64 (__U,__A,__B);
    685 }
    686 
    687 __m128i test_mm_mask_sub_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
    688         __m128i __B) {
    689   //CHECK-LABEL: @test_mm_mask_sub_epi32
    690   //CHECK: @llvm.x86.avx512.mask.psub.d.128
    691   return _mm_mask_sub_epi32(__W, __U, __A, __B);
    692 }
    693 
    694 __m128i test_mm_maskz_sub_epi32 (__mmask8 __U, __m128i __A, __m128i __B) {
    695   //CHECK-LABEL: @test_mm_maskz_sub_epi32
    696   //CHECK: @llvm.x86.avx512.mask.psub.d.128
    697   return _mm_maskz_sub_epi32(__U, __A, __B);
    698 }
    699 
    700 __m128i test_mm_mask_sub_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
    701         __m128i __B) {
    702   //CHECK-LABEL: @test_mm_mask_sub_epi64
    703   //CHECK: @llvm.x86.avx512.mask.psub.q.128
    704   return _mm_mask_sub_epi64 (__W, __U, __A, __B);
    705 }
    706 
    707 __m128i test_mm_maskz_sub_epi64 (__mmask8 __U, __m128i __A, __m128i __B) {
    708   //CHECK-LABEL: @test_mm_maskz_sub_epi64
    709   //CHECK: @llvm.x86.avx512.mask.psub.q.128
    710   return _mm_maskz_sub_epi64 (__U, __A, __B);
    711 }
    712 
    713 __m256i test_mm256_mask_mul_epi32 (__m256i __W, __mmask8 __M, __m256i __X,
    714            __m256i __Y) {
    715   //CHECK-LABEL: @test_mm256_mask_mul_epi32
    716   //CHECK: @llvm.x86.avx512.mask.pmul.dq.256
    717   return _mm256_mask_mul_epi32(__W, __M, __X, __Y);
    718 }
    719 
    720 __m256i test_mm256_maskz_mul_epi32 (__mmask8 __M, __m256i __X, __m256i __Y) {
    721   //CHECK-LABEL: @test_mm256_maskz_mul_epi32
    722   //CHECK: @llvm.x86.avx512.mask.pmul.dq.256
    723   return _mm256_maskz_mul_epi32(__M, __X, __Y);
    724 }
    725 
    726 
    727 __m128i test_mm_mask_mul_epi32 (__m128i __W, __mmask8 __M, __m128i __X,
    728         __m128i __Y) {
    729   //CHECK-LABEL: @test_mm_mask_mul_epi32
    730   //CHECK: @llvm.x86.avx512.mask.pmul.dq.128
    731   return _mm_mask_mul_epi32(__W, __M, __X, __Y);
    732 }
    733 
    734 __m128i test_mm_maskz_mul_epi32 (__mmask8 __M, __m128i __X, __m128i __Y) {
    735   //CHECK-LABEL: @test_mm_maskz_mul_epi32
    736   //CHECK: @llvm.x86.avx512.mask.pmul.dq.128
    737   return _mm_maskz_mul_epi32(__M, __X, __Y);
    738 }
    739 
    740 __m256i test_mm256_mask_mul_epu32 (__m256i __W, __mmask8 __M, __m256i __X,
    741            __m256i __Y) {
    742   //CHECK-LABEL: @test_mm256_mask_mul_epu32
    743   //CHECK: @llvm.x86.avx512.mask.pmulu.dq.256
    744   return _mm256_mask_mul_epu32(__W, __M, __X, __Y);
    745 }
    746 
    747 __m256i test_mm256_maskz_mul_epu32 (__mmask8 __M, __m256i __X, __m256i __Y) {
    748   //CHECK-LABEL: @test_mm256_maskz_mul_epu32
    749   //CHECK: @llvm.x86.avx512.mask.pmulu.dq.256
    750   return _mm256_maskz_mul_epu32(__M, __X, __Y);
    751 }
    752 
    753 __m128i test_mm_mask_mul_epu32 (__m128i __W, __mmask8 __M, __m128i __X,
    754         __m128i __Y) {
    755   //CHECK-LABEL: @test_mm_mask_mul_epu32
    756   //CHECK: @llvm.x86.avx512.mask.pmulu.dq.128
    757   return _mm_mask_mul_epu32(__W, __M, __X, __Y);
    758 }
    759 
    760 __m128i test_mm_maskz_mul_epu32 (__mmask8 __M, __m128i __X, __m128i __Y) {
    761   //CHECK-LABEL: @test_mm_maskz_mul_epu32
    762   //CHECK: @llvm.x86.avx512.mask.pmulu.dq.128
    763   return _mm_maskz_mul_epu32(__M, __X, __Y);
    764 }
    765 
    766 __m128i test_mm_maskz_mullo_epi32 (__mmask8 __M, __m128i __A, __m128i __B) {
    767   //CHECK-LABEL: @test_mm_maskz_mullo_epi32
    768   //CHECK: @llvm.x86.avx512.mask.pmull.d.128
    769   return _mm_maskz_mullo_epi32(__M, __A, __B);
    770 }
    771 
    772 __m128i test_mm_mask_mullo_epi32 (__m128i __W, __mmask8 __M, __m128i __A,
    773           __m128i __B) {
    774   //CHECK-LABEL: @test_mm_mask_mullo_epi32
    775   //CHECK: @llvm.x86.avx512.mask.pmull.d.128
    776   return _mm_mask_mullo_epi32(__W, __M, __A, __B);
    777 }
    778 
    779 __m256i test_mm256_maskz_mullo_epi32 (__mmask8 __M, __m256i __A, __m256i __B) {
    780   //CHECK-LABEL: @test_mm256_maskz_mullo_epi32
    781   //CHECK: @llvm.x86.avx512.mask.pmull.d.256
    782   return _mm256_maskz_mullo_epi32(__M, __A, __B);
    783 }
    784 
    785 __m256i test_mm256_mask_mullo_epi32 (__m256i __W, __mmask8 __M, __m256i __A,
    786        __m256i __B) {
    787   //CHECK-LABEL: @test_mm256_mask_mullo_epi32
    788   //CHECK: @llvm.x86.avx512.mask.pmull.d.256
    789   return _mm256_mask_mullo_epi32(__W, __M, __A, __B);
    790 }
    791 
    792 __m256i test_mm256_mask_and_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
    793            __m256i __B) {
    794   //CHECK-LABEL: @test_mm256_mask_and_epi32
    795   //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
    796   return _mm256_mask_and_epi32(__W, __U, __A, __B);
    797 }
    798 
    799 __m256i test_mm256_maskz_and_epi32 (__mmask8 __U, __m256i __A, __m256i __B) {
    800   //CHECK-LABEL: @test_mm256_maskz_and_epi32
    801   //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
    802   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
    803   return _mm256_maskz_and_epi32(__U, __A, __B);
    804 }
    805 
    806 __m128i test_mm_mask_and_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
    807   //CHECK-LABEL: @test_mm_mask_and_epi32
    808   //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
    809   return _mm_mask_and_epi32(__W, __U, __A, __B);
    810 }
    811 
    812 __m128i test_mm_maskz_and_epi32 (__mmask8 __U, __m128i __A, __m128i __B) {
    813   //CHECK-LABEL: @test_mm_maskz_and_epi32
    814   //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
    815   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
    816   return _mm_maskz_and_epi32(__U, __A, __B);
    817 }
    818 
    819 __m256i test_mm256_mask_andnot_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
    820         __m256i __B) {
    821   //CHECK-LABEL: @test_mm256_mask_andnot_epi32
    822   //CHECK: xor <4 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1>
    823   //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
    824   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
    825   return _mm256_mask_andnot_epi32(__W, __U, __A, __B);
    826 }
    827 
    828 __m256i test_mm256_maskz_andnot_epi32 (__mmask8 __U, __m256i __A, __m256i __B) {
    829   //CHECK-LABEL: @test_mm256_maskz_andnot_epi32
    830   //CHECK: xor <4 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1>
    831   //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
    832   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
    833   return _mm256_maskz_andnot_epi32(__U, __A, __B);
    834 }
    835 
    836 __m128i test_mm_mask_andnot_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
    837            __m128i __B) {
    838   //CHECK-LABEL: @test_mm_mask_andnot_epi32
    839   //CHECK: xor <2 x i64> %{{.*}}, <i64 -1, i64 -1>
    840   //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
    841   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
    842   return _mm_mask_andnot_epi32(__W, __U, __A, __B);
    843 }
    844 
    845 __m128i test_mm_maskz_andnot_epi32 (__mmask8 __U, __m128i __A, __m128i __B) {
    846   //CHECK-LABEL: @test_mm_maskz_andnot_epi32
    847   //CHECK: xor <2 x i64> %{{.*}}, <i64 -1, i64 -1>
    848   //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
    849   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
    850   return _mm_maskz_andnot_epi32(__U, __A, __B);
    851 }
    852 
    853 __m256i test_mm256_mask_or_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
    854           __m256i __B) {
    855   //CHECK-LABEL: @test_mm256_mask_or_epi32
    856   //CHECK: or <4 x i64> %{{.*}}, %{{.*}}
    857   return _mm256_mask_or_epi32(__W, __U, __A, __B);
    858 }
    859 
    860  __m256i test_mm256_maskz_or_epi32 (__mmask8 __U, __m256i __A, __m256i __B) {
    861   //CHECK-LABEL: @test_mm256_maskz_or_epi32
    862   //CHECK: or <4 x i64> %{{.*}}, %{{.*}}
    863   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
    864   return _mm256_maskz_or_epi32(__U, __A, __B);
    865 }
    866 
    867  __m128i test_mm_mask_or_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
    868   //CHECK-LABEL: @test_mm_mask_or_epi32
    869   //CHECK: or <2 x i64> %{{.*}}, %{{.*}}
    870   return _mm_mask_or_epi32(__W, __U, __A, __B);
    871 }
    872 
    873 __m128i test_mm_maskz_or_epi32 (__mmask8 __U, __m128i __A, __m128i __B) {
    874   //CHECK-LABEL: @test_mm_maskz_or_epi32
    875   //CHECK: or <2 x i64> %{{.*}}, %{{.*}}
    876   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
    877   return _mm_maskz_or_epi32(__U, __A, __B);
    878 }
    879 
    880 __m256i test_mm256_mask_xor_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
    881            __m256i __B) {
    882   //CHECK-LABEL: @test_mm256_mask_xor_epi32
    883   //CHECK: xor <4 x i64> %{{.*}}, %{{.*}}
    884   return _mm256_mask_xor_epi32(__W, __U, __A, __B);
    885 }
    886 
    887 __m256i test_mm256_maskz_xor_epi32 (__mmask8 __U, __m256i __A, __m256i __B) {
    888   //CHECK-LABEL: @test_mm256_maskz_xor_epi32
    889   //CHECK: xor <4 x i64> %{{.*}}, %{{.*}}
    890   //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
    891   return _mm256_maskz_xor_epi32(__U, __A, __B);
    892 }
    893 
    894 __m128i test_mm_mask_xor_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
    895         __m128i __B) {
    896   //CHECK-LABEL: @test_mm_mask_xor_epi32
    897   //CHECK: xor <2 x i64> %{{.*}}, %{{.*}}
    898   return _mm_mask_xor_epi32(__W, __U, __A, __B);
    899 }
    900 
    901 __m128i test_mm_maskz_xor_epi32 (__mmask8 __U, __m128i __A, __m128i __B) {
    902   //CHECK-LABEL: @test_mm_maskz_xor_epi32
    903   //CHECK: xor <2 x i64> %{{.*}}, %{{.*}}
    904   //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
    905   return _mm_maskz_xor_epi32(__U, __A, __B);
    906 }
    907 
    908 __m256i test_mm256_mask_and_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
    909            __m256i __B) {
    910   //CHECK-LABEL: @test_mm256_mask_and_epi64
    911   //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
    912   return _mm256_mask_and_epi64(__W, __U, __A, __B);
    913 }
    914 
    915 __m256i test_mm256_maskz_and_epi64 (__mmask8 __U, __m256i __A, __m256i __B) {
    916   //CHECK-LABEL: @test_mm256_maskz_and_epi64
    917   //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
    918   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
    919   return _mm256_maskz_and_epi64(__U, __A, __B);
    920 }
    921 
    922 __m128i test_mm_mask_and_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
    923         __m128i __B) {
    924   //CHECK-LABEL: @test_mm_mask_and_epi64
    925   //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
    926   return _mm_mask_and_epi64(__W,__U, __A, __B);
    927 }
    928 
    929 __m128i test_mm_maskz_and_epi64 (__mmask8 __U, __m128i __A, __m128i __B) {
    930   //CHECK-LABEL: @test_mm_maskz_and_epi64
    931   //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
    932   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
    933   return _mm_maskz_and_epi64(__U, __A, __B);
    934 }
    935 
    936 __m256i test_mm256_mask_andnot_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
    937         __m256i __B) {
    938   //CHECK-LABEL: @test_mm256_mask_andnot_epi64
    939   //CHECK: xor <4 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1>
    940   //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
    941   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
    942   return _mm256_mask_andnot_epi64(__W, __U, __A, __B);
    943 }
    944 
    945 __m256i test_mm256_maskz_andnot_epi64 (__mmask8 __U, __m256i __A, __m256i __B) {
    946   //CHECK-LABEL: @test_mm256_maskz_andnot_epi64
    947   //CHECK: xor <4 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1>
    948   //CHECK: and <4 x i64> %{{.*}}, %{{.*}}
    949   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
    950   return _mm256_maskz_andnot_epi64(__U, __A, __B);
    951 }
    952 
    953 __m128i test_mm_mask_andnot_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
    954            __m128i __B) {
    955   //CHECK-LABEL: @test_mm_mask_andnot_epi64
    956   //CHECK: xor <2 x i64> %{{.*}}, <i64 -1, i64 -1>
    957   //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
    958   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
    959   return _mm_mask_andnot_epi64(__W,__U, __A, __B);
    960 }
    961 
    962 __m128i test_mm_maskz_andnot_epi64 (__mmask8 __U, __m128i __A, __m128i __B) {
    963   //CHECK-LABEL: @test_mm_maskz_andnot_epi64
    964   //CHECK: xor <2 x i64> %{{.*}}, <i64 -1, i64 -1>
    965   //CHECK: and <2 x i64> %{{.*}}, %{{.*}}
    966   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
    967   return _mm_maskz_andnot_epi64(__U, __A, __B);
    968 }
    969 
    970 __m256i test_mm256_mask_or_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
    971           __m256i __B) {
    972   //CHECK-LABEL: @test_mm256_mask_or_epi64
    973   //CHECK: or <4 x i64> %{{.*}}, %{{.*}}
    974   return _mm256_mask_or_epi64(__W,__U, __A, __B);
    975 }
    976 
    977 __m256i test_mm256_maskz_or_epi64 (__mmask8 __U, __m256i __A, __m256i __B) {
    978   //CHECK-LABEL: @test_mm256_maskz_or_epi64
    979   //CHECK: or <4 x i64> %{{.*}}, %{{.*}}
    980   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
    981   return _mm256_maskz_or_epi64(__U, __A, __B);
    982 }
    983 
    984 __m128i test_mm_mask_or_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
    985   //CHECK-LABEL: @test_mm_mask_or_epi64
    986   //CHECK: or <2 x i64> %{{.*}}, %{{.*}}
    987   return _mm_mask_or_epi64(__W, __U, __A, __B);
    988 }
    989 
    990 __m128i test_mm_maskz_or_epi64 (__mmask8 __U, __m128i __A, __m128i __B) {
    991   //CHECK-LABEL: @test_mm_maskz_or_epi64
    992   //CHECK: or <2 x i64> %{{.*}}, %{{.*}}
    993   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
    994   return _mm_maskz_or_epi64( __U, __A, __B);
    995 }
    996 
    997 __m256i test_mm256_mask_xor_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
    998           __m256i __B) {
    999   //CHECK-LABEL: @test_mm256_mask_xor_epi64
   1000   //CHECK: xor <4 x i64> %{{.*}}, %{{.*}}
   1001   return _mm256_mask_xor_epi64(__W,__U, __A, __B);
   1002 }
   1003 
   1004 __m256i test_mm256_maskz_xor_epi64 (__mmask8 __U, __m256i __A, __m256i __B) {
   1005   //CHECK-LABEL: @test_mm256_maskz_xor_epi64
   1006   //CHECK: xor <4 x i64> %{{.*}}, %{{.*}}
   1007   //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
   1008   return _mm256_maskz_xor_epi64(__U, __A, __B);
   1009 }
   1010 
   1011 __m128i test_mm_mask_xor_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
   1012   //CHECK-LABEL: @test_mm_mask_xor_epi64
   1013   //CHECK: xor <2 x i64> %{{.*}}, %{{.*}}
   1014   return _mm_mask_xor_epi64(__W, __U, __A, __B);
   1015 }
   1016 
   1017 __m128i test_mm_maskz_xor_epi64 (__mmask8 __U, __m128i __A, __m128i __B) {
   1018   //CHECK-LABEL: @test_mm_maskz_xor_epi64
   1019   //CHECK: xor <2 x i64> %{{.*}}, %{{.*}}
   1020   //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
   1021   return _mm_maskz_xor_epi64( __U, __A, __B);
   1022 }
   1023 
   1024 __mmask8 test_mm256_cmp_ps_mask(__m256 __A, __m256 __B) {
   1025   // CHECK-LABEL: @test_mm256_cmp_ps_mask
   1026   // CHECK: @llvm.x86.avx512.mask.cmp.ps.256
   1027   return (__mmask8)_mm256_cmp_ps_mask(__A, __B, 0);
   1028 }
   1029 
   1030 __mmask8 test_mm256_mask_cmp_ps_mask(__mmask8 m, __m256 __A, __m256 __B) {
   1031   // CHECK-LABEL: @test_mm256_mask_cmp_ps_mask
   1032   // CHECK: @llvm.x86.avx512.mask.cmp.ps.256
   1033   return _mm256_mask_cmp_ps_mask(m, __A, __B, 0);
   1034 }
   1035 
   1036 __mmask8 test_mm_cmp_ps_mask(__m128 __A, __m128 __B) {
   1037   // CHECK-LABEL: @test_mm_cmp_ps_mask
   1038   // CHECK: @llvm.x86.avx512.mask.cmp.ps.128
   1039   return (__mmask8)_mm_cmp_ps_mask(__A, __B, 0);
   1040 }
   1041 
   1042 __mmask8 test_mm_mask_cmp_ps_mask(__mmask8 m, __m128 __A, __m128 __B) {
   1043   // CHECK-LABEL: @test_mm_mask_cmp_ps_mask
   1044   // CHECK: @llvm.x86.avx512.mask.cmp.ps.128
   1045   return _mm_mask_cmp_ps_mask(m, __A, __B, 0);
   1046 }
   1047 
   1048 __mmask8 test_mm256_cmp_pd_mask(__m256d __A, __m256d __B) {
   1049   // CHECK-LABEL: @test_mm256_cmp_pd_mask
   1050   // CHECK: @llvm.x86.avx512.mask.cmp.pd.256
   1051   return (__mmask8)_mm256_cmp_pd_mask(__A, __B, 0);
   1052 }
   1053 
   1054 __mmask8 test_mm256_mask_cmp_pd_mask(__mmask8 m, __m256d __A, __m256d __B) {
   1055   // CHECK-LABEL: @test_mm256_mask_cmp_pd_mask
   1056   // CHECK: @llvm.x86.avx512.mask.cmp.pd.256
   1057   return _mm256_mask_cmp_pd_mask(m, __A, __B, 0);
   1058 }
   1059 
   1060 __mmask8 test_mm_cmp_pd_mask(__m128d __A, __m128d __B) {
   1061   // CHECK-LABEL: @test_mm_cmp_pd_mask
   1062   // CHECK: @llvm.x86.avx512.mask.cmp.pd.128
   1063   return (__mmask8)_mm_cmp_pd_mask(__A, __B, 0);
   1064 }
   1065 
   1066 __mmask8 test_mm_mask_cmp_pd_mask(__mmask8 m, __m128d __A, __m128d __B) {
   1067   // CHECK-LABEL: @test_mm_mask_cmp_pd_mask
   1068   // CHECK: @llvm.x86.avx512.mask.cmp.pd.128
   1069   return _mm_mask_cmp_pd_mask(m, __A, __B, 0);
   1070 }
   1071 
   1072 __m128d test_mm_mask_fmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) {
   1073   // CHECK-LABEL: @test_mm_mask_fmadd_pd
   1074   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.128
   1075   return _mm_mask_fmadd_pd(__A, __U, __B, __C);
   1076 }
   1077 
   1078 __m128d test_mm_mask_fmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) {
   1079   // CHECK-LABEL: @test_mm_mask_fmsub_pd
   1080   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.128
   1081   return _mm_mask_fmsub_pd(__A, __U, __B, __C);
   1082 }
   1083 
   1084 __m128d test_mm_mask3_fmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) {
   1085   // CHECK-LABEL: @test_mm_mask3_fmadd_pd
   1086   // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.128
   1087   return _mm_mask3_fmadd_pd(__A, __B, __C, __U);
   1088 }
   1089 
   1090 __m128d test_mm_mask3_fnmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) {
   1091   // CHECK-LABEL: @test_mm_mask3_fnmadd_pd
   1092   // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.128
   1093   return _mm_mask3_fnmadd_pd(__A, __B, __C, __U);
   1094 }
   1095 
   1096 __m128d test_mm_maskz_fmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) {
   1097   // CHECK-LABEL: @test_mm_maskz_fmadd_pd
   1098   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.128
   1099   return _mm_maskz_fmadd_pd(__U, __A, __B, __C);
   1100 }
   1101 
   1102 __m128d test_mm_maskz_fmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) {
   1103   // CHECK-LABEL: @test_mm_maskz_fmsub_pd
   1104   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.128
   1105   return _mm_maskz_fmsub_pd(__U, __A, __B, __C);
   1106 }
   1107 
   1108 __m128d test_mm_maskz_fnmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) {
   1109   // CHECK-LABEL: @test_mm_maskz_fnmadd_pd
   1110   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.128
   1111   return _mm_maskz_fnmadd_pd(__U, __A, __B, __C);
   1112 }
   1113 
   1114 __m128d test_mm_maskz_fnmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) {
   1115   // CHECK-LABEL: @test_mm_maskz_fnmsub_pd
   1116   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.128
   1117   return _mm_maskz_fnmsub_pd(__U, __A, __B, __C);
   1118 }
   1119 
   1120 __m256d test_mm256_mask_fmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
   1121   // CHECK-LABEL: @test_mm256_mask_fmadd_pd
   1122   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.256
   1123   return _mm256_mask_fmadd_pd(__A, __U, __B, __C);
   1124 }
   1125 
   1126 __m256d test_mm256_mask_fmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
   1127   // CHECK-LABEL: @test_mm256_mask_fmsub_pd
   1128   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.256
   1129   return _mm256_mask_fmsub_pd(__A, __U, __B, __C);
   1130 }
   1131 
   1132 __m256d test_mm256_mask3_fmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
   1133   // CHECK-LABEL: @test_mm256_mask3_fmadd_pd
   1134   // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.256
   1135   return _mm256_mask3_fmadd_pd(__A, __B, __C, __U);
   1136 }
   1137 
   1138 __m256d test_mm256_mask3_fnmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
   1139   // CHECK-LABEL: @test_mm256_mask3_fnmadd_pd
   1140   // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.256
   1141   return _mm256_mask3_fnmadd_pd(__A, __B, __C, __U);
   1142 }
   1143 
   1144 __m256d test_mm256_maskz_fmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
   1145   // CHECK-LABEL: @test_mm256_maskz_fmadd_pd
   1146   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.256
   1147   return _mm256_maskz_fmadd_pd(__U, __A, __B, __C);
   1148 }
   1149 
   1150 __m256d test_mm256_maskz_fmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
   1151   // CHECK-LABEL: @test_mm256_maskz_fmsub_pd
   1152   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.256
   1153   return _mm256_maskz_fmsub_pd(__U, __A, __B, __C);
   1154 }
   1155 
   1156 __m256d test_mm256_maskz_fnmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
   1157   // CHECK-LABEL: @test_mm256_maskz_fnmadd_pd
   1158   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.256
   1159   return _mm256_maskz_fnmadd_pd(__U, __A, __B, __C);
   1160 }
   1161 
   1162 __m256d test_mm256_maskz_fnmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
   1163   // CHECK-LABEL: @test_mm256_maskz_fnmsub_pd
   1164   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.256
   1165   return _mm256_maskz_fnmsub_pd(__U, __A, __B, __C);
   1166 }
   1167 
   1168 __m128 test_mm_mask_fmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) {
   1169   // CHECK-LABEL: @test_mm_mask_fmadd_ps
   1170   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.128
   1171   return _mm_mask_fmadd_ps(__A, __U, __B, __C);
   1172 }
   1173 
   1174 __m128 test_mm_mask_fmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) {
   1175   // CHECK-LABEL: @test_mm_mask_fmsub_ps
   1176   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.128
   1177   return _mm_mask_fmsub_ps(__A, __U, __B, __C);
   1178 }
   1179 
   1180 __m128 test_mm_mask3_fmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) {
   1181   // CHECK-LABEL: @test_mm_mask3_fmadd_ps
   1182   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.128
   1183   return _mm_mask3_fmadd_ps(__A, __B, __C, __U);
   1184 }
   1185 
   1186 __m128 test_mm_mask3_fnmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) {
   1187   // CHECK-LABEL: @test_mm_mask3_fnmadd_ps
   1188   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.128
   1189   return _mm_mask3_fnmadd_ps(__A, __B, __C, __U);
   1190 }
   1191 
   1192 __m128 test_mm_maskz_fmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) {
   1193   // CHECK-LABEL: @test_mm_maskz_fmadd_ps
   1194   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.128
   1195   return _mm_maskz_fmadd_ps(__U, __A, __B, __C);
   1196 }
   1197 
   1198 __m128 test_mm_maskz_fmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) {
   1199   // CHECK-LABEL: @test_mm_maskz_fmsub_ps
   1200   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.128
   1201   return _mm_maskz_fmsub_ps(__U, __A, __B, __C);
   1202 }
   1203 
   1204 __m128 test_mm_maskz_fnmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) {
   1205   // CHECK-LABEL: @test_mm_maskz_fnmadd_ps
   1206   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.128
   1207   return _mm_maskz_fnmadd_ps(__U, __A, __B, __C);
   1208 }
   1209 
   1210 __m128 test_mm_maskz_fnmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) {
   1211   // CHECK-LABEL: @test_mm_maskz_fnmsub_ps
   1212   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.128
   1213   return _mm_maskz_fnmsub_ps(__U, __A, __B, __C);
   1214 }
   1215 
   1216 __m256 test_mm256_mask_fmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
   1217   // CHECK-LABEL: @test_mm256_mask_fmadd_ps
   1218   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.256
   1219   return _mm256_mask_fmadd_ps(__A, __U, __B, __C);
   1220 }
   1221 
   1222 __m256 test_mm256_mask_fmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
   1223   // CHECK-LABEL: @test_mm256_mask_fmsub_ps
   1224   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.256
   1225   return _mm256_mask_fmsub_ps(__A, __U, __B, __C);
   1226 }
   1227 
   1228 __m256 test_mm256_mask3_fmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
   1229   // CHECK-LABEL: @test_mm256_mask3_fmadd_ps
   1230   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.256
   1231   return _mm256_mask3_fmadd_ps(__A, __B, __C, __U);
   1232 }
   1233 
   1234 __m256 test_mm256_mask3_fnmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
   1235   // CHECK-LABEL: @test_mm256_mask3_fnmadd_ps
   1236   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.256
   1237   return _mm256_mask3_fnmadd_ps(__A, __B, __C, __U);
   1238 }
   1239 
   1240 __m256 test_mm256_maskz_fmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
   1241   // CHECK-LABEL: @test_mm256_maskz_fmadd_ps
   1242   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.256
   1243   return _mm256_maskz_fmadd_ps(__U, __A, __B, __C);
   1244 }
   1245 
   1246 __m256 test_mm256_maskz_fmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
   1247   // CHECK-LABEL: @test_mm256_maskz_fmsub_ps
   1248   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.256
   1249   return _mm256_maskz_fmsub_ps(__U, __A, __B, __C);
   1250 }
   1251 
   1252 __m256 test_mm256_maskz_fnmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
   1253   // CHECK-LABEL: @test_mm256_maskz_fnmadd_ps
   1254   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.256
   1255   return _mm256_maskz_fnmadd_ps(__U, __A, __B, __C);
   1256 }
   1257 
   1258 __m256 test_mm256_maskz_fnmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
   1259   // CHECK-LABEL: @test_mm256_maskz_fnmsub_ps
   1260   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.256
   1261   return _mm256_maskz_fnmsub_ps(__U, __A, __B, __C);
   1262 }
   1263 
   1264 __m128d test_mm_mask_fmaddsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) {
   1265   // CHECK-LABEL: @test_mm_mask_fmaddsub_pd
   1266   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.128
   1267   return _mm_mask_fmaddsub_pd(__A, __U, __B, __C);
   1268 }
   1269 
   1270 __m128d test_mm_mask_fmsubadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) {
   1271   // CHECK-LABEL: @test_mm_mask_fmsubadd_pd
   1272   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.128
   1273   return _mm_mask_fmsubadd_pd(__A, __U, __B, __C);
   1274 }
   1275 
   1276 __m128d test_mm_mask3_fmaddsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) {
   1277   // CHECK-LABEL: @test_mm_mask3_fmaddsub_pd
   1278   // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.pd.128
   1279   return _mm_mask3_fmaddsub_pd(__A, __B, __C, __U);
   1280 }
   1281 
   1282 __m128d test_mm_maskz_fmaddsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) {
   1283   // CHECK-LABEL: @test_mm_maskz_fmaddsub_pd
   1284   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.128
   1285   return _mm_maskz_fmaddsub_pd(__U, __A, __B, __C);
   1286 }
   1287 
   1288 __m128d test_mm_maskz_fmsubadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) {
   1289   // CHECK-LABEL: @test_mm_maskz_fmsubadd_pd
   1290   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.128
   1291   return _mm_maskz_fmsubadd_pd(__U, __A, __B, __C);
   1292 }
   1293 
   1294 __m256d test_mm256_mask_fmaddsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
   1295   // CHECK-LABEL: @test_mm256_mask_fmaddsub_pd
   1296   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.256
   1297   return _mm256_mask_fmaddsub_pd(__A, __U, __B, __C);
   1298 }
   1299 
   1300 __m256d test_mm256_mask_fmsubadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
   1301   // CHECK-LABEL: @test_mm256_mask_fmsubadd_pd
   1302   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.256
   1303   return _mm256_mask_fmsubadd_pd(__A, __U, __B, __C);
   1304 }
   1305 
   1306 __m256d test_mm256_mask3_fmaddsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
   1307   // CHECK-LABEL: @test_mm256_mask3_fmaddsub_pd
   1308   // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.pd.256
   1309   return _mm256_mask3_fmaddsub_pd(__A, __B, __C, __U);
   1310 }
   1311 
   1312 __m256d test_mm256_maskz_fmaddsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
   1313   // CHECK-LABEL: @test_mm256_maskz_fmaddsub_pd
   1314   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.256
   1315   return _mm256_maskz_fmaddsub_pd(__U, __A, __B, __C);
   1316 }
   1317 
   1318 __m256d test_mm256_maskz_fmsubadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
   1319   // CHECK-LABEL: @test_mm256_maskz_fmsubadd_pd
   1320   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.256
   1321   return _mm256_maskz_fmsubadd_pd(__U, __A, __B, __C);
   1322 }
   1323 
   1324 __m128 test_mm_mask_fmaddsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) {
   1325   // CHECK-LABEL: @test_mm_mask_fmaddsub_ps
   1326   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.128
   1327   return _mm_mask_fmaddsub_ps(__A, __U, __B, __C);
   1328 }
   1329 
   1330 __m128 test_mm_mask_fmsubadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) {
   1331   // CHECK-LABEL: @test_mm_mask_fmsubadd_ps
   1332   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.128
   1333   return _mm_mask_fmsubadd_ps(__A, __U, __B, __C);
   1334 }
   1335 
   1336 __m128 test_mm_mask3_fmaddsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) {
   1337   // CHECK-LABEL: @test_mm_mask3_fmaddsub_ps
   1338   // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.ps.128
   1339   return _mm_mask3_fmaddsub_ps(__A, __B, __C, __U);
   1340 }
   1341 
   1342 __m128 test_mm_maskz_fmaddsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) {
   1343   // CHECK-LABEL: @test_mm_maskz_fmaddsub_ps
   1344   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.128
   1345   return _mm_maskz_fmaddsub_ps(__U, __A, __B, __C);
   1346 }
   1347 
   1348 __m128 test_mm_maskz_fmsubadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) {
   1349   // CHECK-LABEL: @test_mm_maskz_fmsubadd_ps
   1350   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.128
   1351   return _mm_maskz_fmsubadd_ps(__U, __A, __B, __C);
   1352 }
   1353 
   1354 __m256 test_mm256_mask_fmaddsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
   1355   // CHECK-LABEL: @test_mm256_mask_fmaddsub_ps
   1356   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.256
   1357   return _mm256_mask_fmaddsub_ps(__A, __U, __B, __C);
   1358 }
   1359 
   1360 __m256 test_mm256_mask_fmsubadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
   1361   // CHECK-LABEL: @test_mm256_mask_fmsubadd_ps
   1362   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.256
   1363   return _mm256_mask_fmsubadd_ps(__A, __U, __B, __C);
   1364 }
   1365 
   1366 __m256 test_mm256_mask3_fmaddsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
   1367   // CHECK-LABEL: @test_mm256_mask3_fmaddsub_ps
   1368   // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.ps.256
   1369   return _mm256_mask3_fmaddsub_ps(__A, __B, __C, __U);
   1370 }
   1371 
   1372 __m256 test_mm256_maskz_fmaddsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
   1373   // CHECK-LABEL: @test_mm256_maskz_fmaddsub_ps
   1374   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.256
   1375   return _mm256_maskz_fmaddsub_ps(__U, __A, __B, __C);
   1376 }
   1377 
   1378 __m256 test_mm256_maskz_fmsubadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
   1379   // CHECK-LABEL: @test_mm256_maskz_fmsubadd_ps
   1380   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.256
   1381   return _mm256_maskz_fmsubadd_ps(__U, __A, __B, __C);
   1382 }
   1383 
   1384 __m128d test_mm_mask3_fmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) {
   1385   // CHECK-LABEL: @test_mm_mask3_fmsub_pd
   1386   // CHECK: @llvm.x86.avx512.mask3.vfmsub.pd.128
   1387   return _mm_mask3_fmsub_pd(__A, __B, __C, __U);
   1388 }
   1389 
   1390 __m256d test_mm256_mask3_fmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
   1391   // CHECK-LABEL: @test_mm256_mask3_fmsub_pd
   1392   // CHECK: @llvm.x86.avx512.mask3.vfmsub.pd.256
   1393   return _mm256_mask3_fmsub_pd(__A, __B, __C, __U);
   1394 }
   1395 
   1396 __m128 test_mm_mask3_fmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) {
   1397   // CHECK-LABEL: @test_mm_mask3_fmsub_ps
   1398   // CHECK: @llvm.x86.avx512.mask3.vfmsub.ps.128
   1399   return _mm_mask3_fmsub_ps(__A, __B, __C, __U);
   1400 }
   1401 
   1402 __m256 test_mm256_mask3_fmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
   1403   // CHECK-LABEL: @test_mm256_mask3_fmsub_ps
   1404   // CHECK: @llvm.x86.avx512.mask3.vfmsub.ps.256
   1405   return _mm256_mask3_fmsub_ps(__A, __B, __C, __U);
   1406 }
   1407 
   1408 __m128d test_mm_mask3_fmsubadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) {
   1409   // CHECK-LABEL: @test_mm_mask3_fmsubadd_pd
   1410   // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.pd.128
   1411   return _mm_mask3_fmsubadd_pd(__A, __B, __C, __U);
   1412 }
   1413 
   1414 __m256d test_mm256_mask3_fmsubadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
   1415   // CHECK-LABEL: @test_mm256_mask3_fmsubadd_pd
   1416   // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.pd.256
   1417   return _mm256_mask3_fmsubadd_pd(__A, __B, __C, __U);
   1418 }
   1419 
   1420 __m128 test_mm_mask3_fmsubadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) {
   1421   // CHECK-LABEL: @test_mm_mask3_fmsubadd_ps
   1422   // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.ps.128
   1423   return _mm_mask3_fmsubadd_ps(__A, __B, __C, __U);
   1424 }
   1425 
   1426 __m256 test_mm256_mask3_fmsubadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
   1427   // CHECK-LABEL: @test_mm256_mask3_fmsubadd_ps
   1428   // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.ps.256
   1429   return _mm256_mask3_fmsubadd_ps(__A, __B, __C, __U);
   1430 }
   1431 
   1432 __m128d test_mm_mask_fnmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) {
   1433   // CHECK-LABEL: @test_mm_mask_fnmadd_pd
   1434   // CHECK: @llvm.x86.avx512.mask.vfnmadd.pd.128
   1435   return _mm_mask_fnmadd_pd(__A, __U, __B, __C);
   1436 }
   1437 
   1438 __m256d test_mm256_mask_fnmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
   1439   // CHECK-LABEL: @test_mm256_mask_fnmadd_pd
   1440   // CHECK: @llvm.x86.avx512.mask.vfnmadd.pd.256
   1441   return _mm256_mask_fnmadd_pd(__A, __U, __B, __C);
   1442 }
   1443 
   1444 __m128 test_mm_mask_fnmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) {
   1445   // CHECK-LABEL: @test_mm_mask_fnmadd_ps
   1446   // CHECK: @llvm.x86.avx512.mask.vfnmadd.ps.128
   1447   return _mm_mask_fnmadd_ps(__A, __U, __B, __C);
   1448 }
   1449 
   1450 __m256 test_mm256_mask_fnmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
   1451   // CHECK-LABEL: @test_mm256_mask_fnmadd_ps
   1452   // CHECK: @llvm.x86.avx512.mask.vfnmadd.ps.256
   1453   return _mm256_mask_fnmadd_ps(__A, __U, __B, __C);
   1454 }
   1455 
   1456 __m128d test_mm_mask_fnmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) {
   1457   // CHECK-LABEL: @test_mm_mask_fnmsub_pd
   1458   // CHECK: @llvm.x86.avx512.mask.vfnmsub.pd.128
   1459   return _mm_mask_fnmsub_pd(__A, __U, __B, __C);
   1460 }
   1461 
   1462 __m128d test_mm_mask3_fnmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) {
   1463   // CHECK-LABEL: @test_mm_mask3_fnmsub_pd
   1464   // CHECK: @llvm.x86.avx512.mask3.vfnmsub.pd.128
   1465   return _mm_mask3_fnmsub_pd(__A, __B, __C, __U);
   1466 }
   1467 
   1468 __m256d test_mm256_mask_fnmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
   1469   // CHECK-LABEL: @test_mm256_mask_fnmsub_pd
   1470   // CHECK: @llvm.x86.avx512.mask.vfnmsub.pd.256
   1471   return _mm256_mask_fnmsub_pd(__A, __U, __B, __C);
   1472 }
   1473 
   1474 __m256d test_mm256_mask3_fnmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
   1475   // CHECK-LABEL: @test_mm256_mask3_fnmsub_pd
   1476   // CHECK: @llvm.x86.avx512.mask3.vfnmsub.pd.256
   1477   return _mm256_mask3_fnmsub_pd(__A, __B, __C, __U);
   1478 }
   1479 
   1480 __m128 test_mm_mask_fnmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) {
   1481   // CHECK-LABEL: @test_mm_mask_fnmsub_ps
   1482   // CHECK: @llvm.x86.avx512.mask.vfnmsub.ps.128
   1483   return _mm_mask_fnmsub_ps(__A, __U, __B, __C);
   1484 }
   1485 
   1486 __m128 test_mm_mask3_fnmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) {
   1487   // CHECK-LABEL: @test_mm_mask3_fnmsub_ps
   1488   // CHECK: @llvm.x86.avx512.mask3.vfnmsub.ps.128
   1489   return _mm_mask3_fnmsub_ps(__A, __B, __C, __U);
   1490 }
   1491 
   1492 __m256 test_mm256_mask_fnmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
   1493   // CHECK-LABEL: @test_mm256_mask_fnmsub_ps
   1494   // CHECK: @llvm.x86.avx512.mask.vfnmsub.ps.256
   1495   return _mm256_mask_fnmsub_ps(__A, __U, __B, __C);
   1496 }
   1497 
   1498 __m256 test_mm256_mask3_fnmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
   1499   // CHECK-LABEL: @test_mm256_mask3_fnmsub_ps
   1500   // CHECK: @llvm.x86.avx512.mask3.vfnmsub.ps.256
   1501   return _mm256_mask3_fnmsub_ps(__A, __B, __C, __U);
   1502 }
   1503 
   1504 __m128d test_mm_mask_add_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   1505   // CHECK-LABEL: @test_mm_mask_add_pd
   1506   // CHECK: @llvm.x86.avx512.mask.add.pd.128
   1507   return _mm_mask_add_pd(__W,__U,__A,__B);
   1508 }
   1509 __m128d test_mm_maskz_add_pd(__mmask8 __U, __m128d __A, __m128d __B) {
   1510   // CHECK-LABEL: @test_mm_maskz_add_pd
   1511   // CHECK: @llvm.x86.avx512.mask.add.pd.128
   1512   return _mm_maskz_add_pd(__U,__A,__B);
   1513 }
   1514 __m256d test_mm256_mask_add_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
   1515   // CHECK-LABEL: @test_mm256_mask_add_pd
   1516   // CHECK: @llvm.x86.avx512.mask.add.pd.256
   1517   return _mm256_mask_add_pd(__W,__U,__A,__B);
   1518 }
   1519 __m256d test_mm256_maskz_add_pd(__mmask8 __U, __m256d __A, __m256d __B) {
   1520   // CHECK-LABEL: @test_mm256_maskz_add_pd
   1521   // CHECK: @llvm.x86.avx512.mask.add.pd.256
   1522   return _mm256_maskz_add_pd(__U,__A,__B);
   1523 }
   1524 __m128 test_mm_mask_add_ps(__m128 __W, __mmask16 __U, __m128 __A, __m128 __B) {
   1525   // CHECK-LABEL: @test_mm_mask_add_ps
   1526   // CHECK: @llvm.x86.avx512.mask.add.ps.128
   1527   return _mm_mask_add_ps(__W,__U,__A,__B);
   1528 }
   1529 __m128 test_mm_maskz_add_ps(__mmask16 __U, __m128 __A, __m128 __B) {
   1530   // CHECK-LABEL: @test_mm_maskz_add_ps
   1531   // CHECK: @llvm.x86.avx512.mask.add.ps.128
   1532   return _mm_maskz_add_ps(__U,__A,__B);
   1533 }
   1534 __m256 test_mm256_mask_add_ps(__m256 __W, __mmask16 __U, __m256 __A, __m256 __B) {
   1535   // CHECK-LABEL: @test_mm256_mask_add_ps
   1536   // CHECK: @llvm.x86.avx512.mask.add.ps.256
   1537   return _mm256_mask_add_ps(__W,__U,__A,__B);
   1538 }
   1539 __m256 test_mm256_maskz_add_ps(__mmask16 __U, __m256 __A, __m256 __B) {
   1540   // CHECK-LABEL: @test_mm256_maskz_add_ps
   1541   // CHECK: @llvm.x86.avx512.mask.add.ps.256
   1542   return _mm256_maskz_add_ps(__U,__A,__B);
   1543 }
   1544 __m128i test_mm_mask_blend_epi32(__mmask8 __U, __m128i __A, __m128i __W) {
   1545   // CHECK-LABEL: @test_mm_mask_blend_epi32
   1546   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
   1547   return _mm_mask_blend_epi32(__U,__A,__W);
   1548 }
   1549 __m256i test_mm256_mask_blend_epi32(__mmask8 __U, __m256i __A, __m256i __W) {
   1550   // CHECK-LABEL: @test_mm256_mask_blend_epi32
   1551   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
   1552   return _mm256_mask_blend_epi32(__U,__A,__W);
   1553 }
   1554 __m128d test_mm_mask_blend_pd(__mmask8 __U, __m128d __A, __m128d __W) {
   1555   // CHECK-LABEL: @test_mm_mask_blend_pd
   1556   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
   1557   return _mm_mask_blend_pd(__U,__A,__W);
   1558 }
   1559 __m256d test_mm256_mask_blend_pd(__mmask8 __U, __m256d __A, __m256d __W) {
   1560   // CHECK-LABEL: @test_mm256_mask_blend_pd
   1561   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
   1562   return _mm256_mask_blend_pd(__U,__A,__W);
   1563 }
   1564 __m128 test_mm_mask_blend_ps(__mmask8 __U, __m128 __A, __m128 __W) {
   1565   // CHECK-LABEL: @test_mm_mask_blend_ps
   1566   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
   1567   return _mm_mask_blend_ps(__U,__A,__W);
   1568 }
   1569 __m256 test_mm256_mask_blend_ps(__mmask8 __U, __m256 __A, __m256 __W) {
   1570   // CHECK-LABEL: @test_mm256_mask_blend_ps
   1571   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
   1572   return _mm256_mask_blend_ps(__U,__A,__W);
   1573 }
   1574 __m128i test_mm_mask_blend_epi64(__mmask8 __U, __m128i __A, __m128i __W) {
   1575   // CHECK-LABEL: @test_mm_mask_blend_epi64
   1576   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
   1577   return _mm_mask_blend_epi64(__U,__A,__W);
   1578 }
   1579 __m256i test_mm256_mask_blend_epi64(__mmask8 __U, __m256i __A, __m256i __W) {
   1580   // CHECK-LABEL: @test_mm256_mask_blend_epi64
   1581   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
   1582   return _mm256_mask_blend_epi64(__U,__A,__W);
   1583 }
   1584 __m128d test_mm_mask_compress_pd(__m128d __W, __mmask8 __U, __m128d __A) {
   1585   // CHECK-LABEL: @test_mm_mask_compress_pd
   1586   // CHECK: @llvm.x86.avx512.mask.compress.pd.128
   1587   return _mm_mask_compress_pd(__W,__U,__A);
   1588 }
   1589 __m128d test_mm_maskz_compress_pd(__mmask8 __U, __m128d __A) {
   1590   // CHECK-LABEL: @test_mm_maskz_compress_pd
   1591   // CHECK: @llvm.x86.avx512.mask.compress.pd.128
   1592   return _mm_maskz_compress_pd(__U,__A);
   1593 }
   1594 __m256d test_mm256_mask_compress_pd(__m256d __W, __mmask8 __U, __m256d __A) {
   1595   // CHECK-LABEL: @test_mm256_mask_compress_pd
   1596   // CHECK: @llvm.x86.avx512.mask.compress.pd.256
   1597   return _mm256_mask_compress_pd(__W,__U,__A);
   1598 }
   1599 __m256d test_mm256_maskz_compress_pd(__mmask8 __U, __m256d __A) {
   1600   // CHECK-LABEL: @test_mm256_maskz_compress_pd
   1601   // CHECK: @llvm.x86.avx512.mask.compress.pd.256
   1602   return _mm256_maskz_compress_pd(__U,__A);
   1603 }
   1604 __m128i test_mm_mask_compress_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
   1605   // CHECK-LABEL: @test_mm_mask_compress_epi64
   1606   // CHECK: @llvm.x86.avx512.mask.compress.q.128
   1607   return _mm_mask_compress_epi64(__W,__U,__A);
   1608 }
   1609 __m128i test_mm_maskz_compress_epi64(__mmask8 __U, __m128i __A) {
   1610   // CHECK-LABEL: @test_mm_maskz_compress_epi64
   1611   // CHECK: @llvm.x86.avx512.mask.compress.q.128
   1612   return _mm_maskz_compress_epi64(__U,__A);
   1613 }
   1614 __m256i test_mm256_mask_compress_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
   1615   // CHECK-LABEL: @test_mm256_mask_compress_epi64
   1616   // CHECK: @llvm.x86.avx512.mask.compress.q.256
   1617   return _mm256_mask_compress_epi64(__W,__U,__A);
   1618 }
   1619 __m256i test_mm256_maskz_compress_epi64(__mmask8 __U, __m256i __A) {
   1620   // CHECK-LABEL: @test_mm256_maskz_compress_epi64
   1621   // CHECK: @llvm.x86.avx512.mask.compress.q.256
   1622   return _mm256_maskz_compress_epi64(__U,__A);
   1623 }
   1624 __m128 test_mm_mask_compress_ps(__m128 __W, __mmask8 __U, __m128 __A) {
   1625   // CHECK-LABEL: @test_mm_mask_compress_ps
   1626   // CHECK: @llvm.x86.avx512.mask.compress.ps.128
   1627   return _mm_mask_compress_ps(__W,__U,__A);
   1628 }
   1629 __m128 test_mm_maskz_compress_ps(__mmask8 __U, __m128 __A) {
   1630   // CHECK-LABEL: @test_mm_maskz_compress_ps
   1631   // CHECK: @llvm.x86.avx512.mask.compress.ps.128
   1632   return _mm_maskz_compress_ps(__U,__A);
   1633 }
   1634 __m256 test_mm256_mask_compress_ps(__m256 __W, __mmask8 __U, __m256 __A) {
   1635   // CHECK-LABEL: @test_mm256_mask_compress_ps
   1636   // CHECK: @llvm.x86.avx512.mask.compress.ps.256
   1637   return _mm256_mask_compress_ps(__W,__U,__A);
   1638 }
   1639 __m256 test_mm256_maskz_compress_ps(__mmask8 __U, __m256 __A) {
   1640   // CHECK-LABEL: @test_mm256_maskz_compress_ps
   1641   // CHECK: @llvm.x86.avx512.mask.compress.ps.256
   1642   return _mm256_maskz_compress_ps(__U,__A);
   1643 }
   1644 __m128i test_mm_mask_compress_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
   1645   // CHECK-LABEL: @test_mm_mask_compress_epi32
   1646   // CHECK: @llvm.x86.avx512.mask.compress.d.128
   1647   return _mm_mask_compress_epi32(__W,__U,__A);
   1648 }
   1649 __m128i test_mm_maskz_compress_epi32(__mmask8 __U, __m128i __A) {
   1650   // CHECK-LABEL: @test_mm_maskz_compress_epi32
   1651   // CHECK: @llvm.x86.avx512.mask.compress.d.128
   1652   return _mm_maskz_compress_epi32(__U,__A);
   1653 }
   1654 __m256i test_mm256_mask_compress_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
   1655   // CHECK-LABEL: @test_mm256_mask_compress_epi32
   1656   // CHECK: @llvm.x86.avx512.mask.compress.d.256
   1657   return _mm256_mask_compress_epi32(__W,__U,__A);
   1658 }
   1659 __m256i test_mm256_maskz_compress_epi32(__mmask8 __U, __m256i __A) {
   1660   // CHECK-LABEL: @test_mm256_maskz_compress_epi32
   1661   // CHECK: @llvm.x86.avx512.mask.compress.d.256
   1662   return _mm256_maskz_compress_epi32(__U,__A);
   1663 }
   1664 void test_mm_mask_compressstoreu_pd(void *__P, __mmask8 __U, __m128d __A) {
   1665   // CHECK-LABEL: @test_mm_mask_compressstoreu_pd
   1666   // CHECK: @llvm.x86.avx512.mask.compress.store.pd.128
   1667   return _mm_mask_compressstoreu_pd(__P,__U,__A);
   1668 }
   1669 void test_mm256_mask_compressstoreu_pd(void *__P, __mmask8 __U, __m256d __A) {
   1670   // CHECK-LABEL: @test_mm256_mask_compressstoreu_pd
   1671   // CHECK: @llvm.x86.avx512.mask.compress.store.pd.256
   1672   return _mm256_mask_compressstoreu_pd(__P,__U,__A);
   1673 }
   1674 void test_mm_mask_compressstoreu_epi64(void *__P, __mmask8 __U, __m128i __A) {
   1675   // CHECK-LABEL: @test_mm_mask_compressstoreu_epi64
   1676   // CHECK: @llvm.x86.avx512.mask.compress.store.q.128
   1677   return _mm_mask_compressstoreu_epi64(__P,__U,__A);
   1678 }
   1679 void test_mm256_mask_compressstoreu_epi64(void *__P, __mmask8 __U, __m256i __A) {
   1680   // CHECK-LABEL: @test_mm256_mask_compressstoreu_epi64
   1681   // CHECK: @llvm.x86.avx512.mask.compress.store.q.256
   1682   return _mm256_mask_compressstoreu_epi64(__P,__U,__A);
   1683 }
   1684 void test_mm_mask_compressstoreu_ps(void *__P, __mmask8 __U, __m128 __A) {
   1685   // CHECK-LABEL: @test_mm_mask_compressstoreu_ps
   1686   // CHECK: @llvm.x86.avx512.mask.compress.store.ps.128
   1687   return _mm_mask_compressstoreu_ps(__P,__U,__A);
   1688 }
   1689 void test_mm256_mask_compressstoreu_ps(void *__P, __mmask8 __U, __m256 __A) {
   1690   // CHECK-LABEL: @test_mm256_mask_compressstoreu_ps
   1691   // CHECK: @llvm.x86.avx512.mask.compress.store.ps.256
   1692   return _mm256_mask_compressstoreu_ps(__P,__U,__A);
   1693 }
   1694 void test_mm_mask_compressstoreu_epi32(void *__P, __mmask8 __U, __m128i __A) {
   1695   // CHECK-LABEL: @test_mm_mask_compressstoreu_epi32
   1696   // CHECK: @llvm.x86.avx512.mask.compress.store.d.128
   1697   return _mm_mask_compressstoreu_epi32(__P,__U,__A);
   1698 }
   1699 void test_mm256_mask_compressstoreu_epi32(void *__P, __mmask8 __U, __m256i __A) {
   1700   // CHECK-LABEL: @test_mm256_mask_compressstoreu_epi32
   1701   // CHECK: @llvm.x86.avx512.mask.compress.store.d.256
   1702   return _mm256_mask_compressstoreu_epi32(__P,__U,__A);
   1703 }
   1704 __m128d test_mm_mask_cvtepi32_pd(__m128d __W, __mmask8 __U, __m128i __A) {
   1705   // CHECK-LABEL: @test_mm_mask_cvtepi32_pd
   1706   // CHECK: @llvm.x86.avx512.mask.cvtdq2pd.128
   1707   return _mm_mask_cvtepi32_pd(__W,__U,__A);
   1708 }
   1709 __m128d test_mm_maskz_cvtepi32_pd(__mmask8 __U, __m128i __A) {
   1710   // CHECK-LABEL: @test_mm_maskz_cvtepi32_pd
   1711   // CHECK: @llvm.x86.avx512.mask.cvtdq2pd.128
   1712   return _mm_maskz_cvtepi32_pd(__U,__A);
   1713 }
   1714 __m256d test_mm256_mask_cvtepi32_pd(__m256d __W, __mmask8 __U, __m128i __A) {
   1715   // CHECK-LABEL: @test_mm256_mask_cvtepi32_pd
   1716   // CHECK: @llvm.x86.avx512.mask.cvtdq2pd.256
   1717   return _mm256_mask_cvtepi32_pd(__W,__U,__A);
   1718 }
   1719 __m256d test_mm256_maskz_cvtepi32_pd(__mmask8 __U, __m128i __A) {
   1720   // CHECK-LABEL: @test_mm256_maskz_cvtepi32_pd
   1721   // CHECK: @llvm.x86.avx512.mask.cvtdq2pd.256
   1722   return _mm256_maskz_cvtepi32_pd(__U,__A);
   1723 }
   1724 __m128 test_mm_mask_cvtepi32_ps(__m128 __W, __mmask8 __U, __m128i __A) {
   1725   // CHECK-LABEL: @test_mm_mask_cvtepi32_ps
   1726   // CHECK: @llvm.x86.avx512.mask.cvtdq2ps.128
   1727   return _mm_mask_cvtepi32_ps(__W,__U,__A);
   1728 }
   1729 __m128 test_mm_maskz_cvtepi32_ps(__mmask16 __U, __m128i __A) {
   1730   // CHECK-LABEL: @test_mm_maskz_cvtepi32_ps
   1731   // CHECK: @llvm.x86.avx512.mask.cvtdq2ps.128
   1732   return _mm_maskz_cvtepi32_ps(__U,__A);
   1733 }
   1734 __m256 test_mm256_mask_cvtepi32_ps(__m256 __W, __mmask8 __U, __m256i __A) {
   1735   // CHECK-LABEL: @test_mm256_mask_cvtepi32_ps
   1736   // CHECK: @llvm.x86.avx512.mask.cvtdq2ps.256
   1737   return _mm256_mask_cvtepi32_ps(__W,__U,__A);
   1738 }
   1739 __m256 test_mm256_maskz_cvtepi32_ps(__mmask16 __U, __m256i __A) {
   1740   // CHECK-LABEL: @test_mm256_maskz_cvtepi32_ps
   1741   // CHECK: @llvm.x86.avx512.mask.cvtdq2ps.256
   1742   return _mm256_maskz_cvtepi32_ps(__U,__A);
   1743 }
   1744 __m128i test_mm_mask_cvtpd_epi32(__m128i __W, __mmask8 __U, __m128d __A) {
   1745   // CHECK-LABEL: @test_mm_mask_cvtpd_epi32
   1746   // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.128
   1747   return _mm_mask_cvtpd_epi32(__W,__U,__A);
   1748 }
   1749 __m128i test_mm_maskz_cvtpd_epi32(__mmask8 __U, __m128d __A) {
   1750   // CHECK-LABEL: @test_mm_maskz_cvtpd_epi32
   1751   // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.128
   1752   return _mm_maskz_cvtpd_epi32(__U,__A);
   1753 }
   1754 __m128i test_mm256_mask_cvtpd_epi32(__m128i __W, __mmask8 __U, __m256d __A) {
   1755   // CHECK-LABEL: @test_mm256_mask_cvtpd_epi32
   1756   // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.256
   1757   return _mm256_mask_cvtpd_epi32(__W,__U,__A);
   1758 }
   1759 __m128i test_mm256_maskz_cvtpd_epi32(__mmask8 __U, __m256d __A) {
   1760   // CHECK-LABEL: @test_mm256_maskz_cvtpd_epi32
   1761   // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.256
   1762   return _mm256_maskz_cvtpd_epi32(__U,__A);
   1763 }
   1764 __m128 test_mm_mask_cvtpd_ps(__m128 __W, __mmask8 __U, __m128d __A) {
   1765   // CHECK-LABEL: @test_mm_mask_cvtpd_ps
   1766   // CHECK: @llvm.x86.avx512.mask.cvtpd2ps
   1767   return _mm_mask_cvtpd_ps(__W,__U,__A);
   1768 }
   1769 __m128 test_mm_maskz_cvtpd_ps(__mmask8 __U, __m128d __A) {
   1770   // CHECK-LABEL: @test_mm_maskz_cvtpd_ps
   1771   // CHECK: @llvm.x86.avx512.mask.cvtpd2ps
   1772   return _mm_maskz_cvtpd_ps(__U,__A);
   1773 }
   1774 __m128 test_mm256_mask_cvtpd_ps(__m128 __W, __mmask8 __U, __m256d __A) {
   1775   // CHECK-LABEL: @test_mm256_mask_cvtpd_ps
   1776   // CHECK: @llvm.x86.avx512.mask.cvtpd2ps.256
   1777   return _mm256_mask_cvtpd_ps(__W,__U,__A);
   1778 }
   1779 __m128 test_mm256_maskz_cvtpd_ps(__mmask8 __U, __m256d __A) {
   1780   // CHECK-LABEL: @test_mm256_maskz_cvtpd_ps
   1781   // CHECK: @llvm.x86.avx512.mask.cvtpd2ps.256
   1782   return _mm256_maskz_cvtpd_ps(__U,__A);
   1783 }
   1784 __m128i test_mm_cvtpd_epu32(__m128d __A) {
   1785   // CHECK-LABEL: @test_mm_cvtpd_epu32
   1786   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.128
   1787   return _mm_cvtpd_epu32(__A);
   1788 }
   1789 __m128i test_mm_mask_cvtpd_epu32(__m128i __W, __mmask8 __U, __m128d __A) {
   1790   // CHECK-LABEL: @test_mm_mask_cvtpd_epu32
   1791   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.128
   1792   return _mm_mask_cvtpd_epu32(__W,__U,__A);
   1793 }
   1794 __m128i test_mm_maskz_cvtpd_epu32(__mmask8 __U, __m128d __A) {
   1795   // CHECK-LABEL: @test_mm_maskz_cvtpd_epu32
   1796   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.128
   1797   return _mm_maskz_cvtpd_epu32(__U,__A);
   1798 }
   1799 __m128i test_mm256_cvtpd_epu32(__m256d __A) {
   1800   // CHECK-LABEL: @test_mm256_cvtpd_epu32
   1801   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.256
   1802   return _mm256_cvtpd_epu32(__A);
   1803 }
   1804 __m128i test_mm256_mask_cvtpd_epu32(__m128i __W, __mmask8 __U, __m256d __A) {
   1805   // CHECK-LABEL: @test_mm256_mask_cvtpd_epu32
   1806   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.256
   1807   return _mm256_mask_cvtpd_epu32(__W,__U,__A);
   1808 }
   1809 __m128i test_mm256_maskz_cvtpd_epu32(__mmask8 __U, __m256d __A) {
   1810   // CHECK-LABEL: @test_mm256_maskz_cvtpd_epu32
   1811   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.256
   1812   return _mm256_maskz_cvtpd_epu32(__U,__A);
   1813 }
   1814 __m128i test_mm_mask_cvtps_epi32(__m128i __W, __mmask8 __U, __m128 __A) {
   1815   // CHECK-LABEL: @test_mm_mask_cvtps_epi32
   1816   // CHECK: @llvm.x86.avx512.mask.cvtps2dq.128
   1817   return _mm_mask_cvtps_epi32(__W,__U,__A);
   1818 }
   1819 __m128i test_mm_maskz_cvtps_epi32(__mmask8 __U, __m128 __A) {
   1820   // CHECK-LABEL: @test_mm_maskz_cvtps_epi32
   1821   // CHECK: @llvm.x86.avx512.mask.cvtps2dq.128
   1822   return _mm_maskz_cvtps_epi32(__U,__A);
   1823 }
   1824 __m256i test_mm256_mask_cvtps_epi32(__m256i __W, __mmask8 __U, __m256 __A) {
   1825   // CHECK-LABEL: @test_mm256_mask_cvtps_epi32
   1826   // CHECK: @llvm.x86.avx512.mask.cvtps2dq.256
   1827   return _mm256_mask_cvtps_epi32(__W,__U,__A);
   1828 }
   1829 __m256i test_mm256_maskz_cvtps_epi32(__mmask8 __U, __m256 __A) {
   1830   // CHECK-LABEL: @test_mm256_maskz_cvtps_epi32
   1831   // CHECK: @llvm.x86.avx512.mask.cvtps2dq.256
   1832   return _mm256_maskz_cvtps_epi32(__U,__A);
   1833 }
   1834 __m128d test_mm_mask_cvtps_pd(__m128d __W, __mmask8 __U, __m128 __A) {
   1835   // CHECK-LABEL: @test_mm_mask_cvtps_pd
   1836   // CHECK: @llvm.x86.avx512.mask.cvtps2pd.128
   1837   return _mm_mask_cvtps_pd(__W,__U,__A);
   1838 }
   1839 __m128d test_mm_maskz_cvtps_pd(__mmask8 __U, __m128 __A) {
   1840   // CHECK-LABEL: @test_mm_maskz_cvtps_pd
   1841   // CHECK: @llvm.x86.avx512.mask.cvtps2pd.128
   1842   return _mm_maskz_cvtps_pd(__U,__A);
   1843 }
   1844 __m256d test_mm256_mask_cvtps_pd(__m256d __W, __mmask8 __U, __m128 __A) {
   1845   // CHECK-LABEL: @test_mm256_mask_cvtps_pd
   1846   // CHECK: @llvm.x86.avx512.mask.cvtps2pd.256
   1847   return _mm256_mask_cvtps_pd(__W,__U,__A);
   1848 }
   1849 __m256d test_mm256_maskz_cvtps_pd(__mmask8 __U, __m128 __A) {
   1850   // CHECK-LABEL: @test_mm256_maskz_cvtps_pd
   1851   // CHECK: @llvm.x86.avx512.mask.cvtps2pd.256
   1852   return _mm256_maskz_cvtps_pd(__U,__A);
   1853 }
   1854 __m128i test_mm_cvtps_epu32(__m128 __A) {
   1855   // CHECK-LABEL: @test_mm_cvtps_epu32
   1856   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.128
   1857   return _mm_cvtps_epu32(__A);
   1858 }
   1859 __m128i test_mm_mask_cvtps_epu32(__m128i __W, __mmask8 __U, __m128 __A) {
   1860   // CHECK-LABEL: @test_mm_mask_cvtps_epu32
   1861   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.128
   1862   return _mm_mask_cvtps_epu32(__W,__U,__A);
   1863 }
   1864 __m128i test_mm_maskz_cvtps_epu32(__mmask8 __U, __m128 __A) {
   1865   // CHECK-LABEL: @test_mm_maskz_cvtps_epu32
   1866   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.128
   1867   return _mm_maskz_cvtps_epu32(__U,__A);
   1868 }
   1869 __m256i test_mm256_cvtps_epu32(__m256 __A) {
   1870   // CHECK-LABEL: @test_mm256_cvtps_epu32
   1871   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.256
   1872   return _mm256_cvtps_epu32(__A);
   1873 }
   1874 __m256i test_mm256_mask_cvtps_epu32(__m256i __W, __mmask8 __U, __m256 __A) {
   1875   // CHECK-LABEL: @test_mm256_mask_cvtps_epu32
   1876   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.256
   1877   return _mm256_mask_cvtps_epu32(__W,__U,__A);
   1878 }
   1879 __m256i test_mm256_maskz_cvtps_epu32(__mmask8 __U, __m256 __A) {
   1880   // CHECK-LABEL: @test_mm256_maskz_cvtps_epu32
   1881   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.256
   1882   return _mm256_maskz_cvtps_epu32(__U,__A);
   1883 }
   1884 __m128i test_mm_mask_cvttpd_epi32(__m128i __W, __mmask8 __U, __m128d __A) {
   1885   // CHECK-LABEL: @test_mm_mask_cvttpd_epi32
   1886   // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.128
   1887   return _mm_mask_cvttpd_epi32(__W,__U,__A);
   1888 }
   1889 __m128i test_mm_maskz_cvttpd_epi32(__mmask8 __U, __m128d __A) {
   1890   // CHECK-LABEL: @test_mm_maskz_cvttpd_epi32
   1891   // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.128
   1892   return _mm_maskz_cvttpd_epi32(__U,__A);
   1893 }
   1894 __m128i test_mm256_mask_cvttpd_epi32(__m128i __W, __mmask8 __U, __m256d __A) {
   1895   // CHECK-LABEL: @test_mm256_mask_cvttpd_epi32
   1896   // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.256
   1897   return _mm256_mask_cvttpd_epi32(__W,__U,__A);
   1898 }
   1899 __m128i test_mm256_maskz_cvttpd_epi32(__mmask8 __U, __m256d __A) {
   1900   // CHECK-LABEL: @test_mm256_maskz_cvttpd_epi32
   1901   // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.256
   1902   return _mm256_maskz_cvttpd_epi32(__U,__A);
   1903 }
   1904 __m128i test_mm_cvttpd_epu32(__m128d __A) {
   1905   // CHECK-LABEL: @test_mm_cvttpd_epu32
   1906   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.128
   1907   return _mm_cvttpd_epu32(__A);
   1908 }
   1909 __m128i test_mm_mask_cvttpd_epu32(__m128i __W, __mmask8 __U, __m128d __A) {
   1910   // CHECK-LABEL: @test_mm_mask_cvttpd_epu32
   1911   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.128
   1912   return _mm_mask_cvttpd_epu32(__W,__U,__A);
   1913 }
   1914 __m128i test_mm_maskz_cvttpd_epu32(__mmask8 __U, __m128d __A) {
   1915   // CHECK-LABEL: @test_mm_maskz_cvttpd_epu32
   1916   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.128
   1917   return _mm_maskz_cvttpd_epu32(__U,__A);
   1918 }
   1919 __m128i test_mm256_cvttpd_epu32(__m256d __A) {
   1920   // CHECK-LABEL: @test_mm256_cvttpd_epu32
   1921   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.256
   1922   return _mm256_cvttpd_epu32(__A);
   1923 }
   1924 __m128i test_mm256_mask_cvttpd_epu32(__m128i __W, __mmask8 __U, __m256d __A) {
   1925   // CHECK-LABEL: @test_mm256_mask_cvttpd_epu32
   1926   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.256
   1927   return _mm256_mask_cvttpd_epu32(__W,__U,__A);
   1928 }
   1929 __m128i test_mm256_maskz_cvttpd_epu32(__mmask8 __U, __m256d __A) {
   1930   // CHECK-LABEL: @test_mm256_maskz_cvttpd_epu32
   1931   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.256
   1932   return _mm256_maskz_cvttpd_epu32(__U,__A);
   1933 }
   1934 __m128i test_mm_mask_cvttps_epi32(__m128i __W, __mmask8 __U, __m128 __A) {
   1935   // CHECK-LABEL: @test_mm_mask_cvttps_epi32
   1936   // CHECK: @llvm.x86.avx512.mask.cvttps2dq.128
   1937   return _mm_mask_cvttps_epi32(__W,__U,__A);
   1938 }
   1939 __m128i test_mm_maskz_cvttps_epi32(__mmask8 __U, __m128 __A) {
   1940   // CHECK-LABEL: @test_mm_maskz_cvttps_epi32
   1941   // CHECK: @llvm.x86.avx512.mask.cvttps2dq.128
   1942   return _mm_maskz_cvttps_epi32(__U,__A);
   1943 }
   1944 __m256i test_mm256_mask_cvttps_epi32(__m256i __W, __mmask8 __U, __m256 __A) {
   1945   // CHECK-LABEL: @test_mm256_mask_cvttps_epi32
   1946   // CHECK: @llvm.x86.avx512.mask.cvttps2dq.256
   1947   return _mm256_mask_cvttps_epi32(__W,__U,__A);
   1948 }
   1949 __m256i test_mm256_maskz_cvttps_epi32(__mmask8 __U, __m256 __A) {
   1950   // CHECK-LABEL: @test_mm256_maskz_cvttps_epi32
   1951   // CHECK: @llvm.x86.avx512.mask.cvttps2dq.256
   1952   return _mm256_maskz_cvttps_epi32(__U,__A);
   1953 }
   1954 __m128i test_mm_cvttps_epu32(__m128 __A) {
   1955   // CHECK-LABEL: @test_mm_cvttps_epu32
   1956   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.128
   1957   return _mm_cvttps_epu32(__A);
   1958 }
   1959 __m128i test_mm_mask_cvttps_epu32(__m128i __W, __mmask8 __U, __m128 __A) {
   1960   // CHECK-LABEL: @test_mm_mask_cvttps_epu32
   1961   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.128
   1962   return _mm_mask_cvttps_epu32(__W,__U,__A);
   1963 }
   1964 __m128i test_mm_maskz_cvttps_epu32(__mmask8 __U, __m128 __A) {
   1965   // CHECK-LABEL: @test_mm_maskz_cvttps_epu32
   1966   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.128
   1967   return _mm_maskz_cvttps_epu32(__U,__A);
   1968 }
   1969 __m256i test_mm256_cvttps_epu32(__m256 __A) {
   1970   // CHECK-LABEL: @test_mm256_cvttps_epu32
   1971   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.256
   1972   return _mm256_cvttps_epu32(__A);
   1973 }
   1974 __m256i test_mm256_mask_cvttps_epu32(__m256i __W, __mmask8 __U, __m256 __A) {
   1975   // CHECK-LABEL: @test_mm256_mask_cvttps_epu32
   1976   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.256
   1977   return _mm256_mask_cvttps_epu32(__W,__U,__A);
   1978 }
   1979 __m256i test_mm256_maskz_cvttps_epu32(__mmask8 __U, __m256 __A) {
   1980   // CHECK-LABEL: @test_mm256_maskz_cvttps_epu32
   1981   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.256
   1982   return _mm256_maskz_cvttps_epu32(__U,__A);
   1983 }
   1984 __m128d test_mm_cvtepu32_pd(__m128i __A) {
   1985   // CHECK-LABEL: @test_mm_cvtepu32_pd
   1986   // CHECK: @llvm.x86.avx512.mask.cvtudq2pd.128
   1987   return _mm_cvtepu32_pd(__A);
   1988 }
   1989 __m128d test_mm_mask_cvtepu32_pd(__m128d __W, __mmask8 __U, __m128i __A) {
   1990   // CHECK-LABEL: @test_mm_mask_cvtepu32_pd
   1991   // CHECK: @llvm.x86.avx512.mask.cvtudq2pd.128
   1992   return _mm_mask_cvtepu32_pd(__W,__U,__A);
   1993 }
   1994 __m128d test_mm_maskz_cvtepu32_pd(__mmask8 __U, __m128i __A) {
   1995   // CHECK-LABEL: @test_mm_maskz_cvtepu32_pd
   1996   // CHECK: @llvm.x86.avx512.mask.cvtudq2pd.128
   1997   return _mm_maskz_cvtepu32_pd(__U,__A);
   1998 }
   1999 __m256d test_mm256_cvtepu32_pd(__m128i __A) {
   2000   // CHECK-LABEL: @test_mm256_cvtepu32_pd
   2001   // CHECK: @llvm.x86.avx512.mask.cvtudq2pd.256
   2002   return _mm256_cvtepu32_pd(__A);
   2003 }
   2004 __m256d test_mm256_mask_cvtepu32_pd(__m256d __W, __mmask8 __U, __m128i __A) {
   2005   // CHECK-LABEL: @test_mm256_mask_cvtepu32_pd
   2006   // CHECK: @llvm.x86.avx512.mask.cvtudq2pd.256
   2007   return _mm256_mask_cvtepu32_pd(__W,__U,__A);
   2008 }
   2009 __m256d test_mm256_maskz_cvtepu32_pd(__mmask8 __U, __m128i __A) {
   2010   // CHECK-LABEL: @test_mm256_maskz_cvtepu32_pd
   2011   // CHECK: @llvm.x86.avx512.mask.cvtudq2pd.256
   2012   return _mm256_maskz_cvtepu32_pd(__U,__A);
   2013 }
   2014 __m128 test_mm_cvtepu32_ps(__m128i __A) {
   2015   // CHECK-LABEL: @test_mm_cvtepu32_ps
   2016   // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.128
   2017   return _mm_cvtepu32_ps(__A);
   2018 }
   2019 __m128 test_mm_mask_cvtepu32_ps(__m128 __W, __mmask8 __U, __m128i __A) {
   2020   // CHECK-LABEL: @test_mm_mask_cvtepu32_ps
   2021   // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.128
   2022   return _mm_mask_cvtepu32_ps(__W,__U,__A);
   2023 }
   2024 __m128 test_mm_maskz_cvtepu32_ps(__mmask8 __U, __m128i __A) {
   2025   // CHECK-LABEL: @test_mm_maskz_cvtepu32_ps
   2026   // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.128
   2027   return _mm_maskz_cvtepu32_ps(__U,__A);
   2028 }
   2029 __m256 test_mm256_cvtepu32_ps(__m256i __A) {
   2030   // CHECK-LABEL: @test_mm256_cvtepu32_ps
   2031   // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.256
   2032   return _mm256_cvtepu32_ps(__A);
   2033 }
   2034 __m256 test_mm256_mask_cvtepu32_ps(__m256 __W, __mmask8 __U, __m256i __A) {
   2035   // CHECK-LABEL: @test_mm256_mask_cvtepu32_ps
   2036   // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.256
   2037   return _mm256_mask_cvtepu32_ps(__W,__U,__A);
   2038 }
   2039 __m256 test_mm256_maskz_cvtepu32_ps(__mmask8 __U, __m256i __A) {
   2040   // CHECK-LABEL: @test_mm256_maskz_cvtepu32_ps
   2041   // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.256
   2042   return _mm256_maskz_cvtepu32_ps(__U,__A);
   2043 }
   2044 __m128d test_mm_mask_div_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   2045   // CHECK-LABEL: @test_mm_mask_div_pd
   2046   // CHECK: @llvm.x86.avx512.mask.div.pd.128
   2047   return _mm_mask_div_pd(__W,__U,__A,__B);
   2048 }
   2049 __m128d test_mm_maskz_div_pd(__mmask8 __U, __m128d __A, __m128d __B) {
   2050   // CHECK-LABEL: @test_mm_maskz_div_pd
   2051   // CHECK: @llvm.x86.avx512.mask.div.pd.128
   2052   return _mm_maskz_div_pd(__U,__A,__B);
   2053 }
   2054 __m256d test_mm256_mask_div_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
   2055   // CHECK-LABEL: @test_mm256_mask_div_pd
   2056   // CHECK: @llvm.x86.avx512.mask.div.pd.256
   2057   return _mm256_mask_div_pd(__W,__U,__A,__B);
   2058 }
   2059 __m256d test_mm256_maskz_div_pd(__mmask8 __U, __m256d __A, __m256d __B) {
   2060   // CHECK-LABEL: @test_mm256_maskz_div_pd
   2061   // CHECK: @llvm.x86.avx512.mask.div.pd.256
   2062   return _mm256_maskz_div_pd(__U,__A,__B);
   2063 }
   2064 __m128 test_mm_mask_div_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   2065   // CHECK-LABEL: @test_mm_mask_div_ps
   2066   // CHECK: @llvm.x86.avx512.mask.div.ps.128
   2067   return _mm_mask_div_ps(__W,__U,__A,__B);
   2068 }
   2069 __m128 test_mm_maskz_div_ps(__mmask8 __U, __m128 __A, __m128 __B) {
   2070   // CHECK-LABEL: @test_mm_maskz_div_ps
   2071   // CHECK: @llvm.x86.avx512.mask.div.ps.128
   2072   return _mm_maskz_div_ps(__U,__A,__B);
   2073 }
   2074 __m256 test_mm256_mask_div_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
   2075   // CHECK-LABEL: @test_mm256_mask_div_ps
   2076   // CHECK: @llvm.x86.avx512.mask.div.ps.256
   2077   return _mm256_mask_div_ps(__W,__U,__A,__B);
   2078 }
   2079 __m256 test_mm256_maskz_div_ps(__mmask8 __U, __m256 __A, __m256 __B) {
   2080   // CHECK-LABEL: @test_mm256_maskz_div_ps
   2081   // CHECK: @llvm.x86.avx512.mask.div.ps.256
   2082   return _mm256_maskz_div_ps(__U,__A,__B);
   2083 }
   2084 __m128d test_mm_mask_expand_pd(__m128d __W, __mmask8 __U, __m128d __A) {
   2085   // CHECK-LABEL: @test_mm_mask_expand_pd
   2086   // CHECK: @llvm.x86.avx512.mask.expand.pd.128
   2087   return _mm_mask_expand_pd(__W,__U,__A);
   2088 }
   2089 __m128d test_mm_maskz_expand_pd(__mmask8 __U, __m128d __A) {
   2090   // CHECK-LABEL: @test_mm_maskz_expand_pd
   2091   // CHECK: @llvm.x86.avx512.mask.expand.pd.128
   2092   return _mm_maskz_expand_pd(__U,__A);
   2093 }
   2094 __m256d test_mm256_mask_expand_pd(__m256d __W, __mmask8 __U, __m256d __A) {
   2095   // CHECK-LABEL: @test_mm256_mask_expand_pd
   2096   // CHECK: @llvm.x86.avx512.mask.expand.pd.256
   2097   return _mm256_mask_expand_pd(__W,__U,__A);
   2098 }
   2099 __m256d test_mm256_maskz_expand_pd(__mmask8 __U, __m256d __A) {
   2100   // CHECK-LABEL: @test_mm256_maskz_expand_pd
   2101   // CHECK: @llvm.x86.avx512.mask.expand.pd.256
   2102   return _mm256_maskz_expand_pd(__U,__A);
   2103 }
   2104 __m128i test_mm_mask_expand_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
   2105   // CHECK-LABEL: @test_mm_mask_expand_epi64
   2106   // CHECK: @llvm.x86.avx512.mask.expand.q.128
   2107   return _mm_mask_expand_epi64(__W,__U,__A);
   2108 }
   2109 __m128i test_mm_maskz_expand_epi64(__mmask8 __U, __m128i __A) {
   2110   // CHECK-LABEL: @test_mm_maskz_expand_epi64
   2111   // CHECK: @llvm.x86.avx512.mask.expand.q.128
   2112   return _mm_maskz_expand_epi64(__U,__A);
   2113 }
   2114 __m256i test_mm256_mask_expand_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
   2115   // CHECK-LABEL: @test_mm256_mask_expand_epi64
   2116   // CHECK: @llvm.x86.avx512.mask.expand.q.256
   2117   return _mm256_mask_expand_epi64(__W,__U,__A);
   2118 }
   2119 __m256i test_mm256_maskz_expand_epi64(__mmask8 __U, __m256i __A) {
   2120   // CHECK-LABEL: @test_mm256_maskz_expand_epi64
   2121   // CHECK: @llvm.x86.avx512.mask.expand.q.256
   2122   return _mm256_maskz_expand_epi64(__U,__A);
   2123 }
   2124 __m128d test_mm_mask_expandloadu_pd(__m128d __W, __mmask8 __U, void const *__P) {
   2125   // CHECK-LABEL: @test_mm_mask_expandloadu_pd
   2126   // CHECK: @llvm.x86.avx512.mask.expand.load.pd.128
   2127   return _mm_mask_expandloadu_pd(__W,__U,__P);
   2128 }
   2129 __m128d test_mm_maskz_expandloadu_pd(__mmask8 __U, void const *__P) {
   2130   // CHECK-LABEL: @test_mm_maskz_expandloadu_pd
   2131   // CHECK: @llvm.x86.avx512.mask.expand.load.pd.128
   2132   return _mm_maskz_expandloadu_pd(__U,__P);
   2133 }
   2134 __m256d test_mm256_mask_expandloadu_pd(__m256d __W, __mmask8 __U, void const *__P) {
   2135   // CHECK-LABEL: @test_mm256_mask_expandloadu_pd
   2136   // CHECK: @llvm.x86.avx512.mask.expand.load.pd.256
   2137   return _mm256_mask_expandloadu_pd(__W,__U,__P);
   2138 }
   2139 __m256d test_mm256_maskz_expandloadu_pd(__mmask8 __U, void const *__P) {
   2140   // CHECK-LABEL: @test_mm256_maskz_expandloadu_pd
   2141   // CHECK: @llvm.x86.avx512.mask.expand.load.pd.256
   2142   return _mm256_maskz_expandloadu_pd(__U,__P);
   2143 }
   2144 __m128i test_mm_mask_expandloadu_epi64(__m128i __W, __mmask8 __U, void const *__P) {
   2145   // CHECK-LABEL: @test_mm_mask_expandloadu_epi64
   2146   // CHECK: @llvm.x86.avx512.mask.expand.load.q.128
   2147   return _mm_mask_expandloadu_epi64(__W,__U,__P);
   2148 }
   2149 __m128i test_mm_maskz_expandloadu_epi64(__mmask8 __U, void const *__P) {
   2150   // CHECK-LABEL: @test_mm_maskz_expandloadu_epi64
   2151   // CHECK: @llvm.x86.avx512.mask.expand.load.q.128
   2152   return _mm_maskz_expandloadu_epi64(__U,__P);
   2153 }
   2154 __m256i test_mm256_mask_expandloadu_epi64(__m256i __W, __mmask8 __U,   void const *__P) {
   2155   // CHECK-LABEL: @test_mm256_mask_expandloadu_epi64
   2156   // CHECK: @llvm.x86.avx512.mask.expand.load.q.256
   2157   return _mm256_mask_expandloadu_epi64(__W,__U,__P);
   2158 }
   2159 __m256i test_mm256_maskz_expandloadu_epi64(__mmask8 __U, void const *__P) {
   2160   // CHECK-LABEL: @test_mm256_maskz_expandloadu_epi64
   2161   // CHECK: @llvm.x86.avx512.mask.expand.load.q.256
   2162   return _mm256_maskz_expandloadu_epi64(__U,__P);
   2163 }
   2164 __m128 test_mm_mask_expandloadu_ps(__m128 __W, __mmask8 __U, void const *__P) {
   2165   // CHECK-LABEL: @test_mm_mask_expandloadu_ps
   2166   // CHECK: @llvm.x86.avx512.mask.expand.load.ps.128
   2167   return _mm_mask_expandloadu_ps(__W,__U,__P);
   2168 }
   2169 __m128 test_mm_maskz_expandloadu_ps(__mmask8 __U, void const *__P) {
   2170   // CHECK-LABEL: @test_mm_maskz_expandloadu_ps
   2171   // CHECK: @llvm.x86.avx512.mask.expand.load.ps.128
   2172   return _mm_maskz_expandloadu_ps(__U,__P);
   2173 }
   2174 __m256 test_mm256_mask_expandloadu_ps(__m256 __W, __mmask8 __U, void const *__P) {
   2175   // CHECK-LABEL: @test_mm256_mask_expandloadu_ps
   2176   // CHECK: @llvm.x86.avx512.mask.expand.load.ps.256
   2177   return _mm256_mask_expandloadu_ps(__W,__U,__P);
   2178 }
   2179 __m256 test_mm256_maskz_expandloadu_ps(__mmask8 __U, void const *__P) {
   2180   // CHECK-LABEL: @test_mm256_maskz_expandloadu_ps
   2181   // CHECK: @llvm.x86.avx512.mask.expand.load.ps.256
   2182   return _mm256_maskz_expandloadu_ps(__U,__P);
   2183 }
   2184 __m128i test_mm_mask_expandloadu_epi32(__m128i __W, __mmask8 __U, void const *__P) {
   2185   // CHECK-LABEL: @test_mm_mask_expandloadu_epi32
   2186   // CHECK: @llvm.x86.avx512.mask.expand.load.d.128
   2187   return _mm_mask_expandloadu_epi32(__W,__U,__P);
   2188 }
   2189 __m128i test_mm_maskz_expandloadu_epi32(__mmask8 __U, void const *__P) {
   2190   // CHECK-LABEL: @test_mm_maskz_expandloadu_epi32
   2191   // CHECK: @llvm.x86.avx512.mask.expand.load.d.128
   2192   return _mm_maskz_expandloadu_epi32(__U,__P);
   2193 }
   2194 __m256i test_mm256_mask_expandloadu_epi32(__m256i __W, __mmask8 __U,   void const *__P) {
   2195   // CHECK-LABEL: @test_mm256_mask_expandloadu_epi32
   2196   // CHECK: @llvm.x86.avx512.mask.expand.load.d.256
   2197   return _mm256_mask_expandloadu_epi32(__W,__U,__P);
   2198 }
   2199 __m256i test_mm256_maskz_expandloadu_epi32(__mmask8 __U, void const *__P) {
   2200   // CHECK-LABEL: @test_mm256_maskz_expandloadu_epi32
   2201   // CHECK: @llvm.x86.avx512.mask.expand.load.d.256
   2202   return _mm256_maskz_expandloadu_epi32(__U,__P);
   2203 }
   2204 __m128 test_mm_mask_expand_ps(__m128 __W, __mmask8 __U, __m128 __A) {
   2205   // CHECK-LABEL: @test_mm_mask_expand_ps
   2206   // CHECK: @llvm.x86.avx512.mask.expand.ps.128
   2207   return _mm_mask_expand_ps(__W,__U,__A);
   2208 }
   2209 __m128 test_mm_maskz_expand_ps(__mmask8 __U, __m128 __A) {
   2210   // CHECK-LABEL: @test_mm_maskz_expand_ps
   2211   // CHECK: @llvm.x86.avx512.mask.expand.ps.128
   2212   return _mm_maskz_expand_ps(__U,__A);
   2213 }
   2214 __m256 test_mm256_mask_expand_ps(__m256 __W, __mmask8 __U, __m256 __A) {
   2215   // CHECK-LABEL: @test_mm256_mask_expand_ps
   2216   // CHECK: @llvm.x86.avx512.mask.expand.ps.256
   2217   return _mm256_mask_expand_ps(__W,__U,__A);
   2218 }
   2219 __m256 test_mm256_maskz_expand_ps(__mmask8 __U, __m256 __A) {
   2220   // CHECK-LABEL: @test_mm256_maskz_expand_ps
   2221   // CHECK: @llvm.x86.avx512.mask.expand.ps.256
   2222   return _mm256_maskz_expand_ps(__U,__A);
   2223 }
   2224 __m128i test_mm_mask_expand_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
   2225   // CHECK-LABEL: @test_mm_mask_expand_epi32
   2226   // CHECK: @llvm.x86.avx512.mask.expand.d.128
   2227   return _mm_mask_expand_epi32(__W,__U,__A);
   2228 }
   2229 __m128i test_mm_maskz_expand_epi32(__mmask8 __U, __m128i __A) {
   2230   // CHECK-LABEL: @test_mm_maskz_expand_epi32
   2231   // CHECK: @llvm.x86.avx512.mask.expand.d.128
   2232   return _mm_maskz_expand_epi32(__U,__A);
   2233 }
   2234 __m256i test_mm256_mask_expand_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
   2235   // CHECK-LABEL: @test_mm256_mask_expand_epi32
   2236   // CHECK: @llvm.x86.avx512.mask.expand.d.256
   2237   return _mm256_mask_expand_epi32(__W,__U,__A);
   2238 }
   2239 __m256i test_mm256_maskz_expand_epi32(__mmask8 __U, __m256i __A) {
   2240   // CHECK-LABEL: @test_mm256_maskz_expand_epi32
   2241   // CHECK: @llvm.x86.avx512.mask.expand.d.256
   2242   return _mm256_maskz_expand_epi32(__U,__A);
   2243 }
   2244 __m128d test_mm_getexp_pd(__m128d __A) {
   2245   // CHECK-LABEL: @test_mm_getexp_pd
   2246   // CHECK: @llvm.x86.avx512.mask.getexp.pd.128
   2247   return _mm_getexp_pd(__A);
   2248 }
   2249 __m128d test_mm_mask_getexp_pd(__m128d __W, __mmask8 __U, __m128d __A) {
   2250   // CHECK-LABEL: @test_mm_mask_getexp_pd
   2251   // CHECK: @llvm.x86.avx512.mask.getexp.pd.128
   2252   return _mm_mask_getexp_pd(__W,__U,__A);
   2253 }
   2254 __m128d test_mm_maskz_getexp_pd(__mmask8 __U, __m128d __A) {
   2255   // CHECK-LABEL: @test_mm_maskz_getexp_pd
   2256   // CHECK: @llvm.x86.avx512.mask.getexp.pd.128
   2257   return _mm_maskz_getexp_pd(__U,__A);
   2258 }
   2259 __m256d test_mm256_getexp_pd(__m256d __A) {
   2260   // CHECK-LABEL: @test_mm256_getexp_pd
   2261   // CHECK: @llvm.x86.avx512.mask.getexp.pd.256
   2262   return _mm256_getexp_pd(__A);
   2263 }
   2264 __m256d test_mm256_mask_getexp_pd(__m256d __W, __mmask8 __U, __m256d __A) {
   2265   // CHECK-LABEL: @test_mm256_mask_getexp_pd
   2266   // CHECK: @llvm.x86.avx512.mask.getexp.pd.256
   2267   return _mm256_mask_getexp_pd(__W,__U,__A);
   2268 }
   2269 __m256d test_mm256_maskz_getexp_pd(__mmask8 __U, __m256d __A) {
   2270   // CHECK-LABEL: @test_mm256_maskz_getexp_pd
   2271   // CHECK: @llvm.x86.avx512.mask.getexp.pd.256
   2272   return _mm256_maskz_getexp_pd(__U,__A);
   2273 }
   2274 __m128 test_mm_getexp_ps(__m128 __A) {
   2275   // CHECK-LABEL: @test_mm_getexp_ps
   2276   // CHECK: @llvm.x86.avx512.mask.getexp.ps.128
   2277   return _mm_getexp_ps(__A);
   2278 }
   2279 __m128 test_mm_mask_getexp_ps(__m128 __W, __mmask8 __U, __m128 __A) {
   2280   // CHECK-LABEL: @test_mm_mask_getexp_ps
   2281   // CHECK: @llvm.x86.avx512.mask.getexp.ps.128
   2282   return _mm_mask_getexp_ps(__W,__U,__A);
   2283 }
   2284 __m128 test_mm_maskz_getexp_ps(__mmask8 __U, __m128 __A) {
   2285   // CHECK-LABEL: @test_mm_maskz_getexp_ps
   2286   // CHECK: @llvm.x86.avx512.mask.getexp.ps.128
   2287   return _mm_maskz_getexp_ps(__U,__A);
   2288 }
   2289 __m256 test_mm256_getexp_ps(__m256 __A) {
   2290   // CHECK-LABEL: @test_mm256_getexp_ps
   2291   // CHECK: @llvm.x86.avx512.mask.getexp.ps.256
   2292   return _mm256_getexp_ps(__A);
   2293 }
   2294 __m256 test_mm256_mask_getexp_ps(__m256 __W, __mmask8 __U, __m256 __A) {
   2295   // CHECK-LABEL: @test_mm256_mask_getexp_ps
   2296   // CHECK: @llvm.x86.avx512.mask.getexp.ps.256
   2297   return _mm256_mask_getexp_ps(__W,__U,__A);
   2298 }
   2299 __m256 test_mm256_maskz_getexp_ps(__mmask8 __U, __m256 __A) {
   2300   // CHECK-LABEL: @test_mm256_maskz_getexp_ps
   2301   // CHECK: @llvm.x86.avx512.mask.getexp.ps.256
   2302   return _mm256_maskz_getexp_ps(__U,__A);
   2303 }
   2304 __m128d test_mm_mask_max_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   2305   // CHECK-LABEL: @test_mm_mask_max_pd
   2306   // CHECK: @llvm.x86.avx512.mask.max.pd
   2307   return _mm_mask_max_pd(__W,__U,__A,__B);
   2308 }
   2309 __m128d test_mm_maskz_max_pd(__mmask8 __U, __m128d __A, __m128d __B) {
   2310   // CHECK-LABEL: @test_mm_maskz_max_pd
   2311   // CHECK: @llvm.x86.avx512.mask.max.pd
   2312   return _mm_maskz_max_pd(__U,__A,__B);
   2313 }
   2314 __m256d test_mm256_mask_max_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
   2315   // CHECK-LABEL: @test_mm256_mask_max_pd
   2316   // CHECK: @llvm.x86.avx512.mask.max.pd.256
   2317   return _mm256_mask_max_pd(__W,__U,__A,__B);
   2318 }
   2319 __m256d test_mm256_maskz_max_pd(__mmask8 __U, __m256d __A, __m256d __B) {
   2320   // CHECK-LABEL: @test_mm256_maskz_max_pd
   2321   // CHECK: @llvm.x86.avx512.mask.max.pd.256
   2322   return _mm256_maskz_max_pd(__U,__A,__B);
   2323 }
   2324 __m128 test_mm_mask_max_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   2325   // CHECK-LABEL: @test_mm_mask_max_ps
   2326   // CHECK: @llvm.x86.avx512.mask.max.ps
   2327   return _mm_mask_max_ps(__W,__U,__A,__B);
   2328 }
   2329 __m128 test_mm_maskz_max_ps(__mmask8 __U, __m128 __A, __m128 __B) {
   2330   // CHECK-LABEL: @test_mm_maskz_max_ps
   2331   // CHECK: @llvm.x86.avx512.mask.max.ps
   2332   return _mm_maskz_max_ps(__U,__A,__B);
   2333 }
   2334 __m256 test_mm256_mask_max_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
   2335   // CHECK-LABEL: @test_mm256_mask_max_ps
   2336   // CHECK: @llvm.x86.avx512.mask.max.ps.256
   2337   return _mm256_mask_max_ps(__W,__U,__A,__B);
   2338 }
   2339 __m256 test_mm256_maskz_max_ps(__mmask8 __U, __m256 __A, __m256 __B) {
   2340   // CHECK-LABEL: @test_mm256_maskz_max_ps
   2341   // CHECK: @llvm.x86.avx512.mask.max.ps.256
   2342   return _mm256_maskz_max_ps(__U,__A,__B);
   2343 }
   2344 __m128d test_mm_mask_min_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   2345   // CHECK-LABEL: @test_mm_mask_min_pd
   2346   // CHECK: @llvm.x86.avx512.mask.min.pd
   2347   return _mm_mask_min_pd(__W,__U,__A,__B);
   2348 }
   2349 __m128d test_mm_maskz_min_pd(__mmask8 __U, __m128d __A, __m128d __B) {
   2350   // CHECK-LABEL: @test_mm_maskz_min_pd
   2351   // CHECK: @llvm.x86.avx512.mask.min.pd
   2352   return _mm_maskz_min_pd(__U,__A,__B);
   2353 }
   2354 __m256d test_mm256_mask_min_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
   2355   // CHECK-LABEL: @test_mm256_mask_min_pd
   2356   // CHECK: @llvm.x86.avx512.mask.min.pd.256
   2357   return _mm256_mask_min_pd(__W,__U,__A,__B);
   2358 }
   2359 __m256d test_mm256_maskz_min_pd(__mmask8 __U, __m256d __A, __m256d __B) {
   2360   // CHECK-LABEL: @test_mm256_maskz_min_pd
   2361   // CHECK: @llvm.x86.avx512.mask.min.pd.256
   2362   return _mm256_maskz_min_pd(__U,__A,__B);
   2363 }
   2364 __m128 test_mm_mask_min_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   2365   // CHECK-LABEL: @test_mm_mask_min_ps
   2366   // CHECK: @llvm.x86.avx512.mask.min.ps
   2367   return _mm_mask_min_ps(__W,__U,__A,__B);
   2368 }
   2369 __m128 test_mm_maskz_min_ps(__mmask8 __U, __m128 __A, __m128 __B) {
   2370   // CHECK-LABEL: @test_mm_maskz_min_ps
   2371   // CHECK: @llvm.x86.avx512.mask.min.ps
   2372   return _mm_maskz_min_ps(__U,__A,__B);
   2373 }
   2374 __m256 test_mm256_mask_min_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
   2375   // CHECK-LABEL: @test_mm256_mask_min_ps
   2376   // CHECK: @llvm.x86.avx512.mask.min.ps.256
   2377   return _mm256_mask_min_ps(__W,__U,__A,__B);
   2378 }
   2379 __m256 test_mm256_maskz_min_ps(__mmask8 __U, __m256 __A, __m256 __B) {
   2380   // CHECK-LABEL: @test_mm256_maskz_min_ps
   2381   // CHECK: @llvm.x86.avx512.mask.min.ps.256
   2382   return _mm256_maskz_min_ps(__U,__A,__B);
   2383 }
   2384 __m128d test_mm_mask_mul_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   2385   // CHECK-LABEL: @test_mm_mask_mul_pd
   2386   // CHECK: @llvm.x86.avx512.mask.mul.pd
   2387   return _mm_mask_mul_pd(__W,__U,__A,__B);
   2388 }
   2389 __m128d test_mm_maskz_mul_pd(__mmask8 __U, __m128d __A, __m128d __B) {
   2390   // CHECK-LABEL: @test_mm_maskz_mul_pd
   2391   // CHECK: @llvm.x86.avx512.mask.mul.pd
   2392   return _mm_maskz_mul_pd(__U,__A,__B);
   2393 }
   2394 __m256d test_mm256_mask_mul_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
   2395   // CHECK-LABEL: @test_mm256_mask_mul_pd
   2396   // CHECK: @llvm.x86.avx512.mask.mul.pd.256
   2397   return _mm256_mask_mul_pd(__W,__U,__A,__B);
   2398 }
   2399 __m256d test_mm256_maskz_mul_pd(__mmask8 __U, __m256d __A, __m256d __B) {
   2400   // CHECK-LABEL: @test_mm256_maskz_mul_pd
   2401   // CHECK: @llvm.x86.avx512.mask.mul.pd.256
   2402   return _mm256_maskz_mul_pd(__U,__A,__B);
   2403 }
   2404 __m128 test_mm_mask_mul_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   2405   // CHECK-LABEL: @test_mm_mask_mul_ps
   2406   // CHECK: @llvm.x86.avx512.mask.mul.ps
   2407   return _mm_mask_mul_ps(__W,__U,__A,__B);
   2408 }
   2409 __m128 test_mm_maskz_mul_ps(__mmask8 __U, __m128 __A, __m128 __B) {
   2410   // CHECK-LABEL: @test_mm_maskz_mul_ps
   2411   // CHECK: @llvm.x86.avx512.mask.mul.ps
   2412   return _mm_maskz_mul_ps(__U,__A,__B);
   2413 }
   2414 __m256 test_mm256_mask_mul_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
   2415   // CHECK-LABEL: @test_mm256_mask_mul_ps
   2416   // CHECK: @llvm.x86.avx512.mask.mul.ps.256
   2417   return _mm256_mask_mul_ps(__W,__U,__A,__B);
   2418 }
   2419 __m256 test_mm256_maskz_mul_ps(__mmask8 __U, __m256 __A, __m256 __B) {
   2420   // CHECK-LABEL: @test_mm256_maskz_mul_ps
   2421   // CHECK: @llvm.x86.avx512.mask.mul.ps.256
   2422   return _mm256_maskz_mul_ps(__U,__A,__B);
   2423 }
   2424 __m128i test_mm_mask_abs_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
   2425   // CHECK-LABEL: @test_mm_mask_abs_epi32
   2426   // CHECK: @llvm.x86.avx512.mask.pabs.d.128
   2427   return _mm_mask_abs_epi32(__W,__U,__A);
   2428 }
   2429 __m128i test_mm_maskz_abs_epi32(__mmask8 __U, __m128i __A) {
   2430   // CHECK-LABEL: @test_mm_maskz_abs_epi32
   2431   // CHECK: @llvm.x86.avx512.mask.pabs.d.128
   2432   return _mm_maskz_abs_epi32(__U,__A);
   2433 }
   2434 __m256i test_mm256_mask_abs_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
   2435   // CHECK-LABEL: @test_mm256_mask_abs_epi32
   2436   // CHECK: @llvm.x86.avx512.mask.pabs.d.256
   2437   return _mm256_mask_abs_epi32(__W,__U,__A);
   2438 }
   2439 __m256i test_mm256_maskz_abs_epi32(__mmask8 __U, __m256i __A) {
   2440   // CHECK-LABEL: @test_mm256_maskz_abs_epi32
   2441   // CHECK: @llvm.x86.avx512.mask.pabs.d.256
   2442   return _mm256_maskz_abs_epi32(__U,__A);
   2443 }
   2444 __m128i test_mm_abs_epi64(__m128i __A) {
   2445   // CHECK-LABEL: @test_mm_abs_epi64
   2446   // CHECK: @llvm.x86.avx512.mask.pabs.q.128
   2447   return _mm_abs_epi64(__A);
   2448 }
   2449 __m128i test_mm_mask_abs_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
   2450   // CHECK-LABEL: @test_mm_mask_abs_epi64
   2451   // CHECK: @llvm.x86.avx512.mask.pabs.q.128
   2452   return _mm_mask_abs_epi64(__W,__U,__A);
   2453 }
   2454 __m128i test_mm_maskz_abs_epi64(__mmask8 __U, __m128i __A) {
   2455   // CHECK-LABEL: @test_mm_maskz_abs_epi64
   2456   // CHECK: @llvm.x86.avx512.mask.pabs.q.128
   2457   return _mm_maskz_abs_epi64(__U,__A);
   2458 }
   2459 __m256i test_mm256_abs_epi64(__m256i __A) {
   2460   // CHECK-LABEL: @test_mm256_abs_epi64
   2461   // CHECK: @llvm.x86.avx512.mask.pabs.q.256
   2462   return _mm256_abs_epi64(__A);
   2463 }
   2464 __m256i test_mm256_mask_abs_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
   2465   // CHECK-LABEL: @test_mm256_mask_abs_epi64
   2466   // CHECK: @llvm.x86.avx512.mask.pabs.q.256
   2467   return _mm256_mask_abs_epi64(__W,__U,__A);
   2468 }
   2469 __m256i test_mm256_maskz_abs_epi64(__mmask8 __U, __m256i __A) {
   2470   // CHECK-LABEL: @test_mm256_maskz_abs_epi64
   2471   // CHECK: @llvm.x86.avx512.mask.pabs.q.256
   2472   return _mm256_maskz_abs_epi64(__U,__A);
   2473 }
   2474 __m128i test_mm_maskz_max_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
   2475   // CHECK-LABEL: @test_mm_maskz_max_epi32
   2476   // CHECK: @llvm.x86.avx512.mask.pmaxs.d.128
   2477   return _mm_maskz_max_epi32(__M,__A,__B);
   2478 }
   2479 __m128i test_mm_mask_max_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
   2480   // CHECK-LABEL: @test_mm_mask_max_epi32
   2481   // CHECK: @llvm.x86.avx512.mask.pmaxs.d.128
   2482   return _mm_mask_max_epi32(__W,__M,__A,__B);
   2483 }
   2484 __m256i test_mm256_maskz_max_epi32(__mmask8 __M, __m256i __A, __m256i __B) {
   2485   // CHECK-LABEL: @test_mm256_maskz_max_epi32
   2486   // CHECK: @llvm.x86.avx512.mask.pmaxs.d.256
   2487   return _mm256_maskz_max_epi32(__M,__A,__B);
   2488 }
   2489 __m256i test_mm256_mask_max_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
   2490   // CHECK-LABEL: @test_mm256_mask_max_epi32
   2491   // CHECK: @llvm.x86.avx512.mask.pmaxs.d.256
   2492   return _mm256_mask_max_epi32(__W,__M,__A,__B);
   2493 }
   2494 __m128i test_mm_maskz_max_epi64(__mmask8 __M, __m128i __A, __m128i __B) {
   2495   // CHECK-LABEL: @test_mm_maskz_max_epi64
   2496   // CHECK: @llvm.x86.avx512.mask.pmaxs.q.128
   2497   return _mm_maskz_max_epi64(__M,__A,__B);
   2498 }
   2499 __m128i test_mm_mask_max_epi64(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
   2500   // CHECK-LABEL: @test_mm_mask_max_epi64
   2501   // CHECK: @llvm.x86.avx512.mask.pmaxs.q.128
   2502   return _mm_mask_max_epi64(__W,__M,__A,__B);
   2503 }
   2504 __m128i test_mm_max_epi64(__m128i __A, __m128i __B) {
   2505   // CHECK-LABEL: @test_mm_max_epi64
   2506   // CHECK: @llvm.x86.avx512.mask.pmaxs.q.128
   2507   return _mm_max_epi64(__A,__B);
   2508 }
   2509 __m256i test_mm256_maskz_max_epi64(__mmask8 __M, __m256i __A, __m256i __B) {
   2510   // CHECK-LABEL: @test_mm256_maskz_max_epi64
   2511   // CHECK: @llvm.x86.avx512.mask.pmaxs.q.256
   2512   return _mm256_maskz_max_epi64(__M,__A,__B);
   2513 }
   2514 __m256i test_mm256_mask_max_epi64(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
   2515   // CHECK-LABEL: @test_mm256_mask_max_epi64
   2516   // CHECK: @llvm.x86.avx512.mask.pmaxs.q.256
   2517   return _mm256_mask_max_epi64(__W,__M,__A,__B);
   2518 }
   2519 __m256i test_mm256_max_epi64(__m256i __A, __m256i __B) {
   2520   // CHECK-LABEL: @test_mm256_max_epi64
   2521   // CHECK: @llvm.x86.avx512.mask.pmaxs.q.256
   2522   return _mm256_max_epi64(__A,__B);
   2523 }
   2524 __m128i test_mm_maskz_max_epu32(__mmask8 __M, __m128i __A, __m128i __B) {
   2525   // CHECK-LABEL: @test_mm_maskz_max_epu32
   2526   // CHECK: @llvm.x86.avx512.mask.pmaxu.d.128
   2527   return _mm_maskz_max_epu32(__M,__A,__B);
   2528 }
   2529 __m128i test_mm_mask_max_epu32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
   2530   // CHECK-LABEL: @test_mm_mask_max_epu32
   2531   // CHECK: @llvm.x86.avx512.mask.pmaxu.d.128
   2532   return _mm_mask_max_epu32(__W,__M,__A,__B);
   2533 }
   2534 __m256i test_mm256_maskz_max_epu32(__mmask8 __M, __m256i __A, __m256i __B) {
   2535   // CHECK-LABEL: @test_mm256_maskz_max_epu32
   2536   // CHECK: @llvm.x86.avx512.mask.pmaxu.d.256
   2537   return _mm256_maskz_max_epu32(__M,__A,__B);
   2538 }
   2539 __m256i test_mm256_mask_max_epu32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
   2540   // CHECK-LABEL: @test_mm256_mask_max_epu32
   2541   // CHECK: @llvm.x86.avx512.mask.pmaxu.d.256
   2542   return _mm256_mask_max_epu32(__W,__M,__A,__B);
   2543 }
   2544 __m128i test_mm_maskz_max_epu64(__mmask8 __M, __m128i __A, __m128i __B) {
   2545   // CHECK-LABEL: @test_mm_maskz_max_epu64
   2546   // CHECK: @llvm.x86.avx512.mask.pmaxu.q.128
   2547   return _mm_maskz_max_epu64(__M,__A,__B);
   2548 }
   2549 __m128i test_mm_max_epu64(__m128i __A, __m128i __B) {
   2550   // CHECK-LABEL: @test_mm_max_epu64
   2551   // CHECK: @llvm.x86.avx512.mask.pmaxu.q.128
   2552   return _mm_max_epu64(__A,__B);
   2553 }
   2554 __m128i test_mm_mask_max_epu64(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
   2555   // CHECK-LABEL: @test_mm_mask_max_epu64
   2556   // CHECK: @llvm.x86.avx512.mask.pmaxu.q.128
   2557   return _mm_mask_max_epu64(__W,__M,__A,__B);
   2558 }
   2559 __m256i test_mm256_maskz_max_epu64(__mmask8 __M, __m256i __A, __m256i __B) {
   2560   // CHECK-LABEL: @test_mm256_maskz_max_epu64
   2561   // CHECK: @llvm.x86.avx512.mask.pmaxu.q.256
   2562   return _mm256_maskz_max_epu64(__M,__A,__B);
   2563 }
   2564 __m256i test_mm256_max_epu64(__m256i __A, __m256i __B) {
   2565   // CHECK-LABEL: @test_mm256_max_epu64
   2566   // CHECK: @llvm.x86.avx512.mask.pmaxu.q.256
   2567   return _mm256_max_epu64(__A,__B);
   2568 }
   2569 __m256i test_mm256_mask_max_epu64(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
   2570   // CHECK-LABEL: @test_mm256_mask_max_epu64
   2571   // CHECK: @llvm.x86.avx512.mask.pmaxu.q.256
   2572   return _mm256_mask_max_epu64(__W,__M,__A,__B);
   2573 }
   2574 __m128i test_mm_maskz_min_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
   2575   // CHECK-LABEL: @test_mm_maskz_min_epi32
   2576   // CHECK: @llvm.x86.avx512.mask.pmins.d.128
   2577   return _mm_maskz_min_epi32(__M,__A,__B);
   2578 }
   2579 __m128i test_mm_mask_min_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
   2580   // CHECK-LABEL: @test_mm_mask_min_epi32
   2581   // CHECK: @llvm.x86.avx512.mask.pmins.d.128
   2582   return _mm_mask_min_epi32(__W,__M,__A,__B);
   2583 }
   2584 __m256i test_mm256_maskz_min_epi32(__mmask8 __M, __m256i __A, __m256i __B) {
   2585   // CHECK-LABEL: @test_mm256_maskz_min_epi32
   2586   // CHECK: @llvm.x86.avx512.mask.pmins.d.256
   2587   return _mm256_maskz_min_epi32(__M,__A,__B);
   2588 }
   2589 __m256i test_mm256_mask_min_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
   2590   // CHECK-LABEL: @test_mm256_mask_min_epi32
   2591   // CHECK: @llvm.x86.avx512.mask.pmins.d.256
   2592   return _mm256_mask_min_epi32(__W,__M,__A,__B);
   2593 }
   2594 __m128i test_mm_min_epi64(__m128i __A, __m128i __B) {
   2595   // CHECK-LABEL: @test_mm_min_epi64
   2596   // CHECK: @llvm.x86.avx512.mask.pmins.q.128
   2597   return _mm_min_epi64(__A,__B);
   2598 }
   2599 __m128i test_mm_mask_min_epi64(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
   2600   // CHECK-LABEL: @test_mm_mask_min_epi64
   2601   // CHECK: @llvm.x86.avx512.mask.pmins.q.128
   2602   return _mm_mask_min_epi64(__W,__M,__A,__B);
   2603 }
   2604 __m128i test_mm_maskz_min_epi64(__mmask8 __M, __m128i __A, __m128i __B) {
   2605   // CHECK-LABEL: @test_mm_maskz_min_epi64
   2606   // CHECK: @llvm.x86.avx512.mask.pmins.q.128
   2607   return _mm_maskz_min_epi64(__M,__A,__B);
   2608 }
   2609 __m256i test_mm256_min_epi64(__m256i __A, __m256i __B) {
   2610   // CHECK-LABEL: @test_mm256_min_epi64
   2611   // CHECK: @llvm.x86.avx512.mask.pmins.q.256
   2612   return _mm256_min_epi64(__A,__B);
   2613 }
   2614 __m256i test_mm256_mask_min_epi64(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
   2615   // CHECK-LABEL: @test_mm256_mask_min_epi64
   2616   // CHECK: @llvm.x86.avx512.mask.pmins.q.256
   2617   return _mm256_mask_min_epi64(__W,__M,__A,__B);
   2618 }
   2619 __m256i test_mm256_maskz_min_epi64(__mmask8 __M, __m256i __A, __m256i __B) {
   2620   // CHECK-LABEL: @test_mm256_maskz_min_epi64
   2621   // CHECK: @llvm.x86.avx512.mask.pmins.q.256
   2622   return _mm256_maskz_min_epi64(__M,__A,__B);
   2623 }
   2624 __m128i test_mm_maskz_min_epu32(__mmask8 __M, __m128i __A, __m128i __B) {
   2625   // CHECK-LABEL: @test_mm_maskz_min_epu32
   2626   // CHECK: @llvm.x86.avx512.mask.pminu.d.128
   2627   return _mm_maskz_min_epu32(__M,__A,__B);
   2628 }
   2629 __m128i test_mm_mask_min_epu32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
   2630   // CHECK-LABEL: @test_mm_mask_min_epu32
   2631   // CHECK: @llvm.x86.avx512.mask.pminu.d.128
   2632   return _mm_mask_min_epu32(__W,__M,__A,__B);
   2633 }
   2634 __m256i test_mm256_maskz_min_epu32(__mmask8 __M, __m256i __A, __m256i __B) {
   2635   // CHECK-LABEL: @test_mm256_maskz_min_epu32
   2636   // CHECK: @llvm.x86.avx512.mask.pminu.d.256
   2637   return _mm256_maskz_min_epu32(__M,__A,__B);
   2638 }
   2639 __m256i test_mm256_mask_min_epu32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
   2640   // CHECK-LABEL: @test_mm256_mask_min_epu32
   2641   // CHECK: @llvm.x86.avx512.mask.pminu.d.256
   2642   return _mm256_mask_min_epu32(__W,__M,__A,__B);
   2643 }
   2644 __m128i test_mm_min_epu64(__m128i __A, __m128i __B) {
   2645   // CHECK-LABEL: @test_mm_min_epu64
   2646   // CHECK: @llvm.x86.avx512.mask.pminu.q.128
   2647   return _mm_min_epu64(__A,__B);
   2648 }
   2649 __m128i test_mm_mask_min_epu64(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
   2650   // CHECK-LABEL: @test_mm_mask_min_epu64
   2651   // CHECK: @llvm.x86.avx512.mask.pminu.q.128
   2652   return _mm_mask_min_epu64(__W,__M,__A,__B);
   2653 }
   2654 __m128i test_mm_maskz_min_epu64(__mmask8 __M, __m128i __A, __m128i __B) {
   2655   // CHECK-LABEL: @test_mm_maskz_min_epu64
   2656   // CHECK: @llvm.x86.avx512.mask.pminu.q.128
   2657   return _mm_maskz_min_epu64(__M,__A,__B);
   2658 }
   2659 __m256i test_mm256_min_epu64(__m256i __A, __m256i __B) {
   2660   // CHECK-LABEL: @test_mm256_min_epu64
   2661   // CHECK: @llvm.x86.avx512.mask.pminu.q.256
   2662   return _mm256_min_epu64(__A,__B);
   2663 }
   2664 __m256i test_mm256_mask_min_epu64(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
   2665   // CHECK-LABEL: @test_mm256_mask_min_epu64
   2666   // CHECK: @llvm.x86.avx512.mask.pminu.q.256
   2667   return _mm256_mask_min_epu64(__W,__M,__A,__B);
   2668 }
   2669 __m256i test_mm256_maskz_min_epu64(__mmask8 __M, __m256i __A, __m256i __B) {
   2670   // CHECK-LABEL: @test_mm256_maskz_min_epu64
   2671   // CHECK: @llvm.x86.avx512.mask.pminu.q.256
   2672   return _mm256_maskz_min_epu64(__M,__A,__B);
   2673 }
   2674 __m128d test_mm_roundscale_pd(__m128d __A) {
   2675   // CHECK-LABEL: @test_mm_roundscale_pd
   2676   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.128
   2677   return _mm_roundscale_pd(__A,4);
   2678 }
   2679 __m128d test_mm_mask_roundscale_pd(__m128d __W, __mmask8 __U, __m128d __A) {
   2680   // CHECK-LABEL: @test_mm_mask_roundscale_pd
   2681   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.128
   2682   return _mm_mask_roundscale_pd(__W,__U,__A,4);
   2683 }
   2684 __m128d test_mm_maskz_roundscale_pd(__mmask8 __U, __m128d __A) {
   2685   // CHECK-LABEL: @test_mm_maskz_roundscale_pd
   2686   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.128
   2687   return _mm_maskz_roundscale_pd(__U,__A,4);
   2688 }
   2689 __m256d test_mm256_roundscale_pd(__m256d __A) {
   2690   // CHECK-LABEL: @test_mm256_roundscale_pd
   2691   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.256
   2692   return _mm256_roundscale_pd(__A,4);
   2693 }
   2694 __m256d test_mm256_mask_roundscale_pd(__m256d __W, __mmask8 __U, __m256d __A) {
   2695   // CHECK-LABEL: @test_mm256_mask_roundscale_pd
   2696   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.256
   2697   return _mm256_mask_roundscale_pd(__W,__U,__A,4);
   2698 }
   2699 __m256d test_mm256_maskz_roundscale_pd(__mmask8 __U, __m256d __A) {
   2700   // CHECK-LABEL: @test_mm256_maskz_roundscale_pd
   2701   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.256
   2702   return _mm256_maskz_roundscale_pd(__U,__A,4);
   2703 }
   2704 __m128 test_mm_roundscale_ps(__m128 __A) {
   2705   // CHECK-LABEL: @test_mm_roundscale_ps
   2706   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.128
   2707   return _mm_roundscale_ps(__A,4);
   2708 }
   2709 __m128 test_mm_mask_roundscale_ps(__m128 __W, __mmask8 __U, __m128 __A) {
   2710   // CHECK-LABEL: @test_mm_mask_roundscale_ps
   2711   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.128
   2712   return _mm_mask_roundscale_ps(__W,__U,__A,4);
   2713 }
   2714 __m128 test_mm_maskz_roundscale_ps(__mmask8 __U, __m128 __A) {
   2715   // CHECK-LABEL: @test_mm_maskz_roundscale_ps
   2716   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.128
   2717   return _mm_maskz_roundscale_ps(__U,__A, 4);
   2718 }
   2719 __m256 test_mm256_roundscale_ps(__m256 __A) {
   2720   // CHECK-LABEL: @test_mm256_roundscale_ps
   2721   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.256
   2722   return _mm256_roundscale_ps(__A,4);
   2723 }
   2724 __m256 test_mm256_mask_roundscale_ps(__m256 __W, __mmask8 __U, __m256 __A) {
   2725   // CHECK-LABEL: @test_mm256_mask_roundscale_ps
   2726   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.256
   2727   return _mm256_mask_roundscale_ps(__W,__U,__A,4);
   2728 }
   2729 __m256 test_mm256_maskz_roundscale_ps(__mmask8 __U, __m256 __A) {
   2730   // CHECK-LABEL: @test_mm256_maskz_roundscale_ps
   2731   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.256
   2732   return _mm256_maskz_roundscale_ps(__U,__A,4);
   2733 }
   2734 __m128d test_mm_scalef_pd(__m128d __A, __m128d __B) {
   2735   // CHECK-LABEL: @test_mm_scalef_pd
   2736   // CHECK: @llvm.x86.avx512.mask.scalef.pd.128
   2737   return _mm_scalef_pd(__A,__B);
   2738 }
   2739 __m128d test_mm_mask_scalef_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   2740   // CHECK-LABEL: @test_mm_mask_scalef_pd
   2741   // CHECK: @llvm.x86.avx512.mask.scalef.pd.128
   2742   return _mm_mask_scalef_pd(__W,__U,__A,__B);
   2743 }
   2744 __m128d test_mm_maskz_scalef_pd(__mmask8 __U, __m128d __A, __m128d __B) {
   2745   // CHECK-LABEL: @test_mm_maskz_scalef_pd
   2746   // CHECK: @llvm.x86.avx512.mask.scalef.pd.128
   2747   return _mm_maskz_scalef_pd(__U,__A,__B);
   2748 }
   2749 __m256d test_mm256_scalef_pd(__m256d __A, __m256d __B) {
   2750   // CHECK-LABEL: @test_mm256_scalef_pd
   2751   // CHECK: @llvm.x86.avx512.mask.scalef.pd.256
   2752   return _mm256_scalef_pd(__A,__B);
   2753 }
   2754 __m256d test_mm256_mask_scalef_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
   2755   // CHECK-LABEL: @test_mm256_mask_scalef_pd
   2756   // CHECK: @llvm.x86.avx512.mask.scalef.pd.256
   2757   return _mm256_mask_scalef_pd(__W,__U,__A,__B);
   2758 }
   2759 __m256d test_mm256_maskz_scalef_pd(__mmask8 __U, __m256d __A, __m256d __B) {
   2760   // CHECK-LABEL: @test_mm256_maskz_scalef_pd
   2761   // CHECK: @llvm.x86.avx512.mask.scalef.pd.256
   2762   return _mm256_maskz_scalef_pd(__U,__A,__B);
   2763 }
   2764 __m128 test_mm_scalef_ps(__m128 __A, __m128 __B) {
   2765   // CHECK-LABEL: @test_mm_scalef_ps
   2766   // CHECK: @llvm.x86.avx512.mask.scalef.ps.128
   2767   return _mm_scalef_ps(__A,__B);
   2768 }
   2769 __m128 test_mm_mask_scalef_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   2770   // CHECK-LABEL: @test_mm_mask_scalef_ps
   2771   // CHECK: @llvm.x86.avx512.mask.scalef.ps.128
   2772   return _mm_mask_scalef_ps(__W,__U,__A,__B);
   2773 }
   2774 __m128 test_mm_maskz_scalef_ps(__mmask8 __U, __m128 __A, __m128 __B) {
   2775   // CHECK-LABEL: @test_mm_maskz_scalef_ps
   2776   // CHECK: @llvm.x86.avx512.mask.scalef.ps.128
   2777   return _mm_maskz_scalef_ps(__U,__A,__B);
   2778 }
   2779 __m256 test_mm256_scalef_ps(__m256 __A, __m256 __B) {
   2780   // CHECK-LABEL: @test_mm256_scalef_ps
   2781   // CHECK: @llvm.x86.avx512.mask.scalef.ps.256
   2782   return _mm256_scalef_ps(__A,__B);
   2783 }
   2784 __m256 test_mm256_mask_scalef_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
   2785   // CHECK-LABEL: @test_mm256_mask_scalef_ps
   2786   // CHECK: @llvm.x86.avx512.mask.scalef.ps.256
   2787   return _mm256_mask_scalef_ps(__W,__U,__A,__B);
   2788 }
   2789 __m256 test_mm256_maskz_scalef_ps(__mmask8 __U, __m256 __A, __m256 __B) {
   2790   // CHECK-LABEL: @test_mm256_maskz_scalef_ps
   2791   // CHECK: @llvm.x86.avx512.mask.scalef.ps.256
   2792   return _mm256_maskz_scalef_ps(__U,__A,__B);
   2793 }
   2794 void test_mm_i64scatter_pd(double *__addr, __m128i __index,  __m128d __v1) {
   2795   // CHECK-LABEL: @test_mm_i64scatter_pd
   2796   // CHECK: @llvm.x86.avx512.scatterdiv2.df
   2797   return _mm_i64scatter_pd(__addr,__index,__v1,2);
   2798 }
   2799 void test_mm_mask_i64scatter_pd(double *__addr, __mmask8 __mask, __m128i __index, __m128d __v1) {
   2800   // CHECK-LABEL: @test_mm_mask_i64scatter_pd
   2801   // CHECK: @llvm.x86.avx512.scatterdiv2.df
   2802   return _mm_mask_i64scatter_pd(__addr,__mask,__index,__v1,2);
   2803 }
   2804 void test_mm_i64scatter_epi64(long long *__addr, __m128i __index,  __m128i __v1) {
   2805   // CHECK-LABEL: @test_mm_i64scatter_epi64
   2806   // CHECK: @llvm.x86.avx512.scatterdiv2.di
   2807   return _mm_i64scatter_epi64(__addr,__index,__v1,2);
   2808 }
   2809 void test_mm_mask_i64scatter_epi64(long long *__addr, __mmask8 __mask, __m128i __index, __m128i __v1) {
   2810   // CHECK-LABEL: @test_mm_mask_i64scatter_epi64
   2811   // CHECK: @llvm.x86.avx512.scatterdiv2.di
   2812   return _mm_mask_i64scatter_epi64(__addr,__mask,__index,__v1,2);
   2813 }
   2814 void test_mm256_i64scatter_pd(double *__addr, __m256i __index,  __m256d __v1) {
   2815   // CHECK-LABEL: @test_mm256_i64scatter_pd
   2816   // CHECK: @llvm.x86.avx512.scatterdiv4.df
   2817   return _mm256_i64scatter_pd(__addr,__index,__v1,2);
   2818 }
   2819 void test_mm256_mask_i64scatter_pd(double *__addr, __mmask8 __mask, __m256i __index, __m256d __v1) {
   2820   // CHECK-LABEL: @test_mm256_mask_i64scatter_pd
   2821   // CHECK: @llvm.x86.avx512.scatterdiv4.df
   2822   return _mm256_mask_i64scatter_pd(__addr,__mask,__index,__v1,2);
   2823 }
   2824 void test_mm256_i64scatter_epi64(long long *__addr, __m256i __index,  __m256i __v1) {
   2825   // CHECK-LABEL: @test_mm256_i64scatter_epi64
   2826   // CHECK: @llvm.x86.avx512.scatterdiv4.di
   2827   return _mm256_i64scatter_epi64(__addr,__index,__v1,2);
   2828 }
   2829 void test_mm256_mask_i64scatter_epi64(long long *__addr, __mmask8 __mask,  __m256i __index, __m256i __v1) {
   2830   // CHECK-LABEL: @test_mm256_mask_i64scatter_epi64
   2831   // CHECK: @llvm.x86.avx512.scatterdiv4.di
   2832   return _mm256_mask_i64scatter_epi64(__addr,__mask,__index,__v1,2);
   2833 }
   2834 void test_mm_i64scatter_ps(float *__addr, __m128i __index, __m128 __v1) {
   2835   // CHECK-LABEL: @test_mm_i64scatter_ps
   2836   // CHECK: @llvm.x86.avx512.scatterdiv4.sf
   2837   return _mm_i64scatter_ps(__addr,__index,__v1,2);
   2838 }
   2839 void test_mm_mask_i64scatter_ps(float *__addr, __mmask8 __mask, __m128i __index, __m128 __v1) {
   2840   // CHECK-LABEL: @test_mm_mask_i64scatter_ps
   2841   // CHECK: @llvm.x86.avx512.scatterdiv4.sf
   2842   return _mm_mask_i64scatter_ps(__addr,__mask,__index,__v1,2);
   2843 }
   2844 void test_mm_i64scatter_epi32(int *__addr, __m128i __index,  __m128i __v1) {
   2845   // CHECK-LABEL: @test_mm_i64scatter_epi32
   2846   // CHECK: @llvm.x86.avx512.scatterdiv4.si
   2847   return _mm_i64scatter_epi32(__addr,__index,__v1,2);
   2848 }
   2849 void test_mm_mask_i64scatter_epi32(int *__addr, __mmask8 __mask, __m128i __index, __m128i __v1) {
   2850   // CHECK-LABEL: @test_mm_mask_i64scatter_epi32
   2851   // CHECK: @llvm.x86.avx512.scatterdiv4.si
   2852   return _mm_mask_i64scatter_epi32(__addr,__mask,__index,__v1,2);
   2853 }
   2854 void test_mm256_i64scatter_ps(float *__addr, __m256i __index,  __m128 __v1) {
   2855   // CHECK-LABEL: @test_mm256_i64scatter_ps
   2856   // CHECK: @llvm.x86.avx512.scatterdiv8.sf
   2857   return _mm256_i64scatter_ps(__addr,__index,__v1,2);
   2858 }
   2859 void test_mm256_mask_i64scatter_ps(float *__addr, __mmask8 __mask, __m256i __index, __m128 __v1) {
   2860   // CHECK-LABEL: @test_mm256_mask_i64scatter_ps
   2861   // CHECK: @llvm.x86.avx512.scatterdiv8.sf
   2862   return _mm256_mask_i64scatter_ps(__addr,__mask,__index,__v1,2);
   2863 }
   2864 void test_mm256_i64scatter_epi32(int *__addr, __m256i __index,  __m128i __v1) {
   2865   // CHECK-LABEL: @test_mm256_i64scatter_epi32
   2866   // CHECK: @llvm.x86.avx512.scatterdiv8.si
   2867   return _mm256_i64scatter_epi32(__addr,__index,__v1,2);
   2868 }
   2869 void test_mm256_mask_i64scatter_epi32(int *__addr, __mmask8 __mask,  __m256i __index, __m128i __v1) {
   2870   // CHECK-LABEL: @test_mm256_mask_i64scatter_epi32
   2871   // CHECK: @llvm.x86.avx512.scatterdiv8.si
   2872   return _mm256_mask_i64scatter_epi32(__addr,__mask,__index,__v1,2);
   2873 }
   2874 void test_mm_i32scatter_pd(double *__addr, __m128i __index,  __m128d __v1) {
   2875   // CHECK-LABEL: @test_mm_i32scatter_pd
   2876   // CHECK: @llvm.x86.avx512.scattersiv2.df
   2877   return _mm_i32scatter_pd(__addr,__index,__v1,2);
   2878 }
   2879 void test_mm_mask_i32scatter_pd(double *__addr, __mmask8 __mask, __m128i __index, __m128d __v1) {
   2880   // CHECK-LABEL: @test_mm_mask_i32scatter_pd
   2881   // CHECK: @llvm.x86.avx512.scattersiv2.df
   2882   return _mm_mask_i32scatter_pd(__addr,__mask,__index,__v1,2);
   2883 }
   2884 void test_mm_i32scatter_epi64(long long *__addr, __m128i __index,  __m128i __v1) {
   2885   // CHECK-LABEL: @test_mm_i32scatter_epi64
   2886   // CHECK: @llvm.x86.avx512.scattersiv2.di
   2887   return _mm_i32scatter_epi64(__addr,__index,__v1,2);
   2888 }
   2889 void test_mm_mask_i32scatter_epi64(long long *__addr, __mmask8 __mask, __m128i __index, __m128i __v1) {
   2890   // CHECK-LABEL: @test_mm_mask_i32scatter_epi64
   2891   // CHECK: @llvm.x86.avx512.scattersiv2.di
   2892   return _mm_mask_i32scatter_epi64(__addr,__mask,__index,__v1,2);
   2893 }
   2894 void test_mm256_i32scatter_pd(double *__addr, __m128i __index,  __m256d __v1) {
   2895   // CHECK-LABEL: @test_mm256_i32scatter_pd
   2896   // CHECK: @llvm.x86.avx512.scattersiv4.df
   2897   return _mm256_i32scatter_pd(__addr,__index,__v1,2);
   2898 }
   2899 void test_mm256_mask_i32scatter_pd(double *__addr, __mmask8 __mask, __m128i __index, __m256d __v1) {
   2900   // CHECK-LABEL: @test_mm256_mask_i32scatter_pd
   2901   // CHECK: @llvm.x86.avx512.scattersiv4.df
   2902   return _mm256_mask_i32scatter_pd(__addr,__mask,__index,__v1,2);
   2903 }
   2904 void test_mm256_i32scatter_epi64(long long *__addr, __m128i __index,  __m256i __v1) {
   2905   // CHECK-LABEL: @test_mm256_i32scatter_epi64
   2906   // CHECK: @llvm.x86.avx512.scattersiv4.di
   2907   return _mm256_i32scatter_epi64(__addr,__index,__v1,2);
   2908 }
   2909 void test_mm256_mask_i32scatter_epi64(long long *__addr, __mmask8 __mask,  __m128i __index, __m256i __v1) {
   2910   // CHECK-LABEL: @test_mm256_mask_i32scatter_epi64
   2911   // CHECK: @llvm.x86.avx512.scattersiv4.di
   2912   return _mm256_mask_i32scatter_epi64(__addr,__mask,__index,__v1,2);
   2913 }
   2914 void test_mm_i32scatter_ps(float *__addr, __m128i __index, __m128 __v1) {
   2915   // CHECK-LABEL: @test_mm_i32scatter_ps
   2916   // CHECK: @llvm.x86.avx512.scattersiv4.sf
   2917   return _mm_i32scatter_ps(__addr,__index,__v1,2);
   2918 }
   2919 void test_mm_mask_i32scatter_ps(float *__addr, __mmask8 __mask, __m128i __index, __m128 __v1) {
   2920   // CHECK-LABEL: @test_mm_mask_i32scatter_ps
   2921   // CHECK: @llvm.x86.avx512.scattersiv4.sf
   2922   return _mm_mask_i32scatter_ps(__addr,__mask,__index,__v1,2);
   2923 }
   2924 void test_mm_i32scatter_epi32(int *__addr, __m128i __index,  __m128i __v1) {
   2925   // CHECK-LABEL: @test_mm_i32scatter_epi32
   2926   // CHECK: @llvm.x86.avx512.scattersiv4.si
   2927   return _mm_i32scatter_epi32(__addr,__index,__v1,2);
   2928 }
   2929 void test_mm_mask_i32scatter_epi32(int *__addr, __mmask8 __mask, __m128i __index, __m128i __v1) {
   2930   // CHECK-LABEL: @test_mm_mask_i32scatter_epi32
   2931   // CHECK: @llvm.x86.avx512.scattersiv4.si
   2932   return _mm_mask_i32scatter_epi32(__addr,__mask,__index,__v1,2);
   2933 }
   2934 void test_mm256_i32scatter_ps(float *__addr, __m256i __index,  __m256 __v1) {
   2935   // CHECK-LABEL: @test_mm256_i32scatter_ps
   2936   // CHECK: @llvm.x86.avx512.scattersiv8.sf
   2937   return _mm256_i32scatter_ps(__addr,__index,__v1,2);
   2938 }
   2939 void test_mm256_mask_i32scatter_ps(float *__addr, __mmask8 __mask, __m256i __index, __m256 __v1) {
   2940   // CHECK-LABEL: @test_mm256_mask_i32scatter_ps
   2941   // CHECK: @llvm.x86.avx512.scattersiv8.sf
   2942   return _mm256_mask_i32scatter_ps(__addr,__mask,__index,__v1,2);
   2943 }
   2944 void test_mm256_i32scatter_epi32(int *__addr, __m256i __index,  __m256i __v1) {
   2945   // CHECK-LABEL: @test_mm256_i32scatter_epi32
   2946   // CHECK: @llvm.x86.avx512.scattersiv8.si
   2947   return _mm256_i32scatter_epi32(__addr,__index,__v1,2);
   2948 }
   2949 void test_mm256_mask_i32scatter_epi32(int *__addr, __mmask8 __mask,  __m256i __index, __m256i __v1) {
   2950   // CHECK-LABEL: @test_mm256_mask_i32scatter_epi32
   2951   // CHECK: @llvm.x86.avx512.scattersiv8.si
   2952   return _mm256_mask_i32scatter_epi32(__addr,__mask,__index,__v1,2);
   2953 }
   2954 __m128d test_mm_mask_sqrt_pd(__m128d __W, __mmask8 __U, __m128d __A) {
   2955   // CHECK-LABEL: @test_mm_mask_sqrt_pd
   2956   // CHECK: @llvm.x86.avx512.mask.sqrt.pd.128
   2957   return _mm_mask_sqrt_pd(__W,__U,__A);
   2958 }
   2959 __m128d test_mm_maskz_sqrt_pd(__mmask8 __U, __m128d __A) {
   2960   // CHECK-LABEL: @test_mm_maskz_sqrt_pd
   2961   // CHECK: @llvm.x86.avx512.mask.sqrt.pd.128
   2962   return _mm_maskz_sqrt_pd(__U,__A);
   2963 }
   2964 __m256d test_mm256_mask_sqrt_pd(__m256d __W, __mmask8 __U, __m256d __A) {
   2965   // CHECK-LABEL: @test_mm256_mask_sqrt_pd
   2966   // CHECK: @llvm.x86.avx512.mask.sqrt.pd.256
   2967   return _mm256_mask_sqrt_pd(__W,__U,__A);
   2968 }
   2969 __m256d test_mm256_maskz_sqrt_pd(__mmask8 __U, __m256d __A) {
   2970   // CHECK-LABEL: @test_mm256_maskz_sqrt_pd
   2971   // CHECK: @llvm.x86.avx512.mask.sqrt.pd.256
   2972   return _mm256_maskz_sqrt_pd(__U,__A);
   2973 }
   2974 __m128 test_mm_mask_sqrt_ps(__m128 __W, __mmask8 __U, __m128 __A) {
   2975   // CHECK-LABEL: @test_mm_mask_sqrt_ps
   2976   // CHECK: @llvm.x86.avx512.mask.sqrt.ps.128
   2977   return _mm_mask_sqrt_ps(__W,__U,__A);
   2978 }
   2979 __m128 test_mm_maskz_sqrt_ps(__mmask8 __U, __m128 __A) {
   2980   // CHECK-LABEL: @test_mm_maskz_sqrt_ps
   2981   // CHECK: @llvm.x86.avx512.mask.sqrt.ps.128
   2982   return _mm_maskz_sqrt_ps(__U,__A);
   2983 }
   2984 __m256 test_mm256_mask_sqrt_ps(__m256 __W, __mmask8 __U, __m256 __A) {
   2985   // CHECK-LABEL: @test_mm256_mask_sqrt_ps
   2986   // CHECK: @llvm.x86.avx512.mask.sqrt.ps.256
   2987   return _mm256_mask_sqrt_ps(__W,__U,__A);
   2988 }
   2989 __m256 test_mm256_maskz_sqrt_ps(__mmask8 __U, __m256 __A) {
   2990   // CHECK-LABEL: @test_mm256_maskz_sqrt_ps
   2991   // CHECK: @llvm.x86.avx512.mask.sqrt.ps.256
   2992   return _mm256_maskz_sqrt_ps(__U,__A);
   2993 }
   2994 __m128d test_mm_mask_sub_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   2995   // CHECK-LABEL: @test_mm_mask_sub_pd
   2996   // CHECK: @llvm.x86.avx512.mask.sub.pd.128
   2997   return _mm_mask_sub_pd(__W,__U,__A,__B);
   2998 }
   2999 __m128d test_mm_maskz_sub_pd(__mmask8 __U, __m128d __A, __m128d __B) {
   3000   // CHECK-LABEL: @test_mm_maskz_sub_pd
   3001   // CHECK: @llvm.x86.avx512.mask.sub.pd.128
   3002   return _mm_maskz_sub_pd(__U,__A,__B);
   3003 }
   3004 __m256d test_mm256_mask_sub_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
   3005   // CHECK-LABEL: @test_mm256_mask_sub_pd
   3006   // CHECK: @llvm.x86.avx512.mask.sub.pd.256
   3007   return _mm256_mask_sub_pd(__W,__U,__A,__B);
   3008 }
   3009 __m256d test_mm256_maskz_sub_pd(__mmask8 __U, __m256d __A, __m256d __B) {
   3010   // CHECK-LABEL: @test_mm256_maskz_sub_pd
   3011   // CHECK: @llvm.x86.avx512.mask.sub.pd.256
   3012   return _mm256_maskz_sub_pd(__U,__A,__B);
   3013 }
   3014 __m128 test_mm_mask_sub_ps(__m128 __W, __mmask16 __U, __m128 __A, __m128 __B) {
   3015   // CHECK-LABEL: @test_mm_mask_sub_ps
   3016   // CHECK: @llvm.x86.avx512.mask.sub.ps.128
   3017   return _mm_mask_sub_ps(__W,__U,__A,__B);
   3018 }
   3019 __m128 test_mm_maskz_sub_ps(__mmask16 __U, __m128 __A, __m128 __B) {
   3020   // CHECK-LABEL: @test_mm_maskz_sub_ps
   3021   // CHECK: @llvm.x86.avx512.mask.sub.ps.128
   3022   return _mm_maskz_sub_ps(__U,__A,__B);
   3023 }
   3024 __m256 test_mm256_mask_sub_ps(__m256 __W, __mmask16 __U, __m256 __A, __m256 __B) {
   3025   // CHECK-LABEL: @test_mm256_mask_sub_ps
   3026   // CHECK: @llvm.x86.avx512.mask.sub.ps.256
   3027   return _mm256_mask_sub_ps(__W,__U,__A,__B);
   3028 }
   3029 __m256 test_mm256_maskz_sub_ps(__mmask16 __U, __m256 __A, __m256 __B) {
   3030   // CHECK-LABEL: @test_mm256_maskz_sub_ps
   3031   // CHECK: @llvm.x86.avx512.mask.sub.ps.256
   3032   return _mm256_maskz_sub_ps(__U,__A,__B);
   3033 }
   3034 __m128i test_mm_mask2_permutex2var_epi32(__m128i __A, __m128i __I, __mmask8 __U,  __m128i __B) {
   3035   // CHECK-LABEL: @test_mm_mask2_permutex2var_epi32
   3036   // CHECK: @llvm.x86.avx512.mask.vpermi2var.d.128
   3037   return _mm_mask2_permutex2var_epi32(__A,__I,__U,__B);
   3038 }
   3039 __m256i test_mm256_mask2_permutex2var_epi32(__m256i __A, __m256i __I, __mmask8 __U, __m256i __B) {
   3040   // CHECK-LABEL: @test_mm256_mask2_permutex2var_epi32
   3041   // CHECK: @llvm.x86.avx512.mask.vpermi2var.d.256
   3042   return _mm256_mask2_permutex2var_epi32(__A,__I,__U,__B);
   3043 }
   3044 __m128d test_mm_mask2_permutex2var_pd(__m128d __A, __m128i __I, __mmask8 __U, __m128d __B) {
   3045   // CHECK-LABEL: @test_mm_mask2_permutex2var_pd
   3046   // CHECK: @llvm.x86.avx512.mask.vpermi2var.pd.128
   3047   return _mm_mask2_permutex2var_pd(__A,__I,__U,__B);
   3048 }
   3049 __m256d test_mm256_mask2_permutex2var_pd(__m256d __A, __m256i __I, __mmask8 __U,  __m256d __B) {
   3050   // CHECK-LABEL: @test_mm256_mask2_permutex2var_pd
   3051   // CHECK: @llvm.x86.avx512.mask.vpermi2var.pd.256
   3052   return _mm256_mask2_permutex2var_pd(__A,__I,__U,__B);
   3053 }
   3054 __m128 test_mm_mask2_permutex2var_ps(__m128 __A, __m128i __I, __mmask8 __U, __m128 __B) {
   3055   // CHECK-LABEL: @test_mm_mask2_permutex2var_ps
   3056   // CHECK: @llvm.x86.avx512.mask.vpermi2var.ps.128
   3057   return _mm_mask2_permutex2var_ps(__A,__I,__U,__B);
   3058 }
   3059 __m256 test_mm256_mask2_permutex2var_ps(__m256 __A, __m256i __I, __mmask8 __U,  __m256 __B) {
   3060   // CHECK-LABEL: @test_mm256_mask2_permutex2var_ps
   3061   // CHECK: @llvm.x86.avx512.mask.vpermi2var.ps.256
   3062   return _mm256_mask2_permutex2var_ps(__A,__I,__U,__B);
   3063 }
   3064 __m128i test_mm_mask2_permutex2var_epi64(__m128i __A, __m128i __I, __mmask8 __U,  __m128i __B) {
   3065   // CHECK-LABEL: @test_mm_mask2_permutex2var_epi64
   3066   // CHECK: @llvm.x86.avx512.mask.vpermi2var.q.128
   3067   return _mm_mask2_permutex2var_epi64(__A,__I,__U,__B);
   3068 }
   3069 __m256i test_mm256_mask2_permutex2var_epi64(__m256i __A, __m256i __I, __mmask8 __U, __m256i __B) {
   3070   // CHECK-LABEL: @test_mm256_mask2_permutex2var_epi64
   3071   // CHECK: @llvm.x86.avx512.mask.vpermi2var.q.256
   3072   return _mm256_mask2_permutex2var_epi64(__A,__I,__U,__B);
   3073 }
   3074 __m128i test_mm_permutex2var_epi32(__m128i __A, __m128i __I, __m128i __B) {
   3075   // CHECK-LABEL: @test_mm_permutex2var_epi32
   3076   // CHECK: @llvm.x86.avx512.mask.vpermt2var.d.128
   3077   return _mm_permutex2var_epi32(__A,__I,__B);
   3078 }
   3079 __m128i test_mm_mask_permutex2var_epi32(__m128i __A, __mmask8 __U, __m128i __I, __m128i __B) {
   3080   // CHECK-LABEL: @test_mm_mask_permutex2var_epi32
   3081   // CHECK: @llvm.x86.avx512.mask.vpermt2var.d.128
   3082   return _mm_mask_permutex2var_epi32(__A,__U,__I,__B);
   3083 }
   3084 __m128i test_mm_maskz_permutex2var_epi32(__mmask8 __U, __m128i __A, __m128i __I,  __m128i __B) {
   3085   // CHECK-LABEL: @test_mm_maskz_permutex2var_epi32
   3086   // CHECK: @llvm.x86.avx512.maskz.vpermt2var.d.128
   3087   return _mm_maskz_permutex2var_epi32(__U,__A,__I,__B);
   3088 }
   3089 __m256i test_mm256_permutex2var_epi32(__m256i __A, __m256i __I, __m256i __B) {
   3090   // CHECK-LABEL: @test_mm256_permutex2var_epi32
   3091   // CHECK: @llvm.x86.avx512.mask.vpermt2var.d.256
   3092   return _mm256_permutex2var_epi32(__A,__I,__B);
   3093 }
   3094 __m256i test_mm256_mask_permutex2var_epi32(__m256i __A, __mmask8 __U, __m256i __I, __m256i __B) {
   3095   // CHECK-LABEL: @test_mm256_mask_permutex2var_epi32
   3096   // CHECK: @llvm.x86.avx512.mask.vpermt2var.d.256
   3097   return _mm256_mask_permutex2var_epi32(__A,__U,__I,__B);
   3098 }
   3099 __m256i test_mm256_maskz_permutex2var_epi32(__mmask8 __U, __m256i __A, __m256i __I, __m256i __B) {
   3100   // CHECK-LABEL: @test_mm256_maskz_permutex2var_epi32
   3101   // CHECK: @llvm.x86.avx512.maskz.vpermt2var.d.256
   3102   return _mm256_maskz_permutex2var_epi32(__U,__A,__I,__B);
   3103 }
   3104 __m128d test_mm_permutex2var_pd(__m128d __A, __m128i __I, __m128d __B) {
   3105   // CHECK-LABEL: @test_mm_permutex2var_pd
   3106   // CHECK: @llvm.x86.avx512.mask.vpermt2var.pd.128
   3107   return _mm_permutex2var_pd(__A,__I,__B);
   3108 }
   3109 __m128d test_mm_mask_permutex2var_pd(__m128d __A, __mmask8 __U, __m128i __I, __m128d __B) {
   3110   // CHECK-LABEL: @test_mm_mask_permutex2var_pd
   3111   // CHECK: @llvm.x86.avx512.mask.vpermt2var.pd.128
   3112   return _mm_mask_permutex2var_pd(__A,__U,__I,__B);
   3113 }
   3114 __m128d test_mm_maskz_permutex2var_pd(__mmask8 __U, __m128d __A, __m128i __I, __m128d __B) {
   3115   // CHECK-LABEL: @test_mm_maskz_permutex2var_pd
   3116   // CHECK: @llvm.x86.avx512.maskz.vpermt2var.pd.128
   3117   return _mm_maskz_permutex2var_pd(__U,__A,__I,__B);
   3118 }
   3119 __m256d test_mm256_permutex2var_pd(__m256d __A, __m256i __I, __m256d __B) {
   3120   // CHECK-LABEL: @test_mm256_permutex2var_pd
   3121   // CHECK: @llvm.x86.avx512.mask.vpermt2var.pd.256
   3122   return _mm256_permutex2var_pd(__A,__I,__B);
   3123 }
   3124 __m256d test_mm256_mask_permutex2var_pd(__m256d __A, __mmask8 __U, __m256i __I, __m256d __B) {
   3125   // CHECK-LABEL: @test_mm256_mask_permutex2var_pd
   3126   // CHECK: @llvm.x86.avx512.mask.vpermt2var.pd.256
   3127   return _mm256_mask_permutex2var_pd(__A,__U,__I,__B);
   3128 }
   3129 __m256d test_mm256_maskz_permutex2var_pd(__mmask8 __U, __m256d __A, __m256i __I,  __m256d __B) {
   3130   // CHECK-LABEL: @test_mm256_maskz_permutex2var_pd
   3131   // CHECK: @llvm.x86.avx512.maskz.vpermt2var.pd.256
   3132   return _mm256_maskz_permutex2var_pd(__U,__A,__I,__B);
   3133 }
   3134 __m128 test_mm_permutex2var_ps(__m128 __A, __m128i __I, __m128 __B) {
   3135   // CHECK-LABEL: @test_mm_permutex2var_ps
   3136   // CHECK: @llvm.x86.avx512.mask.vpermt2var.ps.128
   3137   return _mm_permutex2var_ps(__A,__I,__B);
   3138 }
   3139 __m128 test_mm_mask_permutex2var_ps(__m128 __A, __mmask8 __U, __m128i __I, __m128 __B) {
   3140   // CHECK-LABEL: @test_mm_mask_permutex2var_ps
   3141   // CHECK: @llvm.x86.avx512.mask.vpermt2var.ps.128
   3142   return _mm_mask_permutex2var_ps(__A,__U,__I,__B);
   3143 }
   3144 __m128 test_mm_maskz_permutex2var_ps(__mmask8 __U, __m128 __A, __m128i __I, __m128 __B) {
   3145   // CHECK-LABEL: @test_mm_maskz_permutex2var_ps
   3146   // CHECK: @llvm.x86.avx512.maskz.vpermt2var.ps.128
   3147   return _mm_maskz_permutex2var_ps(__U,__A,__I,__B);
   3148 }
   3149 __m256 test_mm256_permutex2var_ps(__m256 __A, __m256i __I, __m256 __B) {
   3150   // CHECK-LABEL: @test_mm256_permutex2var_ps
   3151   // CHECK: @llvm.x86.avx512.mask.vpermt2var.ps.256
   3152   return _mm256_permutex2var_ps(__A,__I,__B);
   3153 }
   3154 __m256 test_mm256_mask_permutex2var_ps(__m256 __A, __mmask8 __U, __m256i __I, __m256 __B) {
   3155   // CHECK-LABEL: @test_mm256_mask_permutex2var_ps
   3156   // CHECK: @llvm.x86.avx512.mask.vpermt2var.ps.256
   3157   return _mm256_mask_permutex2var_ps(__A,__U,__I,__B);
   3158 }
   3159 __m256 test_mm256_maskz_permutex2var_ps(__mmask8 __U, __m256 __A, __m256i __I, __m256 __B) {
   3160   // CHECK-LABEL: @test_mm256_maskz_permutex2var_ps
   3161   // CHECK: @llvm.x86.avx512.maskz.vpermt2var.ps.256
   3162   return _mm256_maskz_permutex2var_ps(__U,__A,__I,__B);
   3163 }
   3164 __m128i test_mm_permutex2var_epi64(__m128i __A, __m128i __I, __m128i __B) {
   3165   // CHECK-LABEL: @test_mm_permutex2var_epi64
   3166   // CHECK: @llvm.x86.avx512.mask.vpermt2var.q.128
   3167   return _mm_permutex2var_epi64(__A,__I,__B);
   3168 }
   3169 __m128i test_mm_mask_permutex2var_epi64(__m128i __A, __mmask8 __U, __m128i __I, __m128i __B) {
   3170   // CHECK-LABEL: @test_mm_mask_permutex2var_epi64
   3171   // CHECK: @llvm.x86.avx512.mask.vpermt2var.q.128
   3172   return _mm_mask_permutex2var_epi64(__A,__U,__I,__B);
   3173 }
   3174 __m128i test_mm_maskz_permutex2var_epi64(__mmask8 __U, __m128i __A, __m128i __I, __m128i __B) {
   3175   // CHECK-LABEL: @test_mm_maskz_permutex2var_epi64
   3176   // CHECK: @llvm.x86.avx512.maskz.vpermt2var.q.128
   3177   return _mm_maskz_permutex2var_epi64(__U,__A,__I,__B);
   3178 }
   3179 __m256i test_mm256_permutex2var_epi64(__m256i __A, __m256i __I, __m256i __B) {
   3180   // CHECK-LABEL: @test_mm256_permutex2var_epi64
   3181   // CHECK: @llvm.x86.avx512.mask.vpermt2var.q.256
   3182   return _mm256_permutex2var_epi64(__A,__I,__B);
   3183 }
   3184 __m256i test_mm256_mask_permutex2var_epi64(__m256i __A, __mmask8 __U, __m256i __I, __m256i __B) {
   3185   // CHECK-LABEL: @test_mm256_mask_permutex2var_epi64
   3186   // CHECK: @llvm.x86.avx512.mask.vpermt2var.q.256
   3187   return _mm256_mask_permutex2var_epi64(__A,__U,__I,__B);
   3188 }
   3189 __m256i test_mm256_maskz_permutex2var_epi64(__mmask8 __U, __m256i __A, __m256i __I, __m256i __B) {
   3190   // CHECK-LABEL: @test_mm256_maskz_permutex2var_epi64
   3191   // CHECK: @llvm.x86.avx512.maskz.vpermt2var.q.256
   3192   return _mm256_maskz_permutex2var_epi64(__U,__A,__I,__B);
   3193 }
   3194 
   3195 __m128i test_mm_mask_cvtepi8_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
   3196   // CHECK-LABEL: @test_mm_mask_cvtepi8_epi32
   3197   // CHECK: @llvm.x86.avx512.mask.pmovsxb.d.128
   3198   return _mm_mask_cvtepi8_epi32(__W, __U, __A);
   3199 }
   3200 
   3201 __m128i test_mm_maskz_cvtepi8_epi32(__mmask8 __U, __m128i __A) {
   3202   // CHECK-LABEL: @test_mm_maskz_cvtepi8_epi32
   3203   // CHECK: @llvm.x86.avx512.mask.pmovsxb.d.128
   3204   return _mm_maskz_cvtepi8_epi32(__U, __A);
   3205 }
   3206 
   3207 __m256i test_mm256_mask_cvtepi8_epi32(__m256i __W, __mmask8 __U, __m128i __A) {
   3208   // CHECK-LABEL: @test_mm256_mask_cvtepi8_epi32
   3209   // CHECK: @llvm.x86.avx512.mask.pmovsxb.d.256
   3210   return _mm256_mask_cvtepi8_epi32(__W, __U, __A);
   3211 }
   3212 
   3213 __m256i test_mm256_maskz_cvtepi8_epi32(__mmask8 __U, __m128i __A) {
   3214   // CHECK-LABEL: @test_mm256_maskz_cvtepi8_epi32
   3215   // CHECK: @llvm.x86.avx512.mask.pmovsxb.d.256
   3216   return _mm256_maskz_cvtepi8_epi32(__U, __A);
   3217 }
   3218 
   3219 __m128i test_mm_mask_cvtepi8_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
   3220   // CHECK-LABEL: @test_mm_mask_cvtepi8_epi64
   3221   // CHECK: @llvm.x86.avx512.mask.pmovsxb.q.128
   3222   return _mm_mask_cvtepi8_epi64(__W, __U, __A);
   3223 }
   3224 
   3225 __m128i test_mm_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A) {
   3226   // CHECK-LABEL: @test_mm_maskz_cvtepi8_epi64
   3227   // CHECK: @llvm.x86.avx512.mask.pmovsxb.q.128
   3228   return _mm_maskz_cvtepi8_epi64(__U, __A);
   3229 }
   3230 
   3231 __m256i test_mm256_mask_cvtepi8_epi64(__m256i __W, __mmask8 __U, __m128i __A) {
   3232   // CHECK-LABEL: @test_mm256_mask_cvtepi8_epi64
   3233   // CHECK: @llvm.x86.avx512.mask.pmovsxb.q.256
   3234   return _mm256_mask_cvtepi8_epi64(__W, __U, __A);
   3235 }
   3236 
   3237 __m256i test_mm256_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A) {
   3238   // CHECK-LABEL: @test_mm256_maskz_cvtepi8_epi64
   3239   // CHECK: @llvm.x86.avx512.mask.pmovsxb.q.256
   3240   return _mm256_maskz_cvtepi8_epi64(__U, __A);
   3241 }
   3242 
   3243 __m128i test_mm_mask_cvtepi32_epi64(__m128i __W, __mmask8 __U, __m128i __X) {
   3244   // CHECK-LABEL: @test_mm_mask_cvtepi32_epi64
   3245   // CHECK: @llvm.x86.avx512.mask.pmovsxd.q.128
   3246   return _mm_mask_cvtepi32_epi64(__W, __U, __X);
   3247 }
   3248 
   3249 __m128i test_mm_maskz_cvtepi32_epi64(__mmask8 __U, __m128i __X) {
   3250   // CHECK-LABEL: @test_mm_maskz_cvtepi32_epi64
   3251   // CHECK: @llvm.x86.avx512.mask.pmovsxd.q.128
   3252   return _mm_maskz_cvtepi32_epi64(__U, __X);
   3253 }
   3254 
   3255 __m256i test_mm256_mask_cvtepi32_epi64(__m256i __W, __mmask8 __U, __m128i __X) {
   3256   // CHECK-LABEL: @test_mm256_mask_cvtepi32_epi64
   3257   // CHECK: @llvm.x86.avx512.mask.pmovsxd.q.256
   3258   return _mm256_mask_cvtepi32_epi64(__W, __U, __X);
   3259 }
   3260 
   3261 __m256i test_mm256_maskz_cvtepi32_epi64(__mmask8 __U, __m128i __X) {
   3262   // CHECK-LABEL: @test_mm256_maskz_cvtepi32_epi64
   3263   // CHECK: @llvm.x86.avx512.mask.pmovsxd.q.256
   3264   return _mm256_maskz_cvtepi32_epi64(__U, __X);
   3265 }
   3266 
   3267 __m128i test_mm_mask_cvtepi16_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
   3268   // CHECK-LABEL: @test_mm_mask_cvtepi16_epi32
   3269   // CHECK: @llvm.x86.avx512.mask.pmovsxw.d.128
   3270   return _mm_mask_cvtepi16_epi32(__W, __U, __A);
   3271 }
   3272 
   3273 __m128i test_mm_maskz_cvtepi16_epi32(__mmask8 __U, __m128i __A) {
   3274   // CHECK-LABEL: @test_mm_maskz_cvtepi16_epi32
   3275   // CHECK: @llvm.x86.avx512.mask.pmovsxw.d.128
   3276   return _mm_maskz_cvtepi16_epi32(__U, __A);
   3277 }
   3278 
   3279 __m256i test_mm256_mask_cvtepi16_epi32(__m256i __W, __mmask8 __U, __m128i __A) {
   3280   // CHECK-LABEL: @test_mm256_mask_cvtepi16_epi32
   3281   // CHECK: @llvm.x86.avx512.mask.pmovsxw.d.256
   3282   return _mm256_mask_cvtepi16_epi32(__W, __U, __A);
   3283 }
   3284 
   3285 __m256i test_mm256_maskz_cvtepi16_epi32(__mmask8 __U, __m128i __A) {
   3286   // CHECK-LABEL: @test_mm256_maskz_cvtepi16_epi32
   3287   // CHECK: @llvm.x86.avx512.mask.pmovsxw.d.256
   3288   return _mm256_maskz_cvtepi16_epi32(__U, __A);
   3289 }
   3290 
   3291 __m128i test_mm_mask_cvtepi16_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
   3292   // CHECK-LABEL: @test_mm_mask_cvtepi16_epi64
   3293   // CHECK: @llvm.x86.avx512.mask.pmovsxw.q.128
   3294   return _mm_mask_cvtepi16_epi64(__W, __U, __A);
   3295 }
   3296 
   3297 __m128i test_mm_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A) {
   3298   // CHECK-LABEL: @test_mm_maskz_cvtepi16_epi64
   3299   // CHECK: @llvm.x86.avx512.mask.pmovsxw.q.128
   3300   return _mm_maskz_cvtepi16_epi64(__U, __A);
   3301 }
   3302 
   3303 __m256i test_mm256_mask_cvtepi16_epi64(__m256i __W, __mmask8 __U, __m128i __A) {
   3304   // CHECK-LABEL: @test_mm256_mask_cvtepi16_epi64
   3305   // CHECK: @llvm.x86.avx512.mask.pmovsxw.q.256
   3306   return _mm256_mask_cvtepi16_epi64(__W, __U, __A);
   3307 }
   3308 
   3309 __m256i test_mm256_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A) {
   3310   // CHECK-LABEL: @test_mm256_maskz_cvtepi16_epi64
   3311   // CHECK: @llvm.x86.avx512.mask.pmovsxw.q.256
   3312   return _mm256_maskz_cvtepi16_epi64(__U, __A);
   3313 }
   3314 
   3315 __m128i test_mm_mask_cvtepu8_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
   3316   // CHECK-LABEL: @test_mm_mask_cvtepu8_epi32
   3317   // CHECK: @llvm.x86.avx512.mask.pmovzxb.d.128
   3318   return _mm_mask_cvtepu8_epi32(__W, __U, __A);
   3319 }
   3320 
   3321 __m128i test_mm_maskz_cvtepu8_epi32(__mmask8 __U, __m128i __A) {
   3322   // CHECK-LABEL: @test_mm_maskz_cvtepu8_epi32
   3323   // CHECK: @llvm.x86.avx512.mask.pmovzxb.d.128
   3324   return _mm_maskz_cvtepu8_epi32(__U, __A);
   3325 }
   3326 
   3327 __m256i test_mm256_mask_cvtepu8_epi32(__m256i __W, __mmask8 __U, __m128i __A) {
   3328   // CHECK-LABEL: @test_mm256_mask_cvtepu8_epi32
   3329   // CHECK: @llvm.x86.avx512.mask.pmovzxb.d.256
   3330   return _mm256_mask_cvtepu8_epi32(__W, __U, __A);
   3331 }
   3332 
   3333 __m256i test_mm256_maskz_cvtepu8_epi32(__mmask8 __U, __m128i __A) {
   3334   // CHECK-LABEL: @test_mm256_maskz_cvtepu8_epi32
   3335   // CHECK: @llvm.x86.avx512.mask.pmovzxb.d.256
   3336   return _mm256_maskz_cvtepu8_epi32(__U, __A);
   3337 }
   3338 
   3339 __m128i test_mm_mask_cvtepu8_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
   3340   // CHECK-LABEL: @test_mm_mask_cvtepu8_epi64
   3341   // CHECK: @llvm.x86.avx512.mask.pmovzxb.q.128
   3342   return _mm_mask_cvtepu8_epi64(__W, __U, __A);
   3343 }
   3344 
   3345 __m128i test_mm_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A) {
   3346   // CHECK-LABEL: @test_mm_maskz_cvtepu8_epi64
   3347   // CHECK: @llvm.x86.avx512.mask.pmovzxb.q.128
   3348   return _mm_maskz_cvtepu8_epi64(__U, __A);
   3349 }
   3350 
   3351 __m256i test_mm256_mask_cvtepu8_epi64(__m256i __W, __mmask8 __U, __m128i __A) {
   3352   // CHECK-LABEL: @test_mm256_mask_cvtepu8_epi64
   3353   // CHECK: @llvm.x86.avx512.mask.pmovzxb.q.256
   3354   return _mm256_mask_cvtepu8_epi64(__W, __U, __A);
   3355 }
   3356 
   3357 __m256i test_mm256_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A) {
   3358   // CHECK-LABEL: @test_mm256_maskz_cvtepu8_epi64
   3359   // CHECK: @llvm.x86.avx512.mask.pmovzxb.q.256
   3360   return _mm256_maskz_cvtepu8_epi64(__U, __A);
   3361 }
   3362 
   3363 __m128i test_mm_mask_cvtepu32_epi64(__m128i __W, __mmask8 __U, __m128i __X) {
   3364   // CHECK-LABEL: @test_mm_mask_cvtepu32_epi64
   3365   // CHECK: @llvm.x86.avx512.mask.pmovzxd.q.128
   3366   return _mm_mask_cvtepu32_epi64(__W, __U, __X);
   3367 }
   3368 
   3369 __m128i test_mm_maskz_cvtepu32_epi64(__mmask8 __U, __m128i __X) {
   3370   // CHECK-LABEL: @test_mm_maskz_cvtepu32_epi64
   3371   // CHECK: @llvm.x86.avx512.mask.pmovzxd.q.128
   3372   return _mm_maskz_cvtepu32_epi64(__U, __X);
   3373 }
   3374 
   3375 __m256i test_mm256_mask_cvtepu32_epi64(__m256i __W, __mmask8 __U, __m128i __X) {
   3376   // CHECK-LABEL: @test_mm256_mask_cvtepu32_epi64
   3377   // CHECK: @llvm.x86.avx512.mask.pmovzxd.q.256
   3378   return _mm256_mask_cvtepu32_epi64(__W, __U, __X);
   3379 }
   3380 
   3381 __m256i test_mm256_maskz_cvtepu32_epi64(__mmask8 __U, __m128i __X) {
   3382   // CHECK-LABEL: @test_mm256_maskz_cvtepu32_epi64
   3383   // CHECK: @llvm.x86.avx512.mask.pmovzxd.q.256
   3384   return _mm256_maskz_cvtepu32_epi64(__U, __X);
   3385 }
   3386 
   3387 __m128i test_mm_mask_cvtepu16_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
   3388   // CHECK-LABEL: @test_mm_mask_cvtepu16_epi32
   3389   // CHECK: @llvm.x86.avx512.mask.pmovzxw.d.128
   3390   return _mm_mask_cvtepu16_epi32(__W, __U, __A);
   3391 }
   3392 
   3393 __m128i test_mm_maskz_cvtepu16_epi32(__mmask8 __U, __m128i __A) {
   3394   // CHECK-LABEL: @test_mm_maskz_cvtepu16_epi32
   3395   // CHECK: @llvm.x86.avx512.mask.pmovzxw.d.128
   3396   return _mm_maskz_cvtepu16_epi32(__U, __A);
   3397 }
   3398 
   3399 __m256i test_mm256_mask_cvtepu16_epi32(__m256i __W, __mmask8 __U, __m128i __A) {
   3400   // CHECK-LABEL: @test_mm256_mask_cvtepu16_epi32
   3401   // CHECK: @llvm.x86.avx512.mask.pmovzxw.d.256
   3402   return _mm256_mask_cvtepu16_epi32(__W, __U, __A);
   3403 }
   3404 
   3405 __m256i test_mm256_maskz_cvtepu16_epi32(__mmask8 __U, __m128i __A) {
   3406   // CHECK-LABEL: @test_mm256_maskz_cvtepu16_epi32
   3407   // CHECK: @llvm.x86.avx512.mask.pmovzxw.d.256
   3408   return _mm256_maskz_cvtepu16_epi32(__U, __A);
   3409 }
   3410 
   3411 __m128i test_mm_mask_cvtepu16_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
   3412   // CHECK-LABEL: @test_mm_mask_cvtepu16_epi64
   3413   // CHECK: @llvm.x86.avx512.mask.pmovzxw.q.128
   3414   return _mm_mask_cvtepu16_epi64(__W, __U, __A);
   3415 }
   3416 
   3417 __m128i test_mm_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A) {
   3418   // CHECK-LABEL: @test_mm_maskz_cvtepu16_epi64
   3419   // CHECK: @llvm.x86.avx512.mask.pmovzxw.q.128
   3420   return _mm_maskz_cvtepu16_epi64(__U, __A);
   3421 }
   3422 
   3423 __m256i test_mm256_mask_cvtepu16_epi64(__m256i __W, __mmask8 __U, __m128i __A) {
   3424   // CHECK-LABEL: @test_mm256_mask_cvtepu16_epi64
   3425   // CHECK: @llvm.x86.avx512.mask.pmovzxw.q.256
   3426   return _mm256_mask_cvtepu16_epi64(__W, __U, __A);
   3427 }
   3428 
   3429 __m256i test_mm256_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A) {
   3430   // CHECK-LABEL: @test_mm256_maskz_cvtepu16_epi64
   3431   // CHECK: @llvm.x86.avx512.mask.pmovzxw.q.256
   3432   return _mm256_maskz_cvtepu16_epi64(__U, __A);
   3433 }
   3434 
   3435 __m128i test_mm_rol_epi32(__m128i __A) {
   3436   // CHECK-LABEL: @test_mm_rol_epi32
   3437   // CHECK: @llvm.x86.avx512.mask.prol.d.128
   3438   return _mm_rol_epi32(__A, 5);
   3439 }
   3440 
   3441 __m128i test_mm_mask_rol_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
   3442   // CHECK-LABEL: @test_mm_mask_rol_epi32
   3443   // CHECK: @llvm.x86.avx512.mask.prol.d.128
   3444   return _mm_mask_rol_epi32(__W, __U, __A, 5);
   3445 }
   3446 
   3447 __m128i test_mm_maskz_rol_epi32(__mmask8 __U, __m128i __A) {
   3448   // CHECK-LABEL: @test_mm_maskz_rol_epi32
   3449   // CHECK: @llvm.x86.avx512.mask.prol.d.128
   3450   return _mm_maskz_rol_epi32(__U, __A, 5);
   3451 }
   3452 
   3453 __m256i test_mm256_rol_epi32(__m256i __A) {
   3454   // CHECK-LABEL: @test_mm256_rol_epi32
   3455   // CHECK: @llvm.x86.avx512.mask.prol.d.256
   3456   return _mm256_rol_epi32(__A, 5);
   3457 }
   3458 
   3459 __m256i test_mm256_mask_rol_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
   3460   // CHECK-LABEL: @test_mm256_mask_rol_epi32
   3461   // CHECK: @llvm.x86.avx512.mask.prol.d.256
   3462   return _mm256_mask_rol_epi32(__W, __U, __A, 5);
   3463 }
   3464 
   3465 __m256i test_mm256_maskz_rol_epi32(__mmask8 __U, __m256i __A) {
   3466   // CHECK-LABEL: @test_mm256_maskz_rol_epi32
   3467   // CHECK: @llvm.x86.avx512.mask.prol.d.256
   3468   return _mm256_maskz_rol_epi32(__U, __A, 5);
   3469 }
   3470 
   3471 __m128i test_mm_rol_epi64(__m128i __A) {
   3472   // CHECK-LABEL: @test_mm_rol_epi64
   3473   // CHECK: @llvm.x86.avx512.mask.prol.q.128
   3474   return _mm_rol_epi64(__A, 5);
   3475 }
   3476 
   3477 __m128i test_mm_mask_rol_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
   3478   // CHECK-LABEL: @test_mm_mask_rol_epi64
   3479   // CHECK: @llvm.x86.avx512.mask.prol.q.128
   3480   return _mm_mask_rol_epi64(__W, __U, __A, 5);
   3481 }
   3482 
   3483 __m128i test_mm_maskz_rol_epi64(__mmask8 __U, __m128i __A) {
   3484   // CHECK-LABEL: @test_mm_maskz_rol_epi64
   3485   // CHECK: @llvm.x86.avx512.mask.prol.q.128
   3486   return _mm_maskz_rol_epi64(__U, __A, 5);
   3487 }
   3488 
   3489 __m256i test_mm256_rol_epi64(__m256i __A) {
   3490   // CHECK-LABEL: @test_mm256_rol_epi64
   3491   // CHECK: @llvm.x86.avx512.mask.prol.q.256
   3492   return _mm256_rol_epi64(__A, 5);
   3493 }
   3494 
   3495 __m256i test_mm256_mask_rol_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
   3496   // CHECK-LABEL: @test_mm256_mask_rol_epi64
   3497   // CHECK: @llvm.x86.avx512.mask.prol.q.256
   3498   return _mm256_mask_rol_epi64(__W, __U, __A, 5);
   3499 }
   3500 
   3501 __m256i test_mm256_maskz_rol_epi64(__mmask8 __U, __m256i __A) {
   3502   // CHECK-LABEL: @test_mm256_maskz_rol_epi64
   3503   // CHECK: @llvm.x86.avx512.mask.prol.q.256
   3504   return _mm256_maskz_rol_epi64(__U, __A, 5);
   3505 }
   3506 
   3507 __m128i test_mm_rolv_epi32(__m128i __A, __m128i __B) {
   3508   // CHECK-LABEL: @test_mm_rolv_epi32
   3509   // CHECK: @llvm.x86.avx512.mask.prolv.d.128
   3510   return _mm_rolv_epi32(__A, __B);
   3511 }
   3512 
   3513 __m128i test_mm_mask_rolv_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
   3514   // CHECK-LABEL: @test_mm_mask_rolv_epi32
   3515   // CHECK: @llvm.x86.avx512.mask.prolv.d.128
   3516   return _mm_mask_rolv_epi32(__W, __U, __A, __B);
   3517 }
   3518 
   3519 __m128i test_mm_maskz_rolv_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
   3520   // CHECK-LABEL: @test_mm_maskz_rolv_epi32
   3521   // CHECK: @llvm.x86.avx512.mask.prolv.d.128
   3522   return _mm_maskz_rolv_epi32(__U, __A, __B);
   3523 }
   3524 
   3525 __m256i test_mm256_rolv_epi32(__m256i __A, __m256i __B) {
   3526   // CHECK-LABEL: @test_mm256_rolv_epi32
   3527   // CHECK: @llvm.x86.avx512.mask.prolv.d.256
   3528   return _mm256_rolv_epi32(__A, __B);
   3529 }
   3530 
   3531 __m256i test_mm256_mask_rolv_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
   3532   // CHECK-LABEL: @test_mm256_mask_rolv_epi32
   3533   // CHECK: @llvm.x86.avx512.mask.prolv.d.256
   3534   return _mm256_mask_rolv_epi32(__W, __U, __A, __B);
   3535 }
   3536 
   3537 __m256i test_mm256_maskz_rolv_epi32(__mmask8 __U, __m256i __A, __m256i __B) {
   3538   // CHECK-LABEL: @test_mm256_maskz_rolv_epi32
   3539   // CHECK: @llvm.x86.avx512.mask.prolv.d.256
   3540   return _mm256_maskz_rolv_epi32(__U, __A, __B);
   3541 }
   3542 
   3543 __m128i test_mm_rolv_epi64(__m128i __A, __m128i __B) {
   3544   // CHECK-LABEL: @test_mm_rolv_epi64
   3545   // CHECK: @llvm.x86.avx512.mask.prolv.q.128
   3546   return _mm_rolv_epi64(__A, __B);
   3547 }
   3548 
   3549 __m128i test_mm_mask_rolv_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
   3550   // CHECK-LABEL: @test_mm_mask_rolv_epi64
   3551   // CHECK: @llvm.x86.avx512.mask.prolv.q.128
   3552   return _mm_mask_rolv_epi64(__W, __U, __A, __B);
   3553 }
   3554 
   3555 __m128i test_mm_maskz_rolv_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
   3556   // CHECK-LABEL: @test_mm_maskz_rolv_epi64
   3557   // CHECK: @llvm.x86.avx512.mask.prolv.q.128
   3558   return _mm_maskz_rolv_epi64(__U, __A, __B);
   3559 }
   3560 
   3561 __m256i test_mm256_rolv_epi64(__m256i __A, __m256i __B) {
   3562   // CHECK-LABEL: @test_mm256_rolv_epi64
   3563   // CHECK: @llvm.x86.avx512.mask.prolv.q.256
   3564   return _mm256_rolv_epi64(__A, __B);
   3565 }
   3566 
   3567 __m256i test_mm256_mask_rolv_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
   3568   // CHECK-LABEL: @test_mm256_mask_rolv_epi64
   3569   // CHECK: @llvm.x86.avx512.mask.prolv.q.256
   3570   return _mm256_mask_rolv_epi64(__W, __U, __A, __B);
   3571 }
   3572 
   3573 __m256i test_mm256_maskz_rolv_epi64(__mmask8 __U, __m256i __A, __m256i __B) {
   3574   // CHECK-LABEL: @test_mm256_maskz_rolv_epi64
   3575   // CHECK: @llvm.x86.avx512.mask.prolv.q.256
   3576   return _mm256_maskz_rolv_epi64(__U, __A, __B);
   3577 }
   3578 
   3579 __m128i test_mm_ror_epi32(__m128i __A) {
   3580   // CHECK-LABEL: @test_mm_ror_epi32
   3581   // CHECK: @llvm.x86.avx512.mask.pror.d.128
   3582   return _mm_ror_epi32(__A, 5);
   3583 }
   3584 
   3585 __m128i test_mm_mask_ror_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
   3586   // CHECK-LABEL: @test_mm_mask_ror_epi32
   3587   // CHECK: @llvm.x86.avx512.mask.pror.d.128
   3588   return _mm_mask_ror_epi32(__W, __U, __A, 5);
   3589 }
   3590 
   3591 __m128i test_mm_maskz_ror_epi32(__mmask8 __U, __m128i __A) {
   3592   // CHECK-LABEL: @test_mm_maskz_ror_epi32
   3593   // CHECK: @llvm.x86.avx512.mask.pror.d.128
   3594   return _mm_maskz_ror_epi32(__U, __A, 5);
   3595 }
   3596 
   3597 __m256i test_mm256_ror_epi32(__m256i __A) {
   3598   // CHECK-LABEL: @test_mm256_ror_epi32
   3599   // CHECK: @llvm.x86.avx512.mask.pror.d.256
   3600   return _mm256_ror_epi32(__A, 5);
   3601 }
   3602 
   3603 __m256i test_mm256_mask_ror_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
   3604   // CHECK-LABEL: @test_mm256_mask_ror_epi32
   3605   // CHECK: @llvm.x86.avx512.mask.pror.d.256
   3606   return _mm256_mask_ror_epi32(__W, __U, __A, 5);
   3607 }
   3608 
   3609 __m256i test_mm256_maskz_ror_epi32(__mmask8 __U, __m256i __A) {
   3610   // CHECK-LABEL: @test_mm256_maskz_ror_epi32
   3611   // CHECK: @llvm.x86.avx512.mask.pror.d.256
   3612   return _mm256_maskz_ror_epi32(__U, __A, 5);
   3613 }
   3614 
   3615 __m128i test_mm_ror_epi64(__m128i __A) {
   3616   // CHECK-LABEL: @test_mm_ror_epi64
   3617   // CHECK: @llvm.x86.avx512.mask.pror.q.128
   3618   return _mm_ror_epi64(__A, 5);
   3619 }
   3620 
   3621 __m128i test_mm_mask_ror_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
   3622   // CHECK-LABEL: @test_mm_mask_ror_epi64
   3623   // CHECK: @llvm.x86.avx512.mask.pror.q.128
   3624   return _mm_mask_ror_epi64(__W, __U, __A, 5);
   3625 }
   3626 
   3627 __m128i test_mm_maskz_ror_epi64(__mmask8 __U, __m128i __A) {
   3628   // CHECK-LABEL: @test_mm_maskz_ror_epi64
   3629   // CHECK: @llvm.x86.avx512.mask.pror.q.128
   3630   return _mm_maskz_ror_epi64(__U, __A, 5);
   3631 }
   3632 
   3633 __m256i test_mm256_ror_epi64(__m256i __A) {
   3634   // CHECK-LABEL: @test_mm256_ror_epi64
   3635   // CHECK: @llvm.x86.avx512.mask.pror.q.256
   3636   return _mm256_ror_epi64(__A, 5);
   3637 }
   3638 
   3639 __m256i test_mm256_mask_ror_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
   3640   // CHECK-LABEL: @test_mm256_mask_ror_epi64
   3641   // CHECK: @llvm.x86.avx512.mask.pror.q.256
   3642   return _mm256_mask_ror_epi64(__W, __U, __A,5);
   3643 }
   3644 
   3645 __m256i test_mm256_maskz_ror_epi64(__mmask8 __U, __m256i __A) {
   3646   // CHECK-LABEL: @test_mm256_maskz_ror_epi64
   3647   // CHECK: @llvm.x86.avx512.mask.pror.q.256
   3648   return _mm256_maskz_ror_epi64(__U, __A, 5);
   3649 }
   3650 
   3651 
   3652 __m128i test_mm_rorv_epi32(__m128i __A, __m128i __B) {
   3653   // CHECK-LABEL: @test_mm_rorv_epi32
   3654   // CHECK: @llvm.x86.avx512.mask.prorv.d.128
   3655   return _mm_rorv_epi32(__A, __B);
   3656 }
   3657 
   3658 __m128i test_mm_mask_rorv_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
   3659   // CHECK-LABEL: @test_mm_mask_rorv_epi32
   3660   // CHECK: @llvm.x86.avx512.mask.prorv.d.128
   3661   return _mm_mask_rorv_epi32(__W, __U, __A, __B);
   3662 }
   3663 
   3664 __m128i test_mm_maskz_rorv_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
   3665   // CHECK-LABEL: @test_mm_maskz_rorv_epi32
   3666   // CHECK: @llvm.x86.avx512.mask.prorv.d.128
   3667   return _mm_maskz_rorv_epi32(__U, __A, __B);
   3668 }
   3669 
   3670 __m256i test_mm256_rorv_epi32(__m256i __A, __m256i __B) {
   3671   // CHECK-LABEL: @test_mm256_rorv_epi32
   3672   // CHECK: @llvm.x86.avx512.mask.prorv.d.256
   3673   return _mm256_rorv_epi32(__A, __B);
   3674 }
   3675 
   3676 __m256i test_mm256_mask_rorv_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
   3677   // CHECK-LABEL: @test_mm256_mask_rorv_epi32
   3678   // CHECK: @llvm.x86.avx512.mask.prorv.d.256
   3679   return _mm256_mask_rorv_epi32(__W, __U, __A, __B);
   3680 }
   3681 
   3682 __m256i test_mm256_maskz_rorv_epi32(__mmask8 __U, __m256i __A, __m256i __B) {
   3683   // CHECK-LABEL: @test_mm256_maskz_rorv_epi32
   3684   // CHECK: @llvm.x86.avx512.mask.prorv.d.256
   3685   return _mm256_maskz_rorv_epi32(__U, __A, __B);
   3686 }
   3687 
   3688 __m128i test_mm_rorv_epi64(__m128i __A, __m128i __B) {
   3689   // CHECK-LABEL: @test_mm_rorv_epi64
   3690   // CHECK: @llvm.x86.avx512.mask.prorv.q.128
   3691   return _mm_rorv_epi64(__A, __B);
   3692 }
   3693 
   3694 __m128i test_mm_mask_rorv_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
   3695   // CHECK-LABEL: @test_mm_mask_rorv_epi64
   3696   // CHECK: @llvm.x86.avx512.mask.prorv.q.128
   3697   return _mm_mask_rorv_epi64(__W, __U, __A, __B);
   3698 }
   3699 
   3700 __m128i test_mm_maskz_rorv_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
   3701   // CHECK-LABEL: @test_mm_maskz_rorv_epi64
   3702   // CHECK: @llvm.x86.avx512.mask.prorv.q.128
   3703   return _mm_maskz_rorv_epi64(__U, __A, __B);
   3704 }
   3705 
   3706 __m256i test_mm256_rorv_epi64(__m256i __A, __m256i __B) {
   3707   // CHECK-LABEL: @test_mm256_rorv_epi64
   3708   // CHECK: @llvm.x86.avx512.mask.prorv.q.256
   3709   return _mm256_rorv_epi64(__A, __B);
   3710 }
   3711 
   3712 __m256i test_mm256_mask_rorv_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
   3713   // CHECK-LABEL: @test_mm256_mask_rorv_epi64
   3714   // CHECK: @llvm.x86.avx512.mask.prorv.q.256
   3715   return _mm256_mask_rorv_epi64(__W, __U, __A, __B);
   3716 }
   3717 
   3718 __m256i test_mm256_maskz_rorv_epi64(__mmask8 __U, __m256i __A, __m256i __B) {
   3719   // CHECK-LABEL: @test_mm256_maskz_rorv_epi64
   3720   // CHECK: @llvm.x86.avx512.mask.prorv.q.256
   3721   return _mm256_maskz_rorv_epi64(__U, __A, __B);
   3722 }
   3723 
   3724 __m128i test_mm_mask_sllv_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
   3725   // CHECK-LABEL: @test_mm_mask_sllv_epi64
   3726   // CHECK: @llvm.x86.avx512.mask.psllv
   3727   return _mm_mask_sllv_epi64(__W, __U, __X, __Y);
   3728 }
   3729 
   3730 __m128i test_mm_maskz_sllv_epi64(__mmask8 __U, __m128i __X, __m128i __Y) {
   3731   // CHECK-LABEL: @test_mm_maskz_sllv_epi64
   3732   // CHECK: @llvm.x86.avx512.mask.psllv
   3733   return _mm_maskz_sllv_epi64(__U, __X, __Y);
   3734 }
   3735 
   3736 __m256i test_mm256_mask_sllv_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
   3737   // CHECK-LABEL: @test_mm256_mask_sllv_epi64
   3738   // CHECK: @llvm.x86.avx512.mask.psllv
   3739   return _mm256_mask_sllv_epi64(__W, __U, __X, __Y);
   3740 }
   3741 
   3742 __m256i test_mm256_maskz_sllv_epi64(__mmask8 __U, __m256i __X, __m256i __Y) {
   3743   // CHECK-LABEL: @test_mm256_maskz_sllv_epi64
   3744   // CHECK: @llvm.x86.avx512.mask.psllv
   3745   return _mm256_maskz_sllv_epi64(__U, __X, __Y);
   3746 }
   3747 
   3748 __m128i test_mm_mask_sllv_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
   3749   // CHECK-LABEL: @test_mm_mask_sllv_epi32
   3750   // CHECK: @llvm.x86.avx512.mask.psllv
   3751   return _mm_mask_sllv_epi32(__W, __U, __X, __Y);
   3752 }
   3753 
   3754 __m128i test_mm_maskz_sllv_epi32(__mmask8 __U, __m128i __X, __m128i __Y) {
   3755   // CHECK-LABEL: @test_mm_maskz_sllv_epi32
   3756   // CHECK: @llvm.x86.avx512.mask.psllv
   3757   return _mm_maskz_sllv_epi32(__U, __X, __Y);
   3758 }
   3759 
   3760 __m256i test_mm256_mask_sllv_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
   3761   // CHECK-LABEL: @test_mm256_mask_sllv_epi32
   3762   // CHECK: @llvm.x86.avx512.mask.psllv
   3763   return _mm256_mask_sllv_epi32(__W, __U, __X, __Y);
   3764 }
   3765 
   3766 __m256i test_mm256_maskz_sllv_epi32(__mmask8 __U, __m256i __X, __m256i __Y) {
   3767   // CHECK-LABEL: @test_mm256_maskz_sllv_epi32
   3768   // CHECK: @llvm.x86.avx512.mask.psllv
   3769   return _mm256_maskz_sllv_epi32(__U, __X, __Y);
   3770 }
   3771 
   3772 __m128i test_mm_mask_srlv_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
   3773   // CHECK-LABEL: @test_mm_mask_srlv_epi64
   3774   // CHECK: @llvm.x86.avx512.mask.psrlv
   3775   return _mm_mask_srlv_epi64(__W, __U, __X, __Y);
   3776 }
   3777 
   3778 __m128i test_mm_maskz_srlv_epi64(__mmask8 __U, __m128i __X, __m128i __Y) {
   3779   // CHECK-LABEL: @test_mm_maskz_srlv_epi64
   3780   // CHECK: @llvm.x86.avx512.mask.psrlv
   3781   return _mm_maskz_srlv_epi64(__U, __X, __Y);
   3782 }
   3783 
   3784 __m256i test_mm256_mask_srlv_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
   3785   // CHECK-LABEL: @test_mm256_mask_srlv_epi64
   3786   // CHECK: @llvm.x86.avx512.mask.psrlv
   3787   return _mm256_mask_srlv_epi64(__W, __U, __X, __Y);
   3788 }
   3789 
   3790 __m256i test_mm256_maskz_srlv_epi64(__mmask8 __U, __m256i __X, __m256i __Y) {
   3791   // CHECK-LABEL: @test_mm256_maskz_srlv_epi64
   3792   // CHECK: @llvm.x86.avx512.mask.psrlv
   3793   return _mm256_maskz_srlv_epi64(__U, __X, __Y);
   3794 }
   3795 
   3796 __m128i test_mm_mask_srlv_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
   3797   // CHECK-LABEL: @test_mm_mask_srlv_epi32
   3798   // CHECK: @llvm.x86.avx512.mask.psrlv
   3799   return _mm_mask_srlv_epi32(__W, __U, __X, __Y);
   3800 }
   3801 
   3802 __m128i test_mm_maskz_srlv_epi32(__mmask8 __U, __m128i __X, __m128i __Y) {
   3803   // CHECK-LABEL: @test_mm_maskz_srlv_epi32
   3804   // CHECK: @llvm.x86.avx512.mask.psrlv
   3805   return _mm_maskz_srlv_epi32(__U, __X, __Y);
   3806 }
   3807 
   3808 __m256i test_mm256_mask_srlv_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
   3809   // CHECK-LABEL: @test_mm256_mask_srlv_epi32
   3810   // CHECK: @llvm.x86.avx512.mask.psrlv
   3811   return _mm256_mask_srlv_epi32(__W, __U, __X, __Y);
   3812 }
   3813 
   3814 __m256i test_mm256_maskz_srlv_epi32(__mmask8 __U, __m256i __X, __m256i __Y) {
   3815   // CHECK-LABEL: @test_mm256_maskz_srlv_epi32
   3816   // CHECK: @llvm.x86.avx512.mask.psrlv
   3817   return _mm256_maskz_srlv_epi32(__U, __X, __Y);
   3818 }
   3819 
   3820 __m128i test_mm_mask_srl_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
   3821   // CHECK-LABEL: @test_mm_mask_srl_epi32
   3822   // CHECK: @llvm.x86.avx512.mask.psrl.d.128
   3823   return _mm_mask_srl_epi32(__W, __U, __A, __B);
   3824 }
   3825 
   3826 __m128i test_mm_maskz_srl_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
   3827   // CHECK-LABEL: @test_mm_maskz_srl_epi32
   3828   // CHECK: @llvm.x86.avx512.mask.psrl.d.128
   3829   return _mm_maskz_srl_epi32(__U, __A, __B);
   3830 }
   3831 
   3832 __m256i test_mm256_mask_srl_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
   3833   // CHECK-LABEL: @test_mm256_mask_srl_epi32
   3834   // CHECK: @llvm.x86.avx512.mask.psrl.d.256
   3835   return _mm256_mask_srl_epi32(__W, __U, __A, __B);
   3836 }
   3837 
   3838 __m256i test_mm256_maskz_srl_epi32(__mmask8 __U, __m256i __A, __m128i __B) {
   3839   // CHECK-LABEL: @test_mm256_maskz_srl_epi32
   3840   // CHECK: @llvm.x86.avx512.mask.psrl.d.256
   3841   return _mm256_maskz_srl_epi32(__U, __A, __B);
   3842 }
   3843 
   3844 __m128i test_mm_mask_srli_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
   3845   // CHECK-LABEL: @test_mm_mask_srli_epi32
   3846   // CHECK: @llvm.x86.avx512.mask.psrl.di.128
   3847   return _mm_mask_srli_epi32(__W, __U, __A, 5);
   3848 }
   3849 
   3850 __m128i test_mm_maskz_srli_epi32(__mmask8 __U, __m128i __A) {
   3851   // CHECK-LABEL: @test_mm_maskz_srli_epi32
   3852   // CHECK: @llvm.x86.avx512.mask.psrl.di.128
   3853   return _mm_maskz_srli_epi32(__U, __A, 5);
   3854 }
   3855 
   3856 __m256i test_mm256_mask_srli_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
   3857   // CHECK-LABEL: @test_mm256_mask_srli_epi32
   3858   // CHECK: @llvm.x86.avx512.mask.psrl.di.256
   3859   return _mm256_mask_srli_epi32(__W, __U, __A, 5);
   3860 }
   3861 
   3862 __m256i test_mm256_maskz_srli_epi32(__mmask8 __U, __m256i __A) {
   3863   // CHECK-LABEL: @test_mm256_maskz_srli_epi32
   3864   // CHECK: @llvm.x86.avx512.mask.psrl.di.256
   3865   return _mm256_maskz_srli_epi32(__U, __A, 5);
   3866 }
   3867 
   3868 __m128i test_mm_mask_srl_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
   3869   // CHECK-LABEL: @test_mm_mask_srl_epi64
   3870   // CHECK: @llvm.x86.avx512.mask.psrl.q.128
   3871   return _mm_mask_srl_epi64(__W, __U, __A, __B);
   3872 }
   3873 
   3874 __m128i test_mm_maskz_srl_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
   3875   // CHECK-LABEL: @test_mm_maskz_srl_epi64
   3876   // CHECK: @llvm.x86.avx512.mask.psrl.q.128
   3877   return _mm_maskz_srl_epi64(__U, __A, __B);
   3878 }
   3879 
   3880 __m256i test_mm256_mask_srl_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
   3881   // CHECK-LABEL: @test_mm256_mask_srl_epi64
   3882   // CHECK: @llvm.x86.avx512.mask.psrl.q.256
   3883   return _mm256_mask_srl_epi64(__W, __U, __A, __B);
   3884 }
   3885 
   3886 __m256i test_mm256_maskz_srl_epi64(__mmask8 __U, __m256i __A, __m128i __B) {
   3887   // CHECK-LABEL: @test_mm256_maskz_srl_epi64
   3888   // CHECK: @llvm.x86.avx512.mask.psrl.q.256
   3889   return _mm256_maskz_srl_epi64(__U, __A, __B);
   3890 }
   3891 
   3892 __m128i test_mm_mask_srli_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
   3893   // CHECK-LABEL: @test_mm_mask_srli_epi64
   3894   // CHECK: @llvm.x86.avx512.mask.psrl.qi.128
   3895   return _mm_mask_srli_epi64(__W, __U, __A, 5);
   3896 }
   3897 
   3898 __m128i test_mm_maskz_srli_epi64(__mmask8 __U, __m128i __A) {
   3899   // CHECK-LABEL: @test_mm_maskz_srli_epi64
   3900   // CHECK: @llvm.x86.avx512.mask.psrl.qi.128
   3901   return _mm_maskz_srli_epi64(__U, __A, 5);
   3902 }
   3903 
   3904 __m256i test_mm256_mask_srli_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
   3905   // CHECK-LABEL: @test_mm256_mask_srli_epi64
   3906   // CHECK: @llvm.x86.avx512.mask.psrl.qi.256
   3907   return _mm256_mask_srli_epi64(__W, __U, __A, 5);
   3908 }
   3909 
   3910 __m256i test_mm256_maskz_srli_epi64(__mmask8 __U, __m256i __A) {
   3911   // CHECK-LABEL: @test_mm256_maskz_srli_epi64
   3912   // CHECK: @llvm.x86.avx512.mask.psrl.qi.256
   3913   return _mm256_maskz_srli_epi64(__U, __A, 5);
   3914 }
   3915 
   3916 __m128i test_mm_mask_srav_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
   3917   // CHECK-LABEL: @test_mm_mask_srav_epi32
   3918   // CHECK: @llvm.x86.avx512.mask.psrav
   3919   return _mm_mask_srav_epi32(__W, __U, __X, __Y);
   3920 }
   3921 
   3922 __m128i test_mm_maskz_srav_epi32(__mmask8 __U, __m128i __X, __m128i __Y) {
   3923   // CHECK-LABEL: @test_mm_maskz_srav_epi32
   3924   // CHECK: @llvm.x86.avx512.mask.psrav
   3925   return _mm_maskz_srav_epi32(__U, __X, __Y);
   3926 }
   3927 
   3928 __m256i test_mm256_mask_srav_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
   3929   // CHECK-LABEL: @test_mm256_mask_srav_epi32
   3930   // CHECK: @llvm.x86.avx512.mask.psrav
   3931   return _mm256_mask_srav_epi32(__W, __U, __X, __Y);
   3932 }
   3933 
   3934 __m256i test_mm256_maskz_srav_epi32(__mmask8 __U, __m256i __X, __m256i __Y) {
   3935   // CHECK-LABEL: @test_mm256_maskz_srav_epi32
   3936   // CHECK: @llvm.x86.avx512.mask.psrav
   3937   return _mm256_maskz_srav_epi32(__U, __X, __Y);
   3938 }
   3939 
   3940 __m128i test_mm_srav_epi64(__m128i __X, __m128i __Y) {
   3941   // CHECK-LABEL: @test_mm_srav_epi64
   3942   // CHECK: @llvm.x86.avx512.mask.psrav.q.128
   3943   return _mm_srav_epi64(__X, __Y);
   3944 }
   3945 
   3946 __m128i test_mm_mask_srav_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
   3947   // CHECK-LABEL: @test_mm_mask_srav_epi64
   3948   // CHECK: @llvm.x86.avx512.mask.psrav.q.128
   3949   return _mm_mask_srav_epi64(__W, __U, __X, __Y);
   3950 }
   3951 
   3952 __m128i test_mm_maskz_srav_epi64(__mmask8 __U, __m128i __X, __m128i __Y) {
   3953   // CHECK-LABEL: @test_mm_maskz_srav_epi64
   3954   // CHECK: @llvm.x86.avx512.mask.psrav.q.128
   3955   return _mm_maskz_srav_epi64(__U, __X, __Y);
   3956 }
   3957 
   3958 __m256i test_mm256_srav_epi64(__m256i __X, __m256i __Y) {
   3959   // CHECK-LABEL: @test_mm256_srav_epi64
   3960   // CHECK: @llvm.x86.avx512.mask.psrav.q.256
   3961   return _mm256_srav_epi64(__X, __Y);
   3962 }
   3963 
   3964 __m256i test_mm256_mask_srav_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) {
   3965   // CHECK-LABEL: @test_mm256_mask_srav_epi64
   3966   // CHECK: @llvm.x86.avx512.mask.psrav.q.256
   3967   return _mm256_mask_srav_epi64(__W, __U, __X, __Y);
   3968 }
   3969 
   3970 __m256i test_mm256_maskz_srav_epi64(__mmask8 __U, __m256i __X, __m256i __Y) {
   3971   // CHECK-LABEL: @test_mm256_maskz_srav_epi64
   3972   // CHECK: @llvm.x86.avx512.mask.psrav.q.256
   3973   return _mm256_maskz_srav_epi64(__U, __X, __Y);
   3974 }
   3975 
   3976 void test_mm_mask_store_epi32(void *__P, __mmask8 __U, __m128i __A) {
   3977   // CHECK-LABEL: @test_mm_mask_store_epi32
   3978   // CHECK: @llvm.masked.store.v4i32.p0v4i32(<4 x i32> %{{.*}}, <4 x i32>* %{{.}}, i32 16, <4 x i1> %{{.*}})
   3979   return _mm_mask_store_epi32(__P, __U, __A);
   3980 }
   3981 
   3982 void test_mm256_mask_store_epi32(void *__P, __mmask8 __U, __m256i __A) {
   3983   // CHECK-LABEL: @test_mm256_mask_store_epi32
   3984   // CHECK: @llvm.masked.store.v8i32.p0v8i32(<8 x i32> %{{.*}}, <8 x i32>* %{{.}}, i32 32, <8 x i1> %{{.*}})
   3985   return _mm256_mask_store_epi32(__P, __U, __A);
   3986 }
   3987 
   3988 __m128i test_mm_mask_mov_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
   3989   // CHECK-LABEL: @test_mm_mask_mov_epi32
   3990   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
   3991   return _mm_mask_mov_epi32(__W, __U, __A);
   3992 }
   3993 
   3994 __m128i test_mm_maskz_mov_epi32(__mmask8 __U, __m128i __A) {
   3995   // CHECK-LABEL: @test_mm_maskz_mov_epi32
   3996   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
   3997   return _mm_maskz_mov_epi32(__U, __A);
   3998 }
   3999 
   4000 __m256i test_mm256_mask_mov_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
   4001   // CHECK-LABEL: @test_mm256_mask_mov_epi32
   4002   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
   4003   return _mm256_mask_mov_epi32(__W, __U, __A);
   4004 }
   4005 
   4006 __m256i test_mm256_maskz_mov_epi32(__mmask8 __U, __m256i __A) {
   4007   // CHECK-LABEL: @test_mm256_maskz_mov_epi32
   4008   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
   4009   return _mm256_maskz_mov_epi32(__U, __A);
   4010 }
   4011 
   4012 __m128i test_mm_mask_mov_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
   4013   // CHECK-LABEL: @test_mm_mask_mov_epi64
   4014   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
   4015   return _mm_mask_mov_epi64(__W, __U, __A);
   4016 }
   4017 
   4018 __m128i test_mm_maskz_mov_epi64(__mmask8 __U, __m128i __A) {
   4019   // CHECK-LABEL: @test_mm_maskz_mov_epi64
   4020   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
   4021   return _mm_maskz_mov_epi64(__U, __A);
   4022 }
   4023 
   4024 __m256i test_mm256_mask_mov_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
   4025   // CHECK-LABEL: @test_mm256_mask_mov_epi64
   4026   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
   4027   return _mm256_mask_mov_epi64(__W, __U, __A);
   4028 }
   4029 
   4030 __m256i test_mm256_maskz_mov_epi64(__mmask8 __U, __m256i __A) {
   4031   // CHECK-LABEL: @test_mm256_maskz_mov_epi64
   4032   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
   4033   return _mm256_maskz_mov_epi64(__U, __A);
   4034 }
   4035 
   4036 __m128i test_mm_mask_load_epi32(__m128i __W, __mmask8 __U, void const *__P) {
   4037   // CHECK-LABEL: @test_mm_mask_load_epi32
   4038   // CHECK: @llvm.masked.load.v4i32.p0v4i32(<4 x i32>* %{{.*}}, i32 16, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
   4039   return _mm_mask_load_epi32(__W, __U, __P);
   4040 }
   4041 
   4042 __m128i test_mm_maskz_load_epi32(__mmask8 __U, void const *__P) {
   4043   // CHECK-LABEL: @test_mm_maskz_load_epi32
   4044   // CHECK: @llvm.masked.load.v4i32.p0v4i32(<4 x i32>* %{{.*}}, i32 16, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
   4045   return _mm_maskz_load_epi32(__U, __P);
   4046 }
   4047 
   4048 __m256i test_mm256_mask_load_epi32(__m256i __W, __mmask8 __U, void const *__P) {
   4049   // CHECK-LABEL: @test_mm256_mask_load_epi32
   4050   // CHECK: @llvm.masked.load.v8i32.p0v8i32(<8 x i32>* %{{.*}}, i32 32, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
   4051   return _mm256_mask_load_epi32(__W, __U, __P);
   4052 }
   4053 
   4054 __m256i test_mm256_maskz_load_epi32(__mmask8 __U, void const *__P) {
   4055   // CHECK-LABEL: @test_mm256_maskz_load_epi32
   4056   // CHECK: @llvm.masked.load.v8i32.p0v8i32(<8 x i32>* %{{.*}}, i32 32, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
   4057   return _mm256_maskz_load_epi32(__U, __P);
   4058 }
   4059 
   4060 __m128i test_mm_mask_load_epi64(__m128i __W, __mmask8 __U, void const *__P) {
   4061   // CHECK-LABEL: @test_mm_mask_load_epi64
   4062   // CHECK: @llvm.masked.load.v2i64.p0v2i64(<2 x i64>* %{{.*}}, i32 16, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
   4063   return _mm_mask_load_epi64(__W, __U, __P);
   4064 }
   4065 
   4066 __m128i test_mm_maskz_load_epi64(__mmask8 __U, void const *__P) {
   4067   // CHECK-LABEL: @test_mm_maskz_load_epi64
   4068   // CHECK: @llvm.masked.load.v2i64.p0v2i64(<2 x i64>* %{{.*}}, i32 16, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
   4069   return _mm_maskz_load_epi64(__U, __P);
   4070 }
   4071 
   4072 __m256i test_mm256_mask_load_epi64(__m256i __W, __mmask8 __U, void const *__P) {
   4073   // CHECK-LABEL: @test_mm256_mask_load_epi64
   4074   // CHECK: @llvm.masked.load.v4i64.p0v4i64(<4 x i64>* %{{.*}}, i32 32, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
   4075   return _mm256_mask_load_epi64(__W, __U, __P);
   4076 }
   4077 
   4078 __m256i test_mm256_maskz_load_epi64(__mmask8 __U, void const *__P) {
   4079   // CHECK-LABEL: @test_mm256_maskz_load_epi64
   4080   // CHECK: @llvm.masked.load.v4i64.p0v4i64(<4 x i64>* %{{.*}}, i32 32, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
   4081   return _mm256_maskz_load_epi64(__U, __P);
   4082 }
   4083 
   4084 void test_mm_mask_store_epi64(void *__P, __mmask8 __U, __m128i __A) {
   4085   // CHECK-LABEL: @test_mm_mask_store_epi64
   4086   // CHECK: @llvm.masked.store.v2i64.p0v2i64(<2 x i64> %{{.*}}, <2 x i64>* %{{.*}}, i32 16, <2 x i1> %{{.*}})
   4087   return _mm_mask_store_epi64(__P, __U, __A);
   4088 }
   4089 
   4090 void test_mm256_mask_store_epi64(void *__P, __mmask8 __U, __m256i __A) {
   4091   // CHECK-LABEL: @test_mm256_mask_store_epi64
   4092   // CHECK: @llvm.masked.store.v4i64.p0v4i64(<4 x i64> %{{.*}}, <4 x i64>* %{{.*}}, i32 32, <4 x i1> %{{.*}})
   4093   return _mm256_mask_store_epi64(__P, __U, __A);
   4094 }
   4095 
   4096 __m128d test_mm_mask_movedup_pd(__m128d __W, __mmask8 __U, __m128d __A) {
   4097   // CHECK-LABEL: @test_mm_mask_movedup_pd
   4098   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> zeroinitializer
   4099   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
   4100   return _mm_mask_movedup_pd(__W, __U, __A);
   4101 }
   4102 
   4103 __m128d test_mm_maskz_movedup_pd(__mmask8 __U, __m128d __A) {
   4104   // CHECK-LABEL: @test_mm_maskz_movedup_pd
   4105   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> zeroinitializer
   4106   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
   4107   return _mm_maskz_movedup_pd(__U, __A);
   4108 }
   4109 
   4110 __m256d test_mm256_mask_movedup_pd(__m256d __W, __mmask8 __U, __m256d __A) {
   4111   // CHECK-LABEL: @test_mm256_mask_movedup_pd
   4112   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 0, i32 0, i32 2, i32 2>
   4113   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
   4114   return _mm256_mask_movedup_pd(__W, __U, __A);
   4115 }
   4116 
   4117 __m256d test_mm256_maskz_movedup_pd(__mmask8 __U, __m256d __A) {
   4118   // CHECK-LABEL: @test_mm256_maskz_movedup_pd
   4119   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 0, i32 0, i32 2, i32 2>
   4120   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
   4121   return _mm256_maskz_movedup_pd(__U, __A);
   4122 }
   4123 
   4124 __m128i test_mm_mask_set1_epi32(__m128i __O, __mmask8 __M) {
   4125   // CHECK-LABEL: @test_mm_mask_set1_epi32
   4126   // CHECK: @llvm.x86.avx512.mask.pbroadcast.d.gpr.128
   4127   return _mm_mask_set1_epi32(__O, __M, 5);
   4128 }
   4129 
   4130 __m128i test_mm_maskz_set1_epi32(__mmask8 __M) {
   4131   // CHECK-LABEL: @test_mm_maskz_set1_epi32
   4132   // CHECK: @llvm.x86.avx512.mask.pbroadcast.d.gpr.128
   4133   return _mm_maskz_set1_epi32(__M, 5);
   4134 }
   4135 
   4136 __m256i test_mm256_mask_set1_epi32(__m256i __O, __mmask8 __M) {
   4137   // CHECK-LABEL: @test_mm256_mask_set1_epi32
   4138   // CHECK: @llvm.x86.avx512.mask.pbroadcast.d.gpr.256
   4139   return _mm256_mask_set1_epi32(__O, __M, 5);
   4140 }
   4141 
   4142 __m256i test_mm256_maskz_set1_epi32(__mmask8 __M) {
   4143   // CHECK-LABEL: @test_mm256_maskz_set1_epi32
   4144   // CHECK: @llvm.x86.avx512.mask.pbroadcast.d.gpr.256
   4145   return _mm256_maskz_set1_epi32(__M, 5);
   4146 }
   4147 
   4148 __m128i test_mm_mask_set1_epi64(__m128i __O, __mmask8 __M, long long __A) {
   4149   // CHECK-LABEL: @test_mm_mask_set1_epi64
   4150   // CHECK: @llvm.x86.avx512.mask.pbroadcast.q.gpr.128
   4151   return _mm_mask_set1_epi64(__O, __M, __A);
   4152 }
   4153 
   4154 __m128i test_mm_maskz_set1_epi64(__mmask8 __M, long long __A) {
   4155   // CHECK-LABEL: @test_mm_maskz_set1_epi64
   4156   // CHECK: @llvm.x86.avx512.mask.pbroadcast.q.gpr.128
   4157   return _mm_maskz_set1_epi64(__M, __A);
   4158 }
   4159 
   4160 __m256i test_mm256_mask_set1_epi64(__m256i __O, __mmask8 __M, long long __A) {
   4161   // CHECK-LABEL: @test_mm256_mask_set1_epi64
   4162   // CHECK: @llvm.x86.avx512.mask.pbroadcast.q.gpr.256
   4163   return _mm256_mask_set1_epi64(__O, __M, __A);
   4164 }
   4165 
   4166 __m256i test_mm256_maskz_set1_epi64(__mmask8 __M, long long __A) {
   4167   // CHECK-LABEL: @test_mm256_maskz_set1_epi64
   4168   // CHECK: @llvm.x86.avx512.mask.pbroadcast.q.gpr.256
   4169   return _mm256_maskz_set1_epi64(__M, __A);
   4170 }
   4171 
   4172 __m128d test_mm_fixupimm_pd(__m128d __A, __m128d __B, __m128i __C) {
   4173   // CHECK-LABEL: @test_mm_fixupimm_pd
   4174   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.128
   4175   return _mm_fixupimm_pd(__A, __B, __C, 5);
   4176 }
   4177 
   4178 __m128d test_mm_mask_fixupimm_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128i __C) {
   4179   // CHECK-LABEL: @test_mm_mask_fixupimm_pd
   4180   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.128
   4181   return _mm_mask_fixupimm_pd(__A, __U, __B, __C, 5);
   4182 }
   4183 
   4184 __m128d test_mm_maskz_fixupimm_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128i __C) {
   4185   // CHECK-LABEL: @test_mm_maskz_fixupimm_pd
   4186   // CHECK: @llvm.x86.avx512.maskz.fixupimm.pd.128
   4187   return _mm_maskz_fixupimm_pd(__U, __A, __B, __C, 5);
   4188 }
   4189 
   4190 __m256d test_mm256_fixupimm_pd(__m256d __A, __m256d __B, __m256i __C) {
   4191   // CHECK-LABEL: @test_mm256_fixupimm_pd
   4192   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.256
   4193   return _mm256_fixupimm_pd(__A, __B, __C, 5);
   4194 }
   4195 
   4196 __m256d test_mm256_mask_fixupimm_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256i __C) {
   4197   // CHECK-LABEL: @test_mm256_mask_fixupimm_pd
   4198   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.256
   4199   return _mm256_mask_fixupimm_pd(__A, __U, __B, __C, 5);
   4200 }
   4201 
   4202 __m256d test_mm256_maskz_fixupimm_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256i __C) {
   4203   // CHECK-LABEL: @test_mm256_maskz_fixupimm_pd
   4204   // CHECK: @llvm.x86.avx512.maskz.fixupimm.pd.256
   4205   return _mm256_maskz_fixupimm_pd(__U, __A, __B, __C, 5);
   4206 }
   4207 
   4208 __m128 test_mm_fixupimm_ps(__m128 __A, __m128 __B, __m128i __C) {
   4209   // CHECK-LABEL: @test_mm_fixupimm_ps
   4210   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.128
   4211   return _mm_fixupimm_ps(__A, __B, __C, 5);
   4212 }
   4213 
   4214 __m128 test_mm_mask_fixupimm_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128i __C) {
   4215   // CHECK-LABEL: @test_mm_mask_fixupimm_ps
   4216   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.128
   4217   return _mm_mask_fixupimm_ps(__A, __U, __B, __C, 5);
   4218 }
   4219 
   4220 __m128 test_mm_maskz_fixupimm_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128i __C) {
   4221   // CHECK-LABEL: @test_mm_maskz_fixupimm_ps
   4222   // CHECK: @llvm.x86.avx512.maskz.fixupimm.ps.128
   4223   return _mm_maskz_fixupimm_ps(__U, __A, __B, __C, 5);
   4224 }
   4225 
   4226 __m256 test_mm256_fixupimm_ps(__m256 __A, __m256 __B, __m256i __C) {
   4227   // CHECK-LABEL: @test_mm256_fixupimm_ps
   4228   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.256
   4229   return _mm256_fixupimm_ps(__A, __B, __C, 5);
   4230 }
   4231 
   4232 __m256 test_mm256_mask_fixupimm_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256i __C) {
   4233   // CHECK-LABEL: @test_mm256_mask_fixupimm_ps
   4234   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.256
   4235   return _mm256_mask_fixupimm_ps(__A, __U, __B, __C, 5);
   4236 }
   4237 
   4238 __m256 test_mm256_maskz_fixupimm_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256i __C) {
   4239   // CHECK-LABEL: @test_mm256_maskz_fixupimm_ps
   4240   // CHECK: @llvm.x86.avx512.maskz.fixupimm.ps.256
   4241   return _mm256_maskz_fixupimm_ps(__U, __A, __B, __C, 5);
   4242 }
   4243 
   4244 __m128d test_mm_mask_load_pd(__m128d __W, __mmask8 __U, void const *__P) {
   4245   // CHECK-LABEL: @test_mm_mask_load_pd
   4246   // CHECK: @llvm.masked.load.v2f64.p0v2f64(<2 x double>* %{{.*}}, i32 16, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
   4247   return _mm_mask_load_pd(__W, __U, __P);
   4248 }
   4249 
   4250 __m128d test_mm_maskz_load_pd(__mmask8 __U, void const *__P) {
   4251   // CHECK-LABEL: @test_mm_maskz_load_pd
   4252   // CHECK: @llvm.masked.load.v2f64.p0v2f64(<2 x double>* %{{.*}}, i32 16, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
   4253   return _mm_maskz_load_pd(__U, __P);
   4254 }
   4255 
   4256 __m256d test_mm256_mask_load_pd(__m256d __W, __mmask8 __U, void const *__P) {
   4257   // CHECK-LABEL: @test_mm256_mask_load_pd
   4258   // CHECK: @llvm.masked.load.v4f64.p0v4f64(<4 x double>* %{{.*}}, i32 32, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
   4259   return _mm256_mask_load_pd(__W, __U, __P);
   4260 }
   4261 
   4262 __m256d test_mm256_maskz_load_pd(__mmask8 __U, void const *__P) {
   4263   // CHECK-LABEL: @test_mm256_maskz_load_pd
   4264   // CHECK: @llvm.masked.load.v4f64.p0v4f64(<4 x double>* %{{.*}}, i32 32, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
   4265   return _mm256_maskz_load_pd(__U, __P);
   4266 }
   4267 
   4268 __m128 test_mm_mask_load_ps(__m128 __W, __mmask8 __U, void const *__P) {
   4269   // CHECK-LABEL: @test_mm_mask_load_ps
   4270   // CHECK: @llvm.masked.load.v4f32.p0v4f32(<4 x float>* %{{.*}}, i32 16, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
   4271   return _mm_mask_load_ps(__W, __U, __P);
   4272 }
   4273 
   4274 __m128 test_mm_maskz_load_ps(__mmask8 __U, void const *__P) {
   4275   // CHECK-LABEL: @test_mm_maskz_load_ps
   4276   // CHECK: @llvm.masked.load.v4f32.p0v4f32(<4 x float>* %{{.*}}, i32 16, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
   4277   return _mm_maskz_load_ps(__U, __P);
   4278 }
   4279 
   4280 __m256 test_mm256_mask_load_ps(__m256 __W, __mmask8 __U, void const *__P) {
   4281   // CHECK-LABEL: @test_mm256_mask_load_ps
   4282   // CHECK: @llvm.masked.load.v8f32.p0v8f32(<8 x float>* %{{.*}}, i32 32, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
   4283   return _mm256_mask_load_ps(__W, __U, __P);
   4284 }
   4285 
   4286 __m256 test_mm256_maskz_load_ps(__mmask8 __U, void const *__P) {
   4287   // CHECK-LABEL: @test_mm256_maskz_load_ps
   4288   // CHECK: @llvm.masked.load.v8f32.p0v8f32(<8 x float>* %{{.*}}, i32 32, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
   4289   return _mm256_maskz_load_ps(__U, __P);
   4290 }
   4291 
   4292 __m128i test_mm_mask_loadu_epi64(__m128i __W, __mmask8 __U, void const *__P) {
   4293   // CHECK-LABEL: @test_mm_mask_loadu_epi64
   4294   // CHECK: @llvm.masked.load.v2i64.p0v2i64(<2 x i64>* %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
   4295   return _mm_mask_loadu_epi64(__W, __U, __P);
   4296 }
   4297 
   4298 __m128i test_mm_maskz_loadu_epi64(__mmask8 __U, void const *__P) {
   4299   // CHECK-LABEL: @test_mm_maskz_loadu_epi64
   4300   // CHECK: @llvm.masked.load.v2i64.p0v2i64(<2 x i64>* %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x i64> %{{.*}})
   4301   return _mm_maskz_loadu_epi64(__U, __P);
   4302 }
   4303 
   4304 __m256i test_mm256_mask_loadu_epi64(__m256i __W, __mmask8 __U, void const *__P) {
   4305   // CHECK-LABEL: @test_mm256_mask_loadu_epi64
   4306   // CHECK: @llvm.masked.load.v4i64.p0v4i64(<4 x i64>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
   4307   return _mm256_mask_loadu_epi64(__W, __U, __P);
   4308 }
   4309 
   4310 __m256i test_mm256_maskz_loadu_epi64(__mmask8 __U, void const *__P) {
   4311   // CHECK-LABEL: @test_mm256_maskz_loadu_epi64
   4312   // CHECK: @llvm.masked.load.v4i64.p0v4i64(<4 x i64>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x i64> %{{.*}})
   4313   return _mm256_maskz_loadu_epi64(__U, __P);
   4314 }
   4315 
   4316 __m128i test_mm_mask_loadu_epi32(__m128i __W, __mmask8 __U, void const *__P) {
   4317   // CHECK-LABEL: @test_mm_mask_loadu_epi32
   4318   // CHECK: @llvm.masked.load.v4i32.p0v4i32(<4 x i32>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
   4319   return _mm_mask_loadu_epi32(__W, __U, __P);
   4320 }
   4321 
   4322 __m128i test_mm_maskz_loadu_epi32(__mmask8 __U, void const *__P) {
   4323   // CHECK-LABEL: @test_mm_maskz_loadu_epi32
   4324   // CHECK: @llvm.masked.load.v4i32.p0v4i32(<4 x i32>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x i32> %{{.*}})
   4325   return _mm_maskz_loadu_epi32(__U, __P);
   4326 }
   4327 
   4328 __m256i test_mm256_mask_loadu_epi32(__m256i __W, __mmask8 __U, void const *__P) {
   4329   // CHECK-LABEL: @test_mm256_mask_loadu_epi32
   4330   // CHECK: @llvm.masked.load.v8i32.p0v8i32(<8 x i32>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
   4331   return _mm256_mask_loadu_epi32(__W, __U, __P);
   4332 }
   4333 
   4334 __m256i test_mm256_maskz_loadu_epi32(__mmask8 __U, void const *__P) {
   4335   // CHECK-LABEL: @test_mm256_maskz_loadu_epi32
   4336   // CHECK: @llvm.masked.load.v8i32.p0v8i32(<8 x i32>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x i32> %{{.*}})
   4337   return _mm256_maskz_loadu_epi32(__U, __P);
   4338 }
   4339 
   4340 __m128d test_mm_mask_loadu_pd(__m128d __W, __mmask8 __U, void const *__P) {
   4341   // CHECK-LABEL: @test_mm_mask_loadu_pd
   4342   // CHECK: @llvm.masked.load.v2f64.p0v2f64(<2 x double>* %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
   4343   return _mm_mask_loadu_pd(__W, __U, __P);
   4344 }
   4345 
   4346 __m128d test_mm_maskz_loadu_pd(__mmask8 __U, void const *__P) {
   4347   // CHECK-LABEL: @test_mm_maskz_loadu_pd
   4348   // CHECK: @llvm.masked.load.v2f64.p0v2f64(<2 x double>* %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
   4349   return _mm_maskz_loadu_pd(__U, __P);
   4350 }
   4351 
   4352 __m256d test_mm256_mask_loadu_pd(__m256d __W, __mmask8 __U, void const *__P) {
   4353   // CHECK-LABEL: @test_mm256_mask_loadu_pd
   4354   // CHECK: @llvm.masked.load.v4f64.p0v4f64(<4 x double>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
   4355   return _mm256_mask_loadu_pd(__W, __U, __P);
   4356 }
   4357 
   4358 __m256d test_mm256_maskz_loadu_pd(__mmask8 __U, void const *__P) {
   4359   // CHECK-LABEL: @test_mm256_maskz_loadu_pd
   4360   // CHECK: @llvm.masked.load.v4f64.p0v4f64(<4 x double>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x double> %{{.*}})
   4361   return _mm256_maskz_loadu_pd(__U, __P);
   4362 }
   4363 
   4364 __m128 test_mm_mask_loadu_ps(__m128 __W, __mmask8 __U, void const *__P) {
   4365   // CHECK-LABEL: @test_mm_mask_loadu_ps
   4366   // CHECK: @llvm.masked.load.v4f32.p0v4f32(<4 x float>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
   4367   return _mm_mask_loadu_ps(__W, __U, __P);
   4368 }
   4369 
   4370 __m128 test_mm_maskz_loadu_ps(__mmask8 __U, void const *__P) {
   4371   // CHECK-LABEL: @test_mm_maskz_loadu_ps
   4372   // CHECK: @llvm.masked.load.v4f32.p0v4f32(<4 x float>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
   4373   return _mm_maskz_loadu_ps(__U, __P);
   4374 }
   4375 
   4376 __m256 test_mm256_mask_loadu_ps(__m256 __W, __mmask8 __U, void const *__P) {
   4377   // CHECK-LABEL: @test_mm256_mask_loadu_ps
   4378   // CHECK: @llvm.masked.load.v8f32.p0v8f32(<8 x float>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
   4379   return _mm256_mask_loadu_ps(__W, __U, __P);
   4380 }
   4381 
   4382 __m256 test_mm256_maskz_loadu_ps(__mmask8 __U, void const *__P) {
   4383   // CHECK-LABEL: @test_mm256_maskz_loadu_ps
   4384   // CHECK: @llvm.masked.load.v8f32.p0v8f32(<8 x float>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x float> %{{.*}})
   4385   return _mm256_maskz_loadu_ps(__U, __P);
   4386 }
   4387 
   4388 void test_mm_mask_store_pd(void *__P, __mmask8 __U, __m128d __A) {
   4389   // CHECK-LABEL: @test_mm_mask_store_pd
   4390   // CHECK: @llvm.masked.store.v2f64.p0v2f64(<2 x double> %{{.*}}, <2 x double>* %{{.*}}, i32 16, <2 x i1> %{{.*}})
   4391   return _mm_mask_store_pd(__P, __U, __A);
   4392 }
   4393 
   4394 void test_mm256_mask_store_pd(void *__P, __mmask8 __U, __m256d __A) {
   4395   // CHECK-LABEL: @test_mm256_mask_store_pd
   4396   // CHECK: @llvm.masked.store.v4f64.p0v4f64(<4 x double> %{{.*}}, <4 x double>* %{{.*}}, i32 32, <4 x i1> %{{.*}})
   4397   return _mm256_mask_store_pd(__P, __U, __A);
   4398 }
   4399 
   4400 void test_mm_mask_store_ps(void *__P, __mmask8 __U, __m128 __A) {
   4401   // CHECK-LABEL: @test_mm_mask_store_ps
   4402   // CHECK: @llvm.masked.store.v4f32.p0v4f32(<4 x float> %{{.*}}, <4 x float>* %{{.*}}, i32 16, <4 x i1> %{{.*}})
   4403   return _mm_mask_store_ps(__P, __U, __A);
   4404 }
   4405 
   4406 void test_mm256_mask_store_ps(void *__P, __mmask8 __U, __m256 __A) {
   4407   // CHECK-LABEL: @test_mm256_mask_store_ps
   4408   // CHECK: @llvm.masked.store.v8f32.p0v8f32(<8 x float> %{{.*}}, <8 x float>* %{{.*}}, i32 32, <8 x i1> %{{.*}})
   4409   return _mm256_mask_store_ps(__P, __U, __A);
   4410 }
   4411 
   4412 void test_mm_mask_storeu_epi64(void *__P, __mmask8 __U, __m128i __A) {
   4413   // CHECK-LABEL: @test_mm_mask_storeu_epi64
   4414   // CHECK: @llvm.masked.store.v2i64.p0v2i64(<2 x i64> %{{.*}}, <2 x i64>* %{{.*}}, i32 1, <2 x i1> %{{.*}})
   4415   return _mm_mask_storeu_epi64(__P, __U, __A);
   4416 }
   4417 
   4418 void test_mm256_mask_storeu_epi64(void *__P, __mmask8 __U, __m256i __A) {
   4419   // CHECK-LABEL: @test_mm256_mask_storeu_epi64
   4420   // CHECK: @llvm.masked.store.v4i64.p0v4i64(<4 x i64> %{{.*}}, <4 x i64>* %{{.*}}, i32 1, <4 x i1> %{{.*}})
   4421   return _mm256_mask_storeu_epi64(__P, __U, __A);
   4422 }
   4423 
   4424 void test_mm_mask_storeu_epi32(void *__P, __mmask8 __U, __m128i __A) {
   4425   // CHECK-LABEL: @test_mm_mask_storeu_epi32
   4426   // CHECK: @llvm.masked.store.v4i32.p0v4i32(<4 x i32> %{{.*}}, <4 x i32>* %{{.*}}, i32 1, <4 x i1> %{{.*}})
   4427   return _mm_mask_storeu_epi32(__P, __U, __A);
   4428 }
   4429 
   4430 void test_mm256_mask_storeu_epi32(void *__P, __mmask8 __U, __m256i __A) {
   4431   // CHECK-LABEL: @test_mm256_mask_storeu_epi32
   4432   // CHECK: @llvm.masked.store.v8i32.p0v8i32(<8 x i32> %{{.*}}, <8 x i32>* %{{.*}}, i32 1, <8 x i1> %{{.*}})
   4433   return _mm256_mask_storeu_epi32(__P, __U, __A);
   4434 }
   4435 
   4436 void test_mm_mask_storeu_pd(void *__P, __mmask8 __U, __m128d __A) {
   4437   // CHECK-LABEL: @test_mm_mask_storeu_pd
   4438   // CHECK: @llvm.masked.store.v2f64.p0v2f64(<2 x double> %{{.*}}, <2 x double>* %{{.*}}, i32 1, <2 x i1> %{{.*}})
   4439   return _mm_mask_storeu_pd(__P, __U, __A);
   4440 }
   4441 
   4442 void test_mm256_mask_storeu_pd(void *__P, __mmask8 __U, __m256d __A) {
   4443   // CHECK-LABEL: @test_mm256_mask_storeu_pd
   4444   // CHECK: @llvm.masked.store.v4f64.p0v4f64(<4 x double> %{{.*}}, <4 x double>* %{{.*}}, i32 1, <4 x i1> %{{.*}})
   4445   return _mm256_mask_storeu_pd(__P, __U, __A);
   4446 }
   4447 
   4448 void test_mm_mask_storeu_ps(void *__P, __mmask8 __U, __m128 __A) {
   4449   // CHECK-LABEL: @test_mm_mask_storeu_ps
   4450   // CHECK: @llvm.masked.store.v4f32.p0v4f32(<4 x float> %{{.*}}, <4 x float>* %{{.*}}, i32 1, <4 x i1> %{{.*}})
   4451   return _mm_mask_storeu_ps(__P, __U, __A);
   4452 }
   4453 
   4454 void test_mm256_mask_storeu_ps(void *__P, __mmask8 __U, __m256 __A) {
   4455   // CHECK-LABEL: @test_mm256_mask_storeu_ps
   4456   // CHECK: @llvm.masked.store.v8f32.p0v8f32(<8 x float> %{{.*}}, <8 x float>* %{{.*}}, i32 1, <8 x i1> %{{.*}})
   4457   return _mm256_mask_storeu_ps(__P, __U, __A);
   4458 }
   4459 
   4460 __m128d test_mm_mask_unpackhi_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   4461   // CHECK-LABEL: @test_mm_mask_unpackhi_pd
   4462   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 1, i32 3>
   4463   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
   4464   return _mm_mask_unpackhi_pd(__W, __U, __A, __B);
   4465 }
   4466 
   4467 __m128d test_mm_maskz_unpackhi_pd(__mmask8 __U, __m128d __A, __m128d __B) {
   4468   // CHECK-LABEL: @test_mm_maskz_unpackhi_pd
   4469   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 1, i32 3>
   4470   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
   4471   return _mm_maskz_unpackhi_pd(__U, __A, __B);
   4472 }
   4473 
   4474 __m256d test_mm256_mask_unpackhi_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
   4475   // CHECK-LABEL: @test_mm256_mask_unpackhi_pd
   4476   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
   4477   // CHECK: select <4 x i1> %{{.*}} <4 x double> %{{.*}}, <4 x double> %{{.*}}
   4478   return _mm256_mask_unpackhi_pd(__W, __U, __A, __B);
   4479 }
   4480 
   4481 __m256d test_mm256_maskz_unpackhi_pd(__mmask8 __U, __m256d __A, __m256d __B) {
   4482   // CHECK-LABEL: @test_mm256_maskz_unpackhi_pd
   4483   // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
   4484   // CHECK: select <4 x i1> %{{.*}} <4 x double> %{{.*}}, <4 x double> %{{.*}}
   4485   return _mm256_maskz_unpackhi_pd(__U, __A, __B);
   4486 }
   4487 
   4488 __m128 test_mm_mask_unpackhi_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   4489   // CHECK-LABEL: @test_mm_mask_unpackhi_ps
   4490   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 2, i32 6, i32 3, i32 7>
   4491   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}} <4 x float> %{{.*}}
   4492   return _mm_mask_unpackhi_ps(__W, __U, __A, __B);
   4493 }
   4494 
   4495 __m128 test_mm_maskz_unpackhi_ps(__mmask8 __U, __m128 __A, __m128 __B) {
   4496   // CHECK-LABEL: @test_mm_maskz_unpackhi_ps
   4497   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 2, i32 6, i32 3, i32 7>
   4498   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}} <4 x float> %{{.*}}
   4499   return _mm_maskz_unpackhi_ps(__U, __A, __B);
   4500 }
   4501 
   4502 __m256 test_mm256_mask_unpackhi_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
   4503   // CHECK-LABEL: @test_mm256_mask_unpackhi_ps
   4504   // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 2, i32 10, i32 3, i32 11, i32 6, i32 14, i32 7, i32 15>
   4505   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
   4506   return _mm256_mask_unpackhi_ps(__W, __U, __A, __B);
   4507 }
   4508 
   4509 __m256 test_mm256_maskz_unpackhi_ps(__mmask8 __U, __m256 __A, __m256 __B) {
   4510   // CHECK-LABEL: @test_mm256_maskz_unpackhi_ps
   4511   // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 2, i32 10, i32 3, i32 11, i32 6, i32 14, i32 7, i32 15>
   4512   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
   4513   return _mm256_maskz_unpackhi_ps(__U, __A, __B);
   4514 }
   4515 
   4516 __m128d test_mm_mask_unpacklo_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   4517   // CHECK-LABEL: @test_mm_mask_unpacklo_pd
   4518   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 0, i32 2>
   4519   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
   4520   return _mm_mask_unpacklo_pd(__W, __U, __A, __B);
   4521 }
   4522 
   4523 __m128d test_mm_maskz_unpacklo_pd(__mmask8 __U, __m128d __A, __m128d __B) {
   4524   // CHECK-LABEL: @test_mm_maskz_unpacklo_pd
   4525   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 0, i32 2>
   4526   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
   4527   return _mm_maskz_unpacklo_pd(__U, __A, __B);
   4528 }
   4529 
   4530 __m256d test_mm256_mask_unpacklo_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
   4531   // CHECK-LABEL: @test_mm256_mask_unpacklo_pd
   4532   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 2, i32 6>
   4533   // CHECK: select <4 x i1> %{{.*}} <4 x double> %{{.*}}, <4 x double> %{{.*}}
   4534   return _mm256_mask_unpacklo_pd(__W, __U, __A, __B);
   4535 }
   4536 
   4537 __m256d test_mm256_maskz_unpacklo_pd(__mmask8 __U, __m256d __A, __m256d __B) {
   4538   // CHECK-LABEL: @test_mm256_maskz_unpacklo_pd
   4539   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 2, i32 6>
   4540   // CHECK: select <4 x i1> %{{.*}} <4 x double> %{{.*}}, <4 x double> %{{.*}}
   4541   return _mm256_maskz_unpacklo_pd(__U, __A, __B);
   4542 }
   4543 
   4544 __m128 test_mm_mask_unpacklo_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   4545   // CHECK-LABEL: @test_mm_mask_unpacklo_ps
   4546   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
   4547   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
   4548   return _mm_mask_unpacklo_ps(__W, __U, __A, __B);
   4549 }
   4550 
   4551 __m128 test_mm_maskz_unpacklo_ps(__mmask8 __U, __m128 __A, __m128 __B) {
   4552   // CHECK-LABEL: @test_mm_maskz_unpacklo_ps
   4553   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
   4554   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
   4555   return _mm_maskz_unpacklo_ps(__U, __A, __B);
   4556 }
   4557 
   4558 __m256 test_mm256_mask_unpacklo_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
   4559   // CHECK-LABEL: @test_mm256_mask_unpacklo_ps
   4560   // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 4, i32 12, i32 5, i32 13>
   4561   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
   4562   return _mm256_mask_unpacklo_ps(__W, __U, __A, __B);
   4563 }
   4564 
   4565 __m256 test_mm256_maskz_unpacklo_ps(__mmask8 __U, __m256 __A, __m256 __B) {
   4566   // CHECK-LABEL: @test_mm256_maskz_unpacklo_ps
   4567   // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 4, i32 12, i32 5, i32 13>
   4568   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
   4569   return _mm256_maskz_unpacklo_ps(__U, __A, __B);
   4570 }
   4571 
   4572 __m128d test_mm_rcp14_pd(__m128d __A) {
   4573   // CHECK-LABEL: @test_mm_rcp14_pd
   4574   // CHECK: @llvm.x86.avx512.rcp14.pd.128
   4575   return _mm_rcp14_pd(__A);
   4576 }
   4577 
   4578 __m128d test_mm_mask_rcp14_pd(__m128d __W, __mmask8 __U, __m128d __A) {
   4579   // CHECK-LABEL: @test_mm_mask_rcp14_pd
   4580   // CHECK: @llvm.x86.avx512.rcp14.pd.128
   4581   return _mm_mask_rcp14_pd(__W, __U, __A);
   4582 }
   4583 
   4584 __m128d test_mm_maskz_rcp14_pd(__mmask8 __U, __m128d __A) {
   4585   // CHECK-LABEL: @test_mm_maskz_rcp14_pd
   4586   // CHECK: @llvm.x86.avx512.rcp14.pd.128
   4587   return _mm_maskz_rcp14_pd(__U, __A);
   4588 }
   4589 
   4590 __m256d test_mm256_rcp14_pd(__m256d __A) {
   4591   // CHECK-LABEL: @test_mm256_rcp14_pd
   4592   // CHECK: @llvm.x86.avx512.rcp14.pd.256
   4593   return _mm256_rcp14_pd(__A);
   4594 }
   4595 
   4596 __m256d test_mm256_mask_rcp14_pd(__m256d __W, __mmask8 __U, __m256d __A) {
   4597   // CHECK-LABEL: @test_mm256_mask_rcp14_pd
   4598   // CHECK: @llvm.x86.avx512.rcp14.pd.256
   4599   return _mm256_mask_rcp14_pd(__W, __U, __A);
   4600 }
   4601 
   4602 __m256d test_mm256_maskz_rcp14_pd(__mmask8 __U, __m256d __A) {
   4603   // CHECK-LABEL: @test_mm256_maskz_rcp14_pd
   4604   // CHECK: @llvm.x86.avx512.rcp14.pd.256
   4605   return _mm256_maskz_rcp14_pd(__U, __A);
   4606 }
   4607 
   4608 __m128 test_mm_rcp14_ps(__m128 __A) {
   4609   // CHECK-LABEL: @test_mm_rcp14_ps
   4610   // CHECK: @llvm.x86.avx512.rcp14.ps.128
   4611   return _mm_rcp14_ps(__A);
   4612 }
   4613 
   4614 __m128 test_mm_mask_rcp14_ps(__m128 __W, __mmask8 __U, __m128 __A) {
   4615   // CHECK-LABEL: @test_mm_mask_rcp14_ps
   4616   // CHECK: @llvm.x86.avx512.rcp14.ps.128
   4617   return _mm_mask_rcp14_ps(__W, __U, __A);
   4618 }
   4619 
   4620 __m128 test_mm_maskz_rcp14_ps(__mmask8 __U, __m128 __A) {
   4621   // CHECK-LABEL: @test_mm_maskz_rcp14_ps
   4622   // CHECK: @llvm.x86.avx512.rcp14.ps.128
   4623   return _mm_maskz_rcp14_ps(__U, __A);
   4624 }
   4625 
   4626 __m256 test_mm256_rcp14_ps(__m256 __A) {
   4627   // CHECK-LABEL: @test_mm256_rcp14_ps
   4628   // CHECK: @llvm.x86.avx512.rcp14.ps.256
   4629   return _mm256_rcp14_ps(__A);
   4630 }
   4631 
   4632 __m256 test_mm256_mask_rcp14_ps(__m256 __W, __mmask8 __U, __m256 __A) {
   4633   // CHECK-LABEL: @test_mm256_mask_rcp14_ps
   4634   // CHECK: @llvm.x86.avx512.rcp14.ps.256
   4635   return _mm256_mask_rcp14_ps(__W, __U, __A);
   4636 }
   4637 
   4638 __m256 test_mm256_maskz_rcp14_ps(__mmask8 __U, __m256 __A) {
   4639   // CHECK-LABEL: @test_mm256_maskz_rcp14_ps
   4640   // CHECK: @llvm.x86.avx512.rcp14.ps.256
   4641   return _mm256_maskz_rcp14_ps(__U, __A);
   4642 }
   4643 
   4644 __m128d test_mm_mask_permute_pd(__m128d __W, __mmask8 __U, __m128d __X) {
   4645   // CHECK-LABEL: @test_mm_mask_permute_pd
   4646   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> undef, <2 x i32> <i32 1, i32 0>
   4647   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
   4648   return _mm_mask_permute_pd(__W, __U, __X, 1);
   4649 }
   4650 
   4651 __m128d test_mm_maskz_permute_pd(__mmask8 __U, __m128d __X) {
   4652   // CHECK-LABEL: @test_mm_maskz_permute_pd
   4653   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> undef, <2 x i32> <i32 1, i32 0>
   4654   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
   4655   return _mm_maskz_permute_pd(__U, __X, 1);
   4656 }
   4657 
   4658 __m256d test_mm256_mask_permute_pd(__m256d __W, __mmask8 __U, __m256d __X) {
   4659   // CHECK-LABEL: @test_mm256_mask_permute_pd
   4660   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 1, i32 0, i32 3, i32 2>
   4661   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
   4662   return _mm256_mask_permute_pd(__W, __U, __X, 5);
   4663 }
   4664 
   4665 __m256d test_mm256_maskz_permute_pd(__mmask8 __U, __m256d __X) {
   4666   // CHECK-LABEL: @test_mm256_maskz_permute_pd
   4667   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 1, i32 0, i32 3, i32 2>
   4668   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
   4669   return _mm256_maskz_permute_pd(__U, __X, 5);
   4670 }
   4671 
   4672 __m128 test_mm_mask_permute_ps(__m128 __W, __mmask8 __U, __m128 __X) {
   4673   // CHECK-LABEL: @test_mm_mask_permute_ps
   4674   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
   4675   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
   4676   return _mm_mask_permute_ps(__W, __U, __X, 0x1b);
   4677 }
   4678 
   4679 __m128 test_mm_maskz_permute_ps(__mmask8 __U, __m128 __X) {
   4680   // CHECK-LABEL: @test_mm_maskz_permute_ps
   4681   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
   4682   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
   4683   return _mm_maskz_permute_ps(__U, __X, 0x1b);
   4684 }
   4685 
   4686 __m256 test_mm256_mask_permute_ps(__m256 __W, __mmask8 __U, __m256 __X) {
   4687   // CHECK-LABEL: @test_mm256_mask_permute_ps
   4688   // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> undef, <8 x i32> <i32 3, i32 2, i32 1, i32 0, i32 7, i32 6, i32 5, i32 4>
   4689   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
   4690   return _mm256_mask_permute_ps(__W, __U, __X, 0x1b);
   4691 }
   4692 
   4693 __m256 test_mm256_maskz_permute_ps(__mmask8 __U, __m256 __X) {
   4694   // CHECK-LABEL: @test_mm256_maskz_permute_ps
   4695   // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> undef, <8 x i32> <i32 3, i32 2, i32 1, i32 0, i32 7, i32 6, i32 5, i32 4>
   4696   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
   4697   return _mm256_maskz_permute_ps(__U, __X, 0x1b);
   4698 }
   4699 
   4700 __m128d test_mm_mask_permutevar_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128i __C) {
   4701   // CHECK-LABEL: @test_mm_mask_permutevar_pd
   4702   // CHECK: @llvm.x86.avx512.mask.vpermilvar.pd
   4703   return _mm_mask_permutevar_pd(__W, __U, __A, __C);
   4704 }
   4705 
   4706 __m128d test_mm_maskz_permutevar_pd(__mmask8 __U, __m128d __A, __m128i __C) {
   4707   // CHECK-LABEL: @test_mm_maskz_permutevar_pd
   4708   // CHECK: @llvm.x86.avx512.mask.vpermilvar.pd
   4709   return _mm_maskz_permutevar_pd(__U, __A, __C);
   4710 }
   4711 
   4712 __m256d test_mm256_mask_permutevar_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256i __C) {
   4713   // CHECK-LABEL: @test_mm256_mask_permutevar_pd
   4714   // CHECK: @llvm.x86.avx512.mask.vpermilvar.pd.256
   4715   return _mm256_mask_permutevar_pd(__W, __U, __A, __C);
   4716 }
   4717 
   4718 __m256d test_mm256_maskz_permutevar_pd(__mmask8 __U, __m256d __A, __m256i __C) {
   4719   // CHECK-LABEL: @test_mm256_maskz_permutevar_pd
   4720   // CHECK: @llvm.x86.avx512.mask.vpermilvar.pd.256
   4721   return _mm256_maskz_permutevar_pd(__U, __A, __C);
   4722 }
   4723 
   4724 __m128 test_mm_mask_permutevar_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128i __C) {
   4725   // CHECK-LABEL: @test_mm_mask_permutevar_ps
   4726   // CHECK: @llvm.x86.avx512.mask.vpermilvar.ps
   4727   return _mm_mask_permutevar_ps(__W, __U, __A, __C);
   4728 }
   4729 
   4730 __m128 test_mm_maskz_permutevar_ps(__mmask8 __U, __m128 __A, __m128i __C) {
   4731   // CHECK-LABEL: @test_mm_maskz_permutevar_ps
   4732   // CHECK: @llvm.x86.avx512.mask.vpermilvar.ps
   4733   return _mm_maskz_permutevar_ps(__U, __A, __C);
   4734 }
   4735 
   4736 __m256 test_mm256_mask_permutevar_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256i __C) {
   4737   // CHECK-LABEL: @test_mm256_mask_permutevar_ps
   4738   // CHECK: @llvm.x86.avx512.mask.vpermilvar.ps.256
   4739   return _mm256_mask_permutevar_ps(__W, __U, __A, __C);
   4740 }
   4741 
   4742 __m256 test_mm256_maskz_permutevar_ps(__mmask8 __U, __m256 __A, __m256i __C) {
   4743   // CHECK-LABEL: @test_mm256_maskz_permutevar_ps
   4744   // CHECK: @llvm.x86.avx512.mask.vpermilvar.ps.256
   4745   return _mm256_maskz_permutevar_ps(__U, __A, __C);
   4746 }
   4747 
   4748 __mmask8 test_mm_test_epi32_mask(__m128i __A, __m128i __B) {
   4749   // CHECK-LABEL: @test_mm_test_epi32_mask
   4750   // CHECK: @llvm.x86.avx512.ptestm.d.128
   4751   return _mm_test_epi32_mask(__A, __B);
   4752 }
   4753 
   4754 __mmask8 test_mm_mask_test_epi32_mask(__mmask8 __U, __m128i __A, __m128i __B) {
   4755   // CHECK-LABEL: @test_mm_mask_test_epi32_mask
   4756   // CHECK: @llvm.x86.avx512.ptestm.d.128
   4757   return _mm_mask_test_epi32_mask(__U, __A, __B);
   4758 }
   4759 
   4760 __mmask8 test_mm256_test_epi32_mask(__m256i __A, __m256i __B) {
   4761   // CHECK-LABEL: @test_mm256_test_epi32_mask
   4762   // CHECK: @llvm.x86.avx512.ptestm.d.256
   4763   return _mm256_test_epi32_mask(__A, __B);
   4764 }
   4765 
   4766 __mmask8 test_mm256_mask_test_epi32_mask(__mmask8 __U, __m256i __A, __m256i __B) {
   4767   // CHECK-LABEL: @test_mm256_mask_test_epi32_mask
   4768   // CHECK: @llvm.x86.avx512.ptestm.d.256
   4769   return _mm256_mask_test_epi32_mask(__U, __A, __B);
   4770 }
   4771 
   4772 __mmask8 test_mm_test_epi64_mask(__m128i __A, __m128i __B) {
   4773   // CHECK-LABEL: @test_mm_test_epi64_mask
   4774   // CHECK: @llvm.x86.avx512.ptestm.q.128
   4775   return _mm_test_epi64_mask(__A, __B);
   4776 }
   4777 
   4778 __mmask8 test_mm_mask_test_epi64_mask(__mmask8 __U, __m128i __A, __m128i __B) {
   4779   // CHECK-LABEL: @test_mm_mask_test_epi64_mask
   4780   // CHECK: @llvm.x86.avx512.ptestm.q.128
   4781   return _mm_mask_test_epi64_mask(__U, __A, __B);
   4782 }
   4783 
   4784 __mmask8 test_mm256_test_epi64_mask(__m256i __A, __m256i __B) {
   4785   // CHECK-LABEL: @test_mm256_test_epi64_mask
   4786   // CHECK: @llvm.x86.avx512.ptestm.q.256
   4787   return _mm256_test_epi64_mask(__A, __B);
   4788 }
   4789 
   4790 __mmask8 test_mm256_mask_test_epi64_mask(__mmask8 __U, __m256i __A, __m256i __B) {
   4791   // CHECK-LABEL: @test_mm256_mask_test_epi64_mask
   4792   // CHECK: @llvm.x86.avx512.ptestm.q.256
   4793   return _mm256_mask_test_epi64_mask(__U, __A, __B);
   4794 }
   4795 
   4796 __mmask8 test_mm_testn_epi32_mask(__m128i __A, __m128i __B) {
   4797   // CHECK-LABEL: @test_mm_testn_epi32_mask
   4798   // CHECK: @llvm.x86.avx512.ptestnm.d.128
   4799   return _mm_testn_epi32_mask(__A, __B);
   4800 }
   4801 
   4802 __mmask8 test_mm_mask_testn_epi32_mask(__mmask8 __U, __m128i __A, __m128i __B) {
   4803   // CHECK-LABEL: @test_mm_mask_testn_epi32_mask
   4804   // CHECK: @llvm.x86.avx512.ptestnm.d.128
   4805   return _mm_mask_testn_epi32_mask(__U, __A, __B);
   4806 }
   4807 
   4808 __mmask8 test_mm256_testn_epi32_mask(__m256i __A, __m256i __B) {
   4809   // CHECK-LABEL: @test_mm256_testn_epi32_mask
   4810   // CHECK: @llvm.x86.avx512.ptestnm.d.256
   4811   return _mm256_testn_epi32_mask(__A, __B);
   4812 }
   4813 
   4814 __mmask8 test_mm256_mask_testn_epi32_mask(__mmask8 __U, __m256i __A, __m256i __B) {
   4815   // CHECK-LABEL: @test_mm256_mask_testn_epi32_mask
   4816   // CHECK: @llvm.x86.avx512.ptestnm.d.256
   4817   return _mm256_mask_testn_epi32_mask(__U, __A, __B);
   4818 }
   4819 
   4820 __mmask8 test_mm_testn_epi64_mask(__m128i __A, __m128i __B) {
   4821   // CHECK-LABEL: @test_mm_testn_epi64_mask
   4822   // CHECK: @llvm.x86.avx512.ptestnm.q.128
   4823   return _mm_testn_epi64_mask(__A, __B);
   4824 }
   4825 
   4826 __mmask8 test_mm_mask_testn_epi64_mask(__mmask8 __U, __m128i __A, __m128i __B) {
   4827   // CHECK-LABEL: @test_mm_mask_testn_epi64_mask
   4828   // CHECK: @llvm.x86.avx512.ptestnm.q.128
   4829   return _mm_mask_testn_epi64_mask(__U, __A, __B);
   4830 }
   4831 
   4832 __mmask8 test_mm256_testn_epi64_mask(__m256i __A, __m256i __B) {
   4833   // CHECK-LABEL: @test_mm256_testn_epi64_mask
   4834   // CHECK: @llvm.x86.avx512.ptestnm.q.256
   4835   return _mm256_testn_epi64_mask(__A, __B);
   4836 }
   4837 
   4838 __mmask8 test_mm256_mask_testn_epi64_mask(__mmask8 __U, __m256i __A, __m256i __B) {
   4839   // CHECK-LABEL: @test_mm256_mask_testn_epi64_mask
   4840   // CHECK: @llvm.x86.avx512.ptestnm.q.256
   4841   return _mm256_mask_testn_epi64_mask(__U, __A, __B);
   4842 }
   4843 __m128i test_mm_mask_unpackhi_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
   4844   // CHECK-LABEL: @test_mm_mask_unpackhi_epi32
   4845   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 2, i32 6, i32 3, i32 7>
   4846   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
   4847   return _mm_mask_unpackhi_epi32(__W, __U, __A, __B);
   4848 }
   4849 
   4850 __m128i test_mm_maskz_unpackhi_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
   4851   // CHECK-LABEL: @test_mm_maskz_unpackhi_epi32
   4852   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 2, i32 6, i32 3, i32 7>
   4853   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
   4854   return _mm_maskz_unpackhi_epi32(__U, __A, __B);
   4855 }
   4856 
   4857 __m256i test_mm256_mask_unpackhi_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
   4858   // CHECK-LABEL: @test_mm256_mask_unpackhi_epi32
   4859   // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 2, i32 10, i32 3, i32 11, i32 6, i32 14, i32 7, i32 15>
   4860   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
   4861   return _mm256_mask_unpackhi_epi32(__W, __U, __A, __B);
   4862 }
   4863 
   4864 __m256i test_mm256_maskz_unpackhi_epi32(__mmask8 __U, __m256i __A, __m256i __B) {
   4865   // CHECK-LABEL: @test_mm256_maskz_unpackhi_epi32
   4866   // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 2, i32 10, i32 3, i32 11, i32 6, i32 14, i32 7, i32 15>
   4867   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
   4868   return _mm256_maskz_unpackhi_epi32(__U, __A, __B);
   4869 }
   4870 
   4871 __m128i test_mm_mask_unpackhi_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
   4872   // CHECK-LABEL: @test_mm_mask_unpackhi_epi64
   4873   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 1, i32 3>
   4874   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
   4875   return _mm_mask_unpackhi_epi64(__W, __U, __A, __B);
   4876 }
   4877 
   4878 __m128i test_mm_maskz_unpackhi_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
   4879   // CHECK-LABEL: @test_mm_maskz_unpackhi_epi64
   4880   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 1, i32 3>
   4881   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
   4882   return _mm_maskz_unpackhi_epi64(__U, __A, __B);
   4883 }
   4884 
   4885 __m256i test_mm256_mask_unpackhi_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
   4886   // CHECK-LABEL: @test_mm256_mask_unpackhi_epi64
   4887   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 1, i32 5, i32 3, i32 7>
   4888   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
   4889   return _mm256_mask_unpackhi_epi64(__W, __U, __A, __B);
   4890 }
   4891 
   4892 __m256i test_mm256_maskz_unpackhi_epi64(__mmask8 __U, __m256i __A, __m256i __B) {
   4893   // CHECK-LABEL: @test_mm256_maskz_unpackhi_epi64
   4894   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 1, i32 5, i32 3, i32 7>
   4895   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
   4896   return _mm256_maskz_unpackhi_epi64(__U, __A, __B);
   4897 }
   4898 
   4899 __m128i test_mm_mask_unpacklo_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
   4900   // CHECK-LABEL: @test_mm_mask_unpacklo_epi32
   4901   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
   4902   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
   4903   return _mm_mask_unpacklo_epi32(__W, __U, __A, __B);
   4904 }
   4905 
   4906 __m128i test_mm_maskz_unpacklo_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
   4907   // CHECK-LABEL: @test_mm_maskz_unpacklo_epi32
   4908   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
   4909   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
   4910   return _mm_maskz_unpacklo_epi32(__U, __A, __B);
   4911 }
   4912 
   4913 __m256i test_mm256_mask_unpacklo_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
   4914   // CHECK-LABEL: @test_mm256_mask_unpacklo_epi32
   4915   // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 4, i32 12, i32 5, i32 13>
   4916   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
   4917   return _mm256_mask_unpacklo_epi32(__W, __U, __A, __B);
   4918 }
   4919 
   4920 __m256i test_mm256_maskz_unpacklo_epi32(__mmask8 __U, __m256i __A, __m256i __B) {
   4921   // CHECK-LABEL: @test_mm256_maskz_unpacklo_epi32
   4922   // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 4, i32 12, i32 5, i32 13>
   4923   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
   4924   return _mm256_maskz_unpacklo_epi32(__U, __A, __B);
   4925 }
   4926 
   4927 __m128i test_mm_mask_unpacklo_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
   4928   // CHECK-LABEL: @test_mm_mask_unpacklo_epi64
   4929   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 0, i32 2>
   4930   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
   4931   return _mm_mask_unpacklo_epi64(__W, __U, __A, __B);
   4932 }
   4933 
   4934 __m128i test_mm_maskz_unpacklo_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
   4935   // CHECK-LABEL: @test_mm_maskz_unpacklo_epi64
   4936   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 0, i32 2>
   4937   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
   4938   return _mm_maskz_unpacklo_epi64(__U, __A, __B);
   4939 }
   4940 
   4941 __m256i test_mm256_mask_unpacklo_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
   4942   // CHECK-LABEL: @test_mm256_mask_unpacklo_epi64
   4943   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 2, i32 6>
   4944   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
   4945   return _mm256_mask_unpacklo_epi64(__W, __U, __A, __B);
   4946 }
   4947 
   4948 __m256i test_mm256_maskz_unpacklo_epi64(__mmask8 __U, __m256i __A, __m256i __B) {
   4949   // CHECK-LABEL: @test_mm256_maskz_unpacklo_epi64
   4950   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 2, i32 6>
   4951   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
   4952   return _mm256_maskz_unpacklo_epi64(__U, __A, __B);
   4953 }
   4954 
   4955 __m128i test_mm_mask_sra_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
   4956   // CHECK-LABEL: @test_mm_mask_sra_epi32
   4957   // CHECK: @llvm.x86.avx512.mask.psra.d.128
   4958   return _mm_mask_sra_epi32(__W, __U, __A, __B);
   4959 }
   4960 
   4961 __m128i test_mm_maskz_sra_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
   4962   // CHECK-LABEL: @test_mm_maskz_sra_epi32
   4963   // CHECK: @llvm.x86.avx512.mask.psra.d.128
   4964   return _mm_maskz_sra_epi32(__U, __A, __B);
   4965 }
   4966 
   4967 __m256i test_mm256_mask_sra_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
   4968   // CHECK-LABEL: @test_mm256_mask_sra_epi32
   4969   // CHECK: @llvm.x86.avx512.mask.psra.d.256
   4970   return _mm256_mask_sra_epi32(__W, __U, __A, __B);
   4971 }
   4972 
   4973 __m256i test_mm256_maskz_sra_epi32(__mmask8 __U, __m256i __A, __m128i __B) {
   4974   // CHECK-LABEL: @test_mm256_maskz_sra_epi32
   4975   // CHECK: @llvm.x86.avx512.mask.psra.d.256
   4976   return _mm256_maskz_sra_epi32(__U, __A, __B);
   4977 }
   4978 
   4979 __m128i test_mm_mask_srai_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
   4980   // CHECK-LABEL: @test_mm_mask_srai_epi32
   4981   // CHECK: @llvm.x86.avx512.mask.psra.di.128
   4982   return _mm_mask_srai_epi32(__W, __U, __A, 5);
   4983 }
   4984 
   4985 __m128i test_mm_maskz_srai_epi32(__mmask8 __U, __m128i __A) {
   4986   // CHECK-LABEL: @test_mm_maskz_srai_epi32
   4987   // CHECK: @llvm.x86.avx512.mask.psra.di.128
   4988   return _mm_maskz_srai_epi32(__U, __A, 5);
   4989 }
   4990 
   4991 __m256i test_mm256_mask_srai_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
   4992   // CHECK-LABEL: @test_mm256_mask_srai_epi32
   4993   // CHECK: @llvm.x86.avx512.mask.psra.di.256
   4994   return _mm256_mask_srai_epi32(__W, __U, __A, 5);
   4995 }
   4996 
   4997 __m256i test_mm256_maskz_srai_epi32(__mmask8 __U, __m256i __A) {
   4998   // CHECK-LABEL: @test_mm256_maskz_srai_epi32
   4999   // CHECK: @llvm.x86.avx512.mask.psra.di.256
   5000   return _mm256_maskz_srai_epi32(__U, __A, 5);
   5001 }
   5002 
   5003 __m128i test_mm_sra_epi64(__m128i __A, __m128i __B) {
   5004   // CHECK-LABEL: @test_mm_sra_epi64
   5005   // CHECK: @llvm.x86.avx512.mask.psra.q.128
   5006   return _mm_sra_epi64(__A, __B);
   5007 }
   5008 
   5009 __m128i test_mm_mask_sra_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
   5010   // CHECK-LABEL: @test_mm_mask_sra_epi64
   5011   // CHECK: @llvm.x86.avx512.mask.psra.q.128
   5012   return _mm_mask_sra_epi64(__W, __U, __A, __B);
   5013 }
   5014 
   5015 __m128i test_mm_maskz_sra_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
   5016   // CHECK-LABEL: @test_mm_maskz_sra_epi64
   5017   // CHECK: @llvm.x86.avx512.mask.psra.q.128
   5018   return _mm_maskz_sra_epi64(__U, __A, __B);
   5019 }
   5020 
   5021 __m256i test_mm256_sra_epi64(__m256i __A, __m128i __B) {
   5022   // CHECK-LABEL: @test_mm256_sra_epi64
   5023   // CHECK: @llvm.x86.avx512.mask.psra.q.256
   5024   return _mm256_sra_epi64(__A, __B);
   5025 }
   5026 
   5027 __m256i test_mm256_mask_sra_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
   5028   // CHECK-LABEL: @test_mm256_mask_sra_epi64
   5029   // CHECK: @llvm.x86.avx512.mask.psra.q.256
   5030   return _mm256_mask_sra_epi64(__W, __U, __A, __B);
   5031 }
   5032 
   5033 __m256i test_mm256_maskz_sra_epi64(__mmask8 __U, __m256i __A, __m128i __B) {
   5034   // CHECK-LABEL: @test_mm256_maskz_sra_epi64
   5035   // CHECK: @llvm.x86.avx512.mask.psra.q.256
   5036   return _mm256_maskz_sra_epi64(__U, __A, __B);
   5037 }
   5038 
   5039 __m128i test_mm_srai_epi64(__m128i __A) {
   5040   // CHECK-LABEL: @test_mm_srai_epi64
   5041   // CHECK: @llvm.x86.avx512.mask.psra.qi.128
   5042   return _mm_srai_epi64(__A, 5);
   5043 }
   5044 
   5045 __m128i test_mm_mask_srai_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
   5046   // CHECK-LABEL: @test_mm_mask_srai_epi64
   5047   // CHECK: @llvm.x86.avx512.mask.psra.qi.128
   5048   return _mm_mask_srai_epi64(__W, __U, __A, 5);
   5049 }
   5050 
   5051 __m128i test_mm_maskz_srai_epi64(__mmask8 __U, __m128i __A) {
   5052   // CHECK-LABEL: @test_mm_maskz_srai_epi64
   5053   // CHECK: @llvm.x86.avx512.mask.psra.qi.128
   5054   return _mm_maskz_srai_epi64(__U, __A, 5);
   5055 }
   5056 
   5057 __m256i test_mm256_srai_epi64(__m256i __A) {
   5058   // CHECK-LABEL: @test_mm256_srai_epi64
   5059   // CHECK: @llvm.x86.avx512.mask.psra.qi.256
   5060   return _mm256_srai_epi64(__A, 5);
   5061 }
   5062 
   5063 __m256i test_mm256_mask_srai_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
   5064   // CHECK-LABEL: @test_mm256_mask_srai_epi64
   5065   // CHECK: @llvm.x86.avx512.mask.psra.qi.256
   5066   return _mm256_mask_srai_epi64(__W, __U, __A, 5);
   5067 }
   5068 
   5069 __m256i test_mm256_maskz_srai_epi64(__mmask8 __U, __m256i __A) {
   5070   // CHECK-LABEL: @test_mm256_maskz_srai_epi64
   5071   // CHECK: @llvm.x86.avx512.mask.psra.qi.256
   5072   return _mm256_maskz_srai_epi64(__U, __A, 5);
   5073 }
   5074 
   5075 __m128i test_mm_ternarylogic_epi32(__m128i __A, __m128i __B, __m128i __C) {
   5076   // CHECK-LABEL: @test_mm_ternarylogic_epi32
   5077   // CHECK: @llvm.x86.avx512.mask.pternlog.d.128
   5078   return _mm_ternarylogic_epi32(__A, __B, __C, 4);
   5079 }
   5080 
   5081 __m128i test_mm_mask_ternarylogic_epi32(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) {
   5082   // CHECK-LABEL: @test_mm_mask_ternarylogic_epi32
   5083   // CHECK: @llvm.x86.avx512.mask.pternlog.d.128
   5084   return _mm_mask_ternarylogic_epi32(__A, __U, __B, __C, 4);
   5085 }
   5086 
   5087 __m128i test_mm_maskz_ternarylogic_epi32(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) {
   5088   // CHECK-LABEL: @test_mm_maskz_ternarylogic_epi32
   5089   // CHECK: @llvm.x86.avx512.maskz.pternlog.d.128
   5090   return _mm_maskz_ternarylogic_epi32(__U, __A, __B, __C, 4);
   5091 }
   5092 
   5093 __m256i test_mm256_ternarylogic_epi32(__m256i __A, __m256i __B, __m256i __C) {
   5094   // CHECK-LABEL: @test_mm256_ternarylogic_epi32
   5095   // CHECK: @llvm.x86.avx512.mask.pternlog.d.256
   5096   return _mm256_ternarylogic_epi32(__A, __B, __C, 4);
   5097 }
   5098 
   5099 __m256i test_mm256_mask_ternarylogic_epi32(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C) {
   5100   // CHECK-LABEL: @test_mm256_mask_ternarylogic_epi32
   5101   // CHECK: @llvm.x86.avx512.mask.pternlog.d.256
   5102   return _mm256_mask_ternarylogic_epi32(__A, __U, __B, __C, 4);
   5103 }
   5104 
   5105 __m256i test_mm256_maskz_ternarylogic_epi32(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C) {
   5106   // CHECK-LABEL: @test_mm256_maskz_ternarylogic_epi32
   5107   // CHECK: @llvm.x86.avx512.maskz.pternlog.d.256
   5108   return _mm256_maskz_ternarylogic_epi32(__U, __A, __B, __C, 4);
   5109 }
   5110 
   5111 __m128i test_mm_ternarylogic_epi64(__m128i __A, __m128i __B, __m128i __C) {
   5112   // CHECK-LABEL: @test_mm_ternarylogic_epi64
   5113   // CHECK: @llvm.x86.avx512.mask.pternlog.q.128
   5114   return _mm_ternarylogic_epi64(__A, __B, __C, 4);
   5115 }
   5116 
   5117 __m128i test_mm_mask_ternarylogic_epi64(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) {
   5118   // CHECK-LABEL: @test_mm_mask_ternarylogic_epi64
   5119   // CHECK: @llvm.x86.avx512.mask.pternlog.q.128
   5120   return _mm_mask_ternarylogic_epi64(__A, __U, __B, __C, 4);
   5121 }
   5122 
   5123 __m128i test_mm_maskz_ternarylogic_epi64(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) {
   5124   // CHECK-LABEL: @test_mm_maskz_ternarylogic_epi64
   5125   // CHECK: @llvm.x86.avx512.maskz.pternlog.q.128
   5126   return _mm_maskz_ternarylogic_epi64(__U, __A, __B, __C, 4);
   5127 }
   5128 
   5129 __m256i test_mm256_ternarylogic_epi64(__m256i __A, __m256i __B, __m256i __C) {
   5130   // CHECK-LABEL: @test_mm256_ternarylogic_epi64
   5131   // CHECK: @llvm.x86.avx512.mask.pternlog.q.256
   5132   return _mm256_ternarylogic_epi64(__A, __B, __C, 4);
   5133 }
   5134 
   5135 __m256i test_mm256_mask_ternarylogic_epi64(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C) {
   5136   // CHECK-LABEL: @test_mm256_mask_ternarylogic_epi64
   5137   // CHECK: @llvm.x86.avx512.mask.pternlog.q.256
   5138   return _mm256_mask_ternarylogic_epi64(__A, __U, __B, __C, 4);
   5139 }
   5140 
   5141 __m256i test_mm256_maskz_ternarylogic_epi64(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C) {
   5142   // CHECK-LABEL: @test_mm256_maskz_ternarylogic_epi64
   5143   // CHECK: @llvm.x86.avx512.maskz.pternlog.q.256
   5144   return _mm256_maskz_ternarylogic_epi64(__U, __A, __B, __C, 4);
   5145 }
   5146 __m256 test_mm256_shuffle_f32x4(__m256 __A, __m256 __B) {
   5147   // CHECK-LABEL: @test_mm256_shuffle_f32x4
   5148   // CHECK: @llvm.x86.avx512.mask.shuf.f32x4
   5149   return _mm256_shuffle_f32x4(__A, __B, 3);
   5150 }
   5151 
   5152 __m256 test_mm256_mask_shuffle_f32x4(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
   5153   // CHECK-LABEL: @test_mm256_mask_shuffle_f32x4
   5154   // CHECK: @llvm.x86.avx512.mask.shuf.f32x4
   5155   return _mm256_mask_shuffle_f32x4(__W, __U, __A, __B, 3);
   5156 }
   5157 
   5158 __m256 test_mm256_maskz_shuffle_f32x4(__mmask8 __U, __m256 __A, __m256 __B) {
   5159   // CHECK-LABEL: @test_mm256_maskz_shuffle_f32x4
   5160   // CHECK: @llvm.x86.avx512.mask.shuf.f32x4
   5161   return _mm256_maskz_shuffle_f32x4(__U, __A, __B, 3);
   5162 }
   5163 
   5164 __m256d test_mm256_shuffle_f64x2(__m256d __A, __m256d __B) {
   5165   // CHECK-LABEL: @test_mm256_shuffle_f64x2
   5166   // CHECK: @llvm.x86.avx512.mask.shuf.f64x2
   5167   return _mm256_shuffle_f64x2(__A, __B, 3);
   5168 }
   5169 
   5170 __m256d test_mm256_mask_shuffle_f64x2(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
   5171   // CHECK-LABEL: @test_mm256_mask_shuffle_f64x2
   5172   // CHECK: @llvm.x86.avx512.mask.shuf.f64x2
   5173   return _mm256_mask_shuffle_f64x2(__W, __U, __A, __B, 3);
   5174 }
   5175 
   5176 __m256d test_mm256_maskz_shuffle_f64x2(__mmask8 __U, __m256d __A, __m256d __B) {
   5177   // CHECK-LABEL: @test_mm256_maskz_shuffle_f64x2
   5178   // CHECK: @llvm.x86.avx512.mask.shuf.f64x2
   5179   return _mm256_maskz_shuffle_f64x2(__U, __A, __B, 3);
   5180 }
   5181 
   5182 __m256i test_mm256_shuffle_i32x4(__m256i __A, __m256i __B) {
   5183   // CHECK-LABEL: @test_mm256_shuffle_i32x4
   5184   // CHECK: @llvm.x86.avx512.mask.shuf.i32x4
   5185   return _mm256_shuffle_i32x4(__A, __B, 3);
   5186 }
   5187 
   5188 __m256i test_mm256_mask_shuffle_i32x4(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
   5189   // CHECK-LABEL: @test_mm256_mask_shuffle_i32x4
   5190   // CHECK: @llvm.x86.avx512.mask.shuf.i32x4
   5191   return _mm256_mask_shuffle_i32x4(__W, __U, __A, __B, 3);
   5192 }
   5193 
   5194 __m256i test_mm256_maskz_shuffle_i32x4(__mmask8 __U, __m256i __A, __m256i __B) {
   5195   // CHECK-LABEL: @test_mm256_maskz_shuffle_i32x4
   5196   // CHECK: @llvm.x86.avx512.mask.shuf.i32x4
   5197   return _mm256_maskz_shuffle_i32x4(__U, __A, __B, 3);
   5198 }
   5199 
   5200 __m256i test_mm256_shuffle_i64x2(__m256i __A, __m256i __B) {
   5201   // CHECK-LABEL: @test_mm256_shuffle_i64x2
   5202   // CHECK: @llvm.x86.avx512.mask.shuf.i64x2
   5203   return _mm256_shuffle_i64x2(__A, __B, 3);
   5204 }
   5205 
   5206 __m256i test_mm256_mask_shuffle_i64x2(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
   5207   // CHECK-LABEL: @test_mm256_mask_shuffle_i64x2
   5208   // CHECK: @llvm.x86.avx512.mask.shuf.i64x2
   5209   return _mm256_mask_shuffle_i64x2(__W, __U, __A, __B, 3);
   5210 }
   5211 
   5212 __m256i test_mm256_maskz_shuffle_i64x2(__mmask8 __U, __m256i __A, __m256i __B) {
   5213   // CHECK-LABEL: @test_mm256_maskz_shuffle_i64x2
   5214   // CHECK: @llvm.x86.avx512.mask.shuf.i64x2
   5215   return _mm256_maskz_shuffle_i64x2(__U, __A, __B, 3);
   5216 }
   5217 
   5218 __m128d test_mm_mask_shuffle_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   5219   // CHECK-LABEL: @test_mm_mask_shuffle_pd
   5220   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 1, i32 3>
   5221   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
   5222   return _mm_mask_shuffle_pd(__W, __U, __A, __B, 3);
   5223 }
   5224 
   5225 __m128d test_mm_maskz_shuffle_pd(__mmask8 __U, __m128d __A, __m128d __B) {
   5226   // CHECK-LABEL: @test_mm_maskz_shuffle_pd
   5227   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 1, i32 3>
   5228   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
   5229   return _mm_maskz_shuffle_pd(__U, __A, __B, 3);
   5230 }
   5231 
   5232 __m256d test_mm256_mask_shuffle_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
   5233   // CHECK-LABEL: @test_mm256_mask_shuffle_pd
   5234   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 1, i32 5, i32 2, i32 6>
   5235   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
   5236   return _mm256_mask_shuffle_pd(__W, __U, __A, __B, 3);
   5237 }
   5238 
   5239 __m256d test_mm256_maskz_shuffle_pd(__mmask8 __U, __m256d __A, __m256d __B) {
   5240   // CHECK-LABEL: @test_mm256_maskz_shuffle_pd
   5241   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 1, i32 5, i32 2, i32 6>
   5242   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
   5243   return _mm256_maskz_shuffle_pd(__U, __A, __B, 3);
   5244 }
   5245 
   5246 __m128 test_mm_mask_shuffle_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   5247   // CHECK-LABEL: @test_mm_mask_shuffle_ps
   5248   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 4, i32 4>
   5249   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
   5250   return _mm_mask_shuffle_ps(__W, __U, __A, __B, 4);
   5251 }
   5252 
   5253 __m128 test_mm_maskz_shuffle_ps(__mmask8 __U, __m128 __A, __m128 __B) {
   5254   // CHECK-LABEL: @test_mm_maskz_shuffle_ps
   5255   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 4, i32 4>
   5256   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
   5257   return _mm_maskz_shuffle_ps(__U, __A, __B, 4);
   5258 }
   5259 
   5260 __m256 test_mm256_mask_shuffle_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
   5261   // CHECK-LABEL: @test_mm256_mask_shuffle_ps
   5262   // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 8, i32 8, i32 4, i32 5, i32 12, i32 12>
   5263   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
   5264   return _mm256_mask_shuffle_ps(__W, __U, __A, __B, 4);
   5265 }
   5266 
   5267 __m256 test_mm256_maskz_shuffle_ps(__mmask8 __U, __m256 __A, __m256 __B) {
   5268   // CHECK-LABEL: @test_mm256_maskz_shuffle_ps
   5269   // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 8, i32 8, i32 4, i32 5, i32 12, i32 12>
   5270   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
   5271   return _mm256_maskz_shuffle_ps(__U, __A, __B, 4);
   5272 }
   5273 
   5274 __m128d test_mm_rsqrt14_pd(__m128d __A) {
   5275   // CHECK-LABEL: @test_mm_rsqrt14_pd
   5276   // CHECK: @llvm.x86.avx512.rsqrt14.pd.128
   5277   return _mm_rsqrt14_pd(__A);
   5278 }
   5279 
   5280 __m128d test_mm_mask_rsqrt14_pd(__m128d __W, __mmask8 __U, __m128d __A) {
   5281   // CHECK-LABEL: @test_mm_mask_rsqrt14_pd
   5282   // CHECK: @llvm.x86.avx512.rsqrt14.pd.128
   5283   return _mm_mask_rsqrt14_pd(__W, __U, __A);
   5284 }
   5285 
   5286 __m128d test_mm_maskz_rsqrt14_pd(__mmask8 __U, __m128d __A) {
   5287   // CHECK-LABEL: @test_mm_maskz_rsqrt14_pd
   5288   // CHECK: @llvm.x86.avx512.rsqrt14.pd.128
   5289   return _mm_maskz_rsqrt14_pd(__U, __A);
   5290 }
   5291 
   5292 __m256d test_mm256_rsqrt14_pd(__m256d __A) {
   5293   // CHECK-LABEL: @test_mm256_rsqrt14_pd
   5294   // CHECK: @llvm.x86.avx512.rsqrt14.pd.256
   5295   return _mm256_rsqrt14_pd(__A);
   5296 }
   5297 
   5298 __m256d test_mm256_mask_rsqrt14_pd(__m256d __W, __mmask8 __U, __m256d __A) {
   5299   // CHECK-LABEL: @test_mm256_mask_rsqrt14_pd
   5300   // CHECK: @llvm.x86.avx512.rsqrt14.pd.256
   5301   return _mm256_mask_rsqrt14_pd(__W, __U, __A);
   5302 }
   5303 
   5304 __m256d test_mm256_maskz_rsqrt14_pd(__mmask8 __U, __m256d __A) {
   5305   // CHECK-LABEL: @test_mm256_maskz_rsqrt14_pd
   5306   // CHECK: @llvm.x86.avx512.rsqrt14.pd.256
   5307   return _mm256_maskz_rsqrt14_pd(__U, __A);
   5308 }
   5309 
   5310 __m128 test_mm_rsqrt14_ps(__m128 __A) {
   5311   // CHECK-LABEL: @test_mm_rsqrt14_ps
   5312   // CHECK: @llvm.x86.avx512.rsqrt14.ps.128
   5313   return _mm_rsqrt14_ps(__A);
   5314 }
   5315 
   5316 __m128 test_mm_mask_rsqrt14_ps(__m128 __W, __mmask8 __U, __m128 __A) {
   5317   // CHECK-LABEL: @test_mm_mask_rsqrt14_ps
   5318   // CHECK: @llvm.x86.avx512.rsqrt14.ps.128
   5319   return _mm_mask_rsqrt14_ps(__W, __U, __A);
   5320 }
   5321 
   5322 __m128 test_mm_maskz_rsqrt14_ps(__mmask8 __U, __m128 __A) {
   5323   // CHECK-LABEL: @test_mm_maskz_rsqrt14_ps
   5324   // CHECK: @llvm.x86.avx512.rsqrt14.ps.128
   5325   return _mm_maskz_rsqrt14_ps(__U, __A);
   5326 }
   5327 
   5328 __m256 test_mm256_rsqrt14_ps(__m256 __A) {
   5329   // CHECK-LABEL: @test_mm256_rsqrt14_ps
   5330   // CHECK: @llvm.x86.avx512.rsqrt14.ps.256
   5331   return _mm256_rsqrt14_ps(__A);
   5332 }
   5333 
   5334 __m256 test_mm256_mask_rsqrt14_ps(__m256 __W, __mmask8 __U, __m256 __A) {
   5335   // CHECK-LABEL: @test_mm256_mask_rsqrt14_ps
   5336   // CHECK: @llvm.x86.avx512.rsqrt14.ps.256
   5337   return _mm256_mask_rsqrt14_ps(__W, __U, __A);
   5338 }
   5339 
   5340 __m256 test_mm256_maskz_rsqrt14_ps(__mmask8 __U, __m256 __A) {
   5341   // CHECK-LABEL: @test_mm256_maskz_rsqrt14_ps
   5342   // CHECK: @llvm.x86.avx512.rsqrt14.ps.256
   5343   return _mm256_maskz_rsqrt14_ps(__U, __A);
   5344 }
   5345 
   5346 __m256 test_mm256_broadcast_f32x4(__m128 __A) {
   5347   // CHECK-LABEL: @test_mm256_broadcast_f32x4
   5348   // CHECK: @llvm.x86.avx512.mask.broadcastf32x4
   5349   return _mm256_broadcast_f32x4(__A);
   5350 }
   5351 
   5352 __m256 test_mm256_mask_broadcast_f32x4(__m256 __O, __mmask8 __M, __m128 __A) {
   5353   // CHECK-LABEL: @test_mm256_mask_broadcast_f32x4
   5354   // CHECK: @llvm.x86.avx512.mask.broadcastf32x4
   5355   return _mm256_mask_broadcast_f32x4(__O, __M, __A);
   5356 }
   5357 
   5358 __m256 test_mm256_maskz_broadcast_f32x4(__mmask8 __M, __m128 __A) {
   5359   // CHECK-LABEL: @test_mm256_maskz_broadcast_f32x4
   5360   // CHECK: @llvm.x86.avx512.mask.broadcastf32x4
   5361   return _mm256_maskz_broadcast_f32x4(__M, __A);
   5362 }
   5363 
   5364 __m256i test_mm256_broadcast_i32x4(__m128i __A) {
   5365   // CHECK-LABEL: @test_mm256_broadcast_i32x4
   5366   // CHECK: @llvm.x86.avx512.mask.broadcasti32x4
   5367   return _mm256_broadcast_i32x4(__A);
   5368 }
   5369 
   5370 __m256i test_mm256_mask_broadcast_i32x4(__m256i __O, __mmask8 __M, __m128i __A) {
   5371   // CHECK-LABEL: @test_mm256_mask_broadcast_i32x4
   5372   // CHECK: @llvm.x86.avx512.mask.broadcasti32x4
   5373   return _mm256_mask_broadcast_i32x4(__O, __M, __A);
   5374 }
   5375 
   5376 __m256i test_mm256_maskz_broadcast_i32x4(__mmask8 __M, __m128i __A) {
   5377   // CHECK-LABEL: @test_mm256_maskz_broadcast_i32x4
   5378   // CHECK: @llvm.x86.avx512.mask.broadcasti32x4
   5379   return _mm256_maskz_broadcast_i32x4(__M, __A);
   5380 }
   5381 
   5382 __m256d test_mm256_mask_broadcastsd_pd(__m256d __O, __mmask8 __M, __m128d __A) {
   5383   // CHECK-LABEL: @test_mm256_mask_broadcastsd_pd
   5384   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <4 x i32> zeroinitializer
   5385   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
   5386   return _mm256_mask_broadcastsd_pd(__O, __M, __A);
   5387 }
   5388 
   5389 __m256d test_mm256_maskz_broadcastsd_pd(__mmask8 __M, __m128d __A) {
   5390   // CHECK-LABEL: @test_mm256_maskz_broadcastsd_pd
   5391   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <4 x i32> zeroinitializer
   5392   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
   5393   return _mm256_maskz_broadcastsd_pd(__M, __A);
   5394 }
   5395 
   5396 __m128 test_mm_mask_broadcastss_ps(__m128 __O, __mmask8 __M, __m128 __A) {
   5397   // CHECK-LABEL: @test_mm_mask_broadcastss_ps
   5398   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> zeroinitializer
   5399   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
   5400   return _mm_mask_broadcastss_ps(__O, __M, __A);
   5401 }
   5402 
   5403 __m128 test_mm_maskz_broadcastss_ps(__mmask8 __M, __m128 __A) {
   5404   // CHECK-LABEL: @test_mm_maskz_broadcastss_ps
   5405   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> zeroinitializer
   5406   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
   5407   return _mm_maskz_broadcastss_ps(__M, __A);
   5408 }
   5409 
   5410 __m256 test_mm256_mask_broadcastss_ps(__m256 __O, __mmask8 __M, __m128 __A) {
   5411   // CHECK-LABEL: @test_mm256_mask_broadcastss_ps
   5412   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <8 x i32> zeroinitializer
   5413   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
   5414   return _mm256_mask_broadcastss_ps(__O, __M, __A);
   5415 }
   5416 
   5417 __m256 test_mm256_maskz_broadcastss_ps(__mmask8 __M, __m128 __A) {
   5418   // CHECK-LABEL: @test_mm256_maskz_broadcastss_ps
   5419   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <8 x i32> zeroinitializer
   5420   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
   5421   return _mm256_maskz_broadcastss_ps(__M, __A);
   5422 }
   5423 
   5424 __m128i test_mm_mask_broadcastd_epi32(__m128i __O, __mmask8 __M, __m128i __A) {
   5425   // CHECK-LABEL: @test_mm_mask_broadcastd_epi32
   5426   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> zeroinitializer
   5427   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
   5428   return _mm_mask_broadcastd_epi32(__O, __M, __A);
   5429 }
   5430 
   5431 __m128i test_mm_maskz_broadcastd_epi32(__mmask8 __M, __m128i __A) {
   5432   // CHECK-LABEL: @test_mm_maskz_broadcastd_epi32
   5433   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> zeroinitializer
   5434   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
   5435   return _mm_maskz_broadcastd_epi32(__M, __A);
   5436 }
   5437 
   5438 __m256i test_mm256_mask_broadcastd_epi32(__m256i __O, __mmask8 __M, __m128i __A) {
   5439   // CHECK-LABEL: @test_mm256_mask_broadcastd_epi32
   5440   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <8 x i32> zeroinitializer
   5441   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
   5442   return _mm256_mask_broadcastd_epi32(__O, __M, __A);
   5443 }
   5444 
   5445 __m256i test_mm256_maskz_broadcastd_epi32(__mmask8 __M, __m128i __A) {
   5446   // CHECK-LABEL: @test_mm256_maskz_broadcastd_epi32
   5447   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <8 x i32> zeroinitializer
   5448   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
   5449   return _mm256_maskz_broadcastd_epi32(__M, __A);
   5450 }
   5451 
   5452 __m128i test_mm_mask_broadcastq_epi64(__m128i __O, __mmask8 __M, __m128i __A) {
   5453   // CHECK-LABEL: @test_mm_mask_broadcastq_epi64
   5454   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> zeroinitializer
   5455   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
   5456   return _mm_mask_broadcastq_epi64(__O, __M, __A);
   5457 }
   5458 
   5459 __m128i test_mm_maskz_broadcastq_epi64(__mmask8 __M, __m128i __A) {
   5460   // CHECK-LABEL: @test_mm_maskz_broadcastq_epi64
   5461   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> zeroinitializer
   5462   // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
   5463   return _mm_maskz_broadcastq_epi64(__M, __A);
   5464 }
   5465 
   5466 __m256i test_mm256_mask_broadcastq_epi64(__m256i __O, __mmask8 __M, __m128i __A) {
   5467   // CHECK-LABEL: @test_mm256_mask_broadcastq_epi64
   5468   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <4 x i32> zeroinitializer
   5469   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
   5470   return _mm256_mask_broadcastq_epi64(__O, __M, __A);
   5471 }
   5472 
   5473 __m256i test_mm256_maskz_broadcastq_epi64(__mmask8 __M, __m128i __A) {
   5474   // CHECK-LABEL: @test_mm256_maskz_broadcastq_epi64
   5475   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <4 x i32> zeroinitializer
   5476   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
   5477   return _mm256_maskz_broadcastq_epi64(__M, __A);
   5478 }
   5479 
   5480 __m128i test_mm_cvtsepi32_epi8(__m128i __A) {
   5481   // CHECK-LABEL: @test_mm_cvtsepi32_epi8
   5482   // CHECK: @llvm.x86.avx512.mask.pmovs.db.128
   5483   return _mm_cvtsepi32_epi8(__A);
   5484 }
   5485 
   5486 __m128i test_mm_mask_cvtsepi32_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
   5487   // CHECK-LABEL: @test_mm_mask_cvtsepi32_epi8
   5488   // CHECK: @llvm.x86.avx512.mask.pmovs.db.128
   5489   return _mm_mask_cvtsepi32_epi8(__O, __M, __A);
   5490 }
   5491 
   5492 __m128i test_mm_maskz_cvtsepi32_epi8(__mmask8 __M, __m128i __A) {
   5493   // CHECK-LABEL: @test_mm_maskz_cvtsepi32_epi8
   5494   // CHECK: @llvm.x86.avx512.mask.pmovs.db.128
   5495   return _mm_maskz_cvtsepi32_epi8(__M, __A);
   5496 }
   5497 
   5498 void test_mm_mask_cvtsepi32_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
   5499   // CHECK-LABEL: @test_mm_mask_cvtsepi32_storeu_epi8
   5500   // CHECK: @llvm.x86.avx512.mask.pmovs.db.mem.128
   5501   return _mm_mask_cvtsepi32_storeu_epi8(__P, __M, __A);
   5502 }
   5503 
   5504 __m128i test_mm256_cvtsepi32_epi8(__m256i __A) {
   5505   // CHECK-LABEL: @test_mm256_cvtsepi32_epi8
   5506   // CHECK: @llvm.x86.avx512.mask.pmovs.db.256
   5507   return _mm256_cvtsepi32_epi8(__A);
   5508 }
   5509 
   5510 __m128i test_mm256_mask_cvtsepi32_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
   5511   // CHECK-LABEL: @test_mm256_mask_cvtsepi32_epi8
   5512   // CHECK: @llvm.x86.avx512.mask.pmovs.db.256
   5513   return _mm256_mask_cvtsepi32_epi8(__O, __M, __A);
   5514 }
   5515 
   5516 __m128i test_mm256_maskz_cvtsepi32_epi8(__mmask8 __M, __m256i __A) {
   5517   // CHECK-LABEL: @test_mm256_maskz_cvtsepi32_epi8
   5518   // CHECK: @llvm.x86.avx512.mask.pmovs.db.256
   5519   return _mm256_maskz_cvtsepi32_epi8(__M, __A);
   5520 }
   5521 
   5522 void test_mm256_mask_cvtsepi32_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
   5523   // CHECK-LABEL: @test_mm256_mask_cvtsepi32_storeu_epi8
   5524   // CHECK: @llvm.x86.avx512.mask.pmovs.db.mem.256
   5525   return _mm256_mask_cvtsepi32_storeu_epi8(__P, __M, __A);
   5526 }
   5527 
   5528 __m128i test_mm_cvtsepi32_epi16(__m128i __A) {
   5529   // CHECK-LABEL: @test_mm_cvtsepi32_epi16
   5530   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.128
   5531   return _mm_cvtsepi32_epi16(__A);
   5532 }
   5533 
   5534 __m128i test_mm_mask_cvtsepi32_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
   5535   // CHECK-LABEL: @test_mm_mask_cvtsepi32_epi16
   5536   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.128
   5537   return _mm_mask_cvtsepi32_epi16(__O, __M, __A);
   5538 }
   5539 
   5540 __m128i test_mm_maskz_cvtsepi32_epi16(__mmask8 __M, __m128i __A) {
   5541   // CHECK-LABEL: @test_mm_maskz_cvtsepi32_epi16
   5542   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.128
   5543   return _mm_maskz_cvtsepi32_epi16(__M, __A);
   5544 }
   5545 
   5546 void test_mm_mask_cvtsepi32_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
   5547   // CHECK-LABEL: @test_mm_mask_cvtsepi32_storeu_epi16
   5548   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.mem.128
   5549   return _mm_mask_cvtsepi32_storeu_epi16(__P, __M, __A);
   5550 }
   5551 
   5552 __m128i test_mm256_cvtsepi32_epi16(__m256i __A) {
   5553   // CHECK-LABEL: @test_mm256_cvtsepi32_epi16
   5554   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.256
   5555   return _mm256_cvtsepi32_epi16(__A);
   5556 }
   5557 
   5558 __m128i test_mm256_mask_cvtsepi32_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
   5559   // CHECK-LABEL: @test_mm256_mask_cvtsepi32_epi16
   5560   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.256
   5561   return _mm256_mask_cvtsepi32_epi16(__O, __M, __A);
   5562 }
   5563 
   5564 __m128i test_mm256_maskz_cvtsepi32_epi16(__mmask8 __M, __m256i __A) {
   5565   // CHECK-LABEL: @test_mm256_maskz_cvtsepi32_epi16
   5566   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.256
   5567   return _mm256_maskz_cvtsepi32_epi16(__M, __A);
   5568 }
   5569 
   5570 void test_mm256_mask_cvtsepi32_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) {
   5571   // CHECK-LABEL: @test_mm256_mask_cvtsepi32_storeu_epi16
   5572   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.mem.256
   5573   return _mm256_mask_cvtsepi32_storeu_epi16(__P, __M, __A);
   5574 }
   5575 
   5576 __m128i test_mm_cvtsepi64_epi8(__m128i __A) {
   5577   // CHECK-LABEL: @test_mm_cvtsepi64_epi8
   5578   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.128
   5579   return _mm_cvtsepi64_epi8(__A);
   5580 }
   5581 
   5582 __m128i test_mm_mask_cvtsepi64_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
   5583   // CHECK-LABEL: @test_mm_mask_cvtsepi64_epi8
   5584   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.128
   5585   return _mm_mask_cvtsepi64_epi8(__O, __M, __A);
   5586 }
   5587 
   5588 __m128i test_mm_maskz_cvtsepi64_epi8(__mmask8 __M, __m128i __A) {
   5589   // CHECK-LABEL: @test_mm_maskz_cvtsepi64_epi8
   5590   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.128
   5591   return _mm_maskz_cvtsepi64_epi8(__M, __A);
   5592 }
   5593 
   5594 void test_mm_mask_cvtsepi64_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
   5595   // CHECK-LABEL: @test_mm_mask_cvtsepi64_storeu_epi8
   5596   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.mem.128
   5597   return _mm_mask_cvtsepi64_storeu_epi8(__P, __M, __A);
   5598 }
   5599 
   5600 __m128i test_mm256_cvtsepi64_epi8(__m256i __A) {
   5601   // CHECK-LABEL: @test_mm256_cvtsepi64_epi8
   5602   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.256
   5603   return _mm256_cvtsepi64_epi8(__A);
   5604 }
   5605 
   5606 __m128i test_mm256_mask_cvtsepi64_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
   5607   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_epi8
   5608   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.256
   5609   return _mm256_mask_cvtsepi64_epi8(__O, __M, __A);
   5610 }
   5611 
   5612 __m128i test_mm256_maskz_cvtsepi64_epi8(__mmask8 __M, __m256i __A) {
   5613   // CHECK-LABEL: @test_mm256_maskz_cvtsepi64_epi8
   5614   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.256
   5615   return _mm256_maskz_cvtsepi64_epi8(__M, __A);
   5616 }
   5617 
   5618 void test_mm256_mask_cvtsepi64_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
   5619   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_storeu_epi8
   5620   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.mem.256
   5621   return _mm256_mask_cvtsepi64_storeu_epi8(__P, __M, __A);
   5622 }
   5623 
   5624 __m128i test_mm_cvtsepi64_epi32(__m128i __A) {
   5625   // CHECK-LABEL: @test_mm_cvtsepi64_epi32
   5626   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.128
   5627   return _mm_cvtsepi64_epi32(__A);
   5628 }
   5629 
   5630 __m128i test_mm_mask_cvtsepi64_epi32(__m128i __O, __mmask8 __M, __m128i __A) {
   5631   // CHECK-LABEL: @test_mm_mask_cvtsepi64_epi32
   5632   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.128
   5633   return _mm_mask_cvtsepi64_epi32(__O, __M, __A);
   5634 }
   5635 
   5636 __m128i test_mm_maskz_cvtsepi64_epi32(__mmask8 __M, __m128i __A) {
   5637   // CHECK-LABEL: @test_mm_maskz_cvtsepi64_epi32
   5638   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.128
   5639   return _mm_maskz_cvtsepi64_epi32(__M, __A);
   5640 }
   5641 
   5642 void test_mm_mask_cvtsepi64_storeu_epi32(void * __P, __mmask8 __M, __m128i __A) {
   5643   // CHECK-LABEL: @test_mm_mask_cvtsepi64_storeu_epi32
   5644   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.mem.128
   5645   return _mm_mask_cvtsepi64_storeu_epi32(__P, __M, __A);
   5646 }
   5647 
   5648 __m128i test_mm256_cvtsepi64_epi32(__m256i __A) {
   5649   // CHECK-LABEL: @test_mm256_cvtsepi64_epi32
   5650   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.256
   5651   return _mm256_cvtsepi64_epi32(__A);
   5652 }
   5653 
   5654 __m128i test_mm256_mask_cvtsepi64_epi32(__m128i __O, __mmask8 __M, __m256i __A) {
   5655   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_epi32
   5656   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.256
   5657   return _mm256_mask_cvtsepi64_epi32(__O, __M, __A);
   5658 }
   5659 
   5660 __m128i test_mm256_maskz_cvtsepi64_epi32(__mmask8 __M, __m256i __A) {
   5661   // CHECK-LABEL: @test_mm256_maskz_cvtsepi64_epi32
   5662   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.256
   5663   return _mm256_maskz_cvtsepi64_epi32(__M, __A);
   5664 }
   5665 
   5666 void test_mm256_mask_cvtsepi64_storeu_epi32(void * __P, __mmask8 __M, __m256i __A) {
   5667   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_storeu_epi32
   5668   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.mem.256
   5669   return _mm256_mask_cvtsepi64_storeu_epi32(__P, __M, __A);
   5670 }
   5671 
   5672 __m128i test_mm_cvtsepi64_epi16(__m128i __A) {
   5673   // CHECK-LABEL: @test_mm_cvtsepi64_epi16
   5674   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.128
   5675   return _mm_cvtsepi64_epi16(__A);
   5676 }
   5677 
   5678 __m128i test_mm_mask_cvtsepi64_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
   5679   // CHECK-LABEL: @test_mm_mask_cvtsepi64_epi16
   5680   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.128
   5681   return _mm_mask_cvtsepi64_epi16(__O, __M, __A);
   5682 }
   5683 
   5684 __m128i test_mm_maskz_cvtsepi64_epi16(__mmask8 __M, __m128i __A) {
   5685   // CHECK-LABEL: @test_mm_maskz_cvtsepi64_epi16
   5686   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.128
   5687   return _mm_maskz_cvtsepi64_epi16(__M, __A);
   5688 }
   5689 
   5690 void test_mm_mask_cvtsepi64_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
   5691   // CHECK-LABEL: @test_mm_mask_cvtsepi64_storeu_epi16
   5692   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.mem.128
   5693   return _mm_mask_cvtsepi64_storeu_epi16(__P, __M, __A);
   5694 }
   5695 
   5696 __m128i test_mm256_cvtsepi64_epi16(__m256i __A) {
   5697   // CHECK-LABEL: @test_mm256_cvtsepi64_epi16
   5698   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.256
   5699   return _mm256_cvtsepi64_epi16(__A);
   5700 }
   5701 
   5702 __m128i test_mm256_mask_cvtsepi64_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
   5703   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_epi16
   5704   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.256
   5705   return _mm256_mask_cvtsepi64_epi16(__O, __M, __A);
   5706 }
   5707 
   5708 __m128i test_mm256_maskz_cvtsepi64_epi16(__mmask8 __M, __m256i __A) {
   5709   // CHECK-LABEL: @test_mm256_maskz_cvtsepi64_epi16
   5710   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.256
   5711   return _mm256_maskz_cvtsepi64_epi16(__M, __A);
   5712 }
   5713 
   5714 void test_mm256_mask_cvtsepi64_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) {
   5715   // CHECK-LABEL: @test_mm256_mask_cvtsepi64_storeu_epi16
   5716   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.mem.256
   5717   return _mm256_mask_cvtsepi64_storeu_epi16(__P, __M, __A);
   5718 }
   5719 
   5720 __m128i test_mm_cvtusepi32_epi8(__m128i __A) {
   5721   // CHECK-LABEL: @test_mm_cvtusepi32_epi8
   5722   // CHECK: @llvm.x86.avx512.mask.pmovus.db.128
   5723   return _mm_cvtusepi32_epi8(__A);
   5724 }
   5725 
   5726 __m128i test_mm_mask_cvtusepi32_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
   5727   // CHECK-LABEL: @test_mm_mask_cvtusepi32_epi8
   5728   // CHECK: @llvm.x86.avx512.mask.pmovus.db.128
   5729   return _mm_mask_cvtusepi32_epi8(__O, __M, __A);
   5730 }
   5731 
   5732 __m128i test_mm_maskz_cvtusepi32_epi8(__mmask8 __M, __m128i __A) {
   5733   // CHECK-LABEL: @test_mm_maskz_cvtusepi32_epi8
   5734   // CHECK: @llvm.x86.avx512.mask.pmovus.db.128
   5735   return _mm_maskz_cvtusepi32_epi8(__M, __A);
   5736 }
   5737 
   5738 void test_mm_mask_cvtusepi32_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
   5739   // CHECK-LABEL: @test_mm_mask_cvtusepi32_storeu_epi8
   5740   // CHECK: @llvm.x86.avx512.mask.pmovus.db.mem.128
   5741   return _mm_mask_cvtusepi32_storeu_epi8(__P, __M, __A);
   5742 }
   5743 
   5744 __m128i test_mm256_cvtusepi32_epi8(__m256i __A) {
   5745   // CHECK-LABEL: @test_mm256_cvtusepi32_epi8
   5746   // CHECK: @llvm.x86.avx512.mask.pmovus.db.256
   5747   return _mm256_cvtusepi32_epi8(__A);
   5748 }
   5749 
   5750 __m128i test_mm256_mask_cvtusepi32_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
   5751   // CHECK-LABEL: @test_mm256_mask_cvtusepi32_epi8
   5752   // CHECK: @llvm.x86.avx512.mask.pmovus.db.256
   5753   return _mm256_mask_cvtusepi32_epi8(__O, __M, __A);
   5754 }
   5755 
   5756 __m128i test_mm256_maskz_cvtusepi32_epi8(__mmask8 __M, __m256i __A) {
   5757   // CHECK-LABEL: @test_mm256_maskz_cvtusepi32_epi8
   5758   // CHECK: @llvm.x86.avx512.mask.pmovus.db.256
   5759   return _mm256_maskz_cvtusepi32_epi8(__M, __A);
   5760 }
   5761 
   5762 void test_mm256_mask_cvtusepi32_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
   5763   // CHECK-LABEL: @test_mm256_mask_cvtusepi32_storeu_epi8
   5764   // CHECK: @llvm.x86.avx512.mask.pmovus.db.mem.256
   5765   return _mm256_mask_cvtusepi32_storeu_epi8(__P, __M, __A);
   5766 }
   5767 
   5768 __m128i test_mm_cvtusepi32_epi16(__m128i __A) {
   5769   // CHECK-LABEL: @test_mm_cvtusepi32_epi16
   5770   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.128
   5771   return _mm_cvtusepi32_epi16(__A);
   5772 }
   5773 
   5774 __m128i test_mm_mask_cvtusepi32_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
   5775   // CHECK-LABEL: @test_mm_mask_cvtusepi32_epi16
   5776   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.128
   5777   return _mm_mask_cvtusepi32_epi16(__O, __M, __A);
   5778 }
   5779 
   5780 __m128i test_mm_maskz_cvtusepi32_epi16(__mmask8 __M, __m128i __A) {
   5781   // CHECK-LABEL: @test_mm_maskz_cvtusepi32_epi16
   5782   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.128
   5783   return _mm_maskz_cvtusepi32_epi16(__M, __A);
   5784 }
   5785 
   5786 void test_mm_mask_cvtusepi32_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
   5787   // CHECK-LABEL: @test_mm_mask_cvtusepi32_storeu_epi16
   5788   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.mem.128
   5789   return _mm_mask_cvtusepi32_storeu_epi16(__P, __M, __A);
   5790 }
   5791 
   5792 __m128i test_mm256_cvtusepi32_epi16(__m256i __A) {
   5793   // CHECK-LABEL: @test_mm256_cvtusepi32_epi16
   5794   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.256
   5795   return _mm256_cvtusepi32_epi16(__A);
   5796 }
   5797 
   5798 __m128i test_mm256_mask_cvtusepi32_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
   5799   // CHECK-LABEL: @test_mm256_mask_cvtusepi32_epi16
   5800   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.256
   5801   return _mm256_mask_cvtusepi32_epi16(__O, __M, __A);
   5802 }
   5803 
   5804 __m128i test_mm256_maskz_cvtusepi32_epi16(__mmask8 __M, __m256i __A) {
   5805   // CHECK-LABEL: @test_mm256_maskz_cvtusepi32_epi16
   5806   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.256
   5807   return _mm256_maskz_cvtusepi32_epi16(__M, __A);
   5808 }
   5809 
   5810 void test_mm256_mask_cvtusepi32_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) {
   5811   // CHECK-LABEL: @test_mm256_mask_cvtusepi32_storeu_epi16
   5812   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.mem.256
   5813   return _mm256_mask_cvtusepi32_storeu_epi16(__P, __M, __A);
   5814 }
   5815 
   5816 __m128i test_mm_cvtusepi64_epi8(__m128i __A) {
   5817   // CHECK-LABEL: @test_mm_cvtusepi64_epi8
   5818   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.128
   5819   return _mm_cvtusepi64_epi8(__A);
   5820 }
   5821 
   5822 __m128i test_mm_mask_cvtusepi64_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
   5823   // CHECK-LABEL: @test_mm_mask_cvtusepi64_epi8
   5824   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.128
   5825   return _mm_mask_cvtusepi64_epi8(__O, __M, __A);
   5826 }
   5827 
   5828 __m128i test_mm_maskz_cvtusepi64_epi8(__mmask8 __M, __m128i __A) {
   5829   // CHECK-LABEL: @test_mm_maskz_cvtusepi64_epi8
   5830   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.128
   5831   return _mm_maskz_cvtusepi64_epi8(__M, __A);
   5832 }
   5833 
   5834 void test_mm_mask_cvtusepi64_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
   5835   // CHECK-LABEL: @test_mm_mask_cvtusepi64_storeu_epi8
   5836   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.mem.128
   5837   return _mm_mask_cvtusepi64_storeu_epi8(__P, __M, __A);
   5838 }
   5839 
   5840 __m128i test_mm256_cvtusepi64_epi8(__m256i __A) {
   5841   // CHECK-LABEL: @test_mm256_cvtusepi64_epi8
   5842   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.256
   5843   return _mm256_cvtusepi64_epi8(__A);
   5844 }
   5845 
   5846 __m128i test_mm256_mask_cvtusepi64_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
   5847   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_epi8
   5848   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.256
   5849   return _mm256_mask_cvtusepi64_epi8(__O, __M, __A);
   5850 }
   5851 
   5852 __m128i test_mm256_maskz_cvtusepi64_epi8(__mmask8 __M, __m256i __A) {
   5853   // CHECK-LABEL: @test_mm256_maskz_cvtusepi64_epi8
   5854   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.256
   5855   return _mm256_maskz_cvtusepi64_epi8(__M, __A);
   5856 }
   5857 
   5858 void test_mm256_mask_cvtusepi64_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
   5859   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_storeu_epi8
   5860   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.mem.256
   5861   return _mm256_mask_cvtusepi64_storeu_epi8(__P, __M, __A);
   5862 }
   5863 
   5864 __m128i test_mm_cvtusepi64_epi32(__m128i __A) {
   5865   // CHECK-LABEL: @test_mm_cvtusepi64_epi32
   5866   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.128
   5867   return _mm_cvtusepi64_epi32(__A);
   5868 }
   5869 
   5870 __m128i test_mm_mask_cvtusepi64_epi32(__m128i __O, __mmask8 __M, __m128i __A) {
   5871   // CHECK-LABEL: @test_mm_mask_cvtusepi64_epi32
   5872   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.128
   5873   return _mm_mask_cvtusepi64_epi32(__O, __M, __A);
   5874 }
   5875 
   5876 __m128i test_mm_maskz_cvtusepi64_epi32(__mmask8 __M, __m128i __A) {
   5877   // CHECK-LABEL: @test_mm_maskz_cvtusepi64_epi32
   5878   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.128
   5879   return _mm_maskz_cvtusepi64_epi32(__M, __A);
   5880 }
   5881 
   5882 void test_mm_mask_cvtusepi64_storeu_epi32(void * __P, __mmask8 __M, __m128i __A) {
   5883   // CHECK-LABEL: @test_mm_mask_cvtusepi64_storeu_epi32
   5884   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.mem.128
   5885   return _mm_mask_cvtusepi64_storeu_epi32(__P, __M, __A);
   5886 }
   5887 
   5888 __m128i test_mm256_cvtusepi64_epi32(__m256i __A) {
   5889   // CHECK-LABEL: @test_mm256_cvtusepi64_epi32
   5890   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.256
   5891   return _mm256_cvtusepi64_epi32(__A);
   5892 }
   5893 
   5894 __m128i test_mm256_mask_cvtusepi64_epi32(__m128i __O, __mmask8 __M, __m256i __A) {
   5895   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_epi32
   5896   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.256
   5897   return _mm256_mask_cvtusepi64_epi32(__O, __M, __A);
   5898 }
   5899 
   5900 __m128i test_mm256_maskz_cvtusepi64_epi32(__mmask8 __M, __m256i __A) {
   5901   // CHECK-LABEL: @test_mm256_maskz_cvtusepi64_epi32
   5902   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.256
   5903   return _mm256_maskz_cvtusepi64_epi32(__M, __A);
   5904 }
   5905 
   5906 void test_mm256_mask_cvtusepi64_storeu_epi32(void * __P, __mmask8 __M, __m256i __A) {
   5907   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_storeu_epi32
   5908   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.mem.256
   5909   return _mm256_mask_cvtusepi64_storeu_epi32(__P, __M, __A);
   5910 }
   5911 
   5912 __m128i test_mm_cvtusepi64_epi16(__m128i __A) {
   5913   // CHECK-LABEL: @test_mm_cvtusepi64_epi16
   5914   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.128
   5915   return _mm_cvtusepi64_epi16(__A);
   5916 }
   5917 
   5918 __m128i test_mm_mask_cvtusepi64_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
   5919   // CHECK-LABEL: @test_mm_mask_cvtusepi64_epi16
   5920   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.128
   5921   return _mm_mask_cvtusepi64_epi16(__O, __M, __A);
   5922 }
   5923 
   5924 __m128i test_mm_maskz_cvtusepi64_epi16(__mmask8 __M, __m128i __A) {
   5925   // CHECK-LABEL: @test_mm_maskz_cvtusepi64_epi16
   5926   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.128
   5927   return _mm_maskz_cvtusepi64_epi16(__M, __A);
   5928 }
   5929 
   5930 void test_mm_mask_cvtusepi64_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
   5931   // CHECK-LABEL: @test_mm_mask_cvtusepi64_storeu_epi16
   5932   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.mem.128
   5933   return _mm_mask_cvtusepi64_storeu_epi16(__P, __M, __A);
   5934 }
   5935 
   5936 __m128i test_mm256_cvtusepi64_epi16(__m256i __A) {
   5937   // CHECK-LABEL: @test_mm256_cvtusepi64_epi16
   5938   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.256
   5939   return _mm256_cvtusepi64_epi16(__A);
   5940 }
   5941 
   5942 __m128i test_mm256_mask_cvtusepi64_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
   5943   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_epi16
   5944   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.256
   5945   return _mm256_mask_cvtusepi64_epi16(__O, __M, __A);
   5946 }
   5947 
   5948 __m128i test_mm256_maskz_cvtusepi64_epi16(__mmask8 __M, __m256i __A) {
   5949   // CHECK-LABEL: @test_mm256_maskz_cvtusepi64_epi16
   5950   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.256
   5951   return _mm256_maskz_cvtusepi64_epi16(__M, __A);
   5952 }
   5953 
   5954 void test_mm256_mask_cvtusepi64_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) {
   5955   // CHECK-LABEL: @test_mm256_mask_cvtusepi64_storeu_epi16
   5956   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.mem.256
   5957   return _mm256_mask_cvtusepi64_storeu_epi16(__P, __M, __A);
   5958 }
   5959 
   5960 __m128i test_mm_cvtepi32_epi8(__m128i __A) {
   5961   // CHECK-LABEL: @test_mm_cvtepi32_epi8
   5962   // CHECK: @llvm.x86.avx512.mask.pmov.db.128
   5963   return _mm_cvtepi32_epi8(__A);
   5964 }
   5965 
   5966 __m128i test_mm_mask_cvtepi32_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
   5967   // CHECK-LABEL: @test_mm_mask_cvtepi32_epi8
   5968   // CHECK: @llvm.x86.avx512.mask.pmov.db.128
   5969   return _mm_mask_cvtepi32_epi8(__O, __M, __A);
   5970 }
   5971 
   5972 __m128i test_mm_maskz_cvtepi32_epi8(__mmask8 __M, __m128i __A) {
   5973   // CHECK-LABEL: @test_mm_maskz_cvtepi32_epi8
   5974   // CHECK: @llvm.x86.avx512.mask.pmov.db.128
   5975   return _mm_maskz_cvtepi32_epi8(__M, __A);
   5976 }
   5977 
   5978 void test_mm_mask_cvtepi32_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
   5979   // CHECK-LABEL: @test_mm_mask_cvtepi32_storeu_epi8
   5980   // CHECK: @llvm.x86.avx512.mask.pmov.db.mem.128
   5981   return _mm_mask_cvtepi32_storeu_epi8(__P, __M, __A);
   5982 }
   5983 
   5984 __m128i test_mm256_cvtepi32_epi8(__m256i __A) {
   5985   // CHECK-LABEL: @test_mm256_cvtepi32_epi8
   5986   // CHECK: @llvm.x86.avx512.mask.pmov.db.256
   5987   return _mm256_cvtepi32_epi8(__A);
   5988 }
   5989 
   5990 __m128i test_mm256_mask_cvtepi32_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
   5991   // CHECK-LABEL: @test_mm256_mask_cvtepi32_epi8
   5992   // CHECK: @llvm.x86.avx512.mask.pmov.db.256
   5993   return _mm256_mask_cvtepi32_epi8(__O, __M, __A);
   5994 }
   5995 
   5996 __m128i test_mm256_maskz_cvtepi32_epi8(__mmask8 __M, __m256i __A) {
   5997   // CHECK-LABEL: @test_mm256_maskz_cvtepi32_epi8
   5998   // CHECK: @llvm.x86.avx512.mask.pmov.db.256
   5999   return _mm256_maskz_cvtepi32_epi8(__M, __A);
   6000 }
   6001 
   6002 void test_mm256_mask_cvtepi32_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
   6003   // CHECK-LABEL: @test_mm256_mask_cvtepi32_storeu_epi8
   6004   // CHECK: @llvm.x86.avx512.mask.pmov.db.mem.256
   6005   return _mm256_mask_cvtepi32_storeu_epi8(__P, __M, __A);
   6006 }
   6007 
   6008 __m128i test_mm_cvtepi32_epi16(__m128i __A) {
   6009   // CHECK-LABEL: @test_mm_cvtepi32_epi16
   6010   // CHECK: @llvm.x86.avx512.mask.pmov.dw.128
   6011   return _mm_cvtepi32_epi16(__A);
   6012 }
   6013 
   6014 __m128i test_mm_mask_cvtepi32_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
   6015   // CHECK-LABEL: @test_mm_mask_cvtepi32_epi16
   6016   // CHECK: @llvm.x86.avx512.mask.pmov.dw.128
   6017   return _mm_mask_cvtepi32_epi16(__O, __M, __A);
   6018 }
   6019 
   6020 __m128i test_mm_maskz_cvtepi32_epi16(__mmask8 __M, __m128i __A) {
   6021   // CHECK-LABEL: @test_mm_maskz_cvtepi32_epi16
   6022   // CHECK: @llvm.x86.avx512.mask.pmov.dw.128
   6023   return _mm_maskz_cvtepi32_epi16(__M, __A);
   6024 }
   6025 
   6026 void test_mm_mask_cvtepi32_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
   6027   // CHECK-LABEL: @test_mm_mask_cvtepi32_storeu_epi16
   6028   // CHECK: @llvm.x86.avx512.mask.pmov.dw.mem.128
   6029   return _mm_mask_cvtepi32_storeu_epi16(__P, __M, __A);
   6030 }
   6031 
   6032 __m128i test_mm256_cvtepi32_epi16(__m256i __A) {
   6033   // CHECK-LABEL: @test_mm256_cvtepi32_epi16
   6034   // CHECK: @llvm.x86.avx512.mask.pmov.dw.256
   6035   return _mm256_cvtepi32_epi16(__A);
   6036 }
   6037 
   6038 __m128i test_mm256_mask_cvtepi32_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
   6039   // CHECK-LABEL: @test_mm256_mask_cvtepi32_epi16
   6040   // CHECK: @llvm.x86.avx512.mask.pmov.dw.256
   6041   return _mm256_mask_cvtepi32_epi16(__O, __M, __A);
   6042 }
   6043 
   6044 __m128i test_mm256_maskz_cvtepi32_epi16(__mmask8 __M, __m256i __A) {
   6045   // CHECK-LABEL: @test_mm256_maskz_cvtepi32_epi16
   6046   // CHECK: @llvm.x86.avx512.mask.pmov.dw.256
   6047   return _mm256_maskz_cvtepi32_epi16(__M, __A);
   6048 }
   6049 
   6050 void test_mm256_mask_cvtepi32_storeu_epi16(void *  __P, __mmask8 __M, __m256i __A) {
   6051   // CHECK-LABEL: @test_mm256_mask_cvtepi32_storeu_epi16
   6052   // CHECK: @llvm.x86.avx512.mask.pmov.dw.mem.256
   6053   return _mm256_mask_cvtepi32_storeu_epi16(__P, __M, __A);
   6054 }
   6055 
   6056 __m128i test_mm_cvtepi64_epi8(__m128i __A) {
   6057   // CHECK-LABEL: @test_mm_cvtepi64_epi8
   6058   // CHECK: @llvm.x86.avx512.mask.pmov.qb.128
   6059   return _mm_cvtepi64_epi8(__A);
   6060 }
   6061 
   6062 __m128i test_mm_mask_cvtepi64_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
   6063   // CHECK-LABEL: @test_mm_mask_cvtepi64_epi8
   6064   // CHECK: @llvm.x86.avx512.mask.pmov.qb.128
   6065   return _mm_mask_cvtepi64_epi8(__O, __M, __A);
   6066 }
   6067 
   6068 __m128i test_mm_maskz_cvtepi64_epi8(__mmask8 __M, __m128i __A) {
   6069   // CHECK-LABEL: @test_mm_maskz_cvtepi64_epi8
   6070   // CHECK: @llvm.x86.avx512.mask.pmov.qb.128
   6071   return _mm_maskz_cvtepi64_epi8(__M, __A);
   6072 }
   6073 
   6074 void test_mm_mask_cvtepi64_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
   6075   // CHECK-LABEL: @test_mm_mask_cvtepi64_storeu_epi8
   6076   // CHECK: @llvm.x86.avx512.mask.pmov.qb.mem.128
   6077   return _mm_mask_cvtepi64_storeu_epi8(__P, __M, __A);
   6078 }
   6079 
   6080 __m128i test_mm256_cvtepi64_epi8(__m256i __A) {
   6081   // CHECK-LABEL: @test_mm256_cvtepi64_epi8
   6082   // CHECK: @llvm.x86.avx512.mask.pmov.qb.256
   6083   return _mm256_cvtepi64_epi8(__A);
   6084 }
   6085 
   6086 __m128i test_mm256_mask_cvtepi64_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
   6087   // CHECK-LABEL: @test_mm256_mask_cvtepi64_epi8
   6088   // CHECK: @llvm.x86.avx512.mask.pmov.qb.256
   6089   return _mm256_mask_cvtepi64_epi8(__O, __M, __A);
   6090 }
   6091 
   6092 __m128i test_mm256_maskz_cvtepi64_epi8(__mmask8 __M, __m256i __A) {
   6093   // CHECK-LABEL: @test_mm256_maskz_cvtepi64_epi8
   6094   // CHECK: @llvm.x86.avx512.mask.pmov.qb.256
   6095   return _mm256_maskz_cvtepi64_epi8(__M, __A);
   6096 }
   6097 
   6098 void test_mm256_mask_cvtepi64_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
   6099   // CHECK-LABEL: @test_mm256_mask_cvtepi64_storeu_epi8
   6100   // CHECK: @llvm.x86.avx512.mask.pmov.qb.mem.256
   6101   return _mm256_mask_cvtepi64_storeu_epi8(__P, __M, __A);
   6102 }
   6103 
   6104 __m128i test_mm_cvtepi64_epi32(__m128i __A) {
   6105   // CHECK-LABEL: @test_mm_cvtepi64_epi32
   6106   // CHECK: @llvm.x86.avx512.mask.pmov.qd.128
   6107   return _mm_cvtepi64_epi32(__A);
   6108 }
   6109 
   6110 __m128i test_mm_mask_cvtepi64_epi32(__m128i __O, __mmask8 __M, __m128i __A) {
   6111   // CHECK-LABEL: @test_mm_mask_cvtepi64_epi32
   6112   // CHECK: @llvm.x86.avx512.mask.pmov.qd.128
   6113   return _mm_mask_cvtepi64_epi32(__O, __M, __A);
   6114 }
   6115 
   6116 __m128i test_mm_maskz_cvtepi64_epi32(__mmask8 __M, __m128i __A) {
   6117   // CHECK-LABEL: @test_mm_maskz_cvtepi64_epi32
   6118   // CHECK: @llvm.x86.avx512.mask.pmov.qd.128
   6119   return _mm_maskz_cvtepi64_epi32(__M, __A);
   6120 }
   6121 
   6122 void test_mm_mask_cvtepi64_storeu_epi32(void * __P, __mmask8 __M, __m128i __A) {
   6123   // CHECK-LABEL: @test_mm_mask_cvtepi64_storeu_epi32
   6124   // CHECK: @llvm.x86.avx512.mask.pmov.qd.mem.128
   6125   return _mm_mask_cvtepi64_storeu_epi32(__P, __M, __A);
   6126 }
   6127 
   6128 __m128i test_mm256_cvtepi64_epi32(__m256i __A) {
   6129   // CHECK-LABEL: @test_mm256_cvtepi64_epi32
   6130   // CHECK: @llvm.x86.avx512.mask.pmov.qd.256
   6131   return _mm256_cvtepi64_epi32(__A);
   6132 }
   6133 
   6134 __m128i test_mm256_mask_cvtepi64_epi32(__m128i __O, __mmask8 __M, __m256i __A) {
   6135   // CHECK-LABEL: @test_mm256_mask_cvtepi64_epi32
   6136   // CHECK: @llvm.x86.avx512.mask.pmov.qd.256
   6137   return _mm256_mask_cvtepi64_epi32(__O, __M, __A);
   6138 }
   6139 
   6140 __m128i test_mm256_maskz_cvtepi64_epi32(__mmask8 __M, __m256i __A) {
   6141   // CHECK-LABEL: @test_mm256_maskz_cvtepi64_epi32
   6142   // CHECK: @llvm.x86.avx512.mask.pmov.qd.256
   6143   return _mm256_maskz_cvtepi64_epi32(__M, __A);
   6144 }
   6145 
   6146 void test_mm256_mask_cvtepi64_storeu_epi32(void * __P, __mmask8 __M, __m256i __A) {
   6147   // CHECK-LABEL: @test_mm256_mask_cvtepi64_storeu_epi32
   6148   // CHECK: @llvm.x86.avx512.mask.pmov.qd.mem.256
   6149   return _mm256_mask_cvtepi64_storeu_epi32(__P, __M, __A);
   6150 }
   6151 
   6152 __m128i test_mm_cvtepi64_epi16(__m128i __A) {
   6153   // CHECK-LABEL: @test_mm_cvtepi64_epi16
   6154   // CHECK: @llvm.x86.avx512.mask.pmov.qw.128
   6155   return _mm_cvtepi64_epi16(__A);
   6156 }
   6157 
   6158 __m128i test_mm_mask_cvtepi64_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
   6159   // CHECK-LABEL: @test_mm_mask_cvtepi64_epi16
   6160   // CHECK: @llvm.x86.avx512.mask.pmov.qw.128
   6161   return _mm_mask_cvtepi64_epi16(__O, __M, __A);
   6162 }
   6163 
   6164 __m128i test_mm_maskz_cvtepi64_epi16(__mmask8 __M, __m128i __A) {
   6165   // CHECK-LABEL: @test_mm_maskz_cvtepi64_epi16
   6166   // CHECK: @llvm.x86.avx512.mask.pmov.qw.128
   6167   return _mm_maskz_cvtepi64_epi16(__M, __A);
   6168 }
   6169 
   6170 void test_mm_mask_cvtepi64_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
   6171   // CHECK-LABEL: @test_mm_mask_cvtepi64_storeu_epi16
   6172   // CHECK: @llvm.x86.avx512.mask.pmov.qw.mem.128
   6173   return _mm_mask_cvtepi64_storeu_epi16(__P, __M, __A);
   6174 }
   6175 
   6176 __m128i test_mm256_cvtepi64_epi16(__m256i __A) {
   6177   // CHECK-LABEL: @test_mm256_cvtepi64_epi16
   6178   // CHECK: @llvm.x86.avx512.mask.pmov.qw.256
   6179   return _mm256_cvtepi64_epi16(__A);
   6180 }
   6181 
   6182 __m128i test_mm256_mask_cvtepi64_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
   6183   // CHECK-LABEL: @test_mm256_mask_cvtepi64_epi16
   6184   // CHECK: @llvm.x86.avx512.mask.pmov.qw.256
   6185   return _mm256_mask_cvtepi64_epi16(__O, __M, __A);
   6186 }
   6187 
   6188 __m128i test_mm256_maskz_cvtepi64_epi16(__mmask8 __M, __m256i __A) {
   6189   // CHECK-LABEL: @test_mm256_maskz_cvtepi64_epi16
   6190   // CHECK: @llvm.x86.avx512.mask.pmov.qw.256
   6191   return _mm256_maskz_cvtepi64_epi16(__M, __A);
   6192 }
   6193 
   6194 void test_mm256_mask_cvtepi64_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) {
   6195   // CHECK-LABEL: @test_mm256_mask_cvtepi64_storeu_epi16
   6196   // CHECK: @llvm.x86.avx512.mask.pmov.qw.mem.256
   6197   return _mm256_mask_cvtepi64_storeu_epi16(__P, __M, __A);
   6198 }
   6199 
   6200 __m128 test_mm256_extractf32x4_ps(__m256 __A) {
   6201   // CHECK-LABEL: @test_mm256_extractf32x4_ps
   6202   // CHECK: @llvm.x86.avx512.mask.vextractf32x4
   6203   return _mm256_extractf32x4_ps(__A, 1);
   6204 }
   6205 
   6206 __m128 test_mm256_mask_extractf32x4_ps(__m128 __W, __mmask8 __U, __m256 __A) {
   6207   // CHECK-LABEL: @test_mm256_mask_extractf32x4_ps
   6208   // CHECK: @llvm.x86.avx512.mask.vextractf32x4
   6209   return _mm256_mask_extractf32x4_ps(__W, __U, __A, 1);
   6210 }
   6211 
   6212 __m128 test_mm256_maskz_extractf32x4_ps(__mmask8 __U, __m256 __A) {
   6213   // CHECK-LABEL: @test_mm256_maskz_extractf32x4_ps
   6214   // CHECK: @llvm.x86.avx512.mask.vextractf32x4
   6215   return _mm256_maskz_extractf32x4_ps(__U, __A, 1);
   6216 }
   6217 
   6218 __m128i test_mm256_extracti32x4_epi32(__m256i __A) {
   6219   // CHECK-LABEL: @test_mm256_extracti32x4_epi32
   6220   // CHECK: @llvm.x86.avx512.mask.vextracti32x4
   6221   return _mm256_extracti32x4_epi32(__A, 1);
   6222 }
   6223 
   6224 __m128i test_mm256_mask_extracti32x4_epi32(__m128i __W, __mmask8 __U, __m256i __A) {
   6225   // CHECK-LABEL: @test_mm256_mask_extracti32x4_epi32
   6226   // CHECK: @llvm.x86.avx512.mask.vextracti32x4
   6227   return _mm256_mask_extracti32x4_epi32(__W, __U, __A, 1);
   6228 }
   6229 
   6230 __m128i test_mm256_maskz_extracti32x4_epi32(__mmask8 __U, __m256i __A) {
   6231   // CHECK-LABEL: @test_mm256_maskz_extracti32x4_epi32
   6232   // CHECK: @llvm.x86.avx512.mask.vextracti32x4
   6233   return _mm256_maskz_extracti32x4_epi32(__U, __A, 1);
   6234 }
   6235 
   6236 __m256 test_mm256_insertf32x4(__m256 __A, __m128 __B) {
   6237   // CHECK-LABEL: @test_mm256_insertf32x4
   6238   // CHECK: @llvm.x86.avx512.mask.insertf32x4
   6239   return _mm256_insertf32x4(__A, __B, 1);
   6240 }
   6241 
   6242 __m256 test_mm256_mask_insertf32x4(__m256 __W, __mmask8 __U, __m256 __A, __m128 __B) {
   6243   // CHECK-LABEL: @test_mm256_mask_insertf32x4
   6244   // CHECK: @llvm.x86.avx512.mask.insertf32x4
   6245   return _mm256_mask_insertf32x4(__W, __U, __A, __B, 1);
   6246 }
   6247 
   6248 __m256 test_mm256_maskz_insertf32x4(__mmask8 __U, __m256 __A, __m128 __B) {
   6249   // CHECK-LABEL: @test_mm256_maskz_insertf32x4
   6250   // CHECK: @llvm.x86.avx512.mask.insertf32x4
   6251   return _mm256_maskz_insertf32x4(__U, __A, __B, 1);
   6252 }
   6253 
   6254 __m256i test_mm256_inserti32x4(__m256i __A, __m128i __B) {
   6255   // CHECK-LABEL: @test_mm256_inserti32x4
   6256   // CHECK: @llvm.x86.avx512.mask.inserti32x4
   6257   return _mm256_inserti32x4(__A, __B, 1);
   6258 }
   6259 
   6260 __m256i test_mm256_mask_inserti32x4(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
   6261   // CHECK-LABEL: @test_mm256_mask_inserti32x4
   6262   // CHECK: @llvm.x86.avx512.mask.inserti32x4
   6263   return _mm256_mask_inserti32x4(__W, __U, __A, __B, 1);
   6264 }
   6265 
   6266 __m256i test_mm256_maskz_inserti32x4(__mmask8 __U, __m256i __A, __m128i __B) {
   6267   // CHECK-LABEL: @test_mm256_maskz_inserti32x4
   6268   // CHECK: @llvm.x86.avx512.mask.inserti32x4
   6269   return _mm256_maskz_inserti32x4(__U, __A, __B, 1);
   6270 }
   6271 
   6272 __m128d test_mm_getmant_pd(__m128d __A) {
   6273   // CHECK-LABEL: @test_mm_getmant_pd
   6274   // CHECK: @llvm.x86.avx512.mask.getmant.pd.128
   6275   return _mm_getmant_pd(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
   6276 }
   6277 
   6278 __m128d test_mm_mask_getmant_pd(__m128d __W, __mmask8 __U, __m128d __A) {
   6279   // CHECK-LABEL: @test_mm_mask_getmant_pd
   6280   // CHECK: @llvm.x86.avx512.mask.getmant.pd.128
   6281   return _mm_mask_getmant_pd(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
   6282 }
   6283 
   6284 __m128d test_mm_maskz_getmant_pd(__mmask8 __U, __m128d __A) {
   6285   // CHECK-LABEL: @test_mm_maskz_getmant_pd
   6286   // CHECK: @llvm.x86.avx512.mask.getmant.pd.128
   6287   return _mm_maskz_getmant_pd(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
   6288 }
   6289 
   6290 __m256d test_mm256_getmant_pd(__m256d __A) {
   6291   // CHECK-LABEL: @test_mm256_getmant_pd
   6292   // CHECK: @llvm.x86.avx512.mask.getmant.pd.256
   6293   return _mm256_getmant_pd(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
   6294 }
   6295 
   6296 __m256d test_mm256_mask_getmant_pd(__m256d __W, __mmask8 __U, __m256d __A) {
   6297   // CHECK-LABEL: @test_mm256_mask_getmant_pd
   6298   // CHECK: @llvm.x86.avx512.mask.getmant.pd.256
   6299   return _mm256_mask_getmant_pd(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
   6300 }
   6301 
   6302 __m256d test_mm256_maskz_getmant_pd(__mmask8 __U, __m256d __A) {
   6303   // CHECK-LABEL: @test_mm256_maskz_getmant_pd
   6304   // CHECK: @llvm.x86.avx512.mask.getmant.pd.256
   6305   return _mm256_maskz_getmant_pd(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
   6306 }
   6307 
   6308 __m128 test_mm_getmant_ps(__m128 __A) {
   6309   // CHECK-LABEL: @test_mm_getmant_ps
   6310   // CHECK: @llvm.x86.avx512.mask.getmant.ps.128
   6311   return _mm_getmant_ps(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
   6312 }
   6313 
   6314 __m128 test_mm_mask_getmant_ps(__m128 __W, __mmask8 __U, __m128 __A) {
   6315   // CHECK-LABEL: @test_mm_mask_getmant_ps
   6316   // CHECK: @llvm.x86.avx512.mask.getmant.ps.128
   6317   return _mm_mask_getmant_ps(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
   6318 }
   6319 
   6320 __m128 test_mm_maskz_getmant_ps(__mmask8 __U, __m128 __A) {
   6321   // CHECK-LABEL: @test_mm_maskz_getmant_ps
   6322   // CHECK: @llvm.x86.avx512.mask.getmant.ps.128
   6323   return _mm_maskz_getmant_ps(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
   6324 }
   6325 
   6326 __m256 test_mm256_getmant_ps(__m256 __A) {
   6327   // CHECK-LABEL: @test_mm256_getmant_ps
   6328   // CHECK: @llvm.x86.avx512.mask.getmant.ps.256
   6329   return _mm256_getmant_ps(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
   6330 }
   6331 
   6332 __m256 test_mm256_mask_getmant_ps(__m256 __W, __mmask8 __U, __m256 __A) {
   6333   // CHECK-LABEL: @test_mm256_mask_getmant_ps
   6334   // CHECK: @llvm.x86.avx512.mask.getmant.ps.256
   6335   return _mm256_mask_getmant_ps(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
   6336 }
   6337 
   6338 __m256 test_mm256_maskz_getmant_ps(__mmask8 __U, __m256 __A) {
   6339   // CHECK-LABEL: @test_mm256_maskz_getmant_ps
   6340   // CHECK: @llvm.x86.avx512.mask.getmant.ps.256
   6341   return _mm256_maskz_getmant_ps(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
   6342 }
   6343 
   6344 __m128d test_mm_mmask_i64gather_pd(__m128d __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
   6345   // CHECK-LABEL: @test_mm_mmask_i64gather_pd
   6346   // CHECK: @llvm.x86.avx512.gather3div2.df
   6347   return _mm_mmask_i64gather_pd(__v1_old, __mask, __index, __addr, 2);
   6348 }
   6349 
   6350 __m128i test_mm_mmask_i64gather_epi64(__m128i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
   6351   // CHECK-LABEL: @test_mm_mmask_i64gather_epi64
   6352   // CHECK: @llvm.x86.avx512.gather3div2.di
   6353   return _mm_mmask_i64gather_epi64(__v1_old, __mask, __index, __addr, 2);
   6354 }
   6355 
   6356 __m256d test_mm256_mmask_i64gather_pd(__m256d __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
   6357   // CHECK-LABEL: @test_mm256_mmask_i64gather_pd
   6358   // CHECK: @llvm.x86.avx512.gather3div4.df
   6359   return _mm256_mmask_i64gather_pd(__v1_old, __mask, __index, __addr, 2);
   6360 }
   6361 
   6362 __m256i test_mm256_mmask_i64gather_epi64(__m256i __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
   6363   // CHECK-LABEL: @test_mm256_mmask_i64gather_epi64
   6364   // CHECK: @llvm.x86.avx512.gather3div4.di
   6365   return _mm256_mmask_i64gather_epi64(__v1_old, __mask, __index, __addr, 2);
   6366 }
   6367 
   6368 __m128 test_mm_mmask_i64gather_ps(__m128 __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
   6369   // CHECK-LABEL: @test_mm_mmask_i64gather_ps
   6370   // CHECK: @llvm.x86.avx512.gather3div4.sf
   6371   return _mm_mmask_i64gather_ps(__v1_old, __mask, __index, __addr, 2);
   6372 }
   6373 
   6374 __m128i test_mm_mmask_i64gather_epi32(__m128i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
   6375   // CHECK-LABEL: @test_mm_mmask_i64gather_epi32
   6376   // CHECK: @llvm.x86.avx512.gather3div4.si
   6377   return _mm_mmask_i64gather_epi32(__v1_old, __mask, __index, __addr, 2);
   6378 }
   6379 
   6380 __m128 test_mm256_mmask_i64gather_ps(__m128 __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
   6381   // CHECK-LABEL: @test_mm256_mmask_i64gather_ps
   6382   // CHECK: @llvm.x86.avx512.gather3div8.sf
   6383   return _mm256_mmask_i64gather_ps(__v1_old, __mask, __index, __addr, 2);
   6384 }
   6385 
   6386 __m128i test_mm256_mmask_i64gather_epi32(__m128i __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
   6387   // CHECK-LABEL: @test_mm256_mmask_i64gather_epi32
   6388   // CHECK: @llvm.x86.avx512.gather3div8.si
   6389   return _mm256_mmask_i64gather_epi32(__v1_old, __mask, __index, __addr, 2);
   6390 }
   6391 
   6392 __m128d test_mm_mask_i32gather_pd(__m128d __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
   6393   // CHECK-LABEL: @test_mm_mask_i32gather_pd
   6394   // CHECK: @llvm.x86.avx512.gather3siv2.df
   6395   return _mm_mmask_i32gather_pd(__v1_old, __mask, __index, __addr, 2);
   6396 }
   6397 
   6398 __m128i test_mm_mask_i32gather_epi64(__m128i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
   6399   // CHECK-LABEL: @test_mm_mask_i32gather_epi64
   6400   // CHECK: @llvm.x86.avx512.gather3siv2.di
   6401   return _mm_mmask_i32gather_epi64(__v1_old, __mask, __index, __addr, 2);
   6402 }
   6403 
   6404 __m256d test_mm256_mask_i32gather_pd(__m256d __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
   6405   // CHECK-LABEL: @test_mm256_mask_i32gather_pd
   6406   // CHECK: @llvm.x86.avx512.gather3siv4.df
   6407   return _mm256_mmask_i32gather_pd(__v1_old, __mask, __index, __addr, 2);
   6408 }
   6409 
   6410 __m256i test_mm256_mask_i32gather_epi64(__m256i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
   6411   // CHECK-LABEL: @test_mm256_mask_i32gather_epi64
   6412   // CHECK: @llvm.x86.avx512.gather3siv4.di
   6413   return _mm256_mmask_i32gather_epi64(__v1_old, __mask, __index, __addr, 2);
   6414 }
   6415 
   6416 __m128 test_mm_mask_i32gather_ps(__m128 __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
   6417   // CHECK-LABEL: @test_mm_mask_i32gather_ps
   6418   // CHECK: @llvm.x86.avx512.gather3siv4.sf
   6419   return _mm_mmask_i32gather_ps(__v1_old, __mask, __index, __addr, 2);
   6420 }
   6421 
   6422 __m128i test_mm_mask_i32gather_epi32(__m128i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) {
   6423   // CHECK-LABEL: @test_mm_mask_i32gather_epi32
   6424   // CHECK: @llvm.x86.avx512.gather3siv4.si
   6425   return _mm_mmask_i32gather_epi32(__v1_old, __mask, __index, __addr, 2);
   6426 }
   6427 
   6428 __m256 test_mm256_mask_i32gather_ps(__m256 __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
   6429   // CHECK-LABEL: @test_mm256_mask_i32gather_ps
   6430   // CHECK: @llvm.x86.avx512.gather3siv8.sf
   6431   return _mm256_mmask_i32gather_ps(__v1_old, __mask, __index, __addr, 2);
   6432 }
   6433 
   6434 __m256i test_mm256_mask_i32gather_epi32(__m256i __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
   6435   // CHECK-LABEL: @test_mm256_mask_i32gather_epi32
   6436   // CHECK: @llvm.x86.avx512.gather3siv8.si
   6437   return _mm256_mmask_i32gather_epi32(__v1_old, __mask, __index, __addr, 2);
   6438 }
   6439 
   6440 __m256d test_mm256_permutex_pd(__m256d __X) {
   6441   // CHECK-LABEL: @test_mm256_permutex_pd
   6442   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 3, i32 0, i32 0, i32 0>
   6443   return _mm256_permutex_pd(__X, 3);
   6444 }
   6445 
   6446 __m256d test_mm256_mask_permutex_pd(__m256d __W, __mmask8 __U, __m256d __X) {
   6447   // CHECK-LABEL: @test_mm256_mask_permutex_pd
   6448   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 1, i32 0, i32 0, i32 0>
   6449   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
   6450   return _mm256_mask_permutex_pd(__W, __U, __X, 1);
   6451 }
   6452 
   6453 __m256d test_mm256_maskz_permutex_pd(__mmask8 __U, __m256d __X) {
   6454   // CHECK-LABEL: @test_mm256_maskz_permutex_pd
   6455   // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 1, i32 0, i32 0, i32 0>
   6456   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
   6457   return _mm256_maskz_permutex_pd(__U, __X, 1);
   6458 }
   6459 
   6460 __m256i test_mm256_permutex_epi64(__m256i __X) {
   6461   // CHECK-LABEL: @test_mm256_permutex_epi64
   6462   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> undef, <4 x i32> <i32 3, i32 0, i32 0, i32 0>
   6463   return _mm256_permutex_epi64(__X, 3);
   6464 }
   6465 
   6466 __m256i test_mm256_mask_permutex_epi64(__m256i __W, __mmask8 __M, __m256i __X) {
   6467   // CHECK-LABEL: @test_mm256_mask_permutex_epi64
   6468   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> undef, <4 x i32> <i32 3, i32 0, i32 0, i32 0>
   6469   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
   6470   return _mm256_mask_permutex_epi64(__W, __M, __X, 3);
   6471 }
   6472 
   6473 __m256i test_mm256_maskz_permutex_epi64(__mmask8 __M, __m256i __X) {
   6474   // CHECK-LABEL: @test_mm256_maskz_permutex_epi64
   6475   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> undef, <4 x i32> <i32 3, i32 0, i32 0, i32 0>
   6476   // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
   6477   return _mm256_maskz_permutex_epi64(__M, __X, 3);
   6478 }
   6479 
   6480 __m256d test_mm256_permutexvar_pd(__m256i __X, __m256d __Y) {
   6481   // CHECK-LABEL: @test_mm256_permutexvar_pd
   6482   // CHECK: @llvm.x86.avx512.mask.permvar.df.256
   6483   return _mm256_permutexvar_pd(__X, __Y);
   6484 }
   6485 
   6486 __m256d test_mm256_mask_permutexvar_pd(__m256d __W, __mmask8 __U, __m256i __X, __m256d __Y) {
   6487   // CHECK-LABEL: @test_mm256_mask_permutexvar_pd
   6488   // CHECK: @llvm.x86.avx512.mask.permvar.df.256
   6489   return _mm256_mask_permutexvar_pd(__W, __U, __X, __Y);
   6490 }
   6491 
   6492 __m256d test_mm256_maskz_permutexvar_pd(__mmask8 __U, __m256i __X, __m256d __Y) {
   6493   // CHECK-LABEL: @test_mm256_maskz_permutexvar_pd
   6494   // CHECK: @llvm.x86.avx512.mask.permvar.df.256
   6495   return _mm256_maskz_permutexvar_pd(__U, __X, __Y);
   6496 }
   6497 
   6498 __m256i test_mm256_maskz_permutexvar_epi64(__mmask8 __M, __m256i __X, __m256i __Y) {
   6499   // CHECK-LABEL: @test_mm256_maskz_permutexvar_epi64
   6500   // CHECK: @llvm.x86.avx512.mask.permvar.di.256
   6501   return _mm256_maskz_permutexvar_epi64(__M, __X, __Y);
   6502 }
   6503 
   6504 __m256i test_mm256_mask_permutexvar_epi64(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) {
   6505   // CHECK-LABEL: @test_mm256_mask_permutexvar_epi64
   6506   // CHECK: @llvm.x86.avx512.mask.permvar.di.256
   6507   return _mm256_mask_permutexvar_epi64(__W, __M, __X, __Y);
   6508 }
   6509 
   6510 __m256 test_mm256_mask_permutexvar_ps(__m256 __W, __mmask8 __U, __m256i __X, __m256 __Y) {
   6511   // CHECK-LABEL: @test_mm256_mask_permutexvar_ps
   6512   // CHECK: @llvm.x86.avx512.mask.permvar.sf.256
   6513   return _mm256_mask_permutexvar_ps(__W, __U, __X, __Y);
   6514 }
   6515 
   6516 __m256 test_mm256_maskz_permutexvar_ps(__mmask8 __U, __m256i __X, __m256 __Y) {
   6517   // CHECK-LABEL: @test_mm256_maskz_permutexvar_ps
   6518   // CHECK: @llvm.x86.avx512.mask.permvar.sf.256
   6519   return _mm256_maskz_permutexvar_ps(__U, __X, __Y);
   6520 }
   6521 
   6522 __m256 test_mm256_permutexvar_ps(__m256i __X, __m256 __Y) {
   6523   // CHECK-LABEL: @test_mm256_permutexvar_ps
   6524   // CHECK: @llvm.x86.avx512.mask.permvar.sf.256
   6525   return _mm256_permutexvar_ps( __X, __Y);
   6526 }
   6527 
   6528 __m256i test_mm256_maskz_permutexvar_epi32(__mmask8 __M, __m256i __X, __m256i __Y) {
   6529   // CHECK-LABEL: @test_mm256_maskz_permutexvar_epi32
   6530   // CHECK: @llvm.x86.avx512.mask.permvar.si.256
   6531   return _mm256_maskz_permutexvar_epi32(__M, __X, __Y);
   6532 }
   6533 
   6534 __m256i test_mm256_permutexvar_epi32(__m256i __X, __m256i __Y) {
   6535   // CHECK-LABEL: @test_mm256_permutexvar_epi32
   6536   // CHECK: @llvm.x86.avx512.mask.permvar.si.256
   6537   return _mm256_permutexvar_epi32(__X, __Y);
   6538 }
   6539 
   6540 __m256i test_mm256_mask_permutexvar_epi32(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) {
   6541   // CHECK-LABEL: @test_mm256_mask_permutexvar_epi32
   6542   // CHECK: @llvm.x86.avx512.mask.permvar.si.256
   6543   return _mm256_mask_permutexvar_epi32(__W, __M, __X, __Y);
   6544 }
   6545 
   6546 __m128i test_mm_alignr_epi32(__m128i __A, __m128i __B) {
   6547   // CHECK-LABEL: @test_mm_alignr_epi32
   6548   // CHECK: @llvm.x86.avx512.mask.valign.d.128
   6549   return _mm_alignr_epi32(__A, __B, 1);
   6550 }
   6551 
   6552 __m128i test_mm_mask_alignr_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
   6553   // CHECK-LABEL: @test_mm_mask_alignr_epi32
   6554   // CHECK: @llvm.x86.avx512.mask.valign.d.128
   6555   return _mm_mask_alignr_epi32(__W, __U, __A, __B, 1);
   6556 }
   6557 
   6558 __m128i test_mm_maskz_alignr_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
   6559   // CHECK-LABEL: @test_mm_maskz_alignr_epi32
   6560   // CHECK: @llvm.x86.avx512.mask.valign.d.128
   6561   return _mm_maskz_alignr_epi32(__U, __A, __B, 1);
   6562 }
   6563 
   6564 __m256i test_mm256_alignr_epi32(__m256i __A, __m256i __B) {
   6565   // CHECK-LABEL: @test_mm256_alignr_epi32
   6566   // CHECK: @llvm.x86.avx512.mask.valign.d.256
   6567   return _mm256_alignr_epi32(__A, __B, 1);
   6568 }
   6569 
   6570 __m256i test_mm256_mask_alignr_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
   6571   // CHECK-LABEL: @test_mm256_mask_alignr_epi32
   6572   // CHECK: @llvm.x86.avx512.mask.valign.d.256
   6573   return _mm256_mask_alignr_epi32(__W, __U, __A, __B, 1);
   6574 }
   6575 
   6576 __m256i test_mm256_maskz_alignr_epi32(__mmask8 __U, __m256i __A, __m256i __B) {
   6577   // CHECK-LABEL: @test_mm256_maskz_alignr_epi32
   6578   // CHECK: @llvm.x86.avx512.mask.valign.d.256
   6579   return _mm256_maskz_alignr_epi32(__U, __A, __B, 1);
   6580 }
   6581 
   6582 __m128i test_mm_alignr_epi64(__m128i __A, __m128i __B) {
   6583   // CHECK-LABEL: @test_mm_alignr_epi64
   6584   // CHECK: @llvm.x86.avx512.mask.valign.q.128
   6585   return _mm_alignr_epi64(__A, __B, 1);
   6586 }
   6587 
   6588 __m128i test_mm_mask_alignr_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
   6589   // CHECK-LABEL: @test_mm_mask_alignr_epi64
   6590   // CHECK: @llvm.x86.avx512.mask.valign.q.128
   6591   return _mm_mask_alignr_epi64(__W, __U, __A, __B, 1);
   6592 }
   6593 
   6594 __m128i test_mm_maskz_alignr_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
   6595   // CHECK-LABEL: @test_mm_maskz_alignr_epi64
   6596   // CHECK: @llvm.x86.avx512.mask.valign.q.128
   6597   return _mm_maskz_alignr_epi64(__U, __A, __B, 1);
   6598 }
   6599 
   6600 __m256i test_mm256_alignr_epi64(__m256i __A, __m256i __B) {
   6601   // CHECK-LABEL: @test_mm256_alignr_epi64
   6602   // CHECK: @llvm.x86.avx512.mask.valign.q.256
   6603   return _mm256_alignr_epi64(__A, __B, 1);
   6604 }
   6605 
   6606 __m256i test_mm256_mask_alignr_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
   6607   // CHECK-LABEL: @test_mm256_mask_alignr_epi64
   6608   // CHECK: @llvm.x86.avx512.mask.valign.q.256
   6609   return _mm256_mask_alignr_epi64(__W, __U, __A, __B, 1);
   6610 }
   6611 
   6612 __m256i test_mm256_maskz_alignr_epi64(__mmask8 __U, __m256i __A, __m256i __B) {
   6613   // CHECK-LABEL: @test_mm256_maskz_alignr_epi64
   6614   // CHECK: @llvm.x86.avx512.mask.valign.q.256
   6615   return _mm256_maskz_alignr_epi64(__U, __A, __B, 1);
   6616 }
   6617 
   6618 __m128 test_mm_mask_movehdup_ps(__m128 __W, __mmask8 __U, __m128 __A) {
   6619   // CHECK-LABEL: @test_mm_mask_movehdup_ps
   6620   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 1, i32 1, i32 3, i32 3>
   6621   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
   6622   return _mm_mask_movehdup_ps(__W, __U, __A);
   6623 }
   6624 
   6625 __m128 test_mm_maskz_movehdup_ps(__mmask8 __U, __m128 __A) {
   6626   // CHECK-LABEL: @test_mm_maskz_movehdup_ps
   6627   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 1, i32 1, i32 3, i32 3>
   6628   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
   6629   return _mm_maskz_movehdup_ps(__U, __A);
   6630 }
   6631 
   6632 __m256 test_mm256_mask_movehdup_ps(__m256 __W, __mmask8 __U, __m256 __A) {
   6633   // CHECK-LABEL: @test_mm256_mask_movehdup_ps
   6634   // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 1, i32 1, i32 3, i32 3, i32 5, i32 5, i32 7, i32 7>
   6635   // CHECK: select <8 x i1> %{{.*}} <8 x float> %{{.*}}, <8 x float> %{{.*}}
   6636   return _mm256_mask_movehdup_ps(__W, __U, __A);
   6637 }
   6638 
   6639 __m256 test_mm256_maskz_movehdup_ps(__mmask8 __U, __m256 __A) {
   6640   // CHECK-LABEL: @test_mm256_maskz_movehdup_ps
   6641   // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 1, i32 1, i32 3, i32 3, i32 5, i32 5, i32 7, i32 7>
   6642   // CHECK: select <8 x i1> %{{.*}} <8 x float> %{{.*}}, <8 x float> %{{.*}}
   6643   return _mm256_maskz_movehdup_ps(__U, __A);
   6644 }
   6645 
   6646 __m128 test_mm_mask_moveldup_ps(__m128 __W, __mmask8 __U, __m128 __A) {
   6647   // CHECK-LABEL: @test_mm_mask_moveldup_ps
   6648   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 0, i32 2, i32 2>
   6649   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
   6650   return _mm_mask_moveldup_ps(__W, __U, __A);
   6651 }
   6652 
   6653 __m128 test_mm_maskz_moveldup_ps(__mmask8 __U, __m128 __A) {
   6654   // CHECK-LABEL: @test_mm_maskz_moveldup_ps
   6655   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 0, i32 2, i32 2>
   6656   // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}}
   6657   return _mm_maskz_moveldup_ps(__U, __A);
   6658 }
   6659 
   6660 __m256 test_mm256_mask_moveldup_ps(__m256 __W, __mmask8 __U, __m256 __A) {
   6661   // CHECK-LABEL: @test_mm256_mask_moveldup_ps
   6662   // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 0, i32 0, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6>
   6663   // CHECK: select <8 x i1> %{{.*}} <8 x float> %{{.*}}, <8 x float> %{{.*}}
   6664   return _mm256_mask_moveldup_ps(__W, __U, __A);
   6665 }
   6666 
   6667 __m256 test_mm256_maskz_moveldup_ps(__mmask8 __U, __m256 __A) {
   6668   // CHECK-LABEL: @test_mm256_maskz_moveldup_ps
   6669   // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 0, i32 0, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6>
   6670   // CHECK: select <8 x i1> %{{.*}} <8 x float> %{{.*}}, <8 x float> %{{.*}}
   6671   return _mm256_maskz_moveldup_ps(__U, __A);
   6672 }
   6673 
   6674 __m128i test_mm_mask_shuffle_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
   6675   // CHECK-LABEL: @test_mm_mask_shuffle_epi32
   6676   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 1, i32 0, i32 0, i32 0>
   6677   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
   6678   return _mm_mask_shuffle_epi32(__W, __U, __A, 1);
   6679 }
   6680 
   6681 __m128i test_mm_maskz_shuffle_epi32(__mmask8 __U, __m128i __A) {
   6682   // CHECK-LABEL: @test_mm_maskz_shuffle_epi32
   6683   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 2, i32 0, i32 0, i32 0>
   6684   // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
   6685   return _mm_maskz_shuffle_epi32(__U, __A, 2);
   6686 }
   6687 
   6688 __m256i test_mm256_mask_shuffle_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
   6689   // CHECK-LABEL: @test_mm256_mask_shuffle_epi32
   6690   // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 2, i32 0, i32 0, i32 0, i32 6, i32 4, i32 4, i32 4>
   6691   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
   6692   return _mm256_mask_shuffle_epi32(__W, __U, __A, 2);
   6693 }
   6694 
   6695 __m256i test_mm256_maskz_shuffle_epi32(__mmask8 __U, __m256i __A) {
   6696   // CHECK-LABEL: @test_mm256_maskz_shuffle_epi32
   6697   // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 2, i32 0, i32 0, i32 0, i32 6, i32 4, i32 4, i32 4>
   6698   // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
   6699   return _mm256_maskz_shuffle_epi32(__U, __A, 2);
   6700 }
   6701 
   6702 __m128d test_mm_mask_mov_pd(__m128d __W, __mmask8 __U, __m128d __A) {
   6703   // CHECK-LABEL: @test_mm_mask_mov_pd
   6704   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
   6705   return _mm_mask_mov_pd(__W, __U, __A);
   6706 }
   6707 
   6708 __m128d test_mm_maskz_mov_pd(__mmask8 __U, __m128d __A) {
   6709   // CHECK-LABEL: @test_mm_maskz_mov_pd
   6710   // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
   6711   return _mm_maskz_mov_pd(__U, __A);
   6712 }
   6713 
   6714 __m256d test_mm256_mask_mov_pd(__m256d __W, __mmask8 __U, __m256d __A) {
   6715   // CHECK-LABEL: @test_mm256_mask_mov_pd
   6716   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
   6717   return _mm256_mask_mov_pd(__W, __U, __A);
   6718 }
   6719 
   6720 __m256d test_mm256_maskz_mov_pd(__mmask8 __U, __m256d __A) {
   6721   // CHECK-LABEL: @test_mm256_maskz_mov_pd
   6722   // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
   6723   return _mm256_maskz_mov_pd(__U, __A);
   6724 }
   6725 
   6726 __m128 test_mm_mask_mov_ps(__m128 __W, __mmask8 __U, __m128 __A) {
   6727   // CHECK-LABEL: @test_mm_mask_mov_ps
   6728   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
   6729   return _mm_mask_mov_ps(__W, __U, __A);
   6730 }
   6731 
   6732 __m128 test_mm_maskz_mov_ps(__mmask8 __U, __m128 __A) {
   6733   // CHECK-LABEL: @test_mm_maskz_mov_ps
   6734   // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
   6735   return _mm_maskz_mov_ps(__U, __A);
   6736 }
   6737 
   6738 __m256 test_mm256_mask_mov_ps(__m256 __W, __mmask8 __U, __m256 __A) {
   6739   // CHECK-LABEL: @test_mm256_mask_mov_ps
   6740   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
   6741   return _mm256_mask_mov_ps(__W, __U, __A);
   6742 }
   6743 
   6744 __m256 test_mm256_maskz_mov_ps(__mmask8 __U, __m256 __A) {
   6745   // CHECK-LABEL: @test_mm256_maskz_mov_ps
   6746   // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
   6747   return _mm256_maskz_mov_ps(__U, __A);
   6748 }
   6749 
   6750 __m128 test_mm_mask_cvtph_ps(__m128 __W, __mmask8 __U, __m128i __A) {
   6751   // CHECK-LABEL: @test_mm_mask_cvtph_ps
   6752   // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.128
   6753   return _mm_mask_cvtph_ps(__W, __U, __A);
   6754 }
   6755 
   6756 __m128 test_mm_maskz_cvtph_ps(__mmask8 __U, __m128i __A) {
   6757   // CHECK-LABEL: @test_mm_maskz_cvtph_ps
   6758   // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.128
   6759   return _mm_maskz_cvtph_ps(__U, __A);
   6760 }
   6761 
   6762 __m256 test_mm256_mask_cvtph_ps(__m256 __W, __mmask8 __U, __m128i __A) {
   6763   // CHECK-LABEL: @test_mm256_mask_cvtph_ps
   6764   // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.256
   6765   return _mm256_mask_cvtph_ps(__W, __U, __A);
   6766 }
   6767 
   6768 __m256 test_mm256_maskz_cvtph_ps(__mmask8 __U, __m128i __A) {
   6769   // CHECK-LABEL: @test_mm256_maskz_cvtph_ps
   6770   // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.256
   6771   return _mm256_maskz_cvtph_ps(__U, __A);
   6772 }
   6773 
   6774 __m128i test_mm_mask_cvtps_ph(__m128i __W, __mmask8 __U, __m128 __A) {
   6775   // CHECK-LABEL: @test_mm_mask_cvtps_ph
   6776   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.128
   6777   return _mm_mask_cvtps_ph(__W, __U, __A);
   6778 }
   6779 
   6780 __m128i test_mm_maskz_cvtps_ph(__mmask8 __U, __m128 __A) {
   6781   // CHECK-LABEL: @test_mm_maskz_cvtps_ph
   6782   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.128
   6783   return _mm_maskz_cvtps_ph(__U, __A);
   6784 }
   6785 
   6786 __m128i test_mm256_mask_cvtps_ph(__m128i __W, __mmask8 __U, __m256 __A) {
   6787   // CHECK-LABEL: @test_mm256_mask_cvtps_ph
   6788   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256
   6789   return _mm256_mask_cvtps_ph(__W, __U, __A);
   6790 }
   6791 
   6792 __m128i test_mm256_maskz_cvtps_ph(__mmask8 __U, __m256 __A) {
   6793   // CHECK-LABEL: @test_mm256_maskz_cvtps_ph
   6794   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256
   6795   return _mm256_maskz_cvtps_ph(__U, __A);
   6796 }
   6797 
   6798 __m128i test_mm_mask_cvt_roundps_ph(__m128i __W, __mmask8 __U, __m128 __A) {
   6799   // CHECK-LABEL: @test_mm_mask_cvt_roundps_ph
   6800   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.128
   6801   return _mm_mask_cvt_roundps_ph(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
   6802 }
   6803 
   6804 __m128i test_mm_maskz_cvt_roundps_ph(__mmask8 __U, __m128 __A) {
   6805   // CHECK-LABEL: @test_mm_maskz_cvt_roundps_ph
   6806   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.128
   6807   return _mm_maskz_cvt_roundps_ph(__U, __A, _MM_FROUND_CUR_DIRECTION);
   6808 }
   6809 
   6810 __m128i test_mm256_mask_cvt_roundps_ph(__m128i __W, __mmask8 __U, __m256 __A) {
   6811   // CHECK-LABEL: @test_mm256_mask_cvt_roundps_ph
   6812   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256
   6813   return _mm256_mask_cvt_roundps_ph(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
   6814 }
   6815 
   6816 __m128i test_mm256_maskz_cvt_roundps_ph(__mmask8 __U, __m256 __A) {
   6817   // CHECK-LABEL: @test_mm256_maskz_cvt_roundps_ph
   6818   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256
   6819   return _mm256_maskz_cvt_roundps_ph(__U, __A, _MM_FROUND_CUR_DIRECTION);
   6820 }
   6821 
   6822 __mmask8 test_mm_cmpeq_epi32_mask(__m128i __a, __m128i __b) {
   6823   // CHECK-LABEL: @test_mm_cmpeq_epi32_mask
   6824   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
   6825   return (__mmask8)_mm_cmpeq_epi32_mask(__a, __b);
   6826 }
   6827 
   6828 __mmask8 test_mm_mask_cmpeq_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
   6829   // CHECK-LABEL: @test_mm_mask_cmpeq_epi32_mask
   6830   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
   6831   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
   6832   return (__mmask8)_mm_mask_cmpeq_epi32_mask(__u, __a, __b);
   6833 }
   6834 
   6835 __mmask8 test_mm_mask_cmpeq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
   6836   // CHECK-LABEL: @test_mm_mask_cmpeq_epi64_mask
   6837   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
   6838   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
   6839   return (__mmask8)_mm_mask_cmpeq_epi64_mask(__u, __a, __b);
   6840 }
   6841 
   6842 __mmask8 test_mm_cmpeq_epi64_mask(__m128i __a, __m128i __b) {
   6843   // CHECK-LABEL: @test_mm_cmpeq_epi64_mask
   6844   // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
   6845   return (__mmask8)_mm_cmpeq_epi64_mask(__a, __b);
   6846 }
   6847 
   6848 __mmask8 test_mm_cmpgt_epi32_mask(__m128i __a, __m128i __b) {
   6849   // CHECK-LABEL: @test_mm_cmpgt_epi32_mask
   6850   // CHECK: icmp sgt <4 x i32> %{{.*}}, %{{.*}}
   6851   return (__mmask8)_mm_cmpgt_epi32_mask(__a, __b);
   6852 }
   6853 
   6854 __mmask8 test_mm_mask_cmpgt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
   6855   // CHECK-LABEL: @test_mm_mask_cmpgt_epi32_mask
   6856   // CHECK: icmp sgt <4 x i32> %{{.*}}, %{{.*}}
   6857   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
   6858   return (__mmask8)_mm_mask_cmpgt_epi32_mask(__u, __a, __b);
   6859 }
   6860 
   6861 __mmask8 test_mm_mask_cmpgt_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
   6862   // CHECK-LABEL: @test_mm_mask_cmpgt_epi64_mask
   6863   // CHECK: icmp sgt <2 x i64> %{{.*}}, %{{.*}}
   6864   // CHECK: and <2 x i1> %{{.*}}, %{{.*}}
   6865   return (__mmask8)_mm_mask_cmpgt_epi64_mask(__u, __a, __b);
   6866 }
   6867 
   6868 __mmask8 test_mm_cmpgt_epi64_mask(__m128i __a, __m128i __b) {
   6869   // CHECK-LABEL: @test_mm_cmpgt_epi64_mask
   6870   // CHECK: icmp sgt <2 x i64> %{{.*}}, %{{.*}}
   6871   return (__mmask8)_mm_cmpgt_epi64_mask(__a, __b);
   6872 }
   6873 
   6874 __mmask8 test_mm256_cmpeq_epi32_mask(__m256i __a, __m256i __b) {
   6875   // CHECK-LABEL: @test_mm256_cmpeq_epi32_mask
   6876   // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
   6877   return (__mmask8)_mm256_cmpeq_epi32_mask(__a, __b);
   6878 }
   6879 
   6880 __mmask8 test_mm256_mask_cmpeq_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
   6881   // CHECK-LABEL: @test_mm256_mask_cmpeq_epi32_mask
   6882   // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
   6883   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
   6884   return (__mmask8)_mm256_mask_cmpeq_epi32_mask(__u, __a, __b);
   6885 }
   6886 
   6887 __mmask8 test_mm256_mask_cmpeq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
   6888   // CHECK-LABEL: @test_mm256_mask_cmpeq_epi64_mask
   6889   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
   6890   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
   6891   return (__mmask8)_mm256_mask_cmpeq_epi64_mask(__u, __a, __b);
   6892 }
   6893 
   6894 __mmask8 test_mm256_cmpeq_epi64_mask(__m256i __a, __m256i __b) {
   6895   // CHECK-LABEL: @test_mm256_cmpeq_epi64_mask
   6896   // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
   6897   return (__mmask8)_mm256_cmpeq_epi64_mask(__a, __b);
   6898 }
   6899 
   6900 __mmask8 test_mm256_cmpgt_epi32_mask(__m256i __a, __m256i __b) {
   6901   // CHECK-LABEL: @test_mm256_cmpgt_epi32_mask
   6902   // CHECK: icmp sgt <8 x i32> %{{.*}}, %{{.*}}
   6903   return (__mmask8)_mm256_cmpgt_epi32_mask(__a, __b);
   6904 }
   6905 
   6906 __mmask8 test_mm256_mask_cmpgt_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
   6907   // CHECK-LABEL: @test_mm256_mask_cmpgt_epi32_mask
   6908   // CHECK: icmp sgt <8 x i32> %{{.*}}, %{{.*}}
   6909   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
   6910   return (__mmask8)_mm256_mask_cmpgt_epi32_mask(__u, __a, __b);
   6911 }
   6912 
   6913 __mmask8 test_mm256_mask_cmpgt_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
   6914   // CHECK-LABEL: @test_mm256_mask_cmpgt_epi64_mask
   6915   // CHECK: icmp sgt <4 x i64> %{{.*}}, %{{.*}}
   6916   // CHECK: and <4 x i1> %{{.*}}, %{{.*}}
   6917   return (__mmask8)_mm256_mask_cmpgt_epi64_mask(__u, __a, __b);
   6918 }
   6919 
   6920 __mmask8 test_mm256_cmpgt_epi64_mask(__m256i __a, __m256i __b) {
   6921   // CHECK-LABEL: @test_mm256_cmpgt_epi64_mask
   6922   // CHECK: icmp sgt <4 x i64> %{{.*}}, %{{.*}}
   6923   return (__mmask8)_mm256_cmpgt_epi64_mask(__a, __b);
   6924 }
   6925