Home | History | Annotate | Download | only in CodeGen
      1 // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512f -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 __m512d test_mm512_sqrt_pd(__m512d a)
      9 {
     10   // CHECK-LABEL: @test_mm512_sqrt_pd
     11   // CHECK: @llvm.x86.avx512.mask.sqrt.pd.512
     12   return _mm512_sqrt_pd(a);
     13 }
     14 
     15 __m512 test_mm512_sqrt_ps(__m512 a)
     16 {
     17   // CHECK-LABEL: @test_mm512_sqrt_ps
     18   // CHECK: @llvm.x86.avx512.mask.sqrt.ps.512
     19   return _mm512_sqrt_ps(a);
     20 }
     21 
     22 __m512d test_mm512_rsqrt14_pd(__m512d a)
     23 {
     24   // CHECK-LABEL: @test_mm512_rsqrt14_pd
     25   // CHECK: @llvm.x86.avx512.rsqrt14.pd.512
     26   return _mm512_rsqrt14_pd(a);
     27 }
     28 
     29 __m512 test_mm512_rsqrt14_ps(__m512 a)
     30 {
     31   // CHECK-LABEL: @test_mm512_rsqrt14_ps
     32   // CHECK: @llvm.x86.avx512.rsqrt14.ps.512
     33   return _mm512_rsqrt14_ps(a);
     34 }
     35 
     36 __m512 test_mm512_add_ps(__m512 a, __m512 b)
     37 {
     38   // CHECK-LABEL: @test_mm512_add_ps
     39   // CHECK: fadd <16 x float>
     40   return _mm512_add_ps(a, b);
     41 }
     42 
     43 __m512d test_mm512_add_pd(__m512d a, __m512d b)
     44 {
     45   // CHECK-LABEL: @test_mm512_add_pd
     46   // CHECK: fadd <8 x double>
     47   return _mm512_add_pd(a, b);
     48 }
     49 
     50 __m512 test_mm512_mul_ps(__m512 a, __m512 b)
     51 {
     52   // CHECK-LABEL: @test_mm512_mul_ps
     53   // CHECK: fmul <16 x float>
     54   return _mm512_mul_ps(a, b);
     55 }
     56 
     57 __m512d test_mm512_mul_pd(__m512d a, __m512d b)
     58 {
     59   // CHECK-LABEL: @test_mm512_mul_pd
     60   // CHECK: fmul <8 x double>
     61   return _mm512_mul_pd(a, b);
     62 }
     63 
     64 void test_mm512_storeu_ps(void *p, __m512 a)
     65 {
     66   // CHECK-LABEL: @test_mm512_storeu_ps
     67   // CHECK: @llvm.x86.avx512.mask.storeu.ps.512
     68   _mm512_storeu_ps(p, a);
     69 }
     70 
     71 void test_mm512_storeu_pd(void *p, __m512d a)
     72 {
     73   // CHECK-LABEL: @test_mm512_storeu_pd
     74   // CHECK: @llvm.x86.avx512.mask.storeu.pd.512
     75   _mm512_storeu_pd(p, a);
     76 }
     77 
     78 void test_mm512_mask_store_ps(void *p, __m512 a, __mmask16 m)
     79 {
     80   // CHECK-LABEL: @test_mm512_mask_store_ps
     81   // CHECK: @llvm.x86.avx512.mask.store.ps.512
     82   _mm512_mask_store_ps(p, m, a);
     83 }
     84 
     85 void test_mm512_store_ps(void *p, __m512 a)
     86 {
     87   // CHECK-LABEL: @test_mm512_store_ps
     88   // CHECK: store <16 x float>
     89   _mm512_store_ps(p, a);
     90 }
     91 
     92 void test_mm512_mask_store_pd(void *p, __m512d a, __mmask8 m)
     93 {
     94   // CHECK-LABEL: @test_mm512_mask_store_pd
     95   // CHECK: @llvm.x86.avx512.mask.store.pd.512
     96   _mm512_mask_store_pd(p, m, a);
     97 }
     98 
     99 void test_mm512_store_pd(void *p, __m512d a)
    100 {
    101   // CHECK-LABEL: @test_mm512_store_pd
    102   // CHECK: store <8 x double>
    103   _mm512_store_pd(p, a);
    104 }
    105 
    106 __m512 test_mm512_loadu_ps(void *p)
    107 {
    108   // CHECK-LABEL: @test_mm512_loadu_ps
    109   // CHECK: load <16 x float>, <16 x float>* {{.*}}, align 1{{$}}
    110   return _mm512_loadu_ps(p);
    111 }
    112 
    113 __m512d test_mm512_loadu_pd(void *p)
    114 {
    115   // CHECK-LABEL: @test_mm512_loadu_pd
    116   // CHECK: load <8 x double>, <8 x double>* {{.*}}, align 1{{$}}
    117   return _mm512_loadu_pd(p);
    118 }
    119 
    120 __m512 test_mm512_maskz_load_ps(void *p, __mmask16 m)
    121 {
    122   // CHECK-LABEL: @test_mm512_maskz_load_ps
    123   // CHECK: @llvm.x86.avx512.mask.load.ps.512
    124   return _mm512_maskz_load_ps(m, p);
    125 }
    126 
    127 __m512 test_mm512_load_ps(void *p)
    128 {
    129   // CHECK-LABEL: @test_mm512_load_ps
    130   // CHECK: @llvm.x86.avx512.mask.load.ps.512
    131   return _mm512_load_ps(p);
    132 }
    133 
    134 __m512d test_mm512_maskz_load_pd(void *p, __mmask8 m)
    135 {
    136   // CHECK-LABEL: @test_mm512_maskz_load_pd
    137   // CHECK: @llvm.x86.avx512.mask.load.pd.512
    138   return _mm512_maskz_load_pd(m, p);
    139 }
    140 
    141 __m512d test_mm512_load_pd(void *p)
    142 {
    143   // CHECK-LABEL: @test_mm512_load_pd
    144   // CHECK: @llvm.x86.avx512.mask.load.pd.512
    145   return _mm512_load_pd(p);
    146 }
    147 
    148 __m512d test_mm512_set1_pd(double d)
    149 {
    150   // CHECK-LABEL: @test_mm512_set1_pd
    151   // CHECK: insertelement <8 x double> {{.*}}, i32 0
    152   // CHECK: insertelement <8 x double> {{.*}}, i32 1
    153   // CHECK: insertelement <8 x double> {{.*}}, i32 2
    154   // CHECK: insertelement <8 x double> {{.*}}, i32 3
    155   // CHECK: insertelement <8 x double> {{.*}}, i32 4
    156   // CHECK: insertelement <8 x double> {{.*}}, i32 5
    157   // CHECK: insertelement <8 x double> {{.*}}, i32 6
    158   // CHECK: insertelement <8 x double> {{.*}}, i32 7
    159   return _mm512_set1_pd(d);
    160 }
    161 
    162 __m512d test_mm512_castpd256_pd512(__m256d a)
    163 {
    164   // CHECK-LABEL: @test_mm512_castpd256_pd512
    165   // CHECK: shufflevector <4 x double> {{.*}} <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>
    166   return _mm512_castpd256_pd512(a);
    167 }
    168 
    169 __mmask16 test_mm512_knot(__mmask16 a)
    170 {
    171   // CHECK-LABEL: @test_mm512_knot
    172   // CHECK: @llvm.x86.avx512.knot.w
    173   return _mm512_knot(a);
    174 }
    175 
    176 __m512i test_mm512_alignr_epi32(__m512i a, __m512i b)
    177 {
    178   // CHECK-LABEL: @test_mm512_alignr_epi32
    179   // CHECK: @llvm.x86.avx512.mask.valign.d.512
    180   return _mm512_alignr_epi32(a, b, 2);
    181 }
    182 
    183 __m512i test_mm512_alignr_epi64(__m512i a, __m512i b)
    184 {
    185   // CHECK-LABEL: @test_mm512_alignr_epi64
    186   // CHECK: @llvm.x86.avx512.mask.valign.q.512
    187   return _mm512_alignr_epi64(a, b, 2);
    188 }
    189 
    190 __m512d test_mm512_broadcastsd_pd(__m128d a)
    191 {
    192   // CHECK-LABEL: @test_mm512_broadcastsd_pd
    193   // CHECK: insertelement <8 x double> {{.*}}, i32 0
    194   // CHECK: insertelement <8 x double> {{.*}}, i32 1
    195   // CHECK: insertelement <8 x double> {{.*}}, i32 2
    196   // CHECK: insertelement <8 x double> {{.*}}, i32 3
    197   // CHECK: insertelement <8 x double> {{.*}}, i32 4
    198   // CHECK: insertelement <8 x double> {{.*}}, i32 5
    199   // CHECK: insertelement <8 x double> {{.*}}, i32 6
    200   // CHECK: insertelement <8 x double> {{.*}}, i32 7
    201   return _mm512_broadcastsd_pd(a);
    202 }
    203 
    204 __m512d test_mm512_fmadd_round_pd(__m512d __A, __m512d __B, __m512d __C) {
    205   // CHECK-LABEL: @test_mm512_fmadd_round_pd
    206   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
    207   return _mm512_fmadd_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    208 }
    209 
    210 __m512d test_mm512_mask_fmadd_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
    211   // CHECK-LABEL: @test_mm512_mask_fmadd_round_pd
    212   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
    213   return _mm512_mask_fmadd_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    214 }
    215 __m512d test_mm512_mask3_fmadd_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
    216   // CHECK-LABEL: @test_mm512_mask3_fmadd_round_pd
    217   // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.512
    218   return _mm512_mask3_fmadd_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
    219 }
    220 __m512d test_mm512_maskz_fmadd_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
    221   // CHECK-LABEL: @test_mm512_maskz_fmadd_round_pd
    222   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
    223   return _mm512_maskz_fmadd_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    224 }
    225 __m512d test_mm512_fmsub_round_pd(__m512d __A, __m512d __B, __m512d __C) {
    226   // CHECK-LABEL: @test_mm512_fmsub_round_pd
    227   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
    228   return _mm512_fmsub_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    229 }
    230 __m512d test_mm512_mask_fmsub_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
    231   // CHECK-LABEL: @test_mm512_mask_fmsub_round_pd
    232   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
    233   return _mm512_mask_fmsub_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    234 }
    235 __m512d test_mm512_maskz_fmsub_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
    236   // CHECK-LABEL: @test_mm512_maskz_fmsub_round_pd
    237   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
    238   return _mm512_maskz_fmsub_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    239 }
    240 __m512d test_mm512_fnmadd_round_pd(__m512d __A, __m512d __B, __m512d __C) {
    241   // CHECK-LABEL: @test_mm512_fnmadd_round_pd
    242   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
    243   return _mm512_fnmadd_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    244 }
    245 __m512d test_mm512_mask3_fnmadd_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
    246   // CHECK-LABEL: @test_mm512_mask3_fnmadd_round_pd
    247   // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.512
    248   return _mm512_mask3_fnmadd_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
    249 }
    250 __m512d test_mm512_maskz_fnmadd_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
    251   // CHECK-LABEL: @test_mm512_maskz_fnmadd_round_pd
    252   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
    253   return _mm512_maskz_fnmadd_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    254 }
    255 __m512d test_mm512_fnmsub_round_pd(__m512d __A, __m512d __B, __m512d __C) {
    256   // CHECK-LABEL: @test_mm512_fnmsub_round_pd
    257   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
    258   return _mm512_fnmsub_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    259 }
    260 __m512d test_mm512_maskz_fnmsub_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
    261   // CHECK-LABEL: @test_mm512_maskz_fnmsub_round_pd
    262   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
    263   return _mm512_maskz_fnmsub_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    264 }
    265 __m512d test_mm512_fmadd_pd(__m512d __A, __m512d __B, __m512d __C) {
    266   // CHECK-LABEL: @test_mm512_fmadd_pd
    267   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
    268   return _mm512_fmadd_pd(__A, __B, __C);
    269 }
    270 __m512d test_mm512_mask_fmadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
    271   // CHECK-LABEL: @test_mm512_mask_fmadd_pd
    272   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
    273   return _mm512_mask_fmadd_pd(__A, __U, __B, __C);
    274 }
    275 __m512d test_mm512_mask3_fmadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
    276   // CHECK-LABEL: @test_mm512_mask3_fmadd_pd
    277   // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.512
    278   return _mm512_mask3_fmadd_pd(__A, __B, __C, __U);
    279 }
    280 __m512d test_mm512_maskz_fmadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
    281   // CHECK-LABEL: @test_mm512_maskz_fmadd_pd
    282   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
    283   return _mm512_maskz_fmadd_pd(__U, __A, __B, __C);
    284 }
    285 __m512d test_mm512_fmsub_pd(__m512d __A, __m512d __B, __m512d __C) {
    286   // CHECK-LABEL: @test_mm512_fmsub_pd
    287   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
    288   return _mm512_fmsub_pd(__A, __B, __C);
    289 }
    290 __m512d test_mm512_mask_fmsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
    291   // CHECK-LABEL: @test_mm512_mask_fmsub_pd
    292   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
    293   return _mm512_mask_fmsub_pd(__A, __U, __B, __C);
    294 }
    295 __m512d test_mm512_maskz_fmsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
    296   // CHECK-LABEL: @test_mm512_maskz_fmsub_pd
    297   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
    298   return _mm512_maskz_fmsub_pd(__U, __A, __B, __C);
    299 }
    300 __m512d test_mm512_fnmadd_pd(__m512d __A, __m512d __B, __m512d __C) {
    301   // CHECK-LABEL: @test_mm512_fnmadd_pd
    302   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
    303   return _mm512_fnmadd_pd(__A, __B, __C);
    304 }
    305 __m512d test_mm512_mask3_fnmadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
    306   // CHECK-LABEL: @test_mm512_mask3_fnmadd_pd
    307   // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.512
    308   return _mm512_mask3_fnmadd_pd(__A, __B, __C, __U);
    309 }
    310 __m512d test_mm512_maskz_fnmadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
    311   // CHECK-LABEL: @test_mm512_maskz_fnmadd_pd
    312   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
    313   return _mm512_maskz_fnmadd_pd(__U, __A, __B, __C);
    314 }
    315 __m512d test_mm512_fnmsub_pd(__m512d __A, __m512d __B, __m512d __C) {
    316   // CHECK-LABEL: @test_mm512_fnmsub_pd
    317   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
    318   return _mm512_fnmsub_pd(__A, __B, __C);
    319 }
    320 __m512d test_mm512_maskz_fnmsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
    321   // CHECK-LABEL: @test_mm512_maskz_fnmsub_pd
    322   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
    323   return _mm512_maskz_fnmsub_pd(__U, __A, __B, __C);
    324 }
    325 __m512 test_mm512_fmadd_round_ps(__m512 __A, __m512 __B, __m512 __C) {
    326   // CHECK-LABEL: @test_mm512_fmadd_round_ps
    327   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
    328   return _mm512_fmadd_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    329 }
    330 __m512 test_mm512_mask_fmadd_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
    331   // CHECK-LABEL: @test_mm512_mask_fmadd_round_ps
    332   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
    333   return _mm512_mask_fmadd_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    334 }
    335 __m512 test_mm512_mask3_fmadd_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
    336   // CHECK-LABEL: @test_mm512_mask3_fmadd_round_ps
    337   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.512
    338   return _mm512_mask3_fmadd_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
    339 }
    340 __m512 test_mm512_maskz_fmadd_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
    341   // CHECK-LABEL: @test_mm512_maskz_fmadd_round_ps
    342   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
    343   return _mm512_maskz_fmadd_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    344 }
    345 __m512 test_mm512_fmsub_round_ps(__m512 __A, __m512 __B, __m512 __C) {
    346   // CHECK-LABEL: @test_mm512_fmsub_round_ps
    347   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
    348   return _mm512_fmsub_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    349 }
    350 __m512 test_mm512_mask_fmsub_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
    351   // CHECK-LABEL: @test_mm512_mask_fmsub_round_ps
    352   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
    353   return _mm512_mask_fmsub_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    354 }
    355 __m512 test_mm512_maskz_fmsub_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
    356   // CHECK-LABEL: @test_mm512_maskz_fmsub_round_ps
    357   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
    358   return _mm512_maskz_fmsub_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    359 }
    360 __m512 test_mm512_fnmadd_round_ps(__m512 __A, __m512 __B, __m512 __C) {
    361   // CHECK-LABEL: @test_mm512_fnmadd_round_ps
    362   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
    363   return _mm512_fnmadd_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    364 }
    365 __m512 test_mm512_mask3_fnmadd_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
    366   // CHECK-LABEL: @test_mm512_mask3_fnmadd_round_ps
    367   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.512
    368   return _mm512_mask3_fnmadd_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
    369 }
    370 __m512 test_mm512_maskz_fnmadd_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
    371   // CHECK-LABEL: @test_mm512_maskz_fnmadd_round_ps
    372   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
    373   return _mm512_maskz_fnmadd_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    374 }
    375 __m512 test_mm512_fnmsub_round_ps(__m512 __A, __m512 __B, __m512 __C) {
    376   // CHECK-LABEL: @test_mm512_fnmsub_round_ps
    377   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
    378   return _mm512_fnmsub_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    379 }
    380 __m512 test_mm512_maskz_fnmsub_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
    381   // CHECK-LABEL: @test_mm512_maskz_fnmsub_round_ps
    382   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
    383   return _mm512_maskz_fnmsub_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    384 }
    385 __m512 test_mm512_fmadd_ps(__m512 __A, __m512 __B, __m512 __C) {
    386   // CHECK-LABEL: @test_mm512_fmadd_ps
    387   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
    388   return _mm512_fmadd_ps(__A, __B, __C);
    389 }
    390 __m512 test_mm512_mask_fmadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
    391   // CHECK-LABEL: @test_mm512_mask_fmadd_ps
    392   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
    393   return _mm512_mask_fmadd_ps(__A, __U, __B, __C);
    394 }
    395 __m512 test_mm512_mask3_fmadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
    396   // CHECK-LABEL: @test_mm512_mask3_fmadd_ps
    397   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.512
    398   return _mm512_mask3_fmadd_ps(__A, __B, __C, __U);
    399 }
    400 __m512 test_mm512_maskz_fmadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
    401   // CHECK-LABEL: @test_mm512_maskz_fmadd_ps
    402   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
    403   return _mm512_maskz_fmadd_ps(__U, __A, __B, __C);
    404 }
    405 __m512 test_mm512_fmsub_ps(__m512 __A, __m512 __B, __m512 __C) {
    406   // CHECK-LABEL: @test_mm512_fmsub_ps
    407   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
    408   return _mm512_fmsub_ps(__A, __B, __C);
    409 }
    410 __m512 test_mm512_mask_fmsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
    411   // CHECK-LABEL: @test_mm512_mask_fmsub_ps
    412   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
    413   return _mm512_mask_fmsub_ps(__A, __U, __B, __C);
    414 }
    415 __m512 test_mm512_maskz_fmsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
    416   // CHECK-LABEL: @test_mm512_maskz_fmsub_ps
    417   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
    418   return _mm512_maskz_fmsub_ps(__U, __A, __B, __C);
    419 }
    420 __m512 test_mm512_fnmadd_ps(__m512 __A, __m512 __B, __m512 __C) {
    421   // CHECK-LABEL: @test_mm512_fnmadd_ps
    422   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
    423   return _mm512_fnmadd_ps(__A, __B, __C);
    424 }
    425 __m512 test_mm512_mask3_fnmadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
    426   // CHECK-LABEL: @test_mm512_mask3_fnmadd_ps
    427   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.512
    428   return _mm512_mask3_fnmadd_ps(__A, __B, __C, __U);
    429 }
    430 __m512 test_mm512_maskz_fnmadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
    431   // CHECK-LABEL: @test_mm512_maskz_fnmadd_ps
    432   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
    433   return _mm512_maskz_fnmadd_ps(__U, __A, __B, __C);
    434 }
    435 __m512 test_mm512_fnmsub_ps(__m512 __A, __m512 __B, __m512 __C) {
    436   // CHECK-LABEL: @test_mm512_fnmsub_ps
    437   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
    438   return _mm512_fnmsub_ps(__A, __B, __C);
    439 }
    440 __m512 test_mm512_maskz_fnmsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
    441   // CHECK-LABEL: @test_mm512_maskz_fnmsub_ps
    442   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
    443   return _mm512_maskz_fnmsub_ps(__U, __A, __B, __C);
    444 }
    445 __m512d test_mm512_fmaddsub_round_pd(__m512d __A, __m512d __B, __m512d __C) {
    446   // CHECK-LABEL: @test_mm512_fmaddsub_round_pd
    447   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
    448   return _mm512_fmaddsub_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    449 }
    450 __m512d test_mm512_mask_fmaddsub_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
    451   // CHECK-LABEL: @test_mm512_mask_fmaddsub_round_pd
    452   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
    453   return _mm512_mask_fmaddsub_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    454 }
    455 __m512d test_mm512_mask3_fmaddsub_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
    456   // CHECK-LABEL: @test_mm512_mask3_fmaddsub_round_pd
    457   // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.pd.512
    458   return _mm512_mask3_fmaddsub_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
    459 }
    460 __m512d test_mm512_maskz_fmaddsub_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
    461   // CHECK-LABEL: @test_mm512_maskz_fmaddsub_round_pd
    462   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.512
    463   return _mm512_maskz_fmaddsub_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    464 }
    465 __m512d test_mm512_fmsubadd_round_pd(__m512d __A, __m512d __B, __m512d __C) {
    466   // CHECK-LABEL: @test_mm512_fmsubadd_round_pd
    467   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
    468   return _mm512_fmsubadd_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    469 }
    470 __m512d test_mm512_mask_fmsubadd_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
    471   // CHECK-LABEL: @test_mm512_mask_fmsubadd_round_pd
    472   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
    473   return _mm512_mask_fmsubadd_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    474 }
    475 __m512d test_mm512_maskz_fmsubadd_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
    476   // CHECK-LABEL: @test_mm512_maskz_fmsubadd_round_pd
    477   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.512
    478   return _mm512_maskz_fmsubadd_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    479 }
    480 __m512d test_mm512_fmaddsub_pd(__m512d __A, __m512d __B, __m512d __C) {
    481   // CHECK-LABEL: @test_mm512_fmaddsub_pd
    482   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
    483   return _mm512_fmaddsub_pd(__A, __B, __C);
    484 }
    485 __m512d test_mm512_mask_fmaddsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
    486   // CHECK-LABEL: @test_mm512_mask_fmaddsub_pd
    487   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
    488   return _mm512_mask_fmaddsub_pd(__A, __U, __B, __C);
    489 }
    490 __m512d test_mm512_mask3_fmaddsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
    491   // CHECK-LABEL: @test_mm512_mask3_fmaddsub_pd
    492   // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.pd.512
    493   return _mm512_mask3_fmaddsub_pd(__A, __B, __C, __U);
    494 }
    495 __m512d test_mm512_maskz_fmaddsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
    496   // CHECK-LABEL: @test_mm512_maskz_fmaddsub_pd
    497   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.512
    498   return _mm512_maskz_fmaddsub_pd(__U, __A, __B, __C);
    499 }
    500 __m512d test_mm512_fmsubadd_pd(__m512d __A, __m512d __B, __m512d __C) {
    501   // CHECK-LABEL: @test_mm512_fmsubadd_pd
    502   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
    503   return _mm512_fmsubadd_pd(__A, __B, __C);
    504 }
    505 __m512d test_mm512_mask_fmsubadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
    506   // CHECK-LABEL: @test_mm512_mask_fmsubadd_pd
    507   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
    508   return _mm512_mask_fmsubadd_pd(__A, __U, __B, __C);
    509 }
    510 __m512d test_mm512_maskz_fmsubadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
    511   // CHECK-LABEL: @test_mm512_maskz_fmsubadd_pd
    512   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.512
    513   return _mm512_maskz_fmsubadd_pd(__U, __A, __B, __C);
    514 }
    515 __m512 test_mm512_fmaddsub_round_ps(__m512 __A, __m512 __B, __m512 __C) {
    516   // CHECK-LABEL: @test_mm512_fmaddsub_round_ps
    517   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
    518   return _mm512_fmaddsub_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    519 }
    520 __m512 test_mm512_mask_fmaddsub_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
    521   // CHECK-LABEL: @test_mm512_mask_fmaddsub_round_ps
    522   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
    523   return _mm512_mask_fmaddsub_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    524 }
    525 __m512 test_mm512_mask3_fmaddsub_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
    526   // CHECK-LABEL: @test_mm512_mask3_fmaddsub_round_ps
    527   // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.ps.512
    528   return _mm512_mask3_fmaddsub_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
    529 }
    530 __m512 test_mm512_maskz_fmaddsub_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
    531   // CHECK-LABEL: @test_mm512_maskz_fmaddsub_round_ps
    532   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.512
    533   return _mm512_maskz_fmaddsub_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    534 }
    535 __m512 test_mm512_fmsubadd_round_ps(__m512 __A, __m512 __B, __m512 __C) {
    536   // CHECK-LABEL: @test_mm512_fmsubadd_round_ps
    537   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
    538   return _mm512_fmsubadd_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    539 }
    540 __m512 test_mm512_mask_fmsubadd_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
    541   // CHECK-LABEL: @test_mm512_mask_fmsubadd_round_ps
    542   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
    543   return _mm512_mask_fmsubadd_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    544 }
    545 __m512 test_mm512_maskz_fmsubadd_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
    546   // CHECK-LABEL: @test_mm512_maskz_fmsubadd_round_ps
    547   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.512
    548   return _mm512_maskz_fmsubadd_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    549 }
    550 __m512 test_mm512_fmaddsub_ps(__m512 __A, __m512 __B, __m512 __C) {
    551   // CHECK-LABEL: @test_mm512_fmaddsub_ps
    552   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
    553   return _mm512_fmaddsub_ps(__A, __B, __C);
    554 }
    555 __m512 test_mm512_mask_fmaddsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
    556   // CHECK-LABEL: @test_mm512_mask_fmaddsub_ps
    557   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
    558   return _mm512_mask_fmaddsub_ps(__A, __U, __B, __C);
    559 }
    560 __m512 test_mm512_mask3_fmaddsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
    561   // CHECK-LABEL: @test_mm512_mask3_fmaddsub_ps
    562   // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.ps.512
    563   return _mm512_mask3_fmaddsub_ps(__A, __B, __C, __U);
    564 }
    565 __m512 test_mm512_maskz_fmaddsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
    566   // CHECK-LABEL: @test_mm512_maskz_fmaddsub_ps
    567   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.512
    568   return _mm512_maskz_fmaddsub_ps(__U, __A, __B, __C);
    569 }
    570 __m512 test_mm512_fmsubadd_ps(__m512 __A, __m512 __B, __m512 __C) {
    571   // CHECK-LABEL: @test_mm512_fmsubadd_ps
    572   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
    573   return _mm512_fmsubadd_ps(__A, __B, __C);
    574 }
    575 __m512 test_mm512_mask_fmsubadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
    576   // CHECK-LABEL: @test_mm512_mask_fmsubadd_ps
    577   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
    578   return _mm512_mask_fmsubadd_ps(__A, __U, __B, __C);
    579 }
    580 __m512 test_mm512_maskz_fmsubadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
    581   // CHECK-LABEL: @test_mm512_maskz_fmsubadd_ps
    582   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.512
    583   return _mm512_maskz_fmsubadd_ps(__U, __A, __B, __C);
    584 }
    585 __m512d test_mm512_mask3_fmsub_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
    586   // CHECK-LABEL: @test_mm512_mask3_fmsub_round_pd
    587   // CHECK: @llvm.x86.avx512.mask3.vfmsub.pd.512
    588   return _mm512_mask3_fmsub_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
    589 }
    590 __m512d test_mm512_mask3_fmsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
    591   // CHECK-LABEL: @test_mm512_mask3_fmsub_pd
    592   // CHECK: @llvm.x86.avx512.mask3.vfmsub.pd.512
    593   return _mm512_mask3_fmsub_pd(__A, __B, __C, __U);
    594 }
    595 __m512 test_mm512_mask3_fmsub_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
    596   // CHECK-LABEL: @test_mm512_mask3_fmsub_round_ps
    597   // CHECK: @llvm.x86.avx512.mask3.vfmsub.ps.512
    598   return _mm512_mask3_fmsub_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
    599 }
    600 __m512 test_mm512_mask3_fmsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
    601   // CHECK-LABEL: @test_mm512_mask3_fmsub_ps
    602   // CHECK: @llvm.x86.avx512.mask3.vfmsub.ps.512
    603   return _mm512_mask3_fmsub_ps(__A, __B, __C, __U);
    604 }
    605 __m512d test_mm512_mask3_fmsubadd_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
    606   // CHECK-LABEL: @test_mm512_mask3_fmsubadd_round_pd
    607   // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.pd.512
    608   return _mm512_mask3_fmsubadd_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
    609 }
    610 __m512d test_mm512_mask3_fmsubadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
    611   // CHECK-LABEL: @test_mm512_mask3_fmsubadd_pd
    612   // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.pd.512
    613   return _mm512_mask3_fmsubadd_pd(__A, __B, __C, __U);
    614 }
    615 __m512 test_mm512_mask3_fmsubadd_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
    616   // CHECK-LABEL: @test_mm512_mask3_fmsubadd_round_ps
    617   // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.ps.512
    618   return _mm512_mask3_fmsubadd_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
    619 }
    620 __m512 test_mm512_mask3_fmsubadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
    621   // CHECK-LABEL: @test_mm512_mask3_fmsubadd_ps
    622   // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.ps.512
    623   return _mm512_mask3_fmsubadd_ps(__A, __B, __C, __U);
    624 }
    625 __m512d test_mm512_mask_fnmadd_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
    626   // CHECK-LABEL: @test_mm512_mask_fnmadd_round_pd
    627   // CHECK: @llvm.x86.avx512.mask.vfnmadd.pd.512
    628   return _mm512_mask_fnmadd_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    629 }
    630 __m512d test_mm512_mask_fnmadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
    631   // CHECK-LABEL: @test_mm512_mask_fnmadd_pd
    632   // CHECK: @llvm.x86.avx512.mask.vfnmadd.pd.512
    633   return _mm512_mask_fnmadd_pd(__A, __U, __B, __C);
    634 }
    635 __m512 test_mm512_mask_fnmadd_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
    636   // CHECK-LABEL: @test_mm512_mask_fnmadd_round_ps
    637   // CHECK: @llvm.x86.avx512.mask.vfnmadd.ps.512
    638   return _mm512_mask_fnmadd_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    639 }
    640 __m512 test_mm512_mask_fnmadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
    641   // CHECK-LABEL: @test_mm512_mask_fnmadd_ps
    642   // CHECK: @llvm.x86.avx512.mask.vfnmadd.ps.512
    643   return _mm512_mask_fnmadd_ps(__A, __U, __B, __C);
    644 }
    645 __m512d test_mm512_mask_fnmsub_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
    646   // CHECK-LABEL: @test_mm512_mask_fnmsub_round_pd
    647   // CHECK: @llvm.x86.avx512.mask.vfnmsub.pd.512
    648   return _mm512_mask_fnmsub_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    649 }
    650 __m512d test_mm512_mask3_fnmsub_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
    651   // CHECK-LABEL: @test_mm512_mask3_fnmsub_round_pd
    652   // CHECK: @llvm.x86.avx512.mask3.vfnmsub.pd.512
    653   return _mm512_mask3_fnmsub_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
    654 }
    655 __m512d test_mm512_mask_fnmsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
    656   // CHECK-LABEL: @test_mm512_mask_fnmsub_pd
    657   // CHECK: @llvm.x86.avx512.mask.vfnmsub.pd.512
    658   return _mm512_mask_fnmsub_pd(__A, __U, __B, __C);
    659 }
    660 __m512d test_mm512_mask3_fnmsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
    661   // CHECK-LABEL: @test_mm512_mask3_fnmsub_pd
    662   // CHECK: @llvm.x86.avx512.mask3.vfnmsub.pd.512
    663   return _mm512_mask3_fnmsub_pd(__A, __B, __C, __U);
    664 }
    665 __m512 test_mm512_mask_fnmsub_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
    666   // CHECK-LABEL: @test_mm512_mask_fnmsub_round_ps
    667   // CHECK: @llvm.x86.avx512.mask.vfnmsub.ps.512
    668   return _mm512_mask_fnmsub_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    669 }
    670 __m512 test_mm512_mask3_fnmsub_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
    671   // CHECK-LABEL: @test_mm512_mask3_fnmsub_round_ps
    672   // CHECK: @llvm.x86.avx512.mask3.vfnmsub.ps.512
    673   return _mm512_mask3_fnmsub_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
    674 }
    675 __m512 test_mm512_mask_fnmsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
    676   // CHECK-LABEL: @test_mm512_mask_fnmsub_ps
    677   // CHECK: @llvm.x86.avx512.mask.vfnmsub.ps.512
    678   return _mm512_mask_fnmsub_ps(__A, __U, __B, __C);
    679 }
    680 __m512 test_mm512_mask3_fnmsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
    681   // CHECK-LABEL: @test_mm512_mask3_fnmsub_ps
    682   // CHECK: @llvm.x86.avx512.mask3.vfnmsub.ps.512
    683   return _mm512_mask3_fnmsub_ps(__A, __B, __C, __U);
    684 }
    685 
    686 __mmask16 test_mm512_cmpeq_epi32_mask(__m512i __a, __m512i __b) {
    687   // CHECK-LABEL: @test_mm512_cmpeq_epi32_mask
    688   // CHECK: @llvm.x86.avx512.mask.pcmpeq.d.512
    689   return (__mmask16)_mm512_cmpeq_epi32_mask(__a, __b);
    690 }
    691 
    692 __mmask16 test_mm512_mask_cmpeq_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
    693   // CHECK-LABEL: @test_mm512_mask_cmpeq_epi32_mask
    694   // CHECK: @llvm.x86.avx512.mask.pcmpeq.d.512
    695   return (__mmask16)_mm512_mask_cmpeq_epi32_mask(__u, __a, __b);
    696 }
    697 
    698 __mmask8 test_mm512_mask_cmpeq_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
    699   // CHECK-LABEL: @test_mm512_mask_cmpeq_epi64_mask
    700   // CHECK: @llvm.x86.avx512.mask.pcmpeq.q.512
    701   return (__mmask8)_mm512_mask_cmpeq_epi64_mask(__u, __a, __b);
    702 }
    703 
    704 __mmask8 test_mm512_cmpeq_epi64_mask(__m512i __a, __m512i __b) {
    705   // CHECK-LABEL: @test_mm512_cmpeq_epi64_mask
    706   // CHECK: @llvm.x86.avx512.mask.pcmpeq.q.512
    707   return (__mmask8)_mm512_cmpeq_epi64_mask(__a, __b);
    708 }
    709 
    710 __mmask16 test_mm512_cmpgt_epi32_mask(__m512i __a, __m512i __b) {
    711   // CHECK-LABEL: @test_mm512_cmpgt_epi32_mask
    712   // CHECK: @llvm.x86.avx512.mask.pcmpgt.d.512
    713   return (__mmask16)_mm512_cmpgt_epi32_mask(__a, __b);
    714 }
    715 
    716 __mmask16 test_mm512_mask_cmpgt_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
    717   // CHECK-LABEL: @test_mm512_mask_cmpgt_epi32_mask
    718   // CHECK: @llvm.x86.avx512.mask.pcmpgt.d.512
    719   return (__mmask16)_mm512_mask_cmpgt_epi32_mask(__u, __a, __b);
    720 }
    721 
    722 __mmask8 test_mm512_mask_cmpgt_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
    723   // CHECK-LABEL: @test_mm512_mask_cmpgt_epi64_mask
    724   // CHECK: @llvm.x86.avx512.mask.pcmpgt.q.512
    725   return (__mmask8)_mm512_mask_cmpgt_epi64_mask(__u, __a, __b);
    726 }
    727 
    728 __mmask8 test_mm512_cmpgt_epi64_mask(__m512i __a, __m512i __b) {
    729   // CHECK-LABEL: @test_mm512_cmpgt_epi64_mask
    730   // CHECK: @llvm.x86.avx512.mask.pcmpgt.q.512
    731   return (__mmask8)_mm512_cmpgt_epi64_mask(__a, __b);
    732 }
    733 
    734 __m512d test_mm512_unpackhi_pd(__m512d a, __m512d b)
    735 {
    736   // CHECK-LABEL: @test_mm512_unpackhi_pd
    737   // CHECK: shufflevector <8 x double> {{.*}} <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15>
    738   return _mm512_unpackhi_pd(a, b);
    739 }
    740 
    741 __m512d test_mm512_unpacklo_pd(__m512d a, __m512d b)
    742 {
    743   // CHECK-LABEL: @test_mm512_unpacklo_pd
    744   // CHECK: shufflevector <8 x double> {{.*}} <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14>
    745   return _mm512_unpacklo_pd(a, b);
    746 }
    747 
    748 __m512 test_mm512_unpackhi_ps(__m512 a, __m512 b)
    749 {
    750   // CHECK-LABEL: @test_mm512_unpackhi_ps
    751   // CHECK: shufflevector <16 x float> {{.*}} <i32 2, i32 18, i32 3, i32 19, i32 6, i32 22, i32 7, i32 23, i32 10, i32 26, i32 11, i32 27, i32 14, i32 30, i32 15, i32 31>
    752   return _mm512_unpackhi_ps(a, b);
    753 }
    754 
    755 __m512 test_mm512_unpacklo_ps(__m512 a, __m512 b)
    756 {
    757   // CHECK-LABEL: @test_mm512_unpacklo_ps
    758   // CHECK: shufflevector <16 x float> {{.*}} <i32 0, i32 16, i32 1, i32 17, i32 4, i32 20, i32 5, i32 21, i32 8, i32 24, i32 9, i32 25, i32 12, i32 28, i32 13, i32 29>
    759   return _mm512_unpacklo_ps(a, b);
    760 }
    761 
    762 __mmask16 test_mm512_cmp_round_ps_mask(__m512 a, __m512 b) {
    763   // CHECK-LABEL: @test_mm512_cmp_round_ps_mask
    764   // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
    765   return _mm512_cmp_round_ps_mask(a, b, 0, _MM_FROUND_TO_NEAREST_INT);
    766 }
    767 
    768 __mmask16 test_mm512_mask_cmp_round_ps_mask(__mmask16 m, __m512 a, __m512 b) {
    769   // CHECK-LABEL: @test_mm512_mask_cmp_round_ps_mask
    770   // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
    771   return _mm512_mask_cmp_round_ps_mask(m, a, b, 0, _MM_FROUND_TO_NEAREST_INT);
    772 }
    773 
    774 __mmask16 test_mm512_cmp_ps_mask(__m512 a, __m512 b) {
    775   // CHECK-LABEL: @test_mm512_cmp_ps_mask
    776   // CHECKn: @llvm.x86.avx512.mask.cmp.ps.512
    777   return _mm512_cmp_ps_mask(a, b, 0);
    778 }
    779 
    780 __mmask16 test_mm512_mask_cmp_ps_mask(__mmask16 m, __m512 a, __m512 b) {
    781   // CHECK-LABEL: @test_mm512_mask_cmp_ps_mask
    782   // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
    783   return _mm512_mask_cmp_ps_mask(m, a, b, 0);
    784 }
    785 
    786 __mmask8 test_mm512_cmp_round_pd_mask(__m512d a, __m512d b) {
    787   // CHECK-LABEL: @test_mm512_cmp_round_pd_mask
    788   // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
    789   return _mm512_cmp_round_pd_mask(a, b, 0, _MM_FROUND_TO_NEAREST_INT);
    790 }
    791 
    792 __mmask8 test_mm512_mask_cmp_round_pd_mask(__mmask8 m, __m512d a, __m512d b) {
    793   // CHECK-LABEL: @test_mm512_mask_cmp_round_pd_mask
    794   // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
    795   return _mm512_mask_cmp_round_pd_mask(m, a, b, 0, _MM_FROUND_TO_NEAREST_INT);
    796 }
    797 
    798 __mmask8 test_mm512_cmp_pd_mask(__m512d a, __m512d b) {
    799   // CHECK-LABEL: @test_mm512_cmp_pd_mask
    800   // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
    801   return _mm512_cmp_pd_mask(a, b, 0);
    802 }
    803 
    804 __mmask8 test_mm512_mask_cmp_pd_mask(__mmask8 m, __m512d a, __m512d b) {
    805   // CHECK-LABEL: @test_mm512_mask_cmp_pd_mask
    806   // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
    807   return _mm512_mask_cmp_pd_mask(m, a, b, 0);
    808 }
    809 
    810 __m256d test_mm512_extractf64x4_pd(__m512d a)
    811 {
    812   // CHECK-LABEL: @test_mm512_extractf64x4_pd
    813   // CHECK: @llvm.x86.avx512.mask.vextractf64x4.512
    814   return _mm512_extractf64x4_pd(a, 1);
    815 }
    816 
    817 __m128 test_mm512_extractf32x4_ps(__m512 a)
    818 {
    819   // CHECK-LABEL: @test_mm512_extractf32x4_ps
    820   // CHECK: @llvm.x86.avx512.mask.vextractf32x4.512
    821   return _mm512_extractf32x4_ps(a, 1);
    822 }
    823 
    824 __mmask16 test_mm512_cmpeq_epu32_mask(__m512i __a, __m512i __b) {
    825   // CHECK-LABEL: @test_mm512_cmpeq_epu32_mask
    826   // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 0, i16 -1)
    827   return (__mmask16)_mm512_cmpeq_epu32_mask(__a, __b);
    828 }
    829 
    830 __mmask16 test_mm512_mask_cmpeq_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
    831   // CHECK-LABEL: @test_mm512_mask_cmpeq_epu32_mask
    832   // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 0, i16 {{.*}})
    833   return (__mmask16)_mm512_mask_cmpeq_epu32_mask(__u, __a, __b);
    834 }
    835 
    836 __mmask8 test_mm512_cmpeq_epu64_mask(__m512i __a, __m512i __b) {
    837   // CHECK-LABEL: @test_mm512_cmpeq_epu64_mask
    838   // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 0, i8 -1)
    839   return (__mmask8)_mm512_cmpeq_epu64_mask(__a, __b);
    840 }
    841 
    842 __mmask8 test_mm512_mask_cmpeq_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
    843   // CHECK-LABEL: @test_mm512_mask_cmpeq_epu64_mask
    844   // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 0, i8 {{.*}})
    845   return (__mmask8)_mm512_mask_cmpeq_epu64_mask(__u, __a, __b);
    846 }
    847 
    848 __mmask16 test_mm512_cmpge_epi32_mask(__m512i __a, __m512i __b) {
    849   // CHECK-LABEL: @test_mm512_cmpge_epi32_mask
    850   // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 5, i16 -1)
    851   return (__mmask16)_mm512_cmpge_epi32_mask(__a, __b);
    852 }
    853 
    854 __mmask16 test_mm512_mask_cmpge_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
    855   // CHECK-LABEL: @test_mm512_mask_cmpge_epi32_mask
    856   // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 5, i16 {{.*}})
    857   return (__mmask16)_mm512_mask_cmpge_epi32_mask(__u, __a, __b);
    858 }
    859 
    860 __mmask8 test_mm512_cmpge_epi64_mask(__m512i __a, __m512i __b) {
    861   // CHECK-LABEL: @test_mm512_cmpge_epi64_mask
    862   // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 5, i8 -1)
    863   return (__mmask8)_mm512_cmpge_epi64_mask(__a, __b);
    864 }
    865 
    866 __mmask8 test_mm512_mask_cmpge_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
    867   // CHECK-LABEL: @test_mm512_mask_cmpge_epi64_mask
    868   // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 5, i8 {{.*}})
    869   return (__mmask8)_mm512_mask_cmpge_epi64_mask(__u, __a, __b);
    870 }
    871 
    872 __mmask16 test_mm512_cmpge_epu32_mask(__m512i __a, __m512i __b) {
    873   // CHECK-LABEL: @test_mm512_cmpge_epu32_mask
    874   // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 5, i16 -1)
    875   return (__mmask16)_mm512_cmpge_epu32_mask(__a, __b);
    876 }
    877 
    878 __mmask16 test_mm512_mask_cmpge_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
    879   // CHECK-LABEL: @test_mm512_mask_cmpge_epu32_mask
    880   // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 5, i16 {{.*}})
    881   return (__mmask16)_mm512_mask_cmpge_epu32_mask(__u, __a, __b);
    882 }
    883 
    884 __mmask8 test_mm512_cmpge_epu64_mask(__m512i __a, __m512i __b) {
    885   // CHECK-LABEL: @test_mm512_cmpge_epu64_mask
    886   // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 5, i8 -1)
    887   return (__mmask8)_mm512_cmpge_epu64_mask(__a, __b);
    888 }
    889 
    890 __mmask8 test_mm512_mask_cmpge_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
    891   // CHECK-LABEL: @test_mm512_mask_cmpge_epu64_mask
    892   // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 5, i8 {{.*}})
    893   return (__mmask8)_mm512_mask_cmpge_epu64_mask(__u, __a, __b);
    894 }
    895 
    896 __mmask16 test_mm512_cmpgt_epu32_mask(__m512i __a, __m512i __b) {
    897   // CHECK-LABEL: @test_mm512_cmpgt_epu32_mask
    898   // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 6, i16 -1)
    899   return (__mmask16)_mm512_cmpgt_epu32_mask(__a, __b);
    900 }
    901 
    902 __mmask16 test_mm512_mask_cmpgt_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
    903   // CHECK-LABEL: @test_mm512_mask_cmpgt_epu32_mask
    904   // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 6, i16 {{.*}})
    905   return (__mmask16)_mm512_mask_cmpgt_epu32_mask(__u, __a, __b);
    906 }
    907 
    908 __mmask8 test_mm512_cmpgt_epu64_mask(__m512i __a, __m512i __b) {
    909   // CHECK-LABEL: @test_mm512_cmpgt_epu64_mask
    910   // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 6, i8 -1)
    911   return (__mmask8)_mm512_cmpgt_epu64_mask(__a, __b);
    912 }
    913 
    914 __mmask8 test_mm512_mask_cmpgt_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
    915   // CHECK-LABEL: @test_mm512_mask_cmpgt_epu64_mask
    916   // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 6, i8 {{.*}})
    917   return (__mmask8)_mm512_mask_cmpgt_epu64_mask(__u, __a, __b);
    918 }
    919 
    920 __mmask16 test_mm512_cmple_epi32_mask(__m512i __a, __m512i __b) {
    921   // CHECK-LABEL: @test_mm512_cmple_epi32_mask
    922   // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 2, i16 -1)
    923   return (__mmask16)_mm512_cmple_epi32_mask(__a, __b);
    924 }
    925 
    926 __mmask16 test_mm512_mask_cmple_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
    927   // CHECK-LABEL: @test_mm512_mask_cmple_epi32_mask
    928   // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 2, i16 {{.*}})
    929   return (__mmask16)_mm512_mask_cmple_epi32_mask(__u, __a, __b);
    930 }
    931 
    932 __mmask8 test_mm512_cmple_epi64_mask(__m512i __a, __m512i __b) {
    933   // CHECK-LABEL: @test_mm512_cmple_epi64_mask
    934   // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 2, i8 -1)
    935   return (__mmask8)_mm512_cmple_epi64_mask(__a, __b);
    936 }
    937 
    938 __mmask8 test_mm512_mask_cmple_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
    939   // CHECK-LABEL: @test_mm512_mask_cmple_epi64_mask
    940   // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 2, i8 {{.*}})
    941   return (__mmask8)_mm512_mask_cmple_epi64_mask(__u, __a, __b);
    942 }
    943 
    944 __mmask16 test_mm512_cmple_epu32_mask(__m512i __a, __m512i __b) {
    945   // CHECK-LABEL: @test_mm512_cmple_epu32_mask
    946   // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 2, i16 -1)
    947   return (__mmask16)_mm512_cmple_epu32_mask(__a, __b);
    948 }
    949 
    950 __mmask16 test_mm512_mask_cmple_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
    951   // CHECK-LABEL: @test_mm512_mask_cmple_epu32_mask
    952   // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 2, i16 {{.*}})
    953   return (__mmask16)_mm512_mask_cmple_epu32_mask(__u, __a, __b);
    954 }
    955 
    956 __mmask8 test_mm512_cmple_epu64_mask(__m512i __a, __m512i __b) {
    957   // CHECK-LABEL: @test_mm512_cmple_epu64_mask
    958   // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 2, i8 -1)
    959   return (__mmask8)_mm512_cmple_epu64_mask(__a, __b);
    960 }
    961 
    962 __mmask8 test_mm512_mask_cmple_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
    963   // CHECK-LABEL: @test_mm512_mask_cmple_epu64_mask
    964   // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 2, i8 {{.*}})
    965   return (__mmask8)_mm512_mask_cmple_epu64_mask(__u, __a, __b);
    966 }
    967 
    968 __mmask16 test_mm512_cmplt_epi32_mask(__m512i __a, __m512i __b) {
    969   // CHECK-LABEL: @test_mm512_cmplt_epi32_mask
    970   // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 1, i16 -1)
    971   return (__mmask16)_mm512_cmplt_epi32_mask(__a, __b);
    972 }
    973 
    974 __mmask16 test_mm512_mask_cmplt_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
    975   // CHECK-LABEL: @test_mm512_mask_cmplt_epi32_mask
    976   // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 1, i16 {{.*}})
    977   return (__mmask16)_mm512_mask_cmplt_epi32_mask(__u, __a, __b);
    978 }
    979 
    980 __mmask8 test_mm512_cmplt_epi64_mask(__m512i __a, __m512i __b) {
    981   // CHECK-LABEL: @test_mm512_cmplt_epi64_mask
    982   // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 1, i8 -1)
    983   return (__mmask8)_mm512_cmplt_epi64_mask(__a, __b);
    984 }
    985 
    986 __mmask8 test_mm512_mask_cmplt_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
    987   // CHECK-LABEL: @test_mm512_mask_cmplt_epi64_mask
    988   // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 1, i8 {{.*}})
    989   return (__mmask8)_mm512_mask_cmplt_epi64_mask(__u, __a, __b);
    990 }
    991 
    992 __mmask16 test_mm512_cmplt_epu32_mask(__m512i __a, __m512i __b) {
    993   // CHECK-LABEL: @test_mm512_cmplt_epu32_mask
    994   // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 1, i16 -1)
    995   return (__mmask16)_mm512_cmplt_epu32_mask(__a, __b);
    996 }
    997 
    998 __mmask16 test_mm512_mask_cmplt_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
    999   // CHECK-LABEL: @test_mm512_mask_cmplt_epu32_mask
   1000   // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 1, i16 {{.*}})
   1001   return (__mmask16)_mm512_mask_cmplt_epu32_mask(__u, __a, __b);
   1002 }
   1003 
   1004 __mmask8 test_mm512_cmplt_epu64_mask(__m512i __a, __m512i __b) {
   1005   // CHECK-LABEL: @test_mm512_cmplt_epu64_mask
   1006   // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 1, i8 -1)
   1007   return (__mmask8)_mm512_cmplt_epu64_mask(__a, __b);
   1008 }
   1009 
   1010 __mmask8 test_mm512_mask_cmplt_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
   1011   // CHECK-LABEL: @test_mm512_mask_cmplt_epu64_mask
   1012   // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 1, i8 {{.*}})
   1013   return (__mmask8)_mm512_mask_cmplt_epu64_mask(__u, __a, __b);
   1014 }
   1015 
   1016 __mmask16 test_mm512_cmpneq_epi32_mask(__m512i __a, __m512i __b) {
   1017   // CHECK-LABEL: @test_mm512_cmpneq_epi32_mask
   1018   // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 4, i16 -1)
   1019   return (__mmask16)_mm512_cmpneq_epi32_mask(__a, __b);
   1020 }
   1021 
   1022 __mmask16 test_mm512_mask_cmpneq_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
   1023   // CHECK-LABEL: @test_mm512_mask_cmpneq_epi32_mask
   1024   // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 4, i16 {{.*}})
   1025   return (__mmask16)_mm512_mask_cmpneq_epi32_mask(__u, __a, __b);
   1026 }
   1027 
   1028 __mmask8 test_mm512_cmpneq_epi64_mask(__m512i __a, __m512i __b) {
   1029   // CHECK-LABEL: @test_mm512_cmpneq_epi64_mask
   1030   // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 4, i8 -1)
   1031   return (__mmask8)_mm512_cmpneq_epi64_mask(__a, __b);
   1032 }
   1033 
   1034 __mmask8 test_mm512_mask_cmpneq_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
   1035   // CHECK-LABEL: @test_mm512_mask_cmpneq_epi64_mask
   1036   // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 4, i8 {{.*}})
   1037   return (__mmask8)_mm512_mask_cmpneq_epi64_mask(__u, __a, __b);
   1038 }
   1039 
   1040 __mmask16 test_mm512_cmpneq_epu32_mask(__m512i __a, __m512i __b) {
   1041   // CHECK-LABEL: @test_mm512_cmpneq_epu32_mask
   1042   // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 4, i16 -1)
   1043   return (__mmask16)_mm512_cmpneq_epu32_mask(__a, __b);
   1044 }
   1045 
   1046 __mmask16 test_mm512_mask_cmpneq_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
   1047   // CHECK-LABEL: @test_mm512_mask_cmpneq_epu32_mask
   1048   // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 4, i16 {{.*}})
   1049   return (__mmask16)_mm512_mask_cmpneq_epu32_mask(__u, __a, __b);
   1050 }
   1051 
   1052 __mmask8 test_mm512_cmpneq_epu64_mask(__m512i __a, __m512i __b) {
   1053   // CHECK-LABEL: @test_mm512_cmpneq_epu64_mask
   1054   // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 4, i8 -1)
   1055   return (__mmask8)_mm512_cmpneq_epu64_mask(__a, __b);
   1056 }
   1057 
   1058 __mmask8 test_mm512_mask_cmpneq_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
   1059   // CHECK-LABEL: @test_mm512_mask_cmpneq_epu64_mask
   1060   // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 4, i8 {{.*}})
   1061   return (__mmask8)_mm512_mask_cmpneq_epu64_mask(__u, __a, __b);
   1062 }
   1063 
   1064 __mmask16 test_mm512_cmp_epi32_mask(__m512i __a, __m512i __b) {
   1065   // CHECK-LABEL: @test_mm512_cmp_epi32_mask
   1066   // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 3, i16 -1)
   1067   return (__mmask16)_mm512_cmp_epi32_mask(__a, __b, 3);
   1068 }
   1069 
   1070 __mmask16 test_mm512_mask_cmp_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
   1071   // CHECK-LABEL: @test_mm512_mask_cmp_epi32_mask
   1072   // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 3, i16 {{.*}})
   1073   return (__mmask16)_mm512_mask_cmp_epi32_mask(__u, __a, __b, 3);
   1074 }
   1075 
   1076 __mmask8 test_mm512_cmp_epi64_mask(__m512i __a, __m512i __b) {
   1077   // CHECK-LABEL: @test_mm512_cmp_epi64_mask
   1078   // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 3, i8 -1)
   1079   return (__mmask8)_mm512_cmp_epi64_mask(__a, __b, 3);
   1080 }
   1081 
   1082 __mmask8 test_mm512_mask_cmp_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
   1083   // CHECK-LABEL: @test_mm512_mask_cmp_epi64_mask
   1084   // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 3, i8 {{.*}})
   1085   return (__mmask8)_mm512_mask_cmp_epi64_mask(__u, __a, __b, 3);
   1086 }
   1087 
   1088 __mmask16 test_mm512_cmp_epu32_mask(__m512i __a, __m512i __b) {
   1089   // CHECK-LABEL: @test_mm512_cmp_epu32_mask
   1090   // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 3, i16 -1)
   1091   return (__mmask16)_mm512_cmp_epu32_mask(__a, __b, 3);
   1092 }
   1093 
   1094 __mmask16 test_mm512_mask_cmp_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
   1095   // CHECK-LABEL: @test_mm512_mask_cmp_epu32_mask
   1096   // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 3, i16 {{.*}})
   1097   return (__mmask16)_mm512_mask_cmp_epu32_mask(__u, __a, __b, 3);
   1098 }
   1099 
   1100 __mmask8 test_mm512_cmp_epu64_mask(__m512i __a, __m512i __b) {
   1101   // CHECK-LABEL: @test_mm512_cmp_epu64_mask
   1102   // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 3, i8 -1)
   1103   return (__mmask8)_mm512_cmp_epu64_mask(__a, __b, 3);
   1104 }
   1105 
   1106 __mmask8 test_mm512_mask_cmp_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
   1107   // CHECK-LABEL: @test_mm512_mask_cmp_epu64_mask
   1108   // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 3, i8 {{.*}})
   1109   return (__mmask8)_mm512_mask_cmp_epu64_mask(__u, __a, __b, 3);
   1110 }
   1111 
   1112 __m512i test_mm512_mask_and_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
   1113   // CHECK-LABEL: @test_mm512_mask_and_epi32
   1114   // CHECK: @llvm.x86.avx512.mask.pand.d.512
   1115   return _mm512_mask_and_epi32(__src, __k,__a, __b);
   1116 }
   1117 
   1118 __m512i test_mm512_maskz_and_epi32(__mmask16 __k, __m512i __a, __m512i __b) {
   1119   // CHECK-LABEL: @test_mm512_maskz_and_epi32
   1120   // CHECK: @llvm.x86.avx512.mask.pand.d.512
   1121   return _mm512_maskz_and_epi32(__k,__a, __b);
   1122 }
   1123 
   1124 __m512i test_mm512_mask_and_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
   1125   // CHECK-LABEL: @test_mm512_mask_and_epi64
   1126   // CHECK: @llvm.x86.avx512.mask.pand.q.512
   1127   return _mm512_mask_and_epi64(__src, __k,__a, __b);
   1128 }
   1129 
   1130 __m512i test_mm512_maskz_and_epi64(__mmask8 __k, __m512i __a, __m512i __b) {
   1131   // CHECK-LABEL: @test_mm512_maskz_and_epi64
   1132   // CHECK: @llvm.x86.avx512.mask.pand.q.512
   1133   return _mm512_maskz_and_epi64(__k,__a, __b);
   1134 }
   1135 
   1136 __m512i test_mm512_mask_or_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
   1137   // CHECK-LABEL: @test_mm512_mask_or_epi32
   1138   // CHECK: @llvm.x86.avx512.mask.por.d.512
   1139   return _mm512_mask_or_epi32(__src, __k,__a, __b);
   1140 }
   1141 
   1142 __m512i test_mm512_maskz_or_epi32(__mmask16 __k, __m512i __a, __m512i __b) {
   1143   // CHECK-LABEL: @test_mm512_maskz_or_epi32
   1144   // CHECK: @llvm.x86.avx512.mask.por.d.512
   1145   return _mm512_maskz_or_epi32(__k,__a, __b);
   1146 }
   1147 
   1148 __m512i test_mm512_mask_or_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
   1149   // CHECK-LABEL: @test_mm512_mask_or_epi64
   1150   // CHECK: @llvm.x86.avx512.mask.por.q.512
   1151   return _mm512_mask_or_epi64(__src, __k,__a, __b);
   1152 }
   1153 
   1154 __m512i test_mm512_maskz_or_epi64(__mmask8 __k, __m512i __a, __m512i __b) {
   1155   // CHECK-LABEL: @test_mm512_maskz_or_epi64
   1156   // CHECK: @llvm.x86.avx512.mask.por.q.512
   1157   return _mm512_maskz_or_epi64(__k,__a, __b);
   1158 }
   1159 
   1160 __m512i test_mm512_mask_xor_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
   1161   // CHECK-LABEL: @test_mm512_mask_xor_epi32
   1162   // CHECK: @llvm.x86.avx512.mask.pxor.d.512
   1163   return _mm512_mask_xor_epi32(__src, __k,__a, __b);
   1164 }
   1165 
   1166 __m512i test_mm512_maskz_xor_epi32(__mmask16 __k, __m512i __a, __m512i __b) {
   1167   // CHECK-LABEL: @test_mm512_maskz_xor_epi32
   1168   // CHECK: @llvm.x86.avx512.mask.pxor.d.512
   1169   return _mm512_maskz_xor_epi32(__k,__a, __b);
   1170 }
   1171 
   1172 __m512i test_mm512_mask_xor_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
   1173   // CHECK-LABEL: @test_mm512_mask_xor_epi64
   1174   // CHECK: @llvm.x86.avx512.mask.pxor.q.512
   1175   return _mm512_mask_xor_epi64(__src, __k,__a, __b);
   1176 }
   1177 
   1178 __m512i test_mm512_maskz_xor_epi64(__mmask8 __k, __m512i __a, __m512i __b) {
   1179   // CHECK-LABEL: @test_mm512_maskz_xor_epi64
   1180   // CHECK: @llvm.x86.avx512.mask.pxor.q.512
   1181   return _mm512_maskz_xor_epi64(__k,__a, __b);
   1182 }
   1183 
   1184 __m512i test_mm512_and_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
   1185   // CHECK-LABEL: @test_mm512_and_epi32
   1186   // CHECK: and <8 x i64>
   1187   return _mm512_and_epi32(__a, __b);
   1188 }
   1189 
   1190 __m512i test_mm512_and_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
   1191   // CHECK-LABEL: @test_mm512_and_epi64
   1192   // CHECK: and <8 x i64>
   1193   return _mm512_and_epi64(__a, __b);
   1194 }
   1195 
   1196 __m512i test_mm512_or_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
   1197   // CHECK-LABEL: @test_mm512_or_epi32
   1198   // CHECK: or <8 x i64>
   1199   return _mm512_or_epi32(__a, __b);
   1200 }
   1201 
   1202 __m512i test_mm512_or_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
   1203   // CHECK-LABEL: @test_mm512_or_epi64
   1204   // CHECK: or <8 x i64>
   1205   return _mm512_or_epi64(__a, __b);
   1206 }
   1207 
   1208 __m512i test_mm512_xor_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
   1209   // CHECK-LABEL: @test_mm512_xor_epi32
   1210   // CHECK: xor <8 x i64>
   1211   return _mm512_xor_epi32(__a, __b);
   1212 }
   1213 
   1214 __m512i test_mm512_xor_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
   1215   // CHECK-LABEL: @test_mm512_xor_epi64
   1216   // CHECK: xor <8 x i64>
   1217   return _mm512_xor_epi64(__a, __b);
   1218 }
   1219 
   1220 __m512i test_mm512_maskz_andnot_epi32 (__mmask16 __k,__m512i __A, __m512i __B){
   1221   //CHECK-LABEL: @test_mm512_maskz_andnot_epi32
   1222   //CHECK: @llvm.x86.avx512.mask.pandn.d.512
   1223   return _mm512_maskz_andnot_epi32(__k,__A,__B);
   1224 }
   1225 
   1226 __m512i test_mm512_mask_andnot_epi32 (__mmask16 __k,__m512i __A, __m512i __B,
   1227                                       __m512i __src) {
   1228   //CHECK-LABEL: @test_mm512_mask_andnot_epi32
   1229   //CHECK: @llvm.x86.avx512.mask.pandn.d.512
   1230   return _mm512_mask_andnot_epi32(__src,__k,__A,__B);
   1231 }
   1232 
   1233 __m512i test_mm512_andnot_epi32(__m512i __A, __m512i __B) {
   1234   //CHECK-LABEL: @test_mm512_andnot_epi32
   1235   //CHECK: @llvm.x86.avx512.mask.pandn.d.512
   1236   return _mm512_andnot_epi32(__A,__B);
   1237 }
   1238 
   1239 __m512i test_mm512_maskz_andnot_epi64 (__mmask8 __k,__m512i __A, __m512i __B) {
   1240   //CHECK-LABEL: @test_mm512_maskz_andnot_epi64
   1241   //CHECK: @llvm.x86.avx512.mask.pandn.q.512
   1242   return _mm512_maskz_andnot_epi64(__k,__A,__B);
   1243 }
   1244 
   1245 __m512i test_mm512_mask_andnot_epi64 (__mmask8 __k,__m512i __A, __m512i __B,
   1246                                       __m512i __src) {
   1247   //CHECK-LABEL: @test_mm512_mask_andnot_epi64
   1248   //CHECK: @llvm.x86.avx512.mask.pandn.q.512
   1249   return _mm512_mask_andnot_epi64(__src,__k,__A,__B);
   1250 }
   1251 
   1252 __m512i test_mm512_andnot_epi64(__m512i __A, __m512i __B) {
   1253   //CHECK-LABEL: @test_mm512_andnot_epi64
   1254   //CHECK: @llvm.x86.avx512.mask.pandn.q.512
   1255   return _mm512_andnot_epi64(__A,__B);
   1256 }
   1257 
   1258 __m512i test_mm512_maskz_sub_epi32 (__mmask16 __k,__m512i __A, __m512i __B) {
   1259   //CHECK-LABEL: @test_mm512_maskz_sub_epi32
   1260   //CHECK: @llvm.x86.avx512.mask.psub.d.512
   1261   return _mm512_maskz_sub_epi32(__k,__A,__B);
   1262 }
   1263 
   1264 __m512i test_mm512_mask_sub_epi32 (__mmask16 __k,__m512i __A, __m512i __B,
   1265                                    __m512i __src) {
   1266   //CHECK-LABEL: @test_mm512_mask_sub_epi32
   1267   //CHECK: @llvm.x86.avx512.mask.psub.d.512
   1268   return _mm512_mask_sub_epi32(__src,__k,__A,__B);
   1269 }
   1270 
   1271 __m512i test_mm512_sub_epi32(__m512i __A, __m512i __B) {
   1272   //CHECK-LABEL: @test_mm512_sub_epi32
   1273   //CHECK: sub <16 x i32>
   1274   return _mm512_sub_epi32(__A,__B);
   1275 }
   1276 
   1277 __m512i test_mm512_maskz_sub_epi64 (__mmask8 __k,__m512i __A, __m512i __B) {
   1278   //CHECK-LABEL: @test_mm512_maskz_sub_epi64
   1279   //CHECK: @llvm.x86.avx512.mask.psub.q.512
   1280   return _mm512_maskz_sub_epi64(__k,__A,__B);
   1281 }
   1282 
   1283 __m512i test_mm512_mask_sub_epi64 (__mmask8 __k,__m512i __A, __m512i __B,
   1284                                    __m512i __src) {
   1285   //CHECK-LABEL: @test_mm512_mask_sub_epi64
   1286   //CHECK: @llvm.x86.avx512.mask.psub.q.512
   1287   return _mm512_mask_sub_epi64(__src,__k,__A,__B);
   1288 }
   1289 
   1290 __m512i test_mm512_sub_epi64(__m512i __A, __m512i __B) {
   1291   //CHECK-LABEL: @test_mm512_sub_epi64
   1292   //CHECK: sub <8 x i64>
   1293   return _mm512_sub_epi64(__A,__B);
   1294 }
   1295 
   1296 __m512i test_mm512_maskz_add_epi32 (__mmask16 __k,__m512i __A, __m512i __B) {
   1297   //CHECK-LABEL: @test_mm512_maskz_add_epi32
   1298   //CHECK: @llvm.x86.avx512.mask.padd.d.512
   1299   return _mm512_maskz_add_epi32(__k,__A,__B);
   1300 }
   1301 
   1302 __m512i test_mm512_mask_add_epi32 (__mmask16 __k,__m512i __A, __m512i __B,
   1303                                    __m512i __src) {
   1304   //CHECK-LABEL: @test_mm512_mask_add_epi32
   1305   //CHECK: @llvm.x86.avx512.mask.padd.d.512
   1306   return _mm512_mask_add_epi32(__src,__k,__A,__B);
   1307 }
   1308 
   1309 __m512i test_mm512_add_epi32(__m512i __A, __m512i __B) {
   1310   //CHECK-LABEL: @test_mm512_add_epi32
   1311   //CHECK: add <16 x i32>
   1312   return _mm512_add_epi32(__A,__B);
   1313 }
   1314 
   1315 __m512i test_mm512_maskz_add_epi64 (__mmask8 __k,__m512i __A, __m512i __B) {
   1316   //CHECK-LABEL: @test_mm512_maskz_add_epi64
   1317   //CHECK: @llvm.x86.avx512.mask.padd.q.512
   1318   return _mm512_maskz_add_epi64(__k,__A,__B);
   1319 }
   1320 
   1321 __m512i test_mm512_mask_add_epi64 (__mmask8 __k,__m512i __A, __m512i __B,
   1322                                    __m512i __src) {
   1323   //CHECK-LABEL: @test_mm512_mask_add_epi64
   1324   //CHECK: @llvm.x86.avx512.mask.padd.q.512
   1325   return _mm512_mask_add_epi64(__src,__k,__A,__B);
   1326 }
   1327 
   1328 __m512i test_mm512_add_epi64(__m512i __A, __m512i __B) {
   1329   //CHECK-LABEL: @test_mm512_add_epi64
   1330   //CHECK: add <8 x i64>
   1331   return _mm512_add_epi64(__A,__B);
   1332 }
   1333 
   1334 __m512i test_mm512_maskz_mul_epi32 (__mmask16 __k,__m512i __A, __m512i __B) {
   1335   //CHECK-LABEL: @test_mm512_maskz_mul_epi32
   1336   //CHECK: @llvm.x86.avx512.mask.pmul.dq.512
   1337   return _mm512_maskz_mul_epi32(__k,__A,__B);
   1338 }
   1339 
   1340 __m512i test_mm512_mask_mul_epi32 (__mmask16 __k,__m512i __A, __m512i __B,
   1341                                    __m512i __src) {
   1342   //CHECK-LABEL: @test_mm512_mask_mul_epi32
   1343   //CHECK: @llvm.x86.avx512.mask.pmul.dq.512
   1344   return _mm512_mask_mul_epi32(__src,__k,__A,__B);
   1345 }
   1346 
   1347 __m512i test_mm512_maskz_mul_epu32 (__mmask16 __k,__m512i __A, __m512i __B) {
   1348   //CHECK-LABEL: @test_mm512_maskz_mul_epu32
   1349   //CHECK: @llvm.x86.avx512.mask.pmulu.dq.512
   1350   return _mm512_maskz_mul_epu32(__k,__A,__B);
   1351 }
   1352 
   1353 __m512i test_mm512_mask_mul_epu32 (__mmask16 __k,__m512i __A, __m512i __B,
   1354                                    __m512i __src) {
   1355   //CHECK-LABEL: @test_mm512_mask_mul_epu32
   1356   //CHECK: @llvm.x86.avx512.mask.pmulu.dq.512
   1357   return _mm512_mask_mul_epu32(__src,__k,__A,__B);
   1358 }
   1359 
   1360 __m512i test_mm512_maskz_mullo_epi32 (__mmask16 __k,__m512i __A, __m512i __B) {
   1361   //CHECK-LABEL: @test_mm512_maskz_mullo_epi32
   1362   //CHECK: @llvm.x86.avx512.mask.pmull.d.512
   1363   return _mm512_maskz_mullo_epi32(__k,__A,__B);
   1364 }
   1365 
   1366 __m512i test_mm512_mask_mullo_epi32 (__mmask16 __k,__m512i __A, __m512i __B, __m512i __src) {
   1367   //CHECK-LABEL: @test_mm512_mask_mullo_epi32
   1368   //CHECK: @llvm.x86.avx512.mask.pmull.d.512
   1369   return _mm512_mask_mullo_epi32(__src,__k,__A,__B);
   1370 }
   1371 
   1372 __m512i test_mm512_mullo_epi32(__m512i __A, __m512i __B) {
   1373   //CHECK-LABEL: @test_mm512_mullo_epi32
   1374   //CHECK: mul <16 x i32>
   1375   return _mm512_mullo_epi32(__A,__B);
   1376 }
   1377 
   1378 __m512d test_mm512_add_round_pd(__m512d __A, __m512d __B) {
   1379   // CHECK-LABEL: @test_mm512_add_round_pd
   1380   // CHECK: @llvm.x86.avx512.mask.add.pd.512
   1381   return _mm512_add_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1382 }
   1383 __m512d test_mm512_mask_add_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
   1384   // CHECK-LABEL: @test_mm512_mask_add_round_pd
   1385   // CHECK: @llvm.x86.avx512.mask.add.pd.512
   1386   return _mm512_mask_add_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1387 }
   1388 __m512d test_mm512_maskz_add_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
   1389   // CHECK-LABEL: @test_mm512_maskz_add_round_pd
   1390   // CHECK: @llvm.x86.avx512.mask.add.pd.512
   1391   return _mm512_maskz_add_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1392 }
   1393 __m512d test_mm512_mask_add_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
   1394   // CHECK-LABEL: @test_mm512_mask_add_pd
   1395   // CHECK: @llvm.x86.avx512.mask.add.pd.512
   1396   return _mm512_mask_add_pd(__W,__U,__A,__B);
   1397 }
   1398 __m512d test_mm512_maskz_add_pd(__mmask8 __U, __m512d __A, __m512d __B) {
   1399   // CHECK-LABEL: @test_mm512_maskz_add_pd
   1400   // CHECK: @llvm.x86.avx512.mask.add.pd.512
   1401   return _mm512_maskz_add_pd(__U,__A,__B);
   1402 }
   1403 __m512 test_mm512_add_round_ps(__m512 __A, __m512 __B) {
   1404   // CHECK-LABEL: @test_mm512_add_round_ps
   1405   // CHECK: @llvm.x86.avx512.mask.add.ps.512
   1406   return _mm512_add_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1407 }
   1408 __m512 test_mm512_mask_add_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
   1409   // CHECK-LABEL: @test_mm512_mask_add_round_ps
   1410   // CHECK: @llvm.x86.avx512.mask.add.ps.512
   1411   return _mm512_mask_add_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1412 }
   1413 __m512 test_mm512_maskz_add_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
   1414   // CHECK-LABEL: @test_mm512_maskz_add_round_ps
   1415   // CHECK: @llvm.x86.avx512.mask.add.ps.512
   1416   return _mm512_maskz_add_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1417 }
   1418 __m512 test_mm512_mask_add_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
   1419   // CHECK-LABEL: @test_mm512_mask_add_ps
   1420   // CHECK: @llvm.x86.avx512.mask.add.ps.512
   1421   return _mm512_mask_add_ps(__W,__U,__A,__B);
   1422 }
   1423 __m512 test_mm512_maskz_add_ps(__mmask16 __U, __m512 __A, __m512 __B) {
   1424   // CHECK-LABEL: @test_mm512_maskz_add_ps
   1425   // CHECK: @llvm.x86.avx512.mask.add.ps.512
   1426   return _mm512_maskz_add_ps(__U,__A,__B);
   1427 }
   1428 __m128 test_mm_add_round_ss(__m128 __A, __m128 __B) {
   1429   // CHECK-LABEL: @test_mm_add_round_ss
   1430   // CHECK: @llvm.x86.avx512.mask.add.ss.round
   1431   return _mm_add_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1432 }
   1433 __m128 test_mm_mask_add_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   1434   // CHECK-LABEL: @test_mm_mask_add_round_ss
   1435   // CHECK: @llvm.x86.avx512.mask.add.ss.round
   1436   return _mm_mask_add_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1437 }
   1438 __m128 test_mm_maskz_add_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
   1439   // CHECK-LABEL: @test_mm_maskz_add_round_ss
   1440   // CHECK: @llvm.x86.avx512.mask.add.ss.round
   1441   return _mm_maskz_add_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1442 }
   1443 __m128 test_mm_mask_add_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   1444   // CHECK-LABEL: @test_mm_mask_add_ss
   1445   // CHECK: @llvm.x86.avx512.mask.add.ss.round
   1446   return _mm_mask_add_ss(__W,__U,__A,__B);
   1447 }
   1448 __m128 test_mm_maskz_add_ss(__mmask8 __U, __m128 __A, __m128 __B) {
   1449   // CHECK-LABEL: @test_mm_maskz_add_ss
   1450   // CHECK: @llvm.x86.avx512.mask.add.ss.round
   1451   return _mm_maskz_add_ss(__U,__A,__B);
   1452 }
   1453 __m128d test_mm_add_round_sd(__m128d __A, __m128d __B) {
   1454   // CHECK-LABEL: @test_mm_add_round_sd
   1455   // CHECK: @llvm.x86.avx512.mask.add.sd.round
   1456   return _mm_add_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1457 }
   1458 __m128d test_mm_mask_add_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   1459   // CHECK-LABEL: @test_mm_mask_add_round_sd
   1460   // CHECK: @llvm.x86.avx512.mask.add.sd.round
   1461   return _mm_mask_add_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1462 }
   1463 __m128d test_mm_maskz_add_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
   1464   // CHECK-LABEL: @test_mm_maskz_add_round_sd
   1465   // CHECK: @llvm.x86.avx512.mask.add.sd.round
   1466   return _mm_maskz_add_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1467 }
   1468 __m128d test_mm_mask_add_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   1469   // CHECK-LABEL: @test_mm_mask_add_sd
   1470   // CHECK: @llvm.x86.avx512.mask.add.sd.round
   1471   return _mm_mask_add_sd(__W,__U,__A,__B);
   1472 }
   1473 __m128d test_mm_maskz_add_sd(__mmask8 __U, __m128d __A, __m128d __B) {
   1474   // CHECK-LABEL: @test_mm_maskz_add_sd
   1475   // CHECK: @llvm.x86.avx512.mask.add.sd.round
   1476   return _mm_maskz_add_sd(__U,__A,__B);
   1477 }
   1478 __m512d test_mm512_sub_round_pd(__m512d __A, __m512d __B) {
   1479   // CHECK-LABEL: @test_mm512_sub_round_pd
   1480   // CHECK: @llvm.x86.avx512.mask.sub.pd.512
   1481   return _mm512_sub_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1482 }
   1483 __m512d test_mm512_mask_sub_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
   1484   // CHECK-LABEL: @test_mm512_mask_sub_round_pd
   1485   // CHECK: @llvm.x86.avx512.mask.sub.pd.512
   1486   return _mm512_mask_sub_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1487 }
   1488 __m512d test_mm512_maskz_sub_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
   1489   // CHECK-LABEL: @test_mm512_maskz_sub_round_pd
   1490   // CHECK: @llvm.x86.avx512.mask.sub.pd.512
   1491   return _mm512_maskz_sub_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1492 }
   1493 __m512d test_mm512_mask_sub_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
   1494   // CHECK-LABEL: @test_mm512_mask_sub_pd
   1495   // CHECK: @llvm.x86.avx512.mask.sub.pd.512
   1496   return _mm512_mask_sub_pd(__W,__U,__A,__B);
   1497 }
   1498 __m512d test_mm512_maskz_sub_pd(__mmask8 __U, __m512d __A, __m512d __B) {
   1499   // CHECK-LABEL: @test_mm512_maskz_sub_pd
   1500   // CHECK: @llvm.x86.avx512.mask.sub.pd.512
   1501   return _mm512_maskz_sub_pd(__U,__A,__B);
   1502 }
   1503 __m512 test_mm512_sub_round_ps(__m512 __A, __m512 __B) {
   1504   // CHECK-LABEL: @test_mm512_sub_round_ps
   1505   // CHECK: @llvm.x86.avx512.mask.sub.ps.512
   1506   return _mm512_sub_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1507 }
   1508 __m512 test_mm512_mask_sub_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
   1509   // CHECK-LABEL: @test_mm512_mask_sub_round_ps
   1510   // CHECK: @llvm.x86.avx512.mask.sub.ps.512
   1511   return _mm512_mask_sub_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1512 }
   1513 __m512 test_mm512_maskz_sub_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
   1514   // CHECK-LABEL: @test_mm512_maskz_sub_round_ps
   1515   // CHECK: @llvm.x86.avx512.mask.sub.ps.512
   1516   return _mm512_maskz_sub_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1517 }
   1518 __m512 test_mm512_mask_sub_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
   1519   // CHECK-LABEL: @test_mm512_mask_sub_ps
   1520   // CHECK: @llvm.x86.avx512.mask.sub.ps.512
   1521   return _mm512_mask_sub_ps(__W,__U,__A,__B);
   1522 }
   1523 __m512 test_mm512_maskz_sub_ps(__mmask16 __U, __m512 __A, __m512 __B) {
   1524   // CHECK-LABEL: @test_mm512_maskz_sub_ps
   1525   // CHECK: @llvm.x86.avx512.mask.sub.ps.512
   1526   return _mm512_maskz_sub_ps(__U,__A,__B);
   1527 }
   1528 __m128 test_mm_sub_round_ss(__m128 __A, __m128 __B) {
   1529   // CHECK-LABEL: @test_mm_sub_round_ss
   1530   // CHECK: @llvm.x86.avx512.mask.sub.ss.round
   1531   return _mm_sub_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1532 }
   1533 __m128 test_mm_mask_sub_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   1534   // CHECK-LABEL: @test_mm_mask_sub_round_ss
   1535   // CHECK: @llvm.x86.avx512.mask.sub.ss.round
   1536   return _mm_mask_sub_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1537 }
   1538 __m128 test_mm_maskz_sub_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
   1539   // CHECK-LABEL: @test_mm_maskz_sub_round_ss
   1540   // CHECK: @llvm.x86.avx512.mask.sub.ss.round
   1541   return _mm_maskz_sub_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1542 }
   1543 __m128 test_mm_mask_sub_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   1544   // CHECK-LABEL: @test_mm_mask_sub_ss
   1545   // CHECK: @llvm.x86.avx512.mask.sub.ss.round
   1546   return _mm_mask_sub_ss(__W,__U,__A,__B);
   1547 }
   1548 __m128 test_mm_maskz_sub_ss(__mmask8 __U, __m128 __A, __m128 __B) {
   1549   // CHECK-LABEL: @test_mm_maskz_sub_ss
   1550   // CHECK: @llvm.x86.avx512.mask.sub.ss.round
   1551   return _mm_maskz_sub_ss(__U,__A,__B);
   1552 }
   1553 __m128d test_mm_sub_round_sd(__m128d __A, __m128d __B) {
   1554   // CHECK-LABEL: @test_mm_sub_round_sd
   1555   // CHECK: @llvm.x86.avx512.mask.sub.sd.round
   1556   return _mm_sub_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1557 }
   1558 __m128d test_mm_mask_sub_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   1559   // CHECK-LABEL: @test_mm_mask_sub_round_sd
   1560   // CHECK: @llvm.x86.avx512.mask.sub.sd.round
   1561   return _mm_mask_sub_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1562 }
   1563 __m128d test_mm_maskz_sub_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
   1564   // CHECK-LABEL: @test_mm_maskz_sub_round_sd
   1565   // CHECK: @llvm.x86.avx512.mask.sub.sd.round
   1566   return _mm_maskz_sub_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1567 }
   1568 __m128d test_mm_mask_sub_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   1569   // CHECK-LABEL: @test_mm_mask_sub_sd
   1570   // CHECK: @llvm.x86.avx512.mask.sub.sd.round
   1571   return _mm_mask_sub_sd(__W,__U,__A,__B);
   1572 }
   1573 __m128d test_mm_maskz_sub_sd(__mmask8 __U, __m128d __A, __m128d __B) {
   1574   // CHECK-LABEL: @test_mm_maskz_sub_sd
   1575   // CHECK: @llvm.x86.avx512.mask.sub.sd.round
   1576   return _mm_maskz_sub_sd(__U,__A,__B);
   1577 }
   1578 __m512d test_mm512_mul_round_pd(__m512d __A, __m512d __B) {
   1579   // CHECK-LABEL: @test_mm512_mul_round_pd
   1580   // CHECK: @llvm.x86.avx512.mask.mul.pd.512
   1581   return _mm512_mul_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1582 }
   1583 __m512d test_mm512_mask_mul_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
   1584   // CHECK-LABEL: @test_mm512_mask_mul_round_pd
   1585   // CHECK: @llvm.x86.avx512.mask.mul.pd.512
   1586   return _mm512_mask_mul_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1587 }
   1588 __m512d test_mm512_maskz_mul_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
   1589   // CHECK-LABEL: @test_mm512_maskz_mul_round_pd
   1590   // CHECK: @llvm.x86.avx512.mask.mul.pd.512
   1591   return _mm512_maskz_mul_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1592 }
   1593 __m512d test_mm512_mask_mul_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
   1594   // CHECK-LABEL: @test_mm512_mask_mul_pd
   1595   // CHECK: @llvm.x86.avx512.mask.mul.pd.512
   1596   return _mm512_mask_mul_pd(__W,__U,__A,__B);
   1597 }
   1598 __m512d test_mm512_maskz_mul_pd(__mmask8 __U, __m512d __A, __m512d __B) {
   1599   // CHECK-LABEL: @test_mm512_maskz_mul_pd
   1600   // CHECK: @llvm.x86.avx512.mask.mul.pd.512
   1601   return _mm512_maskz_mul_pd(__U,__A,__B);
   1602 }
   1603 __m512 test_mm512_mul_round_ps(__m512 __A, __m512 __B) {
   1604   // CHECK-LABEL: @test_mm512_mul_round_ps
   1605   // CHECK: @llvm.x86.avx512.mask.mul.ps.512
   1606   return _mm512_mul_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1607 }
   1608 __m512 test_mm512_mask_mul_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
   1609   // CHECK-LABEL: @test_mm512_mask_mul_round_ps
   1610   // CHECK: @llvm.x86.avx512.mask.mul.ps.512
   1611   return _mm512_mask_mul_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1612 }
   1613 __m512 test_mm512_maskz_mul_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
   1614   // CHECK-LABEL: @test_mm512_maskz_mul_round_ps
   1615   // CHECK: @llvm.x86.avx512.mask.mul.ps.512
   1616   return _mm512_maskz_mul_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1617 }
   1618 __m512 test_mm512_mask_mul_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
   1619   // CHECK-LABEL: @test_mm512_mask_mul_ps
   1620   // CHECK: @llvm.x86.avx512.mask.mul.ps.512
   1621   return _mm512_mask_mul_ps(__W,__U,__A,__B);
   1622 }
   1623 __m512 test_mm512_maskz_mul_ps(__mmask16 __U, __m512 __A, __m512 __B) {
   1624   // CHECK-LABEL: @test_mm512_maskz_mul_ps
   1625   // CHECK: @llvm.x86.avx512.mask.mul.ps.512
   1626   return _mm512_maskz_mul_ps(__U,__A,__B);
   1627 }
   1628 __m128 test_mm_mul_round_ss(__m128 __A, __m128 __B) {
   1629   // CHECK-LABEL: @test_mm_mul_round_ss
   1630   // CHECK: @llvm.x86.avx512.mask.mul.ss.round
   1631   return _mm_mul_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1632 }
   1633 __m128 test_mm_mask_mul_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   1634   // CHECK-LABEL: @test_mm_mask_mul_round_ss
   1635   // CHECK: @llvm.x86.avx512.mask.mul.ss.round
   1636   return _mm_mask_mul_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1637 }
   1638 __m128 test_mm_maskz_mul_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
   1639   // CHECK-LABEL: @test_mm_maskz_mul_round_ss
   1640   // CHECK: @llvm.x86.avx512.mask.mul.ss.round
   1641   return _mm_maskz_mul_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1642 }
   1643 __m128 test_mm_mask_mul_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   1644   // CHECK-LABEL: @test_mm_mask_mul_ss
   1645   // CHECK: @llvm.x86.avx512.mask.mul.ss.round
   1646   return _mm_mask_mul_ss(__W,__U,__A,__B);
   1647 }
   1648 __m128 test_mm_maskz_mul_ss(__mmask8 __U, __m128 __A, __m128 __B) {
   1649   // CHECK-LABEL: @test_mm_maskz_mul_ss
   1650   // CHECK: @llvm.x86.avx512.mask.mul.ss.round
   1651   return _mm_maskz_mul_ss(__U,__A,__B);
   1652 }
   1653 __m128d test_mm_mul_round_sd(__m128d __A, __m128d __B) {
   1654   // CHECK-LABEL: @test_mm_mul_round_sd
   1655   // CHECK: @llvm.x86.avx512.mask.mul.sd.round
   1656   return _mm_mul_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1657 }
   1658 __m128d test_mm_mask_mul_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   1659   // CHECK-LABEL: @test_mm_mask_mul_round_sd
   1660   // CHECK: @llvm.x86.avx512.mask.mul.sd.round
   1661   return _mm_mask_mul_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1662 }
   1663 __m128d test_mm_maskz_mul_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
   1664   // CHECK-LABEL: @test_mm_maskz_mul_round_sd
   1665   // CHECK: @llvm.x86.avx512.mask.mul.sd.round
   1666   return _mm_maskz_mul_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1667 }
   1668 __m128d test_mm_mask_mul_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   1669   // CHECK-LABEL: @test_mm_mask_mul_sd
   1670   // CHECK: @llvm.x86.avx512.mask.mul.sd.round
   1671   return _mm_mask_mul_sd(__W,__U,__A,__B);
   1672 }
   1673 __m128d test_mm_maskz_mul_sd(__mmask8 __U, __m128d __A, __m128d __B) {
   1674   // CHECK-LABEL: @test_mm_maskz_mul_sd
   1675   // CHECK: @llvm.x86.avx512.mask.mul.sd.round
   1676   return _mm_maskz_mul_sd(__U,__A,__B);
   1677 }
   1678 __m512d test_mm512_div_round_pd(__m512d __A, __m512d __B) {
   1679   // CHECK-LABEL: @test_mm512_div_round_pd
   1680   // CHECK: @llvm.x86.avx512.mask.div.pd.512
   1681   return _mm512_div_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1682 }
   1683 __m512d test_mm512_mask_div_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
   1684   // CHECK-LABEL: @test_mm512_mask_div_round_pd
   1685   // CHECK: @llvm.x86.avx512.mask.div.pd.512
   1686   return _mm512_mask_div_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1687 }
   1688 __m512d test_mm512_maskz_div_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
   1689   // CHECK-LABEL: @test_mm512_maskz_div_round_pd
   1690   // CHECK: @llvm.x86.avx512.mask.div.pd.512
   1691   return _mm512_maskz_div_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1692 }
   1693 __m512d test_mm512_mask_div_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
   1694   // CHECK-LABEL: @test_mm512_mask_div_pd
   1695   // CHECK: @llvm.x86.avx512.mask.div.pd.512
   1696   return _mm512_mask_div_pd(__W,__U,__A,__B);
   1697 }
   1698 __m512d test_mm512_maskz_div_pd(__mmask8 __U, __m512d __A, __m512d __B) {
   1699   // CHECK-LABEL: @test_mm512_maskz_div_pd
   1700   // CHECK: @llvm.x86.avx512.mask.div.pd.512
   1701   return _mm512_maskz_div_pd(__U,__A,__B);
   1702 }
   1703 __m512 test_mm512_div_round_ps(__m512 __A, __m512 __B) {
   1704   // CHECK-LABEL: @test_mm512_div_round_ps
   1705   // CHECK: @llvm.x86.avx512.mask.div.ps.512
   1706   return _mm512_div_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1707 }
   1708 __m512 test_mm512_mask_div_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
   1709   // CHECK-LABEL: @test_mm512_mask_div_round_ps
   1710   // CHECK: @llvm.x86.avx512.mask.div.ps.512
   1711   return _mm512_mask_div_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1712 }
   1713 __m512 test_mm512_maskz_div_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
   1714   // CHECK-LABEL: @test_mm512_maskz_div_round_ps
   1715   // CHECK: @llvm.x86.avx512.mask.div.ps.512
   1716   return _mm512_maskz_div_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1717 }
   1718 __m512 test_mm512_mask_div_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
   1719   // CHECK-LABEL: @test_mm512_mask_div_ps
   1720   // CHECK: @llvm.x86.avx512.mask.div.ps.512
   1721   return _mm512_mask_div_ps(__W,__U,__A,__B);
   1722 }
   1723 __m512 test_mm512_maskz_div_ps(__mmask16 __U, __m512 __A, __m512 __B) {
   1724   // CHECK-LABEL: @test_mm512_maskz_div_ps
   1725   // CHECK: @llvm.x86.avx512.mask.div.ps.512
   1726   return _mm512_maskz_div_ps(__U,__A,__B);
   1727 }
   1728 __m128 test_mm_div_round_ss(__m128 __A, __m128 __B) {
   1729   // CHECK-LABEL: @test_mm_div_round_ss
   1730   // CHECK: @llvm.x86.avx512.mask.div.ss.round
   1731   return _mm_div_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1732 }
   1733 __m128 test_mm_mask_div_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   1734   // CHECK-LABEL: @test_mm_mask_div_round_ss
   1735   // CHECK: @llvm.x86.avx512.mask.div.ss.round
   1736   return _mm_mask_div_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1737 }
   1738 __m128 test_mm_maskz_div_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
   1739   // CHECK-LABEL: @test_mm_maskz_div_round_ss
   1740   // CHECK: @llvm.x86.avx512.mask.div.ss.round
   1741   return _mm_maskz_div_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1742 }
   1743 __m128 test_mm_mask_div_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   1744   // CHECK-LABEL: @test_mm_mask_div_ss
   1745   // CHECK: @llvm.x86.avx512.mask.div.ss.round
   1746   return _mm_mask_div_ss(__W,__U,__A,__B);
   1747 }
   1748 __m128 test_mm_maskz_div_ss(__mmask8 __U, __m128 __A, __m128 __B) {
   1749   // CHECK-LABEL: @test_mm_maskz_div_ss
   1750   // CHECK: @llvm.x86.avx512.mask.div.ss.round
   1751   return _mm_maskz_div_ss(__U,__A,__B);
   1752 }
   1753 __m128d test_mm_div_round_sd(__m128d __A, __m128d __B) {
   1754   // CHECK-LABEL: @test_mm_div_round_sd
   1755   // CHECK: @llvm.x86.avx512.mask.div.sd.round
   1756   return _mm_div_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1757 }
   1758 __m128d test_mm_mask_div_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   1759   // CHECK-LABEL: @test_mm_mask_div_round_sd
   1760   // CHECK: @llvm.x86.avx512.mask.div.sd.round
   1761   return _mm_mask_div_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1762 }
   1763 __m128d test_mm_maskz_div_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
   1764   // CHECK-LABEL: @test_mm_maskz_div_round_sd
   1765   // CHECK: @llvm.x86.avx512.mask.div.sd.round
   1766   return _mm_maskz_div_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1767 }
   1768 __m128d test_mm_mask_div_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   1769   // CHECK-LABEL: @test_mm_mask_div_sd
   1770   // CHECK: @llvm.x86.avx512.mask.div.sd.round
   1771   return _mm_mask_div_sd(__W,__U,__A,__B);
   1772 }
   1773 __m128d test_mm_maskz_div_sd(__mmask8 __U, __m128d __A, __m128d __B) {
   1774   // CHECK-LABEL: @test_mm_maskz_div_sd
   1775   // CHECK: @llvm.x86.avx512.mask.div.sd.round
   1776   return _mm_maskz_div_sd(__U,__A,__B);
   1777 }
   1778 __m128 test_mm_max_round_ss(__m128 __A, __m128 __B) {
   1779   // CHECK-LABEL: @test_mm_max_round_ss
   1780   // CHECK: @llvm.x86.avx512.mask.max.ss.round
   1781   return _mm_max_round_ss(__A,__B,0x08);
   1782 }
   1783 __m128 test_mm_mask_max_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   1784   // CHECK-LABEL: @test_mm_mask_max_round_ss
   1785   // CHECK: @llvm.x86.avx512.mask.max.ss.round
   1786   return _mm_mask_max_round_ss(__W,__U,__A,__B,0x08);
   1787 }
   1788 __m128 test_mm_maskz_max_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
   1789   // CHECK-LABEL: @test_mm_maskz_max_round_ss
   1790   // CHECK: @llvm.x86.avx512.mask.max.ss.round
   1791   return _mm_maskz_max_round_ss(__U,__A,__B,0x08);
   1792 }
   1793 __m128 test_mm_mask_max_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   1794   // CHECK-LABEL: @test_mm_mask_max_ss
   1795   // CHECK: @llvm.x86.avx512.mask.max.ss.round
   1796   return _mm_mask_max_ss(__W,__U,__A,__B);
   1797 }
   1798 __m128 test_mm_maskz_max_ss(__mmask8 __U, __m128 __A, __m128 __B) {
   1799   // CHECK-LABEL: @test_mm_maskz_max_ss
   1800   // CHECK: @llvm.x86.avx512.mask.max.ss.round
   1801   return _mm_maskz_max_ss(__U,__A,__B);
   1802 }
   1803 __m128d test_mm_max_round_sd(__m128d __A, __m128d __B) {
   1804   // CHECK-LABEL: @test_mm_max_round_sd
   1805   // CHECK: @llvm.x86.avx512.mask.max.sd.round
   1806   return _mm_max_round_sd(__A,__B,0x08);
   1807 }
   1808 __m128d test_mm_mask_max_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   1809   // CHECK-LABEL: @test_mm_mask_max_round_sd
   1810   // CHECK: @llvm.x86.avx512.mask.max.sd.round
   1811   return _mm_mask_max_round_sd(__W,__U,__A,__B,0x08);
   1812 }
   1813 __m128d test_mm_maskz_max_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
   1814   // CHECK-LABEL: @test_mm_maskz_max_round_sd
   1815   // CHECK: @llvm.x86.avx512.mask.max.sd.round
   1816   return _mm_maskz_max_round_sd(__U,__A,__B,0x08);
   1817 }
   1818 __m128d test_mm_mask_max_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   1819   // CHECK-LABEL: @test_mm_mask_max_sd
   1820   // CHECK: @llvm.x86.avx512.mask.max.sd.round
   1821   return _mm_mask_max_sd(__W,__U,__A,__B);
   1822 }
   1823 __m128d test_mm_maskz_max_sd(__mmask8 __U, __m128d __A, __m128d __B) {
   1824   // CHECK-LABEL: @test_mm_maskz_max_sd
   1825   // CHECK: @llvm.x86.avx512.mask.max.sd.round
   1826   return _mm_maskz_max_sd(__U,__A,__B);
   1827 }
   1828 __m128 test_mm_min_round_ss(__m128 __A, __m128 __B) {
   1829   // CHECK-LABEL: @test_mm_min_round_ss
   1830   // CHECK: @llvm.x86.avx512.mask.min.ss.round
   1831   return _mm_min_round_ss(__A,__B,0x08);
   1832 }
   1833 __m128 test_mm_mask_min_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   1834   // CHECK-LABEL: @test_mm_mask_min_round_ss
   1835   // CHECK: @llvm.x86.avx512.mask.min.ss.round
   1836   return _mm_mask_min_round_ss(__W,__U,__A,__B,0x08);
   1837 }
   1838 __m128 test_mm_maskz_min_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
   1839   // CHECK-LABEL: @test_mm_maskz_min_round_ss
   1840   // CHECK: @llvm.x86.avx512.mask.min.ss.round
   1841   return _mm_maskz_min_round_ss(__U,__A,__B,0x08);
   1842 }
   1843 __m128 test_mm_mask_min_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   1844   // CHECK-LABEL: @test_mm_mask_min_ss
   1845   // CHECK: @llvm.x86.avx512.mask.min.ss.round
   1846   return _mm_mask_min_ss(__W,__U,__A,__B);
   1847 }
   1848 __m128 test_mm_maskz_min_ss(__mmask8 __U, __m128 __A, __m128 __B) {
   1849   // CHECK-LABEL: @test_mm_maskz_min_ss
   1850   // CHECK: @llvm.x86.avx512.mask.min.ss.round
   1851   return _mm_maskz_min_ss(__U,__A,__B);
   1852 }
   1853 __m128d test_mm_min_round_sd(__m128d __A, __m128d __B) {
   1854   // CHECK-LABEL: @test_mm_min_round_sd
   1855   // CHECK: @llvm.x86.avx512.mask.min.sd.round
   1856   return _mm_min_round_sd(__A,__B,0x08);
   1857 }
   1858 __m128d test_mm_mask_min_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   1859   // CHECK-LABEL: @test_mm_mask_min_round_sd
   1860   // CHECK: @llvm.x86.avx512.mask.min.sd.round
   1861   return _mm_mask_min_round_sd(__W,__U,__A,__B,0x08);
   1862 }
   1863 __m128d test_mm_maskz_min_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
   1864   // CHECK-LABEL: @test_mm_maskz_min_round_sd
   1865   // CHECK: @llvm.x86.avx512.mask.min.sd.round
   1866   return _mm_maskz_min_round_sd(__U,__A,__B,0x08);
   1867 }
   1868 __m128d test_mm_mask_min_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   1869   // CHECK-LABEL: @test_mm_mask_min_sd
   1870   // CHECK: @llvm.x86.avx512.mask.min.sd.round
   1871   return _mm_mask_min_sd(__W,__U,__A,__B);
   1872 }
   1873 __m128d test_mm_maskz_min_sd(__mmask8 __U, __m128d __A, __m128d __B) {
   1874   // CHECK-LABEL: @test_mm_maskz_min_sd
   1875   // CHECK: @llvm.x86.avx512.mask.min.sd.round
   1876   return _mm_maskz_min_sd(__U,__A,__B);
   1877 }
   1878 
   1879 __m512 test_mm512_undefined() {
   1880   // CHECK-LABEL: @test_mm512_undefined
   1881   // CHECK: ret <16 x float> undef
   1882   return _mm512_undefined();
   1883 }
   1884 
   1885 __m512 test_mm512_undefined_ps() {
   1886   // CHECK-LABEL: @test_mm512_undefined_ps
   1887   // CHECK: ret <16 x float> undef
   1888   return _mm512_undefined_ps();
   1889 }
   1890 
   1891 __m512d test_mm512_undefined_pd() {
   1892   // CHECK-LABEL: @test_mm512_undefined_pd
   1893   // CHECK: ret <8 x double> undef
   1894   return _mm512_undefined_pd();
   1895 }
   1896 
   1897 __m512i test_mm512_undefined_epi32() {
   1898   // CHECK-LABEL: @test_mm512_undefined_epi32
   1899   // CHECK: ret <8 x i64> undef
   1900   return _mm512_undefined_epi32();
   1901 }
   1902