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 __m512d test_mm512_mask_sqrt_pd (__m512d __W, __mmask8 __U, __m512d __A)
     16 {
     17   // CHECK-LABEL: @test_mm512_mask_sqrt_pd
     18   // CHECK: @llvm.x86.avx512.mask.sqrt.pd.512
     19   return _mm512_mask_sqrt_pd (__W,__U,__A);
     20 }
     21 
     22 __m512d test_mm512_maskz_sqrt_pd (__mmask8 __U, __m512d __A)
     23 {
     24   // CHECK-LABEL: @test_mm512_maskz_sqrt_pd
     25   // CHECK: @llvm.x86.avx512.mask.sqrt.pd.512
     26   return _mm512_maskz_sqrt_pd (__U,__A);
     27 }
     28 
     29 __m512d test_mm512_mask_sqrt_round_pd(__m512d __W,__mmask8 __U,__m512d __A)
     30 {
     31   // CHECK-LABEL: @test_mm512_mask_sqrt_round_pd
     32   // CHECK: @llvm.x86.avx512.mask.sqrt.pd.512
     33   return _mm512_mask_sqrt_round_pd(__W,__U,__A,_MM_FROUND_CUR_DIRECTION);
     34 }
     35 
     36 __m512d test_mm512_maskz_sqrt_round_pd(__mmask8 __U,__m512d __A)
     37 {
     38   // CHECK-LABEL: @test_mm512_maskz_sqrt_round_pd
     39   // CHECK: @llvm.x86.avx512.mask.sqrt.pd.512
     40   return _mm512_maskz_sqrt_round_pd(__U,__A,_MM_FROUND_CUR_DIRECTION);
     41 }
     42 
     43 __m512d test_mm512_sqrt_round_pd(__m512d __A)
     44 {
     45   // CHECK-LABEL: @test_mm512_sqrt_round_pd
     46   // CHECK: @llvm.x86.avx512.mask.sqrt.pd.512
     47   return _mm512_sqrt_round_pd(__A,_MM_FROUND_CUR_DIRECTION);
     48 }
     49 
     50 __m512 test_mm512_sqrt_ps(__m512 a)
     51 {
     52   // CHECK-LABEL: @test_mm512_sqrt_ps
     53   // CHECK: @llvm.x86.avx512.mask.sqrt.ps.512
     54   return _mm512_sqrt_ps(a);
     55 }
     56 
     57 __m512 test_mm512_mask_sqrt_ps(__m512 __W, __mmask16 __U, __m512 __A)
     58 {
     59   // CHECK-LABEL: @test_mm512_mask_sqrt_ps
     60   // CHECK: @llvm.x86.avx512.mask.sqrt.ps.512
     61   return _mm512_mask_sqrt_ps( __W, __U, __A);
     62 }
     63 
     64 __m512 test_mm512_maskz_sqrt_ps( __mmask16 __U, __m512 __A)
     65 {
     66   // CHECK-LABEL: @test_mm512_maskz_sqrt_ps
     67   // CHECK: @llvm.x86.avx512.mask.sqrt.ps.512
     68   return _mm512_maskz_sqrt_ps(__U ,__A);
     69 }
     70 
     71 __m512 test_mm512_mask_sqrt_round_ps(__m512 __W,__mmask16 __U,__m512 __A)
     72 {
     73   // CHECK-LABEL: @test_mm512_mask_sqrt_round_ps
     74   // CHECK: @llvm.x86.avx512.mask.sqrt.ps.512
     75   return _mm512_mask_sqrt_round_ps(__W,__U,__A,_MM_FROUND_CUR_DIRECTION);
     76 }
     77 
     78 __m512 test_mm512_maskz_sqrt_round_ps(__mmask16 __U,__m512 __A)
     79 {
     80   // CHECK-LABEL: @test_mm512_maskz_sqrt_round_ps
     81   // CHECK: @llvm.x86.avx512.mask.sqrt.ps.512
     82   return _mm512_maskz_sqrt_round_ps(__U,__A,_MM_FROUND_CUR_DIRECTION);
     83 }
     84 
     85 __m512 test_mm512_sqrt_round_ps(__m512 __A)
     86 {
     87   // CHECK-LABEL: @test_mm512_sqrt_round_ps
     88   // CHECK: @llvm.x86.avx512.mask.sqrt.ps.512
     89   return _mm512_sqrt_round_ps(__A,_MM_FROUND_CUR_DIRECTION);
     90 }
     91 
     92 __m512d test_mm512_rsqrt14_pd(__m512d a)
     93 {
     94   // CHECK-LABEL: @test_mm512_rsqrt14_pd
     95   // CHECK: @llvm.x86.avx512.rsqrt14.pd.512
     96   return _mm512_rsqrt14_pd(a);
     97 }
     98 
     99 __m512d test_mm512_mask_rsqrt14_pd (__m512d __W, __mmask8 __U, __m512d __A)
    100 {
    101   // CHECK-LABEL: @test_mm512_mask_rsqrt14_pd
    102   // CHECK: @llvm.x86.avx512.rsqrt14.pd.512
    103   return _mm512_mask_rsqrt14_pd (__W,__U,__A);
    104 }
    105 
    106 __m512d test_mm512_maskz_rsqrt14_pd (__mmask8 __U, __m512d __A)
    107 {
    108   // CHECK-LABEL: @test_mm512_maskz_rsqrt14_pd
    109   // CHECK: @llvm.x86.avx512.rsqrt14.pd.512
    110   return _mm512_maskz_rsqrt14_pd (__U,__A);
    111 }
    112 
    113 __m512 test_mm512_rsqrt14_ps(__m512 a)
    114 {
    115   // CHECK-LABEL: @test_mm512_rsqrt14_ps
    116   // CHECK: @llvm.x86.avx512.rsqrt14.ps.512
    117   return _mm512_rsqrt14_ps(a);
    118 }
    119 
    120 __m512 test_mm512_mask_rsqrt14_ps (__m512 __W, __mmask16 __U, __m512 __A)
    121 {
    122   // CHECK-LABEL: @test_mm512_mask_rsqrt14_ps
    123   // CHECK: @llvm.x86.avx512.rsqrt14.ps.512
    124   return _mm512_mask_rsqrt14_ps (__W,__U,__A);
    125 }
    126 
    127 __m512 test_mm512_maskz_rsqrt14_ps (__mmask16 __U, __m512 __A)
    128 {
    129   // CHECK-LABEL: @test_mm512_maskz_rsqrt14_ps
    130   // CHECK: @llvm.x86.avx512.rsqrt14.ps.512
    131   return _mm512_maskz_rsqrt14_ps (__U,__A);
    132 }
    133 
    134 __m512 test_mm512_add_ps(__m512 a, __m512 b)
    135 {
    136   // CHECK-LABEL: @test_mm512_add_ps
    137   // CHECK: fadd <16 x float>
    138   return _mm512_add_ps(a, b);
    139 }
    140 
    141 __m512d test_mm512_add_pd(__m512d a, __m512d b)
    142 {
    143   // CHECK-LABEL: @test_mm512_add_pd
    144   // CHECK: fadd <8 x double>
    145   return _mm512_add_pd(a, b);
    146 }
    147 
    148 __m512 test_mm512_mul_ps(__m512 a, __m512 b)
    149 {
    150   // CHECK-LABEL: @test_mm512_mul_ps
    151   // CHECK: fmul <16 x float>
    152   return _mm512_mul_ps(a, b);
    153 }
    154 
    155 __m512d test_mm512_mul_pd(__m512d a, __m512d b)
    156 {
    157   // CHECK-LABEL: @test_mm512_mul_pd
    158   // CHECK: fmul <8 x double>
    159   return _mm512_mul_pd(a, b);
    160 }
    161 
    162 void test_mm512_storeu_si512 (void *__P, __m512i __A)
    163 {
    164   // CHECK-LABEL: @test_mm512_storeu_si512
    165   // CHECK: store <16 x i32> %{{.*}}, <16 x i32>* %{{.*}}, align 1{{$}}
    166   // CHECK-NEXT: ret void
    167   _mm512_storeu_si512 ( __P,__A);
    168 }
    169 
    170 void test_mm512_storeu_ps(void *p, __m512 a)
    171 {
    172   // CHECK-LABEL: @test_mm512_storeu_ps
    173   // CHECK: store <16 x float> %{{.*}}, <16 x float>* %{{.*}}, align 1{{$}}
    174   // CHECK-NEXT: ret void
    175   _mm512_storeu_ps(p, a);
    176 }
    177 
    178 void test_mm512_storeu_pd(void *p, __m512d a)
    179 {
    180   // CHECK-LABEL: @test_mm512_storeu_pd
    181   // CHECK: store <8 x double> %{{.*}}, <8 x double>* %{{.*}}, align 1{{$}}
    182   // CHECK-NEXT: ret void
    183   _mm512_storeu_pd(p, a);
    184 }
    185 
    186 void test_mm512_mask_store_ps(void *p, __m512 a, __mmask16 m)
    187 {
    188   // CHECK-LABEL: @test_mm512_mask_store_ps
    189   // CHECK: @llvm.masked.store.v16f32.p0v16f32(<16 x float> %{{.*}}, <16 x float>* %{{.*}}, i32 64, <16 x i1> %{{.*}})
    190   _mm512_mask_store_ps(p, m, a);
    191 }
    192 
    193 void test_mm512_store_si512 (void *__P, __m512i __A)
    194 {
    195   // CHECK-LABEL: @test_mm512_store_si512
    196   // CHECK: load <8 x i64>, <8 x i64>* %__A.addr.i, align 64
    197   // CHECK: [[SI512_3:%.+]] = load i8*, i8** %__P.addr.i, align 8
    198   // CHECK: bitcast i8* [[SI512_3]] to <8 x i64>*
    199   // CHECK: store <8 x i64>
    200   _mm512_store_si512 ( __P,__A);
    201 }
    202 
    203 void test_mm512_store_epi32 (void *__P, __m512i __A)
    204 {
    205   // CHECK-LABEL: @test_mm512_store_epi32
    206   // CHECK: load <8 x i64>, <8 x i64>* %__A.addr.i, align 64
    207   // CHECK: [[Si32_3:%.+]] = load i8*, i8** %__P.addr.i, align 8
    208   // CHECK: bitcast i8* [[Si32_3]] to <8 x i64>*
    209   // CHECK: store <8 x i64>
    210   _mm512_store_epi32 ( __P,__A);
    211 }
    212 
    213 void test_mm512_store_epi64 (void *__P, __m512i __A)
    214 {
    215   // CHECK-LABEL: @test_mm512_store_epi64
    216   // CHECK: load <8 x i64>, <8 x i64>* %__A.addr.i, align 64
    217   // CHECK: [[SI64_3:%.+]] = load i8*, i8** %__P.addr.i, align 8
    218   // CHECK: bitcast i8* [[SI64_3]] to <8 x i64>*
    219   // CHECK: store <8 x i64>
    220   _mm512_store_epi64 ( __P,__A);
    221 }
    222 
    223 void test_mm512_store_ps(void *p, __m512 a)
    224 {
    225   // CHECK-LABEL: @test_mm512_store_ps
    226   // CHECK: store <16 x float>
    227   _mm512_store_ps(p, a);
    228 }
    229 
    230 void test_mm512_store_pd(void *p, __m512d a)
    231 {
    232   // CHECK-LABEL: @test_mm512_store_pd
    233   // CHECK: store <8 x double>
    234   _mm512_store_pd(p, a);
    235 }
    236 
    237 void test_mm512_mask_store_pd(void *p, __m512d a, __mmask8 m)
    238 {
    239   // CHECK-LABEL: @test_mm512_mask_store_pd
    240   // CHECK: @llvm.masked.store.v8f64.p0v8f64(<8 x double> %{{.*}}, <8 x double>* %{{.*}}, i32 64, <8 x i1> %{{.*}})
    241   _mm512_mask_store_pd(p, m, a);
    242 }
    243 
    244 void test_mm512_mask_storeu_epi32(void *__P, __mmask16 __U, __m512i __A) {
    245   // CHECK-LABEL: @test_mm512_mask_storeu_epi32
    246   // CHECK: @llvm.masked.store.v16i32.p0v16i32(<16 x i32> %{{.*}}, <16 x i32>* %{{.*}}, i32 1, <16 x i1> %{{.*}})
    247   return _mm512_mask_storeu_epi32(__P, __U, __A);
    248 }
    249 
    250 void test_mm512_mask_storeu_epi64(void *__P, __mmask8 __U, __m512i __A) {
    251   // CHECK-LABEL: @test_mm512_mask_storeu_epi64
    252   // CHECK: @llvm.masked.store.v8i64.p0v8i64(<8 x i64> %{{.*}}, <8 x i64>* %{{.*}}, i32 1, <8 x i1> %{{.*}})
    253   return _mm512_mask_storeu_epi64(__P, __U, __A);
    254 }
    255 
    256 __m512i test_mm512_loadu_si512 (void *__P)
    257 {
    258   // CHECK-LABEL: @test_mm512_loadu_si512
    259   // CHECK: load <16 x i32>, <16 x i32>* %{{.*}}, align 1{{$}}
    260   return _mm512_loadu_si512 ( __P);
    261 }
    262 
    263 __m512i test_mm512_mask_loadu_epi32 (__m512i __W, __mmask16 __U, void *__P)
    264 {
    265   // CHECK-LABEL: @test_mm512_mask_loadu_epi32
    266   // CHECK: @llvm.masked.load.v16i32.p0v16i32(<16 x i32>* %{{.*}}, i32 1, <16 x i1> %{{.*}}, <16 x i32> %{{.*}})
    267   return _mm512_mask_loadu_epi32 (__W,__U, __P);
    268 }
    269 
    270 __m512i test_mm512_mask_loadu_epi64 (__m512i __W, __mmask8 __U, void *__P)
    271 {
    272   // CHECK-LABEL: @test_mm512_mask_loadu_epi64
    273   // CHECK: @llvm.masked.load.v8i64.p0v8i64(<8 x i64>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x i64> %{{.*}})
    274   return _mm512_mask_loadu_epi64 (__W,__U, __P);
    275 }
    276 
    277 __m512 test_mm512_loadu_ps(void *p)
    278 {
    279   // CHECK-LABEL: @test_mm512_loadu_ps
    280   // CHECK: load <16 x float>, <16 x float>* {{.*}}, align 1{{$}}
    281   return _mm512_loadu_ps(p);
    282 }
    283 
    284 __m512 test_mm512_mask_loadu_ps (__m512 __W, __mmask16 __U, void *__P)
    285 {
    286   // CHECK-LABEL: @test_mm512_mask_loadu_ps
    287   // CHECK: @llvm.masked.load.v16f32.p0v16f32(<16 x float>* %{{.*}}, i32 1, <16 x i1> %{{.*}}, <16 x float> %{{.*}})
    288   return _mm512_mask_loadu_ps (__W,__U, __P);
    289 }
    290 
    291 __m512d test_mm512_loadu_pd(void *p)
    292 {
    293   // CHECK-LABEL: @test_mm512_loadu_pd
    294   // CHECK: load <8 x double>, <8 x double>* {{.*}}, align 1{{$}}
    295   return _mm512_loadu_pd(p);
    296 }
    297 
    298 __m512d test_mm512_mask_loadu_pd (__m512d __W, __mmask8 __U, void *__P)
    299 {
    300   // CHECK-LABEL: @test_mm512_mask_loadu_pd
    301   // CHECK: @llvm.masked.load.v8f64.p0v8f64(<8 x double>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x double> %{{.*}})
    302   return _mm512_mask_loadu_pd (__W,__U, __P);
    303 }
    304 
    305 __m512i test_mm512_load_si512 (void *__P)
    306 {
    307   // CHECK-LABEL: @test_mm512_load_si512
    308   // CHECK: [[LI512_1:%.+]] = load i8*, i8** %__P.addr.i, align 8
    309   // CHECK: [[LI512_2:%.+]] = bitcast i8* [[LI512_1]] to <8 x i64>*
    310   // CHECK: load <8 x i64>, <8 x i64>* [[LI512_2]], align 64
    311   return _mm512_load_si512 ( __P);
    312 }
    313 
    314 __m512i test_mm512_load_epi32 (void *__P)
    315 {
    316   // CHECK-LABEL: @test_mm512_load_epi32
    317   // CHECK: [[LI32_1:%.+]] = load i8*, i8** %__P.addr.i, align 8
    318   // CHECK: [[LI32_2:%.+]] = bitcast i8* [[LI32_1]] to <8 x i64>*
    319   // CHECK: load <8 x i64>, <8 x i64>* [[LI32_2]], align 64
    320   return _mm512_load_epi32 ( __P);
    321 }
    322 
    323 __m512i test_mm512_load_epi64 (void *__P)
    324 {
    325   // CHECK-LABEL: @test_mm512_load_epi64
    326   // CHECK: [[LI64_1:%.+]] = load i8*, i8** %__P.addr.i, align 8
    327   // CHECK: [[LI64_2:%.+]] = bitcast i8* [[LI64_1]] to <8 x i64>*
    328   // CHECK: load <8 x i64>, <8 x i64>* [[LI64_2]], align 64
    329   return _mm512_load_epi64 ( __P);
    330 }
    331 
    332 __m512 test_mm512_load_ps(void *p)
    333 {
    334   // CHECK-LABEL: @test_mm512_load_ps
    335   // CHECK: load <16 x float>, <16 x float>* %{{.*}}, align 64
    336   return _mm512_load_ps(p);
    337 }
    338 
    339 __m512 test_mm512_mask_load_ps (__m512 __W, __mmask16 __U, void *__P)
    340 {
    341   // CHECK-LABEL: @test_mm512_mask_load_ps
    342   // CHECK: @llvm.masked.load.v16f32.p0v16f32(<16 x float>* %{{.*}}, i32 64, <16 x i1> %{{.*}}, <16 x float> %{{.*}})
    343   return _mm512_mask_load_ps (__W,__U, __P);
    344 }
    345 
    346 __m512 test_mm512_maskz_load_ps(__mmask16 __U, void *__P)
    347 {
    348   // CHECK-LABEL: @test_mm512_maskz_load_ps
    349   // CHECK: @llvm.masked.load.v16f32.p0v16f32(<16 x float>* %{{.*}}, i32 64, <16 x i1> %{{.*}}, <16 x float> %{{.*}})
    350   return _mm512_maskz_load_ps(__U, __P);
    351 }
    352 
    353 __m512d test_mm512_load_pd(void *p)
    354 {
    355   // CHECK-LABEL: @test_mm512_load_pd
    356   // CHECK: load <8 x double>, <8 x double>* %{{.*}}, align 64
    357   return _mm512_load_pd(p);
    358 }
    359 
    360 __m512d test_mm512_mask_load_pd (__m512d __W, __mmask8 __U, void *__P)
    361 {
    362   // CHECK-LABEL: @test_mm512_mask_load_pd
    363   // CHECK: @llvm.masked.load.v8f64.p0v8f64(<8 x double>* %{{.*}}, i32 64, <8 x i1> %{{.*}}, <8 x double> %{{.*}})
    364   return _mm512_mask_load_pd (__W,__U, __P);
    365 }
    366 
    367 __m512d test_mm512_maskz_load_pd(__mmask8 __U, void *__P)
    368 {
    369   // CHECK-LABEL: @test_mm512_maskz_load_pd
    370   // CHECK: @llvm.masked.load.v8f64.p0v8f64(<8 x double>* %{{.*}}, i32 64, <8 x i1> %{{.*}}, <8 x double> %{{.*}})
    371   return _mm512_maskz_load_pd(__U, __P);
    372 }
    373 
    374 __m512d test_mm512_set1_pd(double d)
    375 {
    376   // CHECK-LABEL: @test_mm512_set1_pd
    377   // CHECK: insertelement <8 x double> {{.*}}, i32 0
    378   // CHECK: insertelement <8 x double> {{.*}}, i32 1
    379   // CHECK: insertelement <8 x double> {{.*}}, i32 2
    380   // CHECK: insertelement <8 x double> {{.*}}, i32 3
    381   // CHECK: insertelement <8 x double> {{.*}}, i32 4
    382   // CHECK: insertelement <8 x double> {{.*}}, i32 5
    383   // CHECK: insertelement <8 x double> {{.*}}, i32 6
    384   // CHECK: insertelement <8 x double> {{.*}}, i32 7
    385   return _mm512_set1_pd(d);
    386 }
    387 
    388 __mmask16 test_mm512_knot(__mmask16 a)
    389 {
    390   // CHECK-LABEL: @test_mm512_knot
    391   // CHECK: @llvm.x86.avx512.knot.w
    392   return _mm512_knot(a);
    393 }
    394 
    395 __m512i test_mm512_alignr_epi32(__m512i a, __m512i b)
    396 {
    397   // CHECK-LABEL: @test_mm512_alignr_epi32
    398   // CHECK: @llvm.x86.avx512.mask.valign.d.512
    399   return _mm512_alignr_epi32(a, b, 2);
    400 }
    401 
    402 __m512i test_mm512_mask_alignr_epi32(__m512i w, __mmask16 u, __m512i a, __m512i b)
    403 {
    404   // CHECK-LABEL: @test_mm512_mask_alignr_epi32
    405   // CHECK: @llvm.x86.avx512.mask.valign.d.512
    406   return _mm512_mask_alignr_epi32(w, u, a, b, 2);
    407 }
    408 
    409 __m512i test_mm512_maskz_alignr_epi32( __mmask16 u, __m512i a, __m512i b)
    410 {
    411   // CHECK-LABEL: @test_mm512_maskz_alignr_epi32
    412   // CHECK: @llvm.x86.avx512.mask.valign.d.512
    413   return _mm512_maskz_alignr_epi32(u, a, b, 2);
    414 }
    415 
    416 __m512i test_mm512_alignr_epi64(__m512i a, __m512i b)
    417 {
    418   // CHECK-LABEL: @test_mm512_alignr_epi64
    419   // CHECK: @llvm.x86.avx512.mask.valign.q.512
    420   return _mm512_alignr_epi64(a, b, 2);
    421 }
    422 
    423 __m512i test_mm512_mask_alignr_epi64(__m512i w, __mmask8 u, __m512i a, __m512i b)
    424 {
    425   // CHECK-LABEL: @test_mm512_mask_alignr_epi64
    426   // CHECK: @llvm.x86.avx512.mask.valign.q.512
    427   return _mm512_mask_alignr_epi64(w, u, a, b, 2);
    428 }
    429 
    430 __m512i test_mm512_maskz_alignr_epi64( __mmask8 u, __m512i a, __m512i b)
    431 {
    432   // CHECK-LABEL: @test_mm512_maskz_alignr_epi64
    433   // CHECK: @llvm.x86.avx512.mask.valign.q.512
    434   return _mm512_maskz_alignr_epi64(u, a, b, 2);
    435 }
    436 
    437 __m512d test_mm512_fmadd_round_pd(__m512d __A, __m512d __B, __m512d __C) {
    438   // CHECK-LABEL: @test_mm512_fmadd_round_pd
    439   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
    440   return _mm512_fmadd_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    441 }
    442 
    443 __m512d test_mm512_mask_fmadd_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
    444   // CHECK-LABEL: @test_mm512_mask_fmadd_round_pd
    445   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
    446   return _mm512_mask_fmadd_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    447 }
    448 __m512d test_mm512_mask3_fmadd_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
    449   // CHECK-LABEL: @test_mm512_mask3_fmadd_round_pd
    450   // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.512
    451   return _mm512_mask3_fmadd_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
    452 }
    453 __m512d test_mm512_maskz_fmadd_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
    454   // CHECK-LABEL: @test_mm512_maskz_fmadd_round_pd
    455   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
    456   return _mm512_maskz_fmadd_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    457 }
    458 __m512d test_mm512_fmsub_round_pd(__m512d __A, __m512d __B, __m512d __C) {
    459   // CHECK-LABEL: @test_mm512_fmsub_round_pd
    460   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
    461   return _mm512_fmsub_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    462 }
    463 __m512d test_mm512_mask_fmsub_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
    464   // CHECK-LABEL: @test_mm512_mask_fmsub_round_pd
    465   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
    466   return _mm512_mask_fmsub_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    467 }
    468 __m512d test_mm512_maskz_fmsub_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
    469   // CHECK-LABEL: @test_mm512_maskz_fmsub_round_pd
    470   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
    471   return _mm512_maskz_fmsub_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    472 }
    473 __m512d test_mm512_fnmadd_round_pd(__m512d __A, __m512d __B, __m512d __C) {
    474   // CHECK-LABEL: @test_mm512_fnmadd_round_pd
    475   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
    476   return _mm512_fnmadd_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    477 }
    478 __m512d test_mm512_mask3_fnmadd_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
    479   // CHECK-LABEL: @test_mm512_mask3_fnmadd_round_pd
    480   // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.512
    481   return _mm512_mask3_fnmadd_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
    482 }
    483 __m512d test_mm512_maskz_fnmadd_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
    484   // CHECK-LABEL: @test_mm512_maskz_fnmadd_round_pd
    485   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
    486   return _mm512_maskz_fnmadd_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    487 }
    488 __m512d test_mm512_fnmsub_round_pd(__m512d __A, __m512d __B, __m512d __C) {
    489   // CHECK-LABEL: @test_mm512_fnmsub_round_pd
    490   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
    491   return _mm512_fnmsub_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    492 }
    493 __m512d test_mm512_maskz_fnmsub_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
    494   // CHECK-LABEL: @test_mm512_maskz_fnmsub_round_pd
    495   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
    496   return _mm512_maskz_fnmsub_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    497 }
    498 __m512d test_mm512_fmadd_pd(__m512d __A, __m512d __B, __m512d __C) {
    499   // CHECK-LABEL: @test_mm512_fmadd_pd
    500   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
    501   return _mm512_fmadd_pd(__A, __B, __C);
    502 }
    503 __m512d test_mm512_mask_fmadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
    504   // CHECK-LABEL: @test_mm512_mask_fmadd_pd
    505   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
    506   return _mm512_mask_fmadd_pd(__A, __U, __B, __C);
    507 }
    508 __m512d test_mm512_mask3_fmadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
    509   // CHECK-LABEL: @test_mm512_mask3_fmadd_pd
    510   // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.512
    511   return _mm512_mask3_fmadd_pd(__A, __B, __C, __U);
    512 }
    513 __m512d test_mm512_maskz_fmadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
    514   // CHECK-LABEL: @test_mm512_maskz_fmadd_pd
    515   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
    516   return _mm512_maskz_fmadd_pd(__U, __A, __B, __C);
    517 }
    518 __m512d test_mm512_fmsub_pd(__m512d __A, __m512d __B, __m512d __C) {
    519   // CHECK-LABEL: @test_mm512_fmsub_pd
    520   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
    521   return _mm512_fmsub_pd(__A, __B, __C);
    522 }
    523 __m512d test_mm512_mask_fmsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
    524   // CHECK-LABEL: @test_mm512_mask_fmsub_pd
    525   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
    526   return _mm512_mask_fmsub_pd(__A, __U, __B, __C);
    527 }
    528 __m512d test_mm512_maskz_fmsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
    529   // CHECK-LABEL: @test_mm512_maskz_fmsub_pd
    530   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
    531   return _mm512_maskz_fmsub_pd(__U, __A, __B, __C);
    532 }
    533 __m512d test_mm512_fnmadd_pd(__m512d __A, __m512d __B, __m512d __C) {
    534   // CHECK-LABEL: @test_mm512_fnmadd_pd
    535   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
    536   return _mm512_fnmadd_pd(__A, __B, __C);
    537 }
    538 __m512d test_mm512_mask3_fnmadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
    539   // CHECK-LABEL: @test_mm512_mask3_fnmadd_pd
    540   // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.512
    541   return _mm512_mask3_fnmadd_pd(__A, __B, __C, __U);
    542 }
    543 __m512d test_mm512_maskz_fnmadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
    544   // CHECK-LABEL: @test_mm512_maskz_fnmadd_pd
    545   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
    546   return _mm512_maskz_fnmadd_pd(__U, __A, __B, __C);
    547 }
    548 __m512d test_mm512_fnmsub_pd(__m512d __A, __m512d __B, __m512d __C) {
    549   // CHECK-LABEL: @test_mm512_fnmsub_pd
    550   // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
    551   return _mm512_fnmsub_pd(__A, __B, __C);
    552 }
    553 __m512d test_mm512_maskz_fnmsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
    554   // CHECK-LABEL: @test_mm512_maskz_fnmsub_pd
    555   // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
    556   return _mm512_maskz_fnmsub_pd(__U, __A, __B, __C);
    557 }
    558 __m512 test_mm512_fmadd_round_ps(__m512 __A, __m512 __B, __m512 __C) {
    559   // CHECK-LABEL: @test_mm512_fmadd_round_ps
    560   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
    561   return _mm512_fmadd_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    562 }
    563 __m512 test_mm512_mask_fmadd_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
    564   // CHECK-LABEL: @test_mm512_mask_fmadd_round_ps
    565   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
    566   return _mm512_mask_fmadd_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    567 }
    568 __m512 test_mm512_mask3_fmadd_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
    569   // CHECK-LABEL: @test_mm512_mask3_fmadd_round_ps
    570   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.512
    571   return _mm512_mask3_fmadd_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
    572 }
    573 __m512 test_mm512_maskz_fmadd_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
    574   // CHECK-LABEL: @test_mm512_maskz_fmadd_round_ps
    575   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
    576   return _mm512_maskz_fmadd_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    577 }
    578 __m512 test_mm512_fmsub_round_ps(__m512 __A, __m512 __B, __m512 __C) {
    579   // CHECK-LABEL: @test_mm512_fmsub_round_ps
    580   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
    581   return _mm512_fmsub_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    582 }
    583 __m512 test_mm512_mask_fmsub_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
    584   // CHECK-LABEL: @test_mm512_mask_fmsub_round_ps
    585   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
    586   return _mm512_mask_fmsub_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    587 }
    588 __m512 test_mm512_maskz_fmsub_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
    589   // CHECK-LABEL: @test_mm512_maskz_fmsub_round_ps
    590   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
    591   return _mm512_maskz_fmsub_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    592 }
    593 __m512 test_mm512_fnmadd_round_ps(__m512 __A, __m512 __B, __m512 __C) {
    594   // CHECK-LABEL: @test_mm512_fnmadd_round_ps
    595   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
    596   return _mm512_fnmadd_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    597 }
    598 __m512 test_mm512_mask3_fnmadd_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
    599   // CHECK-LABEL: @test_mm512_mask3_fnmadd_round_ps
    600   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.512
    601   return _mm512_mask3_fnmadd_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
    602 }
    603 __m512 test_mm512_maskz_fnmadd_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
    604   // CHECK-LABEL: @test_mm512_maskz_fnmadd_round_ps
    605   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
    606   return _mm512_maskz_fnmadd_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    607 }
    608 __m512 test_mm512_fnmsub_round_ps(__m512 __A, __m512 __B, __m512 __C) {
    609   // CHECK-LABEL: @test_mm512_fnmsub_round_ps
    610   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
    611   return _mm512_fnmsub_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    612 }
    613 __m512 test_mm512_maskz_fnmsub_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
    614   // CHECK-LABEL: @test_mm512_maskz_fnmsub_round_ps
    615   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
    616   return _mm512_maskz_fnmsub_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    617 }
    618 __m512 test_mm512_fmadd_ps(__m512 __A, __m512 __B, __m512 __C) {
    619   // CHECK-LABEL: @test_mm512_fmadd_ps
    620   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
    621   return _mm512_fmadd_ps(__A, __B, __C);
    622 }
    623 __m512 test_mm512_mask_fmadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
    624   // CHECK-LABEL: @test_mm512_mask_fmadd_ps
    625   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
    626   return _mm512_mask_fmadd_ps(__A, __U, __B, __C);
    627 }
    628 __m512 test_mm512_mask3_fmadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
    629   // CHECK-LABEL: @test_mm512_mask3_fmadd_ps
    630   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.512
    631   return _mm512_mask3_fmadd_ps(__A, __B, __C, __U);
    632 }
    633 __m512 test_mm512_maskz_fmadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
    634   // CHECK-LABEL: @test_mm512_maskz_fmadd_ps
    635   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
    636   return _mm512_maskz_fmadd_ps(__U, __A, __B, __C);
    637 }
    638 __m512 test_mm512_fmsub_ps(__m512 __A, __m512 __B, __m512 __C) {
    639   // CHECK-LABEL: @test_mm512_fmsub_ps
    640   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
    641   return _mm512_fmsub_ps(__A, __B, __C);
    642 }
    643 __m512 test_mm512_mask_fmsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
    644   // CHECK-LABEL: @test_mm512_mask_fmsub_ps
    645   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
    646   return _mm512_mask_fmsub_ps(__A, __U, __B, __C);
    647 }
    648 __m512 test_mm512_maskz_fmsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
    649   // CHECK-LABEL: @test_mm512_maskz_fmsub_ps
    650   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
    651   return _mm512_maskz_fmsub_ps(__U, __A, __B, __C);
    652 }
    653 __m512 test_mm512_fnmadd_ps(__m512 __A, __m512 __B, __m512 __C) {
    654   // CHECK-LABEL: @test_mm512_fnmadd_ps
    655   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
    656   return _mm512_fnmadd_ps(__A, __B, __C);
    657 }
    658 __m512 test_mm512_mask3_fnmadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
    659   // CHECK-LABEL: @test_mm512_mask3_fnmadd_ps
    660   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.512
    661   return _mm512_mask3_fnmadd_ps(__A, __B, __C, __U);
    662 }
    663 __m512 test_mm512_maskz_fnmadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
    664   // CHECK-LABEL: @test_mm512_maskz_fnmadd_ps
    665   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
    666   return _mm512_maskz_fnmadd_ps(__U, __A, __B, __C);
    667 }
    668 __m512 test_mm512_fnmsub_ps(__m512 __A, __m512 __B, __m512 __C) {
    669   // CHECK-LABEL: @test_mm512_fnmsub_ps
    670   // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
    671   return _mm512_fnmsub_ps(__A, __B, __C);
    672 }
    673 __m512 test_mm512_maskz_fnmsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
    674   // CHECK-LABEL: @test_mm512_maskz_fnmsub_ps
    675   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
    676   return _mm512_maskz_fnmsub_ps(__U, __A, __B, __C);
    677 }
    678 __m512d test_mm512_fmaddsub_round_pd(__m512d __A, __m512d __B, __m512d __C) {
    679   // CHECK-LABEL: @test_mm512_fmaddsub_round_pd
    680   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
    681   return _mm512_fmaddsub_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    682 }
    683 __m512d test_mm512_mask_fmaddsub_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
    684   // CHECK-LABEL: @test_mm512_mask_fmaddsub_round_pd
    685   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
    686   return _mm512_mask_fmaddsub_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    687 }
    688 __m512d test_mm512_mask3_fmaddsub_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
    689   // CHECK-LABEL: @test_mm512_mask3_fmaddsub_round_pd
    690   // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.pd.512
    691   return _mm512_mask3_fmaddsub_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
    692 }
    693 __m512d test_mm512_maskz_fmaddsub_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
    694   // CHECK-LABEL: @test_mm512_maskz_fmaddsub_round_pd
    695   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.512
    696   return _mm512_maskz_fmaddsub_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    697 }
    698 __m512d test_mm512_fmsubadd_round_pd(__m512d __A, __m512d __B, __m512d __C) {
    699   // CHECK-LABEL: @test_mm512_fmsubadd_round_pd
    700   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
    701   return _mm512_fmsubadd_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    702 }
    703 __m512d test_mm512_mask_fmsubadd_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
    704   // CHECK-LABEL: @test_mm512_mask_fmsubadd_round_pd
    705   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
    706   return _mm512_mask_fmsubadd_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    707 }
    708 __m512d test_mm512_maskz_fmsubadd_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
    709   // CHECK-LABEL: @test_mm512_maskz_fmsubadd_round_pd
    710   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.512
    711   return _mm512_maskz_fmsubadd_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    712 }
    713 __m512d test_mm512_fmaddsub_pd(__m512d __A, __m512d __B, __m512d __C) {
    714   // CHECK-LABEL: @test_mm512_fmaddsub_pd
    715   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
    716   return _mm512_fmaddsub_pd(__A, __B, __C);
    717 }
    718 __m512d test_mm512_mask_fmaddsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
    719   // CHECK-LABEL: @test_mm512_mask_fmaddsub_pd
    720   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
    721   return _mm512_mask_fmaddsub_pd(__A, __U, __B, __C);
    722 }
    723 __m512d test_mm512_mask3_fmaddsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
    724   // CHECK-LABEL: @test_mm512_mask3_fmaddsub_pd
    725   // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.pd.512
    726   return _mm512_mask3_fmaddsub_pd(__A, __B, __C, __U);
    727 }
    728 __m512d test_mm512_maskz_fmaddsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
    729   // CHECK-LABEL: @test_mm512_maskz_fmaddsub_pd
    730   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.512
    731   return _mm512_maskz_fmaddsub_pd(__U, __A, __B, __C);
    732 }
    733 __m512d test_mm512_fmsubadd_pd(__m512d __A, __m512d __B, __m512d __C) {
    734   // CHECK-LABEL: @test_mm512_fmsubadd_pd
    735   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
    736   return _mm512_fmsubadd_pd(__A, __B, __C);
    737 }
    738 __m512d test_mm512_mask_fmsubadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
    739   // CHECK-LABEL: @test_mm512_mask_fmsubadd_pd
    740   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
    741   return _mm512_mask_fmsubadd_pd(__A, __U, __B, __C);
    742 }
    743 __m512d test_mm512_maskz_fmsubadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
    744   // CHECK-LABEL: @test_mm512_maskz_fmsubadd_pd
    745   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.512
    746   return _mm512_maskz_fmsubadd_pd(__U, __A, __B, __C);
    747 }
    748 __m512 test_mm512_fmaddsub_round_ps(__m512 __A, __m512 __B, __m512 __C) {
    749   // CHECK-LABEL: @test_mm512_fmaddsub_round_ps
    750   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
    751   return _mm512_fmaddsub_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    752 }
    753 __m512 test_mm512_mask_fmaddsub_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
    754   // CHECK-LABEL: @test_mm512_mask_fmaddsub_round_ps
    755   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
    756   return _mm512_mask_fmaddsub_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    757 }
    758 __m512 test_mm512_mask3_fmaddsub_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
    759   // CHECK-LABEL: @test_mm512_mask3_fmaddsub_round_ps
    760   // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.ps.512
    761   return _mm512_mask3_fmaddsub_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
    762 }
    763 __m512 test_mm512_maskz_fmaddsub_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
    764   // CHECK-LABEL: @test_mm512_maskz_fmaddsub_round_ps
    765   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.512
    766   return _mm512_maskz_fmaddsub_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    767 }
    768 __m512 test_mm512_fmsubadd_round_ps(__m512 __A, __m512 __B, __m512 __C) {
    769   // CHECK-LABEL: @test_mm512_fmsubadd_round_ps
    770   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
    771   return _mm512_fmsubadd_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    772 }
    773 __m512 test_mm512_mask_fmsubadd_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
    774   // CHECK-LABEL: @test_mm512_mask_fmsubadd_round_ps
    775   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
    776   return _mm512_mask_fmsubadd_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    777 }
    778 __m512 test_mm512_maskz_fmsubadd_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
    779   // CHECK-LABEL: @test_mm512_maskz_fmsubadd_round_ps
    780   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.512
    781   return _mm512_maskz_fmsubadd_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    782 }
    783 __m512 test_mm512_fmaddsub_ps(__m512 __A, __m512 __B, __m512 __C) {
    784   // CHECK-LABEL: @test_mm512_fmaddsub_ps
    785   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
    786   return _mm512_fmaddsub_ps(__A, __B, __C);
    787 }
    788 __m512 test_mm512_mask_fmaddsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
    789   // CHECK-LABEL: @test_mm512_mask_fmaddsub_ps
    790   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
    791   return _mm512_mask_fmaddsub_ps(__A, __U, __B, __C);
    792 }
    793 __m512 test_mm512_mask3_fmaddsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
    794   // CHECK-LABEL: @test_mm512_mask3_fmaddsub_ps
    795   // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.ps.512
    796   return _mm512_mask3_fmaddsub_ps(__A, __B, __C, __U);
    797 }
    798 __m512 test_mm512_maskz_fmaddsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
    799   // CHECK-LABEL: @test_mm512_maskz_fmaddsub_ps
    800   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.512
    801   return _mm512_maskz_fmaddsub_ps(__U, __A, __B, __C);
    802 }
    803 __m512 test_mm512_fmsubadd_ps(__m512 __A, __m512 __B, __m512 __C) {
    804   // CHECK-LABEL: @test_mm512_fmsubadd_ps
    805   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
    806   return _mm512_fmsubadd_ps(__A, __B, __C);
    807 }
    808 __m512 test_mm512_mask_fmsubadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
    809   // CHECK-LABEL: @test_mm512_mask_fmsubadd_ps
    810   // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
    811   return _mm512_mask_fmsubadd_ps(__A, __U, __B, __C);
    812 }
    813 __m512 test_mm512_maskz_fmsubadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
    814   // CHECK-LABEL: @test_mm512_maskz_fmsubadd_ps
    815   // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.512
    816   return _mm512_maskz_fmsubadd_ps(__U, __A, __B, __C);
    817 }
    818 __m512d test_mm512_mask3_fmsub_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
    819   // CHECK-LABEL: @test_mm512_mask3_fmsub_round_pd
    820   // CHECK: @llvm.x86.avx512.mask3.vfmsub.pd.512
    821   return _mm512_mask3_fmsub_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
    822 }
    823 __m512d test_mm512_mask3_fmsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
    824   // CHECK-LABEL: @test_mm512_mask3_fmsub_pd
    825   // CHECK: @llvm.x86.avx512.mask3.vfmsub.pd.512
    826   return _mm512_mask3_fmsub_pd(__A, __B, __C, __U);
    827 }
    828 __m512 test_mm512_mask3_fmsub_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
    829   // CHECK-LABEL: @test_mm512_mask3_fmsub_round_ps
    830   // CHECK: @llvm.x86.avx512.mask3.vfmsub.ps.512
    831   return _mm512_mask3_fmsub_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
    832 }
    833 __m512 test_mm512_mask3_fmsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
    834   // CHECK-LABEL: @test_mm512_mask3_fmsub_ps
    835   // CHECK: @llvm.x86.avx512.mask3.vfmsub.ps.512
    836   return _mm512_mask3_fmsub_ps(__A, __B, __C, __U);
    837 }
    838 __m512d test_mm512_mask3_fmsubadd_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
    839   // CHECK-LABEL: @test_mm512_mask3_fmsubadd_round_pd
    840   // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.pd.512
    841   return _mm512_mask3_fmsubadd_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
    842 }
    843 __m512d test_mm512_mask3_fmsubadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
    844   // CHECK-LABEL: @test_mm512_mask3_fmsubadd_pd
    845   // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.pd.512
    846   return _mm512_mask3_fmsubadd_pd(__A, __B, __C, __U);
    847 }
    848 __m512 test_mm512_mask3_fmsubadd_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
    849   // CHECK-LABEL: @test_mm512_mask3_fmsubadd_round_ps
    850   // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.ps.512
    851   return _mm512_mask3_fmsubadd_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
    852 }
    853 __m512 test_mm512_mask3_fmsubadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
    854   // CHECK-LABEL: @test_mm512_mask3_fmsubadd_ps
    855   // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.ps.512
    856   return _mm512_mask3_fmsubadd_ps(__A, __B, __C, __U);
    857 }
    858 __m512d test_mm512_mask_fnmadd_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
    859   // CHECK-LABEL: @test_mm512_mask_fnmadd_round_pd
    860   // CHECK: @llvm.x86.avx512.mask.vfnmadd.pd.512
    861   return _mm512_mask_fnmadd_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    862 }
    863 __m512d test_mm512_mask_fnmadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
    864   // CHECK-LABEL: @test_mm512_mask_fnmadd_pd
    865   // CHECK: @llvm.x86.avx512.mask.vfnmadd.pd.512
    866   return _mm512_mask_fnmadd_pd(__A, __U, __B, __C);
    867 }
    868 __m512 test_mm512_mask_fnmadd_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
    869   // CHECK-LABEL: @test_mm512_mask_fnmadd_round_ps
    870   // CHECK: @llvm.x86.avx512.mask.vfnmadd.ps.512
    871   return _mm512_mask_fnmadd_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    872 }
    873 __m512 test_mm512_mask_fnmadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
    874   // CHECK-LABEL: @test_mm512_mask_fnmadd_ps
    875   // CHECK: @llvm.x86.avx512.mask.vfnmadd.ps.512
    876   return _mm512_mask_fnmadd_ps(__A, __U, __B, __C);
    877 }
    878 __m512d test_mm512_mask_fnmsub_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
    879   // CHECK-LABEL: @test_mm512_mask_fnmsub_round_pd
    880   // CHECK: @llvm.x86.avx512.mask.vfnmsub.pd.512
    881   return _mm512_mask_fnmsub_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    882 }
    883 __m512d test_mm512_mask3_fnmsub_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
    884   // CHECK-LABEL: @test_mm512_mask3_fnmsub_round_pd
    885   // CHECK: @llvm.x86.avx512.mask3.vfnmsub.pd.512
    886   return _mm512_mask3_fnmsub_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
    887 }
    888 __m512d test_mm512_mask_fnmsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
    889   // CHECK-LABEL: @test_mm512_mask_fnmsub_pd
    890   // CHECK: @llvm.x86.avx512.mask.vfnmsub.pd.512
    891   return _mm512_mask_fnmsub_pd(__A, __U, __B, __C);
    892 }
    893 __m512d test_mm512_mask3_fnmsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
    894   // CHECK-LABEL: @test_mm512_mask3_fnmsub_pd
    895   // CHECK: @llvm.x86.avx512.mask3.vfnmsub.pd.512
    896   return _mm512_mask3_fnmsub_pd(__A, __B, __C, __U);
    897 }
    898 __m512 test_mm512_mask_fnmsub_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
    899   // CHECK-LABEL: @test_mm512_mask_fnmsub_round_ps
    900   // CHECK: @llvm.x86.avx512.mask.vfnmsub.ps.512
    901   return _mm512_mask_fnmsub_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
    902 }
    903 __m512 test_mm512_mask3_fnmsub_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
    904   // CHECK-LABEL: @test_mm512_mask3_fnmsub_round_ps
    905   // CHECK: @llvm.x86.avx512.mask3.vfnmsub.ps.512
    906   return _mm512_mask3_fnmsub_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
    907 }
    908 __m512 test_mm512_mask_fnmsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
    909   // CHECK-LABEL: @test_mm512_mask_fnmsub_ps
    910   // CHECK: @llvm.x86.avx512.mask.vfnmsub.ps.512
    911   return _mm512_mask_fnmsub_ps(__A, __U, __B, __C);
    912 }
    913 __m512 test_mm512_mask3_fnmsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
    914   // CHECK-LABEL: @test_mm512_mask3_fnmsub_ps
    915   // CHECK: @llvm.x86.avx512.mask3.vfnmsub.ps.512
    916   return _mm512_mask3_fnmsub_ps(__A, __B, __C, __U);
    917 }
    918 
    919 __mmask16 test_mm512_cmpeq_epi32_mask(__m512i __a, __m512i __b) {
    920   // CHECK-LABEL: @test_mm512_cmpeq_epi32_mask
    921   // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
    922   return (__mmask16)_mm512_cmpeq_epi32_mask(__a, __b);
    923 }
    924 
    925 __mmask16 test_mm512_mask_cmpeq_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
    926   // CHECK-LABEL: @test_mm512_mask_cmpeq_epi32_mask
    927   // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
    928   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
    929   return (__mmask16)_mm512_mask_cmpeq_epi32_mask(__u, __a, __b);
    930 }
    931 
    932 __mmask8 test_mm512_mask_cmpeq_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
    933   // CHECK-LABEL: @test_mm512_mask_cmpeq_epi64_mask
    934   // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
    935   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
    936   return (__mmask8)_mm512_mask_cmpeq_epi64_mask(__u, __a, __b);
    937 }
    938 
    939 __mmask8 test_mm512_cmpeq_epi64_mask(__m512i __a, __m512i __b) {
    940   // CHECK-LABEL: @test_mm512_cmpeq_epi64_mask
    941   // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
    942   return (__mmask8)_mm512_cmpeq_epi64_mask(__a, __b);
    943 }
    944 
    945 __mmask16 test_mm512_cmpgt_epi32_mask(__m512i __a, __m512i __b) {
    946   // CHECK-LABEL: @test_mm512_cmpgt_epi32_mask
    947   // CHECK: icmp sgt <16 x i32> %{{.*}}, %{{.*}}
    948   return (__mmask16)_mm512_cmpgt_epi32_mask(__a, __b);
    949 }
    950 
    951 __mmask16 test_mm512_mask_cmpgt_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
    952   // CHECK-LABEL: @test_mm512_mask_cmpgt_epi32_mask
    953   // CHECK: icmp sgt <16 x i32> %{{.*}}, %{{.*}}
    954   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
    955   return (__mmask16)_mm512_mask_cmpgt_epi32_mask(__u, __a, __b);
    956 }
    957 
    958 __mmask8 test_mm512_mask_cmpgt_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
    959   // CHECK-LABEL: @test_mm512_mask_cmpgt_epi64_mask
    960   // CHECK: icmp sgt <8 x i64> %{{.*}}, %{{.*}}
    961   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
    962   return (__mmask8)_mm512_mask_cmpgt_epi64_mask(__u, __a, __b);
    963 }
    964 
    965 __mmask8 test_mm512_cmpgt_epi64_mask(__m512i __a, __m512i __b) {
    966   // CHECK-LABEL: @test_mm512_cmpgt_epi64_mask
    967   // CHECK: icmp sgt <8 x i64> %{{.*}}, %{{.*}}
    968   return (__mmask8)_mm512_cmpgt_epi64_mask(__a, __b);
    969 }
    970 
    971 __m512d test_mm512_unpackhi_pd(__m512d a, __m512d b)
    972 {
    973   // CHECK-LABEL: @test_mm512_unpackhi_pd
    974   // CHECK: shufflevector <8 x double> {{.*}} <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15>
    975   return _mm512_unpackhi_pd(a, b);
    976 }
    977 
    978 __m512d test_mm512_unpacklo_pd(__m512d a, __m512d b)
    979 {
    980   // CHECK-LABEL: @test_mm512_unpacklo_pd
    981   // CHECK: shufflevector <8 x double> {{.*}} <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14>
    982   return _mm512_unpacklo_pd(a, b);
    983 }
    984 
    985 __m512 test_mm512_unpackhi_ps(__m512 a, __m512 b)
    986 {
    987   // CHECK-LABEL: @test_mm512_unpackhi_ps
    988   // 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>
    989   return _mm512_unpackhi_ps(a, b);
    990 }
    991 
    992 __m512 test_mm512_unpacklo_ps(__m512 a, __m512 b)
    993 {
    994   // CHECK-LABEL: @test_mm512_unpacklo_ps
    995   // 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>
    996   return _mm512_unpacklo_ps(a, b);
    997 }
    998 
    999 __mmask16 test_mm512_cmp_round_ps_mask(__m512 a, __m512 b) {
   1000   // CHECK-LABEL: @test_mm512_cmp_round_ps_mask
   1001   // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
   1002   return _mm512_cmp_round_ps_mask(a, b, 0, _MM_FROUND_CUR_DIRECTION);
   1003 }
   1004 
   1005 __mmask16 test_mm512_mask_cmp_round_ps_mask(__mmask16 m, __m512 a, __m512 b) {
   1006   // CHECK-LABEL: @test_mm512_mask_cmp_round_ps_mask
   1007   // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
   1008   return _mm512_mask_cmp_round_ps_mask(m, a, b, 0, _MM_FROUND_CUR_DIRECTION);
   1009 }
   1010 
   1011 __mmask16 test_mm512_cmp_ps_mask(__m512 a, __m512 b) {
   1012   // CHECK-LABEL: @test_mm512_cmp_ps_mask
   1013   // CHECKn: @llvm.x86.avx512.mask.cmp.ps.512
   1014   return _mm512_cmp_ps_mask(a, b, 0);
   1015 }
   1016 
   1017 __mmask16 test_mm512_mask_cmp_ps_mask(__mmask16 m, __m512 a, __m512 b) {
   1018   // CHECK-LABEL: @test_mm512_mask_cmp_ps_mask
   1019   // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
   1020   return _mm512_mask_cmp_ps_mask(m, a, b, 0);
   1021 }
   1022 
   1023 __mmask8 test_mm512_cmp_round_pd_mask(__m512d a, __m512d b) {
   1024   // CHECK-LABEL: @test_mm512_cmp_round_pd_mask
   1025   // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
   1026   return _mm512_cmp_round_pd_mask(a, b, 0, _MM_FROUND_CUR_DIRECTION);
   1027 }
   1028 
   1029 __mmask8 test_mm512_mask_cmp_round_pd_mask(__mmask8 m, __m512d a, __m512d b) {
   1030   // CHECK-LABEL: @test_mm512_mask_cmp_round_pd_mask
   1031   // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
   1032   return _mm512_mask_cmp_round_pd_mask(m, a, b, 0, _MM_FROUND_CUR_DIRECTION);
   1033 }
   1034 
   1035 __mmask8 test_mm512_cmp_pd_mask(__m512d a, __m512d b) {
   1036   // CHECK-LABEL: @test_mm512_cmp_pd_mask
   1037   // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
   1038   return _mm512_cmp_pd_mask(a, b, 0);
   1039 }
   1040 
   1041 __mmask8 test_mm512_mask_cmp_pd_mask(__mmask8 m, __m512d a, __m512d b) {
   1042   // CHECK-LABEL: @test_mm512_mask_cmp_pd_mask
   1043   // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
   1044   return _mm512_mask_cmp_pd_mask(m, a, b, 0);
   1045 }
   1046 
   1047 __m256d test_mm512_extractf64x4_pd(__m512d a)
   1048 {
   1049   // CHECK-LABEL: @test_mm512_extractf64x4_pd
   1050   // CHECK: @llvm.x86.avx512.mask.vextractf64x4.512
   1051   return _mm512_extractf64x4_pd(a, 1);
   1052 }
   1053 
   1054 __m256d test_mm512_mask_extractf64x4_pd(__m256d  __W,__mmask8  __U,__m512d __A){
   1055  //CHECK-LABEL:@test_mm512_mask_extractf64x4_pd
   1056  //CHECL:@llvm.x86.avx512.mask.vextractf64x4.512
   1057  return _mm512_mask_extractf64x4_pd( __W, __U, __A, 1);
   1058 }
   1059 
   1060 __m256d test_mm512_maskz_extractf64x4_pd(__mmask8  __U,__m512d __A){
   1061  //CHECK-LABEL:@test_mm512_maskz_extractf64x4_pd
   1062  //CHECL:@llvm.x86.avx512.mask.vextractf64x4.512
   1063  return _mm512_maskz_extractf64x4_pd( __U, __A, 1);
   1064 }
   1065 
   1066 __m128 test_mm512_extractf32x4_ps(__m512 a)
   1067 {
   1068   // CHECK-LABEL: @test_mm512_extractf32x4_ps
   1069   // CHECK: @llvm.x86.avx512.mask.vextractf32x4.512
   1070   return _mm512_extractf32x4_ps(a, 1);
   1071 }
   1072 
   1073 __m128 test_mm512_mask_extractf32x4_ps(__m128 __W, __mmask8  __U,__m512d __A){
   1074  //CHECK-LABEL:@test_mm512_mask_extractf32x4_ps
   1075  //CHECL: @llvm.x86.avx512.mask.vextractf32x4.512
   1076  return _mm512_mask_extractf32x4_ps( __W, __U, __A, 1);
   1077 }
   1078 
   1079 __m128 test_mm512_maskz_extractf32x4_ps( __mmask8  __U,__m512d __A){
   1080  //CHECK-LABEL:@test_mm512_maskz_extractf32x4_ps
   1081  //CHECL: @llvm.x86.avx512.mask.vextractf32x4.512
   1082  return _mm512_maskz_extractf32x4_ps(  __U, __A, 1);
   1083 }
   1084 
   1085 __mmask16 test_mm512_cmpeq_epu32_mask(__m512i __a, __m512i __b) {
   1086   // CHECK-LABEL: @test_mm512_cmpeq_epu32_mask
   1087   // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
   1088   return (__mmask16)_mm512_cmpeq_epu32_mask(__a, __b);
   1089 }
   1090 
   1091 __mmask16 test_mm512_mask_cmpeq_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
   1092   // CHECK-LABEL: @test_mm512_mask_cmpeq_epu32_mask
   1093   // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
   1094   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
   1095   return (__mmask16)_mm512_mask_cmpeq_epu32_mask(__u, __a, __b);
   1096 }
   1097 
   1098 __mmask8 test_mm512_cmpeq_epu64_mask(__m512i __a, __m512i __b) {
   1099   // CHECK-LABEL: @test_mm512_cmpeq_epu64_mask
   1100   // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
   1101   return (__mmask8)_mm512_cmpeq_epu64_mask(__a, __b);
   1102 }
   1103 
   1104 __mmask8 test_mm512_mask_cmpeq_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
   1105   // CHECK-LABEL: @test_mm512_mask_cmpeq_epu64_mask
   1106   // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
   1107   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
   1108   return (__mmask8)_mm512_mask_cmpeq_epu64_mask(__u, __a, __b);
   1109 }
   1110 
   1111 __mmask16 test_mm512_cmpge_epi32_mask(__m512i __a, __m512i __b) {
   1112   // CHECK-LABEL: @test_mm512_cmpge_epi32_mask
   1113   // CHECK: icmp sge <16 x i32> %{{.*}}, %{{.*}}
   1114   return (__mmask16)_mm512_cmpge_epi32_mask(__a, __b);
   1115 }
   1116 
   1117 __mmask16 test_mm512_mask_cmpge_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
   1118   // CHECK-LABEL: @test_mm512_mask_cmpge_epi32_mask
   1119   // CHECK: icmp sge <16 x i32> %{{.*}}, %{{.*}}
   1120   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
   1121   return (__mmask16)_mm512_mask_cmpge_epi32_mask(__u, __a, __b);
   1122 }
   1123 
   1124 __mmask8 test_mm512_cmpge_epi64_mask(__m512i __a, __m512i __b) {
   1125   // CHECK-LABEL: @test_mm512_cmpge_epi64_mask
   1126   // CHECK: icmp sge <8 x i64> %{{.*}}, %{{.*}}
   1127   return (__mmask8)_mm512_cmpge_epi64_mask(__a, __b);
   1128 }
   1129 
   1130 __mmask8 test_mm512_mask_cmpge_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
   1131   // CHECK-LABEL: @test_mm512_mask_cmpge_epi64_mask
   1132   // CHECK: icmp sge <8 x i64> %{{.*}}, %{{.*}}
   1133   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
   1134   return (__mmask8)_mm512_mask_cmpge_epi64_mask(__u, __a, __b);
   1135 }
   1136 
   1137 __mmask16 test_mm512_cmpge_epu32_mask(__m512i __a, __m512i __b) {
   1138   // CHECK-LABEL: @test_mm512_cmpge_epu32_mask
   1139   // CHECK: icmp uge <16 x i32> %{{.*}}, %{{.*}}
   1140   return (__mmask16)_mm512_cmpge_epu32_mask(__a, __b);
   1141 }
   1142 
   1143 __mmask16 test_mm512_mask_cmpge_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
   1144   // CHECK-LABEL: @test_mm512_mask_cmpge_epu32_mask
   1145   // CHECK: icmp uge <16 x i32> %{{.*}}, %{{.*}}
   1146   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
   1147   return (__mmask16)_mm512_mask_cmpge_epu32_mask(__u, __a, __b);
   1148 }
   1149 
   1150 __mmask8 test_mm512_cmpge_epu64_mask(__m512i __a, __m512i __b) {
   1151   // CHECK-LABEL: @test_mm512_cmpge_epu64_mask
   1152   // CHECK: icmp uge <8 x i64> %{{.*}}, %{{.*}}
   1153   return (__mmask8)_mm512_cmpge_epu64_mask(__a, __b);
   1154 }
   1155 
   1156 __mmask8 test_mm512_mask_cmpge_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
   1157   // CHECK-LABEL: @test_mm512_mask_cmpge_epu64_mask
   1158   // CHECK: icmp uge <8 x i64> %{{.*}}, %{{.*}}
   1159   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
   1160   return (__mmask8)_mm512_mask_cmpge_epu64_mask(__u, __a, __b);
   1161 }
   1162 
   1163 __mmask16 test_mm512_cmpgt_epu32_mask(__m512i __a, __m512i __b) {
   1164   // CHECK-LABEL: @test_mm512_cmpgt_epu32_mask
   1165   // CHECK: icmp ugt <16 x i32> %{{.*}}, %{{.*}}
   1166   return (__mmask16)_mm512_cmpgt_epu32_mask(__a, __b);
   1167 }
   1168 
   1169 __mmask16 test_mm512_mask_cmpgt_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
   1170   // CHECK-LABEL: @test_mm512_mask_cmpgt_epu32_mask
   1171   // CHECK: icmp ugt <16 x i32> %{{.*}}, %{{.*}}
   1172   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
   1173   return (__mmask16)_mm512_mask_cmpgt_epu32_mask(__u, __a, __b);
   1174 }
   1175 
   1176 __mmask8 test_mm512_cmpgt_epu64_mask(__m512i __a, __m512i __b) {
   1177   // CHECK-LABEL: @test_mm512_cmpgt_epu64_mask
   1178   // CHECK: icmp ugt <8 x i64> %{{.*}}, %{{.*}}
   1179   return (__mmask8)_mm512_cmpgt_epu64_mask(__a, __b);
   1180 }
   1181 
   1182 __mmask8 test_mm512_mask_cmpgt_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
   1183   // CHECK-LABEL: @test_mm512_mask_cmpgt_epu64_mask
   1184   // CHECK: icmp ugt <8 x i64> %{{.*}}, %{{.*}}
   1185   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
   1186   return (__mmask8)_mm512_mask_cmpgt_epu64_mask(__u, __a, __b);
   1187 }
   1188 
   1189 __mmask16 test_mm512_cmple_epi32_mask(__m512i __a, __m512i __b) {
   1190   // CHECK-LABEL: @test_mm512_cmple_epi32_mask
   1191   // CHECK: icmp sle <16 x i32> %{{.*}}, %{{.*}}
   1192   return (__mmask16)_mm512_cmple_epi32_mask(__a, __b);
   1193 }
   1194 
   1195 __mmask16 test_mm512_mask_cmple_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
   1196   // CHECK-LABEL: @test_mm512_mask_cmple_epi32_mask
   1197   // CHECK: icmp sle <16 x i32> %{{.*}}, %{{.*}}
   1198   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
   1199   return (__mmask16)_mm512_mask_cmple_epi32_mask(__u, __a, __b);
   1200 }
   1201 
   1202 __mmask8 test_mm512_cmple_epi64_mask(__m512i __a, __m512i __b) {
   1203   // CHECK-LABEL: @test_mm512_cmple_epi64_mask
   1204   // CHECK: icmp sle <8 x i64> %{{.*}}, %{{.*}}
   1205   return (__mmask8)_mm512_cmple_epi64_mask(__a, __b);
   1206 }
   1207 
   1208 __mmask8 test_mm512_mask_cmple_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
   1209   // CHECK-LABEL: @test_mm512_mask_cmple_epi64_mask
   1210   // CHECK: icmp sle <8 x i64> %{{.*}}, %{{.*}}
   1211   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
   1212   return (__mmask8)_mm512_mask_cmple_epi64_mask(__u, __a, __b);
   1213 }
   1214 
   1215 __mmask16 test_mm512_cmple_epu32_mask(__m512i __a, __m512i __b) {
   1216   // CHECK-LABEL: @test_mm512_cmple_epu32_mask
   1217   // CHECK: icmp ule <16 x i32> %{{.*}}, %{{.*}}
   1218   return (__mmask16)_mm512_cmple_epu32_mask(__a, __b);
   1219 }
   1220 
   1221 __mmask16 test_mm512_mask_cmple_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
   1222   // CHECK-LABEL: @test_mm512_mask_cmple_epu32_mask
   1223   // CHECK: icmp ule <16 x i32> %{{.*}}, %{{.*}}
   1224   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
   1225   return (__mmask16)_mm512_mask_cmple_epu32_mask(__u, __a, __b);
   1226 }
   1227 
   1228 __mmask8 test_mm512_cmple_epu64_mask(__m512i __a, __m512i __b) {
   1229   // CHECK-LABEL: @test_mm512_cmple_epu64_mask
   1230   // CHECK: icmp ule <8 x i64> %{{.*}}, %{{.*}}
   1231   return (__mmask8)_mm512_cmple_epu64_mask(__a, __b);
   1232 }
   1233 
   1234 __mmask8 test_mm512_mask_cmple_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
   1235   // CHECK-LABEL: @test_mm512_mask_cmple_epu64_mask
   1236   // CHECK: icmp ule <8 x i64> %{{.*}}, %{{.*}}
   1237   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
   1238   return (__mmask8)_mm512_mask_cmple_epu64_mask(__u, __a, __b);
   1239 }
   1240 
   1241 __mmask16 test_mm512_cmplt_epi32_mask(__m512i __a, __m512i __b) {
   1242   // CHECK-LABEL: @test_mm512_cmplt_epi32_mask
   1243   // CHECK: icmp slt <16 x i32> %{{.*}}, %{{.*}}
   1244   return (__mmask16)_mm512_cmplt_epi32_mask(__a, __b);
   1245 }
   1246 
   1247 __mmask16 test_mm512_mask_cmplt_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
   1248   // CHECK-LABEL: @test_mm512_mask_cmplt_epi32_mask
   1249   // CHECK: icmp slt <16 x i32> %{{.*}}, %{{.*}}
   1250   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
   1251   return (__mmask16)_mm512_mask_cmplt_epi32_mask(__u, __a, __b);
   1252 }
   1253 
   1254 __mmask8 test_mm512_cmplt_epi64_mask(__m512i __a, __m512i __b) {
   1255   // CHECK-LABEL: @test_mm512_cmplt_epi64_mask
   1256   // CHECK: icmp slt <8 x i64> %{{.*}}, %{{.*}}
   1257   return (__mmask8)_mm512_cmplt_epi64_mask(__a, __b);
   1258 }
   1259 
   1260 __mmask8 test_mm512_mask_cmplt_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
   1261   // CHECK-LABEL: @test_mm512_mask_cmplt_epi64_mask
   1262   // CHECK: icmp slt <8 x i64> %{{.*}}, %{{.*}}
   1263   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
   1264   return (__mmask8)_mm512_mask_cmplt_epi64_mask(__u, __a, __b);
   1265 }
   1266 
   1267 __mmask16 test_mm512_cmplt_epu32_mask(__m512i __a, __m512i __b) {
   1268   // CHECK-LABEL: @test_mm512_cmplt_epu32_mask
   1269   // CHECK: icmp ult <16 x i32> %{{.*}}, %{{.*}}
   1270   return (__mmask16)_mm512_cmplt_epu32_mask(__a, __b);
   1271 }
   1272 
   1273 __mmask16 test_mm512_mask_cmplt_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
   1274   // CHECK-LABEL: @test_mm512_mask_cmplt_epu32_mask
   1275   // CHECK: icmp ult <16 x i32> %{{.*}}, %{{.*}}
   1276   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
   1277   return (__mmask16)_mm512_mask_cmplt_epu32_mask(__u, __a, __b);
   1278 }
   1279 
   1280 __mmask8 test_mm512_cmplt_epu64_mask(__m512i __a, __m512i __b) {
   1281   // CHECK-LABEL: @test_mm512_cmplt_epu64_mask
   1282   // CHECK: icmp ult <8 x i64> %{{.*}}, %{{.*}}
   1283   return (__mmask8)_mm512_cmplt_epu64_mask(__a, __b);
   1284 }
   1285 
   1286 __mmask8 test_mm512_mask_cmplt_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
   1287   // CHECK-LABEL: @test_mm512_mask_cmplt_epu64_mask
   1288   // CHECK: icmp ult <8 x i64> %{{.*}}, %{{.*}}
   1289   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
   1290   return (__mmask8)_mm512_mask_cmplt_epu64_mask(__u, __a, __b);
   1291 }
   1292 
   1293 __mmask16 test_mm512_cmpneq_epi32_mask(__m512i __a, __m512i __b) {
   1294   // CHECK-LABEL: @test_mm512_cmpneq_epi32_mask
   1295   // CHECK: icmp ne <16 x i32> %{{.*}}, %{{.*}}
   1296   return (__mmask16)_mm512_cmpneq_epi32_mask(__a, __b);
   1297 }
   1298 
   1299 __mmask16 test_mm512_mask_cmpneq_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
   1300   // CHECK-LABEL: @test_mm512_mask_cmpneq_epi32_mask
   1301   // CHECK: icmp ne <16 x i32> %{{.*}}, %{{.*}}
   1302   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
   1303   return (__mmask16)_mm512_mask_cmpneq_epi32_mask(__u, __a, __b);
   1304 }
   1305 
   1306 __mmask8 test_mm512_cmpneq_epi64_mask(__m512i __a, __m512i __b) {
   1307   // CHECK-LABEL: @test_mm512_cmpneq_epi64_mask
   1308   // CHECK: icmp ne <8 x i64> %{{.*}}, %{{.*}}
   1309   return (__mmask8)_mm512_cmpneq_epi64_mask(__a, __b);
   1310 }
   1311 
   1312 __mmask8 test_mm512_mask_cmpneq_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
   1313   // CHECK-LABEL: @test_mm512_mask_cmpneq_epi64_mask
   1314   // CHECK: icmp ne <8 x i64> %{{.*}}, %{{.*}}
   1315   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
   1316   return (__mmask8)_mm512_mask_cmpneq_epi64_mask(__u, __a, __b);
   1317 }
   1318 
   1319 __mmask16 test_mm512_cmpneq_epu32_mask(__m512i __a, __m512i __b) {
   1320   // CHECK-LABEL: @test_mm512_cmpneq_epu32_mask
   1321   // CHECK: icmp ne <16 x i32> %{{.*}}, %{{.*}}
   1322   return (__mmask16)_mm512_cmpneq_epu32_mask(__a, __b);
   1323 }
   1324 
   1325 __mmask16 test_mm512_mask_cmpneq_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
   1326   // CHECK-LABEL: @test_mm512_mask_cmpneq_epu32_mask
   1327   // CHECK: icmp ne <16 x i32> %{{.*}}, %{{.*}}
   1328   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
   1329   return (__mmask16)_mm512_mask_cmpneq_epu32_mask(__u, __a, __b);
   1330 }
   1331 
   1332 __mmask8 test_mm512_cmpneq_epu64_mask(__m512i __a, __m512i __b) {
   1333   // CHECK-LABEL: @test_mm512_cmpneq_epu64_mask
   1334   // CHECK: icmp ne <8 x i64> %{{.*}}, %{{.*}}
   1335   return (__mmask8)_mm512_cmpneq_epu64_mask(__a, __b);
   1336 }
   1337 
   1338 __mmask8 test_mm512_mask_cmpneq_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
   1339   // CHECK-LABEL: @test_mm512_mask_cmpneq_epu64_mask
   1340   // CHECK: icmp ne <8 x i64> %{{.*}}, %{{.*}}
   1341   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
   1342   return (__mmask8)_mm512_mask_cmpneq_epu64_mask(__u, __a, __b);
   1343 }
   1344 
   1345 __mmask16 test_mm512_cmp_epi32_mask(__m512i __a, __m512i __b) {
   1346   // CHECK-LABEL: @test_mm512_cmp_epi32_mask
   1347   // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
   1348   return (__mmask16)_mm512_cmp_epi32_mask(__a, __b, 0);
   1349 }
   1350 
   1351 __mmask16 test_mm512_mask_cmp_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
   1352   // CHECK-LABEL: @test_mm512_mask_cmp_epi32_mask
   1353   // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
   1354   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
   1355   return (__mmask16)_mm512_mask_cmp_epi32_mask(__u, __a, __b, 0);
   1356 }
   1357 
   1358 __mmask8 test_mm512_cmp_epi64_mask(__m512i __a, __m512i __b) {
   1359   // CHECK-LABEL: @test_mm512_cmp_epi64_mask
   1360   // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
   1361   return (__mmask8)_mm512_cmp_epi64_mask(__a, __b, 0);
   1362 }
   1363 
   1364 __mmask8 test_mm512_mask_cmp_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
   1365   // CHECK-LABEL: @test_mm512_mask_cmp_epi64_mask
   1366   // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
   1367   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
   1368   return (__mmask8)_mm512_mask_cmp_epi64_mask(__u, __a, __b, 0);
   1369 }
   1370 
   1371 __mmask16 test_mm512_cmp_epu32_mask(__m512i __a, __m512i __b) {
   1372   // CHECK-LABEL: @test_mm512_cmp_epu32_mask
   1373   // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
   1374   return (__mmask16)_mm512_cmp_epu32_mask(__a, __b, 0);
   1375 }
   1376 
   1377 __mmask16 test_mm512_mask_cmp_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
   1378   // CHECK-LABEL: @test_mm512_mask_cmp_epu32_mask
   1379   // CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
   1380   // CHECK: and <16 x i1> %{{.*}}, %{{.*}}
   1381   return (__mmask16)_mm512_mask_cmp_epu32_mask(__u, __a, __b, 0);
   1382 }
   1383 
   1384 __mmask8 test_mm512_cmp_epu64_mask(__m512i __a, __m512i __b) {
   1385   // CHECK-LABEL: @test_mm512_cmp_epu64_mask
   1386   // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
   1387   return (__mmask8)_mm512_cmp_epu64_mask(__a, __b, 0);
   1388 }
   1389 
   1390 __mmask8 test_mm512_mask_cmp_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
   1391   // CHECK-LABEL: @test_mm512_mask_cmp_epu64_mask
   1392   // CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
   1393   // CHECK: and <8 x i1> %{{.*}}, %{{.*}}
   1394   return (__mmask8)_mm512_mask_cmp_epu64_mask(__u, __a, __b, 0);
   1395 }
   1396 
   1397 __m512i test_mm512_mask_and_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
   1398   // CHECK-LABEL: @test_mm512_mask_and_epi32
   1399   // CHECK: and <16 x i32>
   1400   // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
   1401   // CHECK: select <16 x i1> %[[MASK]], <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
   1402   return _mm512_mask_and_epi32(__src, __k,__a, __b);
   1403 }
   1404 
   1405 __m512i test_mm512_maskz_and_epi32(__mmask16 __k, __m512i __a, __m512i __b) {
   1406   // CHECK-LABEL: @test_mm512_maskz_and_epi32
   1407   // CHECK: and <16 x i32>
   1408   // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
   1409   // CHECK: select <16 x i1> %[[MASK]], <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
   1410   return _mm512_maskz_and_epi32(__k,__a, __b);
   1411 }
   1412 
   1413 __m512i test_mm512_mask_and_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
   1414   // CHECK-LABEL: @test_mm512_mask_and_epi64
   1415   // CHECK: %[[AND_RES:.*]] = and <8 x i64>
   1416   // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
   1417   // CHECK: select <8 x i1> %[[MASK]], <8 x i64> %[[AND_RES]], <8 x i64> %{{.*}}
   1418   return _mm512_mask_and_epi64(__src, __k,__a, __b);
   1419 }
   1420 
   1421 __m512i test_mm512_maskz_and_epi64(__mmask8 __k, __m512i __a, __m512i __b) {
   1422   // CHECK-LABEL: @test_mm512_maskz_and_epi64
   1423   // CHECK: %[[AND_RES:.*]] = and <8 x i64>
   1424   // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
   1425   // CHECK: select <8 x i1> %[[MASK]], <8 x i64> %[[AND_RES]], <8 x i64> %{{.*}}
   1426   return _mm512_maskz_and_epi64(__k,__a, __b);
   1427 }
   1428 
   1429 __m512i test_mm512_mask_or_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
   1430   // CHECK-LABEL: @test_mm512_mask_or_epi32
   1431   // CHECK: or <16 x i32>
   1432   // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
   1433   // CHECK: select <16 x i1> %[[MASK]], <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
   1434   return _mm512_mask_or_epi32(__src, __k,__a, __b);
   1435 }
   1436 
   1437 __m512i test_mm512_maskz_or_epi32(__mmask16 __k, __m512i __a, __m512i __b) {
   1438   // CHECK-LABEL: @test_mm512_maskz_or_epi32
   1439   // CHECK: or <16 x i32>
   1440   // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
   1441   // CHECK: select <16 x i1> %[[MASK]], <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
   1442   return _mm512_maskz_or_epi32(__k,__a, __b);
   1443 }
   1444 
   1445 __m512i test_mm512_mask_or_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
   1446   // CHECK-LABEL: @test_mm512_mask_or_epi64
   1447   // CHECK: %[[OR_RES:.*]] = or <8 x i64>
   1448   // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
   1449   // CHECK: select <8 x i1> %[[MASK]], <8 x i64> %[[OR_RES]], <8 x i64> %{{.*}}
   1450   return _mm512_mask_or_epi64(__src, __k,__a, __b);
   1451 }
   1452 
   1453 __m512i test_mm512_maskz_or_epi64(__mmask8 __k, __m512i __a, __m512i __b) {
   1454   // CHECK-LABEL: @test_mm512_maskz_or_epi64
   1455   // CHECK: %[[OR_RES:.*]] = or <8 x i64>
   1456   // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
   1457   // CHECK: select <8 x i1> %[[MASK]], <8 x i64> %[[OR_RES]], <8 x i64> %{{.*}}
   1458   return _mm512_maskz_or_epi64(__k,__a, __b);
   1459 }
   1460 
   1461 __m512i test_mm512_mask_xor_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
   1462   // CHECK-LABEL: @test_mm512_mask_xor_epi32
   1463   // CHECK: xor <16 x i32>
   1464   // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
   1465   // CHECK: select <16 x i1> %[[MASK]], <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
   1466   return _mm512_mask_xor_epi32(__src, __k,__a, __b);
   1467 }
   1468 
   1469 __m512i test_mm512_maskz_xor_epi32(__mmask16 __k, __m512i __a, __m512i __b) {
   1470   // CHECK-LABEL: @test_mm512_maskz_xor_epi32
   1471   // CHECK: xor <16 x i32>
   1472   // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
   1473   // CHECK: select <16 x i1> %[[MASK]], <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
   1474   return _mm512_maskz_xor_epi32(__k,__a, __b);
   1475 }
   1476 
   1477 __m512i test_mm512_mask_xor_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
   1478   // CHECK-LABEL: @test_mm512_mask_xor_epi64
   1479   // CHECK: %[[XOR_RES:.*]] = xor <8 x i64>
   1480   // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
   1481   // CHECK: select <8 x i1> %[[MASK]], <8 x i64> %[[XOR_RES]], <8 x i64> %{{.*}}
   1482   return _mm512_mask_xor_epi64(__src, __k,__a, __b);
   1483 }
   1484 
   1485 __m512i test_mm512_maskz_xor_epi64(__mmask8 __k, __m512i __a, __m512i __b) {
   1486   // CHECK-LABEL: @test_mm512_maskz_xor_epi64
   1487   // CHECK: %[[XOR_RES:.*]] = xor <8 x i64>
   1488   // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
   1489   // CHECK: select <8 x i1> %[[MASK]], <8 x i64> %[[XOR_RES]], <8 x i64> %{{.*}}
   1490   return _mm512_maskz_xor_epi64(__k,__a, __b);
   1491 }
   1492 
   1493 __m512i test_mm512_and_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
   1494   // CHECK-LABEL: @test_mm512_and_epi32
   1495   // CHECK: and <16 x i32>
   1496   return _mm512_and_epi32(__a, __b);
   1497 }
   1498 
   1499 __m512i test_mm512_and_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
   1500   // CHECK-LABEL: @test_mm512_and_epi64
   1501   // CHECK: and <8 x i64>
   1502   return _mm512_and_epi64(__a, __b);
   1503 }
   1504 
   1505 __m512i test_mm512_or_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
   1506   // CHECK-LABEL: @test_mm512_or_epi32
   1507   // CHECK: or <16 x i32>
   1508   return _mm512_or_epi32(__a, __b);
   1509 }
   1510 
   1511 __m512i test_mm512_or_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
   1512   // CHECK-LABEL: @test_mm512_or_epi64
   1513   // CHECK: or <8 x i64>
   1514   return _mm512_or_epi64(__a, __b);
   1515 }
   1516 
   1517 __m512i test_mm512_xor_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
   1518   // CHECK-LABEL: @test_mm512_xor_epi32
   1519   // CHECK: xor <16 x i32>
   1520   return _mm512_xor_epi32(__a, __b);
   1521 }
   1522 
   1523 __m512i test_mm512_xor_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
   1524   // CHECK-LABEL: @test_mm512_xor_epi64
   1525   // CHECK: xor <8 x i64>
   1526   return _mm512_xor_epi64(__a, __b);
   1527 }
   1528 
   1529 __m512i test_mm512_maskz_andnot_epi32 (__mmask16 __k,__m512i __A, __m512i __B){
   1530   // CHECK-LABEL: @test_mm512_maskz_andnot_epi32
   1531   // CHECK: xor <16 x i32> %{{.*}}, <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>
   1532   // CHECK: and <16 x i32> %{{.*}}, %{{.*}}
   1533   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
   1534   return _mm512_maskz_andnot_epi32(__k,__A,__B);
   1535 }
   1536 
   1537 __m512i test_mm512_mask_andnot_epi32 (__mmask16 __k,__m512i __A, __m512i __B,
   1538                                       __m512i __src) {
   1539   // CHECK-LABEL: @test_mm512_mask_andnot_epi32
   1540   // CHECK: xor <16 x i32> %{{.*}}, <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>
   1541   // CHECK: and <16 x i32> %{{.*}}, %{{.*}}
   1542   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
   1543   return _mm512_mask_andnot_epi32(__src,__k,__A,__B);
   1544 }
   1545 
   1546 __m512i test_mm512_andnot_si512(__m512i __A, __m512i __B)
   1547 {
   1548   //CHECK-LABEL: @test_mm512_andnot_si512
   1549   //CHECK: load {{.*}}%__A.addr.i, align 64
   1550   //CHECK: %neg.i = xor{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1>
   1551   //CHECK: load {{.*}}%__B.addr.i, align 64
   1552   //CHECK: and <8 x i64> %neg.i,{{.*}}
   1553 
   1554   return _mm512_andnot_si512(__A, __B);
   1555 }
   1556 
   1557 __m512i test_mm512_andnot_epi32(__m512i __A, __m512i __B) {
   1558   // CHECK-LABEL: @test_mm512_andnot_epi32
   1559   // CHECK: xor <16 x i32> %{{.*}}, <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>
   1560   // CHECK: and <16 x i32> %{{.*}}, %{{.*}}
   1561   return _mm512_andnot_epi32(__A,__B);
   1562 }
   1563 
   1564 __m512i test_mm512_maskz_andnot_epi64 (__mmask8 __k,__m512i __A, __m512i __B) {
   1565   // CHECK-LABEL: @test_mm512_maskz_andnot_epi64
   1566   // CHECK: xor <8 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1>
   1567   // CHECK: and <8 x i64> %{{.*}}, %{{.*}}
   1568   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
   1569   return _mm512_maskz_andnot_epi64(__k,__A,__B);
   1570 }
   1571 
   1572 __m512i test_mm512_mask_andnot_epi64 (__mmask8 __k,__m512i __A, __m512i __B,
   1573                                       __m512i __src) {
   1574   //CHECK-LABEL: @test_mm512_mask_andnot_epi64
   1575   // CHECK: xor <8 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1>
   1576   // CHECK: and <8 x i64> %{{.*}}, %{{.*}}
   1577   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
   1578   return _mm512_mask_andnot_epi64(__src,__k,__A,__B);
   1579 }
   1580 
   1581 __m512i test_mm512_andnot_epi64(__m512i __A, __m512i __B) {
   1582   //CHECK-LABEL: @test_mm512_andnot_epi64
   1583   // CHECK: xor <8 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1>
   1584   // CHECK: and <8 x i64> %{{.*}}, %{{.*}}
   1585   return _mm512_andnot_epi64(__A,__B);
   1586 }
   1587 
   1588 __m512i test_mm512_maskz_sub_epi32 (__mmask16 __k,__m512i __A, __m512i __B) {
   1589   //CHECK-LABEL: @test_mm512_maskz_sub_epi32
   1590   //CHECK: @llvm.x86.avx512.mask.psub.d.512
   1591   return _mm512_maskz_sub_epi32(__k,__A,__B);
   1592 }
   1593 
   1594 __m512i test_mm512_mask_sub_epi32 (__mmask16 __k,__m512i __A, __m512i __B,
   1595                                    __m512i __src) {
   1596   //CHECK-LABEL: @test_mm512_mask_sub_epi32
   1597   //CHECK: @llvm.x86.avx512.mask.psub.d.512
   1598   return _mm512_mask_sub_epi32(__src,__k,__A,__B);
   1599 }
   1600 
   1601 __m512i test_mm512_sub_epi32(__m512i __A, __m512i __B) {
   1602   //CHECK-LABEL: @test_mm512_sub_epi32
   1603   //CHECK: sub <16 x i32>
   1604   return _mm512_sub_epi32(__A,__B);
   1605 }
   1606 
   1607 __m512i test_mm512_maskz_sub_epi64 (__mmask8 __k,__m512i __A, __m512i __B) {
   1608   //CHECK-LABEL: @test_mm512_maskz_sub_epi64
   1609   //CHECK: @llvm.x86.avx512.mask.psub.q.512
   1610   return _mm512_maskz_sub_epi64(__k,__A,__B);
   1611 }
   1612 
   1613 __m512i test_mm512_mask_sub_epi64 (__mmask8 __k,__m512i __A, __m512i __B,
   1614                                    __m512i __src) {
   1615   //CHECK-LABEL: @test_mm512_mask_sub_epi64
   1616   //CHECK: @llvm.x86.avx512.mask.psub.q.512
   1617   return _mm512_mask_sub_epi64(__src,__k,__A,__B);
   1618 }
   1619 
   1620 __m512i test_mm512_sub_epi64(__m512i __A, __m512i __B) {
   1621   //CHECK-LABEL: @test_mm512_sub_epi64
   1622   //CHECK: sub <8 x i64>
   1623   return _mm512_sub_epi64(__A,__B);
   1624 }
   1625 
   1626 __m512i test_mm512_maskz_add_epi32 (__mmask16 __k,__m512i __A, __m512i __B) {
   1627   //CHECK-LABEL: @test_mm512_maskz_add_epi32
   1628   //CHECK: @llvm.x86.avx512.mask.padd.d.512
   1629   return _mm512_maskz_add_epi32(__k,__A,__B);
   1630 }
   1631 
   1632 __m512i test_mm512_mask_add_epi32 (__mmask16 __k,__m512i __A, __m512i __B,
   1633                                    __m512i __src) {
   1634   //CHECK-LABEL: @test_mm512_mask_add_epi32
   1635   //CHECK: @llvm.x86.avx512.mask.padd.d.512
   1636   return _mm512_mask_add_epi32(__src,__k,__A,__B);
   1637 }
   1638 
   1639 __m512i test_mm512_add_epi32(__m512i __A, __m512i __B) {
   1640   //CHECK-LABEL: @test_mm512_add_epi32
   1641   //CHECK: add <16 x i32>
   1642   return _mm512_add_epi32(__A,__B);
   1643 }
   1644 
   1645 __m512i test_mm512_maskz_add_epi64 (__mmask8 __k,__m512i __A, __m512i __B) {
   1646   //CHECK-LABEL: @test_mm512_maskz_add_epi64
   1647   //CHECK: @llvm.x86.avx512.mask.padd.q.512
   1648   return _mm512_maskz_add_epi64(__k,__A,__B);
   1649 }
   1650 
   1651 __m512i test_mm512_mask_add_epi64 (__mmask8 __k,__m512i __A, __m512i __B,
   1652                                    __m512i __src) {
   1653   //CHECK-LABEL: @test_mm512_mask_add_epi64
   1654   //CHECK: @llvm.x86.avx512.mask.padd.q.512
   1655   return _mm512_mask_add_epi64(__src,__k,__A,__B);
   1656 }
   1657 
   1658 __m512i test_mm512_add_epi64(__m512i __A, __m512i __B) {
   1659   //CHECK-LABEL: @test_mm512_add_epi64
   1660   //CHECK: add <8 x i64>
   1661   return _mm512_add_epi64(__A,__B);
   1662 }
   1663 
   1664 __m512i test_mm512_maskz_mul_epi32 (__mmask16 __k,__m512i __A, __m512i __B) {
   1665   //CHECK-LABEL: @test_mm512_maskz_mul_epi32
   1666   //CHECK: @llvm.x86.avx512.mask.pmul.dq.512
   1667   return _mm512_maskz_mul_epi32(__k,__A,__B);
   1668 }
   1669 
   1670 __m512i test_mm512_mask_mul_epi32 (__mmask16 __k,__m512i __A, __m512i __B,
   1671                                    __m512i __src) {
   1672   //CHECK-LABEL: @test_mm512_mask_mul_epi32
   1673   //CHECK: @llvm.x86.avx512.mask.pmul.dq.512
   1674   return _mm512_mask_mul_epi32(__src,__k,__A,__B);
   1675 }
   1676 
   1677 __m512i test_mm512_maskz_mul_epu32 (__mmask16 __k,__m512i __A, __m512i __B) {
   1678   //CHECK-LABEL: @test_mm512_maskz_mul_epu32
   1679   //CHECK: @llvm.x86.avx512.mask.pmulu.dq.512
   1680   return _mm512_maskz_mul_epu32(__k,__A,__B);
   1681 }
   1682 
   1683 __m512i test_mm512_mask_mul_epu32 (__mmask16 __k,__m512i __A, __m512i __B,
   1684                                    __m512i __src) {
   1685   //CHECK-LABEL: @test_mm512_mask_mul_epu32
   1686   //CHECK: @llvm.x86.avx512.mask.pmulu.dq.512
   1687   return _mm512_mask_mul_epu32(__src,__k,__A,__B);
   1688 }
   1689 
   1690 __m512i test_mm512_maskz_mullo_epi32 (__mmask16 __k,__m512i __A, __m512i __B) {
   1691   //CHECK-LABEL: @test_mm512_maskz_mullo_epi32
   1692   //CHECK: @llvm.x86.avx512.mask.pmull.d.512
   1693   return _mm512_maskz_mullo_epi32(__k,__A,__B);
   1694 }
   1695 
   1696 __m512i test_mm512_mask_mullo_epi32 (__mmask16 __k,__m512i __A, __m512i __B, __m512i __src) {
   1697   //CHECK-LABEL: @test_mm512_mask_mullo_epi32
   1698   //CHECK: @llvm.x86.avx512.mask.pmull.d.512
   1699   return _mm512_mask_mullo_epi32(__src,__k,__A,__B);
   1700 }
   1701 
   1702 __m512i test_mm512_mullo_epi32(__m512i __A, __m512i __B) {
   1703   //CHECK-LABEL: @test_mm512_mullo_epi32
   1704   //CHECK: mul <16 x i32>
   1705   return _mm512_mullo_epi32(__A,__B);
   1706 }
   1707 
   1708 __m512d test_mm512_add_round_pd(__m512d __A, __m512d __B) {
   1709   // CHECK-LABEL: @test_mm512_add_round_pd
   1710   // CHECK: @llvm.x86.avx512.mask.add.pd.512
   1711   return _mm512_add_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1712 }
   1713 __m512d test_mm512_mask_add_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
   1714   // CHECK-LABEL: @test_mm512_mask_add_round_pd
   1715   // CHECK: @llvm.x86.avx512.mask.add.pd.512
   1716   return _mm512_mask_add_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1717 }
   1718 __m512d test_mm512_maskz_add_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
   1719   // CHECK-LABEL: @test_mm512_maskz_add_round_pd
   1720   // CHECK: @llvm.x86.avx512.mask.add.pd.512
   1721   return _mm512_maskz_add_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1722 }
   1723 __m512d test_mm512_mask_add_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
   1724   // CHECK-LABEL: @test_mm512_mask_add_pd
   1725   // CHECK: @llvm.x86.avx512.mask.add.pd.512
   1726   return _mm512_mask_add_pd(__W,__U,__A,__B);
   1727 }
   1728 __m512d test_mm512_maskz_add_pd(__mmask8 __U, __m512d __A, __m512d __B) {
   1729   // CHECK-LABEL: @test_mm512_maskz_add_pd
   1730   // CHECK: @llvm.x86.avx512.mask.add.pd.512
   1731   return _mm512_maskz_add_pd(__U,__A,__B);
   1732 }
   1733 __m512 test_mm512_add_round_ps(__m512 __A, __m512 __B) {
   1734   // CHECK-LABEL: @test_mm512_add_round_ps
   1735   // CHECK: @llvm.x86.avx512.mask.add.ps.512
   1736   return _mm512_add_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1737 }
   1738 __m512 test_mm512_mask_add_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
   1739   // CHECK-LABEL: @test_mm512_mask_add_round_ps
   1740   // CHECK: @llvm.x86.avx512.mask.add.ps.512
   1741   return _mm512_mask_add_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1742 }
   1743 __m512 test_mm512_maskz_add_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
   1744   // CHECK-LABEL: @test_mm512_maskz_add_round_ps
   1745   // CHECK: @llvm.x86.avx512.mask.add.ps.512
   1746   return _mm512_maskz_add_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1747 }
   1748 __m512 test_mm512_mask_add_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
   1749   // CHECK-LABEL: @test_mm512_mask_add_ps
   1750   // CHECK: @llvm.x86.avx512.mask.add.ps.512
   1751   return _mm512_mask_add_ps(__W,__U,__A,__B);
   1752 }
   1753 __m512 test_mm512_maskz_add_ps(__mmask16 __U, __m512 __A, __m512 __B) {
   1754   // CHECK-LABEL: @test_mm512_maskz_add_ps
   1755   // CHECK: @llvm.x86.avx512.mask.add.ps.512
   1756   return _mm512_maskz_add_ps(__U,__A,__B);
   1757 }
   1758 __m128 test_mm_add_round_ss(__m128 __A, __m128 __B) {
   1759   // CHECK-LABEL: @test_mm_add_round_ss
   1760   // CHECK: @llvm.x86.avx512.mask.add.ss.round
   1761   return _mm_add_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1762 }
   1763 __m128 test_mm_mask_add_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   1764   // CHECK-LABEL: @test_mm_mask_add_round_ss
   1765   // CHECK: @llvm.x86.avx512.mask.add.ss.round
   1766   return _mm_mask_add_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1767 }
   1768 __m128 test_mm_maskz_add_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
   1769   // CHECK-LABEL: @test_mm_maskz_add_round_ss
   1770   // CHECK: @llvm.x86.avx512.mask.add.ss.round
   1771   return _mm_maskz_add_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1772 }
   1773 __m128 test_mm_mask_add_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   1774   // CHECK-LABEL: @test_mm_mask_add_ss
   1775   // CHECK: @llvm.x86.avx512.mask.add.ss.round
   1776   return _mm_mask_add_ss(__W,__U,__A,__B);
   1777 }
   1778 __m128 test_mm_maskz_add_ss(__mmask8 __U, __m128 __A, __m128 __B) {
   1779   // CHECK-LABEL: @test_mm_maskz_add_ss
   1780   // CHECK: @llvm.x86.avx512.mask.add.ss.round
   1781   return _mm_maskz_add_ss(__U,__A,__B);
   1782 }
   1783 __m128d test_mm_add_round_sd(__m128d __A, __m128d __B) {
   1784   // CHECK-LABEL: @test_mm_add_round_sd
   1785   // CHECK: @llvm.x86.avx512.mask.add.sd.round
   1786   return _mm_add_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1787 }
   1788 __m128d test_mm_mask_add_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   1789   // CHECK-LABEL: @test_mm_mask_add_round_sd
   1790   // CHECK: @llvm.x86.avx512.mask.add.sd.round
   1791   return _mm_mask_add_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1792 }
   1793 __m128d test_mm_maskz_add_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
   1794   // CHECK-LABEL: @test_mm_maskz_add_round_sd
   1795   // CHECK: @llvm.x86.avx512.mask.add.sd.round
   1796   return _mm_maskz_add_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1797 }
   1798 __m128d test_mm_mask_add_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   1799   // CHECK-LABEL: @test_mm_mask_add_sd
   1800   // CHECK: @llvm.x86.avx512.mask.add.sd.round
   1801   return _mm_mask_add_sd(__W,__U,__A,__B);
   1802 }
   1803 __m128d test_mm_maskz_add_sd(__mmask8 __U, __m128d __A, __m128d __B) {
   1804   // CHECK-LABEL: @test_mm_maskz_add_sd
   1805   // CHECK: @llvm.x86.avx512.mask.add.sd.round
   1806   return _mm_maskz_add_sd(__U,__A,__B);
   1807 }
   1808 __m512d test_mm512_sub_round_pd(__m512d __A, __m512d __B) {
   1809   // CHECK-LABEL: @test_mm512_sub_round_pd
   1810   // CHECK: @llvm.x86.avx512.mask.sub.pd.512
   1811   return _mm512_sub_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1812 }
   1813 __m512d test_mm512_mask_sub_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
   1814   // CHECK-LABEL: @test_mm512_mask_sub_round_pd
   1815   // CHECK: @llvm.x86.avx512.mask.sub.pd.512
   1816   return _mm512_mask_sub_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1817 }
   1818 __m512d test_mm512_maskz_sub_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
   1819   // CHECK-LABEL: @test_mm512_maskz_sub_round_pd
   1820   // CHECK: @llvm.x86.avx512.mask.sub.pd.512
   1821   return _mm512_maskz_sub_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1822 }
   1823 __m512d test_mm512_mask_sub_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
   1824   // CHECK-LABEL: @test_mm512_mask_sub_pd
   1825   // CHECK: @llvm.x86.avx512.mask.sub.pd.512
   1826   return _mm512_mask_sub_pd(__W,__U,__A,__B);
   1827 }
   1828 __m512d test_mm512_maskz_sub_pd(__mmask8 __U, __m512d __A, __m512d __B) {
   1829   // CHECK-LABEL: @test_mm512_maskz_sub_pd
   1830   // CHECK: @llvm.x86.avx512.mask.sub.pd.512
   1831   return _mm512_maskz_sub_pd(__U,__A,__B);
   1832 }
   1833 __m512 test_mm512_sub_round_ps(__m512 __A, __m512 __B) {
   1834   // CHECK-LABEL: @test_mm512_sub_round_ps
   1835   // CHECK: @llvm.x86.avx512.mask.sub.ps.512
   1836   return _mm512_sub_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1837 }
   1838 __m512 test_mm512_mask_sub_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
   1839   // CHECK-LABEL: @test_mm512_mask_sub_round_ps
   1840   // CHECK: @llvm.x86.avx512.mask.sub.ps.512
   1841   return _mm512_mask_sub_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1842 }
   1843 __m512 test_mm512_maskz_sub_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
   1844   // CHECK-LABEL: @test_mm512_maskz_sub_round_ps
   1845   // CHECK: @llvm.x86.avx512.mask.sub.ps.512
   1846   return _mm512_maskz_sub_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1847 }
   1848 __m512 test_mm512_mask_sub_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
   1849   // CHECK-LABEL: @test_mm512_mask_sub_ps
   1850   // CHECK: @llvm.x86.avx512.mask.sub.ps.512
   1851   return _mm512_mask_sub_ps(__W,__U,__A,__B);
   1852 }
   1853 __m512 test_mm512_maskz_sub_ps(__mmask16 __U, __m512 __A, __m512 __B) {
   1854   // CHECK-LABEL: @test_mm512_maskz_sub_ps
   1855   // CHECK: @llvm.x86.avx512.mask.sub.ps.512
   1856   return _mm512_maskz_sub_ps(__U,__A,__B);
   1857 }
   1858 __m128 test_mm_sub_round_ss(__m128 __A, __m128 __B) {
   1859   // CHECK-LABEL: @test_mm_sub_round_ss
   1860   // CHECK: @llvm.x86.avx512.mask.sub.ss.round
   1861   return _mm_sub_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1862 }
   1863 __m128 test_mm_mask_sub_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   1864   // CHECK-LABEL: @test_mm_mask_sub_round_ss
   1865   // CHECK: @llvm.x86.avx512.mask.sub.ss.round
   1866   return _mm_mask_sub_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1867 }
   1868 __m128 test_mm_maskz_sub_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
   1869   // CHECK-LABEL: @test_mm_maskz_sub_round_ss
   1870   // CHECK: @llvm.x86.avx512.mask.sub.ss.round
   1871   return _mm_maskz_sub_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1872 }
   1873 __m128 test_mm_mask_sub_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   1874   // CHECK-LABEL: @test_mm_mask_sub_ss
   1875   // CHECK: @llvm.x86.avx512.mask.sub.ss.round
   1876   return _mm_mask_sub_ss(__W,__U,__A,__B);
   1877 }
   1878 __m128 test_mm_maskz_sub_ss(__mmask8 __U, __m128 __A, __m128 __B) {
   1879   // CHECK-LABEL: @test_mm_maskz_sub_ss
   1880   // CHECK: @llvm.x86.avx512.mask.sub.ss.round
   1881   return _mm_maskz_sub_ss(__U,__A,__B);
   1882 }
   1883 __m128d test_mm_sub_round_sd(__m128d __A, __m128d __B) {
   1884   // CHECK-LABEL: @test_mm_sub_round_sd
   1885   // CHECK: @llvm.x86.avx512.mask.sub.sd.round
   1886   return _mm_sub_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1887 }
   1888 __m128d test_mm_mask_sub_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   1889   // CHECK-LABEL: @test_mm_mask_sub_round_sd
   1890   // CHECK: @llvm.x86.avx512.mask.sub.sd.round
   1891   return _mm_mask_sub_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1892 }
   1893 __m128d test_mm_maskz_sub_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
   1894   // CHECK-LABEL: @test_mm_maskz_sub_round_sd
   1895   // CHECK: @llvm.x86.avx512.mask.sub.sd.round
   1896   return _mm_maskz_sub_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1897 }
   1898 __m128d test_mm_mask_sub_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   1899   // CHECK-LABEL: @test_mm_mask_sub_sd
   1900   // CHECK: @llvm.x86.avx512.mask.sub.sd.round
   1901   return _mm_mask_sub_sd(__W,__U,__A,__B);
   1902 }
   1903 __m128d test_mm_maskz_sub_sd(__mmask8 __U, __m128d __A, __m128d __B) {
   1904   // CHECK-LABEL: @test_mm_maskz_sub_sd
   1905   // CHECK: @llvm.x86.avx512.mask.sub.sd.round
   1906   return _mm_maskz_sub_sd(__U,__A,__B);
   1907 }
   1908 __m512d test_mm512_mul_round_pd(__m512d __A, __m512d __B) {
   1909   // CHECK-LABEL: @test_mm512_mul_round_pd
   1910   // CHECK: @llvm.x86.avx512.mask.mul.pd.512
   1911   return _mm512_mul_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1912 }
   1913 __m512d test_mm512_mask_mul_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
   1914   // CHECK-LABEL: @test_mm512_mask_mul_round_pd
   1915   // CHECK: @llvm.x86.avx512.mask.mul.pd.512
   1916   return _mm512_mask_mul_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1917 }
   1918 __m512d test_mm512_maskz_mul_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
   1919   // CHECK-LABEL: @test_mm512_maskz_mul_round_pd
   1920   // CHECK: @llvm.x86.avx512.mask.mul.pd.512
   1921   return _mm512_maskz_mul_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1922 }
   1923 __m512d test_mm512_mask_mul_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
   1924   // CHECK-LABEL: @test_mm512_mask_mul_pd
   1925   // CHECK: @llvm.x86.avx512.mask.mul.pd.512
   1926   return _mm512_mask_mul_pd(__W,__U,__A,__B);
   1927 }
   1928 __m512d test_mm512_maskz_mul_pd(__mmask8 __U, __m512d __A, __m512d __B) {
   1929   // CHECK-LABEL: @test_mm512_maskz_mul_pd
   1930   // CHECK: @llvm.x86.avx512.mask.mul.pd.512
   1931   return _mm512_maskz_mul_pd(__U,__A,__B);
   1932 }
   1933 __m512 test_mm512_mul_round_ps(__m512 __A, __m512 __B) {
   1934   // CHECK-LABEL: @test_mm512_mul_round_ps
   1935   // CHECK: @llvm.x86.avx512.mask.mul.ps.512
   1936   return _mm512_mul_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1937 }
   1938 __m512 test_mm512_mask_mul_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
   1939   // CHECK-LABEL: @test_mm512_mask_mul_round_ps
   1940   // CHECK: @llvm.x86.avx512.mask.mul.ps.512
   1941   return _mm512_mask_mul_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1942 }
   1943 __m512 test_mm512_maskz_mul_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
   1944   // CHECK-LABEL: @test_mm512_maskz_mul_round_ps
   1945   // CHECK: @llvm.x86.avx512.mask.mul.ps.512
   1946   return _mm512_maskz_mul_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1947 }
   1948 __m512 test_mm512_mask_mul_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
   1949   // CHECK-LABEL: @test_mm512_mask_mul_ps
   1950   // CHECK: @llvm.x86.avx512.mask.mul.ps.512
   1951   return _mm512_mask_mul_ps(__W,__U,__A,__B);
   1952 }
   1953 __m512 test_mm512_maskz_mul_ps(__mmask16 __U, __m512 __A, __m512 __B) {
   1954   // CHECK-LABEL: @test_mm512_maskz_mul_ps
   1955   // CHECK: @llvm.x86.avx512.mask.mul.ps.512
   1956   return _mm512_maskz_mul_ps(__U,__A,__B);
   1957 }
   1958 __m128 test_mm_mul_round_ss(__m128 __A, __m128 __B) {
   1959   // CHECK-LABEL: @test_mm_mul_round_ss
   1960   // CHECK: @llvm.x86.avx512.mask.mul.ss.round
   1961   return _mm_mul_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1962 }
   1963 __m128 test_mm_mask_mul_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   1964   // CHECK-LABEL: @test_mm_mask_mul_round_ss
   1965   // CHECK: @llvm.x86.avx512.mask.mul.ss.round
   1966   return _mm_mask_mul_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1967 }
   1968 __m128 test_mm_maskz_mul_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
   1969   // CHECK-LABEL: @test_mm_maskz_mul_round_ss
   1970   // CHECK: @llvm.x86.avx512.mask.mul.ss.round
   1971   return _mm_maskz_mul_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1972 }
   1973 __m128 test_mm_mask_mul_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   1974   // CHECK-LABEL: @test_mm_mask_mul_ss
   1975   // CHECK: @llvm.x86.avx512.mask.mul.ss.round
   1976   return _mm_mask_mul_ss(__W,__U,__A,__B);
   1977 }
   1978 __m128 test_mm_maskz_mul_ss(__mmask8 __U, __m128 __A, __m128 __B) {
   1979   // CHECK-LABEL: @test_mm_maskz_mul_ss
   1980   // CHECK: @llvm.x86.avx512.mask.mul.ss.round
   1981   return _mm_maskz_mul_ss(__U,__A,__B);
   1982 }
   1983 __m128d test_mm_mul_round_sd(__m128d __A, __m128d __B) {
   1984   // CHECK-LABEL: @test_mm_mul_round_sd
   1985   // CHECK: @llvm.x86.avx512.mask.mul.sd.round
   1986   return _mm_mul_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1987 }
   1988 __m128d test_mm_mask_mul_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   1989   // CHECK-LABEL: @test_mm_mask_mul_round_sd
   1990   // CHECK: @llvm.x86.avx512.mask.mul.sd.round
   1991   return _mm_mask_mul_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1992 }
   1993 __m128d test_mm_maskz_mul_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
   1994   // CHECK-LABEL: @test_mm_maskz_mul_round_sd
   1995   // CHECK: @llvm.x86.avx512.mask.mul.sd.round
   1996   return _mm_maskz_mul_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   1997 }
   1998 __m128d test_mm_mask_mul_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   1999   // CHECK-LABEL: @test_mm_mask_mul_sd
   2000   // CHECK: @llvm.x86.avx512.mask.mul.sd.round
   2001   return _mm_mask_mul_sd(__W,__U,__A,__B);
   2002 }
   2003 __m128d test_mm_maskz_mul_sd(__mmask8 __U, __m128d __A, __m128d __B) {
   2004   // CHECK-LABEL: @test_mm_maskz_mul_sd
   2005   // CHECK: @llvm.x86.avx512.mask.mul.sd.round
   2006   return _mm_maskz_mul_sd(__U,__A,__B);
   2007 }
   2008 __m512d test_mm512_div_round_pd(__m512d __A, __m512d __B) {
   2009   // CHECK-LABEL: @test_mm512_div_round_pd
   2010   // CHECK: @llvm.x86.avx512.mask.div.pd.512
   2011   return _mm512_div_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   2012 }
   2013 __m512d test_mm512_mask_div_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
   2014   // CHECK-LABEL: @test_mm512_mask_div_round_pd
   2015   // CHECK: @llvm.x86.avx512.mask.div.pd.512
   2016   return _mm512_mask_div_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   2017 }
   2018 __m512d test_mm512_maskz_div_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
   2019   // CHECK-LABEL: @test_mm512_maskz_div_round_pd
   2020   // CHECK: @llvm.x86.avx512.mask.div.pd.512
   2021   return _mm512_maskz_div_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   2022 }
   2023 __m512d test_mm512_div_pd(__m512d __a, __m512d __b) {
   2024   // CHECK-LABLE: @test_mm512_div_pd
   2025   // CHECK: fdiv <8 x double>
   2026   return _mm512_div_pd(__a,__b);
   2027 }
   2028 __m512d test_mm512_mask_div_pd(__m512d __w, __mmask8 __u, __m512d __a, __m512d __b) {
   2029   // CHECK-LABLE: @test_mm512_mask_div_pd
   2030   // CHECK: @llvm.x86.avx512.mask.div.pd.512
   2031   return _mm512_mask_div_pd(__w,__u,__a,__b);
   2032 }
   2033 __m512d test_mm512_maskz_div_pd(__mmask8 __U, __m512d __A, __m512d __B) {
   2034   // CHECK-LABEL: @test_mm512_maskz_div_pd
   2035   // CHECK: @llvm.x86.avx512.mask.div.pd.512
   2036   return _mm512_maskz_div_pd(__U,__A,__B);
   2037 }
   2038 __m512 test_mm512_div_round_ps(__m512 __A, __m512 __B) {
   2039   // CHECK-LABEL: @test_mm512_div_round_ps
   2040   // CHECK: @llvm.x86.avx512.mask.div.ps.512
   2041   return _mm512_div_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   2042 }
   2043 __m512 test_mm512_mask_div_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
   2044   // CHECK-LABEL: @test_mm512_mask_div_round_ps
   2045   // CHECK: @llvm.x86.avx512.mask.div.ps.512
   2046   return _mm512_mask_div_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   2047 }
   2048 __m512 test_mm512_maskz_div_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
   2049   // CHECK-LABEL: @test_mm512_maskz_div_round_ps
   2050   // CHECK: @llvm.x86.avx512.mask.div.ps.512
   2051   return _mm512_maskz_div_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   2052 }
   2053 __m512 test_mm512_div_ps(__m512 __A, __m512 __B) {
   2054   // CHECK-LABEL: @test_mm512_div_ps
   2055   // CHECK: fdiv <16 x float>
   2056   return _mm512_div_ps(__A,__B);
   2057 }
   2058 __m512 test_mm512_mask_div_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
   2059   // CHECK-LABEL: @test_mm512_mask_div_ps
   2060   // CHECK: @llvm.x86.avx512.mask.div.ps.512
   2061   return _mm512_mask_div_ps(__W,__U,__A,__B);
   2062 }
   2063 __m512 test_mm512_maskz_div_ps(__mmask16 __U, __m512 __A, __m512 __B) {
   2064   // CHECK-LABEL: @test_mm512_maskz_div_ps
   2065   // CHECK: @llvm.x86.avx512.mask.div.ps.512
   2066   return _mm512_maskz_div_ps(__U,__A,__B);
   2067 }
   2068 __m128 test_mm_div_round_ss(__m128 __A, __m128 __B) {
   2069   // CHECK-LABEL: @test_mm_div_round_ss
   2070   // CHECK: @llvm.x86.avx512.mask.div.ss.round
   2071   return _mm_div_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   2072 }
   2073 __m128 test_mm_mask_div_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   2074   // CHECK-LABEL: @test_mm_mask_div_round_ss
   2075   // CHECK: @llvm.x86.avx512.mask.div.ss.round
   2076   return _mm_mask_div_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   2077 }
   2078 __m128 test_mm_maskz_div_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
   2079   // CHECK-LABEL: @test_mm_maskz_div_round_ss
   2080   // CHECK: @llvm.x86.avx512.mask.div.ss.round
   2081   return _mm_maskz_div_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   2082 }
   2083 __m128 test_mm_mask_div_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   2084   // CHECK-LABEL: @test_mm_mask_div_ss
   2085   // CHECK: @llvm.x86.avx512.mask.div.ss.round
   2086   return _mm_mask_div_ss(__W,__U,__A,__B);
   2087 }
   2088 __m128 test_mm_maskz_div_ss(__mmask8 __U, __m128 __A, __m128 __B) {
   2089   // CHECK-LABEL: @test_mm_maskz_div_ss
   2090   // CHECK: @llvm.x86.avx512.mask.div.ss.round
   2091   return _mm_maskz_div_ss(__U,__A,__B);
   2092 }
   2093 __m128d test_mm_div_round_sd(__m128d __A, __m128d __B) {
   2094   // CHECK-LABEL: @test_mm_div_round_sd
   2095   // CHECK: @llvm.x86.avx512.mask.div.sd.round
   2096   return _mm_div_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
   2097 }
   2098 __m128d test_mm_mask_div_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   2099   // CHECK-LABEL: @test_mm_mask_div_round_sd
   2100   // CHECK: @llvm.x86.avx512.mask.div.sd.round
   2101   return _mm_mask_div_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   2102 }
   2103 __m128d test_mm_maskz_div_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
   2104   // CHECK-LABEL: @test_mm_maskz_div_round_sd
   2105   // CHECK: @llvm.x86.avx512.mask.div.sd.round
   2106   return _mm_maskz_div_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
   2107 }
   2108 __m128d test_mm_mask_div_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   2109   // CHECK-LABEL: @test_mm_mask_div_sd
   2110   // CHECK: @llvm.x86.avx512.mask.div.sd.round
   2111   return _mm_mask_div_sd(__W,__U,__A,__B);
   2112 }
   2113 __m128d test_mm_maskz_div_sd(__mmask8 __U, __m128d __A, __m128d __B) {
   2114   // CHECK-LABEL: @test_mm_maskz_div_sd
   2115   // CHECK: @llvm.x86.avx512.mask.div.sd.round
   2116   return _mm_maskz_div_sd(__U,__A,__B);
   2117 }
   2118 __m128 test_mm_max_round_ss(__m128 __A, __m128 __B) {
   2119   // CHECK-LABEL: @test_mm_max_round_ss
   2120   // CHECK: @llvm.x86.avx512.mask.max.ss.round
   2121   return _mm_max_round_ss(__A,__B,0x08);
   2122 }
   2123 __m128 test_mm_mask_max_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   2124   // CHECK-LABEL: @test_mm_mask_max_round_ss
   2125   // CHECK: @llvm.x86.avx512.mask.max.ss.round
   2126   return _mm_mask_max_round_ss(__W,__U,__A,__B,0x08);
   2127 }
   2128 __m128 test_mm_maskz_max_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
   2129   // CHECK-LABEL: @test_mm_maskz_max_round_ss
   2130   // CHECK: @llvm.x86.avx512.mask.max.ss.round
   2131   return _mm_maskz_max_round_ss(__U,__A,__B,0x08);
   2132 }
   2133 __m128 test_mm_mask_max_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   2134   // CHECK-LABEL: @test_mm_mask_max_ss
   2135   // CHECK: @llvm.x86.avx512.mask.max.ss.round
   2136   return _mm_mask_max_ss(__W,__U,__A,__B);
   2137 }
   2138 __m128 test_mm_maskz_max_ss(__mmask8 __U, __m128 __A, __m128 __B) {
   2139   // CHECK-LABEL: @test_mm_maskz_max_ss
   2140   // CHECK: @llvm.x86.avx512.mask.max.ss.round
   2141   return _mm_maskz_max_ss(__U,__A,__B);
   2142 }
   2143 __m128d test_mm_max_round_sd(__m128d __A, __m128d __B) {
   2144   // CHECK-LABEL: @test_mm_max_round_sd
   2145   // CHECK: @llvm.x86.avx512.mask.max.sd.round
   2146   return _mm_max_round_sd(__A,__B,0x08);
   2147 }
   2148 __m128d test_mm_mask_max_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   2149   // CHECK-LABEL: @test_mm_mask_max_round_sd
   2150   // CHECK: @llvm.x86.avx512.mask.max.sd.round
   2151   return _mm_mask_max_round_sd(__W,__U,__A,__B,0x08);
   2152 }
   2153 __m128d test_mm_maskz_max_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
   2154   // CHECK-LABEL: @test_mm_maskz_max_round_sd
   2155   // CHECK: @llvm.x86.avx512.mask.max.sd.round
   2156   return _mm_maskz_max_round_sd(__U,__A,__B,0x08);
   2157 }
   2158 __m128d test_mm_mask_max_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   2159   // CHECK-LABEL: @test_mm_mask_max_sd
   2160   // CHECK: @llvm.x86.avx512.mask.max.sd.round
   2161   return _mm_mask_max_sd(__W,__U,__A,__B);
   2162 }
   2163 __m128d test_mm_maskz_max_sd(__mmask8 __U, __m128d __A, __m128d __B) {
   2164   // CHECK-LABEL: @test_mm_maskz_max_sd
   2165   // CHECK: @llvm.x86.avx512.mask.max.sd.round
   2166   return _mm_maskz_max_sd(__U,__A,__B);
   2167 }
   2168 __m128 test_mm_min_round_ss(__m128 __A, __m128 __B) {
   2169   // CHECK-LABEL: @test_mm_min_round_ss
   2170   // CHECK: @llvm.x86.avx512.mask.min.ss.round
   2171   return _mm_min_round_ss(__A,__B,0x08);
   2172 }
   2173 __m128 test_mm_mask_min_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   2174   // CHECK-LABEL: @test_mm_mask_min_round_ss
   2175   // CHECK: @llvm.x86.avx512.mask.min.ss.round
   2176   return _mm_mask_min_round_ss(__W,__U,__A,__B,0x08);
   2177 }
   2178 __m128 test_mm_maskz_min_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
   2179   // CHECK-LABEL: @test_mm_maskz_min_round_ss
   2180   // CHECK: @llvm.x86.avx512.mask.min.ss.round
   2181   return _mm_maskz_min_round_ss(__U,__A,__B,0x08);
   2182 }
   2183 __m128 test_mm_mask_min_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
   2184   // CHECK-LABEL: @test_mm_mask_min_ss
   2185   // CHECK: @llvm.x86.avx512.mask.min.ss.round
   2186   return _mm_mask_min_ss(__W,__U,__A,__B);
   2187 }
   2188 __m128 test_mm_maskz_min_ss(__mmask8 __U, __m128 __A, __m128 __B) {
   2189   // CHECK-LABEL: @test_mm_maskz_min_ss
   2190   // CHECK: @llvm.x86.avx512.mask.min.ss.round
   2191   return _mm_maskz_min_ss(__U,__A,__B);
   2192 }
   2193 __m128d test_mm_min_round_sd(__m128d __A, __m128d __B) {
   2194   // CHECK-LABEL: @test_mm_min_round_sd
   2195   // CHECK: @llvm.x86.avx512.mask.min.sd.round
   2196   return _mm_min_round_sd(__A,__B,0x08);
   2197 }
   2198 __m128d test_mm_mask_min_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   2199   // CHECK-LABEL: @test_mm_mask_min_round_sd
   2200   // CHECK: @llvm.x86.avx512.mask.min.sd.round
   2201   return _mm_mask_min_round_sd(__W,__U,__A,__B,0x08);
   2202 }
   2203 __m128d test_mm_maskz_min_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
   2204   // CHECK-LABEL: @test_mm_maskz_min_round_sd
   2205   // CHECK: @llvm.x86.avx512.mask.min.sd.round
   2206   return _mm_maskz_min_round_sd(__U,__A,__B,0x08);
   2207 }
   2208 __m128d test_mm_mask_min_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
   2209   // CHECK-LABEL: @test_mm_mask_min_sd
   2210   // CHECK: @llvm.x86.avx512.mask.min.sd.round
   2211   return _mm_mask_min_sd(__W,__U,__A,__B);
   2212 }
   2213 __m128d test_mm_maskz_min_sd(__mmask8 __U, __m128d __A, __m128d __B) {
   2214   // CHECK-LABEL: @test_mm_maskz_min_sd
   2215   // CHECK: @llvm.x86.avx512.mask.min.sd.round
   2216   return _mm_maskz_min_sd(__U,__A,__B);
   2217 }
   2218 
   2219 __m512 test_mm512_undefined() {
   2220   // CHECK-LABEL: @test_mm512_undefined
   2221   // CHECK: ret <16 x float> undef
   2222   return _mm512_undefined();
   2223 }
   2224 
   2225 __m512 test_mm512_undefined_ps() {
   2226   // CHECK-LABEL: @test_mm512_undefined_ps
   2227   // CHECK: ret <16 x float> undef
   2228   return _mm512_undefined_ps();
   2229 }
   2230 
   2231 __m512d test_mm512_undefined_pd() {
   2232   // CHECK-LABEL: @test_mm512_undefined_pd
   2233   // CHECK: ret <8 x double> undef
   2234   return _mm512_undefined_pd();
   2235 }
   2236 
   2237 __m512i test_mm512_undefined_epi32() {
   2238   // CHECK-LABEL: @test_mm512_undefined_epi32
   2239   // CHECK: ret <8 x i64> undef
   2240   return _mm512_undefined_epi32();
   2241 }
   2242 
   2243 __m512i test_mm512_cvtepi8_epi32(__m128i __A) {
   2244   // CHECK-LABEL: @test_mm512_cvtepi8_epi32
   2245   // CHECK: @llvm.x86.avx512.mask.pmovsxb.d.512
   2246   return _mm512_cvtepi8_epi32(__A);
   2247 }
   2248 
   2249 __m512i test_mm512_mask_cvtepi8_epi32(__m512i __W, __mmask16 __U, __m128i __A) {
   2250   // CHECK-LABEL: @test_mm512_mask_cvtepi8_epi32
   2251   // CHECK: @llvm.x86.avx512.mask.pmovsxb.d.512
   2252   return _mm512_mask_cvtepi8_epi32(__W, __U, __A);
   2253 }
   2254 
   2255 __m512i test_mm512_maskz_cvtepi8_epi32(__mmask16 __U, __m128i __A) {
   2256   // CHECK-LABEL: @test_mm512_maskz_cvtepi8_epi32
   2257   // CHECK: @llvm.x86.avx512.mask.pmovsxb.d.512
   2258   return _mm512_maskz_cvtepi8_epi32(__U, __A);
   2259 }
   2260 
   2261 __m512i test_mm512_cvtepi8_epi64(__m128i __A) {
   2262   // CHECK-LABEL: @test_mm512_cvtepi8_epi64
   2263   // CHECK: @llvm.x86.avx512.mask.pmovsxb.q.512
   2264   return _mm512_cvtepi8_epi64(__A);
   2265 }
   2266 
   2267 __m512i test_mm512_mask_cvtepi8_epi64(__m512i __W, __mmask8 __U, __m128i __A) {
   2268   // CHECK-LABEL: @test_mm512_mask_cvtepi8_epi64
   2269   // CHECK: @llvm.x86.avx512.mask.pmovsxb.q.512
   2270   return _mm512_mask_cvtepi8_epi64(__W, __U, __A);
   2271 }
   2272 
   2273 __m512i test_mm512_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A) {
   2274   // CHECK-LABEL: @test_mm512_maskz_cvtepi8_epi64
   2275   // CHECK: @llvm.x86.avx512.mask.pmovsxb.q.512
   2276   return _mm512_maskz_cvtepi8_epi64(__U, __A);
   2277 }
   2278 
   2279 __m512i test_mm512_cvtepi32_epi64(__m256i __X) {
   2280   // CHECK-LABEL: @test_mm512_cvtepi32_epi64
   2281   // CHECK: @llvm.x86.avx512.mask.pmovsxd.q.512
   2282   return _mm512_cvtepi32_epi64(__X);
   2283 }
   2284 
   2285 __m512i test_mm512_mask_cvtepi32_epi64(__m512i __W, __mmask8 __U, __m256i __X) {
   2286   // CHECK-LABEL: @test_mm512_mask_cvtepi32_epi64
   2287   // CHECK: @llvm.x86.avx512.mask.pmovsxd.q.512
   2288   return _mm512_mask_cvtepi32_epi64(__W, __U, __X);
   2289 }
   2290 
   2291 __m512i test_mm512_maskz_cvtepi32_epi64(__mmask8 __U, __m256i __X) {
   2292   // CHECK-LABEL: @test_mm512_maskz_cvtepi32_epi64
   2293   // CHECK: @llvm.x86.avx512.mask.pmovsxd.q.512
   2294   return _mm512_maskz_cvtepi32_epi64(__U, __X);
   2295 }
   2296 
   2297 __m512i test_mm512_cvtepi16_epi32(__m256i __A) {
   2298   // CHECK-LABEL: @test_mm512_cvtepi16_epi32
   2299   // CHECK: @llvm.x86.avx512.mask.pmovsxw.d.512
   2300   return _mm512_cvtepi16_epi32(__A);
   2301 }
   2302 
   2303 __m512i test_mm512_mask_cvtepi16_epi32(__m512i __W, __mmask16 __U, __m256i __A) {
   2304   // CHECK-LABEL: @test_mm512_mask_cvtepi16_epi32
   2305   // CHECK: @llvm.x86.avx512.mask.pmovsxw.d.512
   2306   return _mm512_mask_cvtepi16_epi32(__W, __U, __A);
   2307 }
   2308 
   2309 __m512i test_mm512_maskz_cvtepi16_epi32(__mmask16 __U, __m256i __A) {
   2310   // CHECK-LABEL: @test_mm512_maskz_cvtepi16_epi32
   2311   // CHECK: @llvm.x86.avx512.mask.pmovsxw.d.512
   2312   return _mm512_maskz_cvtepi16_epi32(__U, __A);
   2313 }
   2314 
   2315 __m512i test_mm512_cvtepi16_epi64(__m128i __A) {
   2316   // CHECK-LABEL: @test_mm512_cvtepi16_epi64
   2317   // CHECK: @llvm.x86.avx512.mask.pmovsxw.q.512
   2318   return _mm512_cvtepi16_epi64(__A);
   2319 }
   2320 
   2321 __m512i test_mm512_mask_cvtepi16_epi64(__m512i __W, __mmask8 __U, __m128i __A) {
   2322   // CHECK-LABEL: @test_mm512_mask_cvtepi16_epi64
   2323   // CHECK: @llvm.x86.avx512.mask.pmovsxw.q.512
   2324   return _mm512_mask_cvtepi16_epi64(__W, __U, __A);
   2325 }
   2326 
   2327 __m512i test_mm512_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A) {
   2328   // CHECK-LABEL: @test_mm512_maskz_cvtepi16_epi64
   2329   // CHECK: @llvm.x86.avx512.mask.pmovsxw.q.512
   2330   return _mm512_maskz_cvtepi16_epi64(__U, __A);
   2331 }
   2332 
   2333 __m512i test_mm512_cvtepu8_epi32(__m128i __A) {
   2334   // CHECK-LABEL: @test_mm512_cvtepu8_epi32
   2335   // CHECK: @llvm.x86.avx512.mask.pmovzxb.d.512
   2336   return _mm512_cvtepu8_epi32(__A);
   2337 }
   2338 
   2339 __m512i test_mm512_mask_cvtepu8_epi32(__m512i __W, __mmask16 __U, __m128i __A) {
   2340   // CHECK-LABEL: @test_mm512_mask_cvtepu8_epi32
   2341   // CHECK: @llvm.x86.avx512.mask.pmovzxb.d.512
   2342   return _mm512_mask_cvtepu8_epi32(__W, __U, __A);
   2343 }
   2344 
   2345 __m512i test_mm512_maskz_cvtepu8_epi32(__mmask16 __U, __m128i __A) {
   2346   // CHECK-LABEL: @test_mm512_maskz_cvtepu8_epi32
   2347   // CHECK: @llvm.x86.avx512.mask.pmovzxb.d.512
   2348   return _mm512_maskz_cvtepu8_epi32(__U, __A);
   2349 }
   2350 
   2351 __m512i test_mm512_cvtepu8_epi64(__m128i __A) {
   2352   // CHECK-LABEL: @test_mm512_cvtepu8_epi64
   2353   // CHECK: @llvm.x86.avx512.mask.pmovzxb.q.512
   2354   return _mm512_cvtepu8_epi64(__A);
   2355 }
   2356 
   2357 __m512i test_mm512_mask_cvtepu8_epi64(__m512i __W, __mmask8 __U, __m128i __A) {
   2358   // CHECK-LABEL: @test_mm512_mask_cvtepu8_epi64
   2359   // CHECK: @llvm.x86.avx512.mask.pmovzxb.q.512
   2360   return _mm512_mask_cvtepu8_epi64(__W, __U, __A);
   2361 }
   2362 
   2363 __m512i test_mm512_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A) {
   2364   // CHECK-LABEL: @test_mm512_maskz_cvtepu8_epi64
   2365   // CHECK: @llvm.x86.avx512.mask.pmovzxb.q.512
   2366   return _mm512_maskz_cvtepu8_epi64(__U, __A);
   2367 }
   2368 
   2369 __m512i test_mm512_cvtepu32_epi64(__m256i __X) {
   2370   // CHECK-LABEL: @test_mm512_cvtepu32_epi64
   2371   // CHECK: @llvm.x86.avx512.mask.pmovzxd.q.512
   2372   return _mm512_cvtepu32_epi64(__X);
   2373 }
   2374 
   2375 __m512i test_mm512_mask_cvtepu32_epi64(__m512i __W, __mmask8 __U, __m256i __X) {
   2376   // CHECK-LABEL: @test_mm512_mask_cvtepu32_epi64
   2377   // CHECK: @llvm.x86.avx512.mask.pmovzxd.q.512
   2378   return _mm512_mask_cvtepu32_epi64(__W, __U, __X);
   2379 }
   2380 
   2381 __m512i test_mm512_maskz_cvtepu32_epi64(__mmask8 __U, __m256i __X) {
   2382   // CHECK-LABEL: @test_mm512_maskz_cvtepu32_epi64
   2383   // CHECK: @llvm.x86.avx512.mask.pmovzxd.q.512
   2384   return _mm512_maskz_cvtepu32_epi64(__U, __X);
   2385 }
   2386 
   2387 __m512i test_mm512_cvtepu16_epi32(__m256i __A) {
   2388   // CHECK-LABEL: @test_mm512_cvtepu16_epi32
   2389   // CHECK: @llvm.x86.avx512.mask.pmovzxw.d.512
   2390   return _mm512_cvtepu16_epi32(__A);
   2391 }
   2392 
   2393 __m512i test_mm512_mask_cvtepu16_epi32(__m512i __W, __mmask16 __U, __m256i __A) {
   2394   // CHECK-LABEL: @test_mm512_mask_cvtepu16_epi32
   2395   // CHECK: @llvm.x86.avx512.mask.pmovzxw.d.512
   2396   return _mm512_mask_cvtepu16_epi32(__W, __U, __A);
   2397 }
   2398 
   2399 __m512i test_mm512_maskz_cvtepu16_epi32(__mmask16 __U, __m256i __A) {
   2400   // CHECK-LABEL: @test_mm512_maskz_cvtepu16_epi32
   2401   // CHECK: @llvm.x86.avx512.mask.pmovzxw.d.512
   2402   return _mm512_maskz_cvtepu16_epi32(__U, __A);
   2403 }
   2404 
   2405 __m512i test_mm512_cvtepu16_epi64(__m128i __A) {
   2406   // CHECK-LABEL: @test_mm512_cvtepu16_epi64
   2407   // CHECK: @llvm.x86.avx512.mask.pmovzxw.q.512
   2408   return _mm512_cvtepu16_epi64(__A);
   2409 }
   2410 
   2411 __m512i test_mm512_mask_cvtepu16_epi64(__m512i __W, __mmask8 __U, __m128i __A) {
   2412   // CHECK-LABEL: @test_mm512_mask_cvtepu16_epi64
   2413   // CHECK: @llvm.x86.avx512.mask.pmovzxw.q.512
   2414   return _mm512_mask_cvtepu16_epi64(__W, __U, __A);
   2415 }
   2416 
   2417 __m512i test_mm512_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A) {
   2418   // CHECK-LABEL: @test_mm512_maskz_cvtepu16_epi64
   2419   // CHECK: @llvm.x86.avx512.mask.pmovzxw.q.512
   2420   return _mm512_maskz_cvtepu16_epi64(__U, __A);
   2421 }
   2422 
   2423 
   2424 __m512i test_mm512_rol_epi32(__m512i __A) {
   2425   // CHECK-LABEL: @test_mm512_rol_epi32
   2426   // CHECK: @llvm.x86.avx512.mask.prol.d.512
   2427   return _mm512_rol_epi32(__A, 5);
   2428 }
   2429 
   2430 __m512i test_mm512_mask_rol_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
   2431   // CHECK-LABEL: @test_mm512_mask_rol_epi32
   2432   // CHECK: @llvm.x86.avx512.mask.prol.d.512
   2433   return _mm512_mask_rol_epi32(__W, __U, __A, 5);
   2434 }
   2435 
   2436 __m512i test_mm512_maskz_rol_epi32(__mmask16 __U, __m512i __A) {
   2437   // CHECK-LABEL: @test_mm512_maskz_rol_epi32
   2438   // CHECK: @llvm.x86.avx512.mask.prol.d.512
   2439   return _mm512_maskz_rol_epi32(__U, __A, 5);
   2440 }
   2441 
   2442 __m512i test_mm512_rol_epi64(__m512i __A) {
   2443   // CHECK-LABEL: @test_mm512_rol_epi64
   2444   // CHECK: @llvm.x86.avx512.mask.prol.q.512
   2445   return _mm512_rol_epi64(__A, 5);
   2446 }
   2447 
   2448 __m512i test_mm512_mask_rol_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
   2449   // CHECK-LABEL: @test_mm512_mask_rol_epi64
   2450   // CHECK: @llvm.x86.avx512.mask.prol.q.512
   2451   return _mm512_mask_rol_epi64(__W, __U, __A, 5);
   2452 }
   2453 
   2454 __m512i test_mm512_maskz_rol_epi64(__mmask8 __U, __m512i __A) {
   2455   // CHECK-LABEL: @test_mm512_maskz_rol_epi64
   2456   // CHECK: @llvm.x86.avx512.mask.prol.q.512
   2457   return _mm512_maskz_rol_epi64(__U, __A, 5);
   2458 }
   2459 
   2460 __m512i test_mm512_rolv_epi32(__m512i __A, __m512i __B) {
   2461   // CHECK-LABEL: @test_mm512_rolv_epi32
   2462   // CHECK: @llvm.x86.avx512.mask.prolv.d.512
   2463   return _mm512_rolv_epi32(__A, __B);
   2464 }
   2465 
   2466 __m512i test_mm512_mask_rolv_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
   2467   // CHECK-LABEL: @test_mm512_mask_rolv_epi32
   2468   // CHECK: @llvm.x86.avx512.mask.prolv.d.512
   2469   return _mm512_mask_rolv_epi32(__W, __U, __A, __B);
   2470 }
   2471 
   2472 __m512i test_mm512_maskz_rolv_epi32(__mmask16 __U, __m512i __A, __m512i __B) {
   2473   // CHECK-LABEL: @test_mm512_maskz_rolv_epi32
   2474   // CHECK: @llvm.x86.avx512.mask.prolv.d.512
   2475   return _mm512_maskz_rolv_epi32(__U, __A, __B);
   2476 }
   2477 
   2478 __m512i test_mm512_rolv_epi64(__m512i __A, __m512i __B) {
   2479   // CHECK-LABEL: @test_mm512_rolv_epi64
   2480   // CHECK: @llvm.x86.avx512.mask.prolv.q.512
   2481   return _mm512_rolv_epi64(__A, __B);
   2482 }
   2483 
   2484 __m512i test_mm512_mask_rolv_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) {
   2485   // CHECK-LABEL: @test_mm512_mask_rolv_epi64
   2486   // CHECK: @llvm.x86.avx512.mask.prolv.q.512
   2487   return _mm512_mask_rolv_epi64(__W, __U, __A, __B);
   2488 }
   2489 
   2490 __m512i test_mm512_maskz_rolv_epi64(__mmask8 __U, __m512i __A, __m512i __B) {
   2491   // CHECK-LABEL: @test_mm512_maskz_rolv_epi64
   2492   // CHECK: @llvm.x86.avx512.mask.prolv.q.512
   2493   return _mm512_maskz_rolv_epi64(__U, __A, __B);
   2494 }
   2495 
   2496 __m512i test_mm512_ror_epi32(__m512i __A) {
   2497   // CHECK-LABEL: @test_mm512_ror_epi32
   2498   // CHECK: @llvm.x86.avx512.mask.pror.d.512
   2499   return _mm512_ror_epi32(__A, 5);
   2500 }
   2501 
   2502 __m512i test_mm512_mask_ror_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
   2503   // CHECK-LABEL: @test_mm512_mask_ror_epi32
   2504   // CHECK: @llvm.x86.avx512.mask.pror.d.512
   2505   return _mm512_mask_ror_epi32(__W, __U, __A, 5);
   2506 }
   2507 
   2508 __m512i test_mm512_maskz_ror_epi32(__mmask16 __U, __m512i __A) {
   2509   // CHECK-LABEL: @test_mm512_maskz_ror_epi32
   2510   // CHECK: @llvm.x86.avx512.mask.pror.d.512
   2511   return _mm512_maskz_ror_epi32(__U, __A, 5);
   2512 }
   2513 
   2514 __m512i test_mm512_ror_epi64(__m512i __A) {
   2515   // CHECK-LABEL: @test_mm512_ror_epi64
   2516   // CHECK: @llvm.x86.avx512.mask.pror.q.512
   2517   return _mm512_ror_epi64(__A, 5);
   2518 }
   2519 
   2520 __m512i test_mm512_mask_ror_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
   2521   // CHECK-LABEL: @test_mm512_mask_ror_epi64
   2522   // CHECK: @llvm.x86.avx512.mask.pror.q.512
   2523   return _mm512_mask_ror_epi64(__W, __U, __A, 5);
   2524 }
   2525 
   2526 __m512i test_mm512_maskz_ror_epi64(__mmask8 __U, __m512i __A) {
   2527   // CHECK-LABEL: @test_mm512_maskz_ror_epi64
   2528   // CHECK: @llvm.x86.avx512.mask.pror.q.512
   2529   return _mm512_maskz_ror_epi64(__U, __A, 5);
   2530 }
   2531 
   2532 
   2533 __m512i test_mm512_rorv_epi32(__m512i __A, __m512i __B) {
   2534   // CHECK-LABEL: @test_mm512_rorv_epi32
   2535   // CHECK: @llvm.x86.avx512.mask.prorv.d.512
   2536   return _mm512_rorv_epi32(__A, __B);
   2537 }
   2538 
   2539 __m512i test_mm512_mask_rorv_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
   2540   // CHECK-LABEL: @test_mm512_mask_rorv_epi32
   2541   // CHECK: @llvm.x86.avx512.mask.prorv.d.512
   2542   return _mm512_mask_rorv_epi32(__W, __U, __A, __B);
   2543 }
   2544 
   2545 __m512i test_mm512_maskz_rorv_epi32(__mmask16 __U, __m512i __A, __m512i __B) {
   2546   // CHECK-LABEL: @test_mm512_maskz_rorv_epi32
   2547   // CHECK: @llvm.x86.avx512.mask.prorv.d.512
   2548   return _mm512_maskz_rorv_epi32(__U, __A, __B);
   2549 }
   2550 
   2551 __m512i test_mm512_rorv_epi64(__m512i __A, __m512i __B) {
   2552   // CHECK-LABEL: @test_mm512_rorv_epi64
   2553   // CHECK: @llvm.x86.avx512.mask.prorv.q.512
   2554   return _mm512_rorv_epi64(__A, __B);
   2555 }
   2556 
   2557 __m512i test_mm512_mask_rorv_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) {
   2558   // CHECK-LABEL: @test_mm512_mask_rorv_epi64
   2559   // CHECK: @llvm.x86.avx512.mask.prorv.q.512
   2560   return _mm512_mask_rorv_epi64(__W, __U, __A, __B);
   2561 }
   2562 
   2563 __m512i test_mm512_maskz_rorv_epi64(__mmask8 __U, __m512i __A, __m512i __B) {
   2564   // CHECK-LABEL: @test_mm512_maskz_rorv_epi64
   2565   // CHECK: @llvm.x86.avx512.mask.prorv.q.512
   2566   return _mm512_maskz_rorv_epi64(__U, __A, __B);
   2567 }
   2568 
   2569 __m512i test_mm512_slli_epi32(__m512i __A) {
   2570   // CHECK-LABEL: @test_mm512_slli_epi32
   2571   // CHECK: @llvm.x86.avx512.mask.psll.di.512
   2572   return _mm512_slli_epi32(__A, 5);
   2573 }
   2574 
   2575 __m512i test_mm512_mask_slli_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
   2576   // CHECK-LABEL: @test_mm512_mask_slli_epi32
   2577   // CHECK: @llvm.x86.avx512.mask.psll.di.512
   2578   return _mm512_mask_slli_epi32(__W, __U, __A, 5);
   2579 }
   2580 
   2581 __m512i test_mm512_maskz_slli_epi32(__mmask16 __U, __m512i __A) {
   2582   // CHECK-LABEL: @test_mm512_maskz_slli_epi32
   2583   // CHECK: @llvm.x86.avx512.mask.psll.di.512
   2584   return _mm512_maskz_slli_epi32(__U, __A, 5);
   2585 }
   2586 
   2587 __m512i test_mm512_slli_epi64(__m512i __A) {
   2588   // CHECK-LABEL: @test_mm512_slli_epi64
   2589   // CHECK: @llvm.x86.avx512.mask.psll.qi.512
   2590   return _mm512_slli_epi64(__A, 5);
   2591 }
   2592 
   2593 __m512i test_mm512_mask_slli_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
   2594   // CHECK-LABEL: @test_mm512_mask_slli_epi64
   2595   // CHECK: @llvm.x86.avx512.mask.psll.qi.512
   2596   return _mm512_mask_slli_epi64(__W, __U, __A, 5);
   2597 }
   2598 
   2599 __m512i test_mm512_maskz_slli_epi64(__mmask8 __U, __m512i __A) {
   2600   // CHECK-LABEL: @test_mm512_maskz_slli_epi64
   2601   // CHECK: @llvm.x86.avx512.mask.psll.qi.512
   2602   return _mm512_maskz_slli_epi64(__U, __A, 5);
   2603 }
   2604 
   2605 __m512i test_mm512_srli_epi32(__m512i __A) {
   2606   // CHECK-LABEL: @test_mm512_srli_epi32
   2607   // CHECK: @llvm.x86.avx512.mask.psrl.di.512
   2608   return _mm512_srli_epi32(__A, 5);
   2609 }
   2610 
   2611 __m512i test_mm512_mask_srli_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
   2612   // CHECK-LABEL: @test_mm512_mask_srli_epi32
   2613   // CHECK: @llvm.x86.avx512.mask.psrl.di.512
   2614   return _mm512_mask_srli_epi32(__W, __U, __A, 5);
   2615 }
   2616 
   2617 __m512i test_mm512_maskz_srli_epi32(__mmask16 __U, __m512i __A) {
   2618   // CHECK-LABEL: @test_mm512_maskz_srli_epi32
   2619   // CHECK: @llvm.x86.avx512.mask.psrl.di.512
   2620   return _mm512_maskz_srli_epi32(__U, __A, 5);
   2621 }
   2622 
   2623 __m512i test_mm512_srli_epi64(__m512i __A) {
   2624   // CHECK-LABEL: @test_mm512_srli_epi64
   2625   // CHECK: @llvm.x86.avx512.mask.psrl.qi.512
   2626   return _mm512_srli_epi64(__A, 5);
   2627 }
   2628 
   2629 __m512i test_mm512_mask_srli_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
   2630   // CHECK-LABEL: @test_mm512_mask_srli_epi64
   2631   // CHECK: @llvm.x86.avx512.mask.psrl.qi.512
   2632   return _mm512_mask_srli_epi64(__W, __U, __A, 5);
   2633 }
   2634 
   2635 __m512i test_mm512_maskz_srli_epi64(__mmask8 __U, __m512i __A) {
   2636   // CHECK-LABEL: @test_mm512_maskz_srli_epi64
   2637   // CHECK: @llvm.x86.avx512.mask.psrl.qi.512
   2638   return _mm512_maskz_srli_epi64(__U, __A, 5);
   2639 }
   2640 
   2641 __m512i test_mm512_mask_load_epi32(__m512i __W, __mmask16 __U, void const *__P) {
   2642   // CHECK-LABEL: @test_mm512_mask_load_epi32
   2643   // CHECK: @llvm.masked.load.v16i32.p0v16i32(<16 x i32>* %{{.*}}, i32 64, <16 x i1> %{{.*}}, <16 x i32> %{{.*}})
   2644   return _mm512_mask_load_epi32(__W, __U, __P);
   2645 }
   2646 
   2647 __m512i test_mm512_maskz_load_epi32(__mmask16 __U, void const *__P) {
   2648   // CHECK-LABEL: @test_mm512_maskz_load_epi32
   2649   // CHECK: @llvm.masked.load.v16i32.p0v16i32(<16 x i32>* %{{.*}}, i32 64, <16 x i1> %{{.*}}, <16 x i32> %{{.*}})
   2650   return _mm512_maskz_load_epi32(__U, __P);
   2651 }
   2652 
   2653 __m512i test_mm512_mask_mov_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
   2654   // CHECK-LABEL: @test_mm512_mask_mov_epi32
   2655   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
   2656   return _mm512_mask_mov_epi32(__W, __U, __A);
   2657 }
   2658 
   2659 __m512i test_mm512_maskz_mov_epi32(__mmask16 __U, __m512i __A) {
   2660   // CHECK-LABEL: @test_mm512_maskz_mov_epi32
   2661   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
   2662   return _mm512_maskz_mov_epi32(__U, __A);
   2663 }
   2664 
   2665 __m512i test_mm512_mask_mov_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
   2666   // CHECK-LABEL: @test_mm512_mask_mov_epi64
   2667   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
   2668   return _mm512_mask_mov_epi64(__W, __U, __A);
   2669 }
   2670 
   2671 __m512i test_mm512_maskz_mov_epi64(__mmask8 __U, __m512i __A) {
   2672   // CHECK-LABEL: @test_mm512_maskz_mov_epi64
   2673   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
   2674   return _mm512_maskz_mov_epi64(__U, __A);
   2675 }
   2676 
   2677 __m512i test_mm512_mask_load_epi64(__m512i __W, __mmask8 __U, void const *__P) {
   2678   // CHECK-LABEL: @test_mm512_mask_load_epi64
   2679   // CHECK: @llvm.masked.load.v8i64.p0v8i64(<8 x i64>* %{{.*}}, i32 64, <8 x i1> %{{.*}}, <8 x i64> %{{.*}})
   2680   return _mm512_mask_load_epi64(__W, __U, __P);
   2681 }
   2682 
   2683 __m512i test_mm512_maskz_load_epi64(__mmask8 __U, void const *__P) {
   2684   // CHECK-LABEL: @test_mm512_maskz_load_epi64
   2685   // CHECK: @llvm.masked.load.v8i64.p0v8i64(<8 x i64>* %{{.*}}, i32 64, <8 x i1> %{{.*}}, <8 x i64> %{{.*}})
   2686   return _mm512_maskz_load_epi64(__U, __P);
   2687 }
   2688 
   2689 void test_mm512_mask_store_epi32(void *__P, __mmask16 __U, __m512i __A) {
   2690   // CHECK-LABEL: @test_mm512_mask_store_epi32
   2691   // CHECK: @llvm.masked.store.v16i32.p0v16i32(<16 x i32> %{{.*}}, <16 x i32>* %{{.*}}, i32 64, <16 x i1> %{{.*}})
   2692   return _mm512_mask_store_epi32(__P, __U, __A);
   2693 }
   2694 
   2695 void test_mm512_mask_store_epi64(void *__P, __mmask8 __U, __m512i __A) {
   2696   // CHECK-LABEL: @test_mm512_mask_store_epi64
   2697   // CHECK: @llvm.masked.store.v8i64.p0v8i64(<8 x i64> %{{.*}}, <8 x i64>* %{{.*}}, i32 64, <8 x i1> %{{.*}})
   2698   return _mm512_mask_store_epi64(__P, __U, __A);
   2699 }
   2700 
   2701 __m512d test_mm512_movedup_pd(__m512d __A) {
   2702   // CHECK-LABEL: @test_mm512_movedup_pd
   2703   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> %{{.*}}, <8 x i32> <i32 0, i32 0, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6>
   2704   return _mm512_movedup_pd(__A);
   2705 }
   2706 
   2707 __m512d test_mm512_mask_movedup_pd(__m512d __W, __mmask8 __U, __m512d __A) {
   2708   // CHECK-LABEL: @test_mm512_mask_movedup_pd
   2709   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> %{{.*}}, <8 x i32> <i32 0, i32 0, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6>
   2710   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
   2711   return _mm512_mask_movedup_pd(__W, __U, __A);
   2712 }
   2713 
   2714 __m512d test_mm512_maskz_movedup_pd(__mmask8 __U, __m512d __A) {
   2715   // CHECK-LABEL: @test_mm512_maskz_movedup_pd
   2716   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> %{{.*}}, <8 x i32> <i32 0, i32 0, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6>
   2717   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
   2718   return _mm512_maskz_movedup_pd(__U, __A);
   2719 }
   2720 
   2721 int test_mm_comi_round_sd(__m128d __A, __m128d __B) {
   2722   // CHECK-LABEL: @test_mm_comi_round_sd
   2723   // CHECK: @llvm.x86.avx512.vcomi.sd
   2724   return _mm_comi_round_sd(__A, __B, 5, 3);
   2725 }
   2726 
   2727 int test_mm_comi_round_ss(__m128 __A, __m128 __B) {
   2728   // CHECK-LABEL: @test_mm_comi_round_ss
   2729   // CHECK: @llvm.x86.avx512.vcomi.ss
   2730   return _mm_comi_round_ss(__A, __B, 5, 3);
   2731 }
   2732 
   2733 __m512d test_mm512_fixupimm_round_pd(__m512d __A, __m512d __B, __m512i __C) {
   2734   // CHECK-LABEL: @test_mm512_fixupimm_round_pd
   2735   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.512
   2736   return _mm512_fixupimm_round_pd(__A, __B, __C, 5, 8);
   2737 }
   2738 
   2739 __m512d test_mm512_mask_fixupimm_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512i __C) {
   2740   // CHECK-LABEL: @test_mm512_mask_fixupimm_round_pd
   2741   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.512
   2742   return _mm512_mask_fixupimm_round_pd(__A, __U, __B, __C, 5, 8);
   2743 }
   2744 
   2745 __m512d test_mm512_fixupimm_pd(__m512d __A, __m512d __B, __m512i __C) {
   2746   // CHECK-LABEL: @test_mm512_fixupimm_pd
   2747   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.512
   2748   return _mm512_fixupimm_pd(__A, __B, __C, 5);
   2749 }
   2750 
   2751 __m512d test_mm512_mask_fixupimm_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512i __C) {
   2752   // CHECK-LABEL: @test_mm512_mask_fixupimm_pd
   2753   // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.512
   2754   return _mm512_mask_fixupimm_pd(__A, __U, __B, __C, 5);
   2755 }
   2756 
   2757 __m512d test_mm512_maskz_fixupimm_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512i __C) {
   2758   // CHECK-LABEL: @test_mm512_maskz_fixupimm_round_pd
   2759   // CHECK: @llvm.x86.avx512.maskz.fixupimm.pd.512
   2760   return _mm512_maskz_fixupimm_round_pd(__U, __A, __B, __C, 5, 8);
   2761 }
   2762 
   2763 __m512d test_mm512_maskz_fixupimm_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512i __C) {
   2764   // CHECK-LABEL: @test_mm512_maskz_fixupimm_pd
   2765   // CHECK: @llvm.x86.avx512.maskz.fixupimm.pd.512
   2766   return _mm512_maskz_fixupimm_pd(__U, __A, __B, __C, 5);
   2767 }
   2768 
   2769 __m512 test_mm512_fixupimm_round_ps(__m512 __A, __m512 __B, __m512i __C) {
   2770   // CHECK-LABEL: @test_mm512_fixupimm_round_ps
   2771   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.512
   2772   return _mm512_fixupimm_round_ps(__A, __B, __C, 5, 8);
   2773 }
   2774 
   2775 __m512 test_mm512_mask_fixupimm_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512i __C) {
   2776   // CHECK-LABEL: @test_mm512_mask_fixupimm_round_ps
   2777   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.512
   2778   return _mm512_mask_fixupimm_round_ps(__A, __U, __B, __C, 5, 8);
   2779 }
   2780 
   2781 __m512 test_mm512_fixupimm_ps(__m512 __A, __m512 __B, __m512i __C) {
   2782   // CHECK-LABEL: @test_mm512_fixupimm_ps
   2783   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.512
   2784   return _mm512_fixupimm_ps(__A, __B, __C, 5);
   2785 }
   2786 
   2787 __m512 test_mm512_mask_fixupimm_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512i __C) {
   2788   // CHECK-LABEL: @test_mm512_mask_fixupimm_ps
   2789   // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.512
   2790   return _mm512_mask_fixupimm_ps(__A, __U, __B, __C, 5);
   2791 }
   2792 
   2793 __m512 test_mm512_maskz_fixupimm_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512i __C) {
   2794   // CHECK-LABEL: @test_mm512_maskz_fixupimm_round_ps
   2795   // CHECK: @llvm.x86.avx512.maskz.fixupimm.ps.512
   2796   return _mm512_maskz_fixupimm_round_ps(__U, __A, __B, __C, 5, 8);
   2797 }
   2798 
   2799 __m512 test_mm512_maskz_fixupimm_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512i __C) {
   2800   // CHECK-LABEL: @test_mm512_maskz_fixupimm_ps
   2801   // CHECK: @llvm.x86.avx512.maskz.fixupimm.ps.512
   2802   return _mm512_maskz_fixupimm_ps(__U, __A, __B, __C, 5);
   2803 }
   2804 
   2805 __m128d test_mm_fixupimm_round_sd(__m128d __A, __m128d __B, __m128i __C) {
   2806   // CHECK-LABEL: @test_mm_fixupimm_round_sd
   2807   // CHECK: @llvm.x86.avx512.mask.fixupimm
   2808   return _mm_fixupimm_round_sd(__A, __B, __C, 5, 8);
   2809 }
   2810 
   2811 __m128d test_mm_mask_fixupimm_round_sd(__m128d __A, __mmask8 __U, __m128d __B, __m128i __C) {
   2812   // CHECK-LABEL: @test_mm_mask_fixupimm_round_sd
   2813   // CHECK: @llvm.x86.avx512.mask.fixupimm
   2814   return _mm_mask_fixupimm_round_sd(__A, __U, __B, __C, 5, 8);
   2815 }
   2816 
   2817 __m128d test_mm_fixupimm_sd(__m128d __A, __m128d __B, __m128i __C) {
   2818   // CHECK-LABEL: @test_mm_fixupimm_sd
   2819   // CHECK: @llvm.x86.avx512.mask.fixupimm
   2820   return _mm_fixupimm_sd(__A, __B, __C, 5);
   2821 }
   2822 
   2823 __m128d test_mm_mask_fixupimm_sd(__m128d __A, __mmask8 __U, __m128d __B, __m128i __C) {
   2824   // CHECK-LABEL: @test_mm_mask_fixupimm_sd
   2825   // CHECK: @llvm.x86.avx512.mask.fixupimm
   2826   return _mm_mask_fixupimm_sd(__A, __U, __B, __C, 5);
   2827 }
   2828 
   2829 __m128d test_mm_maskz_fixupimm_round_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128i __C) {
   2830   // CHECK-LABEL: @test_mm_maskz_fixupimm_round_sd
   2831   // CHECK: @llvm.x86.avx512.maskz.fixupimm
   2832   return _mm_maskz_fixupimm_round_sd(__U, __A, __B, __C, 5, 8);
   2833 }
   2834 
   2835 __m128d test_mm_maskz_fixupimm_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128i __C) {
   2836   // CHECK-LABEL: @test_mm_maskz_fixupimm_sd
   2837   // CHECK: @llvm.x86.avx512.maskz.fixupimm
   2838   return _mm_maskz_fixupimm_sd(__U, __A, __B, __C, 5);
   2839 }
   2840 
   2841 __m128 test_mm_fixupimm_round_ss(__m128 __A, __m128 __B, __m128i __C) {
   2842   // CHECK-LABEL: @test_mm_fixupimm_round_ss
   2843   // CHECK: @llvm.x86.avx512.mask.fixupimm
   2844   return _mm_fixupimm_round_ss(__A, __B, __C, 5, 8);
   2845 }
   2846 
   2847 __m128 test_mm_mask_fixupimm_round_ss(__m128 __A, __mmask8 __U, __m128 __B, __m128i __C) {
   2848   // CHECK-LABEL: @test_mm_mask_fixupimm_round_ss
   2849   // CHECK: @llvm.x86.avx512.mask.fixupimm
   2850   return _mm_mask_fixupimm_round_ss(__A, __U, __B, __C, 5, 8);
   2851 }
   2852 
   2853 __m128 test_mm_fixupimm_ss(__m128 __A, __m128 __B, __m128i __C) {
   2854   // CHECK-LABEL: @test_mm_fixupimm_ss
   2855   // CHECK: @llvm.x86.avx512.mask.fixupimm
   2856   return _mm_fixupimm_ss(__A, __B, __C, 5);
   2857 }
   2858 
   2859 __m128 test_mm_mask_fixupimm_ss(__m128 __A, __mmask8 __U, __m128 __B, __m128i __C) {
   2860   // CHECK-LABEL: @test_mm_mask_fixupimm_ss
   2861   // CHECK: @llvm.x86.avx512.mask.fixupimm
   2862   return _mm_mask_fixupimm_ss(__A, __U, __B, __C, 5);
   2863 }
   2864 
   2865 __m128 test_mm_maskz_fixupimm_round_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128i __C) {
   2866   // CHECK-LABEL: @test_mm_maskz_fixupimm_round_ss
   2867   // CHECK: @llvm.x86.avx512.maskz.fixupimm
   2868   return _mm_maskz_fixupimm_round_ss(__U, __A, __B, __C, 5, 8);
   2869 }
   2870 
   2871 __m128 test_mm_maskz_fixupimm_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128i __C) {
   2872   // CHECK-LABEL: @test_mm_maskz_fixupimm_ss
   2873   // CHECK: @llvm.x86.avx512.maskz.fixupimm
   2874   return _mm_maskz_fixupimm_ss(__U, __A, __B, __C, 5);
   2875 }
   2876 
   2877 __m128d test_mm_getexp_round_sd(__m128d __A, __m128d __B) {
   2878   // CHECK-LABEL: @test_mm_getexp_round_sd
   2879   // CHECK: @llvm.x86.avx512.mask.getexp.sd
   2880   return _mm_getexp_round_sd(__A, __B, 8);
   2881 }
   2882 
   2883 __m128d test_mm_getexp_sd(__m128d __A, __m128d __B) {
   2884   // CHECK-LABEL: @test_mm_getexp_sd
   2885   // CHECK: @llvm.x86.avx512.mask.getexp.sd
   2886   return _mm_getexp_sd(__A, __B);
   2887 }
   2888 
   2889 __m128 test_mm_getexp_round_ss(__m128 __A, __m128 __B) {
   2890   // CHECK-LABEL: @test_mm_getexp_round_ss
   2891   // CHECK: @llvm.x86.avx512.mask.getexp.ss
   2892   return _mm_getexp_round_ss(__A, __B, 8);
   2893 }
   2894 
   2895 __m128 test_mm_getexp_ss(__m128 __A, __m128 __B) {
   2896   // CHECK-LABEL: @test_mm_getexp_ss
   2897   // CHECK: @llvm.x86.avx512.mask.getexp.ss
   2898   return _mm_getexp_ss(__A, __B);
   2899 }
   2900 
   2901 __m128d test_mm_getmant_round_sd(__m128d __A, __m128d __B) {
   2902   // CHECK-LABEL: @test_mm_getmant_round_sd
   2903   // CHECK: @llvm.x86.avx512.mask.getmant.sd
   2904   return _mm_getmant_round_sd(__A, __B, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_src, 8);
   2905 }
   2906 
   2907 __m128d test_mm_getmant_sd(__m128d __A, __m128d __B) {
   2908   // CHECK-LABEL: @test_mm_getmant_sd
   2909   // CHECK: @llvm.x86.avx512.mask.getmant.sd
   2910   return _mm_getmant_sd(__A, __B, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_src);
   2911 }
   2912 
   2913 __m128 test_mm_getmant_round_ss(__m128 __A, __m128 __B) {
   2914   // CHECK-LABEL: @test_mm_getmant_round_ss
   2915   // CHECK: @llvm.x86.avx512.mask.getmant.ss
   2916   return _mm_getmant_round_ss(__A, __B, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_src, 8);
   2917 }
   2918 
   2919 __m128 test_mm_getmant_ss(__m128 __A, __m128 __B) {
   2920   // CHECK-LABEL: @test_mm_getmant_ss
   2921   // CHECK: @llvm.x86.avx512.mask.getmant.ss
   2922   return _mm_getmant_ss(__A, __B, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_src);
   2923 }
   2924 
   2925 __mmask16 test_mm512_kmov(__mmask16 __A) {
   2926   // CHECK-LABEL: @test_mm512_kmov
   2927   // CHECK: load i16, i16* %__A.addr.i, align 2
   2928   return _mm512_kmov(__A);
   2929 }
   2930 
   2931 __m512d test_mm512_mask_unpackhi_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
   2932   // CHECK-LABEL: @test_mm512_mask_unpackhi_pd
   2933   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> %{{.*}}, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15>
   2934   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
   2935   return _mm512_mask_unpackhi_pd(__W, __U, __A, __B);
   2936 }
   2937 unsigned long long test_mm_cvt_roundsd_si64(__m128d __A) {
   2938   // CHECK-LABEL: @test_mm_cvt_roundsd_si64
   2939   // CHECK: @llvm.x86.avx512.vcvtsd2si64
   2940   return _mm_cvt_roundsd_si64(__A, _MM_FROUND_CUR_DIRECTION);
   2941 }
   2942 __m512i test_mm512_mask2_permutex2var_epi32(__m512i __A, __m512i __I, __mmask16 __U, __m512i __B) {
   2943   // CHECK-LABEL: @test_mm512_mask2_permutex2var_epi32
   2944   // CHECK: @llvm.x86.avx512.mask.vpermi2var.d.512
   2945   return _mm512_mask2_permutex2var_epi32(__A, __I, __U, __B);
   2946 }
   2947 __m512i test_mm512_unpackhi_epi32(__m512i __A, __m512i __B) {
   2948   // CHECK-LABEL: @test_mm512_unpackhi_epi32
   2949   // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <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>
   2950   return _mm512_unpackhi_epi32(__A, __B);
   2951 }
   2952 
   2953 __m512d test_mm512_maskz_unpackhi_pd(__mmask8 __U, __m512d __A, __m512d __B) {
   2954   // CHECK-LABEL: @test_mm512_maskz_unpackhi_pd
   2955   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> %{{.*}}, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15>
   2956   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
   2957   return _mm512_maskz_unpackhi_pd(__U, __A, __B);
   2958 }
   2959 long long test_mm_cvt_roundsd_i64(__m128d __A) {
   2960   // CHECK-LABEL: @test_mm_cvt_roundsd_i64
   2961   // CHECK: @llvm.x86.avx512.vcvtsd2si64
   2962   return _mm_cvt_roundsd_i64(__A, _MM_FROUND_CUR_DIRECTION);
   2963 }
   2964 __m512d test_mm512_mask2_permutex2var_pd(__m512d __A, __m512i __I, __mmask8 __U, __m512d __B) {
   2965   // CHECK-LABEL: @test_mm512_mask2_permutex2var_pd
   2966   // CHECK: @llvm.x86.avx512.mask.vpermi2var.pd.512
   2967   return _mm512_mask2_permutex2var_pd(__A, __I, __U, __B);
   2968 }
   2969 __m512i test_mm512_mask_unpackhi_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
   2970   // CHECK-LABEL: @test_mm512_mask_unpackhi_epi32
   2971   // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <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>
   2972   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
   2973   return _mm512_mask_unpackhi_epi32(__W, __U, __A, __B);
   2974 }
   2975 
   2976 __m512 test_mm512_mask_unpackhi_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
   2977   // CHECK-LABEL: @test_mm512_mask_unpackhi_ps
   2978   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <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>
   2979   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
   2980   return _mm512_mask_unpackhi_ps(__W, __U, __A, __B);
   2981 }
   2982 
   2983 __m512 test_mm512_maskz_unpackhi_ps(__mmask16 __U, __m512 __A, __m512 __B) {
   2984   // CHECK-LABEL: @test_mm512_maskz_unpackhi_ps
   2985   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <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>
   2986   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
   2987   return _mm512_maskz_unpackhi_ps(__U, __A, __B);
   2988 }
   2989 
   2990 __m512d test_mm512_mask_unpacklo_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
   2991   // CHECK-LABEL: @test_mm512_mask_unpacklo_pd
   2992   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14>
   2993   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
   2994   return _mm512_mask_unpacklo_pd(__W, __U, __A, __B);
   2995 }
   2996 
   2997 __m512d test_mm512_maskz_unpacklo_pd(__mmask8 __U, __m512d __A, __m512d __B) {
   2998   // CHECK-LABEL: @test_mm512_maskz_unpacklo_pd
   2999   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14>
   3000   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
   3001   return _mm512_maskz_unpacklo_pd(__U, __A, __B);
   3002 }
   3003 
   3004 __m512 test_mm512_mask_unpacklo_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
   3005   // CHECK-LABEL: @test_mm512_mask_unpacklo_ps
   3006   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <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>
   3007   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
   3008   return _mm512_mask_unpacklo_ps(__W, __U, __A, __B);
   3009 }
   3010 
   3011 __m512 test_mm512_maskz_unpacklo_ps(__mmask16 __U, __m512 __A, __m512 __B) {
   3012   // CHECK-LABEL: @test_mm512_maskz_unpacklo_ps
   3013   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <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>
   3014   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
   3015   return _mm512_maskz_unpacklo_ps(__U, __A, __B);
   3016 }
   3017 int test_mm_cvt_roundsd_si32(__m128d __A) {
   3018   // CHECK-LABEL: @test_mm_cvt_roundsd_si32
   3019   // CHECK: @llvm.x86.avx512.vcvtsd2si32
   3020   return _mm_cvt_roundsd_si32(__A, _MM_FROUND_CUR_DIRECTION);
   3021 }
   3022 
   3023 int test_mm_cvt_roundsd_i32(__m128d __A) {
   3024   // CHECK-LABEL: @test_mm_cvt_roundsd_i32
   3025   // CHECK: @llvm.x86.avx512.vcvtsd2si32
   3026   return _mm_cvt_roundsd_i32(__A, _MM_FROUND_CUR_DIRECTION);
   3027 }
   3028 
   3029 unsigned test_mm_cvt_roundsd_u32(__m128d __A) {
   3030   // CHECK-LABEL: @test_mm_cvt_roundsd_u32
   3031   // CHECK: @llvm.x86.avx512.vcvtsd2usi32
   3032   return _mm_cvt_roundsd_u32(__A, _MM_FROUND_CUR_DIRECTION);
   3033 }
   3034 
   3035 unsigned test_mm_cvtsd_u32(__m128d __A) {
   3036   // CHECK-LABEL: @test_mm_cvtsd_u32
   3037   // CHECK: @llvm.x86.avx512.vcvtsd2usi32
   3038   return _mm_cvtsd_u32(__A);
   3039 }
   3040 
   3041 unsigned long long test_mm_cvt_roundsd_u64(__m128d __A) {
   3042   // CHECK-LABEL: @test_mm_cvt_roundsd_u64
   3043   // CHECK: @llvm.x86.avx512.vcvtsd2usi64
   3044   return _mm_cvt_roundsd_u64(__A, _MM_FROUND_CUR_DIRECTION);
   3045 }
   3046 
   3047 unsigned long long test_mm_cvtsd_u64(__m128d __A) {
   3048   // CHECK-LABEL: @test_mm_cvtsd_u64
   3049   // CHECK: @llvm.x86.avx512.vcvtsd2usi64
   3050   return _mm_cvtsd_u64(__A);
   3051 }
   3052 
   3053 int test_mm_cvt_roundss_si32(__m128 __A) {
   3054   // CHECK-LABEL: @test_mm_cvt_roundss_si32
   3055   // CHECK: @llvm.x86.avx512.vcvtss2si32
   3056   return _mm_cvt_roundss_si32(__A, _MM_FROUND_CUR_DIRECTION);
   3057 }
   3058 
   3059 int test_mm_cvt_roundss_i32(__m128 __A) {
   3060   // CHECK-LABEL: @test_mm_cvt_roundss_i32
   3061   // CHECK: @llvm.x86.avx512.vcvtss2si32
   3062   return _mm_cvt_roundss_i32(__A, _MM_FROUND_CUR_DIRECTION);
   3063 }
   3064 
   3065 int test_mm_cvt_roundss_si64(__m128 __A) {
   3066   // CHECK-LABEL: @test_mm_cvt_roundss_si64
   3067   // CHECK: @llvm.x86.avx512.vcvtss2si64
   3068   return _mm_cvt_roundss_si64(__A, _MM_FROUND_CUR_DIRECTION);
   3069 }
   3070 
   3071 long long test_mm_cvt_roundss_i64(__m128 __A) {
   3072   // CHECK-LABEL: @test_mm_cvt_roundss_i64
   3073   // CHECK: @llvm.x86.avx512.vcvtss2si64
   3074   return _mm_cvt_roundss_i64(__A, _MM_FROUND_CUR_DIRECTION);
   3075 }
   3076 
   3077 unsigned test_mm_cvt_roundss_u32(__m128 __A) {
   3078   // CHECK-LABEL: @test_mm_cvt_roundss_u32
   3079   // CHECK: @llvm.x86.avx512.vcvtss2usi32
   3080   return _mm_cvt_roundss_u32(__A, _MM_FROUND_CUR_DIRECTION);
   3081 }
   3082 
   3083 unsigned test_mm_cvtss_u32(__m128 __A) {
   3084   // CHECK-LABEL: @test_mm_cvtss_u32
   3085   // CHECK: @llvm.x86.avx512.vcvtss2usi32
   3086   return _mm_cvtss_u32(__A);
   3087 }
   3088 
   3089 unsigned long long test_mm_cvt_roundss_u64(__m128 __A) {
   3090   // CHECK-LABEL: @test_mm_cvt_roundss_u64
   3091   // CHECK: @llvm.x86.avx512.vcvtss2usi64
   3092   return _mm_cvt_roundss_u64(__A, _MM_FROUND_CUR_DIRECTION);
   3093 }
   3094 
   3095 unsigned long long test_mm_cvtss_u64(__m128 __A) {
   3096   // CHECK-LABEL: @test_mm_cvtss_u64
   3097   // CHECK: @llvm.x86.avx512.vcvtss2usi64
   3098   return _mm_cvtss_u64(__A);
   3099 }
   3100 
   3101 int test_mm_cvtt_roundsd_i32(__m128d __A) {
   3102   // CHECK-LABEL: @test_mm_cvtt_roundsd_i32
   3103   // CHECK: @llvm.x86.avx512.cvttsd2si
   3104   return _mm_cvtt_roundsd_i32(__A, _MM_FROUND_CUR_DIRECTION);
   3105 }
   3106 
   3107 int test_mm_cvtt_roundsd_si32(__m128d __A) {
   3108   // CHECK-LABEL: @test_mm_cvtt_roundsd_si32
   3109   // CHECK: @llvm.x86.avx512.cvttsd2si
   3110   return _mm_cvtt_roundsd_si32(__A, _MM_FROUND_CUR_DIRECTION);
   3111 }
   3112 
   3113 int test_mm_cvttsd_i32(__m128d __A) {
   3114   // CHECK-LABEL: @test_mm_cvttsd_i32
   3115   // CHECK: @llvm.x86.avx512.cvttsd2si
   3116   return _mm_cvttsd_i32(__A);
   3117 }
   3118 
   3119 unsigned long long test_mm_cvtt_roundsd_si64(__m128d __A) {
   3120   // CHECK-LABEL: @test_mm_cvtt_roundsd_si64
   3121   // CHECK: @llvm.x86.avx512.cvttsd2si64
   3122   return _mm_cvtt_roundsd_si64(__A, _MM_FROUND_CUR_DIRECTION);
   3123 }
   3124 
   3125 long long test_mm_cvtt_roundsd_i64(__m128d __A) {
   3126   // CHECK-LABEL: @test_mm_cvtt_roundsd_i64
   3127   // CHECK: @llvm.x86.avx512.cvttsd2si64
   3128   return _mm_cvtt_roundsd_i64(__A, _MM_FROUND_CUR_DIRECTION);
   3129 }
   3130 
   3131 long long test_mm_cvttsd_i64(__m128d __A) {
   3132   // CHECK-LABEL: @test_mm_cvttsd_i64
   3133   // CHECK: @llvm.x86.avx512.cvttsd2si64
   3134   return _mm_cvttsd_i64(__A);
   3135 }
   3136 
   3137 unsigned test_mm_cvtt_roundsd_u32(__m128d __A) {
   3138   // CHECK-LABEL: @test_mm_cvtt_roundsd_u32
   3139   // CHECK: @llvm.x86.avx512.cvttsd2usi
   3140   return _mm_cvtt_roundsd_u32(__A, _MM_FROUND_CUR_DIRECTION);
   3141 }
   3142 
   3143 unsigned test_mm_cvttsd_u32(__m128d __A) {
   3144   // CHECK-LABEL: @test_mm_cvttsd_u32
   3145   // CHECK: @llvm.x86.avx512.cvttsd2usi
   3146   return _mm_cvttsd_u32(__A);
   3147 }
   3148 
   3149 unsigned long long test_mm_cvtt_roundsd_u64(__m128d __A) {
   3150   // CHECK-LABEL: @test_mm_cvtt_roundsd_u64
   3151   // CHECK: @llvm.x86.avx512.cvttsd2usi64
   3152   return _mm_cvtt_roundsd_u64(__A, _MM_FROUND_CUR_DIRECTION);
   3153 }
   3154 
   3155 unsigned long long test_mm_cvttsd_u64(__m128d __A) {
   3156   // CHECK-LABEL: @test_mm_cvttsd_u64
   3157   // CHECK: @llvm.x86.avx512.cvttsd2usi64
   3158   return _mm_cvttsd_u64(__A);
   3159 }
   3160 
   3161 int test_mm_cvtt_roundss_i32(__m128 __A) {
   3162   // CHECK-LABEL: @test_mm_cvtt_roundss_i32
   3163   // CHECK: @llvm.x86.avx512.cvttss2si
   3164   return _mm_cvtt_roundss_i32(__A, _MM_FROUND_CUR_DIRECTION);
   3165 }
   3166 
   3167 int test_mm_cvtt_roundss_si32(__m128 __A) {
   3168   // CHECK-LABEL: @test_mm_cvtt_roundss_si32
   3169   // CHECK: @llvm.x86.avx512.cvttss2si
   3170   return _mm_cvtt_roundss_si32(__A, _MM_FROUND_CUR_DIRECTION);
   3171 }
   3172 
   3173 int test_mm_cvttss_i32(__m128 __A) {
   3174   // CHECK-LABEL: @test_mm_cvttss_i32
   3175   // CHECK: @llvm.x86.avx512.cvttss2si
   3176   return _mm_cvttss_i32(__A);
   3177 }
   3178 
   3179 float test_mm_cvtt_roundss_i64(__m128 __A) {
   3180   // CHECK-LABEL: @test_mm_cvtt_roundss_i64
   3181   // CHECK: @llvm.x86.avx512.cvttss2si64
   3182   return _mm_cvtt_roundss_i64(__A, _MM_FROUND_CUR_DIRECTION);
   3183 }
   3184 
   3185 long long test_mm_cvtt_roundss_si64(__m128 __A) {
   3186   // CHECK-LABEL: @test_mm_cvtt_roundss_si64
   3187   // CHECK: @llvm.x86.avx512.cvttss2si64
   3188   return _mm_cvtt_roundss_si64(__A, _MM_FROUND_CUR_DIRECTION);
   3189 }
   3190 
   3191 long long test_mm_cvttss_i64(__m128 __A) {
   3192   // CHECK-LABEL: @test_mm_cvttss_i64
   3193   // CHECK: @llvm.x86.avx512.cvttss2si64
   3194   return _mm_cvttss_i64(__A);
   3195 }
   3196 
   3197 unsigned test_mm_cvtt_roundss_u32(__m128 __A) {
   3198   // CHECK-LABEL: @test_mm_cvtt_roundss_u32
   3199   // CHECK: @llvm.x86.avx512.cvttss2usi
   3200   return _mm_cvtt_roundss_u32(__A, _MM_FROUND_CUR_DIRECTION);
   3201 }
   3202 
   3203 unsigned test_mm_cvttss_u32(__m128 __A) {
   3204   // CHECK-LABEL: @test_mm_cvttss_u32
   3205   // CHECK: @llvm.x86.avx512.cvttss2usi
   3206   return _mm_cvttss_u32(__A);
   3207 }
   3208 
   3209 unsigned long long test_mm_cvtt_roundss_u64(__m128 __A) {
   3210   // CHECK-LABEL: @test_mm_cvtt_roundss_u64
   3211   // CHECK: @llvm.x86.avx512.cvttss2usi64
   3212   return _mm_cvtt_roundss_u64(__A, _MM_FROUND_CUR_DIRECTION);
   3213 }
   3214 
   3215 unsigned long long test_mm_cvttss_u64(__m128 __A) {
   3216   // CHECK-LABEL: @test_mm_cvttss_u64
   3217   // CHECK: @llvm.x86.avx512.cvttss2usi64
   3218   return _mm_cvttss_u64(__A);
   3219 }
   3220 
   3221 __m512i test_mm512_cvtt_roundps_epu32(__m512 __A)
   3222 {
   3223     // CHECK-LABEL: @test_mm512_cvtt_roundps_epu32
   3224     // CHECK: @llvm.x86.avx512.mask.cvttps2udq.512
   3225     return _mm512_cvtt_roundps_epu32(__A, _MM_FROUND_CUR_DIRECTION);
   3226 }
   3227 
   3228 __m512i test_mm512_mask_cvtt_roundps_epu32(__m512i __W, __mmask16 __U, __m512 __A)
   3229 {
   3230     // CHECK-LABEL: @test_mm512_mask_cvtt_roundps_epu32
   3231     // CHECK: @llvm.x86.avx512.mask.cvttps2udq.512
   3232     return _mm512_mask_cvtt_roundps_epu32(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
   3233 }
   3234 
   3235 __m512i test_mm512_maskz_cvtt_roundps_epu32( __mmask16 __U, __m512 __A)
   3236 {
   3237     // CHECK-LABEL: @test_mm512_maskz_cvtt_roundps_epu32
   3238     // CHECK: @llvm.x86.avx512.mask.cvttps2udq.512
   3239 
   3240     return _mm512_maskz_cvtt_roundps_epu32(__U, __A, _MM_FROUND_CUR_DIRECTION);
   3241 }
   3242 
   3243 __m256i test_mm512_cvt_roundps_ph(__m512  __A)
   3244 {
   3245     // CHECK-LABEL: @test_mm512_cvt_roundps_ph
   3246     // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.512
   3247     return _mm512_cvt_roundps_ph(__A, _MM_FROUND_CUR_DIRECTION);
   3248 }
   3249 
   3250 __m256i test_mm512_mask_cvt_roundps_ph(__m256i __W , __mmask16 __U, __m512  __A)
   3251 {
   3252     // CHECK-LABEL: @test_mm512_mask_cvt_roundps_ph
   3253     // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.512
   3254     return _mm512_mask_cvt_roundps_ph(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
   3255 }
   3256 
   3257 __m256i test_mm512_maskz_cvt_roundps_ph(__mmask16 __U, __m512  __A)
   3258 {
   3259     // CHECK-LABEL: @test_mm512_maskz_cvt_roundps_ph
   3260     // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.512
   3261     return _mm512_maskz_cvt_roundps_ph(__U, __A, _MM_FROUND_CUR_DIRECTION);
   3262 }
   3263 
   3264 __m512 test_mm512_cvt_roundph_ps(__m256i __A)
   3265 {
   3266     // CHECK-LABEL: @test_mm512_cvt_roundph_ps
   3267     // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.512
   3268     return _mm512_cvt_roundph_ps(__A, _MM_FROUND_CUR_DIRECTION);
   3269 }
   3270 
   3271 __m512 test_mm512_mask_cvt_roundph_ps(__m512 __W, __mmask16 __U, __m256i __A)
   3272 {
   3273     // CHECK-LABEL: @test_mm512_mask_cvt_roundph_ps
   3274     // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.512
   3275     return _mm512_mask_cvt_roundph_ps(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
   3276 }
   3277 
   3278 __m512 test_mm512_maskz_cvt_roundph_ps(__mmask16 __U, __m256i __A)
   3279 {
   3280     // CHECK-LABEL: @test_mm512_maskz_cvt_roundph_ps
   3281     // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.512
   3282     return _mm512_maskz_cvt_roundph_ps(__U, __A, _MM_FROUND_CUR_DIRECTION);
   3283 }
   3284 
   3285 __m512 test_mm512_mask_cvt_roundepi32_ps(__m512 __W, __mmask16 __U, __m512i __A)
   3286 {
   3287   // CHECK-LABEL: @test_mm512_mask_cvt_roundepi32_ps
   3288   // CHECK: @llvm.x86.avx512.mask.cvtdq2ps.512
   3289   return _mm512_mask_cvt_roundepi32_ps(__W,__U,__A,4);
   3290 }
   3291 
   3292 __m512 test_mm512_maskz_cvt_roundepi32_ps(__mmask16 __U, __m512i __A)
   3293 {
   3294   // CHECK-LABEL: @test_mm512_maskz_cvt_roundepi32_ps
   3295   // CHECK: @llvm.x86.avx512.mask.cvtdq2ps.512
   3296   return _mm512_maskz_cvt_roundepi32_ps(__U,__A,4);
   3297 }
   3298 
   3299 __m512 test_mm512_mask_cvt_roundepu32_ps(__m512 __W, __mmask16 __U,__m512i __A)
   3300 {
   3301   // CHECK-LABEL: @test_mm512_mask_cvt_roundepu32_ps
   3302   // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.512
   3303   return _mm512_mask_cvt_roundepu32_ps(__W,__U,__A,4);
   3304 }
   3305 
   3306 __m512 test_mm512_maskz_cvt_roundepu32_ps(__mmask16 __U,__m512i __A)
   3307 {
   3308   // CHECK-LABEL: @test_mm512_maskz_cvt_roundepu32_ps
   3309   // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.512
   3310   return _mm512_maskz_cvt_roundepu32_ps(__U,__A,4);
   3311 }
   3312 
   3313 __m256 test_mm512_mask_cvt_roundpd_ps(__m256 W, __mmask8 U,__m512d A)
   3314 {
   3315   // CHECK-LABEL: @test_mm512_mask_cvt_roundpd_ps
   3316   // CHECK: @llvm.x86.avx512.mask.cvtpd2ps.512
   3317   return _mm512_mask_cvt_roundpd_ps(W,U,A,4);
   3318 }
   3319 
   3320 __m256 test_mm512_maskz_cvt_roundpd_ps(__mmask8 U, __m512d A)
   3321 {
   3322   // CHECK-LABEL: @test_mm512_maskz_cvt_roundpd_ps
   3323   // CHECK: @llvm.x86.avx512.mask.cvtpd2ps.512
   3324   return _mm512_maskz_cvt_roundpd_ps(U,A,4);
   3325 }
   3326 
   3327 __m256i test_mm512_cvtt_roundpd_epi32(__m512d A)
   3328 {
   3329   // CHECK-LABEL: @test_mm512_cvtt_roundpd_epi32
   3330   // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.512
   3331   return _mm512_cvtt_roundpd_epi32(A,4);
   3332 }
   3333 
   3334 __m256i test_mm512_mask_cvtt_roundpd_epi32(__m256i W, __mmask8 U, __m512d A)
   3335 {
   3336   // CHECK-LABEL: @test_mm512_mask_cvtt_roundpd_epi32
   3337   // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.512
   3338   return _mm512_mask_cvtt_roundpd_epi32(W,U,A,4);
   3339 }
   3340 
   3341 __m256i test_mm512_maskz_cvtt_roundpd_epi32(__mmask8 U, __m512d A)
   3342 {
   3343   // CHECK-LABEL: @test_mm512_maskz_cvtt_roundpd_epi32
   3344   // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.512
   3345   return _mm512_maskz_cvtt_roundpd_epi32(U,A,4);
   3346 }
   3347 
   3348 __m512i test_mm512_mask_cvtt_roundps_epi32(__m512i W,__mmask16 U, __m512 A)
   3349 {
   3350   // CHECK-LABEL: @test_mm512_mask_cvtt_roundps_epi32
   3351   // CHECK: @llvm.x86.avx512.mask.cvttps2dq.512
   3352   return _mm512_mask_cvtt_roundps_epi32(W,U,A,4);
   3353 }
   3354 
   3355 __m512i test_mm512_maskz_cvtt_roundps_epi32(__mmask16 U, __m512 A)
   3356 {
   3357   // CHECK-LABEL: @test_mm512_maskz_cvtt_roundps_epi32
   3358   // CHECK: @llvm.x86.avx512.mask.cvttps2dq.512
   3359   return _mm512_maskz_cvtt_roundps_epi32(U,A,4);
   3360 }
   3361 
   3362 __m512i test_mm512_mask_cvt_roundps_epi32(__m512i __W,__mmask16 __U,__m512 __A)
   3363 {
   3364   // CHECK-LABEL: @test_mm512_mask_cvt_roundps_epi32
   3365   // CHECK: @llvm.x86.avx512.mask.cvtps2dq.512
   3366   return _mm512_mask_cvt_roundps_epi32(__W,__U,__A,4);
   3367 }
   3368 
   3369 __m512i test_mm512_maskz_cvt_roundps_epi32(__mmask16 __U, __m512 __A)
   3370 {
   3371   // CHECK-LABEL: @test_mm512_maskz_cvt_roundps_epi32
   3372   // CHECK: @llvm.x86.avx512.mask.cvtps2dq.512
   3373   return _mm512_maskz_cvt_roundps_epi32(__U,__A,4);
   3374 }
   3375 
   3376 __m256i test_mm512_mask_cvt_roundpd_epi32(__m256i W,__mmask8 U,__m512d A)
   3377 {
   3378   // CHECK-LABEL: @test_mm512_mask_cvt_roundpd_epi32
   3379   // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.512
   3380   return _mm512_mask_cvt_roundpd_epi32(W,U,A,4);
   3381 }
   3382 
   3383 __m256i test_mm512_maskz_cvt_roundpd_epi32(__mmask8 U, __m512d A)
   3384 {
   3385   // CHECK-LABEL: @test_mm512_maskz_cvt_roundpd_epi32
   3386   // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.512
   3387   return _mm512_maskz_cvt_roundpd_epi32(U,A,4);
   3388 }
   3389 
   3390 __m512i test_mm512_mask_cvt_roundps_epu32(__m512i __W,__mmask16 __U,__m512 __A)
   3391 {
   3392   // CHECK-LABEL: @test_mm512_mask_cvt_roundps_epu32
   3393   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.512
   3394   return _mm512_mask_cvt_roundps_epu32(__W,__U,__A,4);
   3395 }
   3396 
   3397 __m512i test_mm512_maskz_cvt_roundps_epu32(__mmask16 __U,__m512 __A)
   3398 {
   3399   // CHECK-LABEL: @test_mm512_maskz_cvt_roundps_epu32
   3400   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.512
   3401   return _mm512_maskz_cvt_roundps_epu32(__U,__A, 4);
   3402 }
   3403 
   3404 __m256i test_mm512_mask_cvt_roundpd_epu32(__m256i W, __mmask8 U, __m512d A)
   3405 {
   3406   // CHECK-LABEL: @test_mm512_mask_cvt_roundpd_epu32
   3407   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.512
   3408   return _mm512_mask_cvt_roundpd_epu32(W,U,A,4);
   3409 }
   3410 
   3411 __m256i test_mm512_maskz_cvt_roundpd_epu32(__mmask8 U, __m512d A)
   3412 {
   3413   // CHECK-LABEL: @test_mm512_maskz_cvt_roundpd_epu32
   3414   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.512
   3415   return _mm512_maskz_cvt_roundpd_epu32(U, A, 4);
   3416 }
   3417 
   3418 __m512 test_mm512_mask2_permutex2var_ps(__m512 __A, __m512i __I, __mmask16 __U, __m512 __B) {
   3419   // CHECK-LABEL: @test_mm512_mask2_permutex2var_ps
   3420   // CHECK: @llvm.x86.avx512.mask.vpermi2var.ps.512
   3421   return _mm512_mask2_permutex2var_ps(__A, __I, __U, __B);
   3422 }
   3423 
   3424 __m512i test_mm512_mask2_permutex2var_epi64(__m512i __A, __m512i __I, __mmask8 __U, __m512i __B) {
   3425   // CHECK-LABEL: @test_mm512_mask2_permutex2var_epi64
   3426   // CHECK: @llvm.x86.avx512.mask.vpermi2var.q.512
   3427   return _mm512_mask2_permutex2var_epi64(__A, __I, __U, __B);
   3428 }
   3429 
   3430 __m512d test_mm512_permute_pd(__m512d __X) {
   3431   // CHECK-LABEL: @test_mm512_permute_pd
   3432   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> undef, <8 x i32> <i32 0, i32 1, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6>
   3433   return _mm512_permute_pd(__X, 2);
   3434 }
   3435 
   3436 __m512d test_mm512_mask_permute_pd(__m512d __W, __mmask8 __U, __m512d __X) {
   3437   // CHECK-LABEL: @test_mm512_mask_permute_pd
   3438   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> undef, <8 x i32> <i32 0, i32 1, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6>
   3439   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
   3440   return _mm512_mask_permute_pd(__W, __U, __X, 2);
   3441 }
   3442 
   3443 __m512d test_mm512_maskz_permute_pd(__mmask8 __U, __m512d __X) {
   3444   // CHECK-LABEL: @test_mm512_maskz_permute_pd
   3445   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> undef, <8 x i32> <i32 0, i32 1, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6>
   3446   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
   3447   return _mm512_maskz_permute_pd(__U, __X, 2);
   3448 }
   3449 
   3450 __m512 test_mm512_permute_ps(__m512 __X) {
   3451   // CHECK-LABEL: @test_mm512_permute_ps
   3452   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> undef, <16 x i32> <i32 2, i32 0, i32 0, i32 0, i32 6, i32 4, i32 4, i32 4, i32 10, i32 8, i32 8, i32 8, i32 14, i32 12, i32 12, i32 12>
   3453   return _mm512_permute_ps(__X, 2);
   3454 }
   3455 
   3456 __m512 test_mm512_mask_permute_ps(__m512 __W, __mmask16 __U, __m512 __X) {
   3457   // CHECK-LABEL: @test_mm512_mask_permute_ps
   3458   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> undef, <16 x i32> <i32 2, i32 0, i32 0, i32 0, i32 6, i32 4, i32 4, i32 4, i32 10, i32 8, i32 8, i32 8, i32 14, i32 12, i32 12, i32 12>
   3459   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
   3460   return _mm512_mask_permute_ps(__W, __U, __X, 2);
   3461 }
   3462 
   3463 __m512 test_mm512_maskz_permute_ps(__mmask16 __U, __m512 __X) {
   3464   // CHECK-LABEL: @test_mm512_maskz_permute_ps
   3465   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> undef, <16 x i32> <i32 2, i32 0, i32 0, i32 0, i32 6, i32 4, i32 4, i32 4, i32 10, i32 8, i32 8, i32 8, i32 14, i32 12, i32 12, i32 12>
   3466   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
   3467   return _mm512_maskz_permute_ps(__U, __X, 2);
   3468 }
   3469 
   3470 __m512d test_mm512_permutevar_pd(__m512d __A, __m512i __C) {
   3471   // CHECK-LABEL: @test_mm512_permutevar_pd
   3472   // CHECK: @llvm.x86.avx512.mask.vpermilvar.pd.512
   3473   return _mm512_permutevar_pd(__A, __C);
   3474 }
   3475 
   3476 __m512d test_mm512_mask_permutevar_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512i __C) {
   3477   // CHECK-LABEL: @test_mm512_mask_permutevar_pd
   3478   // CHECK: @llvm.x86.avx512.mask.vpermilvar.pd.512
   3479   return _mm512_mask_permutevar_pd(__W, __U, __A, __C);
   3480 }
   3481 
   3482 __m512d test_mm512_maskz_permutevar_pd(__mmask8 __U, __m512d __A, __m512i __C) {
   3483   // CHECK-LABEL: @test_mm512_maskz_permutevar_pd
   3484   // CHECK: @llvm.x86.avx512.mask.vpermilvar.pd.512
   3485   return _mm512_maskz_permutevar_pd(__U, __A, __C);
   3486 }
   3487 
   3488 __m512 test_mm512_permutevar_ps(__m512 __A, __m512i __C) {
   3489   // CHECK-LABEL: @test_mm512_permutevar_ps
   3490   // CHECK: @llvm.x86.avx512.mask.vpermilvar.ps.512
   3491   return _mm512_permutevar_ps(__A, __C);
   3492 }
   3493 
   3494 __m512 test_mm512_mask_permutevar_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512i __C) {
   3495   // CHECK-LABEL: @test_mm512_mask_permutevar_ps
   3496   // CHECK: @llvm.x86.avx512.mask.vpermilvar.ps.512
   3497   return _mm512_mask_permutevar_ps(__W, __U, __A, __C);
   3498 }
   3499 
   3500 __m512 test_mm512_maskz_permutevar_ps(__mmask16 __U, __m512 __A, __m512i __C) {
   3501   // CHECK-LABEL: @test_mm512_maskz_permutevar_ps
   3502   // CHECK: @llvm.x86.avx512.mask.vpermilvar.ps.512
   3503   return _mm512_maskz_permutevar_ps(__U, __A, __C);
   3504 }
   3505 
   3506 __m512i test_mm512_maskz_permutex2var_epi32(__mmask16 __U, __m512i __A, __m512i __I, __m512i __B) {
   3507   // CHECK-LABEL: @test_mm512_maskz_permutex2var_epi32
   3508   // CHECK: @llvm.x86.avx512.maskz.vpermt2var.d.512
   3509   return _mm512_maskz_permutex2var_epi32(__U, __A, __I, __B);
   3510 }
   3511 
   3512 __m512i test_mm512_mask_permutex2var_epi32 (__m512i __A, __mmask16 __U, __m512i __I, __m512i __B)
   3513 {
   3514   // CHECK-LABEL: @test_mm512_mask_permutex2var_epi32
   3515   // CHECK: @llvm.x86.avx512.mask.vpermt2var.d.512
   3516   return _mm512_mask_permutex2var_epi32 (__A,__U,__I,__B);
   3517 }
   3518 
   3519 __m512d test_mm512_permutex2var_pd (__m512d __A, __m512i __I, __m512d __B)
   3520 {
   3521   // CHECK-LABEL: @test_mm512_permutex2var_pd
   3522   // CHECK: @llvm.x86.avx512.mask.vpermt2var.pd.512
   3523   return _mm512_permutex2var_pd (__A, __I,__B);
   3524 }
   3525 
   3526 __m512d test_mm512_mask_permutex2var_pd (__m512d __A, __mmask8 __U, __m512i __I, __m512d __B)
   3527 {
   3528   // CHECK-LABEL: @test_mm512_mask_permutex2var_pd
   3529   // CHECK: @llvm.x86.avx512.mask.vpermt2var.pd.512
   3530   return _mm512_mask_permutex2var_pd (__A,__U,__I,__B);
   3531 }
   3532 
   3533 __m512d test_mm512_maskz_permutex2var_pd(__mmask8 __U, __m512d __A, __m512i __I, __m512d __B) {
   3534   // CHECK-LABEL: @test_mm512_maskz_permutex2var_pd
   3535   // CHECK: @llvm.x86.avx512.maskz.vpermt2var.pd.512
   3536   return _mm512_maskz_permutex2var_pd(__U, __A, __I, __B);
   3537 }
   3538 
   3539 __m512 test_mm512_permutex2var_ps (__m512 __A, __m512i __I, __m512 __B)
   3540 {
   3541   // CHECK-LABEL: @test_mm512_permutex2var_ps
   3542   // CHECK: @llvm.x86.avx512.mask.vpermt2var.ps.512
   3543   return _mm512_permutex2var_ps (__A, __I, __B);
   3544 }
   3545 
   3546 __m512 test_mm512_mask_permutex2var_ps (__m512 __A, __mmask16 __U, __m512i __I, __m512 __B)
   3547 {
   3548   // CHECK-LABEL: @test_mm512_mask_permutex2var_ps
   3549   // CHECK: @llvm.x86.avx512.mask.vpermt2var.ps.512
   3550   return _mm512_mask_permutex2var_ps (__A,__U,__I,__B);
   3551 }
   3552 
   3553 __m512 test_mm512_maskz_permutex2var_ps(__mmask16 __U, __m512 __A, __m512i __I, __m512 __B) {
   3554   // CHECK-LABEL: @test_mm512_maskz_permutex2var_ps
   3555   // CHECK: @llvm.x86.avx512.maskz.vpermt2var.ps.512
   3556   return _mm512_maskz_permutex2var_ps(__U, __A, __I, __B);
   3557 }
   3558 
   3559 __m512i test_mm512_mask_permutex2var_epi64 (__m512i __A, __mmask8 __U, __m512i __I, __m512i __B){
   3560   // CHECK-LABEL: @test_mm512_mask_permutex2var_epi64
   3561   // CHECK: @llvm.x86.avx512.mask.vpermt2var.q.512
   3562   return _mm512_mask_permutex2var_epi64(__A, __U, __I, __B);
   3563 }
   3564 
   3565 __m512i test_mm512_maskz_permutex2var_epi64(__mmask8 __U, __m512i __A, __m512i __I, __m512i __B) {
   3566   // CHECK-LABEL: @test_mm512_maskz_permutex2var_epi64
   3567   // CHECK: @llvm.x86.avx512.maskz.vpermt2var.q.512
   3568   return _mm512_maskz_permutex2var_epi64(__U, __A, __I, __B);
   3569 }
   3570 __mmask16 test_mm512_testn_epi32_mask(__m512i __A, __m512i __B) {
   3571   // CHECK-LABEL: @test_mm512_testn_epi32_mask
   3572   // CHECK: @llvm.x86.avx512.ptestnm.d.512
   3573   return _mm512_testn_epi32_mask(__A, __B);
   3574 }
   3575 
   3576 __mmask16 test_mm512_mask_testn_epi32_mask(__mmask16 __U, __m512i __A, __m512i __B) {
   3577   // CHECK-LABEL: @test_mm512_mask_testn_epi32_mask
   3578   // CHECK: @llvm.x86.avx512.ptestnm.d.512
   3579   return _mm512_mask_testn_epi32_mask(__U, __A, __B);
   3580 }
   3581 
   3582 __mmask8 test_mm512_testn_epi64_mask(__m512i __A, __m512i __B) {
   3583   // CHECK-LABEL: @test_mm512_testn_epi64_mask
   3584   // CHECK: @llvm.x86.avx512.ptestnm.q.512
   3585   return _mm512_testn_epi64_mask(__A, __B);
   3586 }
   3587 
   3588 __mmask8 test_mm512_mask_testn_epi64_mask(__mmask8 __U, __m512i __A, __m512i __B) {
   3589   // CHECK-LABEL: @test_mm512_mask_testn_epi64_mask
   3590   // CHECK: @llvm.x86.avx512.ptestnm.q.512
   3591   return _mm512_mask_testn_epi64_mask(__U, __A, __B);
   3592 }
   3593 
   3594 __mmask16 test_mm512_mask_test_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B)
   3595 {
   3596   // CHECK-LABEL: @test_mm512_mask_test_epi32_mask
   3597   // CHECK: @llvm.x86.avx512.ptestm.d.512
   3598   return _mm512_mask_test_epi32_mask (__U,__A,__B);
   3599 }
   3600 
   3601 __mmask8 test_mm512_mask_test_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B)
   3602 {
   3603   // CHECK-LABEL: @test_mm512_mask_test_epi64_mask
   3604   // CHECK: @llvm.x86.avx512.ptestm.q.512
   3605   return _mm512_mask_test_epi64_mask (__U,__A,__B);
   3606 }
   3607 
   3608 __m512i test_mm512_maskz_unpackhi_epi32(__mmask16 __U, __m512i __A, __m512i __B) {
   3609   // CHECK-LABEL: @test_mm512_maskz_unpackhi_epi32
   3610   // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <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>
   3611   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
   3612   return _mm512_maskz_unpackhi_epi32(__U, __A, __B);
   3613 }
   3614 
   3615 __m512i test_mm512_unpackhi_epi64(__m512i __A, __m512i __B) {
   3616   // CHECK-LABEL: @test_mm512_unpackhi_epi64
   3617   // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15>
   3618   return _mm512_unpackhi_epi64(__A, __B);
   3619 }
   3620 
   3621 __m512i test_mm512_mask_unpackhi_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) {
   3622   // CHECK-LABEL: @test_mm512_mask_unpackhi_epi64
   3623   // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15>
   3624   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
   3625   return _mm512_mask_unpackhi_epi64(__W, __U, __A, __B);
   3626 }
   3627 
   3628 __m512i test_mm512_maskz_unpackhi_epi64(__mmask8 __U, __m512i __A, __m512i __B) {
   3629   // CHECK-LABEL: @test_mm512_maskz_unpackhi_epi64
   3630   // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15>
   3631   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
   3632   return _mm512_maskz_unpackhi_epi64(__U, __A, __B);
   3633 }
   3634 
   3635 __m512i test_mm512_unpacklo_epi32(__m512i __A, __m512i __B) {
   3636   // CHECK-LABEL: @test_mm512_unpacklo_epi32
   3637   // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <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>
   3638   return _mm512_unpacklo_epi32(__A, __B);
   3639 }
   3640 
   3641 __m512i test_mm512_mask_unpacklo_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
   3642   // CHECK-LABEL: @test_mm512_mask_unpacklo_epi32
   3643   // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <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>
   3644   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
   3645   return _mm512_mask_unpacklo_epi32(__W, __U, __A, __B);
   3646 }
   3647 
   3648 __m512i test_mm512_maskz_unpacklo_epi32(__mmask16 __U, __m512i __A, __m512i __B) {
   3649   // CHECK-LABEL: @test_mm512_maskz_unpacklo_epi32
   3650   // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <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>
   3651   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
   3652   return _mm512_maskz_unpacklo_epi32(__U, __A, __B);
   3653 }
   3654 
   3655 __m512i test_mm512_unpacklo_epi64(__m512i __A, __m512i __B) {
   3656   // CHECK-LABEL: @test_mm512_unpacklo_epi64
   3657   // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14>
   3658   return _mm512_unpacklo_epi64(__A, __B);
   3659 }
   3660 
   3661 __m512i test_mm512_mask_unpacklo_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) {
   3662   // CHECK-LABEL: @test_mm512_mask_unpacklo_epi64
   3663   // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14>
   3664   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
   3665   return _mm512_mask_unpacklo_epi64(__W, __U, __A, __B);
   3666 }
   3667 
   3668 __m512i test_mm512_maskz_unpacklo_epi64(__mmask8 __U, __m512i __A, __m512i __B) {
   3669   // CHECK-LABEL: @test_mm512_maskz_unpacklo_epi64
   3670   // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14>
   3671   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
   3672   return _mm512_maskz_unpacklo_epi64(__U, __A, __B);
   3673 }
   3674 
   3675 __m128d test_mm_roundscale_round_sd(__m128d __A, __m128d __B) {
   3676   // CHECK-LABEL: @test_mm_roundscale_round_sd
   3677   // CHECK: @llvm.x86.avx512.mask.rndscale.sd
   3678   return _mm_roundscale_round_sd(__A, __B, 3, _MM_FROUND_CUR_DIRECTION);
   3679 }
   3680 
   3681 __m128d test_mm_roundscale_sd(__m128d __A, __m128d __B) {
   3682   // CHECK-LABEL: @test_mm_roundscale_sd
   3683   // CHECK: @llvm.x86.avx512.mask.rndscale.sd
   3684   return _mm_roundscale_sd(__A, __B, 3);
   3685 }
   3686 
   3687 __m128d test_mm_mask_roundscale_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
   3688   // CHECK: @llvm.x86.avx512.mask.rndscale.sd
   3689     return _mm_mask_roundscale_sd(__W,__U,__A,__B,3);
   3690 }
   3691 
   3692 __m128d test_mm_mask_roundscale_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
   3693   // CHECK: @llvm.x86.avx512.mask.rndscale.sd
   3694     return _mm_mask_roundscale_round_sd(__W,__U,__A,__B,3,_MM_FROUND_CUR_DIRECTION);
   3695 }
   3696 
   3697 __m128d test_mm_maskz_roundscale_sd(__mmask8 __U, __m128d __A, __m128d __B){
   3698   // CHECK: @llvm.x86.avx512.mask.rndscale.sd
   3699     return _mm_maskz_roundscale_sd(__U,__A,__B,3);
   3700 }
   3701 
   3702 __m128d test_mm_maskz_roundscale_round_sd(__mmask8 __U, __m128d __A, __m128d __B){
   3703   // CHECK: @llvm.x86.avx512.mask.rndscale.sd
   3704     return _mm_maskz_roundscale_round_sd(__U,__A,__B,3,_MM_FROUND_CUR_DIRECTION );
   3705 }
   3706 
   3707 __m128 test_mm_roundscale_round_ss(__m128 __A, __m128 __B) {
   3708   // CHECK-LABEL: @test_mm_roundscale_round_ss
   3709   // CHECK: @llvm.x86.avx512.mask.rndscale.ss
   3710   return _mm_roundscale_round_ss(__A, __B, 3, _MM_FROUND_CUR_DIRECTION);
   3711 }
   3712 
   3713 __m128 test_mm_roundscale_ss(__m128 __A, __m128 __B) {
   3714   // CHECK-LABEL: @test_mm_roundscale_ss
   3715   // CHECK: @llvm.x86.avx512.mask.rndscale.ss
   3716   return _mm_roundscale_ss(__A, __B, 3);
   3717 }
   3718 
   3719 __m128 test_mm_mask_roundscale_ss(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
   3720   // CHECK-LABEL: @test_mm_mask_roundscale_ss
   3721   // CHECK: @llvm.x86.avx512.mask.rndscale.ss
   3722     return _mm_mask_roundscale_ss(__W,__U,__A,__B,3);
   3723 }
   3724 
   3725 __m128 test_mm_maskz_roundscale_round_ss( __mmask8 __U, __m128d __A, __m128d __B){
   3726   // CHECK-LABEL: @test_mm_maskz_roundscale_round_ss
   3727   // CHECK: @llvm.x86.avx512.mask.rndscale.ss
   3728     return _mm_maskz_roundscale_round_ss(__U,__A,__B,3,_MM_FROUND_CUR_DIRECTION);
   3729 }
   3730 
   3731 __m128 test_mm_maskz_roundscale_ss(__mmask8 __U, __m128d __A, __m128d __B){
   3732   // CHECK-LABEL: @test_mm_maskz_roundscale_ss
   3733   // CHECK: @llvm.x86.avx512.mask.rndscale.ss
   3734     return _mm_maskz_roundscale_ss(__U,__A,__B,3);
   3735 }
   3736 
   3737 __m512d test_mm512_scalef_round_pd(__m512d __A, __m512d __B) {
   3738   // CHECK-LABEL: @test_mm512_scalef_round_pd
   3739   // CHECK: @llvm.x86.avx512.mask.scalef.pd.512
   3740   return _mm512_scalef_round_pd(__A, __B, _MM_FROUND_CUR_DIRECTION);
   3741 }
   3742 
   3743 __m512d test_mm512_mask_scalef_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
   3744   // CHECK-LABEL: @test_mm512_mask_scalef_round_pd
   3745   // CHECK: @llvm.x86.avx512.mask.scalef.pd.512
   3746   return _mm512_mask_scalef_round_pd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
   3747 }
   3748 
   3749 __m512d test_mm512_maskz_scalef_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
   3750   // CHECK-LABEL: @test_mm512_maskz_scalef_round_pd
   3751   // CHECK: @llvm.x86.avx512.mask.scalef.pd.512
   3752   return _mm512_maskz_scalef_round_pd(__U, __A, __B, _MM_FROUND_CUR_DIRECTION);
   3753 }
   3754 
   3755 __m512d test_mm512_scalef_pd(__m512d __A, __m512d __B) {
   3756   // CHECK-LABEL: @test_mm512_scalef_pd
   3757   // CHECK: @llvm.x86.avx512.mask.scalef.pd.512
   3758   return _mm512_scalef_pd(__A, __B);
   3759 }
   3760 
   3761 __m512d test_mm512_mask_scalef_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
   3762   // CHECK-LABEL: @test_mm512_mask_scalef_pd
   3763   // CHECK: @llvm.x86.avx512.mask.scalef.pd.512
   3764   return _mm512_mask_scalef_pd(__W, __U, __A, __B);
   3765 }
   3766 
   3767 __m512d test_mm512_maskz_scalef_pd(__mmask8 __U, __m512d __A, __m512d __B) {
   3768   // CHECK-LABEL: @test_mm512_maskz_scalef_pd
   3769   // CHECK: @llvm.x86.avx512.mask.scalef.pd.512
   3770   return _mm512_maskz_scalef_pd(__U, __A, __B);
   3771 }
   3772 
   3773 __m512 test_mm512_scalef_round_ps(__m512 __A, __m512 __B) {
   3774   // CHECK-LABEL: @test_mm512_scalef_round_ps
   3775   // CHECK: @llvm.x86.avx512.mask.scalef.ps.512
   3776   return _mm512_scalef_round_ps(__A, __B, _MM_FROUND_CUR_DIRECTION);
   3777 }
   3778 
   3779 __m512 test_mm512_mask_scalef_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
   3780   // CHECK-LABEL: @test_mm512_mask_scalef_round_ps
   3781   // CHECK: @llvm.x86.avx512.mask.scalef.ps.512
   3782   return _mm512_mask_scalef_round_ps(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
   3783 }
   3784 
   3785 __m512 test_mm512_maskz_scalef_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
   3786   // CHECK-LABEL: @test_mm512_maskz_scalef_round_ps
   3787   // CHECK: @llvm.x86.avx512.mask.scalef.ps.512
   3788   return _mm512_maskz_scalef_round_ps(__U, __A, __B, _MM_FROUND_CUR_DIRECTION);
   3789 }
   3790 
   3791 __m512 test_mm512_scalef_ps(__m512 __A, __m512 __B) {
   3792   // CHECK-LABEL: @test_mm512_scalef_ps
   3793   // CHECK: @llvm.x86.avx512.mask.scalef.ps.512
   3794   return _mm512_scalef_ps(__A, __B);
   3795 }
   3796 
   3797 __m512 test_mm512_mask_scalef_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
   3798   // CHECK-LABEL: @test_mm512_mask_scalef_ps
   3799   // CHECK: @llvm.x86.avx512.mask.scalef.ps.512
   3800   return _mm512_mask_scalef_ps(__W, __U, __A, __B);
   3801 }
   3802 
   3803 __m512 test_mm512_maskz_scalef_ps(__mmask16 __U, __m512 __A, __m512 __B) {
   3804   // CHECK-LABEL: @test_mm512_maskz_scalef_ps
   3805   // CHECK: @llvm.x86.avx512.mask.scalef.ps.512
   3806   return _mm512_maskz_scalef_ps(__U, __A, __B);
   3807 }
   3808 
   3809 __m128d test_mm_scalef_round_sd(__m128d __A, __m128d __B) {
   3810   // CHECK-LABEL: @test_mm_scalef_round_sd
   3811   // CHECK: @llvm.x86.avx512.mask.scalef
   3812   return _mm_scalef_round_sd(__A, __B, _MM_FROUND_CUR_DIRECTION);
   3813 }
   3814 
   3815 __m128d test_mm_scalef_sd(__m128d __A, __m128d __B) {
   3816   // CHECK-LABEL: @test_mm_scalef_sd
   3817   // CHECK: @llvm.x86.avx512.mask.scalef
   3818   return _mm_scalef_sd(__A, __B);
   3819 }
   3820 
   3821 __m128d test_mm_mask_scalef_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
   3822   // CHECK-LABEL: @test_mm_mask_scalef_sd
   3823   // CHECK: @llvm.x86.avx512.mask.scalef.sd
   3824   return _mm_mask_scalef_sd(__W, __U, __A, __B);
   3825 }
   3826 
   3827 __m128d test_mm_mask_scalef_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
   3828   // CHECK-LABEL: @test_mm_mask_scalef_round_sd
   3829   // CHECK: @llvm.x86.avx512.mask.scalef.sd
   3830     return _mm_mask_scalef_round_sd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
   3831 }
   3832 
   3833 __m128d test_mm_maskz_scalef_sd(__mmask8 __U, __m128d __A, __m128d __B){
   3834   // CHECK-LABEL: @test_mm_maskz_scalef_sd
   3835   // CHECK: @llvm.x86.avx512.mask.scalef.sd
   3836     return _mm_maskz_scalef_sd(__U, __A, __B);
   3837 }
   3838 
   3839 __m128d test_mm_maskz_scalef_round_sd(__mmask8 __U, __m128d __A, __m128d __B){
   3840   // CHECK-LABEL: @test_mm_maskz_scalef_round_sd
   3841   // CHECK: @llvm.x86.avx512.mask.scalef.sd
   3842     return _mm_maskz_scalef_round_sd(__U, __A, __B, _MM_FROUND_CUR_DIRECTION);
   3843 }
   3844 
   3845 __m128 test_mm_scalef_round_ss(__m128 __A, __m128 __B) {
   3846   // CHECK-LABEL: @test_mm_scalef_round_ss
   3847   // CHECK: @llvm.x86.avx512.mask.scalef.ss
   3848   return _mm_scalef_round_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
   3849 }
   3850 
   3851 __m128 test_mm_scalef_ss(__m128 __A, __m128 __B) {
   3852   // CHECK-LABEL: @test_mm_scalef_ss
   3853   // CHECK: @llvm.x86.avx512.mask.scalef.ss
   3854   return _mm_scalef_ss(__A, __B);
   3855 }
   3856 
   3857 __m128 test_mm_mask_scalef_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
   3858   // CHECK-LABEL: @test_mm_mask_scalef_ss
   3859   // CHECK: @llvm.x86.avx512.mask.scalef.ss
   3860     return _mm_mask_scalef_ss(__W, __U, __A, __B);
   3861 }
   3862 
   3863 __m128 test_mm_mask_scalef_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
   3864   // CHECK-LABEL: @test_mm_mask_scalef_round_ss
   3865   // CHECK: @llvm.x86.avx512.mask.scalef.ss
   3866     return _mm_mask_scalef_round_ss(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
   3867 }
   3868 
   3869 __m128 test_mm_maskz_scalef_ss(__mmask8 __U, __m128 __A, __m128 __B){
   3870   // CHECK-LABEL: @test_mm_maskz_scalef_ss
   3871   // CHECK: @llvm.x86.avx512.mask.scalef.ss
   3872     return _mm_maskz_scalef_ss(__U, __A, __B);
   3873 }
   3874 
   3875 __m128 test_mm_maskz_scalef_round_ss(__mmask8 __U, __m128 __A, __m128 __B){
   3876   // CHECK-LABEL: @test_mm_maskz_scalef_round_ss
   3877   // CHECK: @llvm.x86.avx512.mask.scalef.ss
   3878     return _mm_maskz_scalef_round_ss(__U, __A, __B, _MM_FROUND_CUR_DIRECTION);
   3879 }
   3880 
   3881 __m512i test_mm512_srai_epi32(__m512i __A) {
   3882   // CHECK-LABEL: @test_mm512_srai_epi32
   3883   // CHECK: @llvm.x86.avx512.mask.psra.di.512
   3884   return _mm512_srai_epi32(__A, 5);
   3885 }
   3886 
   3887 __m512i test_mm512_mask_srai_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
   3888   // CHECK-LABEL: @test_mm512_mask_srai_epi32
   3889   // CHECK: @llvm.x86.avx512.mask.psra.di.512
   3890   return _mm512_mask_srai_epi32(__W, __U, __A, 5);
   3891 }
   3892 
   3893 __m512i test_mm512_maskz_srai_epi32(__mmask16 __U, __m512i __A) {
   3894   // CHECK-LABEL: @test_mm512_maskz_srai_epi32
   3895   // CHECK: @llvm.x86.avx512.mask.psra.di.512
   3896   return _mm512_maskz_srai_epi32(__U, __A, 5);
   3897 }
   3898 
   3899 __m512i test_mm512_srai_epi64(__m512i __A) {
   3900   // CHECK-LABEL: @test_mm512_srai_epi64
   3901   // CHECK: @llvm.x86.avx512.mask.psra.qi.512
   3902   return _mm512_srai_epi64(__A, 5);
   3903 }
   3904 
   3905 __m512i test_mm512_mask_srai_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
   3906   // CHECK-LABEL: @test_mm512_mask_srai_epi64
   3907   // CHECK: @llvm.x86.avx512.mask.psra.qi.512
   3908   return _mm512_mask_srai_epi64(__W, __U, __A, 5);
   3909 }
   3910 
   3911 __m512i test_mm512_maskz_srai_epi64(__mmask8 __U, __m512i __A) {
   3912   // CHECK-LABEL: @test_mm512_maskz_srai_epi64
   3913   // CHECK: @llvm.x86.avx512.mask.psra.qi.512
   3914   return _mm512_maskz_srai_epi64(__U, __A, 5);
   3915 }
   3916 
   3917 __m512i test_mm512_sll_epi32(__m512i __A, __m128i __B) {
   3918   // CHECK-LABEL: @test_mm512_sll_epi32
   3919   // CHECK: @llvm.x86.avx512.mask.psll.d
   3920   return _mm512_sll_epi32(__A, __B);
   3921 }
   3922 
   3923 __m512i test_mm512_mask_sll_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m128i __B) {
   3924   // CHECK-LABEL: @test_mm512_mask_sll_epi32
   3925   // CHECK: @llvm.x86.avx512.mask.psll.d
   3926   return _mm512_mask_sll_epi32(__W, __U, __A, __B);
   3927 }
   3928 
   3929 __m512i test_mm512_maskz_sll_epi32(__mmask16 __U, __m512i __A, __m128i __B) {
   3930   // CHECK-LABEL: @test_mm512_maskz_sll_epi32
   3931   // CHECK: @llvm.x86.avx512.mask.psll.d
   3932   return _mm512_maskz_sll_epi32(__U, __A, __B);
   3933 }
   3934 
   3935 __m512i test_mm512_sll_epi64(__m512i __A, __m128i __B) {
   3936   // CHECK-LABEL: @test_mm512_sll_epi64
   3937   // CHECK: @llvm.x86.avx512.mask.psll.q
   3938   return _mm512_sll_epi64(__A, __B);
   3939 }
   3940 
   3941 __m512i test_mm512_mask_sll_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m128i __B) {
   3942   // CHECK-LABEL: @test_mm512_mask_sll_epi64
   3943   // CHECK: @llvm.x86.avx512.mask.psll.q
   3944   return _mm512_mask_sll_epi64(__W, __U, __A, __B);
   3945 }
   3946 
   3947 __m512i test_mm512_maskz_sll_epi64(__mmask8 __U, __m512i __A, __m128i __B) {
   3948   // CHECK-LABEL: @test_mm512_maskz_sll_epi64
   3949   // CHECK: @llvm.x86.avx512.mask.psll.q
   3950   return _mm512_maskz_sll_epi64(__U, __A, __B);
   3951 }
   3952 
   3953 __m512i test_mm512_sllv_epi32(__m512i __X, __m512i __Y) {
   3954   // CHECK-LABEL: @test_mm512_sllv_epi32
   3955   // CHECK: @llvm.x86.avx512.mask.psllv.d
   3956   return _mm512_sllv_epi32(__X, __Y);
   3957 }
   3958 
   3959 __m512i test_mm512_mask_sllv_epi32(__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y) {
   3960   // CHECK-LABEL: @test_mm512_mask_sllv_epi32
   3961   // CHECK: @llvm.x86.avx512.mask.psllv.d
   3962   return _mm512_mask_sllv_epi32(__W, __U, __X, __Y);
   3963 }
   3964 
   3965 __m512i test_mm512_maskz_sllv_epi32(__mmask16 __U, __m512i __X, __m512i __Y) {
   3966   // CHECK-LABEL: @test_mm512_maskz_sllv_epi32
   3967   // CHECK: @llvm.x86.avx512.mask.psllv.d
   3968   return _mm512_maskz_sllv_epi32(__U, __X, __Y);
   3969 }
   3970 
   3971 __m512i test_mm512_sllv_epi64(__m512i __X, __m512i __Y) {
   3972   // CHECK-LABEL: @test_mm512_sllv_epi64
   3973   // CHECK: @llvm.x86.avx512.mask.psllv.q
   3974   return _mm512_sllv_epi64(__X, __Y);
   3975 }
   3976 
   3977 __m512i test_mm512_mask_sllv_epi64(__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y) {
   3978   // CHECK-LABEL: @test_mm512_mask_sllv_epi64
   3979   // CHECK: @llvm.x86.avx512.mask.psllv.q
   3980   return _mm512_mask_sllv_epi64(__W, __U, __X, __Y);
   3981 }
   3982 
   3983 __m512i test_mm512_maskz_sllv_epi64(__mmask8 __U, __m512i __X, __m512i __Y) {
   3984   // CHECK-LABEL: @test_mm512_maskz_sllv_epi64
   3985   // CHECK: @llvm.x86.avx512.mask.psllv.q
   3986   return _mm512_maskz_sllv_epi64(__U, __X, __Y);
   3987 }
   3988 
   3989 __m512i test_mm512_sra_epi32(__m512i __A, __m128i __B) {
   3990   // CHECK-LABEL: @test_mm512_sra_epi32
   3991   // CHECK: @llvm.x86.avx512.mask.psra.d
   3992   return _mm512_sra_epi32(__A, __B);
   3993 }
   3994 
   3995 __m512i test_mm512_mask_sra_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m128i __B) {
   3996   // CHECK-LABEL: @test_mm512_mask_sra_epi32
   3997   // CHECK: @llvm.x86.avx512.mask.psra.d
   3998   return _mm512_mask_sra_epi32(__W, __U, __A, __B);
   3999 }
   4000 
   4001 __m512i test_mm512_maskz_sra_epi32(__mmask16 __U, __m512i __A, __m128i __B) {
   4002   // CHECK-LABEL: @test_mm512_maskz_sra_epi32
   4003   // CHECK: @llvm.x86.avx512.mask.psra.d
   4004   return _mm512_maskz_sra_epi32(__U, __A, __B);
   4005 }
   4006 
   4007 __m512i test_mm512_sra_epi64(__m512i __A, __m128i __B) {
   4008   // CHECK-LABEL: @test_mm512_sra_epi64
   4009   // CHECK: @llvm.x86.avx512.mask.psra.q
   4010   return _mm512_sra_epi64(__A, __B);
   4011 }
   4012 
   4013 __m512i test_mm512_mask_sra_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m128i __B) {
   4014   // CHECK-LABEL: @test_mm512_mask_sra_epi64
   4015   // CHECK: @llvm.x86.avx512.mask.psra.q
   4016   return _mm512_mask_sra_epi64(__W, __U, __A, __B);
   4017 }
   4018 
   4019 __m512i test_mm512_maskz_sra_epi64(__mmask8 __U, __m512i __A, __m128i __B) {
   4020   // CHECK-LABEL: @test_mm512_maskz_sra_epi64
   4021   // CHECK: @llvm.x86.avx512.mask.psra.q
   4022   return _mm512_maskz_sra_epi64(__U, __A, __B);
   4023 }
   4024 
   4025 __m512i test_mm512_srav_epi32(__m512i __X, __m512i __Y) {
   4026   // CHECK-LABEL: @test_mm512_srav_epi32
   4027   // CHECK: @llvm.x86.avx512.mask.psrav.d
   4028   return _mm512_srav_epi32(__X, __Y);
   4029 }
   4030 
   4031 __m512i test_mm512_mask_srav_epi32(__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y) {
   4032   // CHECK-LABEL: @test_mm512_mask_srav_epi32
   4033   // CHECK: @llvm.x86.avx512.mask.psrav.d
   4034   return _mm512_mask_srav_epi32(__W, __U, __X, __Y);
   4035 }
   4036 
   4037 __m512i test_mm512_maskz_srav_epi32(__mmask16 __U, __m512i __X, __m512i __Y) {
   4038   // CHECK-LABEL: @test_mm512_maskz_srav_epi32
   4039   // CHECK: @llvm.x86.avx512.mask.psrav.d
   4040   return _mm512_maskz_srav_epi32(__U, __X, __Y);
   4041 }
   4042 
   4043 __m512i test_mm512_srav_epi64(__m512i __X, __m512i __Y) {
   4044   // CHECK-LABEL: @test_mm512_srav_epi64
   4045   // CHECK: @llvm.x86.avx512.mask.psrav.q
   4046   return _mm512_srav_epi64(__X, __Y);
   4047 }
   4048 
   4049 __m512i test_mm512_mask_srav_epi64(__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y) {
   4050   // CHECK-LABEL: @test_mm512_mask_srav_epi64
   4051   // CHECK: @llvm.x86.avx512.mask.psrav.q
   4052   return _mm512_mask_srav_epi64(__W, __U, __X, __Y);
   4053 }
   4054 
   4055 __m512i test_mm512_maskz_srav_epi64(__mmask8 __U, __m512i __X, __m512i __Y) {
   4056   // CHECK-LABEL: @test_mm512_maskz_srav_epi64
   4057   // CHECK: @llvm.x86.avx512.mask.psrav.q
   4058   return _mm512_maskz_srav_epi64(__U, __X, __Y);
   4059 }
   4060 
   4061 __m512i test_mm512_srl_epi32(__m512i __A, __m128i __B) {
   4062   // CHECK-LABEL: @test_mm512_srl_epi32
   4063   // CHECK: @llvm.x86.avx512.mask.psrl.d
   4064   return _mm512_srl_epi32(__A, __B);
   4065 }
   4066 
   4067 __m512i test_mm512_mask_srl_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m128i __B) {
   4068   // CHECK-LABEL: @test_mm512_mask_srl_epi32
   4069   // CHECK: @llvm.x86.avx512.mask.psrl.d
   4070   return _mm512_mask_srl_epi32(__W, __U, __A, __B);
   4071 }
   4072 
   4073 __m512i test_mm512_maskz_srl_epi32(__mmask16 __U, __m512i __A, __m128i __B) {
   4074   // CHECK-LABEL: @test_mm512_maskz_srl_epi32
   4075   // CHECK: @llvm.x86.avx512.mask.psrl.d
   4076   return _mm512_maskz_srl_epi32(__U, __A, __B);
   4077 }
   4078 
   4079 __m512i test_mm512_srl_epi64(__m512i __A, __m128i __B) {
   4080   // CHECK-LABEL: @test_mm512_srl_epi64
   4081   // CHECK: @llvm.x86.avx512.mask.psrl.q
   4082   return _mm512_srl_epi64(__A, __B);
   4083 }
   4084 
   4085 __m512i test_mm512_mask_srl_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m128i __B) {
   4086   // CHECK-LABEL: @test_mm512_mask_srl_epi64
   4087   // CHECK: @llvm.x86.avx512.mask.psrl.q
   4088   return _mm512_mask_srl_epi64(__W, __U, __A, __B);
   4089 }
   4090 
   4091 __m512i test_mm512_maskz_srl_epi64(__mmask8 __U, __m512i __A, __m128i __B) {
   4092   // CHECK-LABEL: @test_mm512_maskz_srl_epi64
   4093   // CHECK: @llvm.x86.avx512.mask.psrl.q
   4094   return _mm512_maskz_srl_epi64(__U, __A, __B);
   4095 }
   4096 
   4097 __m512i test_mm512_srlv_epi32(__m512i __X, __m512i __Y) {
   4098   // CHECK-LABEL: @test_mm512_srlv_epi32
   4099   // CHECK: @llvm.x86.avx512.mask.psrlv.d
   4100   return _mm512_srlv_epi32(__X, __Y);
   4101 }
   4102 
   4103 __m512i test_mm512_mask_srlv_epi32(__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y) {
   4104   // CHECK-LABEL: @test_mm512_mask_srlv_epi32
   4105   // CHECK: @llvm.x86.avx512.mask.psrlv.d
   4106   return _mm512_mask_srlv_epi32(__W, __U, __X, __Y);
   4107 }
   4108 
   4109 __m512i test_mm512_maskz_srlv_epi32(__mmask16 __U, __m512i __X, __m512i __Y) {
   4110   // CHECK-LABEL: @test_mm512_maskz_srlv_epi32
   4111   // CHECK: @llvm.x86.avx512.mask.psrlv.d
   4112   return _mm512_maskz_srlv_epi32(__U, __X, __Y);
   4113 }
   4114 
   4115 __m512i test_mm512_srlv_epi64(__m512i __X, __m512i __Y) {
   4116   // CHECK-LABEL: @test_mm512_srlv_epi64
   4117   // CHECK: @llvm.x86.avx512.mask.psrlv.q
   4118   return _mm512_srlv_epi64(__X, __Y);
   4119 }
   4120 
   4121 __m512i test_mm512_mask_srlv_epi64(__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y) {
   4122   // CHECK-LABEL: @test_mm512_mask_srlv_epi64
   4123   // CHECK: @llvm.x86.avx512.mask.psrlv.q
   4124   return _mm512_mask_srlv_epi64(__W, __U, __X, __Y);
   4125 }
   4126 
   4127 __m512i test_mm512_maskz_srlv_epi64(__mmask8 __U, __m512i __X, __m512i __Y) {
   4128   // CHECK-LABEL: @test_mm512_maskz_srlv_epi64
   4129   // CHECK: @llvm.x86.avx512.mask.psrlv.q
   4130   return _mm512_maskz_srlv_epi64(__U, __X, __Y);
   4131 }
   4132 
   4133 __m512i test_mm512_ternarylogic_epi32(__m512i __A, __m512i __B, __m512i __C) {
   4134   // CHECK-LABEL: @test_mm512_ternarylogic_epi32
   4135   // CHECK: @llvm.x86.avx512.mask.pternlog.d.512
   4136   return _mm512_ternarylogic_epi32(__A, __B, __C, 4);
   4137 }
   4138 
   4139 __m512i test_mm512_mask_ternarylogic_epi32(__m512i __A, __mmask16 __U, __m512i __B, __m512i __C) {
   4140   // CHECK-LABEL: @test_mm512_mask_ternarylogic_epi32
   4141   // CHECK: @llvm.x86.avx512.mask.pternlog.d.512
   4142   return _mm512_mask_ternarylogic_epi32(__A, __U, __B, __C, 4);
   4143 }
   4144 
   4145 __m512i test_mm512_maskz_ternarylogic_epi32(__mmask16 __U, __m512i __A, __m512i __B, __m512i __C) {
   4146   // CHECK-LABEL: @test_mm512_maskz_ternarylogic_epi32
   4147   // CHECK: @llvm.x86.avx512.maskz.pternlog.d.512
   4148   return _mm512_maskz_ternarylogic_epi32(__U, __A, __B, __C, 4);
   4149 }
   4150 
   4151 __m512i test_mm512_ternarylogic_epi64(__m512i __A, __m512i __B, __m512i __C) {
   4152   // CHECK-LABEL: @test_mm512_ternarylogic_epi64
   4153   // CHECK: @llvm.x86.avx512.mask.pternlog.q.512
   4154   return _mm512_ternarylogic_epi64(__A, __B, __C, 4);
   4155 }
   4156 
   4157 __m512i test_mm512_mask_ternarylogic_epi64(__m512i __A, __mmask8 __U, __m512i __B, __m512i __C) {
   4158   // CHECK-LABEL: @test_mm512_mask_ternarylogic_epi64
   4159   // CHECK: @llvm.x86.avx512.mask.pternlog.q.512
   4160   return _mm512_mask_ternarylogic_epi64(__A, __U, __B, __C, 4);
   4161 }
   4162 
   4163 __m512i test_mm512_maskz_ternarylogic_epi64(__mmask8 __U, __m512i __A, __m512i __B, __m512i __C) {
   4164   // CHECK-LABEL: @test_mm512_maskz_ternarylogic_epi64
   4165   // CHECK: @llvm.x86.avx512.maskz.pternlog.q.512
   4166   return _mm512_maskz_ternarylogic_epi64(__U, __A, __B, __C, 4);
   4167 }
   4168 
   4169 __m512 test_mm512_shuffle_f32x4(__m512 __A, __m512 __B) {
   4170   // CHECK-LABEL: @test_mm512_shuffle_f32x4
   4171   // CHECK: @llvm.x86.avx512.mask.shuf.f32x4
   4172   return _mm512_shuffle_f32x4(__A, __B, 4);
   4173 }
   4174 
   4175 __m512 test_mm512_mask_shuffle_f32x4(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
   4176   // CHECK-LABEL: @test_mm512_mask_shuffle_f32x4
   4177   // CHECK: @llvm.x86.avx512.mask.shuf.f32x4
   4178   return _mm512_mask_shuffle_f32x4(__W, __U, __A, __B, 4);
   4179 }
   4180 
   4181 __m512 test_mm512_maskz_shuffle_f32x4(__mmask16 __U, __m512 __A, __m512 __B) {
   4182   // CHECK-LABEL: @test_mm512_maskz_shuffle_f32x4
   4183   // CHECK: @llvm.x86.avx512.mask.shuf.f32x4
   4184   return _mm512_maskz_shuffle_f32x4(__U, __A, __B, 4);
   4185 }
   4186 
   4187 __m512d test_mm512_shuffle_f64x2(__m512d __A, __m512d __B) {
   4188   // CHECK-LABEL: @test_mm512_shuffle_f64x2
   4189   // CHECK: @llvm.x86.avx512.mask.shuf.f64x2
   4190   return _mm512_shuffle_f64x2(__A, __B, 4);
   4191 }
   4192 
   4193 __m512d test_mm512_mask_shuffle_f64x2(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
   4194   // CHECK-LABEL: @test_mm512_mask_shuffle_f64x2
   4195   // CHECK: @llvm.x86.avx512.mask.shuf.f64x2
   4196   return _mm512_mask_shuffle_f64x2(__W, __U, __A, __B, 4);
   4197 }
   4198 
   4199 __m512d test_mm512_maskz_shuffle_f64x2(__mmask8 __U, __m512d __A, __m512d __B) {
   4200   // CHECK-LABEL: @test_mm512_maskz_shuffle_f64x2
   4201   // CHECK: @llvm.x86.avx512.mask.shuf.f64x2
   4202   return _mm512_maskz_shuffle_f64x2(__U, __A, __B, 4);
   4203 }
   4204 
   4205 __m512i test_mm512_shuffle_i32x4(__m512i __A, __m512i __B) {
   4206   // CHECK-LABEL: @test_mm512_shuffle_i32x4
   4207   // CHECK: @llvm.x86.avx512.mask.shuf.i32x4
   4208   return _mm512_shuffle_i32x4(__A, __B, 4);
   4209 }
   4210 
   4211 __m512i test_mm512_mask_shuffle_i32x4(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
   4212   // CHECK-LABEL: @test_mm512_mask_shuffle_i32x4
   4213   // CHECK: @llvm.x86.avx512.mask.shuf.i32x4
   4214   return _mm512_mask_shuffle_i32x4(__W, __U, __A, __B, 4);
   4215 }
   4216 
   4217 __m512i test_mm512_maskz_shuffle_i32x4(__mmask16 __U, __m512i __A, __m512i __B) {
   4218   // CHECK-LABEL: @test_mm512_maskz_shuffle_i32x4
   4219   // CHECK: @llvm.x86.avx512.mask.shuf.i32x4
   4220   return _mm512_maskz_shuffle_i32x4(__U, __A, __B, 4);
   4221 }
   4222 
   4223 __m512i test_mm512_shuffle_i64x2(__m512i __A, __m512i __B) {
   4224   // CHECK-LABEL: @test_mm512_shuffle_i64x2
   4225   // CHECK: @llvm.x86.avx512.mask.shuf.i64x2
   4226   return _mm512_shuffle_i64x2(__A, __B, 4);
   4227 }
   4228 
   4229 __m512i test_mm512_mask_shuffle_i64x2(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) {
   4230   // CHECK-LABEL: @test_mm512_mask_shuffle_i64x2
   4231   // CHECK: @llvm.x86.avx512.mask.shuf.i64x2
   4232   return _mm512_mask_shuffle_i64x2(__W, __U, __A, __B, 4);
   4233 }
   4234 
   4235 __m512i test_mm512_maskz_shuffle_i64x2(__mmask8 __U, __m512i __A, __m512i __B) {
   4236   // CHECK-LABEL: @test_mm512_maskz_shuffle_i64x2
   4237   // CHECK: @llvm.x86.avx512.mask.shuf.i64x2
   4238   return _mm512_maskz_shuffle_i64x2(__U, __A, __B, 4);
   4239 }
   4240 
   4241 __m512d test_mm512_shuffle_pd(__m512d __M, __m512d __V) {
   4242   // CHECK-LABEL: @test_mm512_shuffle_pd
   4243   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 3, i32 10, i32 4, i32 12, i32 6, i32 14>
   4244   return _mm512_shuffle_pd(__M, __V, 4);
   4245 }
   4246 
   4247 __m512d test_mm512_mask_shuffle_pd(__m512d __W, __mmask8 __U, __m512d __M, __m512d __V) {
   4248   // CHECK-LABEL: @test_mm512_mask_shuffle_pd
   4249   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 3, i32 10, i32 4, i32 12, i32 6, i32 14>
   4250   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
   4251   return _mm512_mask_shuffle_pd(__W, __U, __M, __V, 4);
   4252 }
   4253 
   4254 __m512d test_mm512_maskz_shuffle_pd(__mmask8 __U, __m512d __M, __m512d __V) {
   4255   // CHECK-LABEL: @test_mm512_maskz_shuffle_pd
   4256   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 3, i32 10, i32 4, i32 12, i32 6, i32 14>
   4257   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
   4258   return _mm512_maskz_shuffle_pd(__U, __M, __V, 4);
   4259 }
   4260 
   4261 __m512 test_mm512_shuffle_ps(__m512 __M, __m512 __V) {
   4262   // CHECK-LABEL: @test_mm512_shuffle_ps
   4263   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 16, i32 16, i32 4, i32 5, i32 20, i32 20, i32 8, i32 9, i32 24, i32 24, i32 12, i32 13, i32 28, i32 28>
   4264   return _mm512_shuffle_ps(__M, __V, 4);
   4265 }
   4266 
   4267 __m512 test_mm512_mask_shuffle_ps(__m512 __W, __mmask16 __U, __m512 __M, __m512 __V) {
   4268   // CHECK-LABEL: @test_mm512_mask_shuffle_ps
   4269   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 16, i32 16, i32 4, i32 5, i32 20, i32 20, i32 8, i32 9, i32 24, i32 24, i32 12, i32 13, i32 28, i32 28>
   4270   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
   4271   return _mm512_mask_shuffle_ps(__W, __U, __M, __V, 4);
   4272 }
   4273 
   4274 __m512 test_mm512_maskz_shuffle_ps(__mmask16 __U, __m512 __M, __m512 __V) {
   4275   // CHECK-LABEL: @test_mm512_maskz_shuffle_ps
   4276   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 16, i32 16, i32 4, i32 5, i32 20, i32 20, i32 8, i32 9, i32 24, i32 24, i32 12, i32 13, i32 28, i32 28>
   4277   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
   4278   return _mm512_maskz_shuffle_ps(__U, __M, __V, 4);
   4279 }
   4280 
   4281 __m128d test_mm_sqrt_round_sd(__m128d __A, __m128d __B) {
   4282   // CHECK-LABEL: @test_mm_sqrt_round_sd
   4283   // CHECK: @llvm.x86.avx512.mask.sqrt.sd
   4284   return _mm_sqrt_round_sd(__A, __B, 4);
   4285 }
   4286 
   4287 __m128d test_mm_mask_sqrt_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
   4288   // CHECK: @llvm.x86.avx512.mask.sqrt.sd
   4289     return _mm_mask_sqrt_sd(__W,__U,__A,__B);
   4290 }
   4291 
   4292 __m128d test_mm_mask_sqrt_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
   4293   // CHECK: @llvm.x86.avx512.mask.sqrt.sd
   4294     return _mm_mask_sqrt_round_sd(__W,__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
   4295 }
   4296 
   4297 __m128d test_mm_maskz_sqrt_sd(__mmask8 __U, __m128d __A, __m128d __B){
   4298   // CHECK: @llvm.x86.avx512.mask.sqrt.sd
   4299     return _mm_maskz_sqrt_sd(__U,__A,__B);
   4300 }
   4301 
   4302 __m128d test_mm_maskz_sqrt_round_sd(__mmask8 __U, __m128d __A, __m128d __B){
   4303   // CHECK: @llvm.x86.avx512.mask.sqrt.sd
   4304     return _mm_maskz_sqrt_round_sd(__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
   4305 }
   4306 
   4307 __m128 test_mm_sqrt_round_ss(__m128 __A, __m128 __B) {
   4308   // CHECK-LABEL: @test_mm_sqrt_round_ss
   4309   // CHECK: @llvm.x86.avx512.mask.sqrt.ss
   4310   return _mm_sqrt_round_ss(__A, __B, 4);
   4311 }
   4312 
   4313 __m128 test_mm_mask_sqrt_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
   4314   // CHECK: @llvm.x86.avx512.mask.sqrt.ss
   4315     return _mm_mask_sqrt_ss(__W,__U,__A,__B);
   4316 }
   4317 
   4318 __m128 test_mm_mask_sqrt_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
   4319   // CHECK: @llvm.x86.avx512.mask.sqrt.ss
   4320     return _mm_mask_sqrt_round_ss(__W,__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
   4321 }
   4322 
   4323 __m128 test_mm_maskz_sqrt_ss(__mmask8 __U, __m128 __A, __m128 __B){
   4324   // CHECK: @llvm.x86.avx512.mask.sqrt.ss
   4325     return _mm_maskz_sqrt_ss(__U,__A,__B);
   4326 }
   4327 
   4328 __m128 test_mm_maskz_sqrt_round_ss(__mmask8 __U, __m128 __A, __m128 __B){
   4329   // CHECK: @llvm.x86.avx512.mask.sqrt.ss
   4330     return _mm_maskz_sqrt_round_ss(__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
   4331 }
   4332 
   4333 __m512 test_mm512_broadcast_f32x4(__m128 __A) {
   4334   // CHECK-LABEL: @test_mm512_broadcast_f32x4
   4335   // CHECK: @llvm.x86.avx512.mask.broadcastf32x4
   4336   return _mm512_broadcast_f32x4(__A);
   4337 }
   4338 
   4339 __m512 test_mm512_mask_broadcast_f32x4(__m512 __O, __mmask16 __M, __m128 __A) {
   4340   // CHECK-LABEL: @test_mm512_mask_broadcast_f32x4
   4341   // CHECK: @llvm.x86.avx512.mask.broadcastf32x4
   4342   return _mm512_mask_broadcast_f32x4(__O, __M, __A);
   4343 }
   4344 
   4345 __m512 test_mm512_maskz_broadcast_f32x4(__mmask16 __M, __m128 __A) {
   4346   // CHECK-LABEL: @test_mm512_maskz_broadcast_f32x4
   4347   // CHECK: @llvm.x86.avx512.mask.broadcastf32x4
   4348   return _mm512_maskz_broadcast_f32x4(__M, __A);
   4349 }
   4350 
   4351 __m512d test_mm512_broadcast_f64x4(__m256d __A) {
   4352   // CHECK-LABEL: @test_mm512_broadcast_f64x4
   4353   // CHECK: @llvm.x86.avx512.mask.broadcastf64x4
   4354   return _mm512_broadcast_f64x4(__A);
   4355 }
   4356 
   4357 __m512d test_mm512_mask_broadcast_f64x4(__m512d __O, __mmask8 __M, __m256d __A) {
   4358   // CHECK-LABEL: @test_mm512_mask_broadcast_f64x4
   4359   // CHECK: @llvm.x86.avx512.mask.broadcastf64x4
   4360   return _mm512_mask_broadcast_f64x4(__O, __M, __A);
   4361 }
   4362 
   4363 __m512d test_mm512_maskz_broadcast_f64x4(__mmask8 __M, __m256d __A) {
   4364   // CHECK-LABEL: @test_mm512_maskz_broadcast_f64x4
   4365   // CHECK: @llvm.x86.avx512.mask.broadcastf64x4
   4366   return _mm512_maskz_broadcast_f64x4(__M, __A);
   4367 }
   4368 
   4369 __m512i test_mm512_broadcast_i32x4(__m128i __A) {
   4370   // CHECK-LABEL: @test_mm512_broadcast_i32x4
   4371   // CHECK: @llvm.x86.avx512.mask.broadcasti32x4
   4372   return _mm512_broadcast_i32x4(__A);
   4373 }
   4374 
   4375 __m512i test_mm512_mask_broadcast_i32x4(__m512i __O, __mmask16 __M, __m128i __A) {
   4376   // CHECK-LABEL: @test_mm512_mask_broadcast_i32x4
   4377   // CHECK: @llvm.x86.avx512.mask.broadcasti32x4
   4378   return _mm512_mask_broadcast_i32x4(__O, __M, __A);
   4379 }
   4380 
   4381 __m512i test_mm512_maskz_broadcast_i32x4(__mmask16 __M, __m128i __A) {
   4382   // CHECK-LABEL: @test_mm512_maskz_broadcast_i32x4
   4383   // CHECK: @llvm.x86.avx512.mask.broadcasti32x4
   4384   return _mm512_maskz_broadcast_i32x4(__M, __A);
   4385 }
   4386 
   4387 __m512i test_mm512_broadcast_i64x4(__m256i __A) {
   4388   // CHECK-LABEL: @test_mm512_broadcast_i64x4
   4389   // CHECK: @llvm.x86.avx512.mask.broadcasti64x4
   4390   return _mm512_broadcast_i64x4(__A);
   4391 }
   4392 
   4393 __m512i test_mm512_mask_broadcast_i64x4(__m512i __O, __mmask8 __M, __m256i __A) {
   4394   // CHECK-LABEL: @test_mm512_mask_broadcast_i64x4
   4395   // CHECK: @llvm.x86.avx512.mask.broadcasti64x4
   4396   return _mm512_mask_broadcast_i64x4(__O, __M, __A);
   4397 }
   4398 
   4399 __m512i test_mm512_maskz_broadcast_i64x4(__mmask8 __M, __m256i __A) {
   4400   // CHECK-LABEL: @test_mm512_maskz_broadcast_i64x4
   4401   // CHECK: @llvm.x86.avx512.mask.broadcasti64x4
   4402   return _mm512_maskz_broadcast_i64x4(__M, __A);
   4403 }
   4404 
   4405 __m512d test_mm512_broadcastsd_pd(__m128d __A) {
   4406   // CHECK-LABEL: @test_mm512_broadcastsd_pd
   4407   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> undef, <8 x i32> zeroinitializer
   4408   return _mm512_broadcastsd_pd(__A);
   4409 }
   4410 
   4411 __m512d test_mm512_mask_broadcastsd_pd(__m512d __O, __mmask8 __M, __m128d __A) {
   4412   // CHECK-LABEL: @test_mm512_mask_broadcastsd_pd
   4413   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> undef, <8 x i32> zeroinitializer
   4414   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
   4415   return _mm512_mask_broadcastsd_pd(__O, __M, __A);
   4416 }
   4417 
   4418 __m512d test_mm512_maskz_broadcastsd_pd(__mmask8 __M, __m128d __A) {
   4419   // CHECK-LABEL: @test_mm512_maskz_broadcastsd_pd
   4420   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> undef, <8 x i32> zeroinitializer
   4421   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
   4422   return _mm512_maskz_broadcastsd_pd(__M, __A);
   4423 }
   4424 
   4425 __m512 test_mm512_broadcastss_ps(__m128 __A) {
   4426   // CHECK-LABEL: @test_mm512_broadcastss_ps
   4427   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> undef, <16 x i32> zeroinitializer
   4428   return _mm512_broadcastss_ps(__A);
   4429 }
   4430 
   4431 __m512 test_mm512_mask_broadcastss_ps(__m512 __O, __mmask16 __M, __m128 __A) {
   4432   // CHECK-LABEL: @test_mm512_mask_broadcastss_ps
   4433   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> undef, <16 x i32> zeroinitializer
   4434   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
   4435   return _mm512_mask_broadcastss_ps(__O, __M, __A);
   4436 }
   4437 
   4438 __m512 test_mm512_maskz_broadcastss_ps(__mmask16 __M, __m128 __A) {
   4439   // CHECK-LABEL: @test_mm512_maskz_broadcastss_ps
   4440   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> undef, <16 x i32> zeroinitializer
   4441   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
   4442   return _mm512_maskz_broadcastss_ps(__M, __A);
   4443 }
   4444 
   4445 __m512i test_mm512_broadcastd_epi32(__m128i __A) {
   4446   // CHECK-LABEL: @test_mm512_broadcastd_epi32
   4447   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> undef, <16 x i32> zeroinitializer
   4448   return _mm512_broadcastd_epi32(__A);
   4449 }
   4450 
   4451 __m512i test_mm512_mask_broadcastd_epi32(__m512i __O, __mmask16 __M, __m128i __A) {
   4452   // CHECK-LABEL: @test_mm512_mask_broadcastd_epi32
   4453   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> undef, <16 x i32> zeroinitializer
   4454   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
   4455   return _mm512_mask_broadcastd_epi32(__O, __M, __A);
   4456 }
   4457 
   4458 __m512i test_mm512_maskz_broadcastd_epi32(__mmask16 __M, __m128i __A) {
   4459   // CHECK-LABEL: @test_mm512_maskz_broadcastd_epi32
   4460   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> undef, <16 x i32> zeroinitializer
   4461   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
   4462   return _mm512_maskz_broadcastd_epi32(__M, __A);
   4463 }
   4464 
   4465 __m512i test_mm512_broadcastq_epi64(__m128i __A) {
   4466   // CHECK-LABEL: @test_mm512_broadcastq_epi64
   4467   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> undef, <8 x i32> zeroinitializer
   4468   return _mm512_broadcastq_epi64(__A);
   4469 }
   4470 
   4471 __m512i test_mm512_mask_broadcastq_epi64(__m512i __O, __mmask8 __M, __m128i __A) {
   4472   // CHECK-LABEL: @test_mm512_mask_broadcastq_epi64
   4473   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> undef, <8 x i32> zeroinitializer
   4474   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
   4475   return _mm512_mask_broadcastq_epi64(__O, __M, __A);
   4476 }
   4477 
   4478 __m512i test_mm512_maskz_broadcastq_epi64(__mmask8 __M, __m128i __A) {
   4479   // CHECK-LABEL: @test_mm512_maskz_broadcastq_epi64
   4480   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> undef, <8 x i32> zeroinitializer
   4481   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
   4482   return _mm512_maskz_broadcastq_epi64(__M, __A);
   4483 }
   4484 
   4485 __m128i test_mm512_cvtsepi32_epi8(__m512i __A) {
   4486   // CHECK-LABEL: @test_mm512_cvtsepi32_epi8
   4487   // CHECK: @llvm.x86.avx512.mask.pmovs.db.512
   4488   return _mm512_cvtsepi32_epi8(__A);
   4489 }
   4490 
   4491 __m128i test_mm512_mask_cvtsepi32_epi8(__m128i __O, __mmask16 __M, __m512i __A) {
   4492   // CHECK-LABEL: @test_mm512_mask_cvtsepi32_epi8
   4493   // CHECK: @llvm.x86.avx512.mask.pmovs.db.512
   4494   return _mm512_mask_cvtsepi32_epi8(__O, __M, __A);
   4495 }
   4496 
   4497 __m128i test_mm512_maskz_cvtsepi32_epi8(__mmask16 __M, __m512i __A) {
   4498   // CHECK-LABEL: @test_mm512_maskz_cvtsepi32_epi8
   4499   // CHECK: @llvm.x86.avx512.mask.pmovs.db.512
   4500   return _mm512_maskz_cvtsepi32_epi8(__M, __A);
   4501 }
   4502 
   4503 void test_mm512_mask_cvtsepi32_storeu_epi8(void * __P, __mmask16 __M, __m512i __A) {
   4504   // CHECK-LABEL: @test_mm512_mask_cvtsepi32_storeu_epi8
   4505   // CHECK: @llvm.x86.avx512.mask.pmovs.db.mem.512
   4506   return _mm512_mask_cvtsepi32_storeu_epi8(__P, __M, __A);
   4507 }
   4508 
   4509 __m256i test_mm512_cvtsepi32_epi16(__m512i __A) {
   4510   // CHECK-LABEL: @test_mm512_cvtsepi32_epi16
   4511   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.512
   4512   return _mm512_cvtsepi32_epi16(__A);
   4513 }
   4514 
   4515 __m256i test_mm512_mask_cvtsepi32_epi16(__m256i __O, __mmask16 __M, __m512i __A) {
   4516   // CHECK-LABEL: @test_mm512_mask_cvtsepi32_epi16
   4517   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.512
   4518   return _mm512_mask_cvtsepi32_epi16(__O, __M, __A);
   4519 }
   4520 
   4521 __m256i test_mm512_maskz_cvtsepi32_epi16(__mmask16 __M, __m512i __A) {
   4522   // CHECK-LABEL: @test_mm512_maskz_cvtsepi32_epi16
   4523   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.512
   4524   return _mm512_maskz_cvtsepi32_epi16(__M, __A);
   4525 }
   4526 
   4527 void test_mm512_mask_cvtsepi32_storeu_epi16(void *__P, __mmask16 __M, __m512i __A) {
   4528   // CHECK-LABEL: @test_mm512_mask_cvtsepi32_storeu_epi16
   4529   // CHECK: @llvm.x86.avx512.mask.pmovs.dw.mem.512
   4530   return _mm512_mask_cvtsepi32_storeu_epi16(__P, __M, __A);
   4531 }
   4532 
   4533 __m128i test_mm512_cvtsepi64_epi8(__m512i __A) {
   4534   // CHECK-LABEL: @test_mm512_cvtsepi64_epi8
   4535   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.512
   4536   return _mm512_cvtsepi64_epi8(__A);
   4537 }
   4538 
   4539 __m128i test_mm512_mask_cvtsepi64_epi8(__m128i __O, __mmask8 __M, __m512i __A) {
   4540   // CHECK-LABEL: @test_mm512_mask_cvtsepi64_epi8
   4541   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.512
   4542   return _mm512_mask_cvtsepi64_epi8(__O, __M, __A);
   4543 }
   4544 
   4545 __m128i test_mm512_maskz_cvtsepi64_epi8(__mmask8 __M, __m512i __A) {
   4546   // CHECK-LABEL: @test_mm512_maskz_cvtsepi64_epi8
   4547   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.512
   4548   return _mm512_maskz_cvtsepi64_epi8(__M, __A);
   4549 }
   4550 
   4551 void test_mm512_mask_cvtsepi64_storeu_epi8(void * __P, __mmask8 __M, __m512i __A) {
   4552   // CHECK-LABEL: @test_mm512_mask_cvtsepi64_storeu_epi8
   4553   // CHECK: @llvm.x86.avx512.mask.pmovs.qb.mem.512
   4554   return _mm512_mask_cvtsepi64_storeu_epi8(__P, __M, __A);
   4555 }
   4556 
   4557 __m256i test_mm512_cvtsepi64_epi32(__m512i __A) {
   4558   // CHECK-LABEL: @test_mm512_cvtsepi64_epi32
   4559   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.512
   4560   return _mm512_cvtsepi64_epi32(__A);
   4561 }
   4562 
   4563 __m256i test_mm512_mask_cvtsepi64_epi32(__m256i __O, __mmask8 __M, __m512i __A) {
   4564   // CHECK-LABEL: @test_mm512_mask_cvtsepi64_epi32
   4565   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.512
   4566   return _mm512_mask_cvtsepi64_epi32(__O, __M, __A);
   4567 }
   4568 
   4569 __m256i test_mm512_maskz_cvtsepi64_epi32(__mmask8 __M, __m512i __A) {
   4570   // CHECK-LABEL: @test_mm512_maskz_cvtsepi64_epi32
   4571   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.512
   4572   return _mm512_maskz_cvtsepi64_epi32(__M, __A);
   4573 }
   4574 
   4575 void test_mm512_mask_cvtsepi64_storeu_epi32(void *__P, __mmask8 __M, __m512i __A) {
   4576   // CHECK-LABEL: @test_mm512_mask_cvtsepi64_storeu_epi32
   4577   // CHECK: @llvm.x86.avx512.mask.pmovs.qd.mem.512
   4578   return _mm512_mask_cvtsepi64_storeu_epi32(__P, __M, __A);
   4579 }
   4580 
   4581 __m128i test_mm512_cvtsepi64_epi16(__m512i __A) {
   4582   // CHECK-LABEL: @test_mm512_cvtsepi64_epi16
   4583   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.512
   4584   return _mm512_cvtsepi64_epi16(__A);
   4585 }
   4586 
   4587 __m128i test_mm512_mask_cvtsepi64_epi16(__m128i __O, __mmask8 __M, __m512i __A) {
   4588   // CHECK-LABEL: @test_mm512_mask_cvtsepi64_epi16
   4589   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.512
   4590   return _mm512_mask_cvtsepi64_epi16(__O, __M, __A);
   4591 }
   4592 
   4593 __m128i test_mm512_maskz_cvtsepi64_epi16(__mmask8 __M, __m512i __A) {
   4594   // CHECK-LABEL: @test_mm512_maskz_cvtsepi64_epi16
   4595   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.512
   4596   return _mm512_maskz_cvtsepi64_epi16(__M, __A);
   4597 }
   4598 
   4599 void test_mm512_mask_cvtsepi64_storeu_epi16(void * __P, __mmask8 __M, __m512i __A) {
   4600   // CHECK-LABEL: @test_mm512_mask_cvtsepi64_storeu_epi16
   4601   // CHECK: @llvm.x86.avx512.mask.pmovs.qw.mem.512
   4602   return _mm512_mask_cvtsepi64_storeu_epi16(__P, __M, __A);
   4603 }
   4604 
   4605 __m128i test_mm512_cvtusepi32_epi8(__m512i __A) {
   4606   // CHECK-LABEL: @test_mm512_cvtusepi32_epi8
   4607   // CHECK: @llvm.x86.avx512.mask.pmovus.db.512
   4608   return _mm512_cvtusepi32_epi8(__A);
   4609 }
   4610 
   4611 __m128i test_mm512_mask_cvtusepi32_epi8(__m128i __O, __mmask16 __M, __m512i __A) {
   4612   // CHECK-LABEL: @test_mm512_mask_cvtusepi32_epi8
   4613   // CHECK: @llvm.x86.avx512.mask.pmovus.db.512
   4614   return _mm512_mask_cvtusepi32_epi8(__O, __M, __A);
   4615 }
   4616 
   4617 __m128i test_mm512_maskz_cvtusepi32_epi8(__mmask16 __M, __m512i __A) {
   4618   // CHECK-LABEL: @test_mm512_maskz_cvtusepi32_epi8
   4619   // CHECK: @llvm.x86.avx512.mask.pmovus.db.512
   4620   return _mm512_maskz_cvtusepi32_epi8(__M, __A);
   4621 }
   4622 
   4623 void test_mm512_mask_cvtusepi32_storeu_epi8(void * __P, __mmask16 __M, __m512i __A) {
   4624   // CHECK-LABEL: @test_mm512_mask_cvtusepi32_storeu_epi8
   4625   // CHECK: @llvm.x86.avx512.mask.pmovus.db.mem.512
   4626   return _mm512_mask_cvtusepi32_storeu_epi8(__P, __M, __A);
   4627 }
   4628 
   4629 __m256i test_mm512_cvtusepi32_epi16(__m512i __A) {
   4630   // CHECK-LABEL: @test_mm512_cvtusepi32_epi16
   4631   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.512
   4632   return _mm512_cvtusepi32_epi16(__A);
   4633 }
   4634 
   4635 __m256i test_mm512_mask_cvtusepi32_epi16(__m256i __O, __mmask16 __M, __m512i __A) {
   4636   // CHECK-LABEL: @test_mm512_mask_cvtusepi32_epi16
   4637   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.512
   4638   return _mm512_mask_cvtusepi32_epi16(__O, __M, __A);
   4639 }
   4640 
   4641 __m256i test_mm512_maskz_cvtusepi32_epi16(__mmask16 __M, __m512i __A) {
   4642   // CHECK-LABEL: @test_mm512_maskz_cvtusepi32_epi16
   4643   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.512
   4644   return _mm512_maskz_cvtusepi32_epi16(__M, __A);
   4645 }
   4646 
   4647 void test_mm512_mask_cvtusepi32_storeu_epi16(void *__P, __mmask16 __M, __m512i __A) {
   4648   // CHECK-LABEL: @test_mm512_mask_cvtusepi32_storeu_epi16
   4649   // CHECK: @llvm.x86.avx512.mask.pmovus.dw.mem.512
   4650   return _mm512_mask_cvtusepi32_storeu_epi16(__P, __M, __A);
   4651 }
   4652 
   4653 __m128i test_mm512_cvtusepi64_epi8(__m512i __A) {
   4654   // CHECK-LABEL: @test_mm512_cvtusepi64_epi8
   4655   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.512
   4656   return _mm512_cvtusepi64_epi8(__A);
   4657 }
   4658 
   4659 __m128i test_mm512_mask_cvtusepi64_epi8(__m128i __O, __mmask8 __M, __m512i __A) {
   4660   // CHECK-LABEL: @test_mm512_mask_cvtusepi64_epi8
   4661   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.512
   4662   return _mm512_mask_cvtusepi64_epi8(__O, __M, __A);
   4663 }
   4664 
   4665 __m128i test_mm512_maskz_cvtusepi64_epi8(__mmask8 __M, __m512i __A) {
   4666   // CHECK-LABEL: @test_mm512_maskz_cvtusepi64_epi8
   4667   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.512
   4668   return _mm512_maskz_cvtusepi64_epi8(__M, __A);
   4669 }
   4670 
   4671 void test_mm512_mask_cvtusepi64_storeu_epi8(void * __P, __mmask8 __M, __m512i __A) {
   4672   // CHECK-LABEL: @test_mm512_mask_cvtusepi64_storeu_epi8
   4673   // CHECK: @llvm.x86.avx512.mask.pmovus.qb.mem.512
   4674   return _mm512_mask_cvtusepi64_storeu_epi8(__P, __M, __A);
   4675 }
   4676 
   4677 __m256i test_mm512_cvtusepi64_epi32(__m512i __A) {
   4678   // CHECK-LABEL: @test_mm512_cvtusepi64_epi32
   4679   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.512
   4680   return _mm512_cvtusepi64_epi32(__A);
   4681 }
   4682 
   4683 __m256i test_mm512_mask_cvtusepi64_epi32(__m256i __O, __mmask8 __M, __m512i __A) {
   4684   // CHECK-LABEL: @test_mm512_mask_cvtusepi64_epi32
   4685   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.512
   4686   return _mm512_mask_cvtusepi64_epi32(__O, __M, __A);
   4687 }
   4688 
   4689 __m256i test_mm512_maskz_cvtusepi64_epi32(__mmask8 __M, __m512i __A) {
   4690   // CHECK-LABEL: @test_mm512_maskz_cvtusepi64_epi32
   4691   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.512
   4692   return _mm512_maskz_cvtusepi64_epi32(__M, __A);
   4693 }
   4694 
   4695 void test_mm512_mask_cvtusepi64_storeu_epi32(void* __P, __mmask8 __M, __m512i __A) {
   4696   // CHECK-LABEL: @test_mm512_mask_cvtusepi64_storeu_epi32
   4697   // CHECK: @llvm.x86.avx512.mask.pmovus.qd.mem.512
   4698   return _mm512_mask_cvtusepi64_storeu_epi32(__P, __M, __A);
   4699 }
   4700 
   4701 __m128i test_mm512_cvtusepi64_epi16(__m512i __A) {
   4702   // CHECK-LABEL: @test_mm512_cvtusepi64_epi16
   4703   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.512
   4704   return _mm512_cvtusepi64_epi16(__A);
   4705 }
   4706 
   4707 __m128i test_mm512_mask_cvtusepi64_epi16(__m128i __O, __mmask8 __M, __m512i __A) {
   4708   // CHECK-LABEL: @test_mm512_mask_cvtusepi64_epi16
   4709   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.512
   4710   return _mm512_mask_cvtusepi64_epi16(__O, __M, __A);
   4711 }
   4712 
   4713 __m128i test_mm512_maskz_cvtusepi64_epi16(__mmask8 __M, __m512i __A) {
   4714   // CHECK-LABEL: @test_mm512_maskz_cvtusepi64_epi16
   4715   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.512
   4716   return _mm512_maskz_cvtusepi64_epi16(__M, __A);
   4717 }
   4718 
   4719 void test_mm512_mask_cvtusepi64_storeu_epi16(void *__P, __mmask8 __M, __m512i __A) {
   4720   // CHECK-LABEL: @test_mm512_mask_cvtusepi64_storeu_epi16
   4721   // CHECK: @llvm.x86.avx512.mask.pmovus.qw.mem.512
   4722   return _mm512_mask_cvtusepi64_storeu_epi16(__P, __M, __A);
   4723 }
   4724 
   4725 __m128i test_mm512_cvtepi32_epi8(__m512i __A) {
   4726   // CHECK-LABEL: @test_mm512_cvtepi32_epi8
   4727   // CHECK: @llvm.x86.avx512.mask.pmov.db.512
   4728   return _mm512_cvtepi32_epi8(__A);
   4729 }
   4730 
   4731 __m128i test_mm512_mask_cvtepi32_epi8(__m128i __O, __mmask16 __M, __m512i __A) {
   4732   // CHECK-LABEL: @test_mm512_mask_cvtepi32_epi8
   4733   // CHECK: @llvm.x86.avx512.mask.pmov.db.512
   4734   return _mm512_mask_cvtepi32_epi8(__O, __M, __A);
   4735 }
   4736 
   4737 __m128i test_mm512_maskz_cvtepi32_epi8(__mmask16 __M, __m512i __A) {
   4738   // CHECK-LABEL: @test_mm512_maskz_cvtepi32_epi8
   4739   // CHECK: @llvm.x86.avx512.mask.pmov.db.512
   4740   return _mm512_maskz_cvtepi32_epi8(__M, __A);
   4741 }
   4742 
   4743 void test_mm512_mask_cvtepi32_storeu_epi8(void * __P, __mmask16 __M, __m512i __A) {
   4744   // CHECK-LABEL: @test_mm512_mask_cvtepi32_storeu_epi8
   4745   // CHECK: @llvm.x86.avx512.mask.pmov.db.mem.512
   4746   return _mm512_mask_cvtepi32_storeu_epi8(__P, __M, __A);
   4747 }
   4748 
   4749 __m256i test_mm512_cvtepi32_epi16(__m512i __A) {
   4750   // CHECK-LABEL: @test_mm512_cvtepi32_epi16
   4751   // CHECK: @llvm.x86.avx512.mask.pmov.dw.512
   4752   return _mm512_cvtepi32_epi16(__A);
   4753 }
   4754 
   4755 __m256i test_mm512_mask_cvtepi32_epi16(__m256i __O, __mmask16 __M, __m512i __A) {
   4756   // CHECK-LABEL: @test_mm512_mask_cvtepi32_epi16
   4757   // CHECK: @llvm.x86.avx512.mask.pmov.dw.512
   4758   return _mm512_mask_cvtepi32_epi16(__O, __M, __A);
   4759 }
   4760 
   4761 __m256i test_mm512_maskz_cvtepi32_epi16(__mmask16 __M, __m512i __A) {
   4762   // CHECK-LABEL: @test_mm512_maskz_cvtepi32_epi16
   4763   // CHECK: @llvm.x86.avx512.mask.pmov.dw.512
   4764   return _mm512_maskz_cvtepi32_epi16(__M, __A);
   4765 }
   4766 
   4767 void test_mm512_mask_cvtepi32_storeu_epi16(void * __P, __mmask16 __M, __m512i __A) {
   4768   // CHECK-LABEL: @test_mm512_mask_cvtepi32_storeu_epi16
   4769   // CHECK: @llvm.x86.avx512.mask.pmov.dw.mem.512
   4770   return _mm512_mask_cvtepi32_storeu_epi16(__P, __M, __A);
   4771 }
   4772 
   4773 __m128i test_mm512_cvtepi64_epi8(__m512i __A) {
   4774   // CHECK-LABEL: @test_mm512_cvtepi64_epi8
   4775   // CHECK: @llvm.x86.avx512.mask.pmov.qb.512
   4776   return _mm512_cvtepi64_epi8(__A);
   4777 }
   4778 
   4779 __m128i test_mm512_mask_cvtepi64_epi8(__m128i __O, __mmask8 __M, __m512i __A) {
   4780   // CHECK-LABEL: @test_mm512_mask_cvtepi64_epi8
   4781   // CHECK: @llvm.x86.avx512.mask.pmov.qb.512
   4782   return _mm512_mask_cvtepi64_epi8(__O, __M, __A);
   4783 }
   4784 
   4785 __m128i test_mm512_maskz_cvtepi64_epi8(__mmask8 __M, __m512i __A) {
   4786   // CHECK-LABEL: @test_mm512_maskz_cvtepi64_epi8
   4787   // CHECK: @llvm.x86.avx512.mask.pmov.qb.512
   4788   return _mm512_maskz_cvtepi64_epi8(__M, __A);
   4789 }
   4790 
   4791 void test_mm512_mask_cvtepi64_storeu_epi8(void * __P, __mmask8 __M, __m512i __A) {
   4792   // CHECK-LABEL: @test_mm512_mask_cvtepi64_storeu_epi8
   4793   // CHECK: @llvm.x86.avx512.mask.pmov.qb.mem.512
   4794   return _mm512_mask_cvtepi64_storeu_epi8(__P, __M, __A);
   4795 }
   4796 
   4797 __m256i test_mm512_cvtepi64_epi32(__m512i __A) {
   4798   // CHECK-LABEL: @test_mm512_cvtepi64_epi32
   4799   // CHECK: @llvm.x86.avx512.mask.pmov.qd.512
   4800   return _mm512_cvtepi64_epi32(__A);
   4801 }
   4802 
   4803 __m256i test_mm512_mask_cvtepi64_epi32(__m256i __O, __mmask8 __M, __m512i __A) {
   4804   // CHECK-LABEL: @test_mm512_mask_cvtepi64_epi32
   4805   // CHECK: @llvm.x86.avx512.mask.pmov.qd.512
   4806   return _mm512_mask_cvtepi64_epi32(__O, __M, __A);
   4807 }
   4808 
   4809 __m256i test_mm512_maskz_cvtepi64_epi32(__mmask8 __M, __m512i __A) {
   4810   // CHECK-LABEL: @test_mm512_maskz_cvtepi64_epi32
   4811   // CHECK: @llvm.x86.avx512.mask.pmov.qd.512
   4812   return _mm512_maskz_cvtepi64_epi32(__M, __A);
   4813 }
   4814 
   4815 void test_mm512_mask_cvtepi64_storeu_epi32(void* __P, __mmask8 __M, __m512i __A) {
   4816   // CHECK-LABEL: @test_mm512_mask_cvtepi64_storeu_epi32
   4817   // CHECK: @llvm.x86.avx512.mask.pmov.qd.mem.512
   4818   return _mm512_mask_cvtepi64_storeu_epi32(__P, __M, __A);
   4819 }
   4820 
   4821 __m128i test_mm512_cvtepi64_epi16(__m512i __A) {
   4822   // CHECK-LABEL: @test_mm512_cvtepi64_epi16
   4823   // CHECK: @llvm.x86.avx512.mask.pmov.qw.512
   4824   return _mm512_cvtepi64_epi16(__A);
   4825 }
   4826 
   4827 __m128i test_mm512_mask_cvtepi64_epi16(__m128i __O, __mmask8 __M, __m512i __A) {
   4828   // CHECK-LABEL: @test_mm512_mask_cvtepi64_epi16
   4829   // CHECK: @llvm.x86.avx512.mask.pmov.qw.512
   4830   return _mm512_mask_cvtepi64_epi16(__O, __M, __A);
   4831 }
   4832 
   4833 __m128i test_mm512_maskz_cvtepi64_epi16(__mmask8 __M, __m512i __A) {
   4834   // CHECK-LABEL: @test_mm512_maskz_cvtepi64_epi16
   4835   // CHECK: @llvm.x86.avx512.mask.pmov.qw.512
   4836   return _mm512_maskz_cvtepi64_epi16(__M, __A);
   4837 }
   4838 
   4839 void test_mm512_mask_cvtepi64_storeu_epi16(void *__P, __mmask8 __M, __m512i __A) {
   4840   // CHECK-LABEL: @test_mm512_mask_cvtepi64_storeu_epi16
   4841   // CHECK: @llvm.x86.avx512.mask.pmov.qw.mem.512
   4842   return _mm512_mask_cvtepi64_storeu_epi16(__P, __M, __A);
   4843 }
   4844 
   4845 __m128i test_mm512_extracti32x4_epi32(__m512i __A) {
   4846   // CHECK-LABEL: @test_mm512_extracti32x4_epi32
   4847   // CHECK: @llvm.x86.avx512.mask.vextracti32x4
   4848   return _mm512_extracti32x4_epi32(__A, 3);
   4849 }
   4850 
   4851 __m128i test_mm512_mask_extracti32x4_epi32(__m128i __W, __mmask8 __U, __m512i __A) {
   4852   // CHECK-LABEL: @test_mm512_mask_extracti32x4_epi32
   4853   // CHECK: @llvm.x86.avx512.mask.vextracti32x4
   4854   return _mm512_mask_extracti32x4_epi32(__W, __U, __A, 3);
   4855 }
   4856 
   4857 __m128i test_mm512_maskz_extracti32x4_epi32(__mmask8 __U, __m512i __A) {
   4858   // CHECK-LABEL: @test_mm512_maskz_extracti32x4_epi32
   4859   // CHECK: @llvm.x86.avx512.mask.vextracti32x4
   4860   return _mm512_maskz_extracti32x4_epi32(__U, __A, 3);
   4861 }
   4862 
   4863 __m256i test_mm512_extracti64x4_epi64(__m512i __A) {
   4864   // CHECK-LABEL: @test_mm512_extracti64x4_epi64
   4865   // CHECK: @llvm.x86.avx512.mask.vextracti64x4
   4866   return _mm512_extracti64x4_epi64(__A, 1);
   4867 }
   4868 
   4869 __m256i test_mm512_mask_extracti64x4_epi64(__m256i __W, __mmask8 __U, __m512i __A) {
   4870   // CHECK-LABEL: @test_mm512_mask_extracti64x4_epi64
   4871   // CHECK: @llvm.x86.avx512.mask.vextracti64x4
   4872   return _mm512_mask_extracti64x4_epi64(__W, __U, __A, 1);
   4873 }
   4874 
   4875 __m256i test_mm512_maskz_extracti64x4_epi64(__mmask8 __U, __m512i __A) {
   4876   // CHECK-LABEL: @test_mm512_maskz_extracti64x4_epi64
   4877   // CHECK: @llvm.x86.avx512.mask.vextracti64x4
   4878   return _mm512_maskz_extracti64x4_epi64(__U, __A, 1);
   4879 }
   4880 
   4881 __m512d test_mm512_insertf64x4(__m512d __A, __m256d __B) {
   4882   // CHECK-LABEL: @test_mm512_insertf64x4
   4883   // CHECK: @llvm.x86.avx512.mask.insertf64x4
   4884   return _mm512_insertf64x4(__A, __B, 1);
   4885 }
   4886 
   4887 __m512d test_mm512_mask_insertf64x4(__m512d __W, __mmask8 __U, __m512d __A, __m256d __B) {
   4888   // CHECK-LABEL: @test_mm512_mask_insertf64x4
   4889   // CHECK: @llvm.x86.avx512.mask.insertf64x4
   4890   return _mm512_mask_insertf64x4(__W, __U, __A, __B, 1);
   4891 }
   4892 
   4893 __m512d test_mm512_maskz_insertf64x4(__mmask8 __U, __m512d __A, __m256d __B) {
   4894   // CHECK-LABEL: @test_mm512_maskz_insertf64x4
   4895   // CHECK: @llvm.x86.avx512.mask.insertf64x4
   4896   return _mm512_maskz_insertf64x4(__U, __A, __B, 1);
   4897 }
   4898 
   4899 __m512i test_mm512_inserti64x4(__m512i __A, __m256i __B) {
   4900   // CHECK-LABEL: @test_mm512_inserti64x4
   4901   // CHECK: @llvm.x86.avx512.mask.inserti64x4
   4902   return _mm512_inserti64x4(__A, __B, 1);
   4903 }
   4904 
   4905 __m512i test_mm512_mask_inserti64x4(__m512i __W, __mmask8 __U, __m512i __A, __m256i __B) {
   4906   // CHECK-LABEL: @test_mm512_mask_inserti64x4
   4907   // CHECK: @llvm.x86.avx512.mask.inserti64x4
   4908   return _mm512_mask_inserti64x4(__W, __U, __A, __B, 1);
   4909 }
   4910 
   4911 __m512i test_mm512_maskz_inserti64x4(__mmask8 __U, __m512i __A, __m256i __B) {
   4912   // CHECK-LABEL: @test_mm512_maskz_inserti64x4
   4913   // CHECK: @llvm.x86.avx512.mask.inserti64x4
   4914   return _mm512_maskz_inserti64x4(__U, __A, __B, 1);
   4915 }
   4916 
   4917 __m512 test_mm512_insertf32x4(__m512 __A, __m128 __B) {
   4918   // CHECK-LABEL: @test_mm512_insertf32x4
   4919   // CHECK: @llvm.x86.avx512.mask.insertf32x4
   4920   return _mm512_insertf32x4(__A, __B, 1);
   4921 }
   4922 
   4923 __m512 test_mm512_mask_insertf32x4(__m512 __W, __mmask16 __U, __m512 __A, __m128 __B) {
   4924   // CHECK-LABEL: @test_mm512_mask_insertf32x4
   4925   // CHECK: @llvm.x86.avx512.mask.insertf32x4
   4926   return _mm512_mask_insertf32x4(__W, __U, __A, __B, 1);
   4927 }
   4928 
   4929 __m512 test_mm512_maskz_insertf32x4(__mmask16 __U, __m512 __A, __m128 __B) {
   4930   // CHECK-LABEL: @test_mm512_maskz_insertf32x4
   4931   // CHECK: @llvm.x86.avx512.mask.insertf32x4
   4932   return _mm512_maskz_insertf32x4(__U, __A, __B, 1);
   4933 }
   4934 
   4935 __m512i test_mm512_inserti32x4(__m512i __A, __m128i __B) {
   4936   // CHECK-LABEL: @test_mm512_inserti32x4
   4937   // CHECK: @llvm.x86.avx512.mask.inserti32x4
   4938   return _mm512_inserti32x4(__A, __B, 1);
   4939 }
   4940 
   4941 __m512i test_mm512_mask_inserti32x4(__m512i __W, __mmask16 __U, __m512i __A, __m128i __B) {
   4942   // CHECK-LABEL: @test_mm512_mask_inserti32x4
   4943   // CHECK: @llvm.x86.avx512.mask.inserti32x4
   4944   return _mm512_mask_inserti32x4(__W, __U, __A, __B, 1);
   4945 }
   4946 
   4947 __m512i test_mm512_maskz_inserti32x4(__mmask16 __U, __m512i __A, __m128i __B) {
   4948   // CHECK-LABEL: @test_mm512_maskz_inserti32x4
   4949   // CHECK: @llvm.x86.avx512.mask.inserti32x4
   4950   return _mm512_maskz_inserti32x4(__U, __A, __B, 1);
   4951 }
   4952 
   4953 __m512d test_mm512_getmant_round_pd(__m512d __A) {
   4954   // CHECK-LABEL: @test_mm512_getmant_round_pd
   4955   // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
   4956   return _mm512_getmant_round_pd(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
   4957 }
   4958 
   4959 __m512d test_mm512_mask_getmant_round_pd(__m512d __W, __mmask8 __U, __m512d __A) {
   4960   // CHECK-LABEL: @test_mm512_mask_getmant_round_pd
   4961   // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
   4962   return _mm512_mask_getmant_round_pd(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
   4963 }
   4964 
   4965 __m512d test_mm512_maskz_getmant_round_pd(__mmask8 __U, __m512d __A) {
   4966   // CHECK-LABEL: @test_mm512_maskz_getmant_round_pd
   4967   // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
   4968   return _mm512_maskz_getmant_round_pd(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
   4969 }
   4970 
   4971 __m512d test_mm512_getmant_pd(__m512d __A) {
   4972   // CHECK-LABEL: @test_mm512_getmant_pd
   4973   // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
   4974   return _mm512_getmant_pd(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
   4975 }
   4976 
   4977 __m512d test_mm512_mask_getmant_pd(__m512d __W, __mmask8 __U, __m512d __A) {
   4978   // CHECK-LABEL: @test_mm512_mask_getmant_pd
   4979   // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
   4980   return _mm512_mask_getmant_pd(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
   4981 }
   4982 
   4983 __m512d test_mm512_maskz_getmant_pd(__mmask8 __U, __m512d __A) {
   4984   // CHECK-LABEL: @test_mm512_maskz_getmant_pd
   4985   // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
   4986   return _mm512_maskz_getmant_pd(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
   4987 }
   4988 
   4989 __m512 test_mm512_getmant_round_ps(__m512 __A) {
   4990   // CHECK-LABEL: @test_mm512_getmant_round_ps
   4991   // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
   4992   return _mm512_getmant_round_ps(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
   4993 }
   4994 
   4995 __m512 test_mm512_mask_getmant_round_ps(__m512 __W, __mmask16 __U, __m512 __A) {
   4996   // CHECK-LABEL: @test_mm512_mask_getmant_round_ps
   4997   // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
   4998   return _mm512_mask_getmant_round_ps(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
   4999 }
   5000 
   5001 __m512 test_mm512_maskz_getmant_round_ps(__mmask16 __U, __m512 __A) {
   5002   // CHECK-LABEL: @test_mm512_maskz_getmant_round_ps
   5003   // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
   5004   return _mm512_maskz_getmant_round_ps(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
   5005 }
   5006 
   5007 __m512 test_mm512_getmant_ps(__m512 __A) {
   5008   // CHECK-LABEL: @test_mm512_getmant_ps
   5009   // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
   5010   return _mm512_getmant_ps(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
   5011 }
   5012 
   5013 __m512 test_mm512_mask_getmant_ps(__m512 __W, __mmask16 __U, __m512 __A) {
   5014   // CHECK-LABEL: @test_mm512_mask_getmant_ps
   5015   // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
   5016   return _mm512_mask_getmant_ps(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
   5017 }
   5018 
   5019 __m512 test_mm512_maskz_getmant_ps(__mmask16 __U, __m512 __A) {
   5020   // CHECK-LABEL: @test_mm512_maskz_getmant_ps
   5021   // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
   5022   return _mm512_maskz_getmant_ps(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
   5023 }
   5024 
   5025 __m512d test_mm512_getexp_round_pd(__m512d __A) {
   5026   // CHECK-LABEL: @test_mm512_getexp_round_pd
   5027   // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
   5028   return _mm512_getexp_round_pd(__A, _MM_FROUND_CUR_DIRECTION);
   5029 }
   5030 
   5031 __m512d test_mm512_mask_getexp_round_pd(__m512d __W, __mmask8 __U, __m512d __A) {
   5032   // CHECK-LABEL: @test_mm512_mask_getexp_round_pd
   5033   // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
   5034   return _mm512_mask_getexp_round_pd(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
   5035 }
   5036 
   5037 __m512d test_mm512_maskz_getexp_round_pd(__mmask8 __U, __m512d __A) {
   5038   // CHECK-LABEL: @test_mm512_maskz_getexp_round_pd
   5039   // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
   5040   return _mm512_maskz_getexp_round_pd(__U, __A, _MM_FROUND_CUR_DIRECTION);
   5041 }
   5042 
   5043 __m512d test_mm512_getexp_pd(__m512d __A) {
   5044   // CHECK-LABEL: @test_mm512_getexp_pd
   5045   // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
   5046   return _mm512_getexp_pd(__A);
   5047 }
   5048 
   5049 __m512d test_mm512_mask_getexp_pd(__m512d __W, __mmask8 __U, __m512d __A) {
   5050   // CHECK-LABEL: @test_mm512_mask_getexp_pd
   5051   // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
   5052   return _mm512_mask_getexp_pd(__W, __U, __A);
   5053 }
   5054 
   5055 __m512d test_mm512_maskz_getexp_pd(__mmask8 __U, __m512d __A) {
   5056   // CHECK-LABEL: @test_mm512_maskz_getexp_pd
   5057   // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
   5058   return _mm512_maskz_getexp_pd(__U, __A);
   5059 }
   5060 
   5061 __m512 test_mm512_getexp_round_ps(__m512 __A) {
   5062   // CHECK-LABEL: @test_mm512_getexp_round_ps
   5063   // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
   5064   return _mm512_getexp_round_ps(__A, _MM_FROUND_CUR_DIRECTION);
   5065 }
   5066 
   5067 __m512 test_mm512_mask_getexp_round_ps(__m512 __W, __mmask16 __U, __m512 __A) {
   5068   // CHECK-LABEL: @test_mm512_mask_getexp_round_ps
   5069   // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
   5070   return _mm512_mask_getexp_round_ps(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
   5071 }
   5072 
   5073 __m512 test_mm512_maskz_getexp_round_ps(__mmask16 __U, __m512 __A) {
   5074   // CHECK-LABEL: @test_mm512_maskz_getexp_round_ps
   5075   // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
   5076   return _mm512_maskz_getexp_round_ps(__U, __A, _MM_FROUND_CUR_DIRECTION);
   5077 }
   5078 
   5079 __m512 test_mm512_getexp_ps(__m512 __A) {
   5080   // CHECK-LABEL: @test_mm512_getexp_ps
   5081   // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
   5082   return _mm512_getexp_ps(__A);
   5083 }
   5084 
   5085 __m512 test_mm512_mask_getexp_ps(__m512 __W, __mmask16 __U, __m512 __A) {
   5086   // CHECK-LABEL: @test_mm512_mask_getexp_ps
   5087   // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
   5088   return _mm512_mask_getexp_ps(__W, __U, __A);
   5089 }
   5090 
   5091 __m512 test_mm512_maskz_getexp_ps(__mmask16 __U, __m512 __A) {
   5092   // CHECK-LABEL: @test_mm512_maskz_getexp_ps
   5093   // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
   5094   return _mm512_maskz_getexp_ps(__U, __A);
   5095 }
   5096 
   5097 __m256 test_mm512_i64gather_ps(__m512i __index, void const *__addr) {
   5098   // CHECK-LABEL: @test_mm512_i64gather_ps
   5099   // CHECK: @llvm.x86.avx512.gather.qps.512
   5100   return _mm512_i64gather_ps(__index, __addr, 2);
   5101 }
   5102 
   5103 __m256 test_mm512_mask_i64gather_ps(__m256 __v1_old, __mmask8 __mask, __m512i __index, void const *__addr) {
   5104   // CHECK-LABEL: @test_mm512_mask_i64gather_ps
   5105   // CHECK: @llvm.x86.avx512.gather.qps.512
   5106   return _mm512_mask_i64gather_ps(__v1_old, __mask, __index, __addr, 2);
   5107 }
   5108 
   5109 __m256i test_mm512_i64gather_epi32(__m512i __index, void const *__addr) {
   5110   // CHECK-LABEL: @test_mm512_i64gather_epi32
   5111   // CHECK: @llvm.x86.avx512.gather.qpi.512
   5112   return _mm512_i64gather_epi32(__index, __addr, 2);
   5113 }
   5114 
   5115 __m256i test_mm512_mask_i64gather_epi32(__m256i __v1_old, __mmask8 __mask, __m512i __index, void const *__addr) {
   5116   // CHECK-LABEL: @test_mm512_mask_i64gather_epi32
   5117   // CHECK: @llvm.x86.avx512.gather.qpi.512
   5118   return _mm512_mask_i64gather_epi32(__v1_old, __mask, __index, __addr, 2);
   5119 }
   5120 
   5121 __m512d test_mm512_i64gather_pd(__m512i __index, void const *__addr) {
   5122   // CHECK-LABEL: @test_mm512_i64gather_pd
   5123   // CHECK: @llvm.x86.avx512.gather.qpd.512
   5124   return _mm512_i64gather_pd(__index, __addr, 2);
   5125 }
   5126 
   5127 __m512d test_mm512_mask_i64gather_pd(__m512d __v1_old, __mmask8 __mask, __m512i __index, void const *__addr) {
   5128   // CHECK-LABEL: @test_mm512_mask_i64gather_pd
   5129   // CHECK: @llvm.x86.avx512.gather.qpd.512
   5130   return _mm512_mask_i64gather_pd(__v1_old, __mask, __index, __addr, 2);
   5131 }
   5132 
   5133 __m512i test_mm512_i64gather_epi64(__m512i __index, void const *__addr) {
   5134   // CHECK-LABEL: @test_mm512_i64gather_epi64
   5135   // CHECK: @llvm.x86.avx512.gather.qpq.512
   5136   return _mm512_i64gather_epi64(__index, __addr, 2);
   5137 }
   5138 
   5139 __m512i test_mm512_mask_i64gather_epi64(__m512i __v1_old, __mmask8 __mask, __m512i __index, void const *__addr) {
   5140   // CHECK-LABEL: @test_mm512_mask_i64gather_epi64
   5141   // CHECK: @llvm.x86.avx512.gather.qpq.512
   5142   return _mm512_mask_i64gather_epi64(__v1_old, __mask, __index, __addr, 2);
   5143 }
   5144 
   5145 __m512 test_mm512_i32gather_ps(__m512i __index, void const *__addr) {
   5146   // CHECK-LABEL: @test_mm512_i32gather_ps
   5147   // CHECK: @llvm.x86.avx512.gather.dps.512
   5148   return _mm512_i32gather_ps(__index, __addr, 2);
   5149 }
   5150 
   5151 __m512 test_mm512_mask_i32gather_ps(__m512 v1_old, __mmask16 __mask, __m512i __index, void const *__addr) {
   5152   // CHECK-LABEL: @test_mm512_mask_i32gather_ps
   5153   // CHECK: @llvm.x86.avx512.gather.dps.512
   5154   return _mm512_mask_i32gather_ps(v1_old, __mask, __index, __addr, 2);
   5155 }
   5156 
   5157 __m512i test_mm512_i32gather_epi32(__m512i __index, void const *__addr) {
   5158   // CHECK-LABEL: @test_mm512_i32gather_epi32
   5159   // CHECK: @llvm.x86.avx512.gather.dpi.512
   5160   return _mm512_i32gather_epi32(__index, __addr, 2);
   5161 }
   5162 
   5163 __m512i test_mm512_mask_i32gather_epi32(__m512i __v1_old, __mmask16 __mask, __m512i __index, void const *__addr) {
   5164   // CHECK-LABEL: @test_mm512_mask_i32gather_epi32
   5165   // CHECK: @llvm.x86.avx512.gather.dpi.512
   5166   return _mm512_mask_i32gather_epi32(__v1_old, __mask, __index, __addr, 2);
   5167 }
   5168 
   5169 __m512d test_mm512_i32gather_pd(__m256i __index, void const *__addr) {
   5170   // CHECK-LABEL: @test_mm512_i32gather_pd
   5171   // CHECK: @llvm.x86.avx512.gather.dpd.512
   5172   return _mm512_i32gather_pd(__index, __addr, 2);
   5173 }
   5174 
   5175 __m512d test_mm512_mask_i32gather_pd(__m512d __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
   5176   // CHECK-LABEL: @test_mm512_mask_i32gather_pd
   5177   // CHECK: @llvm.x86.avx512.gather.dpd.512
   5178   return _mm512_mask_i32gather_pd(__v1_old, __mask, __index, __addr, 2);
   5179 }
   5180 
   5181 __m512i test_mm512_i32gather_epi64(__m256i __index, void const *__addr) {
   5182   // CHECK-LABEL: @test_mm512_i32gather_epi64
   5183   // CHECK: @llvm.x86.avx512.gather.dpq.512
   5184   return _mm512_i32gather_epi64(__index, __addr, 2);
   5185 }
   5186 
   5187 __m512i test_mm512_mask_i32gather_epi64(__m512i __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) {
   5188   // CHECK-LABEL: @test_mm512_mask_i32gather_epi64
   5189   // CHECK: @llvm.x86.avx512.gather.dpq.512
   5190   return _mm512_mask_i32gather_epi64(__v1_old, __mask, __index, __addr, 2);
   5191 }
   5192 
   5193 void test_mm512_i64scatter_ps(void *__addr, __m512i __index, __m256 __v1) {
   5194   // CHECK-LABEL: @test_mm512_i64scatter_ps
   5195   // CHECK: @llvm.x86.avx512.scatter.qps.512
   5196   return _mm512_i64scatter_ps(__addr, __index, __v1, 2);
   5197 }
   5198 
   5199 void test_mm512_mask_i64scatter_ps(void *__addr, __mmask8 __mask, __m512i __index, __m256 __v1) {
   5200   // CHECK-LABEL: @test_mm512_mask_i64scatter_ps
   5201   // CHECK: @llvm.x86.avx512.scatter.qps.512
   5202   return _mm512_mask_i64scatter_ps(__addr, __mask, __index, __v1, 2);
   5203 }
   5204 
   5205 void test_mm512_i64scatter_epi32(void *__addr, __m512i __index, __m256i __v1) {
   5206   // CHECK-LABEL: @test_mm512_i64scatter_epi32
   5207   // CHECK: @llvm.x86.avx512.scatter.qpi.512
   5208   return _mm512_i64scatter_epi32(__addr, __index, __v1, 2);
   5209 }
   5210 
   5211 void test_mm512_mask_i64scatter_epi32(void *__addr, __mmask8 __mask, __m512i __index, __m256i __v1) {
   5212   // CHECK-LABEL: @test_mm512_mask_i64scatter_epi32
   5213   // CHECK: @llvm.x86.avx512.scatter.qpi.512
   5214   return _mm512_mask_i64scatter_epi32(__addr, __mask, __index, __v1, 2);
   5215 }
   5216 
   5217 void test_mm512_i64scatter_pd(void *__addr, __m512i __index, __m512d __v1) {
   5218   // CHECK-LABEL: @test_mm512_i64scatter_pd
   5219   // CHECK: @llvm.x86.avx512.scatter.qpd.512
   5220   return _mm512_i64scatter_pd(__addr, __index, __v1, 2);
   5221 }
   5222 
   5223 void test_mm512_mask_i64scatter_pd(void *__addr, __mmask8 __mask, __m512i __index, __m512d __v1) {
   5224   // CHECK-LABEL: @test_mm512_mask_i64scatter_pd
   5225   // CHECK: @llvm.x86.avx512.scatter.qpd.512
   5226   return _mm512_mask_i64scatter_pd(__addr, __mask, __index, __v1, 2);
   5227 }
   5228 
   5229 void test_mm512_i64scatter_epi64(void *__addr, __m512i __index, __m512i __v1) {
   5230   // CHECK-LABEL: @test_mm512_i64scatter_epi64
   5231   // CHECK: @llvm.x86.avx512.scatter.qpq.512
   5232   return _mm512_i64scatter_epi64(__addr, __index, __v1, 2);
   5233 }
   5234 
   5235 void test_mm512_mask_i64scatter_epi64(void *__addr, __mmask8 __mask, __m512i __index, __m512i __v1) {
   5236   // CHECK-LABEL: @test_mm512_mask_i64scatter_epi64
   5237   // CHECK: @llvm.x86.avx512.scatter.qpq.512
   5238   return _mm512_mask_i64scatter_epi64(__addr, __mask, __index, __v1, 2);
   5239 }
   5240 
   5241 void test_mm512_i32scatter_ps(void *__addr, __m512i __index, __m512 __v1) {
   5242   // CHECK-LABEL: @test_mm512_i32scatter_ps
   5243   // CHECK: @llvm.x86.avx512.scatter.dps.512
   5244   return _mm512_i32scatter_ps(__addr, __index, __v1, 2);
   5245 }
   5246 
   5247 void test_mm512_mask_i32scatter_ps(void *__addr, __mmask16 __mask, __m512i __index, __m512 __v1) {
   5248   // CHECK-LABEL: @test_mm512_mask_i32scatter_ps
   5249   // CHECK: @llvm.x86.avx512.scatter.dps.512
   5250   return _mm512_mask_i32scatter_ps(__addr, __mask, __index, __v1, 2);
   5251 }
   5252 
   5253 void test_mm512_i32scatter_epi32(void *__addr, __m512i __index, __m512i __v1) {
   5254   // CHECK-LABEL: @test_mm512_i32scatter_epi32
   5255   // CHECK: @llvm.x86.avx512.scatter.dpi.512
   5256   return _mm512_i32scatter_epi32(__addr, __index, __v1, 2);
   5257 }
   5258 
   5259 void test_mm512_mask_i32scatter_epi32(void *__addr, __mmask16 __mask, __m512i __index, __m512i __v1) {
   5260   // CHECK-LABEL: @test_mm512_mask_i32scatter_epi32
   5261   // CHECK: @llvm.x86.avx512.scatter.dpi.512
   5262   return _mm512_mask_i32scatter_epi32(__addr, __mask, __index, __v1, 2);
   5263 }
   5264 
   5265 void test_mm512_i32scatter_pd(void *__addr, __m256i __index, __m512d __v1) {
   5266   // CHECK-LABEL: @test_mm512_i32scatter_pd
   5267   // CHECK: @llvm.x86.avx512.scatter.dpd.512
   5268   return _mm512_i32scatter_pd(__addr, __index, __v1, 2);
   5269 }
   5270 
   5271 void test_mm512_mask_i32scatter_pd(void *__addr, __mmask8 __mask, __m256i __index, __m512d __v1) {
   5272   // CHECK-LABEL: @test_mm512_mask_i32scatter_pd
   5273   // CHECK: @llvm.x86.avx512.scatter.dpd.512
   5274   return _mm512_mask_i32scatter_pd(__addr, __mask, __index, __v1, 2);
   5275 }
   5276 
   5277 void test_mm512_i32scatter_epi64(void *__addr, __m256i __index, __m512i __v1) {
   5278   // CHECK-LABEL: @test_mm512_i32scatter_epi64
   5279   // CHECK: @llvm.x86.avx512.scatter.dpq.512
   5280   return _mm512_i32scatter_epi64(__addr, __index, __v1, 2);
   5281 }
   5282 
   5283 void test_mm512_mask_i32scatter_epi64(void *__addr, __mmask8 __mask, __m256i __index, __m512i __v1) {
   5284   // CHECK-LABEL: @test_mm512_mask_i32scatter_epi64
   5285   // CHECK: @llvm.x86.avx512.scatter.dpq.512
   5286   return _mm512_mask_i32scatter_epi64(__addr, __mask, __index, __v1, 2);
   5287 }
   5288 
   5289 __m128d test_mm_mask_rsqrt14_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
   5290   // CHECK-LABEL: @test_mm_mask_rsqrt14_sd
   5291   // CHECK: @llvm.x86.avx512.rsqrt14.sd
   5292   return _mm_mask_rsqrt14_sd(__W, __U, __A, __B);
   5293 }
   5294 
   5295 __m128d test_mm_maskz_rsqrt14_sd(__mmask8 __U, __m128d __A, __m128d __B){
   5296   // CHECK-LABEL: @test_mm_maskz_rsqrt14_sd
   5297   // CHECK: @llvm.x86.avx512.rsqrt14.sd
   5298   return _mm_maskz_rsqrt14_sd(__U, __A, __B);
   5299 }
   5300 
   5301 __m128 test_mm_mask_rsqrt14_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
   5302   // CHECK-LABEL: @test_mm_mask_rsqrt14_ss
   5303   // CHECK: @llvm.x86.avx512.rsqrt14.ss
   5304   return _mm_mask_rsqrt14_ss(__W, __U, __A, __B);
   5305 }
   5306 
   5307 __m128 test_mm_maskz_rsqrt14_ss(__mmask8 __U, __m128 __A, __m128 __B){
   5308   // CHECK-LABEL: @test_mm_maskz_rsqrt14_ss
   5309   // CHECK: @llvm.x86.avx512.rsqrt14.ss
   5310   return _mm_maskz_rsqrt14_ss(__U, __A, __B);
   5311 }
   5312 
   5313 __m512d test_mm512_mask_rcp14_pd (__m512d __W, __mmask8 __U, __m512d __A)
   5314 {
   5315   // CHECK-LABEL: @test_mm512_mask_rcp14_pd
   5316   // CHECK: @llvm.x86.avx512.rcp14.pd.512
   5317   return _mm512_mask_rcp14_pd (__W,__U,__A);
   5318 }
   5319 
   5320 __m512d test_mm512_maskz_rcp14_pd (__mmask8 __U, __m512d __A)
   5321 {
   5322   // CHECK-LABEL: @test_mm512_maskz_rcp14_pd
   5323   // CHECK: @llvm.x86.avx512.rcp14.pd.512
   5324   return _mm512_maskz_rcp14_pd (__U,__A);
   5325 }
   5326 
   5327 __m512 test_mm512_mask_rcp14_ps (__m512 __W, __mmask16 __U, __m512 __A)
   5328 {
   5329   // CHECK-LABEL: @test_mm512_mask_rcp14_ps
   5330   // CHECK: @llvm.x86.avx512.rcp14.ps.512
   5331   return _mm512_mask_rcp14_ps (__W,__U,__A);
   5332 }
   5333 
   5334 __m512 test_mm512_maskz_rcp14_ps (__mmask16 __U, __m512 __A)
   5335 {
   5336   // CHECK-LABEL: @test_mm512_maskz_rcp14_ps
   5337   // CHECK: @llvm.x86.avx512.rcp14.ps.512
   5338   return _mm512_maskz_rcp14_ps (__U,__A);
   5339 }
   5340 
   5341 __m128d test_mm_mask_rcp14_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
   5342   // CHECK-LABEL: @test_mm_mask_rcp14_sd
   5343   // CHECK: @llvm.x86.avx512.rcp14.sd
   5344   return _mm_mask_rcp14_sd(__W, __U, __A, __B);
   5345 }
   5346 
   5347 __m128d test_mm_maskz_rcp14_sd(__mmask8 __U, __m128d __A, __m128d __B){
   5348   // CHECK-LABEL: @test_mm_maskz_rcp14_sd
   5349   // CHECK: @llvm.x86.avx512.rcp14.sd
   5350   return _mm_maskz_rcp14_sd(__U, __A, __B);
   5351 }
   5352 
   5353 __m128 test_mm_mask_rcp14_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
   5354   // CHECK-LABEL: @test_mm_mask_rcp14_ss
   5355   // CHECK: @llvm.x86.avx512.rcp14.ss
   5356   return _mm_mask_rcp14_ss(__W, __U, __A, __B);
   5357 }
   5358 
   5359 __m128 test_mm_maskz_rcp14_ss(__mmask8 __U, __m128 __A, __m128 __B){
   5360   // CHECK-LABEL: @test_mm_maskz_rcp14_ss
   5361   // CHECK: @llvm.x86.avx512.rcp14.ss
   5362   return _mm_maskz_rcp14_ss(__U, __A, __B);
   5363 }
   5364 
   5365 __m128d test_mm_mask_getexp_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
   5366   // CHECK-LABEL: @test_mm_mask_getexp_sd
   5367   // CHECK: @llvm.x86.avx512.mask.getexp.sd
   5368   return _mm_mask_getexp_sd(__W, __U, __A, __B);
   5369 }
   5370 
   5371 __m128d test_mm_mask_getexp_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
   5372   // CHECK-LABEL: @test_mm_mask_getexp_round_sd
   5373   // CHECK: @llvm.x86.avx512.mask.getexp.sd
   5374   return _mm_mask_getexp_round_sd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
   5375 }
   5376 
   5377 __m128d test_mm_maskz_getexp_sd(__mmask8 __U, __m128d __A, __m128d __B){
   5378   // CHECK-LABEL: @test_mm_maskz_getexp_sd
   5379   // CHECK: @llvm.x86.avx512.mask.getexp.sd
   5380   return _mm_maskz_getexp_sd(__U, __A, __B);
   5381 }
   5382 
   5383 __m128d test_mm_maskz_getexp_round_sd(__mmask8 __U, __m128d __A, __m128d __B){
   5384   // CHECK-LABEL: @test_mm_maskz_getexp_round_sd
   5385   // CHECK: @llvm.x86.avx512.mask.getexp.sd
   5386   return _mm_maskz_getexp_round_sd(__U, __A, __B, _MM_FROUND_CUR_DIRECTION);
   5387 }
   5388 
   5389 __m128 test_mm_mask_getexp_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
   5390   // CHECK-LABEL: @test_mm_mask_getexp_ss
   5391   // CHECK: @llvm.x86.avx512.mask.getexp.ss
   5392   return _mm_mask_getexp_ss(__W, __U, __A, __B);
   5393 }
   5394 
   5395 __m128 test_mm_mask_getexp_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
   5396   // CHECK-LABEL: @test_mm_mask_getexp_round_ss
   5397   // CHECK: @llvm.x86.avx512.mask.getexp.ss
   5398   return _mm_mask_getexp_round_ss(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
   5399 }
   5400 
   5401 __m128 test_mm_maskz_getexp_ss(__mmask8 __U, __m128 __A, __m128 __B){
   5402   // CHECK-LABEL: @test_mm_maskz_getexp_ss
   5403   // CHECK: @llvm.x86.avx512.mask.getexp.ss
   5404   return _mm_maskz_getexp_ss(__U, __A, __B);
   5405 }
   5406 
   5407 __m128 test_mm_maskz_getexp_round_ss(__mmask8 __U, __m128 __A, __m128 __B){
   5408   // CHECK-LABEL: @test_mm_maskz_getexp_round_ss
   5409   // CHECK: @llvm.x86.avx512.mask.getexp.ss
   5410   return _mm_maskz_getexp_round_ss(__U, __A, __B, _MM_FROUND_CUR_DIRECTION);
   5411 }
   5412 
   5413 __m128d test_mm_mask_getmant_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
   5414   // CHECK-LABEL: @test_mm_mask_getmant_sd
   5415   // CHECK: @llvm.x86.avx512.mask.getmant.sd
   5416   return _mm_mask_getmant_sd(__W, __U, __A, __B, 1, 2);
   5417 }
   5418 
   5419 __m128d test_mm_mask_getmant_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
   5420   // CHECK-LABEL: @test_mm_mask_getmant_round_sd
   5421   // CHECK: @llvm.x86.avx512.mask.getmant.sd
   5422   return _mm_mask_getmant_round_sd(__W, __U, __A, __B, 1, 2, _MM_FROUND_CUR_DIRECTION);
   5423 }
   5424 
   5425 __m128d test_mm_maskz_getmant_sd(__mmask8 __U, __m128d __A, __m128d __B){
   5426   // CHECK-LABEL: @test_mm_maskz_getmant_sd
   5427   // CHECK: @llvm.x86.avx512.mask.getmant.sd
   5428   return _mm_maskz_getmant_sd(__U, __A, __B, 1, 2);
   5429 }
   5430 
   5431 __m128d test_mm_maskz_getmant_round_sd(__mmask8 __U, __m128d __A, __m128d __B){
   5432   // CHECK-LABEL: @test_mm_maskz_getmant_round_sd
   5433   // CHECK: @llvm.x86.avx512.mask.getmant.sd
   5434   return _mm_maskz_getmant_round_sd(__U, __A, __B, 1, 2, _MM_FROUND_CUR_DIRECTION);
   5435 }
   5436 
   5437 __m128 test_mm_mask_getmant_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
   5438   // CHECK-LABEL: @test_mm_mask_getmant_ss
   5439   // CHECK: @llvm.x86.avx512.mask.getmant.ss
   5440   return _mm_mask_getmant_ss(__W, __U, __A, __B, 1, 2);
   5441 }
   5442 
   5443 __m128 test_mm_mask_getmant_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
   5444   // CHECK-LABEL: @test_mm_mask_getmant_round_ss
   5445   // CHECK: @llvm.x86.avx512.mask.getmant.ss
   5446   return _mm_mask_getmant_round_ss(__W, __U, __A, __B, 1, 2, _MM_FROUND_CUR_DIRECTION);
   5447 }
   5448 
   5449 __m128 test_mm_maskz_getmant_ss(__mmask8 __U, __m128 __A, __m128 __B){
   5450   // CHECK-LABEL: @test_mm_maskz_getmant_ss
   5451   // CHECK: @llvm.x86.avx512.mask.getmant.ss
   5452   return _mm_maskz_getmant_ss(__U, __A, __B, 1, 2);
   5453 }
   5454 
   5455 __m128 test_mm_maskz_getmant_round_ss(__mmask8 __U, __m128 __A, __m128 __B){
   5456   // CHECK-LABEL: @test_mm_maskz_getmant_round_ss
   5457   // CHECK: @llvm.x86.avx512.mask.getmant.ss
   5458   return _mm_maskz_getmant_round_ss(__U, __A, __B, 1, 2, _MM_FROUND_CUR_DIRECTION);
   5459 }
   5460 
   5461 __m128 test_mm_mask_fmadd_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
   5462   // CHECK-LABEL: @test_mm_mask_fmadd_ss
   5463   // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
   5464   return _mm_mask_fmadd_ss(__W, __U, __A, __B);
   5465 }
   5466 
   5467 __m128 test_mm_mask_fmadd_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
   5468   // CHECK-LABEL: @test_mm_mask_fmadd_round_ss
   5469   // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
   5470   return _mm_mask_fmadd_round_ss(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
   5471 }
   5472 
   5473 __m128 test_mm_maskz_fmadd_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
   5474   // CHECK-LABEL: @test_mm_maskz_fmadd_ss
   5475   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
   5476   return _mm_maskz_fmadd_ss(__U, __A, __B, __C);
   5477 }
   5478 
   5479 __m128 test_mm_maskz_fmadd_round_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
   5480   // CHECK-LABEL: @test_mm_maskz_fmadd_round_ss
   5481   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
   5482   return _mm_maskz_fmadd_round_ss(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
   5483 }
   5484 
   5485 __m128 test_mm_mask3_fmadd_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
   5486   // CHECK-LABEL: @test_mm_mask3_fmadd_ss
   5487   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ss
   5488   return _mm_mask3_fmadd_ss(__W, __X, __Y, __U);
   5489 }
   5490 
   5491 __m128 test_mm_mask3_fmadd_round_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
   5492   // CHECK-LABEL: @test_mm_mask3_fmadd_round_ss
   5493   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ss
   5494   return _mm_mask3_fmadd_round_ss(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
   5495 }
   5496 
   5497 __m128 test_mm_mask_fmsub_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
   5498   // CHECK-LABEL: @test_mm_mask_fmsub_ss
   5499   // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
   5500   return _mm_mask_fmsub_ss(__W, __U, __A, __B);
   5501 }
   5502 
   5503 __m128 test_mm_mask_fmsub_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
   5504   // CHECK-LABEL: @test_mm_mask_fmsub_round_ss
   5505   // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
   5506   return _mm_mask_fmsub_round_ss(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
   5507 }
   5508 
   5509 __m128 test_mm_maskz_fmsub_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
   5510   // CHECK-LABEL: @test_mm_maskz_fmsub_ss
   5511   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
   5512   return _mm_maskz_fmsub_ss(__U, __A, __B, __C);
   5513 }
   5514 
   5515 __m128 test_mm_maskz_fmsub_round_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
   5516   // CHECK-LABEL: @test_mm_maskz_fmsub_round_ss
   5517   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
   5518   return _mm_maskz_fmsub_round_ss(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
   5519 }
   5520 
   5521 __m128 test_mm_mask3_fmsub_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
   5522   // CHECK-LABEL: @test_mm_mask3_fmsub_ss
   5523   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ss
   5524   return _mm_mask3_fmsub_ss(__W, __X, __Y, __U);
   5525 }
   5526 
   5527 __m128 test_mm_mask3_fmsub_round_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
   5528   // CHECK-LABEL: @test_mm_mask3_fmsub_round_ss
   5529   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ss
   5530   return _mm_mask3_fmsub_round_ss(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
   5531 }
   5532 
   5533 __m128 test_mm_mask_fnmadd_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
   5534   // CHECK-LABEL: @test_mm_mask_fnmadd_ss
   5535   // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
   5536   return _mm_mask_fnmadd_ss(__W, __U, __A, __B);
   5537 }
   5538 
   5539 __m128 test_mm_mask_fnmadd_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
   5540   // CHECK-LABEL: @test_mm_mask_fnmadd_round_ss
   5541   // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
   5542   return _mm_mask_fnmadd_round_ss(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
   5543 }
   5544 
   5545 __m128 test_mm_maskz_fnmadd_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
   5546   // CHECK-LABEL: @test_mm_maskz_fnmadd_ss
   5547   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
   5548   return _mm_maskz_fnmadd_ss(__U, __A, __B, __C);
   5549 }
   5550 
   5551 __m128 test_mm_maskz_fnmadd_round_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
   5552   // CHECK-LABEL: @test_mm_maskz_fnmadd_round_ss
   5553   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
   5554   return _mm_maskz_fnmadd_round_ss(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
   5555 }
   5556 
   5557 __m128 test_mm_mask3_fnmadd_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
   5558   // CHECK-LABEL: @test_mm_mask3_fnmadd_ss
   5559   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ss
   5560   return _mm_mask3_fnmadd_ss(__W, __X, __Y, __U);
   5561 }
   5562 
   5563 __m128 test_mm_mask3_fnmadd_round_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
   5564   // CHECK-LABEL: @test_mm_mask3_fnmadd_round_ss
   5565   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ss
   5566   return _mm_mask3_fnmadd_round_ss(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
   5567 }
   5568 
   5569 __m128 test_mm_mask_fnmsub_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
   5570   // CHECK-LABEL: @test_mm_mask_fnmsub_ss
   5571   // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
   5572   return _mm_mask_fnmsub_ss(__W, __U, __A, __B);
   5573 }
   5574 
   5575 __m128 test_mm_mask_fnmsub_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B){
   5576   // CHECK-LABEL: @test_mm_mask_fnmsub_round_ss
   5577   // CHECK: @llvm.x86.avx512.mask.vfmadd.ss
   5578   return _mm_mask_fnmsub_round_ss(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
   5579 }
   5580 
   5581 __m128 test_mm_maskz_fnmsub_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
   5582   // CHECK-LABEL: @test_mm_maskz_fnmsub_ss
   5583   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
   5584   return _mm_maskz_fnmsub_ss(__U, __A, __B, __C);
   5585 }
   5586 
   5587 __m128 test_mm_maskz_fnmsub_round_ss(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C){
   5588   // CHECK-LABEL: @test_mm_maskz_fnmsub_round_ss
   5589   // CHECK: @llvm.x86.avx512.maskz.vfmadd.ss
   5590   return _mm_maskz_fnmsub_round_ss(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
   5591 }
   5592 
   5593 __m128 test_mm_mask3_fnmsub_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
   5594   // CHECK-LABEL: @test_mm_mask3_fnmsub_ss
   5595   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ss
   5596   return _mm_mask3_fnmsub_ss(__W, __X, __Y, __U);
   5597 }
   5598 
   5599 __m128 test_mm_mask3_fnmsub_round_ss(__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U){
   5600   // CHECK-LABEL: @test_mm_mask3_fnmsub_round_ss
   5601   // CHECK: @llvm.x86.avx512.mask3.vfmadd.ss
   5602   return _mm_mask3_fnmsub_round_ss(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
   5603 }
   5604 
   5605 __m128d test_mm_mask_fmadd_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
   5606   // CHECK-LABEL: @test_mm_mask_fmadd_sd
   5607   // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
   5608   return _mm_mask_fmadd_sd(__W, __U, __A, __B);
   5609 }
   5610 
   5611 __m128d test_mm_mask_fmadd_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
   5612   // CHECK-LABEL: @test_mm_mask_fmadd_round_sd
   5613   // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
   5614   return _mm_mask_fmadd_round_sd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
   5615 }
   5616 
   5617 __m128d test_mm_maskz_fmadd_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
   5618   // CHECK-LABEL: @test_mm_maskz_fmadd_sd
   5619   // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
   5620   return _mm_maskz_fmadd_sd(__U, __A, __B, __C);
   5621 }
   5622 
   5623 __m128d test_mm_maskz_fmadd_round_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
   5624   // CHECK-LABEL: @test_mm_maskz_fmadd_round_sd
   5625   // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
   5626   return _mm_maskz_fmadd_round_sd(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
   5627 }
   5628 
   5629 __m128d test_mm_mask3_fmadd_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
   5630   // CHECK-LABEL: @test_mm_mask3_fmadd_sd
   5631   // CHECK: @llvm.x86.avx512.mask3.vfmadd.sd
   5632   return _mm_mask3_fmadd_sd(__W, __X, __Y, __U);
   5633 }
   5634 
   5635 __m128d test_mm_mask3_fmadd_round_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
   5636   // CHECK-LABEL: @test_mm_mask3_fmadd_round_sd
   5637   // CHECK: @llvm.x86.avx512.mask3.vfmadd.sd
   5638   return _mm_mask3_fmadd_round_sd(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
   5639 }
   5640 
   5641 __m128d test_mm_mask_fmsub_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
   5642   // CHECK-LABEL: @test_mm_mask_fmsub_sd
   5643   // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
   5644   return _mm_mask_fmsub_sd(__W, __U, __A, __B);
   5645 }
   5646 
   5647 __m128d test_mm_mask_fmsub_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
   5648   // CHECK-LABEL: @test_mm_mask_fmsub_round_sd
   5649   // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
   5650   return _mm_mask_fmsub_round_sd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
   5651 }
   5652 
   5653 __m128d test_mm_maskz_fmsub_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
   5654   // CHECK-LABEL: @test_mm_maskz_fmsub_sd
   5655   // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
   5656   return _mm_maskz_fmsub_sd(__U, __A, __B, __C);
   5657 }
   5658 
   5659 __m128d test_mm_maskz_fmsub_round_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
   5660   // CHECK-LABEL: @test_mm_maskz_fmsub_round_sd
   5661   // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
   5662   return _mm_maskz_fmsub_round_sd(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
   5663 }
   5664 
   5665 __m128d test_mm_mask3_fmsub_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
   5666   // CHECK-LABEL: @test_mm_mask3_fmsub_sd
   5667   // CHECK: @llvm.x86.avx512.mask3.vfmadd.sd
   5668   return _mm_mask3_fmsub_sd(__W, __X, __Y, __U);
   5669 }
   5670 
   5671 __m128d test_mm_mask3_fmsub_round_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
   5672   // CHECK-LABEL: @test_mm_mask3_fmsub_round_sd
   5673   // CHECK: @llvm.x86.avx512.mask3.vfmadd.sd
   5674   return _mm_mask3_fmsub_round_sd(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
   5675 }
   5676 
   5677 __m128d test_mm_mask_fnmadd_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
   5678   // CHECK-LABEL: @test_mm_mask_fnmadd_sd
   5679   // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
   5680   return _mm_mask_fnmadd_sd(__W, __U, __A, __B);
   5681 }
   5682 
   5683 __m128d test_mm_mask_fnmadd_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
   5684   // CHECK-LABEL: @test_mm_mask_fnmadd_round_sd
   5685   // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
   5686   return _mm_mask_fnmadd_round_sd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
   5687 }
   5688 
   5689 __m128d test_mm_maskz_fnmadd_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
   5690   // CHECK-LABEL: @test_mm_maskz_fnmadd_sd
   5691   // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
   5692   return _mm_maskz_fnmadd_sd(__U, __A, __B, __C);
   5693 }
   5694 
   5695 __m128d test_mm_maskz_fnmadd_round_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
   5696   // CHECK-LABEL: @test_mm_maskz_fnmadd_round_sd
   5697   // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
   5698   return _mm_maskz_fnmadd_round_sd(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
   5699 }
   5700 
   5701 __m128d test_mm_mask3_fnmadd_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
   5702   // CHECK-LABEL: @test_mm_mask3_fnmadd_sd
   5703   // CHECK: @llvm.x86.avx512.mask3.vfmadd.sd
   5704   return _mm_mask3_fnmadd_sd(__W, __X, __Y, __U);
   5705 }
   5706 
   5707 __m128d test_mm_mask3_fnmadd_round_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
   5708   // CHECK-LABEL: @test_mm_mask3_fnmadd_round_sd
   5709   // CHECK: @llvm.x86.avx512.mask3.vfmadd.sd
   5710   return _mm_mask3_fnmadd_round_sd(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
   5711 }
   5712 
   5713 __m128d test_mm_mask_fnmsub_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
   5714   // CHECK-LABEL: @test_mm_mask_fnmsub_sd
   5715   // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
   5716   return _mm_mask_fnmsub_sd(__W, __U, __A, __B);
   5717 }
   5718 
   5719 __m128d test_mm_mask_fnmsub_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B){
   5720   // CHECK-LABEL: @test_mm_mask_fnmsub_round_sd
   5721   // CHECK: @llvm.x86.avx512.mask.vfmadd.sd
   5722   return _mm_mask_fnmsub_round_sd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
   5723 }
   5724 
   5725 __m128d test_mm_maskz_fnmsub_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
   5726   // CHECK-LABEL: @test_mm_maskz_fnmsub_sd
   5727   // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
   5728   return _mm_maskz_fnmsub_sd(__U, __A, __B, __C);
   5729 }
   5730 
   5731 __m128d test_mm_maskz_fnmsub_round_sd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C){
   5732   // CHECK-LABEL: @test_mm_maskz_fnmsub_round_sd
   5733   // CHECK: @llvm.x86.avx512.maskz.vfmadd.sd
   5734   return _mm_maskz_fnmsub_round_sd(__U, __A, __B, __C, _MM_FROUND_CUR_DIRECTION);
   5735 }
   5736 
   5737 __m128d test_mm_mask3_fnmsub_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
   5738   // CHECK-LABEL: @test_mm_mask3_fnmsub_sd
   5739   // CHECK: @llvm.x86.avx512.mask3.vfmadd.sd
   5740   return _mm_mask3_fnmsub_sd(__W, __X, __Y, __U);
   5741 }
   5742 
   5743 __m128d test_mm_mask3_fnmsub_round_sd(__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U){
   5744   // CHECK-LABEL: @test_mm_mask3_fnmsub_round_sd
   5745   // CHECK: @llvm.x86.avx512.mask3.vfmadd.sd
   5746   return _mm_mask3_fnmsub_round_sd(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION);
   5747 }
   5748 
   5749 __m512d test_mm512_permutex_pd(__m512d __X) {
   5750   // CHECK-LABEL: @test_mm512_permutex_pd
   5751   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> undef, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4>
   5752   return _mm512_permutex_pd(__X, 0);
   5753 }
   5754 
   5755 __m512d test_mm512_mask_permutex_pd(__m512d __W, __mmask8 __U, __m512d __X) {
   5756   // CHECK-LABEL: @test_mm512_mask_permutex_pd
   5757   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> undef, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4>
   5758   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
   5759   return _mm512_mask_permutex_pd(__W, __U, __X, 0);
   5760 }
   5761 
   5762 __m512d test_mm512_maskz_permutex_pd(__mmask8 __U, __m512d __X) {
   5763   // CHECK-LABEL: @test_mm512_maskz_permutex_pd
   5764   // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> undef, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4>
   5765   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
   5766   return _mm512_maskz_permutex_pd(__U, __X, 0);
   5767 }
   5768 
   5769 __m512i test_mm512_permutex_epi64(__m512i __X) {
   5770   // CHECK-LABEL: @test_mm512_permutex_epi64
   5771   // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> undef, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4>
   5772   return _mm512_permutex_epi64(__X, 0);
   5773 }
   5774 
   5775 __m512i test_mm512_mask_permutex_epi64(__m512i __W, __mmask8 __M, __m512i __X) {
   5776   // CHECK-LABEL: @test_mm512_mask_permutex_epi64
   5777   // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> undef, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4>
   5778   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
   5779   return _mm512_mask_permutex_epi64(__W, __M, __X, 0);
   5780 }
   5781 
   5782 __m512i test_mm512_maskz_permutex_epi64(__mmask8 __M, __m512i __X) {
   5783   // CHECK-LABEL: @test_mm512_maskz_permutex_epi64
   5784   // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> undef, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4>
   5785   // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
   5786   return _mm512_maskz_permutex_epi64(__M, __X, 0);
   5787 }
   5788 
   5789 __m512d test_mm512_permutexvar_pd(__m512i __X, __m512d __Y) {
   5790   // CHECK-LABEL: @test_mm512_permutexvar_pd
   5791   // CHECK: @llvm.x86.avx512.mask.permvar.df.512
   5792   return _mm512_permutexvar_pd(__X, __Y);
   5793 }
   5794 
   5795 __m512d test_mm512_mask_permutexvar_pd(__m512d __W, __mmask8 __U, __m512i __X, __m512d __Y) {
   5796   // CHECK-LABEL: @test_mm512_mask_permutexvar_pd
   5797   // CHECK: @llvm.x86.avx512.mask.permvar.df.512
   5798   return _mm512_mask_permutexvar_pd(__W, __U, __X, __Y);
   5799 }
   5800 
   5801 __m512d test_mm512_maskz_permutexvar_pd(__mmask8 __U, __m512i __X, __m512d __Y) {
   5802   // CHECK-LABEL: @test_mm512_maskz_permutexvar_pd
   5803   // CHECK: @llvm.x86.avx512.mask.permvar.df.512
   5804   return _mm512_maskz_permutexvar_pd(__U, __X, __Y);
   5805 }
   5806 
   5807 __m512i test_mm512_maskz_permutexvar_epi64(__mmask8 __M, __m512i __X, __m512i __Y) {
   5808   // CHECK-LABEL: @test_mm512_maskz_permutexvar_epi64
   5809   // CHECK: @llvm.x86.avx512.mask.permvar.di.512
   5810   return _mm512_maskz_permutexvar_epi64(__M, __X, __Y);
   5811 }
   5812 
   5813 __m512i test_mm512_permutexvar_epi64(__m512i __X, __m512i __Y) {
   5814   // CHECK-LABEL: @test_mm512_permutexvar_epi64
   5815   // CHECK: @llvm.x86.avx512.mask.permvar.di.512
   5816   return _mm512_permutexvar_epi64(__X, __Y);
   5817 }
   5818 
   5819 __m512i test_mm512_mask_permutexvar_epi64(__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y) {
   5820   // CHECK-LABEL: @test_mm512_mask_permutexvar_epi64
   5821   // CHECK: @llvm.x86.avx512.mask.permvar.di.512
   5822   return _mm512_mask_permutexvar_epi64(__W, __M, __X, __Y);
   5823 }
   5824 
   5825 __m512 test_mm512_permutexvar_ps(__m512i __X, __m512 __Y) {
   5826   // CHECK-LABEL: @test_mm512_permutexvar_ps
   5827   // CHECK: @llvm.x86.avx512.mask.permvar.sf.512
   5828   return _mm512_permutexvar_ps(__X, __Y);
   5829 }
   5830 
   5831 __m512 test_mm512_mask_permutexvar_ps(__m512 __W, __mmask16 __U, __m512i __X, __m512 __Y) {
   5832   // CHECK-LABEL: @test_mm512_mask_permutexvar_ps
   5833   // CHECK: @llvm.x86.avx512.mask.permvar.sf.512
   5834   return _mm512_mask_permutexvar_ps(__W, __U, __X, __Y);
   5835 }
   5836 
   5837 __m512 test_mm512_maskz_permutexvar_ps(__mmask16 __U, __m512i __X, __m512 __Y) {
   5838   // CHECK-LABEL: @test_mm512_maskz_permutexvar_ps
   5839   // CHECK: @llvm.x86.avx512.mask.permvar.sf.512
   5840   return _mm512_maskz_permutexvar_ps(__U, __X, __Y);
   5841 }
   5842 
   5843 __m512i test_mm512_maskz_permutexvar_epi32(__mmask16 __M, __m512i __X, __m512i __Y) {
   5844   // CHECK-LABEL: @test_mm512_maskz_permutexvar_epi32
   5845   // CHECK: @llvm.x86.avx512.mask.permvar.si.512
   5846   return _mm512_maskz_permutexvar_epi32(__M, __X, __Y);
   5847 }
   5848 
   5849 __m512i test_mm512_permutexvar_epi32(__m512i __X, __m512i __Y) {
   5850   // CHECK-LABEL: @test_mm512_permutexvar_epi32
   5851   // CHECK: @llvm.x86.avx512.mask.permvar.si.512
   5852   return _mm512_permutexvar_epi32(__X, __Y);
   5853 }
   5854 
   5855 __m512i test_mm512_mask_permutexvar_epi32(__m512i __W, __mmask16 __M, __m512i __X, __m512i __Y) {
   5856   // CHECK-LABEL: @test_mm512_mask_permutexvar_epi32
   5857   // CHECK: @llvm.x86.avx512.mask.permvar.si.512
   5858   return _mm512_mask_permutexvar_epi32(__W, __M, __X, __Y);
   5859 }
   5860 
   5861 __mmask16 test_mm512_kand(__mmask16 __A, __mmask16 __B) {
   5862   // CHECK-LABEL: @test_mm512_kand
   5863   // CHECK: @llvm.x86.avx512.kand.w
   5864   return _mm512_kand(__A, __B);
   5865 }
   5866 
   5867 __mmask16 test_mm512_kandn(__mmask16 __A, __mmask16 __B) {
   5868   // CHECK-LABEL: @test_mm512_kandn
   5869   // CHECK: @llvm.x86.avx512.kandn.w
   5870   return _mm512_kandn(__A, __B);
   5871 }
   5872 
   5873 __mmask16 test_mm512_kor(__mmask16 __A, __mmask16 __B) {
   5874   // CHECK-LABEL: @test_mm512_kor
   5875   // CHECK: @llvm.x86.avx512.kor.w
   5876   return _mm512_kor(__A, __B);
   5877 }
   5878 
   5879 int test_mm512_kortestc(__mmask16 __A, __mmask16 __B) {
   5880   // CHECK-LABEL: @test_mm512_kortestc
   5881   // CHECK: @llvm.x86.avx512.kortestc.w
   5882   return _mm512_kortestc(__A, __B);
   5883 }
   5884 
   5885 int test_mm512_kortestz(__mmask16 __A, __mmask16 __B) {
   5886   // CHECK-LABEL: @test_mm512_kortestz
   5887   // CHECK: @llvm.x86.avx512.kortestz.w
   5888   return _mm512_kortestz(__A, __B);
   5889 }
   5890 
   5891 __mmask16 test_mm512_kunpackb(__mmask16 __A, __mmask16 __B) {
   5892   // CHECK-LABEL: @test_mm512_kunpackb
   5893   // CHECK: @llvm.x86.avx512.kunpck.bw
   5894   return _mm512_kunpackb(__A, __B);
   5895 }
   5896 
   5897 __mmask16 test_mm512_kxnor(__mmask16 __A, __mmask16 __B) {
   5898   // CHECK-LABEL: @test_mm512_kxnor
   5899   // CHECK: @llvm.x86.avx512.kxnor.w
   5900   return _mm512_kxnor(__A, __B);
   5901 }
   5902 
   5903 __mmask16 test_mm512_kxor(__mmask16 __A, __mmask16 __B) {
   5904   // CHECK-LABEL: @test_mm512_kxor
   5905   // CHECK: @llvm.x86.avx512.kxor.w
   5906   return _mm512_kxor(__A, __B);
   5907 }
   5908 
   5909 void test_mm512_stream_si512(__m512i * __P, __m512i __A) {
   5910   // CHECK-LABEL: @test_mm512_stream_si512
   5911   // CHECK: store <8 x i64> %{{.*}}, <8 x i64>* %{{.*}}, align 64, !nontemporal
   5912   _mm512_stream_si512(__P, __A);
   5913 }
   5914 
   5915 __m512i test_mm512_stream_load_si512(void *__P) {
   5916   // CHECK-LABEL: @test_mm512_stream_load_si512
   5917   // CHECK: @llvm.x86.avx512.movntdqa
   5918   return _mm512_stream_load_si512(__P);
   5919 }
   5920 
   5921 void test_mm512_stream_pd(double *__P, __m512d __A) {
   5922   // CHECK-LABEL: @test_mm512_stream_pd
   5923   // CHECK: store <8 x double> %{{.*}}, <8 x double>* %{{.*}}, align 64, !nontemporal
   5924   return _mm512_stream_pd(__P, __A);
   5925 }
   5926 
   5927 void test_mm512_stream_ps(float *__P, __m512 __A) {
   5928   // CHECK-LABEL: @test_mm512_stream_ps
   5929   // CHECK: store <16 x float> %{{.*}}, <16 x float>* %{{.*}}, align 64, !nontemporal
   5930   _mm512_stream_ps(__P, __A);
   5931 }
   5932 
   5933 __m512d test_mm512_mask_compress_pd(__m512d __W, __mmask8 __U, __m512d __A) {
   5934   // CHECK-LABEL: @test_mm512_mask_compress_pd
   5935   // CHECK: @llvm.x86.avx512.mask.compress.pd.512
   5936   return _mm512_mask_compress_pd(__W, __U, __A);
   5937 }
   5938 
   5939 __m512d test_mm512_maskz_compress_pd(__mmask8 __U, __m512d __A) {
   5940   // CHECK-LABEL: @test_mm512_maskz_compress_pd
   5941   // CHECK: @llvm.x86.avx512.mask.compress.pd.512
   5942   return _mm512_maskz_compress_pd(__U, __A);
   5943 }
   5944 
   5945 __m512i test_mm512_mask_compress_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
   5946   // CHECK-LABEL: @test_mm512_mask_compress_epi64
   5947   // CHECK: @llvm.x86.avx512.mask.compress.q.512
   5948   return _mm512_mask_compress_epi64(__W, __U, __A);
   5949 }
   5950 
   5951 __m512i test_mm512_maskz_compress_epi64(__mmask8 __U, __m512i __A) {
   5952   // CHECK-LABEL: @test_mm512_maskz_compress_epi64
   5953   // CHECK: @llvm.x86.avx512.mask.compress.q.512
   5954   return _mm512_maskz_compress_epi64(__U, __A);
   5955 }
   5956 
   5957 __m512 test_mm512_mask_compress_ps(__m512 __W, __mmask16 __U, __m512 __A) {
   5958   // CHECK-LABEL: @test_mm512_mask_compress_ps
   5959   // CHECK: @llvm.x86.avx512.mask.compress.ps.512
   5960   return _mm512_mask_compress_ps(__W, __U, __A);
   5961 }
   5962 
   5963 __m512 test_mm512_maskz_compress_ps(__mmask16 __U, __m512 __A) {
   5964   // CHECK-LABEL: @test_mm512_maskz_compress_ps
   5965   // CHECK: @llvm.x86.avx512.mask.compress.ps.512
   5966   return _mm512_maskz_compress_ps(__U, __A);
   5967 }
   5968 
   5969 __m512i test_mm512_mask_compress_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
   5970   // CHECK-LABEL: @test_mm512_mask_compress_epi32
   5971   // CHECK: @llvm.x86.avx512.mask.compress.d.512
   5972   return _mm512_mask_compress_epi32(__W, __U, __A);
   5973 }
   5974 
   5975 __m512i test_mm512_maskz_compress_epi32(__mmask16 __U, __m512i __A) {
   5976   // CHECK-LABEL: @test_mm512_maskz_compress_epi32
   5977   // CHECK: @llvm.x86.avx512.mask.compress.d.512
   5978   return _mm512_maskz_compress_epi32(__U, __A);
   5979 }
   5980 
   5981 __mmask8 test_mm_cmp_round_ss_mask(__m128 __X, __m128 __Y) {
   5982   // CHECK-LABEL: @test_mm_cmp_round_ss_mask
   5983   // CHECK: @llvm.x86.avx512.mask.cmp
   5984   return _mm_cmp_round_ss_mask(__X, __Y, 5, _MM_FROUND_CUR_DIRECTION);
   5985 }
   5986 
   5987 __mmask8 test_mm_mask_cmp_round_ss_mask(__mmask8 __M, __m128 __X, __m128 __Y) {
   5988   // CHECK-LABEL: @test_mm_mask_cmp_round_ss_mask
   5989   // CHECK: @llvm.x86.avx512.mask.cmp
   5990   return _mm_mask_cmp_round_ss_mask(__M, __X, __Y, 5, _MM_FROUND_CUR_DIRECTION);
   5991 }
   5992 
   5993 __mmask8 test_mm_cmp_ss_mask(__m128 __X, __m128 __Y) {
   5994   // CHECK-LABEL: @test_mm_cmp_ss_mask
   5995   // CHECK: @llvm.x86.avx512.mask.cmp
   5996   return _mm_cmp_ss_mask(__X, __Y, 5);
   5997 }
   5998 
   5999 __mmask8 test_mm_mask_cmp_ss_mask(__mmask8 __M, __m128 __X, __m128 __Y) {
   6000   // CHECK-LABEL: @test_mm_mask_cmp_ss_mask
   6001   // CHECK: @llvm.x86.avx512.mask.cmp
   6002   return _mm_mask_cmp_ss_mask(__M, __X, __Y, 5);
   6003 }
   6004 
   6005 __mmask8 test_mm_cmp_round_sd_mask(__m128d __X, __m128d __Y) {
   6006   // CHECK-LABEL: @test_mm_cmp_round_sd_mask
   6007   // CHECK: @llvm.x86.avx512.mask.cmp
   6008   return _mm_cmp_round_sd_mask(__X, __Y, 5, _MM_FROUND_CUR_DIRECTION);
   6009 }
   6010 
   6011 __mmask8 test_mm_mask_cmp_round_sd_mask(__mmask8 __M, __m128d __X, __m128d __Y) {
   6012   // CHECK-LABEL: @test_mm_mask_cmp_round_sd_mask
   6013   // CHECK: @llvm.x86.avx512.mask.cmp
   6014   return _mm_mask_cmp_round_sd_mask(__M, __X, __Y, 5, _MM_FROUND_CUR_DIRECTION);
   6015 }
   6016 
   6017 __mmask8 test_mm_cmp_sd_mask(__m128d __X, __m128d __Y) {
   6018   // CHECK-LABEL: @test_mm_cmp_sd_mask
   6019   // CHECK: @llvm.x86.avx512.mask.cmp
   6020   return _mm_cmp_sd_mask(__X, __Y, 5);
   6021 }
   6022 
   6023 __mmask8 test_mm_mask_cmp_sd_mask(__mmask8 __M, __m128d __X, __m128d __Y) {
   6024   // CHECK-LABEL: @test_mm_mask_cmp_sd_mask
   6025   // CHECK: @llvm.x86.avx512.mask.cmp
   6026   return _mm_mask_cmp_sd_mask(__M, __X, __Y, 5);
   6027 }
   6028 
   6029 __m512 test_mm512_movehdup_ps(__m512 __A) {
   6030   // CHECK-LABEL: @test_mm512_movehdup_ps
   6031   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 1, i32 1, i32 3, i32 3, i32 5, i32 5, i32 7, i32 7, i32 9, i32 9, i32 11, i32 11, i32 13, i32 13, i32 15, i32 15>
   6032   return _mm512_movehdup_ps(__A);
   6033 }
   6034 
   6035 __m512 test_mm512_mask_movehdup_ps(__m512 __W, __mmask16 __U, __m512 __A) {
   6036   // CHECK-LABEL: @test_mm512_mask_movehdup_ps
   6037   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 1, i32 1, i32 3, i32 3, i32 5, i32 5, i32 7, i32 7, i32 9, i32 9, i32 11, i32 11, i32 13, i32 13, i32 15, i32 15>
   6038   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
   6039   return _mm512_mask_movehdup_ps(__W, __U, __A);
   6040 }
   6041 
   6042 __m512 test_mm512_maskz_movehdup_ps(__mmask16 __U, __m512 __A) {
   6043   // CHECK-LABEL: @test_mm512_maskz_movehdup_ps
   6044   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 1, i32 1, i32 3, i32 3, i32 5, i32 5, i32 7, i32 7, i32 9, i32 9, i32 11, i32 11, i32 13, i32 13, i32 15, i32 15>
   6045   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
   6046   return _mm512_maskz_movehdup_ps(__U, __A);
   6047 }
   6048 
   6049 __m512 test_mm512_moveldup_ps(__m512 __A) {
   6050   // CHECK-LABEL: @test_mm512_moveldup_ps
   6051   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 0, i32 0, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6, i32 8, i32 8, i32 10, i32 10, i32 12, i32 12, i32 14, i32 14>
   6052   return _mm512_moveldup_ps(__A);
   6053 }
   6054 
   6055 __m512 test_mm512_mask_moveldup_ps(__m512 __W, __mmask16 __U, __m512 __A) {
   6056   // CHECK-LABEL: @test_mm512_mask_moveldup_ps
   6057   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 0, i32 0, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6, i32 8, i32 8, i32 10, i32 10, i32 12, i32 12, i32 14, i32 14>
   6058   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
   6059   return _mm512_mask_moveldup_ps(__W, __U, __A);
   6060 }
   6061 
   6062 __m512 test_mm512_maskz_moveldup_ps(__mmask16 __U, __m512 __A) {
   6063   // CHECK-LABEL: @test_mm512_maskz_moveldup_ps
   6064   // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 0, i32 0, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6, i32 8, i32 8, i32 10, i32 10, i32 12, i32 12, i32 14, i32 14>
   6065   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
   6066   return _mm512_maskz_moveldup_ps(__U, __A);
   6067 }
   6068 
   6069 __m512i test_mm512_shuffle_epi32(__m512i __A) {
   6070   // CHECK-LABEL: @test_mm512_shuffle_epi32
   6071   // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <i32 1, i32 0, i32 0, i32 0, i32 5, i32 4, i32 4, i32 4, i32 9, i32 8, i32 8, i32 8, i32 13, i32 12, i32 12, i32 12>
   6072   return _mm512_shuffle_epi32(__A, 1);
   6073 }
   6074 
   6075 __m512i test_mm512_mask_shuffle_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
   6076   // CHECK-LABEL: @test_mm512_mask_shuffle_epi32
   6077   // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <i32 1, i32 0, i32 0, i32 0, i32 5, i32 4, i32 4, i32 4, i32 9, i32 8, i32 8, i32 8, i32 13, i32 12, i32 12, i32 12>
   6078   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
   6079   return _mm512_mask_shuffle_epi32(__W, __U, __A, 1);
   6080 }
   6081 
   6082 __m512i test_mm512_maskz_shuffle_epi32(__mmask16 __U, __m512i __A) {
   6083   // CHECK-LABEL: @test_mm512_maskz_shuffle_epi32
   6084   // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <i32 1, i32 0, i32 0, i32 0, i32 5, i32 4, i32 4, i32 4, i32 9, i32 8, i32 8, i32 8, i32 13, i32 12, i32 12, i32 12>
   6085   // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
   6086   return _mm512_maskz_shuffle_epi32(__U, __A, 1);
   6087 }
   6088 
   6089 __m512d test_mm512_mask_expand_pd(__m512d __W, __mmask8 __U, __m512d __A) {
   6090   // CHECK-LABEL: @test_mm512_mask_expand_pd
   6091   // CHECK: @llvm.x86.avx512.mask.expand.pd.512
   6092   return _mm512_mask_expand_pd(__W, __U, __A);
   6093 }
   6094 
   6095 __m512d test_mm512_maskz_expand_pd(__mmask8 __U, __m512d __A) {
   6096   // CHECK-LABEL: @test_mm512_maskz_expand_pd
   6097   // CHECK: @llvm.x86.avx512.mask.expand.pd.512
   6098   return _mm512_maskz_expand_pd(__U, __A);
   6099 }
   6100 
   6101 __m512i test_mm512_mask_expand_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
   6102   // CHECK-LABEL: @test_mm512_mask_expand_epi64
   6103   // CHECK: @llvm.x86.avx512.mask.expand.q.512
   6104   return _mm512_mask_expand_epi64(__W, __U, __A);
   6105 }
   6106 
   6107 __m512i test_mm512_maskz_expand_epi64(__mmask8 __U, __m512i __A) {
   6108   // CHECK-LABEL: @test_mm512_maskz_expand_epi64
   6109   // CHECK: @llvm.x86.avx512.mask.expand.q.512
   6110   return _mm512_maskz_expand_epi64(__U, __A);
   6111 }
   6112 __m512i test_mm512_mask_expandloadu_epi64(__m512i __W, __mmask8 __U, void const *__P) {
   6113   // CHECK-LABEL: @test_mm512_mask_expandloadu_epi64
   6114   // CHECK: @llvm.x86.avx512.mask.expand.load.q.512
   6115   return _mm512_mask_expandloadu_epi64(__W, __U, __P);
   6116 }
   6117 
   6118 __m512i test_mm512_maskz_expandloadu_epi64(__mmask8 __U, void const *__P) {
   6119   // CHECK-LABEL: @test_mm512_maskz_expandloadu_epi64
   6120   // CHECK: @llvm.x86.avx512.mask.expand.load.q.512
   6121   return _mm512_maskz_expandloadu_epi64(__U, __P);
   6122 }
   6123 
   6124 __m512d test_mm512_mask_expandloadu_pd(__m512d __W, __mmask8 __U, void const *__P) {
   6125   // CHECK-LABEL: @test_mm512_mask_expandloadu_pd
   6126   // CHECK: @llvm.x86.avx512.mask.expand.load.pd.512
   6127   return _mm512_mask_expandloadu_pd(__W, __U, __P);
   6128 }
   6129 
   6130 __m512d test_mm512_maskz_expandloadu_pd(__mmask8 __U, void const *__P) {
   6131   // CHECK-LABEL: @test_mm512_maskz_expandloadu_pd
   6132   // CHECK: @llvm.x86.avx512.mask.expand.load.pd.512
   6133   return _mm512_maskz_expandloadu_pd(__U, __P);
   6134 }
   6135 
   6136 __m512i test_mm512_mask_expandloadu_epi32(__m512i __W, __mmask16 __U, void const *__P) {
   6137   // CHECK-LABEL: @test_mm512_mask_expandloadu_epi32
   6138   // CHECK: @llvm.x86.avx512.mask.expand.load.d.512
   6139   return _mm512_mask_expandloadu_epi32(__W, __U, __P);
   6140 }
   6141 
   6142 __m512i test_mm512_maskz_expandloadu_epi32(__mmask16 __U, void const *__P) {
   6143   // CHECK-LABEL: @test_mm512_maskz_expandloadu_epi32
   6144   // CHECK: @llvm.x86.avx512.mask.expand.load.d.512
   6145   return _mm512_maskz_expandloadu_epi32(__U, __P);
   6146 }
   6147 
   6148 __m512 test_mm512_mask_expand_ps(__m512 __W, __mmask16 __U, __m512 __A) {
   6149   // CHECK-LABEL: @test_mm512_mask_expand_ps
   6150   // CHECK: @llvm.x86.avx512.mask.expand.ps.512
   6151   return _mm512_mask_expand_ps(__W, __U, __A);
   6152 }
   6153 
   6154 __m512 test_mm512_maskz_expand_ps(__mmask16 __U, __m512 __A) {
   6155   // CHECK-LABEL: @test_mm512_maskz_expand_ps
   6156   // CHECK: @llvm.x86.avx512.mask.expand.ps.512
   6157   return _mm512_maskz_expand_ps(__U, __A);
   6158 }
   6159 
   6160 __m512i test_mm512_mask_expand_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
   6161   // CHECK-LABEL: @test_mm512_mask_expand_epi32
   6162   // CHECK: @llvm.x86.avx512.mask.expand.d.512
   6163   return _mm512_mask_expand_epi32(__W, __U, __A);
   6164 }
   6165 
   6166 __m512i test_mm512_maskz_expand_epi32(__mmask16 __U, __m512i __A) {
   6167   // CHECK-LABEL: @test_mm512_maskz_expand_epi32
   6168   // CHECK: @llvm.x86.avx512.mask.expand.d.512
   6169   return _mm512_maskz_expand_epi32(__U, __A);
   6170 }
   6171 __m512d test_mm512_cvt_roundps_pd(__m256 __A) {
   6172   // CHECK-LABEL: @test_mm512_cvt_roundps_pd
   6173   // CHECK: @llvm.x86.avx512.mask.cvtps2pd.512
   6174   return _mm512_cvt_roundps_pd(__A, _MM_FROUND_CUR_DIRECTION);
   6175 }
   6176 
   6177 __m512d test_mm512_mask_cvt_roundps_pd(__m512d __W, __mmask8 __U, __m256 __A) {
   6178   // CHECK-LABEL: @test_mm512_mask_cvt_roundps_pd
   6179   // CHECK: @llvm.x86.avx512.mask.cvtps2pd.512
   6180   return _mm512_mask_cvt_roundps_pd(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
   6181 }
   6182 
   6183 __m512d test_mm512_maskz_cvt_roundps_pd(__mmask8 __U, __m256 __A) {
   6184   // CHECK-LABEL: @test_mm512_maskz_cvt_roundps_pd
   6185   // CHECK: @llvm.x86.avx512.mask.cvtps2pd.512
   6186   return _mm512_maskz_cvt_roundps_pd(__U, __A, _MM_FROUND_CUR_DIRECTION);
   6187 }
   6188 
   6189 __m512d test_mm512_cvtps_pd(__m256 __A) {
   6190   // CHECK-LABEL: @test_mm512_cvtps_pd
   6191   // CHECK: @llvm.x86.avx512.mask.cvtps2pd.512
   6192   return _mm512_cvtps_pd(__A);
   6193 }
   6194 
   6195 __m512d test_mm512_mask_cvtps_pd(__m512d __W, __mmask8 __U, __m256 __A) {
   6196   // CHECK-LABEL: @test_mm512_mask_cvtps_pd
   6197   // CHECK: @llvm.x86.avx512.mask.cvtps2pd.512
   6198   return _mm512_mask_cvtps_pd(__W, __U, __A);
   6199 }
   6200 
   6201 __m512d test_mm512_maskz_cvtps_pd(__mmask8 __U, __m256 __A) {
   6202   // CHECK-LABEL: @test_mm512_maskz_cvtps_pd
   6203   // CHECK: @llvm.x86.avx512.mask.cvtps2pd.512
   6204   return _mm512_maskz_cvtps_pd(__U, __A);
   6205 }
   6206 __m512d test_mm512_mask_mov_pd(__m512d __W, __mmask8 __U, __m512d __A) {
   6207   // CHECK-LABEL: @test_mm512_mask_mov_pd
   6208   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
   6209   return _mm512_mask_mov_pd(__W, __U, __A);
   6210 }
   6211 
   6212 __m512d test_mm512_maskz_mov_pd(__mmask8 __U, __m512d __A) {
   6213   // CHECK-LABEL: @test_mm512_maskz_mov_pd
   6214   // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
   6215   return _mm512_maskz_mov_pd(__U, __A);
   6216 }
   6217 
   6218 __m512 test_mm512_mask_mov_ps(__m512 __W, __mmask16 __U, __m512 __A) {
   6219   // CHECK-LABEL: @test_mm512_mask_mov_ps
   6220   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
   6221   return _mm512_mask_mov_ps(__W, __U, __A);
   6222 }
   6223 
   6224 __m512 test_mm512_maskz_mov_ps(__mmask16 __U, __m512 __A) {
   6225   // CHECK-LABEL: @test_mm512_maskz_mov_ps
   6226   // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
   6227   return _mm512_maskz_mov_ps(__U, __A);
   6228 }
   6229 
   6230 void test_mm512_mask_compressstoreu_pd(void *__P, __mmask8 __U, __m512d __A) {
   6231   // CHECK-LABEL: @test_mm512_mask_compressstoreu_pd
   6232   // CHECK: @llvm.x86.avx512.mask.compress.store.pd.512
   6233   return _mm512_mask_compressstoreu_pd(__P, __U, __A);
   6234 }
   6235 
   6236 void test_mm512_mask_compressstoreu_epi64(void *__P, __mmask8 __U, __m512i __A) {
   6237   // CHECK-LABEL: @test_mm512_mask_compressstoreu_epi64
   6238   // CHECK: @llvm.x86.avx512.mask.compress.store.q.512
   6239   return _mm512_mask_compressstoreu_epi64(__P, __U, __A);
   6240 }
   6241 
   6242 void test_mm512_mask_compressstoreu_ps(void *__P, __mmask16 __U, __m512 __A) {
   6243   // CHECK-LABEL: @test_mm512_mask_compressstoreu_ps
   6244   // CHECK: @llvm.x86.avx512.mask.compress.store.ps.512
   6245   return _mm512_mask_compressstoreu_ps(__P, __U, __A);
   6246 }
   6247 
   6248 void test_mm512_mask_compressstoreu_epi32(void *__P, __mmask16 __U, __m512i __A) {
   6249   // CHECK-LABEL: @test_mm512_mask_compressstoreu_epi32
   6250   // CHECK: @llvm.x86.avx512.mask.compress.store.d.512
   6251   return _mm512_mask_compressstoreu_epi32(__P, __U, __A);
   6252 }
   6253 
   6254 __m256i test_mm512_cvtt_roundpd_epu32(__m512d __A) {
   6255   // CHECK-LABEL: @test_mm512_cvtt_roundpd_epu32
   6256   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.512
   6257   return _mm512_cvtt_roundpd_epu32(__A, _MM_FROUND_CUR_DIRECTION);
   6258 }
   6259 
   6260 __m256i test_mm512_mask_cvtt_roundpd_epu32(__m256i __W, __mmask8 __U, __m512d __A) {
   6261   // CHECK-LABEL: @test_mm512_mask_cvtt_roundpd_epu32
   6262   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.512
   6263   return _mm512_mask_cvtt_roundpd_epu32(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
   6264 }
   6265 
   6266 __m256i test_mm512_maskz_cvtt_roundpd_epu32(__mmask8 __U, __m512d __A) {
   6267   // CHECK-LABEL: @test_mm512_maskz_cvtt_roundpd_epu32
   6268   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.512
   6269   return _mm512_maskz_cvtt_roundpd_epu32(__U, __A, _MM_FROUND_CUR_DIRECTION);
   6270 }
   6271 
   6272 __m256i test_mm512_cvttpd_epu32(__m512d __A) {
   6273   // CHECK-LABEL: @test_mm512_cvttpd_epu32
   6274   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.512
   6275   return _mm512_cvttpd_epu32(__A);
   6276 }
   6277 
   6278 __m256i test_mm512_mask_cvttpd_epu32(__m256i __W, __mmask8 __U, __m512d __A) {
   6279   // CHECK-LABEL: @test_mm512_mask_cvttpd_epu32
   6280   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.512
   6281   return _mm512_mask_cvttpd_epu32(__W, __U, __A);
   6282 }
   6283 
   6284 __m256i test_mm512_maskz_cvttpd_epu32(__mmask8 __U, __m512d __A) {
   6285   // CHECK-LABEL: @test_mm512_maskz_cvttpd_epu32
   6286   // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.512
   6287   return _mm512_maskz_cvttpd_epu32(__U, __A);
   6288 }
   6289 
   6290 __m512 test_mm512_castpd_ps (__m512d __A)
   6291 {
   6292   // CHECK-LABEL: @test_mm512_castpd_ps
   6293   // CHECK: bitcast <8 x double> %{{.}} to <16 x float>
   6294   return _mm512_castpd_ps (__A);
   6295 }
   6296 
   6297 __m512d test_mm512_castps_pd (__m512 __A)
   6298 {
   6299   // CHECK-LABEL: @test_mm512_castps_pd
   6300   // CHECK: bitcast <16 x float> %{{.}} to <8 x double>
   6301   return _mm512_castps_pd (__A);
   6302 }
   6303 
   6304 __m512i test_mm512_castpd_si512 (__m512d __A)
   6305 {
   6306   // CHECK-LABEL: @test_mm512_castpd_si512
   6307   // CHECK: bitcast <8 x double> %{{.}} to <8 x i64>
   6308   return _mm512_castpd_si512 (__A);
   6309 }
   6310 
   6311 __m512 test_mm512_castps128_ps512(__m128 __A) {
   6312   // CHECK-LABEL: @test_mm512_castps128_ps512
   6313   // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
   6314   return _mm512_castps128_ps512(__A);
   6315 }
   6316 
   6317 __m512d test_mm512_castpd128_pd512(__m128d __A) {
   6318   // CHECK-LABEL: @test_mm512_castpd128_pd512
   6319   // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
   6320   return _mm512_castpd128_pd512(__A);
   6321 }
   6322 
   6323 __m512d test_mm512_set1_epi8(char d)
   6324 {
   6325   // CHECK-LABEL: @test_mm512_set1_epi8
   6326   // CHECK: insertelement <64 x i8> {{.*}}, i32 0
   6327   // CHECK: insertelement <64 x i8> {{.*}}, i32 1
   6328   // CHECK: insertelement <64 x i8> {{.*}}, i32 2
   6329   // CHECK: insertelement <64 x i8> {{.*}}, i32 3
   6330   // CHECK: insertelement <64 x i8> {{.*}}, i32 4
   6331   // CHECK: insertelement <64 x i8> {{.*}}, i32 5
   6332   // CHECK: insertelement <64 x i8> {{.*}}, i32 6
   6333   // CHECK: insertelement <64 x i8> {{.*}}, i32 7
   6334   // CHECK: insertelement <64 x i8> {{.*}}, i32 63
   6335   return _mm512_set1_epi8(d);
   6336 }
   6337 
   6338 __m512d test_mm512_set1_epi16(short d)
   6339 {
   6340   // CHECK-LABEL: @test_mm512_set1_epi16
   6341   // CHECK: insertelement <32 x i16> {{.*}}, i32 0
   6342   // CHECK: insertelement <32 x i16> {{.*}}, i32 1
   6343   // CHECK: insertelement <32 x i16> {{.*}}, i32 2
   6344   // CHECK: insertelement <32 x i16> {{.*}}, i32 3
   6345   // CHECK: insertelement <32 x i16> {{.*}}, i32 4
   6346   // CHECK: insertelement <32 x i16> {{.*}}, i32 5
   6347   // CHECK: insertelement <32 x i16> {{.*}}, i32 6
   6348   // CHECK: insertelement <32 x i16> {{.*}}, i32 7
   6349   // CHECK: insertelement <32 x i16> {{.*}}, i32 31
   6350   return _mm512_set1_epi16(d);
   6351 }
   6352 
   6353 __m512i test_mm512_set4_epi32 (int __A, int __B, int __C, int __D)
   6354 {
   6355   // CHECK-LABEL: @test_mm512_set4_epi32
   6356   // CHECK: insertelement <16 x i32> {{.*}}, i32 15
   6357   return _mm512_set4_epi32 (__A,__B,__C,__D);
   6358 }
   6359 
   6360 __m512i test_mm512_set4_epi64 (long long __A, long long __B, long long __C, long long __D)
   6361 {
   6362   // CHECK-LABEL: @test_mm512_set4_epi64
   6363   // CHECK: insertelement <8 x i64> {{.*}}, i32 7
   6364   return _mm512_set4_epi64 (__A,__B,__C,__D);
   6365 }
   6366 
   6367 __m512d test_mm512_set4_pd (double __A, double __B, double __C, double __D)
   6368 {
   6369   // CHECK-LABEL: @test_mm512_set4_pd
   6370   // CHECK: insertelement <8 x double> {{.*}}, i32 7
   6371   return _mm512_set4_pd (__A,__B,__C,__D);
   6372 }
   6373 
   6374 __m512 test_mm512_set4_ps (float __A, float __B, float __C, float __D)
   6375 {
   6376   // CHECK-LABEL: @test_mm512_set4_ps
   6377   // CHECK: insertelement <16 x float> {{.*}}, i32 15
   6378   return _mm512_set4_ps (__A,__B,__C,__D);
   6379 }
   6380 
   6381 __m512i test_mm512_setr4_epi32(int e0, int e1, int e2, int e3)
   6382 {
   6383   // CHECK-LABEL: @test_mm512_setr4_epi32
   6384   // CHECK: insertelement <16 x i32> {{.*}}, i32 15
   6385   return _mm512_setr4_epi32(e0, e1, e2, e3);
   6386 }
   6387 
   6388  __m512i test_mm512_setr4_epi64(long long e0, long long e1, long long e2, long long e3)
   6389 {
   6390   // CHECK-LABEL: @test_mm512_setr4_epi64
   6391   // CHECK: insertelement <8 x i64> {{.*}}, i32 7
   6392   return _mm512_setr4_epi64(e0, e1, e2, e3);
   6393 }
   6394 
   6395 __m512i test_mm512_setr4_pd(double e0, double e1, double e2, double e3)
   6396 {
   6397   // CHECK-LABEL: @test_mm512_setr4_pd
   6398   // CHECK: insertelement <8 x double> {{.*}}, i32 7
   6399   return _mm512_setr4_pd(e0,e1,e2,e3);
   6400 }
   6401 
   6402  __m512i test_mm512_setr4_ps(float e0, float e1, float e2, float e3)
   6403 {
   6404   // CHECK-LABEL: @test_mm512_setr4_ps
   6405   // CHECK: insertelement <16 x float> {{.*}}, i32 15
   6406   return _mm512_setr4_ps(e0,e1,e2,e3);
   6407 }
   6408 
   6409 __m512d test_mm512_castpd256_pd512(__m256d a)
   6410 {
   6411   // CHECK-LABEL: @test_mm512_castpd256_pd512
   6412   // CHECK: shufflevector <4 x double> {{.*}} <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>
   6413   return _mm512_castpd256_pd512(a);
   6414 }
   6415 
   6416 __m256d test_mm512_castpd512_pd256 (__m512d __A)
   6417 {
   6418   // CHECK-LABEL: @test_mm512_castpd512_pd256
   6419   // CHECK: shufflevector <8 x double> %{{.}}, <8 x double> %{{.}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
   6420   return _mm512_castpd512_pd256 (__A);
   6421 }
   6422 
   6423 __m256 test_mm512_castps512_ps256 (__m512 __A)
   6424 {
   6425   // CHECK-LABEL: @test_mm512_castps512_ps256
   6426   // CHECK: shufflevector <16 x float> %{{.}}, <16 x float> %{{.}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
   6427   return _mm512_castps512_ps256 (__A);
   6428 }
   6429 
   6430 __m512i test_mm512_castps_si512 (__m512 __A)
   6431 {
   6432   // CHECK-LABEL: @test_mm512_castps_si512
   6433   // CHECK: bitcast <16 x float> %{{.}} to <8 x i64>
   6434   return _mm512_castps_si512 (__A);
   6435 }
   6436 __m512i test_mm512_castsi128_si512(__m128i __A) {
   6437   // CHECK-LABEL: @test_mm512_castsi128_si512
   6438   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
   6439   return _mm512_castsi128_si512(__A);
   6440 }
   6441 
   6442 __m512i test_mm512_castsi256_si512(__m256i __A) {
   6443   // CHECK-LABEL: @test_mm512_castsi256_si512
   6444   // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>
   6445   return _mm512_castsi256_si512(__A);
   6446 }
   6447 
   6448 __m512 test_mm512_castsi512_ps (__m512i __A)
   6449 {
   6450   // CHECK-LABEL: @test_mm512_castsi512_ps
   6451   // CHECK: bitcast <8 x i64> %{{.}} to <16 x float>
   6452   return _mm512_castsi512_ps (__A);
   6453 }
   6454 
   6455 __m512d test_mm512_castsi512_pd (__m512i __A)
   6456 {
   6457   // CHECK-LABEL: @test_mm512_castsi512_pd
   6458   // CHECK: bitcast <8 x i64> %{{.}} to <8 x double>
   6459   return _mm512_castsi512_pd (__A);
   6460 }
   6461 
   6462 __m128i test_mm512_castsi512_si128 (__m512i __A)
   6463 {
   6464   // CHECK-LABEL: @test_mm512_castsi512_si128
   6465   // CHECK: shufflevector <8 x i64> %{{.}}, <8 x i64> %{{.}}, <2 x i32> <i32 0, i32 1>
   6466   return _mm512_castsi512_si128 (__A);
   6467 }
   6468 
   6469 __m256i test_mm512_castsi512_si256 (__m512i __A)
   6470 {
   6471   // CHECK-LABEL: @test_mm512_castsi512_si256
   6472   // CHECK: shufflevector <8 x i64> %{{.}}, <8 x i64> %{{.}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
   6473   return _mm512_castsi512_si256 (__A);
   6474 }
   6475 
   6476 __m128 test_mm_cvt_roundsd_ss(__m128 __A, __m128d __B) {
   6477   // CHECK-LABEL: @test_mm_cvt_roundsd_ss
   6478   // CHECK: @llvm.x86.avx512.mask.cvtsd2ss.round
   6479   return _mm_cvt_roundsd_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
   6480 }
   6481 
   6482 __m128 test_mm_mask_cvt_roundsd_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128d __B) {
   6483   // CHECK-LABEL: @test_mm_mask_cvt_roundsd_ss
   6484   // CHECK: @llvm.x86.avx512.mask.cvtsd2ss.round
   6485   return _mm_mask_cvt_roundsd_ss(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
   6486 }
   6487 
   6488 __m128 test_mm_maskz_cvt_roundsd_ss(__mmask8 __U, __m128 __A, __m128d __B) {
   6489   // CHECK-LABEL: @test_mm_maskz_cvt_roundsd_ss
   6490   // CHECK: @llvm.x86.avx512.mask.cvtsd2ss.round
   6491   return _mm_maskz_cvt_roundsd_ss(__U, __A, __B, _MM_FROUND_CUR_DIRECTION);
   6492 }
   6493 
   6494 __m128d test_mm_cvt_roundi64_sd(__m128d __A, long long __B) {
   6495   // CHECK-LABEL: @test_mm_cvt_roundi64_sd
   6496   // CHECK: @llvm.x86.avx512.cvtsi2sd64
   6497   return _mm_cvt_roundi64_sd(__A, __B, _MM_FROUND_CUR_DIRECTION);
   6498 }
   6499 
   6500 __m128d test_mm_cvt_roundsi64_sd(__m128d __A, long long __B) {
   6501   // CHECK-LABEL: @test_mm_cvt_roundsi64_sd
   6502   // CHECK: @llvm.x86.avx512.cvtsi2sd64
   6503   return _mm_cvt_roundsi64_sd(__A, __B, _MM_FROUND_CUR_DIRECTION);
   6504 }
   6505 
   6506 __m128 test_mm_cvt_roundsi32_ss(__m128 __A, int __B) {
   6507   // CHECK-LABEL: @test_mm_cvt_roundsi32_ss
   6508   // CHECK: @llvm.x86.avx512.cvtsi2ss32
   6509   return _mm_cvt_roundsi32_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
   6510 }
   6511 
   6512 __m128 test_mm_cvt_roundi32_ss(__m128 __A, int __B) {
   6513   // CHECK-LABEL: @test_mm_cvt_roundi32_ss
   6514   // CHECK: @llvm.x86.avx512.cvtsi2ss32
   6515   return _mm_cvt_roundi32_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
   6516 }
   6517 
   6518 __m128 test_mm_cvt_roundsi64_ss(__m128 __A, long long __B) {
   6519   // CHECK-LABEL: @test_mm_cvt_roundsi64_ss
   6520   // CHECK: @llvm.x86.avx512.cvtsi2ss64
   6521   return _mm_cvt_roundsi64_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
   6522 }
   6523 
   6524 __m128 test_mm_cvt_roundi64_ss(__m128 __A, long long __B) {
   6525   // CHECK-LABEL: @test_mm_cvt_roundi64_ss
   6526   // CHECK: @llvm.x86.avx512.cvtsi2ss64
   6527   return _mm_cvt_roundi64_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
   6528 }
   6529 
   6530 __m128d test_mm_cvt_roundss_sd(__m128d __A, __m128 __B) {
   6531   // CHECK-LABEL: @test_mm_cvt_roundss_sd
   6532   // CHECK: @llvm.x86.avx512.mask.cvtss2sd.round
   6533   return _mm_cvt_roundss_sd(__A, __B, _MM_FROUND_CUR_DIRECTION);
   6534 }
   6535 
   6536 __m128d test_mm_mask_cvt_roundss_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128 __B) {
   6537   // CHECK-LABEL: @test_mm_mask_cvt_roundss_sd
   6538   // CHECK: @llvm.x86.avx512.mask.cvtss2sd.round
   6539   return _mm_mask_cvt_roundss_sd(__W, __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
   6540 }
   6541 
   6542 __m128d test_mm_maskz_cvt_roundss_sd( __mmask8 __U, __m128d __A, __m128 __B) {
   6543   // CHECK-LABEL: @test_mm_maskz_cvt_roundss_sd
   6544   // CHECK: @llvm.x86.avx512.mask.cvtss2sd.round
   6545   return _mm_maskz_cvt_roundss_sd( __U, __A, __B, _MM_FROUND_CUR_DIRECTION);
   6546 }
   6547 
   6548 __m128d test_mm_cvtu32_sd(__m128d __A, unsigned __B) {
   6549   // CHECK-LABEL: @test_mm_cvtu32_sd
   6550   // CHECK: @llvm.x86.avx512.cvtusi2sd
   6551   return _mm_cvtu32_sd(__A, __B);
   6552 }
   6553 
   6554 __m128d test_mm_cvt_roundu64_sd(__m128d __A, unsigned long long __B) {
   6555   // CHECK-LABEL: @test_mm_cvt_roundu64_sd
   6556   // CHECK: @llvm.x86.avx512.cvtusi642sd
   6557   return _mm_cvt_roundu64_sd(__A, __B, _MM_FROUND_CUR_DIRECTION);
   6558 }
   6559 
   6560 __m128d test_mm_cvtu64_sd(__m128d __A, unsigned long long __B) {
   6561   // CHECK-LABEL: @test_mm_cvtu64_sd
   6562   // CHECK: @llvm.x86.avx512.cvtusi642sd
   6563   return _mm_cvtu64_sd(__A, __B);
   6564 }
   6565 
   6566 __m128 test_mm_cvt_roundu32_ss(__m128 __A, unsigned __B) {
   6567   // CHECK-LABEL: @test_mm_cvt_roundu32_ss
   6568   // CHECK: @llvm.x86.avx512.cvtusi2ss
   6569   return _mm_cvt_roundu32_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
   6570 }
   6571 
   6572 __m128 test_mm_cvtu32_ss(__m128 __A, unsigned __B) {
   6573   // CHECK-LABEL: @test_mm_cvtu32_ss
   6574   // CHECK: @llvm.x86.avx512.cvtusi2ss
   6575   return _mm_cvtu32_ss(__A, __B);
   6576 }
   6577 
   6578 __m128 test_mm_cvt_roundu64_ss(__m128 __A, unsigned long long __B) {
   6579   // CHECK-LABEL: @test_mm_cvt_roundu64_ss
   6580   // CHECK: @llvm.x86.avx512.cvtusi642ss
   6581     return _mm_cvt_roundu64_ss(__A, __B, _MM_FROUND_CUR_DIRECTION);
   6582 }
   6583 
   6584 __m128 test_mm_cvtu64_ss(__m128 __A, unsigned long long __B) {
   6585   // CHECK-LABEL: @test_mm_cvtu64_ss
   6586   // CHECK: @llvm.x86.avx512.cvtusi642ss
   6587   return _mm_cvtu64_ss(__A, __B);
   6588 }
   6589 
   6590 __m512i test_mm512_mask_cvttps_epu32 (__m512i __W, __mmask16 __U, __m512 __A)
   6591 {
   6592   // CHECK-LABEL: @test_mm512_mask_cvttps_epu32
   6593   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.512
   6594   return _mm512_mask_cvttps_epu32 (__W,__U,__A);
   6595 }
   6596 
   6597 __m512i test_mm512_maskz_cvttps_epu32 (__mmask16 __U, __m512 __A)
   6598 {
   6599   // CHECK-LABEL: @test_mm512_maskz_cvttps_epu32
   6600   // CHECK: @llvm.x86.avx512.mask.cvttps2udq.512
   6601   return _mm512_maskz_cvttps_epu32 (__U,__A);
   6602 }
   6603 
   6604 __m512 test_mm512_cvtepu32_ps (__m512i __A)
   6605 {
   6606   // CHECK-LABEL: @test_mm512_cvtepu32_ps
   6607   // CHECK:  @llvm.x86.avx512.mask.cvtudq2ps.512
   6608   return _mm512_cvtepu32_ps (__A);
   6609 }
   6610 
   6611 __m512 test_mm512_mask_cvtepu32_ps (__m512 __W, __mmask16 __U, __m512i __A)
   6612 {
   6613   // CHECK-LABEL: @test_mm512_mask_cvtepu32_ps
   6614   // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.512
   6615   return _mm512_mask_cvtepu32_ps (__W,__U,__A);
   6616 }
   6617 
   6618 __m512 test_mm512_maskz_cvtepu32_ps (__mmask16 __U, __m512i __A)
   6619 {
   6620   // CHECK-LABEL: @test_mm512_maskz_cvtepu32_ps
   6621   // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.512
   6622   return _mm512_maskz_cvtepu32_ps (__U,__A);
   6623 }
   6624 
   6625 __m512d test_mm512_mask_cvtepi32_pd (__m512d __W, __mmask8 __U, __m256i __A)
   6626 {
   6627   // CHECK-LABEL: @test_mm512_mask_cvtepi32_pd
   6628   // CHECK: @llvm.x86.avx512.mask.cvtdq2pd.512
   6629   return _mm512_mask_cvtepi32_pd (__W,__U,__A);
   6630 }
   6631 
   6632 __m512d test_mm512_maskz_cvtepi32_pd (__mmask8 __U, __m256i __A)
   6633 {
   6634   // CHECK-LABEL: @test_mm512_maskz_cvtepi32_pd
   6635   // CHECK: @llvm.x86.avx512.mask.cvtdq2pd.512
   6636   return _mm512_maskz_cvtepi32_pd (__U,__A);
   6637 }
   6638 
   6639 __m512 test_mm512_cvtepi32_ps (__m512i __A)
   6640 {
   6641   // CHECK-LABEL: @test_mm512_cvtepi32_ps
   6642   // CHECK:  @llvm.x86.avx512.mask.cvtdq2ps.512
   6643   return _mm512_cvtepi32_ps (__A);
   6644 }
   6645 
   6646 __m512 test_mm512_mask_cvtepi32_ps (__m512 __W, __mmask16 __U, __m512i __A)
   6647 {
   6648   // CHECK-LABEL: @test_mm512_mask_cvtepi32_ps
   6649   // CHECK: @llvm.x86.avx512.mask.cvtdq2ps.512
   6650   return _mm512_mask_cvtepi32_ps (__W,__U,__A);
   6651 }
   6652 
   6653 __m512 test_mm512_maskz_cvtepi32_ps (__mmask16 __U, __m512i __A)
   6654 {
   6655   // CHECK-LABEL: @test_mm512_maskz_cvtepi32_ps
   6656   // CHECK: @llvm.x86.avx512.mask.cvtdq2ps.512
   6657   return _mm512_maskz_cvtepi32_ps (__U,__A);
   6658 }
   6659 
   6660 __m512d test_mm512_mask_cvtepu32_pd (__m512d __W, __mmask8 __U, __m256i __A)
   6661 {
   6662   // CHECK-LABEL: @test_mm512_mask_cvtepu32_pd
   6663   // CHECK: @llvm.x86.avx512.mask.cvtudq2pd.512
   6664   return _mm512_mask_cvtepu32_pd (__W,__U,__A);
   6665 }
   6666 
   6667 __m512d test_mm512_maskz_cvtepu32_pd (__mmask8 __U, __m256i __A)
   6668 {
   6669   // CHECK-LABEL: @test_mm512_maskz_cvtepu32_pd
   6670   // CHECK: @llvm.x86.avx512.mask.cvtudq2pd.512
   6671   return _mm512_maskz_cvtepu32_pd (__U,__A);
   6672 }
   6673 
   6674 __m256 test_mm512_cvtpd_ps (__m512d __A)
   6675 {
   6676   // CHECK-LABEL: @test_mm512_cvtpd_ps
   6677   // CHECK: @llvm.x86.avx512.mask.cvtpd2ps.512
   6678   return _mm512_cvtpd_ps (__A);
   6679 }
   6680 
   6681 __m256 test_mm512_mask_cvtpd_ps (__m256 __W, __mmask8 __U, __m512d __A)
   6682 {
   6683   // CHECK-LABEL: @test_mm512_mask_cvtpd_ps
   6684   // CHECK: @llvm.x86.avx512.mask.cvtpd2ps.512
   6685   return _mm512_mask_cvtpd_ps (__W,__U,__A);
   6686 }
   6687 
   6688 __m256 test_mm512_maskz_cvtpd_ps (__mmask8 __U, __m512d __A)
   6689 {
   6690   // CHECK-LABEL: @test_mm512_maskz_cvtpd_ps
   6691   // CHECK: @llvm.x86.avx512.mask.cvtpd2ps.512
   6692   return _mm512_maskz_cvtpd_ps (__U,__A);
   6693 }
   6694 
   6695 __m512 test_mm512_mask_cvtph_ps (__m512 __W, __mmask16 __U, __m256i __A)
   6696 {
   6697   // CHECK-LABEL: @test_mm512_mask_cvtph_ps
   6698   // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.512
   6699   return _mm512_mask_cvtph_ps (__W,__U,__A);
   6700 }
   6701 
   6702 __m512 test_mm512_maskz_cvtph_ps (__mmask16 __U, __m256i __A)
   6703 {
   6704   // CHECK-LABEL: @test_mm512_maskz_cvtph_ps
   6705   // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.512
   6706   return _mm512_maskz_cvtph_ps (__U,__A);
   6707 }
   6708 
   6709 __m256i test_mm512_mask_cvttpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A)
   6710 {
   6711   // CHECK-LABEL: @test_mm512_mask_cvttpd_epi32
   6712   // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.512
   6713   return _mm512_mask_cvttpd_epi32 (__W,__U,__A);
   6714 }
   6715 
   6716 __m256i test_mm512_maskz_cvttpd_epi32 (__mmask8 __U, __m512d __A)
   6717 {
   6718   // CHECK-LABEL: @test_mm512_maskz_cvttpd_epi32
   6719   // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.512
   6720   return _mm512_maskz_cvttpd_epi32 (__U,__A);
   6721 }
   6722 
   6723 __m512i test_mm512_mask_cvttps_epi32 (__m512i __W, __mmask16 __U, __m512 __A)
   6724 {
   6725   // CHECK-LABEL: @test_mm512_mask_cvttps_epi32
   6726   // CHECK: @llvm.x86.avx512.mask.cvttps2dq.512
   6727   return _mm512_mask_cvttps_epi32 (__W,__U,__A);
   6728 }
   6729 
   6730 __m512i test_mm512_maskz_cvttps_epi32 (__mmask16 __U, __m512 __A)
   6731 {
   6732   // CHECK-LABEL: @test_mm512_maskz_cvttps_epi32
   6733   // CHECK: @llvm.x86.avx512.mask.cvttps2dq.512
   6734   return _mm512_maskz_cvttps_epi32 (__U,__A);
   6735 }
   6736 
   6737 __m512i test_mm512_cvtps_epi32 (__m512 __A)
   6738 {
   6739   // CHECK-LABEL: @test_mm512_cvtps_epi32
   6740   // CHECK: @llvm.x86.avx512.mask.cvtps2dq.512
   6741   return _mm512_cvtps_epi32 (__A);
   6742 }
   6743 
   6744 __m512i test_mm512_mask_cvtps_epi32 (__m512i __W, __mmask16 __U, __m512 __A)
   6745 {
   6746   // CHECK-LABEL: @test_mm512_mask_cvtps_epi32
   6747   // CHECK: @llvm.x86.avx512.mask.cvtps2dq.512
   6748   return _mm512_mask_cvtps_epi32 (__W,__U,__A);
   6749 }
   6750 
   6751 __m512i test_mm512_maskz_cvtps_epi32 (__mmask16 __U, __m512 __A)
   6752 {
   6753   // CHECK-LABEL: @test_mm512_maskz_cvtps_epi32
   6754   // CHECK: @llvm.x86.avx512.mask.cvtps2dq.512
   6755   return _mm512_maskz_cvtps_epi32 (__U,__A);
   6756 }
   6757 
   6758 __m256i test_mm512_cvtpd_epi32 (__m512d __A)
   6759 {
   6760   // CHECK-LABEL: @test_mm512_cvtpd_epi32
   6761   // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.512
   6762   return _mm512_cvtpd_epi32 (__A);
   6763 }
   6764 
   6765 __m256i test_mm512_mask_cvtpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A)
   6766 {
   6767   // CHECK-LABEL: @test_mm512_mask_cvtpd_epi32
   6768   // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.512
   6769   return _mm512_mask_cvtpd_epi32 (__W,__U,__A);
   6770 }
   6771 
   6772 __m256i test_mm512_maskz_cvtpd_epi32 (__mmask8 __U, __m512d __A)
   6773 {
   6774   // CHECK-LABEL: @test_mm512_maskz_cvtpd_epi32
   6775   // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.512
   6776   return _mm512_maskz_cvtpd_epi32 (__U,__A);
   6777 }
   6778 
   6779 __m256i test_mm512_cvtpd_epu32 (__m512d __A)
   6780 {
   6781   // CHECK-LABEL: @test_mm512_cvtpd_epu32
   6782   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.512
   6783   return _mm512_cvtpd_epu32 (__A);
   6784 }
   6785 
   6786 __m256i test_mm512_mask_cvtpd_epu32 (__m256i __W, __mmask8 __U, __m512d __A)
   6787 {
   6788   // CHECK-LABEL: @test_mm512_mask_cvtpd_epu32
   6789   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.512
   6790   return _mm512_mask_cvtpd_epu32 (__W,__U,__A);
   6791 }
   6792 
   6793 __m256i test_mm512_maskz_cvtpd_epu32 (__mmask8 __U, __m512d __A)
   6794 {
   6795   // CHECK-LABEL: @test_mm512_maskz_cvtpd_epu32
   6796   // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.512
   6797   return _mm512_maskz_cvtpd_epu32 (__U,__A);
   6798 }
   6799 
   6800 __m256i test_mm512_mask_cvtps_ph(__m256i src, __mmask16 k, __m512 a)
   6801 {
   6802   // CHECK-LABEL: @test_mm512_mask_cvtps_ph
   6803   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.512
   6804   return _mm512_mask_cvtps_ph(src, k, a,_MM_FROUND_CUR_DIRECTION);
   6805 }
   6806 
   6807 __m256i test_mm512_maskz_cvtps_ph (__mmask16 k, __m512 a)
   6808 {
   6809   // CHECK-LABEL: @test_mm512_maskz_cvtps_ph
   6810   // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.512
   6811   return _mm512_maskz_cvtps_ph( k, a,_MM_FROUND_CUR_DIRECTION);
   6812 }
   6813 
   6814 __m512i test_mm512_cvtps_epu32 ( __m512 __A)
   6815 {
   6816   // CHECK-LABEL: @test_mm512_cvtps_epu32
   6817   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.512
   6818   return _mm512_cvtps_epu32(__A);
   6819 }
   6820 
   6821 __m512i test_mm512_mask_cvtps_epu32 (__m512i __W, __mmask16 __U, __m512 __A)
   6822 {
   6823   // CHECK-LABEL: @test_mm512_mask_cvtps_epu32
   6824   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.512
   6825   return _mm512_mask_cvtps_epu32( __W, __U, __A);
   6826 }
   6827 __m512i test_mm512_maskz_cvtps_epu32 (__mmask16 __U, __m512 __A)
   6828 {
   6829   // CHECK-LABEL: @test_mm512_maskz_cvtps_epu32
   6830   // CHECK: @llvm.x86.avx512.mask.cvtps2udq.512
   6831   return _mm512_maskz_cvtps_epu32( __U, __A);
   6832 }
   6833 
   6834 __m512d test_mm512_mask_max_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
   6835 {
   6836   // CHECK-LABEL: @test_mm512_mask_max_pd
   6837   // CHECK: @llvm.x86.avx512.mask.max.pd.512
   6838   return _mm512_mask_max_pd (__W,__U,__A,__B);
   6839 }
   6840 
   6841 __m512d test_mm512_maskz_max_pd (__mmask8 __U, __m512d __A, __m512d __B)
   6842 {
   6843   // CHECK-LABEL: @test_mm512_maskz_max_pd
   6844   // CHECK: @llvm.x86.avx512.mask.max.pd.512
   6845   return _mm512_maskz_max_pd (__U,__A,__B);
   6846 }
   6847 
   6848 __m512 test_mm512_mask_max_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
   6849 {
   6850   // CHECK-LABEL: @test_mm512_mask_max_ps
   6851   // CHECK: @llvm.x86.avx512.mask.max.ps.512
   6852   return _mm512_mask_max_ps (__W,__U,__A,__B);
   6853 }
   6854 
   6855 __m512d test_mm512_mask_max_round_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)
   6856 {
   6857   // CHECK-LABEL: @test_mm512_mask_max_round_pd
   6858   // CHECK: @llvm.x86.avx512.mask.max.pd.512
   6859   return _mm512_mask_max_round_pd(__W,__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
   6860 }
   6861 
   6862 __m512d test_mm512_maskz_max_round_pd(__mmask8 __U,__m512d __A,__m512d __B)
   6863 {
   6864   // CHECK-LABEL: @test_mm512_maskz_max_round_pd
   6865   // CHECK: @llvm.x86.avx512.mask.max.pd.512
   6866   return _mm512_maskz_max_round_pd(__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
   6867 }
   6868 
   6869 __m512d test_mm512_max_round_pd(__m512d __A,__m512d __B)
   6870 {
   6871   // CHECK-LABEL: @test_mm512_max_round_pd
   6872   // CHECK: @llvm.x86.avx512.mask.max.pd.512
   6873   return _mm512_max_round_pd(__A,__B,_MM_FROUND_CUR_DIRECTION);
   6874 }
   6875 
   6876 __m512 test_mm512_maskz_max_ps (__mmask16 __U, __m512 __A, __m512 __B)
   6877 {
   6878   // CHECK-LABEL: @test_mm512_maskz_max_ps
   6879   // CHECK: @llvm.x86.avx512.mask.max.ps.512
   6880   return _mm512_maskz_max_ps (__U,__A,__B);
   6881 }
   6882 
   6883 __m512 test_mm512_mask_max_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)
   6884 {
   6885   // CHECK-LABEL: @test_mm512_mask_max_round_ps
   6886   // CHECK: @llvm.x86.avx512.mask.max.ps.512
   6887   return _mm512_mask_max_round_ps(__W,__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
   6888 }
   6889 
   6890 __m512 test_mm512_maskz_max_round_ps(__mmask16 __U,__m512 __A,__m512 __B)
   6891 {
   6892   // CHECK-LABEL: @test_mm512_maskz_max_round_ps
   6893   // CHECK: @llvm.x86.avx512.mask.max.ps.512
   6894   return _mm512_maskz_max_round_ps(__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
   6895 }
   6896 
   6897 __m512 test_mm512_max_round_ps(__m512 __A,__m512 __B)
   6898 {
   6899   // CHECK-LABEL: @test_mm512_max_round_ps
   6900   // CHECK: @llvm.x86.avx512.mask.max.ps.512
   6901   return _mm512_max_round_ps(__A,__B,_MM_FROUND_CUR_DIRECTION);
   6902 }
   6903 
   6904 __m512d test_mm512_mask_min_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
   6905 {
   6906   // CHECK-LABEL: @test_mm512_mask_min_pd
   6907   // CHECK: @llvm.x86.avx512.mask.min.pd.512
   6908   return _mm512_mask_min_pd (__W,__U,__A,__B);
   6909 }
   6910 
   6911 __m512d test_mm512_maskz_min_pd (__mmask8 __U, __m512d __A, __m512d __B)
   6912 {
   6913   // CHECK-LABEL: @test_mm512_maskz_min_pd
   6914   // CHECK: @llvm.x86.avx512.mask.min.pd.512
   6915   return _mm512_maskz_min_pd (__U,__A,__B);
   6916 }
   6917 
   6918 __m512d test_mm512_mask_min_round_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)
   6919 {
   6920   // CHECK-LABEL: @test_mm512_mask_min_round_pd
   6921   // CHECK: @llvm.x86.avx512.mask.min.pd.512
   6922   return _mm512_mask_min_round_pd(__W,__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
   6923 }
   6924 
   6925 __m512d test_mm512_maskz_min_round_pd(__mmask8 __U,__m512d __A,__m512d __B)
   6926 {
   6927   // CHECK-LABEL: @test_mm512_maskz_min_round_pd
   6928   // CHECK: @llvm.x86.avx512.mask.min.pd.512
   6929   return _mm512_maskz_min_round_pd(__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
   6930 }
   6931 
   6932 __m512d test_mm512_min_round_pd( __m512d __A,__m512d __B)
   6933 {
   6934   // CHECK-LABEL: @test_mm512_min_round_pd
   6935   // CHECK: @llvm.x86.avx512.mask.min.pd.512
   6936   return _mm512_min_round_pd(__A,__B,_MM_FROUND_CUR_DIRECTION);
   6937 }
   6938 
   6939 __m512 test_mm512_mask_min_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
   6940 {
   6941   // CHECK-LABEL: @test_mm512_mask_min_ps
   6942   // CHECK: @llvm.x86.avx512.mask.min.ps.512
   6943   return _mm512_mask_min_ps (__W,__U,__A,__B);
   6944 }
   6945 
   6946 __m512 test_mm512_maskz_min_ps (__mmask16 __U, __m512 __A, __m512 __B)
   6947 {
   6948   // CHECK-LABEL: @test_mm512_maskz_min_ps
   6949   // CHECK: @llvm.x86.avx512.mask.min.ps.512
   6950   return _mm512_maskz_min_ps (__U,__A,__B);
   6951 }
   6952 
   6953 __m512 test_mm512_mask_min_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)
   6954 {
   6955   // CHECK-LABEL: @test_mm512_mask_min_round_ps
   6956   // CHECK: @llvm.x86.avx512.mask.min.ps.512
   6957   return _mm512_mask_min_round_ps(__W,__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
   6958 }
   6959 
   6960 __m512 test_mm512_maskz_min_round_ps(__mmask16 __U,__m512 __A,__m512 __B)
   6961 {
   6962   // CHECK-LABEL: @test_mm512_maskz_min_round_ps
   6963   // CHECK: @llvm.x86.avx512.mask.min.ps.512
   6964   return _mm512_maskz_min_round_ps(__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
   6965 }
   6966 
   6967 __m512 test_mm512_min_round_ps(__m512 __A,__m512 __B)
   6968 {
   6969   // CHECK-LABEL: @test_mm512_min_round_ps
   6970   // CHECK: @llvm.x86.avx512.mask.min.ps.512
   6971   return _mm512_min_round_ps(__A,__B,_MM_FROUND_CUR_DIRECTION);
   6972 }
   6973 
   6974 __m512 test_mm512_mask_floor_ps (__m512 __W, __mmask16 __U, __m512 __A)
   6975 {
   6976   // CHECK-LABEL: @test_mm512_mask_floor_ps
   6977   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.512
   6978   return _mm512_mask_floor_ps (__W,__U,__A);
   6979 }
   6980 
   6981 __m512d test_mm512_mask_floor_pd (__m512d __W, __mmask8 __U, __m512d __A)
   6982 {
   6983   // CHECK-LABEL: @test_mm512_mask_floor_pd
   6984   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.512
   6985   return _mm512_mask_floor_pd (__W,__U,__A);
   6986 }
   6987 
   6988 __m512 test_mm512_mask_ceil_ps (__m512 __W, __mmask16 __U, __m512 __A)
   6989 {
   6990   // CHECK-LABEL: @test_mm512_mask_ceil_ps
   6991   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.512
   6992   return _mm512_mask_ceil_ps (__W,__U,__A);
   6993 }
   6994 
   6995 __m512d test_mm512_mask_ceil_pd (__m512d __W, __mmask8 __U, __m512d __A)
   6996 {
   6997   // CHECK-LABEL: @test_mm512_mask_ceil_pd
   6998   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.512
   6999   return _mm512_mask_ceil_pd (__W,__U,__A);
   7000 }
   7001 
   7002 __m512 test_mm512_mask_roundscale_ps(__m512 __W, __mmask16 __U, __m512 __A)
   7003 {
   7004   // CHECK-LABEL: @test_mm512_mask_roundscale_ps
   7005   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.512
   7006   return _mm512_mask_roundscale_ps(__W,__U,__A, 1);
   7007 }
   7008 
   7009 __m512 test_mm512_maskz_roundscale_ps(__mmask16 __U, __m512 __A)
   7010 {
   7011   // CHECK-LABEL: @test_mm512_maskz_roundscale_ps
   7012   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.512
   7013   return _mm512_maskz_roundscale_ps(__U,__A, 1);
   7014 }
   7015 
   7016 __m512 test_mm512_mask_roundscale_round_ps(__m512 __A,__mmask16 __U,__m512 __C)
   7017 {
   7018   // CHECK-LABEL: @test_mm512_mask_roundscale_round_ps
   7019   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.512
   7020   return _mm512_mask_roundscale_round_ps(__A,__U,__C,3,_MM_FROUND_CUR_DIRECTION);
   7021 }
   7022 
   7023 __m512 test_mm512_maskz_roundscale_round_ps(__m512 __A,__mmask16 __U)
   7024 {
   7025   // CHECK-LABEL: @test_mm512_maskz_roundscale_round_ps
   7026   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.512
   7027   return _mm512_maskz_roundscale_round_ps(__U,__A,3,_MM_FROUND_CUR_DIRECTION);
   7028 }
   7029 
   7030 __m512 test_mm512_roundscale_round_ps(__m512 __A)
   7031 {
   7032   // CHECK-LABEL: @test_mm512_roundscale_round_ps
   7033   // CHECK: @llvm.x86.avx512.mask.rndscale.ps.512
   7034   return _mm512_roundscale_round_ps(__A,3,_MM_FROUND_CUR_DIRECTION);
   7035 }
   7036 
   7037 __m512d test_mm512_mask_roundscale_pd(__m512d __W, __mmask8 __U, __m512d __A)
   7038 {
   7039   // CHECK-LABEL: @test_mm512_mask_roundscale_pd
   7040   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.512
   7041   return _mm512_mask_roundscale_pd(__W,__U,__A, 1);
   7042 }
   7043 
   7044 __m512d test_mm512_maskz_roundscale_pd(__mmask8 __U, __m512d __A)
   7045 {
   7046   // CHECK-LABEL: @test_mm512_maskz_roundscale_pd
   7047   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.512
   7048   return _mm512_maskz_roundscale_pd(__U,__A, 1);
   7049 }
   7050 
   7051 __m512d test_mm512_mask_roundscale_round_pd(__m512d __A,__mmask8 __U,__m512d __C)
   7052 {
   7053   // CHECK-LABEL: @test_mm512_mask_roundscale_round_pd
   7054   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.512
   7055   return _mm512_mask_roundscale_round_pd(__A,__U,__C,3,_MM_FROUND_CUR_DIRECTION);
   7056 }
   7057 
   7058 __m512d test_mm512_maskz_roundscale_round_pd(__m512d __A,__mmask8 __U)
   7059 {
   7060   // CHECK-LABEL: @test_mm512_maskz_roundscale_round_pd
   7061   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.512
   7062   return _mm512_maskz_roundscale_round_pd(__U,__A,3,_MM_FROUND_CUR_DIRECTION);
   7063 }
   7064 
   7065 __m512d test_mm512_roundscale_round_pd(__m512d __A)
   7066 {
   7067   // CHECK-LABEL: @test_mm512_roundscale_round_pd
   7068   // CHECK: @llvm.x86.avx512.mask.rndscale.pd.512
   7069   return _mm512_roundscale_round_pd(__A,3,_MM_FROUND_CUR_DIRECTION);
   7070 }
   7071 
   7072 __m512i test_mm512_mask_max_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
   7073 {
   7074   // CHECK-LABEL: @test_mm512_mask_max_epi32
   7075   // CHECK: @llvm.x86.avx512.mask.pmaxs.d.512
   7076   return _mm512_mask_max_epi32 (__W,__M,__A,__B);
   7077 }
   7078 
   7079 __m512i test_mm512_maskz_max_epi32 (__mmask16 __M, __m512i __A, __m512i __B)
   7080 {
   7081   // CHECK-LABEL: @test_mm512_maskz_max_epi32
   7082   // CHECK: @llvm.x86.avx512.mask.pmaxs.d.512
   7083   return _mm512_maskz_max_epi32 (__M,__A,__B);
   7084 }
   7085 
   7086 __m512i test_mm512_mask_max_epi64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
   7087 {
   7088   // CHECK-LABEL: @test_mm512_mask_max_epi64
   7089   // CHECK: @llvm.x86.avx512.mask.pmaxs.q.512
   7090   return _mm512_mask_max_epi64 (__W,__M,__A,__B);
   7091 }
   7092 
   7093 __m512i test_mm512_maskz_max_epi64 (__mmask8 __M, __m512i __A, __m512i __B)
   7094 {
   7095   // CHECK-LABEL: @test_mm512_maskz_max_epi64
   7096   // CHECK: @llvm.x86.avx512.mask.pmaxs.q.512
   7097   return _mm512_maskz_max_epi64 (__M,__A,__B);
   7098 }
   7099 
   7100 __m512i test_mm512_mask_max_epu64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
   7101 {
   7102   // CHECK-LABEL: @test_mm512_mask_max_epu64
   7103   // CHECK: @llvm.x86.avx512.mask.pmaxu.q.512
   7104   return _mm512_mask_max_epu64 (__W,__M,__A,__B);
   7105 }
   7106 
   7107 __m512i test_mm512_maskz_max_epu64 (__mmask8 __M, __m512i __A, __m512i __B)
   7108 {
   7109   // CHECK-LABEL: @test_mm512_maskz_max_epu64
   7110   // CHECK: @llvm.x86.avx512.mask.pmaxu.q.512
   7111   return _mm512_maskz_max_epu64 (__M,__A,__B);
   7112 }
   7113 
   7114 __m512i test_mm512_mask_max_epu32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
   7115 {
   7116   // CHECK-LABEL: @test_mm512_mask_max_epu32
   7117   // CHECK: @llvm.x86.avx512.mask.pmaxu.d.512
   7118   return _mm512_mask_max_epu32 (__W,__M,__A,__B);
   7119 }
   7120 
   7121 __m512i test_mm512_maskz_max_epu32 (__mmask16 __M, __m512i __A, __m512i __B)
   7122 {
   7123   // CHECK-LABEL: @test_mm512_maskz_max_epu32
   7124   // CHECK: @llvm.x86.avx512.mask.pmaxu.d.512
   7125   return _mm512_maskz_max_epu32 (__M,__A,__B);
   7126 }
   7127 
   7128 __m512i test_mm512_mask_min_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
   7129 {
   7130   // CHECK-LABEL: @test_mm512_mask_min_epi32
   7131   // CHECK: @llvm.x86.avx512.mask.pmins.d.512
   7132   return _mm512_mask_min_epi32 (__W,__M,__A,__B);
   7133 }
   7134 
   7135 __m512i test_mm512_maskz_min_epi32 (__mmask16 __M, __m512i __A, __m512i __B)
   7136 {
   7137   // CHECK-LABEL: @test_mm512_maskz_min_epi32
   7138   // CHECK: @llvm.x86.avx512.mask.pmins.d.512
   7139   return _mm512_maskz_min_epi32 (__M,__A,__B);
   7140 }
   7141 
   7142 __m512i test_mm512_mask_min_epu32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
   7143 {
   7144   // CHECK-LABEL: @test_mm512_mask_min_epu32
   7145   // CHECK: @llvm.x86.avx512.mask.pminu.d.512
   7146   return _mm512_mask_min_epu32 (__W,__M,__A,__B);
   7147 }
   7148 
   7149 __m512i test_mm512_maskz_min_epu32 (__mmask16 __M, __m512i __A, __m512i __B)
   7150 {
   7151   // CHECK-LABEL: @test_mm512_maskz_min_epu32
   7152   // CHECK: @llvm.x86.avx512.mask.pminu.d.512
   7153   return _mm512_maskz_min_epu32 (__M,__A,__B);
   7154 }
   7155 
   7156 __m512i test_mm512_mask_min_epi64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
   7157 {
   7158   // CHECK-LABEL: @test_mm512_mask_min_epi64
   7159   // CHECK: @llvm.x86.avx512.mask.pmins.q.512
   7160   return _mm512_mask_min_epi64 (__W,__M,__A,__B);
   7161 }
   7162 
   7163 __m512i test_mm512_maskz_min_epi64 (__mmask8 __M, __m512i __A, __m512i __B)
   7164 {
   7165   // CHECK-LABEL: @test_mm512_maskz_min_epi64
   7166   // CHECK: @llvm.x86.avx512.mask.pmins.q.512
   7167   return _mm512_maskz_min_epi64 (__M,__A,__B);
   7168 }
   7169 
   7170 __m512i test_mm512_mask_min_epu64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
   7171 {
   7172   // CHECK-LABEL: @test_mm512_mask_min_epu64
   7173   // CHECK: @llvm.x86.avx512.mask.pminu.q.512
   7174   return _mm512_mask_min_epu64 (__W,__M,__A,__B);
   7175 }
   7176 
   7177 __m512i test_mm512_maskz_min_epu64 (__mmask8 __M, __m512i __A, __m512i __B)
   7178 {
   7179   // CHECK-LABEL: @test_mm512_maskz_min_epu64
   7180   // CHECK: @llvm.x86.avx512.mask.pminu.q.512
   7181   return _mm512_maskz_min_epu64 (__M,__A,__B);
   7182 }
   7183 
   7184 __m512i test_mm512_mask_set1_epi32 (__m512i __O, __mmask16 __M, int __A)
   7185 {
   7186     //CHECK-LABEL: @test_mm512_mask_set1_epi32
   7187     //CHECK: @llvm.x86.avx512.mask.pbroadcast.d.gpr.512
   7188   return _mm512_mask_set1_epi32 ( __O, __M, __A);
   7189 }
   7190 
   7191 __m512i test_mm512_set_epi32 (int __A, int __B, int __C, int __D,
   7192                int __E, int __F, int __G, int __H,
   7193                int __I, int __J, int __K, int __L,
   7194                int __M, int __N, int __O, int __P)
   7195 {
   7196  //CHECK-LABEL: @test_mm512_set_epi32
   7197  //CHECK: insertelement{{.*}}i32 0
   7198     //CHECK: insertelement{{.*}}i32 1
   7199     //CHECK: insertelement{{.*}}i32 2
   7200     //CHECK: insertelement{{.*}}i32 3
   7201     //CHECK: insertelement{{.*}}i32 4
   7202     //CHECK: insertelement{{.*}}i32 5
   7203     //CHECK: insertelement{{.*}}i32 6
   7204     //CHECK: insertelement{{.*}}i32 7
   7205     //CHECK: insertelement{{.*}}i32 8
   7206     //CHECK: insertelement{{.*}}i32 9
   7207     //CHECK: insertelement{{.*}}i32 10
   7208     //CHECK: insertelement{{.*}}i32 11
   7209     //CHECK: insertelement{{.*}}i32 12
   7210     //CHECK: insertelement{{.*}}i32 13
   7211     //CHECK: insertelement{{.*}}i32 14
   7212     //CHECK: insertelement{{.*}}i32 15
   7213  return _mm512_set_epi32( __A, __B, __C, __D,__E, __F, __G, __H,
   7214               __I, __J, __K, __L,__M, __N, __O, __P);
   7215 }
   7216 
   7217 __m512i test_mm512_setr_epi32 (int __A, int __B, int __C, int __D,
   7218                int __E, int __F, int __G, int __H,
   7219                int __I, int __J, int __K, int __L,
   7220                int __M, int __N, int __O, int __P)
   7221 {
   7222     //CHECK-LABEL: @test_mm512_setr_epi32
   7223     //CHECK: load{{.*}}%__P.addr, align 4
   7224     //CHECK: load{{.*}}%__O.addr, align 4
   7225     //CHECK: load{{.*}}%__N.addr, align 4
   7226     //CHECK: load{{.*}}%__M.addr, align 4
   7227     //CHECK: load{{.*}}%__L.addr, align 4
   7228     //CHECK: load{{.*}}%__K.addr, align 4
   7229     //CHECK: load{{.*}}%__J.addr, align 4
   7230     //CHECK: load{{.*}}%__I.addr, align 4
   7231     //CHECK: load{{.*}}%__H.addr, align 4
   7232     //CHECK: load{{.*}}%__G.addr, align 4
   7233     //CHECK: load{{.*}}%__F.addr, align 4
   7234     //CHECK: load{{.*}}%__E.addr, align 4
   7235     //CHECK: load{{.*}}%__D.addr, align 4
   7236     //CHECK: load{{.*}}%__C.addr, align 4
   7237     //CHECK: load{{.*}}%__B.addr, align 4
   7238     //CHECK: load{{.*}}%__A.addr, align 4
   7239     //CHECK: insertelement{{.*}}i32 0
   7240     //CHECK: insertelement{{.*}}i32 1
   7241     //CHECK: insertelement{{.*}}i32 2
   7242     //CHECK: insertelement{{.*}}i32 3
   7243     //CHECK: insertelement{{.*}}i32 4
   7244     //CHECK: insertelement{{.*}}i32 5
   7245     //CHECK: insertelement{{.*}}i32 6
   7246     //CHECK: insertelement{{.*}}i32 7
   7247     //CHECK: insertelement{{.*}}i32 8
   7248     //CHECK: insertelement{{.*}}i32 9
   7249     //CHECK: insertelement{{.*}}i32 10
   7250     //CHECK: insertelement{{.*}}i32 11
   7251     //CHECK: insertelement{{.*}}i32 12
   7252     //CHECK: insertelement{{.*}}i32 13
   7253     //CHECK: insertelement{{.*}}i32 14
   7254     //CHECK: insertelement{{.*}}i32 15
   7255  return _mm512_setr_epi32( __A, __B, __C, __D,__E, __F, __G, __H,
   7256               __I, __J, __K, __L,__M, __N, __O, __P);
   7257 }
   7258 
   7259 __m512i test_mm512_mask_set1_epi64 (__m512i __O, __mmask8 __M, long long __A)
   7260 {
   7261     //CHECK-LABEL: @test_mm512_mask_set1_epi64
   7262     //CHECK: @llvm.x86.avx512.mask.pbroadcast.q.gpr.512
   7263   return _mm512_mask_set1_epi64 (__O, __M, __A);
   7264 }
   7265 
   7266 __m512i test_mm512_set_epi64 (long long __A, long long __B, long long __C,
   7267                               long long __D, long long __E, long long __F,
   7268                               long long __G, long long __H)
   7269 {
   7270     //CHECK-LABEL: @test_mm512_set_epi64
   7271     //CHECK: insertelement{{.*}}i32 0
   7272     //CHECK: insertelement{{.*}}i32 1
   7273     //CHECK: insertelement{{.*}}i32 2
   7274     //CHECK: insertelement{{.*}}i32 3
   7275     //CHECK: insertelement{{.*}}i32 4
   7276     //CHECK: insertelement{{.*}}i32 5
   7277     //CHECK: insertelement{{.*}}i32 6
   7278     //CHECK: insertelement{{.*}}i32 7
   7279   return _mm512_set_epi64(__A, __B, __C, __D, __E, __F, __G, __H );
   7280 }
   7281 
   7282 __m512i test_mm512_setr_epi64 (long long __A, long long __B, long long __C,
   7283                               long long __D, long long __E, long long __F,
   7284                               long long __G, long long __H)
   7285 {
   7286     //CHECK-LABEL: @test_mm512_setr_epi64
   7287     //CHECK: load{{.*}}%__H.addr, align 8
   7288     //CHECK: load{{.*}}%__G.addr, align 8
   7289     //CHECK: load{{.*}}%__F.addr, align 8
   7290     //CHECK: load{{.*}}%__E.addr, align 8
   7291     //CHECK: load{{.*}}%__D.addr, align 8
   7292     //CHECK: load{{.*}}%__C.addr, align 8
   7293     //CHECK: load{{.*}}%__B.addr, align 8
   7294     //CHECK: load{{.*}}%__A.addr, align 8
   7295     //CHECK: insertelement{{.*}}i32 0
   7296     //CHECK: insertelement{{.*}}i32 1
   7297     //CHECK: insertelement{{.*}}i32 2
   7298     //CHECK: insertelement{{.*}}i32 3
   7299     //CHECK: insertelement{{.*}}i32 4
   7300     //CHECK: insertelement{{.*}}i32 5
   7301     //CHECK: insertelement{{.*}}i32 6
   7302     //CHECK: insertelement{{.*}}i32 7
   7303   return _mm512_setr_epi64(__A, __B, __C, __D, __E, __F, __G, __H );
   7304 }
   7305 
   7306 __m512d test_mm512_set_pd (double __A, double __B, double __C, double __D,
   7307                            double __E, double __F, double __G, double __H)
   7308 {
   7309     //CHECK-LABEL: @test_mm512_set_pd
   7310     //CHECK: insertelement{{.*}}i32 0
   7311     //CHECK: insertelement{{.*}}i32 1
   7312     //CHECK: insertelement{{.*}}i32 2
   7313     //CHECK: insertelement{{.*}}i32 3
   7314     //CHECK: insertelement{{.*}}i32 4
   7315     //CHECK: insertelement{{.*}}i32 5
   7316     //CHECK: insertelement{{.*}}i32 6
   7317     //CHECK: insertelement{{.*}}i32 7
   7318   return _mm512_set_pd( __A, __B, __C, __D, __E, __F, __G, __H);
   7319 }
   7320 
   7321 __m512d test_mm512_setr_pd (double __A, double __B, double __C, double __D,
   7322                            double __E, double __F, double __G, double __H)
   7323 {
   7324     //CHECK-LABEL: @test_mm512_setr_pd
   7325     //CHECK: load{{.*}}%__H.addr, align 8
   7326     //CHECK: load{{.*}}%__G.addr, align 8
   7327     //CHECK: load{{.*}}%__F.addr, align 8
   7328     //CHECK: load{{.*}}%__E.addr, align 8
   7329     //CHECK: load{{.*}}%__D.addr, align 8
   7330     //CHECK: load{{.*}}%__C.addr, align 8
   7331     //CHECK: load{{.*}}%__B.addr, align 8
   7332     //CHECK: load{{.*}}%__A.addr, align 8
   7333     //CHECK: insertelement{{.*}}i32 0
   7334     //CHECK: insertelement{{.*}}i32 1
   7335     //CHECK: insertelement{{.*}}i32 2
   7336     //CHECK: insertelement{{.*}}i32 3
   7337     //CHECK: insertelement{{.*}}i32 4
   7338     //CHECK: insertelement{{.*}}i32 5
   7339     //CHECK: insertelement{{.*}}i32 6
   7340     //CHECK: insertelement{{.*}}i32 7
   7341   return _mm512_setr_pd( __A, __B, __C, __D, __E, __F, __G, __H);
   7342 }
   7343 
   7344 __m512 test_mm512_set_ps (float __A, float __B, float __C, float __D,
   7345                           float __E, float __F, float __G, float __H,
   7346                           float __I, float __J, float __K, float __L,
   7347                           float __M, float __N, float __O, float __P)
   7348 {
   7349     //CHECK-LABEL: @test_mm512_set_ps
   7350     //CHECK: insertelement{{.*}}i32 0
   7351     //CHECK: insertelement{{.*}}i32 1
   7352     //CHECK: insertelement{{.*}}i32 2
   7353     //CHECK: insertelement{{.*}}i32 3
   7354     //CHECK: insertelement{{.*}}i32 4
   7355     //CHECK: insertelement{{.*}}i32 5
   7356     //CHECK: insertelement{{.*}}i32 6
   7357     //CHECK: insertelement{{.*}}i32 7
   7358     //CHECK: insertelement{{.*}}i32 8
   7359     //CHECK: insertelement{{.*}}i32 9
   7360     //CHECK: insertelement{{.*}}i32 10
   7361     //CHECK: insertelement{{.*}}i32 11
   7362     //CHECK: insertelement{{.*}}i32 12
   7363     //CHECK: insertelement{{.*}}i32 13
   7364     //CHECK: insertelement{{.*}}i32 14
   7365     //CHECK: insertelement{{.*}}i32 15
   7366     return _mm512_set_ps( __A, __B, __C, __D, __E, __F, __G, __H,
   7367                           __I, __J, __K, __L, __M, __N, __O, __P);
   7368 }
   7369 
   7370 __m512i test_mm512_mask_abs_epi64 (__m512i __W, __mmask8 __U, __m512i __A)
   7371 {
   7372   // CHECK-LABEL: @test_mm512_mask_abs_epi64
   7373   // CHECK: @llvm.x86.avx512.mask.pabs.q.512
   7374   return _mm512_mask_abs_epi64 (__W,__U,__A);
   7375 }
   7376 
   7377 __m512i test_mm512_maskz_abs_epi64 (__mmask8 __U, __m512i __A)
   7378 {
   7379   // CHECK-LABEL: @test_mm512_maskz_abs_epi64
   7380   // CHECK: @llvm.x86.avx512.mask.pabs.q.512
   7381   return _mm512_maskz_abs_epi64 (__U,__A);
   7382 }
   7383 
   7384 __m512i test_mm512_mask_abs_epi32 (__m512i __W, __mmask16 __U, __m512i __A)
   7385 {
   7386   // CHECK-LABEL: @test_mm512_mask_abs_epi32
   7387   // CHECK: @llvm.x86.avx512.mask.pabs.d.512
   7388   return _mm512_mask_abs_epi32 (__W,__U,__A);
   7389 }
   7390 
   7391 __m512i test_mm512_maskz_abs_epi32 (__mmask16 __U, __m512i __A)
   7392 {
   7393   // CHECK-LABEL: @test_mm512_maskz_abs_epi32
   7394   // CHECK: @llvm.x86.avx512.mask.pabs.d.512
   7395   return _mm512_maskz_abs_epi32 (__U,__A);
   7396 }
   7397 
   7398 __m512 test_mm512_setr_ps (float __A, float __B, float __C, float __D,
   7399                           float __E, float __F, float __G, float __H,
   7400                           float __I, float __J, float __K, float __L,
   7401                           float __M, float __N, float __O, float __P)
   7402 {
   7403     //CHECK-LABEL: @test_mm512_setr_ps
   7404     //CHECK: load{{.*}}%__P.addr, align 4
   7405     //CHECK: load{{.*}}%__O.addr, align 4
   7406     //CHECK: load{{.*}}%__N.addr, align 4
   7407     //CHECK: load{{.*}}%__M.addr, align 4
   7408     //CHECK: load{{.*}}%__L.addr, align 4
   7409     //CHECK: load{{.*}}%__K.addr, align 4
   7410     //CHECK: load{{.*}}%__J.addr, align 4
   7411     //CHECK: load{{.*}}%__I.addr, align 4
   7412     //CHECK: load{{.*}}%__H.addr, align 4
   7413     //CHECK: load{{.*}}%__G.addr, align 4
   7414     //CHECK: load{{.*}}%__F.addr, align 4
   7415     //CHECK: load{{.*}}%__E.addr, align 4
   7416     //CHECK: load{{.*}}%__D.addr, align 4
   7417     //CHECK: load{{.*}}%__C.addr, align 4
   7418     //CHECK: load{{.*}}%__B.addr, align 4
   7419     //CHECK: load{{.*}}%__A.addr, align 4
   7420     //CHECK: insertelement{{.*}}i32 0
   7421     //CHECK: insertelement{{.*}}i32 1
   7422     //CHECK: insertelement{{.*}}i32 2
   7423     //CHECK: insertelement{{.*}}i32 3
   7424     //CHECK: insertelement{{.*}}i32 4
   7425     //CHECK: insertelement{{.*}}i32 5
   7426     //CHECK: insertelement{{.*}}i32 6
   7427     //CHECK: insertelement{{.*}}i32 7
   7428     //CHECK: insertelement{{.*}}i32 8
   7429     //CHECK: insertelement{{.*}}i32 9
   7430     //CHECK: insertelement{{.*}}i32 10
   7431     //CHECK: insertelement{{.*}}i32 11
   7432     //CHECK: insertelement{{.*}}i32 12
   7433     //CHECK: insertelement{{.*}}i32 13
   7434     //CHECK: insertelement{{.*}}i32 14
   7435     //CHECK: insertelement{{.*}}i32 15
   7436     return _mm512_setr_ps( __A, __B, __C, __D, __E, __F, __G, __H,
   7437                           __I, __J, __K, __L, __M, __N, __O, __P);
   7438 }
   7439 
   7440 int test_mm_cvtss_i32(__m128 A) {
   7441   // CHECK-LABEL: test_mm_cvtss_i32
   7442   // CHECK: call i32 @llvm.x86.sse.cvtss2si(<4 x float> %{{.*}})
   7443   return _mm_cvtss_i32(A);
   7444 }
   7445 
   7446 long long test_mm_cvtss_i64(__m128 A) {
   7447   // CHECK-LABEL: test_mm_cvtss_i64
   7448   // CHECK: call i64 @llvm.x86.sse.cvtss2si64(<4 x float> %{{.*}})
   7449   return _mm_cvtss_i64(A);
   7450 }
   7451 
   7452 __m128d test_mm_cvti32_sd(__m128d A, int B) {
   7453   // CHECK-LABEL: test_mm_cvti32_sd
   7454   // CHECK: sitofp i32 %{{.*}} to double
   7455   // CHECK: insertelement <2 x double> %{{.*}}, double %{{.*}}, i32 0
   7456   return _mm_cvti32_sd(A, B);
   7457 }
   7458 
   7459 __m128d test_mm_cvti64_sd(__m128d A, long long B) {
   7460   // CHECK-LABEL: test_mm_cvti64_sd
   7461   // CHECK: sitofp i64 %{{.*}} to double
   7462   // CHECK: insertelement <2 x double> %{{.*}}, double %{{.*}}, i32 0
   7463   return _mm_cvti64_sd(A, B);
   7464 }
   7465 
   7466 __m128 test_mm_cvti32_ss(__m128 A, int B) {
   7467   // CHECK-LABEL: test_mm_cvti32_ss
   7468   // CHECK: sitofp i32 %{{.*}} to float
   7469   // CHECK: insertelement <4 x float> %{{.*}}, float %{{.*}}, i32 0
   7470   return _mm_cvti32_ss(A, B);
   7471 }
   7472 
   7473 __m128 test_mm_cvti64_ss(__m128 A, long long B) {
   7474   // CHECK-LABEL: test_mm_cvti64_ss
   7475   // CHECK: sitofp i64 %{{.*}} to float
   7476   // CHECK: insertelement <4 x float> %{{.*}}, float %{{.*}}, i32 0
   7477   return _mm_cvti64_ss(A, B);
   7478 }
   7479 
   7480 int test_mm_cvtsd_i32(__m128d A) {
   7481   // CHECK-LABEL: test_mm_cvtsd_i32
   7482   // CHECK: call i32 @llvm.x86.sse2.cvtsd2si(<2 x double> %{{.*}})
   7483   return _mm_cvtsd_i32(A);
   7484 }
   7485 
   7486 long long test_mm_cvtsd_i64(__m128d A) {
   7487   // CHECK-LABEL: test_mm_cvtsd_i64
   7488   // CHECK: call i64 @llvm.x86.sse2.cvtsd2si64(<2 x double> %{{.*}})
   7489   return _mm_cvtsd_i64(A);
   7490 }
   7491 
   7492 __m128d test_mm_mask_cvtss_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128 __B) {
   7493   // CHECK-LABEL: @test_mm_mask_cvtss_sd
   7494   // CHECK: @llvm.x86.avx512.mask.cvtss2sd.round
   7495   return _mm_mask_cvtss_sd(__W, __U, __A, __B);
   7496 }
   7497 
   7498 __m128d test_mm_maskz_cvtss_sd( __mmask8 __U, __m128d __A, __m128 __B) {
   7499   // CHECK-LABEL: @test_mm_maskz_cvtss_sd
   7500   // CHECK: @llvm.x86.avx512.mask.cvtss2sd.round
   7501   return _mm_maskz_cvtss_sd( __U, __A, __B);
   7502 }
   7503 
   7504 __m128 test_mm_mask_cvtsd_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128d __B) {
   7505   // CHECK-LABEL: @test_mm_mask_cvtsd_ss
   7506   // CHECK: @llvm.x86.avx512.mask.cvtsd2ss.round
   7507   return _mm_mask_cvtsd_ss(__W, __U, __A, __B);
   7508 }
   7509 
   7510 __m128 test_mm_maskz_cvtsd_ss(__mmask8 __U, __m128 __A, __m128d __B) {
   7511   // CHECK-LABEL: @test_mm_maskz_cvtsd_ss
   7512   // CHECK: @llvm.x86.avx512.mask.cvtsd2ss.round
   7513   return _mm_maskz_cvtsd_ss(__U, __A, __B);
   7514 }
   7515 
   7516 
   7517 __m512i test_mm512_setzero_epi32()
   7518 {
   7519   // CHECK-LABEL: @test_mm512_setzero_epi32
   7520   // CHECK: zeroinitializer
   7521   return _mm512_setzero_epi32();
   7522 }
   7523 
   7524 __m512i test_mm512_setzero()
   7525 {
   7526   // CHECK-LABEL: @test_mm512_setzero
   7527   // CHECK: zeroinitializer
   7528   return _mm512_setzero();
   7529 }
   7530 
   7531 __m512i test_mm512_setzero_si512()
   7532 {
   7533   // CHECK-LABEL: @test_mm512_setzero_si512
   7534   // CHECK: zeroinitializer
   7535   return _mm512_setzero_si512();
   7536 }
   7537 
   7538 __m512i test_mm512_setzero_ps()
   7539 {
   7540   // CHECK-LABEL: @test_mm512_setzero_ps
   7541   // CHECK: zeroinitializer
   7542   return _mm512_setzero_ps();
   7543 }
   7544 
   7545 __m512d test_mm512_setzero_pd()
   7546 {
   7547   // CHECK-LABEL: @test_mm512_setzero_pd
   7548   // CHECK: zeroinitializer
   7549   return _mm512_setzero_pd();
   7550 }
   7551 
   7552 __m512d test_mm512_abs_pd(__m512d a){
   7553   // CHECK-LABEL: @test_mm512_abs_pd
   7554   // CHECK: and <8 x i64>
   7555   return _mm512_abs_pd(a);
   7556 }
   7557 
   7558 __m512d test_mm512_mask_abs_pd (__m512d __W, __mmask8 __U, __m512d __A){
   7559   // CHECK-LABEL: @test_mm512_mask_abs_pd
   7560   // CHECK: %[[AND_RES:.*]] = and <8 x i64>
   7561   // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
   7562   // CHECK: select <8 x i1> %[[MASK]], <8 x i64> %[[AND_RES]], <8 x i64> %{{.*}}
   7563   return _mm512_mask_abs_pd (__W,__U,__A);
   7564 }
   7565 
   7566 __m512 test_mm512_abs_ps(__m512 a){
   7567   // CHECK-LABEL: @test_mm512_abs_ps
   7568   // CHECK: and <16 x i32>
   7569   return _mm512_abs_ps(a);
   7570 }
   7571 
   7572 __m512 test_mm512_mask_abs_ps(__m512 __W, __mmask16 __U, __m512 __A){
   7573   // CHECK-LABEL: @test_mm512_mask_abs_ps
   7574   // CHECK: and <16 x i32>
   7575   // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
   7576   // CHECK: select <16 x i1> %[[MASK]], <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
   7577   return _mm512_mask_abs_ps( __W, __U, __A);
   7578 }
   7579 
   7580